SASGIS

Веб-картография и навигация

Недостаточно памяти для отработки команды.

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Re: Недостаточно пмяти для отработки команды.

Сообщение Cowa » 27 ноя 2008, 01:27

Parasite
Кстати, интересная мысль заполнять данными графический файл на диске а не в памяти. (только сегодня прочитал твой пост :( ) Надо будет поковыряться на досуге.
Насколько я понимаю, в bmp формате файл не может быть больше, чем 4Gb или 2^32-1 пикселей по горизонтали или вертикали. Сразу вопрос - кто-то работает с такими огромными картинками? Для чего их можно использовать? Это так, ради интереса.
P.S. Пробовал создавать bmp-файл в photoshop cs и paint - структура заполняется по-разному. Любопытно ...
Cowa
Постигающий Дао
 
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение zed » 27 ноя 2008, 12:15

Для BMP максимальный размер файла - 2 ГБ, для TIFF - 4 ГБ.
Максимальное разрешение для обоих типов 65*65 k pix

Если говорить про 24 битный (полноцветный) BMP, то максимальное разрешение ~ 25*25 k pix, т.е. вступает в силу уже ограничение на максимальный размер файла.

Сразу вопрос - кто-то работает с такими огромными картинками? Для чего их можно использовать?

C огромными картинками работают многие. Для чего? Ну например загнать на КПК спутниковый снимок ВСЕГО ГОРОДА одним файлом.

Кстати, не в памяти, а на венике, можно создавать и JPG - посмотрите, как это делает например, MapBuilder.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение feya » 27 ноя 2008, 12:49

Сделаю я всохранение в бмп и геотиф, даже присылали мне ужо давно код готовый да вместе с винтом накрылся. Ну да там ничего сложного сделаем.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение Parasite » 27 ноя 2008, 17:37

Cowa писал(а):Parasite
Кстати, интересная мысль заполнять данными графический файл на диске а не в памяти. (только сегодня прочитал твой пост :( ) Надо будет поковыряться на досуге.

Дык. Если что - пиши в личку, чем могу - помогу.

Cowa писал(а):Насколько я понимаю, в bmp формате файл не может быть больше, чем 4Gb или 2^32-1 пикселей по горизонтали или вертикали.

http://www.digicamsoft.com/bmp/bmp.html - "глубинный" формат файла. Там и вычислишь лимиты на файлы...:)

Cowa писал(а):Сразу вопрос - кто-то работает с такими огромными картинками?

Кто угодно. Это же контейнер (а изображение - лишь по совместительству, ибо у контейнера есть (будет) тот или иной заголовок...)
Последний раз редактировалось Parasite 27 ноя 2008, 17:46, всего редактировалось 1 раз.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение Parasite » 27 ноя 2008, 17:43

zed писал(а):Для BMP максимальный размер файла - 2 ГБ, для TIFF - 4 ГБ. Максимальное разрешение для обоих типов 65*65 k pix

...а для RAW - какой угодно большой в пределах лимита хостящей FS. Ну и плюс небольшой конвертор из данного "формата" во вменяемый. :)
Впрочем, я еще не встречал пользователя которому бы не хватало 65*65k... :)

zed писал(а):Кстати, не в памяти, а на венике, можно создавать и JPG - посмотрите, как это делает например, MapBuilder.

MapBuilder клеит в памяти и через своп.
JPG невозможно создать без предварительной общей перепаковки (упаковывается весь файл сразу, а не его кусочки) - не надо гнать дезу.
По этой же причине нельзя ступенчато создать ГИФ, TIF со сжатием и прочие файлы с нелинейно упорядоченным контентом.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение zed » 27 ноя 2008, 18:38

Parasite писал(а):Впрочем, я еще не встречал пользователя которому бы не хватало 65*65k... :)

Ну? Вот мы и встретились :) Мне лично не хватает... прикиньте, к примеру, снимок Москвы в 19 зуме одним файлом

MapBuilder клеит в памяти и через своп.

Хм, что есть своп? MapBuilder при создании jpg единоразово отъедает по ~ 30 Мб в оперативке и в файле подкачки, а затем, последовательно пишет в файл на венике (размер которого увеличивается не скачком с 0 и до нормального, а определёнными порциями). При этом расходуемая память не растёт, как у SAS (у которого обработка идёт в памяти), в зависимости от размера выходного файла.

MapBuilder создаёт один большой JPG из тысяч маленьких jpg, и вы хотите сказать, что вначале тысячи маленьких распаковываются, а затем они пакуются в один JPG? Нет, всё происходит пошагово - распаковка n-го числа мелких файлов - запись/упаковка в новый JPG - и так по кругу.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение Parasite » 27 ноя 2008, 19:49

zed писал(а):
Parasite писал(а):Впрочем, я еще не встречал пользователя которому бы не хватало 65*65k... :)

Ну? Вот мы и встретились :) Мне лично не хватает... прикиньте, к примеру, снимок Москвы в 19 зуме одним файлом

Поиск по этой странице на слово "RAW" - поможет отцу русской демократии.

zed писал(а):
MapBuilder клеит в памяти и через своп.

Хм, что есть своп?

