Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 24.09.04 13:15
Оценка:
Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?
Re: Photoshop
От: Аноним  
Дата: 24.09.04 15:01
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:

ATP>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Слова-то какие умные... "Менеджер памяти"...
Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской
Re[2]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 24.09.04 15:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>Слова-то какие умные... "Менеджер памяти"...

А>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

Именно менеджер, т.к есть собственный файл подкачки и память вродибы организована тайлами. Интересно у Photoshopа используется линейная модель при работе с изображением или нет?
Re[2]: Photoshop
От: Reunion  
Дата: 25.09.04 02:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>Слова-то какие умные... "Менеджер памяти"...

А>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

ScanLine — это хорошо, но он не решает проблемы загрузки/отображения/редактирования файлов в пару гигабайт... Если картинки сравнительно небольшие — то все замечательно.
Re[3]: Photoshop
От: Аноним  
Дата: 27.09.04 07:41
Оценка:
Здравствуйте, Reunion, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>>Слова-то какие умные... "Менеджер памяти"...

А>>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

R>ScanLine — это хорошо, но он не решает проблемы загрузки/отображения/редактирования файлов в пару гигабайт... Если картинки сравнительно небольшие — то все замечательно.


Ах, вот о чём речь.
Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).
Re[4]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 07:53
Оценка:
А>Ах, вот о чём речь.
А>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

Ну а можно в двух словах, что там написано на эту тему?
И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...
Re[5]: Photoshop
От: Аноним  
Дата: 27.09.04 08:45
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>Ну а можно в двух словах, что там написано на эту тему?

ATP>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

ScanLines — одноимённый массив байт, в кототых хранится картинка. Доступ к пискселям происходит непосредственно, а не через тормозную канву (Canvas)
Re[5]: Photoshop
От: Аноним  
Дата: 27.09.04 08:46
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>Ну а можно в двух словах, что там написано на эту тему?

ATP>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

...в двух словах описать не могу, т.к. книга лежит дома, а я сейчас на работе.
Поищи, может в сети есть где-то эта книга или статья из неё
Re[6]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 09:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:



А>>>Ах, вот о чём речь.

А>>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>>Ну а можно в двух словах, что там написано на эту тему?

ATP>>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

А>...в двух словах описать не могу, т.к. книга лежит дома, а я сейчас на работе.

А>Поищи, может в сети есть где-то эта книга или статья из неё

Ну понятно все про ScanLine..... Photoshop конечно работает не так. Пойзучав немного, я пришел к выводу, что его менеджер памяти реализован по Тайлам (квадратам NxM) и память под них он выделяет по мере необходимости. Но вот вопрос: можно ли Тайловую организацию памяти обьединить с линейной (например с помощью структурных исключений)?
Re[4]: Photoshop
От: Dimonka Верблюд  
Дата: 27.09.04 09:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ах, вот о чём речь.

А>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

Если бы ещё эти советы были практически применимы..

Речь там шла всего-лишь о проецировании файла с картинкой в память..
Но такой способ с фотошоповским менеджером и рядом не лежал..
Re[5]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 10:22
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

D>Если бы ещё эти советы были практически применимы..


D>Речь там шла всего-лишь о проецировании файла с картинкой в память..

D>Но такой способ с фотошоповским менеджером и рядом не лежал..

Не... ну это совсем не интересно. Для таких методов не нужно книжки читать.
Ну неужели никому не приходилось работать с картинками размером 15000х10000 например ?
Re[6]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 10:34
Оценка:
ну ты правильно говоришь про тайлы
а что тебе мешает их реализовать?
бери за основу виды организации страничной памяти ОС (т.н. стратегии управления страницами) и вперёд
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[7]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 11:13
Оценка:
Здравствуйте, LM, Вы писали:

LM>ну ты правильно говоришь про тайлы

LM>а что тебе мешает их реализовать?
LM>бери за основу виды организации страничной памяти ОС (т.н. стратегии управления страницами) и вперёд

