Когда decoding entropy encoded DC values in JPEG (или entropy encoded prediction differences in lossless JPEG), как различить 1
бит, которые были набиты для заполнения байта перед маркером и закодированным значением Хаффмана?Работа с заполняющими/набивочными битами Энтропия закодирована JPEG
Например, если я вижу:
0xAF 0xFF 0xD9
и я уже потребляли биты в [0xA]
, как я могу сказать, если следующий 0xF
дополняется или должны быть расшифрованы?
Это из JPEG Spec:
F.1.2.3 Байт начинку
Для того, чтобы обеспечить пространство для кода маркера кодов , которые могут быть расположены в сжатых данных изображения, без декодирования, байт начинка используется.
Когда в ходе нормального кодирования в строке кода создается значение байта X'FF ' , байт X'00' равен , заполненному в строку кода. Если после байта X'FF 'детектируется байт X'00', декодер должен отбросить его. Если байт не равен нулю, обнаружен маркер и должен интерпретироваться в размере , необходимых для завершения декодирования сканирования.
Байтное выравнивание маркеров достигается путем заполнения неполных байтов с 1 битом. Если заполнение с помощью 1-бит создает значение X'FF ', нулевой байт заполняется перед добавлением маркера .
Что делать, если я ударил 'EOI (0xFF, 0xD9)' перед ударом маркера перезапуска? –
Что-то не так с данными, если вы попали на рынок EOI без декодирования всех MCU. – user3344003
[Это указывает] (https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure), что использование «DRI» является необязательным. –