Часть 2: JPEG2000 в науке и медицине. Ограничения формата JP2
В первой части серии статей “JPEG2000 в кино, науке, медицине и не только” мы поговорили о ключевых технологиях JPEG2000 и сфокусировались на его применимости в цифровом кино. В этой части мы хотели бы продолжить разговор об особенностях, рассказать о главном недостатке JPEG2000 и рассмотреть другие области, где он оказался крайне востребованным. А также представить решение, позволяющее сделать работу с ним существенно удобней.
JPEG2000 в науке и медицине
Поддержка window mode — одна из немаловажных особенностей, которая привлекает внимание к JPEG2000. Учёным нередко приходится работать с файлами просто огромного разрешения, ширина и высота которых могут превосходить 40 000 пикселей. Но интерес представляет лишь небольшая его часть. Привычному JPEG для работы с таким изображением пришлось бы декодировать его целиком, а JPEG2000 позволяет декодировать лишь выбранную область.
JP2 используется также и для съёмки в космосе. Все эти чудесные фотографии Марса, сделанные, например, на камеру HiRISE — его заслуга. Однако, канал передачи данных из космоса на Землю подвержен влиянию помех, поэтому при передаче могут появиться ошибки или даже могут быть потеряны целые пакеты данных. Рассматриваемый формат при включении специального режима устойчив к ошибкам, возникающим, когда устройства связи или хранения ненадежны. Такой режим позволяет производить коррекцию ошибок, возникающих при потере данных во время передачи. Достигается это следующим образом: сперва изображение делится на небольшие блоки (например, 32x32 или 64x64 пикселя), затем после предварительных преобразований каждая битовая плоскость кодируется отдельно. Таким образом, потерянный бит может испортить лишь одну битовую плоскость, а это обычно незначительно сказывается на качестве изображения в целом. К слову, у JPEG потеря бита может привести к полной непригодности части или даже всего изображения.
Самый первый снимок Марса в высоком разрешении от HiRISE (29 сентября 2006 года), оригинал здесь
О работе специального режима с проверкой на целостность информации в файле формата JPEG2000. В сжатый файл добавляется дополнительная информация, позволяющая проверить корректность данных. Без этой информации мы зачастую не можем определить при декодировании, есть ошибка или нет, и продолжаем процесс как ни в чём не бывало: в результате, всё ещё возможна ситуация, в которой даже один ошибочный бит портит достаточно большую часть картинки. А если такой режим включен, то мы обнаруживаем ошибку при её появлении и можем ограничить её влияние на другие части картинки.
Формат не остался незамеченным и в медицине. Здесь крайне важна поддержка такой разрядности исходных данных, которая бы позволила зафиксировать все тонкости цвета каждой изучаемой области нашего организма. JPEG2000 используется в томографии, рентгеновских снимках, МРТ, КТ и т.д. И все получаемые изображения обязаны в соответствии с требованием FDA (Food and Drug Administration) храниться в том виде, в котором были получены — без потерь. JPEG2000 идеально подходит для этой задачи.
Ещё одна интересная возможность JPEG2000 — сжатие трёхмерных массивов данных. Она может быть весьма актуальна как в науке, так и в медицине (например, трёхмерные результаты томографии). Сжатию таких данных посвящена 10-я часть стандарта JPEG2000: JP3D (volumetric imaging).
Ограничения формата JP2
К сожалению, с JP2 (JPEG2000) не все так просто — собственно, поэтому он практически не используется веб-браузерами (за исключением Safari). Формат является вычислительно сложным, и существующие кодеки с открытым исходным кодом на протяжении многих лет были слишком медленными для активного использования. Даже сейчас, когда скорость процессоров растет с каждым новым поколением, а кодеки оптимизируются и ускоряются, их возможности — всё ещё не предел мечтаний. Для иллюстрации важности скорости работы кодека вернёмся на минуту к разговору о цифровом кино. Конкретно — к созданию DCP (Digital Cinema Package) пакетов, того самого набора файлов, которым мы наслаждаемся в кинотеатрах. Напомним, что JPEG2000 является стандартом для цифрового кино, а, соответственно, необходим и для создания DCP-пакета. К сожалению, его вычислительная сложность делает данную задачу довольно ресурсоёмкой и затратной по времени. Более того, существующие кодеки с открытым исходным кодом не позволяют декодировать фильмы с требуемой частотой 25, 30 или 60 кадров в секунду для 12-битных данных при разрешениях уже в 2К или в 4К.
Можно ли работать с JPEG2000 быстрее?
В JPEG2000 предусмотрены режимы для работы на более высокой скорости, но достигается это за счёт небольшого снижения качества или коэффициента сжатия. Однако далеко не для всех задач даже такая небольшая цена приемлема.
Для ускорения работы с JPEG2000 мы в Fastvideo разработали свою реализацию кодека JPEG2000. В основе нашего решения лежит технология NVIDIA CUDA, благодаря которой стало возможным сделать параллельную реализацию кодера и декодера, задействовав все ядра CPU и GPU. В результате, наше решение работает намного быстрее аналогов и дает принципиально новые возможности пользователям. Мы верим, что наше решение позволит существенно ускорить работу с форматом тех, кто уже выбрал JP2, и приумножить их число. А, соответственно, и сделать качественные изображения куда более доступными для всех специалистов в областях, нуждающихся в оригинальном качестве.
Оригинал статьи: https://www.fastvideo.ru/blog/jpeg2000-applications-part2.htm