Введение
Формат файла сжатого изображения JPEG XR (JPEG extended range) - это стандарт сжатия изображений для непрерывных фотографических изображений, основанный на спецификациях HD Photo (ранее Windows Media Photo), которые Microsoft первоначально разработала и запатентовала. Он поддерживает как стерильное, так и беспотерильное сжатие, и является предпочтительным форматом изображения для документов Ecma 388 Open XML Paper Specification. Поддержка формата была доступна в Adobe Flash Player 11.0, Adobe AIR 3.0, Sumatra PDF 2.1, Windows Imaging Component, NET Framework 3.0, Windows Vista, Windows 7, Windows 8, Internet Explorer 9, Internet Explorer 10, Internet Explorer 11, Pale Moon 27.2. По состоянию на январь 2021 года до сих пор не было камер, которые снимали бы фотографии в формате JPEG XR. Формат JXR.
JPEG XR (JPEG extended range) is an image compression standard for continuous tone photographic images, based on the HD Photo (formerly Windows Media Photo) specifications that Microsoft originally developed and patented. It supports both lossy and lossless compression, and is the preferred image format for Ecma 388 Open XML Paper Specification documents. Support for the format was made available in Adobe Flash Player 11.0, Adobe AIR 3.0, Sumatra PDF 2.1, Windows Imaging Component, NET Framework 3.0, Windows Vista, Windows 7, Windows 8, Internet Explorer 9, Internet Explorer 10, Internet Explorer 11, Pale Moon 27.2. As of January 2021, there were still no cameras that shoot photos in the JPEG XR (. JXR) format.
История
Microsoft впервые анонсировала Windows Media Photo на WinHEC 2006, а затем переименовала его в HD Photo в ноябре того же года. В июле 2007 года Совместная группа экспертов по фотографии и Microsoft объявили, что HD Photo рассматривается как стандарт JPEG, известный как JPEG XR. 16 марта 2009 года JPEG XR получил окончательное одобрение в качестве Рекомендации Т.832 МСЭ и с апреля 2009 года стал доступен в ТМСЭ в "предварительно опубликованной" форме. В 2010 году, после завершения спецификации кодирования изображений, ITU T и ISO/IEC также опубликовали спецификацию формата движения (ITU T T.833 ISO/IEC 29199 3), набор тестов соответствия (ITU T T.834 ISO/IEC 29199 4) и справочное программное обеспечение (ITU T T.835 ISO/IEC 29199 5) для JPEG XR. В 2011 году они опубликовали технический отчет, описывающий архитектуру рабочего процесса для использования изображений JPEG XR в приложениях (ITU T T. Sup2 ISO / IEC TR 29199 1).
In 2010, after completion of the image coding specification, the ITU T and ISO/IEC also published a motion format specification (ITU T T.833 | ISO/IEC 29199 3), a conformance test set (ITU T T.834 | ISO/IEC 29199 4), and reference software (ITU T T.835 | ISO/IEC 29199 5) for JPEG XR. In 2011, they published a technical report describing the workflow architecture for the use of JPEG XR images in applications (ITU T T. Sup2 | ISO/IEC TR 29199 1).
Формат контейнера
Один из форматов контейнера файлов, который может использоваться для хранения данных изображения JPEG XR, указан в приложении А к стандарту JPEG XR. Это TIFF-подобный формат, использующий таблицу тегов каталога файлов изображений (IFD). Файл JPEG XR содержит данные изображения, дополнительные данные альфа-каналов, метаданные, дополнительные XMP метаданные, хранящиеся в формате RDF/XML, и дополнительные метаданные Exif в тегах IFD. Данные изображения - это соседствующий самостоятельный кусок данных. Альфа-канал, если он есть, может быть сжат в виде отдельной записи изображения, что позволяет декодировать данные изображения независимо от данных прозрачности в приложениях, которые не поддерживают прозрачность. (В качестве альтернативы JPEG XR также поддерживает "пересеченный" формат альфа-каналов, в котором данные альфа-каналов кодируются вместе с другими данными изображения в одном сжатом потоке кода.) Будучи основанным на TIFF, этот формат унаследовал все ограничения формата TIFF, включая ограничение размера файла в 4 ГБ, которое, согласно спецификации HD Photo, "будет рассмотрено в будущем обновлении". В комитете JPEG начата новая работа по использованию кодирования изображений JPEG XR в формате хранения файлов JPX, позволяя использовать протокол JPIP, который позволяет интерактивно просматривать изображения в сети.
Алгоритм сжатия
Концептуально дизайн JPEG XR очень похож на JPEG: изображение исходного источника может быть преобразовано в цветовое пространство luma chroma, плоскости хрома могут быть подкарантинными, каждая плоскость делится на блоки фиксированного размера, блоки преобразуются в частотную область, а коэффициенты частоты квантируются и энтропии кодируются. Основные различия включают в себя следующее: JPEG поддерживает битовую глубину 8 и 12 бит; JPEG XR поддерживает битовую глубину до 32 бит. JPEG XR также поддерживает беспотеритное и потеряно сжатие данных изображения с плавающей запятой (препоставляя значения плавающей запятой в формате IEEE 754 и кодируя их, как если бы они были целыми числами) и изображения RGBE. JFIF и другие типичные методы кодирования изображения определяют линейную трансформацию от RGB к YCbCr, которая на практике имеет небольшие потери из-за ошибки окружения. JPEG XR определяет беспотерянную трансформацию цветового пространства, а именно YCoCg R, данную (для RGB) следующим образом: В то время как JPEG использует 8 × 8 блоков для преобразования частоты, JPEG XR в основном использует преобразования блоков 4 × 4. (2 × 4 и 2 × 2 преобразования также определены для особых случаев, связанных с подпробованием цвета; варианты кодировки включают YUV 444, YUV 422, YUV 420 и только монохромный Y.) В то время как JPEG использует одну стадию трансформации, JPEG XR применяет свою трансформацию ядра 4 × 4 в двухуровневой иерархической форме в 16 × 16 макроблоковых областях. Это дает трансформации волновой блок, похожий на многоразрешение и улучшает ее способность сжатия. DCT, частотная трансформация, используемая JPEG, имеет небольшие потери из-за ошибки окружения. JPEG XR использует тип целочисленной трансформации, используя схему подъема. Требуемая трансформация, называемая трансформацией фотоядра (PCT), напоминает DCT 4 × 4, но не имеет потерь (точно обратимый). На самом деле, это особое воплощение более крупного семейства бинарных дружественных мультипликаторов без трансформаций, называемых binDCT. JPEG XR позволяет сделать факультативный этап пересечения, называемый префильтрацией, перед каждым из его 4 × 4 основных этапов преобразования PCT. В JPEG коэффициенты постоянного тока изображения блоков DCT предсказываются путем применения прогноза постоянного тока от левого соседского трансформационного блока, и никакие другие коэффициенты не предсказываются. В JPEG XR 4 × 4 блока группируются в макроблоки из 16 × 16 образцов, а 16 коэффициентов постоянного тока из 4 × 4 блоков каждого макроблока проходят через другой уровень преобразования частоты, оставляя три типа коэффициентов, которые должны быть закодированы энтропией: коэффициенты постоянного тока макроблока (называемые DC), коэффициенты переменного тока уровня макроблока (называемые "lowpass") и коэффициенты переменного тока более низкого уровня (называемые AC). Прогноз значений коэффициентов в блоках трансформации применяется к коэффициентам постоянного тока и к дополнительному ряду или столбцу коэффициентов переменного тока. JPEG XR поддерживает кодирование изображения путем разложения его на более мелкие отдельные прямоугольные области площади плитки. Каждая область плитки может быть расшифрована независимо от других областей изображения. Это позволяет быстро получить доступ к пространственным областям изображений без декодирования всей картины. Фаза кодирования энтропии JPEG XR более адаптивна и сложна, чем у JPEG, включая схему прогнозирования коэффициентов постоянного тока и переменного тока, адаптивное переустройство коэффициентов (в отличие от фиксированного зигзагового упорядочения JPEG) и форму адаптивного кодирования Хаффмана для самих коэффициентов. JPEG использует один размер шага квантования на компонент DC / AC на цветовую плоскость на изображение. JPEG XR позволяет выбирать размеры шагов квантования постоянного тока на основе области плитки и позволяет изменять размеры шагов квантования низкого прохода и переменного тока от макроблока к макроблоку. Поскольку все фазы кодирования, кроме квантования, не имеют потерь, JPEG XR не имеет потерь, когда все коэффициенты квантования равны 1. Это не относится к JPEG. JPEG определяет отдельный безпотерянный режим, который не использует DCT, но он не реализован libjpeg и поэтому не широко поддерживается. В спецификации бит-потока HD Photo утверждается, что "HD Photo предлагает качество изображения, сопоставимое с JPEG 2000 с вычислительной и памятью, более близкой к JPEG", что он "предоставляет сжатое изоб�...
JPEG supports bit depths of 8 and 12 bits; JPEG XR supports bit depths of up to 32 bits. JPEG XR also supports lossless and lossy compression of floating point image data (by representing the floating point values in an IEEE 754 like format, and encoding them as though they were integers) and RGBE imagery. JFIF and other typical image encoding practices specify a linear transformation from RGB to YCbCr, which is slightly lossy in practice because of roundoff error. JPEG XR specifies a lossless colorspace transformation, namely YCoCg R, given (for RGB) by:
While JPEG uses 8 × 8 blocks for its frequency transformation, JPEG XR primarily uses 4 × 4 block transforms. (2 × 4 and 2 × 2 transformations are also defined for special cases involving chroma subsampling; encoder options include YUV 444, YUV 422, YUV 420, and a monochrome Y only.) While JPEG uses a single transformation stage, JPEG XR applies its 4 × 4 core transform in a two level hierarchical fashion within 16 × 16 macroblock regions. This gives the transform a wavelet like multi resolution hierarchy and improves its compression capability. The DCT, the frequency transformation used by JPEG, is slightly lossy because of roundoff error. JPEG XR uses a type of integer transform employing a lifting scheme. The required transform, called the Photo Core Transform (PCT), resembles a 4 × 4 DCT but is lossless (exactly invertible). In fact, it is a particular realization of a larger family of binary friendly multiplier less transforms called the binDCT. JPEG XR allows an optional overlap prefiltering step, called the Photo Overlap Transform (POT), before each of its 4 × 4 core transform PCT stages. In JPEG, the image DC coefficients of the DCT blocks are predicted by applying DC prediction from the left neighbor transform block, and no other coeffients are predicted. In JPEG XR, 4 × 4 blocks are grouped into macroblocks of 16 × 16 samples, and the 16 DC coefficients from the 4 × 4 blocks of each macroblock are passed through another level of frequency transformation, leaving three types of coefficients to be entropy coded: the macroblock DC coefficients (called DC), macroblock level AC coefficients (called "lowpass"), and lower level AC coefficients (called AC). Prediction of coefficient values across transform blocks is applied to the DC coefficients and to an additional row or column of AC coefficients as well. JPEG XR supports the encoding of an image by decomposing it into smaller individual rectangular tile area regions. Each tile area can be decoded independently from the other areas of the picture. This allows fast access to spatial areas of pictures without decoding the entire picture. JPEG XR's entropy coding phase is more adaptive and complex than JPEG's, involving a DC and AC coefficient prediction scheme, adaptive coefficient reordering (in contrast to JPEG's fixed zigzag ordering), and a form of adaptive Huffman coding for the coefficients themselves. JPEG uses a single quantization step size per DC/AC component per color plane per image. JPEG XR allows a selection of DC quantization step sizes on a tile region basis, and allows lowpass and AC quantization step sizes to vary from macroblock to macroblock. Because all encoding phases except quantization are lossless, JPEG XR is lossless when all quantization coefficients are equal to 1. This is not true of JPEG. JPEG defines a separate lossless mode which does not use the DCT, but it is not implemented by libjpeg and therefore not widely supported. The HD Photo bitstream specification claims that "HD Photo offers image quality comparable to JPEG 2000 with computational and memory performance more closely comparable to JPEG", that it "delivers a lossy compressed image of better perceptive quality than JPEG at less than half the file size", and that "lossless compressed images are typically 2.5 times smaller than the original uncompressed data".
Лицензирование
У Microsoft есть патенты на технологию JPEG XR. Представитель Microsoft заявил в интервью в январе 2007 года, что для поощрения принятия и использования HD Photo спецификация доступна в соответствии с Microsoft Open Specification Promise, в котором утверждается, что Microsoft разрешает реализацию спецификации бесплатно и не будет подавать иски на запатентованную технологию для ее реализации, как сообщается Джошем Вайсбергом, директором Microsoft Rich Media Group. С 15 августа 2010 года Microsoft предоставила полученный стандарт JPEG XR в рамках своего обещания сообщества. В июле 2010 года было опубликовано справочное программное обеспечение для реализации стандарта JPEG XR в качестве Рекомендации ITU T T.835 и Международного стандарта ISO/IEC 29199 5. Microsoft включила эти публикации в список спецификаций, охватываемых ее обещанием сообщества. Это решило любые проблемы с лицензированием библиотеки, реализованной в пакетах программного обеспечения, распространяемых по популярным лицензиям с открытым исходным кодом, таким как GNU General Public License, с которыми ранее выпущенный "HD Photo Device Porting Kit" был несовместим.