УСТРОЙСТВО И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ
IMAGE PROCESSING DEVICE AND METHOD

Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству и способу обработки информации и, в частности, к устройству и способу обработки информации, которые делают возможным ограничение ухудшения эффективности кодирования.
Уровень техники
Ранее было раскрыто, что при кодировании изображения, после того как для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, выполнено первичное преобразование, чтобы увеличить сжатие энергии (локализацию коэффициентов преобразования в низкочастотной области), дополнительно для каждого субблока в блоке преобразования применяют вторичное преобразование (например, смотрите NPL 1). NPL 1 также раскрывает, что идентификатор вторичного преобразования, указывающий, какое вторичное преобразование должно применяться, сообщается в блоке CU.
Дополнительно, раскрывается, что в кодере, чтобы определить, какое вторичное преобразование должно быть применено в блоке CU, как это раскрыто в NPL 1, основываясь на RDO (Rate-Distortion Optimization, оптимизация соотношения скорость-искажение), требуется высокая степень сложности вычислений и сигнализация флага вторичного преобразования, указывающего, должно ли применяться вторичное преобразование для блока преобразования (смотрите, например, NPL 2). NPL 2 также раскрывает, что идентификатор вторичного преобразования, указывающий, какое вторичное преобразование должно применяться, получают на основе идентификатора первичного преобразования и режима внутрикадрового преобразования.
Перечень литературы
Непатентная литература
NPL 1
J. Chen. Alshina, G. J. Sullivan, J. R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model 2,” JVET-B1001_v3, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2nd Meeting: Сан-Диего, США, 20-26 февраля 2016 г.
NPL 2
X. Zhao, A. Said, V. Seregin, M. Karczewicz, J. Chen, R. Joshi, “TU-level non-separable secondary transform,” JVET-B0059, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 2nd Meeting: Сан-Диего, США, 20-26 февраля 2016 г.
Сущность изобретения
Технические проблемы
Однако при любом из способов, раскрытых в NPL 1 и NPL 2, в случае, когда флаг пропуска преобразования в блоке преобразования равен 1, а именно указывает, что должен быть применен пропуск преобразования, этот пропуск преобразования применяется только к первичному преобразованию. Другими словами, в случае, когда пропуск преобразования применяется только к первичному преобразованию, может также применяться вторичное преобразование. Поэтому, даже если пропуск преобразования посредством флага пропуска преобразования применяется к остаточному сигналу, к которому лучше применять такой пропуск преобразования, как, например, прореженный остаточный сигнал, в котором количество ненулевых коэффициентов мало, вторичное преобразование применяется, сжатие энергии уменьшается и существует вероятность, что эффективность кодирования может снижаться.
Представленное раскрытие было сделано, учитывая такую ситуацию, как описано выше, и дает возможность уменьшить ухудшение эффективности кодирования.
Решение проблем
Устройство обработки изображения, соответствующее первому подходу представленной технологии, является устройством обработки изображения, содержащим блок управления, выполненный с возможностью, когда должно пропускаться первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, пропуска также вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
Способ обработки изображения, соответствующий первому подходу представленной технологии, является способом обработки изображения, содержащим этап, на котором, когда должен осуществляться пропуск первичного преобразования, представляющего процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, то также должно пропускаться вторичное преобразование, представляющеее процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
Устройство обработки изображения, соответствующее второму подходу представленной технологии, является устройством обработки изображения, содержащим блок управления, выполненный с возможностью, когда должен осуществляться пропуск обратного первичного преобразования, представляющего процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, пропуска также обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
Способ обработки изображения, соответствующий второму подходу представленной технологии, является способом обработки изображения, содержащим этап, на котором, когда должен осуществляться пропуск обратного первичного преобразования, представляющего преобразование, обратное первичному преобразованию, которое представляет процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, то также должен осуществляться пропуск обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
Устройство обработки изображения, соответствующее третьему подходу представленной технологии, является устройством обработки изображения, содержащим блок кодирования, выполненный так, чтобы осуществлять пропуск кодирования первой информации, связанной с пропуском первичного преобразования, когда вторичное преобразование должно выполняться для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Способ обработки изображения, соответствующий третьему подходу представленной технологии, является способом обработки изображения, содержащим пропуск кодирования первой информации, связанной с пропуском первичного преобразования, когда вторичное преобразование должно выполняться для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Устройство обработки изображения, соответствующее четвертому подходу представленной технологии, является устройством обработки изображения, содержащим блок декодирования, выполненный с возможностью осуществления пропуска декодирования кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, когда обратное вторичное преобразование является преобразованием, обратным вторичному преобразованию, которое является преобразованием коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Способ обработки изображения, соответствующий четвертому подходу представленной технологии, является способом обработки изображения, содержащим этап, на котором осуществляют пропуск декодирования кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, представляющегося преобразованием, обратным первичному преобразованию, когда обратное вторичное преобразование, являющееся преобразованием, обратным вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Устройство обработки изображения, соответствующее пятому подходу представленной технологии, является устройством обработки изображения, содержащим блок кодирования, выполненный с возможностью осуществления пропуска кодирования первой информации, связанной с пропуском вторичного преобразования, являющегося процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должен осуществляться пропуск первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Способ обработки изображения, соответствующий пятому подходу представленной технологии, является способом обработки изображения, содержащим осуществление пропуска кодирования первой информации, связанной с пропуском вторичного преобразования, являющегося процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должен осуществляться пропуск первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Устройство обработки изображения, соответствующее шестому подходу представленной технологии, является устройством обработки изображения, содержащим блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, представляющему процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда обратное первичное преобразование представляющее преобразование, обратное первичному преобразованию, представляющему процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть пропущено.
Способ обработки изображения, соответствующий шестому подходу представленной технологии, является способом обработки изображения, содержащим пропуск декодирования кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного первичным преобразованием предсказанного остатка, когда обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть пропущено.
Устройство обработки изображения, соответствующее седьмому подходу представленной технологии, является устройством обработки изображения, содержащим блок кодирования, выполненный с возможностью пропуска кодирования первой информации, указывающей содержание первичного преобразования, когда должны пропускаться первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, представляющее процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, и квантование коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования.
Способ обработки изображения, соответствующий седьмому подходу представленной технологии, является способом обработки изображения, содержащим пропуск кодирования первой информации, указывающей содержание первичного преобразования, когда должны пропускаться первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, представляющее процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, и квантование коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования.
Устройство обработки изображения, соответствующее восьмому подходу представленной технологии, является устройством обработки изображения, содержащим блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, когда должны пропускаться обратное квантование для уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования в коэффициент первичного преобразования, и обратное первичное преобразование для преобразования коэффициента первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения.
Способ обработки изображения, соответствующий восьмому подходу представленной технологии, является способом обработки изображения, содержащим пропуск декодирования кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, когда должны пропускаться обратное квантование уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования в коэффициент первичного преобразования, и обратное первичное преобразование для преобразования коэффициента первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения.
В устройстве обработки изображения и способе, соответствующих первому подходу представленной технологии, при которых, когда должен осуществляться пропуск первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропускается вторичное преобразование, представляющее процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
В устройстве и способе обработки изображения, соответствующих второму подходу представленной технологии, при которых, когда должен осуществляться пропуск обратного первичного преобразования, представляющего преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также осуществляется пропуск обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
В устройстве и способе обработки изображения, соответствующих третьему подходу представленной технологии, в которых, когда должно выполняться второе преобразование коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, кодирование первой информации, связанной с пропуском первичного преобразования, пропускается.
В устройстве и способе обработки изображения, соответствующих четвертому подходу представленной технологии, в которых, когда должно выполняться обратное вторичное преобразование, представляющее преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, декодирование кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, пропускается.
В устройстве и способе обработки изображения, соответствующих первому подходу представленной технологии, в которых, когда должен осуществляться пропуск первичного преобразования, представляющего процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, кодирование первой информации, связанной с пропуском вторичного преобразования, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, пропускается.
В устройстве и способе обработки изображения, соответствующим шестому подходу представленной технологии, в которых, когда обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть пропущено, декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, пропускается.
В устройстве и способе обработки изображения, соответствующих седьмому подходу представленной технологии, в которых, когда первичное преобразование, являющееся процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, и квантование коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования, должны быть пропущены, кодирование первой информации, указывающей содержание первичного преобразования, пропускается.
В устройстве и способе обработки изображения, соответствующих восьмому подходу представленной технологии, в которых, когда обратное квантование уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования в коэффициент первичного преобразования, и обратное первичное преобразования для преобразования коэффициента первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения должны быть пропущены, декодирование кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, пропускается.
Предпочтительный результат изобретения
В соответствии с представленным раскрытием, изображение может быть обработано. Соответственно, снижение эффективности кодирования может быть ограничено.
Краткое описание чертежей
Фиг. 1 - общее представление рекурсивной сегментации блоков CU.
Фиг. 2 - установка PU в CU, показанный на фиг. 1.
Фиг. 3 - установка TU в CU, показанный на фиг. 1.
Фиг. 4 - порядок сканирования CU/PU.
Фиг. 5 - блок-схема примера основной конфигурации устройства кодирования изображения.
Фиг. 6 - блок-схема примера основной конфигурации устройства кодирования изображения.
Фиг. 7 - пример способов сканирования, соответствующих идентификаторам сканирования.
Фиг. 8 - пример матрицы вторичного преобразования.
Фиг. 9 - блок-схема последовательности выполнения операций процесса кодирования изображения.
Фиг. 10 - блок-схема последовательности выполнения операций процесса преобразования.
Фиг. 11 - блок-схема примера основной конфигурации устройства декодирования изображения.
Фиг. 12 - блок-схема примера основной конфигурации блока обратного преобразования.
Фиг. 13 - блок-схема последовательности выполнения операций примера процесса декодирования изображения.
Фиг. 14 - блок-схема последовательности выполнения операций примера процесса обратного преобразования.
Фиг. 15 - пример синтаксиса.
Фиг. 16 - блок-схема примера основной конфигурации блока кодирования.
Фиг. 17 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 18 - блок-схема примера основной конфигурации блока декодирования.
Фиг. 19 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 20 - пример синтаксиса.
Фиг. 21 - блок-схема примера основной конфигурации блока кодирования.
Фиг. 22 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 23 - блок-схема последовательности выполнения операций примера процесса кодирования, продолжающая фиг. 22.
Фиг. 24 - блок-схема примера основной конфигурации блока декодирования.
Фиг. 25 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 26 - блок-схема последовательности выполнения операций примера процесса декодирования, продолжающая фиг. 25.
Фиг. 27 - пример синтаксиса.
Фиг. 28 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 29 - блок-схема последовательности выполнения операций примера процесса кодирования, продолжающая фиг. 28.
Фиг. 30 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 31 - блок-схема последовательности выполнения операций примера процесса декодирования, продолжающая фиг. 30.
Фиг. 32 - пример способа кодирования идентификатора первичного преобразования.
Фиг. 33 - пример способа декодирования идентификатора первичного преобразования.
Фиг. 34 - пример синтаксиса.
Фиг. 35 - блок-схема примера основной конфигурации блока кодирования.
Фиг. 36 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 37 - блок-схема последовательности выполнения операций примера процесса кодирования идентификатора первичного преобразования.
Фиг. 38 - пример арифметического кодирования и арифметического декодирования, соответствующих индексам контекста.
Фиг. 39 - пример псевдокода, показывающий способ кодирования идентификатора первичного преобразования.
Фиг. 40 - блок-схема примера основной конфигурации блока декодирования.
Фиг. 41 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 42 - блок-схема последовательности выполнения операций примера процесса декодирования идентификатора первичного преобразования.
Фиг. 43 - пример псевдокода, показывающий способ декодирования идентификатора первичного преобразования.
Фиг. 44 - форма CU, PU и TU.
Фиг. 45 - пример таблицы синтаксиса.
Фиг. 46 - блок-схема примера основной конфигурации блока кодирования.
Фиг. 47 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 48 - блок-схема последовательности выполнения операций примера процесса кодирования, продолжающая фиг. 47.
Фиг. 49 - блок-схема примера основной конфигурации блока декодирования.
Фиг. 50 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 51 - блок-схема последовательности выполнения операций примера процесса декодирования, продолжающая фиг. 50.
Фиг. 52 - избыточный синтаксис в JEM-4.0.
Фиг. 53 - пример способа подавления избыточного синтаксиса.
Фиг. 54 - пример синтаксиса блока преобразования.
Фиг. 55 - пример синтаксиса блока остаточного кодирования.
Фиг. 56 - блок-схема примера основной конфигурации блока кодирования.
Фиг. 57 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 58 - пример синтаксиса блока преобразования.
Фиг. 59 - пример синтаксиса блока остаточного кодирования.
Фиг. 60 - пример синтаксиса блока остаточного кодирования.
Фиг. 61 - блок-схема примера основной конфигурации блока декодирования.
Фиг. 62 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 63 - избыточный синтаксис в JVET-E0037.
Фиг. 64 - пример способа подавления избыточного синтаксиса.
Фиг. 65 - пример синтаксиса блока преобразования.
Фиг. 66 - пример синтаксиса блока остаточного кодирования.
Фиг. 67 - блок-схема последовательности выполнения операций примера процесса кодирования.
Фиг. 68 - пример синтаксиса блока остаточного кодирования.
Фиг. 69 - блок-схема последовательности выполнения операций примера процесса декодирования.
Фиг. 70 - блок-схема примера основной конфигурации компьютера.
Фиг. 71 - блок-схема примера схемной конфигурации телевизионного устройства.
Фиг. 72 - блок-схема примера схемной конфигурации портативного сотового телефона.
Фиг. 73 - блок-схема примера схемной конфигурации устройства записи и воспроизведения.
Фиг. 74 - блок-схема примера схемной конфигурации устройства съемки изображения.
Фиг. 75 - блок-схема примера схемной конфигурации видеокомплекта.
Фиг. 76 - блок-схема примера схемной конфигурации видеопроцессора.
Фиг. 77 - блок-схема другого примера схемной конфигурации видеопроцессора.
Фиг. 78 - блок-схема примера схемной конфигурации сетевой системы.
Описание вариантов осуществления
Далее описываются способы осуществления представленного раскрытия (здесь далее упоминаются как "варианты осуществления"). Следует заметить, что описание дается в следующем порядке.
1. Первый вариант осуществления (пропуск (обратного) вторичного преобразования, соответствующий пропуску (обратного) преобразования).
2. Второй вариант осуществления (пропуск кодирования и декодирования флага пропуска преобразования, соответствующего (обратному) вторичному преобразованию).
3. Третий вариант осуществления (пропуск кодирования и декодирования флага вторичного преобразования, соответствующего пропуску (обратного) вторичного преобразования).
4. Четвертый вариант осуществления (пропуск кодирования и декодирования флага вторичного преобразования, соответствующего среднему значению ненулевых коэффициентов субблока).
5. Пятый вариант осуществления (пропуск кодирования и декодирования идентификатора первичного преобразования, соответствующего обходу квантования-преобразования).
6. Шестой вариант осуществления (пропуск кодирования и декодирования флага пропуска преобразования, когда блок формируется из квадратных или прямоугольных форм).
7. Седьмой вариант осуществления (управление флагом адаптивного первичного преобразования и флагом пропуска преобразования).
8. Восьмой вариант осуществления (управление флагом адаптивного первичного преобразования и флагом пропуска преобразования).
9. Девятый вариант осуществления (прочее).
1. Первый вариант осуществления
Пропуск процесса преобразования
В NPL 1 было раскрыто, например, что при кодировании изображения, после того как для предсказанного остатка выполнено первичное преобразование, являющееся разностью между изображением и предсказанным изображением этого изображения, чтобы увеличить сжатие энергии (локализацию коэффициентов преобразования в низкочастотной области), для каждого субблока в блоке преобразования дополнительно применяют вторичное преобразование. Дополнительно, в NPL 1 также раскрывается, что идентификатор вторичного преобразования, указывающий, какое вторичное преобразование должно применяться, сообщается в блоке CU.
Дополнительно, например, в NPL 2 раскрывается, что в кодере, чтобы определить, какое вторичное преобразование должно быть применено в блоке CU, как это раскрыто в NPL 1, основываясь на RDO (Rate-Distortion Optimization, оптимизация соотношения скорость-искажение), требуется высокая степень сложности вычислений и сигнализация флага вторичного преобразования, указывающего, должно ли применяться вторичное преобразование в блоке блока преобразования. Дополнительно, в NPL 2 также раскрывается, что идентификатор вторичного преобразования, указывающий, какое вторичное преобразование должно применяться, получают на основе идентификатора первичного преобразования и режима внутрикадрового преобразования.
Однако в любом из способов, раскрытых в NPL 1 и NPL 2, в случае, когда флаг пропуска преобразования в блоке блока преобразования равен 1, а именно, указывает, что должен быть применен пропуск преобразования, этот пропуск преобразования применяется только к первичному преобразованию. Другими словами, также в случае, когда пропуск преобразования применяется только к первичному преобразованию, вторичное преобразование может применяться. Поэтому, в случае, когда рассматривается концепция пропуска преобразования, вторичное преобразование не может быть пропущено (игнорироваться) и существует вероятность, что объем арифметических операций может увеличиться. Дополнительно, даже если пропуск преобразования применяется посредством флага пропуска преобразования к остаточному сигналу, к которому лучше применять такой пропуск преобразования, как, например, прореженный остаточный сигнал, в котором количество ненулевых коэффициентов мало (также упоминаются как ненулевые коэффициенты преобразования), вторичное преобразование применяется и сжатие энергии уменьшается и существует вероятность, что эффективность кодирования может снижаться.
При первичном преобразовании выбирают первичное преобразование Phor в горизонтальном направлении и первичное преобразование Pver в вертикальном направлении, назначенные идентификатором pt_idx первичного преобразования, и для предсказанного остатка D матричная арифметическая операция выполняется, например, так, как указывается следующим выражением (1), чтобы получить коэффициенты Coeff_P преобразования после первичного преобразования (упоминаются также как коэффициенты первичного преобразования).
Следует заметить, что в выражении (1) оператор “” указывает операцию для выполнения внутреннего произведения между матрицами (матричного произведения), а оператор “T” указывает операцию с транспонированной матрицей. Коэффициент первичного преобразования (Coeff_P), определенный способом, описанным выше, в дальнейшем подвергается вторичному преобразованию. Дополнительно, в случае, когда такое первичное преобразование, как описано выше, пропускается (игнорируется), предсказанный остаток D подвергается вторичному преобразованию.
Например, предполагается, что предсказанный остаток D является матрицей 4х4 = [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], как указывается ниже в выражении (2), и идентификатор scanIdx сканирования указывает горизонтальное сканирование hor.
Формула 1
D =  (2)
1d
Предсказанный остаток D сканируется в соответствии с порядком сканирования коэффициентов горизонтального сканирования и преобразуется в такой вектор X с размерностью 1х16, как представлено нижеследующим выражением (3).
Формула 2
1d
X = [255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ... (3)
1d
1d
Такая матричная арифметическая операция представляется приведенным ниже выражением (4), используя этот вектор X с размерностью 1х16 и матрицу R для вторичного преобразования, чтобы определить такой сигнал Y, как представлено выражением (4).
1d
Здесь, оператор “T” представляет операцию с транспонированной матрицей. Посредством этой матричной арифметической операции, такой сигнал Y представляется, например, следующим выражением (5).
Формула 3
1d
Y = [62730, -10710, -4590, -7650, -7650, -7905, 765, -510, 2805, -1020, -2295, 1020, 765, -510, 255, 0] (5)
1d
1d
Чтобы нормализовать норму этого результата Y арифметической операции, выполняется арифметическая операция битового сдвига для N битов, что представляется нижеследующим выражением (6), чтобы определить сигнал Z после битового сдвига.
1d
1d
Z = (Y) >> N (6)
1d
Посредством этой арифметической операции битового сдвига, получают, например, такой сигнал Z, который представляется следующим выражением (7).
Формула 4
1d
Z = [245, -42, -18, -30, -30, -31, 3, -2, 11, -4, -9, 4, 3, -2, 1, 0] (7)
1d
1d
Вектор Z с размерностью 1х16 сигнала Z после нормализации нормы преобразуется в такую матрицу Coeff 4х4, как представляется следующим выражение (8) на основе способа сканирования, назначенного идентификатором scanIdx сканирования.
Формула 5
Coeff =  ... (8)
В случае остаточного сигнала (предсказанного сигнала), в котором количество ненулевых коэффициентов мало (прореженный остаточный сигнал) подобно выражению (2), если первичное преобразование пропускается и после этого применяется вторичное преобразование, то тогда существует вероятность, что ненулевые коэффициенты могут перемещаться по всей частотной области, как в выражении (8). Другими словами, применяя вторичное преобразование, существует вероятность, что сжатие энергии может уменьшиться, приводя в результате к снижению эффективности кодирования.
Пропуск вторичного преобразования и обратного вторичного преобразования
Поэтому, в случае, когда первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, пропускается, то также пропускается вторичное преобразование, представляющее процесс преобразования коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
Поскольку это делает возможным пропускать не только первичное преобразование, но также и вторичное преобразование, увеличение объема арифметических операций может бчть ограничено. Дополнительно, может ограничиваться применение вторичного преобразования к остаточному сигналу, у которого количество ненулевых коэффициентов мало и для которого желательно применять пропуск преобразования, как в описанном выше примере, и уменьшение сжатия энергии может ограничиваться. Другими словами, может ограничиваться снижение эффективности кодирования.
Дополнительно, в случае, когда обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть пропущено, то также осуществляется пропуск обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
Поскольку это делает возможным осуществление пропуска не только обратного первичного преобразования, но также и обратного вторичного преобразования, увеличение объема арифметических операций может ограничиваться. Дополнительно, может ограничиваться применение обратного вторичного преобразования к остаточному сигналу, у которого количество ненулевых коэффициентов мало и для которого желательно применять пропуск преобразования, как в описанном выше примере, и уменьшение сжатия энергии может ограничиваться. Другими словами, снижение эффективности кодирования может ограничиваться.
Сегментация блоков
При способе кодирования изображения, выполняемом прежним способом, таком как MPEG2 (Moving Picture Experts Group 2 (ISO/IEC 13818-2)) или MPEG-4 Часть 10 (Advanced Video Coding, здесь далее упоминаемый как AVC), процесс кодирования выполняется блоком обработки, называемым макроблоком. Макроблок является блоком, имеющим унифицированный размер 16х16 пикселей. В отличие от этого, в системе HEVC (High Efficiency Video Coding, высокоэффективное видеокодирование), процесс кодирования выполняется блоком обработки (блоком кодирования), называемым CU (Coding Unit, блок кодирования). CU является блоком, имеющим переменный размер, который формируется посредством рекурсивной сегментации LCU (Largest Coding Unit, большого блока кодирования), являющегося максимальным блоком кодирования. Максимальным размером CU, который может быть выбран, является 64х64 пикселей. Минимальным размером CU, который может быть выбран, является 8х8 пикселей. CU минимального размера называется SCU (Smallest Coding Unit, наименьший блок кодирования). Следует заметить, что максимальный размер CU не ограничивается размером 64х64 пикселей и может быть большим размером блока, таким как 128х128 пикселей, 256х256 пикселей и т.п.
В результате адаптации CU, имеющего переменный размер в таком случае, в соответствии с HEVC, возможно адаптивно регулировать качество картинки и эффективность кодирования в зависимости от содержания изображения. Процесс предсказания для кодирования с предсказанием выполняется в блоке обработки (блоке предсказания) называемом PU (Prediction Unit, блок предсказания). PU формируется посредством сегментирования CU в соответствии с одним из нескольких способов сегментации. Дополнительно, PU формируется из блока обработки (блока предсказания), называемого PB (Prediction Block, блок предсказания) для каждого из сигналов яркости (Y) и цветовой разности (Cb и Cr). Дополнительно, процесс ортогонального преообразования выполняется в блоке обработки (блоке преобразования) называемом TU (Transform Unit, блок преобразования). TU формируется посредством сегментации CU или PU на определенную глубину. Дополнительно, TU формируется из блока обработки (блока преобразования), называемого TB (Transform Block, блок преобразования) для каждого из сигналов яркости (Y) и цветовой разности (Cb и Cr).
Рекурсивная сегментация блоков
На фиг. 1 приведено общее представление о рекурсивной сегментации блоков CU в системе HEVC. Сегментация блоков CU выполняется посредством рекурсивно повторяющейся сегментации одного блока на четыре (= 2х2) субблока, в результате чего формируется структура дерева в форме квадродерева (Quad-Tree). В целом, одно квадродерево называется CTB (Coding Tree Block), a логический блок, соответствующий CTB, называется CTU (Coding Tree Unit)
В верхней части фиг. 1 в качестве примера показан CU, имеющий размер 64х64 пикселей. Глубина сегментации C01 равна 0. Это означает, что C01 является основой CTU и соответствует LCU. Размер LCU может назначаться параметром, который кодируется в SPS (Sequence Parameter Set, набор параметров последовательности) или PPS (Picture Parameter Set, набор параметров картинки). C02, который является CU, представляет собой один из четырех CU, сегментированных из C01, и имеет размер 32х32 пикселей. Глубина сегментации C02 равна 1. C03, который является CU, представляет собой один из четырех CU, сегментированных из C02, и имеет размер 16х16 пикселей. Глубина сегментации C03 равна 2. C04, который является CU, представляет собой один из четырех CU, сегментированных из C03, и имеет размер 8х8 пикселей. Глубина сегментации C04 равна 3. Таким образом, CU формируется путем рекурсивной сегментации изображения, которое должно быть кодировано. Глубина сегментации является переменной. Например, в области плоского изображения, такого как голубое небо, может быть установлен CU сравнительно большого размера (а именно малой глубины). С другой стороны, чтобы пройти область изображения, имеющую множество краев, может быть установлен CU сравнительно малого размера (а именно, большой глубины). Затем, каждый из таких установленных CU становится блоком обработки в процессе кодирования.
Установка PU в CU
PU является блоком обработки в процессе предсказания, содержащем внутрикадровое предсказание и межкадровое предсказание. PU формируется посредством сегментации CU согласно одному из нескольких способов сегментации. На фиг. 2 представлена установка PU в CU, показанный на фиг. 1. В правой области на фиг. 2 показаны восемь элементов сегментации 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N и nRx2N. При внутрикадровом предсказании из числа восьми элементов сегментации могут быть выбраны два элемента сегментации 2Nx2N и NxN (NxN может быть выбран только в SCU). В отличие от этого, при межкадровом предсказании могут быть все восемь элементов сегментации в случае, когда разрешена асимметричная сегментация при движении.
Установка TU в CU
TU является блоком обработки в процессе ортогонального преобразования. TU формируется путем сегментации CU (в случае внутрикадрового CU, каждого PU в CU) до определенной глубины. На фиг. 3 представлена установка TU в CU, показанный на фиг. 2. В правой области на фиг. 3 показаны один или более TU, которые могут быть установлены в C02. Например, T01, который является TU, имеет размер 32х32 пикселей и глубину сегментации TU, равную нулю. T02 является TU, который имеет размер 16х16 пикселей и глубина сегментации TU равна нулю. T03 является TU, который имеет размер 8х8 пикселей и глубина сегментации TU равна 2.
Какая сегментация блоков должна выполняться, чтобы по порядку установить такой блок, как CU, PU или TU, описанные выше, обычно определяется на основе сравнения затрат, влияющих на эффективность кодирования. Кодер сравнивает затраты, например, между одним CU размером 2Mx2M пикселей и четырьмя CU размером MxM пикселей, и если установка четырех CU размером MxM пикселей показывает более высокую эффективность кодирования, то тогда кодер принимает решение сегментировать CU размером 2Mx2M на четыре сегмента CU размером MxM.
Порядок сканирования CU и PU
Когда изображение должно быть кодировано, CTB (или LCU), установленный в шаблон, подобный решетке, в изображении (или в срез или мозаичный элемент), сканируется в порядке сканирования растра. В пределах одного СТВ, CU сканируются так, чтобы следовать по квадродереву слева направо и сверху вниз. Когда должен быть обработан текущий блок, информация верхних и левых соседствующих блоков используется в качестве вводимой информации. На фиг. 4 представлен порядок сканирования CU и PU. В верхнем левом участке на фиг. 4 показаны C10, C11, C12 и C13 в качестве четырех CU, которые могут содержаться в одном CTB. Нумерация в структуре каждого CU представляет порядковый номер обработки. Процесс кодирования выполняется в следующем порядке: С10 в качестве левого верхнего CU, С11 в качестве правого верхнего CU, С12 в качестве левого нижнего CU и С13 в качестве правого нижнего CU. В правой части на фиг. 4 показаны один или более PU для межкадрового предсказания, пригодного для установки в С11, который является CU. В нижней части на фиг. 4 показаны один или более PU для внутрикадрового предсказания, пригодного для установки в С12, который является CU. Как указывается числовыми обозначениями, в структурах PU также сканируются таким образом, чтобы следовать слева направо и сверху вниз.
В последующем раскрытии описание иногда делается, используя термин "блок" (block) как частичную область или блок обработки изображения (картинки) (но "блок" не является блоком секции обработки). "Блок" в этом случае указывает произвольную частичную область на картинке и размер, форма, характеристики и т.п. для нее никоим образом не ограничиваются. Другими словами, предполагается, что слово "блок" в этом случае содержит произвольную частичную область (блок обработки), такую как, например, TB, TU, PB, PU, SCU, CU, LCU (CTB), субблок, макроблок, мозаичный фрагмент, срез и т.п.
Устройство кодирования изображения
На фиг. 5 представлена блок-схема примера конфигурации устройства кодирования изображения в форме устройства кодирования изображения, к которому применима представленная технология. Устройство 100 кодирования изображения, показанное на фиг. 5, является устройством, кодирующим предсказанный остаток между изображением и предсказанным изображением этого изображения подобно стандарту AVC или HEVC. Например, устройство 100 кодирования изображения содержит в себе технологию, предложенную стандартом HEVC, или технологию, предложенную стандартом JVET (Joint Video Exploration Team).
Следует заметить, что на фиг. 5 показаны основные блоки обработки, потоки данных и т.д., но не все такие блоки обработки, потоки данных и т.д. обязательно показаны на фиг. 5. Другими словами, устройство 100 кодирования изображения может включать в себя блоки обработки, которые не показаны в виде блоков на фиг. 5, или может содержать процессы или потоки данных, которые указываются стрелками или как-либо иначе на фиг. 5.
Как показано на фиг. 5, устройство 100 кодирования изображения содержит блок 101 управления, блок 111 арифметических операций, блок 112 преобразования, блок 113 квантования, блок 114 кодирования, блок 115 обратного квантования, блок 116 обратного преобразования, другой блок 117 арифметических операций, кадровую память 118 и блок 119 предсказания.
Блок 101 управления сегментирует движущееся изображение, введенное в устройство 100 кодирования изображения, на блоки (CU, PU, блоки преобразования (transformation block, TB) и т.п.) блоков обработки, основываясь на размере блока для блока обработки, назначенного извне или заранее, и подает изображения I, соответствующие сегментированным блокам, на блок 111 арифметических операций. Дополнительно, блок 101 управления определяет параметры кодирования (информация Hinfo заголовка, информация Pinfo о режиме предсказания, информация Tinfo о преобразовании и т.д.), которые должны подаваться на соответствующие блоки, например, на основе RDO (Rate-Distortion Optimization, оптимизация соотношения скорости-искажения). Определенные параметры кодирования подаются на соответствующие блоки.
Информация Hinfo заголовка содержит такую информацию, как, например, набор видеопараметров (VPS (Video Parameter Set)), набор параметров последовательности (SPS (Sequence Parameter Set)), набор параметров картинки (PPS (Picture Parameter Set)), заголовок среза (SH (slice header)) и т.п. Например, информация Hinfo заголовка содержит информацию, определяющую размер изображения (ширина PicWidth по горизонтали, ширина PicHeight по вертикали), битовая плотность (яркость bitDepthY, цветовая разность bitDepthC), максимальное значение MaxCUSize/минимальное значение MinCUSize размера CU, максимальное значение MaxTBSize/минимальное значение MinTBSize размера блока преобразования, максимальное значение MaxTSSize блока пропуска преобразования (упоминается также как максимальный размер блока пропуска преобразования), флаг ON/OFF включения/выключения каждого из инструментов кодирования (упоминается также как флаг действительности (validity flag)) и т.п.
Например, в качестве флагов включения/выключения для инструментов кодирования, содержащихся в информации Hinfo заголовка, предлагаются флаги включения/выключения, относящиеся к процессам преобразования и квантования, указанным ниже. Следует заметить, что флаг включения/выключения для каждого инструмента кодирования может интерпретироваться также как флаг, указывающий существует ли в кодированных данных синтаксис, связанный с инструментом кодирования. Дополнительно, в случае, когда значение флага включения/выключения равно 1 (истина), это указывает, что инструмент кодирования может использоваться, а в случае, когда значение флага включения/выключения равно 0 (ложь), это указывает, что инструмент кодирования неприменим. Следует заметить, что интерпретации значения флага могут быть обратными.
Флаг (st_enabled_flag) действительности вторичного преобразования является флагом, указывающим, может ли использоваться инструмент кодирования для выполнения вторичного преобразования или как инструмент кодирования для выполнения обратного преобразования (обратного вторичного преобразования) в качестве одного из таких процессов как процесс преобразования или процесс, обратный процессу преобразования. Другими словами, флаг действительности вторичного преобразования является информацией, указывающей, разрешается ли вторичное преобразование или обратное вторичное преобразование (упоминаемое также как (обратное) вторичное преобразование) в блоке данных, образующем намеченную цель. Дополнительно, флаг действительности вторичного преобразования является информацией, относящейся к разрешению (обратного) вторичного преобразования блока данных, образующего намеченную цель.
Например, в случае, когда флаг st_enabled_flag действительности вторичного преобразования равен 1 (истина), (обратное) вторичное преобразование разрешается ((обратное) вторичное преобразование может выполняться). С другой стороны, в случае, когда флаг st_enabled_flag действительности вторичного преобразования равен 0 (ложь), (обратное) вторичное преобразование не разрешается ((обратное) вторичное преобразование не может выполняться).
Флаг (transquant_bypass_enabled_flag) действительности обхода квантования-преобразования является флагом, указывающим, может ли применяться инструмент кодирования для пропуска как один из процессов преобразования и квантования или обратных им процессов (обратное преобразование и обратное квантование), то есть, преобразования и квантования или обратного квантования и обратного преобразования. Другими словами, флаг действительности обхода квантования-преобразования является информацией, указывающей, должен ли разрешаться пропуск (обход) преобразования и квантования или обратного квантования и обратного преобразования (также упоминаемые как (обратное) преобразование и (обратное) квантование). Дополнительно, этот флаг действительности квантования-преобразования является информацией, относящейся к разрешению пропуска (обхода) (обратного) преобразования и (обратного) квантования блока данных, который должен составлять намеченную цель.
Например, в случае, когда флаг transquant_bypass_enabled_flag действительности обхода квантования-преобразования равен 1 (истина), обход (обратного) преобразования и (обратного) квантования разрешается. Другими словами, (обратное) преобразование и (обратное) квантование могут быть обойдены. С другой стороны, в случае, когда флаг transquant_bypass_enabled_flag действительности обхода квантования-преобразования равен 0 (ложь), обход (обратного) преобразования и (обратного) квантования не разрешается. Другими словами, (обратное) преобразование и (обратное) квантование не могут быть обойдены.
Флаг (ts_enabled_flag) действительности пропуска преобразования является флагом, указывающим, может ли использоваться инструмент кодирования для пропуска (обратного) преобразования, в том числе, первичного преобразования и вторичного преобразования как процесса преобразования или процесса, обратного процессу преобразования. Другими словами, флаг действительности пропуска преобразования является информацией, указывающей, разрешается ли пропуск (обратного) преобразования в отношении блока данных, составляющего намеченную цель. Дополнительно, флаг действительности пропуска преобразования является информацией, относящейся к разрешению пропуска (обратного) преобразования в отношении блока данных, составляющего намеченную цель.
Например, в случае, когда флаг ts_enabled_flag действительности пропуска преобразования равен 1 (истина), пропуск (обратного) преобразования разрешается. Другими словами, (обратное) преобразование может быть пропущено. С другой стороны, в случае, когда флаг ts_enabled_flag действительности пропуска преобразования равен 0 (ложь), пропуск (обратного) преобразования не разрешается. Другими словами, (обратное) преобразование не может быть пропущено.
Следует заметить, что в случае способа, раскрытого в NPL 1 или NPL 2, флаг действительности пропуска преобразования действует только для первичного преобразования или обратного первичного преобразования (упоминаемого также как (обратное) первичное преобразование), как описано здесь выше. Поэтому, в представленном раскрытии описание иногда приводится в отношении флага действительности пропуска преобразования как информации, относящейся к "(обратному) первичному преобразованию". Короче говоря, описание иногда приводится в отношении флага действительности пропуска преобразования как "информации, относящейся к разрешению пропуска "(обратного) первичного преобразования", относящейся к блоку данных, который должен составить намеченную цель (информации, указывающей, должен ли пропуск "(обратного) первичного преобразования" в отношении блока данных составлять намеченную цель)".
Естественно, содержание информации Hinfo заголовка является произвольным и любая информация, отличная от примеров, приведенных выше, может быть включена в информацию Hinfo заголовка.
Информация Pinfo режима предсказания содержит, например, такую информацию, как описано ниже.
Размер PUSize для блока PU является информацией, указывающей размер PU (размер блока предсказания) для целевого PU обработки. Информация IPinfo о режиме внутрикадрового предсказания (например, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode и т.д. согласно документу JCTVC-W1005, 7.3.8.5 Coding Unit syntax (синтаксис блока кодирования)) является информацией, связанной с режимом внутрикадрового предсказания блока, являющегося намеченной целью обработки. Информация MVinfo о режиме предсказания движения (например, merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X={0,1}, mvd и т.д. согласно документу JCTVC-W1005, 7.3.8.6 Prediction Unit Syntax (синтаксис блока предсказания)) является информацией, связанной с предсказанием движения блока, являющегося намеченной целью обработки.
Естественно, содержание информации Pinfo о режиме предсказания является произвольным, и любая информация, отличная от примеров, приведенных выше, может быть включена в информацию Pinfo о режиме предсказания.
Информация Tinfo о преобразовании содержит, например, такую информацию, как описано ниже.
Размер TBSize блока (или логарифмическое значение log2TBSize для TBSize с основанием 2 также упоминается как размер блока преобразования) является информацией, указывающей размер блока для блока преобразования как намеченной цели обработки.
Флаг (transquant_bypass_flag) обхода квантования-преобразования является информацией, указывающей должно ли пропускаться (обходиться) (обратное) преобразование и (обратное) квантование в блоке данных, который должен составлять намеченную цель (например, cu_transquant_bypass_flag и т.п. в документе JCTVC-W1005, 7.3.8.5 Coding unit syntax (синтаксис блока кодирования)). Другими словами, флаг обхода квантования-преобразования является информацией, относящейся к пропуску (обходу) (обратного) преобразования и (обратного) квантования блока данных, который должен составлять намеченную цель.
Например, в случае, когда флаг transquant_bypass_flag действительности обхода квантования-преобразования равен 1 (истина), (обратное) преобразование и (обратное) квантование обходятся. С другой стороны, в случае, когда флаг transquant_bypass_flag действительности обхода квантования-преобразования равен 0 (ложь), (обратное) преобразование и (обратное) квантование не обходятся.
Флаг (ts_flag) пропуска преобразования является информацией, указывающей, должно ли пропускаться (обратное) преобразование (например, transfrom_skip_flag и т.п. согласно документу JCTVC-W1005, 7.3.8.11 Residual coding syntax syntax (синтаксис синтаксиса остаточного кодирования). Другими словами, этот флаг пропуска преобразования является информацией, относящейся к пропуску (обратного) преобразования блока данных, который должен быть намеченной целью.
Например, в случае, когда флаг ts_flag пропуска преобразования равен 1 (истина), (обратное) преобразование ((обратное) первичное преобразование) пропускается. С другой стороны, в случае, когда флаг ts_flag пропуска преобразования равен 0 (ложь), (обратное) преобразование ((обратное) первичное преобразование) выполняется.
Следует заметить, что в случае способа, раскрытого в NPL 1 или NPL 2, флаг пропуска преобразования действует только при том, что он также упоминается как (обратное) первичное преобразование, как описано здесь выше. Поэтому, в представленном описании иногда описание приводится в отношении флага пропуска преобразования как информации, относящейся к "(обратному) первичному преобразованию". Короче говоря, описание иногда приводится в отношении флага пропуска преобразования как "информации в отношении пропуска "(обратного) первичного преобразования", относящейся к блоку данных, который должен составить намеченную цель (информации, указывающей, должен ли пропуск "(обратного) первичного преобразования" в отношении блока данных составлять намеченную цель)".
Идентификатор (pt_idx) первичного преобразования является идентификатором, указывающим, какое из (обратных) первичных преобразований должно применяться к (обратному) первичному преобразованию в вертикальном направлении и в горизонтальном направлении в блоке данных, который должен быть сделан намеченной целью (например, обратитесь к документу JVET-B1001, 2.5.1 Adaptive multiple Core transform. В JEM2, также обратитесь к emt_idx). Другими словами, идентификатор первичного преобразования является информацией, относящейся к содержанию (обратного) первичного преобразования для блока данных, который должен быть сделан намеченной целью.
Идентификатор (st_idx) вторичного преобразования является идентификатором, указывающим, какое из (обратных) вторичных преобразований должно применяться для блока данных, который должен быть сделан намеченной целью (например, обратитесь к документу JVET-B1001, 2.5.2 Secondary Transforms). В JEM2, также упоминается как as nsst_idx или rot_idx). Другими словами, идентификатор вторичного преобразования является информацией, относящейся к содержанию (обратного) вторичного преобразования для блока данных, который должен быть сделан намеченной целью.
Идентификатор вторичного преобразования st_idx является идентификатором, который, в случае, когда его значение больше 0, назначает матрицу для (обратного) вторичного преобразования. Другими словами, в этом случае идентификатор вторичного преобразования st_idx указывает выполнение (обратного) вторичного преобразования. Дополнительно, в случае, например, когда идентификатор st_idx вторичного преобразования имеет значение 0, он указывает пропуск (обратного) вторичного преобразования.
Идентификатор (scanIdx) сканирования является информацией, связанной со способом сканирования. Параметр квантования (quantization parameter, qp) является информацией, указывающей параметр квантования, который должен использоваться при (обратном) квантовании блока данных, который должен стать намеченной целью. Матрица (scaling_matrix) квантования является информацией, указывающей матрицу квантования, которая должна использоваться при (обратном) квантовании блока данных, который должен стать намеченной целью (например, JCTVC-W1005, 7.3.4 scaling list data syntax, синтаксис данных списка масштабирования).
Естественно, содержание информации Tinfo о преобразовании и любая информация, отличная от примеров, приведенных выше, может быть включена в эту информацию Tinfo о преобразовании.
Информация Hinfo заголовка подается, например, на соответствующие блоки. Информация Pinfo о режиме предсказания подается, например, на блок 114 кодирования и на блок 119 предсказания. Информация Tinfo о преобразовании подается, например, на блок 112 преобразования, блок 113 квантования, блок 114 кодирования, блок 115 обратного квантования и блок 116 обратного преобразования.
Блок 111 арифметических операций вычитает предсказанное изображение P, поданное на него от блока 119 предсказания, из изображения I, соответствующего введенному блоку с введенным обрабатываемым блоком, как указано в выражении (9), чтобы получить предсказанный остаток D, и подает предсказанный остаток D на блок 112 преобразования.
D = I - P ... (9)
Блок 112 преобразования выполняет процесс преобразования для предсказанного остатка D, поданного на него от блока 111 арифметических операций, основываясь на информации Tinfo о преобразовании, поданной на него от блока 101 управления, чтобы получить коэффициенты Coeff преобразования. Блок 112 преобразования подает коэффициенты Coeff преобразования на блок 113 квантования. Следует заметить, что блок 112 преобразования может после пропуска преобразования или обхода квантования-преобразования пропустить (проигнорировать) процесс преобразования (первичного преобразования и вторичного преобразования) и подать предсказанный остаток D в качестве коэффициентов Coeff преобразования на блок 113 квантования.
Блок 113 квантования выполняет масштабирование (квантование) коэффициентов Coeff преобразования, поданных от блока 112 преобразования, основываясь на информации Tinfo о преобразовании, поданной на него от блока 101 управления. Короче говоря, блок 113 квантования выполняет квантование коэффициентов Coeff преобразования, для которых был выполнен процесс преобразования, или коэффициентов Coeff преобразования, для которых процесс преобразования был пропущен (проигнорирован) (а именно, предсказанного остатка D). Блок 113 квантования подает коэффициенты преобразования после квантования, полученные посредством этого квантования, а именно, уровень для уровней коэффициентов квантования-преобразования, полученный посредством квантования, на блок 114 кодирования и на блок 115 обратного квантования. Следует заметить, что для блока 113 квантования также возможно после обхода квантования-преобразования пропускать (игнорировать) процесс квантования и подавать коэффициенты Coeff преобразования в качестве уровня для уровней коэффициентов квантования-преобразования на блок 114 кодирования.
Блок 114 кодирования кодирует заданным способом уровень для уровней коэффициентов квантования-преобразования, поданных от блока 113 квантования, Например, блок 114 кодирования преобразует параметры кодирования (информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании и т.п.), поданные на него от блока 101 управления, и уровень для уровней коэффициентов квантования-преобразования, поданный на него от блока 113 квантования, в значения синтаксиса индивидуальных синтаксических элементов и кодирует (например, арифметически кодирует) значения синтаксиса, чтобы сформировать битовую строку (кодированные данные).
Дополнительно, блок 114 кодирования получает информацию RInfo об остатке от уровня для уровней коэффициентов квантования-преобразования и кодирует информацию RInfo об остатке, формируя битовую строку (кодированные данные).
Информация RInfo об остатке содержит, например, координату Х последнего ненулевого коэффициента (last_sig_coeff_x_pos), координату Y последнего ненулевого коэффициента (last_sig_coeff_y_pos), флаг (coded_sub_block_flag) присутствия/отсутствия ненулевых коэффициентов субблока, флаг (sig_coeff_flag) присутствия/отсутствия ненулевых коэффициентов, флаг GR1 (gr1_flag), который является флаговой информацией, указывающей, больше ли 1 уровень ненулевого коэффициента, флаг GR2 (gr2_flag) который является флаговой информацией, указывающей, больше ли 2 уровень ненулевого коэффициента, код знака (sign_flag), являющийся кодом, указывающим, является ли положительным или отрицательным ненулевой коэффициент, остаточный уровень ненулевого коэффициента, который является информацией, указывающей остаточный уровень ненулевого коэффициента (coeff_abs_level_remaining) и так далее (обратитесь, например, к документу JCTVC-W1005, 7.3.8.11 Residua Coding syntax (синтаксис остаточного кодирования)).
Естественно, содержание информации RInfo об остатке является произвольным и любая информация, отличная от примеров, приведенных выше, может быть включена в информацию Rinfo об остатке.
Блок 114 кодирования, например, мультиплексирует битовую строку (кодированные данные) кодированных синтаксических элементов и выводит битовую строку в форме битового потока.
Блок 115 обратного квантования масштабирует (обратно квантует) значение уровня для уровня коэффициентов квантования-преобразования, подаваемого на него от блока 113 декодирования, основываясь на информации Tinfo о преобразовании, подаваемой на него от блока 101 управления, и получает коэффициенты Coeff_IQ преобразования после обратного квантования. Блок 115 обратного квантования подает коэффициенты Coeff_IQ преобразования на блок 116 обратного преобразования. Следует заметить, что блок 115 обратного квантования может также после обхода квантования-преобразования пропустить (игнорировать) процесс обратного квантования и подать уровень для уровней коэффициентов квантования-преобразования в качестве коэффициентов Coeff преобразования блок 116 обратного преобразования. Обратное квантование, выполняемое блоком 115 обратного квантования, является процессом, обратным квантованию, выполняемому блоком 113 квантования, и является процессом, подобным обратному квантованию, выполняемому устройством декодирования изображения, описанным здесь далее. Соответственно, обратное квантование здесь далее описывается в описании, относящемся к устройству декодирования изображения.
Блок 116 обратного преобразования выполняет обратное преобразование для коэффициентов Coeff_IQ преобразования, подаваемых от блока 115 обратного квантования, основываясь на информации Tinfo о преобразовании, поданной на него от блока 101 управления, чтобы получить предсказанный остаток D'. Блок 116 обратного преобразования подает предсказанный остаток D' на блок 117 арифметических операций. Следует заметить, что для блока 116 обратного преобразования также возможно пропустить (проигнорировать) после пропуска преобразования или после обхода квантования-преобразования процессы обратного преобразования (обратное вторичное преобразование и обратное первичное преобразование) и подать коэффициенты Coeff_IQ преобразования в качестве предсказанного остатка D' на блок 117 арифметических операций. Обратное преобразование, выполняемое блоком 116 обратного преобразования, является процессом, обратным преобразованию, выполняемому блоком 112 преобразования, и является процессом, подобным обратному преобразованию, выполняемому устройством декодирования изображения, описанным здесь далее.
Блок 117 арифметических операций суммирует предсказанный остаток D', полученный от блока 116 обратного преобразования, и предсказанное изображение P (предсказанный сигнал), подаваемое на него от блока 119 предсказания и соответствующее предсказанному остатку D', как представляется приведенным ниже выражением (10), чтобы получить локальное декодированное изображение Rec. Блок 117 арифметических операций подает локально декодированное изображение Rec в кадровую память 118.
Rec = D' + P ... (10)
Кадровая память 118 перестраивает декодированное изображение для каждого блока картинки, используя локально декодированное изображение Rec, подаваемое на него от блока 117 арифметических операций, и запоминает декодированное изображение в буфере в кадровой памяти 118. Кадровая память 118 считывает из буфера декодированное изображение, указанное блоком 119 прогнозирования, в качестве опорного изображения и подает декодированное изображение на блок 119 предсказания.Дополнительно, кадровая память 118 может хранить в буфере в кадровой памяти 118 информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании и т.п., имеющие отношение к формированию декодированного изображения.
Блок 119 предсказания получает декодированное изображение, хранящееся в кадровой памяти 118 и назначенное информацией Pinfo о режиме предсказания в качестве опорного изображения, и использует опорное изображение, чтобы сформировать предсказанное изображение P способом предсказания, назначенным информацией Pinfo о режиме предсказания. Блок 119 предсказания подает сформированное предсказанное изображение P на блок 111 арифметических операций и на блок 117 арифметических операций.
Такое устройство 100 кодирования изображения, как описано выше, содержит блок управления, который, в случае, когда должно быть пропущено первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропускает вторичное преобразование, представляющее процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
Блок преобразования
На фиг. 6 представлена блок-схема примера основной конфигурации устройства 112 преобразования. Как показано на фиг. 6, блок 112 преобразования содержит переключатель 131, блок 132 первичного преобразования и блок 133 вторичного преобразования.
Переключатель 131 является вариантом осуществления блока управления для управления выполнением первичного преобразования и вторичного преобразования. Например, в случае, когда переключатель 131 должен пропускать первичное преобразование, он осуществляет управление таким образом, что также пропускается и вторичное преобразование. Например, переключатель 131 управляет подачей к получателю предсказанного остатка D, поданного от блока 111 арифметических операций в ответ на значение флага ts_flag пропуска преобразования, связанного с пропуском первичного преобразования и содержащегося в информации Tinfo о преобразовании.
Например, в случае, когда значение флага ts_flag пропуска преобразования равно 0, а именно, в случае, когда флаг ts_flag пропуска преобразования указывает выполнение преобразования (первичного преобразования), переключатель 131 осуществляет управление таким образом, что выполняется, по меньшей мере, первичное преобразование. Короче говоря, в этом случае переключатель 131 подает предсказанный остаток D на блок 132 первичного преобразования.
С другой стороны, в случае, когда значение флага ts_flag пропуска преобразования равно 1, а именно, в случае, когда флаг ts_flag пропуска преобразования указывает пропуск (игнорирование) выполнения преобразования (первичного преобразования), переключатель 131 осуществляет управление таким образом, что первичное преобразование и вторичное преобразование пропускаются. Короче говоря, в этом случае переключатель 131 подает предсказанный остаток D в качестве коэффициентов Coeff на блок 113 квантования.
Соответственно, блок 112 преобразования может с легкостью ограничивать ненужное увеличение объема обработки при преобразовании.
Например, в прореженном остаточном сигнале (предсказанный остаток D), в котором количество ненулевых коэффициентов мало, аналогично предсказанному остатку D для матрицы размером 4х4, представляющей собой матрицу [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], желательно применять пропуск преобразования (пропуск первичного преобразования и вторичного преобразования), чтобы получить ограничение снижения сжатия энергии для ограничения снижения эффективности кодирования. Управляя выполнением преобразования в ответ на значение флага ts_flag пропуска преобразования, как описано выше, переключатель 131 может пропускать не только первичное преобразование, но также и вторичное преобразование с большей легкостью, в частности, в отношении прореженного остаточного сигнала, в котором количество ненулевых коэффициентов в таком случае мало, и увеличение объема обработки может ограничиваться, чтобы ограничивать снижение эффективности кодирования.
Следует заметить, что переключатель 131 может управлять подачей к получателю предсказанного остатка D, поданного от блока 111 арифметических операций, в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования, содержащегося в информации Tinfo о преобразовании.
Например, в случае, когда значение флага transquant_bypass_flag обхода квантования-преобразования равно 0, а именно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования указывает выполнение преобразования и квантования, переключатель 131 осуществляет управление таким образом, что, по меньшей мере, первичное преобразование выполняется. Короче говоря, в этом случае переключатель 131 подает предсказанный остаток D на блок 132 первичного преобразования.
С другой стороны, в случае, когда значение флага transquant_bypass_flag обхода квантования-преобразования равно 1, а именно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования указывает пропуск (игнорирование) преобразования и квантования, переключатель 131 осуществляет управление таким образом, что первичное преобразование и вторичное преобразование пропускаются. Короче говоря, в этом случае переключатель 131 подает предсказанный остаток D в качестве коэффициентов Coeff на блок 113 квантования.
Это дает возможность блоку 112 преобразования с легкостью ограничивать ненужное увеличение объема обработки при преобразовании аналогично случаю пропуска преобразования.
Блок 132 первичного преобразования выполняет первичное преобразование, такое как, например, ортогональное преобразование и т.п., для предсказанного остатка D, подаваемого от переключателя 131. Короче говоря, блок 132 первичного преобразования выполняет первичное преобразование под управлением переключателя 131.
В случае, когда первично преобразование должно быть выполнено, блок 132 первичного преобразования выполняет первичное преобразование способом, соответствующим значению идентификатора pt_idx первичного преобразования, который является информацией, связанной, например, с содержанием первичного преобразования. Например, блок 132 первичного преобразования выбирает первичное преобразование Phor в горизонтальном направлении и первичное преобразование Pver в вертикальном направлении, назначенные идентификатором pt_idx первичного преобразования, и выполняет матричную арифметическую операцию, как она представляется, например, нижеследующим выражением (11) для предсказанного остатка D, подаваемого от переключателя 131, чтобы получить коэффициенты Coeff_P преобразования после первичного преобразования (упоминаются также как коэффициенты первичного преобразования).
Следует заметить, что выражение (11) может быть таким, как следующее выражение (12).
Следует заметить, что оператор “” представляет операцию для выполнения внутреннего произведения между матрицами (матричного произведения), а оператор “T” представляет операцию с транспонированной матрицей. Блок 132 первичного преобразования подает полученные коэффициенты Coeff_P первичного преобразования на блок 133 вторичного преобразования.
Блок 133 вторичного преобразования преобразует коэффициенты Coeff_P первичного преобразования, полученные от блока 132 первичного преобразования, в одномерный вектор, выполняет матричную арифметическую операцию для одномерного вектора, выполняет масштабирование для одномерного вектора, для которого была выполнена матричная арифметическая операция, и выполняет вторичное преобразование, являющееся процессом преобразования для матрицирования масштабированного одномерного вектора. Короче говоря, блок 133 вторичного преобразования выполняет вторичное преобразование под управлением переключателя 131.
Блок 133 вторичного преобразования выполняет вторичное преобразование для коэффициентов Coeff_P первичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования как на информации, связанной с содержанием вторичного преобразования, и идентификаторе scanIdx сканирования, как на информации, связанной со способом сканирования коэффициентов преобразования, чтобы получить коэффициенты Coeff преобразования после вторичного преобразования (упоминаемые также как коэффициент вторичного преобразования).
Как показано на фиг. 6, блок 133 вторичного преобразования содержит блок 141 растеризации, блок 142 матричных арифметических операций, блок 143 масштабирования, блок 144 матрицирования и блок 145 выбора вторичного преобразования.
1d
1d
Блок 141 растеризации преобразует коэффициенты Coeff_P первичного преобразования, полученные от блока 132 первичного преобразования для каждого блока субблока (субблока 4х4), в вектор X с размерностью 1х16 на основе способа сканирования для коэффициентов преобразования, назначенных посредством идентификатора scanIdx сканирования. Блок 141 растеризации подает полученный в результате вектор X на блок 142 матричных арифметических операций.
Позиция А на фиг. 7 показывает типы scanType сканирования, назначаемые значениями идентификатора scanIdx сканирования. Как показано в позиции А на фиг. 7, в случае, когда идентификатор scanIdx сканирования равен 0, назначается сканирование в наклонном направлении (диагональное сканирование вверх-вправо); в случае, когда идентификатор scanIdx сканирования равен 1, назначается сканирование в горизонтальном направлении (горизонтальное быстрое сканирование); и в случае, когда идентификатор scanIdx сканирования равен 2, назначается сканирование в вертикальном направлении (вертикальное быстрое сканирование). Позиция В на фиг. 7 показывает порядки сканирования коэффициентов при различных сканированиях для субблока 4х4. В позициях В-D на фиг. 7 числовое значение, добавленное к соответствующей позиции коэффициента, представляют порядок, в котором сканируется позиция коэффициента. Позиция В на фиг. 7 показывает пример порядка сканирования при сканировании в горизонтальном направлении (горизонтальное быстрое сканирование); позиция С на фиг. 7 показывает пример порядка сканирования при сканировании в вертикальном направлении (вертикальное быстрое сканирование); и позиция D на фиг. 7 показывает пример порядка сканирования при сканировании в наклонном направлении (диагональное сканирование вверх-вправо).
Например, предполагается, что флаг ts_flag пропуска сканирования равен 0 и коэффициенты Coeff_P первичного сканирования, подаваемые от блока 132 первичного преобразования, являются такими, как матрица 4х4, что указывается следующим выражением (13).
Формула 6
Coeff_P =  ... (13)
1d
1d
Дополнительно, предполагается, что идентификатор scanIdx сканирования указывает горизонтальное сканирование hor. В этом случае, блок 141 растеризации сканирует коэффициенты Coeff_P первичного преобразования в соответствии с порядком сканирования коэффициентов при горизонтальном сканировании, показанном в позиции В на фиг. 7, и преобразует коэффициенты Coeff_P первичного сканирования в вектор X размерностью 1х16, как указывается следующим выражением (14) Блок 141 растеризации подает определенный вектор X на блок 142 матричных арифметических операций.
Формула 7
1d
X = [245, -42, -18, -30, -30, -31, 3, -2, 11, -4, -9, 4, 3, -2, 1, 0] ... (14)
Блок 145 выбора вторичного преобразования считывает матрицу R вторичного преобразования, назначенную с помощью идентификатора st_idx вторичного преобразования, из внутренней памяти (не показана) блока 145 выбора вторичного преобразования и подает матрицу R на блок 142 матричных арифметических операций. Например, когда идентификатор st_idx вторичного преобразования имеет определенное значение, блок 145 выбора вторичного преобразования считывает матрицу R размером 16х16, показанную на фиг. 8, для вторичного преобразования и подает матрицу R на блок 142 матричных арифметических операций.
Следует заметить, что блок 145 выбора вторичного преобразования может выбрать матрицу R для вторичного преобразования в ответ на идентификатор st_idx вторичного преобразования и информацию IPinfo о режиме внутрикадрового предсказания (например, количество режимов предсказания). В качестве альтернативы, блок 145 выбора вторичного преобразования может выбрать матрицу R в ответ на информацию MVinfo о предсказании движения и идентификатор st_idx вторичного преобразования вместо информации Ipinfo о режиме внутрикадрового предсказания.
1d
1d
Блок 142 матричных арифметических операций выполняет матричную арифметическую операцию, как показано нижеследующим выражением (15), используя одномерный вектор X и матрицу R для вторичного преобразования, и подает результирующий вектор Y на блок 143 масштабирования.
1d
1d
Здесь, оператор “T” представляет операцию с транспонированной матрицей. Например, посредством матричного произведения вектора X, представленного выражением (14), и матрицы R для вторичного преобразования, показанной на фиг. 8, получают такой результирующий вектор Y, как указывается нижеследующим выражением (16).
Формула 8
1d
Y = [63055, 138, -639, 1088, -8168, -12139, -2581, -3003, -4190, -5866, 1984, 2271, 1989, -878, -681, 319] ... (16)
1d
1d
Блок 143 масштабирования, чтобы нормализовать норму сигнала Y, поданного от блока 142 матричной арифметической операции, выполняет арифметическую операцию битового сдвига для N битов (N - натуральное число), как представляется нижеследующим выражением (17), чтобы определить сигнал Z после битового сдвига.
1d
1d
Z = (Y) >> N ... (17)
1d
Следует заметить, что перед арифметической операцией для N-битового сдвига значение 1 << (N -1) может быть добавлено в качестве смещения к каждому из элементов сигнала Z, как представлено нижеследующим выражением (18).
1d
1d
Следует заметить, что в выражении (18) Е является вектором с размерностью 1х16, в котором все элементы имеют значение, равное 1., в котором значения всех элементов равны 1. Например, поскольку матрица R для вторичного преобразования, показанная на фиг. 8, является 8-мибитовой масштабированной матрицей, значение N, которое должно использоваться для нормализации нормы с помощью блока 143 масштабирования, равно 8. Например, если сигнал Y, указанный в выражении (16), является установкой N, выполненной арифметической операцией, то при установке N = 8 в выражении (18), получают такой результат, как Z, представленный выражением (19).
Формула 9
1d
Z = [246, 1, -2, 4, -32, -47, -10, -12, -16, -23, 8, 9, 8, -3, -3, -1] (19)
1d
В целом, в случае, когда матрица R для вторичного преобразования находится в N-битовом масштабированном состоянии, величина битового сдвига при нормализации нормы равна N битов. Блок 143 масштабирования подает сигнал Z, полученный описанным выше способом, на блок 144 матрицирования.
1d
1d
Блок 144 матрицирования преобразует вектор Z с размерностью 1х16 после нормализации нормы в матрицу Х 4х4, основываясь на способе сканирования, назначенном идентификатором scanIdx сканирования. Например, блок 144 матрицирования матрицирует вектор Z с размерностью 1х16, указанный выражением (19), основываясь на горизонтальном сканировании, указанном в позиции B на фиг. 7, и, таким образом, получает коэффициенты Coeff преобразования матрицы 4х4, представленной нижеследующим выражением (20).
Формула 10
Coeff =  ... (20)
Блок 144 матрицирования подает полученные в результате коэффициенты Coeff преобразования на блок 113 квантования.
Например, в случае, когда флаг ts_flag пропуска преобразования указывает пропуск процесса преобразования (первичного преобразования), переключатель 131 может осуществить пропуск первичного преобразования и вторичного преобразования так, что блок 113 квантования выполняет квантование для предсказанного остатка D и блок 114 кодирования кодирует уровень коэффициентов квантования-преобразования и флаг ts_flag пропуска преобразования, чтобы сформировать битовый поток, содержащий их кодированные данные.
Последовательность выполнения операций процесса кодирования изображения
Теперь рассмотрим пример последовательности выполнения операций процесса, выполняемого устройством 100 кодирования изображения. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 9, будет описан пример последовательности выполнения операций процесса кодирования изображения.
После начала процесса кодирования изображения на этапе S101, блок 101 управления выполняет процесс управления кодированием и выполняет сегментацию блоков, установку параметров кодирования и т.д.
На этапе S102 блок 119 предсказания выполняет процесс предсказания, чтобы сформировать предсказанное изображение оптимального режима предсказания и т.п. Например, в процессе предсказания блок 119 предсказания выполняет внутрикадровое предсказание, чтобы сформировать предсказанное изображение оптимального режима внутрикадрового предсказания и т.п., выполняет межкадровое предсказание, чтобы сформировать предсказанное изображение оптимального режима межкадрового предсказания и т.п., и выбирает оптимальный режим предсказания из числа режимов предсказания, основываясь на значении функции стоимости и т.п.
На этапе S103 блок 111 арифметических операций арифметически вычисляет разность между введенным изображением и предсказанным изображением оптимального режима, выбранного в процессе предсказания на этапе S102. Короче говоря, блок 111 арифметических операций формирует предсказанный остаток D между введенным изображением и предсказанным изображением. Предсказанный остаток D, определенный таким образом, уменьшается в объеме данных по сравнению с начальными данными изображения. Соответственно, объем данных может сжиматься по сравнению с объемом данных в альтернативном случае, в котором изображение кодируется таким как есть, без изменений.
На этапе S104 блок 112 преобразования выполняет процесс преобразования для предсказанного остатка D, полученного в процессе на этапе S103, чтобы получить коэффициенты Coeff преобразования. Подробности процесса на этапе S104 описываются здесь далее.
На этапе S105 блок 113 квантования использует параметр квантования, вычисленный блоком 101 управления и т.п., чтобы квантовать коэффициенты Coeff преобразования, полученные в процессе на этапе S104, и получить уровень для уровней коэффициентов квантования-преобразования.
На этапе S106 блок 115 обратного квантования осуществляет обратное квантование уровня для уровней коэффициентов квантования-преобразования, сформированных в процессе на этапе S105 с характеристикой, соответствующей характеристике квантования на этапе S105, чтобы получить коэффициенты Coeff_IQ преобразования.
На этапе S107 блок 116 обратного преобразования выполняет процесс обратного преобразования коэффициентов Coeff_IQ, полученных в процессе на этапе S106, используя способ, соответствующий процессу преобразования на этапе S104, чтобы получить предсказанный остаток D'. Следует заметить, что этот процесс обратного преобразования является процессом, обратным процессу преобразования на этапе S104 и выполняется аналогично процессу обратного преобразования, выполняемому в процессе декодирования изображения, описанном здесь далее. Поэтому описание процесса обратного преобразования приводится в описании, относящемся к стороне декодирования.
На этапе S108 блок 117 арифметических операций суммирует предсказанное изображение, полученное в процесс предсказания на этапе S102, с предсказанным остатком D', полученным в процессе на этапе S107, чтобы сформировать декодированное изображение, которое декодируется локально.
На этапе S109 кадровая память 118 запоминает декодированное изображение, полученное в процессе на этапе S108 и локально декодированное.
На этапе S110 блок 114 кодирования кодирует уровень для уровней коэффициентов квантования-преобразования, полученный в процессе на этапе S105. Например, блок 114 кодирования кодирует уровень для уровней коэффициентов квантования-преобразования в качестве информации, связанной с изображением, полученным арифметическим кодированием и т.п., чтобы сформировать кодированные данные. Дополнительно, в этом случае блок 114 кодирования кодирует различные параметры кодирования (информацию Hinfo заголовка, информацию Pinfo о режиме предсказания и информацию Tinfo о преобразовании). Дополнительно, блок 114 кодирования получает информацию RInfo об остатке от уровня для уровней коэффициентов квантования-преобразования и кодирует информацию Rinfo об остатке. Блок 114 кодирования выводит кодированные данные различной информации, сформированные таким образом, совместно как битовый поток, наружу устройства 100 кодирования изображения. Этот битовый поток передается, например, на сторону декодирования по линии передачи или через носитель для записи данных.
Когда процесс на этапе S110 закончен, процесс кодирования изображения закончен.
Следует заметить, что блоки обработки в различных процессах являются произвольными и могут быть неодинаковыми. Соответственно, для процессов на индивидуальных этапах возможно, чтобы они выполнялись должным образом параллельно процессам на других этапах и т.п. или с измененным порядком обработки.
Последовательность выполнения процесса преобразования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 10, будет описан пример последовательности выполнения операций процесса преобразования, выполняемого на этапе S104, показанном на фиг. 9.
После того как на этапе S121 начался процесс преобразования, переключатель 131 принимает решение, равен ли 1 флаг ts_flag пропуска преобразования (истина). В случае, когда принято решение, что флаг ts_flag пропуска преобразования равен 1 (истина) (флаг ts_flag пропуска преобразования указывает пропуск процесса преобразования), первичное преобразование и вторичное преобразование (процессы на этапах S122-S130) пропускаются и процесс преобразования приходит к концу и обработка возвращается к фиг. 9. Короче говоря, переключатель 131 подает предсказанный остаток D в качестве коэффициентов Coeff преобразования на блок 113 квантования. С другой стороны, в случае, когда на этапе S121 принимается решение, что флаг flag ts_flag пропуска преобразования равен 0 (ложь) (флаг ts_flag пропуска преобразования указывает выполнение процесса преобразования), процесс переходит к этапу S122.
Следует заметить, что на этапе S121 переключатель 131 может дополнительно принять решение, равен ли 1 (истина) флаг transquant_bypass обхода квантования-преобразования. Вместе с этим, в случае, когда принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования 1 (истина) (флаг transquant_bypass_flag обхода квантования-преобразования указывает пропуск процесса преобразования и процесса квантования), первичное преобразование и вторичное преобразование (процессы на этапах S122-S130) пропускаются и процесс преобразования заканчивается и обработка возвращается к фиг. 9. В частности, переключатель 131 подает предсказанный остаток D в качестве коэффициентов Coeff преобразования на блок 113 квантования. С другой стороны, когда на этапе S121 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь), (флаг transquant_bypass_flag обхода квантования-преобразования указывает выполнение процесса преобразования и процесса квантования), процесс переходит к этапу S122.
На этапе S122 блок 132 первичного преобразования выполняет первичное преобразование для предсказанного остатка D, основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить коэффициенты Coeff_P первичного преобразования.
На этапе S123 блок 133 вторичного преобразования принимает решение, применяет ли вторичное преобразование идентификатор st_idx вторичного преобразования (st_idx > 0). В случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (идентификатор st_idx вторичного преобразования указывает пропуск вторичного преобразования), вторичное преобразование (процесс от этапа S124 до этапа S130) пропускается и процесс преобразования заканчивается и обработка возвращается обратно к фиг. 9. В частности, блок 133 вторичного преобразования подает коэффициенты Coeff_P первичного преобразования в качестве коэффициентов Coeff на блок 113 квантования.
С другой стороны, в случае, когда на этапе S123 принимается решение, что идентификатор st_idx вторичного преобразования больше 0 (идентификатор st_idx вторичного преобразования указывает выполнение вторичного преобразования), процесс переходит к этапу S124. Вторичное преобразование выполняется в процессах на этапах S124-S130.
На этапе S124 бюлок 145 выбора вторичного преобразования выбирает для вторичного преобразования матрицу R, назначенную идентификатором st_idx вторичного преобразования.
На этапе S125 блок 133 вторичного преобразования сегментирует блок преобразования намеченной цели обработки на субблоки и выбирает необработанный субблок.
1d
На этапе S126 блок 141 растеризации преобразует коэффициенты Coeff_P первичного преобразования в одномерный вектор X, 1х16, основываясь на способе сканирования, указанном идентификатором scanIdx сканирования.
1d
1d
На этапе S127 блок 142 матричных арифметических операций арифметически получает произведение столбцов между вектором X и матрицей R для вторичного преобразования, чтобы получить вектор Y.
1d
1d
На этапе S128 блок 143 масштабирования нормализует норму вектора Y, чтобы определить вектор Z.
1d
На этапе S129 блок 144 матрицирования преобразует вектор Z в матрицу 4х4 на основе способа сканирования, назначенного идентификатором scanIdx сканирования, чтобы определить коэффициенты Coeff преобразования субблока намеченной цели обработки. Коэффициенты Coeff преобразования подаются на блок 113 квантования.
На этапе S130 блок 133 вторичного преобразования принимает решение, все ли субблоки блока преобразования цели обработки были обработаны. В случае, когда решено, что необработанные субблоки существуют, обработка возвращается к этапу S125 и последующие процессы повторяются. Короче говоря, процессы на этапах S125-S130 (вторичное преобразование) выполняются для каждого субблока блока преобразования намеченной цели обработки. В случае, когда на этапе S130 решено, что все субблоки были обработаны (вторичное преобразование всех субблоков было выполнено), процесс преобразования заканчивается и обработка возвращается к фиг. 9.
Следует заметить, что процесс преобразования может выполнять изменение порядка обработки этапов или может изменять содержание процессов в пределах диапазона, в котором они могут выполняться. Например, в случае, когда на этапе S123 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы R для вторичного преобразования, так чтобы процессы на этапах S125-S130 могли быть выполнены.
Выполняя процессы таким образом, как описано выше, устройство 100 кодирования изображения может пропускать не только первичное преобразование, но также и вторичное преобразование, указывая пропуск процесса преобразования посредством флага ts_flag пропуска преобразования. Соответственно, можно, например, в отношении прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало и к которому желательно применить пропуск преобразования, выполнить процесс преобразования, который с большей легкостью достигает снижения объема обработки при преобразовании и ограничения ухудшения сжатия энергии и повышает эффективность кодирования.
Устройство декодирования изображения
Ниже описывается декодирование кодированных данных, кодированных таким способом, как описано выше. На фиг. 11 представлена блок-схема примера конфигурации устройства декодирования изображения в форме устройства обработки изображения, к которому применима представленная технология. Устройство 200 декодирования изображения, показанное на фиг. 11, является устройством декодирования изображения, соответствующим устройству 100 кодирования изображений, показанному на фиг. 5, и декодирует кодированные данные (битовый поток), сформированные устройством 100 кодирования изображения, используя способ декодирования, соответствующий способу кодирования устройством 100 кодирования изображения. Например, устройство 200 кодирования изображения содержит в себе технологию, предложенную стандартом HEVC, или технологию, предложенную стандартом JVET.
Следует заметить, что на фиг. 11 показаны основные блоки блоков обработки, потоки данных и т.д. и не все такие блоки обработки, потоки данных и т.д. обязательно показаны на фиг. 11. Другими словами, устройство 200 кодирования изображения может содержать блоки обработки, которые не показаны в виде блоков на фиг. 11, или может содержать процессы или потоки данных, которые не указываются стрелками или как-либо иначе на фиг. 11.
Как показано на фиг. 11, устройство 200 декодирования изображения содержит блок 211 декодирования, блок 212 обратного квантования, блок 213 обратного преобразования, блок 214 арифметических операций, кадровую память 215 и блок 216 предсказания. На блок 200 декодирования изображения подаются кодированные данные, сформированные устройством 100 кодирования изображения и т.п., например, в виде битового потока и т.п., например, через среду передачи, среду приема и т.п.
Блок 211 декодирования декодирует поданные на него кодированные данные, используя заданный способ декодирования, соответствующий способу кодирования. Например, блок 211 декодирования декодирует значения синтакиса синтаксических элементов из битовой строки кодированных данных (битового потока), поданные на него, в соответствии с определением таблицы синтаксиса. Синтаксические элементы содержат такую информацию, как, например, информация Hinfo заголовка, информация Pinfo о режиме предсказания, информация Tinfo о преобразовании, информация Rinfo об остатке и т.д.
Блок 211 декодирования обращается к информации Rinfo об остатке, чтобы получить уровень для уровней коэффициентов квантования-преобразования каждого положения коэффициента в каждом блоке преобразования. Блок 211 декодирования подает на соответствующие блоки информацию Pinfo о режиме предсказания, уровень для уровней коэффициентов квантования-преобразования и информацию Tinfo о преобразовании, полученные посредством декодирования. Например, блок 211 декодирования подает информацию Pinfo о режиме предсказания на блок 216 предсказания, подает уровень для уровней коэффициентов квантования-преобразования на блок 212 обратного квантования и подает информацию Tinfo о преобразовании на блок 212 обратного квантования и на блок 213 обратного преобразования.
Блок 212 обратного квантования масштабирует (обратно квантует) значение уровня для уровней коэффициентов квантования-преобразования, подаваемого на него от блока 211 декодирования, основываясь на информации Tinfo о преобразовании, подаваемой на него от блока 211 декодирования, чтобы получить коэффициенты Coeff_IQ преобразования после обратного квантования. Это обратное квантование является процессом, обратным квантованию, выполняемому блоком 113 квантования (фиг. 5) устройства 100 кодирования изображения. Следует заметить, что блок 115 обратного квантования (фиг. 5) выполняет обратное квантование аналогично блоку 212 обратного квантования. Блок 212 обратного квантования подает коэффициенты Coeff_IQ преобразования на блок 213 обратного преобразования. Следует заметить, что для блока 212 обратного квантования также возможно после обхода квантования-преобразования пропускать (игнорировать) процесс обратного квантования и подавать коэффициенты Coeff преобразования в качестве коэффициентов Coeff_IQ преобразования на блок 213 обратного преобразования.
Блок 213 обратного преобразования выполняет обратное преобразование для коэффициентов Coeff_IQ преобразования, подаваемых от блока 212 обратного квантования, основываясь на информации Tinfo о преобразовании, поданной на него от блока 211 декодирования, чтобы получить предсказанный остаток D'. Это обратное преобразование является процессом, обратным процессу преобразования, выполняемому блоком 112 преобразования (фиг. 5) устройства 100 кодирования изображения. Следует заметить, что блок 116 обратного преобразования выполняет обратное квантование аналогично блоку 213 обратного преобразования. Подробности обратного преобразования описываются здесь далее. Блок 213 обратного преобразования подает полученный предсказанный остаток D' на блок 214 арифметических операций. Следует заметить, что для блока 213 обратного преобразования также возможно пропустить (игнорировать) процесс обратного преобразования (обратного вторичного преобразования и обратного первичного преобразования) и подать коэффициенты Coeff_IQ преобразования в качестве предсказанного остатка D' на блок 214 арифметических операций.
Блок 214 арифметических операций суммирует предсказанный остаток D', поданный от блока 213 обратного преобразования, и предсказанное изображение P (предсказанный сигнал), соответствующее предсказанному остатку D', чтобы получить локальное декодированное изображение Rec, как указывается приведенным ниже выражением (21). Блок 214 арифметических операций перестраивает декодированное изображение для каждого блока картинки, используя результирующее локальное декодированное изображение Rec, и выводит полученное в результате локально декодированное изображение на выход устройства 200 декодирования изображения. Дополнительно, блок 214 арифметических операций также подает локально декодированное изображение Rec в кадровую память 215.
Rec = D' + P (21)
Кадровая память 215 перестраивает декодированное изображение для каждого блока картинки, используя локально декодированное изображение Rec, подаваемое на него от блока 214 арифметических операций, и запоминает декодированное изображение в буфере в кадровой памяти 215. Кадровая память 215 считывает из буфера декодированное изображение, указанное информацией Pinfo о режиме предсказания блока 216 предсказания, в качестве опорного изображения, и подает опорное изображение на блок 216 предсказания. Дополнительно, кадровая память 215 может хранить в буфере кадровой памяти 215 информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании и т.п., имеющие отношение к формированию декодированного изображения.
Блок 216 предсказания получает декодированное изображение, хранящееся в кадровой памяти 215 и назначенное информацией Pinfo о режиме предсказания, поданной от блока 211 декодирования, в качестве опорного изображения, и использует опорное изображение для формирования предсказанного изображения P способом предсказания, назначенным информацией Pinfo о режиме предсказания. Блок 216 предсказания подает изображение Р предсказания на блок 214 арифметических операций.
Такое устройство 200 декодирования изображения, как описано выше, содержит блок управления, который, в случае, когда должно быть пропущено обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, являющемуся процессом преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропускает обратное вторичное преобразование, представляющее преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
Блок обратного преобразования
На фиг. 12 приведена блок-схема примера основной конфигурации блока 213 обратного преобразования, показанного на фиг. 11. Как видно на фиг. 12, блок 213 обратного преобразования содержит переключатель 231, блок 232 обратного вторичного преобразования и блок 233 обратного первичного преобразования.
Переключатель 231 является вариантом осуществления блока управления для управления выполнением обратного вторичного преобразования и обратного первичного преобразования. Например, переключатель 231 осуществляет управление таким образом, что в случае, когда обратное первичное преобразование должно быть пропущено, также пропускается и обратное вторичное преобразование. Например, переключатель 231 выполняет такое управление в ответ на значение флага ts_flag пропуска преобразования, который является информацией, относящейся к пропуску обратного первичного преобразования.
Например, в случае, когда значение флага ts_flag пропуска преобразования равно 0, а именно, в случае, когда флаг ts_flag пропуска преобразования указывает выполнение обратного преобразования (обратного первичного преобразования), переключатель 231 осуществляет управление таким образом, что должны выполняться обратное вторичное преобразование и обратное первичное преобразование. Короче говоря, в этом случае переключатель 231 подает коэффициенты Coeff_IQ преобразования на блок 232 обратного вторичного преобразования.
В отличие от этого, в случае, когда значение флага ts_flag пропуска преобразования равно 1, а именно, в случае, когда флаг ts_flag пропуска преобразования указывает пропуск (игнорирование) обратного преобразования (обратного первичного преобразования), переключатель 231 осуществляет управление таким образом, что обратное вторичное преобразование и обратное первичное преобразование должны пропускаться. Короче говоря, в этом случае переключатель 231 подает коэффициенты Coeff_IQ в качестве предсказанного остатка D' на блок 214 арифметических операций.
Соответственно, блок 213 обратного преобразования может с легкостью ограничивать ненужное увеличение объема обработки при обратном преобразовании.
Например, в прореженном остаточном сигнале (коэффициенты Coeff_IQ преобразования), в котором количество ненулевых коэффициентов мало, аналогично коэффициентам Coeff_IQ преобразования для матрицы размером 4х4, представляющей собой матрицу [[255, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], предпочтительно применять пропуск преобразования (пропуск обратного вторичного преобразования и обратного первичного преобразования, чтобы ограничить снижение сжатия энергии для ограничения снижения эффективности кодирования. Управляя выполнением обратного преобразования в ответ на значение флага ts_flag пропуска преобразования, как описано выше, переключатель 231 может с большей легкостью пропускать не только обратное первичное преобразование, но также и обратное вторичное преобразование, в частности, в отношении прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало, как описано выше, и увеличение объема обработки при обратном преобразовании может ограничиваться, что ограничивает снижение эффективности кодирования.
Следует заметить, что переключатель 231 может управлять подачей к получателю коэффициентов Coeff_IQ преобразования, подаваемых извне, в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования, содержащегося в информации Tinfo о преобразовании.
Например, в случае, когда значение флага transquant_bypass_flag обхода квантования-преобразования равно 0, а именно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования указывает выполнение обратного преобразования и обратного квантования, переключатель 231 подает коэффициенты Coeff_IQ преобразования на блок 232 обратного вторичного преобразования.
С другой стороны, в случае, когда значение флага transquant_bypass_flag обхода квантования-преобразования равно 1, а именно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования указывает пропуск (игнорирование) преобразования и квантования, переключатель 231 осуществляет управление таким образом, что обратное вторичное преобразование и обратное первичное преобразование должны пропускаться. Короче говоря, в этом случае переключатель 231 подает коэффициенты Coeff_IQ в качестве предсказанного остатка D' на блок 214 арифметических операций.
Соответственно, блок 213 обратного преобразования может легко ограничивать ненужное увеличение объема обработки при преобразовании, аналогично как при пропуске преобразования.
Блок 232 обратного вторичного преобразования преобразует коэффициенты вторичного преобразования, полученные от переключателя 231, а именно, коэффициенты вторичного преобразования, полученные посредством декодирования и обратного квантования кодированных данных, в одномерный вектор, выполняет матричную арифметическую операцию для одномерного вектора, выполняет масштабирование одномерного вектора, для которого была выполнена матричная арифметическая операция, и выполняет обратное вторичное преобразование, являющееся процессом преобразования для матрицирования масштабированного одномерного вектора. Короче говоря, блок 232 обратного вторичного преобразования выполняет обратное вторичное преобразование под управлением переключателя 231.
Блок 232 обратного вторичного преобразования выполняет обратное вторичное преобразование коэффициентов Coeff_IQ преобразования, основываясь на идентификаторе st_idx вторичного преобразования, как на информации, связанной с содержанием вторичного преобразования, и идентификаторе scanIdx сканирования, как на информации, связанной со способом сканирования коэффициентов преобразования, чтобы получить коэффициенты Coeff_IS преобразования после обратного вторичного преобразования (упоминаемые также как коэффициенты первичного преобразования). Блок 232 обратного вторичного преобразования подает коэффициенты Coeff_IS первичного преобразования на блок 233 обратного первичного преобразования. Следует заметить, что подробности блока 232 обратного вторичного преобразования будут описаны здесь далее.
Блок 233 обратного первичного преобразования выполняет обратное первичное преобразование, такое, как, например, обратное ортогональное преобразование и т.п., для коэффициентов Coeff_IS первичного преобразования, поданных от блока 232 обратного вторичного преобразования. Короче говоря, блок 233 обратного первичного преобразования выполняет обратное первичное преобразование под управлением переключателя 231.
В случае, когда должно быть выполнено обратное первичное преобразование, блок 233 обратного первичного преобразования выполняет обратное первичное преобразование, например, способом, соответствующим значению идентификатора pt_idx первичного преобразования, который является информацией, связанной с содержанием обратного первичного преобразования. Например, блок 233 обратного первичного преобразования выбирает обратное первичное преобразование IPhor в горизонтальном направлении и обратное первичное преобразование IPver в вертикальном направлении, назначенные идентификатором pt_idx первичного преобразования, поданным от блока 211 декодирования, и выполняет такую матричную арифметическую операцию, которая представляется, например, выражением (22), чтобы получить предсказанный остаток D'.
T
-1
T
-1
Здесь, оператор "" представляет операцию выполнения внутреннего произведения между матрицами (матричного произведения), а оператор "T" представляет операцию с транспонированной матрицей. Дополнительно, обратное первичное преобразование IPhor в горизонтальном направлении является преобразованием, обратным первичному преобразованию Phor в горизонтальном направлении и представляется также как Phor (= Phor). Аналогично, обратное первичное преобразование IPver в вертикальном направлении является преобразованием, обратным первичному преобразованию Pver в вертикальном направлении и представляется также как Pver (= Pver). Следует заметить, что выражение (22), приведенное выше, может быть представлено таким, как следующее выражение (23).
Блок 233 обратного первичного преобразования подает результирующий предсказанный остаток D' на блок 214 арифметических операций.
Далее описывается блок 232 обратного вторичного преобразования. Как показано на фиг. 12, блок 232 обратного вторичного преобразования содержит блок 241 растеризации, блок 242 матричных арифметических операций, блок 243 масштабирования, блок 244 матрицирования и блок 245 выбора обратного вторичного преобразования.
1d
1d
Блок 241 растеризации преобразует коэффициенты Coeff_IQ преобразования, поданные от переключателя 231 для каждого блока субблока (субблока 4х4), в вектор X с размерностью 1х16, основываясь на способе сканирования коэффициентов преобразования, назначенном посредством идентификатора scanIdx сканирования, полученного от блока 211 декодирования. Блок 241 растеризации подает полученный в результате вектор X на блок 242 матричных арифметических операций. Следует заметить, что способы сканирования, соответствующие идентификаторам scanIdx сканирования, которые являются информацией, связанной со способами сканирования коэффициентов преобразования, являются такими, как описано здесь выше со ссылкой на фиг. 7.
Например, предполагается, что каждый из коэффициентов Coeff_IQ преобразования, поданных на блок 213 обратного преобразования, является такой матрицей 4х4, как представлено следующим выражением (24).
Формула 11
Coeff_IQ =  (24)
1d
1d
В случае, когда флаг ts_flag пропуска преобразования равен 0 и идентификатор scanIdx сканирования указывает горизонтальное сканирование hor, блок 241 растеризации сканирует коэффициенты Coeff_IQ преобразования в соответствии с порядком сканирования коэффициентов горизонтального сканирования, показанным в позиции B на фиг. 7, чтобы преобразовать коэффициенты Coeff_IQ преобразования в такой вектор X с размерностью 1х16, как представлено нижеследующим выражением (25). Затем блок 241 растеризации подает полученный в результате вектор X на блок 242 матричных арифметических операций.
Формула 12
1d
X = [245, -42, -18, -30, -30, -31, 3, -2, 11, -4, -9, 4, 3, -2, 1, 0] (25)
T
T
Блок 245 выбора обратного вторичного преобразования считывает матрицу IR (= R) для обратного вторичного преобразования, подаваемую от блока 211 декодирования и назначенную с помощью идентификатора st_idx вторичного преобразования, который является информацией, связанной с содержанием вторичного преобразования, из внутренней памяти (не показана) блока 245 выбора обратного вторичного преобразования и подает считанную матрицу IR на блок 242 матричных арифметических операций. Например, когда идентификатор st_idx вторичного преобразования имеет определенное значение, блок 245 выбора обратного вторичного преобразования считывает транспонированную матрицу R размером 16х16, показанную на фиг. 8, как матрицу IR для обратного вторичного преобразования и подает матрицу R на блок 242 матричных арифметических операций.
T
Следует заметить, что блок 245 выбора обратного вторичного преобразования может выбрать матрицу IR (=R) обратного вторичного преобразования, например, в ответ на идентификатор st_idx вторичного преобразования или на информацию IPinfo о режиме внутрикадрового предсказания (например, количество режимов внутрикадрового предсказания), поданные на него от блока 211 декодирования. Альтернативно, обратная матрица IR может быть выбрана в ответ на информацию MVinfo о предсказании движения и идентификатор st_idx вторичного преобразования вместо информации IPinfo о режиме внутрикадрового предсказания.
1d
1d
T
Блок 242 матричных арифметических операций выполняет для каждого субблока (субблока 4х4) такую матричную арифметическую операцию, как показано нижеследующим выражением (26), используя одномерный вектор X с размерностью 1х16 и матрицу IR (= R) для обратного вторичного преобразования, чтобы получить вектор Y как результат матричной арифметической операции.
1d
1d
1d
T
Здесь, оператор “T” представляет операцию с транспонированной матрицей. Например, блок 242 матричных арифметических операций выполняет матричное произведение, представленное выражением (26), используя вектор X, представленный выражением (25), приведенным здесь ранее, и транспонированную матрицу R матрицы R после второго преобразования, показанного на фиг. 8, чтобы получить такой вектор Y, как представлено нижеследующим выражением (27). Блок 242 матричных арифметических операций подает результирующий вектор Y на блок 243 масштабирования.
Формула 13
1d
Y = [65380, 78, 34, -68, -121, 43, -79, 130, -24, 83, 109, 76, 23, 58, 65, 52]
(27)
1d
1d
1d
Блок 243 масштабирования, чтобы нормализовать норму сигнала Y, поданного от блока 242 матричных арифметических операций, выполняет для каждого субблока (субблока 4х4) такую арифметическую операцию битового сдвига для N битов (N - натуральное число), которая представляется нижеследующим выражением (28) для всех элементов сигнала Y, чтобы определить сигнал Z после битового сдвига.
1d
1d
Z = (Y) >> N (28)
1d
Следует заметить, что перед арифметической операцией сдвига для N битов значение 1 << (N –1) может быть добавлено в качестве смещения к каждому из элементов сигнала Z, как представлено нижеследующим выражением (29). Следует заметить, что в выражении (29) вектор Е является вектором с размерностью 1х16, в котором значения всех элементов равны 1.
T
Например, поскольку матрица IR (= R)для обратного вторичного преобразования, показанная на фиг. 8, является 8-мибитовой масштабированной матрицей, значение N, которое должно использоваться для нормализации нормы с помощью блока 243 масштабирования, равно 8.
1d
Например, результат (сигнал Z), когда арифметическая операция выполняется для установки N на значение N = 8 в выражении (29), становится таким, как представляется следующим выражением (30).
Формула 14
1d
Z = [255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] (30)
T
В целом, в случае, когда матрица IR (= R) для обратного вторичного преобразования находится в N-битовом масштабированном состоянии, величина битового сдвига при нормализации нормы равна N битов.
1d
1d
Блок 244 матрицирования для каждого субблока (субблока 4х4) принимает в качестве входных сигналов сигнал Z после нормализации нормы и идентификатор scanIdx сканирования и преобразует вектор Z с размерностью 1х16, поданный от блока 243 масштабирования, в коэффициенты Coeff_IS первичного преобразования матрицы 4х4, основываясь на способе сканирования, назначенном идентификатором scanIdx сканирования, поданным от блока 211 декодирования.
1d
Например, блок 244 матрицирования матрицирует вектор Z с размерностью 1х16, представленный выражением (30), основываясь на горизонтальном сканировании, указанном в позиции B на фиг. 7, и, таким образом, получает коэффициенты Coeff_IS матрицы 4х4, как представлено нижеследующим выражением (31).
Формула 15
Coeff_IS =  (31)
Блок 244 матрицирования подает результирующие коэффициенты Coeff_IS первичного преобразования на блок 233 обратного первичного преобразования.
Последовательность выполнения операций процесса декодирования изображения
Здесь описывается последовательность выполнения процессов, выполняемых устройством 200 декодирования изображения, представленным выше. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 13, описывается пример последовательности выполнения операций процесса кодирования изображения.
После того как на этапе S201 начался процесс декодирования изображения, блок 211 декодирования декодирует битовый поток (кодированные данные), подаваемый на устройство 200 декодирования изображения, чтобы получить информацию, такую как информация Hinfo заголовка, информация Pinfo о режиме предсказания, информация Tinfo о преобразовании, информация Rinfo об остатке, уровень для уровней коэффициентов квантования-преобразования и т.п.
На этапе S202 блок 212 обратного квантования осуществляет обратное квантование уровня для уровней коэффициентов квантования-преобразования, полученных в процессе на этапе S201, чтобы получить коэффициенты Coeff_IQ преобразования. Это обратное квантование является процессом, обратным квантованию, выполняемому на этапе S105 (фиг. 9) процесса кодирования изображения, и является процессом, аналогичным обратному квантованию, выполняемому на этапе S106 (фиг. 9) процесса кодирования изображения.
На этапе S203 блок 213 обратного преобразования выполняет процесс обратного преобразования коэффициентов Coeff_IQ преобразования, полученных в процессе на этапе S202, чтобы получить предсказанный остаток D'. Это обратное преобразование является процессом, обратным процессу преобразования, выполняемому на этапе S104 (фиг. 9) процесса кодирования изображения, и является процессом, аналогичным обратному преобразованию, выполняемому на этапе S107 (фиг. 9) процесса кодирования изображения.
На этапе S204 блок 216 предсказания выполняет предсказание в режиме предсказания, таком же как при кодировании, основываясь на информации Pinfo о режиме предсказания, чтобы сформировать предсказанное изображение.
На этапе S205 блок 214 арифметических операций суммирует предсказанное изображение, полученное в процесс на этапе S102, с предсказанным остатком D', полученным в процессе на этапе S203, чтобы получить декодированное изображение.
Когда процесс на этапе S205 закончен, процесс декодирования изображения заканчивается.
Последовательность выполнения операций процесса обратного преобразования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 14, описывается пример последовательности выполнения операций процесса обратного преобразования, выполняемого на этапе S203, показанном на фиг. 13.
После того как на этапе S221 начался процесс обратного преобразования, переключатель 231 принимает решение, равен ли 1 флаг ts_flag пропуска преобразования (истина). В случае, когда принято решение, что флаг ts_flag пропуска преобразования равен 1 (истина) (флаг ts_flag пропуска преобразования указывает пропуск процесса обратного преобразования), обратное вторичное преобразование и обратное первичное преобразование (процессы на этапах S222-S230) пропускаются и процесс обратного преобразования прекращается и обработка возвращается к фиг. 13. Короче говоря, переключатель 231 подает коэффициенты Coeff_IQ преобразования в качестве предсказанного остатка D' на блок 214 арифметических операций. С другой стороны, в случае, когда принимается решение, что флаг flag ts_flag пропуска преобразования равен 0 (ложь) (флаг ts_flag пропуска преобразования указывает выполнение процесса обратного преобразования), процесс переходит к этапу S222.
Следует заметить, что на этапе S221 переключатель 231 может дополнительно принять решение, равен ли 1 (истина) флаг transquant_bypass обхода квантования-преобразования. Вместе с этим, в случае, флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина) (флаг transquant_bypass_flag обхода квантования-преобразования указывает пропуск процесса обратного квантования и процесса обратного преобразования), обратное вторичное преобразование и обратное первичное преобразование (процессы на этапах S222-S230) пропускаются и процесс обратного преобразования заканчивается и обработка возвращается к фиг. 13. Короче говоря, переключатель 231 подает коэффициенты Coeff_IQ преобразования в качестве предсказанного остатка D' на блок 214 арифметических операций. С другой стороны, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь) (флаг transquant_bypass_flag обхода квантования-преобразования указывает выполнение процесса обратного квантования и процесса обратного преобразования), процесс переходит к этапу S222.
На этапе S222 блок 232 обратного вторичного преобразования принимает решение, применяет ли идентификатор st_idx вторичного преобразования обратное вторичное преобразование (st_idx > 0). В случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (идентификатор st_idx вторичного преобразования указывает пропуск обратного вторичного преобразования), обратное вторичное преобразование (процессы на этапах S223-S229) пропускается и обработка переходит к этапу S230. Короче говоря, блок 232 обратного вторичного преобразования подает коэффициенты Coeff_IQ преобразования в качестве коэффициентов Coeff_Р на блок 233 обратного первичного преобразования.
С другой стороны, в случае, когда на этапе S222 принимается решение, что идентификатор st_idx вторичного преобразования больше 0 (идентификатор st_idx вторичного преобразования указывает выполнение обратного вторичного преобразования), обработка переходит к этапу S223. Обратное вторичное преобразование выполняется процессами на этапах S224-S229.
На этапе S223 блок 245 выбора обратного вторичного преобразования выбирает для обратного вторичного преобразования матрицу IR, назначенную идентификатором st_idx вторичного преобразования.
На этапе S224 блок 232 обратного вторичного преобразования выбирает необработанный субблок, содержащийся в блоке преобразования намеченной цели обработки.
На этапе S225 блок 241 растеризации преобразует коэффициенты Coeff_IQ преобразования в вектор X1d, с размерностью 1х16, основываясь на способе сканирования, назначенном идентификатором scanIdx сканирования.
1d
1d
На этапе S226 блок 242 матричных арифметических операций арифметически получает матричное произведение между вектором X и матрицей IR для обратного вторичного преобразования, чтобы определить вектор Y.
1d
1d
На этапе S227 блок 243 масштабирования нормализует норму вектора Y, чтобы определить вектор Z.
1d
На этапе S228 блок 244 матрицирования преобразует вектор Z в матрицу 4х4 на основе способа сканирования, назначенного идентификатором scanIdx сканирования, чтобы определить коэффициенты Coeff_Р первичного преобразования субблока намеченной цели обработки.
На этапе S229 блок 232 обратного вторичного преобразования принимает решение, все ли субблоки блока преобразования намеченной цели обработки были обработаны. В случае, когда необработанные субблоки существуют, обработка возвращается к этапу S224 и последующие процессы повторяются. Короче говоря, процессы на этапах S224-S229 (обратное вторичное преобразование) выполняются для каждого субблока блока преобразования намеченной цели обработки. В случае, когда на этапе S229 решено, что все субблоки были обработаны (обратное вторичное преобразование для всех субблоков было выполнено), обработка переходит к этапу S230.
На этапе S230 блок 233 обратного первичного преобразования выполняет обратное первичное преобразование коэффициентов Coeff_P первичного преобразования основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить предсказанный остаток D'. Предсказанный остаток D' подается на блок 214 арифметических операций.
Когда процесс на этапе S230 закончен, процесс обратного преобразования заканчивается и обработка возвращается к фиг. 13.
Следует заметить, что в процессе обратного преобразования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Например, в случае, когда на этапе S222 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы IR для обратного вторичного преобразования, так чтобы выполнялись процессы на этапах S223-S229.
Выполняя процессы таким образом, как описано выше, устройство 200 декодирования изображения может пропускать не только обратное первичное преобразование, но также и обратное вторичное преобразование, указывая пропуск процесса преобразования посредством флага ts_flag пропуска преобразования. Соответственно, может быть возможным, например, в отношении прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало и к которому желательно применить пропуск преобразования, выполнять процесс обратного преобразования, который позволяет достигнуть снижения объема обработки при обратном преобразовании, ограничивает снижение сжатия энергии и повышает эффективность кодирования.
2. Второй вариант осуществления
Пропуск кодирования и декодирования флага пропуска преобразования
В технологии, раскрытой в NPL 1 (JEM2), идентификатор st_idx вторичного преобразования кодируется в блоке CU и флаг flag ts_flag пропуска преобразования кодируется в блоке каждого блока преобразования, содержащегося в CU.
Например, представленная технология, описанная выше, в связи с первым вариантом осуществления, применяется к этой технологии (JEM2) таким образом, что в случае, когда флаг ts_flag пропуска преобразования равен 1 (применяется пропуск преобразования), (обратное) первичное преобразование и (обратное) вторичное преобразования пропускаются. В этом случае, когда идентификатор st_idx вторичного преобразования указывает выполнение вторичного преобразования, флаг ts_flag пропуска преобразования не может указывать пропуск процесса (обратного) преобразования в CU и флаг ts_flag пропуска преобразования определяется как 0. Короче говоря, в этом случае кодирование флага ts_flag пропуска преобразования становится избыточным. Соответственно, существует возможность снижения эффективности кодирования.
Поэтому в случае, когда выполняется второе преобразование для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, кодирование первой информации, связанной с пропуском первичного преобразования, пропускается.
Поскольку это делает возможным пропускать кодирование первой информации в случае, когда выполняется вторичное преобразование, снижение эффективности кодирования может быть ограничено.
Дополнительно, в случае, когда выполняется обратное вторичное преобразование, представляющее преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, декодирование кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, пропускается.
Поскольку это делает возможным пропускать декодирование кодированных данных первой информации в случае, когда выполняется вторичное преобразование, снижение эффективности кодирования может быть ограничено.
Синтаксис
Пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, как описано выше, приводится на фиг. 15. Как указано на четвертом этапе сверху на фиг. 15, для кодирования флага ts_flag пропуска преобразования (а именно, декодирования кодированных данных флага ts_flag пропуска преобразования), одним из условий является то, что идентификатор st_idx вторичного преобразования равен 0. В частности, в случае, когда идентификатор st_idx вторичного преобразования не равен 0, а именно, в случае, когда выполняется (обратное) вторичное преобразование, кодирование флага ts_flag пропуска преобразования (декодирование кодированных данных флага ts_flag пропуска преобразования) пропускается.
Блок кодирования
В этом случае, также, устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. Однако, в случае, когда для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть выполнено вторичное преобразование, устройство 100 кодирования изображения содержит блок кодирования для пропуска кодирования первой информации, связанной с пропуском первичного преобразования. Однако, в случае, когда для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть выполнено вторичное преобразование, устройство 100 кодирования изображения содержит блок кодирования для пропуска кодирования первой информации, связанной с пропуском первичного преобразования.
На фиг. 16 представлена функциональная блок-схема, показывающая пример основных функций, связанных с кодированием флага ts_flag пропуска преобразования, которое выполняется с помощью выполнения программы и т.п., в данном случае, блоком 114 кодирования. Как показано на фиг. 16, выполняя программу, блок 114 кодирования может содержать в качестве функций, связанных с кодированием флага ts_flag пропуска преобразования, например, функции блока 301 кодирования флага действительности вторичного преобразования, блока 302 кодирования идентификатора вторичного преобразования, блока 303 кодирования флага действительности пропуска преобразования, блока 304 кодирования максимального размера блока пропуска преобразования, блока 305 кодирования флага обхода квантования-преобразования и блока 306 кодирования флага пропуска преобразования.
Блок 301 кодирования флага действительности вторичного преобразования выполняет процесс, связанный с кодированием флага st_enabled_flag действительности вторичного преобразования, который является информацией, связанной с разрешением вторичного преобразования. Блок 302 кодирования идентификатора вторичного преобразования выполняет процесс, связанный с кодированием идентификатора st_idx вторичного преобразования, который является информацией, связанной с содержанием вторичного преобразования. Блок 303 кодирования флага действительности пропуска преобразования выполняет процесс, связанный с кодированием флага st_enabled_flag действительности пропуска преобразования, который является информацией, связанной с разрешением пропуска преобразования (первичного преобразования). Блок 304 кодирования максимального размера блока пропуска преобразования выполняет процесс, связанный с кодированием максимального размера блока пропуска преобразования MaxTSSize, указывающего максимальный размер блока преобразования, с помощью которого разрешается пропуск преобразования (первичного преобразования). Блок 305 кодирования флага обхода квантования-преобразования выполняет процесс, связанный с кодированием флага transquant_bypass_flag обхода кодирования-преобразования, который является информацией, связанной с пропуском (обходом) преобразования (первичного преобразования и вторичного преобразования) и и квантования. Блок 306 кодирования флага пропуска преобразования выполняет процесс, связанный с кодированием флага ts_flag пропуска преобразования, который является информацией, связанной с пропуском преобразования (первичного преобразования).
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. Устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, аналогично этому процессу в случае первого варианта осуществления. Однако, в этом случае устройство 100 кодирования изображения выполняет кодирование флага ts_flag пропуска преобразования и т.п. в ответ на значение идентификатора st_idx вторичного преобразования и т.п. на этапе S110 (фиг. 9) процесса кодирования изображения. Пример последовательности выполнения операций кодирования флага ts_flag пропуска преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 17. Короче говоря, процесс кодирования, показанный на фиг. 17, выполняется как часть процесса кодирования, выполняемого на этапе S110 на фиг. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольными способами.
После того как на этапе S301 начат процесс кодирования, блок 301 кодирования флага действительности вторичного преобразования кодирует флаг st_enabled_flag действительности вторичного преобразования, содержащийся в информации Hinfo заголовка, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага st_enabled_flag действительности вторичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
На этапе S302 блок 302 кодирования идентификатора вторичного преобразования принимает решение, равен ли 1 (истина) флаг st_enabled_flag действительности вторичного преобразования, содержащийся в информации Hinfo заголовка. В случае, когда решено, что флаг st_enabled_flag действительности вторичного преобразования равен 1, а именно, в случае, когда решено, что выполнение вторичного преобразования разрешается, процесс переходит к этапу S303.
На этапе S303 блок 302 кодирования идентификатора вторичного преобразования кодирует идентификатор st_idx вторичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные идентификатора st_idx вторичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования. После того как процесс на этапе S303 закончен, обработка переходит на этап S304.
С другой стороны, в случае, когда на этапе S302 принято решение, что флаг st_enabled_flag действительности вторичного преобразования равен 0 (ложь), а именно, в случае, когда выполнение вторичного преобразования не разрешается, процесс на этапе S303 пропускается и обработка переходит к этапу S304.
Если вторичное преобразование не разрешается, то тогда идентификатор st_idx вторичного преобразования необязателен. Соответственно, в этом случае блок 302 кодирования идентификатора вторичного преобразования пропускает кодирование идентификатора st_idx вторичного преобразования. Поскольку это это делает возможным пропускать кодирование избыточной информации, то можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
На этапе S304 блок 303 кодирования флага действительности пропуска преобразования кодирует флаг ts_enabled_flag действительности пропуска преобразования, содержащийся в информации Hinfo заголовка, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага ts_enabled_flag действительности пропуска преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
На этапе S305 блок 304 кодирования максимального размера блока пропуска преобразования принимает решение, равен ли 1 (истина) флаг ts_enabled_flag действительности пропуска преобразования, содержащийся в информации Hinfo заголовка. В случае, когда решено, что флаг ts_enabled_flag действительности пропуска преобразования равен 1, а именно, в случае, когда решено, что пропуск преобразования разрешается (пропуск первичного преобразования и вторичного преобразования), процесс переходит к этапу S306.
На этапе S306 блок 304 кодирования максимального размера блока пропуска преобразования кодирует максимальный размер блока пропуска преобразования (или логарифмическое значение log2MaxTSSize с основанием 2), чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные максимального размера log2MaxTSSize блока пропуска преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования. Когда процесс на этапе S306 закончен, обработка переходит на этап S307.
С другой стороны, в случае, когда на этапе S305 принято решение, что флаг ts_enabled_flag действительности пропуска преобразования равен 0, а именно, в случае, когда пропуск преобразования не разрешен, процесс на этапе S306 пропускается и обработка переходит к этапу S307.
Если пропуск преобразования не может быть выполнен, то тогда максимальный размер MaxTSSize (или log2TSSize) блока пропуска преобразования необязателен. Соответственно, в этом случае блок 304 кодирования максимального размера блока пропуска преобразования пропускает кодирование максимального размера MaxTSSize (или log2MaxTSSize) блока пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничить увеличение нагрузки на процесс кодирования и ограничить снижение эффективности кодирования.
На этапе S307 блок 305 кодирования флага обхода квантования-преобразования кодирует флаг transquant_bypass_flag обхода квантования-преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага transquant_bypass_flag обхода кодирования-декодирования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровня коэффициентов квантования-преобразования.
На этапе S308 блок 306 кодирования флага пропуска преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования, содержащийся в информации Tinfo о преобразовании. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда преобразование (первичное преобразование и вторичное преобразование) и квантование должны быть пропущены (обойдены), процессы на этапах S309-S312 пропускаются и процесс кодирования заканчивается, а обработка переходит к фиг. 9.
Если преобразование и квантование обходятся, то тогда флаг ts_flag пропуска преобразования необязателен. Соответственно, в этом случае блок 306 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничить увеличение нагрузки на процесс кодирования и ограничить снижение эффективности кодирования.
В случае, когда на этапе S308 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь), а именно, в случае, когда решено, что квантование и преобразование не должны пропускаться (обходиться), обработка переходит к этапу S309.
На этапе S309 блок 306 кодирования флага пропуска преобразования принимает решение, является ли значение идентификатора st_idx вторичного преобразования большим, чем 0 (st_idx > 0). В случае, когда значение идентификатора st_idx вторичного преобразования больше 0, а именно, в случае, когда принимается решение, что вторичное преобразование должно быть выполнено, процессы на этапах S310-S312 пропускаются и процесс кодирования заканчивается и обработка возвращается обратно к фиг. 9.
Если вторичное преобрпазование выполняется, то поскольку пропуск преобразования не выполняется, значение флага ts_flag пропуска преобразования равно 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования, блок 306 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S309 принимается решение, что значение идентификатора st_idx вторичного преобразования равно 0, а именно, что вторичное преобразование должно быть пропущено, обработка переходит к этапу S310.
На этапе S310 блок 306 кодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) значение флага ts_enabled_flag действительности пропуска преобразования, содержащегося в информации Hinfo заголовка. В случае, когда принимается решение, что флаг ts_enabled_flag действительности пропуска преобразования равен 0, а именно, когда пропуск преобразования не разрешается, процессы на этапах S311 и S312 пропускаются, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Если пропуск преобразования выполняться не может, то тогда флаг ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования, блок 306 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S310 решено, что флаг ts_enabled_flag действительности пропуска преобразования равен 0, а именно, что пропуск преобразования разрешен, обработка переходит к этапу S311.
На этапе S311 блок 306 кодирования флага пропуска преобразования принимает решение, больше или нет размер TBSize блока преобразования намеченной цели обработки, чем максимальный размер MaxTSSize блока пропуска преобразования (является ли истинным выражение условия TBSize <= MaxTSSize). В случае, когда решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxTSSize блoka пропуска преобразования, а именно в случае, когда выражение условия, приведенное выше, равно 0 (ложь), процесс на этапе S312 пропускается и процесс кодирования заканчивается и обработка переходит к фиг. 9.
В случае, когда размер блока преобразования больше, чем максимальный размер блока пропуска, поскольку пропуск преобразования не разрешается, значение флага ts_flag преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования, блок 306 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничить увеличение нагрузки на процесс кодирования и ограничить снижение эффективности кодирования.
В случае, когда на этапе S311 решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 1 (истина), обработка переходит к этапу S312.
Следует заметить, что на этапе S311 выражение условия (TBSize <= MaxTSSize), приведенное выше, может быть заменено другим выражением условия (log2TrafroSize <= log2MaxTSSize), используя логарифмическое значение log2TrafoSize (или log2TBSize) с основанием 2 размера TB или логарифмическое значение log2MaxTSSize с основанием 2 максимального размера MaxTSSize блока пропуска преобразования.
На этапе S312 блок 306 кодирования флага пропуска преобразования кодирует флаг ts_flag пропуска преобразования, чтобы сформировать битовый поток (кодированные данные), и выводит кодированные данные. Кодированные данные флага ts_flag пропуска преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Другими словами, только в случае, когда выражение (32) условия, приведенное ниже, равно 1 (истина), флаг ts_flag пропуска преобразования кодируется. Это соответствует четвертому этапу представленного выше синтаксиса, описанного со ссылкой на фиг. 15.
Логическое значение = (ts_enable_flag &&
!transquant_bypass_flag &&
(log2TrafoSize <= log2MaxTSSize) &&
st_idx == 0) (32)
Когда процесс на этапе S312 закончен, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать кодирование флага ts_flag пропуска кодирования в случае, когда идентификатор st_idx вторичного преобразования применяет вторичное преобразование (st_idx > 0), если идентификатор st_idx вторичного преобразования должен кодироваться в блоке CU. Другими словами, может быть достигнуто уменьшение объема кодирования, связанное с флагом ts_flag пропуска преобразования, и уменьшение объема обработки, соответствующего кодированию.
Следует заметить, что в процессе кодирования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражение (32) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Блок декодирования
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает декодирование кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, в случае обратного вторичного преобразованияе, представляющего преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения. Короче говоря, в случае обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, блок 211 пропускает декодирование кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию.
На фиг. 18 представлена функциональная блок-схема примера основных функций, связанных с декодированием флага ts_flag пропуска преобразования, которое выполняется с помощью выполнения программы и т.п., в данном случае, блоком 211 декодирования. Как показано на фиг. 18, блок 211 декодирования содержит в качестве функций, связанных с декодированием флага ts_flag пропуска преобразования, выполняемого программой, например, функции блока 311 декодирования флага действительности вторичного преобразования, блока 312 декодирования идентификатора вторичного преобразования, блока 313 декодирования флага действительности пропуска преобразования, блока 314 декодирования максимального размера блока пропуска преобразования, блока 315 декодирования флага обхода квантования-преобразования и блока 316 декодирования флага пропуска преобразования.
Блок 311 декодирования флага действительности вторичного преобразования выполняет процесс, связанный с декодированием кодированных данных флага st_enabled_flag действительности вторичного преобразования, который является информацией, связанной с разрешением обратного вторичного преобразования. Блок 312 декодирования идентификатора вторичного преобразования выполняет процесс, связанный с декодированием кодированных данных идентификатора st_idx вторичного преобразования, который является информацией, связанной с содержанием обратного вторичного преобразования. Блок 313 декодирования флага действительности пропуска преобразования выполняет процесс, связанный с декодированием кодированных данных флага ts_enabled_flag действительности пропуска преобразования, который является информацией, связанной с разрешением пропуска обратного преобразования (обратного первичного преобразования). Блок 314 декодирования максимального размера блока пропуска преобразования выполняет процесс, связанный с декодированием кодированных данных максимального размера MaxTSSize блока пропуска преобразования, указывающего максимальный размер блока преобразования, для которого разрешается пропуск обратного преобразования (обратного первичного преобразования). Блок 315 декодирования флага обхода квантования-преобразования выполняет процесс, связанный с декодированием кодированных данных флага transquant_bypass_flag обхода кодирования-преобразования, который является информацией, связанной с пропуском (обходом) обратного преобразования (обратного вторичного преобразования и первичного преобразования) и обратного квантования. Блок 316 декодирования флага пропуска преобразования выполняет процесс, связанный с декодированием кодированных данных флага ts_flag пропуска преобразования, который является информацией, связанной с пропуском обратного преобразования (обратного первичного преобразования).
Последовательность выполнения процесса декодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. В этом случае устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) работы устройства 200 кодирования изображения выполняется декодирование кодированных данных флага ts_flag пропуска преобразования и т.п. в ответ на значение идентификатора st_idx вторичного преобразования и т.п. Пример последовательности выполнения операций декодирования кодированных данных флага ts_flag пропуска преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 19. Короче говоря, процесс декодирования, показанный на фиг. 19, выполняется как часть процесса декодирования, выполняемого на этапе S201 на фиг. 13. Декодирование других параметров кодирования и кодированных данных уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После того как на этапе S331 начат процесс декодирования, блок 311 декодирования флага действительности вторичного преобразования декодирует кодированные данные флага st_enabled_flag действительности вторичного преобразования, содержащиеся в битовом потоке (кодированных данных) и выводит результирующие данные как часть информации Hinfo заголовка.
На этапе S332 блок 312 декодирования идентификатора вторичного преобразования принимает решение, равен ли 1 (истина) декодированный флаг st_enabled_flag действительности вторичного преобразования. В случае, когда решено, что флаг st_enabled_flag действительности вторичного преобразования равен 0, а именно, в случае, когда решено, что выполнение обратного вторичного преобразования не разрешается, процесс переходит к этапу S333.
В этом случае, поскольку обратное вторичное преобразование пропускается, идентификатор st_idx вторичного преобразования не находится в кодированном состоянии. Соответственно, на этапе S333 блок 312 декодирования идентификатора вторичного преобразования пропускает декодирование кодированных данных идентификатора st_idx вторичного преобразования. Дополнительно, в этом случае, поскольку обратное вторичное преобразование пропускается, значение идентификатора st_idx вторичного преобразования устанавливается равным 0. Соответственно, блок 312 декодирования идентификатора вторичного преобразования оценивает значение идентификатора st_idx вторичного преобразования как равное 0. Короче говоря, блок 312 декодирования идентификатора вторичного преобразования устанавливает значение идентификатора st_idx вторичного преобразования равным 0 (st_idx = 0). Когда процесс на этапе S333 закончен, обработка переходит на этап S335.
С другой стороны, в случае, когда на этапе S332 решено, что флаг st_enabled_flag действительности вторичного преобразования равен 1, обработка переходит к этапу S334. В этом случае, поскольку выполнение обратного вторичного преобразования разрешается, на этапе S334 блок 312 декодирования идентификатора вторичного преобразования декодирует кодированные данные идентификатора st_idx вторичного преобразования, содержащиеся в битовом потоке (кодированных данных). Когда процесс на этапе S334 закончен, обработка переходит к этапу S335.
Следует заметить, что процессы, связанные с декодированием идентификатора st_idx вторичного преобразования, описанным выше, могут подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться.
На этапе S335 блок 313 декодирования флага действительности вторичного преобразования декодирует кодированные данные флага ts_enabled_flag действительности вторичного преобразования, содержащиеся в битовом потоке (кодированных данных), и выводит декодированные кодированные данные как часть информации Hinfo заголовка.
На этапе S336 блок 314 декодирования максимального размера блока пропуска преобразования принимает решение, равен ли 1 (истина) декодированный флаг ts_enabled_flag действительности пропуска преобразования. В случае, когда решено, что флаг ts_enabled_flag действительности пропуска преобразования равен 1, а именно, в случае, когда решено, что пропуск обратного преобразования (обратного вторичного преобразования и обратного первичного преобразования) разрешается, обработка переходит к этапу S337.
На этапе S337 блок 314 декодирования максимального размера блока пропуска преобразования декодирует кодированные данные максимального размера MaxTSSize блока пропуска преобразования (или логарифмическое значение log2MaxTSSize с основанием 2), содержащиеся в битовом потоке (кодированных данных). Когда процесс на этапе S337 закончен, обработка переходит к этапу S338.
С другой стороны, в случае, когда на этапе S336 принято решение, что флаг ts_enabled_flag действительности пропуска преобразования равен 0, а именно, в случае, когда решено, что пропуск обратного преобразования не разрешен, поскольку не выполняется пропуск обратного преобразования, максимальный размер MaxTSSize блока пропуска преобразования не требуется. Соответственно, в этом случае процесс на этапе S337 пропускается и обработка переходит к этапу S338.
На этапе S338 блок 315 декодирования флага обхода квантования-преобразования декодирует кодированные данные флага transquant_bypass_flag обхода квантования-преобразования, содержащиеся в битовом потоке (кодированных данных), и выводит кодированные данные как часть информации Tinfo о преобразовании.
На этапе S339 блок 316 декодирования флага пропуска преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование и обратное вторичное преобразование) и обратное квантование должны быть пропущены (обойдены), процессы на этапах S340 и S342 пропускаются и обработка переходит к этапу 343.
Если преобразование и квантование должны быть обойдены, то тогда флаг ts_flag пропуска преобразования необязателен. Соответственно, в этом случае блок 316 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
С другой стороны, в случае, когда на этапе S339 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, а именно, в случае, когда обратное квантование и обратное преобразование не должны пропускаться (обходиться), обработка переходит к этапу S340.
На этапе S340 блок 316 декодирования флага пропуска преобразования принимает решение, является ли значение идентификатора st_idx вторичного преобразования большим, чем 0 (st_idx > 0). В случае, когда решено, что значение идентификатора st_idx вторичного преобразования больше 0, а именно, в случае, когда принимается решение, что обратное вторичное преобразование должно быть выполнено, процессы на этапах S341 и S342 пропускаются и обработка переходит к этапу S343.
Если вторичное преобразование должно быть выполнено, то тогда, поскольку пропуск преобразования не выполняется (пропуск обратного преобразования), значение флага ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку флаг ts_flag пропуска преобразования не передается от стороны кодирования, блок 316 декодирования флага пропуска преобразования пропускает декодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S340 принимается решение, что значение идентификатора st_idx вторичного преобразования равно 0, а именно, что обратное вторичное преобразование должно быть пропущено, обработка переходит к этапу S341.
На этапе S341 блок 316 декодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) значение флага ts_enabled_flag действительности пропуска преобразования, содержащегося в информации Hinfo заголовка. В случае, когда решено, что флаг ts_enabled_flag действительности пропуска преобразования равен 0, а именно, в случае, когда решено, что пропуск преобразования не разрешается, процесс на этапе S342 пропускается и обработка переходит к этапу S343.
Если пропуск преобразования (пропуск обратного преобразования) не может быть выполнен, то тогда значение флага ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку флаг ts_flag пропуска преобразования не передается от стороны кодирования, блок 316 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S341 решено, что флаг ts_enabled_flag действительности пропуска преобразования равен 1, а именно, в случае, когда решено, что пропуск преобразования (пропуск обратного преобразования) разрешается, обработка переходит к этапу S342.
Соответственно, в этом случае, поскольку флаг ts_flag пропуска преобразования не передается от стороны кодирования, блок 316 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. В случае, когда решено, что размер TBSize блока преобразования намеченной цели обработки больше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 0 (ложь), обработка переходит к этапу S343.
В случае, когда размер блока преобразования больше, чем максимальный размер блока пропуска преобразования, поскольку пропуск преобразования не разрешается, флаг ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку флаг ts_flag пропуска преобразования не передается от стороны кодирования, блок 316 декодирования флага пропуска преобразования пропускает декодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования. Следует заметить, что на этапе S342 выражение условия (TBSize <= MaxTSSize), приведенное выше, может быть заменено другим выражением условия (log2TrafroSize <= log2MaxTSSize), используя логарифмическое значение log2TrafoSize (или log2TBSize) с основанием 2 размера TB или логарифмическое значение log2MaxTSSize с основанием 2 максимального размера MaxTSSize блока пропуска преобразования.
На этапе S343 блок 316 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Дополнительно, в этом случае, поскольку пропуск преобразования (пропуск обратного преобразования) не выполняется, а именно, поскольку выполняется обратное преобразование, значение флага ts_flag пропуска преобразования устанавливается равным 0. Соответственно, блок 316 декодирования флага пропуска преобразования дает оценку, что значение флага ts_flag пропуска преобразования равно 0. Короче говоря, блок 316 декодирования флага пропуска преобразования устанавливает значение флага ts_flag пропуска преобразования равным 0. Когда процесс на этапе S343 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
С другой стороны, в случае, когда на этапе S342 решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда выражение условия, приведенное выше, равно 1 (истина), обработка переходит к этапу S344.
На этапе S344 блок 316 декодирования флага пропуска преобразования декодирует кодированные данные флага ts_flag пропуска преобразования.
Другими словами, только в случае, когда выражение (32) условия, приведенное ниже, равно 1 (истина), флаг ts_flag пропуска преобразования декодируется. Это соответствует четвертому этапу сверху синтаксиса, описанного здесь ранее со ссылкой на фиг. 15.
Когда процесс на этапе S344 закончен, процесс декодирования заканчивается и обработка переходит к фиг. 13.
Выполняя процесс декодирования таким способом, как описано выше, устройство 200 декодирования изображения может пропускать декодирование кодированных данных флага ts_flag пропуска преобразования в случае, когда идентификатор st_idx вторичного преобразования указывает выполнение обратного вторичного преобразования (st_idx > 0) в случае, если идентификатор st_idx вторичного преобразования кодирован в блоке CU. Другими словами, может быть достигнуто уменьшение объема кодирования, связанного с флагом ts_flag пропуска преобразования, и уменьшение объема обработки, соответствующего декодированию.
Следует заметить, что процесс декодирования, описанный выше, может подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражение (32) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
3. Третий вариант осуществления
Пропуск кодирования и декодирования флага вторичного преобразования
NPL 2 устанавливает, что идентификатор st_idx вторичного преобразования, который декодируется в блоке UC посредством технологии (JEM2), описанной NPL 1, получают в блоке блока преобразования на основе флага st_flag вторичного преобразования, декодированного в блоке блока преобразования, и указывает, должны ли применяться вторичное преобразования и информация IPinfo о режиме внутрикадрового преобразования, декодированная в блоке PU.
Например, технология, представленная выше в описании первого варианта осуществления, применяется к технологии, описанной в NPL 2 таким образом, что в случае, когда флаг ts_flag пропуска преобразования равен 1 (пропуск преобразования применяется), (обратное) первичное преобразование и (обратное) вторичное преобразования пропускаются. В этом случае, когда флаг ts_flag пропуска преобразования, декодированный в блоке блока преобразования указывает выполнение пропуска (обратного) процесса преобразования (ts_flag = 1), (обратное) вторичное преобразование пропускается и, следовательно, кодирование флага st_flag вторичного преобразования, являющегося информацией, связанной с выполнением вторичного преобразования, становится избыточным. Соответственно, существует возможность возможного снижения эффективности кодирования.
Поэтому, в случае, когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, пропускается, то также пропускается кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
Поскольку это делает возможным пропуск кодирования первой информации в случае, когда первичное преобразование пропускается, снижение эффективности кодирования может быть ограничено.
Дополнительно, в случае, когда пропускается обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, то также осуществляется пропуск декодирования кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
Поскольку это делает возможным пропуск декодирования кодированных данных первой информации в случае, когда обратное первичное преобразование пропускается, снижение эффективности кодирования может быть ограничено.
Синтаксис
Пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, приводится на фиг. 20. Как указано на седьмом этапе сверху на фиг. 20, одним из условий кодирования флага st_flag вторичного преобразования (а именно, декодирования кодированных данных флага st_flag вторичного преобразования), является то, что флаг ts_idx пропуска преобразования равен 0. В частности, в случае, когда флаг ts_idx пропуска преобразования равен 1, а именно, в случае, когда (обратное) первичное преобразование должно быть пропущено, кодирование флага st_flag вторичного преобразования (декодирование кодированных данных флага st_flag вторичного преобразования) пропускается.
Дополнительно также, то, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, является одним из условий кодирования флага st_flag вторичного преобразования (а именно декодирования кодированных данных флага st_flag вторичного преобразования). Короче говоря, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, (обратное) преобразование и (обратное) квантование пропускаются, кодирование флага st_flag вторичного преобразования (декодирование кодированных данных флага st_flag вторичного преобразования) пропускается.
Блок кодирования
Также, в этом случае устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. В частности, устройство 100 кодирования изображения, как описано здесь выше в связи с первым вариантом осуществления, содержит блок кодирования, который, в случае когда пропускается первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, кодирует первую информацию, связанную с пропуском вторичного преобразования, являющегося процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка. В частности, в случае, когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, пропускается, блок 114 кодирования пропускает кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка.
На фиг. 21 представлена функциональная блок-схема примера основных функций, связанных с кодированием флага st_flag вторичного преобразования, которое выполняется блоком 114 кодирования, выполняющего в этом случае программу и т.п. Как показано на фиг. 21, блок 114 кодирования в этом случае может содержать в качестве функций, связанных с кодированием флага st_flag вторичного преобразования посредством выполнения программы, блок 301 кодирования флага действительности вторичного преобразования, блок 303 кодирования флага действительности пропуска преобразования, блок 304 кодирования максимального размера блока пропуска преобразования, блок 305 кодирования флага обхода квантования-преобразования и блок 306 кодирования флага пропуска преобразования, подобные блокам, например, блока 114 кодирования, описанного в связи со вторым вариантом осуществления. Дополнительно, блок 114 кодирования может содержать в качестве функции, связанной с кодирование флага st_flag вторичного преобразования, выполняемого программой, например, функцию блока 321 кодирования флага вторичного преобразования.
Блок 321 кодирования флага вторичного преобразования выполняет процесс, связанный с кодированием флага st_idx вторичного преобразования, который является информацией, связанной с выполнением вторичного преобразования. Например, в случае, когда флаг st_flag вторичного преобразования равен 1 (истина), вторичное преобразование выполняется. С другой стороны, например, в случае, когда флаг st_flag вторичного преобразования равен 0 (ложь), вторичное преобразование пропускается.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. Устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, аналогично этому процессу в случае первого варианта осуществления. Однако в этом случае устройство 100 кодирования изображения на этапе S110 (фиг. 9) процесса кодирования изображения выполняет кодирование флага st_flag вторичного преобразования и т.п. в ответ на значение флага ts_idx пропуска преобразования и т.п. Пример последовательности выполнения операций кодирования флага st_flag вторичного преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 22 и 23. Короче говоря, процесс кодирования, показанный на фиг. 22 и 23, выполняется как часть процесса кодирования, выполняемого на этапе S110, показанного на фиг. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольными способами.
После того как процесс кодирования начат, процессы на этапах S361-S368 на фиг. 22 выполняются аналогично процессам (фиг. 17) на этапах S304-S308 и этапах S310-S312.
Следует заметить, что в случае, когда на этапе S365 принято решение, что флаг transquant_bypass_flag обхода квантования-преобразования, который является информацией, связанной с пропуском (обходом) преобразования (первичного преобразования и вторичного преобразования) и квантования, равен 1, а именно, в случае, когда решено, что преобразование (первичное преобразование и вторичное преобразование) должны быть пропущены (обойдены), обработка переходит к этапу S371 на фиг. 23. С другой стороны, в случае, когда на этапе S365 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, а именно, в случае, когда решено, что квантование и преобразование не должны пропускаться (обходиться), обработка переходит к этапу S366.
Дополнительно, в случае, когда на этапе S366 решено, что флаг ts_enabled_flag действительности пропуска преобразования, который является информацией, связанной с разрешением пропуска преобразования (первичного преобразования), равен 0, а именно, в случае, когда решено, что пропуск преобразования не разрешается, обработка переходит к к этапу S371 на фиг. 23. С другой стороны, в случае, когда на этапе S366 принято решение, что флаг ts_enabled_flag действительности пропуска преобразования равен 1, а именно, в случае, когда решено, что пропуск преобразования не разрешен, обработка переходит к этапу S367.
В случае, когда на этапе S367 решено, что размер TBSize блока преобразования намеченной цели обработки больше, чем максимальный размер MaxTSSize блока пропуска преобразования, который является максимальным размером блока преобразования, при котором разрешается пропуск преобразования (первичного преобразования), обработка переходит к этапу S371, показанному на фиг. 23. С другой стороны, в случае, когда на этапе S367 решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше максимального размера MaxTSSize блока пропуска преобразования, обработка переходит к этапу S368.
На этапе S368 формируют флаг ts_flag пропуска преобразования, являющийся информацией, связанной с пропуском преобразования (первичного преобразования), и после этого процесс заканчивается и обработка переходит к этапу S371 на фиг. 23.
На этапе S371, показанном на фиг. 23, блок 301 кодирования флага действительности вторичного преобразования кодирует флаг st_enabled_flag действительности вторичного преобразования, который содержится в информации Hinfo заголовка и является информацией, связанной с разрешением вторичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага st_enabled_flag действительности вторичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
На этапе S372 блок 321 кодирования флага вторичного преобразования принимает решение, равен ли 1 (истина) флаг st_enabled_flag действительности вторичного преобразования, содержащийся в информации Hinfo заголовка. В случае, когда принимается решение, что флаг st_enabled_flag действительности вторичного преобразования равен 0, а именно, когда решено, что выполнение вторичного преобразования не разрешается, процессы на этапах S373-S377 пропускаются, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Если вторичное преобразование не разрешается, то тогда флаг ts_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг ts_flag вторичного преобразования, блок 321 кодирования флага вторичного преобразования пропускает кодирование флага st_flag вторичного кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S372 решено, что флаг st_enabled_flag действительности вторичного преобразования равен 1, а именно, в случае, когда решено, что выполнение вторичного преобразования разрешается, обработка переходит к этапу S373.
На этапе S373 блок 321 кодирования флага вторичного преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда решено, что преобразование (первичное преобразование и вторичное преобразование) и квантование должны быть пропущены (обойдены), процессы на этапах S374-S377 пропускаются и процесс кодирования заканчивается, а обработка переходит к фиг. 9.
Если преобразование и квантование обходятся, то тогда флаг st_flag вторичного преобразования необязателен. Соответственно, в этом случае блок 306 кодирования флага пропуска преобразования пропускает кодирование флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S373 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь), а именно, в случае, когда решено, что преобразование и квантование не должны пропускаться (обходиться), обработка переходит к этапу S374.
На этапе S374 блок 321 кодирования флага вторичного преобразования принимает решение, равен ли 1 (истина) флаг ts_flag пропуска преобразования (истина). В случае, когда решено, что флаг ts_flag пропуска преобразования равен 1, а именно, в случае, когда решено, что преобразование (первичное преобразование) должно быть пропущено, процессы на этапах S375-S377 пропускаются и процесс кодирования заканчивается, а обработка переходит к фиг. 9.
В случае, когда первичное преобразование пропускается, вторичное преобразование также пропускается. Соответственно, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг st_flag вторичного преобразования, блок 321 кодирования флага вторичного преобразования пропускает кодирование флага st_flag вторичного кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
С другой стороны, в случае, когда на этапе S374 принимается решение, что флаг ts_flag пропуска преобразования равен 0, а именно, в случае, когда решено, что преобразование (первичное преобразование) должно выполняться. Обработка переходит к этапу S375.
На этапе S375 блок 321 кодирования флага вторичного преобразования обращается к информации Rinfo об остатке, чтобы подсчитать ненулевые коэффициенты, существующие в блоке преобразования и общее количество numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов.
На этапе S376 блок 321 кодирования флага вторичного преобразования принимает решение, равно ли или больше общее количество numSig ненулевых коэффициентов, чем заданное пороговое значение TH (numSig >= TH). В случае, когда решено, что общее количество numSig ненулевых коэффициентов меньше заданного порогового значения TH (numSig < TH), процесс на этапе S377 пропускается и процесс кодирование заканчивается, а обработка возвращается к фиг. 9.
В случае, когда принимается решение, что общее количество numSig ненулевых коэффициентов меньше порогового значения TH, а именно, в случае прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало, поскольку существует возможность, что сжатие энергии может ухудшиться за счет вторичного преобразования и эффективность кодирования может уменьшиться, то для того, чтобы ограничить ухудшение эффективности кодирования, желательно пропускать вторичное преобразование. Соответственно, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг st_flag вторичного преобразования, блок 321 кодирования флага вторичного преобразования пропускает кодирование флага st_flag вторичного кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S376 принято решение, что общее количество numSig ненулевых коэффициентов равно или больше заданного порогового значения TH, обработка переходит к этапу S377.
На этапе S377 блок 321 кодирования флага вторичного преобразования кодирует флаг st_flag вторичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага st_flag вторичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Другими словами, только в случае, когда выражение (33) условия, приведенное ниже, равно 1 (истина), флаг st_flag вторичного преобразования кодируется. Это соответствует седьмому этапу сверху синтаксиса, описанного здесь ранее со ссылкой на фиг. 20.
Логическое значение = (st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig >= TH) (33)
Когда процесс на этапе S377 закончен, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать кодирование флага st_flag вторичного преобразования в случае, когда применяется пропуск преобразования (ts_flag = 1), если флаг st_flag вторичного преобразования кодируется в блоке блока преобразования. Дополнительно, в случае, когда применяется обход преобразования и квантования (transquant_bypass_flag = 1), устройство 100 кодирования изображения может пропускать кодирование флага st_flag вторичного преобразования. В частности, может быть достигнуто уменьшение объема кодирования, связанного с флагом st_flag вторичного преобразования, и уменьшение объема процесса, соответствующего кодированию.
Следует заметить, что в процессе кодирования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражение (33) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Хотя пример, представленный выше, предназначен для описания процесса кодирования флага st_flag вторичного преобразования в блоке блока преобразования, идентификатор st_idx вторичного преобразования может быть кодирован вместо флага st_flag вторичного преобразования. В этом случае, флаг st_flag вторичного преобразования, показанный на восьмом этапе сверху в таблице синтаксиса, приведенной на фиг. 20, заменяется идентификатором st_idx вторичного преобразования. Аналогично, на фиг. 21 блок 321 кодирования флага вторичного преобразования заменяется блоком 302 кодирования идентификатора вторичного преобразования, имеющим функцию, связанную с кодированием идентификатора st_idx вторичного преобразования, показанного на фиг. 16. Аналогично, этапы блок-схемы последовательности выполнения операций, показанной на фиг. 23, поясняются, заменяя термин "флаг st_flag вторичного преобразования" на термин "идентификатор st_idx вторичного преобразования".
Выполняя процесс кодирования таким способом, как описано выше, в случае, когда применяется этап преобразования (ts_flag = 1), если идентификатор st_idx вторичного преобразования кодируется в блоке блока преобразования, устройство 100 кодирования изображения может пропускать кодирование идентификатора st_idx вторичного преобразования. Дополнительно, в случае, когда применяется обход преобразования и квантования (transquant_bypass_flag = 1), устройство 100 кодирования изображения может пропускать кодирование идентификатора st_idx вторичного преобразования. Другими словами, может быть достигнуто уменьшение объема кодирования, связанного с идентификатором st_idx вторичного преобразования, и уменьшение объема обработки, соответствующего кодированию.
Дополнительно, в приведенном выше выражении (33) условия не существует ограничения и выражение (33) условия может быть изменено на выражение условия (34), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодировался только для случая яркости. В частности, в случае, когда идентификатор cIdx, указывающий пространство цвета, указывает значение Luma (= 0) для яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется, но в случае, когда cIdx указывает значение Cb (= 1) или Cr (= 2) цветовой разности, кодирование флага st_flag вторичного преобразования (или идентификатора st_idx вторичного преобразования) игнорируется.
Логическое значение = (cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig >= TH) (34)
Дополнительно, в приведенном выше выражении (33) условия не существует ограничения и выражение (33) условия может быть изменено на выражение условия (35), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодировался только для случая внутрикадрового предсказания. В частности, в случае, когда CuPredMode[x0][y0], указывающее режим предсказания CU, указывает внутрикадровое предсказание (= MODE_INTRA), флаг st_flag вторичного предсказания (или идентификатор st_idx вторичного предсказания) кодируется а в случае межкадрового предсказания кодирование игнорируется.
Логическое значение = (CuPredMode[x0][y0]==MODE_INTRA && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig >= TH) (35)
Следует заметить, что выражения (33)-(35) могут объединяться друг с другом.
Блок декодирования
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, являющемуся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, в случае, когда должно пропускаться обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения. Короче говоря, блок 211 декодирования в этом случае пропускает декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, в случае, когда должно пропускаться обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
На фиг. 24 представлена функциональная блок-схема примера основных функций, связанных с декодированием флага st_flag вторичного преобразования, которое выполняется блоком 211 декодирования, выполняющего в этом случае программу и т.п. Как показано на фиг. 24, блок 211 декодирования в этом случае содержит в качестве функций, связанных с декодированием флага st_flag вторичного преобразования посредством выполнения программы, блок 311 декодирования флага действительности вторичного преобразования, блок 313 декодирования флага действительности пропуска преобразования, блок 314 декодирования максимального размера блока пропуска преобразования, блок 315 декодирования флага обхода квантования-преобразования и блок 316 декодирования флага пропуска преобразования, подобные блокам, например, в блоке 211 декодирования, описанном здесь ранее в связи со вторым вариантом осуществления. Блок 211 декодирования дополнительно содержит в качестве функции, связанной с декодированием флага st_flag вторичного преобразования, выполняемым посредством программы, например, функции блока 331 декодирования флага вторичного преобразования.
Блок 331 декодирования флага вторичного преобразования выполняет процесс, связанный с декодированием кодированных данных флага st_flag вторичного преобразования, который является информацией, связанной с выполнением обратного вторичного преобразования. Например, в случае, когда флаг st_flag вторичного преобразования равен 1 (истина), обратное вторичное преобразование выполняется. С другой стороны, например, в случае, когда флаг st_flag вторичного преобразования равен 0 (ложь), обратное вторичное преобразование пропускается.
Последовательность выполнения операций обработки сигнала
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. В этом случае, устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае устройство 200 декодирования изображения выполняет декодирование кодированных данных флага st_flag вторичного преобразования и т.п. в ответ на значение флага ts_idx пропуска преобразования и т.п. на этапе S201 (фиг. 13) процесса декодирования изображения. Пример последовательности выполнения операций декодирования кодированных данных флага st_flag вторичного преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 25 и 26. Короче говоря, процесс кодирования, показанный на фиг. 25 и 26, выполняется как часть процесса декодирования, выполняемого на этапе S201, показанном на фиг. 13.
После того как процесс декодирования начат, процессы на этапах S381-S389 на фиг. 25 выполняются аналогично процессам (фиг. 19) на этапах S335-S339 и этапах S341 - S344.
Следует заметить, что в случае, когда на этапе S385 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, а именно, в случае, когда преобразование и квантование не пропускаются (обходятся), обработка переходит к этапу S386.
Дополнительно, если на этапе S388 принято решение, что флаг ts_flag пропуска преобразования оценивается как 0, а флаг ts_flag пропуска преобразования устанавливается равным 0, обработка переходит к этапу S391, показанному на фиг. 26. Аналогично, если на этапе S389 декодируются кодированные данные флага ts_flag, то обработка переходит к этапу S391.
На этапе S391, показанном на фиг. 26, блок 311 декодирования флага действительности вторичного преобразования декодирует кодированные данные флага st_enabled_flag действительности вторичного преобразования, содержащиеся в битовом потоке (кодированных данных) и выводит результирующие данные как часть информации Hinfo заголовка.
На этапе S392 блок 331 декодирования флага вторичного преобразования принимает решение, равен ли 1 (истина) декодированный флаг st_enabled_flag действительности вторичного преобразования. В случае, когда решено, что флаг st_enabled_flag действительности вторичного преобразования равен 0, а именно, в случае, когда решено, что выполнение обратного вторичного преобразования не разрешается, процессы на этапах S393-S396 пропускаются и обработка переходит к этапу S397.
Если обратное вторичное преобразование не разрешается, то обратное вторичное преобразование пропускается. В частности, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку от стороны кодирования флаг st_flag вторичного преобразования не передается, блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S392 решено, что флаг st_enabled_flag действительности вторичного преобразования равен 1, а именно, в случае, когда решено, что выполнение обратного вторичного преобразования разрешается, обработка переходит к этапу S393.
На этапе S393 блок 331 кодирования флага вторичного преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование и обратное вторичное преобразование) и обратное квантование должны быть пропущены (обойдены), процессы на этапах S394-S396 пропускаются и обработка переходит к этапу 397.
Если обратное преобразование и обратное квантование должны быть обойдены, то тогда флаг st_flag вторичного преобразования необязателен. Соответственно, в этом случае блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S393 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, а именно, в случае, когда решено, что преобразование и квантование не должны пропускаться (обходиться), обработка переходит к этапу S394.
На этапе S394 блок 331 кодирования флага вторичного преобразования принимает решение, равен ли 1 (истина) флаг ts_flag пропуска преобразования. В случае, когда решено, что флаг ts_flag пропуска преобразования равен 1 (истина), а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование) должно быть пропущено, процессы на этапах S395 и S396 пропускаются и обработка переходит к этапу S397.
Если обратное первичное преобразование должно быть пропущено, то обратное вторичное преобразование пропускается. В частности, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку от стороны кодирования флаг st_flag вторичного преобразования не передается, блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S394 принимается решение, что флаг ts_flag пропуска преобразования равен 0 (ложь), а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование) должно выполняться, обработка переходит к этапу S395.
На этапе S395 блок 331 декодирования флага вторичного преобразования обращается к информации Rinfo об остатке, чтобы подсчитать ненулевые коэффициенты, существующие в блоке преобразования, для определения общего количества numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов.
На этапе S396 блок 331 декодирования флага вторичного преобразования принимает решение, равно ли или больше заданного порогового значения TH общее количество numSig ненулевых коэффициентов (numSig >= TH). В случае, когда принято решение, что общее количество numSig ненулевых коэффициентов меньше заданного порогового значения TH (numSig < TH), обработка переходит к этапу S397.
В случае, когда общее количество numSig ненулевых коэффициентов меньше порогового значения TH, а именно, в случае прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало, поскольку существует возможность, что сжатие энергии может ухудшиться за счет обратного вторичного преобразования и эффективность кодирования может уменьшиться, то для ограничения ухудшения эффективности кодирования, желательно пропускать обратное вторичное преобразование. Соответственно, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку со стороны кодирования флаг st_flag вторичного преобразования не передается, блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничить увеличение нагрузки на процесс декодирования и ограничить снижение эффективности кодирования.
На этапе S397 блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Дополнительно, в этом случае, поскольку обратное вторичное преобразование пропускается, значение флага st_idx вторичного преобразования устанавливается равным 0. Соответственно, блок 331 декодирования флага вторичного преобразования дает оценку, что значение флага st_flag вторичного преобразования равно 0. В частности, блок 331 декодирования флага вторичного преобразования устанавливает значение флага st_flag вторичного преобразования равным 0 (st_flag = 0). Когда процесс на этапе S397 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
В случае, когда на этапе S396 принято решение, что общее количество numSig ненулевых коэффициентов равно или больше заданного порогового значения TH (numSig >= TH), обработка переходит к этапу S398.
На этапе S398 блок 331 декодирования флага вторичного преобразования декодирует кодированные данные флага st_flag вторичного преобразования.
Короче говоря, только в случае, когда выражение (33) условия, приведенное здесь выше, равно 1 (истина), кодированные данные флага st_flag вторичного преобразования декодируются. Это соответствует седьмому этапу сверху синтаксиса, описанного здесь ранее со ссылкой на фиг. 20.
Когда процесс на этапе S397 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
Выполняя процесс декодирования таким способом, как описано выше, устройство 200 декодирования изображения может пропускать декодирование кодированных данных флага st_flag вторичного преобразования в случае, когда применяется пропуск преобразования (ts_flag = 1), если флаг st_flag вторичного преобразования декодируется в блоке блока преобразования. Дополнительно, в случае, когда должен применяться обход обратного преобразования и обратного квантования (transquant_bypass_flag = 1), устройство 200 декодирования изображения может пропускать декодирование кодированных данных флага st_flag вторичного преобразования. Другими словами, может быть достигнуто уменьшение объема кодирования, связанного с флагом st_flag вторичного преобразования, и уменьшение объема обработки, соответствующего кодированию.
Следует заметить, что процесс декодирования, описанный выше, может подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражение (33) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Хотя пример, представленный выше, предназначен для описания процесса декодирования флага st_flag вторичного преобразования в блоке блока преобразования, вместо флага st_flag вторичного преобразования может быть декодирован идентификатор st_idx вторичного преобразования. В этом случае, флаг st_flag вторичного преобразования, показанный на восьмом этапе сверху в таблице синтаксиса, приведенной на фиг. 27, заменяется идентификатором st_idx вторичного преобразования. Аналогично, на фиг. 24 блок 331 декодирования флага вторичного преобразования заменяется блоком 312 декодирования идентификатора вторичного преобразования, имеющим функцию, связанную с декодированием идентификатора st_idx вторичного преобразования, показанного на фиг. 18. Аналогично, этапы блок-схемы последовательности выполнения операций, показанной на фиг. 26, поясняются, заменяя термин "флаг st_flag вторичного преобразования" на термин "идентификатор st_idx вторичного преобразования".
Выполняя процесс декодирования таким способом, как описано выше, в случае, когда применяется пропуск преобразования (ts_flag = 1), если идентификатор st_idx вторичного преобразования декодируется в блоке блока преобразования, устройство 200 декодирования изображения может пропускать декодирование идентификатора st_idx вторичного преобразования. Дополнительно, в случае, когда применяется обход обратного преобразования и обратного квантования (transquant_bypass_flag = 1), устройство 200 декодирования изображения может пропускать декодирование идентификатора st_idx вторичного преобразования. Другими словами, может быть достигнуто уменьшение объема кодирования, связанного с флагом st_flag вторичного преобразования, и уменьшение объема обработки, соответствующего кодированию.
Дополнительно, в приведенном выше выражении (33) условия не существует ограничения и выражение (33) условия может быть изменено на выражение условия (34), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется только для случая яркости. В частности, в случае, когда идентификатор cIdx, указывающий пространство цвета, указывает значение Luma (= 0) для яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется, и в случае, когда cIdx указывает значение Cb (= 1) или Cr (= 2) цветовой разности, декодирование флага st_flag вторичного преобразования (или идентификатора st_idx вторичного преобразования) игнорируется.
Дополнительно, в приведенном выше выражении (33) условия не существует ограничения и выражение (33) условия может быть изменено на выражение (35) условия, приведенное выше, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется только для внутрикадрового предсказания. В частности, в случае, когда CuPredMode[x0][y0], указывающее режим предсказания CU, указывает внутрикадровое предсказание (= MODE_INTRA), флаг st_flag вторичного предсказания (или идентификатор st_idx вторичного предсказания) декодируется, а в случае межкадрового предсказания декодирование игнорируется. Следует заметить, что условия выражений (33)-(35) условия могут объединяться должным образом.
4. Четвертый вариант осуществления
Пропуск кодирования и декодирования флага вторичного преобразования
NPL 2 раскрывает, что для ограничения служебной сигнализации флага st_flag вторичного преобразования, в случае, когда количество ненулевых коэффициентов в блоке преобразования равно или меньше заданного порогового значения (например, 2), вторичное преобразование не применяется и сигнализация флага st_flag вторичного преобразования пропускается.
Например, если предполагаетя, что в матрице 8х8 существует один ненулевой коэффициент в в каждом из субблоков (4х4) блока преобразования 8х8, то тогда общее количество ненулевых коэффициентов в блоке преобразования равно 4. Соответственно, если это общее количество сравнивается с пороговым значением TH (= 2), то сигнализация флага st_flag, указывающего, должно ли применяться вторичное преобразование, должна передаваться (кодироваться).
Соответственно, это является предметом, рассматриваемым ниже. Существует возможность, что вторичное преобразование может применяться к сигналу, в котором прореженные ненулевые коэффициенты существуют в каждом субблоке, что приводит в результате к возможности снижения сжатия энергии. Дополнительно, в случае, когда пропуск (обратного) вторичного преобразования является очевидным (короче говоря, в случае, когда флаг вторичного преобразования st_flag = 0 является очевидным), если сигнализация этого флага st_flag вторичного преобразование передается (кодируется), то тогда служебная сигнализация флага st_flag вторичного преобразования становится бесполезной, приводя в результате к возможности снижения эффективности кодирования.
Поэтому в случае, когда в блоке субблока среднее значение количества ненулевых коэффициентов содержится в блоке преобразования намеченной цели обработки, кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, который является ссылкой между изображением и предсказанным изображением этого изображения, пропускается.
Это делает возможным пропускать вторичное преобразование в случае, когда ненулевые коэффициенты субблоков являются редкими. Следовательно, можно ограничивать снижение сжатия энергии и ограничивать снижение эффективности кодирования.
Дополнительно, в случае, когда в блоке субблока среднее значение количества ненулевых коэффициентов содержится в блоке преобразования намеченной цели обработки, пропускается декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, представляющего процесс преобразования, обратный вторичному преобразованию, который является процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, который является ссылкой между изображением и предсказанным изображением этого изображения.
Это делает возможным пропускать вторичное преобразование в случае, когда ненулевые коэффициенты субблоков являются редкими. Следовательно, можно ограничивать снижение сжатия энергии и ограничивать снижение эффективности кодирования.
Синтаксис
Пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, приводится на фиг. 27. Как показана на седьмом этапе сверху на фиг. 27, одним из условий кодирования флага st_flag вторичного преобразования (декодирования кодированных данных флага st_flag вторичного преобразования ) является то, что в блоке субблоков среднее значение количества numSigInSBK ненулевых коэффициентов, являющееся в блоке субблоков средним значением количества ненулевых коэффициентов, содержащихся в блоке преобразования намеченной цели обработки, равно или больше заданного порогового значения (ТН). В частности, в случае, когда в блоке субблоков среднее значение количества numSigInSBK ненулевых коэффициентов меньше заданного порогового значения (TH), а именно в случае, когда ненулевые коэффициенты субблока являются редкими, кодирование флага st_flag вторичного преобразования (декодирование кодированных данных флага st_flag вторичного преобразования) пропускается.
Блок кодирования
В этом случае устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 100 кодирования изображения в этом случае содержит блок кодирования, пропускающий кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, который является разностью между изображением и предсказанным изображением этого изображения, когда в блоке субблоков среднее значение количества ненулевых коэффициентов содержащихся в блоке преобразования намеченной цели обработки меньше порогового значения. В частности, в случае, когда в блоке субблоков среднее значение количества ненулевых коэффициентов содержащихся в блоке преобразования намеченной цели обработки меньше порогового значения, блок 114 кодирования пропускает кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
Блок 114 кодирования в этом случае имеет функцию, в основном, схожую с функцией, описанной здесь выше в связи с третьим вариантом осуществления, при выполнении программы и т.п. Короче говоря, блок 114 кодирования имеет такие функциональные блоки, как описано здесь выше со ссылкой на фиг. 21.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. В этом случае, устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае устройство 100 кодирования изображения выполняет кодирование флага st_flag вторичного преобразования и т.п. в ответ на среднее значение в блоке субблоков количества numSigInSBK ненулевых коэффициентов т. п. на этапе S110 (фиг. 9) процесса кодирования изображения. Пример последовательности выполнения операций кодирования флага st_flag вторичного преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 28 и 29. Короче говоря, процесс кодирования, показанный на фиг. 28 и 29, выполняется как часть процесса кодирования, выполняемого на этапе S110, показанного на фиг. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольными способами.
После того как процесс кодирования начат, процессы на этапах S401-S408 на фиг. 28 выполняются аналогично процессам на этапах S361-S368, показанных на фиг. 22.
Когда процесс на этапе S405 или S408 закончен, обработка переходит к этапу S411, показанному на фиг. 29.
Процессы на этапах S411-S414 на фиг. 29 выполняются аналогично процессам на этапах S371-S374, показанных на фиг. 23.
В случае, когда на этапе S414 принимается решение, что флаг ts_flag пропуска преобразования равен 0, а именно, в случае, когда преобразование (первичное преобразование) должно выполняться, обработка переходит к этапу S415.
На этапе S415 блок 321 кодирования флага вторичного преобразования определяет средне значение количества nmSigInSBK ненулевых коэффициентов в блоке субблоков. Например, блок 321 кодирования флага вторичного преобразования обращается к информации Rinfo об остатке, чтобы получить общее количество numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов, существующих в блоке преобразования в соответствии со следующим выражением (36).
numSig = Σ(sig_coeff_flag(i,j))
Затем блок 321 кодирования флага вторичного преобразования делит определенное общее количество numSig ненулевых коэффициентов на общее количество субблоков в блоке преобразования, чтобы получить среднее количество numSigInSBK ненулевых коэффициентов в блоке субблоков в соответствии со следующим выражением (37).
numSigInSBK = numSig/(TBSize*TBSize/16) (37)
Следует заметить, что в выражении (37) арифметическая операция сдвига может использоваться вместо деления для получения среднего количества numSigInSBK ненулевых коэффициентов в блоке субблоков, как это представляется следующим выражением (38).
numSigInSBK = numSig >> (2*(log2TBSize - 2)) (38)
Здесь, log2TBSize - логарифмическое значение с основанием 2 размера TBSize блока преобразования. Следует заметить, что хотя блок преобразования здесь предполагается имеющим прямоугольную форму TBSize х TBSize, он может иметь продолговатую форму TBXSize х TBYSize. В этом случае выражение (36), приведенное выше, может быть заменено следующим выражением (39), а выражение (38), приведенное выше, может быть заменено следующим выражением (40).
numSig = Σ(sig_coeff_flag(i,j))
numSigInSBK = numSig >> ((log2TBXSize - 2) + (log2TBYSize -2)) (40)
Здесь log2TBXSize - логарифмическое значение с основанием 2 для ширины TBXSize по горизонтали блока преобразования, а log2TBYSize - логарифмическое значение с основанием 2 для ширины TBYSize по вретикали блока преобразования.
Дополнительно, хотя в приведенных выше выражениях (36)-(40) количество ненулевых коэффициентов во всех субблоках блока преобразования пронумерованы, нумерация может ограничиваться заданной областью. Например, в блоке преобразования TBXSize х TBYSize может быть пронумеровано количество ненулевых коэффициентов в субблоках, существующих в низкочастотной области. Например, субблоки, существующие в левой верхней половине блока преобразования TBXSize х TBYSize могут быть определены так, как указано в выражении (41), приведенном ниже. В этом случае выражение (40) может быть заменено следующим выражением (42).
numSig = Σ(sig_coeff_flag(i,j))
numSigInSBK = numSig >> ((log2TBXSize - 3) + (log2TBYSize - 3)) 42)
Дополнительно, хотя в выражениях (36)-(42), приведенных выше, количество numSig ненулевых коэффициентов во всех субблоках (или в субблоках в заданной области) в блоке преобразования делится (или подвергается арифметической операции сдвига) на общее количество всех субблоков (или субблоков в заданной области) в блоке преобразования, деление (или арифметическая операция сдвига) может выполняться после того, как значение количества субблоков/2 (= numSBK >> 1) добавляется в качестве смещения перед делением (арифметической операцией сдвига) (например, нижеследующие выражения (43), (44), (45) и (46)). Здесь, numSBK представляет количество всех субблоков (или субблоков в заданной области) в блоке преобразования, а numSBK в выражениях (43)-(45) становится numSBK = TBXSize * TBYSize/16 = 1 << ((log2TBXSize - 2) + (logTBYSize - 2)), и numSBK в выражении (46) равно numSBK = 1 << ((log2TBXSize - 3) + (logTBYSize - 3)).
numSigInSBK = (numSig + (numSBK >> 1))/(TBSize * TBSize/16) (43)
numSigInSBK = (numSig + (numSBK >> 1)) >> (2 * (log2TBSize - 2)) (44)
numSigInSBK = (numSig + (numSBK >> 1)) >> ((log2TBXSize - 2) + (log2TBYSize - 2)) (45)
numSigInSBK = (numSig + (numSBK >> 1)) >> ((log2TBXSize - 3) + (log2TBYSize - 3)) (46)
Дополнительно, хотя в выражениях (36)-(42), приведенных выше, количество numSig ненулевых коэффициентов во всех субблоках (или в субблоках в заданной области) в блоке преобразования делится (или подвергается арифметической операции сдвига) на общее количество всех субблоков (или субблоков в заданной области) в блоке преобразования, чтобы получить для блока субблоков среднее значение количества numSigInSBK ненулевых коэффициентов, количество субблоков, которое должно использоваться для деления, может быть заменено на общее количество numNonZeroSBK (также называемое количеством ненулевых субблоков) субблоков, в которых существует ненулевой коэффициент.. Например, количество ненулевых субблоков numNonZeroSBK получают посредством выражения (47) приведенного ниже. В частности, нумеруя количество субблоков, для которых флаг coded_sub_blck_flag(i,j) присутствия/отсутствия ненулевых коэффициентов субблоков равен 1, может быть получено количество numNonZeroSBK ненулевых субблоков. В этом случае, среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока может быть получено с помощью выражения (48), приведенного ниже, вместо выражения (40). Следует заметить, что в выражении (48), чтобы избежать деления на ноль, принимается решение, равно ли 0 общее количество numNonZeroSBK, и если количество numNonZeroSBK субблоков с ненулевыми коэффициентами равно 0, то в numSigInSBK устанавливается 0, но если количество numNonZeroSBK субблоков с ненулевыми коэффициентами больше 0Ю то значение, полученное делением numSig на numNonZeroSBK устанавливается в numSigInSBK.
numNonZero = Σ(coded_sub_block_flag(i,j))
numSigInSBK = numNonZeroSBK == 0 ? 0 : numSig/numNonZeroSBK (48)
Дополнительно, устанавливая заданную область в блок преобразования в качестве намеченной цели, среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока может быть получено на основе количества ненулевых коэффициентов в субблоках в заданной области и количества субблоков, имеющих ненулевой коэффициент. Например, субблоки, существующие в левой верхней половине блока преобразования TBXSize х TBYSize могут быть определены как намеченная цель. В этом случае, количество numSig ненулевых коэффициентов получают посредством выражения (41), описанного здесь выше, и количество numNonZeroSBK ненулевых субблоков получают посредством приведенного ниже выражения (49). Полученные numSig и numNonZeroSBK упоминаются здесь как среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока.
numNonZero = Σ(coded_sub_block_flag(i,j))
После того как среднее значение количества nmSigInSBK ненулевых коэффициентов субблоков в блоке определено таким образом, как описано выше, обработка переходит к этапу S416.
На этапе S416 блок 321 кодирования флага вторичного преобразования принимает решение, равно ли или больше заданного порогового значения TH среднее количество numSigInSBK ненулевых коэффициентов субблоков блока (numSig >= TH). В случае, когда логическое значение выражения условия равно 0 (ложь), а именно, в случае, когда принимается решение, что условие numSigInSBK < TH удовлетворяется, а именно, в случае, когда условие numSigInSBK < TH удовлетворяется, процесс на этапе S417 пропускается и процесс кодирования заканчивается, а обработка возвращается к фиг. 9.
В случае, когда среднее количество numSigInSBK ненулевых коэффициентов субблоков блока меньше заданного порогового значения ТН, существует субблок, в котором ненулевые коэффициенты являются редкими. Если для такого субблока, как описано выше, вторичное преобразование выполняется, то тогда сжатие энергии ухудшается и существует возможность, что эффективность кодирования может уменьшаться. Соответственно, чтобы ограничить снижение эффективности кодирования, желательно пропускать вторичное преобразование. Короче говоря, в этом случае управление выполняется таким образом, что вторичное преобразование пропускается. Соответственно, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае нет необходимости передавать стороне декодирования флаг st_flag вторичного преобразования. Соответственно, блок 321 кодирования флага вторичного преобразования пропускает кодирование флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S416 принято решение, что логическое значение выражения условия равно 1 (истина), а именно, в случае, когда условие numSigInSBK >= TH удовлетворяется, обработка переходит к этапу S417.
На этапе S417 блок 321 кодирования флага вторичного преобразования кодирует флаг st_flag вторичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага st_flag вторичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Короче говоря, только в случае, когда выражение (50) условия, приведенное ниже, равно 1 (истина), флаг st_flag вторичного преобразования кодируется. Это соответствует седьмому этапу представленного выше синтаксиса, описанного со ссылкой на фиг. 27.
Логическое значение = (st_enabled_flag &&
(transquant_bypass_flag == 0 || ts_flag == 0) &&
numSigInSBK >= TH) (50)
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать процесс кодирования флага st_flag вторичного преобразования в отношении сигнала, в котором в субблоках блока преобразования существуют редкие ненулевые коэффициенты. В частности, объем обработки, связанной с кодированием флага вторичного преобразования, может быть уменьшен. Дополнительно, в отношении сигнала, в котором в субблоках в блоке преобразования существуют редкие ненулевые коэффициенты, снижение сжатия энергии может ограничиваться. Другими словами, снижение эффективности кодирования может ограничиваться.
Хотя пример, представленный выше, предназначен для описания процесса кодирования флага st_flag вторичного преобразования в блоке блока преобразования, идентификатор st_idx вторичного преобразования может быть кодирован вместо флага st_flag вторичного преобразования. В этом случае, флаг st_flag вторичного преобразования, показанный на восьмом этапе выше в таблице синтаксиса, приведенной на фиг. 27, заменяется идентификатором st_idx вторичного преобразования. Аналогично, на фиг. 21 блок 321 кодирования флага вторичного преобразования заменяется блоком 302 кодирования идентификатора вторичного преобразования, имеющим функцию, связанную с кодированием идентификатора st_idx вторичного преобразования, показанного на фиг. 16. Аналогично, этапы блок-схемы последовательности выполнения операций, показанной на фиг. 29, поясняются, заменяя термин "флаг st_flag вторичного преобразования" на термин "идентификатор st_idx вторичного преобразования".
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать процесс кодирования флага st_flag вторичного преобразования в отношении сигнала, в котором в субблоках блока преобразования существуют редкие ненулевые коэффициенты. В частности, объем обработки, связанной с кодированием флага вторичного преобразования, может быть уменьшен. Дополнительно, в отношении сигнала, в котором в субблоках в блоке преобразования существуют редкие ненулевые коэффициенты, снижение сжатия энергии может ограничиваться. Другими словами, снижение эффективности кодирования может ограничиваться.
Дополнительно, в приведенном выше выражении (50) условия не существует ограничения и выражение (50) условия может быть изменено на выражение условия (51), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодировался только для случая яркости. В частности, в случае, когда идентификатор cIdx, указывающий пространство цвета, указывает значение Luma (= 0) для яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется, но в случае, когда cIdx указывает значение Cb (= 1) или Cr (= 2) цветовой разности, кодирование флага st_flag вторичного преобразования (или идентификатора st_idx вторичного преобразования) игнорируется. В этом случае, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования), связанный с цветовой разностью, не кодируется, это может считаться равным флагу st_flag вторичного преобразования (или идентификатору st_idx вторичного преобразования) для яркости. Альтернативно, поскольку остаток цветовой разности является редким остаточным сигналом, обычно, по сравнению с сигналом яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) может рассматриваться как равный значению (0), указывающему, что вторичное преобразование должно быть пропущено (проигнорировано).
Логическое значение = (cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSigInSBK >= TH) (51)
Дополнительно, в приведенном выше выражении (50) условия не существует ограничения и выражение (50) условия может быть изменено на выражение условия (52), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодировался только для случая внутрикадрового предсказания. В частности, в случае, когда CuPredMode[x0][y0], указывающее режим предсказания CU, указывает внутрикадровое предсказание (= MODE_INTRA), флаг st_flag вторичного предсказания (или идентификатор st_idx вторичного предсказания) кодируется а в случае межкадрового предсказания кодирование игнорируется.
Логическое значение = (CuPredMode[x0][y0]==MODE_INTRA && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSigInSBK >= TH) (52)
Следует заметить, что условия выражений (50)-(52) условия могут объединяться друг с другом.
Следует заметить, что в процессе кодирования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражения (50)-(52) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Блок декодирования
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако устройство 200 декодирования изображения в этом случае содержит блок декодирования, пропускающий декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, в случае, когда в блоке субблоков среднее значение количества ненулевых коэффициентов содержащихся в блоке преобразования намеченной цели обработки меньше порогового значения. Короче говоря, устройство 211 декодирования изображения в этом случае пропускает декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, в случае, когда в блоке субблоков среднее значение количества ненулевых коэффициентов содержащихся в блоке преобразования намеченной цели обработки меньше порогового значения.
Блок 211 декодирования имеет функцию, в основном, схожую с функцией, описанной здесь выше в связи с третьим вариантом осуществления, при выполнении программы и т.п. Короче говоря, блок 211 декодирования имеет такие функциональные блоки, как описано здесь выше со ссылкой на фиг. 24.
Последовательность выполнения операций процесса декодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. В этом случае, устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) процесса декодирования изображения устройство 200 декодирования изображения выполняет декодирование кодированных данных флага st_flag вторичного преобразования и т.п. в ответ на значение среднего количества numSigInSBK ненулевых коэффициентов в субблоках блока преобразования и т.п. Пример последовательности выполнения операций декодирования кодированных данных флага st_flag вторичного преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 30 и 31. Короче говоря, процесс кодирования, показанный на фиг. 30 и 31, выполняется как часть процесса декодирования, выполняемого на этапе S201, показанном на фиг. 13. Декодирование других данных кодирования и кодированных данных уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После того как процесс декодирования начат, процессы на этапах S421-S429 на фиг. 30 выполняются аналогично процессам на этапах S381-S389, показанных на фиг. 25.
Когда процесс на этапе S428 или S429 закончен, обработка переходит к этапу S431, показанному на фиг. 31.
Процессы на этапах S431-S434 на фиг. 31 выполняются аналогично процессам на этапах S391-S394, показанных на фиг. 26.
В случае, когда на этапе S434 принимается решение, что флаг ts_flag пропуска преобразования равен 0, а именно, в случае, когда преобразование (первичное преобразование) должно быть выполнено, обработка переходит к этапу S435.
На этапе S435 блок 331 декодирования флага вторичного преобразования определяет среднее количество nmSigInSBK ненулевых коэффициентов в субблоках блока преобразования, которое является средним значением количества в субблоках блока преобразования ненулевых коэффициентов, содержащихся в блоке преобразования намеченной цели обработки. Например, блок 331 декодирования флага вторичного преобразования обращается к информации Rinfo об остатке, чтобы получить общее количество numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов, существующих в блоке преобразования, в соответствии со следующим выражением (53).
numSig = Σ(sig_coeff_flag(i,j))
Затем блок 331 декодирования флага вторичного преобразования делит общее количество numSig ненулевых коэффициентов на общее количество субблоков в блоке преобразования, чтобы получить среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока преобразования в соответствии со следующим выражением (54).
numSigInSBK = numSig/(TBSize * TBSize/16) (54)
Следует заметить, что выражение (54) может быть модифицировано таким образом, что используя арифметическую операцию сдвига вместо деления, получают среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока преобразования в соответствии со следующим выражением (55).
numSigInSBK = numSig >> (2*(log2TBSize - 2)) (55)
Здесь, log2TBSize - логарифмическое значение с основанием 2 размера TBSize блока преобразования. Следует заметить, что хотя предполагается, что блок преобразования является прямоугольным с размерами TBSize х TBSize, он может иметь четырехугольную форму с размерами TBXSize х TBYSize. В этом случае выражение (53), приведенное выше, может быть заменено следующим выражением (56), а выражение (55), приведенное выше, может быть заменено следующим выражением (57).
numSig = Σ(sig_coeff_flag(i,j))
numSigInSBK = numSig >> ((log2TBXSize - 2) + (log2TBYSize - 2)) (57)
Здесь log2TBXSize - логарифмическое значение с основанием 2 для ширины TBXSize по горизонтали блока преобразования, а log2TBYSize - логарифмическое значение с основанием 2 для ширины TBYSize по вертикали блока преобразования.
Дополнительно, хотя в приведенных выше выражениях (53)-(57) количество ненулевых коэффициентов во всех субблоках блока преобразования пронумерованы, нумерация может ограничиваться заданной областью. Например, в блоке преобразования TBXSize х TBYSize может быть пронумеровано количество ненулевых коэффициентов в субблоках, существующих в низкочастотной области. Например, субблоки, существующие в левой верхней половине блока преобразования TBXSize х TBYSize могут быть определены как намеченная цель согласно выражению (58), приведенном ниже. В этом случае выражение (57) может быть заменено следующим выражением (59).
numSig = Σ(sig_coeff_flag(i,j))
numSigInSBK = numSig >> ((log2TBXSize - 3) + (log2TBYSize - 3)) (59)
Дополнительно, хотя в выражениях (53)-(59), приведенных выше, количество numSig ненулевых коэффициентов во всех субблоках (или в субблоках в заданной области) в блоке преобразования делится (или подвергается арифметической операции сдвига) на общее количество всех субблоков (или субблоков в заданной области) в блоке преобразования, деление (или арифметическая операция сдвига) может выполняться после того, как значение количества субблоков/2 (= numSBK >> 1) добавляется в качестве смещения перед делением (арифметической операцией сдвига) (например, нижеследующие выражения (60), (61), (62) и (63)). Здесь, numSBK представляет количество всех субблоков (или субблоков в заданной области) в блоке преобразования, а numSBK в выражениях (60)-(62) становится numSBK = TBXSize * TBYSize/16 = 1 << ((log2TBXSize - 2) + (logTBYSize - 2)), и numSBK в выражении (63) равно numSBK = 1 << ((log2TBXSize - 3) + (logTBYSize - 3)).
numSigInSBK = (numSig + (numSBK >> 1))/(TBSize * TBSize/16) (60)
numSigInSBK = (numSig + (numSBK >> 1)) >> (2 * (log2TBSize - 2)) (61)
numSigInSBK = (numSig + (numSBK >> 1)) >> ((log2TBXSize - 2) + (log2TBYSize - 2)) (62)
numSigInSBK = (numSig + (numSBK >> 1)) >> ((log2TBXSize - 3) + (log2TBYSize - 3)) (63)
Дополнительно, хотя в выражениях (53)-(59), приведенных выше, количество numSig ненулевых коэффициентов во всех субблоках (или в субблоках в заданной области) в блоке преобразования делится (или подвергается арифметической операции сдвига) на общее количество всех субблоков (или субблоков в заданной области) в блоке преобразования, чтобы получить для блока субблоков среднее значение количества numSigInSBK ненулевых коэффициентов, количество субблоков, которое должно использоваться для деления, может быть заменено на общее количество numNonZeroSBK ( также называемое количеством ненулевых субблоков) субблоков, в которых существует ненулевой коэффициент.. Например, количество ненулевых субблоков numNonZeroSBK получают посредством выражения (47) приведенного выше. В частности, нумеруя количество субблоков, для которых флаг coded_sub_blck_flag(i,j)присутствия/отсутствия ненулевых коэффициентов субблоков равен 1, может быть получено количество numNonZeroSBK ненулевых субблоков. В этом случае, среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока преобразования может быть получено с помощью выражения (48), приведенного здесь выше, вместо выражения (54). Следует заметить, что в выражении (48), чтобы избежать деления на ноль, принимается решение, равно ли 0 количество numNonZeroSBK ненулевых субблоков, и если количество numNonZeroSBK ненулевых субблоков равно 0, то в numSigInSBK устанавливается 0, но если количество numNonZeroSBK нулевых субблоков больше 0, то в numSigInSBK устанавливается значение, полученное делением numSig на numNonZeroSBK.
Дополнительно, устанавливая заданную область в блок преобразования в качестве намеченной цели, среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока преобразования может быть получено на основе количества ненулевых коэффициентов в субблоках, существующих в заданной области, и количества субблоков, имеющих ненулевой коэффициент. Например, субблоки, существующие в левой верхней половине блока преобразования TBXSize х TBYSize, могут быть определены в качестве намеченной цели. В этом случае, количество numSig ненулевых коэффициентов получают посредством выражения (41), описанного здесь выше, и количество numNonZeroSBK ненулевых субблоков получают посредством приведенного выше выражения (49). Полученные numSig и numNonZeroSBK упоминаются здесь как среднее количество numSigInSBK ненулевых коэффициентов в субблоках блока преобразования, полученное с помощью приведенного здесь выше выражения (48).
После того как среднее значение количества nmSigInSBK ненулевых коэффициентов субблоков блока преобразования определено таким образом, как описано выше, обработка переходит к этапу S436.
На этапе S416 блок 331 декодирования флага вторичного преобразования принимает решение, равно ли или больше заданного порогового значения TH среднее количество numSigInSBK ненулевых коэффициентов субблоков блока преобразования (numSigInSBK >= TH). В случае, когда принято решение, что логическое значение выражения условия равно 0 (ложь), а именно, в случае, когда решено, что условие numSigInSBK < TH удовлетворяется, обработка переходит к этапу S437.
В случае, когда среднее количество numSigInSBK ненулевых коэффициентов субблоков блока меньше заданного порогового значения ТН, существует субблок, в котором ненулевые коэффициенты являются редкими. Если для такого субблока, как описано выше, выполняется обратное вторичное преобразование, то тогда сжатие энергии ухудшается и существует возможность, что эффективность кодирования может уменьшаться. Соответственно, чтобы ограничить снижение эффективности кодирования, желательно пропускать обратное вторичное преобразование. Короче говоря, в этом случае управление выполняется таким образом, что обратное вторичное преобразование пропускается. Соответственно, значение флага st_flag вторичного преобразования устанавливается равным 0. Соответственно, в этом случае со стороны кодирования флаг st_flag вторичного преобразования не передается, блок 331 декодирования флага вторичного преобразования пропускает декодирование кодированных данных флага st_flag вторичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
На этапе S437 декодирование кодированных данных флага st_flag вторичного преобразования пропускается. Дополнительно, в этом случае, поскольку обратное вторичное преобразование пропускается, значение флага st_idx вторичного преобразования устанавливается равным 0. Соответственно, блок 331 декодирования флага вторичного преобразования дает оценку, что значение флага st_flag вторичного преобразования равно 0. Короче говоря, блок 331 декодирования флага вторичного преобразования устанавливает значение флага st_flag вторичного преобразования равным 0 (st_flag = 0). Когда процесс на этапе S437 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
В случае, когда на этапе S436 принимается решение, что логическое значение выражения условия равно 1 (истина), а именно, в случае, когда условие numSigInSBK >= TH удовлетворяется, обработка переходит к этапу S438.
На этапе S438 блок 331 декодирования флага вторичного преобразования декодирует кодированные данные флага st_flag вторичного преобразования.
Короче говоря, только в случае, когда выражение (50) условия, приведенное здесь выше, равно 1 (истина), кодированные данные флага st_flag вторичного преобразования декодируются. Это соответствует седьмому этапу представленного выше синтаксиса, описанного здесь ранее со ссылкой на фиг. 27.
Когда процесс на этапе S438 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
Выполняя процесс декодирования таким способом, как описано выше, устройство 200 декодирования изображения может пропускать процесс декодирования флага st_flag вторичного преобразования в отношении сигнала, в котором в субблоках блока преобразования существуют редкие ненулевые коэффициенты. В частности, объем обработки, связанной с декодированием кодированных данных флага вторичного преобразования, может быть уменьшен. Дополнительно, в отношении сигнала, в котором в субблоках в блоке преобразования существуют редкие ненулевые коэффициенты, снижение сжатия энергии может ограничиваться. Другими словами, снижение эффективности кодирования может ограничиваться.
Хотя пример, представленный выше, предназначен для описания процесса декодирования флага st_flag вторичного преобразования в блоке блока преобразования, идентификатор st_idx вторичного преобразования может быть декодирован вместо флага st_flag вторичного преобразования. В этом случае, флаг st_flag вторичного преобразования, показанный на восьмом этапе выше в таблице синтаксиса, приведенной на фиг. 27, заменяется идентификатором st_idx вторичного преобразования. Аналогично, на фиг. 24 блок 331 декодирования флага вторичного преобразования заменяется блоком 312 декодирования идентификатора вторичного преобразования, имеющим функцию, связанную с декодированием идентификатора st_idx вторичного преобразования, показанного на фиг. 18. Аналогично, этапы блок-схемы последовательности выполнения операций, показанной на фиг. 31, поясняются, заменяя термин "флаг st_flag вторичного преобразования" на термин "идентификатор st_idx вторичного преобразования".
Выполняя процесс декодирования таким способом, как описано выше, устройство 200 декодирования изображения может пропускать процесс декодирования идентификатора st_idx вторичного преобразования в отношении сигнала, в котором в субблоках блока преобразования существуют редкие ненулевые коэффициенты. В частности, объем обработки, связанной с процессом декодирования идентификатора вторичного преобразования, может быть уменьшен. Дополнительно, в отношении сигнала, в котором в субблоках в блоке преобразования существуют редкие ненулевые коэффициенты, снижение сжатия энергии может ограничиваться. Другими словами, снижение эффективности кодирования может ограничиваться.
Дополнительно, в приведенном выше выражении (50) условия не существует ограничения и выражение (50) условия может быть изменено на выражение условия (51), приведенное ниже, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется только для случая яркости. В частности, в случае, когда идентификатор cIdx, указывающий пространство цвета, указывает значение Luma (= 0) для яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется, и в случае, когда cIdx указывает значение Cb (= 1) или Cr (= 2) цветовой разности, декодирование флага st_flag вторичного преобразования (или идентификатора st_idx вторичного преобразования) игнорируется. В этом случае, поскольку флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования), связанный с цветовой разностью, не декодируется, это может считаться равным флагу st_flag вторичного преобразования (или идентификатору st_idx вторичного преобразования) для яркости. Другими словами, применяется то же самое (обратное) вторичное преобразование. Альтернативно, поскольку остаток цветовой разности часто является редким остаточным сигналом, обычно, по сравнению с сигналом яркости, флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) может рассматриваться как равный значению (0), указывающему, что обратное вторичное преобразование должно быть пропущено (проигнорировано).
Дополнительно, в приведенном выше выражении (50) условия не существует ограничения и выражение (50) условия может быть изменено на выражение (52) условия, приведенное выше, с тем, чтобы флаг st_flag вторичного преобразования (или идентификатор st_idx вторичного преобразования) кодируется только для внутрикадрового предсказания. В частности, в случае, когда CuPredMode[x0][y0], указывающее режим предсказания CU, указывает внутрикадровое предсказание (= MODE_INTRA), флаг st_flag вторичного предсказания (или идентификатор st_idx вторичного предсказания) декодируется, а в случае межкадрового предсказания декодирование игнорируется. Следует заметить, что условия выражений (50)-(52) условия могут объединяться должным образом.
Следует заметить, что процесс декодирования, описанный выше, может подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражения (50)-(52) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
5. Пятый вариант осуществления
Пропуск кодирования и декодирования идентификатора первичного преобразования
В способе, раскрытом в NPL 1, идентификатор pt_idx первичного преобразования назначает, какое первичное преобразование должно применяться при первичном преобразовании Phor в горизонтальном направлении и первичном преобразовании Pver в вертикальном направлении для каждого блока преобразования. Более конкретно, идентификатор pt_idx первичного преобразования кода с фиксированной длиной получают таким способом, как указано в приведенном ниже выражении (64), из флага pt_hor_flag назначения первичного преобразования в горизонтальном направлении, который назначает, которое из двух, Thor1 или Thor2, должно применяться в качестве первичного преобразования Phor в горизонтальном направлении, и которое из двух, Tver1 или Tver2, должно применяться в качестве первичного преобразования Pver в вертикальном направлении.
pt_idx = {(pt_hor_flag << 1) + pt_ver_flag} (64)
Здесь далее, кодирование выполняется, применяя арифметическое кодирование к двоичной строке идентификатора pt_idx первичного преобразования, чтобы сформировать битовую строку. Способ кодирования показан на фиг. 32. Дополнительно, способ декодирования идентификатора pt_idx первичного преобразования, соответствующего кодированию, показан на фиг. 33. Как указано в позиции A на фиг. 32 или в позиции A на фиг. 33, идентификатор pt_idx первичного преобразования преобразуется в двоичную форму кода с фиксированной длиной. Выбор контекста при арифметическом кодировании и арифметическом декодировании выполняется в соответствии с таблицей, показанной в позиции В на фиг. 32 или в позиции В на фиг. 33.
Однако в NPL 1, поскольку идентификатор pt_idx первичного преобразования сообщается в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина) (в случае, когда должен применяться обход квантования-преобразования) служебная сигнализация идентификатора является бесполезной и существует возможность, что эффективность кодирования может уменьшиться.
Поэтому, в случае, когда после кодирования изображения флаг transquant_bypass_flag обхода квантования-преобразования указывает, что обход квантования-преобразования должен быть выполнен, кодирование идентификатора pt_idx первичного преобразования пропускается (игнорируется). Это дает возможность ограничения снижения эффективности кодирования.
С другой стороны, в случае, когда после декодирования изображения флаг transquant_bypass_flag обхода квантования-преобразования указывает, что обход квантования-преобразования должен быть выполнен, декодирование идентификатора pt_idx первичного преобразования пропускается (игнорируется) и, помимо этого, считается, что значение идентификатора pt_idx первичного преобразования является значением идентификатора (например, -1), которое указывает на использование заданного ортогонального преобразования (например, DCT-типа 2) для первичного преобразования Phor в горизонтальном направлении и первичного преобразования Pver в вертикальном направлении. Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, в способе, раскрытом в NPL 1, поскольку перевод в двоичную форму не берет в рассмотрение частоту появления значения идентификатора pt_idx первичного преобразования, существует возможность, что после арифметического кодирования эффективность кодирования может уменьшиться.
Поэтому в качестве способа перевода в двоичную форму для идентификатора pt_idx первичного преобразования применяется усеченное унарное преобразование в двоичную форму (Truncated Unary Binarization) (также упоминаемое как TU). Это дает возможность ограничения снижения эффективности кодирования.
Синтаксис
Пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, приводится на фиг. 34. Как указано на седьмом этапе выше на фиг. 34, для кодирования идентификатора pt_idx первичного преобразования (а именно, для декодирования кодированных данных идентификатора pt_idx первичного преобразования), одним из условий является то, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0. В частности, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда (обратное) преобразование и (обратное) квантование должны быть пропущены, кодирование идентификатора pt_idx первичного преобразования (декодирование кодированных данных идентификатора pt_idx первичного преобразования) пропускается.
Блок кодирования
В этом случае, также, устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. В частности, устройство 100 кодирования изображения, описанное в связи с первым вариантом осуществления, содержит блок кодирования, который, в случае когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, должны быть пропущены, пропускает кодирование первой информации, представляющей содержание первичного преобразования.
В частности, блок 114 кодирования изображения в этом случае, когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, пропускает кодирование первой информации, представляющей содержание первичного преобразования.
На фиг. 35 представлена функциональная блок-схема примера основных функций, связанных с кодированием идентификатора первичного преобразования, которые осуществляются блоком 114 кодирования, выполняющим в этом случае программу и т.п. Как показано на фиг. 34, блок 114 кодирования в этом случае может содержать в качестве функций, связанных с кодированием идентификатора первичного преобразования, выполняя программу, например, блок 401 кодирования флага действительности первичного преобразования и блок 402 кодирования идентификатора первичного преобразования.
Блок 401 кодирования флага действительности первичного преобразования выполняет процесс, связанный с кодированием флага pt_enabled_flag действительности первичного преобразования, который является информацией, связанной с разрешением первичного преобразования. Блок 402 кодирования идентификатора первичного преобразования выполняет процесс, связанный с кодированием идентификатора pt_idx первичного преобразования, который является информацией, связанной с содержанием первичного преобразования.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. В этом случае, устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае устройство 100 кодирования изображения на этапе S110 (фиг. 9) выполняет кодирование идентификатора pt_idx первичного преобразования и т.п. в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. процесса кодирования изображения. Пример последовательности выполнения операций кодирования идентификатора pt_idx первичного преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 36. Короче говоря, процесс кодирования, показанный на фиг. 36, выполняется как часть процесса кодирования, выполняемого на этапе S110 на фиг. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольными способами.
После того как на этапе S501 начат процесс кодирования, блок 401 кодирования флага действительности первичного преобразования кодирует флаг pt_enabled_flag действительности первичного преобразования, содержащийся в информации Hinfo заголовка, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Кодированные данные флага pt_enabled_flag действительности первичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
На этапе S502 блок 402 кодирования идентификатора первичного преобразования принимает решение, равен ли 1 (истина) флаг pt_enabled_flag действительности первичного преобразования, содержащийся в информации Hinfo заголовка. В случае, когда принимается решение, что флаг pt_enabled_flag действительности первичного преобразования равен 0, а именно, когда решено, что выполнение первичного преобразования не разрешается, процессы на этапах S503-S508 пропускаются, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Если выполнение первичного преобразования не разрешается, то первичное преобразование не выполняется и нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S502 решено, что флаг pt_enabled_flag действительности первичного преобразования равен 1, а именно, в случае, когда решено, что выполнение первичного преобразования разрешается, обработка переходит к этапу S503.
На этапе S503 блок 402 кодирования флага первичного преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования, содержащийся в информации Tinfo о преобразовании. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда решено, что преобразование (первичное преобразование и вторичное преобразование) и квантование должны быть пропущены (обойдены), процессы на этапах S504-S508 пропускаются и процесс кодирования заканчивается, а обработка переходит к фиг. 9.
Если преобразование и квантование должны быть обойдены, то тогда нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S503 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь), а именно, в случае, когда решено, что преобразование и квантование не должны пропускаться (обходиться), обработка переходит к этапу S504.
На этапе S504 блок 402 кодирования идентификатора первичного преобразования принимает решение, равняется ли 1 (истина) флаг ts_flag пропуска преобразования, содержащийся в информации Tinfo о преобразовании. В случае, когда решено, что флаг ts_flag пропуска преобразования равен 1, а именно, в случае, когда решено, что преобразование (первичное преобразование) должно быть пропущено, процессы на этапах S505-S508 пропускаются, процесс кодирования заканчивается и обработка переходит к фиг. 9.
Если преобразование (первичное преобразование) должно быть пропущено, то тогда нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S504 принимается решение, что флаг ts_flag пропуска преобразования равен 0, а именно, в случае, когда решено, что преобразование (первичное преобразование) не должно выполняться, обработка переходит к этапу S505.
На этапе S505 блок 402 кодирования идентификатора первичного преобразования принимает решение, равен ли или меньше размер TBSize блока преобразования намеченной цели обработки, чем максимальный размер MaxPTSize блока первичного преобразования (истинно ли выражение условия TBSize <= MaxPTSize). В случае, когда решено, что размер TBSize блока преобразования намеченной цели обработки больше, чем максимальный размер MaxPTSize блока первичного преобразования, а именно, в случае, когда выражение условия, приведенное выше, равно 0 (ложь), процесс на этапах S506-S508 пропускается, процесс кодирования заканчивается и обработка переходит к фиг. 9.
Максимальный размер MaxPTSize блока первичного преобразования является информацией, указывающей максимальный размер блока, с помощью которого разрешается выполнение первичного преобразования. В частности, в случае, когда размер блока преобразования больше максимального размера MaxPTSize блока первичного преобразования, выполнение первичного преобразования не разрешается и, следовательно, нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S505 решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxPTSize блока первичного преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 1 (истина), обработка переходит к этапу S506.
Следует заметить, что на этапе S505 выражение условия (TBSize <= MaxTSSize), приведенное выше, может быть заменено другим выражением условия (log2TBSize <= log2MaxPTSize), используя логарифмическое значение log2TBSize с основанием 2 для размера TB и логарифмическое значение log2MaxPTSize с основанием 2 для максимального размера MaxPTSize блока преобразования.
На этапе S506 блок 402 кодирования идентификатора первичного преобразования обращается к информации Rinfo об остатке, чтобы подсчитать общее количество numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов, существующих в блоке преобразования в соответствии со следующим выражением (65).
numSig = Σ(sig_coeff_flag(i,j))
На этапе S507 блок 402 кодирования идентификатора первичного преобразования принимает решение, равно ли или больше общее количество numSig ненулевых коэффициентов, чем заданное пороговое значение TH (numSig >= TH). В случае, когда решено, что общее количество numSig ненулевых коэффициентов меньше заданного порогового значения TH (numSig < TH), процесс на этапе S508 пропускается, процесс кодирование заканчивается и обработка возвращается к фиг. 9.
В случае, когда общее количество numSig ненулевых коэффициентов меньше порогового значения TH, а именно, в случае прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало, поскольку существует возможность, что сжатие энергии может ухудшиться и эффективность кодирования может снизиться, то для ограничения снижения эффективности кодирования, желательно применять пропуск преобразования или заданное ортогональное преобразование (например, DCT - тип 2). Короче говоря, в этом случае нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S507 принято решение, что общее количество numSig ненулевых коэффициентов равно или больше заданного порогового значения TH, обработка переходит к этапу S508.
На этапе S508 блок 402 кодирования идентификатора первичного преобразования кодирует с переменной длиной идентификатор pt_idx первичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Подробности кодирования описываются здесь далее. Кодированные данные идентификатора pt_idx первичного преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Короче говоря, только в случае, когда выражение (66) условия равно 1 (истина), идентификатор pt_idx первичного преобразования кодируется. Это соответствует седьмому этапу представленного выше синтаксиса, описанного здесь ранее со ссылкой на фиг. 34.
Логическое значение = (pt_enabled_flag && (transquant_bypass_flag == 0 || ts_flag == 0) && (log2TBSize <= log2MaxPTSize) && numSig >= TH) (66)
Когда процесс на этапе S508 закончен, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать процесс кодирования идентификатора pt_idx первичного преобразования в случае, когда применяется обход квантования-преобразования. В частности, могут быть уменьшены объем обработки и объем кода, связанный с кодированием идентификатора pt_idx первичного преобразования.
Дополнительно, в приведенном выше выражении (66) условия не существует ограничения и выражение (66) условия может быть изменено на выражение (67) условия, приведенное ниже, с тем, чтобы идентификатор pt_idx первичного преобразования кодировался только для случая яркости. В частности, в случае, когда идентификатор cIdx, указывающий пространство цвета, указывает значение Luma (= 0) для яркости, идентификатор pt_idx первичного преобразования кодируется, но в случае, когда cIdx указывает значение Cb (= 1) или Cr (= 2) цветовой разности, кодирование идентификатора pt_idx первичного преобразования игнорируется.
Logical value = (cIdx==Luma && st_enabled_flag &&
(transquant_bypass_flag==0 || ts_flag==0) &&
numSig >= TH) (67)
Следует заметить, что условия в выражениях (66) и (67) условия могут объединяться друг с другом.
Следует заметить, что в процессе кодирования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражения (66) и (67) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Дополнение: Пропуск кодирования флага первичного преобразования CU (флага адаптивного первичного преобразования)
Хотя устройство 100 кодирования изображения, описанное выше, относится к примеру, в котором, в случае, когда применяется обход квантования-преобразования, процесс кодирования идентификатора pt_idx первичного преобразования в блоке блока преобразования пропускается, устройство кодирования изображения этим не ограничивается. Например, в блоке CU флаг cu_pt_flag первичного преобразования CU (также упоминаемый как флаг apt_flag адаптивного первичного преобразования), указывающий, должен ли кодироваться идентификатор pt_idx первичного преобразования в блоке блока преобразования, кодируется в ответ на значение флага transquant_bypass_flag пропуска квантования-преобразования.
В случае, когда флаг cu_pt_flag первичного преобразования CU равен 1 (истина), кодирование идентификатора pt_idx первичного преобразования в блоке блока преобразования разрешается, но в случае, когда флаг cu_pt_flag первичного преобразования CU равен 0 (ложь), кодирование идентификатора pt_idx первичного преобразования в блоке блока преобразования может игнорироваться. В этом случае блок 114 кодирования дополнительно содержит блок 403 кодирования флага первичного преобразования CU, не показанный на чертеже.
Блок 403 кодирования флага первичного преобразования CU выполняет процесс, связанный с кодированием флага cu_pt_flag первичного преобразования CU, который является информацией, связанной с разрешением кодирования идентификатора pt_idx первичного преобразования в блоке TU. Кодирование флага cu_pt_flag первичного преобразования CU блоком 403 кодирования первичного преобразования CU выполняется, например, на основе следующих псевдокодов.
If (!transquant_bypass_flag && pt_enabled_flag)
{
encode cu_pt_flag
}
В частности, блок 403 кодирования флага первичного преобразования CU кодирует флаг cu_pt_flag первичного преобразования CU, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь) и, помимо этого, флаг pt_enabled_flag действительности первичного преобразования равен 1 (истина), но игнорирует кодирование флага cu_pt_flag первичного преобразования CU в любом другом случае (флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина) или флаг pt_enabled_flag действительности первичного преобразования равен 0 (ложь)). В частности, в случае, когда применяется флаг обхода квантования-преобразования, нет необходимости передавать стороне декодирования флаг cu_pt_flag первичного преобразования CU. Соответственно, блок 403 кодирования флага вторичного преобразования CU пропускает кодирование флага cu_pt_flag CU первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
Следует заметить, что в этом случае условие кодирования идентификатора pt_idx первичного преобразования блоком 402 кодирования идентификатора первичного преобразования основывается, например, на следующих псевдокодах.
if (cu_pt_flag && ts_flag==0 && numSig >= TH)
{
encode pt_idx
}
В частности, блок 402 кодирования идентификатора первичного преобразования кодирует идентификатор pt_idx первичного преобразования, когда флаг cu_pt_flag первичного преобразования CU равен 1 (истина) и флаг ts_flag пропуска преобразования равен 0 (ложь) и, помимо этого, количество numSig ненулевых коэффициентов равно или больше, чем пороговое значение TH, но игнорирует кодирование идентификатора pt_idx первичного преобразования в любом другом случае (флаг cu_pt_flag первичного преобразования CU равен 0 (ложь) или флаг ts_flag пропуска преобразования равен 1 (истина) или, еще, количество numSig ненулевых коэффициентов меньше порогового значения TH). В частности, в случае, когда флаг первичного преобразования CU равен 0, нет необходимости передавать стороне декодирования идентификатор pt_idx первичного преобразования. Соответственно, блок 402 кодирования идентификатора первичного преобразования пропускает кодирование идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
Последовательность выполнения операций процесса кодирования идентификатора первичного преобразования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 37, описывается пример последовательности выполнения операций процесса кодирования идентификатора первичного преобразования, выполняемого на этапе S508, показанном на фиг. 36.
После того как процесс кодирования идентификатора первичного преобразования начался, блок 402 кодирования идентификатора первичного преобразования на этапе S511 выполняет использование переменных. Например, блок 402 кодирования идентификатора первичного преобразования устанавливает значение maxPTIdx, которое является максимальным значением идентификатора pt_idx первичного преобразования, равным 3 (maxPTIdx = 3).
На этапе S512 блок 402 кодирования идентификатора первичного преобразования обращается к информации Pinfo о режиме предсказания, чтобы решить, является ли CU, содержащий блок преобразования намеченной цели обработки внутрикадровым предсказанием или межкадровым предсказанием. В случае, когда решено, что CU является межкадровым предсказанием, обработка переходит к этапу S513.
На этапе S513 блок 402 кодирования идентификатора первичного преобразования корректирует значение идентификатора pt_idx первичного преобразования, как показывается следующим выражением (68).
pt_idx = maxPTIdx - pt_idx (68)
Вероятность появления значений идентификатора pt_idx первичного преобразования имеет тенденцию к противоречию между внутрикадровым предсказанием и межкадровым предсказанием. Поэтому, с тем, чтобы в случае внутрикадрового предсказания блок 402 кодирования идентификатора преобразования выполнял при арифметическом кодировании установку значения (0), частота появления которого является от наивысшей до 0, значения (1), частота появления которого является от второй наивысшей до 1, значения (2), частота появления которого является от третьей наивысшей до 2, и значения (3), частота появления которого является от четвертой наивысшей до 3, а в случае межкадрового предсказания блок 402 кодирования идентификатора первичного преобразования выполнял при арифметическом кодировании установку значения (3), частота появления которого является от наивысшей до 0, значения (2), частота появления которого является от второй наивысшей до 1, значения (3), частота появления которого является от третьей наивысшей до 2, и значения (0), частота появления которого является от четвертой наивысшей до 3, значение идентификатора pt_idx первичного преобразования, которое делается намеченной целью арифметического кодирования, изменяется, как указано выражением (68), приведенным здесь выше.
Когда процесс на этапе S513 закончен, обработка переходит к этапу S514. С другой стороны, в случае, когда на этапе S512 решено, что CU является внутрикадровым предсказанием, обработка переходит к этапу S514.
На этапе S514 блок 402 кодирования идентификатора первичного преобразования получает maxBinIdx, указывающий длину двоичной строки в случае, когда идентификатор pt_idx первичного преобразования преобразуется в двоичную форму с помощью TU, как указывается приведенным ниже выражением (69). В частности, меньшее значение из числа идентификатора pt_idx первичного преобразования и максимального значения maxPTIdx идентификатора pt_idx первичного преобразования определяется как значение maxBinIdx.
maxBinIdx = min(pt_idx, maxPTIdx) (69)
На этапе S515 блок 402 кодирования идентификатора первичного преобразования принимает решение, является ли значение binIdx, указывающее положение накопителя на данный момент для строки накопителя, полученной посредством преобразования в двоичную форму идентификатора pt_idx первичного преобразования, меньшим, чем максимальное значение maxBinIdx для binIdx. В случае, когда принято решение, что значение binIdx меньше, чем значение maxBinIdx (binIdx < maxBinIdx), обработка переходит к этапу S516.
На этапе S516 блок 402 кодирования идентификатора первичного преобразования устанавливает значение символа symbol накопителя в позиции binIdx = i равным 1 (symbol = 1).
На этапе S517 блок 402 кодирования идентификатора первичного преобразования арифметически кодирует символ накопителя в позиции binIdx = 1 в строке накопителя идентификатора pt_idx двоичного первичного преобразования.
Здесь, блок 402 кодирования идентификатора первичного преобразования, когда он арифметически преобразует накопитель в позиции binIdx = i, использует контекст, соответствующий каждому binIdx, как показано на фиг. 38, чтобы выполнить арифметическое кодирование. Например, в случае M0 на фиг. 38 показан пример, в котором арифметическое кодирование выполняется в режиме обхода, в котором никакой контекст не используется в отношении всех накопителей binIdx = 0-2. Следует заметить, что режим обхода является режимом, в котором арифметическое кодирование выполняется, предполагая, что вероятности появления символа 0 и символа 1 равны друг другу.
При этом, в случае M1 на фиг. 38 показан пример, в котором для накопителя binIdx = 0 (сверху), арифметическое кодирование выполняется в регулярном режиме, в котором контекст используется и для накопителей binIdx = 1-2 арифметическое кодирование выполняется в режиме обхода. Следует заметить, что регулярный режим является режимом, в котором арифметическое кодирование выполняется в то время, как обновляются вероятности появления символа 0 и символа 1. Например, в случае M1 для накопителя binIdx = 0 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, но в случае межкадрового предсказания устанавливается 1.
При этом, в случае M2 на фиг. 38 показан пример, в котором для накопителей binIdx = 0-1, арифметическое кодирование выполняется в регулярном режиме, в котором контекст используется и для накопителя binIdx = 2 арифметическое кодирование выполняется в режиме обхода. Например, в случае M1 для накопителя binIdx = 0 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, но в случае межкадрового предсказания назначается равным 1. При этом, для накопителя binIdx = 1 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 2, а в случае межкадрового предсказания назначается равным 3.
Дополнительно, в M1 и M2 на фиг. 38 в накопитель в позиции binIdx = i, который является намеченной целью арифметического кодирования в регулярном режиме, назначается индекс ctxInc контекста, который назначает различные контексты между внутрикадровым предсказанием и межкадровым предсказанием. Однако, тенденция, что вероятность появления значений идентификатора pt_idx первичного преобразования находится между внутрикадровым предсказанием и межкадровым предсказанием, в выражении (68), приведенном выше, используется для создания такой модификации, что для идентификатора pt_idx первичного преобразования в случае внутрикадрового предсказания значение (0), частота появления которого является наивысшей, устанавливается равным 0, значение (1), частота появления которого является второй наивысшей, устанавливается равным 1, значение (2), частота появления которого является третьей наивысшей, устанавливается равным 2, и значение (3), частота появления которого является четвертой наивысшей, устанавливается равным 3, а в случае межкадрового предсказания значение (3), частота появления которого является наивысшей, устанавливается равным 0, значение (2), частота появления которого является второй наивысшей, устанавливается равным 1, значение (3), частота появления которого является третьей наивысшей, устанавливается равным 2 и значение (0), частота появления которого является четвертой наивысшей, устанавливается равным 3. Посредством модификации, вероятность появления символа накопителя binIdx = 0 идентификатора pt_idx первичного преобразования после того, как выражение (68) становится равным 0 или 1, может быть сделана равной для внутрикадрового предсказания и для межкадрового предсказания. Соответственно, в случае внутрикадрового предсказания и межкадрового предсказания может быть назначен индекс ctxInc контекста, который назначает один и тот же контекст накопителю в позиции binIdx = i, что становится целью арифметического кодирования в регулярном режиме . В этом случае, хотя и достигается эффективность кодирования, эквивалентная случаю, когда индекс ctxInc контекста назначает контексты, различающиеся для внутрикадрового предсказания и межкадрового предсказания, размер памяти для остающихся контекстов может быть уменьшен.
Например, в случае M3 на фиг. 38 показан пример, в котором для накопителя binIdx = 0 (сверху), арифметическое кодирование выполняется в регулярном режиме, в котором контекст используется и для накопителей binIdx = 1-2 арифметическое кодирование выполняется в режиме обхода. Например, в случае M3 для накопителя binIdx = 0 в случае индекса ctxInc, который назначает контекст, устанавливается равным 0, независимо от внутрикадрового предсказания или межкадрового предсказания.
Дополнительно, в случае M4 на фиг. 38 показан пример, в котором для накопителей binIdx = 0-1, арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст и для накопителя binIdx = 2 арифметическое кодирование выполняется в режиме обхода. В случае M4, независимо от внутрикадрового предсказания или межкадрового предсказания, для накопителя binIdx = 0, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, а для накопителя binIdx = 1 значение индекса ctxInc, который назначает контекст, устанавливается равным 1.
Используя M0 на фиг. 38, арифметическое кодирование выполняется полностью в режиме обхода без выполнения арифметического кодирования в регулярном режиме, который импользует контекст и, следовательно, строка накопителя может быть арифметически кодирована с высокой скоростью по сравнению со скоростью при способе, изложенном в NPL 1 и, помимо этого, размер памяти для остающихся контекстов может быть уменьшен по сравнению с объемом памяти на предшествующем уровне техники.
Дополнительно, используя M1 на фиг. 38, для верхнего накопителя (binIdx = 0), выполняется арифметическое кодирование в регулярном режиме, в котором используется контекст, тогда как остающиеся накопители арифметически кодируются в режиме обхода. Поэтому строка накопителя может арифметически кодироваться на высокой скорости по сравнению со скоростью, обеспечиваемой способом, раскрытым в NPL 1 и, кроме того, размер памяти для остающихся контекстов может быть уменьшен. Также, улучшается эффективность кодирования.
Выгода при использовании M2, показанного на фиг. 38 состоит в том, что поскольку для накопителей binIdx = 0-1 арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст, а остальные накопителя арифметически кодируются в режиме обхода, строка накопителя может арифметически кодироваться на высокой скорости по сравнению со скоростью, даваемой способом, раскрытым в NPL 1. Также, улучшается эффективность кодирования.
При этом, в случае М3, показанного на фиг. 38, для верхнего накопителя (binIdx = 0) назначается индекс контекста, назначающий один и тот же контекст, независимо от внутрикадрового предсказания или межкадрового предсказания. Соответственно, по сравнению с М1, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
В случае М4, показанном на фиг. 38, для накопителей binIdx = 0-1 назначается индекс контекста, назначающий один и тот же контекст, независимо от внутрикадрового предсказания или межкадрового предсказания. Соответственно, по сравнению с М2, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
На этапе S518 блок 402 кодирования идентификатора первичного преобразования обновляет значение переменной binIdx (binIdx += 1). После того как процесс на этапе S518 закончен, обработка возвращается к этапу S515 и последующие процессы повторяются. В частности, процессы на этапах S515-S518 повторяются до тех пор, пока на этапе S515 не будет решено, что значение binIdx равно или больше значения minBinIdx. В случае, когда на этапе S515 принято решение, что значение binIdx равно или больше, чем значение minBinIdx, обработка переходит к этапу S519.
На этапе S519 блок 402 кодирования идентификатора первичного преобразования принимает решение, меньше ли идентификатор pt_idx первичного преобразования, чем максимальное значение идентификатора pt_idx первичного преобразования. В случае, когда принято решение, что значение идентификатора pt_idx первичного преобразования меньше, чем значение maxPTIdx (pt_idx < maxPTIdx), обработка переходит к этапу S520.
На этапе S520 блок 402 кодирования идентификатора первичного преобразования устанавливает значение символа symbol накопителя в позиции binIdx = i равным 0 (symbol = 0).
На этапе S521 блок 402 кодирования идентификатора первичного преобразования арифметически кодирует символ накопителя в позиции binIdx = i в строке накопителя идентификатора pt_idx двоичного первичного преобразования.
Когда процесс на этапе S521 закончен, процесс кодирования идентификатора первичного преобразования заканчивается и обработка возвращается к фиг. 36. При этом, в случае, когда на этапе S519 решено, что значение идентификатора pt_idx первичного преобразования равно или больше, чем значение maxPIIdx (pt_idx >= maxPTIdx), процессы на этапа S520 и S521 пропускаются процесс кодирования идентификатора первичного преобразования заканчивается и обработка возвращается к фиг. 36.
Псевдокоды процессов, описанных выше, представлены в позиции А на фиг. 39. Это делает возможным реализацию преобразования в двоичную форму, используя такое TU (усеченное унарное преобразование в двоичную форму), как показано в позиции B на фиг. 39. Например, если значение идентификатора pt_idx первичного преобразования равно 0, то получается битовая строка 0. С другой стороны, например, если значение идентификатора pt_idx первичного преобразования равно 1, то получается битовая строка 10.
Это дает возможность ограничения снижения эффективности кодирования идентификатора pt_idx первичного преобразования.
Дополнительно, выполняя процесс на этапе S513, то, что вероятность появления идентификатора pt_idx первичного преобразования имеет тенденцию которая заключена между внутрикадровым предсказанием и межкадровым предсказанием, может быть использовано, и может выполняться более эффективное арифметическое кодирование.
Дополнительно, в случае, когда M0 на фиг. 38 используется в процессе на этапе S517, поскольку арифметическое кодирование выполняется полностью в режиме обхода без выполнения арифметического кодирования в регулярном режиме, который использует контекст, строка накопителя может быть арифметически кодирована с высокой скоростью по сравнению со скоростью при способе, изложенном в NPL 1, и, помимо этого, размер памяти для остальных контекстов может быть уменьшен по сравнению с объемом памяти на предшествующем уровне техники.
Помимо этого, в случае, когда M1 на фиг. 38 используется в процессе на этапе S517, поскольку арифметическое кодирование в регулярном режиме, в котором используется контекст, выполняется для верхнего накопителя (binIdx = 0), а арифметическое кодирование в режиме обхода выполняется для остальных накопителей, строка накопителя может быть арифметически кодирована с высокой скоростью по сравнению со скоростью при способе, изложенном в NPL 1, и, помимо этого, размер памяти для остальных контекстов может быть уменьшен. Также, улучшается эффективность кодирования.
Дополнительно, в случае, когда M2 на фиг. 38 используется в процессе на этапе S517, поскольку арифметическое кодирование в регулярном режиме, в котором используется контекст, выполняется для накопителей binIdx = 0-1, а арифметическое кодирование выполняется для остальных накопителей, строка накопителя может быть арифметически кодирована с высокой скоростью по сравнению со скоростью при способе, изложенном в NPL 1. Кроме того, повышается эффективность кодирования.
Помимо этого, в случае, когда M3 на фиг. 38 используется в процессе на этапе S517, поскольку арифметическое кодирование в регулярном режиме, в котором используется один и тот же контекст, независимо от того, внутрикадровое кодирование или межкадровое кодирование выполняется для верхнего накопителя (binIdx = 0), а арифметическое кодирование в режиме обхода выполняется для остальных накопителей, хотя по сравнению со случаем М1 достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
Дополнительно, в случае, когда M4 на фиг. 38 используется в процессе на этапе S517, арифметическое кодирование в регулярном режиме, в котором используется один и тот же контекст, независимо от того, при внутрикадровом кодировании или межкадровом кодировании, выполняется для накопителей binIdx = 0-1, и арифметическое кодирование в режиме обхода выполняется для остающегося накопителя. Соответственно, по сравнению со случаем М2, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
Следует заметить, что изменение порядка обработки этапов или изменение содержания процессов могут осуществляться в пределах диапазона, в котором они могут выполняться. Например, арифметическое кодирование может быть установлено с помощью символа symbol на этапе S516, установленного равным 0, и с помощью символа symbol на этапе S520, установленного равным 1. В этом случае преобразование в двоичную форму идентификатора pt_idx первичного преобразования выполняется, используя TU, показанный в позиции C на фиг. 39.
Дополнительно, вместо процессов на этапах S514-S521 можно обращаться к таблице поиска TU, показанной в позиции B на фиг. 39 или C на фиг. 39, чтобы определить строку накопителя из значения идентификатора pt_idx первичного преобразования, чтобы кодировать строку накопителя.
Блок декодирования
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 декодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает декодирование кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициентов вторичного преобразования, полученных посредством обратного квантования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразования для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения должны быть пропущены. Короче говоря, блок 211 декодирования изображения в этом случае пропускает декодирование кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициентов вторичного преобразования, полученных посредством обратного квантования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразования для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
На фиг. 40 представлена функциональная блок-схема примера основных функций, связанных с декодированием идентификатора первичного преобразования, которые осуществляются блоком 211 декодирования, выполняющим в этом случае программу и т.п. Как показано на фиг. 40, блок 211 декодирования в этом случае содержит в качестве функций, связанных с декодированием идентификатора первичного преобразования, выполняя программу, например, блок 411 декодирования флага действительности первичного преобразования и блок 412 декодирования идентификатора первичного преобразования.
Блок 411 декодирования флага действительности первичного преобразования выполняет процесс, связанный с декодированием кодированных данных флага pt_enabled_flag действительности первичного преобразования, который является информацией, связанной с разрешением обратного первичного преобразования. Блок 412 декодирования идентификатора первичного преобразования выполняет процесс, связанный с декодированием идентификатора pt_idx первичного преобразования, который является информацией, связанной с содержанием обратного первичного преобразования.
Последовательность выполнения операций процесса декодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. В этом случае, устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) процесса декодирования изображения устройство 200 декодирования изображения выполняет декодирование кодированных данных идентификатора pt_idx первичного преобразования и т.п. в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. Пример последовательности выполнения операций декодирования кодированных данных идентификатора pt_idx первичного преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 41. Короче говоря, процесс декодирования, показанный на фиг. 41, выполняется как часть процесса декодирования, выполняемого на этапе S201 на фиг. 13. Декодирование других параметров кодирования и кодированных данных уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После того как на этапе S541 начат процесс декодирования, блок 411 декодирования флага действительности первичного преобразования декодирует кодированные данные флага pt_enabled_flag действительности первичного преобразования, из битового потока (кодированных данных) и выводит результирующие данные как часть информации заголовка.
На этапе S542 блок 412 декодирования идентификатора первичного преобразования принимает решение, равен ли 1 (истина) флаг pt_enabled_flag действительности первичного преобразования, содержащийся в информации Hinfo заголовка. В случае, когда решено, что флаг pt_enabled_flag действительности первичного преобразования равен 0, процессы на этапах S543-S547 пропускаются и обработка переходит к этапу S548.
Если выполнение обратного первичного преобразования не разрешается, то обратное первичное преобразование не выполняется и идентификатор pt_idx первичного преобразования со стороны кодирования не передается и, следовательно, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование кодированных данных идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
С другой стороны, в случае, когда на этапе S542 решено, что флаг pt_enabled_flag действительности первичного преобразования равен 1, обработка переходит к этапу S543.
На этапе S543 блок 412 декодирования идентификатора первичного преобразования принимает решение, равняется ли 1 (истина) флаг transquant_bypass_flag обхода квантования-преобразования, содержащийся в информации Tinfo о преобразовании. В случае, когда решено, что флаг transquant_bypass_flag обхода квантования-преобразования равен 1, а именно, в случае, когда решено, что обратное преобразование (обратное вторичное преобразование и обратное первичное преобразование) и обратное квантование должны быть пропущены (обойдены), процессы на этапах S543-S547 пропускаются и обработка переходит к этапу S548.
Если обратное преобразование и обратное квантование должны быть обойдены, то тогда идентификатор pt_idx первичного преобразования необязателен. Соответственно, в этом случае, поскольку со стороны кодирования идентификатор pt_idx первичного преобразования не передается, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование кодированных данных идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S543 принимается решение, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0, а именно, в случае, когда решено, что обратное преобразование и обратное квантование не должны пропускаться (обходиться), обработка переходит к этапу S544.
На этапе S544 блок 412 декодирования идентификатора первичного преобразования принимает решение, равняется ли 1 (истина) флаг ts_flag пропуска преобразования, содержащийся в информации Tinfo о преобразовании. В случае, когда решено, что флаг ts_flag пропуска преобразования равен 1 (истина), а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование) должно быть пропущено, процессы на этапах S545-S547 пропускаются и обработка переходит к этапу S548.
Если обратное первичное преобразование должно быть пропущено, то идентификатор pt_idx необязателен. Соответственно, в этом случае, поскольку со стороны кодирования идентификатор pt_idx первичного преобразования не передается, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование кодированных данных идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S544 принимается решение, что флаг ts_flag пропуска преобразования равен 0 (ложь), а именно, в случае, когда решено, что обратное преобразование (обратное первичное преобразование) должно выполняться, обработка переходит к этапу S545.
На этапе S545 блок 412 декодирования идентификатора первичного преобразования принимает решение, равен ли или меньше размер TBSize блока преобразования намеченной цели обработки, чем максимальный размер MaxPTSize блока первичного преобразования (равно ли 1 логическое значение выражения условия (TBSize <= MaxPTSize)). В случае, когда решено, что размер TBSize блока преобразования намеченной цели обработки больше, чем максимальный размер MaxPTSize блока первичного преобразования (TBSize > MaxPTSize), процессы на этапах S546 и S547 пропускаются и обработка переходит к этапу S548.
Максимальный размер MaxPTSize блока первичного преобразования является информацией, указывающей максимальный размер блока, с помощью которого разрешается выполнение обратного первичного преобразования. В частности, в случае, когда размер блока преобразования больше максимального размера MaxPTSize блока первичного преобразования, выполнение обратного первичного преобразования не разрешается и, следовательно, идентификатор pt_idx первичного не передается со стороны кодирования. Соответственно, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование кодированных данных идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S545 решено, что размер TBSize блока преобразования намеченной цели обработки равен или меньше максимального размера MaxPTSize (TBSize <= MaxPTSize) блока первичного преобразования, обработка переходит к этапу S546.
Следует заметить, что выражение (TBSize <= MaxPTSize) условия может быть заменено другим выражением (log2TBSize <= log2MaxPTSize) условия, используя логарифмическое значение log2TBSize с основанием 2 для размера TB и логарифмическое значение log2MaxPTSize с основанием 2 для максимального размера MaxPTSize блока пропуска первичного преобразования.
На этапе S546 блок 412 декодирования идентификатора первичного преобразования обращается к информации Rinfo об остатке, чтобы получить общее количество numSig (общее количество sig_coeff_flag == 1) ненулевых коэффициентов, существующих в блоке преобразования в соответствии со следующим выражением (70).
sumSig = Σ(sig_coeff_flag(i,j))
На этапе S547 блок 412 декодирования идентификатора первичного преобразования принимает решение, равно ли или больше количество numSig ненулевых коэффициентов, чем заданное пороговое значение TH (numSig >= TH). В случае, когда принято решение, что общее количество numSig ненулевых коэффициентов меньше заданного порогового значения TH (numSig < TH), обработка переходит к этапу S548.
В случае, когда общее количество numSig ненулевых коэффициентов меньше заданного порогового значения TH, а именно, в случае прореженного остаточного сигнала, в котором количество ненулевых коэффициентов мало, поскольку существует возможность, что сжатие энергии может ухудшиться и эффективность кодирования может снизиться, то для ограничения снижения эффективности кодирования, желательно применять пропуск преобразования или заданное обратное ортогональное преобразование (например, обратное преобразование DCT - тип 2). Короче говоря, в этом случае идентификатор pt_idx первичного преобразования не передается со стороны кодирования. Соответственно, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование кодированных данных идентификатора pt_idx первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
На этапе S548 блок 412 декодирования идентификатора первичного преобразования пропускает декодирование идентификатора pt_idx первичного преобразования. Дополнительно, в этом случае блок 412 декодирования идентификатора первичного преобразования оценивает, что значение идентификатора pt_idx первичного преобразования является значением (например, -1) идентификатора, которое указывает на использование заданного ортогонального преобразования (например, DCT-тип 2) for для первичного преобразования Phor в горизонтальном направлении и первичного преобразования Pver в вертикальном направлении. Короче говоря, блок 412 декодирования идентификатора вторичного преобразования устанавливает значение идентификатора st_idx вторичного преобразования равным -1 (st_idx = -1). Когда процесс на этапе S548 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
В случае, когда на этапе S547 принято решение, что общее количество numSig ненулевых коэффициентов равно или больше заданного порогового значения TH (numSig >= TH), обработка переходит к этапу S549.
На этапе S549 блок 412 декодирования идентификатора первичного преобразования декодирует кодированные данные идентификатора pt_idx первичного преобразования. Подробности декодирования описываются здесь далее.
Короче говоря, только в случае, когда выражение (66) условия, приведенное здесь выше, равно 1 (истина), кодированные данные идентификатора pt_idx первичного преобразования декодируются. Это соответствует седьмому этапу представленного выше синтаксиса, описанного здесь ранее со ссылкой на фиг. 34.
Когда процесс на этапе S549 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
Выполняя процесс кодирования таким способом, как описано выше, устройство 200 декодирования изображения может пропускать процесс декодирования идентификатора pt_idx первичного преобразования в случае, когда должен применяться обход квантования-преобразования. Другими словами, может быть достигнуто уменьшение объем обработки и объем кода, связанных с декодированием идентификатора pt_idx первичного преобразования.
Следует заметить, что процесс декодирования, описанный выше, может подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражение (66) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Хотя устройство 200 декодирования изображения, описанное выше, относится к примеру, в котором, в случае, когда применяется обход квантования-преобразования, процесс декодирования идентификатора pt_idx первичного преобразования в блоке блока преобразования пропускается, устройство декодирования изображения этим не ограничивается. Например, в блоке CU флаг cu_pt_flag первичного преобразования CU, указывающий, должен ли декодироваться (кодироваться) идентификатор pt_idx первичного преобразования в блоке блока преобразования, декодируется в ответ на значение флага transquant_bypass_flag пропуска квантования-преобразования. В случае, когда флаг cu_pt_flag первичного преобразования CU равен 1 (истина), выполняется декодирование идентификатора pt_idx первичного преобразования в блоке блока преобразования, но в случае, когда флаг cu_pt_flag первичного преобразования CU равен 0 (ложь), декодирование идентификатора pt_idx первичного преобразования в блоке блока преобразования может игнорироваться и значение идентификатора pt_idx первичного преобразования может расцениваться как равное -1. В этом случае блок 214 декодирования дополнительно содержит блок 413 декодирования флага первичного преобразования CU, который на чертеже не показан.
Блок 413 декодирования флага первичного преобразования CU выполняет процесс, связанный с декодированием флага cu_pt_flag первичного преобразования CU, который является информацией, связанной с разрешением декодирования (кодирования) идентификатора pt_idx первичного преобразования в блоке TU. Декодирование флага cu_pt_flag первичного преобразования CU блоком 413 декодирования флага первичного преобразования CU выполняется, например, на основе следующих псевдокодов.
If (!transquant_bypass_flag && pt_enabled_flag)
{
decode cu_pt_flag
}
В частности, блок 413 декодирования флага первичного преобразования CU декодирует флаг cu_pt_flag первичного преобразования CU, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь) и, помимо этого, флаг pt_enabled_flag действительности первичного преобразования равен 1 (истина), но в любом другом случае (когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина)) или флаг pt_enabled_flag действительности первичного преобразования равен 0 (ложь)) игнорирует декодирование флага cu_pt_flag первичного преобразования CU и оценивает значение флага cu_pt_flag первичного преобразования CU как равное 0. В частности, в случае, когда применяется флаг обхода квантования-преобразования, флаг cu_pt_flag первичного преобразования CU не передается. Соответственно, блок 413 декодирования флага первичного преобразования CU пропускает декодирование флага cu_pt_flag первичного преобразования CU и оценивает значение флага cu_pt_flag первичного преобразования CU как равное 0. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Следует заметить, что в этом случае условие декодирования идентификатора pt_idx первичного преобразования блоком 412 декодирования идентификатора первичного преобразования основывается, например, на следующих псевдокодах.
if (cu_pt_flag && ts_flag==0 && numSig >= TH)
{
decode pt_idx
}
else {
pt_idx = -1
}
В частности, блок 412 декодирования идентификатора первичного преобразования декодирует идентификатор pt_idx первичного преобразования, когда флаг cu_pt_flag первичного преобразования CU равен 1 (истина) и флаг ts_flag пропуска преобразования равен 0 (ложь) и, помимо этого, количество numSig ненулевых коэффициентов равно или больше, чем пороговое значение TH, но игнорирует кодирование идентификатора pt_idx первичного преобразования в любом другом случае (когда флаг cu_pt_flag первичного преобразования CU равен 0 (ложь) или флаг ts_flag пропуска преобразования равен 1 (истина) или, еще, количество numSig ненулевых коэффициентов меньше порогового значения TH) и делает оценку, что значение идентификатора pt_idx первичного преобразования равно значению (-1), которое указывает применение заданного ортогонального преобразования (например, DCT- тип 2 и т.п.). В частности, в случае, когда флаг первичного преобразования CU равен 0, идентификатор pt_idx первичного преобразования стороне декодирования не передается. Соответственно, блок 412 декодирования идентификатора первичного преобразования пропускает декодирование идентификатора pt_idx первичного преобразования и оценивает значение идентификатора как значение (-1), которое указывает применение заданного ортогонального преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Последовательность выполнения операций процесса декодирования идентификатора первичного преобразования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 42, описывается пример последовательности выполнения операций процесса декодирования идентификатора первичного преобразования, выполняемого на этапе S549, показанном на фиг. 41.
После того как процесс декодирования идентификатора первичного преобразования начался, блок 412 декодирования идентификатора первичного преобразования на этапе S551 выполняет использование переменных. Например, блок 412 декодирования идентификатора первичного преобразования устанавливает значение идентификатора pt_idx первичного преобразования равным 0 (pt_idx = 0). Дополнительно, например, блок 412 декодирования идентификатора первичного преобразования устанавливает символ, полученный посредством арифметического декодирования одного накопителя битовой строки кодированных данных, равным 0 (символ = 0). Дополнительно, например, блок 412 декодирования идентификатора первичного преобразования устанавливает binIdx, который является индексом, указывающим позицию накопителя намеченной цели декодирования в битовой строке кодированных данных идентификатора pt_idx, равным 0 (binIdx = 0). Дополнительно, например, блок 412 декодирования идентификатора первичного преобразования устанавливает значение maxPTIdx, которое является максимальным значением идентификатора pt_idx первичного преобразования, равным 3 (maxPTIdx = 3).
На этапе S552 блок 412 декодирования идентификатора первичного преобразования арифметически декодирует накопитель в позиции binIdx = i в битовой строке и устанавливает результирующее значение символа в символ переменной. Здесь, блок 412 декодирования идентификатора первичного преобразования выполняет арифметическое декодирование, используя контекст, соответствующий каждому binIdx, как показано на фиг. 38, когда накопитель в позиции binIdx = i должен быть арифметически декодирован.
Например, в случае M0 на фиг. 38 показан пример, в котором арифметическое кодирование выполняется в режиме обхода, в котором никакой контекст не используется в отношении всех накопителей binIdx = 0-2. Следует заметить, что режим обхода является режимом, в котором арифметическое кодирование выполняется, предполагая, что вероятности появления символа 0 и символа 1 равны друг другу.
При этом, в случае M1 на фиг. 38 показан пример, в котором для накопителя binIdx = 0 (верхний) арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст, и для накопителей binIdx = 1-2 арифметическое кодирование выполняется в режиме обхода. Следует заметить, что регулярный режим является режимом, в котором арифметическое кодирование выполняется в то время, когда обновляются вероятности появления символа 0 и символа 1. Например, в случае M1 для накопителя binIdx = 0 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, но в случае межкадрового предсказания устанавливается 1.
При этом, в случае M2 на фиг. 38 показан пример, в котором для накопителей binIdx = 0-1, арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст, и для накопителя binIdx = 2 арифметическое кодирование выполняется в режиме обхода. Например, в случае M1 для накопителя binIdx = 0 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, но в случае межкадрового предсказания устанавливается равным 1. При этом, для накопителя binIdx = 1 в случае внутрикадрового предсказания, значение индекса ctxInc, который назначает контекст, устанавливается равным 2, а в случае межкадрового предсказания назначается равным 3.
Дополнительно, в M1 и M2 на фиг. 38 в накопитель в позиции binIdx = i, который является намеченной целью арифметического кодирования в регулярном режиме, назначается индекс ctxInc контекста, который назначает различные контексты между внутрикадровым предсказанием и межкадровым предсказанием. Однако, в устройстве 100 кодирования изображения тенденция, что вероятность появления значений идентификатора pt_idx первичного преобразования различна для внутрикадрового предсказания и межкадрового предсказания, в выражении (68), приведенном выше, используется для создания такой модификации, в которой, чтобы выполнить арифметическое кодирование, для идентификатора pt_idx первичного преобразования в случае внутрикадрового предсказания значение (0), частота появления которого является наивысшей, устанавливается равным 0, значение (1), частота появления которого является второй наивысшей, устанавливается равным 1, значение (2), частота появления которого является третьей наивысшей, устанавливается равным 2, и значение (3), частота появления которого является четвертой наивысшей, устанавливается равным 3, а в случае межкадрового предсказания значение (3), частота появления которого является наивысшей, устанавливается равным 0, значение (2), частота появления которого является второй наивысшей, устанавливается равным 1, значение (3), частота появления которого является третьей наивысшей, устанавливается равным 2 и значение (0), частота появления которого является четвертой наивысшей, устанавливается равным 3. Посредством модификации, вероятность появления символа накопителя binIdx = i идентификатора pt_idx первичного преобразования после того, как выражение (68) становится равным 0 или 1, может быть сделана равной для внутрикадрового предсказания и для межкадрового предсказания. Соответственно, также в устройстве 200 декодирования изображения в случаях внутрикадрового предсказания и межкадрового предсказания может быть назначен индекс ctxInc контекста, который назначает один и тот же контекст накопителю в позиции binIdx = i, что становится целью арифметического кодирования в регулярном режиме . В этом случае, при том, что достигается эффективность кодирования, эквивалентная случаю, когда назначается индекс ctxInc контекста, назначающий разные контексты для внутрикадрового предсказания и межкадрового предсказания, размер памяти для остающихся контекстов может быть уменьшен.
Например, в случае M3 на фиг. 38 показан пример, в котором для накопителя binIdx = 0 (верхний), арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст, и для накопителей binIdx = 1-2 арифметическое кодирование выполняется в режиме обхода. Например, в случае M3 для накопителя binIdx = 0 в случае индекса ctxInc, который назначает контекст, устанавливается равным 0, независимо от внутрикадрового предсказания или межкадрового предсказания.
Дополнительно, в случае M4 на фиг. 38 показан пример, в котором для накопителей binIdx = 0-1, арифметическое кодирование выполняется в регулярном режиме, в котором используется контекст, и для накопителя binIdx = 2 арифметическое кодирование выполняется в режиме обхода. В случае M4, независимо от внутрикадрового предсказания или межкадрового предсказания, для накопителя binIdx = 0, значение индекса ctxInc, который назначает контекст, устанавливается равным 0, а для накопителя binIdx = 1 значение индекса ctxInc, который назначает контекст, устанавливается равным 1.
Используя M0 на фиг. 38, арифметическое кодирование выполняется полностью в режиме обхода без выполнения арифметического кодирования в регулярном режиме, в котором импользуется контекст, и, следовательно, символ может быть декодирован с высокой скоростью по сравнению со скоростью при способе, раскрытом в NPL 1 и, помимо этого, размер памяти для остающихся контекстов может быть уменьшен по сравнению со способом, раскрытым в NPL 1.
Используя M1 на фиг. 38, для верхнего накопителя (binIdx = 0), выполняется арифметическое кодирование в регулярном режиме, в котором используется контекст, тогда как остающиеся накопители арифметически кодируются в режиме обхода. Поэтому символ может быть декодирован из битовой строки со сравнительно высокой скоростью по сравнению со скоростью, обеспечиваемой способом, раскрытым в NPL 1, и, кроме того, размер памяти для остающихся контекстов может быть уменьшен. Также, улучшается эффективность кодирования.
Используя M2, показанный на фиг. 38, поскольку для накопителей binIdx = 0-1 арифметическое декодирование выполняется в регулярном режиме, в котором используется контекст, а остальные накопителя арифметически кодируются в режиме обхода, символ может арифметически декодироваться на высокой скорости по сравнению со скоростью, даваемой способом, раскрытым в NPL 1. Также, улучшается эффективность кодирования.
При этом, в случае М3, показанного на фиг. 38, для верхнего накопителя (binIdx = 0) назначается индекс контекста, назначающий один и тот же контекст, независимо от внутрикадрового предсказания или межкадрового предсказания. Соответственно, по сравнению с М1, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
В случае М4, показанном на фиг. 38, для накопителей binIdx = 0-1 назначается индекс контекста, назначающий один и тот же контекст, независимо от внутрикадрового предсказания или межкадрового предсказания. Соответственно, по сравнению с М2, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
На этапе S553 блок 412 декодирования идентификатора первичного преобразования принимает решение, равен ли 1 символ symbol. В случае, когда решено, что символ symbol равен 1, обработка переходит к этапу S554.
На этапе S554 блок 412 декодирования идентификатора первичного преобразования обновляет значения идентификатора pt_idx первичного преобразования и переменной binIdx. Например, блок 412 декодирования идентификатора вторичного преобразования дает приращение значению идентификатора pt_idx первичного преобразования на +1 (pt_idx += 1). Дополнительно, например, блок 412 декодирования идентификатора первичного преобразования дает приращение значению переменной binIdx на +1 (binIdx += 1).
На этапе S555 блок 412 декодирования идентификатора первичного преобразования принимает решение, равен ли идентификатор pt_idx первичного преобразования максимальному значению maxPTIdx идентификатора pt_idx первичного преобразования. В случае, когда значение идентификатора pt_idx первичного преобразования не равно максимальному значению maxPTIdx (pt_idx != maxPTIdx), обработка переходит к этапу S556. С другой стороны, в случае, когда на этапе S553 решено, что символ symbol равен 0, обработка переходит к этапу S556.
На этапе S556 блок 412 декодирования идентификатора первичного преобразования принимает решение, равно ли 1 значение символа symbol. В случае, когда решено, что значение символа symbol равно 1, обработка возвращается к этапу S552 и процессы на последующих этапах повторяются.
С другой стороны, в случае, когда на этапе S555 принято решение, что значение идентификатора pt_idx первичного преобразования равно значению максимального значения maxPTIdx (pt_idx == maxPTIdx), обработка переходит к этапу S557. При этом, в случае, когда на этапе S556 решено, что значение символа symbol равно 0, обработка переходит к этапу S557.
На этапе S557 блок 412 декодирования идентификатора первичного преобразования обращается к информации Pinfo о режиме предсказания, чтобы решить, является ли CU, содержащий блок преобразования намеченной цели обработки, внутрикадровым предсказанием или межкадровым предсказанием. В случае, когда решено, что CU является межкадровым предсказанием, обработка переходит к этапу S558.
На этапе S558 блок 412 декодирования идентификатора первичного преобразования корректирует значение идентификатора pt_idx первичного преобразования на основе следующего выражения (71).
pt_idx = maxPTIdx - pt_idx (71)
Вероятность появления значений идентификатора pt_idx первичного преобразования имеет тенденцию к противоречию между внутрикадровым предсказанием и межкадровым предсказанием. Поэтому, в случае внутрикадрового предсказания арифметическое кодирование выполняется, устанавливая значение (0), частота появления которого является наивысшей, равным 0, значение (1), частота появления которого является второй наивысшей, равным 1, значение (2), частота появления которого является третьей наивысшей, равным 2, и значение (3), частота появления которого является, четвертой наивысшей, равным 3, а в случае межкадрового предсказания арифметическое кодировании выполняется, устанавливая значение (3), частота появления которого является наивысшей, равным 0, значение (2), частота появления которого является второй наивысшей, равным 1, значение (3), частота появления которого является третьей наивысшей, равным 2, и значение (0), частота появления которого является четвертой наивысшей, равным 3. Блок 412 декодирования идентификатора первичного преобразования выполняет обработку в соответствии с выражением (71), чтобы восстановить совместное распределение таких значений идентификатора pt_idx первичного преобразования.
Когда процесс на этапе S558 закончен, процесс декодирования идентификатора первичного преобразования заканчивается и обработка возвращается к фиг. 41. С другой стороны, в случае, когда на этапе S557 решено, что CU является внутрикадровым предсказанием, процесс на этапе S558 пропускается и процесс декодирования идентификатора первичного преобразования заканчивается и обработка возвращается к фиг. 41.
Псевдокоды процессов, описанных выше, представлены в позиции А на фиг. 43. Это делает возможным реализацию образования множества значений (обратного преобразованию в двоичную форму), при котором используется TU (усеченное унарное преобразование в двоичную форму), как показано в позиции B на фиг. 43. Например, если битовая строка равна 0, то значение идентификатора pt_idx первичного преобразования равно 0. При этом, например, если битовая строка равна 10, то значение идентификатора pt_idx первичного преобразования равно 1.
Это дает возможность ограничения снижения эффективности кодирования идентификатора pt_idx первичного преобразования.
Дополнительно, выполняя процесс на этапе S558, та особенность, что вероятность появления идентификатора pt_idx первичного преобразования имеет тенденцию быть заключенной между внутрикадровым предсказанием и межкадровым предсказанием, может быть использована, и может выполняться более эффективное арифметическое кодирование.
Дополнительно, в случае, когда M0 на фиг. 38 используется в процессе на этапе S552, поскольку арифметическое декодирование выполняется полностью в режиме обхода без выполнения арифметической операции в регулярном режиме, в котором используется контекст, символ может быть декодирован из строки накопителя с высокой скоростью по сравнению со скоростью при способе, изложенном в NPL 1, и, помимо этого, размер памяти для остальных контекстов может быть уменьшен по сравнению с объемом памяти при способе, раскрытом в NPL 1.
При этом, в случае, когда M1 на фиг. 38 используется в процессе на этапе S552, поскольку арифметическое декодирование в регулярном режиме, в котором используется контекст, выполняется для верхнего накопителя (binIdx = 0), а арифметическое декодирование в режиме обхода выполняется для остальных накопителей, строка символов может быть декодирована из строки накопителей с высокой скоростью по сравнению со скоростью при способе, раскрытом в NPL 1, и, помимо этого, размер памяти для остальных контекстов может быть уменьшен. Также, улучшается эффективность кодирования.
Дополнительно, в случае, когда M2 на фиг. 38 используется в процессе на этапе S552, поскольку арифметическое декодирование в регулярном режиме, в котором используется контекст, выполняется для накопителей binIdx = 0-1, а арифметическое декодирование выполняется для остальных накопителей, символ может быть декодирован из строки накопителей с высокой скоростью по сравнению со скоростью при способе, раскрытом в NPL 1. Кроме того, повышается эффективность кодирования.
При этом, в случае, когда M3 на фиг. 38 используется в процессе на этапе S552, арифметическое декодирование в регулярном режиме, в котором используется один и тот же контекст, независимо от того, при внутрикадровом кодировании или межкадровом кодировании, выполняется для верхнего накопителя (binIdx = 0), и арифметическое декодирование в режиме обхода выполняется для остальных накопителей. Соответственно, по сравнению со случаем М1, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
Дополнительно, в случае, когда M4 на фиг. 38 используется в процессе на этапе S552, арифметическое декодирование в регулярном режиме, в котором используется один и тот же контекст, независимо от того, при внутрикадровом кодировании или межкадровом кодировании, выполняется для накопителей binIdx = 0-1, и арифметическое декодирование в режиме обхода выполняется для остающегося накопителя. Соответственно, по сравнению со случаем М2, хотя достигаются эквивалентный объем обработки и эквивалентная эффективность кодирования, размер памяти для остальных контекстов может быть уменьшен.
Следует заметить, что изменение порядка обработки этапов или изменение содержания процессов могут осуществляться в пределах диапазона, в котором они могут выполняться. Например, хотя условие принятия решения для символов symbo определяется как равенство 1 на этапе S553 или S556, в противном случае, оно может быть равно 0. В этом случае обратное преобразование в двоичную форму идентификатора pt_idx первичного преобразования выполняется, используя TU, показанный в позиции C на фиг. 43.
Дополнительно, вместо процессов на этапах S552-S556 можно обращаться к таблице поиска TU, показанной в позиции B на фиг. 43 или в позиции C на фиг. 43, чтобы напрямую определить из строки накопителя значение идентификатора pt_idx первичного преобразования.
6. Шестой вариант осуществления
Форма CU, PU и TU
На фиг. 44 представлена форма CU, PU и TU, используемая в шестом варианте осуществления.
CU, PU и TU в шестом варианте осуществления являются CU, PU и TU из QTBT (Quad tree plus binary tree, квадродерево плюс двоичное дерево), описанные в документе JVET-C0024, “EE2.1: Quadtree plus binary tree structure integration with JEM tools.”
В частности, при делении блока CU в шестом варианте осуществления один блок может быть разделен не только на 4 (= 2 × 2) субблока, но также и на 2 (= 1 × 2, 2 × 1) субблока. В частности, в шестом варианте осуществления деление CU выполняется посредством рекурсивно повторяющегося деления одного блока на четыре или два субблока и, как результат, формируется в горизонтальном направлении или в вертикальном направлении структура дерева в форме квадродерева (Quad-Tree) или двоичного дерева (Binary-Tree).
В результате, возможно, что форма CU может быть квадратной тлт прямоугольной. Например, в случае, когда размер LCU равен 128х128, как показано на фиг. 44, возможно, что размер CU (размер w в горизонтальном направлении х размер h в вертикальном направлении), может быть не только размером квадрата, такого как 128 х128, 64х64, 32х32, 16х16, 8х8 или 4х4, но также размером прямоугольника, такого как 128х64, 128х32, 128х16, 128х8, 128х4, 64х128, 32х128, 16х128, 8х128, 4х128, 64х32, 64х16, 64х8, 64х4, 32х64, 16х64, 8х64, 4х64, 32х16, 32х8, 32х4, 16х32, 8х32, 4х32, 16х8, 16х4, 8х16, 4х16, 8х4 или 4х8. Кроме того, в шестом варианте осуществления PU и TU являются такими же, как CU.
Пропуск кодирования и декодирования флага пропуска преобразования
Согласно вышесказанному, в шестом варианте осуществления размер TBXSize в горизонтальном направлении и размер TBYSize в вертикальном направлении блока преобразования иногда отличаются друг от друга. Соответственно, в шестом варианте осуществления в качестве максимального размера MaxTSSize блока пропуска преобразования устанавливается больший размер max(TBXSize, TBYSize) из размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении блока пропуска преобразования. Затем, основываясь на результате сравнения между max(TBXSize, TBYSize) и максимальным размером блока пропуска преобразования MaxTSSize, кодирование или декодирование флага ts_flag пропуска преобразования, связанного с (обратным) преобразованием, пропускается. Процессы, отличные от пропуска кодирования и декодирования флага ts_flag пропуска преобразования в шестом варианте осуществления схожи с процессами в третьем варианте осуществления.
Синтаксис
На фиг. 45 приводится пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие управление кодированием флага ts_flag пропуска преобразования и т.п. в шестом варианте осуществления.
Таблица синтаксиса на фиг. 45 является такой же, как таблица синтаксиса на фиг. 20, за исключением четвертого этапа сверху.
Как указано на четвертом этапе сверху на фиг. 45, для кодирования флага ts_flag пропуска преобразования (а именно, декодирования кодированных данных флага ts_flag пропуска преобразования), одним из условий является то, что max(TBXSize, TBYSize) равен или меньше максимального размера MaxTSSize блока пропуска преобразования. В частности, в случае, когда max(TBXSize, TBYSize) больше максимального размера MaxTSSize блока пропуска преобразования, кодирование флага ts_flag пропуска преобразования (декодирование кодированных данных флага ts_flag пропуска преобразования) пропускается.
Также, одним из условий кодирования флага ts_flag пропуска преобразования (декодирования кодированных данных флага ts_flag пропуска преобразования) является то, что флаг ts_enabled_flag действительности пропуска преобразования и флаг transquant_bypass_flag обхода квантования-преобразования равны 1. Короче говоря, в случае, когда (обратное) преобразование и (обратное) квантование должны быть пропущены, и в случае, когда пропуск преобразования на разрешается, кодирование флага ts_flag пропуска преобразования (декодирование кодированных данных флага ts_flag пропуска преобразования) пропускается.
Блок кодирования
В этом случае, также, устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. Короче говоря, устройство 100 кодирования изображения, описанное в связи с первым вариантом осуществления, содержит блок кодирования, который пропускает кодирование флага ts_flag пропуска преобразования на основе результата сравнения между max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования. Короче говоря, блок 114 кодирования пропускает кодирование флага ts_flag пропуска преобразования на основе результата сравнения между max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования.
На фиг. 46 представлена функциональная блок-схема примера основных функций, связанных с кодированием флага ts_flag пропуска преобразования, которое выполняется блоком 114 кодирования, исполняющим программу и т.п. Как показано на фиг. 46, блок 114 кодирования в этом случае может при выполнении программы иметь в качестве функций, связанных с кодированием флага ts_flag пропуска преобразования, блок 301 кодирования флага действительности вторичного преобразования, блок 303 кодирования флага действительности пропуска преобразования, блок 304 кодирования максимального размера блока пропуска преобразования, блок 305 кодирования флага обхода квантования-преобразования и блок 321 кодирования флага вторичного преобразования, подобные блокам, например, блока 114 кодирования, описанного в связи с третьим вариантом осуществления. Дополнительно, блок 114 кодирования может иметь в качестве функций, связанных с кодированием флага ts_flag пропуска преобразования, например, функцию блока 441 кодирования флага пропуска преобразования.
Блок 441 кодирования флага пропуска преобразования выполняет процесс, связанный с кодированием флага ts_flag пропуска преобразования на основе результата сравнения между max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. Устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, аналогично этому процессу в случае первого варианта осуществления. Однако, в этом случае устройство 100 кодирования изображения выполняет на этапе S110 (фиг. 9) процесса кодирования изображения кодирование флага ts_flag пропуска преобразования на основе результата сравнения между max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования. Пример последовательности выполнения операций кодирования флага ts_flag пропуска преобразования и т.п. описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 47 и 48. Другими словами, процесс кодирования, показанный на фиг. 47 и 48 выполняется как часть процесса кодирования, выполняемого на этапе S110 на фиг. FIG. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
Процессы на этапах S601-S606 на фиг. 47 подобны процессам на этапах S361-S366 на фиг. 22 и поэтому их описание повторяться не будет.
На этапе S607 блок 441 кодирования флага пропуска преобразования принимает решение, равен или меньше размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки, чем максимальный размер MaxTSSize блока пропуска преобразования (является ли истинным выражение условия max(TBXSize, TBYSize) <= MaxTSSize). В случае, когда решено, что размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки больше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 0 (ложь), процесс на этапе S608 пропускается (игнорируется) и обработка переходит к этапу S609 на фиг. 48.
В случае, когда размер max(TBXSize, TBYSize) больше, чем максимальный размер блока пропуска преобразования, поскольку пропуск преобразования не разрешается, значение флага ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования, блок 441 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска кодирования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
В случае, когда на этапе S607 решено, что размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 1 (истина), обработка переходит к этапу S608.
Процессы на этапах S608-S615 подобны процессам на этапах S368 на фиг. 22 и процессам на этапах S371-S377 на фиг. 23 и поэтому их описание не повторяется.
Таким способом блок 441 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска преобразования на основе размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении блока преобразования. Соответственно, даже в случае, когда форма блока преобразования является прямоугольной, кодирование флага ts_flag пропуска преобразования может соответственно пропускаться.
Блок декодирования
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 декодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает кодирование флага ts_flag пропуска преобразования на основе результата сравнения между max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования. Короче говоря, блок 211 декодирования в этом случае пропускает декодирование флага ts_flag пропуска преобразования на основе результата сравнения между размером max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования.
На фиг. 49 представлена функциональная блок-схема примера основных функций, связанных с декодированием кодированных данных флага ts_flag пропуска преобразования, которое выполняется блоком 211 декодирования при выполнении программы и т.п. Как показано на фиг. 49, блок 211 декодирования в этом случае может иметь в качестве функций, связанных с декодированием кодированных данных флага ts_flag пропуска преобразования посредством выполнения программы, блок 311 декодирования флага действительности вторичного преобразования, блок 313 декодирования флага действительности пропуска преобразования, блок 314 декодирования максимального размера блока пропуска преобразования, блок 315 декодирования флага обхода квантования-преобразования и блок 331 декодирования флага вторичного преобразования, подобные блокам, например, блока 211 декодирования, описанного здесь ранее с связи с третьим вариантом осуществления. Дополнительно, блок 211 декодирования может иметь, например, функцию блока 461 декодирования флага пропуска преобразования в качестве функции, связанной с декодированием кодированных данных флага ts_flag пропуска преобразования при выполнении программы.
Блок 331 декодирования флага вторичного преобразования выполняет процесс, связанный с декодированием кодированных данных флага ts_flag пропуска преобразования на основе результата сравнения между размером max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования.
Последовательность выполнения операций процесса декодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. Устройство 200 декодирования изображения в этом случае выполняет процесс декодирования изображения, в основном схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) процесса декодирования изображения устройство 200 декодирования изображения выполняет декодирование кодированнызх данных флага ts_flag пропуска преобразования в ответ на результат сравнения между размером max(TBXSize, TBYSize) и максимальным размером MaxTSSize блока пропуска преобразования и т.п.. Пример последовательности выполнения операций декодирования кодированных данных флага ts_flag пропуска преобразования описывается со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 50 и 51. Короче говоря, процесс кодирования, показанный на фиг. 50 и 51, выполняется как часть процесса декодирования, выполняемого на этапе S201, показанном на фиг. 13.
Процессы на этапах S631-S636 на фиг. 50 подобны процессам на этапах S381-S386 на фиг. 25 и поэтому их описание повторяться не будет.
На этапе S637 блок 461 декодирования флага пропуска преобразования принимает решение, равенли или меньше размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки, чем максимальный размер MaxTSSize блока пропуска преобразования (является ли истинным выражение условия max(TBXSize, TBYSize) <= MaxTSSize). В случае, когда решено, что размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки больше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда решено, что выражение условия, приведенное выше, равно 0 (ложь), обработка переходит к этапу S368.
В случае, когда размер max(TBXSize, TBYSize) блока преобразования больше, чем максимальный размер MaxTSSize блока пропуска преобразования, поскольку пропуск преобразования не разрешается, значение флага ts_flag пропуска преобразования устанавливается равным 0. Соответственно, в этом случае, поскольку флаг ts_flag пропуска преобразования не передается от стороны кодирования, блок 461 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
С другой стороны, в случае, когда на этапе S637 решено, что размер max(TBXSize, TBYSize) блока преобразования намеченной цели обработки равен или меньше, чем максимальный размер MaxTSSize блока пропуска преобразования, а именно, в случае, когда выражение условия, приведенное выше, равно 1 (истина), обработка переходит к этапу S639.
Процессы на этапах S638-S647 подобны процессам на этапах S388 и S389 на фиг. 25 и процессам на этапах S391-S398 на фиг. 26 и поэтому их описание не повторяется.
Таким образом, блок 461 декодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска преобразования на основе размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении блока преобразования. Соответственно, даже в случае, когда форма блока преобразования является прямоугольной, декодирование флага ts_flag пропуска преобразования может соответственно пропускаться.
Следует заметить, что способ принятия решения, должен ли выполняться пропуск кодирования или декодирования флага ts_flag пропуска преобразования, не ограничивается описанным выше способом, если это способ, который принимает решение, является ли размер блока преобразования большим, чем максимальное значение размера блока пропуска преобразования, основываясь на размере TBXSize в горизонтальном направлении и размере TBYSize в вертикальном направлении.
Например, в случае, когда размер max(log2TBXSize, log2TBYSize), который больше одного из логарифмических размеров TBXSize в горизонтальном направлении и TBYSize в вертикальном направлении, больше логарифмического размера log2MaxTSSize максимального значения (max(log2TBXSize, log2TBYSize) > log2MaxTSSize) блока размера блока пропуска преобразования, может выполняться пропуск кодирования и декодирования флага ts_flag пропуска преобразования.
С другой стороны, максимальный размер MaxTSSize блока пропуска преобразования может быть определен как сумма размера MaxTSXSize в горизонтальном направлении и размера MaxTSYSize в вертикальном направлении, так что в случае, когда сумма размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении больше, чем максимальный размер MaxTSSize (TBXSize + TBYSize > MaxTSSize) блока пропуска преобразования, может быть выполнен пропуск кодирования и декодирования флага ts_flag пропуска преобразования.
Дополнительно, в случае, когда произведение размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении больше, чем произведение размера MaxTSXSize в горизонтальном направлении и MaxTSYSize в вертикальном направлении максимального блока пропуска преобразования (TBXSize * TBYSize > MaxTSXSize * MaxTSYSize), может быть выполнен пропуск кодирования и декодирования флага ts_flag пропуска преобразования.
Дополнительно, в случае, когда сумма логарифмов размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении (log2TBXSize + log2TBYSize) больше, чем сумма (log2MaxTSXSize + log2MaxTSYSize) логарифмов размера MaxTSXSize в горизонтальном направлении и размера MaxTSYSize в вертикальном направлении максимального блока пропуска преобразования (log2TBXSize + log2TBYSize > log2MaxTSXSize + log2MaxTSYSize), может быть выполнен пропуск кодирования и декодирования флага ts_flag пропуска преобразования.
Дополнительно, логарифм log2MaxTSSize может быть определен как сумма логарифмов размера MaxTSXSize в горизонтальном направлении и размера MaxTSYSize в вертикальном направлении максимального блока пропуска преобразования, так что в случае, когда сумма логарифмов размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении (log2TBXSize + log2TBYSize) больше, чем логарифм log2MaxTSSize (log2TBXSize + log2TBYSize > log2MaxTSSize), выполняется пропуск кодирования и декодирования флага ts_flag пропуска преобразования.
Следует заметить, что размер MaxTSXSize в горизонтальном направлении (или его логарифмическое значение log2MaxTSXSize) и размер MaxTSYSize в вертикальном направлении (или его логарифмическое значение log2MaxTSYSize) максимального блока пропуска преобразования, используемого для принятия решения, устанавливаются в набор параметров SPS, PPS, заголовка среза (SH) и т.п. и передаются от стороны кодирования стороне декодирования.
Дополнительно, хотя в шестом варианте осуществления прямоугольный блок, сформированный из квадратной и четырехугольной форм, показанных на фиг. 44, применяется к блоку в третьем варианте осуществления, прямоугольный блок, показанный на фиг. 44, может применяться к блоку в любом варианте осуществления, отличном от третьего варианта осуществления. В этом случае, в вариантах осуществления пропуск кодирования и декодирования флага ts_flag пропуска преобразования выполняется на основе размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении подобно шестому варианту осуществления.
7. Седьмой вариант осуществления
Обзор предшествующего уровня техники
В работах H. Huang, K. Zhang, Y. -W. Huang, S. Lei, “EE2.1: Quadtree plus binary tree structure integration with JEM tools,” JVET-C0024, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting: Geneva, CH, 26 May - 1 June 2016 (здесь далее упоминается как NPL 3) или J. Chen, E. Alshina, G. J. Sullivan, J. -R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model 4” JVET-D1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chendu, CN, 15 - 21 October 2016 (здесь далее упоминается как NPL 4), раскрывается адаптивное первичное преобразование (AMT: Adaptive Multiple core Transform) посредством которого для блока преобразования яркости первичное преобразование адаптивно выбирается из множества различных одномерных ортогональных преобразований для каждого первичного преобразования PThor в горизонтальном направлении и преобразования в вертикальном направлении.
Флаг apt_flag адаптивного первичного преобразования (также упоминается как флаг cu_pt_flag первичного преобразования CU), указывающий, должно ли выполняться адаптивное первичное преобразование, сообщается посредством сигнализации (передаваемый стороне декодирования) в CU, содержащем блок преобразования яркости намеченной цели обработки.
Однако на уровне техники, описанном выше, в случае apt_flag == 1 (в случае, когда должно применяться адаптивное первичное преобразование), флаг ts_flag пропуска преобразования, указывающий, является ли пропуск преобразования соответствующим, вероятно, должен передаваться посредством сигнализации. Соответственно, существует возможность, что объем кода, связанный с флагом ts_flag или с флагом apt_flag, может стать избыточным, приводя в результате к ненужному увеличению объема кода.
Дополнительно, в случае, когда флаг transquant_bypass_flag обхода кватования-преобразования равен 1 (в случае, когда применяется обход квантования-преобразования), вероятно, должна передаваться сигнализация флага apt_flag адаптивного первичного преобразования. Соответственно, существует возможность, что объем кода, связанный с флагом apt_flag, может стать избыточным, приводя в результате к ненужному увеличению объема кода.
Пример случая, в котором избыточный объем кода формируется способами, раскрытыми в NPL 3 и NPL 4, показан на фиг. 52. Таблица, показанная на фиг. 52, указывает изменения, которые могут быть сделаны с помощью флага transquant_bypass_flag обхода квантования-преобразования, флага apt_flag адаптивного первичного преобразования, флага ts_flag пропуска преобразования, идентификатора pt_idx первичного преобразования и идентификатора st_idx вторичного преобразования в способах, раскрытых в NPL 3 и NPL 4.
Например, в таблице, представленной на фиг. 52, показано, что случай № 1 указывает состояние "transquant_bypass_flag == 0, apt_flag == 0, ts_flag == 0 и st_idx == 0, в котором сигнализация pt_idx не передается," и в этом случае первичное преобразование (1st tr.) указывает, что DCT выбирается, а вторичное преобразование (2nd Tr.) пропускается.
В отличие от этого, хотя в случае №3 и в случае №4 сигнализация флагов apt_flag == 1 и ts_flag == 0 передается, поскольку очевидно, что в случае, когда необходимо передавать сигнализацию флаги apt_flag адаптивного первичного преобразования, ts_flag == 0, сигнализация флага ts_flag пропуска преобразования является ненужной. Короче говоря, в этом случае флаг ts_flag пропуска преобразования является избыточным. Дополнительно, в случае №5, хотя сигнализация ts_flag == 1 передается, передается также сигнализация флага apt_flag адаптивного первичного преобразования, которая является избыточной. В случае №6 и в случае №7, хотя передается сигнализация transquant_bypass_flag, передается также сигнализация флага apt_flag адаптивного первичного преобразования, которая является избыточной.
Пропуск кодирования и декодирования флага адаптивного первичного преобразования и флага пропуска преобразования
Как описано выше, в соответствии со способами, раскрытыми в NPL 3 и NPL 4, в случае, когда флаг адаптивного первичного преобразования apt_flag == 1 (в случае, когда должно применяться адаптивное первичное преобразование), существует возможность, что флаг ts_flag пропуска преобразования, является ли соответствующим пропуск преобразования, может быть передан, что в результате приводит к возможности ненужного увеличения объема кода. Дополнительно, в случае, когда флаг пропуска преобразования ts_flag == 1, существует возможность, что сигнализация флага apt_flag адаптивного первичного преобразования может быть послана, приводя в результате к возможности ненужного увеличения объема кода. Дополнительно, в случае, когда флаг пропуска преобразования ts_flag == 1, существует возможность, что сигнализация флага apt_flag адаптивного первичного преобразования может быть послана, приводя в результате к возможности ненужного увеличения объема кода.
Поэтому, при кодировании изображения, в случае, когда флаг обхода кодирования-преобразования transquant_bypass_flag==1 (в случае выполнения обхода квантования-преобразования), кодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется), например, как в случае №5 на фиг. 53. Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, в случае, когда флаг адаптивного первичного преобразования apt_flag == 1 (в случае, когда должно применяться адаптивное первичное преобразование), кодирование флага ts_flag пропуска преобразования пропускается (игнорируется), например, как в случае №3 и в случае №4 на фиг. 53. Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, при декодировании изображения, в случае, когда флаг обхода кодирования-преобразования transquant_bypass_flag==1 декодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется), например, как в случае №5 на фиг. 53. Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, в случае, когда флаг адаптивного первичного преобразования apt_flag==1, декодирование флага ts_flag пропуска преобразования пропускается (игнорируется), например, как в случае №3 и в случае №4 на фиг. 53. Это дает возможность ограничения снижения эффективности кодирования.
Синтаксис
Примеры таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, как описано выше, приводятся на фиг. 54 и 55. Следует заметить, что в синтаксисе countNonZeroCoeffs (compID) является функцией, которая восстанавливает количество ненулевых коэффициентов (значимых коэффициентов), существующих в блоке преобразования цветового сигнала, указанного посредством compID. В случае этого примера, как указано на шестом этапе сверху на фиг. 54, для кодирования флага apt_flag адаптивного первичного преобразования (для декодирования кодированных данных флага apt_flag адаптивного первичного преобразования ), одним из условий является то, что флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь). В частности, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина), а именно, в случае, когда (обратное) преобразование и (обратное) квантование должны быть пропущены, кодирование флага адаптивного первичного преобразования (декодирование кодированных данных флага адаптивного первичного преобразования) пропускается.
Как указано на третьем этапе сверху на фиг. 55, для кодирования флага ts_flag пропуска преобразования (декодирования кодированных данных флага ts_flag пропуска преобразования), одним из условий является то, что флаг apt_flag адаптивного первичного преобразования равен 0 (ложь). Короче говоря, в случае, когда флаг apt_flag адаптивного первичного преобразования равен 1 (истина), а именно, в случае, когда должно быть применено адаптивное первичное преобразование, кодирование флага ts_flag пропуска преобразования, связанного с блоком преобразования яркости и блоками преобразования цветовых разностей (декодирование кодированных данных флага ts_flag пропуска преобразования), пропускается.
Кодирование
Также, в этом случае устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. В частности, устройство 100 кодирования изображения, описанное в связи с первым вариантом осуществления, содержит блок кодирования, который пропускает кодирование первой информации, представляющей содержание первичного преобразования, которое указывает включение/выключение адаптивного первичного преобразования, в случае когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, должны быть пропущены.
В частности, блок 114 кодирования в этом случае пропускает кодирование первой информации, представляющей включение/выключение адаптивного первичного преобразования, когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, должны быть пропущены.
Дополнительно, устройство 100 кодирования содержит блок кодирования, который пропускает кодирование вторичной информации, указывающей включение/выключение пропуска преобразования, в случае, когда должно быть применено адаптивное первичное преобразование. В частности, блок 114 кодирования в этом случае пропускает кодирование вторичной информации, указывающей включение/выключение пропуска преобразования, когда должно быть выполнено адаптивное первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, (apt_flag == 1).
На фиг. 56 представлена функциональная блок-схема примера основных функций, связанных с кодированием флага адаптивного первичного преобразования и кодированием флага пропуска преобразования, которые в этом случае реализуются блоком 114 кодирования при выполнении программы и т.п. Как показано на фиг. 56, блок 114 кодирования в этом случае при выполнении программы содержит в качестве функции, связанной с кодированием флага адаптивного первичного преобразования, например, блок 501 кодирования флага адаптивного первичного преобразования, и, в качестве функции, связанной с кодированием флага пропуска преобразования, блок 502 кодирования флага пропуска преобразования.
Блок 501 кодирования флага адаптивного первичного преобразования выполняет процесс, связанный с кодированием флага apt_flag адаптивного первичного преобразования, который является информацией, связанной с включением/выключением адаптивного первичного преобразования. Блок 502 кодирования флага пропуска преобразования выполняет процесс, связанный с кодированием флага ts_flag пропуска преобразования, который является информацией, связанной с включением/выключением пропуска преобразования.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. Устройство 100 кодирования изображения в этом случае выполняет процесс кодирования изображения, в основном схожий с процессом в случае первого варианта осуществления. Однако в этом случае устройство 100 кодирования изображения на этапе S110 (фиг. 9) выполняет кодирование флага apt_flag адаптивного первичного преобразования и т.п. в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. Пример последовательности выполнения операций кодирования флага apt_flag адаптивного первичного преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 57. Короче говоря, процесс кодирования, показанный на фиг. 57, выполняется как часть процесса кодирования, выполняемого на этапе S110 на фиг. 9. Кодирование других параметров кодирования и кодированных данных уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После того как на этапе S701 процесс кодирования начат, блок 501 кодирования флага адаптивного первичного преобразования принимает решение, равно ли 1 условие Condition 1, показанное в выражении (72) условия, приведенном ниже. Условие Condition 1 соответствует седьмому этапу сверху синтаксиса, описанного здесь ранее со ссылкой на фиг. 54.
Condition 1:
apt_enabled_flag
&& compID == COMPNENT_Y
&& width <= MaxPTSize
&& height <= MaxPTSize
&& !transquant_bypass_flag (72)
Здесь, MaxPTSize представляет максимальное значение размера блока, к которому применяется адаптивное первичное преобразование, и равно, например, 64. Следует заметить, что MaxPTSize не ограничивается указанным выше значением и может устанавливаться с помощью параметра, определяющего MaxPTSize, передаваемого в информации заголовка.
[0711]
Дополнительно, в выражении (72) условия часть, в которой размер блока и пороговое значение сравниваются друг с другом, может быть заменена логарифмическим представлением, как показывает следующее выражение (73) условия.
apt_enabled_flag
&& compID == COMPNENT_Y
&& log2TbWidth <= Log2MaxPTSize
&& log2TbHeight <= log2MaxPTSize
&& !transquant_bypass_flag (73)
Здесь, значение log2MaxPTSize равно 6. Следует заметить, что значение log2MaxPTSize этим не ограничивается и может быть установлено с помощью параметра, определяющего значение log2MaxPTSize, передаваемое в информации заголовка.
В случае, когда на этапе S701 принимается решение, что условие Condition 1 равно 1 (истина), а именно, в случае, когда решено, что флаг адаптивного первичного преобразования должен быть кодирован, обработка переходит к этапу S702. На этапе S702 блок 501 кодирования флага адаптивного первичного преобразования кодирует с переменной длиной флаг apt_flag адаптивного первичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Когда процесс на этапе S702 закончен, обработка переходит к этапу S703.
В отличие от этого, в случае, когда на этапе S701 принято решение, что условие Condition 1 равно 0 (ложь), а именно в случае, когда флаг адаптивного первичного преобразования не должен кодироваться, процесс на этапе S702 пропускается и обработка переходит к этапу S703.
Если условие кодирования для флага адаптивного первичного преобразования не удовлетворяется, то тогда нет необходимости передавать стороне декодирования флаг apt_flag адаптивного первичного преобразования. Соответственно, блок 501 кодирования флага адаптивного первичного преобразования пропускает кодирование флага apt_flag адаптивного первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
На этапе S703 блок 502 кодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) условие Condition 2, указанное в выражении (74) условия, приведенном ниже. Условие Condition 2 соответствует третьему этапу сверху синтаксиса, описанного здесь ранее со ссылкой на фиг. 55.
Condition 2:
ts_enabled_flag
&& width * height <= MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag (74)
Здесь, MaxTSSize представляет максимальное значение размера блока, к которому может быть применен пропуск преобразования, и равно, например, 16. Следует заметить, что значение log2MaxPTSize не ограничивается приведенным выше значением и может быть установлено с помощью параметра, определяющего значение MaxTSSize, передаваемое в информации заголовка.
Дополнительно, в выражении (74) условия часть, в которой размер блока и пороговое значение сравниваются друг с другом, может быть заменена логарифмическим представлением, как показывает следующее выражение (75) условия.
ts_enabled_flag
&& (log2TbWidth * log2TbHeight) <= log2MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag ... (75)
Следует заметить, что значение log2MaxPTSize этим не ограничивается и может быть установлено с помощью параметра, определяющего значение log2MaxPTSize, передаваемое в информации заголовка.
В случае, когда на этапе S703 принимается решение, что условие (Condition) 2 равно 1 (истина), а именно, в случае, когда решено, что флаг пропуска преобразования должен быть кодирован, обработка переходит к этапу S704. На этапе S704 блок 502 кодирования флага пропуска преобразования кодирует с переменной длиной флаг ts_flag пропуска преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Когда процесс на этапе S704 закончен, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
С другой стороны, в случае, когда на этапе S703 принято решение, что условие Condition 2 равно 0 (ложь), а именно, в случае, когда флаг пропуска преобразования не должен кодироваться, процесс на этапе S704 пропускается, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Если условие кодирования для флага пропуска преобразования не удовлетворяется, нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования. Соответственно, блок 502 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
Кодированные данные флага apt_flag адаптивного первичного преобразования и кодированные данные флага ts_flag пропуска преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Выполняя процесс кодирования таким способом, как описано выше, в случае, когда устройство 100 кодирования изображения применяет обход квантования-преобразования, оно может пропускать процесс кодирования флага apt_flag адаптивного первичного преобразования. Другими словами, устройство 100 кодирования изображения может уменьшить объем обработки и объем кода, связанного с кодированием флага apt_flag адаптивного первичного преобразования.
Дополнительно, когда устройство 100 кодирования изображения применяет адаптивное первичное преобразование, оно может пропускать процесс кодирования флага ts_flag пропуска преобразования. В частности, объем обработки и объем кода, связанные с кодированием флага ts_flag пропуска преобразования, могут быть уменьшены.
Дополнение
Условие Condition 1, описанное выше, не ограничивается выражением (72) условия и может изменяться на выражение (76) условия, приведенное выше, так чтобы флаг адаптивного первичного преобразования кодировался (декодировалеся) для каждого цветового пространства. В этом случае, условие condition 2, указанное выражением (74) условия, приведенным выше, предпочтительно также изменяется на следующее выражение (77).
Condition 1b:
apt_enabled_flag
&& width <= MaxPTSize
&& height <= MaxPTSize
&& !transquant_bypass_flag (76)
Condition 2b:
ts_enabled_flag
&& width * height <= MaxTSSize
&& !transquant_bypass_flag
&& !apt_flag [compID] (77)
Таблицы синтаксиса, соответствующие описанным выше изменениям, показаны на фиг. 58 и 59. Следует заметить, что в приведенном выше синтаксисе countNonZeroCoeffs (compID) является функцией, которая восстанавливает количество ненулевых коэффициентов (значимых коэффициентов), существующих в блоке преобразования цветового сигнала, указанного посредством compID. Условие Condition 1b, указанное в выражении (76) условия, соответствует шестому этапу сверху синтаксиса, представленного на фиг. 58. При этом, условие Condition 2b, указанное в выражении (77) условия, соответствует шестому этапу сверху синтаксиса, представленного на фиг. 59.
При этом, условие Condition 2, приведенное здесь ранее, не ограничивается выражением (74) условия и может быть изменено, например, в случае, когда идентификатор compID цветового пространства указывает яркость и, помимо этого, флаг apt_flag адаптивного первичного преобразования равен 1 (истина) в выражении (78) условия, приведенном выше, так что кодирование (декодирование) флага ts_flag пропуска преобразования игнорируется.
Codntion 2c:
ts_enabled_flag
&& width * height <= MaxTSSize
&& !transquant_bypass_flag
&& !(apt_flag && compID == COMPONENT_Y) ... (78)
Таблица синтаксиса, соответствующая описанному выше изменению, показана на фиг. 60. countNonZeroCoeffs (compID) является функцией, которая восстанавливает количество ненулевых коэффициентов (значимых коэффициентов), существующих в блоке преобразования цветового сигнала, представленного посредством compID. Условие Condition 2 соответствует третьему этапу сверху синтаксиса, показанного на фиг. 60.
Следует заметить, что в процессе кодирования, описанном выше, может выполняться изменение порядка обработки этапов или изменение содержания процесса в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражения (72)-(78) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
Декодирование
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 декодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает декодирование кодированных данных первой информации, связанной с включением/выключением адаптивного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразование для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
Короче говоря, блок 211 декодирования изображения в этом случае пропускает декодирование кодированных данных первой информации, связанной с включением/выключением адаптивного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициентов вторичного преобразования, полученных посредством обратного квантования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразование для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
Дополнительно, устройство 200 кодирования содержит блок 211 декодирования, который пропускает декодирование кодированных данных вторичной информации, указывающей включение/выключение пропуска преобразования, в случае, когда должно быть применено адаптивное первичное преобразование (apt_flag == 1). В частности, блок 211 декодирования в этом случае пропускает декодирование кодированных данных второй информации, указывающей включение/выключение пропуска преобразования, в случае, когда процесс, обратный адаптивному первичному преобразованию, а именно, обратное адаптивное первичное преобразование, выполняется для коэффициентов первичного преобразования, полученных обратным квантованием и обратным вторичным преобразованием для уровней коэффициентов преобразования квантования, полученных декодированием кодированных данных.
На фиг. 61 представлена функциональная блок-схема примера основных функций, связанных с декодированием идентификатора первичного преобразования, которые осуществляются блоком 211 декодирования, выполняющим в этом случае программу и т.п. Как показано на фиг. 61, блок 211 декодирования в этом случае может иметь, например, блок 511 декодирования флага адаптивного первичного преобразования в качестве функции, связанной с декодированием флага адаптивного первичного преобразования, и может иметь блок 512 декодирования флага пропуска преобразования в качестве функции, связанной с декодированием флага пропуска преобразования при выполнении программы.
Блок 511 декодирования флага адаптивного первичного преобразования выполняет процесс, связанный с декодированием флага apt_flag адаптивного первичного преобразования, который является информацией, связанной с включением/выключением обратного адаптивного первичного преобразования. Блок 512 декодирования флага пропуска преобразования выполняет процесс, связанный с декодированием флага ts_flag пропуска преобразования, который является информацией, связанной с включением/выключением пропуска преобразования.
Последовательность выполнения операций процесса декодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 200 декодирования изображения. Устройство 200 декодирования изображения в этом случае выполняет процесс декодирования изображения, в основном схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) процесса декодирования изображения устройство 200 декодирования изображения выполняет декодирование кодированных данных флага apt_flag адаптивного первичного преобразования и т.п. в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. Пример последовательности выполнения операций декодирования флага apt_flag адаптивного первичного преобразования описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 62. Короче говоря, процесс декодирования, показанный на фиг. 62, выполняется как часть процесса декодирования, выполняемого на этапе S201 на фиг. 13. Декодирование других параметров кодирования и кодированных данных уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После того как на этапе S711 начат процесс декодирования, блок 511 декодирования флага адаптивного первичного преобразования принимает решение, равно ли 1 (истина) условие condition 1, показанное в выражении (72) условия, приведенном выше. В случае, когда принимается решение, что условие condition 1равно 0 (ложь), а именно, в случае, когда флаг адаптивного первичного преобразования не должен декодироваться, обработка переходит к этапу S712.
На этапе S712 блок 511 декодирования флага адаптивного первичного преобразования пропускает декодирование флага apt_flag адаптивного первичного преобразования. В этом случае, блок 511 декодирования флага адаптивного первичного преобразования понимает, что адаптивное первичное преобразование не выполняется и устанавливает значение (0), указывающее это, для флага apt_flag адаптивного первичного преобразования (apt_flag = 0).
В частности, если условие кодирования для флага адаптивного первичного преобразования не удовлетворяется, то тогда, поскольку флаг apt_flag адаптивного первичного преобразования не передается со стороны кодирования, блок 511 декодирования флага адаптивного первичного преобразования пропускает декодирование кодированных данных флага apt_flag адаптивного первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Когда процесс на этапе S712 закончен, обработка переходит к этапу S714. При этом, в случае, когда на этапе S711 принимается решение, что условие Condition 1 равно 1 (истина), а именно в случае, когда решено, что флаг адаптивного первичного преобразования должен быть декодирован, обработка переходит к этапу S713.
На этапе S713 блок 511 декодирования флага адаптивного первичного преобразования декодирует кодированные данные флага apt_flag адаптивного первичного преобразования. Когда процесс на этапе S713 закончен, обработка переходит к этапу S714.
На этапе S714 блок 512 декодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) условие Condition 2, указанное в выражении (74) условия, приведенном выше. В случае, когда принимается решение, что условие Condition 2 равно 0 (истина), а именно, в случае, когда решено, что флаг пропуска преобразования не должен быть декодирован, обработка переходит к этапу S715.
На этапе S714 блок 512 декодирования флага пропуска преобразования пропускает декодирование флага ts_flag пропуска преобразования. В этом случае, блок 512 декодирования флага пропуска преобразования понимает, что пропуск преобразования не должен выполняться и устанавливает значение (0), указывающее это, для флага ts_flag пропуска преобразования (ts_flag = 0).
В частности, если условие кодирования для флага пропуска преобразования не удовлетворяется, то тогда, поскольку флаг ts_flag пропуска преобразования не передается со стороны кодирования, блок 512 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Когда процесс на этапе S715 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13. С другой стороны, в случае, когда на этапе S714 принимается решение, что условие Condition 2 равно 1 (истина), а именно в случае, когда флаг пропуска преобразования должен быть декодирован, обработка переходит к этапу S716.
На этапе S716 блок 512 декодирования флага пропуска преобразования декодирует кодированные данные флага ts_flag пропуска преобразования. Когда процесс на этапе S716 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
Выполняя процесс декодирования таким способом, как описано выше, в случае, когда применяется обход квантования-преобразования, устройство 200 декодирования изображения может пропускать процесс декодирования флага apt_flag адаптивного первичного преобразования. В частности, объем обработки и объем кода, связанные с декодированием флага apt_flag адаптивного первичного преобразования, может быть уменьшен.
Дополнительно, в случае, когда применяется адаптивное первичное преобразование, устройство 200 декодирования изображения может пропускать процесс декодирования флага ts_flag пропуска преобразования. В частности, объем обработки и объем кода, связанные с декодированием флага ts_flag пропуска преобразования, могут быть уменьшены.
Дополнение
Условие Condition 1, описанное выше, не ограничивается выражением (72) условия и может изменяться на выражение (76) условия, приведенное выше, так чтобы флаг адаптивного первичного преобразования декодировался для каждого цветового пространства. В этом случае предпочтительно изменять выражение (74) условия, указанное здесь выше, в соответствии с выражением (77) условия, приведенным здесь выше.
При этом, условие Condition 2, приведенное здесь выше, не ограничивается выражением (74) условия и может быть изменено в случае, когда идентификатор compID цветового пространства указывает яркость и, помимо этого, флаг apt_flag адаптивного первичного преобразования равен 0 (ложь) в выражении (78) условия, приведенном выше, так что декодирование флага ts_flag пропуска преобразования игнорируется.
Следует заметить, что процесс декодирования, описанный выше, может подвергаться изменению порядка обработки этапов или изменению содержания процессов в пределах диапазона, в котором они могут выполняться. Дополнительно, синтаксис и выражения (72)-(78) условия, приведенные здесь выше, могут изменяться в отношении их арифметических операций в пределах диапазона, в котором они могут выполняться.
8. Восьмой вариант осуществления
Обзор уровня техники
В работе H. Jang, J. Lim, J. Nam, S.-H. Kim, “Signaling for primary transform and transform skip” JVET-E0037, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 5th Meeting: Geneva, CH, 12 - 20 January 2017 (здесь далее упоминается как NPL 5), указываются, что поскольку блок CU кодирования и блок TU преобразования стали одинаковыми при введении QTBT (квадродерево + двоичное дерево), раскрытого в NPL 2, в случае, когда флаг ts_flag пропуска преобразования равен 1 (ts_flag == 1 (в случае, когда применяется пропуск преобразования), передача сигнализации флага apt_flag адаптивного первичного преобразования на уровне CU является избыточной.
Поэтому в NPL 5 предполагается, чтобы позиция синтаксиса флага apt_flag адаптивного первичного преобразования располагается на соседней стороне с флагом ts_flag пропуска преобразования, так что, когда ts_flag == 1, декодирование (кодирование) флага apt_flag адаптивного первичного преобразования игнорируется.
Однако указывается, что в соответствии с конфигурацией, раскрытой в NPL 5, совместная эффективность кодирования ухудшается. Дополнительно, в соответствии с конфигурацией, раскрытой в NPL 5, в случае, когда применяется обход квантования-преобразования (transquant_bypass_flag == 1), флаг apt_flag адаптивного первичного преобразования может передаваться так же, как в случае NPL 3 или NPL 4. Соответственно, существует возможность, что объем кода, связанный с флагом apt_flag, может стать избыточным, приводя в результате к ненужному увеличению объема кода.
Пример случая, в котором избыточный объем кода формируется способом, раскрытым в NPL 5, показан на фиг. 63. Таблица, показанная на фиг. 63, указывает изменения, которые могут быть сделаны с помощью флага transquant_bypass_flag обхода квантования-преобразования, флага ts_flag пропуска преобразования, флага apt_flag адаптивного первичного преобразования, идентификатора pt_idx первичного преобразования и идентификатора st_idx вторичного преобразования в способах, раскрытых в NPL 5.
Например, в таблице, показанной на фиг. 63, в случае №6 и в случае №7, хотя передается сигнализация transquant_bypass_flag =1, передается также сигнализация флага apt_flag адаптивного первичного преобразования и это является избыточным.
Пропуск кодирования и декодирования флага адаптивного первичного преобразования и флага пропуска преобразования
Как описано выше, в способе, раскрытом в NPL 5, существует возможность, что в случае, когда применяется обход квантования-преобразования (transquant_bypass_flag == 1), флаг apt_flag адаптивного первичного преобразования может передаваться и объем кода может ненужным образом увеличиваться.
Поэтому, например, как в случае №6 на фиг. 64, при кодировании изображения, в случае, когда флаг обхода кодирования-преобразования transquant_bypass_flag==1 (в случае, когда это указывает, что выполняется обход квантования-преобразования), кодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется). Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, например, как в случае №4 на фиг. 64, в случае, когда флаг ts_flag пропуска преобразования равен 1 (ts_flag=1) (в случае, когда должен применяться пропуск преобразования), кодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется). Это дает возможность ограничения снижения эффективности кодирования.
Поэтому, например, как в случае №6 на фиг. 64, при декодировании изображения, в случае, когда флаг обхода кодирования-преобразования transquant_bypass_flag==1, декодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется). Это дает возможность ограничения снижения эффективности кодирования.
Дополнительно, например, как в случае №4 на фиг. 64, в случае, когда флаг ts_flag пропуска преобразования равен 1 (ts_flag=1) декодирование флага apt_flag адаптивного первичного преобразования пропускается (игнорируется). Это дает возможность ограничения снижения эффективности кодирования.
Синтаксис
Пример таблицы синтаксиса, в которой описываются псевдокоды, представляющие такое управление, как описано выше, приводится на фиг. 65 и 66. Следует заметить, что в синтаксисе countNonZeroCoeffs (compID) является функцией, которая восстанавливает количество ненулевых коэффициентов (значимых коэффициентов), существующих в блоке преобразования цветового сигнала, указанного посредством compID. В случае примеров, показанных на фиг. 65 и 66, описание, связанное с флагом apt_flag адаптивного первичного преобразования, находящимся на шестом-восьмом этапах сверху (между пятым и шестым этапами сверху на фиг. 65) на фиг. 64, перемещается на пятый и шестой этапы сверху на фиг. 66. Дополнительно, то, что флаг ts_flag пропуска преобразования равен 0 (ложь) и флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложь), является одним из условий кодирования флага apt_flag адаптивного первичного преобразования (декодирования кодированных данных флага apt_flag адаптированного первичного преобразования).
В частности, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истина), а именно, в случае, когда (обратное) преобразование и (обратное) квантование должны быть пропущены, кодирование флага apt_flag адаптивного первичного преобразования (декодирование кодированных данных флага apt_flag адаптивного первичного преобразования) пропускается. Дополнительно, в случае, когда флаг ts_flag пропуска преобразования равен 1 (истина), а именно, в случае, когда должен быть применен пропуск преобразования, кодирование флага apt_flag адаптивного первичного преобразования (декодирование флага apt_flag адаптивного первичного преобразования), пропускается.
Кодирование
В этом случае, также, устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. В частности, устройство 100 кодирования изображения, описанное в связи с первым вариантом осуществления, содержит блок кодирования, который пропускает кодирование первой информации, указывающей включение/выключение адаптивного первичного преобразования, в случае когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, представляющее процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, должны быть пропущены (после пропуска преобразования).
В частности, блок 114 кодирования в этом случае пропускает кодирование первой информации, представляющей включение/выключение адаптивного первичного преобразования, в случае, когда первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, представляющее процесс преобразования для коэффициентов первичного преобразования, полученных посредством первичного преобразования предсказанного остатка, и квантование коэффициентов вторичного преобразования, полученных посредством вторичного преобразования коэффициентов первичного преобразования, должны быть пропущены или в случае, когда преобразование должно быть пропущено.
Поскольку функция, связанная с кодированием флага адаптивного первичного преобразования блоком 114 кодирования, в этом случае выполняющим программу, подобна функции в случае седьмого варианта осуществления, описанного здесь выше со ссылкой на фиг. 56, ее описание здесь не повторяется.
Последовательность выполнения операций процесса кодирования
Далее описывается пример последовательности выполнения операций процессов, выполняемых устройством 100 кодирования изображения. В этом случае, устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае устройство 100 кодирования изображения на этапе S110 (фиг. 9) выполняет кодирование флага apt_flag адаптивного первичного преобразования и т.п. процесса кодирования изображения в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. Пример последовательности выполнения операций кодирования флага apt_flag адаптивного первичного преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 67. В частности, процесс кодирования, показанный на фиг. 67, выполняется как часть процесса кодирования, выполняемого на этапе S110 на фиг. 9. Кодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольными способами.
После того как на этапе S721 процесс кодирования начался, блок 502 кодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) условие Condition 1, показанное в выражении (79) условия, приведенном ниже. Условие Condition 3 соответствует третьему этапу сверху синтаксиса, описанного со ссылкой на фиг. 66.
Condition 3:
ts_enabled_flag
&& width*height <= MaxTSSize
&& !transquant_bypass_flag (79)
Здесь, MaxTSSize представляет максимальное значение размера блока, к которому может быть применен пропуск преобразования, и равно, например, 16. Следует заметить, что для значения MaxTSSize может не устанавливаться указанное выше значение, а значение может быть установлено с помощью параметра, определяющего значение MaxTSSize, передаваемое в информации заголовка.
Дополнительно, в выражении (79) условия часть, в которой размер блока и пороговое значение сравниваются друг с другом, может быть заменена логарифмическим представлением, как показано в следующем выражении (80) условия.
ts_enabled_flag
&& ((log2TbWidth + log2TbHeight) <= log2MaxTSSize)
&& !transquant_bypass_flag (80)
Здесь значение log2MaxPTSize равно 4. Следует заметить, что значение log2MaxTSSize этим не ограничивается и может быть установлено с помощью параметра, определяющего значение log2MaxTSSize, передаваемое в информации заголовка.
В случае, когда на этапе S721 принимается решение, что условие Condition 3 равно 1 (истина), а именно, в случае, когда решено, что флаг пропуска преобразования должен быть кодирован, обработка переходит к этапу S722. На этапе S722 блок 502 кодирования флага пропуска преобразования кодирует с переменной длиной флаг ts_flag пропуска преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Когда процесс на этапе S722 закончен, обработка переходит к этапу S723.
С другой стороны, в случае, когда на этапе S721 принято решение, что условие Condition 3 равно 0 (ложь), а именно в случае, когда решено, что флаг пропуска преобразования не должен кодироваться, процесс на этапе S722 пропускается и обработка переходит к этапу S723.
Если условие кодирования для флага пропуска преобразования не удовлетворяется, то нет необходимости передавать стороне декодирования флаг ts_flag пропуска преобразования. Соответственно, блок 502 кодирования флага пропуска преобразования пропускает кодирование флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
На этапе S723 блок 501 кодирования флага адаптивного первичного преобразования принимает решение, равно ли 1 (истина) условие Condition 4, указанное в выражении (81) условия, приведенном ниже. Условие Condition 4 соответствует пятому этапу сверху синтаксиса, описанного со ссылкой на фиг. 66.
Condition 4:
apt_enabled_flag
&& compID == COMPONENT_Y
&& width <= MaxPTSize
&& height <= MaxPTSize
&& !ts_flag [compID]
&& !transquant_bypass_flag (81)
Здесь MaxPTSize представляет максимальное значение размера блока, к которому может быть применено адаптивное первичное преобразование, и равен, например, 64. Следует заметить, что значение MaxPTSize не ограничивается приведенным выше значением и может быть установлено с помощью параметра, определяющего значение MaxPTSize , передаваемое в информации заголовка.
Дополнительно, в выражении (81) условия часть, в которой размер блока и пороговое значение сравниваются друг с другом, может быть заменена логарифмическим представлением, как показано в следующем выражении (82) условия.
apt_enabled_flag
&& compID == COMPONENT_Y
&& log2TbWidth <= log2MaxPTSize
&& log2TbHeight <= log2MaxPTSize
&& !ts_flag [compID]
&& !transquant_bypass_flag (82)
Здесь, значение log2MaxPTSize равно 6. Следует заметить, что значение log2MaxPTSize этим не ограничивается и может быть установлено с помощью параметра, определяющего значение log2MaxPTSize, передаваемое в информации заголовка.
В случае, когда на этапе S723 принимается решение, что условие Condition 4 равно 1 (истина), а именно, в случае, когда решено, что флаг адаптивного первичного преобразования должен быть кодирован, обработка переходит к этапу S724. На этапе S724 блок 501 кодирования флага адаптивного первичного преобразования кодирует с переменной длиной флаг apt_flag адаптивного первичного преобразования, чтобы сформировать битовую строку (кодированные данные), и выводит кодированные данные. Процесс кодирования заканчивается и обработка возвращается к фиг. 9. Когда процесс на этапе S724 закончен, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
С другой стороны, в случае, когда на этапе S723 принято решение, что условие Condition 4 равно 0 (ложь), а именно, в случае, когда флаг адаптивного первичного преобразования не должен кодироваться, процесс на этапе S724 пропускается, процесс кодирования заканчивается и обработка возвращается к фиг. 9.
Если условие кодирования для флага адаптивного первичного преобразования не удовлетворяется, то тогда нет необходимости передавать стороне декодирования флаг apt_flag адаптивного первичного преобразования. Соответственно, блок 501 кодирования флага адаптивного первичного преобразования пропускает кодирование флага apt_flag адаптивного первичного преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс кодирования и ограничивать снижение эффективности кодирования.
Кодированные данные флага apt_flag адаптивного первичного преобразования и кодированные данные флага ts_flag пропуска преобразования, полученные при этом кодировании, вводятся в битовый поток, содержащий кодированные данные уровня для уровней коэффициентов квантования-преобразования.
Выполняя процесс кодирования таким способом, как описано выше, устройство 100 кодирования изображения может пропускать процесс кодирования флага apt_flag адаптивного первичного преобразования в случае, когда применяется обход квантования-преобразования. В частности, объем обработки и объем кода, связанные с кодированием флага apt_flag адаптивного первичного преобразования, могут быть уменьшены.
Дополнительно, когда должен применяться пропуск преобразования, устройство 100 кодирования изображения может пропускать процесс кодирования флага apt_flag первичного адаптивного преобразования. В частности, объем обработки и объем кода, связанные с кодированием флага apt_flag адаптивного первичного преобразования, могут быть уменьшены.
Дополнение
Условие Condition 4, описанное выше, не ограничивается выражением (81) условия и может изменяться на выражение (83) условия, приведенное ниже, так чтобы флаг адаптивного первичного преобразования кодировался (декодировалеся) для каждого цветового пространства.
Condition 4a:
apt_enabled_flag && compID == COMPONENT_Y
&& width <= MaxPTSize
&& height <= MaxPTSize
&& !ts_flag [compID] && !transquant_bypass_flag (83)
Таблица синтаксиса, соответствующая описанному выше изменению, показана на фиг. 68. Следует заметить, что в синтаксисе countNonZeroCoeffs (compID) является функцией, которая восстанавливает количество ненулевых коэффициентов (значимых коэффициентов), существующих в блоке преобразования цветового сигнала, указанного посредством compID. Условие Condition 4а соответствует пятому этапу сверху синтаксиса, описанного на фиг. 68.
Следует заметить, что изменение порядка обработки этапов или изменение содержания процесса кодирования, описанного выше, может выполняться в пределах диапазона, в котором оно может выполняться. Дополнительно, арифметическая операция, связанная с синтаксисом, описанным выше, и выражения (79)-(83) условия могут изменяться в пределах диапазона, в котором они могут выполняться.
Декодирование
Далее будет описано устройство 200 декодирования изображения. Также, в этом случае устройство 200 декодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в первом варианте осуществления. Однако, устройство 200 декодирования изображения в этом случае содержит блок декодирования, который пропускает декодирование кодированных данных первой информации, связанной с включением/выключением адаптивного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициентов вторичного преобразования, полученных посредством обратного квантования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразование для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
В частности, блок 211 декодирования в этом случае пропускает декодирование кодированных данных первой информации, связанной с включением/выключением адаптивного первичного преобразования, в случае, когда обратное квантование для уровней коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициентов вторичного преобразования, полученных посредством обратного квантования уровней коэффициентов квантования-преобразования в коэффициенты первичного преобразования, и обратное первичное преобразование для преобразования коэффициентов первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
Поскольку функция, связанная с кодированием флага адаптивного первичного преобразования блоком 211 кодирования, в этом случае выполняющим программу, подобна функции в случае седьмого варианта осуществления, описанного здесь выше со ссылкой на фиг. 61, описание функции повторно не приводится.
Последовательность выполнения операций процесса декодирования
Далее будет описан пример последовательности выполнения операций, выполняемых устройством 200 декодирования изображения. В этом случае, устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий с процессом в случае первого варианта осуществления. Однако, в этом случае на этапе S201 (фиг. 13) процесса декодирования изображения устройство 200 декодирования изображения выполняет декодирование кодированных данных флага apt_flag адаптивного первичного преобразования и т.п. в ответ на значение флага transquant_bypass_flag обхода квантования-преобразования и т.п. Пример последовательности выполнения операций декодирования флага apt_flag адаптивного первичного преобразования и т.п. описывается со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 69. В частности, процесс декодирования, показанный на фиг. 69, выполняется как часть процесса декодирования, выполняемого на этапе S201 на фиг. 13. Декодирование других параметров кодирования и уровня для уровней коэффициентов квантования-преобразования выполняется произвольным способом.
После начала на этапе S711 процесса декодирования блок 512 декодирования флага пропуска преобразования принимает решение, равно ли 1 (истина) условие Condition 3, показанное в приведенном выше выражении (79) условия. В случае, когда принимается решение, что условие Condition 3 равно 0 (ложь), а именно, в случае, когда решено, что флаг пропуска преобразования не должен быть декодирован, обработка переходит к этапу S732.
На этапе S732 блок 512 декодирования флага пропуска преобразования пропускает декодирование флага ts_flag пропуска преобразования. В этом случае, блок 512 декодирования флага пропуска преобразования понимает, что пропуск преобразования не должен выполняться и устанавливает значение (0), указывающее это, для флага ts_flag пропуска преобразования (ts_flag = 0).
В частности, если условие кодирования для флага пропуска преобразования не удовлетворяется, то тогда, поскольку флаг ts_flag пропуска преобразования не передается со стороны кодирования, и, следовательно, блок 512 декодирования флага пропуска преобразования пропускает декодирование кодированных данных флага ts_flag пропуска преобразования. Поскольку это делает возможным пропускать кодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Когда процесс на этапе S732 закончен, обработка переходит к этапу S734. Дполнительно, в случае, когда на этапе S731 принимается решение, что условие Condition 3 равно 1 (истина), а именно, в случае, когда решено, что флаг адаптивного первичного преобразования должен быть декодирован, обработка переходит к этапу S733.
На этапе S734 блок 512 декодирования флага пропуска преобразования декодирует кодированные данные флага ts_flag пропуска преобразования. Когда процесс на этапе S733 закончен, обработка переходит к этапу S734.
На этапе S734 блок 511 декодирования флага адаптивного первичного преобразования принимает решение, равно ли 1 (истина) условие Condition 4, указанное в выражении (81) условия, приведенном ниже. В случае, когда принимается решение, что условие Condition 4 равно 0 (ложь), а именно, в случае, когда решено, что флаг адаптивного первичного преобразования не должен быть декодирован, обработка переходит к этапу S735.
На этапе S712 блок 511 декодирования флага адаптивного первичного преобразования пропускает декодирование флага apt_flag адаптивного первичного преобразования. В этом случае, блок 511 декодирования флага адаптивного первичного преобразования понимает, что адаптивное первичное преобразование не должно выполняться и устанавливает значение (0), указывающее это, для флага apt_flag адаптивного первичного преобразования (apt_flag = 0). Процесс кодирования заканчивается и обработка возвращается к фиг. 13.
В частности, если условие кодирование для флага адаптивного первичного преобразования не удовлетворяется, то тогда флаг apt_flag адаптивного первичного преобразования не передается со стороны кодирования и, следовательно, блок 511 декодирования флага адаптивного первичного преобразования пропускает декодирование кодированных данных флага apt_flag адаптивного первичного преобразования. Поскольку это делает возможным пропускать декодирование избыточной информации, можно ограничивать увеличение нагрузки на процесс декодирования и ограничивать снижение эффективности кодирования.
Когда процесс на этапе S735 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13. Дполнительно, в случае, когда на этапе S734 принимается решение, что условие Condition 2 равно 1 (истина), а именно, в случае, когда решено, что флаг пропуска преобразования должен быть декодирован, обработка переходит к этапу S736.
На этапе S736 блок 511 декодирования флага адаптивного первичного преобразования декодирует кодированные данные флага apt_flag адаптивного первичного преобразования. Когда процесс на этапе S736 закончен, процесс декодирования заканчивается и обработка возвращается к фиг. 13.
Выполняя процесс декодирования таким способом, как описано выше, в случае, когда должен применяется обход квантования-преобразования, или в случае, когда должен применяться пропуск преобразования, устройство 200 декодирования изображения может пропускать процесс декодирования флага apt_flag адаптивного первичного преобразования. В частности, объем обработки и объем кода, связанные с декодированием флага apt_flag адаптивного первичного преобразования, могут быть уменьшены.
Следует заметить, что изменение порядка обработки этапов или изменение содержания процессов декодирования, описанных выше, может выполняться в пределах диапазона, в котором они могут выполняться. Дополнительно, арифметическая операция, связанная с синтаксисом или выражениями (79)-(82) условий, описанными здесь, может изменяться в пределах диапазона, в котором она может выполняться.
9. Девятый вариант осуществления
Блок данных информации
Блок данных, в который информация, связанная с изображением, или информация, связанная с кодированием и декодированием изображения, представленные в предшествующем описании, (или данных, которые должны стать намеченной целью) устанавливается произвольно и не ограничивается приведенными выше примерами. Например, информация может быть установлена для каждого из следующих фрагментов: TU, TB, PU, PB, CU, LCU, субблок, блок, мозаичный элемент, срез, картинка, последовательность или компонент, или данных в таких блоках данных могут быть сделаны целевыми. Не стоит говорить, что блок данных устанавливается для каждого фрагмента информации. Другими словами, не все фрагменты информации могут устанавливаться (или могут быть сделаны целевыми) для каждого блока одних и тех же данных. Следует заметить, что место хранения этой информации является произвольным и такая информация может храниться в заголовке блока данных, в наборе параметров и т.п., описанных выше Дополнительно, информация может храниться во множестве мест.
Управляющая информация
Управляющая информация, связанная с представленной технологией, описанной в связи с представленными выше вариантами осуществления, может передаваться со стороны кодирования на сторону декодирования. Например, может передаваться управляющая информация (например, enabled_flag), используемая для управления разрешением (или запрещением) применения представленной технологии, описанной выше. Дополнительно, может передаваться управляющая информация для назначения верхнего предела или нижнего предела или обоих пределов размера блока при применении представленной выше технологии, которая должна разрешаться или запрещаться)
Кодирование и декодирование
Представленная технология может применяться к произвольному кодированию и декодированию изображения, при которых выполняются первичное преобразование, вторичное преобразование и кодирование (декодирование, обратное вторичное преобразование и обратное первичное преобразование). В частности, технические характеристики преобразования (обратного преобразования), квантования (обратного квантования), кодирования (декодирования) предсказание и т.п. являются произвольными и не ограничиваются описанными здесь выше примерами. Например, при преобразовании (обратном преобразовании), (обратном) преобразовании, отличном от (обратного) первичного преобразования и (обратного) вторичного преобразования, могут выполняться три и более видов (обратного преобразования). Дополнительно, кодирование (декодирование) может быть реверсивного типа или нереверсивного типа. Дополнительно, квантование (обратное квантование), предсказание и т.п. могут быть проигнорированы. Дополнительно может выполняться какой-либо процесс, который не был описан здесь ранее, такой как процесс фильтрации.
Например, в качестве внутриконтурного фильтра могут применяться деблокирующий фильтр, адаптивное смещение выборки (Sample Adaptive Offset, SAO) или адаптивный контурный фильтр (Adaptive Loop Filter, ALF). Следует заметить, что когда должно выполняться декодирование без потерь, в устройстве 100 кодирования изображения разрешенный флаг transquant_bypass_enabled_flag обхода квантования-преобразования устанавливается равным 1 и кодируется и флаг transquant_bypass_flag обхода квантования-преобразования устанавливается равным 1 и кодируется. Соответственно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования для каждого заданного блока (например, CTU или CU) равен 1, необходимо игнорировать процесс фильтрации или внутриконтурной фильтрации, которые обладают способностью коррекции декодированного изображения (деблокирующий фильтр, адаптивное смещение выборки, адаптивный контурный фильтр). Дополнительно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования для каждого заданного блока равен 1, игнорируя кодирование фактора синтаксиса для каждого заданного блока в отношении фильтра или внутриконтурного фильтра, обладающего способностью коррекции декодированного изображения (деблокирующий фильтр, адаптивное смещение выборки, адаптивный контурный фильтр), объем избыточного кода может быть уменьшен. Например, в случае адаптивного контурного фильтра кодирование фактора синтаксиса, такого как коэффициент фильтрации или флаг включения/выключения, может игнорироваться.
Аналогично, в устройстве 200 декодирования изображения, которое декодирует кодированные данные, кодированные посредством кодирования без потерь, декодирует флаг transquant_bypass_enabled_flag действительности обхода квантования-преобразования и декодирует флаг transquant_bypass_flag действительности обхода квантования-преобразования для каждого заданного блока (например, CTU или CU). Соответственно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования для каждого заданного блока равен 1, необходимо игнорировать процесс фильтрации или внутриконтурной фильтрации, которые обладают способностью коррекции декодированного изображения (деблокирующий фильтр, адаптивное смещение выборки, адаптивный контурный фильтр). Дополнительно, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования для каждого заданного блока равен 1, игнорируя декодирование фактора синтаксиса для каждого заданного блока в отношении фильтра или внутриконтурного фильтра, обладающего способностью коррекции декодированного изображения (деблокирующий фильтр, адаптивное смещение выборки, адаптивный контурный фильтр), объем обработки, связанной с декодированием избыточных кодов, может быть уменьшен. Например, в случае адаптивного контурного фильтра декодирование фактора синтаксиса, такого как коэффициент фильтрации или флаг включения/выключения процесса фильтрации, может игнорироваться.
Область применения представленной технологии
Система, устройство, блок обработки и т.п., к которым применима представленная технология, могут использоваться в различных областях, таких как дорожное движение, здравоохранение, профилактика правонарушений, сельское хозяйство, животноводство, горнодобывающая отрасль, косметика, производство, бытовая электроника, прогнозирование погоды, природоохранительная деятельность и т.п.
Например, представленная технология может также применяться к системе или к устройству для передачи изображения, используемого для оценки. Дополнительно, например, представленная технология может также применяться к системе или к устройству, предназначенным для дорожного движения. Дополнительно, например, представленная технология может также применяться к системе или к устройству, предназначенным для обеспечения безопасности. Дополнительно, например, представленная технология может также применяться к системе или к устройству, предназначенным для спорта. Дополнительно, например, представленная технология может также применяться к системе или к устройству, предназначенным для сельского хозяйства. Дополнительно, например, представленная технология может также применяться к системе или к устройству, предназначенным для отрасли животноводства. Дополнительно, представленная технология может также применяться к системе или к устройству для контроля состояния природы, такой как вулканы, леса, океан и т.п. Дополнительно, представленная технология может применяться к метеорологической системе или к метеорологическому устройству, например, для наблюдания за погодой, температурой, влажностью, скоростью ветра, продолжительностью дня и т.п. Дополнительно, представленная технология может также применяться к системе, устройству и т. п для наблюдения за экологией природы, такой как, например, птицы, рыбы, рептилии, амфибии, млекопитающие, насекомые, растения и т.п.
Применение для систем кодирования и декодирования мультипроекционных изображений
Ряд процессов, описанных выше, может применяться к системе кодирования и декодирования мультипроекционных изображений, выполняющих кодирование и декодирование мультипроекционных изображений, содержащих изображение, полученное с множества точек просмотра (проекции). В этом случае, представленная технология может применяться к кодированию или декодированию каждой точки просмотра (проекции).
Применение к иерархической системе кодирования и декодирования изображения
Дополнительно, ряд описанных выше процессов может применяться к иерархической системе кодирования (масштабируемого кодирования) и декодирования, которая выполняет кодирование и декодирование иерархического послойного изображения (иерархического), которое формируется во множество слоев (иерархиях), так чтобы иметь функцию возможности масштабирования в отношении заданного параметра. В этом случае, представленная технология может применяться к кодированию и декодированию каждой иерархии (уровня).
Компьютер
Хотя ряд процессов, описанных выше, могут выполняться с помощью аппаратурного обеспечения, они, в противном случае, могут выполняться посредством программного обеспечения. Когда последовательность процессов выполняется с помощью программного обеспечения, на компьютер устанавливается программа, составляющая программное обеспечение. Здесь, примерами компьютера являются компьютер, встроенный в специализированные аппаратные средства для эксклюзивного применения, персональный компьютер, например, для универсального применения, которые могут осуществлять различные функции при установке различных программ и т.п..
На фиг. 70 приведена блок-схема примера конфигурации аппаратурного обеспечения компьютера, в соответствии с программой исполняющего упомянутые выше последовательности обработки.
В компьютере 800, показанном на фиг. 70, центральный процессор 801 (Central Processing Unit, CPU), постоянное запоминающее устройство 802 (Read Only Memory, ROM) и оперативное запоминающее устройство 803 (Random Access Memory, RAM) соединяются друг с другом через шину 804.
К шине 804 также присоединяется интерфейс 810 ввода-вывода. С интерфейсом 810 ввода-вывода соединяются устройство 811 ввода, устройство 812 вывода, блок 813 запоминающего устройства, блок 814 связи и дисковод 815.
Устройство 811 ввода содержит, например, клавиатуру, мышь, микрофон, сенсорную панель, входной терминал и т.п. Устройство 812 вывода содержит дисплей, громкоговоритель, выходной терминал и т.п. Блок 813 запоминающего устройства содержит, например, жесткий диск, диск RAM, энергонезависимую память и т.п. Блок 814 связи содержит, например, сетевой интерфейс. Дисковод 815 приводит в действие схемный носитель 821, такой как магнитный диск, оптический диск, магнито-оптический диск, полупроводниковую память и т.д.
В компьютере, конфигурированном таким образом, как описано выше, CPU 801, например, загружает в RAM 803 программу, хранящуюся в запоминающем устройстве 813, через интерфейс 810 ввода-вывода и шину 104 и выполняет программу, исполняя, таким образом, ряд описанных выше процессов. В RAM 803 должны образом хранятся также данные и т.п., необходимые для выполнения различных процессов с помощью CPU 801.
Программа, выполняема компьютером (CPU 801) может быть записана, например, на съемный носитель 821 в качестве пакетного носителя и т.п. и далее применяться. В этом случае программа может быть установлена в запоминающее устройсмтво 813 через интерфейс 810 ввода-вывода, монтируя съемный носитель 821 на дисководе 815.
Дополнительно, эта программа может обеспечиваться через проводную или беспроводную среду передачи данных, такую как локальная сеть, Интернет или цифровое спутниковое вещание. В этом случае программа может приниматься через блок 814 связи и может устанавливаться в запоминающее устройство 813.
Также возможно устанавливать эту программу в ROM 802 или блок 813 запоминающего устройства заранее.
Применение представленной технологии
Устройство 100 кодирования изображения или устройство 200 декодирования изображения, соответствующие описанным выше вариантам осуществления, могут применяться в различных электронных устройствах, таких как передатчики или приемниеи, например, при передаче спутникового вещания, кабельного вещания, такого как кабельное телевидение или Интернет и связи с терминалом посредством сотовой связи, и т.п., или в устройстве записи для записи изображения на носителе, таком как оптический диск, магнитный диск и флэш-память и т. п., в устройстве воспроизведения для воспроизведения изображения с такого носителя записи, как описано выше, и т.п.
Первый пример применения: телевизионный приемник
На фиг. 71 показан пример схемной конфигурации телевизионного устройства, к которому может быть применим любой из описанных выше вариантов осуществления. Телевизионное устройство 900 содержит антенну 901, тюнер 902, демультиплексор 903, декодер 904, блок 905 видеопроцессора, блок 906 дисплея, блок 907 аудиопроцессора, громкоговоритель 908, блок 909 внешнего интерфейса (I/F), блок 910 управления, блок 911 интерфейса (I/F) пользователя и шину 912.
Блок 902 тюнера извлекает сигнал желаемого канала из широковещательного сигнала, принимаемого через антенну 901, и демодулирует извлеченный сигнал. Затем тюнер 902 выводит кодированный битовый поток, полученный при демодуляции, на демультиплексор 903. В частности, тюнер 902 играет роль передающего блока в телевизионном устройстве 900, которое принимает кодированный поток, в котором закодировано изображение.
Демультиплексор 903 демультиплексирует видеопоток и аудиопоток широковещательной программы, являющейся целью просмотра, из кодированного битового потока и демультиплексированные потоки на декодер 904. Дополнительно, демультиплексор 903 извлекает вспомогательные данные, такие как электронная программа передач (Electronic Program Guide, EPG), из кодированного битового потока и подает извлеченные данные на блок 910 управления. Следует заметить, что демультиплексор 903 может выполнять дескремблирование, в случае, когда кодированный битовый поток находится в скремблированном состоянии.
Декодер 904 декодирует видеопоток и аудиопоток, которые вводятся на него от демультиплексора 903. Затем декодер 904 выводит видеоданные, сформированные процессом декодирования, на блок 905 видеопроцессора. Дополнительно, декодер 904 выводит аудиоданные, сформированные процессом декодирования, на блок 907 аудиопроцессора.
Блок 905 видеопроцессора воспроизводит видеоданные, введенные на него от декодера 904, и заставляет блок 906 дисплея отображать видеосигнал. Дополнительно, блок 905 видеопроцессора может заставить блок 906 дисплея отображать изображение экрана видеоприложения, подаваемого через сеть Дополнительно, блок 905 видеопроцессора может выполнять дополнительные процессы, такие как, например, удаление шума и т.п. для видеоданных в соответствии с настройкой. Дополнительно, блок 905 видеопроцессора может создавать изображение графического интерфейса пользователя (Graphical User Interface, GUI), такое как меню, кнопка или курсор и т.п., и может накладывать сформированное таким образом изображение на выходное изображение.
Блок 906 дисплея приводится в действие сигналом запуска, подаваемым на него от блока 905 видеопроцессора и отображает на дисплее видео или изображение на видеоповерхности дисплея (например, жидкокристаллического дисплея, плазменного дисплея, органического электролюминесцентного дисплея (Organic ElectroLuminescence Display, OELD) и т.п.).
Блок 907 аудиопроцессора выполняет процесс воспроизведения, такой как цифро-аналоговое преобразование, усиление и т.п. аудиоданных, введенных на него от декодера 904, и заставляет громкоговоритель выводить звуковой сигнал. Дополнительно, блок 907 аудиопроцессора может выполнять дополнительные процессы, такие как удаление шумов и т.п., для аудиоданных.
Блок 909 внешнего интерфейса является интерфейсом, через который телевизионное устройство 900 и внешнее устройство или сеть соединяются друг с другом. Например, видеопоток или аудиопоток, которые принимаются через блок 909 внешнего интерфейса, могут декодироваться декодером 904. В частности, блок 909 внешнего интерфейса играет роль передающего блока в телевизионном устройстве 900, которое принимает кодированный поток, в котором закодировано изображение.
Блок 910 управления содержит процессор, такой как CPU, и память, такую как RAM, ROM и т.п. В памяти хранится программа, которая должна выполняться CPU, данные программы, данные EPG, данные, полученные через сеть, и т.п. Программа, хранящаяся в памяти, считывается в CPU и выполняется, например, после активации телевизионного устройства 900. Выполняя программу, CPU управляет работой телевизионного устройства 900 в соответствии с рабочим сигналом, вводимым, например, от блока 911 интерфейса пользователя.
Блок 911 интерфейса пользователя соединяется с блоком 910 управления. Блок 911 интерфейса пользователя имеет, например, кнопку и переключатель, позволяющие пользователю манипулировать телевизионным устройством 900, приемным блоком для приема сигнала дистанционного управления и т.п. Блок 911 интерфейса пользователя обнаруживает манипуляцию, произведенную пользователем через упомянутые элементы, формирует сигнал манипуляции и выводит сформированный сигнал манипуляции на блок 910 управления.
Шина 912 соединяет друг с другом тюнер 902, демультиплексор 903, декодер 904, блок 905 видеопроцессора, блок 907 аудиопроцессора, блок 909 внешнего интерфейса и блок 910 управления.
В телевизионном устройстве 900, выполненном таким образом, как описано выше, декодер 904 может иметь функцию устройства 200 декодирования изображения, описанного выше. В частности, декодер 904 может декодировать кодированные данные способом, описанным здесь ранее в связи с представленными выше вариантами осуществленияю С помощью такого декодирования телевизионное устройство 900 может ограничивать снижение эффективности кодирования принимаемого кодированного битового потока.
Дополнительно, в телевизионном устройстве 900, выполненном таким способом, как описано выше, блок 905 видеопроцессора может быть выполнен с возможностью, например, кодирования данных изображения, поданных на него от декодера 904, и вывода полученных кодированных данных за пределы телевизионного устройства 900 через блок 909 внешнего интерфейса. Дополнительно, блок 905 видеопроцессора может иметь функцию устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 905 видеопроцессора может кодировать данные изображения, поданные на него от декодера 904, способами, описанными выше в связи с вариантами осуществления. С помощью такого декодирования телевизионное устройство 900 может ограничивать снижение эффективности кодирования кодированных данных, подлежащих выводу.
Второй пример применения: сотовый телефон
На фиг. 72 показан пример схемной конфигурации телевизионного сотового телефона, к которому могут быть применимы описанные выше варианты осуществления. Сотовый телефон 920 содержит антенну 921, блок 922 связи, аудиокодек 923, громкоговоритель 924, микрофон 925, блок 926 камеры, блок 927 видеопроцессора, блок 928 демультиплексирования, блок 929 записи/воспроизведения, блок 930 дисплея, блок 931 управления, блок 932 манипуляции и шину 933.
Антенна 921 соединяется с блоком 922 связи. Громкоговоритель 924 и микрофон 925 соединяются с аудиокодеком 923. Блок 932 манипуляции соединяется с блоком 931 управления. Шина 933 соединяет друг с другом блок 922 связи, аудиокодек 923, блок 926 камеры, блок 927 видеопроцессора, блок 928 демультиплексирования, блок 929 записи/воспроизведения, блок 930 дисплея и блок 931 управления.
Сотовый телефон 920 выполняет такие операции, как передача и прием речевого сигнала, передача и прием электронной почты или данных изображения, фото и видеосъемка, запись данных и т.п. в различных рабочих режимах, таких как речевой режим, режим передачи данных, режим съемки и режим видеотелефона.
В речевом режиме аналоговый речевой сигнал, сформированный микрофоном 925, подается на аудиокодек 923. Аудиокодек 923 преобразует аналоговый речевой сигнал в речевые данные и производит аналого-цифровое преобразование и после преобразования сжимает результирующие речевые данные. Затем аудиокодек 922 выводит речевые данные после сжатия на блок 922 связи. Затем блок 922 связи кодирует и модулирует речевые данные, чтобы сформировать передаваемый сигнал. Затем блок 922 связи через антенну 921 передает сформированный передаваемый сигнал на базовую станцию (не показана). С другой стороны, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Затем блок 922 связи демодулирует и декодирует принятый сигнал, чтобы сформировать речевые данные, и выводит сформированные речевые данные на аудиокодек 923. Аудиокодек 923 расширяет аудиоданные и выполняет их цифро-аналоговое преобразование, чтобы создать аналоговый аудиосигнал. Затем аудиокодек 923 подает сформированный речевой сигнал на громкоговоритель 924, который выводит речевой сигнал через громкоговоритель 924.
С другой стороны, в режиме передачи данных, например, блок 931 управления формирует символьные данные, образующие электронную почту, в ответ на манипуляции, выполняемые пользователем через блок 932 манипуляции. Дополнительно, блок 931 управления заставляет блок 930 дисплея отображать символы. Дополнительно, блок 931 управления формирует данные электронной почты в ответ на команду передачи, поданную пользователем через блок 932 манипуляции, и выводит сформированные данные электронной почты на блок 922 связи. Блок 922 связи кодирует и модулирует сформированные данные электронной почты, чтобы сформировать передаваемый сигнал. Затем блок 922 связи через антенну 921 передает сформированный передаваемый сигнал на базовую станцию (не показана). С другой стороны, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Затем блок 922 связи демодулирует и декодирует принятый сигнал, чтобы восстановить данные электронной почты и выводит восстановленные данные электронной почты на блок 931 управления. Блок 931 управления управляет блоком 930 дисплея, чтобы отображать содержание электронной почты, и подает данные электронной почты на блок 929 записи и воспроизведения, так чтобы электронные данные записывались на его носитель записи.
Блок 929 записи и воспроизведения имеет произвольный носитель для хранения данных, который может считываться и записываться. Например, носитель для записи данных может быть встроенным носителем для хранения данных, таким как RAM, флэш-память и т.п., или может быть монтируемым извне носителем для хранения данных, таким как жесткий диск, магнитный диск, магнитооптический диск, оптический диск, USB-память или карта памяти и т.п.
Дополнительно, в режиме фото-видеосъемки, например, блок 926 камеры получает изображение снимаемого объекта, чтобы сформировать данные изображения, и выводит сформированные данные изображения на блок 927 видеопроцессора. Блок 927 видеопроцессора кодирует данные изображения, вводимые из блока 926 камеры, и подает кодированный поток на блок 929 записи и воспроизведения для их записи на носитель для хранения данных.
Дополнительно, в режиме отображения изображения блок 929 записи и воспроизведения считывает кодированный поток, записанный на носителе запоминающего устройства, и выводит кодированный поток на блок 927 видеопроцессора. Блок 927 видеопроцессора декодирует кодированный поток, введенный от блока 929 записи и воспроизведения, и подает данные изображения на блок 930 дисплея для отображения изображения.
Дополнительно, в режиме видеотелефона, например, блок 928 демультиплексирования мультиплексирует видеопоток, кодированный блоком видеопроцессора, и аудиопоток, введенный в него от аудиокодека 923, и выводит мультиплексированный поток на блок 922 связи. Блок 922 связи кодирует и модулирует поток, чтобы сформировать передаваемый сигнал. Затем блок 922 связи через антенну 921 передает сформированный передаваемый сигнал на базовую станцию (не показана). С другой стороны, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Передаваемый сигнал и принимаемый сигнал могут содержать кодированный битовый поток. Затем блок 922 связи демодулирует и декодирует принимаемый сигнал, чтобы восстановить поток, и выводит восстановленный поток на блок 928 демультиплексирования. Блок 928 демультиплексирования демультиплексирует видеопоток и аудиопоток из введенного потока и выводит видеопоток на блок 927 видеопроцессора, а также выводит аудиопоток на аудиокодек 923. Блок 927 видеопроцессора декодирует видеопоток, чтобы сформировать видеоданные. Эти видеоданные подаются на блок 930 дисплея, с помощью поторого последовательность изображений отображается на экране. Аудиокодек 923 расширяет аудиопоток и выполняет его цифро-аналоговое преобразование, чтобы сформировать аналоговый аудиосигнал. Затем аудиокодек 923 подает сформированный аудиосигнал на громкоговоритель 924, так что речевой сигнал выводится через громкоговоритель 924.
В сотовом телефоне 920, выполненном таким образом, например, блок 927 видеопроцессора может иметь функцию устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 927 видеопроцессора может кодировать данные изображения способами, описанными в предшествующем описании вариантов осуществления. Посредством такого кодирования сотовый телефон 920 может ограничивать снижение эффективности кодирования кодированных данных.
Дополнительно, в сотовом телефоне 920, выполненном таким образом, например, блок 927 видеопроцессора может иметь функцию устройства 200 декодирования изображения, описанного выше. Короче говоря, блок 927 видеопроцессора может декодировать кодированные данные способами, описанными выше в предшествующем описании вариантов осуществления. Посредством такого декодирования сотовый телефон 920 может ограничивать снижение эффективности кодирования кодированных данных.
Третий пример применения: устройство записи/воспроизведения
На фиг. 73 показан пример схемной конфигурации устройства записи и воспроизведения, к которому может быть применим любой из описанных выше вариантов осуществления. Устройство 940 записи и воспроизведения, например, кодирует аудиоданные и видеоданные принятой широковещательной программы и записывает кодированные данные на носитель для записи. Дополнительно, устройство 940 записи и воспроизведения может, например, кодировать аудиоданные и видеоданные, полученные от другого устройства, и записывать данные на носитель для записи. Дополнительно, устройство 940 записи и воспроизведения, например, воспроизводит данные, записанные на носителе для записи, на мониторе и через громкоговоритель в соответствии с командой пользователя. В этом случае, устройство 940 записи и воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи и воспроизведения содержит тюнер 941, блок 942 внешнего интерфейса (I/F), кодер 943, блок 944 дисковода (Hard Disc Drive, HDD), привод 945, переключатель 946, декодер 947, блок 948 экранного дисплея (On-Screen Display, OSD), блок 949 управления и интерфейс 950 (I/F) пользователя.
Тюнер 941 извлекает желаемый канал из широковещательного сигнала, принимаемого через антенну (не показана), и демодулирует извлеченный сигнал. Затем тюнер 941 выводит кодированный битовый поток, полученный при демодуляции, на переключатель 946. Другими словами, тюнер 941 в устройстве 940 записи и воспроизведения играет роль передающего блока.
Блок 942 внешнего интерфейса является интерфейсом для соединения друг с другом устройства 940 записи и воспроизведения и внешнего устройства или сети. Блок 942 внешнего интерфейса, например, может быть интерфейсом Института по радиоэлектронике и электротехнике (Institute of Electrical and Electronic Engineers, IEEE) 1394, сетевым интерфейсом, USB-интерфейсом или интерфейсом флэш-памяти и т.п. Например, видеоданные и аудиоданные, которые принимаются через блок 942 внешнего интерфейса, вводятся на кодер 943. Другими словами, блок 942 внешнего интерфейса в устройстве 940 записи и воспроизведения играет роль передающего блока.
В случае, когда видеоданные и аудиоданные, которые вводятся от блока 942 внешнего интерфейса, не кодированы, кодер 943 кодирует видеоданные и аудиоданные. Затем кодер 943 выводит кодированный битовый поток на переключатель 946.
Блок 944 HDD записывает кодированный битовый поток, в котором сжимаются данные контента видео, аудио и т.п., вместе с различными типами программ и другими данными на внутреннем жестком диске. Дополнительно, блок 944 HDD при воспроизведении видео и аудио считывает такие данные с жесткого диска.
Блок 945 привода выполняет запись и считывание данных смонтированного на нем носителя данных. Носителем для записи, монтируемым на дисководе 945, могут быть, например, универсальный цифровой диск DVD (Digital Versatile Disc), диск DVD-Video или DVD-RAM (DVD-Random Access Memory), DVD-R (DVD-Recordable), DVD-RW (DVD-Rewritable), DVD+R (DVD + Recordable), DVD+RW (DVD + Rewritable) и т.п.), диск Blu-ray (зарегистрированная торговая марка) и т.п.
Переключатель 946 переключает кодированный битовый поток, подаваемый от тюнера 941 или кодера 943 во время видеозаписи и аудиозаписи, и выводит выбранный кодированный битовый поток на блок 944 HDD или на дисковод 945. С другой стороны, при воспроизведении видео и аудио переключатель 946 выводит кодированный битовый поток, введенный от HDD 944 или дисковода 945, на декодер 947.
Декодер 947 декодирует кодированный битовый поток, чтобы сформировать видеоданные и аудиоданные. Затем декодер 947 выводит сформированные видеоданные на блок 948 OSD. Дополнительно, декодер 947 выводит сформированные аудиоданные на внешний громкоговоритель.
Блок 948 OSD воспроизводит видеоданные, введенные на него от декодера 947, и отображает видео. Дополнительно, блок 948 OSD может накладывать изображение GUI, такое как, например, меню, кнопка курсор и т.п., на отображаемое видео.
Блок 949 управления содержит процессор, такой как CPU и т.п., и память, такую как RAM, ROM и т.п. В памяти хранится программа, которая должна выполняться CPU, данные программы и т.п. Программа, хранящаяся в памяти, считывается в CPU и выполняется, например, после активации устройства 940 записи и воспроизведения. Выполняя программу, CPU управляет, например, работой устройства 940 записи и воспроизведения в соответствии с сигналом манипуляции, введенным от блока 950 интерфейса пользователя.
Блок 950 интерфейса пользователя соединяется с блоком 949 управления. Блок 950 интерфейса пользователя имеет, например, кнопку и переключатель, позволяющие пользователю манипулировать устройством 940 записи и воспроизведения, приемным блоком для приема сигнала дистанционного управления и т.п. Блок 950 интерфейса пользователя обнаруживает манипуляцию, произведенную пользователем с помощью упомянутых элементов, чтобы сформировать сигнал манипуляции, и выводит сформированный сигнал манипуляции на блок 949 управления.
В устройстве 940 записи и воспроизведения, выполненном таким образом, кодер 943, например, может иметь функции устройства 100 кодирования изображения, описанного выше. Короче говоря, кодер 943 может кодировать данные изображения способами, описанными в предшествующем описании вариантов осуществления. Посредством такого кодирования устройство 940 записи и воспроизведения может ограничивать снижение эффективности кодирования кодированных данных.
Дополнительно, в устройстве 940 записи и воспроизведения, выполненном таким образом, кодер 947, например, может иметь функции устройства 200 декодирования изображения, описанного выше. Короче говоря, декодер 947 может декодировать кодированные данные способами, описанными в предшествующем описании вариантов осуществления. Посредством такого декодирования устройство 940 записи и воспроизведения может ограничивать снижение эффективности кодирования кодированных данных.
Четвертый пример применения: устройство съемки фото- и видеоизображений
На фиг. 74 показан пример схемной конфигурации устройства съемки фото и видеоизображений, к которому может быть применим любой из описанных выше вариантов осуществления. Устройство 960 съемки фото и видеоизображений снимает изображение объекта, чтобы сформировать изображение и кодирует и записывает данные изображения на носителе для записи.
Устройство 960 съемки фото и видеоизображений содержит оптический блок 961, блок 962 съемки, блок 963 обработки сигнала, блок 964 видеопроцессора, блок 965 дисплея, блок 966 внешнего интерфейса (I/F), блок 967 памяти, привод 968 носителя данных, блок 969 OSD, блок 970 управления, блок 971 интерфейса (I/F) пользователя и шину 972.
Оптический блок 961 соединяется с блоком 962 съемки. Блок 962 съемки соединяется с блоком 963 обработки сигнала. Блок 965 дисплея соединяется с блоком 964 видеопроцессора. Блок 971 интерфейса пользователя соединяется с блоком 970 управления. Шина 972 соединяет друг с другом блок 964 видеопроцессора, блок 966 внешнего интерфейса, блок 967 памяти, привод 968 носителя данных, блок 969 OSD и блок 970 управления.
Оптический блок 961 содержит объектив, механизм диафрагмы и т.п. Оптический блок 961 формирует оптическое изображение объекта съемки на поверхности датчика изображения блока 962 съемки. Блок 962 съемки имеет датчик изображения, такой как датчик на устройстве с зарядовой связью CCD (Charge Coupled Derive) или комплементарный метал-оксидный полупроводниковый (Complementary Metal Oxide Semiconductor) CMOS-датчик и т.п., используя фотоэлектрическое преобразование, и преобразует оптическое изображение, сформированное на поверхности датчика изображения, в сигнал изображения в виде электрического сигнала, используя для этого фотоэлектрическое преобразование. Затем, блок 962 съемки выводит сигнал изображения на блок 963 обработки сигнала.
Блок 963 обработки сигнала выполняет различные процессы обработки сигнала камеры, такие как г-образная коррекция, гамма-коррекция и коррекция цвета и т.п. для сигнала изображения, введенного от блока 962 съемки. Блок 963 обработки сигнала выводит данные изображения после обработки сигнала камеры на блок 964 видеопроцессора.
Блок 964 видеопроцессора кодирует данные изображения, введенные от блока 963 обработки сигнала, чтобы создать кодированные данные. Затем блок 964 видеопроцессора выводит сформированные кодированные данные на блок 966 внешнего интерфейса или на привод 968 носителя данных. Дополнительно, блок 964 видеопроцессора декодирует кодированные данные, введенные от блока 966 внешнего интерфейса или от привода 968 носителя данных, чтобы сформировать данные изображения. Затем, блок 964 видеопроцессора выводит сформированные данные изображения на блок 965 дисплея. Дополнительно, блок 964 видеопроцессора может вывести данные изображения, введенные от блока 963 обработки сигнала, на блок 965 дисплея для отображения изображения. Дополнительно, блок 964 видеопроцессора может накладывать данные для отображения, полученные от блока 969 OSD, на изображение, которое должно быть выведено на блок 965 дисплея.
Блок 969 OSD формирует изображение GUI, такое как, например, меню, кнопка или курсор и т.п., и выводит сформированное изображение на блок 964 видеопроцессора.
Блок 966 внешнего интерфейса выполнен с возможностью, например, формирования в качестве USB-терминала ввода-вывода. Блок 966 внешнего интерфейса соединяет друг с другом устройство 960 съемки фото- и видеоизображения и принтер, например, при печати изображения. Дополнительно, в зависимости от ситуации, привод соединяется с блоком 966 внешнего интерфейса. На дисководе монтируется съемный носитель, например, такой как магнитный диск или оптический диск и т.п., и программа, считанная со съемного носителя, может устанавливаться в устройство 960 съемки. Дополнительно, блок 966 внешнего интерфейса может быть выполнен в форме сетевого интерфейса, соединенного с сетью, такой как LAN, Интернет и т.п. Другими словами, блок 966 внешнего интерфейса играет роль передающего блока устройства 960 съемки.
Носитель для записи, монтируемый на дисковод 968 носителя данных, может быть произвольно считываемым и записываемым съемным носителем, таким как, например, магнитный диск, магнито-оптический диск, оптический диск, полупроводниковая память и т.п. Дополнительно, носитель для записи может быть выполнен в виде стационарного носителя записи данных, закрепленного на приводе 968 носителя данных, таком как стационарный блок запоминающего устройства, например, встроенный дисковод жесткого диска или твердотельный дисковод SSD (Solid State Drive).
Блок 970 управления содержит процессор, такой как CPU и т.п., и память, такую как RAM, ROM и т.п. В памяти хранится программа, которая должна выполняться CPU, данные программы и т.п. Программа, хранящаяся в памяти, считывается в CPU и выполняется, например, после активации устройства 960 съемки. Выполняя программу, CPU управляет, например, работой устройства 960 съемки в соответствии с сигналом манипуляции, вводимым от блока 971 интерфейса пользователя.
Блок 971 интерфейса пользователя соединяется с блоком 970 управления. Блок 971 интерфейса пользователя имеет, например, кнопку, переключатель и т.п., чтобы позволить пользователю манипулировать устройством 960 съемки. Блок 971 интерфейса пользователя обнаруживает манипуляцию, произведенную пользователем с помощью описанных элементов, чтобы сформировать сигнал манипуляции, и выводит сформированный сигнал манипуляции на блок 970 управления.
В устройстве 960 съемки, выполненном таким образом, например, блок 964 видеопроцессора может иметь функции устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 964 видеопроцессора может кодировать данные изображения любым способом, представленным в предшествующем описании вариантов осуществления. Посредством такого кодирования устройство 960 съемки может ограничивать снижение эффективности кодирования кодированных данных.
Дополнительно, в устройстве 960 съемки, выполненном таким образом, как описано выше, блок 964 видеопроцессора может, например, иметь функцию устройства 200 декодирования изображений, описанного выше. Короче говоря, блок 964 видеопроцессора может декодировать кодированные данные любым способом, представленным в предшествующем описании вариантов осуществления. Посредством такого декодирования, устройство 960 съемки может ограничивать снижение эффективности кодирования кодированных данных.
Пятый пример применения: видеокомплект
Дополнительно, представленная технология может также быть реализована в виде любой конфигурации, вводимой в состав произвольном устройства, или в устройство, образующее систему, такое, как, например, процессор как система с большой степенью интеграции (Large Scale Integration, LSI) и т.п., модуль, использующий множество процессоров и т.п., блок, использующий множество модулей и т.п., комплект, в котором к блоку добавляются некоторые другие функции (а именно, часть конфигурации устройства). На фиг. 75 показан пример схемной конфигурации видеокомплекта, к которому применяется представленная технология.
В последние годы имела место и продолжает иметь место многофункциональность электронных устройств и в случае, когда при разработке или изготовлении какая-то конфигурация выполняется как продажная, обеспечиваемая и т.п., не только случай, в котором она выполняется как структура, обладающая одной функцией, но также и случай, в котором множество структур, имеющих функции, связанные друг с другом, объединяются и выполняются как единый комплект, имеющий множество функций, встречаются все больше.
Видеокомплект, показанный на фиг. 75, имеет такую многофункциональную конфигурацию и является объединением с устройством, обладающим функцией или функциями, связанными с кодированием и/или декодирование изображения (кодирования и декодирования или обоих вместе), причем устройство имеет другую функцию, связанную с функцией или функциями.
Как показано на фиг. 75, видеокомплект 1300 содержит группу модулей, содержащую видеомодуль 1311, внешнюю память 1312, модуль 1313 управления электропитанием, входной модуль 1314 и т.п., и устройство, обладающее связующими функциями, такое как модуль 1321 связанности, камера 1322, датчик 1323 и т.п.
Модуль является элементом, в котором несколько функций элементов, связанных друг с другом, собираются таким образом, что он имеет взаимосвязанные функции. Хотя конкретная физическая конфигурация является произвольной, модуль, например, предположительно может быть таким, в котором элементы электронных схем, обладающих индивидуальными функциями, такие как процессоры, регистры, конденсаторы и т.п., и другие устройства и т.п. располагаются на печатной плате и т.п. и интегрируются. Кроме того, существует возможность объединения модуля с другим модулем, процессом и т.п. для формирования нового модуля.
В случае, показанном в примере на фиг. 75, видеомодуль 1311 является объединением структур, имеющих функции, связанные с обработкой изображения, и содержит прикладной процессор, видеопроцессор, широкополосный модем 1333 и радиочастотный модуль 1334.
Процессор содержит структуры, обладающие заданными функциями, интегрированные на полупроводниковом кристалле посредством SoC (System On a Chip, система на кристалле), и называется, например, системой LSI (Large Scale Integration, с высокой степенью интеграции) и т.п. Структуры, обладающие заданными функциями, могут быть логическими схемами (аппаратурурными средствами), могут быть CPU, ROM, RAM и т.п., и программами, исполняемыми ими (программная конфигурация), или могут быть получены, объединяя вышеперечисленное друг с другом. Например, процессор может содержать логическую схему и CPU, ROM, RAM и т.п., так чтобы часть функций реализовывалась логической схемой (аппаратные средства), а другие функции реализовывались программой (программная конфигурация), выполняемой посредством CPU.
Прикладной процессор 1331, показанный на фиг. 75, является процессором для выполнения приложений, связанных с обработкой изображения. Приложение, выполняемое прикладным процессором 1331 с целью реализации заданной функции, по мере необходимости может выполнять не только процесс арифметических операций, но также может управлять структурами внутри или снаружи видеомодуля 1311, такого, например, как видеопроцессор 1332 и т.п.
Видеопроцессор 1332 является процессором, имеющим функцию, связанную с кодированием и/или декодированием изображения (кодированием, декодированием или и тем и другим).
Широкополосный модем 1333 выполняет цеифровую модуляцию и т.п. данных (цифрового сигнала), которые должны передаваться посредством проводной или беспроводной (или как проводной, так и беспроводной) широкополосной передачи, выполняемой по широкополосной линии, такой как Интернет, общественная телефонная сеть и т.п., чтобы преобразовать данные в аналоговый сигнал, или преобразует аналоговый сигнал, принятый посредством такой широкополосной связи, чтобы преобразовать аналоговый сигнал в данные (цифровой сигнал). Широкополосный модем 1333 обрабатывает произвольную информацию, такую как, например, данные изображения, которые должны обрабатываться видеопроцессором 1332, поток, в котором кодируются данные изображения, прикладная программа, установочные данные и т.п.
Радиочастотный модуль 1334 является модулем, выполняющим преобразование частоты, модуляцию/демодуляцию, усиление, фильтрацию и т.п. радиочастотного сигнала, который должен передаваться или приниматься через антенну. Например, радиочастотный модуль 1334 выполняет преобразование частоты и т.п. для сигнала в основной полосе, создаваемого широкополосным модемом 1333, чтобы сформировать радиочастотный сигнал. Дополнительно, например, радиочастотный модуль 1334 выполняет преобразование частоты и т.п. для радиочастотного сигнала, принимаемого входным модулем 1314, чтобы сформировать сигнал в основной полосе.
Следует заметить, что, как показано пунктирной линией 1341 на фиг. 75, прикладной процессор 1331 и видеопроцессор 1332 могут интегрироваться друг с другом, чтобы образовывать единый процессор.
Внешняя память 1312 является модулем, обеспечиваемым вне видеомодуля 1311 и имеющим запоминающее устройство, используемое видеомодулем 1311. Хотя запоминающее устройство внешней памяти 1312 может быть реализовано любой физической структурой, поскольку обычно оно часто используется для хранение большого объема данных, таких как данные изображения блока кадра, желательно реализовывать запоминающее устройство в виде полупроводниковой памяти, которая сравнительно менее дорогая и имеет большой объем, как, например, DRAM (Dynamic Random Access Memory, динамическая память со случайным доступом).
Модуль 1313 управления электропитанием управляет и контролирует электропитание видеомодуля 1311 (составляющих элементов внутри видеомодуля 1311).
Входной модуль 1314 является модулем, обеспечивающим входную функцию (схемы на передающем/приемном конце на стороне антенны) для радиочастотного модуля 1334. Как показано на фиг. 75, входной модуль 1314 имеет, например, блок 1351 антенны, фильтр 1352 и блок 1353 усиления.
Блок 1351 антенны имеет антенну для передачи и приема беспроводного сигнала и его периферийную конфигурацию. Блок 1351 антенны передает сигнал, поданный на него от блока 1353 усиления в качестве беспроводного сигнала, и подает принятый беспроводной сигнал в виде электрического сигнала (радиочастотного сигнала) на фильтр 1352. Фильтр 1352 выполняет процесс фильтрации и т.п. для радиочастотного сигнала, принимаемого через блок 1351 антенны, и подает радиочастотный сигнал после обработки на радиочастотный модуль 1334. Блок 1353 усиления усиливает радиочастотный сигнал, поданный на него от радиочастотного модуля 1334, и подает усиленный радиочастотный сигнал на блок 1351 антенны.
Модуль 1321 связанности является модулем, обладающим функциями, относящимися к соединению с внешней средой. Физическая конфигурация модуля 1321 связанности является произвольной. Например, модуль 1321 связанности содержит элементы, обладающие функцией связи, соответствующей стандарту, отличному от стандарта связи, с которым совместим широкополосный модем 1333, внешний терминал ввода/вывода и т.п.
Например, модуль 1321 связанности может быть модулем с функцией связи, совместимой со стандартом беспроводной связи, таким как Bluetooth (зарегистрированная торговая марка), IEEE 802.11 (например, Wi-Fi (Wireless Fidelity, зарегистрированная торговая марка)), связь в ближнем поле (Near Field Communication, NFC) или передача данных в инфракрасном диапазоне (InfraRed Data Association, IrDA), антенной, через которую сигнал, соответствующий стандарту, передается/принимается и т.п. Дополнительно, например, модуль 1321 связанности может содержать модуль, обладающий функцией связи, совместимой со стандартом проводной связи, таким как Universal Serial Bus (USB) или High-Definition Multimedia Interface (HDMI, зарегистрированная торговая марка) и терминал, совместимый с этим стандартом и т.п. Дополнительно, например, модуль 1321 связанности может содержать другие функции передачи данных (сигнала) и т.п., такие как аналоговый терминал ввода-вывода и т.п.
Следует заметить, что модуль 1321 связанности может содержать устройство назначения данных (сигнала) для передачи. Например, модуль 1321 связанности может иметь дисковод для считывания и записи данных на носителе для записи, таком как магнитный диск, оптический диск, магнито-оптический диск, полупроводниковая память и т.п. (включая не только дисковод съемного носителя, но также и жесткий диск, твердотельный дисковод SSD (Solid State Drive, SSD), сетевое устройство хранения данных (Network Attached Storage, NAS) и т.п.) Дополнительно, модуль 1321 связанности может иметь выходное устройство (монитор, громкоговоритель и т.п.) для изображения или аудио.
Камера 1322 является модулем, имеющим функцию съемки изображения объекта, чтобы получить данные изображения, связанные с объектом съемки изображения. Данные изображения, полученные при съемке изображения камерой 1322, например, подаются на видеопроцессор 1332 и кодируются им.
Датчик 1323 является модулем, имеющим функцию произвольного датчика, такого как, например, аудиодатчик, ультразвуковой датчик, оптический датчик, датчик освещенности, инфракрасный датчик, датчик изображения, датчик вращения, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, датчик магнитной идентификации, датчик удара, температурный датчик и т.п. Данные, обнаруженные датчиком 1323, например, подаются на прикладной процессор 1331 и используются приложением и т.п.
Структура, представленная в предшествующем описании как модуль, может быть реализована как процессор или, напротив, структура, описанная как процессор, может быть реализована как модуль.
В видеокомплекте 1300, имеющем такую конфигурацию, как описано выше, представленная технология может применяться к видеопроцессору 1332, как описано здесь далее. Соответственно, видекомплект 1300 может быть реализован как комплект, к которому применяется представленная технология.
Пример конфигурации видеопроцессора
На фиг. 76 показан пример схемной конфигурации видеопроцессора 1332 (фиг. 75), к которому применяется представленная технология.
В случае примера, показанного на фиг. 76, видеопроцессор 1332 имеет функцию приема в качестве его входного сигнала видеосигнала и аудиосигнала и кодирования видеосигнала и аудиосигнала в соответствии с заданными способом и функцией декодирования кодированных видеоданных и аудиоданных и воспроизведения и вывода видеосигнала и аудиосигнала.
Как показано на фиг. 76, видеопроцессор 1332 имеет входной блок 1401 видеообработки, первый блок 1402 масштабирования изображения, второй блок 1403 масштабирования, блок 1404 процесса вывода видео, память 1405 кадров и блок 1406 управления памятью. Видеопроцессор 1332 имеет механизм 1407 кодирования/декодирования, ES-видеобуферы 1408А и 1408В элементарного видеопотока (Elementary Stream, ES) и ES-аудиобуферы 1409A и 1409B. Дополнительно, видеопроцессор 1332 имеет аудиокодер 1410, аудиодекодер 1411, блок 1412 мультиплексирования (Multiplexer, MUX), блок 1413 демультиплексирования (Demultiplexer, DMUX) и потоковый буфер 1414.
Входной блок 1401 видеообработки, например, получает видеосигнал, введенный, например, от модуля 1321 связанности (фиг. 75) и т.п., и преобразует видеосигнал в цифровые данные изображения. Первый блок 1402 масштабирования выполняет преобразование формата, процесс масштабирования изображения и т.п. для данных изображения. Второй блок 1403 масштабирования выполняет процесс масштабирования изображения в ответ на назначение формата при выводе посредством блока 1404 процесса вывода видео и выполняет преобразование формата, процесс масштабирования изображения и т.п. аналогично первому блоку 1402 масштабирования для данных изображения. Блок 1404 процесса вывода видео выполняет преобразование формата, преобразование в аналоговый сигнал и т.п. для данных изображение и выводит результирующий аналоговый сигнал в качестве воспроизводимого видеосигнала на модуль 1321 связанности и т.п.
Память 1405 кадров является памятью данных изображения, которые используются совместно входным блоком 1401 обработки видео, первым блоком 1402 масштабирования изображения, вторым блоком 1403 масштабирования изображения, блоком 1404 процесса вывода видео и механизмом 1407 кодирования/декодирования. Память 1405 кадров реализуется как полупроводниковая память, такая, как, например, DRAM и т.п.
Блок 1406 управления памятью принимает синхронизирующий сигнал от механизма 1407 кодирования/декодирования и управляет доступом к записи/считывания в памяти 1405 кадров в соответствии с графиком доступа к памяти 1405 кадров, записанным в таблице 1406А управления доступом. Таблица 1406А управления доступом обновляется блоком 1406 управления памятью в ответ на процесс, выполняемый механизмом 1407 кодирования/декодирования, первым блоком 1402 масштабирования изображения, вторым блоком 1403 масштабирования изображения и т.п.
Механизм 1407 кодирования/декодирования выполняет процесс кодирования данных изображения и процесс декодирования видеопотока, который является кодированными данными данных изображения. Например, механизм 1407 кодирования/декодирования кодирует данные изображения, считанные из памяти 1405 кадров, и в дальнейшем записывает кодированные данные изображения в качестве видеопотока в ES-видеобуфер 1408А. Дополнительно, например, механизм 1407 кодирования/декодирования последовательно считывает и декодирует видеопоток из ES-видеобуфера 1408B и далее записывает декодированный видеопоток как данные изображения в память 1405 кадров. Механизм 1407 кодирования/декодирования использует память 1405 кадров в качестве рабочей области при таком кодировании и декодировании. Дополнительно, механизм 1407 кодирования/декодирования выводит сигнал синхронизации в блок 1406 управления памятью в тот момент, когда, например, должна запускаться обработка для каждого макроблока..
ES-видеобуфер 1408A буферирует видеопоток, сформированный механизмом 1407 кодирования/декодирования, и подает буферированный видеопоток на блок 1412 мультиплексирования (MUX). ES-видеобуфер 1408B буферирует видеопоток, поданный на него от блока 1413 демультиплексирования (DMUX), и подает буферированный видеопоток на механизм 1407 кодирования/декодирования.
ES-аудиобуфер 1409A буферирует аудиопоток, сформированный аудиокодером 1410, и подает буферированный аудиопоток на блок 1412 мультиплексирования (MUX). ES-аудиобуфер 1409B буферирует аудиопоток, поданный на него от блока 1413 демультиплексирования (DMUX) 1413, и подает буферированный аудиопоток на аудиодекодер 1411.
Аудиокодер 1410, например, подвергает аудиосигнал, введенный на него от модуля 1321 связанности и т.п., например, цифровому преобразованию и кодирует цифровой аудиосигнал в соответствии с заданным способом, таким как, например, аудиоспособ MPEG или способ AC3 (AudioCode с номером 3) и т.п.. Аудиокодер 1410 последовательно записывает аудиопоток, который является кодированными данными, аудиосигнала, в ES-аудиобуфер 1409A. Аудиодекодер 1411 декодирует аудиопоток, поданный на него из ES-аудиобуфера 1409B, выполняет, например, преобразование в аналоговый сигнал и т.п. и подает результирующий аудиосигнал в качестве воспроизведимого аудиосигнала, например, на модуль 1321 связанности и т.п.
Блок 1412 мультиплексирования (MUX) мультиплексирует видеопоток и аудиопоток. Способ мультиплексирования (то есть, формат битового потока, создаваемого при мультиплексировании) является произвольным. Дополнительно, при таком мультиплексировании для блока 1412 мультиплексирования (MUX) также возможно суммировать с битовым потоком заданную информацию заголовка и т.п. Другими словами, блок 1412 мультиплексирования (MUX) может преобразовывать формат потока с помощью мультиплексирования. Например, блок 1412 мультиплексирования (MUX) мультиплексирует видеопоток и аудиопоток, чтобы преобразовать потоки в транспортный поток, являющийся битовым потоком с форматом, пригодным для пересылки. Дополнительно, например, блок 1412 мультиплексирования (MUX) мультиплексирует видеопоток и аудиопоток, чтобы преобразовать их в данные файлового формата для записи (файловые данные).
Блок 1413 демультиплексирования (DMUX) демультиплексирует битовый поток, в котором мультиплексированы видеопоток и аудиопоток, в соответствии со способом, пригодным для мультиплексирования с помощью блока 1412 мультиплексирования (MUX). Короче говоря, блок 1413 демультиплексирования (DMUX) извлекает видеопоток и аудиопоток из битового потока, считанного из буфера 1414 потока (разделяет видеопоток и аудиопоток друг от друга). Короче говоря, блок 1413 демультиплексирования (DMUX) может преобразовывать формат потока с помощью демультиплексирования (преобразование, обратное преобразованию, выполняемому блоком 1412 мультиплексирования (MUX)). Например, блок 1413 демультиплексирования (DMUX) может преобразовать транспортный поток, поданный, например, от модуля 1321 связанности, широкополосного модема 1333 и т.п., в видеопоток и аудиопоток, получая транспортный поток через буфер 1414 потока и демультиплексируя транспортный поток. Дополнительно, например, блок 1413 демультиплексирования (DMUX) может преобразовывать файловые данные, считанные с различных носителей для записи, например, с помощью модуля 1321 связанности, в видеопоток и аудиопоток, получая файловые данные через буфер 1414 потока и демультиплексируя файловые данные.
Буфер 1414 потока буферирует битовый поток. Например, буфер 1414 потока буферирует транспортный поток, поданный на него от блока 1412 мультиплексирования (MUX), и подает буферированный транспортный поток, например, на модуль 1321 связанности, широкополосный модем 1333 и т.п. в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Дополнительно, буфер 1414 потока буферирует файловые данные, поданные от блока 1412 мультиплексирования (MUX), и подает буферированные файловые данные, например, на модуль 1321 связанности и т.п. в заданный момент времени или на основе запроса извне или откуда-либо еще, так что файловые данные записываются на различных носителях для записи данных.
Дополнительно, буфер 1414 потока буферирует транспортный поток, полученный, например, через модуль 1321 связанности, широкополосный модем 1333 и т.п., и подает буферированный транспортный поток на блок 1413 демультиплексирования (DMUX) в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Дополнительно, буфер 1414 потока буферирует файловые данные, считанные с различных носителей для записи данных, например, с помощью модуля 1321 связанности и т.п., и подает буферированные файловые данные, буферированные таким образом на блок 1413 демультиплексирования (DMUX) в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Далее, описывается пример работы видеопроцессора 1332, имеющего такую конфигурацию, как описано выше. Например, видеосигнал, введенный от модуля 1321 связанности и т.п. на видеопроцессор 1332, преобразуется в данные цифрового изображения в соответствии с заданным способом, таким как способ 4:2:2Y/Cb/Cr и т.п. с помощью блока 1401 входного видеопроцессора, и далее записывается в память 1405 кадров. Данные цифрового изображения считываются либо в первый блок 1402 масштабирования изображения, либо во второй блок 1403 масштабирования изображения, подвергаются преобразованию формата по заданному способу, такому как способ 4:2:0Y/Cb/Cr, и процессу масштабирования, и снова записываются в память 1405 кадров. Данные изображения кодируются механизмом 1407 кодирования/декодирования и записываются в виде видеопотока в ES-видеобуфер 1408А.
При этом, аудиосигнал, введенный от модуля 1321 связанности и т.п. в видеопроцессор 1332, кодируется аудиокодером 1410 и записываются в виде аудиопотока в ES-аудиобуфер 1409A.
Видеопоток в ES-видеобуфере 1408A и аудиопоток в ES-аудиобуфере 1409A считываются и мультиплексируются блоком 1412 мультиплексирования (MUX) таким образом, что они преобразуются в транспортный поток, файловые данные и т.п. Транспортный поток, сформированный блоком 1412 мультиплексирования (MUX), буферируется в буфере 1414 потока и затем выводится во внешнюю сеть, например, через модуль 1321 связанности, широкополосный модем 1333 и т.п. При этом файловые данные, сформированные блоком 1412 мультиплексирования (MUX), буферируются буфером 1414 потока и затем выводятся, например, на модуль 1321 связанности и т.п., и затем записываются на различные носители для записи данных.
С другой стороны, транспортный поток, введенный от внешней сети на видеопроцессор 1332, например, через модуль 1321 связанности, широкополосный модем 1333 и т.п., буферируется буфером 1414 потока, и затем демультиплексируется блоком 1413 демультиплексирования (DMUX). Кроме того, после того как файловые данные, которые считываются с различных видов носителей для записи данных, например, в модуле 1321 связанности и т.п. и вводятся на видеопроцессор 1332, буферируются в буфере 1414 потока, файловые данные, буферированные таким образом, демультиплексируются демультиплексором 1413 (DMUX). Короче говоря, транспортный поток или файловые данные, введенные на видеопроцессор 1332, демультиплексируются на видеопоток и аудиопоток блоком 1413 демультиплексирования (DMUX).
Аудиопоток подается через ES-аудиобуфер 1409B на аудиодекодер 1411 и декодируется, чтобы воспроизводить аудиосигнал. При этом, видеопоток последовательно считывается после того, как он записан в ES-видеобуфер 1408B, и декодируется механизмом 1407 кодирования/декодирования и записывается в кадровую память 1405. Декодированные данные изображения подвергаются процессу масштабирования посредством второго блока 1403 масштабирования изображения и записываются в кадровую память 1405. Затем декодированные данные изображения считываются на блок 1404 процесса вывода видео и формат преобразуется в заданный формат, такой как формат 4:2:2Y/Cb/Cr, независимо от того, преобразуются ли данные в аналоговый сигнал и воспроизводятся и выводится ли видеосигнал.
В случае, когда представленная технология должна быть применена к видеопроцессору 1332, выполненному таким образом, как описано выше, представленная технология, соответствующая описанным выше вариантам осуществления, может быть применена к механизму 1407 кодирования/декодирования. В частности, например, механизм 1407 кодирования/декодирования может иметь функцию устройства 100 кодирования изображения, описанного выше, или функцию устройства 200 декодирования изображения или обоих устройств. Это дает возможность получить предпочтительные результаты, аналогичные результатам соответствующих вариантов осуществления, описанных здесь выше со ссылкой на фиг. 1-69.
Следует заметить, что в механизме 1407 кодирования/декодирования представленная технология (а именно, функция устройства 100 кодирования изображения или функция устройства 200 декодирования изображения или обе функции вместе) может быть реализована посредством аппаратного обеспечения, такого как логические схемы, может быть реализована посредством программного обеспечения, такого как встроенная программа, или может также быть реализована посредством того и другого одновременно.
Другие примеры конфигурации видеопроцессора
На фиг. 77 показан другой пример схемной конфигурации видеопроцессора 1332, к которому применяется представленная технология. В случае примера, показанного на фиг. 77, видеопроцессор 1332 имеет функцию кодирования и декодирования видеоданных посредством заданного способа.
Более конкретно, как показано на фиг. 77, видеопроцессор 1332 содержит блок 1511 управления, интерфейс 1512 дисплея, механизм 1513 дисплея, механизм 1514 обработки изображения и внутреннюю память 1515. Видеопроцессор 1332 дополнительно имеет механизм 1516 кодека, интерфейс 1517 памяти, блок 1518 мультиплексирования и демультиплексирования (MUX DMUX), сетевой интерфейс 1519 и видеоинтерфейс 1520.
Блок 1511 управления управляет операциями обрабатывающих блоков внутри видеопроцессора 1332, такими как интерфейс 1512 дисплея, механизм 1513 дисплея, механизм 1514 обработки изображения, механизм 1516 кодека и т.д.
Как показано на фиг. 77, блок 1511 управления содержит, например, основной CPU 1531, суб-CPU 1532 и системный контроллер 1533. Основной CPU 1531 выполняет программу и т.п. для управления операциями обрабатывающих блоков внутри видеопроцессора 1332. Основной CPU 1531 формирует сигналы управления в соответствии с программой и т.п. и подает сигналы управления на обрабатывающие блоки (а именно, управляет работой обрабатывающих блоков). Суб-CPU 1532 играет вспомогательную роль для основного CPU 1531. Например, суб-CPU 1532 выполняет дочерний процесс, подпрограмму и т.п., в дополнение к тем, которые выполняет основной CPU 1531. Системный контроллер 1533 управляет операциями основного CPU 1531 и суб-CPU 1532, такими как назначение программ, которые должны выполняться основным CPU 1531 и суб-CPU 1532, и т.п.
Интерфейс 1512 дисплея выводит данные изображения, например, на модуль 1321 связанности и т.п. под управлением блока 1511 управления. Например, интерфейс 1512 дисплея преобразует данные изображения в форме цифровых данных в аналоговый сигнал и выводит данные изображения в виде воспроизводимого видеосигнала или данные изображения в цифровых данных в неизменном виде на монитор и т.п. модуля 1321 связанности.
Механизм 1513 дисплея выполняет различные процессы преобразования, такие как преобразование формата, преобразование размера, преобразование цветовой области и т.п. для данных изображения под управлением блока 1511 управления таким образом, чтобы данные изображения удовлетворяли техническим требованиям к аппаратному обеспечению и т.п., на котором должно отображаться изображение, представляемое данными изображения.
Механизм 1514 обработки изображения выполняет заданную обработку изображения, такую как процесс фильтрации и т .п. для улучшения качества изображения, для данных изображения под управлением блока 1511 управления.
Внутренняя память 1515 является памятью, обеспечиваемой внутри видеопроцессора 1332, такой, которая используется совместно механизмом 1513 дисплея, механизмом 1514 обработки изображения и механизмом 1516 кодека. Внутренняя память 1515 используется для передачи данных, выполняемой, например, между механизмом 1513 дисплея, механизмом 1514 обработки изображения и механизмом 1516 кодека. Например, внутренняя память 1515 хранит данные, подаваемые от механизма 1513 дисплея, механизма 1514 обработки изображения или механизма 1516 кодека, и, по мере необходимости (например, в ответ на запрос), подает эти данные на механизм 1513 дисплея, механизм 1514 обработки изображения или на механизм 1516 кодека. Хотя внутренняя память 1512 может быть реализована любым запоминающим устройством, поскольку обычно она часто используется для хранения малого объема данных, таких как данные изображения в блоке кадра, параметров и т. п, предпочтительно она реализуется в виде полупроводниковой памяти, имеющей сравнительно малую емкость (например, по сравнению с внешней памятью 1312), но высокое быстродействие и т.п., например, SRAM (Static Random Access Memory, статическая память со случайным доступом).
Механизм 1516 кодека выполняет процесс, связанный с кодированием или декодированием данных изображения. Способ кодирования и декодирования, с которым совместим механизм 1516 кодека, является произвольным и количество таких способов может быть одним или множеством. Например, механизм 1516 кодека может иметь функции кодека, соответствующие множеству способов кодирования и декодирования, и выполнять кодирование данных изображения или декодирование кодированных данных с помощью функции кодека, выбранной из множества функций кодека.
В примерах, показанных на фиг. 77, механизм 1516 кодека, в качестве функциональных блоков обработки, относящейся к кодеку, использует, например, MPEG-2 Video 1541, AVC/H.264 1542, HEVC/H.265 1543, HEVC/H.265 (Scalable) 1544, HEVC/H.265 (Multi-view) 1545 и MPEG-DASH 1551.
MPEG-2 Video 1541 является функциональным блоком для кодирования или декодирования данных изображения в соответствии со способом MPEG-2. AVC/H.264 1542 является функциональным блоком для кодирования или декодирования данных изображения в соответствии со способом AVC. HEVC/H.265 1543 является функциональным блоком для кодирования или декодирования данных изображения в соответствии со способом HEVC. HEVC/H.265 1544 является функциональным блоком для кодирования или декодирования данных изображения в соответствии со способом HEVC. HEVC/H.265 (Multi-view) 1545 является функциональным блоком для мультипроекционного кодирования или мультипроекционного декодирования данных изображения в соответствии со способом HEVC.
MPEG-DASH 1551 является функциональным блоком для передачи и приема данных изображения в соответствии со способом MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP). MPEG-DASH является технологией выполнения потоковой передачи видео, используя HTTP (HyperText Transfer Protocol, протокол гипертекстовой передачи) и имеет одну из характеристик, согласно которой соответствующие кодированные данные выбираются и передаются блоком сегмента из числа многочисленных кодированных данных, которые подготавливаются заранее и отличаются друг от друга разрешающей способностью и т.п. MPEG-DASH 1551 выполняет формирование потока, соответствующего стандарту, управление передачей потока и т.п. и кодирование и декодирование данных изображения, а также используются описанные выше MPEG-2 Video 1541 - HEVC/H.265 (Multi-view) 1545.
Интерфейс 1517 памяти является интерфейсом для внешней памяти 1312. Данные, поданные от механизма 1514 обработки изображения или от механизма 1516 кодека, подаются во внешнюю память 1312 через интерфейс 1517 памяти. При этом данные, считанные из внешней памяти 1312, подаются на видеопроцессор 1332 (механизм 1514 обработки изображения или механизм 1516 кодека) через интерфейс 1517 памяти.
Блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) выполняет мультиплексирование и демультиплексирование различных данных, относящихся к изображению, таких как битовый поток кодированных данных, данные изображения, видеосигнал и т.п. Способ мультиплексирования и демультиплексирования является произвольным. Например, после мультиплексирования блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) может не только собрать множество фрагментов данных в один поток данных, но также добавить к данным заданную информацию заголовка и т.п. Дополнительно, после демультиплексирования блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) может не только разделить единый поток данных на множество фрагментов данных, но может также добавить к разделенным данным заданную информацию заголовка и т.п. Короче говоря, блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) посредством мультиплексирования и демультиплексирования может преобразовывать формат данных. Например, блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) может мультиплексировать битовые потоки, чтобы преобразовать их в транспортный поток, который является битовым потоком с форматом для передачи или с данными формата файла для записи (файловыми данными). Конечно же, блок 1518 мультиплексирования и демультиплексирования (MUX DMUX) посредством демультиплексирования может выполнять обратное преобразование.
Сетевой интерфейс 1519, например, является интерфейсом для широкополосного модема 1333, модуля 1321 связанности и т.п. Видеоинтерфейс 1520, например, является интерфейсом для модуля 1321 связанности, камеры 1322 и т.п.
Далее описывается пример работы такого видеопроцессора 1332, как описано выше. Например, когда транспортный поток принимается от внешней сети через модуль 1321 связанности, широкополосный модем 1333 и т.п., этот транспортный поток подается через сетевой интерфейс 1519 и демультиплексируется блоком 1518 мультиплексирования и демультиплексирования (MUX DMUX) и затем декодируется механизмом 1516 кодека. Данные изображения, полученные посредством декодирования механизмом 1516 кодека, например, подвергаются заданной обработке изображения с помощью механизма 1514 обработки изображения и дополнительно подвергаются заданному преобразованию механизмом 1513 дисплея и подаются, например, на модуль 1321 связанности и т.п. через интерфейс 1512 дисплея, так чтобы результирующее изображение отображалось на мониторе. При этом, например, данные изображения, полученные путем декодирования механизмом 1516 кодека, повторно кодируются механизмом 1516 кодека и мультиплексируются блоком 1518 мультиплексирования и демультиплексирования (MUX DMUX) для преобразования в файловые данные. Файловые данные выводятся, например, на модуль 1321 связанности и т.п. через видеоинтерфейс 1520 и записываются на различных носителях для записи данных.
Дополнительно, файловые данные кодированных данных, которые являются кодированными данными изображения, считанными с носителя записи, который не показан, например, модулем 1321 связанности и т.п., подаются через видеоинтерфейс 1520 и демультиплексируются блоком 1518 мультиплексирования и демультиплексирования (MUX DMUX) и после этого декодируются механизмом 1516 кодека. Данные изображения, полученные посредством декодирования механизмом 1516 кодека, подвергаются заданной обработке изображения с помощью механизма 1514 обработки изображения и дополнительно подвергаются заданному преобразованию механизмом 1513 дисплея и после этого подаются через интерфейс 1512 дисплея, например, на модуль 1321 связанности и т.п., так чтобы результирующее изображение отображалось на мониторе. При этом, например, данные изображения, полученные путем декодирования механизмом 1516 кодека, повторно кодируются механизмом 1516 кодека и мультиплексируются блоком 1518 мультиплексирования и демультиплексирования (MUX DMUX), так чтобы они были преобразованы в транспортный поток. Транспортный поток подается, например, на модуль 1321 связанности, широкополосный модем 1333 и т.п. через сетевой интерфейс 1519 и передается другим устройствам, которые не показаны.
Следует заметить, что передача данных изображения и других данных между обрабатывающими блоками внутри видеопроцессора 1332, выполняется, используя, например, внутреннюю память 1515 или внешнюю память 1312. Дополнительно, модуль 1313 управления электропитанием, управляет, например, подачей электропитания на блок 1511 управления.
В случае, когда представленная технология применяется к видеопроцессору 1332, выполненному таким образом, как описано выше, представленная технология, соответствующая описанным выше вариантам осуществления, может быть применена к механизму 1516 кодека. Короче говоря, например, механизм 1516 кодека может иметь функцию устройства 100 кодирования изображения или функцию устройства 200 декодирования изображения, описанных выше, или обоих устройств. С помощью этой конфигурации видеопроцессор 1332 может получить предпочтительные результаты, аналогичные результатам соответствующих вариантов осуществления, описанных здесь выше со ссылкой на фиг. 1-69.
Следует заметить, что в механизме 1516 кодека представленная технология (а именно, функции устройства 100 кодирования изображения) может быть реализована посредством аппаратного обеспечения, такого как логические схемы, может быть реализована посредством программного обеспечения, такого как встроенная программа и т.п., или может быть реализована посредством того и другого одновременно.
Хотя оба примера конфигурации видеопроцессора 1332 были приведены выше в качестве примеров, конфигурация видеопроцессора 1332 является произвольной и может быть любой другой, отличной от этих двух примеров, описанных выше. Дополнительно, хотя видеопроцессор 1332 может быть выполнен как единая полупроводниковая микросхема, в другом случае, она может быть выполнена как множество полупроводниковых микросхем, может быть, например, трехмерной слоистой LSI, в которой множество полупроводников располагаются слоями друг на друге. Дополнительно, видеопроцессор 1332 может быть реализован в виде множества LSI.
Пример применения в устройстве
Видеокомплект 1300 может быть встроен в различные устройства для обработки данных изображения. Например, видеокомплект 1300 может быть встроен в телевизионное устройство 900 (фиг. 71), сотовый телефон 920 (фиг. 72), устройство 940 записи/считывания (фиг. 73), устройство 960 съемки изображения (фиг. 74) и т.п. Встраивая видеокомплект 1300 в устройство, устройство может получить предпочтительные результаты, аналогичные результатам соответствующих вариантов осуществления, описанных здесь выше со ссылкой на фиг. 1-69.
Следует заметить, что даже часть устройств видеокомплекта 1300, описанного выше, может выполняться как конфигурация, к которой применяется представленная технология, если она содержит видеопроцессор 1332. Например, только видеопроцессор 1332 может быть выполнен как видеопроцессор, к которому применима представленная технология. Дополнительно, например, процессор, указанный пунктирной линией 1341, видеомодуль 1311 и т.п. могут быть выполнены как процессор, модуль и т.п., к которым применима представленная технология, как описано здесь выше. Дополнительно, например, видеомодуль 1311, внешняя память 1312, модуль 1313 управления электропитанием и входной модуль 1314 могут объединяться друг с другом, чтобы также быть реализованными как видеоблок 1361, к которому применяется представленная технология. В случае любой конфигурации могут быть достигнуты предпочтительные результаты, аналогичные результатам соответствующих вариантов осуществления, описанных здесь выше со ссылкой на фиг. 1-69.
Короче говоря, любая конфигурация может быть введена в различные устройства, обрабатывающие данные изображения, аналогично случаю видеокомплекта 1300, если такая конфигурация содержит в себе видеопроцессор 1332. Например, видеопроцессор 1332, процессор, показанный пунктирной линией 1341, видеомодуль 1311 или видеоблок 1361 могут быть встроены в телевизионное устройство 900 (фиг. 71), сотовый телефон 920 (фиг. 72), устройство 940 записи/считывания (фиг. 73), устройство 960 съемки изображения (фиг. 74) и т.п. Таким образом, встраивая любые из конфигураций, в которых в устройствах применяется представленная технология, устройство может получить предпочтительные результаты, аналогичные результатам соответствующих вариантов осуществления, описанных здесь выше со ссылкой на фиг. 1-69, подобно случаю видеокомплекта 1300.
Шестой пример применения: сетевая система
Дополнительно, представленная технология может также применяться к сетевой системе, состоящей из множества устройств. На фиг. 78 показан пример схемной конфигурации сетевой системы, к которой применяется представленная технология.
Сетевая система 1600, показанная на фиг. 78, является системой, в которой различные устройства через сеть между ними передают информацию, связанной с изображением (движущимся изображением). Облачная служба 1601 сетевой системы 1600 является системой, обеспечивающей сервис, связанный с изображением (подвижным изображением) для таких терминалов, как компьютер 1611, аудио-видео (Audio Visual, AV) устройство 1612, портативный терминал 1613 обработки информации, устройство 1614 Интернета вещей (Internet of Things, IoT) и т.п., которые средствами связи соединяются с облачной службой 1601. Например, облачная служба 1601 обеспечивает сервис доставки на терминал контента изображения (движущегося изображения), такой как так называемое видеораспределение (по требованию или в реальном времени). Дополнительно, например, облачная служба 1601 обеспечивает резервный сервис для приема контента изображения (движущегося изображения) от терминала и хранения изображения. Дополнительно, например, облачная служба 1601 обеспечивает сервис для промежуточной передачи контента изображения (движущегося изображения) между терминалами.
Физическая конфигурация облачной службы 1601 является произвольной. Например, облачная служба 1601 может иметь различные виды серверов, такие как сервер для хранения и управления движущимся изображением, сервер для доставки движущегося изображения к терминалу, сервер для получения движущегося изображения от терминала и сервер для управления пользователями (терминалами) и платежами, или произвольную сеть, такую как Интернет, LAN и т.п.
Компьютер 1611 выполняется в виде устройства обработки информации, такого как персональный компьютер, сервер, рабочая станция и т.п. AV-устройство 1612 содержит устройство обработки изображения, такое как, например, телевизионный приемник, рекордер жесткого диска, игровое устройство, камера и т.п. Полртативный терминал 1613 обработки информации содержит портативное устройство обработки информации, такое как персональный компьютер типа ноутбука, планшетный терминал, мобильный телефон, смартфон и т.п. Устройство 1614 IoT содержит произвольный объект, выполняющий обработку, связанную с изображением, такой как машина, потребительская электроника, мебель, прочие вещи, IC-метка, или устройство карточного типа и т.п. Эти терминалы имеют функцию связи и могут соединяться (организовывать сеанс) с облачной службой 1601 и выполняют обмен информацией (а именно, осуществляют связь) с облачной службой 1601. Дополнительно, каждый терминал может осуществлять связь с любым другим терминалом. Связь между терминалами может осуществляться через облачную службу 1601 или может осуществляться без вмешательства облачной службы 1601.
Представленная технология может применяться к такой сетевой системе 1600, как описано выше, так что когда данные изображения (движущегося изображения) передаются между терминалами или между терминалом и облачной службой 1601, данные изображения могут кодироваться и декодироваться, как описано выше в связи с вариантами осуществления. Короче говоря, каждый из терминалов (компьютер 1611 для устройства 1614 IoT) и облачная служба 1601 могут иметь функции устройства 100 кодирования изображения или устройства 200 декодирования изображения, описанные выше. Это делает возможным для терминала облачной службы 1601, который передает данные изображения, ограничивать ухудшение эффективности кодирования.
Прочее
Следует заметить, что различные виды информации, связанной с кодированными данными (битовым потоком), могут мультиплексироваться, передаваться или записываться вместе с кодированными данными или могут передаваться или записываться как разные данные, связанных с кодированными данными, не проходящими мультиплексирование с кодированными данными. Здесь, термин "связывать" означает делать возможным, когда какие-то данные должны быть обработаны, использовать (связывать), например, разные данные. Другими словами, данные, которые связываются друг с другом, могут объединяться в единые данные или могут делаться данными, разделенными друг от друга. Например, информация, связанная с кодированными данными (изображением), может передаваться по пути прохождения передачи, отличному от пути прохождения при передаче кодированных данных (изображения). Дополнительно, например, информация, связанная с кодированными данными (изображением), может записываться на носителе для записи данных, отличном от носителя для записи кодированных данных (изображения) (или в другой области записи того же самого носителя для записи). Следует заметить, что эта "связь" возможна не со всеми данными, а может быть только с частью данных. Например, изображение и информация, соответствующая изображению, могут быть связаны друг с другом в произвольном блоке, таком как множество кадров, один кадр, участок внутри кадра и т.п.
Дополнительно, как здесь описано выше, в представленном описании, такие термины, как "синтезировать", "мультиплексировать", "добавлять", "интегрировать", "содержать", "хранить", "помещать в", "включать в" или "вставлять" и т.п., означают объединение множества элементов в один элемент, так чтобы объединять, например, кодированные данные и метаданные в одни данные, и означают один из способов "связи", описанных выше.
Дополнительно, вариант осуществления настоящей технологии не ограничивается описанным выше вариантом осуществления и может изменяться различными способами, не отступая от сущность представленной технологии.
Например, в представленном описании термин "система" означает набор из множества компонент (устройств, модулей (частей) и т.п.), независимо от того, расположены ли все составляющие элементы в одном и том же корпусе. Соответственно, как множество устройств, располагающихся в разных корпусах и соединенных друг с другом через сеть, так и одно устройство, в котором множество модулей располагаются в одном корпусе, являются системами.
Дополнительно, структура, которая описывается как одно устройство (или один блок обработки), может быть разделена на части, так чтобы быть конфигурированной как множество устройств (или блоков обработки). Напротив, структуры, описанные выше как множество устройств (или блоков обработки), в предшествующем описании могут быть собраны так, чтобы они образовывали одно устройство (или блок обработки). Дополнительно, структура, отличная от них, может естественным образом быть добавлена к конфигурации каждого устройства (или каждого блока обработки). Дополнительно, если структура или операция как единая система является, по существу, одной и той же, то часть структур определенного устройства (или определенного блока обработки) может быть включена в состав структур другого устройства (или другого блока обработки).
Дополнительно, например, представленная технология может принимать конфигурацию, пригодную для облака, вычисление в котором одной функции производится совместно и обрабатывается в кооперации множеством устройств, действующих через сеть.
Дополнительно, например, описанная выше программа может выполняться любым устройством. В этом случае устройство может быть выполнено с возможностью наличия у него необходимых функций (функциональных блоков и т.п.) и может собирать необходимую информацию.
Дополнительно, например, этапы, описанные в связи с блок-схемами последовательности выполнения операций, описанными выше, могут выполняться одним устройством и, дополнительно, могут осуществляться совместно и выполняться множеством устройств. Дополнительно, в случае, когда множество в одном этапе содержится множество процессов, множество процессов, содержащихся в одном этапе, могут выполняться одним устройством, а также могут осуществляться совместно и выполняться множеством устройств.
Следует заметить, что программа, которая должна выполняться компьютером, может быть типа, при котором процессы на этапах, посредством которых описывается программа, выполняются последовательно во времени в порядке, описанном в настоящем описании, или быть типа, при котором процессы выполняются параллельно или выполняются индивидуально в необходимые моменты времени, такие, в которые вызывается процесс. Дополнительно, процессы на этапах, посредством которых выполняется программа, могут выполняться параллельно процессам другой программы или могут выполняться в сочетании с процессами других устройств.
Следует заметить, что множество представленных технологий, описанных в представленном описании, может реализовываться индивидуально, самостоятельно и независимо, если при этом не возникает конфликт. Естественно, также возможно выполнять произвольное множество представленных технологий в сочетании друг с другом. Например, также возможно выполнять представленную технологию, показанную в описании любого варианта осуществления, в сочетании с представленной технологией, показанной в описании другого варианта осуществления. Кроме того, возможно выполнять любую из представленных технологий, описанных здесь выше, в сочетании с другой технологией, которая здесь не описывается.
Следует заметить, что для представленной технологии также возможно иметь следующие конфигурации.
(1)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью, когда должно пропускаться первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропуска вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
(2)
Устройство обработки изображения по п. (1), в котором
блок управления, который, когда первая информация, связанная с пропуском первичного преобразования указывает пропуск первичного преобразования, осуществляет пропуск первичного преобразования и вторичного преобразования.
(3)
Устройство обработки изображения по п. (1) или (2), в котором
блок управления осуществляет выполнение первичного преобразования, когда первая информация указывает выполнение первичного преобразования, и осуществляет пропуск вторичного преобразования, когда вторая информация, связанная с содержанием вторичного преобразования, указывает пропуск вторичного преобразования.
(4)
Устройство обработки изображения по любому из пп. (1)-(3), в котором
первичное преобразование является ортогональным преобразованием.
(5)
Устройство обработки изображения по любому из пп. (1)-(4), в котором
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(6)
Устройство обработки изображения по любому из пп. (1)-(5), дополнительно содержащее:
блок 132 первичного преобразования, выполненный с возможностью осуществления первичного преобразования под управлением блока управления; и
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования под управлением блока управления.
(7)
Устройство обработки изображения по любому из пп. (1)-(6), дополнительно содержащее:
блок квантования, выполненный с возможностью осуществления квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования блоком вторичного преобразования, или предсказанного остатка; и
блок кодирования, выполненный с возможностью кодирования уровня коэффициента квантования-преобразования, полученного посредством квантования коэффициента вторичного преобразования, или предсказанного остатка блоком квантования.
(8)
Устройство обработки изображения по любому из пп. (1)-(7), в котором
блок управления, который, когда первая информация, связанная с пропуском первичного преобразования указывает пропуск первичного преобразования, осуществляет пропуск первичного преобразования и вторичного преобразования;
блок квантования выполняет квантование предсказанного остатка; и
блок кодирования кодирует уровень коэффициента квантования-преобразования и первую информацию, чтобы сформировать битовый поток, содержащий кодированные данные уровня коэффициента квантования-преобразования и кодированные данные первой информации.
(9)
Устройство обработки изображения по любому из пп. (1)-(8), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(10)
Способ обработки изображения, содержащий этап, на котором:
осуществляют, когда должно быть пропущено первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропуска вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
(11)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью осуществления, когда должно быть пропущено обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, также пропуска обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
(12)
Устройство обработки изображения по п. (11), в котором
блок управления, который, когда первая информация, связанная с пропуском обратного первичного преобразования указывает пропуск обратного первичного преобразования, осуществляет пропуск обратного первичного преобразования и обратного вторичного преобразования.
(13)
Устройство обработки изображения по п. (11) или (12), в котором
блок управления в котором, когда первая информация указывает выполнение обратного первичного преобразования и, помимо этого, вторая информация, связанная с содержанием обратного вторичного преобразования, указывает пропуск вторичного преобразования, обратное вторичное преобразование должно пропускаться, а обратное первичное преобразование должно выполняться.
(14)
Устройство обработки изображения по любому из пп. (11)-(13), в котором
обратное первичное преобразование является обратным ортогональным преобразованием.
(15)
Устройство обработки изображения по любому из пп. (11)-(14), в котором
обратное вторичное преобразование является процессом передачи для
передачи коэффициента вторичного преобразования, полученного декодированием и обратным квантованием кодированных данных в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(16)
Устройство обработки изображения по любому из пп. (11)-(15), дополнительно содержащее:
блок 132 обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования под управлением блока управления; и
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования под управлением блока управления.
(17)
Устройство обработки изображения по любому из пп. (11)-(16), дополнительно содержащее:
блок декодирования, выполненный с возможностью декодирования кодированных данных; и
блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного декодированием кодированных данных блоком декодирования, в котором
блок обратного вторичного преобразования выполняет обратное вторичное преобразование коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования блоком обратного квантования; и
блок обратного первичного преобразования выполняет обратное первичное преобразование коэффициента первичного преобразования, полученного посредством обратного вторичного преобразования коэффициента вторичного преобразования блоком обратного вторичного преобразования.
(18)
Устройство обработки изображения по любому из пп. (11)-(17), в котором
блок декодирования получает кодированные данные уровня коэффициента квантования-преобразования и кодированные данные, относящиеся к пропуску обратного первичного преобразования, из битового потока и декодирует полученные данные; и
блок управления, который, когда первая информация, полученная посредством декодирования блоком декодирования, указывает пропуск первичного преобразования, осуществляет пропуск обратного первичного преобразования и обратного вторичного преобразования.
(19)
Устройство обработки изображения по любому из пп. (11)-(18), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(20)
Способ обработки изображения, содержащий этап, на котором:
когда обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, должно быть пропущено, также осуществляют пропуск обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка.
(21)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью пропуска кодирования первой информации, связанной с пропуском первичного преобразования, когда вторичное преобразование должно выполняться для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(22)
Устройство обработки изображения по п. (21), в котором
блок кодирования пропускает кодирование первой информации, когда вторая информация, относящаяся к содержанию вторичного преобразования, указывает выполнение вторичного преобразования.
(23)
Устройство обработки изображения по п. (21) или (22), в котором
блок кодирования кодирует первую информацию, причем
третья информация, связанная с пропуском первичного преобразования, вторичного преобразования и квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования, указывает выполнение первичного преобразования, вторичного преобразования и квантования;
вторая информация указывает пропуск вторичного преобразования;
четвертая информация, связанная с разрешением пропуска первичного преобразования, указывает разрешение пропуска первичного преобразования; и
размер блока преобразования намеченной цели обработки равен или меньше максимального размера, при котором разрешается пропуск первичного преобразования.
(24)
Устройство обработки изображения по любому из пп. (21)-(23), в котором
первичное преобразование является ортогональным преобразованием.
(25)
Устройство обработки изображения по любому из пп. (21)-(24), в котором
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор,
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(26)
Устройство обработки изображения по любому из пп. (21)-(25), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования;
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования;
блок квантования, выполненный с возможностью осуществления квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования блоком вторичного преобразования, или предсказанного остатка; в котором
блок кодирования кодирует уровень коэффициента квантования-преобразования, полученный посредством квантования коэффициента вторичного преобразования, или предсказанный остаток блоком квантования, чтобы сформировать битовый поток, содержащий кодированные данные уровня коэффициента квантования-преобразования.
(27)
Устройство обработки изображения по любому из пп. (21)-(26), в котором
блок кодирования выполняет кодирование первой информации, причем блок кодирования дополнительно кодирует первую информацию и вводит сформированные кодированные данные первой информации в битовый поток.
(28)
Устройство обработки изображения по любому из пп. (21)-(27), в котором
блок кодирования дополнительно кодирует вторую информацию, связанную с содержанием вторичного преобразования, и вводит сформированные кодированные данные второй информации в битовый поток.
(29)
Устройство обработки изображения по любому из пп. (21)-(28), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(30)
Способ обработки изображения, содержащий этап, на котором:
пропускают кодирование первой информации, связанной с пропуском первичного преобразования, когда вторичное преобразование должно выполняться для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(31)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, когда должно быть выполнено обратное вторичное преобразование, представляющее преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(32)
Устройство обработки изображения по п. (31), в котором
блок декодирования пропускает декодирование кодированных данных первой информации, когда вторая информация, относящаяся к содержанию вторичного преобразования, указывает выполнение обратного вторичного преобразования.
(33)
Устройство обработки изображения по п. (31) или (32), в котором
блок декодирования, когда декодирование кодированных данных первой информации должно быть пропущено, оценивает указание первой информацией выполнения обратного первичного преобразования.
(34)
Устройство обработки изображения по любому из пп. (31)-(33), в котором
блок декодирования декодирует кодированные данные первой информации, причем
третья информация, связанная с пропуском обратного первичного преобразования, обратного вторичного преобразования и обратного квантования уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных, указывает выполнение обратного первичного преобразования, обратного вторичного преобразования и обратного квантования;
вторая информация указывает пропуск обратного вторичного преобразования;
четвертая информация, связанная с разрешением пропуска обратного первичного преобразования, указывает разрешение пропуска обратного первичного преобразования; и
размер блока преобразования намеченной цели обработки равен или меньше максимального размера блока преобразования, при котором разрешается пропуск обратного первичного преобразования.
(35)
Устройство обработки изображения по любому из пп. (31)-(34), в котором
блок декодирования выполнен с возможностью дополнительного декодирования кодированных данных уровня коэффициента квантования-преобразования; и
устройство обработки изображения дополнительно содержит блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного декодированием кодированных данных блоком декодирования.
(36)
Устройство обработки изображения по любому из пп. (31)-(35), дополнительно содержащее:
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования; и
блок обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования.
(37)
Устройство обработки изображения по любому из пп. (31)-(36), в котором
обратное первичное преобразование является обратным ортогональным преобразованием.
(38)
Устройство обработки изображения по любому из пп. (31)-(37), в котором
обратное вторичное преобразование является процессом передачи для
передачи коэффициента вторичного преобразования, полученного декодированием и обратным квантованием кодированных данных в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(39)
Устройство обработки изображения по любому из пп. (31)-(38), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(40)
Способ обработки изображения, содержащий этап, на котором:
пропускают декодирование кодированных данных первой информации, связанной с пропуском обратного первичного преобразования, являющегося преобразованием, обратным первичному преобразованию, когда должно быть выполнено обратное вторичное преобразование, представляющее преобразование, обратное вторичному преобразованию, являющемуся процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(41)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью пропуска кодирования первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должно быть пропущено первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(42)
Устройство обработки изображения по п. (41), в котором
блок кодирования пропускает кодирование первой информации, когда вторая информация, связанная с содержанием вторичного преобразования, указывает пропуск кодирования первичного преобразования.
(43)
Устройство обработки изображения по п. (41) или (42), в котором
блок кодирования кодирует первую информацию, причем
третья информация, связанная с разрешением второй информации, указывает разрешение второй информации;
четвертая информация, связанная с пропуском первичного преобразования, вторичного преобразования и квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования, указывает выполнение первичного преобразования, вторичного преобразования и квантования;
вторая информация указывает пропуск вторичного преобразования; и
общее количество ненулевых коэффициентов в блоке преобразования намеченной цели обработки равно или больше заданного порогового значения.
(44)
Устройство обработки изображения по любому из пп. (41)-(43), в котором
первичное преобразование является ортогональным преобразованием.
(45)
Устройство обработки изображения по любому из пп. (41)-(44), в котором
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(46)
Устройство обработки изображения по любому из пп. (41)-(45), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования;
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования;
блок квантования, выполненный с возможностью осуществления квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования блоком вторичного преобразования, или предсказанного остатка; в котором
блок кодирования кодирует уровень коэффициента квантования-преобразования, полученный посредством квантования коэффициента вторичного преобразования, или предсказанный остаток блоком квантования, чтобы сформировать битовый поток, содержащий кодированные данные уровня коэффициента квантования-преобразования.
(47)
Устройство обработки изображения по любому из пп. (41)-(46), в котором
когда блок кодирования выполняет кодирование первой информации, блок кодирования дополнительно кодирует первую информацию и вводит сформированные кодированные данные первой информации в битовый поток.
(48)
Устройство обработки изображения по любому из пп. (41)-(47), в котором
блок кодирования дополнительно кодирует вторую информацию при кодировании второй информации, связанной с пропуском первичного преобразования, и вводит сформированные кодированные данные второй информации в битовый поток.
(49)
Устройство обработки изображения по любому из пп. (41)-(48), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(50)
Устройство обработки изображения по любому из пп. (41)-(49), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, связанной с пропуском обратного первичного преобразования, основываясь на размере в горизонтальном направлении и размере в вертикальном направлении блока преобразования обратного первичного преобразования и обратного вторичного преобразования.
(51)
Устройство обработки изображения по п. (50), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, когда больший из размеров блока преобразования в горизонтальном направлении и в вертикальном направлении больше заданного значения.
(52)
Устройство обработки изображения по п. (50), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, когда сумма или произведение размеров блока преобразования в горизонтальном направлении и в вертикальном направлении больше заданного значения.
(53)
Способ обработки изображения, содержащий этап, на котором:
пропускают кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должно быть пропущено первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(54)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должно пропускаться обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(55)
Устройство обработки изображения по п. (54), в котором
блок декодирования пропускает декодирование кодированных данных первой информации, когда вторая информация, связанная с пропуском обратного первичного преобразования, указывает пропуск обратного первичного преобразования.
(56)
Устройство обработки изображения по п. (54) или (55), в котором
блок декодирования, когда декодирование кодированных данных первой информации должно быть пропущено, оценивает указание посредством первой информации выполнения обратного первичного преобразования.
(57)
Устройство обработки изображения по любому из пп. (54)-(56), в котором
блок декодирования декодирует кодированные данные первой информации, причем
третья информация, связанная с разрешением обратного вторичного преобразования, указывает разрешение обратного вторичного преобразования;
четвертая информация, связанная с пропуском первичного преобразования, вторичного преобразования и обратного квантования уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных, указывает выполнение первичного преобразования, вторичного преобразования и квантования;
вторая информация указывает выполнение первичного преобразования; и
общее количество ненулевых коэффициентов в блоке преобразования намеченной цели обработки равно или больше заданного порогового значения.
(58)
Устройство обработки изображения по любому из пп. (54)-(57), в котором
блок декодирования выполнен с возможностью дополнительного декодирования кодированных данных уровня коэффициента квантования-преобразования; и
устройство обработки изображения дополнительно содержит блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного декодированием кодированных данных блоком декодирования.
(59)
Устройство обработки изображения по любому из пп. (54)-(58), дополнительно содержащее:
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования; и
блок обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования.
(60)
Устройство обработки изображения по любому из пп. (54)-(59), в котором
обратное первичное преобразование является обратным ортогональным преобразованием.
(61)
Устройство обработки изображения по любому из пп. (54)-(60), в котором
обратное вторичное преобразование является процессом преобразования для
передачи коэффициента вторичного преобразования, полученного декодированием и обратным квантованием кодированных данных в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(62)
Устройство обработки изображения по любому из пп. (54)-(61), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(63)
Устройство обработки изображения по любому из пп. (54)-(62), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, связанной с пропуском обратного первичного преобразования, основываясь на размере в горизонтальном направлении и размере в вертикальном направлении блока преобразования обратного первичного преобразования и обратного вторичного преобразования.
(64)
Устройство обработки изображения по п. (63), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, когда больший из размеров блока преобразования в горизонтальном направлении и в вертикальном направлении больше заданного значения.
(65)
Устройство обработки изображения по п. (63), в котором
блок декодирования пропускает декодирование информации о пропуске обратного первичного преобразования, когда сумма или произведение размеров блока преобразования в горизонтальном направлении и в вертикальном направлении больше заданного значения.
(66)
Способ обработки изображения, содержащий этап, на котором:
пропускают декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, являющегося преобразованием, обратным вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, когда должно пропускаться обратное первичное преобразование, представляющее преобразование, обратное первичному преобразованию, которое является процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения.
(67)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью пропуска кодирования первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, который является разностью между изображением и предсказанным изображением этого изображения, когда в блоках субблоков среднее значение количества ненулевых коэффициентов, содержащихся в блоке преобразования намеченных целей обработки, меньше порогового значения.
(68)
Устройство обработки изображения по п. (67), в котором
блок кодирования определяет общее количество ненулевых коэффициентов, содержащихся в блоке преобразования намеченной цели обработки, и делит общее количество на количество субблоков блока преобразования, чтобы определить среднее значение.
(69)
Устройство обработки изображения по п. (67) или (68), в котором
блок кодирования кодирует первую информацию, причем
вторая информация, связанная с разрешением вторичного преобразования, указывает разрешение вторичного преобразования;
третья информация, связанная с пропуском первичного преобразования, вторичного преобразования и квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования, указывает выполнение первичного преобразования, вторичного преобразования и квантования;
четвертая информация, связанная с пропуском первичного преобразования, указывает выполнение первичного преобразования; и
среднее значение равно или больше порогового значения.
(70)
Устройство обработки изображения по любому из пп. (67)-(69), в котором
первичное преобразование является ортогональным преобразованием.
(71)
Устройство обработки изображения по любому из п. (67) или (70), в котором
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(72)
Устройство обработки изображения по любому из п. (67) или (71), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования; и
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования.
(73)
Устройство обработки изображения по любому из пп. (67)-(72), дополнительно содержащее:
блок квантования, выполненный с возможностью осуществления квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования блоком вторичного преобразования, или предсказанного остатка; в котором
блок кодирования кодирует уровень коэффициента квантования-преобразования, полученный посредством квантования коэффициента вторичного преобразования, или предсказанный остаток блоком квантования, чтобы сформировать битовый поток, содержащий кодированные данные уровня коэффициента квантования-преобразования.
(74)
Устройство обработки изображения по любому из пп. (67)-(73), в котором
когда блок кодирования выполняет кодирование первой информации, блок кодирования дополнительно кодирует первую информацию и вводит сформированные кодированные данные первой информации в битовый поток.
(75)
Устройство обработки изображения по любому из пп. (67)-(74), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(76)
Способ обработки изображения, содержащий этап, на котором:
пропускают кодирование первой информации, связанной с пропуском вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, который является разностью между изображением и предсказанным изображением этого изображения, когда в блоках субблоков среднее значение количества ненулевых коэффициентов, содержащихся в блоке преобразования намеченных целей обработки, меньше порогового значения.
(77)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, когда в блоках субблоков среднее значение количества ненулевых коэффициентов, содержащихся в блоке преобразования намеченных целей обработки, меньше порогового значения.
(78)
Устройство обработки изображения по п. (77), в котором
блок декодирования определяет общее количество ненулевых коэффициентов, содержащихся в блоке преобразования намеченной цели обработки, и делит общее количество на количество субблоков блока преобразования, чтобы определить среднее значение.
(79)
Устройство обработки изображения по п. (77) или (78), в котором
блок декодирования, когда декодирование кодированных данных первой информации должно быть пропущено, оценивает указание посредством первой информации выполнения обратного первичного преобразования.
(80)
Устройство обработки изображения по любому из пп. (77)-(79), в котором
блок декодирования декодирует кодированные данные первой информации, причем
вторая информация, связанная с разрешением вторичного преобразования, указывает разрешение вторичного преобразования;
третья информация, связанная с пропуском первичного преобразования, вторичного преобразования и квантования коэффициента вторичного преобразования, полученного посредством вторичного преобразования, указывает выполнение первичного преобразования, вторичного преобразования и квантования;
четвертая информация, связанная с пропуском первичного преобразования, указывает выполнение первичного преобразования; и
среднее значение равно или больше заданного порогового значения.
(81)
Устройство обработки изображения по любому из пп. (77)-(80), в котором
блок декодирования выполнен с возможностью дополнительного декодирования кодированных данных уровня коэффициента квантования-преобразования; и
устройство обработки изображения дополнительно содержит блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного декодированием кодированных данных блоком декодирования.
(82)
Устройство обработки изображения по любому из пп. (77)-(81), дополнительно содержащее:
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования; и
блок обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования.
(83)
Устройство обработки изображения по любому из пп. (77)-(82), в котором
обратное первичное преобразование является обратным ортогональным преобразованием.
(84)
Устройство обработки изображения по любому из пп. (77)-(83), в котором
обратное вторичное преобразование является процессом преобразования для
передачи коэффициента вторичного преобразования, полученного декодированием и обратным квантованием кодированных данных в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(85)
Устройство обработки изображения по любому из пп. (77)-(84), дополнительно содержащее:
блок предсказания, выполненный с возможностью формирования предсказанного изображения.
(86)
Способ обработки изображения, содержащий этап, на котором:
пропускают декодирование кодированных данных первой информации, связанной с пропуском обратного вторичного преобразования, представляющего преобразование, обратное вторичному преобразованию, которое является процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, когда в блоках субблоков среднее значение количества ненулевых коэффициентов, содержащихся в блоке преобразования намеченных целей обработки, меньше порогового значения.
(87)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью пропуска кодирования первой информации, представляющей содержание первичного преобразования, когда должны быть пропущены первичное преобразование, представляющее процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования для коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, и квантование коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования.
(88)
Устройство обработки изображения по п. (87), в котором
блок кодирования пропускает кодирование первой информации, когда вторая информация, связанная с пропуском первичного преобразования, вторичного преобразования и квантования указывает пропуск первичного преобразования, вторичного преобразования и квантования.
(89)
Устройство обработки изображения по п. (87) или (88), в котором
блок кодирования кодирует первую информацию, причем
третья информация, связанная с разрешением первичного преобразования, указывает разрешение первичного преобразования;
вторая информация указывает выполнение первичного преобразования, вторичного преобразования и квантования;
четвертая информация, связанная с пропуском первичного преобразования, указывает выполнение первичного преобразования; и
общее количество ненулевых коэффициентов в блоке преобразования намеченной цели обработки равно или больше заданного порогового значения.
(90)
Устройство обработки изображения по любому из пп. (87)-(89), в котором
блок кодирования преобразует в двоичную форму и кодирует первую информацию, используя усеченное унарное преобразование в двоичную форму.
(91)
Устройство обработки изображения по любому из пп. (87)-(90), в котором
блок кодирования устанавливает значение первой информации равным значению, соответствующему режиму предсказания изображения.
(92)
Устройство обработки изображения по любому из пп. (87)-(91), в котором
блок кодирования, когда предсказание изображения является межкадровым предсказанием, изменяет значение первой информации на значение, полученное вычитанием значения первой информации из максимального значения первой информации.
(93)
Устройство обработки изображения по любому из пп. (87)-(92), в котором
блок кодирования арифметически кодирует накопитель на вершине преобразованной в двоичную форму первой информации в регулярном режиме, в котором используется контекст, и арифметически кодирует остающиеся накопители в режиме обхода, в котором контекст не используется.
(94)
Устройство обработки изображения по любому из пп. (87)-(93), в котором
первичное преобразование является ортогональным преобразованием, и
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор;
выполнения матричной арифметической операции для одномерного вектора;
выполнения масштабирования одномерного вектора, для которого выполняется матричная арифметическая операция; и
матрицирования масштабированного одномерного вектора.
(95)
Устройство обработки изображения по любому из пп. (87)-(94), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования;
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования;
блок квантования, выполненный с возможностью осуществления квантования коэффициента вторичного преобразования или предсказанного остатка, в котором
блок кодирования кодирует уровень коэффициента квантования-преобразования, полученный посредством квантования коэффициента вторичного преобразования, или предсказанный остаток блоком квантования, чтобы сформировать битовый поток, содержащий кодированные данные уровня коэффициента квантования-преобразования, и
в котором кодирование первой информации должно выполняться и кодированные данные первой информации дополнительно вводятся в битовый поток.
(96)
Способ обработки изображения, содержащий этап, на котором:
пропускают кодирование первой информации, представляющей содержание первичного преобразования, когда должны быть пропущены первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, вторичное преобразование, являющееся процессом преобразования коэффициента первичного преобразования, полученного посредством первичного преобразования предсказанного остатка, и квантование коэффициента вторичного преобразования, полученного посредством вторичного преобразования коэффициента первичного преобразования.
(97)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью пропуска декодирования кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, когда обратное квантование уровня коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициентов квантования-преобразования в коэффициент первичного преобразования, и обратное первичное преобразования для преобразования коэффициента первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, должны быть пропущены.
(98)
Устройство обработки изображения по п. (97), в котором
блок декодирования пропускает декодирование кодированных данных первой информации, когда вторая информация, связанная с пропуском обратного квантования, обратного вторичного преобразования и обратного первичного преобразования указывает пропуск обратного квантования, обратного вторичного преобразования и обратного первичного преобразования.
(99)
Устройство обработки изображения по любому из п. (97) или (98), в котором
блок декодирования, который, когда декодирование кодированных данных первой информации должно быть пропущено, оценивает указание посредством первой информации, что заданное ортогональное преобразование должно использоваться для обратного первичного преобразования в горизонтальном направлении и обратного первичного преобразования в вертикальном направлении.
(100)
Устройство обработки изображения по любому из пп. (97)-(99), в котором
блок декодирования декодирует кодированные данные первой информации, причем
третья информация, связанная с разрешением обратного первичного преобразования, указывает разрешение обратного первичного преобразования;
вторая информация указывает выполнение обратного квантования, обратного вторичного преобразования и обратного первичного преобразования;
четвертая информация, связанная с пропуском обратного первичного преобразования, указывает выполнение обратного первичного преобразования; и
общее количество ненулевых коэффициентов в блоке преобразования намеченной цели обработки равно или больше заданного порогового значения.
(101)
Устройство обработки изображения по любому из пп. (97)-(100), в котором
блок декодирования арифметически декодирует кодированные данные первой информации и преобразует накопитель, полученный посредством арифметического декодирования, в мультизначение, используя усеченное унарное преобразование в двоичную форму, чтобы получить первую информацию.
(102)
Устройство обработки изображения по любому из пп. (97)-(101), в котором
блок декодирования устанавливает значение первой информации, полученной посредством декодирования, равным значению, соответствующему режиму предсказания изображения.
(103)
Устройство обработки изображения по любому из пп. (97)-(102), в котором
блок декодирования, который, когда предсказание изображения является межкадровым предсказанием, изменяет значение первой информации на значение, полученное вычитанием значения первой информации из максимального значения первой информации.
(104)
Устройство обработки изображения по любому из пп. (97)-(103), в котором
блок декодирования арифметически декодирует накопитель на вершине кодированных данных первой информации в регулярном режиме, в котором используется контекст, и арифметически декодирует остающиеся накопители в режиме обхода, в котором контекст не используется.
(105)
Устройство обработки изображения по любому из пп. (97)-(104), в котором
блок декодирования выполнен с возможностью дополнительного декодирования кодированных данных уровня коэффициента квантования-преобразования; и
устройство обработки изображения дополнительно содержит
блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного посредством декодирования кодированных данных блоком декодирования,
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования блоком обратного квантования; и
блок обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования коэффициента первичного преобразования, полученного посредством обратного вторичного преобразования коэффициента вторичного преобразования блоком обратного вторичного преобразования.
(106)
Способ обработки изображения, содержащий этап, на котором:
пропускают декодирование кодированных данных первой информации, связанной с содержанием обратного первичного преобразования, когда должны быть пропущены обратное квантование уровня коэффициентов квантования-преобразования, полученных посредством декодирования кодированных данных, обратное вторичное преобразование для преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициентов квантования-преобразования в коэффициент первичного преобразования, и обратное первичное преобразования для преобразования коэффициента первичного преобразования в предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения.
(111)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью кодирования информации, полученной из данных изображения, и пропуска кодирования информации адаптивного первичного преобразования, указывающей, должно ли выполняться адаптивное первичное преобразование, когда должны быть пропущены процесс преобразования и квантование данных изображения.
(112)
Устройство обработки изображения по п. (111), в котором
блок кодирования пропускает кодирование информации адаптивного первичного преобразования компоненты яркости данных изображения, когда процесс преобразования и квантование компоненты яркости данных изображения должны быть пропущены.
(113)
Устройство обработки изображения по п. (111), в котором
блок кодирования устанавливает для каждого цветового компонента, должна ли кодироваться информация адаптивного первичного преобразования.
(114)
Устройство обработки изображения по любому из пп. (111)-(113), в котором
блок кодирования, когда для данных изображения должно выполняться адаптивное первичное преобразование, дополнительно пропускает кодирование информации о пропуске преобразования, указывающей, должен ли пропускаться процесс преобразования данных изображения.
(115)
Устройство обработки изображения по п. (114), в котором
блок кодирования устанавливает для каждого цветового компонента, должна ли кодироваться информация о пропуске преобразования.
(116)
Устройство обработки изображения по п. (114), в котором
блок кодирования, когда адаптивное первичное преобразование компоненты яркости данных изображения должно быть пропущено, пропускает кодирование информации адаптивного первичного преобразования компоненты яркости данных изображения.
(117)
Способ обработки изображения, содержащий этап, на котором:
кодируют информацию, полученную из данных изображения, и, когда должны быть пропущены процесс преобразования и квантование данных изображения, пропускают кодирование информации адаптивного первичного преобразования, указывающей, должно ли выполняться адаптивное первичное преобразование.
(121)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью декодирования кодированных данных, кодированных из информации, полученной из данных изображения, и, когда должны быть пропущены процесс обратного преобразования и обратное квантование данных, декодированных из кодированных данных, пропуска декодирования информации обратного адаптивного первичного преобразования, указывающей, должно ли выполняться обратное адаптивное первичное преобразование.
(122)
Устройство обработки изображения по п. (121), в котором
блок декодирования пропускает декодирование информации обратного адаптивного первичного преобразования компоненты данных, связанных с компонентом яркости данных изображения, когда процесс обратного преобразования и обратное квантование данных, связанных с компонентом яркости данных изображения должны быть пропущены.
(123)
Устройство обработки изображения по п. (121), в котором
блок декодирования устанавливает для каждого цветового компонента, должна ли декодироваться информация обратного адаптивного первичного преобразования.
(124)
Устройство обработки изображения по любому из пп. (121)-(123), в котором
блок декодирования, когда для данных должно выполняться обратное адаптивное первичное преобразование, дополнительно пропускает декодирование информации о пропуске обратного преобразования, указывающей, должен ли пропускаться процесс обратного преобразования данных.
(125)
Устройство обработки изображения по п. (124), в котором
блок декодирования устанавливает для каждого цветового компонента, должна ли декодироваться информация о пропуске обратного преобразования.
(126)
Устройство обработки изображения по п. (124), в котором
блок декодирования пропускает декодирование информации о пропуске обратного преобразования данных, связанных с компонентом яркости данных изображения, когда должно выполняться обратное адаптивное первичное преобразование данных, связанных с компонентом яркости данных изображения.
(127)
Способ обработки изображения, содержащий этап, на котором:
декодируют кодированные данные, кодированные из информации, полученной из данных изображения, и, когда должны быть пропущены процесс обратного преобразования и обратное квантование данных, декодированных из кодированных данных, пропускают декодирование информации обратного адаптивного первичного преобразования, указывающей, должно ли выполняться обратное адаптивное первичное преобразование.
(131)
Устройство обработки изображения, содержащее:
блок кодирования, выполненный с возможностью, когда должен пропускаться процесс преобразования и квантования данных изображения, кодирования информации, полученной из данных изображения, и пропуска кодирования информации о пропуске преобразования, указывающей, должен ли пропускаться процесс преобразования данных изображения, когда должен пропускаться процесс преобразования и квантования данных изображения.
(132)
Устройство обработки изображения по п. (131), в котором
блок кодирования устанавливает для каждого цветового компонента, должна ли кодироваться информация о пропуске преобразования.
(133)
Устройство обработки изображения по п. (131) или (132), в котором
блок кодирования дополнительно пропускает кодирование информации адаптивного первичного преобразования, указывающей, должно ли выполняться адаптивное первичное преобразование.
(134)
Устройство обработки изображения по п. (133), в котором
блок кодирования пропускает информацию адаптивного первичного преобразования для компонента яркости данных изображения.
(135)
Устройство обработки изображения по п. (133), в котором
блок кодирования устанавливает для каждого цветового компонента, должна ли кодироваться информация адаптивного первичного преобразования.
(136)
Способ обработки изображения, содержащий этап, на котором:
кодируют информацию, полученную из данных изображения, и пропускают кодирование информации о пропуске преобразования, указывающей, должен ли пропускаться процесс преобразования данных изображения, когда должны пропускаться процесс преобразования и квантование данных изображения.
(141)
Устройство обработки изображения, содержащее:
блок декодирования, выполненный с возможностью декодирования кодированных данных, кодированных из информации, полученной из данных изображения, и, когда должны быть пропущены процесс обратного преобразования и обратное квантование данных, декодированных из кодированных данных, пропуска декодирования информации обратного адаптивного первичного преобразования, указывающей, должно ли выполняться обратное адаптивное первичное преобразование.
(142)
Устройство обработки изображения по п. (141), в котором
блок декодирования устанавливает для каждого цветового компонента, должна ли декодироваться информация о пропуске обратного преобразования.
(143)
Устройство обработки изображения по п. (141) или (142), в котором
блок декодирования дополнительно пропускает декодирование информации обратного адаптивного первичного преобразования, указывающей, должно ли выполняться обратное адаптивное первичное преобразование.
(144)
Устройство обработки изображения по п. (143), в котором
блок декодирования пропускает декодирование информации обратного адаптивного первичного преобразования данных, связанных с компонентом яркости данных изображения.
(145)
Устройство обработки изображения по п. (143), в котором
блок декодирования устанавливает для каждого цветового компонента, должна ли декодироваться информация обратного адаптивного первичного преобразования.
(146)
Способ обработки изображения, содержащий этап, на котором:
декодируют кодированные данные, кодированных из информации, полученной из данных изображения, и, когда должны быть пропущены процесс обратного преобразования и обратное квантование данных, декодированных из кодированных данных, пропускают декодирование информации о пропуске обратного преобразования, указывающей, должен ли пропускаться процесс обратного преобразования данных, декодированных из кодированного потока.
Перечень ссылочных позиций
100 Устройство кодирования изображения
101 Блок управления
111 Блок арифметических операций
112 Блок преобразования
113 Блок квантования
114 Блок кодирования
115 Блок обратного квантования
116 Блок обратного преобразования
117 Блок арифметических операций
118 Кадровая память
119 Блок предсказания
131 Переключатель
132 Блок первичного преобразования
133 Блок вторичного преобразования
141 Блок растеризации
142 Блок матричных арифметических операций
143 Блок масштабирования
144 Блок матрицирования
145 Блок выбора вторичного преобразования
200 Устройство декодирования изображения
211 Блок декодирования
212 Блок обратного квантования
213 Блок обратного преобразования
214 Блок арифметических операций
215 Кадровая память
216 Блок предсказания
231 Переключатель
232 Блок обратного вторичного преобразования
233 Блок обратного первичного преобразования
241 Блок растеризации
242 Блок матричных арифметических операций
243 Блок масштабирования
244 Блок матрицирования
245 Блок выбора обратного вторичного преобразования
301 Блок кодирования флага действительности вторичного преобразования
302 Блок кодирования идентификатора вторичного преобразования
303 Блок кодирования флага действительности пропуска преобразования
304 Блок кодирования максимального размера блока пропуска преобразования
305 Блок кодирования флага обхода квантования-преобразования
306 Блок кодирования флага пропуска преобразования
311 Блок декодирования флага действительности вторичного преобразования
312 Блок декодирования идентификатора вторичного преобразования
313 Блок декодирования флага действительности пропуска преобразования
314 Блок декодирования максимального размера блока пропуска преобразования
315 Блок декодирования флага обхода квантования-преобразования
316 Блок декодирования флага пропуска преобразования
321 Блок кодирования флага вторичного преобразования
331 Блок декодирования флага вторичного преобразования
401 Блок кодирования флага действительности первичного преобразования
402 Блок кодирования идентификатора первичного преобразования
411 Блок декодирования флага действительности первичного преобразования
412 Блок декодирования идентификатора первичного преобразования
461 Блок декодирования флага пропуска преобразования