Мешает пока то, что у меня в мозгу никак не смешивается линейная структура памяти с тайловой. Ведь я так понимаю, что я не могу веделить меньше 4КБ, т.к. работа ведется по страницам. Получается что я не могу выделить отдельную строку тайла, а могу только сразу несколько строк, да и в соседних тайлах память под строки тоже автоматически выделится. Как быть в таком случае?
Re[8]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 12:54
Оценка:
рисунок разбиваешь на квадратные тайлы.
у каждого тайла есть различные характеристики, среди которых позиция в оригиальной картинке, высота и ширина изображения в тайле (т.к. может быть частичное заполнение тайла), флаг загруженности, атрибуты для стратегии управления паматью (зависит от самой стратегии).
а с тайлами уже работаешь как с маленькими изображениями
придётся переопределить основные функции рисования и выводы изображений (чтобы, к примеру, линии они автоматически рисовали через несколько тайлов) — а иначе никак, принципиально.
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[9]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 13:07
Оценка:
Здравствуйте, LM, Вы писали:

LM>рисунок разбиваешь на квадратные тайлы.

LM>у каждого тайла есть различные характеристики, среди которых позиция в оригиальной картинке, высота и ширина изображения в тайле (т.к. может быть частичное заполнение тайла), флаг загруженности, атрибуты для стратегии управления паматью (зависит от самой стратегии).
LM>а с тайлами уже работаешь как с маленькими изображениями
LM>придётся переопределить основные функции рисования и выводы изображений (чтобы, к примеру, линии они автоматически рисовали через несколько тайлов) — а иначе никак, принципиально.

Неуверен, что у Photoshopa именно так все и устроено Дело в том, что основную головную боль вносят не функции рисования примитивов, т.к точка, линие и т.д, а фильтры изображений. При такой организации очень неудобно писать филтры и обработки т.к:
1. Мы не имеем линейной организации памяти, а как известно максимальная скорось достигается имеено в этом случае.
2. Мы ловим все глюки связанные с граничными эффектами (т.е. многие фильтры Фотошопа не могут быть написаны для каждого тайла в отдельности)
Re[10]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 14:06
Оценка:
для фильтров не надо ничего мудрить: основные тормоза при работе с большими изображениями — отрисовка
для фильтров делаешь "в лоб"
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re: Photoshop
От: Fed Россия  
Дата: 27.09.04 16:50
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:

ATP>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Помимо тайлов Photoshop строит ещё пирамиды различных уровней детализации для быстрого отображения с раззличным масштабом. Для не очень больших картинок (10000х10000) можео попробовать использовать file mapping.

Рекомендую также посмотреть исходнки GIMP -там вроде также всё сделано через тайлы.
Спасибо,
Фёдор Скворцов.
Re[2]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 28.09.04 07:01
Оценка: -1
Здравствуйте, Fed, Вы писали:

Fed>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Fed>Помимо тайлов Photoshop строит ещё пирамиды различных уровней детализации для быстрого отображения с раззличным масштабом. Для не очень больших картинок (10000х10000) можео попробовать использовать file mapping.


Fed>Рекомендую также посмотреть исходнки GIMP -там вроде также всё сделано через тайлы.


GIMP — смотрел. По скорости и оптимизации GIMP не в какое сравнение не идет с Фотошопом и работает в несколько раз тормознее. Одним словом Open Source — сами для себя делали. И так сойдет...
Re[11]: Photoshop
От: Reunion  
Дата: 29.09.04 12:36
Оценка:
Здравствуйте, LM, Вы писали:

LM>для фильтров не надо ничего мудрить: основные тормоза при работе с большими изображениями — отрисовка

LM>для фильтров делаешь "в лоб"

Погодите, погодите... Как это фильтры в лоб? Чтобы делать в лоб, его надо загрузить в оперативку. А как в 512 мег загрузить 1500 мег? Или есть другов "в лоб"?
Re[12]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 29.09.04 12:58
Оценка:
не...
ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.