Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Подкачка данных переменной длины (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/podkachka-dannyh-peremennoj-dliny-364960/)

Guest 01.10.2011 03:01

Подкачка данных переменной длины
 
Добрый деньРассмотрим сначала простой и понятный случай. Есть имедж размером M x N, пусть например значение каждого пикселя соответствует высоте над уровнем моря. Имедж может быть велик (или имеем много имеджей), поэтому не храним его весь в памяти а подкачиваем его с диска. ПсевдокодКодC++ (Qt)float Image::GetPixel( int x, int y ){// номер страницы в файле подкачки int pageNo = (y / mPixelPageY) * mNumPageX + x / mPixelPageX; // загрузили страницу if (!mPage[pageNo].IsLoaded()) LoadPage(pageNo, mBaseOffsetInFile + pageNo * mPageSizeBytes);// координаты пикселя внутри страницы x %= mPixelPageX; y %= mPixelPageY;// данные return mPage[pageNo].mData[y * mPixelPageX + x];} Теперь более сложный случай: каждому пикселю соответствует последовательность значений переменной длины. Для оного всего 1 значение, для другого 10, для какого-то и все 20 (пусть и редко). Как организовать подкачку в этом случае? Есть мысли?Спасибо


Часовой пояс GMT, время: 10:34.


© www.otvetnemail.ru - Форум вопросов и ответов.