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

Область техники, к которой относится изобретение
Представленное раскрытие относится к устройству и способу обработки изображения и, более конкретно, к устройству и способу обработки изображения, каждый из которых позволяет уменьшить ухудшение эффективности кодирования.
Уровень техники
Ранее было раскрыто, что при кодировании изображения, после того, как выполнено первичное преобразование для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и с целью повышения сжатия энергии (локализации коэффициентов преобразования в низкочастотной области), для каждого субблока в пределах блока преобразования (например, смотрите NPL 1) применяют вторичное преобразование. NPL 1 также раскрывает, что идентификатор вторичного преобразования, указывающий, какое вторичное преобразование должно применяться, сообщается в блоках CU.
Кроме того, раскрывается, что определение, какое вторичное преобразование должно применяться в блоках CU, описанных в NPL 1, основанное на оптимизации отношения скорость-искажение (Rate-Distortion Optimization, RDO) в кодере, приводит в результате к большой вычислительной сложности и поэтому сообщают флаг вторичного преобразования, представляющий, применяется ли вторичное преобразование в блоках блока преобразования, (например, смотрите NPL 2). NPL 2 также раскрывает, что идентификатор вторичного преобразования, представляющий, какое из вторичных преобразований применяют, получают, основываясь на идентификаторе первичного преобразования и режиме внутрикадрового предсказания.
Однако, в обоих способах, описанных в NPL 1 и NPL 2, существует вероятность, что в случае, когда субблок, имеющий редкие ненулевые коэффициенты, вводят в коэффициент вторичного преобразования и применяют вторичное преобразование, коэффициенты переносятся из компонента низкого порядка в компонент высокого порядка в пределах субблока, чтобы уменьшить сжатие энергии, снижая, тем самым, эффективность кодирования.
Кроме того, в совместной экспериментальной модели 1 тестирования (Joint Exploration Test Model 1, JEM 1) раскрывается, что с целью повышения эффективности кодирования в изображении, имеющем высокое разрешение, такое как 4K, максимальный размер блока дерева кодирования (Coding Tree Unit, CTU) расширяется до 256х256 и в ответ на это расширение максимальный размер блока преобразования также расширяется до 64х64 (например, смотрите NPL 1). NPL 1 также раскрывает, что в случае, когда размер блока преобразования равен 64х64, кодер выполняет ограничение полосы пропускания таким образом, что коэффициент преобразования высокочастотного компонента, отличного от низкочастотного компонента 32х32, вверху слева блока преобразования принудительно становится нулевым (округление высокочастотного компонента), и кодирует только ненулевые коэффициенты низкочастотного компонента.
В этом случае, необходимо только, чтобы декодер декодировал только ненулевые коэффициенты низкочастотного компонента и выполнял обратное квантование и обратное преобразование для ненулевого коэффициента. Поэтому, по сравнению со случаем, когда кодер не выполняет ограничение полосы пропускания, вычислительная сложность и затраты на монтаж декодера могут быть уменьшены.
Однако, в случае, когда кодер выполняет пропуск преобразования (Transform Skip), или пропуск преобразования и квантования (в дальнейшем, называемый обходом квантования-преобразования) для блока преобразования 64х64, коэффициент преобразования блока преобразования 64х64 является предсказанным остатком перед преобразованием. Поэтому, когда в этом случае выполняют ограничение полосы пропускания, искажение увеличивается. В результате существует вероятность, что эффективность кодирования снизится. Кроме того, хотя обход квантования-преобразования (Trans/Quant Bypass) выполняется с целью реализации кодирования без потерь, кодирование без потерь не может быть выполнено.
Литература
Непатентная литература
NPL 1
Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens-Rainer Ohm, Jill 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 г.
Раскрытие сущности изобретения
Техническая проблема
Как описано выше, существует вероятность, что эффективность кодирования уменьшится.
Представленное раскрытие было сделано в свете этой ситуации, и предназначено дать возможность снизить уменьшение эффективности кодирования.
Решение проблемы
Устройство обработки изображения, соответствующее первому подходу представленной технологии, является устройством обработки изображения, содержащим блок управления. В случае осуществления пропуска первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, блок управления также осуществляет пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию.
Устройство обработки изображения, соответствующее первому подходу представленной технологии, является устройством обработки изображения, содержащим блок управления. В случае осуществления пропуска, когда обратное первичное преобразование, представляющее обратное преобразование первичного преобразования как процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и обратное вторичное преобразование, представляющее обратное преобразование вторичного преобразования как процесс преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, блок управления также осуществляет пропуск ограничения полосы пропускания коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию, так чтобы выполнение ограничения полосы пропускания для коэффициента первичного преобразования пропускалось.
Устройство обработки изображения, соответствующее второму подходу представленной технологии, является устройством обработки изображения, содержащим блок управления. В случае осуществления пропуска обратного первичного преобразования, представляющего обратное преобразование первичного преобразования как процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и обратного вторичного преобразования, представляющего обратное преобразование вторичного преобразования как процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, блок управления также осуществляет пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию, так чтобы для коэффициента первичного преобразования ограничение полосы пропускания пропускалось.
Способ обработки изображения, соответствующий второму подходу представленной технологии, является способом обработки изображения, содержащим этап управления, выполняемый устройством обработки изображения. В случае осуществления пропуска обратного первичного преобразования, представляющего обратное преобразование первичного преобразования как процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения и обратного вторичного преобразования, представляющего обратное преобразование вторичного преобразования как процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, устройство обработки изображения также осуществляет пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию, так что выполнение ограничения полосы пропускания для коэффициента первичного преобразования пропускается.
Устройство обработки изображения, соответствующее третьему подходу представленной технологии, является устройством обработки изображения, содержащим блок управления. Блок управления для каждого субблока управляет пропуском процесса обратного преобразования для коэффициента преобразования, из которого, выполняя процесс обратного преобразования, получают предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
Способ обработки изображения, соответствующий третьему подходу представленной технологии, является способом обработки изображения. Способ обработки изображения для каждого субблока содержит управление пропуском процесса обратного преобразования для коэффициента преобразования, из которого, выполняя процесс обратного преобразования, получают предсказанный остаток, представляющий разность между изображением и предсказанным изображением этого изображения, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
Устройство обработки изображения, соответствующее четвертому подходу представленной технологии, является устройством обработки изображения, содержащим блок установки, блок растеризации, блок матричного вычисления, блок масштабирования и блок матричного преобразования. Блок установки устанавливает матрицу процесса обратного преобразования коэффициента преобразования, основываясь на контенте процесса обратного преобразования и способе сканирования. Блок растеризации пробразует коэффициент преобразования, из которого получают предсказанный остаток, представляющий разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования в одномерный вектор. Блок матричного вычисления выполняет матричное вычисление для одномерного вектора, используя матрицу, установленную блоком установки. Блок масштабирования определяет масштаб одномерного вектора, для которого выполняется матричное вычисление. Блок матричного преобразования выполняет матричное преобразование масштабированного одномерного вектора.
Способ обработки изображения, соответствующий четвертому подходу существующего способа является способом обработки изображения. Способ обработки изображения содержит этапы, на которых устанавливают матрицу процесса обратного преобразования коэффициента преобразования, основываясь на содержании процесса обратного преобразования и способе сканирования, преобразуют коэффициент преобразования, для которого, выполняя процесс обратного преобразования, получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, в одномерный вектор; используя установленную матрицу, выполняют матричное вычисление для одномерного вектора, масштабируют одномерный вектор, для которого выполняют матричное вычисление, и выполняют матричное преобразование вычисленного одномерного вектора.
В устройстве и способе обработки изображения, соответствующим первому подходу представленной технологии, осуществляют пропуск в случае, когда первичное преобразование, представляющее процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением, и вторичное преобразование, представляющее процесс преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, а также осуществляют пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию.
В устройстве и способе обработки изображения, соответствующих второму подходу представленной технологии, осуществляют пропуск обратного первичного преобразования, представляющего преобразование первичного преобразования как процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением, и обратного вторичного преобразования, представляющего обратное преобразование вторичного преобразования как процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, а также осуществляют пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию, так чтобы для коэффициента первичного преобразования ограничение полосы пропускания также пропускалось.
В устройстве и способе обработки изображения, соответствующих третьему подходу представленной технологии, для каждого субблока, выполняя процесс обратного преобразования, для каждого субблока пропускают процесс обратного преобразования для коэффициента преобразования, из которого предсказанный остаток получают как разность между изображением и предсказанным изображением этого изображения, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
В устройстве и способе обработки изображения, соответствующих четвертому подходу представленной технологии, матрицу процесса обратного преобразования для коэффициента преобразования устанавливают, основываясь на контенте процесса обратного преобразования и способе сканирования, коэффициент преобразования, из которого предсказанный остаток, представляющий разность между изображением и предсказанным изображением этого изображения, получают, выполняя процесс обратного преобразования, преобразуется в одномерный вектор, матричное вычисление для одномерного вектора выполняется, используя установленную матрицу, причем одномерный вектор, для которого выполняется матричное вычисление, масштабируется и для масштабированного одномерного вектора выполняют матричное преобразование.
Полезный результат изобретения
В соответствии с представленным раскрытием, изображение может обрабатываться. В частности, может быть уменьшено снижение эффективности кодирования.
Краткое описание чертежей
Фиг. 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 - блок-схема последовательности выполнения операций примера потока процесса обратного преобразования.
Фиг. 24 - блок-схема примера основной конфигурации блока преобразования.
Фиг. 25 - объяснение ограничения полосы пропускания.
Фиг. 26 - блок-схема примера основной конфигурации блока преобразования.
Фиг. 27 - блок-схема последовательности выполнения операций примера потока процесса преобразования.
Фиг. 28 - блок-схема примера основной конфигурации блока обратного преобразования.
Фиг. 29 - блок-схема последовательности выполнения операций примера потока процесса обратного преобразования.
Фиг. 30 - формы CU, PU и TU.
Фиг. 31 - блок-схема примера основной конфигурации блока преобразования.
Фиг. 32 - пример фильтра ограничения полосы пропускания.
Фиг. 33 - блок-схема последовательности выполнения операций примера потока процесса преобразования.
Фиг. 34 - блок-схема примера основной конфигурации блока обратного преобразования.
Фиг. 35 - блок-схема последовательности выполнения операций примера потока процесса обратного преобразования.
Фиг. 36 - другой пример фильтра ограничения полосы пропускания.
Фиг. 37 - еще один пример фильтра ограничения полосы пропускания.
Фиг. 38 - еще один другой пример фильтра ограничения полосы пропускания.
Фиг. 39 - блок-схема последовательности выполнения операций другого примера потока процесса преобразования.
Фиг. 40 - блок-схема последовательности выполнения операций другого примера потока процесса обратного преобразования.
Фиг. 41 - блок-схема примера основной конфигурации компьютера.
Фиг. 42 - блок-схема примера схематичной конфигурации телевизионного устройства.
Фиг. 43 - блок-схема примера схематичной конфигурации мобильного телефона.
Фиг. 44 - блок-схема примера схематичной конфигурации устройства записи/воспроизведения.
Фиг. 45 - блок-схема примера схематичной конфигурации устройства передачи изображения.
Фиг. 46 - блок-схема примера схематичной конфигурации видеокомплекта.
Фиг. 47 - блок-схема примера схематичной конфигурации видеопроцессора.
Фиг. 48 - блок-схема другого примера схематичной конфигурации видеопроцессора.
Фиг. 49 - блок-схема, изображающая пример схематичной конфигурации сетевой системы.
Осуществление изобретения
Здесь далее будут описаны способы выполнения представленного раскрытия (в дальнейшем именуемые как варианты осуществления). Следует заметить, что описание будет приведено в соответствии со следующим порядком.
1. Первый вариант осуществления (пропуск вторичного преобразования для каждого субблока).
2. Второй вариант осуществления (выбор вторичного преобразования, используя способ сканирования).
3. Третий вариант осуществления (пропуск ограничения полосы пропускания в случае, когда блок квадратный).
4. Четвертый вариант осуществления (пропуск ограничения полосы пропускания в случае, когда блок прямоугольный, квадратный или продолговатый).
5. Пятый вариант осуществления (прочие).
1. Первый вариант осуществления
Деление на блоки
В традиционной системе кодирования изображения, такой как Moving Picture Experts Group 2 (ISO/IEC 13818-2) (MPEG 2) или Advanced Video Coding (здесь далее описанная как AVC) (MPEG 4, Часть 10), процесс кодирования выполняется на блоках обработки, называемых макроблоками. Макроблок является блоком, имеющим единый размер 16х16 пикселей. С другой стороны, в стандарте видеокодирования высокой эффективности (High Efficiency Video Coding, HEVC), процесс кодирования выполняется на блоках обработки (блоках кодирования), называемых блоками кодирования (Coding Unit, CU). CU является блоком переменного размера, который формируется, рекурсивно разделяя наибольший блок кодирования (Largest Coding Unit, LCU) как максимальный блок кодирования. Выбираемый максимальный размер CU равен 64х64 пикселей. Выбираемый минимальный размер CU равен 8х8 пикселей. CU минимального размера называют наименьшим блоком кодирования (Smallest Coding Unit, SCU). Следует заметить, что максимальный размер CU ни в коем случае не ограничивается размером 64х64 пикселей и может быть установлен на больший размер блока, такой как 128х128 пикселей или 256х256 пикселей.
Таким образом, принимается CU, имеющий переменный размер, и, как результат, для HEVC качество изображения и эффективность кодирования могут адаптивно регулироваться в ответ на содержание изображения. Процесс предсказания для предсказанного кодирования выполняется на блоках обработки (блоках предсказания), называемых блоком предсказания (Prediction Unit, PU). PU формируется, разделяя CU с помощью одного из нескольких типов деления. Кроме того, PU состоит из блока обработки (блока предсказания), называемого блоком предсказания (Prediction Block, PB) для каждой яркости (Y) и цветовых различий (Cb, Cr). Кроме того, процесс ортогонального преобразования выполняется на блоках обработки (блоках преобразования), называемых блоками преобразования (Transform Unit, TU). TU формируется, разделяя CU или PU на определенную глубину деления. Кроме того, TU состоит из блока обработки (блок преобразования), называемого блоком преобразования (Transform Block, TB) для каждой яркости (Y) и цветовых различий (Cb, Cr).
Рекурсивное деление на блоки
На фиг. 1 представлен основной принцип рекурсивного деления на блоки в отношении CU согласно стандарту HEVC. Деление CU на блоки выполняется, рекурсивно повторяя деление одного блока на четыре (= 2х2) субблока и, как результат, образуется структура дерева в форме квадродерева. Квадродерево в целом называется блоком дерева кодирования (Coding Tree Block, CTB), а логический блок, соответствующий CTB, называется CTU.
В верхней части фиг. 1 показан C01 как CU, имеющий размер 64х64 пикселей. Глубина деления C01 равна нулю. Этот факт означает, что C01 является маршрутом CTU и соответствует LCU. Размер LCU может быть указан параметром, кодированным в наборе параметров последовательности (Sequence Parameter Set (SPS) или в наборе параметров изображения (Picture Parameter Set, PPS). 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 показаны восемь видов типов деления: 2Nх2N, 2NхN, Nх2N, NхN, 2NхnU, 2NxnD, nLx2N и nRx2N. Из этих типов деления могут быть выбраны два вида типов деления: 2Nх2N и NхN (NхN может быть выбран только в SCU) при внутрикадровом предсказании. С другой стороны, при межкадровом предсказании, в случае, когда подтверждается асимметричное деление при движении, могут быть выбраны все восемь видов типов деления.
Установка TU в CU
TU является обрабатываемым блоком процесса ортогонального преобразования. TU формируется путем деления CU (в случае внутрикадрового CU, блоки PU находятся внутри CU) до определенной глубины деления. На фиг. 3 показана установка TU в CU, изображенный на фиг. 2. На правой стороне фиг. 3 показаны один или более TU, которые могут быть установлены в С02. Например, T01 в качестве TU имеет размер 32х32 пикселей и глубина деления TU для него равна нулю. T02 в качестве TU имеет размер 16х16 пикселей и глубина деления TU для него равна 1. T03 в качестве TU имеет размер 8х8 пикселей и глубина деления TU для него равна 2.
То, какой вид деления блока выполняется с целью установки в изображение блоков, таких как CU, PU и TU, описанных выше, обычно определяется, основываясь на сравнении затрат, влияющих на эффективность кодирования. Кодер, например, сравнивает затраты между одним CU размером 2Мх2М пикселей с четырьмя CU размером МхМ пикселей. Если эффективность кодирования выше, когда установлены четыре CU размером MхM пикселей, то тогда кодер решает, что CU размером 2Mх2M пикселей делится на четыре CU размером MхM пикселей.
Порядок сканирования CU и PU
При кодировании изображения CTB (или LCU), которые устанавливаются в изображение (или срез, мозаичный фрагмент) в форме решетки сканируются в порядке сканирования растра. В пределах одного СТВ, CU сканируется так, чтобы следовать слева направо и сверху вниз на квадродереве. При обработке текущего блока информация, связанная с соседними блоками верхней стороны и левой стороны, используется в качестве входной информации. На фиг. 4 поясняется порядок сканирования CU и PU. Верхний левый участок фиг. 4 изображает C10, C11, C12 и C13 в качестве четырех CU, которые могут быть введены в один CTB. Числовые значения внутри кадров CU представляют порядок обработки. Процесс кодирования выполняется в следующем порядке: С10 в качестве левого верхнего CU, С11 в качестве верхнего правого CU, С12 в качестве нижнего левого CU и С13 в качестве нижнего правого CU. Один или более PU для межкадрового предсказания, которые могут быть установлены в С11 в качестве СU, показаны на правой стороне фиг. 4. Один или более PU для внутрикадрового предсказания, которые могут быть установлены в С12 в качестве СU, показаны на левой стороне фиг. 4. Как показано в виде числовых значений внутри кадров этих PU, PU также сканируются так, чтобы следовать слева направо и с верхней стороны к нижней стороне.
Ниже описание приводится, используя термин "блок" (но не блок в блоке обработки) в качестве конкретной области изображения (картинки) или, в некоторых случаях, обрабатываемого блока "Блок" в этом случае указывает произвольную частичную область внутри картинки и размер, форма, характеристики и т.п. для нее никоим образом не ограничиваются. Слово "блок" в этом случае содержит, например, произвольную частичную область (обрабатываемый блок), такую как TB, TU, PB, PU, SCU, CU, LCU (CTB), субблок, макроблок, мозаичный фрагмент или срез.
Вторичное преобразование
NPL 1 и NPL 2 устанавливают, что после того, как выполняется первичное преобразование предсказанного остатка как разницы между изображением и предсказываемым изображением этого изображения, для цели повышения сжатия энергии (с целью локализации коэффициентов преобразования в низкочастотной области), к каждому из субблоков внутри блока преобразования применяется вторичное преобразование.
Однако, если вторичное преобразование выполняется для предсказанного остатка, имеющего редкие ненулевые коэффициенты, то тогда существует вероятность, что коэффициенты переносятся от компонента низкого порядка к компоненту высокого порядка, чтобы уменьшить сжатие энергии и, таким образом, эффективность кодирования снижается.
На фиг. 5 представлена блок-схема примера основной конфигурации блока вторичного преобразования, выполненного с возможностью осуществления вторичного преобразования. Блок 11 вторичного преобразования, показанный на фиг. 5, является блоком обработки, выполненным с возможностью осуществления, используя способ, описанный в NPL 1 и/или NPL 2, вторичного преобразования коэффициентов первичного преобразования, для которых предсказанный остаток подвергается первичному преобразованию. Как показано на фиг. 5, блок 11 вторичного преобразования имеет блок 21 растеризации, блок 22 матричных вычислений, блок 23 масштабирования и блок 24 матричного преобразования.
1d
1d
Блок 21 растеризации сканирует введенный коэффициент Coeff_P первичного преобразования в соответствии со способом сканирования, указанным идентификатором сканирования scanIdx, чтобы преобразовать коэффициент Coeff_P первичного преобразования в одномерный вектор X. Например, если коэффициент Coeff_P первичного преобразования является матрицей 4х4, имеющей редкие ненулевые коэффициенты, как это выражено нижеследующим выражением (1), и идентификатор сканирования scanIdx указывает горизонтальное сканирование (hor), то тогда блок 21 растеризации преобразует коэффициент Coeff_P первичного преобразования в одномерный вектор X, что выражается нижеследующим выражением (2):
Формула 1
(1)
Формула 2
(2)
1d
1d
1d
Блок 22 матричного вычисления выполняет матричное вычисление, подобное выражению (3), используя матрицу R вторичного преобразования для одномерного вектора X, полученного описанным выше способом. Например, это матричное вычисление выполняется для одномерного вектора X, представленного описанным выше выражением (2), получая, таким образом, одномерный вектор Y, представленный нижеследующим выражением (4).
1d
1d
T
T
Y = R·X(3)
Формула 3
(4)
1d
1d
1d
Блок 23 масштабирования для нормализации нормы выполняет вычисление N битов битового смещения (N – натуральное число) подобно нижеследующему выражению (5) для одномерного вектора Y, полученного способом, описанным выше. Например, это вычисление битового смещения выполняется для одномерного вектора Y, представленного описанным выше выражением (4), получая, таким образом, одномерный вектор Z, выражаемый нижеследующим выражением (6).
1d
1d
Z = (Y) >> N (5)
Формула 4
(6)
1d
1d
Блок 24 матричного преобразования преобразует одномерный вектор Z, полученный описанным выше способом, в матрицу, основываясь на способе сканирования, указанном идентификатором сканирования scanIdx. Эта матрица подается в блок обработки (например, в блок квантования и т.п.) в качестве коэффициента Coeff вторичного преобразования, с помощью которого коэффициент Coeff_P первичного преобразования подвергается вторичному преобразованию на последующем этапе. Например, это матричное преобразование выполняется для одномерного вектора Z, представленного описанным выше выражением (4), получая, таким образом, коэффициент Coeff вторичного преобразования матрицы 4х4, как указывается нижеследующим выражением (7).
Формула 5
(7)
Как описано выше, если коэффициент Coeff_P вторичного преобразования, имеющий редкие ненулевые коэффициенты, подвергается вторичному преобразованию, то существует вероятность, что коэффициенты переносятся от компонента низкого порядка к компоненту высокого порядка, чтобы уменьшить сжатие энергии, и, таким образом, эффективность кодирования снижается.
Следует заметить, что NPL2 раскрывает, что с целью уменьшения объема служебной сигнализации флага вторичного преобразования в случае, когда ненулевой коэффициент внутри блока преобразования равен или ниже заданного порогового значения, вторичное преобразование не будет применяться и сигнал флага игнорируется. Например, когда пороговое значение TH = 2, в случае, когда коэффициент Coeff_P первичного преобразования является матрицей, указанной описанным выше выражением (1), вторичное преобразование пропускается (игнорируется).
Однако, в случае способа, описанного в NPL 1 или NPL 2, блок преобразования подвергается вторичному преобразованию для каждого субблока. Поэтому, например, в случае, когда, как показано на фиг. 6, блок преобразования коэффициента Coeff_P первичного преобразования содержит субблоки 2х2 и каждый из субблоков является матрицей 4х4, как указывается описанным выше выражением (1), поскольку ненулевой коэффициент внутри блока преобразования равен 4, ненулевой коэффициент больше порогового значения TH (= 2) и, таким образом, вторичное преобразование будет применяться. Поскольку, как описано выше, вторичное преобразование выполняется для каждого субблока (каждой матрицы 4х4), коэффициент Coeff вторичного преобразования для каждого из субблоков становится таким, как указывается описанным выше выражением (7). Короче говоря, существует вероятность, что коэффициенты переносятся от компонента низкого порядка к компоненту высокого порядка, чтобы уменьшить сжатие энергии, и, таким образом, эффективность кодирования снижается.
Управление пропуском вторичного преобразования в блоке из субблоков
Затем пропуск процесса преобразования для коэффициентов преобразования, полученных из предсказанного остатка как разности между изображением и предсказанным изображением этого изображения, управляется для каждого субблока, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока. Кроме того, пропуск процесса обратного преобразования для коэффициентов преобразования, с помощью которых получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования, управляется для каждого субблока, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока. Например, в случае, когда ненулевой коэффициент внутри субблока равен или меньше порогового значения, вторичное преобразование или обратное вторичное преобразование будет пропускаться (игнорироваться).
Используя такую процедуру, применение процесса преобразования (процесса обратного преобразования) к коэффициенту преобразования субблока, имеющего редкие ненулевые коэффициенты, может сдерживаться. Поэтому уменьшение сжатия энергии может сдерживаться и может сдерживаться снижение эффективности кодирования.
Устройство кодирования изображения
На фиг. 7 представлена блок-схема примера конфигурации устройства кодирования изображения в качестве иллюстрации способа устройства кодирования изображения, к которому применима представленная технология. Устройство 100 кодирования изображения, показанное на фиг. 7, подобное устройству по стандарту AVC или HEVC, является устройством кодирования предсказанного остатка между изображением и предсказанным изображением этого изображения. Например, технология, предложенная в стандарте HEVC, или технология, предложенная в стандарте Joint Video Exploration Team (JVET), применяется в устройстве 100 кодирования изображения.
Следует заметить, что на фиг. 7 показаны основные составляющие элементы, такие как обрабатываемый блок и поток данных, причем составляющие элементы, показанные на фиг. 7, являются не всеми составляющими элементами. Короче говоря, в устройстве 100 кодирования изображения может присутствовать блок обработки, который не показан в виде блока на фиг. 7, или могут присутствовать процесс или поток данных, не показанные стрелкой или как-либо иначе на фиг. 7.
Как показано на фиг. 7, устройство 100 кодирования изображения имеет блок 101 управления, блок 111 вычислений, блок 112 преобразования, блок 113 квантования, блок 114 кодирования, блок 115 обратного квантования, блок 116 обратного преобразования, блок 117 вычислений, кадровую память 118 и блок 119 предсказания.
Блок 101 управления делит движущееся изображение, введенное в устройство 100 кодирования изображения, на блоки (CU, PU, блок преобразования (transformation block, TB) и т.п.), основываясь на размере блока внешнего или заранее указанного блока обработки. Затем блок 101 управления заставляет изображение I, соответствующее блокам, полученным посредством деления, передаваться на блок 111 вычислений. Кроме того, блок 101 управления определяет параметры кодирования (информация Hinfo заголовка, информация Pinfo режима предсказания, информация Tinfo о преобразовании и т.п.), которые должны быть поданы на блоки, основываясь, например, на оптимизации на основе соотношения скорости-искажения (Rate-Distortion Optimization, RDO). Определенные параметры кодирования подаются на соответствующие блоки.
Информация Hinfo заголовка, например, содержит набор видеопараметров (Video Parameter Set, VPS), набор параметров последовательности (Sequence Parameter Set, SPS), набор параметров картинки (Picture Parameter Set, PPS), заголовок среза (slice header, SH) и т.п. Например, информация Hinfo заголовка содержит информацию, используемую для назначения размера изображения (поперечная ширина PicWidth, продольная ширина PicHeight), битовая глубина (яркость bitDepthY, цветовая разница bitDepthC), максимальное значение MaxCUSize/минимальное значение MinCUSize размера CU, a максимальное значение MaxTBSize/минимальное значение MinTBSize размера блока преобразования, максимальное значение MaxTSSize блока пропуска преобразования (упоминается также как максимальный размер блока пропуска преобразования), флаг включения/выключения ON/OFF инструментов кодирования (упоминается также как флаг подтверждения) и т.п. Содержание информации заголовка Hinfo является произвольным и любая информация, отличная от примеров, приведенных выше, также, конечно, может быть включена в информацию Hinfo заголовка.
Информация Pinfo о режиме предсказания, например, содержит размер PU PUSize, информацию 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) и т.п. В этом случае, размер PU PUSize является информацией, указывающей размер PU (размер блока предсказания) целевого процесса. Информация IPinfo о режиме внутрикадрового предсказания является информацией, связанной с режимом внутрикадрового предсказания блока целевого процесса. Информация MVinfo о режиме предсказания движения является информацией, связанной с предсказанием движения блока целевого процесса. Конечно, содержание информации Pinfo о режиме предсказания является произвольной и любая информация, отличная от примеров, приведенных выше, также может быть включена в эту информацию Pinfo о режиме предсказания.
Информация Tinfo о преобразовании, содержит, например, нижеследующую информацию.
Размер блока TBSize (или, здесь также упоминается как размер блока преобразования с логарифмическим значением log2TBSize для TBSize с основанием 2) является информацией, указывающей размер блока преобразования целевого процесса.
Идентификатор вторичного преобразования (st_idx) является идентификатором, указывающим, какое из преобразований, вторичное преобразование или обратное вторичное преобразование (упоминаемое также как (обратное) вторичное преобразование), применяется к блоку целевых данных (например, обратитесь к стандарту JVET-B1001, 2.5.2 Secondary Transforms. В JEM2 обратитесь также к nsst_idx, rot_idx). Другими словами, идентификатор вторичного преобразования является информацией, связанной с содержанием (обратного) вторичного преобразования в блоке целевых данных.
Например, в случае, когда идентификатор st_idx вторичного преобразования по его значению больше нуля, идентификатор st_idx вторичного преобразования является идентификатором, указывающим матрицу (обратного) вторичного преобразования. Другими словами, в этом случае идентификатор st_idx вторичного преобразования указывает выполнение (обратного) вторичного преобразования. Кроме того, например, в случае, когда идентификатор st_idx вторичного преобразования по своему значению равен нулю, идентификатор вторичного преобразования st_idx указывает пропуск (обратного) вторичного преобразования.
Идентификатор сканирования (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, соответствующего введенному блоку в блоке обработки, способом, раскрытым в выражении (8), чтобы получить предсказанный остаток D, и подает результирующий предсказанный остаток D на блок 112 преобразования.
D = I – P (8)
Блок 112 преобразования выполняет процесс преобразования для предсказанного остатка D, подаваемого на него от блока 111 вычислений, основываясь на информации Tinfo о преобразовании, поданной на него от блока 101 управления, чтобы получить коэффициент Coeff преобразования. Блок 112 преобразования подает коэффициент Coeff преобразования на блок 113 квантования.
Блок 113 квантования масштабирует (квантует) коэффициент Coeff преобразования, поданный на него от блока 112 преобразования, основываясь на информации Tinfo преобразования, поданной на него от блока 101 управления. Короче говоря, блок 113 квантования квантует коэффициент Coeff преобразования, для которого был выполнен процесс преобразования. Блок 113 квантования подает коэффициент преобразования после квантования, полученный посредством этого квантования, то есть, с уровнем на уровне коэффициента квантования-преобразования, на блок 114 кодирования и на блок 115 обратного квантования.
Блок 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), флаг GR2 (gr2_flag), код знака (sign_flag), остаточный уровень ненулевых коэффициентов (coeff_abs_level_remaining) и т.п. (например, обратитесь к документу JCTVC-W1005, 7.3.8.11 Residual Coding syntax). В этом случае, флаг GR1 (gr1_flag) является информацией флага, представляющей, является ли уровень ненулевого коэффициента большим, чем 1. Флаг GR2 (gr2_flag) является информацией флага, представляющей, является ли уровень ненулевого коэффициента большим, чем 2. Код знака (sign_flag) является кодом, представляющим плюс или минус ненулевого коэффициента. Остаточный уровень ненулевого коэффициента (coeff_abs_level_remaining) является информацией, представляющей остаточный уровень ненулевого коэффициента. Конечно, содержание информации Rinfo об остатке является произвольным и любая информация, отличная от примеров, приведенных выше, также может быть включена в информацию Rinfo об остатке.
Блок 114 кодирования, например, мультиплексирует битовые потоки (кодированные данные) кодированных синтаксических элементов и выводит результат мультиплексирования в форме битового потока.
Блок 115 обратного квантования масштабирует (обратно квантует) значения уровня на уровне коэффициента квантования-преобразования, подаваемого на него от блока 113 квантования, основываясь на информации Tinfo о преобразовании, подаваемой на него от блока 101 управления, чтобы получить коэффициент Coeff_IQ преобразования после обратного квантования. Блок 115 обратного квантования подает результирующий коэффициент Coeff_IQ преобразования на блок 116 обратного преобразования. Обратное квантование, которое выполняется блоком 115 обратного квантования, является процессом, обратным квантованию, которое выполняется блоком 113 квантования, и является процессом, подобным обратному квантованию, которое выполняется в устройстве декодирования изображения, которое будет описано позже. Следовательно, обратное квантование будет описано позднее при описании, связанном с устройством декодирования изображения.
Блок 116 обратного преобразования выполняет обратное преобразование для коэффициента Coeff_IQ преобразования, поданного на него от блока 115 обратного квантования, основываясь на информации Tinfo о преобразовании, подаваемой на него от блока 101 управления, чтобы получить предсказанный остаток D'. Блок 116 обратного преобразования подает результирующий предсказанный остаток D' на блок 117 вычислений. Обратное квантование, которое выполняется блоком 116 обратного преобразования, является процессом, обратным преобразованию, который выполняется блоком 112 преобразования, и является процессом, подобным обратному преобразованию, который выполняется в устройстве декодирования изображения, которое будет описано позже. Следовательно, обратное преобразование будет описано позже при описании, связанном с устройством декодирования изображения.
Блок 117 вычислений суммирует друг с другом предсказанный остаток D’, подаваемый на него от блока 116 обратного преобразования, и предсказанное изображение P (предсказанный сигнал), подаваемое на него от блока 119 предсказания и соответствующее предсказанному остатку D’, способом, предтавленным нижеследующим выражением (9), чтобы получить локальное декодированное изображение Rec. Блок 117 вычислений подает результирующее локальное декодированное изображение Rec в кадровую память 118.
Rec = D’ + P (9)
Кадровая память 118 перестраивает декодированное изображение для каждого блока картинки, используя локальное декодированное изображение Rec, подаваемое на него от блока 117 вычислений, и хранит результирующее декодированное изображение в буфере внутри кадровой памяти 118. Кадровая память 118 считывает из буфера декодированное изображение, указанное блоком 119 предсказания в качестве опорного изображения, и подает декодированное изображение блок 119 предсказания. Кроме того, кадровая память 118 может хранить информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании и т.п., имеющие отношение к созданию декодированного изображения в буфере внутри кадровой памяти 118.
Блок 119 предсказания получает декодированное изображение, которое хранится в кадровой памяти 118 и которое указывается информацией PInfo о режиме предсказания в качестве опорного изображения, и создает предсказуемое изображение Р, используя режим предсказания, указанный информацией Pinfo о режиме предсказания. Блок 119 предсказания подает созданное предсказанное изображение Р на блок 111 вычислений и на блок 117 вычислений.
Такое устройство 100 кодирования изображения содержит блок управления. Блок управления управляет пропуском процесса преобразования для коэффициентов преобразования, полученных из предсказанного остатка как разности между изображением и предсказанным изображением этого изображения для каждого субблока, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока. Короче говоря, блок 112 преобразования управляет пропуском процесса преобразования для коэффициента преобразования, полученного из предсказанного остатка как разности между изображением и предсказанным изображением этого изображения для каждого субблока, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
Блок преобразования
На фиг. 8 представлена блок-схема примера основной конфигурации блока 112 преобразования. На фиг. 8 блок 112 преобразования имеет блок 131 первичного преобразования и блок 132 вторичного преобразования.
Блок 131 первичного преобразования выполняет первичное преобразование, такое как ортогональное преобразование, для предсказанного остатка D, подаваемого на него от блока 111 вычислений, чтобы получить коэффициент Coeff_P преобразования после первичного преобразования (упоминаемый также как коэффициент первичного преобразования), соответствующий предсказанному остатку D. То есть, блок 131 первичного преобразования преобразует предсказанный остаток D в коэффициент Coeff_P первичного преобразования. Блок 131 первичного преобразования подает полученный коэффициент Coeff_P первичного преобразования на блок 132 вторичного преобразования (блок 141 растеризации и переключатель 148, которые будут описаны позже).
Блок 132 вторичного преобразования преобразует коэффициент Coeff_P первичного преобразования, подаваемый на него от блока 131 первичного преобразования, в одномерный вектор (упоминаемый также как вектор-строка) и выполняет матричное вычисление для одномерного вектора. Кроме того, блок 132 вторичного преобразования 132 масштабирует одномерный вектор, для которого выполняется матричное вычисление, и производит вторичное преобразование как процесс преобразования для преобразования масштабированного одномерного вектора в матрицу.
Блок 132 вторичного преобразования выполняет вторичное преобразование для коэффициента Coeff_P первичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования как информации, связанной с содержанием вторичного преобразования, и идентификаторе scanIdx сканирования, как информации, связанной со способом сканирования коэффициента преобразования, чтобы получить коэффициент преобразования Coeff после вторичного преобразования (упоминаемый также как коэффициент вторичного преобразования). Короче говоря, блок 132 вторичного преобразования преобразует коэффициент Coeff_P первичного преобразования в коэффициент Coeff вторичного преобразования. Блок 132 вторичного преобразования подает коэффициент Coeff вторичного преобразования на блок 113 квантования.
Следует заметить, что блок 132 вторичного преобразования может также игнорировать (пропускать) вторичное преобразование, чтобы подавать коэффициент Coeff_P первичного преобразования на блок 113 квантования в качестве коэффициента Coeff вторичного преобразования.
Как показано на фиг. 8, блок 132 вторичного преобразования содержит блок 141 растеризации, блок 142 матричного вычисления, блок 143 масштабирования, блок 144 матричного преобразования, блок 145 выбора вторичного преобразования, блок 146 квантования, блок 147 принятия решения о количестве ненулевых элементов и переключатель 148.
1d
1d
Блок 141 растеризации преобразует коэффициент Coeff_P первичного преобразования, поданный на него от блока 131 первичного преобразования, в одномерный вектор X каждого субблока (субблоков 4х4), основываясь на способе сканирования коэффициента преобразования, указанного идентификатором scanIdx сканирования. Блок 141 растеризации подает полученный в результате одномерный вектор X на блок 142 матричного вычисления.
Вид А на фиг. 9 показывает типы сканирования scanType, которые указываются с помощью значений идентификатора scanIdx сканирования Как показано на виде А на фиг. 9, в случае, когда идентификатор scanIdx равен 0, указывается сканирование в наклонном направлении (диагональное сканирование вверх-вправо). В случае, когда идентификатор scanIdx сканирования равен 1, указывается сканирование в горизонтальном направлении (горизонтальное быстрое сканирование). В случае, когда идентификатор scanIdx сканирования равен 2, указывается сканирование в вертикальном направлении (вертикальное быстрое сканирование). Вид В на фиг. 9 показывает порядки сканирования коэффициентов в субблоках 4х4. На видах В-D на фиг. 9 числовые значения, добавленные к соответствующим позициям коэффициентов, представляют порядок, в котором сканируются позиции коэффициентов. Вид В на фиг. 9 показывает пример порядка сканирования при сканировании в горизонтальном направлении (горизонтальное быстрое сканирование). Вид С на фиг. 9 показывает пример порядка сканирования при сканировании в вертикальном направлении (вертикальное быстрое сканирование). Вид D на фиг. 9 показывает пример порядка сканирования при сканировании в наклонном направлении (диагональное сканирование вверх-вправо).
Блок 145 выбора вторичного преобразования считывает матрицу R вторичного преобразования, указанного с помощью идентификатора st_idx вторичного преобразования, из внутренней памяти (не показана) блока 145 выбора вторичного преобразования и подает матрицу R вторичного преобразования, считанную таким образом, в блок 142 матричного вычисления. Например, когда для идентификатора st_idx вторичного преобразования устанавливается определенное значение, блок 145 выбора вторичного преобразования считывает матрицу R 16х16, показанную на фиг. 10, в качестве вторичного преобразования и подает матрицу R 16х16, считанную таким образом, на блок 142 матричного вычисления.
В этой связи, блок 145 выбора вторичного преобразования может выбрать матрицу R для вторичного преобразования в ответ на идентификатор st_idx вторичного преобразования и информацию IPinfo о режиме внутрикадрового предсказания (например, количество режимов предсказания). Кроме того, блок 145 выбора вторичного преобразования может выбрать матрицу R для вторичного преобразования в ответ на информацию MVinfo предсказания движения и идентификатор st_idx вторичного преобразования вместо информации Ipinfo о режиме внутрикадрового предсказания.
1d
1d
Блок 142 матричного вычисления выполняет матричное вычисление, показанное нижеследующим выражением (10), используя одномерный вектор X и матрицу R для вторичного преобразования, и подает полученный в результате одномерный вектор Y на блок 143 масштабирования. В выражении (10) оператор "·" представляет операцию выполнения внутреннего произведения (матричного произведения) между матрицами, а оператор "Т" представляет операцию транспозиции.
1d
1d
T
T
Y = R·X(10)
1d
1d
1d
1d
1d
С целью нормализации нормы сигнала Y (то есть одномерного вектора Y), подаваемого на него от блока 142 матричного вычисления, блок 143 сканирования выполняет вычисление битового смещения для N битов (N - натуральное число), как это выражено нижеследующим выражением (11), чтобы получить сигнал Z (то есть одномерный вектор Z) после битового смещения. Следует заметить, что перед вычислением сдвига для N битов подобно нижеследующему выражению (12), значение 1 << (N – 1) может быть добавлено в качестве смещения к каждому из элементов одномерного вектора Z.
1d
1d
Z = (Y) >> N (11)
1d
1d
Z = (Y + ((N – 1) << 1)·E) >> N (12)
1d
Следует заметить, что в выражении (12) Е является вектором, в котором значение каждого из элементов равно 1х16 с размерностью 1. Например, поскольку матрица R для вторичного преобразования, показанная на фиг. 10, является матрицей, которая подвергается 8-мибитовому масштабированию в блоке 132 масштабирования, значение N, используемое для нормализации, равно 8. В целом, в случае, когда матрица R для вторичного преобразования указывается для N-битового масштабирования, величина битового смещения при нормализации нормы равна N битов. Блок 143 масштабирования подает одномерный вектор Z, полученный способом, описанным выше, на блок 144 матричного преобразования.
1d
Блок 144 матричного преобразования преобразует вектор Z размером 1х16 после нормализации нормы в матрицу 1х4, основываясь на способе сканирования, указанном идентификатором scanIdx сканирования. Блок 144 матричного преобразования подает полученный в результате коэффициент Coeff на блок 146 квантования и переключатель 148.
Блок 146 квантования выполняет обработку (квантование), которая, в основном, подобна процессу, выполняемому блоком 113 квантования. Однако блок 146 квантования принимает в качестве своих входных сигналов коэффициент Coeff_P первичного преобразования, коэффициент Coeff вторичного преобразования (после выполнения процесса от блока 141 растеризации до блока 144 матричного преобразования), параметр квантования qp как часть информации Tinfo о преобразовании и матрицу квантования scaling_matrix. Блок 146 квантования квантует коэффициент Coeff_P первичного преобразования, подаваемый на него от блока 131 первичного преобразования, и коэффициент Coeff вторичного преобразования в качестве коэффициента преобразования, подаваемого на него от блока 144 матричного преобразования, например, подобно выражению (13) и выражению (14), обращаясь к параметру квантования qp и матрице квантования scaling_matrix. Таким образом, блок 146 квантования получает коэффициент первичного преобразования level_P после квантования (упоминается как коэффициент квантования-первичного преобразования) и коэффициент вторичного преобразования level_S после квантования (упоминается как коэффициент квантования-вторичного преобразования).
level_P(i, j) = sign(coeff_P(i, j)) × ((abs(coeff_P((i, j)) × f[qp%6] × (16/w(i, j)) + offsetQ) >> qp/6) >> shift1 (13)
level_S(i, j) = sign(coeff(i, j)) × ((abs(coeff(i, j)) × f[qp%6] × (16/w(i, j)) + offsetQ) >> qp/6) >> shift1 (14)
В выражении (13) и выражении (14) знак (X) оператора является оператором для восстановления положительного или отрицательного знака для входного значения X. Например, если X >= 0, то тогда восстанавливается +1, и если X < 0, то тогда восстанавливается -1. Кроме того, f[] является коэффициентом масштабирования, зависящим от параметра квантования, и принимает значения, подобные следующему выражению (15).
F[qp%6] = [26214, 23302, 20560, 18396, 16384, 16384, 14564] (15)
Кроме того, в выражении (13) и выражении (14) w(i, j) является значением матрицы scaling_matrix квантования, соответствующей позиции (i, j) коэффициента для Coeff(i, j) или (Coeff_P(i, j)). Короче говоря, это значение w(i, j) получают подобно следующему выражению (16). Кроме того, shift1 и offsetQ получают подобно следующему выражению (17) и выражению (18), соответственно.
w(i, j) = scaling_matrix(i, j) (16)
shift1 = 29 – M – B (17)
offsetQ = 28 – M – B (18)
Однако, в выражении (17) и выражении (18) M является логарифмическим значением размера TBSize блока для блока преобразования с 2 в качестве основания и B является битовой глубиной bitDepth входного сигнала.
M = log2(TBSize)
B = bitDepth
Следует заметить, что способ квантования может изменяться в пределах гибкого диапазона, независимо от квантования, представленного в выражении (13) и выражении (14).
Блок 146 квантования подает коэффициент level_P квантования-первичного преобразования и коэффициент level_S квантования-вторичного преобразования способом, описанным выше, на блок 147 принятия решения о количестве ненулевых коэффициентов.
Блок 147 принятия решения о количестве ненулевых коэффициентов принимает в качестве его входных сигналов коэффициент level_P квантования-первичного преобразования и коэффициент level_S квантования-вторичного преобразования для каждого субблока. Блок 147 принятия решения о количестве ненулевых коэффициентов обращается к коэффициенту level_P квантования-первичного преобразования и к коэффициенту level_S квантования-вторичного преобразования, которые подаются от блока 146 квантования, чтобы получить количество ненулевых коэффициентов numSigInSBK_P (упоминается также как количество ненулевых коэффициентов коэффициента квантования-первичного преобразования) и numSingInSBK_S (упоминается также как количество ненулевых коэффициентов коэффициента квантования-вторичного преобразования) внутри субблока в отношении коэффициента level_P квантования-первичного преобразования и коэффициента level_S квантования-вторичного преобразования, например, из последующих выражений (19) и (20). Следует заметить, что в выражении (19) и в выражении (20) (i, j) представляет координаты внутри субблока и i = 0, .., 3, j = 0, .., 3. Кроме того, оператор abs(X) является оператором для восстановления абсолютного значения входного значения X. Используя выражение (19) и выражение (20), можно получить количество коэффициентов преобразования (ненулевых коэффициентов), в каждом из которых значение уровня коэффициента преобразования после квантования больше 0. Следует заметить, что в выражении (19) и в выражении (20) условие нринятия решения (abs(level_X(i, j)) > 0) (X = P, S) для ненулевого коэффициента может быть заменено условием принятия решения (level_X(i, j)! = 0).
numSigInSBK_P = Σ{abs(level_P(i, j)) > 0 ? 1 : 0} (19)
numSigInSBK_S = Σ{abs(level_S(i, j)) > 0 ? 1 : 0} (20)
Блок 147 принятия решения о количестве ненулевых коэффициентов обращается к количеству numSigInSBK_P ненулевых коэффициентов коэффициента квантования-первичного преобразования, количеству numSigInSBK_S ненулевых коэффициентов коэффициента квантования-вторичного преобразования и к заданному пороговому значению TH, чтобы получить флаг StSkipFlag пропуска вторичного преобразования в качестве информации, связанной с пропуском вторичного преобразования, используя следующее выражение (21).
StSkipFlag = (numSigInSBK_P <= numSigInSBK_S && numSigInSBK_P <= TH) ? 1 : 0 (21)
Хотя пороговое значение TH устанавливается, например, равным 2, это не означает, что оно ограничивается 2, и пороговое значение TH может быть установлено равным любому значению в диапазоне от 0 до 16. Кроме того, пороговое значение TH может сообщаться в информации заголовка в качестве заголовка SH VPS/SPS/PPS/slice. Кроме того, пороговое значение TH может быть предварительно оговорено между стороной кодирования (например, устройством 100 кодирования изображения) и стороной декодирования (например, устройством 200 декодирования изображения, которое будет описано позже) и уведомление от стороны кодирования стороне декодирования (передача порогового значения TH от стороны кодирования стороне декодирования) может быть пропущено.
В случае, когда количество numSigInSBK_P ненулевых коэффициентов коэффициента квантования-первичного преобразования равно или меньше количества numSigInSBK_S ненулевых коэффициентов коэффициента квантования-вторичного преобразования, и в случае, когда количество numSigInSBK_P ненулевых коэффициентов коэффициента квантования-первичного преобразования равно или меньше порогового значения TH в выражении (21), значение StSkipFlag вторичного преобразования устанавливается равным 1. То есть, во флаге StSkipFlag пропуска вторичного преобразования указывается пропуск вторичного преобразования. В любом другом случае (numSigInSBK_P > numSigInSBK_S || numSigInSBK_P > TH) значение флага StSkipFlag пропуска вторичного преобразования устанавливается нулевым. То есть, во флаге пропуска StSkipFlag вторичного преобразования указывается выполнение вторичного преобразования.
Следует заметить, что вместо описанного выше выражения (21) могут использоваться следующие выражения (22) или (23). В случае использования выражения (23), процесс квантования для коэффициента вторичного преобразования может быть пропущен.
StSkipFlag = (numSigInSBK_P <= numSigInSBK_S && numSigInSBK_S <= TH) ? 1 : 0 (22)
StSkipFlag = (numSigInSBK_P <= TH) ? 1 : 0 (23)
Блок 147 принятия решения о количестве ненулевых коэффициентов подает полученный таким образом флаг StSkipFlag пропуска вторичного преобразования на переключатель 148.
Переключатель 148 принимает в качестве входных сигналов коэффициент Coeff_P первичного преобразования блока субблоков, коэффициент Coeff вторичного преобразования и флаг StSkipFlag пропуска вторичного преобразования. Переключатель 148 управляет пропуском вторичного преобразования в ответ на подачу на него флага StSkipFlag пропуска вторичного преобразования, подаваемого от блока 147 принятия решения о количестве ненулевых коэффициентов.
Например, в случае, когда значение флага StSkipFlag пропуска вторичного преобразования равно 0, то есть, в случае, когда во флаге StSkipFlag пропуска вторичного преобразования указывается необходимость выполнения вторичного преобразования, переключатель 148 заставляет вторичное преобразование выполняться. То есть, переключатель 148 подает коэффициент Coeff вторичного преобразования, поданный на него от блока 144 матричного преобразования, на блок 113 квантования. Кроме того, например, в случае, когда значение флага StSkipFlag пропуска вторичного преобразования равно 1, то есть, в случае, когда во флаге StSkipFlag пропуска вторичного преобразования указывается необходимость пропуска вторичного преобразования, переключатель 148 заставляет игнорировать вторичное преобразование. То есть, переключатель 148 подает коэффициент Coeff_P первичного преобразования, поданный на него от блока 131 первичного преобразования, в качестве коэффициента Coeff вторичного преобразования на блок 113 квантования.
Следует заметить, что переключатель 148 может также управлять пропуском вторичного преобразования на основе идентификатора st_idx вторичного преобразования. Например, в случае, когда идентификатор st_idx вторичного преобразования равен 0 (указывая пропуск вторичного преобразования), переключатель 148 заставляет игнорировать вторичное преобразование независимо от значения флага StSkipFlag пропуска вторичного преобразования. То есть, переключатель 148 подает коэффициент Coeff_P первичного преобразования, поданный на него от блока 131 первичного преобразования, в качестве коэффициента Coeff вторичного преобразования на блок 113 квантования. Кроме того, например, в случае, когда идентификатор st_idx вторичного преобразования больше 0 (указывая выполнение вторичного преобразования), переключатель 148 обращается к флагу StSkipFlag пропуска вторичного преобразования, тем самым управляя вторичным преобразованием описанным выше способом.
Как описано выше, блок 147 принятия решения о количестве ненулевых коэффициентов устанавливает флаг StSkipFlag пропуска вторичного преобразования, основываясь на количестве ненулевых коэффициентов для каждого субблока. Переключатель 148 управляет пропуском вторичного преобразования, основываясь на флаге StSkipFlag пропуска вторичного преобразования. Применяя такую процедуру, вторичное преобразование для субблока, имеющего редкие ненулевые коэффициенты, может пропускаться. Поэтому уменьшение сжатия энергии может сдерживаться и снижение эффективности кодирования также может сдерживаться.
Последовательность выполнения операций процесса кодирования изображения
Далее, со ссылкой на пример, будет приведено описание потока этапов обработки, которые выполняются устройством 100 кодирования изображения. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 11, будет описана последовательность выполнения операций процесса кодирования изображения.
Когда процесс кодирования изображения начат, на этапе S101 блок 101 управления выполняет процесс кодирования и производит деление на блоки, установку параметров кодирования и т.п.
На этапе S102 блок 119 предсказания выполняет процесс предсказания, создавая, таким образом, предсказанное изображение оптимального режима предсказания, и т.п. Например, в этом процессе предсказания блок 119 предсказания выполняет внутрикадровое предсказание, чтобы создать предсказанное изображение оптимального режима внутрикадрового предсказания и т.п., выполняет межкадровое предсказание для создания предсказанного изображения оптимального режима межкадрового предсказания и т.п., и из них выбирает оптимальный режим предсказания, основываясь на значении функции стоимости и т.п.
На этапе S103 блок 111 вычислений вычисляет разность между введенным изображением и предсказанным изображением оптимального режима, выбранного в процессе предсказания на этапе S102. Короче говоря, блок 111 вычислений создает предсказываемый остаток D между входным изображением и предсказанным изображением. В предсказанном остатке D, полученном описанным выше способом, объем данных уменьшается относительно первоначальных данных изображения. Соответственно, объем данных может быть сжат по сравнению со случаем кодирования неизмененного первоначального изображения.
На этапе S104 блок 112 преобразования выполняет процесс преобразования для предсказанного остатка D, полученного в процессе на этапе S103, чтобы получить коэффициент Coeff преобразования. Подробности процесса на этапе S104 будут описаны позже.
На этапе S105 блок 113 квантования квантует коэффициент Coeff преобразования, полученный в процессе на этапе S104, например, используя параметры квантования, вычисленные блоком 101 управления, чтобы получить уровень для уровня коэффициента квантования-преобразования.
На этапе 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 закончен, процесс кодирования изображения закончен.
Следует заметить, чтоб блоки обработки на этих этапах обработки являются произвольными и могут быть не идентичны друг другу. Поэтому, эти этапы обработки могут должным образом выполняться параллельно с другими этапам обработки или могут выполняться с порядком обработки, замененным на другой порядок обработки.
Последовательность выполнения операций процесса преобразования
Далее, со ссылкой на пример, будет приведено описание последовательности выполнения операций процесса преобразования, выполняемого на этапе S104, показанном на фиг. 11, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 12.
После начала процесса преобразования на этапе S121 блок 131 первичного преобразования выполняет первичное преобразование предсказанного остатка D, основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить коэффициент Coeff_P первичного преобразования.
На этапе S122 блок 132 вторичного преобразования (переключатель 148) принимает решение, применять ли идентификатор st_idx вторичного преобразования для вторичного преобразования (st_idx > 0). В случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (указывая пропуск вторичного преобразования), вторичное преобразование (процесс от этапа S123 до этапа S134) пропускается, чтобы закончить процесс преобразования и процесс возвращается обратно к фиг. 11. То есть, блок 132 вторичного преобразования (переключатель 148) подает коэффициент Coeff_P первичного преобразования в качестве коэффициента Coeff вторичного преобразования на блок 113 квантования.
Кроме того, когда на этапе S122 принято решение, что идентификатор st_idx второго преобразования больше 0 (уазывая выполнение вторичного преобразования), процесс переходит к этапу S123.
На этапе S123 блок 145 выбора вторичного преобразования выбирает матрицу R вторичного преобразования, которая указывается идентификатором st_idx вторичного преобразования.
На этапе S124 блок 132 вторичного преобразования делит блок преобразования цели обработки на субблоки и выбирает необработанный субблок.
1d
На этапе S125 блок 141 растеризации преобразует коэффициент Coeff_P первичного преобразования в одномерный вектор X, основываясь на способе сканирования, указанном идентификатором scanIdx сканирования.
1d
1d
На этапе S126 блок 142 матричного вычисления вычисляет матричное произведение между одномерным вектором X и матрицей R вторичного преобразования, чтобы получить одномерный вектор Y.
1d
1d
На этапе S127 блок 143 масштабирования нормализует норму одномерного вектора Y, чтобы получить одномерный вектор Z.
1d
На этапе S128 блок 144 матричного преобразования преобразует одномерный вектор Z в матрицу 4х4, основываясь на способе масштабирования, указанном идентификатором scanIdx сканирования, чтобы получить коэффициент Coeff вторичного преобразования субблока цели обработки.
На этапе S129 блок 146 квантования квантует коэффициент Coeff_P первичного преобразованияи коэффициент Coeff вторичного преобразования, обращаясь к параметру qp квантования и матрице scaling_matrix квантования, чтобы получить коэффициент level_P квантования-первичного преобразования и коэффициент level_S квантования-вторичного преобразования, соответственно.
На этапе S130 блок 147 принятия решения о количестве ненулевых коэффициентов получает флаг StSkipFlag пропуска вторичного преобразования для каждого субблока, основываясь на коэффициенте level_P квантования-первичного преобразования и коэффициенте level_S квантования-вторичного преобразования и на пороговом значении TH способом, описанным выше.
На этапе S131 переключатель 148 принимает решение, указывает ли флаг StSkipFlag пропуска вторичного преобразования, полученный на этапе S130, пропуск или выполнение вторичного преобразования. В случае, когда флаг StSkipFlag пропуска вторичного преобразования указывает выполнение вторичного преобразования, то есть, значение флага StSkipFlag пропуска вторичного преобразования равно 0, процесс переходит к этапу S132.
На этапе S132 переключатель 148 выводит коэффициент Coeff вторичного преобразования, полученный в процессе на этапе S128 (подает коэффициент Coeff вторичного преобразования на блок 113 квантования). Когда процесс на этапе S132 закончен, процесс переходит к этапу S134.
Кроме того, в случае, когда на этапе S131 флаг StSkipFlag пропуска вторичного преобразования указывает пропуск вторичного преобразования, то есть, значение флага StSkipFlag пропуска вторичного преобразования равно 1, процесс переходит к этапу S133.
На этапе S133 переключатель 148 выводит коэффициент Coeff_P первичного преобразования, полученный в процессе на этапе S121, в качестве коэффициента Coeff вторичного преобразования на блок 113 квантования (подает коэффициент Coeff_P первичного преобразования на блок 113 квантования). Когда процесс на этапе S133 закончен, процесс переходит к этапу S134.
На этапе S134 блок 132 вторичного преобразования принимает решение, все ли субблоки блока преобразования цели обработки были обработаны. В случае, когда решено, что необработанный субблок все еще присутствует, процесс возвращается обратно к этапу S124 обработка на этом этапе и после этапа S124 периодически повторяется. Короче говоря, этапы обработки этапов S124-S134 выполняются для субблоков блока преобразования цели обработки. В случае, когда на этапе S134 решено, что все субблоки были обработаны (были выполнены исполнение или пропуск вторичного преобразования всех субблоков), процесс преобразования заканчивается и процесс возвращается к фиг. 11.
Следует заметить, что при процессе преобразования в пределах осуществимости этапы могут заменяться другими в порядке обработки или содержание обработки может изменяться. Например, в случае, когда на этапе S122 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы R для вторичного преобразования и могут быть выполнены этапы процесса S124-S134.
Выполняя этапы обработки описанным выше способом, в блоке субблоков может выполняться управление пропуском (выполнением) вторичного преобразования. Поэтому, для остаточного сигнала, имеющего редкие ненулевые коэффициенты, уменьшение сжатия энергии может сдерживаться. То есть, можно пресекать снижение эффективности кодирования. Другими словами, увеличение нагрузки кодирования (вторичное преобразование/обратное вторичное преобразование может пресекаться, в то же время пресекая снижение эффективности кодирования.
Устройство декодирования изображения
Далее приводится описание декодирования данных, кодированных способом, описанным выше. На фиг. 13 представлена блок-схема примера конфигурации устройства декодирования изображения в качестве способа устройства обработки изображения, к которому применима представленная технология. Устройство 200 декодирования изображения, показанное на фиг. 13, является устройством декодирования изображения, соответствующим устройству 100 кодирования изображения, показанному на фиг. 7, и декодирует кодированные данные (битовый поток), созданные устройством 100 кодирования изображения, используя способ декодирования, соответствующий способу кодирования устройством 100 кодирования изображения. Например, технология, предложенная в стандарте HEVC, или технология, предложенная в стандарте JVET, применяется в устройстве 200 декодирования изображения.
Следует заметить, что на фиг. 13 показаны основные составляющие элементы, такие как блоки обработки, и потоки данных, причем составляющие элементы, показанные на фиг. 13, являются не всеми составляющими элементами. Короче говоря, в устройстве 200 декодирования изображения может присутствовать блок обработки, который не показан в виде блока на фиг. 13, или может присутствовать процесс или поток данных, не показанные стрелкой или как-либо иначе на фиг. 13.
Как показано на фиг. 13, устройство 200 декодирования изображения имеет блок 211 декодирования, блок 212 обратного квантования, блок 213 обратного преобразования, блок 214 вычислений, кадровую память 215 и блок 216 предсказания. Кодированные данные, создаваемые устройством 100 кодирования изображения и т.п., подаются, например, в виде битового потока и т.п. на устройство 200 декодирования изображения, например, через среду передачи, среду приема и т.д.
Блок 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 квантования (фиг. 7) устройства 100 кодирования изображения. Следует заметить, что блок 115 обратного квантования (фиг. 7) выполняет обратное квантование подобно обратному квантованию блоком 212 обратного квантования. Блок 212 обратного квантования подает результирующий коэффициент Coeff_IQ преобразования на блок 213 обратного преобразования.
Блок 213 обратного преобразования выполняет процесс обратного преобразования для коэффициента Coeff_IQ преобразования, поданного на него от блока 212 обратного квантования, основываясь на информации Tinfo о преобразовании, подаваемой на него от блока 211 декодирования, и получает предсказанный остаток D'. Обратное преобразование является процессом, обратным процессу преобразования, который выполняется блоком 112 преобразования (фиг. 7) устройства 100 кодирования изображения. Следует заметить, что блок 116 обратного преобразования (фиг. 7) выполняет обратное квантование подобное обратному преобразованию, выполняемому блоком 213 обратного преобразования. Подробности обратного преобразования будут описаны позже. Блок 213 обратного преобразования подает результирующий предсказанный остаток D' на блок 214 вычислений.
Блок 214 вычислений, как показано в нижеследующем выражении (24), суммирует предсказанный остаток D’, подаваемый на него от блока 213 обратного преобразования, и предсказанное изображение P (предсказанный сигнал), соответствующее предсказанному остатку D’, друг с другом и получает локальное декодированное изображение Rec. Блок 214 вычислений повторно выстраивает декодированное изображение для каждого блока картинки, используя результирующее локальное декодированное изображение Rec, и выводит полученное в результате декодированное изображение на выход устройства 200 декодирования изображения. Кроме того, блок 214 вычислений также подает локальное декодированное изображение Rec в кадровую память 215.
Rec = D’ + P (24)
Кадровая память 215 перестраивает декодированное изображение для каждого блока картинки, используя локальное декодированное изображение Rec, подаваемое на него от блока 214 вычислений, и хранит декодированное изображение, перестроенное таким образом, в буфере внутри кадровой памяти 215. Кадровая память 215 считывает из буфера декодированное изображение, указанное информацией Pinfo о режиме предсказания блока 216 предсказания в качестве опорного изображения, и подает декодированное изображение, считанное таким образом, на блок 216 предсказания. Кроме того, кадровая память 215 может хранить информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании и т.п., имеющие отношение к созданию декодированного изображения в буфере внутри кадровой памяти 215.
Блок 216 предсказания получает декодированное изображение, которое хранится в кадровой памяти 215, указанное информацией PInfo о режиме предсказания, поданной на него от блока 211 декодирования, в качестве опорного изображения, и создает изображение Р предсказания с помощью способа предсказания, указанного информацией Pinfo о режиме предсказания, используя опорное изображение. Блок 216 вычислений подает изображение Р предсказания, полученное таким образом, на блок 214 вычислений.
Такое устройство 200 декодирования изображения снабжается блоком управления. В блоке управления пропуск процесса обратного преобразования для коэффициента преобразования, с помощью которого получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования, управляется для каждого субблока, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока. Короче говоря, блок 213 обратного преобразования для каждого субблока управляет пропуском процесса обратного преобразования для коэффициента преобразования, с помощью которого получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
Блок обратного преобразования
На фиг. 14 представлена блок-схема примера основной конфигурации блока 213 обратного преобразования, показанного на фиг. 13. На фиг. 14 блок 213 обратного преобразования имеет блок 231 обратного вторичного преобразования и блок 232 обратного первичного преобразования.
Блок 231 обратного вторичного преобразования преобразует коэффициент Coeff_IQ преобразования, поданный от блока 212 обратного квантования, то есть, коэффициент Coeff_IQ преобразования (упоминаемый также как коэффициент вторичного преобразования), который получают, декодируя кодированные данные и обратно квантуя кодированные данные, декодированные таким образом в одномерный вектор. Кроме того, блок 231 обратного вторичного преобразования выполняет матричное вычисление для полученного в результате одномерного вектора, выполняет масштабирование одномерного вектора, для которого выполняется матричное вычисление, и выполняет обратное вторичное преобразование как процесс преобразования для матричного преобразования масштабированного таким образом одномерного вектора.
Блок 231 обратного вторичного преобразования выполняет обратное вторичное преобразование для коэффициента Coeff_IQ вторичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования в качестве информации, связанной с содержанием вторичного преобразования, и на идентификаторе scanIdx сканирования в качестве информации, связанной со способом сканирования для коэффициента преобразования. Кроме того, блок 231 обратного вторичного преобразования получает коэффициент Coeff_IS преобразования после обратного вторичного преобразования (упоминаемый также как коэффициент первичного преобразования). Короче говоря, блок 231 обратного вторичного преобразования преобразует коэффициент Coeff_IQ вторичного преобразования в коэффициент Coeff_IS первичного преобразования. Блок 231 обратного вторичного преобразования подает результирующий коэффициент Coeff_IS первичного преобразования на блок 232 обратного первичного преобразования.
Следует заметить, что блок 231 обратного вторичного преобразования может также игнорировать (пропускать) обратное вторичное преобразование, чтобы подавать коэффициент Coeff_IQ вторичного преобразования в качестве коэффициента Coeff_IS первичного преобразования на блок 232 обратного первичного преобразования. Подробности блока 231 обратного вторичного преобразования будут описаны позже.
Блок 232 обратного первичного преобразования выполняет обратное первичное преобразование, такое как обратное ортогональное преобразование для коэффициента Coeff_IS первичного преобразования, подаваемого на него от блока 231 обратного вторичного преобразования, чтобы получить предсказанный остаток D’. То есть, блок 232 обратного первичного преобразования преобразует коэффициент Coeff_IS первичного преобразования в предсказанный остаток. Блок 232 обратного первичного преобразования подает предсказанный остаток D', полученный таким образом, на блок 214 вычислений.
Далее будет описан блок 231 обратного вторичного преобразования. Как показано на фиг. 14, блок 231 обратного вторичного преобразования содержит блок 241 принятия решения о количестве ненулевых элементов, переключатель 242, блок 243 растеризации, блок 244 матричного вычисления, блок 245 масштабирования, блок 246 матричного преобразования и блок 247 выбора обратного вторичного преобразования.
Блок 241 принятия решения о количестве ненулевых элементов принимает в качестве входного сигнала коэффициент Coeff_IQ вторичного преобразования блока субблоков. Блок 241 принятия решения о количестве ненулевых элементов получает количество numSigInSBK ненулевых коэффициентов (упоминаемых как количество ненулевых коэффициентов коэффициента преобразования) внутри субблока, например, так чтобы действовать в соответствии с нижеследующим выражением (25), обращаясь к коэффициенту Coeff_IQ вторичного преобразования, подаваемому на него от блока 212 обратного квантования. Следует заметить, что в выражении (25) (i, j) коэффициента Coeff_IQ(i, j) вторичного преобразования представляют координаты внутри субблока и i = 0, .., 3, j = 0, .., 3. Кроме того, оператор abs(X) является оператором для восстановления абсолютного значения входного значения X.
numSigInSBK = Σ{abs(Coeff_IQ(i, j)) > 0 ? 1 : 0} (25)
Следует заметить, что количество numSigInSBK ненулевых коэффициентов коэффициента преобразования может быть получено, основываясь на флаге sig_coeff_flag присутствия/отсутствия ненулевых коэффициентов, не обращаясь к коэффициенту Coeff_IQ вторичного преобразования.
Далее, блок 241 принятия решения о количестве ненулевых коэффициентов принимает решение, равно ли или меньше количество numSigInSBK ненулевых коэффициентов коэффициента преобразования, чем заданное пороговое значение TH. Кроме того, блок 241 принятия решения о количестве ненулевых коэффициентов получает флаг StSkipFlag пропуска вторичного преобразования, основываясь на результате решения, как это выражено следующим выражением (26).
StSkipFlag = numSigInSBK <= TH ? 1 : 0 (26)
Пороговое значение TH, например, может быть равно 2 или может быть любым из значений от 0 до 16. Кроме того, пороговое значение TH может сообщаться извне (например, со стороны кодирования, стороны управления и т.п.) в информации заголовка, такой как заголовок SH VPS/SPS/PPS/срез. Кроме того, пороговое значение TH может быть предварительно оговорено между стороной кодирования (например, устройством 100 кодирования изображения) и стороной декодирования (например, устройством 200 декодирования изображения, которое будет описано позже) и уведомление от стороны кодирования стороне декодирования (передача порогового значения TH от стороны кодирования стороне декодирования) может быть пропущено.
В выражении (26), например, в случае, когда значение количества numSigInSBK ненулевых коэффициентов коэффициента преобразования равно или меньше порогового значения TH, значение флага StSkipFlag пропуска вторичного преобразования устанавливается равным 1. Кроме того, например, в случае, когда значение количества numSigInSBK ненулевых коэффициентов коэффициента преобразования больше порогового значения TH, значение флага StSkipFlag пропуска вторичного преобразования устанавливается равным 0.
Блок 241 принятия решения о количестве ненулевых коэффициентов подает полученный таким образом флаг StSkipFlag на переключатель 242.
Переключатель 242 принимает в качестве входных сигналов коэффициент Coeff_IQ вторичного преобразования блока субблоков и флаг StSkipFlag пропуска вторичного преобразования. Переключатель 242 управляет пропуском обратного вторичного преобразования в ответ на подачу на него флага StSkipFlag пропуска вторичного преобразования, подаваемого от блока 241 принятия решения о количестве ненулевых коэффициентов.
Например, в случае, когда значение флага StSkipFlag пропуска вторичного преобразования равно 0, то есть, в случае, когда во флаге StSkipFlag пропуска вторичного преобразования указывается необходимость выполнения вторичного преобразования, переключатель 242 заставляет вторичное преобразование выполняться. То есть, переключатель 242 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования, на блок 243 растеризации. Кроме того, например, в случае, когда значение флага StSkipFlag пропуска вторичного преобразования равно 1, то есть, в случае, когда во флаге StSkipFlag пропуска вторичного преобразования указывается необходимость пропуска вторичного преобразования, переключатель 242 заставляет игнорировать обратное вторичное преобразование. То есть, переключатель 242 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования, в качестве коэффициента Coeff_IS первичного преобразования на блок 232 обратного первичного преобразования.
1d
Блок 243 растеризации преобразует коэффициент Coeff_IQ преобразования, поданный на него от переключателя 242, в одномерный вектор X1d для каждого субблока (субблока 4х4), основываясь на способе сканирования коэффициента преобразования, указанного идентификатором scanIdx сканирования, поданным на него от блока 211 декодирования. Блок 243 растеризации подает полученный в результате одномерный вектор X на блок 244 матричного вычисления.
T
T
T
Блок 247 выбора обратного вторичного преобразования считывает матрицу IR (= R) обратного вторичного преобразования, указанную идентификатором st_idx вторичного преобразования, в качестве информации, связанной с содержанием обратного вторичного преобразования, подаваемой на него от блока 211 декодирования из внутренней памяти (не показана) блока 247 выбора обратного вторичного преобразования. Затем блок 247 обратного вторичного преобразования подает матрицу IR (= R) обратного вторичного преобразования на блок 244 матричного вычисления. Например, когда для идентификатора st_idx вторичного преобразования устанавливается определенное значение, блок 247 выбора обратного вторичного преобразования считывает матрицу R 16х16, показанную на фиг. 10, в качестве матрицы IR обратного вторичного преобразования и подает транспонированную R, считанную таким образом, на блок 244 матричного вычисления.
T
В этой связи, блок 247 выбора обратного вторичного преобразования может, например, выбрать матрицу IR (=R) обратного вторичного преобразования в ответ на идентификатор st_idx вторичного преобразования, поданный на него от блока 211 декодирования, или на информацию IPinfo о режиме внутрикадрового предсказания (например, количество режимов внутрикадрового предсказания). Кроме того, IR обратного преобразования может быть выбрана в ответ на информацию MVinfo предсказания движения и идентификатор st_idx вторичного преобразования вместо информации IPinfo о режиме внутрикадрового предсказания.
1d
1d
1d
T
Блок 244 матричного вычисления выполняет матричное вычисление, как показано в нижеследующем выражении (27), используя одномерный вектор X и матрицу IR(= R) обратного вторичного преобразования для каждого субблока (субблока 4х4), чтобы получить результирующий одномерный вектор Y . Здесь, оператор "·" представляет операцию выполнения внутреннего произведения (матричного произведения) между матрицами, а оператор "Т" представляет операцию транспозиции. Блок 244 матричного вычисления подает полученный одномерный вектор Y на блок 245 масштабирования.
1d
1d
1d
T
T
T
T
Y = IR·X = R·X(27)
1d
1d
С целью нормализации нормы одномерного вектора Y, подаваемого от блока 244 матричного вычисления для каждого субблока (субблока 4х4), блок 245 масштабирования выполняет вычисление битового смещения для N битов (N - натуральное число), как представлено нижеследующим выражением (28), чтобы получить после битового смещения одномерный вектор Z .
1d
1d
Z = (Y) >> N (28)
1d
Следует заметить, что как показано нижеследующим выражением (29), перед вычислением N-битового сдвига значение 1 << (N – 1) может быть добавлено в качестве смещения к каждому из элементов одномерного вектора Z. Следует заметить, что в выражении (29) вектор Е является одномерным вектором, в котором значения всех элементов равны 1.
1d
1d
Z = (Y + ((N – 1) << 1)·E) >> N (29)
T
T
1d
Например, матрица IR (= R) обратного вторичного преобразования является транспозицией матрицы R вторичного преобразования, показанной на фиг. 10, а также является 8-мибитовой масштабированной матрицей. Следовательно, в блоке 245 масштабирования значение N, используемое при нормализации нормы равно 8. В целом, в случае, когда матрица IR (= R) обратного вторичного преобразования является имеющей N-битовое масштабирование, величина битового смещения при нормализации нормы равна N битов. Блок 245 масштабирования подает одномерный вектор Z после нормализации нормы, полученный способом, описанным выше, на блок 246 матричного преобразования.
1d
1d
Блок 246 матричного преобразования принимает в качестве входных сигналов одномерный вектор Z после нормализации нормы и идентификатор scanIdx сканирования для каждого субблока (субблока 4х4). Затем блок 246 матричного преобразования преобразует одномерный вектор Z, поданный от блока 245 масштабирования, в коэффициент Coeff_IS первичного преобразования матрицы 4х4, основываясь на способе сканирования, указанном идентификатором scanIdx сканирования, поданным на него от блока 211 декодирования. Блок 246 матричного преобразования подает результирующий коэффициент Coeff_IS первичного преобразования на блок 232 обратного первичного преобразования.
Как описано выше, блок 241 принятия решения о количестве ненулевых коэффициентов устанавливает флаг StSkipFlag пропуска вторичного преобразования, основываясь на количестве ненулевых коэффициентов для каждого субблока. Кроме того, переключатель 242 управляет пропуском вторичного преобразования, основываясь на флаге StSkipFlag пропуска вторичного преобразования. Применяя такую процедуру, поскольку вторичное преобразование для субблока, имеющего редкие ненулевые коэффициенты может быть пропущено, снижение сжатия энергии может сдерживаться и снижение эффективности кодирования может ограничиваться.
Последовательность выполнения операций процесса декодирования изображения
Далее приводится описание этапов обработки, выполняемых устройством 200 декодирования изображения, описанным выше. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 15, будет описан пример последовательности выполнения операций процесса декодирования изображения.
Когда на этапе S201 процесс декодирования изображения начат, блок 211 декодирования декодирует битовый поток (кодированные данные), подаваемый на устройство 200 декодирования изображения, чтобы получить информацию Hinfo заголовка, информацию Pinfo о режиме предсказания, информацию Tinfo о преобразовании, информацию Rinfo об остатке, уровень на уровне коэффициента квантования-преобразования и т.п.
На этапе S202 блок 212 обратного преобразования 212 выполняет обратное квантование уровня на уровне коэффициента квантования-преобразования, полученного в процессе этапа S201, чтобы получить коэффициент Coeff_IQ преобразования. Обратное квантование является обратным процессом квантования, который выполняется на этапе S105 (фиг. 11) процесса кодирования изображения, и является процессом, аналогичным обратному квантованию, выполняемому на этапе S106 (фиг. 11) процесса кодирования изображения.
На этапе S203 блок 213 обратного преобразования выполняет обратное преобразование коэффициента Coeff_IQ преобразования, полученного в процессе этапа S202, чтобы получить предсказываемый остаток D’. Обратное преобразование является обратным процессом для процесса преобразования, который выполняется на этапе S104 (фиг. 11) процесса кодирования изображения, и является процессом, аналогичным обратному преобразованию, выполняемому на этапе S107 (фиг. 11) процесса кодирования изображения.
На этапе S204 блок 216 предсказания выполняет предсказание с тем же самым режимом предсказания, что и режим предсказания во время кодирования, основываясь на информации Pinfo о режиме предсказания, чтобы создать предсказанное изображение.
На этапе S205 блок 214 вычислений добавляет предсказанное изображение, полученное в процесс предсказания на этапе S204, к предсказанному остатку D’, полученному в процессе на этапе S203, чтобы получить декодированное изображение.
Когда процесс на этапе S205 закончен, процесс декодирования изображения закончен.
Последовательность выполнения операций процесса обратного преобразования
Далее, со ссылкой на пример, будет приведено описание последовательности выполнения операций процесса обратного преобразования, выполняемого на этапе S203, показанном на фиг. 15, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 16.
Когда процесс обратного преобразования начат на этапе S221, блок 231 обратного вторичного преобразования (переключатель 242) принимает решение, применяет ли идентификатор st_idx вторичного преобразования обратное вторичное преобразование (st_idx > 0). В случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (идентификатор st_idx вторичного преобразования указывает пропуск обратного вторичного преобразования), обратное вторичное преобразование (этапы процесса от этапа S222 до этапа S230) пропускается и процесс переходит к этапу S231. Короче говоря, блок 231 обратного вторичного преобразования (переключатель 242) подает коэффициент Coeff_IQ вторичного преобразования, полученный на этапе S202 на фиг. 15, в качестве коэффициента Coeff_IS первичного преобразования на блок 232 обратного первичного преобразования.
Кроме того, когда на этапе S221 принято решение, что идентификатор st_idx вторичного преобразования больше 0 (идентификатор st_idx вторичного преобразования указывает выполнение обратного вторичного преобразования), процесс переходит к этапу S222.
На этапе S222 блок 247 выбора обратного вторичного преобразования выбирает матрицу IR обратного вторичного преобразования, которая указывается идентификатором st_idx вторичного преобразования.
На этапе S223 блок 231 обратного вторичного преобразования выбирает необработанный субблок, содержащийся в блоке преобразования цели процесса.
На этапе S224 блок 241 принятия решения о количестве ненулевых коэффициентов, как описано выше, получает количество numSigInSBK ненулевых коэффициентов коэффициента преобразования, основываясь на коэффициенте Coeff_IQ вторичного преобразования блока субблоков, полученного в процессе на этапе S202 на фиг. 15. Затем блок 241 принятия решения о количестве ненулевых коэффициентов получает флаг StSkipFlag пропуска вторичного преобразования, используя количество numSigInSBK ненулевых коэффициентов коэффициента преобразования и пороговое значение TH.
На этапе S225 переключатель 242 принимает решение, указывает ли флаг StSkipFlag пропуска вторичного преобразования, полученный на этапе S224, пропуск обратного вторичного преобразования. В случае, когда решено, что флаг StSkipFlag пропуска вторичного преобразования указывает выполнение вторичного преобразования, то есть, значение флага StSkipFlag пропуска вторичного преобразования равно 0, процесс переходит к этапу S226.
1d
На этапе S226 блок 243 растеризации преобразует коэффициент Coeff_IQ вторичного преобразования, полученный при обработке на этапе S202 на фиг. 15, в одномерный вектор X, основываясь на способе сканирования, указанном идентификатором scanIdx сканирования.
1d
1d
На этапе S227 блок 244 матричного вычисления вычисляет матричное произведение между одномерным вектором X и матрицей IR обратного вторичного преобразования, полученной в процессе на этапе S222, чтобы получить одномерный вектор Y.
1d
1d
На этапе S228 блок 245 масштабирования нормализует норму одномерного вектора Y, чтобы получить одномерный вектор Z.
1d
На этапе S2 блок 246 матричного преобразования преобразует одномерный вектор Z в матрицу 4х4, основываясь на способе масштабирования, указанном идентификатором scanIdx сканирования, чтобы получить коэффициент Coeff_IS субблока цели обработки. Когда процесс на этапе S229 закончен, процесс переходит к этапу S230. Кроме того, на этапе S225 в случае, когда флаг StSkipFlag пропуска вторичного преобразования указывает пропуск обратного вторичного преобразования, то есть значение флага StSkipFlag пропуска вторичного преобразования равно 1, процесс переходит к этапу S230.
На этапе S230 блок 231 обратного вторичного преобразования принимает решение, все ли субблоки блока преобразования цели обработки были обработаны. В случае, когда решено, что необработанный субблок присутствует, процесс возвращается обратно к этапу S223 и этапы обработки на этапе S223 и после обработки на этапе S223 периодически повторяются. Короче говоря, в отношении каждого из субблоков блока преобразования цели обработки выполняются этапы обработки от этапа S223 до этапа S230 (обратное вторичное преобразование). В случае, когда на этапе S230 решено, что все субблоки были обработаны (обратное вторичное преобразование всех субблоков было выполнено или пропущено), процесс переходит к этапу S231.
На этапе S231 блок 232 обратного первичного преобразования выполняет обратное первичное преобразование для коэффициента Coeff_IS первичного преобразования, основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить предсказанный остаток D’. Предсказанный остаток D’ затем подается на блок 214 вычислений.
Когда процесс на этапе S231 закончен, процесс обратного преобразования закончен и обработка возвращается к фиг. 15.
Следует заметить, что для определенного выше процесса обратного преобразования в пределах осуществимости этапы обработки могут заменяться другими в порядке обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S221 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы IR обратного вторичного преобразования и могут быть выполнены этапы обработки от этапа S222 до этапа S230.
Выполняя этапы обработки описанным выше способом, в блоке субблоков может выполняться управление пропуском (выполнением) обратного вторичного преобразования. Поэтому, для остаточного сигнала, имеющего редкие ненулевые коэффициенты, уменьшение сжатия энергии может сдерживаться. То есть можно подавлять снижение эффективности кодирования. Другими словами, увеличение нагрузки декодирования (обратное вторичное преобразование) может подавляться, в то же время подавляя снижение эффективности кодирования.
Следует заметить, что хотя представленное выше описание приводится таким образом, что пропуск (обратного) вторичного преобразования управляется для каждого субблока, управление пропуском, выполняемое для каждого субблока, может применяться не только к (обратному) вторичному преобразованию, но также и к произвольному процессу преобразования.
2. Второй вариант осуществления
Выбор вторичного преобразования, используя способ сканирования
Далее, в способе, описанном в NPL 1 или NPL 2, вторичное преобразование имеет количество матриц вторичных преобразований, умноженное на множество классов режима внутрикадрового преобразования и на множество вторичных преобразований, соответствующих классам. По этой причине для цели хранения матриц вторичного преобразования требуется гигантский размер памяти. Например, в случае, способа, описанного в NPL 1, поскольку количество классов режима внутрикадрового предсказания равно 12 и количество вторичных преобразований для классов равно 3, это составляет 12 * 3 = 36 матриц. Кроме того, в случае, способа, описанного в NPL 2, поскольку количество классов режима внутрикадрового предсказания равно 35 и количество вторичных преобразований для классов равно 5, это составляет 35 * 5 = 175 матриц.
Поэтому, например, в случае, когда элементы матриц хранятся с точность 9 бит, и в случае способа, описанного в NPL 1, требуется размер памяти, представленный в последующем выражении (30). Кроме того, в случае способа, описанного в NPL 2, требуется размер памяти, представленныу последующем выражении (31).
Размер памяти = 9 бит * 16*16 * 36 = 829944 (бит) = 10368 (бит) = 10,125 (Kб) (30)
Размер памяти = 9 бит * 16*16 * 175 = 403200 (бит) = 50400 (бит) = 49,21875 (Kб)
(31)
Когда объем хранящихся данных матриц (обратного) вторичного преобразования увеличивается таким образом, существует вероятность, что нагрузка, связанная с кодированием/декодированием увеличится. Кроме того, поскольку размер памяти также увеличивается, существует вероятность, что затраты вырастут.
Затем, основываясь на идентификаторе вторичного преобразования и на идентификаторе сканирования, устанавливается матрица R вторичного преобразования или матрица IR обратного вторичного преобразования. То есть обращая внимание на то, что направление режима внутрикадрового предсказания и направление сканирования соответствуют друг другу, сортировка по классам режимов внутрикадрового предсказания заменяется идентификатором (scanIdx) в качестве информации, связанной со способом сканирования. На фиг. 17 показан пример соотношения соответствия между режимом внутрикадрового предсказания и идентификатором (scanIdx) сканирования.
Пять типов вторичных преобразований соответствуют значениям идентификатора (scanIdx) сканирования. Причиной здесь является то, что вторичные преобразования выделяются для каждого идентификатора (st_idx) вторичного преобразования. Поэтому, в этом случае общее количество вторичных преобразований становится равным 3х5 = 15. Короче говоря, количество вторичных преобразований может быть уменьшено по сравнению со случаем способа, описанного в NPL 1 или NPL 2, представленных выше. Затем, в случае 9-тибитовой точности, размер памяти, требующийся для хранения всех вторичных преобразований представляется следующим выражение (32).
Размер памяти = 9 бит * 16*16 = 15 = 34560 (бит) = 4320 (байтов) = 4,21875 (кб) (32)
Следовательно, объем данных матриц вторичных преобразований может быть значительно уменьшен по сравнению со случаем выражения (30) или (31), описанным выше (случай, соответствующий способу, описанному в NPL 1 или NPL 2). В результате, увеличение нагрузки, связанной с кодированием/декодированием, может ограничиваться и увеличение размера памяти, требующегося для хранения матрицы (обратного) вторичного преобразования может быть ограничено.
Блок преобразования
В этом случае, также, устройство 100 кодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. Однако устройство 100 кодирования изображения в этом случае имеет блок установки, блок растеризации, блок матричного вычисления, блок масштабирования и блок матричного преобразования. В этом случае, блок установки устанавливает матрицу процесса преобразования для коэффициентов преобразования, основываясь на содержании процесса преобразования и способе сканирования. Блок растеризации преобразует коэффициенты преобразования, полученные процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображение для изображения, в одномерный вектор. Блок матричного вычисления выполняет матричное вычисление для этого одномерного вектора, используя матрицу, установленную блоком установки. Блок масштабирования выполняет масштабирование одномерного вектора, для которого выполнено матричное вычисление. Блок матричного вычисления выполняет матричное преобразование масштабированного одномерного вектора. Короче говоря, в этом случае блок 112 преобразования устанавливает матрицу процесса преобразования для коэффициентов преобразования, основываясь на содержании процесса преобразования и способе сканирования, и преобразует коэффициенты преобразования, полученные посредством процесса преобразования предсказанного остатка как разности между изображением и предсказанным изображением этого изображения, в одномерный вектор. Блок 112 преобразования выполняет матричное вычисление для этого одномерного вектора, используя эту установленную матрицу, выполняет масштабирование для этого одномерного вектора, для которого выполняется матричное вычисление, и выполняет матричное преобразование масштабированного одномерного вектора.
На фиг. 18 представлена блок-схема примера основной конфигурации блока 112 преобразования в этом случае. Как показано на фиг. 18, блок 112 преобразования в этом случае также имеет конфигурацию, в основном, схожую с конфигурацией в случае (фиг. 8) первого варианта осуществления. Однако блок 132 вторичного преобразования в этом случае может пропускать блок 146 квантования на переключатель 148 и имеет блок 301 выбора вторичного преобразования вместо блока 145 выбора вторичного преобразования.
Блок 301 выбора вторичного преобразования принимает в качестве входных сигналов идентификатор st_idx вторичного преобразования и идентификатор scanIdx сканирования. Блок 301 выбора вторичного преобразования выбирает матрицу R вторичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования, введенных таким образом в нее, и подает матрицу R вторичного преобразования на блок 142 матричного вычисления.
Блок выбора вторичного преобразования
На фиг. 19 приведена блок-схема примера основной конфигурации блока 301 выбора вторичного преобразования. Как показано на фиг. 19, блок 301 выбора вторичного преобразования имеет блок 311 получения вторичного преобразования и блок 312 хранения вторичного преобразования.
Блок 311 получения вторичного преобразования принимает в качестве входных сигналов идентификатор st_idx вторичного преобразования и идентификатор scanIdx сканирования. Блок 311 получения вторичного преобразования считывает матрицу R соответствующего вторичного преобразования из таблицы LIST_FwdST[][] матриц вторичного преобразования, хранящейся в блоке 312 хранения вторичного преобразования, так чтобы следовать выражению (33), основываясь на введенных в него идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования, и выводит наружу матрицу R соответствующего вторичного преобразования. Здесь, матрица R вторичного преобразования, соответствующая идентификатору scanIdx сканирования каждого идентификатора st_idx вторичного преобразования, запоминается в таблице LIST_FwdST[][] матриц вторичного преобразования.
R = LIST_FwdST[scanIdx][st_idx] (33)
Блок 312 хранения вторичного преобразования хранит в нем таблицу LIST_FwdST[][] матриц вторичного преобразования, в которой хранится матрица R вторичного преобразования, соответствующая идентификатору scanIdx сканирования идентификатора st_idx каждого вторичного преобразования. Матрица R соответствующего вторичного преобразования подается на блок 311 получения вторичного преобразования, основываясь на команде, выдаваемой блоком 311 полусения вторичного преобразования.
Последовательность выполнения операций процесса преобразования
Теперь, со ссылкой на пример последовательности выполнения этапов процесса, будет приведено описание этапов обработки, которые выполняются устройством 100 кодирования изображения. В этом случае, устройство 100 кодирования изображения выполняет процесс кодирования изображения, в основном, схожий со случаем (фиг. 11) первого варианта осуществления. Пример блок-схемы последовательности выполнения операций процесса преобразования в этом случае будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 20.
Когда процесс преобразования начат, этапы S301 и S302 обработки выполняются аналогично этапам S121 и S122 обработки, показанным на фиг. 12. Короче говоря, в случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (указывая пропуск вторичного преобразования), вторичное преобразование (процесс от этапа S303 до этапа S309) пропускается, процесс преобразования заканчивается и процесс возвращается обратно к фиг. 11. Короче говоря, блок 132 вторичного преобразования подает коэффициент Coeff_P первичного преобразования в качестве коэффициента Coeff на блок 113 квантования.
Кроме того, когда на этапе S302 принято решение, что идентификатор st_idx вторичного преобразования больше 0 (указывая выполнение вторичного преобразования), процесс переходит к этапу S303.
На этапе S303 блок 301 выбора вторичного преобразования выбирает матрицу R вторичного преобразования, соответствующую идентификатору st_idx вторичного преобразования и идентификатору scanIdx сканирования. Короче говоря, блок 311 получения вторичного преобразования считывает и выбирает матрицу R вторичного преобразования, соответствующую идентификатору st_idx вторичного преобразования и идентификатору scanIdx сканирования из таблицы матриц вторичного преобразования, хранящейся в блоке 312 хранения вторичного преобразования.
Этапы обработки от S304 до S309 выполняются аналогично этапам обработки от S124 до S128 и этапу S134, показанным на фиг. 12. Короче говоря, этапы обработки от S304 до S309 выполняются для каждого субблока, выполняя, тем самым, вторичное преобразование для каждого субблока. Затем, в случае, когда на этапе S309 решено, что все субблоки были обработаны, процесс преобразования заканчивается и процесс возвращается к фиг. 11.
Следует заметить, что для процесса преобразования в пределах диапазона осуществимости этапы обработки могут заменяться другими этапами в порядке их обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S302 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы R вторичного преобразования и этапы обработки от этапа S304 до этапа S309 могут быть выполнены.
Выполняя этапы обработки описанным выше способом, матрица R вторичного преобразования может быть выбрана, основываясь на идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования. Поэтому объем данных матрицы вторичного преобразования может быть значительно уменьшен. В результате, увеличение нагрузки, связанной с кодированием, может ограничиваться и увеличение размера памяти, требующегося для хранения матрицы вторичного преобразования может быть ограничено.
Блок обратного преобразования
Далее будет описано устройство 200 декодирования изображения. В этом случае, также, устройство 200 декодирования изображения имеет конфигурацию, в основном, схожую с конфигурацией в случае первого варианта осуществления. Однако, устройство 200 декодирования изображения в этом случае имеет блок установки, блок растеризации, блок матричного вычисления, блок масштабирования и блок матричного преобразования. В этом случае, блок установки устанавливает матрицу процесса обратного преобразования для коэффициентов преобразования, основываясь на содержании процесса обратного преобразования и способе сканирования. Блок растеризации преобразует коэффициенты преобразования, для которых предсказанный остаток, являющегося разностью между изображением и предсказанным изображение этого изображения, получают, выполняя процесс обратного преобразования в одномерный вектор. Блок матричного вычисления выполняет матричное вычисление для этого одномерного вектора, используя матрицу, установленную блоком установки. Блок масштабирования выполняет масштабирование одномерного вектора, для которого выполнено матричное вычисление. Блок матричного вычисления выполняет матричное преобразование масштабированного одномерного вектора. Короче говоря, блок 213 обратного преобразования устанавливает матрицу процесса обратного преобразования для коэффициентов преобразования, основываясь на содержании процесса обратного преобразования и способе сканирования, и преобразует коэффициенты преобразования, для которых предсказанный остаток как разность между изображением и предсказанным изображением этого изображения получают, выполняя процесс обратного преобразования в одномерный вектор. Кроме того, блок 213 обратного преобразования выполняет матричное вычисление для этого одномерного вектора, используя эту установленную матрицу, выполняет масштабирование для этого одномерного вектора, для которого выполняется матричное вычисление, и выполняет матричное преобразование масштабированного одномерного вектора.
На фиг. 21 представлена блок-схема примера основной конфигурации блока 213 обратного преобразования для этого случая. Как показано на фиг. 21, блок 213 обратного преобразования в этом случае также имеет конфигурацию, в основном, схожую с конфигурацией в случае (фиг. 14) первого варианта осуществления. Однако блок 231 обратного вторичного преобразования в этом случае может пропускать блок 241 принятия решения о количестве ненулевых коэффициентов и переключатель 242. Кроме того, блок 231 обратного вторичного преобразования имеет блок 321 выбора обратного вторичного преобразования вместо блока 247 выбора обратного вторичного преобразования.
Блок 321 выбора обратного вторичного преобразования принимает в качестве входных сигналов идентификатор st_idx вторичного преобразования и идентификатор scanIdx сканирования. Блок 321 выбора обратного вторичного преобразования выбирает матрицу R обратного вторичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования, введенных таким образом на него, и подает матрицу IR обратного вторичного преобразования на блок 244 матричного вычисления.
Блок выбора обратного вторичного преобразования
На фиг. 22 приведена блок-схема примера основной конфигурации блока 321 выбора обратного вторичного преобразования. Как показано на фиг. 22, блок 321 выбора обратного вторичного преобразования имеет блок 331 получения обратного вторичного преобразования и блок 332 хранения обратного вторичного преобразования.
T
Блок 331 получения обратного вторичного преобразования принимает в качестве его входных сигналов идентификатор st_idx вторичного преобразования и идентификатор scanIdx сканирования. Блок 331 получения обратного вторичного преобразования считывает матрицу IR (= R) соответствующего обратного вторичного преобразования из таблицы LIST_InvST[][] матриц обратного вторичного преобразования, хранящейся в блоке 332 хранения обратного вторичного преобразования, так чтобы следовать выражению (34), основываясь на введенных в него идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования, и выводит наружу матрицу IR соответствующего обратного вторичного преобразования. Здесь, матрица IR обратного вторичного преобразования, соответствующая идентификатору scanIdx сканирования каждого идентификатора st_idx вторичного преобразования, запоминается в таблице LIST_InvST[][] матриц обратного вторичного преобразования.
IR = LIST_InvST[scanIdx][st_idx] (34)
T
Блок 332 хранения обратного вторичного преобразования хранит в нем таблицу LIST_InvST[][] матриц обратного вторичного преобразования, в которой хранится матрица IR обратного вторичного преобразования, соответствующая идентификатору scanIdx сканирования идентификатора st_idx каждого вторичного преобразования. Блок 332 хранения обратного вторичного преобразования подает матрицу IR (= R) соответствующего обратного вторичного преобразования на блок 331 получения обратного вторичного преобразования, основываясь на команде, выдаваемой блоком 331 получения обратного вторичного преобразования.
Последовательность выполнения операций процесса обратного преобразования
Далее, со ссылкой на пример, будет приведено описание последовательности выполнения этапов обработки, которые выполняются устройством 200 декодирования изображения. В этом случае, устройство 200 декодирования изображения выполняет процесс декодирования изображения, в основном, схожий со случаем (фиг. 15) первого варианта осуществления. Пример блок-схемы последовательности выполнения операций процесса обратного преобразования в этом случае будет описан со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 23.
Когда процесс обратного преобразования начат на этапе S321, блок 231 обратного вторичного преобразования принимает решение, применяет ли идентификатор st_idx вторичного преобразования обратное вторичное преобразование (st_idx > 0). В случае принятия решения, что идентификатор st_idx вторичного преобразования равен 0 (идентификатор st_idx вторичного преобразования указывает пропуск обратного вторичного преобразования), обратное вторичное преобразование (этапы процесса от этапа S322 до этапа S328) пропускается и процесс переходит к этапу S329. Короче говоря, блок 231 обратного вторичного преобразования подает коэффициент Coeff_IQ вторичного преобразования, полученный на этапе S202 на фиг. 15, в качестве коэффициента Coeff_IS первичного преобразования, на блок 232 обратного первичного преобразования.
Кроме того, в случае, когда на этапе S321 принято решение, что идентификатор st_idx вторичного преобразования больше 0 (идентификатор st_idx вторичного преобразования указывает выполнение обратного вторичного преобразования), процесс переходит к этапу S322.
На этапе S322 блок 321 выбора обратного вторичного преобразования выбирает матрицу IR обратного вторичного преобразования, соответствующую идентификатору st_idx вторичного преобразования и идентификатору scanIdx сканирования. Короче говоря, блок 331 получения обратного вторичного преобразования считывает и выбирает матрицу R обратного вторичного преобразования, соответствующую идентификатору st_idx вторичного преобразования и идентификатору scanIdx сканирования из таблицы матриц обратного вторичного преобразования, хранящейся в блоке 332 хранения обратного вторичного преобразования.
На этапе S323 блок 231 обратного вторичного преобразования выбирает необработанный субблок, содержащийся в блоке преобразования цели процесса.
Этапы обработки от S324 до этапа S328 выполняются аналогично этапам обработки от S226 до этапа S230, показанным на фиг. 16. Короче говоря, этапы обработки от этапа S323 до этапа S328 выполняются для каждого субблока, выполняя, тем самым, вторичное преобразование для каждого субблока. Затем, в случае, когда на этапе S328 решено, что все субблоки были обработаны, процесс переходит к этапу S329.
На этапе S329 блок 232 обратного первичного преобразования выполняет обратное первичное преобразование для коэффициента Coeff_IS первичного преобразования, основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить предсказанный остаток D’. Предсказанный остаток D’ подается на блок 214 вычислений.
Когда процесс на этапе S231 закончен, процесс обратного преобразования заканчивается и обработка возвращается к фиг. 15.
Следует заметить, что для определенного выше процесса обратного преобразования в пределах осуществимости этапы обработки могут заменяться другими в порядке обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S321 принято решение, что идентификатор st_idx вторичного преобразования равен 0, единичная матрица 16х16 может быть выбрана в качестве матрицы IR обратного вторичного преобразования и могут быть выполнены этапы обработки с этапа S323 до этапа S328.
Выполняя этапы обработки описанным выше способом, матрица IR обратного вторичного преобразования может быть выбрана, основываясь на идентификаторе st_idx вторичного преобразования и идентификаторе scanIdx сканирования. Поэтому, объем данных матрицы обратного вторичного преобразования может быть значительно уменьшен. В результате, увеличение нагрузки, связанной с кодированием/декодированием, может ограничиваться и увеличение размера памяти, требующегося для хранения матрицы (обратного) вторичного преобразования может быть ограничено.
3. Третий вариант осуществления
Ограничение полосы пропускания
NPL 1 устанавливает, что в случае, когда размер блока преобразования равен 64х64, после того, как для предсказанного остатка выполняются одно или более ортогональных преобразований, ограничение полосы пропускания выполняется таким образом, что высокочастотный компонент, отличный от низкочастотного компонента 32х32 наверху слева, принудительно делается равным 0, уменьшая, тем самым, сложность вычислений или затраты на монтаж декодера.
На фиг. 24 представлена блок-схема примера основной конфигурации блока преобразования, выполненного с возможностью осуществления первичного преобразования, вторичного преобразования и ограничения полосы пропускания для предсказанного остатка D, используя способ, описанный в NPL 1. Как показано на фиг. 24, блок 400 преобразования имеет переключатель 401, блок 402 первичного преобразования, блок 403 вторичного преобразования и блок 404 ограничения полосы пропускания.
Переключатель 401 принимает поступающие на него входные сигналы флага ts_flag пропуска преобразования, флага обхода квантования-преобразования transquant_bypass_flag и предсказанного остатка D. Флаг ts_flag пропуска преобразования является информацией, указывающей, должно ли пропускаться (обратное) первичное преобразование и (обратное) вторичное преобразование в целевом блоке данных. Например, в случае, когда флаг ts_flag пропуска преобразования равен 1 (истинный), (обратное) первичное преобразование и (обратное) вторичное преобразование пропускаются. Кроме того, в случае, когда флаг ts_flag пропуска преобразования равен 0 (ложный), (обратное) первичное преобразование и (обратное) вторичное преобразование выполняются.
Кроме того, флаг transquant_bypass_flag обхода квантования-преобразования является информацией, указывающей, должно ли пропускаться (обходиться) (обратное) первичное преобразование, (обратное) вторичное преобразование и (обратное) квантование в целевом блоке данных. Например, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 1 (истинный), (обратное) первичное преобразование, (обратное) вторичное преобразование и (обратное) квантование обходятся. Кроме того, в случае, когда флаг transquant_bypass_flag обхода квантования-преобразования равен 0 (ложный), (обратное) первичное преобразование, (обратное) вторичное преобразование и (обратное) квантование не обходятся.
Переключатель 401 выполняет управление пропуском первичного преобразования и вторичного преобразования для предсказанного остатка D, основываясь на флаге ts_flag пропуска преобразования и флаге transquant_bypass_flag обхода квантования-преобразования.
Конкретно, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 401 подает предсказанный остаток D на блок 402 первичного преобразования, тем самым, заставляя первичное преобразование и вторичное преобразование выполняться. С другой стороны, в случае, когда либо флаг ts_flag пропуска преобразования, либо флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 401 подает предсказанный остаток D в качестве коэффициента Coeff вторичного преобразования на блок 404 ограничения полосы пропускания, осуществляя, таким образом, пропуск первичного преобразования и вторичного преобразования.
Блок 402 первичного преобразования, аналогично случаю с блоком 131 первичного преобразования, показанному на фиг. 8, выполняет первичное преобразование предсказанного остатка D, основываясь на идентификаторе pt_idx первичного преобразования, чтобы получить коэффициент Coeff_P первичного преобразования. Идентификатор pt_idx первичного преобразования является идентификатором, указывающим, какое из (обратных) первичных преобразований применяется к (обратному) первичному преобразованию в вертикальном направлении и в горизонтальном направлении в целевом блоке данных (например, обратитесь к документу JVET-B1001, 2.5.1 Adaptive multiple Core transform. К нему обращаются также в emt_idx в JEM). Блок 402 первичного преобразования подает коэффициент Coeff_P первичного преобразования на блок 403 вторичного преобразования.
Блок 403 вторичного преобразования выполняет вторичное преобразование для коэффициента Coeff_P первичного преобразования, подаваемого на него от блока 402 первичного преобразования, основываясь на идентификаторе st_idx вторичного преобразования, используя способ, описанный в NPL 1, чтобы получить коэффициент Coeff вторичного преобразования. Блок 403 вторичного преобразования подает коэффициент Coeff вторичного преобразования на блок 404 ограничения полосы пропускания.
В случае, когда размер блока TBSize блока преобразования цели обработки равен 64х64, блок 404 ограничения полосы пропускания выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования, поданного на него от переключателя 401 или от блока 403 вторичного преобразования таким образом, чтобы высокочастотный компонент был сделан равным 0, чтобы получить коэффициент Coeff’ вторичного преобразования после ограничения полосы пропускания. С другой стороны, в случае, когда размер блока TBSize блока преобразования цели обработки не равен 64х64, блок 404 ограничения полосы пропускания заставляет коэффициент Coeff вторичного преобразования становиться коэффициентом Coeff’ вторичного преобразования в неизменном виде после ограничения полосы пропускания. Блок 404 ограничения полосы пропускания выводит коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания.
Как описано выше, в блоке 400 преобразования, показанном на фиг. 24, даже в случае, когда первичное преобразование и вторичное преобразование пропускаются, когда размер TBSize блока равен 64х64, выполняется ограничение полосы пропускания (процесс низкочастотной фильтрации). Однако, в случае, когда первичное преобразование и вторичное преобразование пропускаются, коэффициент Coeff вторичного преобразования, введенный в блок 404 ограничения полосы пропускания, является предсказанным остатком D. Поэтому блок 404 ограничения полосы пропускания будет выполнять ограничение полосы пропускания для предсказанного остатка D и за счет ограничения полосы пропускания искажение увеличивается.
Например, в случае, когда предсказанный остаток D блока преобразования 64х64 является изображением, показанном в позиции A на фиг. 25, когда первичное преобразование и вторичное преобразование пропускаются, изображение 64х64, показанное в позиции А на фиг. 25, вводится в блок 404 ограничения полосы пропускания в качестве коэффициента Coeff вторичного преобразования. Поэтому, если блок 404 ограничения полосы пропускания выполняет ограничение полосы пропускания таким образом, что каждый из коэффициентов преобразования, отличный от коэффициента преобразования 32х32 в верхней левой части блока преобразования, делается равным 0 в качестве высокочастотного компонента, то тогда коэффициент Coeff’ вторичного преобразования после ограничения полосы пропускания становится изображением 64х64, показанным в позиции В на фиг. 25. Следовательно, в коэффициенте Coeff' вторичного преобразования после ограничения полосы пропускания искажение увеличивается. В результате, эффективность кодирования снижается. Кроме того, хотя обход преобразования-квантования выполняется с целью осуществления кодирования без потерь, кодирование без потерь не может быть выполнено.
Следует заметить, что на фиг. 25 область белого цвета является областью, в которой значение пикселей равно 0, а область черного цвета является областью, в которой значение пикселей равно 255.
Запрещение ограничения полосы пропускания во время пропуска преобразования или обхода квантования-преобразования
В третьем варианте осуществления ограничение полосы пропускания для коэффициента Coeff вторичного преобразования управляется, основываясь на флаге ts_flag пропуска преобразования и флага transquant_bypass_flag обхода квантования-преобразования. Кроме того, ограничение полосы пропускания для коэффициента Coeff_IQ вторичного преобразования, который получают с помощью обратного квантования, управляется, основываясь на флаге ts_flag пропуска преобразования и флаге transquant_bypass_flag обхода квантования-преобразования. Конкретно, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, (обратное) первичное преобразование, (обратное) вторичное преобразование и ограничение полосы пропускания пропускаются.
Принимая такую процедуру, запрещается применять ограничение полосы пропускания к коэффициенту Coeff (Coeff_IQ) вторичного преобразования, как к предсказанному остатку D, то есть к коэффициенту вторичного преобразования пиксельной области. Поэтому увеличение искажения ограничивается. В результате, можно ограничить снижение эффективности кодирования. Кроме того, выполняя обход квантования, преобразования, может быть выполнено кодирование без потерь.
Устройство кодирования изображения
Третий вариант осуществления устройства кодирования изображения в виде устройства кодирования изображения, к которому применяется представленная технология, является по конфигурации таким же, как показано на фиг.7, за исключением информации Tinfo о преобразовании, блока преобразования и блока обратного преобразования. Поэтому ниже будут описаны только информация Tinfo о преобразовании, блок преобразования и блок обратного преобразования.
В третьем варианте осуществления информация Tinfo о преобразовании содержит флаг ts_flag пропуска преобразования, флаг transquant_bypass_flag обхода квантования-преобразования, идентификатор pt_idx первичного преобразования, идентификатор st_idx вторичного преобразования и размер TBSize блока.
Кроме того, обратное квантование, которое выполняется блоком обратного преобразования в третьем варианте осуществления, является процессом, обратным преобразованию, которое выполняется блоком преобразования, и является процессом, подобным обратному преобразованию, которое выполняется в устройстве декодирования изображения, которое будет описано позже. Поэтому обратное квантование будет описано позднее при описании, связанном с устройством декодирования изображения.
Блок преобразования
На фиг. 26 представлена блок-схема примера основной конфигурации блока преобразования в третьем варианте осуществления устройства кодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
Из составляющих элементов, показанных на фиг. 26, тем же самым составляющим элементам, что и на фиг. 24, назначаются те же самые ссылочные позиции. Поэтому их повторное описание здесь, соответственно, не приводится.
Блок 420 преобразования, показанный на фиг. 26, отличается по конфигурации от блока 400 преобразования, в котором переключатель 421 и блок 424 ограничения полосы пропускания устанавливаются вместо переключателя 401 и блока 404 ограничения полосы пропускания.
Флаг ts_flag пропуска преобразования и флаг transquant_bypass_flag обхода квантования-преобразования подаются от блока 101 управления на переключатель 421 блока 420 преобразования и предсказанный остаток D подается от блока 101 вычислений на переключатель 421 блока 420 преобразования. Переключатель 421 управляет пропуском первичного преобразования, вторичного преобразования и ограничением полосы пропускания для предсказанного остатка D, основываясь на флаге ts_flag пропуска преобразования и флаге transquant_bypass_flag обхода квантования-преобразования.
Конкретно, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 421 подает предсказанный остаток D на блок 402 первичного преобразования, тем самым, заставляя выполняться первичное преобразование, вторичное преобразование и ограничение полосы пропускания. С другой стороны, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 421 (блок управления) подает предсказанный остаток D в качестве коэффициента Coeff вторичного преобразования после ограничения полосы пропускания на блок 113 квантования, заставляя пропускаться первичное преобразование, вторичное преобразование и ограничение полосы пропускания.
Блок 424 ограничения полосы пропускания выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования, поданного на него от блока 403 вторичного преобразования таким образом, чтобы высокочастотный компонент делается равным 0, основываясь на размере TBSize блока, поданного на него от блока 101 управления, чтобы получить коэффициент Coeff’ вторичного преобразования после ограничения полосы пропускания. Блок 424 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания на блок 113 квантования.
Конкретно, в случае, когда размер TBSize блока меньше заданного размера TH_TBSize блока, блок 424 ограничения полосы пропускания подает коэффициент Coeff вторичного преобразования в качестве коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания на блок 113 квантования без выполнения ограничения полосы пропускания для коэффициента Coeff вторичного преобразования.
С другой стороны, в случае, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 424 ограничения полосы пропускания подает коэффициент Coeff(i, j)’ вторичного преобразования после ограничения полосы пропускания каждой из координат (i, j) внутри блока преобразования, так чтобы следовать приведенному ниже выражению (35), используя фильтр H(i, j) и коэффициент Coeff(i, j) вторичного преобразования.
Формула 6
Следует заметить, что фильтр H(i, j) ограничения полосы пропускания определяется нижеследующим выражением (36).
Формула 7
Кроме того, TBXSize и TBYSize представляют размер поперечной ширины и размер продольной ширины блока преобразования цели обработки, соответственно. В соответствии с выражением (35) и выражением (36), высокочастотный компонент коэффициента Coeff(i, j)’ вторичного преобразования становится равным 0. Блок 424 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания, полученный описанным выше способом, на блок 113 квантования.
Последовательность выполнения операций процесса кодирования изображения
Устройство кодирования изображения, соответствующее третьему варианту осуществления устройства кодирования изображения в виде устройства кодирования изображения, к которому применяется представленная технология, подобно устройству кодирования изображения, показанному на фиг. 11, за исключением процесса преобразования на этапе S104 и процесса обратного преобразования на этапе S107. Поскольку процесс обратного преобразования является обратным процессом процесса преобразования и выполняется аналогично процессу обратного преобразования, исполняемому в процессе декодирования изображения, который будет описан позже, в этом случае будет описан только процесс преобразования.
Последовательность выполнения операций процесса преобразования
На фиг. 27 представлена блок-схема последовательности выполнения операций примера последовательности выполнения операций процесса преобразования, выполняемого в третьем варианте осуществления устройства кодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
Когда процесс преобразования начат на этапе S401, переключатель 421 принимает решение, равен ли 1 флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования, поданный от блока 101 управления.
В случае, когда на этапе S401 принято решение, что либо флаг ts_flag пропуска преобразования, либо флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 421 принимает решение, что первичное преобразование, вторичное преобразование и ограничение полосы пропускания пропускаются. Затем переключатель 421 подает предсказанный остаток D, поданный на него от блока 111 вычислений в качестве коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания, на блок 113 квантования без выполнения этапов обработки с этапа S402 до этапа S406, и процесс заканчивается.
С другой стороны, в случае, когда на этапе S401 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 421 принимает решение, что первичное преобразование, вторичное преобразование и ограничение полосы пропускания выполняются. Затем, переключатель 421 подает предсказанный остаток D на блок 402 первичного преобразования и процесс переходит к этапу S402.
На этапе S402 блок 402 первичного преобразования выполняет первичное преобразование предсказанного остатка D, поданного на него от переключателя 421, основываясь на идентификаторе pt_idx первичного преобразования, поданном на него от блока 101 управления, чтобы получить коэффициент Coeff_P первичного преобразования. Блок 402 первичного преобразования подает коэффициент Coeff_P первичного преобразования на блок 403 вторичного преобразования.
На этапе S403 блок 403 вторичного преобразования принимает решение, больше ли, чем 0, идентификатор st_idx вторичного преобразования. В случае, когда на этапе S403 принимается решение, что идентификатор st_idx вторичного преобразования больше 0, то есть, в случае, когда идентификатор st_idx вторичного преобразования указывает выполнение вторичного преобразования, процесс переходит к этапу S404.
На этапе S404 блок 403 вторичного преобразования выполняет вторичное преобразование, соответствующее идентификатору st_idx для коэффициента Coeff_P первичного преобразования, чтобы получить коэффициент Coeff вторичного преобразования. Блок 403 вторичного преобразования подает коэффициент Coeff вторичного преобразования на блок 424 ограничения полосы пропускания и процесс переходит к этапу S405.
С другой стороны, в случае, когда на этапе S403 принято решение, что идентификатор st_idx вторичного преобразования не больше 0 то есть, в случае, когда идентификатор st_idx вторичного преобразования указывает пропуск вторичного преобразования, блок 403 вторичного преобразования пропускает процесс на этапе S404. Затем блок 403 вторичного преобразования подает коэффициент Coeff_P первичного преобразования, полученный в процессе на этапе S402, в качестве коэффициента Coeff вторичного преобразования, на блок 424 ограничения полосы пропускания. Затем процесс переходит к этапу S405.
На этапе S405 блок 424 ограничения полосы пропускания принимает решение, равен ли или больше размер TBSize блока для блока преобразования цели обработки, чем заданный размер TH_TBSize блока. В случае, когда на этапе S405 решено, что размер TBSize блока равен или больше заданного размера TH_TBSize блока, процесс переходит к этапу S406.
На этапе S406 блок 424 ограничения полосы пропускания выполняет ограничение полосы пропускания, применяя фильтр Н ограничения полосы пропускания, определяемый выражением (36), описанным выше, к коэффициенту Coeff вторичного преобразования, чтобы выполнять описанное выше выражение (35) для получения коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания. Затем блок 424 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания на блок 113 квантования и процесс заканчивается.
С другой стороны, в случае, когда на этапе S405 решено, что размер TBSize блока меньше заданного размера TH_TBSize блока, блок 424 ограничения полосы пропускания пропускает процесс на этапе S406. Затем блок 424 ограничения полосы пропускания в неизменном виде подает коэффициент Coeff вторичного преобразования в качестве коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания на блок 113 квантования и процесс заканчивается.
Следует заметить, что для процесса преобразования в пределах диапазона осуществимости этапы обработки могут заменяться другими этапами в порядке их обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S403 принято решение, что идентификатор st_idx вторичного преобразования не больше 0, единичная матрица 16х16 может быть выбрана в качестве матрицы R вторичного преобразования и процесс на этапе S404 может быть выполнен.
Как описано выше, в случае, когда не выполняются ни пропуск преобразования, ни обход квантования-преобразования, переключатель 421 подает предсказанный остаток D на блок 424 ограничения полосы пропускания через блок 402 первичного преобразования и блок 403 вторичного преобразования. В результате, в случае, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 424 ограничения полосы пропускания выполняет ограничение полосы пропускания таким образом, что высокочастотный компонент коэффициента Coeff вторичного преобразования становится равным 0. Следовательно, в этом случае устройство кодирования изображения должно кодировать только низкочастотный компонент коэффициента Coeff вторичного преобразования и, таким образом, процесс кодирования коэффициента Coeff вторичного преобразования может быть пропущен.
Кроме того, в случае, когда выполняется пропуск преобразования или обход квантования-преобразования, переключатель 421 не подает предсказанный остаток D на блок 424 ограничения полосы пропускания. В результате, даже когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 424 ограничения полосы пропускания не выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования как предсказанного остатка D. То есть, в случае, когда пропуск преобразования или обход квантования-преобразования выполняется, ограничение полосы пропускания также пропускается. Поэтому, даже когда пропуск преобразования или обход квантования-преобразования выполняется, по сравнению со случаем, когда выполняется ограничение полосы пропускания, пропуск преобразования или обход квантования-преобразования выполняется и существует возможность предотвращения увеличения искажения, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока. В результате, можно ограничить снижение эффективности кодирования, то есть, эффективность кодирования может быть повышена. Кроме того, выполняется обход квантования-преобразования, что позволяет выполнять кодирование без потерь.
Устройство декодирования изображения
Далее будет приведено описание декодирования кодированных данных, полученных в процессе кодирования способом, описанным выше. Третий вариант осуществления устройства кодирования изображения в виде устройства кодирования изображения, к которому применяется представленная технология, является по конфигурации таким же, как в случае, показанном на фиг. 13, за исключением информации Tinfo о преобразовании конфигурации блока обратного преобразования. Поскольку информация Tinfo о преобразовании описана выше, будет описан только блок обратного преобразования.
Блок обратного преобразования
На фиг. 28 представлена блок-схема примера основной конфигурации блока обратного преобразования в третьем варианте осуществления устройства декодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
На фиг. 28 блок 440 обратного преобразования имеет переключатель 441, блок 442 ограничения полосы пропускания, блок 443 обратного вторичного преобразования и блок 444 обратного первичного преобразования.
Флаг ts_flag пропуска преобразования и флаг transquant_bypass_flag обхода квантования-преобразования подаются от блока 211 декодирования на переключатель 441 441 и коэффициент Coeff_IQ вторичного преобразования подается от блока 212 обратного квантования на переключатель 441. Переключатель 441 управляет пропуском ограничения полосы пропускания, обратным вторичным преобразованием и обратным первичным преобразованием для коэффициента Coeff_IQ вторичного преобразования, основываясь на флаге ts_flag пропуска преобразования и флаге transquant_bypass_flag обхода квантования-преобразования.
Конкретно, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования на блок 442 ограничения полосы пропускания, тем самым, заставляя выполнять ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование. С другой стороны, в случае, когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 441 (блок управления) подает коэффициент Coeff_IQ вторичного преобразования в качестве предсказанного остатка D' на блок 214 вычислений, заставляя, тем самым, пропускать ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование.
Блок 442 ограничения полосы пропускания выполняет ограничение полосы пропускания для коэффициента Coeff_IQ вторичного преобразования, поданного на него от переключателя 441 таким образом, что высокочастотный компонент делается равным 0, основываясь на размере TBSize блока преобразования цели обработки, поданного на него от блока 211 декодирования, чтобы получить коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания. Блок 442 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования.
Конкретно, в случае, когда размер TBSize блока меньше заданного размера TH_TBSize блока, блок 442 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования в качестве коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования без выполнения ограничения полосы пропускания для коэффициента Coeff_IQ вторичного преобразования.
С другой стороны, в случае, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 442 ограничения полосы пропускания выполняет фильтр Н ограничения полосы пропускания, представленный в выражении (35), описанном выше, к коэффициенту Coeff_IQ вторичного преобразования, чтобы получить коэффициент Coeff_IQ(i, j)’ вторичного преобразования.
То есть, блок 442 ограничения полосы пропускания получает коэффициент Coeff_IQ(i, j)’ вторичного преобразования после ограничения полосы пропускания, так чтобы следовать нижеследующему выражению (37), используя фильтр H(i, j) ограничения полосы пропускания и коэффициент Coeff_IQ(i, j) вторичного преобразования для каждой координаты (i, j) внутри блока преобразования.
Формула 8
В соответствии с выражение (37), высокочастотный компонент коэффициента Coeff_IQ(i, j)’ вторичного преобразования становится равным 0. Блок 442 ограничения полосы пропускания подает коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания, полученный описанным выше способом, на блок 443 обратного вторичного преобразования.
Блок 443 обратного вторичного преобразования выполняет обратное вторичное преобразование для коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания, подаваемого на него от блока 442 ограничения полосы пропускания, основываясь на идентификаторе st_idx вторичного преобразования, поданном на него от блока 211 декодирования, чтобы получить коэффициент Coeff_IS первичного преобразования. Блок 443 обратного вторичного преобразования подает коэффициент Coeff_IS первичного преобразования на блок 444 обратного первичного преобразования.
Блок 444 обратного первичного преобразования выполняет обратное первичное преобразование, такое как обратное ортогональное преобразование для коэффициента Coeff_IS первичного преобразования, подаваемого на него от блока 231 обратного вторичного преобразования, чтобы получить предсказуемый остаток D’. Блок 444 обратного первичного преобразования подает предсказуемый остаток D', полученный таким образом, на блок 214 вычислений.
Последовательность выполнения операций процесса декодирования изображения
Поскольку процесс декодирования изображения, соответствующий третьему варианту осуществления устройства декодирования изображения в виде устройства обработки изображения, к которому применяется представленная технология, подобен процессу декодирования изображения, показанному на фиг. 15, за исключением процесса обратного преобразования на этапе S203, далее будет описан только процесс обратного преобразования.
Последовательность выполнения операций процесса обратного преобразования
На фиг. 29 представлена блок-схема последовательности выполнения операций примера последовательности выполнения операций процесса обратного преобразования, выполняемого в третьем варианте осуществления устройства декодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
Когда на этапе S421 процесс обратного преобразования начат, переключатель 441 принимает решение, равен ли 1 флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования, поданный от блока 211 декодирования.
В случае, когда на этапе S421 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 441 принимает решение, что ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование должны пропускаться. Затем переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования в качестве предсказанного остатка D’, на блок 214 вычислений, не выполняя этапы обработки с этапа S422 до этапа S426, и процесс заканчивается.
С другой стороны, в случае, когда на этапе S421 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 441 принимает решение, что ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование выполняются. Затем переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования, на блок 442 ограничения полосы пропускания. Затем процесс переходит к этапу S422.
На этапе S422 блок 442 ограничения полосы пропускания принимает решение, равен ли или больше размер TBSize блока для блока преобразования цели обработки, чем заданный размер TH_TBSize блока. В случае, когда на этапе S422 решено, что размер TBSize блока равен или больше заданного размера TH_TBSize блока, процесс переходит к этапу S423.
На этапе S423 блок 442 ограничения полосы пропускания выполняет ограничение полосы пропускания, применяя фильтр Н ограничения полосы пропускания, определяемый выражением (36), описанным выше, к коэффициенту Coeff_IQ вторичного преобразования, чтобы получить коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания. Затем блок 424 ограничения полосы пропускания подает коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования и процесс переходит к этапу S424.
С другой стороны, в случае, когда на этапе S422 решено, что размер TBSize блока меньше заданного размера TH_TBSize блока, блок 442 ограничения полосы пропускания пропускает процесс на этапе S423. Затем блок 442 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования в качестве коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания без изменений на блок 443 обратного вторичного преобразования. Затем процесс переходит к этапу S424.
На этапе S424 блок 443 обратного вторичного преобразования принимает решение, больше ли, чем 0, идентификатор st_idx вторичного преобразования. В случае, когда на этапе S424 принимается решение, что идентификатор st_idx вторичного преобразования больше 0, то есть, в случае, когда идентификатор st_idx вторичного преобразования указывает выполнение обратного вторичного преобразования, процесс переходит к этапу S425.
На этапе S425 блок 443 обратного вторичного преобразования выполняет обратное вторичное преобразование, соответствующее идентификатору st_idx вторичного преобразования, для коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания, подаваемого на него от блока 442 ограничения полосы пропускания, чтобы получить коэффициент Coeff_P первичного преобразования. Блок 443 обратного вторичного преобразования подает коэффициент Coeff_P первичного преобразования на блок 444 обратного первичного преобразования. Затем процесс переходит к этапу S426.
С другой стороны, в случае, когда на этапе S424 принято решение, что идентификатор st_idx вторичного преобразования не больше 0 то есть, в случае, когда идентификатор st_idx вторичного преобразования указывает пропуск обратного вторичного преобразования, блок 443 обратного вторичного преобразования пропускает процесс на этапе S425. Затем, блок 443 обратного вторичного преобразования подает коэффициент Coeff_IQ' вторичного преобразования после ограничения полосы пропускания, в качестве коэффициента Coeff_IS первичного преобразования, на блок 444 обратного первичного преобразования. Затем процесс переходит к этапу S426.
На этапе S426 блок 444 обратного первичного преобразования выполняет обратное первичное преобразование для коэффициента Coeff_IS первичного преобразования, поданного на него от блока 443 обратного вторичного преобразования, чтобы получить предсказанный остаток D’, и подает результирующий предсказанный остаток D’ на блок 214 вычислений. На этом процесс заканчивается.
Следует заметить, что для определенного выше процесса обратного преобразования в пределах осуществимости этапы обработки могут заменяться другими в порядке обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S424 принято решение, что идентификатор st_idx вторичного преобразования не больше 0, единичная матрица 16х16 может быть выбрана в качестве матрицы R обратного вторичного преобразования и процесс на этапе S425 может быть выполнен.
Как описано выше, в случае, не выполняются ни пропуск обратного преобразования, ни пропуск обратного квантования и обратного преобразования (здесь и выше упоминается как обход инверсного квантования-инверсного преобразования), переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования на блок 442 ограничения полосы пропускания. В результате, в случае, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 442 ограничения полосы пропускания выполняет ограничение полосы пропускания таким образом, что высокочастотный компонент коэффициента Coeff_IQ вторичного преобразования становится равным 0. Следовательно, в этом случае устройство декодирования изображения должно выполнять обратное преобразование только низкочастотного компонента коэффициента Coeff_IQ вторичного преобразования и, таким образом, процесс обратного преобразования коэффициента Coeff_IQ вторичного преобразования может быть сокращен.
Кроме того, в случае, когда выполняется пропуск преобразования или обход квантования-преобразования, переключатель 441 не подает коэффициент Coeff_IQ вторичного преобразования на блок 442 ограничения полосы пропускания. В результате, даже в случае, когда размер TBSize блока равен или больше заданного размера TH_TBSize блока, блок 442 ограничения полосы пропускания не выполняет ограничение полосы пропускания для коэффициента Coeff_IQ вторичного преобразования как предсказанного остатка D. То есть, в случае, когда выполняется пропуск преобразования или обход квантования-преобразования, пропускается также и ограничение полосы пропускания. Поэтому, в случае, когда пропуск преобразования или обход квантования-преобразования выполняется, пропускается также ограничение полосы пропускания, позволяя, тем самым, декодировать кодированные данные, для которых предотвращается увеличение искажения. В результате, кодированные данные для которых эффективность кодирования улучшается, могут быть декодированы. Кроме того, кодированные данные, которые получают путем кодирования без потерь, с помощью обхода квантования-преобразования могут быть декодированы без потерь.
В этой связи, в приведенном выше описании ограничение полосы пропускания выполняется в третьем варианте осуществления устройства декодирования изображения. Однако в случае, когда обеспечивается условие ограничения битового потока, состоящее в том, что "в случае, когда размер TBSize блока равен или больше, чем заданный размер TH_TBSize блока, ненулевой коэффициент ограничивается внутри низкочастотной области ((TH_TBSize >> 1) х (TH_TBSize >> 1)) в верхней левой части", ограничение полосы пропускания выполняться не может. Ограничение битового потока может выражаться также, как "когда флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0 и размер TBSize блока равен заданному размеру TH_TBSize блока, значения координаты Х последнего ненулевого коэффициента (last_sig_coeff_x_pos) и координаты Y последнего ненулевого коэффициента (last_sig_coeff_y_pos), указывающие положение последнего ненулевого коэффициента внутри блока преобразования, каждое имеет значение внутри диапазона от 0 до (TH_TBSize/2)-1".
Кроме того, для заданного размера TH_TBSize блока может быть установлено произвольное значение в добавление к 64х64.
Более того, способ вторичного преобразования в третьем варианте осуществления никоим образом не ограничивается способом, описанным в NPL 1. Например, способ вторичного преобразования в третьем варианте осуществления может быть любым из способов, содержащихся в первом и втором вариантах осуществления. Кроме того, коэффициент вторичного преобразования может ограничиваться так, чтобы быть в пределах заданного диапазона.
4. Четвертый вариант осуществления
Форма CU, PU и TU
На фиг. 30 показаны формы 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. Как результат, формируется структура дерева в форме квадродерева или в форме двоичного дерева в горизонтальном направлении или в вертикальном направлении.
В результате, возможно, что форма CU является не только квадратной, но также и продолговатой. Например, возможно, что в случае, когда размер LCU равен 128х128, размер CU (размер w в горизонтальном направлении х размер h в вертикальном направлении), как показано на фиг. 30, является не только размером квадрата, такого как 128 х128, 64х64, 32х2, 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.
Устройство кодирования изображения
Четвертый вариант осуществления устройства кодирования изображения в виде устройства обработки изображения, к которому применяется представленная технология, является по конфигурации таким же, как третийц вариант осуществления, за исключением информации Tinfo о преобразовании, блока преобразования и блока обратного преобразования. Поэтому ниже будут описаны только информация Tinfo о преобразовании, блок преобразования и блок обратного преобразования.
Информация Tinfo о преобразовании в четвертом варианте осуществления является такой же, как информация Tinfo о преобразовании в третьем варианте осуществления, за исключением того, что вводятся размер TBXSize поперечной ширины (размер в горизонтальном направлении) блока преобразования и размер TBYSize продольной ширины (размер в вертикальном направлении ) вместо размера TBSize блока.
Кроме того, обратное преобразование, выполняемое блоком обратного преобразования в четвертом варианте осуществления, является процессом, обратным преобразованию, которое выполняется блоком преобразования, и является процессом, подобным обратному преобразованию, которое выполняется в устройстве декодирования изображения, которое будет описано позже. Следовательно, обратное преобразование будет описано позднее при описании, связанном с устройством декодирования изображения.
Блок преобразования
На фиг. 31 представлена блок-схема примера основной конфигурации блока преобразования в четвертом варианте осуществления устройства кодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
Для составляющих элементов, показанных на фиг. 31, тем же самым составляющим элементам, что и на фиг. 26, назначаются те же самые ссылочные позиции. Повторное описание, соответственно, не приводится.
Блок 460 преобразования, показанный на фиг. 31, отличается по конфигурации от блока 420 преобразования, показанного на фиг. 26, тем, что вместо блока 404 ограничения полосы пропускания устанавливается блок 464 ограничения полосы пропускания
Блок 464 ограничения полосы пропускания блока 460 преобразования выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования, полученного от блока 403 вторичного преобразования таким образом, что высокочастотный компонент делается равным 0, основываясь на размере TBSize блока в горизонтальном направлении и размере TBYSize блока в вертикальном направлении, которые подаются на него от блока 101 управления, чтобы получить коэффициент Coeff’ вторичного преобразования после ограничения полосы пропускания. Блок 464 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания на блок 113 квантования.
Конкретно, в случае, когда больший из max(TBXSize, TBYSize) размер TBXSize в горизонтальном направлении и размер TBYSize, меньший в вертикальном направлении, чем заданный размер блока THSize (max(TBXSize, TBYSize) < THSize), блок 464 ограничения полосы пропускания не выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования и подает коэффициент Coeff в качестве коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания на блок 113 квантования.
С другой стороны, в случае, когда max(TBXSize, TBYSize) равен или больше заданного размера THSize (max(TBXSize, TBYSize) >= THSize), блок 464 ограничения полосы пропускания получает коэффициент Coeff(i, j)’ вторичного преобразования после ограничения полосы пропускания так, чтобы следовать приведенному выше выражению (35) для каждой координаты (i, j) блока пикселей внутри блока преобразования. То есть, в случае, когда значение логической величины в традиционном равенстве max(TBXSize, TBYSize) >= THSize равно 1 (истинно), блок 464 ограничения полосы пропускания выполняет ограничение полосы пропускания, а когда max(TBXSize, TBYSize) >= THSize равно 0 (ложно), блок 464 ограничения полосы пропускания не выполняет ограничение полосы пропускания.
Следует заметить, что фильтр H(i, j) ограничения полосы пропускания определяется нижеследующим выражением (38).
Формула 9]
N
M
TH является пороговым значением. В соответствии с выражением (35) и выражением (38), в случае, когда субблок 2х2 в качестве блока обработки внутри блока преобразования при вторичном преобразовании, содержащем координаты (i, j), является субблоком, отличным от области квадратной формы, образованной субблоком THхTH в верхней левой части, коэффициент coefficient Coeff(i, j)’ вторичного преобразования становится равным 0. То есть высокочастотный компонент коэффициента Coeff(i,j)’ вторичного преобразования становится равным 0. Блок 464 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания, полученный описанным выше способом, на блок 113 квантования.
Пример фильтра ограничения полосы пропускания
На фиг. 32 показан пример фильтра H(i, j) ограничения полосы пропускания.
2
2
На фиг. 32 прямоугольник, выполненный сплошной линией, указывает блок преобразования, а прямоугольник, выполненный пунктирной линией, указывает субблок. Это также применимо к случаю на фиг. 36-38, который будет описан позже. Кроме того, в примере на фиг. 32 размер субблока равен 2х2, размер THSize равен размеру восьми субблоков и пороговое значение TH в фильтре H(i, j) ограничения полосы пропускания равно 4. Кроме того, в позиции А на фиг. 32 показан пример, в котором размер TBXSize х TBYSize блока преобразования имеет размер (размер 32х32 блока преобразования) субблока 8х8. В позиции В на фиг. 32 показан пример, в котором размер TBXSize х TBYSize блока преобразования имеет размер (размер 32х32 блока преобразования) субблока 8х4. Кроме того, в позиции С на фиг. 32 показан пример, в котором размер TBXSize х TBYSize блока преобразования имеет размер (размер 16х32 блока преобразования) субблока 4х8.
В этом случае, когда, как показано в позиции А в примере на фиг. 32, размер TBXSize в горизонтальном направлении и размер TBYSize в вертикальном направлении каждый равен размеру восьми субблоков, устанавливают фильтр H(i, j) ограничения полосы пропускания. В этом случае, фильтр H(i, j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 471A субблоков 4х4, представленный косой линией на чертеже в верхней левой части, равен 1. Фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблока, отличного от группы 471А субблоков, равен 0.
Кроме того, даже когда, как показано в позиции В на фиг. 32, размер TBXSize в горизонтальном направлении равен размеру восьми субблоков и размер TBYSize в вертикальном направлении равен размеру четырех субблоков, что меньше, чем размер TBXSize в горизонтальном направлении, устанавливается фильтр H(i, j) ограничения полосы пропускания. В этом случае, фильтр H(i, j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 471B субблоков 4х4, представленной косой линией на чертеже в левой части, равен 1. Фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблока, отличного от группы 471В субблоков, равен 0.
Кроме того, даже когда, как показано в позиции С на фиг. 32, размер TBXSize в горизонтальном направлении равен размеру четырех субблоков и размер TBYSize в вертикальном направлении равен размеру восьми субблоков, что больше, чем размер TBXSize в горизонтальном направлении, устанавливается фильтр H(i, j) ограничения полосы пропускания. В этом случае, фильтр H(i, j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 471С субблоков 4х4, представленный косой линией на чертеже в верхней части, равен 1. Фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблока, отличного от группы 471С субблоков, равен 0.
Как описано выше, в случае, когда max(TBXSize, TBYSize) равен или больше, чем размер THSize, фильтр H(i, j) ограничения полосы пропускания устанавливается на 0 или 1 в ответ на позицию субблока, содержащую координаты (i, j).
Последовательность выполнения операций процесса кодирования изображения
Процесс кодирования изображения, выполняемый в четвертом варианте осуществления устройства кодирования изображения в виде устройства обработки изображения, к которому применяется представленная технология, подобен случаю процесса кодирования изображения в третьем варианте осуществления, за исключением процесса преобразования и процесса обратного преобразования. Поскольку процесс обратного преобразования является процессом, обратным процессу преобразования и выполняется аналогично процессу обратного преобразования, который будет выполняться в процессе декодирования изображения, описываемом позже, в этом случае будет описан только процесс преобразования.
Последовательность выполнения операций процесса преобразования
На фиг. 33 представлена блок-схема последовательности выполнения операций примера последовательности выполнения операций процесса преобразования, выполняемого в четвертом варианте осуществления устройства кодирования изображения как устройства обработки изображения, к которому применяется представленная технология.
Поскольку этапы обработки с этапа S461 до этапа S464 аналогичны этапам обработки от этапа S401 до этапа S404 на фиг. 27, их описание здесь не повторяется.
На этапе S465 блок 464 ограничения полосы пропускания принимает решение, равен ли или больше размер max(TBXSize, TBYSize) блока для блока преобразования цели обработки, чем заданный размер THSize. В случае, когда на этапе S465 решено, что размер Tmax(TBXSize, TBYSize) равен или больше заданного размера THSize, процесс переходит к этапу S466.
На этапе S466 блок 464 ограничения полосы пропускания выполняет ограничение полосы пропускания для коэффициента Coeff вторичного преобразования, применяя фильтр Н ограничения полосы пропускания, определяемый выражением (38), описанным выше, чтобы следовать выражению (35, описанному выше, для получения коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания. Затем блок 464 ограничения полосы пропускания подает коэффициент Coeff' вторичного преобразования после ограничения полосы пропускания на блок 113 квантования и процесс заканчивается.
С другой стороны, в случае, когда на этапе S465 решено, что размер max(TBXSize, TBYSize) меньше заданного размера THSize, блок 464 ограничения полосы пропускания пропускает процесс на этапе S466. Затем блок 464 ограничения полосы пропускания в неизменном виде подает коэффициент Coeff вторичного преобразования в качестве коэффициента Coeff’ вторичного преобразования после ограничения полосы пропускания на блок 113 квантования и процесс заканчивается.
Следует заметить, что для описанного выше процесса преобразования в пределах диапазона осуществимости этапы обработки могут заменяться другими в порядке обработки или содержание этапов обработки может изменяться. Например, в случае, когда на этапе S463 принято решение, что идентификатор st_idx вторичного преобразования не больше 0, единичная матрица быть выбрана в качестве матрицы R вторичного преобразования и процесс на этапе S464 может быть выполнен.
Как описано выше, блок 464 ограничения полосы пропускания выполняет ограничение полосы пропускания, основываясь на размере TBXSize в горизонтальном направлении и размере TBYSize в вертикальном направлении блока преобразования. Следовательно, даже в случае, когда форма блока преобразования продолговатая, ограничение полосы пропускания может выполняться должным образом.
Кроме того, блок 464 ограничения полосы пропускания устанавливает область, в которой коэффициент Coeff вторичного преобразования становится равным 0, посредством ограничения полосы пропускания до области, отличной от квадратной области, образованной субблоком размера THхTH. Поэтому, даже в случае, когда форма блока преобразования является прямоугольной, коэффициент Coeff вторичного преобразования области, отличной от квадратной области, имеющей заданный размер, может быть сделан равным 0.
Устройство декодирования изображения
Далее будет приведено описание декодирования кодированных данных, полученных в процессе кодирования способом, описанным выше. Четвертый вариант осуществления устройства декодирования изображения в виде устройства обработки изображения, к которому применяется представленная технология, является по конфигурации таким же, как в третьем варианте осуществления, за исключением конфигурации информации Tinfo о преобразовании конфигурации и блока обратного преобразования. Поскольку информация Tinfo о преобразовании описана выше, будет описан только блок обратного преобразования.
Блок обратного преобразования
На фиг. 34 представлена блок-схема примера основной конфигурации блока обратного преобразования в четвертом варианте осуществления устройства декодирования изображения в качестве устройства обработки изображения, к которому применяется представленная технология.
Для составляющих элементов, показанных на фиг. 34, тем же самым составляющим элементам, что и на фиг. 28, назначаются те же самые ссылочные позиции. Повторное описание, соответственно, не приводится.
Блок 480 обратного преобразования, показанный на фиг. 34, отличается по конфигурации от блока 440 обратного преобразования, показанного на фиг. 28, тем, что вместо блока 442 ограничения полосы пропускания устанавливается блок 482 ограничения полосы пропускания.
Блок 482 ограничения полосы пропускания блока 480 обратного преобразования выполняет ограничение полосы пропускания для коэффициента Coeff_IQ вторичного преобразования, поданного на него от переключателя 441 таким образом, что высокочастотный компонент делается равным 0, основываясь на размере TBХSize в горизонтальном направлении и размере TBYSize в вертикальном направлении блока преобразования цели обработки, подаваемых на него от блока 211 декодирования, чтобы получить коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания. Блок 482 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования.
Конкретно, в случае, когда размер max(TBXSize, TBYSize) меньше заданного размера THSize, блок 482 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования в качестве коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования без выполнения ограничения полосы пропускания для коэффициента Coeff_IQ вторичного преобразования.
С другой стороны, в случае, когда размер max(TBXSize, TBYSize) равен или больше заданного размера THSize, блок 482 ограничения полосы пропускания применяет фильтр Н ограничения полосы пропускания, представленный выражением (38), описанном выше, к коэффициенту Coeff_IQ вторичного преобразования, чтобы следовать описанному выше выражению (37). Блок 482 ограничения полосы пропускания подает результирующий коэффициент Coeff_IQ' вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования.
Последовательность выполнения операций процесса декодирования изображения
Процесс декодирования изображения, выполняемый в четвертом варианте осуществления устройства декодирования изображения в виде устройства обработки изображения, к которому применяется представленная технология, подобен процессу декодирования изображения, показанному на фиг.15, за исключением процесса обратного преобразования на этапе S203. Потому, далее будет описан только процесс обратного преобразования.
Последовательность выполнения операций процесса обратного преобразования
На фиг. 35 представлена блок-схема последовательности выполнения операций примера последовательности выполнения операций процесса обратного преобразования, выполняемого в четвертом варианте осуществления устройства декодирования изображения как устройства обработки изображения, к которому применяется представленная технология.
Когда на этапе S481 процесс обратного преобразования начат, переключатель 441 принимает решение, равен ли 1 флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования, подаваемый от блока 211 декодирования.
В случае, когда на этапе S481 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 441 принимает решение, что ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование должны быть пропущены. Затем переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования в качестве предсказанного остатка D’, на блок 214 вычислений, не выполняя этапы обработки с этапа S482 до этапа S486. На этом процесс завершается.
С другой стороны, в случае, когда на этапе S481 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 0, переключатель 441 принимает решение, что ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование должны быть выполнены. Затем переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования, на блок 482 ограничения полосы пропускания. Затем процесс переходит к этапу S482.
На этапе S482 блок 482 ограничения полосы пропускания принимает решение, равен ли или больше размер max(TBXSize, TBYSize), чем заданный размер THSize. В случае, когда на этапе S482 решено, что размер max(TBXSize, TBYSize) равен или больше заданного размера THSize, процесс переходит к этапу S483.
На этапе S483 блок 482 ограничения полосы пропускания выполняет ограничение полосы пропускания для коэффициента Coeff_IQ вторичного преобразования, определенное выражением (38) описанным выше, применяя фильтр Н ограничения полосы пропускания, чтобы следовать выражению (37), описанному выше, для получения коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания. Затем блок 464 ограничения полосы пропускания подает коэффициент Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания на блок 443 обратного вторичного преобразования. Затем процесс переходит к этапу S484.
С другой стороны, в случае, когда на этапе S482 решено, что размер max(TBXSize, TBYSize) меньше заданного размера THSize, блок 482 ограничения полосы пропускания пропускает процесс на этапе S483. Затем блок 482 ограничения полосы пропускания подает коэффициент Coeff_IQ вторичного преобразования в качестве коэффициента Coeff_IQ’ вторичного преобразования после ограничения полосы пропускания без изменений на блок 443 обратного вторичного преобразования. Затем процесс переходит к этапу S484.
Поскольку этапы обработки с этапа S484 до этапа S486 аналогичны этапам обработки от этапа S424 до этапа S426 на фиг. 29, их описание здесь не повторяется.
Как описано выше, блок 482 ограничения полосы пропускания выполняет ограничение полосы пропускания, основываясь на размере TBXSize в горизонтальном направлении и размере TBYSize в вертикальном направлении блока преобразования. Следовательно, даже в случае, когда форма блока преобразования продолговатая, ограничение полосы пропускания может выполняться должным образом.
Кроме того, блок 482 ограничения полосы пропускания устанавливает область, в которой коэффициент Coeff вторичного преобразования становится равным 0, посредством ограничения полосы пропускания до области, отличной от квадратной области, образованной субблоком размером THхTH. Поэтому, даже в случае, когда форма блока преобразования является прямоугольной, коэффициент Coeff вторичного преобразования области, отличной от квадратной области, имеющей заданный размер, может быть сделан равным 0.
В этой связи, в приведенном выше описании ограничение полосы пропускания выполняется в четвертом варианте осуществления устройства декодирования изображения. Однако, в случае, когда обеспечивается ограничение битового потока, состоящее в том, что обеспечивается условие "в случае, когда max(TBXSize, TBYSize) равен или больше, чем заданный размер THSize, ненулевой коэффициент ограничивается внутри низкочастотной области (THSize >> 1) х (THSize >> 1)) в верхней левой части", ограничение полосы пропускания выполняться не может. Ограничение битового потока также может выражаться в виде условия "когда флаг ts_flag пропуска преобразования и флаг transquant_bypass_flag обхода квантования-преобразования каждый равен 0 и размер max(TBXSIze, TBYSize) блока преобразования равен или больше заданного размера THSize блока, значения координаты Х последнего ненулевого коэффициента (last_sig_coeff_x_pos) и координаты Y последнего ненулевого коэффициента (last_sig_coeff_y_pos) каждое имеет значение внутри диапазона от 0 до заданного значения (например, (THSize/2)-1)".
Кроме того, способ вторичного преобразования в четвертом варианте осуществления никоим образом не ограничивается способом, описанным в NPL 1. Например, способ вторичного преобразования в четвертом варианте осуществления может быть способом, содержащимся в первом или втором вариантах осуществления. Кроме того, коэффициент вторичного преобразования может ограничиваться так, чтобы быть в пределах заданного диапазона.
Более того, способ принятия решения, выполнять или нет ограничение полосы пропускания, не ограничивается описанным выше способом до тех пор, пока он является способом принятия решения, является ли размер блока преобразования равным или большим, чем заданный размер, основываясь на размере TBXSize в горизонтальном направлении (или логарифмическом значении log2TBXSize) и размере TBYSize в вертикальном направлении (или логарифмическом значении log2TBYSize).
Например, блок 464 (482) ограничения полосы пропускания может выполнять ограничение полосы пропускания в случае, когда max(log2TBXSize, log2TBYSize), как больший из логарифмического значения размера TBXSize в горизонтальном направлении и логарифмического значения TBYSize в вертикальном направлении, равен или больше заданного порогового значения log2THSize (в случае, когда логическое значение max(log2TBXSize, log2TBYSize) >= log2THSize) равно 1 (истинно)). Кроме того, блок 464 (482) ограничения полосы пропускания может выполнять ограничение полосы пропускания в случае, когда сумма или произведение размера TBXSize в горизонтальном направлении и размера TBYSize в вертикальном направлении, равны или больше заданного порогового значения TH_Size (в случае, когда логическое значение TBXSize + TBYSize >= TH_Size or TBXSize * TBYSize >= TH_Size равно 1 (истинно)). Более того, блок 464 (482) ограничения полосы пропускания может выполнять ограничение полосы пропускания в случае, когда сумма логарифмического значения TBXSize в горизонтальном направлении и логарифмического значения TBYSize в вертикальном направлении равна или больше заданного порогового значения log2THSize (в случае, когда логическое значение log2TBXSize + log2TBYSize >= log2THSize равно 1 (истинно)). В этих случаях, когда логическое значение равно 0 (ложно), ограничение полосы пропускания не выполняется.
Кроме того, блок 464 (482) ограничения полосы пропускания может установить фильтр H(i, j) ограничения полосы пропускания на 0 или 1 в ответ не на позицию субблока, содержащего координаты (i, j), а на позицию координат (i, j). В этом случае, фильтр H(i, j) ограничения полосы пропускания определяется нижеследующим выражением (39).
Формула 10
Другие примеры фильтра ограничения полосы пропускания
На фиг. 36-38 показаны другие примеры фильтра H(i, j) ограничения полосы пропускания.
В каждом из примеров на фиг. 36-38, фильтр H(i, j) ограничения полосы пропускания определяется нижеследующим выражением (40), основываясь на порядке обработки (порядке сканирования) sbk_scanorder(i >> N, j >> M) субблоков, содержащих координаты (i, j). Следует заметить, что порядок сканирования sbk_scanorder(i >> N, j >> M) субблоков определяется, основываясь на идентификаторе scanIdx сканирования и размере блока преобразования.
Формула 11
THscanorder является пороговым значением. В выражении (40) пороговое значение THscanorder, например, может быть сделано равным альфа (альфа – значение от 0 до 1), умноженное на общее количество субблоков внутри блока преобразования.
N
M
В соответствии с выражением (35) и выражением (40), в случае, когда порядок сканирования sbk_scanorder(i >> N, j >> M) субблоков размером 2х2, содержащих координаты (i, j), равен или больше порогового значения THscanorder, коэффициент Coeff(i,j)’ вторичного преобразования становится равным 0. То есть коэффициент Coeff(i,j)’ вторичного преобразования каждого из субблоков высокочастотных компонент, отличных от субблоков THscanorder, ранее составлявших порядок сканирования, становится равным 0.
2
2
Кроме того, в каждом из примеров, показанных на фиг. 36-38, размер субблока равен 2х2 и размер THSize является размером восьми субблоков. Более того, в примере на фиг. 36 пороговое значение THscanorder в фильтре H(i, j) ограничения полосы пропускания равно 10 и в каждом из примеров на фиг. 37 и 38 пороговое значение THscanorder в фильтре H(i, j) ограничения полосы пропускания равно 16. Кроме того, в позиции А на каждом из фиг. 36-38 показан пример, в котором размер TBXSize х TBYSize блока преобразования является размером (размер 32х32 блока преобразования), состоящим из субблоков 8х8. Кроме того, в позиции В на каждом из фиг. 36-38 показан пример, в котором размер TBXSize х TBYSize блока преобразования является размером (размер 32х16 блока преобразования), состоящим из субблоков 8х4. Кроме того, в позиции С на каждом из фиг. 36-38 показан пример, в котором размер TBXSize х TBYSize блока преобразования является размером (размер 16х32 блока преобразования), состоящим из субблоков 4х8.
В этом случае, когда, как показано в позиции А в примере на фиг. 36-38, размер TBXSize в горизонтальном направлении и размер TBYSize в вертикальном направлении каждый равен размеру восьми субблоков, устанавливается фильтр H(i,j) ограничения полосы пропускания.
В случае, где, как показано в позиции А на фиг. 36, субблоки сканируются в диагональном направлении (диагональное сканирование вверх-вправо), фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 501A субблоков 4х4, представленной десятью косыми линиями на чертеже в верхней левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 501А субблоков, равен 0.
В случае, где, как показано в позиции А на фиг. 37, субблоки сканируются в горизонтальном направлении (горизонтальное быстрое сканирование), фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 502A, представленной 16 косыми линиями на чертеже в верхней части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 502А субблоков, равен 0.
В случае, где, как показано в позиции А на фиг. 38, субблоки сканируются в вертикальном направлении (вертикальное быстрое сканирование), фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 503A, представленной 16 косыми линиями на чертеже в левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 503А субблоков, равен 0.
Кроме того, даже когда, как показано в позиции В на фиг. 36-38, размер TBXSize в горизонтальном направлении равен размеру восьми субблоков и размер TBYSize в вертикальном направлении равен размеру четырех субблоков, что меньше, чем размер TBXSize в горизонтальном направлении, фильтр H(i, j) ограничения полосы пропускания устанавливается.
В случае, где, как показано в позиции В на фиг. 36, субблоки сканируются в диагональном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 501B субблоков, представленной десятью косыми линиями на чертеже в верхней левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 501В субблоков, равен 0.
Кроме того, в случае, где, как показано в позиции В на фиг. 37, субблоки сканируются в горизонтальном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 502B, представленной 16 косыми линиями на чертеже в верхней части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 502В субблоков, равен 0.
В случае, где, как показано в позиции В на фиг. 38, субблоки сканируются в вертикальном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 503B субблоков, представленной 16 косыми линиями на чертеже в левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 503В субблоков, равен 0.
Более того, даже когда, как показано в позиции С на фиг. 36-38, размер TBXSize в горизонтальном направлении равен размеру четырех субблоков и размер TBYSize в вертикальном направлении равен размеру восьми субблоков, что больше, чем размер TBXSize в горизонтальном направлении, фильтр H(i, j) ограничения полосы пропускания устанавливается.
В случае, где, как показано в позиции С на фиг. 36, субблоки сканируются в диагональном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 501С субблоков, представленной десятью косыми линиями на чертеже в верхней левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 501С субблоков, равен 0.
Кроме того, в случае, где, как показано в позиции С на фиг. 37, субблоки сканируются в горизонтальном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 502С, представленной 16 косыми линиями на чертеже в верхней части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 502С субблоков, равен 0.
В случае, где, как показано в позиции С на фиг. 38, субблоки сканируются в вертикальном направлении, фильтр H(i,j) ограничения полосы пропускания для координат (i, j), содержащихся в группе 503С субблоков, представленной 16 косыми линиями на чертеже в левой части, равен 1 и фильтр H(i, j) ограничения полосы пропускания для координат (i, j) внутри субблоков, отличных от группы 503С субблоков, равен 0.
Как описано выше в примерах на фиг. 36-38, в случае когда max(TBXSize, TBYSize) равен или больше, чем размер THSize, фильтр H(i, j) ограничения полосы пропускания устанавливается на 0 или 1, основываясь на порядке сканирования субблоков, содержащих координаты (i, j). Следует заметить, что хотя в примерах на фиг. 36-38пороговое значение THscanorder отличается от случая, где субблоки сканируются в горизонтальном или в вертикальном направлении, пороговое значение THscanorder в первом случае и пороговое значение THscanorder в последнем случае могут быть идентичны друг другу.
Следует заметить, что фильтр H(i, j) ограничения полосы пропускания может быть определен, основываясь на порядке сканирования coef_scanorder(i, j) координат (i, j), тем, чтобы следовать выражению (41). Порядок сканирования coef_scanorder(i, j) определяется, основываясь на идентификаторе scanIdx сканирования и размере блока преобразования.
Формула 12
В выражении (41) пороговое значение THscanorder, например, может быть сделано равным альфа (альфа – значение от 0 до 1), умноженное на общее количество (TBXSize х TBYSize) пикселей внутри блока преобразования.
Другой пример последовательности выполнения операций процесса преобразования/обратного преобразования
В четвертом варианте осуществления ограничение полосы пропускания может управляться, основываясь не только на размере блока преобразования, но также на флаге bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания, указывающем, применяется ли фильтр ограничения полосы пропускания в случае, когда размер блока преобразования равен или больше, чем заданный размер блока. В этом случае, блок 101 управления заставляет флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания быть включенным в параметры кодирования в блоках SPS, PPS, SH, CU и т.п. Флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания подается на блок 114 управления, который должен кодироваться, и в дополнение к этому, подается на блок 464 ограничения полосы пропускания блока 460 преобразования.
На фиг. 39 показана блок-схема последовательности выполнения операций примера последовательности выполнения операций преобразования блока 460 преобразования в данном случае.
Поскольку этапы обработки от этапа S501 до этапа S504 на фиг. 39 аналогичны этапам обработки от этапа S461 до этапа S464 на фиг. 33, их описание здесь не повторяется.
На этапе S505 блок 464 ограничения полосы пропускания принимает решение равен ли 1 (истинен) флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания, указывающий, что фильтр ограничения полосы пропускания применяется в случае, когда размер блока преобразования равен или больше заданного размера блока. В случае, когда на этапе S505 решено, что флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 1, процесс переходит к этапу S506. Поскольку этапы обработки с этапа S506 до этапа S507 аналогичны этапам обработки от этапа S465 до этапа S466 на фиг. 33, их описание здесь не повторяется.
С другой стороны, в случае, когда на этапе S505 решено, что флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 0 (ложный), указывая, что фильтр ограничения полосы пропускания не применяется, даже когда размер блока преобразования равен или больше заданного размера блока, процесс преобразования заканчивается.
Как описано выше, блок 464 ограничения полосы пропускания управляет тем, применяется ли фильтр ограничения полосы пропускания для ограничения ненулевого коэффициента внутри низкочастотной области в случае, когда размер блока для прямоугольного блока преобразования, образованного квадратными или продольными элементами, равен или больше заданного размера блока, основываясь на флаге bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания.
Конкретно, в случае, когда флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 1 (истинный), когда размер блока преобразования равен или больше заданного размера блока, блок 464 ограничения полосы пропускания выполняет ограничение полосы пропускания таким образом, чтобы коэффициент преобразования высокочастотного компонента принудительно был бы сделан равным 0. Поэтому блок 114 кодирования кодирует только ненулевой коэффициент низкочастотного компонента блока преобразования. Следовательно, процесс кодирования ненулевого коэффициента может быть сокращен при сохранении эффективности кодирования.
Кроме того, в случае, когда флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 0 (ложный), даже когда размер блока преобразования равен или больше заданного размера блока, блок 5464 ограничения полосы пропускания не выполняет ограничение полосы пропускания. Поэтому блок 114 кодирования кодирует ненулевой коэффициент низкочастотного компонента, который переходит из низкочастотного компонента в высокочастотный компонент. Следовательно, в большом блоке преобразования, по сравнению со случаем, когда применяется фильтр ограничения полосы пропускания, воспроизводимость высокочастотного компонента возрастает и эффективность кодирования повышается.
Более того, флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания устанавливается для каждого заданного блока (такого как SPS, PPS, SH или CU). Поэтому, блок 464 ограничения полосы пропускания может адаптивно управлять каждым заданным блоком, независимо от того, применяется ли фильтр ограничения полосы пропускания в случае, когда размер блока преобразования равен или больше размера заданного блока, используя флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания.
Кроме того, в четвертом варианте осуществления, в случае, когда ограничение полосы пропускания управляется, основываясь не только на размере блока преобразования, но также и на флаге bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания, блок 211 декодирования декодирует кодированные данные кодированного параметра, содержащего флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания в заданном блоке (таком как SPS, PPS, SH или CU). Флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания, полученный в результате декодирования, подается на блок 482 ограничения полосы пропускания блока 480 обратного преобразования.
На фиг. 40 показана блок-схема последовательности выполнения операций примера последовательности выполнения операций процесса преобразования блока 480 обратного преобразования в данном случае.
На этапе S521 на фиг. 40 переключатель 441 принимает решение равен ли 1 флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования, подаваемый на него от блока 211 декодирования.
В случае, когда на этапе S521 принято решение, что флаг ts_flag пропуска преобразования или флаг transquant_bypass_flag обхода квантования-преобразования равен 1, переключатель 441 принимает решение, что ограничение полосы пропускания, обратное вторичное преобразование и обратное первичное преобразование должны быть пропущены. Затем переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования в качестве предсказанного остатка D’, на блок 214 вычислений, не выполняя этапы обработки от этапа S522 до этапа S527. На этом процесс завершается.
С другой стороны, в случае, когда на этапе S521 принято решение, что флаг ts_flag пропуска преобразования и флаг transquant_bypass_flag обхода квантования-преобразования каждый равен 0, переключатель 441 подает коэффициент Coeff_IQ вторичного преобразования, поданный на него от блока 212 обратного квантования, на блок 482 ограничения полосы пропускания. Затем процесс переходит к этапу S522.
На этапе S522 блок 482 ограничения полосы пропускания принимает решение, равно ли 1 (истинно) значение флага bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания. В случае, когда на этапе S522 решено, что значение флага действительности фильтра ограничения полосы пропускания равно 1, процесс переходит к этапу S523. Поскольку этапы обработки с этапа S523 до этапа S527 аналогичны этапам обработки от этапа S482 до этапа S486 на фиг. 35, их описание здесь не повторяется.
В случае, когда на этапе S522 решено, что значение флага действительности фильтра ограничения полосы пропускания равно 0 (ложно), процесс пропускает этапы обработки этапа S523 и этапа S524 и переходит к этапу S525.
Как описано выше, блок 482 ограничения полосы пропускания управляет тем, применяется ли фильтр ограничения полосы пропускания для ограничения ненулевого коэффициента внутри низкочастотной области в случае, когда размер блока для прямоугольного блока преобразования, имеющего форму квадрата или прямоугольника, равен или больше заданного размера блока, основываясь на флаге bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания.
Конкретно, в случае, когда флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 1 (истинный), когда размер блока преобразования равен или больше заданного размера блока, блок 482 ограничения полосы пропускания выполняет ограничение полосы пропускания таким образом, чтобы коэффициент преобразования высокочастотного компонента принудительно был бы сделан равным 0. Поэтому блок 214 вычислений декодирует только ненулевой коэффициент низкочастотного компонента блока преобразования. Следовательно, процесс декодирования ненулевого коэффициента может быть сокращен при сохранении эффективности кодирования. Кроме того, поскольку необходимо только то, чтобы блок 213 обратного преобразования выполнял процесс обратного преобразования только для ненулевого коэффициента низкочастотного компонента блока преобразования, объем обработки при обратном преобразовании может быть уменьшен. Поэтому, вычислительная сложность и затраты на монтаж декодера могут быть уменьшены по сравнению со случаем, когда устройство кодирования изображения не выполняет ограничение полосы пропускания.
Кроме того, в случае, когда флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания равен 0 (ложный), даже когда размер блока преобразования равен или больше заданного размера блока, блок 482 ограничения полосы пропускания не выполняет ограничение полосы пропускания. Поэтому блок 214 вычислений декодирует ненулевой коэффициент низкочастотного компонента, который переходит из низкочастотного компонента в высокочастотный компонент. Следовательно, в большом блоке преобразования, по сравнению со случаем, когда применяется фильтр ограничения полосы пропускания, воспроизводимость высокочастотного компонента возрастает и качество изображения для декодированного изображения повышается.
Более того, флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания устанавливается для каждого заданного блока (такого как SPS, PPS, SH или CU). Поэтому, блок 482 ограничения полосы пропускания может адаптивно управлять каждым заданным блоком, независимо от того, применяется ли фильтр ограничения полосы пропускания в случае, когда размер блока преобразования равен или больше размера заданного блока, используя флаг bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания.
В этой связи, в примерах, показанных на фиг. 39 и 40, принимается решение, больше ли или равен размер блока преобразования, чем заданный размер блока, в зависимости от того, больше ли или равен размер max(TBXSize, TBYSize), чем заданный размер THSize. Однако, решение может также выполняться, используя любой из других способов, описанных выше.
Кроме того, в третьем варианте осуществления также, аналогично случаю четвертого варианта осуществления, ограничение полосы пропускания может управляться, основываясь не только на размере блока преобразования, но также и на флаге bandpass_filter_enabled_flag действительности фильтра ограничения полосы пропускания.
5. Пятый вариант осуществления
Блок данных информации
Блок данных, с помощью которого устанавливаются информация, связанная с изображением, описанным выше, и информация, связанная с кодированием/ декодированием, (или блок данных для целевых данных) является произвольным и никоим образом не ограничивается описанным выше примером. Например, эти фрагменты информации могут быть установлены для каждого из следующих: TU, TB, PU, PB, CU, LCU, субблок, блок, мозаичный элемент, срез, картинка, последовательность или компонент, или эти фрагменты данных из блоков данных могут быть сделаны целевыми. Не стоит говорить, что блок данных устанавливается для каждого фрагмента информации. Короче говоря, не все фрагменты информации могут устанавливаться (или могут быть сделаны целевыми) для каждого блока данных. Следует заметить, что место хранения этих фрагментов информации является произвольным и, таким образом, эти фрагменты информации могут храниться в заголовке блока данных, описанном выше, в наборе параметров и т.п. Кроме того, эти фрагменты информации могут также храниться во множестве мест.
Управляющая информация
Управляющая информация, связанная с представленной технологией, которая была описана выше в вариантах осуществления, может передаваться со стороны кодирования на сторону декодирования. Например, может передаваться управляющая информация (например, enabled_flag), используемая для управления разрешением (или запрещением) применения представленной технологии, описанной выше. Кроме того, например, может передаваться управляющая информация, используемая, например, для указания верхнего предела или нижнего предела размера блока, с помощью которого применение описанной выше представленной технологии разрешается (или запрещается), или верхнего и нижнего пределов вместе.
Кодирование/декодирование
Представленная технология может применяться к кодированию/декодированию произвольного изображения, для которого выполняются первичное преобразование и вторичное преобразование (обратное вторичное преобразование и обратное первичное преобразование). Короче говоря, описание преобразования (обратного преобразования), квантования (обратного квантования), кодирования (декодирования), предсказания и т.п. является произвольным и никоим образом не ограничивается описанными выше примерами. Например, (обратные) преобразования (то есть, три или более (обратных) преобразований, отличные от обратного (первичного преобразования и (обратного) вторичного преобразования, могут выполняться при преобразовании (обратном преобразовании). Кроме того, кодирование (декодирование) могут приспосабливать обратимую систему или необратимую систему. Более того, квантование (обратное квантование), предсказание и т.п. могут пропускаться. Кроме того, может выполняться процесс, такой как процесс фильтрации, который не был описан выше.
Область применения представленной технологии
Система, устройство, блок обработки и т.п., к которым применима представленная технология, могут использоваться в различных областях, таких как дорожное движение, здравоохранение, профилактика правонарушений, сельское хозяйство, животноводство, горнодобывающая отрасль, косметика, производство, бытовая электроника, прогнозирование погоды и природоохранительная деятельность.
Например, представленная технология может также применяться к системе или устройству для передачи изображения, используемого для оценки. Кроме того, например, представленная технология может также применяться к системе или устройству, используемому для дорожного движения. Кроме того, например, представленная технология может также применяться к системе или устройству, используемому для обеспечения безопасности. Кроме того, например, представленная технология может также применяться к системе или устройству, используемому для спортивных занятий. Кроме того, например, представленная технология может также применяться к системе или устройству, используемому для сельского хозяйства. Кроме того, например, представленная технология может также применяться к системе или устройству, используемому для животноводства. Более того, представленная технология может также применяться к системе или устройству для контроля природного состояния вулканов, лесов, океана и т.п. Кроме того, представленная технология может применяться, например, к метеорологической системе или к метеорологическому устройству для наблюдания за погодой, температурой, влажностью, скоростью ветра, продолжительностью дня и т.п. Дополнительно, представленная технология может также применяться, например, к системе, устройству и т. п для наблюдения за экологией природы, такой как птицы, рыбы, рептилии, амфибии, млекопитающие, насекомые или растения.
Применение для систем кодирования/декодирования мультипроекционных изображения
Ряд процессов, описанных выше, может применяться к системе кодирования/декодирования мультипроекционных изображения для кодирования/ декодирования мультипроекционных изображения, содержащих изображение множества проекций. В этом случае необходимо только, чтобы при кодировании/декодировании каждой из проекций применялась представленная технология.
Применение для системы кодирования/декодирования послойного изображения
Кроме того, ряд описанных выше процессов может применяться к системе кодирования (масштабируемого кодирования)/декодированияпослойного изображения для кодирования/декодирования послойного изображения, которое формируется во множество слоев (иерархических), так чтобы иметь функцию возможности масштабирования в отношении заданного параметра. В этом случае необходимо только, чтобы при кодировании/декодировании каждого из слоев применялась представленная технология.
Компьютер
Ряд процессов, описанных выше, могут выполняться с помощью аппаратурного обеспечения или могут выполняться посредством программного обеспечения. В случае, когда ряд процессов выполняется посредством программного обеспечения, программа, составляющая программное обеспечение, устанавливается на компьютер. Здесь компьютер означает компьютер, включенный в аппаратное обеспечение, компьютер, который может выполнять различные виды функций, устанавливая различные виды программ, например, универсальный персональный компьютер и т.п.
На фиг. 41 приведена блок-схема примера конфигурации аппаратурного обеспечения компьютера, в соответствии с программой исполняющего упомянутые выше последовательности обработки.
В компьютере 800, показанном на фиг. 41, центральный процессор 801 (Central Processing Unit, CPU), постоянное запоминающее устройство 802 (Read Only Memory, ROM) и оперативное запоминающее устройство 803 (Random Access Memory, RAM) соединяются друг с другом через шину 804.
Шина 804 также соединяется с интерфейсом 810 ввода-вывода. Устройство 811 ввода, устройство 812 вывода, запоминающее устройство 813, блок 815 связи и дисковод 110 соединяются с интерфейсом 810 ввода-вывода.
Устройство 811 ввода содержит, например, клавиатуру, мышь, микрофон, сенсорную панель, входной терминал и т.п. Устройство 812 вывода содержит, например, дисплей, громкоговоритель, выходной терминал и т.п. Запоминающее устройство 813 содержит, например, жесткий диск, диск RAM, энергонезависимую память и т.п. Блок 814 связи содержит, например, сетевой интерфейс. Дисковод 815 приводит в действие съемный носитель 821, такой как магнитный диск, оптический диск, магнито-оптический диск и полупроводниковая память.
В компьютере, конфигурированном таким образом, как описано выше, CPU 801, например, загружает в RAM 803 программу, хранящуюся в запоминающем устройстве 813, через интерфейс 810 ввода-вывода и шину 104 и выполняет программу, исполняя, таким образом, ряд описанных выше процессов. Данные и т.п., необходимые для выполнения различных видов обработки посредством CPU 801, также должным образом хранятся в RAM 803.
Программа, которая должна выполняться компьютером (CPU 801) может для применения быть, например, записана на съемный носитель в качестве пакетного носителя и т.п. В этом случае, дисковод 815 снабжается съемным носителем 821, позволяя, таким образом, устанавливать программу в запоминающее устройство 813 через интерфейс 810 ввода-вывода.
Кроме того, эта программа может обеспечиваться через проводную или беспроводную среду передачи, такую как локальная сеть, Интернет или цифровое спутниковое вещание. В этом случае, программа может приниматься через блок 814 связи и может устанавливаться в запоминающее устройство 813.
В дополнение к этому, программа может также быть заранее установлена в ROM 802 или в запоминающее устройство 813.
Применение представленной технологии
Устройство 100 кодирования изображения и устройство 200 декодирования изображения, соответствующие описанным выше вариантам осуществления, могут, например, применяться для различных электронных устройств, таких как передающее устройство или приемное устройство при передаче спутникового вещания, кабельного вещания, такого как кабельное телевидение или Интернет, и связи с терминалом посредством мобильной связи, или для записывающего устройства для записи изображения на носителе, таком как оптический диск, магнитный диск и флэш-память, или для воспроизводящего устройства для воспроизведения изображения с такого записываемого носителя.
Первый пример применения: телевизионный приемник
На фиг. 42 показан пример схемной конфигурации телевизионного устройства, к которому может быть применим один из вариантов осуществления, описанных выше. Телевизионное устройство 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 управления.
Тюнер 902, демультиплексор 903, декодер 904, блок 905 видеопроцессора, блок 907 аудиопроцессора, блок 909 внешнего интерфейса и блок 910 управления соединяются друг с другом через шину 912.
В телевизионном устройстве 900, выполненном таким образом, декодер 904 может иметь функцию устройства 200 декодирования изображения, описанного выше. Короче говоря, декодер 904 может декодировать кодированные данные в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, телевизионное устройство 900 может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Кроме того, в телевизионном устройстве 900, выполненном таким способом, блок 905 видеопроцессора может, например, кодировать данные изображения, поданные на него от декодера 904, и может иметь возможность вывести результирующие кодированные данные за пределы телевизионного устройства 900 через блок 909 внешнего интерфейса. Затем блок 905 видеопроцессора может иметь функцию устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 905 видеопроцессора может кодировать данные изображения, поданные на него от декодера 904, в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, телевизионное устройство 900 может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Второй пример применения: мобильный телефон
На фиг. 43 показан пример схемной конфигурации мобильного телефона, к которому применяется один из подходящих вариантов осуществления, описанных выше. Мобильный телефон 920 содержит антенну 921, блок 922 связи, аудиокодек 923, громкоговоритель 924, микрофон 925, блок 926 камеры, блок 927 обработки изображения, блок 928 демультиплексирования, блок 929 записи/воспроизведения, блок 930 дисплея, блок 931 управления, блок 932 манипуляции и шину 933.
Антенна 921 соединяется с блоком 922 связи. Громкоговоритель 924 и микрофон 925 соединяются с аудиокодеком 923. Блок 932 манипуляции соединяется с блоком 931 управления. Блок 922 связи, аудиокодек 923, блок 926 камеры, блок 927 обработки изображения, блок 928 демультиплексирования, блок 929 записи/воспроизведения, блок 930 дисплея и блок 931 управления соединяются друг с другом через шину 933.
Мобильный телефон 920 выполняет такие операции, как передача/прием аудиосигнала, передача/прием электронной почты или данных изображения, получение изображения с помощью камеры и запись данных в различных режимах работы, в том числе, в аудиорежиме телефонного вызова, режиме передачи данных, режиме получения изображения и режиме видеотелефона.
В аудиорежиме телефонного вызова аналоговый аудиосигнал, созданный микрофоном 925, подается на аудиокодек 923. Аудиокодек 923 преобразует аналоговый аудиосигнал в аудиоданные и производит аналого-цифровое преобразование и сжимает результирующие аудиоданные. Затем аудиокодек 922 выводит аудиоданные после сжатия на блок 922 связи. Блок 922 связи кодирует и модулирует аудиоданные, чтобы создать передаваемый сигнал. Затем блок 922 связи через антенну 921 передает результирующий передаваемый сигнал на базовую станцию (не показана). Кроме того, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Затем блок 922 связи модулирует и декодирует принятый сигнал, чтобы создать аудиоданные, и выводит результирующие аудиоданные на аудиокодек 923. Аудиокодек 923 расширяет аудиоданные и выполняет их цифро-аналоговое преобразование, чтобы создать аналоговый аудиосигнал. Затем аудиокодек 923 подает результирующий аудиосигнал на громкоговоритель, который, в свою очередь, выводит звуковой сигнал.
Кроме того, в режиме передачи данных, например, блок 931 управления создает символьные данные, образующие электронную почту, в ответ на манипуляцию, производимую пользователем через блок 932 манипуляции. Кроме того, блок 931 управления заставляет блок 930 дисплея отображать на нем символы. Кроме того, блок 931 управления создает данные электронной почты в ответ на команду передачи, поданную пользователем через блок 932 манипуляции, и выводит результирующие данные электронной почты на блок 922 связи. Блок 922 связи кодирует и модулирует данные электронной почты, чтобы создать передаваемый сигнал. Затем блок 922 связи через антенну 921 передает результирующий передаваемый сигнал на базовую станцию (не показана). Кроме того, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Затем блок 922 связи демодулирует и декодирует принятый сигнал, чтобы создать принятый сигнал, и выводит результирующие данные электронной почты на блок 931 управления. Блок 931 управления заставляет блок 930 дисплея отображать на нем содержание электронной почты и подает данные электронной почты на блок 929 записи/воспроизведения, чтобы заставить блок 929 записи/воспроизведения записать данные электронной почты на носитель запоминающего устройства.
Блок 929 записи/воспроизведения имеет произвольно считываемый и перезаписываемый носитель для записи. Например, носитель для записи может быть встроенным носителем для записи, таким как RAM или флэш-память, или может быть внешним носителем для хранения данных, таким как жесткий диск, магнитный диск, магнитооптический диск, оптический диск, USB-память или карта памяти.
Кроме того, в режиме фотографирования, например, блок 926 камеры получает изображение объекта, чтобы создать данные изображения, и выводит результирующие данные изображения на блок 927 обработки изображения. Блок 927 обработки изображения кодирует данные изображения, введенные на него от блока 926 камеры, и подает кодированный поток на блок 929 записи/воспроизведения, чтобы заставить блок 929 записи/воспроизведения записать кодированный поток на его носитель запоминающего устройства.
Более того, в режиме отображения изображения блок 929 записи/воспроизведения считывает кодированный поток, записанный на носителе запоминающего устройства, и выводит кодированный поток, считанный таким образом, на блок 927 обработки изображения. Блок 927 обработки изображения декодирует кодированный поток, введенный на него от блока 929 записи/воспроизведения, и подает данные изображения на блок 930 дисплея, чтобы заставить блок 930 дисплея отображать на нем изображение.
Кроме того, в режиме видеотелефона, например, блок 928 демультиплексирования мультиплексирует видеопоток, кодированный блоком 927 обработки изображения, и аудиопоток, введенный в него от аудиокодека 923, и выводит поток, полученный путем мультиплексирования, на блок 922 связи. Блок 922 связи кодирует и модулирует поток, чтобы получить передаваемый сигнал. Затем блок 922 связи через антенну 921 передает результирующий передаваемый сигнал на базовую станцию (не показана). Кроме того, блок 922 связи усиливает и преобразует по частоте беспроводной сигнал, принятый через антенну 921, чтобы получить принимаемый сигнал. Кодированный битовый поток может быть введен в передаваемый сигнал и принимаемый сигнал. Затем блок 922 связи демодулирует и декодирует принимаемый сигнал, чтобы восстановить поток, и выводит восстановленный поток на блок 928 демультиплексирования. Блок 928 демультиплексирования выделяет видеопоток и аудиопоток из введенного потока и выводит видеопоток и аудиопоток на блок 927 обработки изображения и аудиокодек 923, соответственно. Блок 927 обработки изображения декодирует видеопоток, чтобы создать видеоданные. Результирующие видеоданные подаются на блок 930 дисплея и блок 930 дисплея отображает на нем последовательность изображения. Аудиокодек 923 расширяет аудиопоток и выполняет его цифро-аналоговое преобразование, чтобы создать аналоговый аудиосигнал. Затем аудиокодек 923 подает результирующий аудиосигнал на громкоговоритель 924, чтобы вывести звуковой сигнал.
В мобильном телефоне 920, выполненном таким образом, например, блок 927 обработки изображения может иметь функцию устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 927 обработки изображения может кодировать данные изображения в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, мобильный телефон 920 может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Кроме того, в мобильном телефоне 920, выполненном таким образом, например, блок 927 обработки изображения может иметь функцию устройства 200 декодирования изображения, описанного выше. Короче говоря, блок 927 обработки изображения может декодировать кодированные данные в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, мобильный телефон 920 может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Третий пример применения: устройство записи/воспроизведения
На фиг. 44 показан пример схемной конфигурации устройства записи/воспроизведениия, к которому может быть применим один из вариантов осуществления, описанных выше. Устройство 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, могут быть, например, универсальный цифровой диск (Digital Versatile Disc, DVD), диск (DVD-Video или DVD-Random Access Memory (DVD-RAM), DVD-Recordable (DVD-R), DVD-Rewritable (DVD-RW), DVD + Recordable (DVD+R), DVD + Rewritable (DVD+RW) и т.п.), диск Blu-ray (зарегистрированная торговая марка) и т.п.
Переключатель 946 в случае записи видео и аудио выбирает кодированный битовый поток, вводимый на него либо от тюнера 941, либо от кодера 943, и выводит кодированный битовый поток, выбранный таким образом, либо на HDD 944, либо на дисковод 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 записи/воспроизведения может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Кроме того, в устройстве 940 записи/воспроизведения, выполненном таким образом, например, декодер 947 может иметь функцию устройства 200 декодирования изображения, описанного выше. Короче говоря, декодер 947 может декодировать кодированные данные в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, устройство 940 записи/воспроизведения может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Четвертый пример применения: устройство съемки изображения
На фиг. 45 показан пример схемной конфигурации устройства съемки изображения, к которому применяется один из приемлемых вариантов осуществления, описанных выше. Устройство 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 управления. Блок 964 обработки изображения, блок 966 внешнего интерфейса, блок 967 памяти, привод 968 носителя данных, блок 969 OSD и блок 970 управления и т.п. соединяются друг с другом через шину 972.
Оптический блок 961 содержит объектив, механизм стопорения и т.п. Оптический блок 961 формирует оптическое изображение объекта на поверхности получения изображения блока 962 съемки изображения. Блок 962 съемки изображения имеет датчик изображения, такой как устройство с зарядовой связью (Charge Coupled Derive (CCD) или комплементарный метал-оксидный полупроводник (Complementary Metal Oxide Semiconductor, CMOS), и, используя фотоэлектрическое преобразование, преобразует оптическое изображение, сформированное на поверхности получения изображения, в сигнал изображения в виде электрического сигнала. Затем, блок 962 съемки изображения выводит сигнал изображения на блок 963 обработки сигнала.
Блок 963 обработки сигнала выполняет различные этапы обработки сигналов камеры, такие как г-образная коррекция, гамма-коррекция и коррекция цвета для сигнала изображения, введенного в него от блока 962 съемки изображения. Блок 963 обработки сигнала выводит данные изображения после обработки сигнала камеры на блок 964 обработки изображения.
Блок 964 обработки изображения кодирует данные изображения, введенные в него от блока 963 обработки сигнала, чтобы создать кодированные данные. Затем, блок 964 обработки изображения выводит результирующие кодированные данные на блок 966 внешнего интерфейса или на привод 968 носителя данных. Кроме того, блок 964 обработки изображения декодирует кодированные данные, введенные в него от блока 966 внешнего интерфейса или от привода 968 носителя данных, чтобы получить данные изображения. Затем, блок 964 обработки изображения выводит результирующие данные изображения на блок 965 дисплея. Кроме того, блок 964 обработки изображения может вывести данные изображения, введенные в него от блока 963 обработки сигнала на блок 965 дисплея, и может заставить блок 965 дисплея отображать на нем изображение. Кроме того, блок 964 обработки изображения может накладывать данные для отображения, полученные от блока 969 OSD, на изображение, которое должно быть выведено блок 965 дисплея.
Блок 969 OSD, например, создает изображение GUI, такое как меню, кнопка или курсор, и выводит результирующее изображение на блок 964 обработки изображения.
Блок 966 внешнего интерфейса, например, выполнен с возможностью формирования USB-терминала ввода-вывода. Например, во время печати изображения устройство 960 съемки изображения и принтер соединяются друг с другом через блок 966 внешнего интерфейса. Кроме того, по мере необходимости дисковод может подключаться к блоку 966 внешнего интерфейса. Например, съемный носитель, такой как магнитный диск или оптический даск, может монтироваться на дисковод и программа, считанная со съемного носителя, может устанавливаться в устройство 960 съемки изображения. Более того, блок 966 внешнего интерфейса может быть выполнен в форме сетевого интерфейса, соединяемого с сетью, такой как LAN или Интернет. То есть, блок 966 внешнего интерфейса играет в устройстве 960 съемки изображения роль передающего блока.
Носитель для записи, монтируемый на дисковод 968 носителя данных, может быть считываемым и перезаписываемым съемным носителем, таким как магнитный диск, магнито-оптический диск, оптический диск или полупроводниковая память. Кроме того, носитель для записи данных может жестко монтироваться на дисковод 968 носителя данных и, например, может быть выполнен с возможностью транспортируемого запоминающего устройства, такого как встроенный дисковод жесткого диска или твердотельный дисповод (Solid State Drive, SSD).
Блок 970 управления имеет процессор, такой как CPU, и память, такую как RAM и ROM. В памяти хранится программа, которая должна выполняться CPU, данные программы и т.п. Программа, хранящаяся в памяти, например, считывается во время активации с помощью CPU устройства съемки изображения, и затем выполняется. CPU выполняет программу, управляя, например, таким образом работой устройства 960 съемки изображения в соответствии с сигналом манипуляции, введенным в него от блока 971 интерфейса пользователя.
Блок 971 интерфейса пользователя соединяется с блоком 970 управления. Блок 971 интерфейса пользователя имеет, например, кнопку, переключатель и т.п. для манипуляции пользователем устройством 960 съемки изображения. Блок 971 интерфейса пользователя обнаруживает манипуляцию, произведенную пользователем через его составляющие элементы, чтобы получить сигнал манипуляции, и выводит результирующий сигнал манипуляции на блок 970 управления.
В устройстве 960 съемки изображения, выполненном таким образом, например, блок 964 обработки изображения может иметь функцию устройства 100 кодирования изображения, описанного выше. Короче говоря, блок 964 обработки изображения может кодировать кодированные данные изображения в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, устройство 960 съемки изображения может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Кроме того, в устройстве 960 съемки изображения, выполненном таким образом, например, блок 964 обработки изображения может иметь функцию устройства 200 декодирования изображения, описанного выше. Короче говоря, блок 964 обработки изображения может декодировать кодированные данные в соответствии с приемлемостью одного из способов, описанных в представленных выше вариантах осуществления. Применяя такую процедуру, устройство 960 съемки изображения может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Пятый пример применения: видеокомплект
Кроме того, представленная технология может также быть реализована в виде всех конфигураций, смонтированных на произвольном устройстве или на устройстве, образующем систему, например, в виде процессора как системы с большой степенью интеграции (Large Scale Integration, LSI) и т.п., в виде модуля, использующего множество процессоров и т.п., блока, использующего множество модулей и т.п., комплекта, в котором к блоку добавляются дополнительные функции и т.п. (то есть, конфигурация части устройства). На фиг. 46 показан пример схемной конфигурации видеокомплекта, к которому применяется представленная технология.
В последние годы прогрессировала многофункциональность электронных устройств. При разработке и производстве электронной аппаратуры часто видны случаи, когда часть конфигурации реализуется как предмет продажи, предложения и т.п., не только как случай, при котором реализация выполняется как конфигурация, обладающая одной функцией, а также как случай, при котором объединяется множество конфигураций, обладающих связанными функциями, так что реализация осуществляется в виде одного комплекта, имеющего множество функций.
Видеокомплект 1300, показанный на фиг. 46, имеет такую многофункциональную конфигурацию и получается, объединяя устройство, имеющее функцию, связанную с кодированием или декодированием (кодированием, декодированием или обеими) изображения, с устройством, имеющим другие функции, связанные с этой функцией.
Как показано на фиг. 46, видеокомплект 1300 имеет группу модулей, содержащую видеомодуль 1311, внешнюю память 1312, модуль 1313 управления электропитанием, входной модуль 1314 и т.п., и устройство, обладающее связующими функциями, в том числе, связанностью, 1321, камерой 1322, датчиком 1323 и т.п.
В модуле, функции некоторых компонент, связанные друг с другом, собираются в компонент, обладающий единой функцией. Хотя конкретная физическая конфигурация является произвольной, она, например, рассматривается как модуль, имеющий множество процессоров, имеющих соответствующие функции, элементы электронных схем, такие как резисторы и конденсаторы, другие устройства и т.п., расположенных на плате, которая должна интегрироваться с другой платой. Кроме того, также считается, что модуль объединяется с другими модулями, процессором и т.п., чтобы получить новый модуль.
В случае примера, показанного на фиг. 46, видеомодуль 1311 получают путем объединения конфигураций, имеющих связанные друг с другом функции обработки изображения. Видеомодуль 1311 имеет процессор выполнения приложений, видеопроцессор, широкополосный модем 1333 и радиочастотный модуль 1334.
Процессор получают путем интеграции друг с другом на полупроводниковом чипе конфигураций, имеющих заданные функции, основываясь на однокристальной системе (System on a Chip, SoC) и, например, обращаясь к крупномасштабной интеграции (Large Scale Integration, LSI) и т.п. Конфигурация, имеющая заданные функции, может быть логической схемой (аппаратурная конфигурация), может быть CPU, ROM, RAM и т.п. и программой, исполняемой, используя их (программная конфигурация), или может быть получена, объединяя вышеперечисленное друг с другом. Например, процессор может быть логической схемой, CPU, ROM, RAM и т.п., может быть реализован логической схемой (аппаратурная конфигурация) для некоторых его функций и может быть реализован посредством программы (программная конфигурация), исполняемой CPU для других его функций.
Процессор 1331 выполнения приложений, показанный на фиг. 46, является процессором для выполнения приложений, связанных с обработкой изображения. Для цели реализации заданной функции, приложение, выполняемое процессором 1331 выполнения приложений, выполняет не только процесс арифметических операций, но также, например, по мере необходимости, может управлять конфигурацией внутри или снаружи видеомодуля 1311, такого как видеопроцессор 1332.
Видеопроцессор 1332 является процессором, имеющим функцию, связанную с кодированием/декодированием (кодированием, декодированием или и тем, и другим) изображения.
В широкополосном модеме 1333 данные (цифровой сигнал), которые передаются через проводную или беспроводную (или через обе) широкополосные связи, которая осуществляется по широкополосной линии, такой как Интернет или телефонная сеть общего пользования, например, модулируются в цифровом виде для преобразования в аналоговый сигнал и аналоговый сигнал, который принимается через широкополосную связь, демодулируется для преобразования в данные (цифровой сигнал). Широкополосный модем 1333, например, обрабатывает произвольную информацию, такую как данные изображения, которые обрабатываются видеопроцессором 1332, поток, в котором кодируются данные изображения, прикладная программа и установочные данные.
Радиочастотный модуль 1334 является модулем для выполнения преобразования частоты, модуляции/декодуляции, усиления, фильтрации и т.п. для радиочастотного сигнала, передаваемого/принимаемого через антенну. Например, радиочастотный модуль 1334 выполняет преобразование частоты и т.п. для сигнала в основной полосе, создаваемого широкополосным модемом 1333, чтобы получить радиочастотный сигнал. Кроме того, например, радиочастотный модуль 1334 выполняет преобразование частоты и т.п. для радиочастотного сигнала, который принимается входным модулем 1314, чтобы создать сигнал в основной полосе.
Следует заметить, что, как показано пунктирной линией 1341 на фиг. 46, прикладной процессор 1331 и видеопроцессор 1332 могут интегрироваться друг с другом, чтобы образовывать конфигурацию одного процессора.
Внешняя память 1312 является модулем, который обеспечивается снаружи видеомодуля 1311 и который имеет запоминающее устройство, используемое видеомодулем 1311. Запоминающее устройство внешней памяти 1312 может быть реализовано посредством любой физической конфигурации. Однако, поскольку, в целом, запоминающее устройство внешней памяти 1312 часто используется для хранения большого объема данных, таких как данные изображения блока кадров, запоминающее устройство желательно реализовывать с помощью относительно дешевой и обладающей большой емкостью полупроводниковой памяти, такой как динамическая оперативная память (Dynamic Random Access Memory, DRAM).
Модуль 1313 управления электропитанием управляет и контролирует электропитание видеомодуля 1311 (составляющих элементов внутри видеомодуля 1311).
Входной модуль 1314 является модулем, обеспечивающим входную функцию (схемы на передающем/приемном конце на стороне антенны) для радиочастотного модуля 1334. Как показано на фиг. 46, входной модуль 1314, например, имеет блок 1351 антенны, фильтр 1352 и блок 1353 усиления.
Блок 1351 антенны имеет антенну для передачи/приема беспроводного сигнала и его периферийную конфигурацию. Блок 1351 антенны передает сигнал, поданный на него от блока 1353 усиления в качестве беспроводного сигнала и подает принятый беспроводной сигнал в качестве электрического сигнала (радиочастотного сигнала) на фильтр 1352. Фильтр 1352 выполняет процесс фильтрации и т.п. для радиочастотного сигнала, принимаемого через блок 1351 антенны, и подает радиочастотный сигнал после обработки на радиочастотный модуль 1334. Блок 1353 усиления усиливает радиочастотный сигнал, поданный на него от радиочастотного модуля 1334, и подает усиленный таким образом радиочастотный сигнал на блок 1351 антенны.
Модуль 1321 связанности является модулем, имеющим функцию, связанную с подключением к внешней среде. Физическая конфигурация блока 1321 связанности является произвольной. Например, модуль 1321 связанности имеет конфигурацию, обладающую функцией связи, отличной от той, которая согласуется со стандартом связи, которому соответствуют широкополосный модем 1333, внешний терминал ввода/вывода и т.п.
Например, модуль 1321 связанности может быть модулем с функцией связи, согласованной со стандартом беспроводной связи, таким как Bluetooth (зарегистрированная торговая марка), IEEE 802.11 (например, Wireless Fidelity (Wi-Fi) (зарегистрированная торговая марка)), связь в ближнем поле (Near Field Communication, NFC) или передача данных в инфракрасном диапазоне (InfraRed Data Association, IrDA), антенной, через которую сигнал, соответствующий стандарту, передается/принимается и т.п. Кроме того, например, модуль 1321 связанности может иметь модуль, обладающий функцией связи, совместимой со стандартом беспроводной связи, таким как Universal Serial Bus (USB) или High-Definition Multimedia Interface (HDMI) (зарегистрированная торговая марка) и терминал, совместимый с этим стандартом. Более того, например, модуль 1321 связанности может иметь другую функцию передачи данных (сигнала) и т.п., такую как аналоговый терминал ввода-вывода.
Следует заметить, что модуль 1321 связанности может содержать устройство назначения данных (сигнала) для передачи. Например, модуль 1321 связанности может иметь дисковод (содержащий не только дисковод съемного носителя, но также и жесткий диск, твердотельный дисковод (Solid State Drive, SSD), сетевое устройство хранения данных (Network Attached Storage, NAS) и т.п.) для считывания или записи данных на носителе для записи, таком как магнитный диск, оптический диск, магнито-оптический диск, полупроводниковая память и т.п. Кроме того, модуль 1321 связанности может иметь выходное устройство (монитор, громкоговоритель и т.п.) для изображения или аудио.
Камера 1322 является модулем, имеющим функцию получения изображения объекта и данных изображения, связанных с объектом. Данные изображения, полученные посредством получения изображения с помощью камеры 1322, подаются, например, на блок видеопроцессора 1332 для кодирования.
Датчик 1323 является модулем, имеющим функцию произвольного датчика, такого как аудиодатчик, датчик ультразвуковой волны, оптический датчик, датчик освещенности, инфракрасный датчик, датчик изображения, датчик вращения, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, датчик магнитной идентификации, датчик удара или температурный датчик. Данные, обнаруженные посредством датчика 1323, например, подаются на процессор 1331 выполнения приложений и затем используются приложением и т.п.
Конфигурация, описанная выше как модуль, может быть реализована как процессор или, напротив, конфигурация, описанная выше как процессор, может быть реализована как модуль.
В видеокомплекте 1300, имеющем конфигурацию, описанную выше, а также такую, как описано далее, представленная технология может применяться к видеопроцессору 1332. Поэтому, видеокомплект 1300 может быть реализован как комплект, к которому применяется представленная технология.
Пример конфигурации видеопроцессора
На фиг. 47 показан пример схемной конфигурации видеопроцессора 1332 (фиг. 46), к которому применяется представленная технология.
В случае примера, показанного на фиг. 47, видеопроцессор 1332 имеет функцию приема в качестве его входного сигнала видеосигнала и аудиосигнала и кодирования видеосигнала и аудиосигнала в соответствии с заданной системой и функцию декодирования кодированных видеоданных и аудиоданных и воспроизведения и вывода видеосигнала и аудиосигнала.
Как показано на фиг. 47, видеопроцессор 1332 имеет входной блок 1401 обработки видео, первый блок 1402 увеличения/уменьшения изображения, второй блок 1403 увеличения/уменьшения, блок 1404 процесса вывода видео, память 1405 кадров и блок 1406 управления памятью. Кроме того, видеопроцессор 1332 имеет механизм 1407 кодирования/декодирования, видеобуферы 1408А и 1408В элементарного видеопотока (Elementary Stream, ES) аудиобуферы 1409A и 1409B ES. Более того, видеопроцессор 1332 имеет аудиокодер 1410, аудиодекодер 1411, мультиплексор (Multiplexer, MUX) 1402, демультиплексор (Demultiplexer, DMUX) 1413 и буфер 1414 потока.
Входной блок 1401 обработки видео, например, получает видеосигнал, введенный в него от модуля 1321 связанности (фиг. 46) и т.п., и преобразует видеосигнал в цифровые данные изображения. Первый блок 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 кадров, и в дальнейшем записывает кодированные данные изображения в качестве видеопотока в буфер 1408А видео ES. Кроме того, например, механизм 1407 кодирования/декодирования последовательно считывает видеопотоки, переданные из видеобуфера 1408В ES, чтобы декодировать видеопотоки, считанные таким образом, и в дальнейшем записывает декодированные видеопотоки в качестве данных изображения в память 1405 данных. В процессе кодирования или в процессе декодирования механизм 1407 кодирования/декодирования использует память 1405 кадров в качестве рабочей области. Кроме того, например, при синхронизации запуска процесса для каждого макроблока, механизм 1407 кодирования/декодирования выводит сигнал синхронизации в блок 1406 управления памятью.
ES-буфер 1408А видео буферирует видеопоток, созданный механизмом 1407 кодирования/декодирования, и подает результирующий видеопоток на мультиплексор (MUX) 1412. ES-буфер 1408B видео буферирует видеопоток, поданный на него от демультиплексора (DMUX) 1413, и подает результирующий видеопоток на механизм 1407 кодирования/декодирования.
ES-буфер 1409A аудио буферирует аудиопоток, созданный аудиокодером 1410, и подает результирующий аудиопоток на мультиплексор (MUX) 1412. ES-буфер 1409B аудио буферирует аудиопоток, поданный на него от демультиплексора (DMUX) 1413, и подает результирующий аудиопоток на аудиодекодер 1411.
Аудиокодер 1410, например, подвергает аудиосигнал, введенный на него от модуля 1321 связанности и т.п., например, цифровому преобразованию и, например, кодирует результирующий аудиосигнал в соответствии с заданной системой, такой как аудиосистемой MPEG или системой AudioCode с номером 3 (AC3). Аудиокодер 1410 последовательно записывает аудиопотоки в качестве данных, полученных кодированием аудиосигнала, в ES-буфер 1409A аудио. Аудиодекодер 1411 декодирует аудиопоток, поданный на него от ES-буфера 1409B аудио, например, преобразует результирующий аудиопоток в аналоговый сигнал и подает результирующий аудиосигнал в качестве воспроизведенного аудиосигнала, например, на модуль 1321 связанности и т.п.
Мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток. Способ мультиплексирования (то есть, формат битового потока, создаваемого при мультиплексировании) является произвольным. Кроме того, во время мультиплексирования мультиплексор (MUX) 1412 может также добавлять к битовому потоку заданную информацию заголовка и т.п. Короче говоря, мультиплексор (MUX) 1412 может преобразовывать формат потока с помощью мультиплексирования. Например, мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток, чтобы преобразовать результирующий поток в транспортный поток как битовый поток формата, пригодного для пересылки. Кроме того, например, мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток, чтобы преобразовать результирующий поток в данные (файловые данные) в формате файла для записи.
Демультиплексор (DMUX) 1413 демультиплексирует битовый поток, в котором мультиплексированы видеопоток и аудиопоток, в соответствии со способом, пригодным для мультиплексирования с помощью мультиплексора (MUX) 1412. Короче говоря, демультиплексор (DMUX) 1413 извлекает видеопоток и аудиопоток из битового потока, считанного из буфера 1414 потока (разделяет видеопоток и аудиопоток друг от друга). Короче говоря, демультиплексор (DMUX) 1413 может преобразовывать формат потока с помощью демультиплексирования (может выполнять преобразование, обратное преобразованию, выполняемому мультиплексором )MUX) 1412). Например, демультиплексор (DMUX) 1413, например, получает транспортный поток, посланный ему от модуля 1321 связанности, широкополосного модема 1333 и т.п., через буфер 1414 потока, и демультиплексирует транспортный поток, полученный таким образом, разрешая, таким образом, преобразование результирующего потока в видеопоток и аудиопоток. Кроме того, демультиплексор (DMUX) 1413, например, получает файловые данные, считанные с различного вида носителей записи данных, например, модулем 1321 связанности через буфер 1414 потока, и демультиплексирует файловые данные, полученные таким образом, разрешая, таким образом, преобразование результирующих данных в видеопоток и аудиопоток.
Буфер 1414 потока буферирует битовый поток. Например, буфер 1414 потока буферирует траспортный поток, поданный на него от мультиплексора (MUX) 1412, и подает транспортный поток, например, на модуль связанности 1321, широкополосный модем 1333 и т.п. в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Например, буфер 1414 потока буферирует транспортный поток, поданный на него от мультиплексора (MUX) 1412, и подает транспортный поток, например, на модуль связанности 1321, широкополосный модем 1333 и т.п. в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Более того, буфер 1414 потока, например, буферирует транспортный поток, полученный через модуль 1321 связанности, широкополосный модем 1333 и т.п., и подает транспортный поток, полученный таким образом, на демультиплексор (DMUX) 1413 в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Кроме того, буфер 1414 потока, например, буферирует файловые данные, считанные с различных видов носителей для записи данных в модуле 1321 связанности и т.п., и подает файловые данные, буферированные таким образом на демультиплексор (DMUX) 1413 в заданный момент времени или в ответ на запрос, выданный извне или откуда-либо еще.
Далее, со ссылкой на пример, будет приведено описание последовательности выполнения этапов работы видеопроцессора 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 аудио считываются в мультиплексор (MUX) 1412 для мультиплексирования и затем преобразуются в транспортный поток и файловые данные и т.п. После того, как транспортный поток, созданный мультиплексором (MUX) 1412 буферирован в буфере 1414 потока, транспортный поток, буферированный таким образом, выводится во внешнюю сеть, например, через модуль 1321 связанности, широкополосный модем 1333 и т.п. Кроме того, после того, как файловые данные, созданные мультиплексором (MUX) 1412 буферируются в буфере 1414 потока, файловые данные, буферированные таким образом, выводятся, например, в модуль 1321 связанности и т.п. и затем записываются на различного вида носителей для записи данных.
Кроме того, после того, как транспортный поток, введенный от внешней сети на видеопроцессор 1332 через, например, модуль 1321 связанности, широкополосный модем 1333 и т.п., буферирован в буфере 1414 потока, транспортный поток, буферированный таким образом, демультиплексируется демультиплексором 1413 (DMUX). Кроме того, после того, как файловые данные, которые считываются с различных видов носителей для записи данных, например, в модуле 1321 связанности и т.п. и вводятся на видеопроцессор 1332, буферируются в буфере 1414 потока, файловые данные, буферированные таким образом, демультиплексируются демультиплексором 1413 (DMUX). Короче говоря, транспортный поток или файловые данные, введенные на видеопроцессор 1332, разделяются на видеопоток и аудиопоток демультиплексируются демультиплексором 1413 (DMUX).
Аудиопоток подается на аудиодекодер 1411через ES-буфер 1409B аудио и декодируется, чтобы воспроизвести аудиосигнал. Кроме того, после того, как видеопоток записан в ES-буфер 1408B, видеопоток последовательно считывается механизмом 1407 кодирования/декодирования для декодирования и затем записывается в память 1405 кадров. Декодированные данные изображения подвергаются процессу расширения/сжатия посредством второго блока 1403 расширения/сжатия изображения и должны быть записаны в память 1405 кадров. Затем данные декодированного изображения считываются на блок 1404 процесса вывода видео и преобразуются по формату, так чтобы соответствовать заданной системе 4:2:2Y/Cb/Cr, и дополнительно преобразуются в аналоговый сигнал, с тем, чтобы видеосигнал мог быть воспроизведен и выведен.
В случае, когда представленная технология применяется к видеопроцессору 1332, выполненному таким образом, необходимо только, чтобы представленная технология, относящаяся к описанным выше вариантам осуществления, применялась к механизму 1407 кодирования/декодирования. Короче говоря, механизм 1407 кодирования/декодирования может иметь функцию устройства 100 кодирования изображения, описанного выше, или функцию устройства 200 декодирования изображения или обоих устройств. Применяя такую процедуру, видеопроцессор 1332 может предложить результаты, схожие с результатами вариантов осуществления, описанных со ссылкой на фиг. 1-23.
Следует заметить, что в механизме 1407 кодирования/декодирования представленная технология (то есть, функция устройства 100 кодирования изображения или функция устройства 200 декодирования изображения или обе функции вместе) может быть реализована посредством аппаратного обеспечения, такого как логическая схема, может быть реализована посредством программного обеспечения, такого как встроенная программа, или может быть реализована посредством того и другого.
Пример другой конфигурации видеопроцессора
На фиг. 48 показан другой пример схемной конфигурации видеопроцессора 1332, к которому применяется представленная технология. В случае, показанном на фиг. 48, видеопроцессор 1332 имеет функцию кодирования/декодирования видеоданных в соответствии с заданной системой.
Более конкретно, как показано на фиг. 48, видеопроцессор 1332 имеет блок 1511 управления, интерфейс 1512 дисплея, механизм 1513 дисплея, механизм 1514 обработки изображения и внутреннюю память 1515. Кроме того, видеопроцессор 1332 имеет механизм 1516 кодека, интерфейс 1517 памяти, мультиплексор/демультиплексор (MUX DMUX) 1518, сетевой интерфейс 1519 и видеоинтерфейс 1520.
Блок 1511 управления управляет операциями обрабатывающих блоков внутри видеопроцессора 1332, такими как интерфейс 1512 дисплея, механизм 1513 дисплея, механизм 1514 обработки изображения и механизм 1516 кодека.
Как показано на фиг. 48, блок 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 кодека (например, в ответ на запрос). Внутренняя память 1515 может быть реализована любым запоминающим устройством. В целом, однако, внутренняя память 1515 испоьлзуется для хранения данных малого объема, таких как, во многих случаях, данные изображения или параметры блочных единиц. Поэтому, например, внутреннюю память 1515 желательно реализовать посредством полупроводниковой памяти, которая, хотя и имеет относительно малую емкость (например, по сравнению с внешней памятью 1312), обладает высокой скоростью реакции, например, подобной статической оперативной памяти (Static Random Access Memory, SRAM).
Механизм 1516 кодека выполняет процесс кодирования или декодирования данных изображения. Система кодирования/декодирования, которой соответствует механизм 1516 кодека, является произвольной, количество систем кодирования/декодирования может быть равно одной, двум или более. Например, механизм 1516 кодека может иметь функцию кодека для множества систем кодирования/декодирования и кодирование данных изображения или декодирование кодированных данных может выполняться в соответствии с одной выбранной из множества систем кодирования/декодирования.
В примерах, показанных на фиг. 48, механизм 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 (Scalable) 1544 является функциональным блоком для масштабируемого кодирования или масштабируемого декодирования данных изображения в соответствии с системой HEVC. HEVC/H.265 (Multi-view) 1545 является функциональным блоком для мультипроекционного кодирования или мультипроекционного декодирования данных изображения в соответствии с системой HEVC.
MPEG-DASH 1551 является функциональным блоком для передачи/приема данных изображения в соответствии с системой MPEG-Dynamic Adaptive Streaming over HTTP (MPEG-DASH). MPEG-DASH является технологией выполнения потоковой передачи видео, используя протокол передачи гипертекста (HyperText Transfer Protocol, HTTP). Одной из особенностей MPEG-DASH является то, что ее пригодность для множества фрагментов заранее подготовленных кодированных данных, в которые разрешающие способности и т.п. различаются друг от друга, выбирается в сегментном блоке и передается. MPEG-DASH 1551 выполняет создание потока, соответствующего стандарту, управляет передачей потока и т.п. и в отношении кодирования/декодирования данных изображения использует MPEG-2 Video 1541 - HEVC/H.265 (Multi-view) 1545.
Интерфейс 1517 памяти является интерфейсом для внешней памяти 1312. Данные, поданные от механизма 1514 обработки изображения или от механизма 1516 кодека, подаются во внешнюю память 1312 через интерфейс 1517 памяти. Данные, поданные от механизма 1514 обработки изображения или от механизма 1516 кодека, подаются во внешнюю память 1312 через интерфейс 1517 памяти.
Мультиплексор/демультиплексор (MUX/DMUX) 1518 выполняет мультиплексирование или демультиплексирование различных видов данных, связанных с изображением, таких как битовый поток кодированных данных, данные изображения и видеосигнал. Способ мультиплексирования/демультиплексирования является произвольным. Например, во время мультиплексирования мультиплексор/ демультиплексор (MUX/ DMUX) 1518 может не только собирать множество фрагментов данных в один фрагмент данных, но также добавлять заданную информацию заголовка и т.п. к любому фрагменту данных. Кроме того, во время демультиплексирования мультиплексор/демультиплексор (MUX/ DMUX) 1518 может не только делить любой фрагмент данных на множество фрагментов данных, но может также добавлять заданную информацию заголовка и т.п. к любому из фрагментов данных, полученных при делении. Короче говоря, мультиплексор (MUX/DMUX 1518 посредством мультиплексирования/демультиплексирования может преобразовывать формат данных. Например, мультиплексор/демультиплексор (MUX/DMUX) 1518 может мультиплексировать битовые потоки, чтобы преобразовать результирующий битовый поток в транспортный поток как битовый поток формата для передачи или данные (файловые данные) формата файла для записи. Не стоит говорить, что его обратное преобразование также может выполняться посредством демультиплексирования.
Сетевой интерфейс 1519, например, является интерфейсом для широкополосного модема 1333, модуля связанности и т.п. Видеоинтерфейс 1520, например, является интерфейсом для модуля 1321 связанности, камеры и т.п.
Далее, со ссылкой на пример, будет приведено описание примера работы такого видеопроцессора 1332. Например, когда транспортный поток принимается от внешнего интерфейса через модуль 1321 связанности, широкополосный модем 1333 и т.п., этот транспортный поток подается на мультиплексор/демультиплексор (MUX/DMUX) 1518 через сетевой интерфейс 1519 для демультиплексирования и декодируется механизмом 1516 кодека. Данные изображения, полученные посредством декодирования механизмом 1516 кодека, например, подвергаются заданной обработке изображения с помощью механизма 1514 обработки изображения, подвергаются заданному преобразованию механизмом 1513 дисплея, например, подаются на модуль 1321 связанности и т.п. через интерфейс 1512 дисплея, и результирующее изображение отображается на мониторе. Кроме того, например, данные изображения, полученные путем декодирования механизмом 1516 кодека, повторно кодируются механизмом 1516 кодека и мультиплексируются мультиплексором/демультиплексором (MUX/DMUX) 1518 для преобразования в файловые данные. Результирующие файловые данные, например, выводятся на модуль связанности и т.п. через видеоинтерфейс 1520 для записи на различных видах носителей для записи данных.
Более того, например, файловые данные кодированных данных, полученные путем кодирования данных изображения, которые считываются с носителя для записи данных (не показан) модулем 1321 связанности и т.п., подаются на мультиплексор/демультиплексор (MUX/DMUX) 1518 через видеоинтерфейс 1520 для демультиплексирования и декодируются механизмом 1516 кодека. Данные изображения, полученные посредством декодирования механизмом 1516 кодека, подвергаются заданному процессу обработки изображения с помощью механизма 1514 обработки изображения, подвергаются заданному преобразованию механизмом 1513 дисплея, и, например, подаются на модуль 1321 связанности и т.п. через интерфейс 1512 дисплея. Затем результирующее изображение отображается на мониторе. Кроме того, например, данные изображения, полученные путем декодирования механизмом 1516 кодека, повторно кодируются механизмом 1516 кодека и мультиплексируются мультиплексором/демультиплексором (MUX/DMUX) 1518 для преобразования в транспортный поток. Затем результирующий транспортный поток, например, подается на модуль 1321 связанности, широкополосный модем 1333 и т.п. через сетевой интерфейс 1519 и передается другому устройству (не показано).
Следует заметить, что обмен данными изображения и другими данными между обрабатывающими блоками внутри видеопроцессора 1332, например, выполняется, используя внутреннюю память 1515 или внешнюю память 1312. Кроме того, модуль 1313 управления электропитанием, например, управляет подачей электропитания на блок 1511 управления.
В случае, когда представленная технология применяется к видеопроцессору 1332, выполненному таким образом, необходимо только, чтобы представленная технология, относящаяся к описанным выше вариантам осуществления, применялась к механизму 1516 кодека. Короче говоря, например, необходимо только, чтобы механизм 1516 кодека имел функцию устройства 100 кодирования изображения, описанного выше, или функцию устройства 200 декодирования изображения или обоих устройств. Применяя такую процедуру, видеопроцессор 1332 может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Следует заметить, что в механизме 1516 кодека представленная технология (то есть, функция устройства 100 кодирования изображения) может быть реализована посредством аппаратного обеспечения, такого как логическая схема, может быть реализована посредством программного обеспечения, такого как встроенная программа, или может быть реализована посредством того и другого.
Хотя оба примера конфигурации видеопроцессора 1332 до сих пор были приведены в качестве примера, конфигурация видеопроцессора 1332 является произвольной и, таким образом, произвольные конфигурации, отличные от этих двух примеров, описанных выше, могут быть применимы. Кроме того, хотя видеопроцессор 1332 может быть выполнен в виде одного полупроводникового чипа, видеопроцессор 1332 может также быть выполнен в виде множества полупроводниковых чипов. Например, видеопроцессор 1332 может быть выполнен в виде трехмерной слоистой LSI, в которой множество полупроводников располагаются слоями друг над другом. Кроме того, видеопроцессор 1332 может быть реализован в виде множества LSI.
Примеры применения в устройстве
Видеокомплект 1300 может быть встроен в различные виды устройств для обработки данных изображения. Например, видеокомплект 1300 может быть встроен в телевизионное устройство 900 (фиг. 2), мобильный телефон 920 (фиг. 43), устройство 940 записи/считывания (фиг. 44), устройство 960 съемки изображения (фиг. 45) и т.п. Встраивая видеокомплект 1300 в устройство, это устройство может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Следует заметить, что даже в случае части составляющих элементов видеокомплекта 1300, описанного выше, эта часть может быть реализована как составляющий элемент, к которому применяется представленная технология, пока такая часть содержит видеопроцессор 1332. Например, только видеопроцессор 1332 может быть реализован как видеопроцессор, к которому применяется представленная технология. Кроме того, например, процессор, видеомодуль 131 и т.п., указанные пунктирной линией 1341, как описано выше, могут быть реализованы как процессор, модуль и т.п., к которым применяется представленная технология. Более того, например, видеомодуль 1311, внешняя память 1312, модуль 1313 управления электропитанием и входной модуль 1314 могут объединяться друг с другом, чтобы также быть реализованными как видеоблок 1361, к которому применяется представленная технология. Любая из конфигураций может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Короче говоря, в различные виды устройств для обработки данных изображения может быть введена любая конфигурация, аналогично случаю видеокомплекта 1300, пока такая конфигурация содержит в себе видеопроцессор 1332. Например, для видеопроцессора 1332, процессор, указанный пунктирной линией 1341, видеомодуль 1311 или видеоблок 1361 могут быть встроены в телевизионное устройство 900 (фиг. 42), мобильный телефон 920 (фиг. 43), устройство 940 записи/считывания (фиг. 44), устройство 960 съемки изображения (фиг. 45) и т.п. Затем, встраивая видеокомплект 1300 с любой конфигурацией, в которой в устройстве применяется представленная технология, это устройство может предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23, аналогично случаю видеокомплекта 1300.
Шестой пример применения: сетевая система
Кроме того, представленная технология может также применяться к сетевой системе, состоящей из множества устройств. На фиг. 49 показан пример схемной конфигурации сетевой системы, к которой применяется представленная технология.
Сетевая система 1600, показанная на фиг. 49, является системой, в которой устройства через сеть обмениваются информацией, связанной с изображением (движущимся изображением). Облачная служба 1601 сетевой системы 1600 является системой, обеспечивающей сервис, связанный с изображением (подвижным изображением) для такого терминала, как компьютер 1611, аудио-видео (Audio Visual, AV) устройство 1612, терминал 1613 портативного типа для обработки информации, устройство 1614 Интернета вещей (Internet of Things, IoT) и т.п., которые средствами связи соединяются с облачной службой 1601. Например, облачная служба 1601 обеспечивает сервис доставки терминалу контента изображения (движущегося изображения), такой как так называемая доставка движущегося изображения (по требованию или доставка в реальном времени). Кроме того, например, облачная служба 1601 обеспечивает резервный сервис для приема контента изображения (движущегося изображения) от терминала и хранение контента, принятого таким образом. Кроме того, например, облачная служба 1601 обеспечивает сервис для промежуточного обмена контентом изображения (движущегося изображения) между терминалами.
Физическая конфигурация облачной службы 1601 является произвольной. Например, облачная служба 1601 может иметь различные виды серверов, таких как сервер для сохранения и управления движущимся изображением, сервер для доставки движущегося изображения к терминалу, сервер для получения движущегося изображения от терминала и сервер для управления пользователями (терминалами) и платежами, и произвольную сеть, такую как Интернет или LAN.
Компьютер 1611, например, выполняется в виде устройства обработки информации, такого как персональный компьютер, сервер или рабочая станция. Устройство 1612 AV, например, выполняется в виде устройства обработки изображения, такого как телевизионный приемник, рекордер жесткого диска, игровое устройство или камера. Терминал 1613 обработки информации портативного типа, например, выполняется в виде устройства обработки информации портативного типа, такого как персональный компьютер узлового типа, планшетный терминал, мобильный телефон или смартфон. Устройство 1614 IoT, например, выполняется в виде произвольного объекта для проведения обработки, связанной с изображением, такого как машина, потребительская электроника, мебель, прочие вещи, IC-метка, или устройство карточного типа. Каждый из этих терминалов может иметь функцию связи и может соединяться с облачной службой 1601 (организовывать сеанс), осуществляя тем самым обмен информацией с облачной службой 1601 (осуществление связи). Кроме того, каждый из терминалов может осуществлять связь друг с другом. Связь между терминалами может осуществляться через облачную службу 1601 или может осуществляться без прохождения через облачную службу 1601.
Когда представленная технология применяется к сетевой системе 1600, как описано выше, и данными, связанными с изображением (движущимся изображением), обмениваются между терминалами или между терминалом и облачной службой 1601, данные изображения могут кодироваться/декодироваться, как описано выше в вариантах осуществления. Короче говоря, каждый из терминалов (компьютер 1611 для устройства 1614 IoT) и облачная служба 1601 могут иметь функцию устройства 100 кодирования изображения или устройства 200 декодирования изображения, описанные выше. Применяя такую процедуру, терминалы (компьютер 1611 для устройства 1614 IoT) или облачная служба 1601, осуществляющие обмен данными изображения, могут предложить результаты, схожие с результатами вариантов осуществления, описанных выше со ссылкой на фиг. 1-23.
Прочее
В этой связи, различные виды фрагментов информации, связанной с кодированными данными (битовым потоком), могут мультиплексироваться с кодированными данными, которые должны передаваться или записываться, или могут передаваться или записываться как разные фрагменты данных, связанных с кодированными данными, не проходящие через мультиплексирование с кодированными данными. Здесь, термин "связанный с", например, означает, что когда один фрагмент данных обрабатывается, другой фрагмент данных может использоваться (может быть связан). Короче говоря, фрагменты данных, связанные друг с другом, могут собираться как один фрагмент данных или могут делаться индивидуальными фрагментами данных. Например, информация, связанная с кодированными данными (изображением), может передаваться по пути прохождения передачи, отличному от пути прохождения при передаче кодированных данных (изображения). Кроме того, например, информация, связанная с кодированными данными (изображением), может записываться на носителе для записи данных, отличном от носителя для записи кодированных данных (изображения) (или в другой области записи того же самого носителя для записи). Следует заметить, что выражение "быть связанным с" может относиться не ко всем данным, а может относиться к части данных. Например, изображение и информация, соответствующая изображению, могут быть связаны друг с другом в произвольном блоке, таком как множество кадров, один кадр или часть внутри кадра.
Кроме того, как здесь описано, в представленном описании, такие термины, как "синтезировать", "мультиплексировать", "добавлять", "интегрировать", "содержать", "хранить", "вводить", "включать в" или "вставлять", означают, например, что множество элементов собираются в один элемент таким образом, что кодированные данные и метаданные собираются в один фрагмент данных, и означают один из способов "быть связанным с", описанным выше.
Кроме того, варианты осуществления представленной технологии никоим образом не ограничиваются описанными выше вариантами осуществления и в них могут быть произведены различные модификации, не отступая от сущности представленной технологии.
Например, в представленном описании система означает набор из множества составляющих элементов (устройств, модулей (компонент) и т.п.), независимо от того, располагаются ли все составляющие элементы в одном и том же шасси. Поэтому, множество устройств, располагающихся в разных шасси и соединенных друг с другом через сеть, и одно устройство, в котором множество модулей располагаются в одном шасси, в любом случае, образуют систему.
Кроме того, конфигурация, которая описывается как одно устройство (или блок обработки), может быть разделена на части, так чтобы быть конфигурированной как множество устройств (или блоков обработки). В отличие от этого, составляющие элементы, которые в приведенном выше описании представляются как множество устройств (или блоков обработки), могут быть собраны так, чтобы быть выполненными как одно устройство (или блок обработки). Кроме того, не стоит говорить, что составляющие элементы, отличные от составляющих элементов, описанных выше, могут быть добавлены к составляющим элементам устройств (блок блоков обработки). Более того, если конфигурация и выполняемая операция являются, по существу, одинаковыми с точки зрения всей системы, часть конфигурации определенного устройства (определенного блока обработки) может быть введена в конфигурацию другого устройства (или другого блока обработки).
Кроме того, например, представленная технология может применять конфигурацию облачных вычислений для обработки одной функции, так чтобы использовать ее совместно множеством устройств совместным и объединенным способом через сеть.
Кроме того, например, описанная выше программа может выполняться в произвольном устройстве. В этом случае, необходимо только, чтобы устройство обладало необходимой функцией (так, как функциональный блок) и могло, таким образом, получать необходимую информацию.
Кроме того, этапы, описанные в приведенных выше блок-схемах последовательности выполнения операций, могут выполняться не только в одном устройстве, а также выполняться множеством устройств совместным способом. Более того, в случае, когда множество фрагментов информации включаются в один этап, множество фрагментов обработки, включенных в один этап, могут выполняться не только в одном устройстве, но также выполняться множеством устройств совместным способом.
В этой связи, программа, которая должна выполняться компьютером, может выполняться при обработке на этапах, описывающих программу, или может выполняться индивидуально параллельно или с необходимой синхронизацией тогда, когда делается запрос. Более того, фрагменты обработки на этапах, описывающих эту программу, могут выполняться параллельно с фрагментами обработки другой программы или могут выполняться в сочетании с фрагментами обработки другой программы.
Следует заметить, что каждая из множества представленных технологий, описанных выше в представленном описании, может реализовываться индивидуально и в одиночку, если при этом не возникает конфликт. Не стоит говорить, что множество произвольных представленных технологий могут также быть реализованы в сочетании друг с другом. Например, представленная технология, описанная в любом из вариантов осуществления, может также быть реализована в сочетании с представленной технологией, описанной в другом варианте осуществления. Кроме того, произвольная представленная технология, описанная выше, может быть реализована в сочетании с любой другой технологией, не описанной выше.
Следует заметить, что представленная технология может применять следующие построения.
(1)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью осуществления пропуска первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказуемый остаток первичному преобразованию, а также осуществления пропуска ограничения полосы пропускания коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию.
(2)
Устройство обработки изображения по п. (1), в котором, в случае, когда пропуск первичного преобразования не осуществляется, когда размер блока преобразования при первичном преобразовании и вторичном преобразовании равен или больше заданного размера, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования.
(3)
Устройство обработки изображения по п. (2), в котором, в случае, когда пропуск обратного первичного преобразования не осуществляется, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования, основываясь на размере блока преобразования в горизонтальном направлении и в вертикальном направлении при обратно первичном преобразовании и обратном вторичном преобразовании.
(4)
Устройство обработки изображения по п. (3), в котором, в случае, когда пропуск обратного первичного преобразования не осуществляется, когда больший из размера блока преобразования в горизонтальном направлении и размера блока в вертикальном направлении равен или больше заданного значения, блок управления осуществляет пропуск ограничения полосы пропускания для коэффициента вторичного преобразования.
(5)
Устройство обработки изображения по п. (3), в котором, в случае, когда пропуск обратного первичного преобразования не осуществляется, если сумма или произведение размера блока преобразования в горизонтальном направлении и размера блока в вертикальном направлении равны или больше заданного значения, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования.
(6)
Устройство обработки изображения по любому из пп. (2)-(5), в котором коэффициент вторичного преобразования после ограничения полосы пропускания для области, отличной от квадратной области, имеющей заданный размер в пределах продолговатого блока преобразования для обратного первичного преобразования и обратного вторичногго преобразования, делается равным 0, выполняя, таким образом, ограничение полосы пропускания.
(7)
Устройство обработки изображения по любому из пп. (2)-(5), в котором для пикселей, составляющих блок преобразования для обратного первичного преобразования и обратного вторичного преобразования, коэффициент вторичного преобразования после ограничения полосы пропускания для пикселя, имеющего порядок обработки, равный или больший, чем заданное значение, делается равным 0, выполняя, таким образом, ограничение полосы пропускания.
(8)
Способ обработки изображения, содержащий этап, на котором:
осуществляют управление посредством устройства обработки изображения, при котором осуществляется пропуск первичного преобразования, представляющего процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и вторичного преобразования, представляющего процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, а также осуществляется пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию.
(9)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью осуществления пропуска обратного первичного преобразования, представляющего обратное преобразование первичного преобразования как процесс преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и обратного вторичного преобразования, представляющего обратное преобразование вторичного преобразования как процесс преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, а также осуществления пропуска ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент преобразования вторичному преобразованию, так чтобы для коэффициента первичного преобразования выполнение ограничения полосы пропускания пропускалось.
(10)
Устройство обработки изображения по п. (9), в котором, когда пропуск обратного первичного преобразования не осуществляется, если размер блока преобразования при обратном первичном преобразовании и обратном вторичном преобразовании равен или больше заданного размера, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования.
(11)
Устройство обработки изображения по п. (10), в котором, когда пропуск обратного первичного преобразования не осуществляется, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования, основываясь на размере блока преобразования в горизонтальном направлении и в вертикальном направлении при обратном первичном преобразовании и обратном вторичном преобразовании.
(12)
Устройство обработки изображения по п. (11), в котором, в случае, когда пропуск обратного первичного преобразования не осуществляется, когда больший из размера блока преобразования в горизонтальном направлении и размера блока в вертикальном направлении равен или больше заданного значения, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования.
(13)
Устройство обработки изображения по п. (11), в котором, в случае, когда пропуск обратного первичного преобразования не осуществляется, если сумма или произведение размера блока преобразования в горизонтальном направлении и размера блока в вертикальном направлении равны или больше заданного значения, блок управления осуществляет выполнение ограничения полосы пропускания для коэффициента вторичного преобразования.
(14)
Устройство обработки изображения по п. (10), в котором коэффициент вторичного преобразования после ограничения полосы пропускания для области, отличной от квадратной области, имеющей заданный размер в пределах продолговатого блока преобразования для обратного первичного преобразования и обратного вторичногго преобразования, делается равным 0, выполняя, таким образом, ограничение полосы пропускания.
(15)
Устройство обработки изображения по п. (10), в котором для пикселей, составляющих блок преобразования для обратного первичного преобразования и обратного вторичного преобразования, коэффициент вторичного преобразования после ограничения полосы пропускания для пикселя, имеющего порядок обработки, равный или больший, чем заданное значение, делается равным 0, выполняя, таким образом, ограничение полосы пропускания.
(16)
Способ обработки изображения, содержащий этап, на котором:
осуществляют управление посредством устройства обработки изображения, при котором, в случае, когда выполняется пропуск обратного первичного преобразования, представляющего обратное преобразование первичного преобразования как процесс преобразования для предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, и обратного вторичного преобразования, представляющего обратное преобразование вторичного преобразования как процесс преобразования коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, а также осуществляют пропуск ограничения полосы пропускания для коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию.
(17)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью управления для каждого субблока пропуском процесса преобразования для коэффициента преобразования, полученного из предсказанного остатка как разности между изображением и предсказанным изображением этого изображения, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(18)
Устройство обработки изображения по п. (17), в котором блок управления для каждого субблока управляет пропуском вторичного преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(19)
Устройство обработки изображения по п. (17) или (18), дополнительно содержащее:
блок принятия решения, выполненный с возможностью принятия решения для каждого субблока, должно ли пропускаться вторичное преобразование, основываясь на коэффициенте квантования-первичного преобразования, полученном квантованием коэффициента первичного преобразования, и коэффициенте квантования-вторичного преобразования, полученном квантованием коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию,
в котором блок управления выполнен с возможностью управления для каждого субблока пропуском вторичного преобразования коэффициента первичного преобразования в ответ на результат принятия решения блоком принятия решения.
(20)
Устройство обработки изображения по любому из пп. (17)-(19), в котором блок принятия решения получает количество ненулевых коэффициентов коэффициента квантования-первичного преобразования и количество ненулевых коэффициентов коэффициента квантования-вторичного преобразования и для каждого субблока принимает решение, пропускать ли вторичное преобразование, основываясь на результирующем количестве ненулевых коэффициентов коэффициента квантования-первичного преобразования, результирующем количестве ненулевых коэффициентов коэффициента квантования-вторичного преобразования и заданном пороговом значении.
(21)
Устройство обработки изображения по любому из пп. (17)-(20), в котором в случае, когда количество ненулевых коэффициентов коэффициента квантования-первичного преобразования равно или меньше количества ненулевых коэффициентов коэффициента квантования-вторичного преобразования, и в случае, когда количество ненулевых коэффициентов коэффициента квантования-первичного преобразования или количество ненулевых коэффициентов коэффициента квантования-вторичного преобразования равно или меньше порогового значения, блок принятия решения принимает решение, что второе преобразование должно быть пропущено.
(22)
Устройство обработки изображения по любому из пп. (17)-(21), дополнительно содержащее:
блок квантования, выполненный с возможностью квантования коэффициента первичного преобразования, чтобы получить коэффициент квантования-первичного преобразования, и квантования коэффициента вторичного преобразования, чтобы получить коэффициент квантования-вторичного преобразования,
в котором блок принятия решения выполнен с возможностью принятия для каждого субблока решения, пропускать ли вторичное преобразование, основываясь на коэффициенте квантования-первичного преобразования и коэффициенте квантования-вторичного преобразования, которые получают посредством квантования блоком квантования.
(23)
Устройство обработки изображения по любому из пп. (17)-(22), в котором первичное преобразование является ортогональным преобразованием, и
вторичное преобразование является процессом преобразования для
преобразования коэффициента первичного преобразования в одномерный вектор,
выполнения матричного преобразования для одномерного вектора,
масштабирования одномерного вектора, для которого выполняется матричное вычисление, и
матричное преобразование одномерного вектора, масштабированного таким образом.
(24)
Устройство обработки изображения по любому из пп. (17)-(23), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования; и
блок вторичного преобразования, выполненный с возможностью осуществления вторичного преобразования в соответствии с управлением блоком управления.
(25)
Устройство обработки изображения по любому из пп. (17)-(24), дополнительно содержащее:
блок квантования, выполненный с возможностью квантования коэффициента вторичного преобразования, полученного, подвергая коэффициент первичного преобразования вторичному преобразованию посредством блока вторичного преобразования, или коэффициента вторичного преобразования; и
блок кодирования, выполненный с возможностью кодирования уровня коэффициента квантования-преобразования, полученного путем квантования коэффициента вторичного преобразования или коэффициента первичного преобразования посредством блока квантования.
(26)
Способ обработки изображения, содержащий этап, на котором:
управляют для каждого субблока пропуском процесса преобразования для коэффициента преобразования, полученного из предсказанного остатка как разности между изображением и предсказанным изображением этого изображения, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(27)
Устройство обработки изображения, содержащее:
блок управления, выполненный с возможностью управления для каждого субблока пропуском процесса обратного преобразования для коэффициента преобразования, из которого получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(28)
Устройство обработки изображения по п. (27), в котором блок управления для каждого субблока управляет пропуском обратного вторичного преобразования для коэффициента вторичного преобразования, полученного декодированием кодированных данных, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(29)
Устройство обработки изображения по п. (27) или (28), дополнительно содержащее:
блок принятия решения, выполненный с возможностью принятия для каждого субблока решения, должно ли пропускаться обратное вторичное преобразование, основываясь на коэффициенте вторичного преобразования,
в котором блок управления выполнен с возможностью управления для каждого субблока пропуском обратного вторичного преобразования в ответ на результат принятия решения блоком принятия решения.
(30)
Устройство обработки изображения по любому из пп. (27)-(29), в котором, в случае, когда количество ненулевых коэффициентов коэффициента вторичного преобразования равно или меньше заданного порогового значения, блок принятия решения принимает решение осуществить пропуск обратного вторичного преобразования.
(31)
Устройство обработки изображения по любому из пп. (27)-(30), в котором обратное вторичное преобразование является процессом преобразования для
преобразования коэффициента вторичного преобразования в одномерный вектор,
выполнения матричного преобразования для одномерного вектора,
масштабирования одномерного вектора, для которого выполняется матричное вычисление, и
матричного преобразования одномерного вектора, масштабированного таким образом.
(32)
Устройство обработки изображения по любому из пп. (27)-(31), дополнительно содержащее:
блок обратного вторичного преобразования, выполненный с возможностью осуществления обратного вторичного преобразования в соответствии с управлением блоком управления.
(33)
Устройство обработки изображения по любому из пп. (27)-(32), дополнительно содержащее:
блок обратного первичного преобразования, выполненный с возможностью осуществления обратного первичного преобразования для преобразования коэффициента первичного преобразования, полученного, подвергая коэффициент вторичного преобразования обратному вторичному преобразованию, в предсказанный остаток с помощью блока обратного вторичного преобразования.
(34)
Устройство обработки изображения по любому из пп. (27)-(33), дополнительно содержащее:
блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного путем декодирования кодированных данных,
в котором блок обратного вторичного преобразования выполнен с возможностью осуществления обратного вторичного преобразования в соответствии с управлением, осуществляемым блоком управления, для коэффициента вторичного преобразования, полученного обратным квантованием уровня коэффициента квантования-преобразования, выполняемого блоком обратного квантования.
(35)
Устройство обработки изображения по любому из пп. (27)-(34), дополнительно содержащее:
блок декодирования, выполненный с возможностью декодирования кодированных данных,
в котором блок обратного квантования выполнен с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного путем декодирования кодированных данных блоком декодирования.
(36)
Способ обработки изображения, содержащий этап, на котором:
управляют для каждого субблока пропуском процесса обратного преобразования для коэффициента преобразования, из которого получают предсказанный остаток как разность между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования, основываясь на количестве ненулевых коэффициентов коэффициента преобразования для каждого субблока.
(37)
Устройство обработки изображения, содержащее:
блок установки, выполненный с возможностью установки матрицы процесса преобразования для коэффициента преобразования, основываясь на контенте процесса преобразования и способе сканирования;
блок растеризации, выполненный с возможностью преобразования коэффициента преобразования, полученного процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, в одномерный вектор;
блок матричного вычисления, выполненный с возможностью матричного вычисления для одномерного вектора, используя матрицу, установленную блоком установки;
блок масштабирования, выполненный с возможностью масштабирования одномерного вектора, для которого выполняется матричное вычисление, и
блок матричного преобразования, выполненный с возможностью матричного преобразования масштабированного одномерного вектора.
(38)
Устройство обработки изображения по п. (37), дополнительно содержащее:
блок запоминающего устройства, выполненный с возможностью хранения кандидатов матрицы,
в котором блок установки выполнен с возможностью установки матрицы, выбирая матрицу, соответствующую контенту процесса преобразования и способу сканирования, из кандадатов матрицы, хранящихся в блоке запоминающего устройства.
(39)
Блок обработки изображения по п. (37) или (38), в котором блок установки устанавливает матрицу, соответствующую контенту процесса преобразования и способу сканирования, применяемым в блоке растеризации и блоке матричного преобразования.
(40)
Блок обработки изображения по любому из пп. (37)-(39) в котором блок установки устанавливает матрицу, основываясь на идентификаторе преобразования, указывающем контент процесса преобразования, и идентификаторе сканирования как информации, связанной со способом сканирования.
(41)
Устройство обработки изображения по любому из пп. (37)-(40), в котором идентификатор преобразования является идентификатором вторичного преобразования, указывающим контент вторичного преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, и
блок установки выполнен с возможностью установки матрицы вторичного преобразования для коэффициента первичного преобразования, полученного, подвергая предсказанный остаток первичному преобразованию, основываясь на идентификаторе вторичного преобразования и идентификаторе сканирования.
(42)
Устройство обработки изображения по любому из пп. (37)-(41), в котором первичное преобразование является ортогональным преобразованием.
(43)
Устройство обработки изображения по любому из пп. (37)-(42), дополнительно содержащее:
блок первичного преобразования, выполненный с возможностью осуществления первичного преобразования.
(44)
Устройство обработки изображения по любому из пп. (37)-(43), дополнительно содержащее:
блок квантования, выполненный с возможностью квантования коэффициента вторичного преобразования, полученного посредством матричного преобразования масштабированного одномерного вектора блоком матричного преобразования.
(45)
Устройство обработки изображения по любому из пп. (37)-(44), дополнительно содержащее:
блок кодирования, выполненный с возможностью кодирования уровня коэффициента квантования-преобразования, полученного путем квантования коэффициента вторичного преобразования посредством блока квантования.
(46)
Способ обработки изображения, содержащий этап, на котором:
устанавливают матрицу процесса преобразования для коэффициента преобразования, основываясь на контенте процесса преобразования и способе сканирования;
преобразуют коэффициенты преобразования, полученные процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, в одномерный вектор;
выполняют матричное вычисление для одномерного вектора, используя матрицу, установленную блоком установки;
масштабируют одномерный вектор, для которого выполняется матричное вычисление, и
выполняют матричное преобразование масштабированного одномерного вектора.
Способ обработки изображения, содержащий этапы, на которых:
устанавливают матрицу процесса преобразования для коэффициента преобразования, основываясь на контенте процесса преобразования и способе сканирования;
преобразуют коэффициент преобразования, полученный процессом преобразования предсказанного остатка, являющегося разностью между изображением и предсказанным изображением этого изображения, в одномерный вектор;
выполняют матричное вычисление для одномерного вектора, используя установленную матрицу;
масштабируют одномерный вектор, для которого выполняется матричное вычисление, и
выполняют матричное преобразование масштабированного одномерного вектора.
(47)
Устройство обработки изображения, содержащее:
блок установки, выполненный с возможностью установки матрицы процесса обратного преобразования для коэффициента преобразования, основываясь на контенте процесса обратного преобразования и способе сканирования;
блок растеризации, выполненный с возможностью преобразования коэффициента преобразования, из которого получают предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования в одномерный вектор;
блок матричного вычисления, выполненный с возможностью матричного вычисления для одномерного вектора, используя матрицу, установленную блоком установки;
блок масштабирования, выполненный с возможностью масштабирования одномерного вектора, для которого выполняется матричное вычисление, и
блок матричного преобразования, выполненный с возможностью матричного преобразования масштабированного одномерного вектора.
(48)
Устройство обработки изображения по п. (47), дополнительно содержащее:
блок запоминающего устройства, выполненный с возможностью хранения кандидатов матрицы,
в котором блок установки выполнен с возможностью установки матрицы, выбирая матрицу, соответствующую контенту процесса обратного преобразования и способу сканирования, из кандадатов матрицы, хранящихся в блоке запоминающего устройства.
(49)
Блок обработки изображения по п. (47) или (49), в котором блок установки устанавливает матрицу, соответствующую контенту процесса обратного преобразования и способу сканирования, применяемым в блоке растеризации и блоке матричного преобразования.
(50)
Блок обработки изображения по любому из пп. (47)-(49) в котором блок установки устанавливает матрицу, основываясь на идентификаторе преобразования, указывающем контент процесса обратного преобразования, и идентификаторе сканирования как информации, связанной со способом сканирования.
(51)
Устройство обработки изображения по любому из пп. (47)-(50), в котором идентификатор преобразования является идентификатором вторичного преобразования, указывающим контент обратного вторичного преобразования для коэффициента вторичного преобразования, полученного декодированием кодированных данных,
блок установки выполнен с возможностью установки матрицы обратного вторичного преобразования, основываясь на идентификаторе вторичного преобразования и идентификаторе сканирования,
блок растеризации выполнен с возможностью преобразования коэффициента вторичного преобразования в одномерный вектор, и
блок матричного преобразования выполнен с возможностью матричного преобразования масштабированного одномерного вектора, чтобы получить коэффициент первичного преобразования.
(52)
Устройство обработки изображения по любому из пп. (47)-(51), дополнительно содержащее:
блок обратного первичного преобразования, выполненный с возможностью проведения на коэффициенте первичного преобразования, полученном блоком матричного преобразования, обратного первичного преобразования для получения предсказанного остатка.
(53)
Устройство обработки изображения по любому из пп. (47)-(52), в котором обратное первичное преобразование является обратным ортогональным преобразованием.
(54)
Устройство обработки изображения по любому из пп. (47)-(53), дополнительно содержащее:
блок обратного квантования, выполненный с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного путем декодирования кодированных данных,
в котором блок растеризации выполнен с возможностью преобразования коэффициента вторичного преобразования, полученного посредством обратного квантования уровня коэффициента квантования-преобразования блоком обратного квантования, в одномерный вектор.
(55)
Устройство обработки изображения по любому из пп. (47)-(54), дополнительно содержащее:
блок декодирования, выполненный с возможностью декодирования кодированных данных,
в котором блок обратного квантования выполнен с возможностью обратного квантования уровня коэффициента квантования-преобразования, полученного путем декодирования кодированных данных блоком декодирования.
(56)
Способ обработки изображения, содержащий этап, на котором:
устанавливают матрицу процесса обратного преобразования для коэффициента преобразования, основываясь на контенте процесса обратного преобразования и способе сканирования;
преобразуют коэффициент преобразования, для которого получают предсказанный остаток, являющийся разностью между изображением и предсказанным изображением этого изображения, выполняя процесс обратного преобразования в одномерный вектор;
выполняют матричное вычисление для одномерного вектора, используя установленную матрицу;
масштабируют одномерный вектор, для которого выполняется матричное вычисление, и
выполняют матричное преобразование масштабированного одномерного вектора.
Перечень ссылочных позиций
100 Устройство кодирования изображения
101 Блок управления
111 Блок вычислений
112 Блок преобразования
113 Блок квантования
114 Блок кодирования
115 Блок обратного квантования
116 Блок обратного преобразования
117 Блок вычислений
118 Кадровая память
119 Блок предсказания
131 Блок первичного преобразования
132 Блок вторичного преобразования
141 Блок растеризации
142 Блок матричного вычисления
143 Блок масштабирования
144 Блок матричного преобразования
145 Блок выбора вторичного преобразования
146 Блок квантования
147 Блок принятия решения о количестве ненулевых коэффициентов
148 Переключатель
200 Устройство декодирования изображения
211 Блок декодирования
212 Блок обратного квантования
213 Блок обратного преобразования
214 Блок вычислений
215 Кадровая память
216 Блок предсказания
231 Блок обратного вторичного преобразования
232 Блок обратного первичного преобразования
241 Блок принятия решения о количестве ненулевых коэффициентов
242 Переключатель
243 Блок растеризации
244 Блок матричного вычисления
245 Блок масштабирования
246 Блок матричного преобразования
247 Блок выбора обратного вторичного преобразования
301 Блок выбора вторичного преобразования
311 Блок получения вторичного преобразования
312 Блок хранения вторичного преобразования
321 Блоу выбора обратного вторичного преобразования
331 Блок получения обратного вторичного преобразования
332 Блок хранения обратного вторичного преобразования
421, 441 Переключатель.