Своп есть расширение основной памяти (RAM) при наличии ее отсутствия в нужных приложению рамках.

zed писал(а):MapBuilder при создании jpg единоразово отъедает по ~ 30 Мб в оперативке и в файле подкачки, а затем, последовательно пишет в файл на венике (размер которого увеличивается не скачком с 0 и до нормального, а определёнными порциями). При этом расходуемая память не растёт, как у SAS (у которого обработка идёт в памяти), в зависимости от размера выходного файла.
MapBuilder создаёт один большой JPG из тысяч маленьких jpg, и вы хотите сказать, что вначале тысячи маленьких распаковываются, а затем они пакуются в один JPG?

Совершенно верно.
Другой вопрос, что алгоритм данного процесса в MB намного более оптимизирован, чем у SAS (на что я указывал автору SAS не раз, но......).

zed писал(а):Нет, всё происходит пошагово - распаковка n-го числа мелких файлов - запись/упаковка в новый JPG - и так по кругу.

Заблуждение.
Нет НИКАКОГО способа собрать составной жпег без общей разовой упаковки всего готового файла, На этом - всё. Учите, плиз, матчасть.

Для примера - можете попытаться поменять один (стого определенный) пиксель в одном (строго определенном) месте изображения, сохраненного (сохраняемого) в ЖПЕГ. Для конкретного примера - картинка 1600\1200, жпег, размер 238Кб - поменять пиксели 20\20, 40\20 и 40\40 на цвет #00 - БЕЗ распаковки и последующей повторной упаковки в ЖПЕГ (просьба указать конкретные смещения от начала исходного файла и их новые значения - для решения данной задачи).

PS: В БМП это элементарно, путем банального ВинХекс по разово вычисляемым и фиксированным смещениям.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение zed » 27 ноя 2008, 21:34

Поиск по этой странице на слово "RAW" - поможет отцу русской демократии.

И к чему здесь RAW? Меня вполне устраивает ECW, без этих jpg/bmp-лимитов
Своп есть расширение основной памяти (RAM) при наличии ее отсутствия в нужных приложению рамках.

И как это относится к MapBuilder-у, если его затраты на память минимальны?
MapBuilder создаёт один большой JPG из тысяч маленьких jpg, и вы хотите сказать, что вначале тысячи маленьких распаковываются, а затем они пакуются в один JPG?

Совершенно верно.

Так никакой памяти не хватит, если вначале распаковать все мелкие файлы. В этом и суть. SAS как раз и пытается вначале распаковывать, а потом сохранять. И так поступают ACDSee, Фотошоп и проч. - из-за чего становится невозможно просмотреть в 100% увеличении JPG созданный MapBuilder-ом - не хватает памяти. MapBuilder-у памяти хватает, поскольку он не работает одновременно со всеми мелкими файлами, а распаковка отдельных файлов происходит только по мере необходимости и по мере записи в финальный JPG. Есть такие режимы работы с JPG, когда для доступа к области не нужно его полностью распаковывать. Без полной перепаковки JPG можно резать на кусочки, ворочать изображение в любую сторону. Т.е. из исходного JPG можно создать новый, отличный от первого JPG без перепаковки и соответственно - БЕЗ ПОТЕРЬ КАЧЕСТВА. Из тайлов jpg 256*256 можно создавать jpg предельных разрешений, не распаковывая исходные тайлы и не теряя в качестве. Вопрос в том, что это не так просто как с BMP, и WinHex тут не в помощь. Но на программном уровне это решаемо. Таким же образом и MapBuilder, не нагружая память, работает с JPG (и так же ведётся работа с ECW в SAS) - данные распаковываются и пишутся "пачками/строчками".
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение svp » 27 ноя 2008, 21:52

Нет НИКАКОГО способа собрать составной жпег без общей разовой упаковки всего готового файла, На этом - всё. Учите, плиз, матчасть.

Есть! Наверно имеет смысл отослать к изучению матчасти именно Вас, Parasite.
Цветовые каналы изображения в jpeg разбиты на квадраты (блоки). Поменять один пиксель не затронув всего блока, естественно, нельзя, но можно не трогать и не распаковывать остальные блоки. Именно на этом принципе работают преобразования Jpeg без потери качества в XNView. Там можно поворачивать картинку на n*90 градусов. При этом первоначальная ширина и высота картинки обрезаются по модулю 8, то есть неполные блоки отрезаются. Если их оставить, то разбивка на блоки всего изображения поменяется и его надо будет перепаковывать с новыми потерями.
При клейке большого Jpeg'а из маленьких с размерами кратными размеру блока, совершенно очевидно, не потребуют перепаковки всего изображения.
В этом Zed прав.
Аватара пользователя
svp
Советчик
 
Сообщения: 447
ICQ: 204094886
Зарегистрирован: 26 авг 2008, 11:14
Откуда: Белгород
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Re: Недостаточно пмяти для отработки команды.

Сообщение feya » 27 ноя 2008, 22:00

Ну вы воды развели) Можно неззя какая разница если нет конкретных предложений. Я с jpeg знаком токо еще с универа, про 8*8 пикселей что то припоминаю такчто думаю svp прав.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

Пред.След.

Вернуться в SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6