УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И СТРУКТУРА ДАННЫХ КОДИРОВАННЫХ ДАННЫХ
IMAGES DECODING DEVICE, IMAGES ENCODING DEVICE AND DATA STRUCTURE OF ENCODED DATA

Область техники
Настоящее изобретение относится к устройству декодирования изображений для декодирования коэффициентов преобразования, устройству кодирования изображений для кодирования коэффициентов преобразования и к структуре данных кодированных данных, генерируемой путем кодирования коэффициентов преобразования.
Уровень техники
Устройство кодирования движущихся изображений для генерации кодированных данных путем кодирования движущегося изображения и устройство декодирования движущихся изображений для генерации декодированного изображения путем декодирования кодированных данных используются для эффективной передачи или записи движущегося изображения.
Конкретная система кодирования движущихся изображений представлена (i) системами, применяемыми в H.264/MPEG-4.AVC и программном обеспечении KTA, которое является кодеком для совместной разработки в Video Coding Expert Group (VCEG), (ii) системой, применяемой в программном обеспечении Test Model under Consideration (TMuC), и (iii) системой, предложенной в High-Efficiency Video Coding (HEVC), которое является кодеком следующего поколения (непатентные источники 1 и 2).
Согласно вышеупомянутым системам кодирования движущихся изображений, (i) изображение обычно делится на блоки заранее определенного размера, (ii) коэффициент преобразования получается путем осуществления преобразования частоты по отношению к пиксельному значению для каждого из блоков, и (iii) процесс кодирования осуществляется в отношении полученного таким образом коэффициента преобразования. Большие и малые размеры по-разному задаются для блока, который нужно подвергнуть процессу кодирования (целевого блока кодирования). Чем больше размер целевого блока кодирования, тем больше количество кодированных коэффициентов преобразования.
В HEVC TestModel (HM) 2.0 предложен метод достижения снижения объема кодированных данных путем кодирования только не более 64 коэффициентов в блоке, имеющем размер не менее 16×16 пикселей. Например, был предложен метод, в котором только область на стороне низкочастотной составляющей, причем область имеет размер не более 8×8, кодируется для целевого блока кодирования, имеющего размер не менее 8×8 (непатентный источник 3).
Однако известно, что использование вышеупомянутого метода для пропуска кодирования коэффициентов, расположенных на стороне высокочастотной составляющей, может приводить к снижению качества изображения при кодировании коэффициентов в блоке большого размера.
При этом был предложен метод снижения объема кодированных данных путем получения, путем вычисления значения, указывающего комбинацию {'run', 'level'} для блока, имеющего размер не менее 8×8 пикселей (непатентный источник 4). Термин 'run' относится к количеству последовательных нулевых коэффициентов (серия 0) в порядке сканирования, и термин 'level' относится к абсолютному значению коэффициента.
В отличие от вышеизложенных предпосылок изобретения, согласно HM3.0, который является наследником HM2.0, предложение непатентного источника 4 применялось для снижения объема кодированных данных, и все коэффициенты преобразования кодируются также в блоке (единица преобразования) размером не менее 16×16.
Список библиографических ссылок
Непатентные источники
Непатентный источник 1
"WD2: Working Draft 2 of High-Efficiency Video Coding (JCTV C-D503)", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting: Daegu, KR, 1/2011 (опубликовано в январе 2011)
Непатентный источник 2
"WD3: Working Draft 3 of High-Efficiency Video Coding (JCTV C-E603)", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 3/2011 (опубликовано в марте 2011)
Непатентный источник 3
"Samsung's Response to the Call for Proposals on Video Compression Technology (JCTV C-A124)", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 1st Meeting: Dresden, DE, 4/2010 (опубликовано в апреле 2010)
Непатентный источник 4
"CE5: coefficient coding with LCEC for large blocks (JCTV C-E383)", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 3/2011 (опубликовано в марте 2011)
Сущность изобретения
Техническая проблема
В случае, когда процесс кодирования осуществляется в отношении блока большого размера, например, не менее 16×16 пикселей, к сожалению, возникают проблемы (i) увеличения размера таблицы для кодирования коэффициента и (ii) увеличения объема вычислений для нахождение значения таблицы.
Например, в блоке размером 16×16 пикселей, наибольшее количество коэффициентов равно 256. При этом в блоке 32×32 пикселя, наибольшее количество коэффициентов равно 1024.
В случае, когда процесс кодирования осуществляется в отношении большого блока, таблица, имеющая тенденцию к увеличению в размере, представляется таблицей сканирования, которая указывает порядок сканирования, и таблицей VLC для серийно-уровневого кодирования.
В частности, размер таблицы сканирования должен быть пропорционален количеству коэффициентов, и размер таблицы VLC для серийно-уровневого кодирования должен соответствовать длине наибольшей серии.
Настоящее изобретение было сделано ввиду указанных проблем, и задачей настоящего изобретения является обеспечение (a) устройства декодирования изображений, способного снижать (i) объем информации декодирования для получения коэффициента преобразования из кодированных данных и (ii) объем вычислений на основании информации декодирования, (b) устройства кодирования изображений и (c) структуры данных кодированных данных.
Решение проблемы
В нижеприведенном описании раскрыт аспект настоящего изобретения. Для решения вышеописанной проблемы, устройство декодирования изображений настоящего изобретения является устройством декодирования изображений для декодирования коэффициентов преобразования из кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство декодирования изображений включает в себя: средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц; и средство декодирования коэффициентов преобразования для декодирования коэффициента преобразования в каждой из множества подъединиц со ссылкой на информацию декодирования для использования при получении коэффициентов преобразования из кодированных данных, причем информация декодирования назначается подъединице.
Для решения вышеописанной проблемы, устройство кодирования изображений настоящего изобретения является устройством кодирования изображений для кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство кодирования изображений включает в себя: средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц; и средство кодирования коэффициентов преобразования для кодирования коэффициентов преобразования в единице преобразования со ссылкой на информацию кодирования для использования при кодировании коэффициентов преобразования, причем информация кодирования назначается подъединице.
Для решения вышеописанной проблемы, структура данных кодированных данных по настоящему изобретению является структурой данных кодированных данных, генерируемых путем кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем структура данных указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Вышеописанная компоновка сначала разбивает единицу преобразования в качестве цели декодирования на множество подъединиц в процессе декодирования.
Единица преобразования это единица, лежащая в основе преобразования пиксельных значений в частотную область. Единица преобразования имеет размер, например, 64×64 пикселя, 32×32 пикселя или 16×16 пикселей.
Каждая из множества подъединиц может быть, например, областью размером 8×8 в случае, когда единица преобразования имеет размер 16×16.
Вышеописанная компоновка задает множество подъединиц, полученных путем разбиения, в качестве цели обработки, одну за другой, и, таким образом, декодирует коэффициенты преобразования, включенные в каждую из множества подъединиц. Порядок подъединиц декодирования не имеет конкретных ограничений: процесс декодирования может осуществляться в любом порядке.
Вышеописанная компоновка, при декодировании коэффициентов преобразования, обращается к информации декодирования, назначенной каждой из множества подъединиц.
Информация декодирования относится к информации для использования при воспроизведении заранее определенного значения параметра для коэффициента преобразования из кода (битовой последовательности) в кодированных данных. Информация декодирования является, например, таблицей, указывающей связь для воспроизведения заранее определенного значения параметра для коэффициента преобразования из кода в кодированных данных. Другим примером информации декодирования является математическая формула для получения заранее определенного значения параметра для коэффициента преобразования из кода в кодированных данных.
Вышеописанная компоновка, другими словами, декодирует коэффициенты преобразования с использованием информации декодирования, заданной для подъединиц, каждая из которых меньше по размеру, чем единица преобразования, состоящая из подъединиц.
Таким образом, по сравнению с компоновкой осуществления процесса декодирования на основании информации декодирования, заданной для размера единицы преобразования, состоящей из множества подъединиц, вышеописанная компоновка может преимущественно снижать, например, объем информации декодирования и объем вычислений на основании информации декодирования.
Кроме того, вышеописанная компоновка, которая может снижать количество коэффициентов преобразования в качестве цели в процессе декодирования, может дополнительно снижать размер таблицы сканирования, которая задает последовательность сканирования коэффициентов преобразования.
Кроме того, вышеописанная компоновка также может снижать, например, объем памяти и мощность обработки, необходимые для процесса декодирования.
Подъединица может быть идентична единице кодирования, используемой в любом из соответствующих методов непатентных источников 1 и 2. Настоящее изобретение может, в этом случае, непосредственно использовать таблицу VLC (информацию декодирования), заранее заданную для единицы кодирования.
Устройство кодирования изображений, сконфигурированное вышеописанным образом, и структура данных, сконфигурированная вышеописанным образом из кодированных данных, достигают преимуществ, аналогичных тем, которые достигаются устройством декодирования изображений настоящего изобретения.
Нижеприведенное описание раскрывает другой аспект настоящего изобретения. Для решения вышеописанной проблемы, устройство декодирования изображений настоящего изобретения является устройством декодирования изображений для декодирования коэффициентов преобразования из кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство декодирования изображений включает в себя: средство декодирования относительной позиции для декодирования относительной позиции коэффициента преобразования в качестве цели декодирования по отношению к непосредственно ранее декодированному коэффициенту преобразования; и средство указания позиции для указания позиции коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Для решения вышеописанной проблемы, устройство кодирования изображений настоящего изобретения является устройством кодирования изображений для кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство кодирования изображений включает в себя средство кодирования относительной позиции для кодирования относительной позиции коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования.
Для решения вышеописанной проблемы, структура данных кодированных данных настоящего изобретения является структурой данных кодированных данных, генерируемых путем кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем структура данных указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Вышеописанная компоновка указывает позицию коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции. Вышеописанная компоновка может, таким образом, последовательно указывать позицию каждого коэффициента преобразования на основании относительной позиции. Единица преобразования является заранее определенной единицей для преобразования.
Вышеупомянутое кодирование 'run' предусматривает определение длины 'run' в соответствии с заранее определенной последовательностью сканирования. Таким образом, даже в случае, когда ненулевой коэффициент в качестве ссылки имеет двухмерные координаты, которые, в отношении относительной позиции в единице преобразования, близки к координатам следующего ненулевого коэффициента, 'run', в результате, может быть длинной. Это может увеличивать объем кодированных данных.
Вышеупомянутая тенденция примечательна в области для высокочастотной составляющей, для которой свойственен разброс коэффициентов преобразования области. Кроме того, более длинная 'run' означает необходимость подготовки, соответственно, таблицы большего размера.
Напротив, последовательное указание позиции коэффициента преобразования на основании относительной позиции может снижать объем кодированных данных в вышеописанном случае.
Вышеописанная компоновка, которая последовательно указывает позицию коэффициента преобразования на основании относительной позиции, может снижать объем кодированных данных, подлежащих декодированию.
Следовательно, вышеописанная компоновка может преимущественно снижать, например, объем информации декодирования и объем вычислений на основании информации декодирования.
Кроме того, вышеописанная конфигурация также может снижать, например, объем памяти и мощность обработки, необходимые для процесса декодирования.
Устройство кодирования изображений, сконфигурированное вышеописанным образом, и структура данных, сконфигурированная вышеописанным образом из кодированных данных, достигают преимуществ, аналогичных тем, которые достигаются устройством декодирования изображений настоящего изобретения.
Преимущества изобретения
Устройство декодирования изображений настоящего изобретения выполнено c возможностью включать в себя средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц; и средство декодирования коэффициентов преобразования для декодирования коэффициента преобразования в каждой из множества подъединиц со ссылкой на информацию декодирования для использования при получении коэффициентов преобразования из кодированных данных, причем информация декодирования назначается подъединице.
Устройство кодирования изображений настоящего изобретения выполнено c возможностью включать в себя средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц; и средство кодирования коэффициентов преобразования для кодирования коэффициентов преобразования в единице преобразования со ссылкой на информацию кодирования для использования при кодировании коэффициентов преобразования, причем информация кодирования назначается подъединице.
Структура данных кодированных данных настоящего изобретения указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Устройство декодирования изображений настоящего изобретения выполнено c возможностью включать в себя средство декодирования относительной позиции для декодирования относительной позиции коэффициента преобразования в качестве цели декодирования по отношению к непосредственно ранее декодированному коэффициенту преобразования; и средство указания позиции для указания позиции коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Устройство кодирования изображений настоящего изобретения выполнено c возможностью включать в себя средство кодирования относительной позиции для кодирования относительной позиции коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования.
Структура данных кодированных данных настоящего изобретения указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Вышеописанное устройство декодирования изображений может преимущественно снижать, например, (i) объем информации декодирования для использования при получении коэффициентов преобразования из кодированных данных и (ii) объем вычислений на основании информации декодирования. Дополнительно, вышеописанное устройство кодирования изображений и вышеописанная структура данных из кодированных данных, достигают преимуществ, аналогичных тем, которые достигаются устройством декодирования изображений.
Краткое описание чертежей
Фиг.1 – функциональная блок-схема, демонстрирующая примерную конфигурацию секции декодирования информации TU, включенной в устройство декодирования движущихся изображений одного варианта осуществления настоящего изобретения.
Фиг.2 – функциональная блок-схема, демонстрирующая общую конфигурацию устройства декодирования движущихся изображений.
Фиг.3 – схемы, демонстрирующие структуру данных кодированных данных, генерируемых устройством кодирования движущихся изображений одного варианта осуществления настоящего изобретения и декодируемых устройством декодирования движущихся изображений, где (a)-(d) – схемы, демонстрирующие слой изображения, слой среза, слой блока дерева и слой CU, соответственно.
Фиг.4 – блок-схема алгоритма, демонстрирующая примерную последовательность операций процесса разбиения целевого блока на области и кодирования/декодирования коэффициентов.
Фиг.5 – схема, демонстрирующая пример разбиения целевого блока размером 16×16.
Фиг.6 – схема, демонстрирующая примерный случай разбиения целевого блока на четыре области размером 8×8 для процесса декодирования.
Фиг.7 – схема, демонстрирующая примерный процесс декодирования, осуществляемый в случае, когда (i) ненулевой коэффициент существует в трех из четырех областей декодирования, включенных в целевой блок, и (ii) не существует ненулевого коэффициента в оставшейся одной из четырех областей декодирования.
Фиг.8 – схема, демонстрирующая пример изменения способа сканирования в соответствии с позицией каждой области декодирования.
Фиг.9 – схема, демонстрирующая пример разбиения целевого блока на неквадратные области.
Фиг.10 – функциональная блок-схема, демонстрирующая примерную конфигурацию устройства кодирования движущихся изображений одного варианта осуществления настоящего изобретения.
Фиг.11 – блок-схема, демонстрирующая примерную конфигурацию секции кодирования с переменной длиной слова, включенной в устройство кодирования движущихся изображений.
Фиг.12 – схемы, каждая из которых демонстрирует пример таблицы VLC для использования в преобразовании пары параметров {'run', 'level'} в кодовое число (битовую последовательность).
Фиг.13 – схема, демонстрирующая примерный случай связывания таблиц VLC с отдельными областями декодирования.
Фиг.14 – схема, демонстрирующая пример динамической оптимизации.
Фиг.15 – функциональная блок-схема, демонстрирующая примерную конфигурацию секции декодирования информации TU второго варианта осуществления настоящего изобретения.
Фиг.16 – блок-схема алгоритма, демонстрирующая последовательность операций процесса, в котором ненулевой коэффициент кодируется/декодируется путем указания относительной позиции.
Фиг.17 – пример, в котором секция декодирования информации TU осуществляет процесс декодирования.
Фиг.18 – функциональная блок-схема, демонстрирующая примерную конфигурацию секции декодирования информации TU третьего варианта осуществления настоящего изобретения.
Фиг.19 – пример кодирования ненулевых коэффициентов путем указания относительной позиции.
Фиг.20 – примерная конфигурация таблицы режима относительной позиции секции декодирования информации TU.
Фиг.21 – пример, в котором область на стороне высокочастотной составляющей целевого блока, представленного на фиг. 17 или фиг. 19, дополнительно подразделяется на три области.
Фиг.22 – пример таблиц VLC, которые связаны с каждой из трех областей, где (a) иллюстрирует таблицу VLC, к которой осуществляется обращение в случае, когда x или y не имеют значения, которое не меньше заранее определенного положительного значения, и (b) иллюстрирует таблицу VLC, к которой осуществляется обращение в случае, когда x или y не имеют значения, которое не больше заранее определенного отрицательного значения.
Фиг.23 – блок-схема алгоритма, демонстрирующая пример процесса кодирования/процесса декодирования, осуществляемого при переключении двух процессов.
Фиг.24 иллюстрирует процесс для кодирования/декодирования только 64 коэффициентов на стороне низкочастотной составляющей целевого блока, где (a) демонстрирует случай внешнего прогнозирования, и (b) демонстрирует случай внутреннего прогнозирования.
Фиг.25 демонстрирует пример структуры данных кодированных данных коэффициентов.
Фиг.26 иллюстрирует случай, когда осуществляется разбиение в двух классах.
Фиг.27 демонстрирует пример представления дерева флагов (представления квадродерева), указывающего состояние разбиения и состояние распределения коэффициентов целевого блока, представленного на фиг. 26.
Фиг.28 – блок-схема алгоритма, демонстрирующая пример последовательности операций рекурсивного процесса декодирования области.
Фиг.29 демонстрирует другой пример структуры данных кодированных данных коэффициентов.
Фиг.30 демонстрирует пример кодированных данных коэффициентов, показанных на фиг. 29.
Фиг.31 демонстрирует еще один пример структуры данных кодированных данных коэффициентов.
Фиг.32 демонстрирует пример кодированных данных коэффициентов, показанных на фиг. 31.
Фиг.33 в частности иллюстрирует одну из областей кодирования первого класса на фиг. 26.
Фиг.34 в частности иллюстрирует одну из областей кодирования первого класса на фиг. 26.
Фиг.35 иллюстрирует разбиение целевого блока размером 16×16.
Фиг.36 иллюстрирует разбиение целевого блока размером 16×16.
Фиг.37 иллюстрирует конфигурации (i) передающего устройства, снабженного устройством кодирования движущихся изображений, и (ii) принимающего устройства, снабженного устройством декодирования движущихся изображений, где (a) иллюстрирует передающее устройство, снабженное устройством кодирования движущихся изображений, и (b) иллюстрирует принимающее устройство, снабженное устройством декодирования движущихся изображений.
Фиг.38 иллюстрирует конфигурации (i) устройства записи, снабженного устройством кодирования движущихся изображений, и (ii) устройства воспроизведения, снабженного устройством декодирования движущихся изображений, где (a) иллюстрирует устройство записи, снабженное устройством кодирования движущихся изображений, и (b) иллюстрирует устройство воспроизведения, снабженное устройством декодирования движущихся изображений.
Описание вариантов осуществления
[1] Вариант осуществления 1
В нижеприведенном описании представлен первый вариант осуществления настоящего изобретения со ссылкой на фиг. 1-14. Прежде всего, опишем в общих чертах устройство 1 декодирования движущихся изображений (устройство декодирования изображений) и устройство 2 кодирования движущихся изображений (устройство кодирования изображений) со ссылкой на фиг.2. На Фиг.2 показана функциональная блок-схема, демонстрирующая общую конфигурацию устройства 1 декодирования движущихся изображений.
В устройстве 1 декодирования движущихся изображений и устройстве 2 кодирования движущихся изображений представленный на фиг. 2 применяются (i) метод, предусмотренный в стандарте H.264/MPEG-4 AVC, (ii) метод, предусмотренный в программном обеспечении KTA, которое является кодеком для совместной разработки в Video Coding Expert Group (VCEG), (iii) метод, предусмотренный в программном обеспечении Test Model under Consideration (TMuC), и (iv) метод, предложенный для High-Efficiency Video Coding (HEVC), который представляет собой кодек, наследующий вышеупомянутые фрагменты программного обеспечения.
Устройство 1 декодирования движущихся изображений принимает кодированные данные #1, полученные устройством 2 кодирования движущихся изображений, кодирующим движущееся изображение. Устройство 1 декодирования движущихся изображений декодирует принятые им кодированные данные #1 и выводит движущееся изображение #2 на внешнее устройство. В нижеприведенном описании представлена структура кодированных данных #1, после чего, подробно представлено устройство 1 декодирования движущихся изображений.
[Структура кодированных данных]
Со ссылкой на фиг. 3, в нижеприведенном описании представлен пример структуры кодированных данных #1, которые генерируются устройством 2 кодирования движущихся изображений и затем декодируются устройством 1 декодирования движущихся изображений. Кодированные данные #1 включает в себя, в порядке примера, видеопоследовательность и множество изображений, включенных в видеопоследовательность.
Фиг. 3 иллюстрирует иерархическую структуру кодированных данных #1, причем иерархия включает в себя слой изображения и другие слои под ним. (a)-(d) на фиг. 3, соответственно, иллюстрируют (i) слой изображения, который задает изображение PICT, (ii) слой среза, который задает срез S, (iii) слой блока дерева, который задает блок TBLK дерева, и (iv) слой CU, который задает единицу кодирования (CU), включенную в блок TBLK дерева.
(Слой изображения)
1
NS
Слой изображения задает набор данных, к которому устройство 1 декодирования движущихся изображений обращается для декодирования изображения PICT (далее также именуемого "целевое изображение") в качестве цели обработки. Изображение PICT, как показано в (a) на фиг. 3, включает в себя заголовок PH изображения и срезы от S до S (где NS – суммарное количество срезов, включенных в изображение PICT).
1
NS
В нижеприведенном описании, если отдельные срезы от S до S не требуется отличать друг от друга, нижние индексы в их обозначениях могут быть опущены. Это также относится к нижним индексам для других данных (описанных ниже), включенных в кодированные данные #1.
Заголовок PH изображения включает в себя группу параметров кодирования, к которым устройство 1 декодирования движущихся изображений обращается для выбора способа для декодирования целевого изображения. Примером параметра кодирования, включенного в заголовок PH изображения, является информация режима кодирования (entropy_coding_mode_flag), указывающая режим кодирования с переменной длиной слова, используемый устройством 2 кодирования движущихся изображений для кодирования.
Значение entropy_coding_mode_flag, равное 0, указывает, что изображение PICT закодировано посредством Энтропийного кодирования низкой сложности (Low Complexity Entropy Coding, LCEC) или Адаптивного кодирования с переменной длиной на основании контекста (Context-based Adaptive Variable Length Coding, CAVLC). Значение entropy_coding_mode_flag, равное 1, указывает, что изображение PICT закодировано посредством Адаптивного двоичного арифметического кодирования на основании контекста (Context-based Adaptive Binary Arithmetic Coding, CABAC).
Заголовок PH изображения также называется "набор параметров изображения
(PPS)".
(Слой среза)
1
NC
Слой среза задает набор данных, к которому устройство 1 декодирования движущихся изображений обращается для декодирования среза S (далее также именуемого "целевой срез") в качестве цели обработки. Срез S, как показано в (b) на фиг. 3, включает в себя заголовок SH среза и последовательность блоков от TBLK до TBLK дерева (где NC – суммарное количество блоков дерева, включенных в срез S).
Заголовок SH среза включает в себя группу параметров кодирования, к которым устройство 1 декодирования движущихся изображений обращается для выбора способа для декодирования целевого среза. Примером параметра кодирования, включенного в заголовок SH среза является информация указания типа среза (slice_type), которая задает тип среза.
Примеры типов среза, которые могут быть указаны информацией указания типа среза, включают в себя (1) I-срез, указывающий использование только внутреннего прогнозирования для кодирования, (2) P-срез, указывающий использование однонаправленного прогнозирования или внутреннего прогнозирования для кодирования, и (3) B-срез, указывающий использование однонаправленного прогнозирования, двунаправленного прогнозирования или внутреннего прогнозирования для кодирования.
Заголовок SH среза может включать в себя параметр фильтра, к которому обращается контурный фильтр (не показан), включенный в устройство 1 декодирования движущихся изображений.
(Слой блока дерева)
Слой блока дерева задает набор данных, к которому устройство 1 декодирования движущихся изображений обращается для декодирования блока TBLK дерева (далее также именуемого "целевой блок дерева") в качестве цели обработки.
1
NL
Блок TBLK дерева включает в себя заголовок TBLKH блока дерева и информационные элементы единиц кодирования от CU до CU (где NL – суммарное количество информационных элементов единиц кодирования, включенных в блок TBLK дерева). В нижеследующем описании, в первую очередь, обратимся к соотношению между блоком TBLK дерева и информацией единицы кодирования CU.
Блок TBLK дерева разбивается на единицы, указывающие соответствующие размеры блока для (i) внутреннего прогнозирования или внешнего прогнозирования и (ii) отдельных этапов для преобразования.
Блок TBLK дерева разбивается на вышеупомянутые единицы рекурсивно в структуре квадродерева. В нижеприведенном описании термин "дерево кодирования" используется для обозначения древовидной структуры полученной рекурсивным разбиением квадродерева.
В нижеприведенном описании термин "узел кодирования" используется для обозначения единицы, соответствующей листу, который является узлом на конце дерева кодирования. Дополнительно, нижеприведенное описание относится к узлу кодирования, который является основной единицей для процесса кодирования, также как "единица кодирования (CU)".
1
NL
Элементы информации единиц кодирования (в дальнейшем именуемой "информация CU") от CU до CU являются, таким образом, информационными элементами, соответствующими соответствующим узлам кодирования (единицам кодирования), полученным рекурсивным разбиением квадродерева блока TBLK дерева.
Дерево кодирования имеет корень, связанный с блоком TBLK дерева. Другими словами, блок TBLK дерева связан с самым верхним узлом в структуре квадродерева, рекурсивно включающей в себя множество узлов кодирования.
Каждому узлу кодирования придается такой размер, чтобы его длина и ширина были вдвое меньше, чем у узла кодирования, которому непосредственно принадлежит узел кодирования (то есть, единичного узла, который на один класс выше, чем узел кодирования).
Каждый узел кодирования может иметь размер, который зависит от информации указания размера и максимальной иерархической глубины для узла кодирования, которые включены в набор параметров последовательности SPS кодированных данных #1. В случае, когда, например, (i) блок TBLK дерева имеет размер 64×64 пикселя, и (ii) максимальная иерархическая глубина равна 3, узлы кодирования в классе блока TBLK дерева и в более низких классах могут иметь один из четырех размеров: 64×64 пикселя, 32×32 пикселя, 16×16 пикселей и 8×8 пикселей.
(Заголовок блока дерева)
Заголовок TBLKH блока дерева включает в себя параметр кодирования, к которому устройство 1 декодирования движущихся изображений обращается для выбора способа для декодирования целевого блока дерева. В частности, заголовок TBLKH блока дерева, как показано в (c) на фиг. 3, включает в себя (i) информацию разбиения блока дерева SP_TBLK, которая указывает шаблон, в котором целевой блок дерева подлежит разбиению на отдельные CU, и (ii) разность параметров квантования Δqp (qp_delta) которая указывает уровень шага квантования.
Информация разбиения блока дерева SP_TBLK это информация, указывающая дерево кодирования для разбиения блока дерева, и, в частности, информация, которая указывает (i) форму и размер каждой CU, включенной в целевой блок дерева и (ii) позицию каждой CU в целевом блоке дерева.
Информация разбиения блока дерева SP_TBLK может не указывать явно форму, размер и пр. каждой CU. Информация разбиения блока дерева SP_TBLK может, альтернативно, представлять собой, например, набор флагов (split_coding_unit_flag), указывающих, разбивать ли весь целевой блок дерева или частичную область блока дерева на четыре сегмента. В этом случае, информация разбиения блока дерева SP_TBLK может дополнительно указывать форму, размер и пр. блока дерева для указания формы, размера и пр. каждой CU.
Разность параметров квантования Δqp указывает разность qp-qp' между (i) параметром qp квантования для целевого блока дерева и (ii) параметром qp' квантования для блока дерева, кодированного непосредственно перед целевым блоком дерева.
(Слой CU)
Слой CU задает набор данных, к которому устройство 1 декодирования движущихся изображений обращается для декодирования CU (далее также именуемой "целевая CU") в качестве цели обработки.
В нижеприведенном описании представлена древовидная структура данных, включенных в информацию CU "CU", после чего, подробно рассмотрены сами данные. Каждый узел кодирования выступает в качестве узла для корня дерева прогнозирования (PT) и дерева преобразования (TT).
Дерево прогнозирования устроено так, что каждый узел кодирования либо не разбит, как блок прогнозирования, имеющий заданную позицию и заданный размер, либо разбит на множество блоков прогнозирования, каждый из которых имеет заданную позицию и заданный размер. Другими словами, термин "блок прогнозирования" относится к одной или множеству неперекрывающихся областей, которая(ые) образует(ют) узел кодирования. Дерево прогнозирования включает в себя один или множество блоков прогнозирования, полученных вышеупомянутым разбиением.
Процесс прогнозирования осуществляется для каждого блока прогнозирования. Нижеприведенное описание относится к блоку прогнозирования как единице для прогнозирования также в качестве "единицы прогнозирования (PU)".
Разбиение для дерева прогнозирования, в общем случае, бывает двух типов: разбиение для внутреннего прогнозирования и разбиение для внешнего прогнозирования.
Для внутреннего прогнозирования, каждый узел кодирования разбивается на один или множество блоков прогнозирования каждый размером 2N×2N (как у узла кодирования) или размером N×N.
Для внешнего прогнозирования, каждый узел кодирования разбивается на один или множество блоков прогнозирования каждый размером 2N × 2N (как у узла кодирования), 2N×N, N×2N, N×N и т.п.
Дерево преобразования устроено так, что каждый узел кодирования разбивается на один или множество блоков преобразования, каждый из которых имеет заданную позицию и заданный размер. Другими словами, термин "блок преобразования" относится к одной или множеству неперекрывающихся областей, которая(ые) образует(ют) узел кодирования. Дерево преобразования включает в себя один или множество блоков преобразования, полученных вышеупомянутым разбиением.
Процесс преобразования осуществляется для каждого блока преобразования. Нижеприведенное описание относится к блоку преобразования как к единице для преобразования также в качестве "единицы преобразования (TU)".
(Структура данных информации CU)
Теперь, со ссылкой на (d) на фиг. 3, перейдем к подробному описанию данных, включенных в информацию CU "CU". Как показано в (d) на фиг. 3, информация CU "CU", в частности, включает в себя флаг пропуска SKIP, информацию PT "PTI" и информацию TT "TTI".
Флаг пропуска SKIP это флаг, указывающий, применяется ли режим пропуска для целевой PU. В случае, когда флаг пропуска SKIP имеет значение 1, то есть режим пропуска применяется для целевой CU, информация PT "PTI" и информация TT "TTI" информации CU "CU" исключены. Флаг пропуска SKIP исключен в I-срезе.
Информация PT "PTI" это информация о PT, включенная в CU. Другими словами, информация PT "PTI" это набор элементов информации об одной или множестве отдельных PU, включенных в PT, и устройство 1 декодирования движущихся изображений обращается к нему при генерации прогнозируемого изображения. Информация PT "PTI", как показано в (d) на фиг. 3, включает в себя информацию PType типа прогнозирования и информацию PInfo прогнозирования.
Информация PType типа прогнозирования это информация, которая указывает, использовать ли внутреннее прогнозирование или внешнее прогнозирование в качестве способа для генерации прогнозируемого изображения для целевой PU.
Информация PInfo прогнозирования включает в себя либо информацию внутреннего прогнозирования, либо информацию внешнего прогнозирования в соответствии с которой способ прогнозирования указывает информацию PType типа прогнозирования. В нижеприведенном описании используется (i) термин "внутренняя PU" также для обозначения PU, для которой используется внутреннее прогнозирование, и (ii) термин "внешняя PU" также для обозначения PU, для которой используется внешнее прогнозирование.
Информация PInfo прогнозирования включает в себя информацию, которая указывает форму, размер и позицию целевой PU. Как описано выше, прогнозируемое изображение генерируется для каждой PU. Информация PInfo прогнозирования будет подробно описана ниже.
Информация TT "TTI" это информация о TT, включенная в CU. Другими словами, информация TT "TTI" это набор элементов информации об одной или множестве отдельных TU, включенных в TT, и устройство 1 декодирования движущихся изображений обращается к нему при декодировании остаточных данных. Нижеприведенное описание также относится к TU в качестве блока.
1
NT
Информация TT "TTI", как показано в (d) на фиг. 3, включает в себя (i) информацию разбиения TT SP_TU, которая указывает шаблон, в котором целевая CU подлежит разбиению на отдельные блоки преобразования, и (ii) информационные элементы TU от TUI до TUI (где NT – суммарное количество блоков, включенных в целевую CU).
В частности, информация разбиения TT SP_TU является информацией, которая определяет (i) форму и размер каждой TU, включенной в целевую CU, и (ii) позицию каждой TU в целевой CU. Информация разбиения TT SP_TU включает в себя, например, (i) информацию (split_transform_unit_flag), указывающую, разбивать ли целевой узел, и (ii) информацию (trafoDepth), указывающую глубину разбиения.
В случае, когда, например, CU имеет размер 64×64, разбиение CU может давать отдельные TU, каждая из которых имеет размер в диапазоне от 32×32 пикселя до 2×2 пикселя.
1
NT
Информационные элементы TU от TUI до TUI являются отдельными элементами информации об одной или множестве TU, включенных в TT. Информация TU "TUI" включает в себя, например, остаток прогнозирования квантования.
Остатки прогнозирования квантования это кодированные данные, генерируемые устройством 2 кодирования движущихся изображений, осуществляющим нижеследующие этапы 1-3 в отношении целевого блока, то есть блока в качестве цели обработки.
Этап 1: Осуществление дискретного косинусного преобразования (DCT) в отношении остатков прогнозирования, полученных вычитанием прогнозируемого изображения из целевого изображения кодирования
Этап 2: Квантование коэффициентов преобразования, полученных на этапе 1
Этап 3: Осуществление кодирования с переменной длиной слова в отношении коэффициентов преобразования, квантованных на этапе 2
qp/6
Вышеупомянутый параметр qp квантования указывает размер шага qp квантования, используемого устройством 2 кодирования движущихся изображений при квантовании коэффициентов преобразования (QP=2).
(Информация PInfo прогнозирования)
Как описано выше, информация PInfo прогнозирования бывает двух типов: информация внешнего прогнозирования и информация внутреннего прогнозирования.
Информация внешнего прогнозирования включает в себя параметр кодирования, к которому устройство 1 декодирования движущихся изображений обращается при генерации изображения внешнего прогнозирования посредством внешнего прогнозирования. В частности, информация внешнего прогнозирования включает в себя (i) информацию разбиения на внешние PU, которая указывает шаблон, в котором целевая CU подлежит разбиению на отдельные внешние PU, и (ii) и параметр внешнего прогнозирования для каждой внешней PU.
Параметр внешнего прогнозирования включает в себя индекс опорного изображения, оценочный индекс вектора движения и остаточный вектор движения.
Информация внутреннего прогнозирования, с другой стороны, включает в себя параметр кодирования, к которому устройство 1 декодирования движущихся изображений обращается при генерации изображения внутреннего прогнозирования посредством внутреннего прогнозирования. В частности, информация внутреннего прогнозирования включает в себя (i) информацию разбиения на внутренние PU, которая указывает шаблон, в котором целевая CU подлежит разбиению на отдельные внутренние PU, и (ii) параметр внутреннего прогнозирования для каждой внутренней PU. Параметр внутреннего прогнозирования это параметр, который указывает способ внутреннего прогнозирования (режим прогнозирования) для каждой внутренней PU.
[Устройство декодирования движущихся изображений]
В нижеприведенном описании представлена конфигурация устройства 1 декодирования движущихся изображений настоящего варианта осуществления со ссылкой на фиг. 1-5.
(Обзор устройства декодирования движущихся изображений)
Устройство 1 декодирования движущихся изображений генерирует прогнозируемое изображение для каждой PU. Устройство 1 декодирования движущихся изображений суммирует генерируемое им прогнозируемое изображение с остатками прогнозирования, полученными путем декодирования кодированных данных #1, для генерации декодированного изображения #2. Затем устройство 1 декодирования движущихся изображений выводит генерируемое им декодированное изображение #2 на внешнее устройство.
Устройство 1 декодирования движущихся изображений генерирует прогнозируемое изображение со ссылкой на параметры кодирования, полученные путем декодирования кодированных данных #1. Каждый из параметров кодирования является параметром, к которому устройство 1 декодирования движущихся изображений обращается для генерации прогнозируемого изображения. Параметры кодирования включают в себя (i) параметр прогнозирования, например, вектор движения, к которому производится обращение для межэкранного прогнозирования, и режим прогнозирования к которому производится обращение для внутриэкранного прогнозирования, (ii) размер, форму и пр. каждой PU, (iii) размер, форму и пр. каждого блока, и (iv) остаточные данные как разность между исходным изображением и прогнозируемым изображением. В нижеприведенном описании термин "вспомогательная информация" используется для обозначения, среди информационных элементов, включенных в параметры кодирования, набора всех информационных элементов, отличных от остаточных данных.
В нижеприведенном описании представлен примерный случай, когда PU и TU имеют такой же размер, как CU. Однако настоящий вариант осуществления не ограничивается такой конфигурацией и может быть реализован также в случае, когда PU и TU меньше по размеру, чем CU.
Дополнительно, в нижеприведенном описании используются термины "целевое изображение", "целевой срез", "целевой блок дерева", "целевой блок" и "целевая PU" для обозначения, соответственно, изображения (кадра), среза, блока дерева, блока и PU в качестве цели декодирования.
Блок дерева имеет размер, например, 64×64 пикселя. PU имеет размер, например, 64×64 пикселя, 32×32 пикселя, 16×16 пикселей, 8×8 пикселей или 4×4 пикселя. Однако эти размеры приведены исключительно в порядке примера. Блок дерева и PU могут иметь размеры, отличные от вышеуказанных.
(Компоновка устройства декодирования движущихся изображений)
В нижеприведенном описании представлена общая компоновка устройства 1 декодирования движущихся изображений вновь со ссылкой на фиг. 2. На Фиг. 2 показана функциональная блок-схема, демонстрирующая общую конфигурацию устройства 1 декодирования движущихся изображений.
Устройство 1 декодирования движущихся изображений, как показано на фиг. 2, включает в себя секцию 11 демультиплексирования по коду с переменной длиной слова, секцию 12 декодирования информации TU, секцию 13 обратного квантования/обратного преобразования, секцию 14 генерации прогнозируемого изображения, сумматор 15 и память 16 кадров.
[Секция демультиплексирования по коду с переменной длиной слова]
Секция 11 демультиплексирования по коду с переменной длиной слова демультиплексирует кодированные данные #1, соответствующие одному кадру, причем кодированные данные #1 поступают на устройство 1 декодирования движущихся изображений, и, таким образом, разделяет кодированные данные #1 на разные информационные элементы, включенные в иерархическую структуру, представленную на фиг. 3. Секция 11 демультиплексирования по коду с переменной длиной слова, например, разделяет кодированные данные #1 на срезы и затем каждый срез на блоки дерева со ссылкой на информацию, включенную в разные заголовки.
Разные заголовки включают в себя (1) информацию о способе для разбиения целевого изображения на срезы и (2) информацию о размере и форме каждого блока дерева, принадлежащего целевому срезу, и позиции каждого блока дерева в целевом срезе.
Затем секция 11 демультиплексирования по коду с переменной длиной слова разбивает целевой блок дерева на CU со ссылкой на информацию разбиения блока дерева SP_TBLK, включенную в заголовок TBLKH блока дерева. Секция 11 демультиплексирования по коду с переменной длиной слова также получает информацию TT "TTI" и информацию PT "PTI" для целевой CU.
Секция 11 демультиплексирования по коду с переменной длиной слова подает на секцию 12 декодирования информации TU, в заранее определенном порядке, информационные элементы TU "TUI", включенные в информацию TT "TTI", полученную для целевой CU. Секция 11 демультиплексирования по коду с переменной длиной слова также подает на секцию 14 генерации прогнозируемого изображения информацию PT "PTI", полученную для целевой CU.
[Секция декодирования информации TU]
Секция 12 декодирования информации TU декодирует информацию TU "TUI", поступающую от секции 11 демультиплексирования по коду с переменной длиной слова, для генерации декодированной информации TU "TUI'".
Секция 12 декодирования информации TU, например, декодирует остаток прогнозирования квантования из информации TU "TUI" для целевого блока. Остаток прогнозирования квантования для целевого блока можно выразить в виде двухмерной матрицы квантованных коэффициентов преобразования. В нижеприведенном описании термин "матрица коэффициентов" используется для обозначения выражения такой двухмерной матрицы квантованных коэффициентов преобразования.
Секция 12 декодирования информации TU подает декодированную информацию TU "TUI'" на секцию 13 обратного квантования/обратного преобразования. Далее будет подробно описана работа секции 12 декодирования информации TU.
[Секция обратного квантования/обратного преобразования]
Секция 13 обратного квантования/обратного преобразования осуществляет обратное квантование/обратное преобразование в отношении остатка прогнозирования квантования для каждого блока целевой CU на основании декодированной информации TU "TUI'", поступающей от секции 12 декодирования информации TU. Секция 13 обратного квантования/обратного преобразования осуществляет обратное квантование и обратное дискретное косинусное преобразование (обратное DCT) в отношении остатка прогнозирования квантования, включенного в декодированную информацию TU "TUI'", и, таким образом, реконструирует остаток прогнозирования D для каждого пикселя каждой целевой PU. Затем секция 13 обратного квантования/обратного преобразования подает на сумматор 15 реконструированные ею остатки прогнозирования D.
[Секция генерации прогнозируемого изображения]
Секция 14 генерации прогнозируемого изображения, для каждой PU, включенной в целевую CU, обращается к локально декодированному изображению P', которое является декодированным изображением в области, окружающей PU, для генерации прогнозируемого изображения Pred посредством внутреннего прогнозирования или внешнего прогнозирования. Секция 14 генерации прогнозируемого изображения подает на сумматор 15 прогнозируемое изображение Pred, генерируемое для целевой CU.
[Сумматор]
Сумматор 15 суммирует прогнозируемое изображение Pred, поступающее от секции 14 генерации прогнозируемого изображения, с остатками прогнозирования D, поступающими от секции 13 обратного квантования/обратного преобразования, для генерации декодированного изображения P для целевой CU.
[Память кадров]
В памяти 16 кадров последовательно записываются декодированные изображения P. В памяти 16 кадров хранится, во время декодирования целевого блока дерева, декодированные изображения, соответствующие всем блокам дерева, декодированным до декодирования целевого блока дерева (например, всем блокам дерева, предшествующим в порядке растрового сканирования).
Устройство 1 декодирования движущихся изображений, закончив, для каждого блока дерева в изображении, процесс генерации декодированного изображения, осуществляемый для блока дерева, выводит на внешнее устройство декодированное изображение #2, соответствующее кодированным данным #1 для одного кадра, причем кодированные данные #1 поступают на устройство 1 декодирования движущихся изображений.
(Сканирование коэффициентов)
В нижеприведенном описании представлено сканирование коэффициентов, после чего, подробно представлена конфигурация секции 12 декодирования информации TU.
Для кодирования коэффициентов, устройство 2 кодирования движущихся изображений сканирует, в заранее определенном порядке, матрицу коэффициентов представляющую набор коэффициентов целевого блока.
Сканирование это процесс преобразования координат каждого коэффициента в матрице коэффициентов в одномерные индексы порядка сканирования. Коэффициенты после преобразования сохраняются в одномерном массиве для удержания. Сканирование может осуществляться, например, в традиционно известном зигзагообразном порядке сканирования.
Процесс кодирования, прежде всего, предусматривает сканирование, в зигзагообразном порядке сканирования, от коэффициента DC, расположенного в верхней левой части целевого блока до коэффициента, расположенного в нижней правой части, причем коэффициент является наивысшей частотной составляющей.
Коэффициенту высокочастотной составляющей свойственно иметь значение нуль или близкое к нулю, тогда как коэффициент низкочастотной составляющей чаще всего имеет ненулевое значение или большое значение. Таким образом, зигзагообразное сканирование обрабатывает коэффициент низкочастотной составляющей первым в своем порядке сканирования.
Устройство 2 кодирования движущихся изображений, после сканирования матрицы коэффициентов, осуществляет процесс кодирования коэффициентов. Устройство 2 кодирования движущихся изображений осуществляет процесс кодирования коэффициентов в порядке, противоположном порядку сканирования.
В нижеприведенном описании термин "порядок, противоположный порядку зигзагообразного сканирования" используется для обозначения вышеуказанного порядка процесса. Устройство 2 кодирования движущихся изображений осуществляет процесс кодирования в отношении матрицы коэффициентов в порядке, противоположном порядку зигзагообразного сканирования. Дополнительно, в нижеприведенном описании представлен порядок процесса кодирования, для удобства, на основании матрицы коэффициентов.
Поскольку высокочастотной составляющей свойственно иметь значение "0", настоящий вариант осуществления осуществляет процесс кодирования, который пропускает кодирование такого нулевого коэффициента и начинается с последнего ненулевого коэффициента, то есть ненулевого коэффициента, наиболее удаленного от коэффициента DC.
В вышеприведенном описании, для удобства объяснения, представлен пример сканирования матрицы коэффициентов 8×8. Однако аналогичное описание применимо к случаю сканирования матрицы коэффициентов 4×4. Дополнительно, последовательность сканирования может адаптивно изменяться с зигзагообразного сканирования к другому порядку, например, порядку аналогичному порядку растрового сканирования.
(Кодирование коэффициентов)
В нижеприведенном описании представлены кодированные данные коэффициентов, которые кодируется устройством 2 кодирования движущихся изображений. При осуществлении процесса кодирования, устройство 2 кодирования движущихся изображений, как описано выше, прежде всего, кодирует последний ненулевой коэффициент. Затем устройство 2 кодирования движущихся изображений осуществляет кодирование в серийном режиме при заранее определенном условии. При выполнении условия окончания серийного режима, серийный режим заканчивается. Затем устройство 2 кодирования движущихся изображений осуществляет кодирование в уровневом режиме в отношении оставшихся коэффициентов. Устройство 2 кодирования движущихся изображений кодирует все коэффициенты посредством вышеописанной операции.
В нижеприведенном описании представлен последний ненулевой коэффициент, данные, кодированные в серийном режиме, и данные, кодированные в уровневом режиме.
[Последний ненулевой коэффициент]
Устройство 2 кодирования движущихся изображений кодирует, для последнего ненулевого коэффициента, (i) позицию 'last_pos' последнего ненулевого коэффициента, (ii) уровень 'level' последнего ненулевого коэффициента и (iii) положительный/отрицательный знак 'sign' последнего ненулевого коэффициента. Уровень коэффициента означает абсолютное значение коэффициента. Позиция 'last_pos' имеет значение в форме индекса порядка сканирования. В случае, когда последний ненулевой коэффициент является десятым коэффициентом (при этом коэффициент DC является первым) в порядке сканирования и имеет значение "-1", позиция, уровень и знак таковы:
'last_pos': 9
'level': 1, 'sign': 1
[Серийный режим]
Устройство 2 кодирования движущихся изображений осуществляет нижеследующее кодирование в случае, когда серийный режим применяется при заранее определенном условии. Серийный режим это режим, в котором кодируется количество последовательных нулевых коэффициентов (серия 0). Далее описано условие, при котором устройство 2 кодирования движущихся изображений осуществляет кодирование в серийном режиме.
В серийном режиме, устройство 2 кодирования движущихся изображений кодирует, для каждого коэффициента, (i) серию 0 'run', (ii) уровень 'level' коэффициента и (iii) положительный/отрицательный знак 'sign' коэффициента. В случае, когда следующий ненулевой коэффициент, подлежащий кодированию, отделен от непосредственно предшествующего ненулевого коэффициента значением "0" и имеет значение "1", серия 0, уровень и знак таковы:
'run': 1, 'level': 1, 'sign': 0
В каждой из систем, раскрытых в непатентных источниках 1 и 2, возникновение уровня 2 или выше используется в качестве условия окончания серийного режима.
[Уровневый режим]
Уровневый режим это режим, в котором кодируется каждый коэффициент один за другим, даже если он является нулевым коэффициеном. В уровневом режиме, устройство 2 кодирования движущихся изображений кодирует, для каждого коэффициента, (i) уровень 'level' коэффициента и (ii) положительный/отрицательный знак 'sign' коэффициента. В случае, когда устройство 2 кодирования движущихся изображений кодирует коэффициент, имеющий значение "-6", и в случае, когда устройство 2 кодирования движущихся изображений кодирует нулевой коэффициент (имеющий значение "0"), уровень и знак, соответственно, таковы:
'level': 6, 'sign': 1
'level': 0
[Примечания]
Вышеописанные кодированные данные приведены исключительно в порядке примера: устройство 2 кодирования движущихся изображений может, альтернативно, кодировать коэффициенты с использованием элемента синтаксиса, имя или определение которого отличается от вышеописанного. Например, устройство 2 кодирования движущихся изображений может кодировать уровень 'level' коэффициента в серийном режиме как элемент синтаксиса (i) 'isLevelOne' (указывающий, что уровень равен 1) и, дополнительно, (ii) 'level_magnitude_minus2' (в случае, когда значение коэффициента больше или равно 2; уровень, подлежащий кодированию, равен фактическому уровню минус 2) (см. описания "'level_magnitude_minus2'" в непатентных источниках 1 и 2).
Устройство 2 кодирования движущихся изображений может кодировать 'level' для последнего ненулевого коэффициента как элемент синтаксиса 'last_pos_level'.
Устройство 2 кодирования движущихся изображений может, в несерийном режиме, кодировать 'level' как элемент синтаксиса 'level_magnitude'.
(Секция декодирования информации TU)
В нижеприведенном описании более подробно представлена компоновка секции 12 декодирования информации TU со ссылкой на фиг. 1. На Фиг. 1 показана функциональная блок-схема, демонстрирующая примерную конфигурацию секции 12 декодирования информации TU.
В нижеприведенном описании представлена компоновка для секции 12 декодирования информации TU для декодирования данных коэффициентов среди элементов кодированных данных, включенных в информацию TU "TUI". Нижеприведенное описание, другими словами, посвящено компоновке для секции 12 декодирования информации TU для декодирования кодированного остатка прогнозирования квантования, то есть кодированных данных коэффициентов.
Однако настоящий вариант осуществления не ограничивается такой компоновкой: секция 12 декодирования информации TU может альтернативно декодировать элемент данных, включенный в кодированные данные, причем элемент данных отличается от кодированных данных коэффициентов, например, вспомогательной информации.
Секция 12 декодирования информации TU, как показано на фиг. 1, включает в себя таблицу TBL11 VLC, секцию 121 разбиения области (средство разбиения единицы преобразования) и секцию 122 декодирования области (средство декодирования коэффициентов преобразования).
В нижеприведенном описании представлен пример, в котором секция 12 декодирования информации TU декодирует информацию TU "TUI" для целевого блока размером 16×16 и выводит декодированную ею информацию TU "TUI'". Однако настоящий вариант осуществления не ограничивается такой конфигурацией: секция 12 декодирования информации TU может альтернативно декодировать целевой блок размером, например, 64×64 или 32×32.
Таблица TBL11 VLC это таблица, которая связывает (i) кодовое число, которое может преобразовываться в битовую последовательность и в которое может преобразовываться битовая последовательность, с (ii) параметром, подлежащим декодированию. Секция 122 декодирования области обращается к таблице TBL11 VLC для процесса декодирования.
Таблица TBL11 VLC это таблица, которая, в порядке примера, задает единицу кодирования, имеющую размер 8×8. Другими словами, таблица TBL11 VLC, имеет размер 8×8, который меньше, чем размер 16×16 единицы преобразования (или единицы кодирования) на входе.
Для адаптивного процесса декодирования, таблица TBL11 VLC задается по-разному в соответствии с контекстом процесса декодирования. Контекстом может быть, например, позиция обрабатываемого коэффициента и/или атрибут целевого блока (например, (i) вид пикселя, указанный яркостью или цветоразностью, или (ii) способ прогнозирования).
Секция 121 разбиения области разбивает целевой блок на множество областей. В нижеприведенном описании термин "область декодирования" используется для обозначения отдельных областей, полученных секцией 121 разбиения области путем разбиения целевого блока.
В нижеприведенном описании представлен пример, в котором секция 121 разбиения области разбивает целевой блок размером 16×16 на четыре области декодирования размером 8×8. Однако настоящий вариант осуществления не ограничивается такой компоновкой: секция 121 разбиения области может разбивать целевой блок любым из различных способов. Далее подробно описаны варианты того, как секция 121 разбиения области разбивает целевой блок.
Секция 122 декодирования области осуществляет процесс декодирования каждой из областей декодирования, полученных секцией 121 разбиения области, разбивающей целевой блок, со ссылкой на таблицу TBL11 VLC, заданную в соответствии с размером области декодирования.
В нижеприведенном описании представлен пример, в котором секция 122 декодирования области осуществляет процесс декодирования обращаясь, в соответствии с контекстом, к таблице TBL11 VLC, заданной для единицы кодирования размером 8×8.
Секция 122 декодирования области, в частности, включает в себя секцию 101 декодирования последнего ненулевого коэффициента, секцию 102 декодирования в серийном режиме и секцию 103 декодирования в уровневом режиме.
Секция 101 декодирования последнего ненулевого коэффициента декодирует последний ненулевой коэффициент в области декодирования в качестве цели декодирования (в дальнейшем именуемой "целевая область декодирования"). В частности, секция 101 декодирования последнего ненулевого коэффициента декодирует 'last_pos', 'level' и 'sign', включенные в кодированные данные коэффициентов, соответствующие целевой области декодирования.
Секция 102 декодирования в серийном режиме декодирует, для целевой области декодирования, коэффициенты из кодированных данных коэффициентов, причем коэффициенты закодированы в серийном режиме. В частности, секция 102 декодирования в серийном режиме, со ссылкой на таблицу TBL11 VLC, соответствующую контексту, декодирует 'run', 'level' и 'sign' из кодированных данных коэффициентов, которые закодированы в серийном режиме. В нижеприведенном описании термин "процесс декодирования в серийном режиме" используется для обозначения процесса декодирования, осуществляемого секцией 102 декодирования в серийном режиме.
Секция 102 декодирования в серийном режиме повторяет свой процесс декодирования в серийном режиме, пока не будет выполнено условие окончания серийного режима. Условием окончания серийного режима является, например, (i) имеет ли декодированный коэффициент значение, которое превышает порог, или (ii) закончила ли секция 102 декодирования в серийном режиме декодирование заранее определенного количества коэффициентов.
Секция 102 декодирования в серийном режиме, в случае выполнения условия окончания серийного режима, предписывает секции 103 декодирования в уровневом режиме начать декодирование в уровневом режиме.
Секция 103 декодирования в уровневом режиме декодирует, для целевой области декодирования, коэффициенты из кодированных данных коэффициентов, причем коэффициенты закодированы в уровневом режиме. В частности, секция 103 декодирования в уровневом режиме, со ссылкой на таблицу TBL11 VLC, соответствующую контексту, декодирует 'level' и 'sign' из кодированных данных коэффициентов, которые закодированы в уровневом режиме.
В нижеприведенном описании термин "процесс декодирования в уровневом режиме" используется для обозначения процесса декодирования, осуществляемого секцией 103 декодирования в уровневом режиме. Секция 103 декодирования в уровневом режиме повторяет свой процесс декодирования в уровневом режиме, пока не закончит декодирование коэффициента для составляющей постоянного тока.
Секция 122 декодирования области, закончив свой процесс декодирования каждой целевой области декодирования целевого блока, выводит декодированную ею информацию TU "TUI'" включающую в себя коэффициенты, полученные из процесса декодирования.
(Последовательность операций процесса)
Со ссылкой на фиг.4, в нижеприведенном описании представлен процесс декодирования, осуществляемый секцией 12 декодирования информации TU. На Фиг.4 показана блок-схема алгоритма, демонстрирующая примерную последовательность операций этапа S10 для разбиения целевого блока на области и кодирования/декодирования коэффициентов.
Процесс кодирования, осуществляемый устройством 2 кодирования движущихся изображений, и процесс декодирования, осуществляемый устройством 1 декодирования движущихся изображений, отличаются друг от друга в зависимости от того, осуществляется ли процесс для кодирования или декодирования. В остальном, однако, последовательности операций процесса кодирования и процесса декодирования, в целом, идентичны друг другу. Таким образом, Фиг. 4 совместно иллюстрирует процесс кодирования, осуществляемый устройством 2 кодирования движущихся изображений, и процесс декодирования, осуществляемый устройством 1 декодирования движущихся изображений.
Прежде всего, как показано на фиг. 4, секция 121 разбиения области устройства 1 декодирования движущихся изображений разбивает целевой блок на области декодирования (S11).
Затем последовательность операций входит в цикл LP1 по областям декодирования в качестве разбиения (S12). В цикле LP1, секция 122 декодирования области декодирует коэффициенты в кодированных данных коэффициентов для целевой области декодирования (S13).
В частности, секция 101 декодирования последнего ненулевого коэффициента сначала декодирует последний ненулевой коэффициент в целевой области декодирования.
Затем секция 102 декодирования в серийном режиме осуществляет процесс декодирования в серийном режиме, пока не будет выполнено условие окончания серийного режима.
По окончании серийного режима, секция 103 декодирования в уровневом режиме осуществляет процесс декодирования в уровневом режиме.
Когда процесс декодирования для целевой области декодирования завершен, как описано выше, последовательность операций возвращается к началу цикла LP1 (от S14 к S12). Затем осуществляется другой процесс декодирования для следующей целевой области декодирования.
Когда процесс декодирования для каждой целевой области декодирования блока завершен, последовательность операций выходит из цикла LP1. Это заканчивает этап S10 для разбиения целевого блока на области и декодирования коэффициентов.
(Конкретный пример)
Со ссылкой на фиг. 5 и 6 помимо блок-схемы операций на фиг. 4, в нижеприведенном описании представлен конкретный пример процесса декодирования, осуществляемого секцией 12 декодирования информации TU. На Фиг. 5 показана схема, демонстрирующая целевой блок (единицу преобразования) BLK размером 16×16. На Фиг. 6 показана схема, демонстрирующая примерный случай разбиения целевого блока BLK на четыре области размером 8 × 8 для процесса декодирования.
На этапе S11, секция 121 разбиения области разбивает целевой блок BLK размером 16×16 на четыре области декодирования размером 8×8 (подъединицы) R11-R14, как показано на фиг. 5.
На этапе S13 цикла LP1, секция 122 декодирования области обрабатывает области декодирования на фиг. 6 в последовательном порядке областей R11, R12, R13 и R14 декодирования.
Фиг. 6 иллюстрирует, в каждой из областей R11-R14 декодирования, стрелку, указывающую последовательность сканирования. Последовательность сканирования для областей R11-R14 декодирования является зигзагообразным сканированием.
На этапе S13, секция 101 декодирования последнего ненулевого коэффициента сначала декодирует последний ненулевой коэффициент в последовательности сканирования. Затем секция 122 декодирования области декодирует, в порядке, противоположном порядку зигзагообразного сканирования, от последнего ненулевого коэффициента до коэффициента для составляющей посточнного тока посредством процесса декодирования в серийном режиме и процесса декодирования в уровневом режиме.
Секция 122 декодирования области, закончив процесс декодирования для области R11 декодирования, продолжает осуществлять процесс декодирования аналогичным образом для областей R12, R13 и R14 декодирования.
Как описано выше, процесс декодирования для каждой из областей R11-R14 декодирования осуществляется традиционным способом декодирования для единицы кодирования размером 8×8. В частности, для осуществления процесса декодирования для областей R11-R14 декодирования, можно использовать традиционный способ декодирования, который декодирует последний ненулевой коэффициент и затем осуществляет процесс декодирования в серийном режиме и процесс декодирования в уровневом режиме.
(Разновидности)
В нижеприведенном описании представлены некоторые предпочтительные разновидности устройства 1 декодирования движущихся изображений.
Разновидность 1-1: [определение наличия или отсутствия ненулевого коэффициента]
В случае, когда кодированные данные коэффициентов включают в себя, закодированный в них, флаг ненулевого коэффициента, указывающий наличие или отсутствие ненулевого коэффициента для каждой области декодирования, секция 122 декодирования области может осуществлять процесс декодирования в соответствии с наличием или отсутствием ненулевого коэффициента.
В случае, когда секция 122 декодирования области осуществляет процесс декодирования в соответствии с наличием или отсутствием ненулевого коэффициента, она может работать, как описано ниже.
Сначала секция 122 декодирования области декодирует флаг ненулевого коэффициента для определения наличия или отсутствия ненулевого коэффициента. В случае, когда флаг ненулевого коэффициента указывает отсутствие ненулевого коэффициента в целевой области декодирования, секция 122 декодирования области пропускает процесс декодирования для этой целевой области.
В нижеприведенном описании подробно представлена вышеописанная компоновка со ссылкой на фиг. 7. На Фиг. 7 показана схема, демонстрирующая примерный случай, когда ненулевой коэффициент существует в каждой из областей R11, R13 и R13 декодирования, и в области R12 декодирования не существует ненулевого коэффициента. Число "0" в области R12 декодирования указывает отсутствие ненулевого коэффициента.
Флаг ненулевого коэффициента включает в себя, например, кодированное значение "0" для отсутствия ненулевого коэффициента и кодированное значение "1" для присутствия ненулевого коэффициента.
Пример, представленный на фиг. 7, включает в себя ненулевой коэффициент для каждой из областей R11, R13 и R14 и не имеет ненулевого коэффициента для области R12. Таким образом, флаг ненулевого коэффициента является кодированными значениями "1011". Шаблоны, например "1011", флага ненулевого коэффициента можно кодировать, вместо кодирования с фиксированной длиной 4 бита, посредством кодирования с переменной длиной слова, соответствующей частоте возникновения шаблона.
Секция 122 декодирования области осуществляет процесс декодирования, показанный в примере на фиг. 7 следующим образом: прежде всего, поскольку флаг ненулевого коэффициента для области R11 декодирования имеет код "1", секция 122 декодирования области осуществляет процесс декодирования для области R11 декодирования.
Затем, поскольку флаг ненулевого коэффициента для области R12 декодирования имеет код "0", секция 122 декодирования области пропускает процесс декодирования для области R12 декодирования.
Поскольку для каждой из оставшихся областей R13 и R14 декодирования, как в области R11 декодирования, флаг ненулевого коэффициента имеет код "1" (указывающий присутствие ненулевого коэффициента), секция 122 декодирования области осуществляет процесс декодирования для каждой из областей R13 и R14 декодирования.
Вышеописанная компоновка позволяет пропускать ненужный процесс декодирования для отдельной области декодирования и, таким образом, повышать эффективность обработки.
Разновидность 1-2: [изменение способа обработки в соответствии с позицией каждой области декодирования]
[1] Изменение способа сканирования
В вышеприведенном описании рассмотрено использование зигзагообразного сканирования в качестве способа сканирования для каждой области декодирования. Однако устройство 1 декодирования движущихся изображений может, альтернативно, изменять свой способ сканирования в соответствии с позицией каждой области декодирования.
Например, устройство 1 декодирования движущихся изображений может, как показано на фиг. 8, использовать горизонтальное сканирование для области R12 декодирования, которая располагается в верхнем правом углу целевого блока BLK. Устройство 1 декодирования движущихся изображений может, как показано на фиг. 8, использовать вертикальное сканирование для области R13 декодирования, которая располагается в нижнем левом углу целевого блока BLK. Дополнительно, устройство 1 декодирования движущихся изображений может, как показано на фиг. 8, использовать зигзагообразное сканирование для областей R11 и R14 декодирования.
[2] Ограничение режима
В вышеприведенном описании рассмотрена компоновка осуществления процесса декодирования в серийном режиме и процесса декодирования в уровневом режиме в процессе декодирования для каждой области декодирования. Однако устройство 1 декодирования движущихся изображений может, альтернативно осуществлять либо процесс декодирования в серийном режиме, либо процесс декодирования в уровневом режиме в соответствии с позицией каждой области декодирования.
Например, поскольку область R14 декодирования, которая располагается в нижнем правом углу целевого блока BLK, является высокочастотной составляющей и, таким образом, предположительно, включает в себя большое количество нулевых коэффициентов, устройство 1 декодирования движущихся изображений может осуществлять, для области R14 декодирования, только процесс декодирования в серийном режиме в качестве своего процесса декодирования.
[3] Изменение таблицы VLC и/или способа вычисления кодового числа
Для процесса декодирования в серийном режиме, устройство 1 декодирования движущихся изображений может, в соответствии с позицией каждой области декодирования, изменять таблицу VLC, к которой производится обращение, и/или способ вычисления кодового числа. Например, устройство 1 декодирования движущихся изображений может, в соответствии с позицией каждой области декодирования, изменять таблицу VLC для использования в преобразовании битовой последовательности, указывающей кодовое число, в пару параметров {'run', 'level'}.
Таблица VLC устроена, например, следующим образом: таблица VLC, к которой производится обращение, для области декодирования на стороне высокочастотной составляющей (например, областей R12-R14 декодирования на фиг. 6) связывает короткую битовую последовательность с парой, в которой 'level'=0. Таблица VLC, к которой производится обращение для области декодирования на стороне низкочастотной составляющей (например, область R11 декодирования на фиг. 6) связывает короткую битовую последовательность с парой, в которой 'run' коротка.
Область декодирования на стороне высокочастотной составляющей предположительно, включает в себя большое количество нулевых коэффициентов, тогда как область декодирования на стороне низкочастотной составляющей предположительно, включает в себя большое количество ненулевых коэффициентов и имеет короткую 'run'.
Вышеописанная компоновка, таким образом, позволяет эффективно осуществлять процесс декодирования в соответствии с распределением ненулевых коэффициентов в каждой области декодирования. Следовательно, вышеописанная компоновка может снижать объем кодированных данных, подлежащих декодированию. В нижеприведенном описании подробно представлено определение таблицы VLC со ссылкой на фиг. 12 и 13.
Фиг. 12 демонстрирует примеры таблицы TBL11 VLC для использования в преобразовании пары параметров {'run', 'level'} в кодовое число. Фиг. 12 демонстрирует две таблицы VLC, для каждой из которых 'run' имеет максимальное значение 4, где (a) иллюстрирует таблицу T1 VLC, которая назначает высокий приоритет значению 'level'=0, и (b) иллюстрирует таблицу T2 VLC, которая назначает низкий приоритет значению 'level'=0.
Таблицы T1 и T2 VLC имеют (i) 'level'=0 в случае, когда следующий ненулевой коэффициент имеет абсолютное значение "1", и (ii) 'level'=1 в случае, когда следующий ненулевой коэффициент имеет абсолютное значение больше "1".
На Фиг. 13 показана схема, демонстрирующая примерный случай, когда таблицы T1 и T2 VLC связаны с отдельными областями декодирования. Как показано на фиг. 13, область R11 декодирования связана с таблицей T2 VLC, тогда как каждая из областей R12-R14 декодирования связана с таблицей T1 VLC.
В нижеприведенном описании представлена последовательность операций процесса декодирования, осуществляемого секцией 102 декодирования в серийном режиме. Прежде всего, секция 102 декодирования в серийном режиме обращается к таблице T2 VLC в соответствии со связью, представленной на фиг. 13 для осуществления процесса декодирования в серийном режиме для области R11 декодирования.
Нижеприведенное описание посвящено более подробному рассмотрению вышеописанной операции со ссылкой на (b) фиг. 12. Таблица T2 VLC назначает меньшее кодовое число (более короткий код) комбинации {'run', 'level'}, в которой 'run' короче.
Например, таблица T1 VLC назначает наименьшее кодовое число "0" комбинации {'run', 'level'}=(0, 0). Дополнительно, таблица T1 VLC, ввиду частоты возникновения, назначает второе после наименьшего кодовое число "1" комбинации {'run', 'level'}=(4, 0).
Для других комбинаций, таблица T2 VLC назначает большее кодовое число более длинной 'run' по отношению к одному и тому же 'level'.
Для комбинаций {'run', 'level'}, в которых 'level'=0, таблица T2 VLC назначает кодовое число "7" в случае, когда 'run'=3. Для комбинаций {'run', 'level'}, в которых 'level'=0, таблица T2 VLC назначает кодовое число "8" в случае, когда 'run'=3.
Поскольку области R11 декодирования, которая находится на стороне низкочастотной составляющей, свойственно иметь короткую 'run', назначение меньших кодовых чисел комбинациям {'run', 'level'}, в которых 'run' короче, может повышать эффективность кодирования.
Секция 102 декодирования в серийном режиме обращается к таблице T1 VLC в соответствии со связью, представленной на фиг. 13, для осуществления процесса декодирования в серийном режиме для каждой из областей R12-R14 декодирования.
Нижеприведенное описание посвящено более подробному рассмотрению вышеописанной операции со ссылкой на (a) фиг. 12. Таблица T1 VLC назначает меньшее кодовое число (более короткий код) комбинации {'run', 'level'}, в которой 'level'=0.
Например, таблица T1 VLC назначает наименьшее кодовое число "0" комбинации {'run', 'level'}=(0, 0). Дополнительно, таблица T1 VLC, ввиду частоты возникновения, назначает второе после наименьшего кодовое число "1" комбинации {'run', 'level'}=(4, 0).
Для комбинаций {'run', 'level'}, в которых 'level'=0, таблица T1 VLC назначает большие кодовые числа, чем для вышеупомянутых комбинаций. В частности, таблица T1 VLC назначает кодовые числа с "5" по "8", соответственно, для {'run', 'level'}=от (0, 1) до (0, 3) в соответствии с длиной 'run'.
Поскольку устройству 1 декодирования движущихся изображений свойственно декодировать 'level'=0 в областях R12-R14 декодирования, находящихся на стороне высокочастотной составляющей, назначение меньших кодовых чисел комбинациям {'run', 'level'}, в которых 'level'=0 может повышать эффективность кодирования.
В вышеприведенном описании рассмотрен пример осуществления преобразование параметра в код в процессе декодирования в серийном режиме со ссылкой на таблицы T1 и T2 VLC. Однако настоящий вариант осуществления не ограничивается такой компоновкой: альтернативно, может вычислительно осуществляться процесс преобразования, эквивалентный процессу преобразования с использованием таблиц T1 и T2 VLC.
Дополнительно, в вышеприведенном описании рассмотрен пример осуществления процесса декодирования в серийном режиме со ссылкой на две таблицы, а именно, таблицы T1 и T2 VLC. Однако настоящий вариант осуществления не ограничивается такой компоновкой: настоящий вариант осуществления может альтернативно предусматривать более двух таблиц. Например, секция 102 декодирования в серийном режиме может быть выполнена с возможностью, для соответствующих областей R11-R14 декодирования, обращаться к таблицам VLC, которые отличаются друг от друга.
[4] Динамическая оптимизация
В нижеприведенном описании представлен пример динамической оптимизации, осуществляемой секцией 122 декодирования области в соответствии со статусом декодирования.
[4-1] Обновление таблицы VLC
Секция 122 декодирования области может определять частоту возникновения значения параметра и обновлять кодовое число в таблице VLC в соответствии с определенной частотой возникновения.
В частности, секция 122 декодирования области может обновлять (i) кодовое число для значения параметра, имеющего высокую частоту возникновения, до меньшего кодового числа (более короткого кода) и (ii) кодовое число для значения параметра, имеющего низкую частоту возникновения, до большего кодового числа (более длинного кода).
Вышеупомянутое обновление описано ниже со ссылкой на фиг. 14. Как показано на фиг. 14, таблица T3 VLC до оптимизации назначает (i) кодовое число CN-1 значению параметра y и (ii) кодовое число CN другому значению параметра x.
В нижеприведенном описании предполагается, что секция 122 декодирования области обратилась к (i) x в таблице T3 VLC до оптимизации и (ii) соответствующему кодовому числу CN.
Секция 122 декодирования области, обращаясь, таким образом, к таблице T3 VLC, уменьшает кодовое число CN на единицу для перевода кодового числа, соответствующего x, в CN-1. Секция 122 декодирования области дополнительно увеличивает кодовое число для y, первоначально соответствующего CN-1, на единицу, чтобы связать увеличенное кодовое число с CN. В данном описании термин "оптимизация" используется для обозначения такого процесса перевода кодового числа. Фиг. 14 иллюстрирует таблицу VLC T4, которая является таблицей, полученной после оптимизации.
В случае, когда секция 122 декодирования области еще раз обращается к x, секция 122 декодирования области переводит кодовое число, соответствующее x, в CN-2.
Секция 122 декодирования области, как описано выше, обновляет динамически таблицу VLC в ходе своего процесса декодирования для назначения малого кодового числа значению параметра в качестве цели декодирования в соответствии с частотой возникновения значения параметра.
[4-2] Скорость адаптации
В нижеприведенном описании идет речь о скорости адаптации динамической оптимизации. Операция, представленная на фиг. 14, уменьшает кодовое число для значения параметра на единицу каждый раз, когда секция 122 декодирования области обращается к этому значению параметра. Однако настоящий вариант осуществления не ограничивается такой компоновкой: настоящий вариант осуществления может альтернативно уменьшать кодовое число на два или более.
Скорость адаптации можно выразить, например, через величину уменьшения кодового числа. Это означает, что скорость адаптации выше в случае, когда величина уменьшения кодового числа равна "2", чем в случае, когда величина уменьшения кодового числа равна "1".
В случае, когда секция 122 декодирования области динамически оптимизирует таблицу VLC по {'run', 'level'}, секция 122 декодирования области может увеличивать кодовое число для оптимизации на (i) величину "0" для области декодирования на стороне высокочастотной составляющей и (ii) величину "1" для области декодирования на стороне низкочастотной составляющей.
Другими словами, настоящий вариант осуществления может не предусматривать осуществление оптимизации для области декодирования на стороне высокочастотной составляющей. Настоящий вариант осуществления может предусматривать такое поведение по следующей причине: на стороне высокочастотной составляющей, 'run' предполагается длинной, и вероятность возникновения конкретной пары {'run', 'level'} на высокой частоте невелика. Вышеописанная компоновка может, в связи с этим, препятствовать увеличению объема вычислений в результате оптимизации, осуществляемой каждый раз, когда возникает значение параметра.
Вышеописанная оптимизация может, альтернативно, осуществляться секцией 122 декодирования области устройства 1 декодирования движущихся изображений.
[5] Изменение условия окончания серийного режима
Секция 122 декодирования области может изменять условие окончания серийного режима в соответствии с позицией каждой области декодирования. Секция 122 декодирования области может, например, делать условие окончания серийного режима (i) более строгим для области декодирования на стороне высокочастотной составляющей и (ii) более мягким для области декодирования на стороне низкочастотной составляющей. Другими словами, секция 122 декодирования области может изменять условие окончания серийного режима таким образом, чтобы серийный режим чаще заканчивался для области декодирования, расположенной ближе к верхней левой части целевого блока. Секция 122 декодирования области может, альтернативно, быть выполнена с возможностью не осуществлять процесс декодирования в уровневом режиме для области декодирования на стороне высокочастотной составляющей.
Коэффициенту свойственно иметь малое абсолютное значение в области декодирования на стороне высокочастотной составляющей. Таким образом, 'run' чаще всего, бывает длинной в области декодирования на стороне высокочастотной составляющей. Поэтому предпочтительно, по возможности, осуществлять процесс декодирования в серийном режиме.
Начинать ли процесс декодирования в серийном режиме, может определяться секцией 102 декодирования в серийном режиме. Секция 102 декодирования в серийном режиме может, например, по своему выбору, начать процесс декодирования в серийном режиме в случае, когда секция 102 декодирования в серийном режиме может определить, на основании данных, к которым производится обращение после декодирования последнего ненулевого коэффициента, что все коэффициенты имеют малые абсолютные значения.
В случае, когда секция 102 декодирования в серийном режиме может определить, что все коэффициенты имеют малые абсолютные значения, 'run' чаще всего, бывает длинной. В этом случае, секция 102 декодирования в серийном режиме осуществляет процесс декодирования в серийном режиме.
Данные, к которым производится обращение после декодирования последнего ненулевого коэффициента, включает в себя, например, (i) информацию прогнозирования для целевого блока, (ii) информацию о последнем ненулевом коэффициенте и (iii) другие данные, например, флаг, который был закодирован кодером и затем декодирован.
В частности, в случае, когда последний коэффициент имеет значение больше 1, секция 102 декодирования в серийном режиме может пропустить процесс декодирования в серийном режиме.
Дополнительно, секция 122 декодирования области может иметь пороги для использования при различных определениях в ходе процесса декодирования коэффициентов, причем пороги допускают изменение в соответствии с позицией каждой области декодирования.
Разновидность 1-3: [выбор, разбивать ли целевой блок в соответствии с режимом прогнозирования для целевого блока]
Секция 121 разбиения области может быть выполнена с возможностью выбора, в соответствии с режимом прогнозирования для целевого блока, разбивать ли целевой блок.
Секция 121 разбиения области может, например, (i) разбивать целевой блок в случае, когда режим прогнозирования для целевого блока является внутренним прогнозированием, и (ii) не разбивать целевой блок в случае, когда режим прогнозирования для целевого блока является внешним прогнозированием.
Дополнительно, в случае, когда режим прогнозирования для целевого блока является внешним прогнозированием, и секция 121 разбиения области, таким образом, не разбивала целевой блок, секция 122 декодирования области может декодировать только коэффициенты с первого по 64-й в последовательности сканирования для целевого блока. Другими словами, секция 122 декодирования области может, в вышеописанном случае, декодировать только 64 коэффициента в верхней левой части целевого блока.
Преимущество вышеописанной компоновки в том, что она позволяет пропускать декодирование флага, указывающего, разбивать ли целевой блок.
Разновидность 1-4: [Количество и размер областей]
В вышеприведенном описании со ссылкой на фиг. 5 и 6 был рассмотрен пример, в котором секция 121 разбиения области разбивает целевой блок на четыре области декодирования. Однако настоящий вариант осуществления не ограничивается такой компоновкой: секция 121 разбиения области может альтернативно разбивать целевой блок на более четырех областей.
Дополнительно, целевой блок не ограничивается размером 16×16. Целевой блок может, например, иметь размер 32×32 или 64×64.
В случае, когда, например, целевой блок имеет размер 64×64, секция 121 разбиения области может разбивать целевой блок на четыре или более области декодирования, как описано ниже.
Секция 121 разбиения области может разбивать целевой блок на 64 области декодирования размером 8×8 каждая. Секция 121 разбиения области может альтернативно разбивать целевой блок на 16 области декодирования размером 16×16 каждая. Секция 121 разбиения области может дополнительно, альтернативно, разбивать целевой блок на четыре области декодирования размером 32×32 каждая.
Области декодирования, полученные секцией 121 разбиения области, разбивающей целевой блок, не ограничиваются формой квадрата. Области декодирования могут быть, например, прямоугольными. Альтернативно, секция 121 разбиения области может разбивать целевой блок на следующие две области декодирования: область размером 8×8 в верхней левой части (соответствующую области R11 декодирования, представленной на фиг. 5) и оставшуюся область (соответствующую областям R12-R14 декодирования, представленным на фиг. 5).
Отдельные области декодирования могут быть не идентичны друг другу по форме. Секция 121 разбиения области может разбивать целевой блок, например, на области декодирования, каждая из которых соответствует 64 коэффициентам в зигзагообразной последовательности сканирования, как показано на фиг. 9.
Другими словами, секция 121 разбиения области может разбивать целевой блок на области R21-R24 декодирования, как показано на фиг. 9. Число "64" в каждой из областей R21-R24 декодирования указывает присутствие 64 коэффициентов в этой области.
Область R21 декодирования это область, в которой присутствует коэффициент DC, и имеющая форму прямоугольного треугольника на фиг. 9. Каждая из областей R22 и R23 декодирования имеют форму трапеции на фиг. 9. Область R24 декодирования это наиболее удаленная область на стороне высокочастотной составляющей из всех областей, и имеет форму прямоугольного треугольника на фиг. 9.
Для удобства объяснения, фиг. 9 иллюстрирует области R21 и R24, каждая из которых имеет форму прямоугольного треугольника, и области R22 и R23, каждая из которых имеет форму трапеции. В действительности, однако, вышеупомянутые области не имеют форму в точности прямоугольного треугольника или в точности трапеции.
Отдельные области декодирования могут отличаться друг от друга формой. Дополнительно, отдельные области декодирования может охватывать коэффициенты в соответствующих количествах, отличающихся друг от друга.
Как описано выше, секция 121 разбиения области может, тем или иным образом, разбивать целевой блок на множество областей декодирования, каждая из которых меньше по размеру, чем целевой блок.
Разновидность 1-5: [порядок обработки областей декодирования]
В вышеприведенном описании со ссылкой на фиг. 5 и 6 был рассмотрен пример, в котором секция 122 декодирования области осуществляет процесс декодирования в следующем последовательном порядке: области R11, R12, R13 и R14 декодирования (порядок растрового сканирования). Однако настоящий вариант осуществления не ограничивается такой компоновкой: секция 122 декодирования области может осуществлять процесс декодирования в порядке, отличном от вышеуказанного.
Секция 122 декодирования области может, например, осуществлять процесс декодирования в (i) следующем последовательном порядке: области R14, R13, R12 и R11 декодирования или в (ii) следующем последовательном порядке: области R11, R13, R12 и R14 декодирования. При наличии более четырех областей декодирования, например, 16 областей декодирования, секция 122 декодирования области может осуществлять процесс декодирования в зигзагообразном порядке сканирования.
[Устройство кодирования движущихся изображений]
Прежде всего, в нижеприведенном описании представлено устройство 2 кодирования движущихся изображений настоящего варианта осуществления со ссылкой на фиг. 10-14.
(Обзор устройства кодирования движущихся изображений)
В общих чертах, устройство 2 кодирования движущихся изображений представляет собой устройство, которое генерирует кодированные данные #1 путем кодирования входного изображения #10 и затем выводит генерируемые таким образом кодированные данные.
(Компоновка устройства кодирования движущихся изображений)
Прежде всего, в нижеприведенном описании представлен пример конфигурации устройства 2 кодирования движущихся изображений со ссылкой на фиг. 10. На Фиг. 10 показана функциональная блок-схема, демонстрирующая конфигурацию устройства 2 кодирования движущихся изображений. Устройство 2 кодирования движущихся изображений, как показано на фиг. 10, включает в себя секцию 21 задания кодирования, секцию 22 обратного квантования/обратного преобразования, секцию 23 генерации прогнозируемого изображения, сумматор 24, память 25 кадров, вычитатель 26, секцию 27 преобразования/квантования и секцию 28 кодирования с переменной длиной слова.
Секция 21 задания кодирования генерирует, на основании входного изображения #10, данные изображения и различные элементы информации задания кодирования.
В частности, секция 21 задания кодирования генерирует следующие данные изображения и различные элементы информации задания.
В первую очередь, секция 21 задания кодирования генерирует изображение CU #100 для целевой CU путем последовательного разбиения входного изображения #10 для каждого среза и каждого блока дерева.
Дополнительно, секция 21 задания кодирования генерирует информацию H' заголовка на основании результата процесса разбиения. Информация H' заголовка включает в себя (1) информацию о размере и форме каждого блока дерева, принадлежащего целевому срезу, и позиции каждого блока дерева в целевом срезе и (2) информацию CU "CU'" о размере и форме каждой CU, принадлежащей блоку дерева, и позиции каждой CU в целевом блоке дерева.
Кроме того, секция 21 задания кодирования генерирует информацию задания PT "PTI'" со ссылкой на изображение CU #100 и информацию CU "CU'". Информация задания PT "PTI'" включает в себя информацию обо всех комбинациях (1) шаблонов, в которых целевая CU может разбиваться на отдельные PU, и (2) режимах прогнозирования, которые могут назначаться отдельным PU.
Секция 21 задания кодирования подает изображение CU #100 на вычитатель 26. Дополнительно, секция 21 задания кодирования подает информацию H' заголовка на секцию 28 кодирования с переменной длиной слова. Кроме того, секция 21 задания кодирования подает информацию задания PT "PTI'" на секцию 23 генерации прогнозируемого изображения.
Секция 22 обратного квантования/обратного преобразования осуществляет обратное квантование и обратное дискретное косинусное преобразование (обратное DCT) в отношении остатка прогнозирования квантования для каждого блока, причем остаток прогнозирования квантования поступает от секции 27 преобразования/квантования, для реконструкции остатка прогнозирования для каждого блока.
Дополнительно, секция 22 обратного квантования/обратного преобразования (i) интегрирует остатки прогнозирования для соответствующего блока в соответствии с шаблоном разбиения целевой CU, причем шаблон указан информацией разбиения TT (описанной ниже), и, таким образом, (ii) генерирует остаток прогнозирования D для целевой CU. Затем секция 22 обратного квантования/обратного преобразования подает на сумматор 24 генерируемый таким образом остаток прогнозирования D для целевой CU.
Секция 23 генерации прогнозируемого изображения генерирует прогнозируемое изображение Pred для целевой CU со ссылкой на локально декодированное изображение P', записанное в память 25 кадров, и информацию задания PT "PTI'". Секция 23 генерации прогнозируемого изображения (i) задает параметр прогнозирования, полученный путем осуществления такого процесса генерации прогнозируемого изображения, в виде информации задания PT PTI', и затем (ii) передает заданную таким образом информацию задания PT "PTI'" на секцию 28 кодирования с переменной длиной слова. Процесс генерации прогнозируемого изображения, осуществляемый секцией 23 генерации прогнозируемого изображения, аналогичен процессу, осуществляемому секцией 14 генерации прогнозируемого изображения устройства 1 декодирования движущихся изображений. Поэтому описание процесса генерации прогнозируемого изображения, осуществляемого секцией 23 генерации прогнозируемого изображения, здесь опущено.
Сумматор 24 суммирует прогнозируемое изображение Pred, поступающее от секции 23 генерации прогнозируемого изображения, с остатком прогнозирования D, поступающим от секции 22 обратного квантования/обратного преобразования, для генерации декодированного изображения P для целевой CU.
В память 25 кадров последовательно записываются декодированные изображения P. В памяти 25 кадров хранятся, во время декодирования целевого блока дерева, декодированные изображения, соответствующие всем блокам дерева, декодированным до декодирования целевого блока дерева (например, всем блокам дерева, предшествующим в порядке растрового сканирования).
Вычитатель 26 вычитает прогнозируемое изображение Pred из изображения CU #100 для генерации остатка прогнозирования D для целевой CU. Вычитатель 26 подает генерируемый таким образом остаток прогнозирования D на секцию 27 преобразования/квантования.
Секция 27 преобразования/квантования осуществляет дискретное косинусное преобразование (DCT) и квантование в отношении остатка прогнозирования D для генерации остатка прогнозирования квантования.
В частности, секция 27 преобразования/квантования определяет шаблон, в котором целевая CU подлежит разбиению на один или множество блоков, со ссылкой на изображение CU #100 и информацию CU "CU'". Затем секция 27 преобразования/квантования разбивает, в соответствии с определенным таким образом шаблоном, остаток прогнозирования D на остаток(ки) прогнозирования для одного или соответствующего множества блоков.
Дополнительно, секция 27 преобразования/квантования осуществляет дискретное косинусное преобразование (DCT) в отношении остатка прогнозирования для каждого блока для генерации остатка прогнозирования для частотной области. Затем секция 27 преобразования/квантования квантует остаток прогнозирования для частотной области для генерации остатка прогнозирования квантования для каждого блока.
Дополнительно, секция 27 преобразования/квантования генерирует информацию задания TT "TTI'", включающую в себя (i) генерируемый таким образом остаток прогнозирования квантования для каждого блока, (ii) информацию разбиения TT, указывающую шаблон, в котором целевая CU подлежит разбиению, и (iii) информацию обо всех шаблонах, в котором целевая CU может разбиваться на блоки. Секция 27 преобразования/квантования подает генерируемую таким образом информацию задания TT "TTI'" на секцию 22 обратного квантования/обратного преобразования.
Секция 27 преобразования/квантования также генерирует информацию задания TU "TUI'", включающую в себя остаток прогнозирования квантования для целевого блока, и затем подает информацию задания TU "TUI'" на секцию 28 кодирования с переменной длиной слова.
Секция 28 кодирования с переменной длиной слова (i) генерирует кодированные данные #1 на основании информации TU задания "TUI'", информации задания PT "PTI'" и информации H' заголовка, и затем (ii) выводит кодированные данные #1. В нижеприведенном описании подробно представлена секция 28 кодирования с переменной длиной слова.
(Секция кодирования с переменной длиной слова)
Далее, со ссылкой на фиг. 11, в нижеприведенном описании более подробно представлена конфигурация секции 28 кодирования с переменной длиной слова. На Фиг. 11 показана блок-схема, демонстрирующая примерную конфигурацию секции 28 кодирования с переменной длиной слова.
Как показано на фиг. 11, секция 28 кодирования с переменной длиной слова включает в себя секцию 280 кодирования информации TU, секцию 40 кодирования информации заголовка, секцию 41 кодирования информации PTI и секцию 42 мультиплексирования кодированных данных.
Секция 280 кодирования информации TU кодирует информацию задания TU "TUI'" и затем подает кодированную таким образом информацию задания TU "TUI'" на секцию 42 мультиплексирования кодированных данных. Секция 40 кодирования информации заголовка кодирует информацию H' заголовка и затем подает кодированную таким образом информацию H' заголовка на секцию 42 мультиплексирования кодированных данных. Секция 41 кодирования информации PTI кодирует информацию PTI "PTI'" и затем подает кодированную таким образом информацию PTI "PTI'" на секцию 42 мультиплексирования кодированных данных.
Секция 42 мультиплексирования кодированных данных мультиплексирует информацию задания TU "TUI'", информацию H' заголовка и информацию PTI "PTI'" для генерации кодированных данных #1. Затем секция 42 мультиплексирования кодированных данных выводит генерируемые таким образом кодированные данные #1.
В нижеприведенном описании более подробно представлена конфигурация секции 280 кодирования информации TU. В нижеприведенном описании рассмотрена конфигурация секции 280 кодирования информации TU, причем в конфигурации кодированные данные коэффициентов получаются путем кодирования остатка прогнозирования квантования, включенного в информацию задания TU "TUI'", то есть путем кодирования матрицы коэффициентов.
Дополнительно, в нижеприведенном описании представлен пример, в котором секция 280 кодирования информации TU кодирует информацию TU "TUI" для целевого блока размером 16×16 и выводит полученную таким образом кодированную информацию TU "TUI'". Однако настоящий вариант осуществления не ограничивается такой конфигурацией: секция 280 кодирования информации TU может, альтернативно, кодировать целевой блок размером, например, 64×64 или 32×32.
Как показано на фиг. 11, секция 280 кодирования информации TU включает в себя таблицу TBL21 VLC, секцию 281 разбиения области (средство разбиения единицы преобразования) и секцию 282 кодирования области (средство кодирования коэффициентов преобразования).
Таблица TBL21 VLC это таблица, которая задает связь между (i) кодом, который является битовой последовательностью кодированных данных, и (ii) параметром.
Таблица TBL21 VLC это таблица, которая, в порядке примера, задает единицу кодирования, имеющую размер 8×8. Другими словами, таблица TBL21 VLC, имеет размер 8×8, который меньше, чем размер 16×16 единицы преобразования (или единицы кодирования) на входе.
Для адаптивного процесса декодирования, таблица TBL21 VLC задается по-разному в соответствии с контекстом процесса кодирования.
Секция 281 разбиения области разбивает целевой блок на множество областей. В нижеприведенном описании термин "область кодирования" используется для обозначения отдельных областей, полученных секцией 281 разбиения области, разбивающей целевой блок.
Дополнительно, в нижеприведенном описании представлен пример, в котором секция 281 разбиения области разбивает целевой блок размером 16×16 на четыре области кодирования. Таким образом, секция 281 разбиения области разбивает целевой блок размером 16×16 на четыре области кодирования размером 8×8.
Секция 281 разбиения области может разбивать целевой блок, например, как показано на фиг. 5. Заметим, что, в нижеприведенном описании, области R11-R14 декодирования, представленные на фиг. 5, рассматриваются как области кодирования R11-R14.
Таким образом, секция 281 разбиения области разбивает целевой блок BLK на области кодирования R11-R14, как показано на фиг. 5.
Однако настоящий вариант осуществления не ограничивается такой конфигурацией: секция 281 разбиения области может разбивать целевой блок любым из различных способов. Далее подробно описаны варианты того, как секция 281 разбиения области разбивает целевой блок.
Секция 282 кодирования области осуществляет процесс кодирования каждой из областей кодирования, полученных секцией 281 разбиения области, разбивающей целевой блок, со ссылкой на таблицу TBL21 VLC, заданную в соответствии с размером области кодирования. Таким образом, в нижеприведенном описании представлен пример, в котором секция 282 кодирования области осуществляет процесс кодирования, обращаясь, в соответствии с контекстом, к таблице TBL21 VLC, заданной для единицы кодирования размером 8×8.
Секция 282 кодирования области, в частности, включает в себя секцию 201 кодирования последнего ненулевого коэффициента, секцию 202 кодирования в серийном режиме и секцию 203 кодирования в уровневом режиме.
Секция 201 кодирования последнего ненулевого коэффициента кодирует последний ненулевой коэффициент в области кодирования в качестве цели кодирования (в дальнейшем именуемой "целевая область кодирования"). В частности, секция 201 кодирования ненулевого коэффициента кодирует 'last_pos', 'level' и 'sign' последнего ненулевого коэффициента, включенного в матрицу коэффициентов, соответствующую целевой области кодирования.
Секция 202 кодирования в серийном режиме осуществляет, в серийном режиме, процесс кодирования в отношении матрицы коэффициентов, соответствующей целевой области кодирования. В частности, секция 202 кодирования в серийном режиме последовательно кодирует, со ссылкой на таблицу TBL21 VLC, соответствующую контексту, 'run', 'level' и 'sign' ненулевых коэффициентов, включенных в матрицу коэффициентов, в серийном режиме. В нижеприведенном описании термин "процесс кодирования в серийном режиме" используется для обозначения процесса кодирования, осуществляемого секцией 202 кодирования в серийном режиме.
Секция 202 кодирования в серийном режиме повторяет процесс кодирования в серийном режиме, пока не будет выполнено условие окончания серийного режима. Условием окончания серийного режима является, например, (i) имеет ли кодированный коэффициент значение, которое превышает порог, или (ii) закончила ли секция 202 кодирования в серийном режиме кодирование заранее определенного количества коэффициентов.
Секция 202 кодирования в серийном режиме, в случае выполнения условия окончания серийного режима, предписывает секции 203 кодирования в уровневом режиме начать кодирование в уровневом режиме.
Секция 203 кодирования в уровневом режиме кодирует, в уровневом режиме, коэффициенты, включенные в матрицу коэффициентов, соответствующую целевой области кодирования. В частности, секция 203 кодирования в уровневом режиме последовательно кодирует, со ссылкой на таблицу TBL21 VLC, соответствующую контексту, 'level' и 'sign' коэффициентов, включенных в матрицу коэффициентов в уровневом режиме.
В нижеприведенном описании термин "процесс кодирования в уровневом режиме" используется для обозначения процесса кодирования, осуществляемого секцией 203 кодирования в уровневом режиме. Секция 203 кодирования в уровневом режиме повторяет процесс кодирования в уровневом режиме, пока секция 203 кодирования в уровневом режиме не закончит кодирование первого коэффициента в порядке сканирования целевой области кодирования.
Секция 282 кодирования области, закончив процесс кодирования каждой целевой области кодирования целевого блока, выводит кодированную информацию задания TU "TUI'" включающую в себя коэффициенты, полученные из процесса кодирования.
Секция 282 кодирования области может осуществлять процесс кодирования, как показано на фиг. 6. В нижеприведенном описании, области R11-R14 декодирования, представленные на фиг. 6, рассматриваются как области кодирования R11-R14.
Таким образом, секция 282 кодирования области осуществляет процесс кодирования в следующем последовательном порядке: области R11, R12, R13 и R14 кодирования (см. фиг. 6). В каждой из областей кодирования R11-R14, секция 101 декодирования последнего ненулевого коэффициента сначала декодирует последний ненулевой коэффициент согласно последовательности сканирования. Затем секция 282 кодирования области декодирует, в обратном порядке последовательности сканирования, от последнего ненулевого коэффициента до первого коэффициента в порядке сканирования целевой области кодирования, посредством процесса декодирования в серийном режиме и процесса декодирования в уровневом режиме.
(Последовательность операций процесса)
Как описано выше, последовательность операций процесса кодирования, осуществляемого устройством 2 кодирования движущихся изображений, в общем случае, идентична последовательности операций процесса декодирования, осуществляемого устройством 1 декодирования движущихся изображений, причем последовательность операций процесса декодирования описана со ссылкой на фиг. 4. Поэтому подробное описание последовательности операций процесса кодирования, осуществляемого устройством 2 кодирования движущихся изображений здесь опущено.
(Разновидности)
В нижеприведенном описании представлены некоторые предпочтительные разновидности устройства 2 кодирования движущихся изображений.
Разновидность 1-1': [определение наличия или отсутствия ненулевого коэффициента]
Секция 282 кодирования области устройства 2 кодирования движущихся изображений может быть выполнена с возможностью (i) определять наличие или отсутствие ненулевого коэффициента для каждой области кодирования, (ii) кодировать флаг ненулевого коэффициента, указывающий результат такого определения, и (iii) включать кодированный таким образом флаг ненулевого коэффициента в кодированные данные коэффициентов. В этом случае, секция 282 кодирования области может пропускать кодирование коэффициентов для области кодирования, для которой не существует ненулевых коэффициентов.
Конкретные примеры области кодирования и флага ненулевого коэффициента, по существу, аналогичны описанным в разновидности 1-1 устройства 1 декодирования движущихся изображений. Поэтому описания области кодирования и ненулевого коэффициента здесь опущены. Однако следует заметить, что "область декодирования", "процесс декодирования" и "секция 122 декодирования области" в описании разновидности 1-1 рассматриваются как "область кодирования", "процесс кодирования" и "секция 282 кодирования области", соответственно.
Разновидность 1-2': [изменение способа обработки в соответствии с позицией каждой области кодирования]
[1] Изменение способа сканирования
В вышеприведенном описании рассмотрено использование зигзагообразного сканирования в качестве способа сканирования для каждой области кодирования. Устройство 2 кодирования движущихся изображений может, однако, альтернативно изменять способ сканирования в соответствии с позицией каждой области кодирования. Конкретные примеры способа сканирования аналогичны, например, описанным в [1] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому описание способа сканирования здесь опущено. Однако следует заметить, что "область декодирования", "процесс декодирования" и "секция 122 декодирования области" в описании [1] разновидности 1-2 рассматриваются как "область кодирования", "процесс кодирования" и "секция 282 кодирования области", соответственно.
[2] Ограничение режима
В вышеприведенном описании рассмотрена конфигурация осуществления процесса кодирования в серийном режиме и процесса кодирования в уровневом режиме в ходе процесса кодирования для каждой области кодирования. Устройство 2 кодирования движущихся изображений может, однако, альтернативно осуществлять процесс кодирования в серийном режиме в соответствии с позицией каждой области кодирования. Конкретный пример процесса аналогичен, например, описанному в [2] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому описание процесса здесь опущено. Однако следует заметить, что "область декодирования", "процесс декодирования" и "секция 122 декодирования области" в описании [2] разновидности 1-2 рассматриваются как "область кодирования", "процесс кодирования" и "секция 282 кодирования области", соответственно.
[3] Изменение таблицы VLC и/или способа вычисления кодового числа
Для процесса кодирования в серийном режиме, устройство 2 кодирования движущихся изображений может, в соответствии с позицией каждой области кодирования, изменять таблицу VLC, к которой производится обращение, и/или способ вычисления кодового числа. Например, устройство 2 кодирования движущихся изображений может, в соответствии с позицией каждой области кодирования, изменять таблицу VLC для использования в преобразовании битовой последовательности, указывающей кодовое число, в пару параметров {'run', 'level'}. Конкретный пример процесса аналогичен, например, описанному в [3] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому описание процесса здесь опущено. Однако следует заметить, что "область декодирования", "процесс декодирования" и "секция 122 декодирования области" в описании [3] разновидности 1-2 рассматриваются как "область кодирования", "процесс кодирования" и "секция 282 кодирования области", соответственно.
[4] Динамическая оптимизация
В нижеприведенном описании представлен пример динамической оптимизации, осуществляемой секцией 282 кодирования области в соответствии со статусом кодирования.
[4-1] Обновление таблицы VLC
Секция 282 кодирования области может определять частоту возникновения значения параметра и обновлять кодовое число в таблице VLC в соответствии с определенной частотой возникновения.
В частности, секция 282 кодирования области может обновлять (i) кодовое число для значения параметра, имеющего высокую частоту возникновения, до меньшего кодового числа (более короткого кода) и (ii) кодовое число для значения параметра, имеющего низкую частоту возникновения, до большего кодового числа (более длинного кода). Конкретный пример процесса аналогичен, например, описанному в [4-1] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому описание процесса здесь опущено. Однако следует заметить, что "область декодирования", "процесс декодирования" и "секция 122 декодирования области" в описании [4-1] разновидности 1-2 рассматриваются как "область кодирования", "процесс кодирования" и "секция 282 кодирования области", соответственно.
[4-2] Скорость адаптации
Скорость адаптации динамической оптимизации, осуществляемой устройством 2 кодирования движущихся изображений, аналогична описанной в [4-2] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому описание скорости адаптации динамической оптимизации, осуществляемой устройством 2 кодирования движущихся изображений, здесь опущено.
[5] Изменение условия окончания серийного режима
Устройство 2 кодирования движущихся изображений может изменять условие окончания серийного режима в соответствии с позицией каждой области кодирования. Дополнительно, устройство 2 кодирования движущихся изображений может определять условие начала серийного режима в соответствии с позицией каждой области кодирования. Детали относительно того, как изменять условие окончания серийного режима и как определять условие начала серийного режима, аналогичны описанным в [5] разновидности 1-2 устройства 1 декодирования движущихся изображений. Поэтому их описания здесь опущены.
Разновидность 1-3': [выбор, разбивать ли целевой блок в соответствии с режимом прогнозирования для целевого блока]
Секция 281 разбиения области может быть выполнена с возможностью выбора, в соответствии с режимом прогнозирования для целевого блока, разбивать ли целевой блок. Конкретный процесс аналогичен, например, описанному в разновидности 1-3 устройства 1 декодирования движущихся изображений. Поэтому описание процесса здесь опущено.
Разновидность 1-4': [количество и размер областей]
Секция 281 разбиения области может разбивать целевой блок на более четырех областей. Конкретный процесс аналогичен, например, описанному в разновидности 1-4 устройства 1 декодирования движущихся изображений. Поэтому описание процесса здесь опущено.
Разновидность 1-5': порядок обработки областей кодирования
Порядок сканирования процесса кодирования, осуществляемого секцией 282 кодирования области, не ограничивается вышеприведенным примером. Секция 282 кодирования области может быть выполнена с возможностью осуществления процесса кодирования в порядке сканирования, аналогичном описанному в разновидности 1-5 устройства 1 декодирования движущихся изображений.
Как описано выше, [разновидности] устройства 1 декодирования движущихся изображений применимы к устройству 2 кодирования движущихся изображений. С другой стороны, описанные здесь [разновидности] устройства 2 кодирования движущихся изображений применимы к устройству 1 декодирования движущихся изображений, в случае, когда термин "процесс кодирования" заменен на "процесс декодирования".
(Функция и результат)
Как было описано, устройство 1 декодирования движущихся изображений декодирует коэффициенты преобразования из информации TU "TUI" на кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство 1 декодирования движущихся изображений включает в себя секцию 121 разбиения области для разбиения целевого блока, выступающего в роли каждой единицы преобразования, на множество областей декодирования, и секцию 122 декодирования области для декодирования коэффициентов преобразования в каждой из множества областей декодирования со ссылкой на таблицу TBL11 VLC, которая является информацией декодирования для использования при получении коэффициентов преобразования из информации TU "TUI" и которая назначается каждой из множества областей декодирования.
Дополнительно, устройство 2 кодирования движущихся изображений кодирует коэффициенты преобразования, полученные путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство 2 кодирования движущихся изображений включает в себя секцию 281 разбиения области для разбиения целевого блока, выступающего в роли каждой единицы преобразования, на множество областей кодирования, и секцию 282 кодирования области для кодирования коэффициентов преобразования в каждой единице преобразования со ссылкой на таблицу TBL21 VLC для использования при кодировании коэффициентов преобразования, причем таблица TBL21 VLC назначается каждой из множества областей кодирования.
Согласно вышеописанной компоновке устройства 1 декодирования движущихся изображений, процесс декодирования осуществляется со ссылкой на таблицу 11 VLC, заданную для области декодирования размером 8×8. Это позволяет уменьшить размер таблицы 11 VLC по сравнению со случаем, когда процесс декодирования осуществляется со ссылкой на таблицу VLC, заданную для первоначального размера целевого блока (16×16). Аналогично, процесс декодирования осуществляется со ссылкой на таблицу, указывающую порядок сканирования, причем таблица задается для области декодирования размером 8×8. Это позволяет уменьшить размер таблицы.
Устройство 2 кодирования движущихся изображений также способно осуществлять аналогичную функции и давать аналогичный результат.
[2] Вариант осуществления 2
В нижеприведенном описании представлен второй вариант осуществления настоящего изобретения со ссылкой на фиг. 15-22. Для удобства объяснения, элементы, функции которых идентичны функциям соответствующих элементов описанных в варианте осуществления 1, обозначены соответствующими идентичными ссылочными позициями, и описание этих элементов здесь опущено.
В нижеприведенном описании представлены кодирование и декодирование коэффициента путем указания относительной позиции. В нижеприведенном описании предполагается, что целевой блок имеет размер, например, 16×16.
[Устройство декодирования движущихся изображений]
В нижеследующем описании, в первую очередь, обратимся к конфигурации устройства 1 декодирования движущихся изображений со ссылкой на фиг. 15. Устройство 1 декодирования движущихся изображений настоящего варианта осуществления сконфигурировано путем замены секции 12 декодирования информации TU устройства 1 декодирования движущихся изображений, представленной на фиг. 2, секцией 12A декодирования информации TU, представленной на фиг. 15.
Секция 12A декодирования информации TU, представленная на фиг. 15, описана ниже. Как показано на фиг. 15, секция 12A декодирования информации TU включает в себя таблицу TBL30 VLC, секцию 310 декодирования в серийно-уровневом режиме, секцию 320 декодирования в режиме относительной позиции и секцию 330 управления режимом обработки.
Таблица TBL30 VLC это таблица, которая связывает (i) кодовое число, которое может преобразовываться в битовую последовательность и в которое может преобразовываться битовая последовательность, с (ii) параметром, подлежащим декодированию. Таблица TBL30 VLC включает в себя (i) таблицу TBL31 серийно-уровневого режима (описанную ниже), к которой обращается секция 310 декодирования в серийно-уровневом режиме, и (ii) таблицу TBL32 режима относительной позиции (описанную ниже), к которой обращается секция 320 декодирования в режиме относительной позиции.
Можно использовать, в качестве таблицы TBL31 серийно-уровневого режима, таблицу, которая аналогична таблице TBL11 VLC секции 12 декодирования информации TU, представленной на фиг. 1. Поэтому описание таблицы TBL31 серийно-уровневого режима здесь опущено. Определение таблицы TBL32 режима относительной позиции описано ниже.
Секция 310 декодирования в серийно-уровневом режиме осуществляет процесс декодирования в серийном режиме и процесс декодирования в уровневом режиме под управлением секции 330 управления режимом обработки. Нижеприведенное описание относится к тем процессам декодирования, которые осуществляются секцией 310 декодирования в серийно-уровневом режиме как "процесс декодирования в серийно-уровневом режиме". Описание процесса декодирования в серийном режиме и процесса декодирования в уровневом режиме, каждый из которых описан согласно варианту осуществления 1, здесь опущено.
Секция 310 декодирования в серийно-уровневом режиме (средство декодирования) включает в себя секцию 311 декодирования последнего ненулевого коэффициента, секцию 312 декодирования в серийном режиме и секцию 313 декодирования в уровневом режиме.
Секция 311 декодирования последнего ненулевого коэффициента, секция 312 декодирования в серийном режиме и секция 313 декодирования в уровневом режиме имеют функции, аналогичные функциям секции 101 декодирования последнего ненулевого коэффициента, секции 102 декодирования в серийном режиме и секции 103 декодирования в уровневом режиме, соответственно, каждая из которых описана со ссылкой на фиг. 1. Поэтому описание функций, каждая из которых описана, здесь опущено.
Секция 102 декодирования в серийном режиме и секция 103 декодирования в уровневом режиме выполнены с возможностью обращаться к таблице TBL31 серийно-уровневого режима в процессе декодирования в серийно-уровневом режиме.
Секция 320 декодирования в режиме относительной позиции осуществляет процесс декодирования в отношении кодированных данных коэффициентов, в которых кодируется относительная позиция ненулевого коэффициента. В частности, секция 320 декодирования в режиме относительной позиции включает в себя секцию 321 декодирования последнего ненулевого коэффициента, секцию 322 декодирования относительной позиции (средство декодирования относительной позиции) и секцию 323 определения позиции коэффициента (средство указания позиции).
Секция 321 декодирования последнего ненулевого коэффициента декодирует последний ненулевой коэффициент в целевом блоке. Секция 321 декодирования последнего ненулевого коэффициента декодирует 'last_pos', 'level' и 'sign', включенные в кодированные данные коэффициентов для целевого блока. Дополнительно, секция 321 декодирования последнего ненулевого коэффициента преобразует 'last_pos' в координатное представление ('lastx', 'lasty'), в котором коэффициент нулевой частоты является началом отсчета (0, 0). В нижеприведенном описании, позиция, указанная посредством координатного представления, в котором коэффициент нулевой частоты является началом отсчета (0, 0), именуется "абсолютной позицией".
Из кодированных данных коэффициентов, в которых кодируется относительная позиция ненулевого коэффициента, секция 322 декодирования относительной позиции декодирует, для целевого блока, (i) относительную позицию (dx, dy) и (ii) значения ('level' и 'sign') ненулевого коэффициента цели декодирования. Относительная позиция ненулевого коэффициента означает относительную позицию ненулевого коэффициента цели декодирования, причем относительная позиция наблюдается из абсолютной позиции непосредственно ранее декодированного ненулевого коэффициента. Дополнительно, в нижеприведенном описании такое представление позиции ненулевого коэффициента с использованием относительной позиции рассматривается как "указание относительной позиции".
Секция 323 определения позиции коэффициента определяет абсолютную позицию ненулевого коэффициента цели декодирования в соответствии с (i) относительной позицией (dx, dy) целевого ненулевого коэффициента, относительная позиция которого была декодирована секцией 322 декодирования относительной позиции, и (ii) абсолютной позицией (x, y) непосредственно ранее декодированного ненулевого коэффициента.
0
n+1
Относительные позиции ненулевых коэффициентов от последнего ненулевого коэффициента C до (n+1)-го ненулевого коэффициента Cможно представить следующими реляционными выражениями (1-1)-(1-3):
0
0
0
C:x='lastx', y='lasty'... (1-1)
1
1
0
1
0
C:x=x+dx, y=y+dy... (1-2)
...
n+1
n+1
n
n+1
n
C:x=x+dx, y=y+dy... (1-3)
Секция 323 определения позиции коэффициента использует вышеприведенные реляционные выражения (1-1)-(1-3) для определения абсолютной позиции ненулевого коэффициента цели декодирования.
Секция 330 управления режимом обработки определяет, располагается ли ненулевой коэффициент цели декодирования в заранее определенной области. В соответствии с результатом определения, секция 330 управления режимом обработки осуществляет управление, должен ли процесс декодирования осуществляться секцией 310 декодирования в серийно-уровневом режиме, или процесс декодирования должен осуществляться секцией 320 декодирования в режиме относительной позиции.
В частности, секция 330 управления режимом обработки определяет, располагается ли ненулевой коэффициент цели декодирования в области размером 8×8 на стороне низкочастотной составляющей.
n
n
n
n
n
В частности, согласно вышеприведенному примеру реляционных выражений (1-1)-(1-3), секция 330 управления режимом обработки определяет, удовлетворяет ли позиция (x, y) ненулевого коэффициента цели декодирования условию C "x<8 && y<8", где "&&" – оператор, обозначающий логическое произведение.
n+1
В случае, когда ненулевой коэффициент цели декодирования располагается в области размером 8×8 на стороне низкочастотной составляющей, секция 330 управления режимом обработки предписывает секции 310 декодирования в серийно-уровневом режиме осуществлять следующий процесс декодирования от ненулевого коэффициента C.
В случае, когда ненулевой коэффициент цели декодирования не располагается в области размером 8×8 на стороне низкочастотной составляющей, секция 330 управления режимом обработки предписывает секции 320 декодирования в режиме относительной позиции осуществлять процесс декодирования.
(Последовательность операций процесса)
Со ссылкой на фиг. 16, в нижеприведенном описании представлен процесс декодирования, осуществляемый секцией 12A декодирования информации TU. На Фиг. 16 показана блок-схема операций, демонстрирующая последовательность операций процесса S20, в котором ненулевой коэффициент кодируется/декодируется путем указания относительной позиции.
Фиг. 16 совместно иллюстрирует процесс кодирования, осуществляемый устройством 2 кодирования движущихся изображений, и процесс декодирования, осуществляемый устройством 1 декодирования движущихся изображений.
Как показано на фиг. 16, когда начинается процесс S20, в котором ненулевой коэффициент декодируется путем указания относительной позиции, секция 330 управления режимом обработки сначала предписывает секции 320 декодирования в режиме относительной позиции осуществлять процесс декодирования в устройстве 1 декодирования движущихся изображений. В соответствии с этим, секция 321 декодирования последнего ненулевого коэффициента декодирует последний ненулевой коэффициент в целевом блоке (S21).
Секция 330 управления режимом обработки определяет, располагается ли последний ненулевой коэффициент, декодированный на этапе S21, в области, в которой декодируется коэффициент, подвергнутый указанию относительной позиции (S22).
В случае, когда последний ненулевой коэффициент, декодированный на этапе S21, располагается в области, в которой декодируется коэффициент, подвергнутый указанию относительной позиции (Да на этапе S22), секция 330 управления режимом обработки предписывает секции 320 декодирования в режиме относительной позиции осуществлять процесс декодирования. В соответствии с этим, секция 322 декодирования относительной позиции декодирует позицию коэффициента, подвергнутого указанию относительной позиции, и секция 323 определения позиции коэффициента определяет абсолютную позицию коэффициента, благодаря чему, коэффициент цели декодирования декодируется (S23).
В случае, когда, для процесса, следующего за вышеописанным процессом, декодированный коэффициент располагается в области, в которой декодируется коэффициент, подвергнутый указанию относительной позиции, процесс декодирования коэффициентов путем указания относительной позиции продолжает осуществляться (S22, S23).
В случае, когда декодированный коэффициент не располагается в области, в которой декодируется коэффициент, подвергнутый указанию относительной позиции (Нет на этапе S22), секция 330 управления режимом обработки предписывает секции 310 декодирования в серийно-уровневом режиме осуществлять процесс декодирования. В соответствии с этим, секция 312 декодирования в серийном режиме осуществляет процесс декодирования в серийном режиме, и затем секция 313 декодирования в уровневом режиме осуществляет процесс декодирования в уровневом режиме (S24). Все коэффициенты в целевом блоке, таким образом, декодируются, и процесс декодирования коэффициентов путем указания относительной позиции заканчивается.
(Конкретный пример)
Конкретный пример процесса декодирования, осуществляемого секцией 12A декодирования информации TU, описан ниже со ссылкой на фиг. 17. Фиг. 17 демонстрирует пример, в котором секция 12A декодирования информации TU осуществляет процесс декодирования.
Как показано на фиг. 17, целевой блок BLK состоит из двух областей R1 и R2. При этом предполагается, что целевой блок BLK является блоком размером 16×16 (описанным выше), и что область R1 является областью размером 8×8 на стороне низкочастотной составляющей.
Стрелки, показанные в области R1, указывают порядок сканирования в области R1, и порядок сканирования является зигзагообразным сканированием. Дополнительно, область R2 это область, в которой коэффициент декодируется путем указания относительной позиции.
N
В начале процесса декодирования коэффициентов путем указания относительной позиции, секция 321 декодирования последнего ненулевого коэффициента в первую очередь декодирует последний ненулевой коэффициент C в целевом блоке BLK (S21).
N
Поскольку последний ненулевой коэффициент C располагается в области R2 (Да на этапе S22), секция 330 управления режимом обработки предписывает секции 320 декодирования в режиме относительной позиции осуществлять процесс декодирования.
N-1
N-1
N
N-1
Затем секция 322 декодирования относительной позиции декодирует относительную позицию ненулевого коэффициента C, и секция 323 определения позиции коэффициента определяет абсолютную позицию ненулевого коэффициента C в соответствии с декодированной относительной позицией и абсолютной позицией последнего ненулевого коэффициента C. Дополнительно, в случае, когда 'level' и 'sign' декодированы, декодируется (S23) ненулевой коэффициент C.
N-1
1
Поскольку ненулевые коэффициенты от ненулевого коэффициента C до ненулевого коэффициента C располагаются в области R2, секция 320 декодирования в режиме относительной позиции осуществляет процесс декодирования, как описано выше (S22, S23).
0
Дополнительно, когда секция 320 декодирования в режиме относительной позиции заканчивает осуществление процесса декодирования в отношении ненулевых коэффициентов до ненулевого коэффициента C, который располагается в R1 (Нет на этапе S22), секция 330 управления режимом обработки предписывает секции 310 декодирования в серийно-уровневом режиме осуществлять процесс декодирования.
0
В секции 310 декодирования в серийно-уровневом режиме, секция 312 декодирования в серийном режиме осуществляет процесс декодирования в серийном режиме, исходя из того, что ненулевой коэффициент C является опорной точкой. По окончании процесса декодирования в серийном режиме, секция 313 декодирования в уровневом режиме осуществляет процесс декодирования в уровневом режиме.
0
Можно применять, в качестве процесса декодирования, осуществляемого секцией 310 декодирования в серийно-уровневом режиме, процесс, аналогичный процессу, в котором единица кодирования размером 8×8 декодируется посредством зигзагообразного сканирования (в обратном порядке). Дополнительно, ненулевой коэффициент C декодированный первым в области R1, предпочтительно, является последним ненулевым коэффициентом в области R1 размером 8×8.
(Пример)
Ниже описан более конкретный пример секции 12A декодирования информации TU. Таблица TBL32 режима относительной позиции, используемая для декодирования относительной позиции (dx, dy), может быть организована следующим образом.
В частности, таблица TBL32 режима относительной позиции может быть организована таким образом, что более короткий код (битовая последовательность) связан с более коротким относительным расстоянием между целевым ненулевым коэффициентом и непосредственно предшествующим ненулевым коэффициентом. Относительное расстояние между целевым ненулевым коэффициентом и непосредственно предшествующим ненулевым коэффициентом можно получить, например, из относительной позиции (dx, dy) целевого ненулевого коэффициента.
Альтернативно, таблица TBL32 режима относительной позиции также может быть организована таким образом, что более короткий код связан с парой (dx, dy), указывающей относительное расстояние и имеет более высокую частоту возникновения.
Согласно вышеописанной компоновке, короткий код может адаптивно назначаться в соответствии с относительным расстоянием и частотой возникновения. Это позволяет снизить объем кодированных данных, подлежащих декодированию.
Максимальное значение абсолютного значения каждого из dx и dy получается вычитанием 1 из длины стороны целевого блока кодирования. Таким образом, в случае, когда целевой блок кодирования имеет размер 16×16, максимальное значение абсолютного значения каждого из dx и dy равно 15.
(Пример модификации)
[Изменение заранее определенной области]
Секция 330 управления режимом обработки может быть выполнена с возможностью (i) определять размер целевого блока, и (ii) в соответствии с результатом определения, осуществлять управление, должен ли процесс декодирования осуществляться секцией 310 декодирования в серийно-уровневом режиме, или процесс декодирования должен осуществляться секцией 320 декодирования в режиме относительной позиции.
Например, в случае, когда целевой блок имеет размер не более 8×8, секция 330 управления режимом обработки предписывает секции 310 декодирования в серийно-уровневом режиме осуществлять процесс декодирования. При этом, в случае, когда целевой блок имеет размер не менее 16×16, секция 330 управления режимом обработки предписывает секции 320 декодирования в режиме относительной позиции осуществлять процесс декодирования.
В случае, когда заранее определенное количество ненулевых коэффициентов подлежащих декодированию, например, не превышает 64 в целевом блоке, секция 330 управления режимом обработки может предписывать секции 310 декодирования в серийно-уровневом режиме осуществлять процесс декодирования.
В кодированных данных коэффициентов, все ненулевые коэффициенты можно представлять путем указания относительной позиции. В этом случае, секция 330 декодирования в режиме относительной позиции декодирует все ненулевые коэффициенты.
Секция 330 управления режимом обработки может изменять заранее определенную область в соответствии с типом среза, режимом прогнозирования и/или размером целевого блока.
Например, в случае, когда внутреннее прогнозирование кодируется в целевом блоке, секция 330 управления режимом обработки задает область размером 8×8 на стороне низкочастотной составляющей в качестве заранее определенной области. При этом, например, в случае, когда внешнее прогнозирование кодируется в целевом блоке, секция 330 управления режимом обработки задает область размером 4×4 на стороне низкочастотной составляющей в качестве заранее определенной области.
[Изменение таблицы режима относительной позиции]
n
n
n
n
Таблица TBL32 режима относительной позиции может включать в себя множество таблиц TBL32 режима относительной позиции в соответствии с соответствующими абсолютными позициями (x, y) ненулевых коэффициентов. Множество таблиц TBL32 режима относительной позиции, предпочтительно, оптимизируются в соответствующих абсолютных позициях (x, y) ненулевых коэффициентов на основании диапазона значений, которые могут иметь dx и dy.
n
n
Секция 420 декодирования в режиме относительной позиции может изменять, в соответствии с соответствующими абсолютными позициями (x, y) ненулевых коэффициентов, множество таблиц TBL32 режима относительной позиции, к которым производится обращение.
Согласно вышеописанной компоновке, можно адаптивно изменять множество таблиц TBL42 режима относительной позиции, к которым производится обращение. Это позволяет снизить объем кодированных данных, подлежащих декодированию.
Настоящий пример модификации подробно описан ниже применительно к устройству 2 кодирования движущихся изображений.
[Представление относительной позиции ненулевого коэффициента]
Вышеприведенное описание представляет относительную позицию ненулевого коэффициента в форме (dx, dy). Однако представление относительной позиции этим не ограничивается. Например, относительную позицию также может быть представлять направлением и расстоянием.
[Таблица VLC]
Таблица TBL32 режима относительной позиции также может быть организована, как показано на фиг. 20. Таблица TBL32 режима относительной позиции, представленная на фиг. 20, организована так, что меньшее кодовое число связано с меньшим значением dx или dy.
Например, в случае, когда dx или dy равно 0 (нулю), кодовое число равно "0". Таким образом, (dx, dy)=(0, 1) назначается кодовое число "0, 1".
Также согласно фиг. 20, "1" связана с dx, dy "-1", и "2" связана с dx, dy "1". Как описано выше, согласно таблице TBL32 режима относительной позиции, в случае значений, идентичных по абсолютной величине, значению с отрицательным знаком назначается меньшее кодовое число.
Таблица TBL32 режима относительной позиции, представленная на фиг. 20, предпочтительно, организована таким образом, что более короткий код связан с меньшим кодовым числом.
(Пример модификации0
[Способ оптимизации таблицы VLC на основании диапазона значений, которые могут иметь dx и dy]
n
n
n
n
Таблица TBL32 режима относительной позиции может включать в себя множество таблиц TBL32 режима относительной позиции в соответствии с соответствующими абсолютными позициями (x, y) коэффициентов. Множество таблиц TBL32 режима относительной позиции, предпочтительно, оптимизируются в соответствующих абсолютных позициях (x, y) коэффициентов на основании диапазона значений, которые могут иметь dx и dy.
Пример конкретной компоновки таблицы TBL32 режима относительной позиции описан ниже со ссылкой на фиг. 21 и 22. Фиг. 21 демонстрирует пример, в котором область R2 целевого блока BLK, представленного на фиг. 17 или фиг. 19 (описанная ниже) дополнительно подразделяется на три области, а именно область R2a, область R2b и область R2c.
Фиг. 22 демонстрирует пример таблиц VLC, которые связаны с каждой из области R2a, области R2b и области R2c.
(a) На фиг. 22 иллюстрирует таблицу Td1 режима относительной позиции, к которой обращается секция 323 определения относительной позиции секции 320 декодирования в режиме относительной позиции в случае, когда x или y не имеет значения, которое не меньше заранее определенного положительного значения.
(b) На фиг. 22 иллюстрирует таблицу Td2 режима относительной позиции, к которой обращается секция 323 определения относительной позиции секции 320 декодирования в режиме относительной позиции в случае, когда x или y не имеет значения, которое не больше заранее определенного отрицательного значения.
Целевой блок BLK, представленный на фиг. 21 состоит из области R1 и областей R2a-R2c. Позиция коэффициента нулевой частоты в целевом блоке BLK представлена координатами (0, 0). Дополнительно, позиция последнего коэффициента в зигзагообразном порядке сканирования, т.е. позиция наивысшей частотной составляющей в целевом блоке BLK представлена как (15, 15).
На фиг. 21, область R1 является, в порядке примера, внутренней областью квадрата, верхняя левая вершина которого располагается в точке (0, 0). Область R2a является внутренней областью квадрата, верхняя левая вершина которого располагается в точке (8, 0). Область R2b является внутренней областью квадрата, верхняя левая вершина которого располагается в точке (0, 8). Область R2c является внутренней областью квадрата, верхняя левая вершина которого располагается в точке (8, 8).
Согласно таблице Td1 режима относительной позиции, показанной в (a) на фиг. 22, кодовое число "0" назначается значению коэффициента "0". Затем, кодовые числа "1", "2",..., "13" и "14" назначаются соответствующим значениям коэффициентов "-1", "1"... "-7" и "7".
Таким образом, меньшее кодовое число назначается значению коэффициента, имеющего меньшее абсолютное значение. Дополнительно, в случае значений, идентичных по абсолютной величине и разных по знаку, значению с отрицательным знаком назначается меньшее кодовое число, чем значению с положительным знаком. Например, кодовые числа "1", "2",..., "13" и "14" назначаются соответствующим значениям коэффициентов "-1", "1"... "-7" и "7".
Только отрицательные значения "-8"-"-15" задаются в диапазоне от "8" до "15", в который попадает абсолютное значение коэффициента.
При этом, таблица Td2 режима относительной позиции, показанная в (b) на фиг. 22, задается так же, как таблица Td1 режима относительной позиции в диапазоне от "0" до "7" в который попадает абсолютное значение коэффициента.
Только положительные значения "8"-"15" задаются в диапазоне от "8" до "15", в который попадает абсолютное значение коэффициента.
Секция 323 определения относительной позиции изменяет, как показано ниже, в соответствии с диапазоном, в который может попадать позиция (dx, dy), таблицы VLC, к которым надлежит обращаться.
Для области R2a, диапазон, в который может попадать dx, составляет -15≤dx≤7. Поэтому секция 323 определения относительной позиции обращается к таблице Td1 режима относительной позиции. При этом диапазон, в который может попадать dy, составляет -7≤dy≤15. Поэтому секция 323 определения относительной позиции обращается к таблице Td2 режима относительной позиции.
Для области R2b, диапазон, в который может попадать dx, составляет -7≤dx≤15. Поэтому секция 323 определения относительной позиции обращается к таблице Td2 режима относительной позиции. При этом диапазон, в который может попадать dy, составляет -15≤dy≤7. Поэтому секция 323 определения относительной позиции обращается к таблице Td1 режима относительной позиции.
Для области R2c, диапазон, в который может попадать dx, составляет -15≤dx≤7. Поэтому секция 323 определения относительной позиции обращается к таблице Td1 режима относительной позиции. При этом диапазон, в который может попадать dy, составляет -15≤dy≤7. Поэтому секция 323 определения относительной позиции обращается к таблице Td1 режима относительной позиции.
В случае, когда таблицы VLC оптимизируются, таким образом, на основании диапазонов, в которые могут попадать значения dx и dy, можно добиться более высокой эффективности кодирования.
[Устройство кодирования движущихся изображений]
В нижеследующем описании, в первую очередь, обратимся к конфигурации устройства 2 кодирования движущихся изображений со ссылкой на фиг. 18. Устройство 2 кодирования движущихся изображений настоящего варианта осуществления сконфигурировано путем замены (i) секции 280 кодирования информации TU секции 11 кодирования с переменной длиной слова, включенной в устройство 2 кодирования движущихся изображений и представленной на фиг. 11, (ii) секцией 280A кодирования информации TU, представленной на фиг. 18.
Ниже описана секция 280A кодирования информации TU, представленная на фиг. 18. Как показано на фиг. 18, секция 280A кодирования информации TU включает в себя таблицу TBL40 VLC, секцию 410 кодирования в серийно-уровневом режиме, секцию 420 кодирования в режиме относительной позиции и секцию 430 управления режимом обработки.
Таблица TBL40 VLC это таблица, которая задает связь между каждым параметром и соответствующим кодом, который является битовой последовательностью кодированных данных. Таблица TBL40 VLC включает в себя (i) таблицу TBL41 серийно-уровневого режима (описанную ниже), к которой обращается секция 410 кодирования в серийно-уровневом режиме, и (ii) таблицу TBL42 режима относительной позиции (описанную ниже), к которой обращается секция 420 кодирования в режиме относительной позиции.
В качестве таблицы TBL41 серийно-уровневого режима можно использовать таблицу, которая аналогична таблице TBL21 VLC секции 280 кодирования информации TU, представленной на фиг. 11. Поэтому описание таблицы TBL41 серийно-уровневого режима здесь опущено. Определение таблицы TBL42 режима относительной позиции приведено ниже.
Секция 410 кодирования в серийно-уровневом режиме осуществляет процесс кодирования в серийном режиме и процесс кодирования в уровневом режиме под управлением секции 330 управления режимом обработки (нижеприведенное описание относится к таким процессам кодирования, как "процесс кодирования в серийно-уровневом режиме"). Описание процесса кодирования в серийном режиме и процесса кодирования в уровневом режиме, каждый из которых описан согласно варианту осуществления 1, здесь опущено.
Секция 410 кодирования в серийно-уровневом режиме включает в себя секцию 411 кодирования последнего ненулевого коэффициента, секцию 412 кодирования в серийном режиме и секцию 413 кодирования в уровневом режиме.
Секция 411 кодирования последнего ненулевого коэффициента, секция 412 кодирования в серийном режиме и секция 413 кодирования в уровневом режиме имеют функции, аналогичные функциям секции 201 кодирования последнего ненулевого коэффициента, секции 202 кодирования в серийном режиме и секции 203 кодирования в уровневом режиме, соответственно, каждая из которых описана со ссылкой на фиг. 11. Поэтому описание функций, каждая из которых описана, здесь опущено.
Секция 202 кодирования в серийном режиме и секция 203 кодирования в уровневом режиме выполнены с возможностью обращаться к таблице TBL41 серийно-уровневого режима.
Секция 420 кодирования в режиме относительной позиции генерирует кодированные данные коэффициентов путем кодирования относительной позиции ненулевого коэффициента цели кодирования в целевом блоке. В частности, секция 420 кодирования в режиме относительной позиции включает в себя секцию 421 кодирования последнего ненулевого коэффициента, секцию 422 вычисления относительной позиции (средство кодирования относительной позиции) и секцию 423 кодирования относительной позиции (средство кодирования относительной позиции).
Секция 421 кодирования последнего ненулевого коэффициента кодирует последний ненулевой коэффициент в целевом блоке. Секция 421 кодирования последнего ненулевого коэффициента кодирует 'last_pos', 'level' и 'sign' последнего ненулевого коэффициента в соответствии с порядком, противоположным порядку зигзагообразного сканирования. Дополнительно, секция 421 кодирования последнего ненулевого коэффициента преобразует 'last_pos' в координатное представление ('lastx', 'lasty'), в котором коэффициент нулевой частоты является началом отсчета (0, 0). В нижеприведенном описании, позиция, указанная посредством координатного представления, в котором коэффициент нулевой частоты является началом отсчета (0, 0), именуется "абсолютной позицией".
Секция 422 вычисления относительной позиции вычисляет относительную позицию коэффициента цели кодирования на основании (i) абсолютной позиции коэффициента цели кодирования и (ii) абсолютной позиции непосредственно ранее декодированного ненулевого коэффициента.
Секция 422 вычисления относительной позиции может вычислять относительную позицию (dx, dy) ненулевого коэффициента цели кодирования на основании реляционных выражений (1-1)-(1-3) (описанных выше).
Секция 423 кодирования относительной позиции генерирует, со ссылкой на таблицу TBL42 режима относительной позиции, кодированные данные коэффициентов путем кодирования, в заранее определенном порядке, (i) относительной позиции (dx, dy) ненулевого коэффициента, относительная позиция которого была вычислена секцией 422 вычисления относительной позиции и (ii) 'level' и 'sign' ненулевого коэффициента.
В нижеприведенных примерах подробно описано, в каком порядке секция 423 кодирования относительной позиции кодирует ненулевые коэффициенты в целевом блоке путем указания относительной позиции.
Секция 430 управления режимом обработки определяет, располагается ли ненулевой коэффициент цели кодирования в заранее определенной области. В соответствии с результатом определения, секция 430 управления режимом обработки осуществляет управление, подлежит ли процесс кодирования осуществлению секцией 410 кодирования в серийно-уровневом режиме, или процесс кодирования подлежит осуществлению секцией 420 кодирования в режиме относительной позиции.
Поскольку способ, согласно которому секция 430 управления режимом обработки осуществляет управление, эквивалентен способу, согласно которому секция 330 управления режимом обработки секции 12A декодирования информации TU осуществляет управление, как описано выше, его описание здесь опущено.
(Последовательность операций процесса)
Как описано выше, поскольку последовательность операций процесса кодирования, осуществляемого устройством 2 кодирования движущихся изображений, по существу, идентична последовательности операций процесса декодирования, осуществляемого устройством 1 декодирования движущихся изображений и описанного со ссылкой на фиг. 16, ее конкретное описание здесь опущено.
(Пример)
[Порядок кодирования]
Нижеприведенное описание демонстрирует, со ссылкой на фиг. 19, пример того, в каком порядке секция 422 вычисления относительной позиции кодирует ненулевые коэффициенты в целевом блоке путем указания относительной позиции. Фиг. 19 демонстрирует пример кодирования ненулевых коэффициентов путем указания относительной позиции.
Целевой блок BLK, представленный на фиг. 19, имеет, в порядке примера, размер 16×16. Область R1 это область размером 8×8 на стороне низкочастотной составляющей целевого блока. Область R2 это область целевого блока, отличная от области R1.
Для области R1, секция 430 управления режимом обработки предписывает секции 410 кодирования в серийно-уровневом режиме осуществлять процесс кодирования. При этом для области R2, секция 430 управления режимом обработки предписывает секции 420 кодирования в режиме относительной позиции осуществлять процесс кодирования.
0
Нижеприведенное описание предполагает, в порядке примера, что N ненулевых коэффициентов с C(1) по C(N) в области R2 заранее выявлены, и что последний ненулевой коэффициент C в области R1 также выявлен.
Секция 423 кодирования относительной позиции последовательно кодирует ненулевые коэффициенты на следующих этапах (альтернативно, кодирование также может выражаться как кодирование относительных позиций ненулевых коэффициентов, причем относительные позиции сцеплены друг с другом).
0
1
0
Этап [1] Сначала, исходя из того, что последний ненулевой коэффициент C в области R1 является опорной точкой, в соответствии с заранее определенным критерием выбора, секция 423 кодирования относительной позиции выбирает, из N ненулевых коэффициентов с C(1) по C(N) в области R2, следующий ненулевой коэффициент C, с которым должен быть сцеплен ненулевой коэффициент C.
0
1
Заранее определенным критерием выбора является, например, объем кодированных данных, получаемый путем кодирования относительных позиций (dx, dy) между C и соответствующими ненулевыми коэффициентами C(1)-C(N), причем относительные позиции вычислены секцией 422 вычисления относительной позиции. В этом случае, секция 423 кодирования относительной позиции выбирает, в качестве ненулевого коэффициента C, ненулевой коэффициент с малым объемом кодированных данных.
Этап [2] Исходя из того, что выбранный ненулевой коэффициент является опорной точкой, секция 423 кодирования относительной позиции повторяет, по порядку, этап выбора в соответствии с критерием выбора, пока в области R2 не останется невыбранных ненулевых коэффициентов.
n
n+1
В более общем случае можно сказать, что критерием выбора является объем кодированных данных относительной позиции между C и C.
n
n+1
n
n+1
2
2
Критерий выбора, приведенный исключительно в порядке примера, этим не ограничивается. Например, критерием выбора может быть, например, расстояние Манхэттена между C и C (|dx|+|dy|) или евклидово расстояние между C и C (dx+dy).
0
N
0
N
В случае, когда этап выбора на этапе [2] повторяется, ненулевые коэффициенты C-Cсцепляются друг с другом. Это позволяет получить цепь ненулевых коэффициентов C-C, представленную на фиг. 19.
N
N
N
N
Этап [3] Затем секция 423 кодирования относительной позиции кодирует позицию, абсолютное значение ('level') и знак ('sign') ненулевого коэффициента C. Позиция может задаваться, например, относительной позицией от нижней правой части целевого блока кодирования (dx, dy) или 'LastPos' в соответствии с порядком сканирования. Ненулевой коэффициент C не обязательно должен быть последним ненулевым коэффициентом в случае сканирования целевого блока кодирования в определенном порядке сканирования.
N-1
0
Этап [4] Секция 423 кодирования относительной позиции кодирует, в порядке, противоположном порядку этапа выбора на этапе [2], относительные позиции (dx, dy), абсолютные значения ('level') и знаки ('sign') соответствующих ненулевых коэффициентов от C до C.
0
0
Когда кодирование ненулевого коэффициента C заканчивается, секция 430 управления режимом обработки предписывает секции 410 кодирования в серийно-уровневом режиме осуществлять процесс кодирования. Секция 410 кодирования в серийно-уровневом режиме осуществляет процесс кодирования в серийно-уровневом режиме для кодирования в области R1 коэффициентов, отличных от ненулевого коэффициента C.
[Таблица VLC]
Таблица TBL42 режима относительной позиции может быть организована, как показано на фиг. 20. Поскольку таблица режима относительной позиции, представленная на фиг. 20, уже описана, ее описание здесь опущено.
(Пример модификации)
[Способ оптимизации таблицы VLC на основании диапазона значений, которые могут иметь dx и dy]
n
n
n
n
Таблица TBL42 режима относительной позиции может включать в себя множество таблиц TBL42 режима относительной позиции в соответствии с соответствующими абсолютными позициями (x, y) коэффициентов. Множество таблиц TBL42 режима относительной позиции предпочтительно, оптимизируется в соответствующих абсолютных позициях (x, y) коэффициентов на основании диапазона значений, которые могут иметь dx и dy.
Поскольку конкретный процесс настоящего примера модификации аналогичен описанному со ссылкой на фиг. 21 и 22 в описании устройства декодирования движущихся изображений, его описание здесь опущено. Однако следует заметить, что в настоящем примере модификации "секция 323 определения относительной позиции" рассматривается как "секция 423 кодирования относительной позиции".
[Другие]
[Пример модификации] устройства 1 декодирования движущихся изображений настоящего варианта осуществления также применим к устройству 2 кодирования движущихся изображений.
(Преимущество и результат)
Как описано выше, устройство 1 декодирования движущихся изображений для декодирования коэффициентов преобразования из информации TU "TUI" кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство 1 декодирования движущихся изображений включает в себя: секцию 320 декодирования относительной позиции для декодирования относительной позиции коэффициента преобразования в качестве цели декодирования по отношению к непосредственно ранее декодированному коэффициенту преобразования; и секцию 323 определения позиции коэффициента для указания позиции коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Устройство 2 кодирования движущихся изображений для кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство 2 кодирования движущихся изображений включает в себя секцию 423 кодирования относительной позиции для кодирования относительной позиции коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования.
В области стороны высокочастотной составляющей, коэффициенты имеют тенденцию к разбросу. Поэтому, в случае, когда 'run' кодируется в соответствии с порядком сканирования, 'run' свойственно быть чрезвычайно длинной. По этой причине, имеются тенденции к (i) необходимости использовать большую таблицу для кодирования и декодирования и (ii) увеличению объема кодированных данных. Эти тенденции более отчетливо показаны в случае целевого блока, имеющего больший размер.
Размер таблицы VLC, демонстрирующей комбинацию {'run', 'level'}, в основном пропорционален максимальному значению длины 'run' в порядке сканирования, т.е. площади целевого блока.
Согласно вышеописанной конфигурации устройства 1 декодирования движущихся изображений, процесс декодирования осуществляется не на основании длины 'run', а на основании относительной позиции. Это избавляет от необходимости использовать таблицу VLC, демонстрирующую комбинацию {'run', 'level'}.
Это позволяет уменьшить размер таблицы VLC. Устройство 2 кодирования движущихся изображений также позволяет получить аналогичные преимущество и результат, как для устройства 1 декодирования движущихся изображений. Дополнительно, таблица, демонстрирующая порядок сканирования всего большого целевого блока кодирования также не нужна.
[3] Вариант осуществления 3
В нижеприведенном описании представлен третий вариант осуществления настоящего изобретения со ссылкой на фиг. 23-25. Для удобства объяснения, элементы, функции которых идентичны функциям соответствующих элементов описанных в варианте осуществления 1, обозначены соответствующими идентичными ссылочными позициями, и описание этих элементов здесь опущено.
В нижеприведенном описании представлен способ осуществления процесса кодирования/процесса декодирования при переключении между (i) процессом A: "процесс кодирования/декодирования только n коэффициентов на стороне низкочастотной составляющей целевого блока (например, n=64 в случае целевого блока размером не менее 16×16)" и (ii) процессом B: "процесс кодирования/декодирования коэффициентов путем разбиения области " (см. S10 на фиг. 4)".
Идентификатор способа кодирования для переключения между процессом A и процессом B кодируется в кодированных данных. В частности, согласно следующему примеру, один из процесса A и процесса B указан в идентификаторе способа кодирования.
Было объяснено, что секция 12 декодирования информации TU осуществляет процесс B. Однако в нижеследующем примере предполагается, что секция 12 декодирования информации TU осуществляет не только процесс B, но и процесс A.
Дополнительно, в нижеприведенном описании предполагается, что целевой блок имеет, в порядке примера, размер 16×16.
(Последовательность операций процесса)
Со ссылкой на фиг. 23, в нижеприведенном описании представлена последовательность операций процесса кодирования/ процесса декодирования, осуществляемого при переключении между процессом A и процессом B. На Фиг. 23 показана блок-схема операций, демонстрирующая пример последовательности операций процесса кодирования/ процесса декодирования, осуществляемого при переключении между процессом A и процессом B.
Фиг. 23 совместно иллюстрирует процесс кодирования, осуществляемый устройством 2 кодирования движущихся изображений, и процесс декодирования, осуществляемый устройством 1 декодирования движущихся изображений. В нижеприведенном описании представлена работа устройства 1 декодирования движущихся изображений. Однако работа устройства 2 кодирования движущихся изображений, по существу, идентична работе устройства 1 декодирования движущихся изображений.
В нижеследующем примере также предполагается, что секция 12 декодирования информации TU устройства 1 декодирования движущихся изображений определяет идентификатор способа кодирования.
Когда процесс начинается, секция 12 декодирования информации TU, прежде всего, определяет идентификатор способа кодирования (S101) (см. фиг. 23).
В случае, когда идентификатор способа кодирования указывает процесс A (процесс A на этапе S101), секция 12 декодирования информации TU осуществляет процесс A (S102). В частности, секция 12 декодирования информации TU декодирует только 64 верхние левые коэффициента, расположенные на стороне низкочастотной составляющей целевого блока.
Коэффициент, подлежащий декодированию в процессе A, подробно описан ниже со ссылкой на фиг. 24. Коэффициент, подлежащий декодированию в процессе A, может изменяться в соответствии с тем, является ли целевой блок блоком, в котором осуществляется внутреннее прогнозирование, или блоком, в котором осуществляется внешнее прогнозирование.
Конкретный пример этого описан ниже. Прежде всего, для блока в котором осуществляется внешнее прогнозирование, секция 12 декодирования информации TU предполагает, что коэффициент, расположенный в верхней левой области RInter размером 8×8 на стороне низкочастотной составляющей является целью декодирования (см. (a) на фиг. 24).
При этом, для блока в котором осуществляется внутреннее прогнозирование, секция 12 декодирования информации TU предполагает, что коэффициент, расположенный в области RIntra, показанной в (b) на фиг. 24, является целью декодирования. Другими словами, секция 12 декодирования информации TU предполагает, в качестве целей декодирования, коэффициенты от первого коэффициента нулевой частоты до 64-го коэффициента в зигзагообразном порядке сканирования. Число "64", показанное в области RIntra, указывает количество коэффициентов, включенных в эту область.
Для удобства объяснения, (b) на фиг. 24 демонстрирует форму области RIntra как прямоугольный треугольник. Строго говоря, однако, область RIntra фактически не является прямоугольным треугольником.
При этом в случае, когда идентификатор способа кодирования указывает процесс B (процесс B на этапе S101), секция 12 декодирования информации TU осуществляет процесс B (см. S10 на фиг. 4).
(Структура данных)
В нижеприведенном описании, в качестве примера, рассмотрена структура данных кодированных данных коэффициентов со ссылкой на фиг. 25. Фиг. 25 иллюстрирует структуру данных кодированных данных коэффициентов.
Как описано выше, идентификатор FLG способа кодирования это флаг, в котором указан процесс A или процесс B.
В случае, когда в идентификаторе FLG способа кодирования указан процесс A, структура данных, показанная в DATA1 (далее обозначенная как "кодированные данные DATA1 коэффициентов"), применима к кодированным данным коэффициентов. Кодированные данные DATA1 включают в себя данные ('run', 'level', 'sign') на 64 верхних левых коэффициентах, расположенных на стороне низкочастотной составляющей целевого блока.
При этом, в случае, когда процесс B указан в идентификаторе FLG способа кодирования, структура данных, показанная в DATA2 (далее обозначенная как "кодированные данные DATA2 коэффициентов") применима к кодированным данным коэффициентов.
Кодированные данные DATA2 коэффициентов включают в себя флаг ненулевого коэффициента × n (где n - количество областей) и данные коэффициентов [область 1]-[область n].
Как описано выше, флаг ненулевого коэффициента указывает наличие или отсутствие ненулевого коэффициента в области декодирования. Флаг ненулевого коэффициента представлен в виде "×n" поскольку кодируется столько флагов ненулевого коэффициента, сколько существует областей декодирования.
Например, флаг ненулевого коэффициента, равный "1 (true)" указывает, что ненулевой коэффициент присутствует в соответствующей области декодирования. При этом флаг ненулевого коэффициента, равный "0 (false)" указывает, что ненулевой коэффициент отсутствует в соответствующей области декодирования.
Данные коэффициентов [область x] (x=1 … n) включают в себя данные коэффициентов для каждой области декодирования. В случае, когда флаг ненулевого коэффициента указывает, что ненулевой коэффициент отсутствует в области x, данные коэффициентов [область x] опущены.
(Преимущество и результат)
Целевой блок большого размера увеличивает количество коэффициентов, подлежащих кодированию. Это приводит к большой разнице в эффективности между процессом A и процессом B. Дополнительно, процесс A и процесс B отвечают за разные характеристики изображения. Соответственно, кодирование, осуществляемое только одной из этих систем обработки, может приводить к снижению эффективность кодирования.
В случае, когда кодирование/декодирование осуществляется путем переключения между процессом A и процессом B, такие диверсифицированные системы обработки позволяют добиться (a) предотвращения снижения эффективности кодирования или (b) увеличения эффективности кодирования. Дополнительно, увеличение эффективности кодирования позволяет скомпенсировать кодированный объем идентификатора системы кодирования для переключения между процессом A и процессом B.
(Пример модификации)
Идентификатор системы кодирования кодируется в любой единице. Например, идентификатор системы кодирования можно кодировать в единице LCU.
Дополнительно, можно также переключаться между процессом A и процессом B посредством условного определения в соответствии с состоянием кодирования. В этом случае, система обработки, подлежащая осуществлению, неявно определяется без необходимости указания процесса A и процесса B идентификатором способа кодирования. Поэтому идентификатор способа кодирования также можно исключить.
В качестве основания условного определения можно использовать атрибут или состояние блока, или заранее определенный параметр.
Основание условного определения более подробно описано ниже. Условие может определяться на основании размера целевого блока (единицы преобразования). Например, определение может быть настроено так, что процесс A осуществляется в случае, когда целевой блок имеет размер 16×16, тогда как процесс B осуществляется в случае, когда целевой блок имеет размер 32×32.
Условие также можно определять на основании режима прогнозирования целевого блока. Например, определение может быть настроено так, что процесс A осуществляется в случае, когда целевой блок находится в режиме внутреннего прогнозирования, тогда как процесс B осуществляется в случае, когда целевой блок находится в режиме внешнего прогнозирования.
Условие также можно определять на основании размера единицы преобразования блока, соседствующего с целевым блоком. Например, определение может быть настроено так, что процесс A осуществляется в случае, когда единица преобразования блока, примыкающего слева к целевому блоку, имеет размер, не меньший заранее определенного размера (например, размер 32×32), тогда как процесс B осуществляется в случае, когда единица преобразования имеет размер, который меньше заранее определенного размера.
Можно также применять, к определению, не только "размер, не меньший заранее определенного размера", но и условие определения, например, "размер, который не меньше, чем у целевого блока", "размер, который меньше, чем у целевого блока" или "размер, равный размеру целевого блока".
Малый размер единицы преобразования приводит к тому, что целевой блок включает в себя больше краев. В соответствии с этим, целевому блоку свойственно включать в себя больше ненулевых коэффициентов. Поэтому определение, более предпочтительно, настроено так, что процесс B осуществляется в случае, когда единица преобразования имеет малый размер.
Для определения системы обработки можно использовать заранее определенный параметр, отличный от идентификатора способа кодирования. Системы обработки можно переключать на основании идентификатора профиля, добавленного, например, в заголовок. Системы обработки также можно переключать на основании, если она включена в заголовок и т.п., информации об уровне, указывающей (i) возможности декодера или (ii) сложность битового потока.
Процесс B это процесс кодирования/декодирования коэффициентов путем разбиения области (см. фиг. 4). Однако процесс B этим не ограничивается. Процесс B также может быть процессом S20, в котором коэффициент кодируется/декодируется путем указания относительной позиции.
Дополнительно, например, устройство 2 кодирования движущихся изображений может указывать высокоэффективный процесс в идентификаторе способа кодирования, пытаясь осуществить кодирование посредством процесса S10 и процесса S20 или оценивая объем кодированных данных, полученных посредством процесса S10 и процесса S20.
[4] Вариант осуществления 4
В нижеприведенном описании представлен четвертый вариант осуществления настоящего изобретения со ссылкой на фиг. 26-36. Для удобства объяснения, элементы, функции которых идентичны функциям соответствующих элементов описанных в варианте осуществления 1, обозначены соответствующими идентичными ссылочными позициями, и описание этих элементов здесь опущено.
(Иерархическое разбиение на области)
В нижеприведенном описании представлен способ кодирования/декодирования целевого блока посредством иерархического разбиения целевого блока на области.
Устройство 2 кодирования движущихся изображений может иерархически разбивать целевой блок BLK для кодирования целевого блока BLK. В этом случае, секция 280 кодирования информации TU устройства 2 кодирования движущихся изображений повторяет следующие процессы ENC и DIV для кодирования целевого блока BLK.
Процесс ENC: кодирование без разбиения целевой области обработки
Процесс DIV: разбиение целевой области обработки, и области, полученные путем разбиения, рассматриваются как последующие области цели обработки
Целевой блок является первой целевой областью обработки. Секция 280 кодирования информации TU выбирает один из процессов P и Q, который обеспечивает, в общем случае, более высокую эффективность кодирования.
Например, секция 280 кодирования информации TU сравнивает объемы кодированных данных между (i) случаем, когда в отношении цели обработки осуществляется только процесс ENC, и (ii) случаем, когда процесс ENC осуществляется после попытки осуществить процесс DIV. Это позволяет секции 280 кодирования информации TU определить процедуру обработки с меньшим объемом кодированных данных.
Конкретный пример процедуры обработки описан ниже со ссылкой на фиг. 26. Фиг. 26 иллюстрирует случай, когда осуществляется разбиение в двух классах.
Как показано на фиг. 26, целевой блок BLK включает в себя области R10, R20, R30 и R40 кодирования первого класса, полученные путем осуществления разбиения в одном классе.
Каждая из областей R30 и R40 кодирования первого класса разбивается на вторые классы. В частности, область R30 кодирования первого класса включает в себя области R31-R34 кодирования второго класса, и область R40 кодирования первого класса включает в себя области R41-R44 кодирования второго класса.
(Определение разбиения)
Секция 280 кодирования информации TU разбивает, на следующих этапах, целевой блок BLK, представленный на фиг. 26.
Этап [1] Секция 280 кодирования информации TU рассматривает целевой блок BLK как целевую область обработки и осуществляет процесс ENC и процесс DIV. В частности, секция 282 кодирования области не только осуществляет процесс ENC, но и сохраняет объем кодированных данных, полученных посредством процесса ENC, осуществляемого по отношению к целевому блоку BLK. При этом секция 281 разбиения области получает области R10-R40 кодирования первого класса, осуществляя процесс DIV в отношении целевого блока BLK.
Этап [2] Секция 282 кодирования области не только осуществляет процесс ENC в отношении каждой из областей R10-R40 кодирования первого класса, но и сохраняет объем кодированных данных, полученных посредством процесса ENC, осуществляемого в отношении всех областей R10-R40 кодирования первого класса.
Этап [3] Секция 280 кодирования информации TU сравнивает (i) объем кодированных данных, полученных на этапе [1], и (ii) объем кодированных данных, полученных на этапе [2]. При этом предполагается, что объем кодированных данных, полученных на этапе [2], меньше.
Этап [4] Секция 281 разбиения области получает области кодирования второго класса, дополнительно осуществляя процесс DIV в отношении областей R10-R40 кодирования первого класса.
Этап [5] Секция 280 кодирования информации TU сравнивает (i) объем кодированных данных, полученных путем кодирования, осуществляемого в отношении областей кодирования первого класса и областей кодирования второго класса, и (ii) объем кодированных данных, полученных путем кодирования, осуществляемого в отношении областей кодирования второго класса. В результате, секция 280 кодирования информации TU применяет процедуру обработки, которая обеспечивает меньший объем кодированных данных.
Этап [6] Предполагается, в результате сравнения на этапе [5], что для областей R10 и R20 кодирования первого класса, объем кодированных данных, полученных путем кодирования, осуществляемого в отношении областей кодирования второго класса, на которые дополнительно разбита каждая из областей кодирования первого класса, больше, тогда как для областей R30 и R40 кодирования первого класса, объем кодированных данных, полученных путем кодирования, осуществляемого в отношении областей кодирования второго класса, на которые дополнительно разбита каждая из областей кодирования первого класса, меньше.
Это окончательно определяет (i) области R10 и R20 кодирования первого класса и (ii) области R31-R34 и R41-R44 кодирования второго класса.
(Флаг разбиения и флаг ненулевого коэффициента)
Секция 282 кодирования области кодирует флаг разбиения, указывающий состояние разбиения, осуществляемого секцией 281 разбиения области.
В качестве конкретного примера, для области, где было определено, что область подлежит разбиению секцией 281 разбиения области, секция 282 кодирования области кодирует флаг разбиения "1". При этом, для области, где было определено, что область не подлежит разбиению секцией 281 разбиения области, секция 282 кодирования области кодирует флаг разбиения "0".
На фиг. 26, заштрихованная область указывает область, в которой присутствует, по меньшей мере, один ненулевой коэффициент, и незаштрихованная область указывает область, в которой ненулевой коэффициент отсутствует.
Ввиду вышеизложенного, секция 282 кодирования области может кодировать ненулевой коэффициент, указывающий наличие или отсутствие ненулевого коэффициента в целевой области обработки. Например, в случае, когда ненулевой коэффициент присутствует, флаг ненулевого коэффициента равен "1", тогда как в случае, когда ненулевой коэффициент отсутствует, флаг ненулевого коэффициента равен "0".
(Дерево флагов)
Со ссылкой на фиг. 27, в нижеприведенном описании представлен пример, в котором флаг разбиения и флаг ненулевого коэффициента кодируются в форме дерева FT флагов. Фиг. 27 демонстрирует пример представления дерева FT флагов (представление квадродерева), указывающего состояние разбиения и состояние распределения коэффициентов целевого блока BLK, представленного на фиг. 26.
Дерево FT флагов имеет иерархическую структуру, состоящую из корневого уровня, уровня 1 и уровня 2. Каждый из корневого уровня и уровня 1 дерева FT флагов соответствует флагу разбиения. Уровень 2 дерева FT флагов соответствует флагу ненулевого коэффициента.
На корневом уровне дерева FT флагов кодируется флаг FRoot разбиения целевого блока BLK. На уровне 1 дерева FT флагов, кодируются соответствующие флаги F10, F20, F30 и F40 разбиения областей R10, R20, R30 и R40 кодирования первого класса.
На уровне 2, который выступает в качестве листьев (концевых узлов) дерева FT флагов, кодируются флаги ненулевого коэффициента.
На фиг. 27, обведенные листья указывают, по порядку слева, соответствующие флаги ненулевого коэффициента областей R41, R42, R43 и R44 кодирования второго класса, причем флаги ненулевого коэффициента кодируются как "1", "0", "0" и "1", соответственно.
Для областей R41, R42, R43 и R44 кодирования второго класса, кодируется всего четыре флага ненулевого коэффициента. Альтернативно, кодирование с переменной длиной слова может осуществляться в соответствии с частотой возникновения набора шаблонов этих четырех флагов. Согласно кодированию с переменной длиной слова, можно снижать объем кодирования на квадродерево в среднем.
Для области, в которой присутствует много ненулевых коэффициентов, длина 'run', в среднем, невелика. Поэтому никакое разбиение такой области не способствует увеличению эффективности кодирования.
Напротив, для области, в которой присутствует много нулевых коэффициентов, т.е. для области, в которой коэффициенты менее распределены, длина 'run', в среднем, велика. Поэтому применение кодирования путем разбиения области к такой области позволяет увеличить эффективность кодирования.
(Процесс декодирования области)
Далее, со ссылкой на фиг. 28, в нижеприведенном описании представлен процесс, в котором устройство 1 декодирования движущихся изображений декодирует кодированные данные коэффициентов, кодированные вышеописанным способом. На Фиг. 28 показана блок-схема операций, демонстрирующая пример последовательности операций процесса S200 декодирования, осуществляемого устройством 1 декодирования движущихся изображений.
Процесс S200 декодирования области является рекурсивным процессом. Поэтому, при первом вызове, целевой областью обработки является целевой блок, когда осуществляется каждый этап, включенный в процесс S200 декодирования области.
Как показано на фиг. 28, устройство 1 декодирования движущихся изображений сначала предписывает секции 121 разбиения области определить, на основании флага разбиения, разбита ли целевая область обработки (S201).
В случае, когда целевая область обработки не разбита (Нет на этапе S201), устройство 1 декодирования движущихся изображений осуществляет процесс S210 декодирования коэффициентов.
В частности, секция 122 декодирования области, прежде всего, определяет, на основании флага ненулевого коэффициента, наличие или отсутствие ненулевого коэффициента в целевой области обработки (S211).
В случае, когда ненулевой коэффициент присутствует в целевой области обработки (Да на этапе S211), секция 122 декодирования области совместно декодирует, в процессе декодирования в серийно-уровневом режиме, все коэффициенты, включенные в целевую область обработки (S212).
Напротив, в случае, когда ненулевой коэффициент отсутствует (Нет на этапе S211), секция 122 декодирования области пропускает процесс декодирования в отношении целевой области обработки.
По окончании процесса S210 декодирования коэффициентов и по окончании процесс декодирования в отношении целевой области обработки, устройство 1 декодирования движущихся изображений осуществляет процесс S200 декодирования области в отношении следующей целевой области обработки.
При этом, в случае, когда целевая область обработки разбита (Да на этапе S201), устройство 1 декодирования движущихся изображений осуществляет процесс S220 декодирования разбитой области.
В частности, секция 122 декодирования области сначала декодирует флаг разбиения, кодированный для каждого из областей, полученных путем разбиения (S221), и последовательность операций входит в цикл LP200 для каждой из областей.
В цикле LP200, процесс S200 декодирования области рекурсивно осуществляется (S223), затем последовательность операций возвращается к началу цикла LP200 (от S224 к S223), и после этого процесс в цикле последовательно осуществляется в отношении каждой из областей, полученных путем разбиения.
Когда процесс в отношении всех областей, полученных путем разбиения, заканчивается, процесс S220 декодирования разбитой области заканчивается выходом последовательности операций из цикла LP200. После этого, осуществляющийся процесс S200 декодирования области заканчивается. В случае рекурсивного вызова процесса S200 декодирования области, управление возвращается к рекурсивному источнику из области, откуда рекурсивно вызывается процесс S200 декодирования.
Согласно вышеприведенному описанию, во избежание кодирования ненужного флага, может производиться определение, в блоке, размер которого не позволяет далее разбивать блок, что флаг разбиения все время имеет значение "false". При этом, в случае, когда целевая область обработки сама по себе является целевым блоком, может производиться определение, что флаг ненулевого коэффициента все время имеет значение "true".
(Структура данных)
Нижеприведенное описание демонстрирует, со ссылкой на фиг. 29-32, пример структуры данных кодированных данных коэффициентов, декодированных в процессе S200 декодирования области.
(1) Пример, в котором флаги сохраняются рассеянными
Со ссылкой на фиг. 29, в нижеприведенном описании представлена структура данных в случае, когда флаги сохраняются рассеянными. Как показано на фиг. 29, флаг FRoot разбиения сохраняется в начале кодированных данных коэффициентов. В случае, когда флаг FRoot разбиения равен "0", структура данных, показанная в DATA11 (далее обозначенная как "кодированные данные DATA11 коэффициентов"), применима, например, к кодированным данным коэффициентов. Кодированные данные DATA11 включают в себя данные ('run', 'level', 'sign') на 16 × 16 коэффициентах в целевом блоке.
При этом, в случае, когда флаг FRoot разбиения равен "1", структура данных, показанная в DATA12 (далее обозначенная как "кодированные данные DATA12 коэффициентов"), применима, например, к кодированным данным коэффициентов.
Кодированные данные DATA12 коэффициентов включает в себя элементы информации области от элемента F1 информации области [области 1] до элемента Fn информации области [области n]. Область n" указывает "область" первого класса. "Область" представляется областями R10-R40 со ссылкой на целевой блок BLK, представленный на фиг. 26.
Конкретная структура данных элемента F1 информации области [области 1] описана здесь со ссылкой на фиг. 29. Элемент F1 информации области [области 1] включает в себя флаг F10 разбиения [области 1].
В случае, когда флаг F10 разбиения [области 1] равен "0", флаг ненулевого коэффициента и данные коэффициентов включают в себя информацию F12 коэффициентов, тогда как в случае, когда флаг F10 разбиения [области 1] равен "1", флаг ненулевого коэффициента и данные коэффициентов включают в себя информацию F11 коэффициентов.
В случае, когда флаг F10 разбиения [области 1] равен "0", дополнительное разбиение на области не осуществляется. Поэтому информация коэффициентов включают в себя только флаг ненулевого коэффициента [1] и данные коэффициентов [1].
Предположим, что область 1 разбита на n областей, когда флаг F10 разбиения [области 1] равен "1". В этом случае, информация F11 коэффициентов включают в себя флаг ненулевого коэффициента [1-1], данные коэффициентов [1-1] … флаг ненулевого коэффициента [1-n] и данные коэффициентов [1-n].
Поскольку другие элементы информации области аналогичны элементу F1 информации области [области 1], его описание здесь опущено.
Далее, со ссылкой на фиг. 30, в нижеприведенном описании представлен конкретный пример кодированных данных DATA12 коэффициентов представленный на фиг. 29. Фиг. 30 демонстрирует пример кодированных данных коэффициентов, указывающих целевой блок BLK, описанный со ссылкой на фиг. 26.
Согласно целевому блоку BLK, представленному на фиг. 26, квадродерево задано на корневом уровне. Поэтому флаг FRoot разбиения равен "1".
Кодированные данные DATA12 коэффициентов включает в себя элементы F1-F4 информации области, соответствующие соответствующим областям R10-R40 декодирования. Данные соответствующих элементов F1-F4 информации области сохраняются в указанном порядке в кодированных данных DATA12 коэффициентов. Данные, включенные в соответствующие элементы F1-F4 информации области, описаны ниже в указанном порядке.
Данные, включенные в элемент F1 информации области, описаны ниже. Поскольку область R10 декодирования дополнительно не разбита, флаг разбиения [1]=0 в элементе F1 информации области. При этом, поскольку область R10 декодирования включает в себя ненулевой коэффициент, флаг ненулевого коэффициента [1]=1 в элементе F1 информации области. Дополнительно, элемент F1 информации области включает в себя данные коэффициентов [1].
Поскольку область R20 не разбита и не включает в себя ненулевых коэффициентов, элемент F2 информации области включает в себя флаг разбиения [2]=0 и флаг ненулевого коэффициента [2]=0.
Данные, включенные в элемент F3 информации области, описаны ниже. Область R30 декодирования разбита на области R31-R34 декодирования. Поэтому элемент F3 информации области включает в себя флаг разбиения [3]=1.
Каждая из областей R31 и R33 декодирования включает в себя ненулевой коэффициент, тогда как каждая из областей R32 и R34 декодирования не включает в себя ненулевых коэффициентов.
Поэтому область R31 декодирования включают в себя флаг ненулевого коэффициента [3-1]=1 и данные коэффициентов [3-1]. То же самое применимо к области R33 декодирования.
При этом каждая из областей R32 и R34 декодирования включает в себя флаг ненулевого коэффициента [3-2]=0 и флаг ненулевого коэффициента [3-4]=0.
Данные, включенные в элемент F4 информации области, описаны ниже. Область R40 декодирования разбита на области R41-R44 декодирования. Поэтому элемент F4 информации области включает в себя флаг разбиения [4]=1.
Каждая из областей R41 и R44 декодирования включает в себя ненулевой коэффициент, тогда как каждая из областей R42 и R43 декодирования не включает в себя ненулевых коэффициентов.
Поэтому область R41 декодирования включают в себя флаг ненулевого коэффициента [4-1]=1 и данные коэффициентов [4-1]. То же самое применимо к области R44 декодирования.
При этом каждая из областей R42 и R43 декодирования включает в себя флаг ненулевого коэффициента [4-2]=0 и флаг ненулевого коэффициента [4-3]=0.
(2) Пример, в котором дерево флагов совместно сохраняется в начале данных
Со ссылкой на фиг. 31, в нижеприведенном описании представлена структура данных в случае, когда дерево флагов совместно сохраняется в начале данных. Как показано на фиг. 31, дерево FT флагов сохраняется в начале кодированных данных коэффициентов.
В случае, когда дерево FT флагов указывает, что целевой блок не разбит, структура данных, показанная в DATA21 (кодированные данные DATA21 коэффициентов), применима к кодированным данным коэффициентов. Кодированные данные DATA21 включают в себя данные ('run', 'level', 'sign') на 16 × 16 коэффициентах в целевом блоке.
При этом в случае, когда дерево FT флагов указывает, что целевой блок разбит один или более раз, структура данных, показанная в DATA22 (кодированные данные DATA22 коэффициентов), применима к кодированным данным коэффициентов.
Кодированные данные DATA22 коэффициентов включают в себя данные коэффициентов от данных коэффициентов [область 1] до данных коэффициентов [область n]. "Область n" указывает "область", не подлежащую дальнейшему разбиению. "Область" представлена, например, областями R10 и R31 со ссылкой на целевой блок BLK, представленный на фиг. 26.
Далее, со ссылкой на фиг. 32, в нижеприведенном описании представлен конкретный пример кодированных данных DATA22 коэффициентов представленный на фиг. 31. Фиг. 32 демонстрирует пример кодированных данных коэффициентов, указывающих целевой блок BLK, описанный со ссылкой на фиг. 26.
В кодированных данных DATA22 коэффициентов сначала сохраняется дерево FT флагов. В дереве FT флагов сначала сохраняется флаг FRoot разбиения. Затем, в дереве FT флагов сохраняются соответствующие флаги областей R10-R40 декодирования по порядку.
После дерева FT флагов, в кодированных данных DATA22 коэффициентов сохраняются соответствующие элементы данных коэффициентов областей декодирования. В кодированных данных DATA22 коэффициентов сохраняются, по порядку, данные коэффициентов [1], данные коэффициентов [3-1], данные коэффициентов [3-3], данные коэффициентов [4-1] и данные коэффициентов [4-4], соответствующие соответствующим областям R10, R31, R33, R41 и R44 декодирования, в каждой из которых присутствует один или более элементов данных коэффициентов.
(Пример модификации)
[Исключение отсчета 'run']
Со ссылкой на фиг. 33 и 34, в нижеприведенном описании представлен пример, в котором область, в которой флаг ненулевого коэффициента равен "0 (false)", не включается в отсчет 'run'. Каждая из Фиг. 33 и 34 иллюстрирует область R30 кодирования первого класса, показанную на фиг. 26.
В нижеприведенном описании предполагается, что целевой блок BLK имеет, в порядке примера, размер 16×16. Нижеприведенное описание также предполагает, что область R30 кодирования первого класса имеет размер 8×8, и что каждая из областей R31-R34 кодирования второго класса имеет размер 4×4.
В этом случае, если целевая область обработки кодирования имеет размер, не превышающий заранее определенный размер (например, размер 8×8), секция 280 кодирования информации TU осуществляет разбиение на области и определение наличия или отсутствия ненулевого коэффициента, осуществляя сканирование и кодирование в единицах 8×8.
Фиг. 33 подробно иллюстрирует область R30 кодирования первого класса, показанную на фиг. 26. Как показано на фиг. 33, секция 281 разбиения области разбивает область R30 кодирования первого класса на области R31-R34 кодирования второго класса.
Для области R30 кодирования первого класса, секция 282 кодирования области кодирует флаг разбиения "1" и дополнительно кодирует флаг ненулевого коэффициента "1001".
Дополнительно, секция 282 кодирования области осуществляет процесс кодирования в отношении области R30 кодирования первого класса, исходя из того, что область R30 кодирования первого класса является целевой областью кодирования. Стрелки, показанные во всей области R30 кодирования первого класса, указывают порядок сканирования.
Секция 202 кодирования в серийном режиме не отсчитывает 'run' в R32 и R34, которые являются областями цели кодирования, и в каждой из которых флаг ненулевого коэффициента равен "0 (false)".
В частности, секция 202 кодирования в серийном режиме осуществляет процесс кодирования в серийном режиме, как описано ниже, в процессе кодирования коэффициентов.
Прежде всего, предположим, что секция 202 кодирования в серийном режиме закончила кодирование ненулевого коэффициента A1, представленного на фиг. 34. Затем, в процессе кодирования следующего ненулевого коэффициента, секция 202 кодирования в серийном режиме считывает коэффициенты в противоположном зигзагообразном порядке сканирования, указанном стрелками на фиг. 34. В противоположном зигзагообразном порядке сканирования, следующим ненулевым коэффициентом является A3 (далее упоминается ненулевой коэффициент A3). Между ненулевым коэффициентом A1 и ненулевым коэффициентом A3 присутствует девять нулевых коэффициентов.
Секция 202 кодирования в серийном режиме не включает в отсчет 'run' нулевые коэффициенты в областях R32 и R34 кодирования второго класса. Поэтому в процессе кодирования следующего ненулевого коэффициента A3, секция 202 кодирования в серийном режиме отсчитывает только нулевой коэффициент A2 в качестве 'run'. Поэтому секция 202 кодирования в серийном режиме кодирует 'run'=1.
Секция 202 кодирования в серийном режиме может определять, в соответствии с двухмерным значением коэффициента каждого из коэффициентов, является ли целевая область кодирования областью, в которой флаг ненулевого коэффициента равен "0".
Если необходимо только, чтобы устройство 1 декодирования движущихся изображений осуществляло процесс декодирования следующим образом: Если необходимо только, чтобы при осуществлении процесса сохранения, в котором коэффициенты, сохраненные в компоновке в порядке сканирования после декодирования, снова сохранялись в матрице коэффициентов, устройство 1 декодирования движущихся изображений пропускает процесс сохранения в отношении области, в которой флаг ненулевого коэффициента равен "0".
[Разбиение на области посредством указания]
В нижеприведенном описании представлено разбиение на области посредством указания со ссылкой на фиг. 35 и 36.
Секция 12 декодирования информации TU может декодировать коэффициенты путем разбиения заранее определенной области цели декодирования заранее указанным образом.
На каждой из Фиг. 35 и 36 показано, как разбивать целевой блок BLK размером 16×16. Согласно фиг. 35 и 36, целевой блок BLK разбивается на области R101-R104 декодирования первого класса. Пунктирные линии проведены в областях декодирования первого класса, каждая из которых может дополнительно делиться на области декодирования второго класса (например, областях R102-R104 декодирования первого класса на фиг. 35).
В частности, секция 121 разбиения области секции 12 декодирования информации TU может быть настроена так, чтобы заранее определенная область цели декодирования делилась (была делима) все время, или может быть настроена так, чтобы заранее определенная область цели декодирования не делилась (была неделима) все время.
Например, как показано на фиг. 35, область R101 декодирования первого класса, расположенная в верхней левой части целевого блока BLK и имеющая размер 8×8, может быть неделимой. Области R102-R104 декодирования первого класса могут делиться секцией 121 разбиения области.
Ненулевой коэффициент, весьма вероятно, присутствует в области вблизи составляющей нулевой частоты. Поэтому область R101 декодирования первого класса, которая не разбита, в большей степени способствует тому, чтобы устройство 2 кодирования движущихся изображений имело более высокую эффективность кодирования, чем область R101 декодирования первого класса, которая разбита.
Например, как показано на фиг. 36, только область R104 декодирования первого класса, расположенная в нижней правой части целевого блока BLK и имеющая размер 8×8, может быть делимой. Область R104 декодирования первого класса может делиться секцией 121 разбиения области.
Разбиение области на стороне высокочастотной составляющей, где, весьма вероятно, присутствует нулевой коэффициент, способствует тому, чтобы устройство 2 кодирования движущихся изображений имело более высокую эффективность кодирования.
Секция 121 разбиения области может быть выполнена с возможностью разбивать, все время, область декодирования, размер которой больше заранее определенного размера. При этом, секция 281 разбиения области может быть выполнена с возможностью не разбивать, все время, область декодирования, размер которой меньше заранее определенного размера. Например, секция 121 разбиения области может быть устроена, как описано ниже.
Секция 121 разбиения области может быть выполнена с возможностью разбивать, все время, область декодирования, размер которой больше размера 8×8. Дополнительно, секция 121 разбиения области может устанавливать, все время, флаг разбиения самого верхнего (т.е. целевого блока) равным "1".
Секция 121 разбиения области может быть выполнена с возможностью дополнительно не разбивать область размером 4×4, включенную в целевой блок размером не менее 4×4.
Секция 121 разбиения области может быть выполнена с возможностью не осуществлять разбиение на три или более классов.
Настоящий пример модификации также применим к секции 280 кодирования информации TU устройства 2 кодирования движущихся изображений.
[Другой пример модификации]
Выбор системы кодирования согласно варианту осуществления 3 и разбиение на области посредством указания согласно варианту осуществления 4 может быть применим только к целевому блоку, имеющему конкретные размер и форму, или только к конкретному типу среза.
Например, в B-срезе, скорее всего, присутствует большое количество нулевых коэффициентов. Это позволяет кодировать только 64 коэффициента в верхней левой части целевого блока в B-срезе без разбиения B-среза.
Согласно этим примерам модификации, можно предотвратить увеличение объема кодированных флагов.
Дополнительно, кодирование коэффициента путем указания относительной позиции согласно варианту осуществления 2 может осуществляться в области, полученной способом разбиение варианта осуществления 4.
Кроме того, примеры модификации [количества и размера областей] варианта осуществления 1 также применимы к вариантам осуществления 2-4.
Настоящее изобретение также можно описать нижеследующим образом.
Согласно устройству декодирования изображений настоящего изобретения, средство разбиения единицы преобразования разбивает единицу преобразования на множество подъединиц, и средство декодирования коэффициентов преобразования декодирует коэффициент преобразования в каждой из множества подъединиц со ссылкой на информацию декодирования для использования при получении коэффициентов преобразования из кодированных данных, причем информация декодирования назначается подъединице.
Дополнительно, согласно кодированным данным, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, серия последовательных ненулевых коэффициентов кодируется в заранее определенном порядке сканирования. Согласно информации декодирования, которая задается для области, расположенной на низкочастотной стороне, более короткий код назначается более короткой серии последовательных ненулевых коэффициентов.
В области, расположенной на стороне низкочастотной составляющей, причем в этой области весьма вероятно появление ненулевого коэффициента, последовательным ненулевым коэффициентам свойственно образовывать более короткую серию.
Согласно вышеописанной компоновке, более короткий код назначается более короткой серии последовательных ненулевых коэффициентов. Поэтому, в соответствии с позицией области, ввиду вышеизложенной тенденции может осуществляться высокоэффективный процесс декодирования. Это позволяет снизить объем кодированных данных, подлежащих декодированию.
Согласно информации декодирования, которая задается для области, расположенной на высокочастотной стороне, для пар параметров, включающих в себя соответствующие абсолютные значения коэффициентов преобразования, более короткий код назначается паре параметров, которая имеет абсолютное значение 1.
В области, расположенной со стороны высокочастотной составляющей, соответствующие абсолютные значения коэффициентов преобразования имеют тенденцию быть весьма малыми. Поэтому, коэффициенту преобразования, который не является нулевым коэффициентом, свойственно иметь абсолютное значение 1.
Согласно вышеописанной компоновке, более короткий код может назначаться паре параметров, которая имеет высокую частоту возникновения в позиции со стороны высокочастотной составляющей.
Пара параметров представляет собой, например, пара {'run', 'level'} в серийном режиме, и абсолютное значение в данном случае соответствует 'level'.
Поэтому, в соответствии с позицией области, ввиду вышеизложенной тенденции может осуществляться высокоэффективный процесс декодирования. Это позволяет снизить объем кодированных данных, подлежащих декодированию.
Согласно информации декодирования, порядок указан в соответствии с длиной кода, и
в ходе обновления, средство обновления информации декодирования следует порядку в соответствии с позицией подъединицы в единице преобразования.
Согласно вышеописанной компоновке, в соответствии с позицией подъединицы в единице преобразования, выполняется порядок, который указан в соответствии с длиной кода, назначенной параметру.
Порядком, который указан в соответствии с длиной кода, является, например, кодовое число. В частности, согласно вышеописанной компоновке, длина кода, назначенная параметру, обновляется до меньшей длины путем продвижения кодового числа.
Согласно вышеописанной компоновке, длина кода может обновляться посредством сравнительно простого процесса продвижения кодового числа.
Дополнительно, средство разбиения единицы преобразования осуществляет рекурсивное разбиение в соответствии с, по меньшей мере, одним из позиции и размера области, подлежащей разбиению.
Согласно вышеописанной компоновке, не требуется декодировать флаг, указывающий, что разбиение подлежит осуществлению. Это позволяет снизить объем кодированных данных, подлежащих декодированию.
[Дополнительные аспекты]
В нижеприведенном описании раскрыт аспект настоящего изобретения. Для решения вышеописанной проблемы, устройство декодирования изображений настоящего изобретения является устройством декодирования изображений для декодирования коэффициентов преобразования из кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство декодирования изображений включает в себя средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц, и средство декодирования коэффициентов преобразования для декодирования коэффициента преобразования в каждой из множества подъединиц со ссылкой на информацию декодирования для использования при получении коэффициентов преобразования из кодированных данных, причем информация декодирования назначается подъединице.
Для решения вышеописанной проблемы, устройство кодирования изображений настоящего изобретения является устройством кодирования изображений для кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство кодирования изображений включает в себя средство разбиения единицы преобразования для разбиения единицы преобразования на множество подъединиц, и средство кодирования коэффициентов преобразования для кодирования коэффициентов преобразования в единице преобразования со ссылкой на информацию кодирования для использования при кодировании коэффициентов преобразования, причем информация кодирования назначается подъединице.
Для решения вышеописанной проблемы, структура данных настоящего изобретения кодированных данных является структурой данных кодированных данных, генерируемых путем кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем структура данных указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Вышеописанная компоновка сначала разбивает единицу преобразования в качестве цели декодирования на множество подъединиц в процессе декодирования.
Единица преобразования это единица, лежащая в основе преобразования пиксельных значений в частотную область. Единица преобразования имеет размер, например, 64×64 пикселя, 32×32 пикселя или 16×16 пикселей.
Каждая из множества подъединиц может быть, например, областью размером 8×8 в случае, когда единица преобразования имеет размер 16×16.
Вышеописанная компоновка задает множество подъединиц, полученных путем разбиения, в качестве цели обработки, одну за другой, и, таким образом, декодирует коэффициенты преобразования, включенные в каждую из множества подъединиц. Порядок подъединиц декодирования не имеет конкретных ограничений: процесс декодирования может осуществляться в любом порядке.
Вышеописанная компоновка, при декодировании коэффициентов преобразования, обращается к информации декодирования, назначенной каждой из множества подъединиц.
Информация декодирования относится к информации для использования при воспроизведении заранее определенного значения параметра для коэффициента преобразования из кода (битовой последовательности) в кодированных данных. Информация декодирования является, например, таблицей, указывающей связь для воспроизведения заранее определенного значения параметра для коэффициента преобразования из кода в кодированных данных. Другим примером информации декодирования является математическая формула для получения заранее определенного значения параметра для коэффициента преобразования из кода в кодированных данных.
Вышеописанная компоновка, другими словами, декодирует коэффициенты преобразования с использованием информации декодирования, заданной для подъединиц, каждая из которых меньше по размеру, чем единица преобразования, состоящая из подъединиц.
Таким образом, по сравнению с компоновкой осуществления процесса декодирования на основании информации декодирования, заданной для размера единицы преобразования, состоящей из множества подъединиц, вышеописанная компоновка может преимущественно снижать, например, объем информации декодирования и объем вычислений на основании информации декодирования.
Кроме того, вышеописанная компоновка, которая может снижать количество коэффициентов преобразования в качестве цели в процессе декодирования, может дополнительно снижать размер таблицы сканирования, которая задает последовательность сканирования коэффициентов преобразования.
Кроме того, вышеописанная компоновка также может снижать, например, объем памяти и мощность обработки, необходимые для процесса декодирования.
Подъединица может быть идентична единице кодирования, используемой в любом из соответствующих методов непатентных источников 1 и 2. Настоящее изобретение может, в этом случае, непосредственно использовать таблицу VLC (информацию декодирования), заранее заданную для единицы кодирования.
Устройство кодирования изображений, сконфигурированное вышеописанным образом, и структура данных, сконфигурированная вышеописанным образом из кодированных данных, достигают преимуществ, аналогичных тем, которые достигаются устройством декодирования изображений настоящего изобретения.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что средство декодирования коэффициентов преобразования обращается к ненулевой информации, указывающей наличие или отсутствие ненулевого коэффициента преобразования в подъединице, и пропускает процесс декодирования для подъединицы в случае, когда ненулевая информация указывает отсутствие ненулевого коэффициента преобразования в подъединице.
Вышеописанная компоновка позволяет пропускать ненужный процесс декодирования для отдельной области в соответствии с наличием или отсутствием ненулевого коэффициента.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что информация декодирования задается адаптивно в соответствии с позицией подъединицы в единице преобразования.
Единица преобразования имеет различие в тенденции возникновения значения коэффициента преобразования между (i) стороной низкочастотной составляющей, включающей в себя составляющую нулевой частоты, и (ii) стороной высокочастотной составляющей. Например, на стороне низкочастотной составляющей (вблизи составляющей нулевой частоты) существует высокая вероятность возникновения ненулевого коэффициента, тогда как на стороне высокочастотной составляющей существует высокая вероятность возникновения нулевого коэффициента.
Адаптивное задание информации декодирования в соответствии с позицией означает, например, адаптивное задание информации декодирования в соответствии с тем, находится ли позиция подъединицы на стороне низкочастотной составляющей или на стороне низкочастотной составляющей.
Термин "адаптивное" указывает назначение кода в соответствии с тенденцией возникновения. Например, термин "адаптивное" указывает назначение, на стороне высокочастотной составляющей, более короткого кода нулевому коэффициенту или коэффициенту преобразования, имеющему малое абсолютное значение.
В порядке другого примера, термин "адаптивное" указывает назначение, на стороне низкочастотной составляющей, более короткого кода ненулевому коэффициенту или коэффициенту преобразования, имеющему большое абсолютное значение.
Вышеописанная компоновка позволяет (i) эффективно осуществлять процесс декодирования в соответствии с позицией каждой области и, таким образом, (ii) снижать объем кодированных данных, подлежащих декодированию.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может дополнительно включать в себя средство обновления информации декодирования для, в соответствии с частотой возникновения параметра, указывающего коэффициенты преобразования, обновления кода в информации декодирования, причем код назначен параметру, для укорочения кода.
Вышеописанная компоновка позволяет назначать более короткий код параметру, имеющему более высокую частоту возникновения. Вышеописанная компоновка, другими словами, позволяет динамически выражать через частоту возникновения параметра, насколько короток код.
Следовательно, вышеописанная компоновка позволяет, для параметра, имеющего высокую частоту возникновения, сокращать объем кодированных данных, подлежащих декодированию.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что средство декодирования коэффициентов преобразования осуществляет процесс декодирования, в котором средство декодирования коэффициентов преобразования (i) осуществляет, при заранее определенном условии, процедуру декодирования в первом режиме для декодирования серии последовательных ненулевых коэффициентов, соответствующих абсолютных значений коэффициентов преобразования и соответствующих знаков коэффициентов преобразования, и затем (ii) осуществляет процедуру декодирования во втором режиме для декодирования соответствующих абсолютных значений коэффициентов преобразования и соответствующих знаков коэффициентов преобразования.
Вышеописанная компоновка осуществляет процесс декодирования путем (i) осуществления, при заранее определенном условии, процедуры декодирования в первом режиме для декодирования серии ('run') последовательных ненулевых коэффициентов, соответствующих абсолютных значений ('level') коэффициентов преобразования, и соответствующих знаков ('sign') коэффициентов преобразования и затем (ii) осуществления процедуры декодирования во втором режиме для декодирования абсолютных значений ('level') коэффициентов преобразования и соответствующих знаков ('sign') коэффициентов преобразования. Процедура декодирования в первом режиме соответствует так называемому серийному режиму, тогда как процедура декодирования во втором режиме соответствует так называемому уровневому режиму.
Заранее определенным условием является, например, (i) количество декодированных коэффициентов преобразования или (ii) абсолютные значения коэффициентов преобразования. Альтернативно, заранее определенным условием может быть, например, (i) условие, соответствующее позиции подъединицы в единице преобразования, или (ii) тенденция возникновения коэффициента.
Серийный режим и уровневый режим являются, например, методами, используемыми в непатентных источниках 1 и 2. Настоящее изобретение может непосредственно использовать такие традиционные методы при осуществлении процесса декодирования для каждой области. Это позволяет добиться высокой эффективности кодирования.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что средство декодирования коэффициентов преобразования изменяет заранее определенное условие в соответствии с позицией подъединицы в единице преобразования.
Изменение заранее определенного условия в соответствии с позицией подъединицы в единице преобразования означает, например, что процедура декодирования в первом режиме (i) с малой вероятностью заканчивается в области на стороне низкочастотной составляющей и (ii) с большой вероятностью заканчивается в области на стороне высокочастотной составляющей.
Последовательным ненулевым коэффициентам свойственно образовывать сравнительно короткую серию в области на стороне низкочастотной составляющей, тогда как последовательным ненулевым коэффициентам свойственно образовывать сравнительно длинную серию в области на стороне высокочастотной составляющей. Таким образом, устройство декодирования изображений выполнено с возможностью предпочтительно использовать процедуру декодирования в первом режиме в случае, когда последовательным ненулевым коэффициентам свойственно образовывать длинную серию.
Заранее определенное условие также может изменяться таким образом, что устройство декодирования изображений осуществляет только процедуру декодирования в первом режиме и не осуществляет процедуру декодирования во втором режиме.
Следовательно, вышеописанная компоновка позволяет осуществлять эффективный процесс декодирования в серийно-уровневом режиме.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может дополнительно включать в себя средство декодирования ограниченной области для декодирования коэффициентов преобразования только в заранее определенной области на стороне низкочастотной составляющей единицы преобразования, и средство переключения для переключения между (i) процессом декодирования с использованием средства разбиения единицы преобразования и средства декодирования коэффициентов преобразования и (ii) процессом декодирования с использованием средства декодирования ограниченной области.
Вышеописанная компоновка позволяет переключаться при необходимости, для системы процесса декодирования с более высокой эффективностью кодирования, между (i) системой процесса декодирования, где используются средство разбиения единицы преобразования и средство декодирования коэффициентов преобразования, и (ii) системой процесса декодирования для декодирования коэффициентов преобразования только в заранее определенной области на стороне низкочастотной составляющей единицы преобразования.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что средство разбиения единицы преобразования рекурсивно разбивает множество областей в качестве разбиения.
Осуществление процесса декодирования для меньшей области иногда приводит к сокращению объема кодированных данных, подлежащих декодированию. Вышеописанная компоновка, в случае, когда осуществление процесса декодирования для меньшей области приводит к сокращению объема кодированных данных, подлежащих декодированию, что позволяет эффективно осуществлять процесс декодирования.
Кроме того, отсутствие разбиения единицы преобразования иногда приводит к повышению эффективности в случае, когда существует большое количество ненулевых коэффициентов. Дополнительно, кодирование наличия или отсутствия ненулевого коэффициента является более эффективным, поскольку оно позволяет точно управлять меньшей областью.
Нижеприведенное описание раскрывает другой аспект настоящего изобретения. Для решения вышеописанной проблемы, устройство декодирования изображений настоящего изобретения является устройством декодирования изображений для декодирования коэффициентов преобразования из кодированных данных, причем кодированные данные получаются путем кодирования коэффициентов преобразования, причем коэффициенты преобразования получаются путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство декодирования изображений включает в себя средство декодирования относительной позиции для декодирования относительной позиции коэффициента преобразования в качестве цели декодирования по отношению к непосредственно ранее декодированному коэффициенту преобразования, и средство указания позиции для указания позиции коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Для решения вышеописанной проблемы, устройство кодирования изображений настоящего изобретения является устройством кодирования изображений для кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем устройство кодирования изображений включает в себя средство кодирования относительной позиции для кодирования относительной позиции коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования.
Для решения вышеописанной проблемы, структура данных настоящего изобретения кодированных данных является структурой данных кодированных данных, генерируемых путем кодирования коэффициентов преобразования, полученных путем преобразования частоты пиксельных значений целевого изображения для каждой единицы преобразования, причем структура данных указывает относительную позицию коэффициента преобразования в качестве цели кодирования по отношению к непосредственно ранее кодированному коэффициенту преобразования, устройство декодирования изображений для декодирования кодированных данных, указывающих позицию коэффициента преобразования в качестве цели декодирования, на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции.
Вышеописанная компоновка указывает позицию коэффициента преобразования в качестве цели декодирования на основании (i) позиции непосредственно ранее декодированного коэффициента преобразования в единице преобразования и (ii) относительной позиции. Вышеописанная компоновка может, таким образом, последовательно указывать позицию каждого коэффициента преобразования на основании относительной позиции. Единица преобразования является заранее определенной единицей для преобразования.
Вышеупомянутое кодирование 'run' предусматривает определение длины 'run' в соответствии с заранее определенной последовательностью сканирования. Таким образом, даже в случае, когда ненулевой коэффициент в качестве ссылки имеет двухмерные координаты, которые, в отношении относительной позиции в единице преобразования, близки к координатам следующего ненулевого коэффициента, 'run', в результате, может быть длинной. Это может увеличивать объем кодированных данных.
Вышеупомянутая тенденция примечательна в области для высокочастотной составляющей, для которой свойственен разброс коэффициентов преобразования области. Кроме того, более длинная 'run' означает необходимость подготовки, соответственно, таблицы большего размера.
Напротив, последовательное указание позиции коэффициента преобразования на основании относительной позиции может снижать объем кодированных данных в вышеописанном случае.
Вышеописанная компоновка, которая последовательно указывает позицию коэффициента преобразования на основании относительной позиции, может снижать объем кодированных данных, подлежащих декодированию.
Следовательно, вышеописанная компоновка может преимущественно снижать, например, объем информации декодирования и объем вычислений на основании информации декодирования.
Кроме того, вышеописанная компоновка также может снижать, например, объем памяти и мощность обработки, необходимые для процесса декодирования.
Устройство кодирования изображений, сконфигурированное вышеописанным образом, и структура данных, сконфигурированная вышеописанным образом из кодированных данных, достигают преимуществ, аналогичных тем, которые достигаются устройством декодирования изображений настоящего изобретения.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может дополнительно включать в себя средство декодирования для осуществления, для области на стороне низкочастотной составляющей единицы преобразования, (i) процесса декодирования в первом режиме для декодирования серии последовательных ненулевых коэффициентов, соответствующих абсолютных значений коэффициентов преобразования и соответствующих знаков коэффициентов преобразования и (ii) процесса декодирования во втором режиме для декодирования соответствующих абсолютных значений коэффициентов преобразования и соответствующих знаков коэффициентов преобразования.
Средство декодирования осуществляет декодирование в так называемом серийно-уровневом режиме. "Область на стороне низкочастотной составляющей единицы преобразования" означает, например, область размером 8×8 в верхнем левом углу, область, включающая в себя составляющую нулевой частоты, в случае, когда единица преобразования имеет размер 16×16.
В области на стороне низкочастотной составляющей, коэффициенты преобразования не настолько разбросаны, и 'run', таким образом, имеет сравнительно малую длину. Это позволяет эффективно осуществлять декодирование в серийно-уровневом режиме.
Следовательно, вышеописанная компоновка позволяет эффективно осуществлять декодирование в серийно-уровневом режиме для области, в которой коэффициенты преобразования не настолько разбросаны.
Устройство декодирования изображений настоящего изобретения, предпочтительно, может быть сконфигурировано таким образом, что средство декодирования изменяет размер области в соответствии со свойством единицы преобразования в качестве цели декодирования.
Свойство единицы преобразования включает в себя ее тип среза, режим прогнозирования и размер. Эти свойства можно использовать совместно, или можно использовать только одно из них. Средство декодирования изменяет размер области в соответствии с, например, по меньшей мере, одним из таких свойств, как тип среза, режим прогнозирования и размер единицы преобразования.
В случае, когда единица преобразования имеет размер 16×16, устройство декодирования изображений может быть сконфигурировано, например, следующим образом: в случае, когда режимом прогнозирования является режим внутреннего прогнозирования, средство декодирования задает размер области на стороне низкочастотной равным 8×8. В случае, когда режимом прогнозирования является режим внешнего прогнозирования, средство декодирования задает размер области на стороне низкочастотной равным 4×4.
Эта компоновка позволяет изменять, в соответствии со свойством единицы преобразования, область, подлежащую декодированию в серийно-уровневом режиме.
Следовательно, вышеописанная компоновка позволяет эффективно осуществлять декодирование в серийно-уровневом режиме.
Наконец, каждый блок устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений можно реализовать аппаратными средствами с использованием логической схемы, выполненной в виде интегральной схемы (кристалла ИС), или программными средствами с использованием ЦП (центрального процессора).
В случае, когда каждый блок реализован программными средствами с использованием ЦП (центрального процессора), каждое из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений включает в себя (i) ЦП, который выполняет команду программы, которая реализует каждую функцию каждого из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений, (ii) ПЗУ (постоянную память), в которой хранится программа, (iii) ОЗУ (оперативную память), которая извлекает программу, (iv) запоминающее устройство (носитель записи), например, память, в которой сохранятся программа и различные массивы данных, (v) прочее. Задача настоящего изобретения достигается путем подачи, в устройство 1 оптических дисков, носителя записи в котором программные коды (исполнимый код, промежуточный код и исходный код) программы управления каждого из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений, причем программа управления является программным обеспечением, которое реализует каждую функцию, записаны с возможностью чтения компьютером и предписывают компьютеру (или ЦП или MPU) каждого из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений считывать и выполнять программные коды, записанные на носителе записи.
Примеры носителя записи включают в себя (i) ленты, например магнитную ленту и кассетную ленту, (ii) диски, включающие в себя магнитные диски, например флоппи (зарегистрированный товарный знак) диск и жесткий диск, и оптические диски, например CD-ROM, MO, MD, DVD, CD-R и диск Blu-ray (зарегистрированный товарный знак), (iii) карты, например плату ИС (включающую в себя карту памяти) и оптическую карту, (iv) полупроводниковые блоки памяти, реализованные посредством маск-ПЗУ, СППЗУ, ЭСППЗУ, флеш-ПЗУ, и пр., и (v) логические схемы, например ПЛУ (программируемое логическое устройство) и FPGA (вентильная матрица, программируемая пользователем).
Каждое из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений может быть подключено к сети связи, через которую программные коды могут поступать на каждое из устройства 1 декодирования движущихся изображений и устройства 2 кодирования движущихся изображений. Такая сеть связи не имеет конкретных ограничений при условии, что сеть связи может передавать программные коды. Примеры сети связи включают в себя интернет, интрасеть, экстрасеть, LAN, ISDN, VAN, сеть связи CATV, виртуальную частную сеть, телефонную сеть, сеть мобильной связи и сеть спутниковой связи. Среда передачи, на основе которой образована сеть связи, конкретно не ограничивается средой передачи конкретной конфигурации или рода при условии, что среда передачи может передавать программные коды. Примеры среды передачи включает в себя проводные среды передачи данных, например IEEE1394, USB, систему связи по линиям электропередачи, кабельное телевидение, телефонную линию и ADSL (асимметричную цифровую абонентскую линию) и беспроводные среды передачи данных, например системы инфракрасной связи, например IrDA и пульт дистанционного управления, Bluetooth (зарегистрированный товарный знак), систему беспроводной связи IEEE 802.11, HDR (High Data Rate), NFC (Near Field Communication), DLNA(Digital Living Network Alliance), мобильную телефонную сеть, спутниковую схему, и цифровую наземную сеть. Заметим, что настоящее изобретение также можно реализовать в форме компьютерного сигнала данных, в котором воплощены программные коды посредством электронной передачи и который внедрен в несущие волны.
Пример применения
Устройство 2 кодирования движущихся изображений и устройство 1 декодирования движущихся изображений можно использовать путем установки в различных устройствах, передающих, принимающих, записывающих и воспроизводящих движущиеся изображения. Движущееся изображение может (i) естественным движущимся изображением, захваченным с помощью камеры и т.п. или (ii) искусственным движущимся изображением (включающим в себя CG и GUI), генерируемым компьютером и т.п.
Ниже, прежде всего, объяснено, со ссылкой на фиг. 37, что устройство 2 кодирования движущихся изображений и устройство 1 декодирования движущихся изображений можно использовать для передачи и приема движущегося изображения.
На фиг. 37(a) показана блок-схема, демонстрирующая конфигурацию передающего устройства PROD_A, снабженного устройством 2 кодирования движущихся изображений. Как показано в (a) на фиг. 37, передающее устройство PROD_A включает в себя (i) секцию PROD_A1 кодирования, которая получает кодированные данные путем кодирования движущегося изображения, (ii) секцию PROD_A2 модуляции, которая получает модулированный сигнал путем модуляции несущих волн с использованием кодированных данных, полученных секцией PROD_A1 кодирования, и (iii) секцию PROD_A3 передачи, которая передает модулированный сигнал, полученный секцией PROD_A2 модуляции. Устройство 2 кодирования движущихся изображений используется как секция PROD_A1 кодирования.
В качестве источников движущихся изображений, поступающих на секцию PROD_A1 кодирования, передающее устройство PROD_A может дополнительно включать в себя (i) камеру PROD_A4, которая захватывает движущееся изображение, (ii) носитель PROD_A5 записи, в котором записывается движущееся изображение, (iii) входной разъем PROD_A6, через который движущееся изображение вводится извне, и (iv) секцию A7 обработки изображений, которая генерирует или обрабатывает изображение. (a) на фиг. 37 иллюстрирует конфигурацию передающего устройства PROD_A, включающего в себя все вышеперечисленные элементы, часть которых может быть опущена.
Носителем PROD_A5 записи может быть (i) носитель записи, на котором записывается движущееся изображение, которое не кодировано, или (ii) носитель записи на котором записывается движущееся изображение, которое кодировано системой кодирования записи, отличный от системы кодирования передачи. В случае носителя записи, на котором записывается движущееся изображение, которое кодировано системой кодирования записи, отличный от системы кодирования передачи, секция декодирования (не показана), которая декодирует, в соответствии с системой кодирования записи, кодированные данные, считанные с носителя PROD_A5 записи, может быть предусмотрена между носителем PROD_A5 записи и секцией PROD_A1 кодирования.
На фиг. 37(b) показана блок-схема, демонстрирующая конфигурацию принимающего устройства PROD_B, снабженного устройством 1 декодирования движущихся изображений. Как показано в (b) на фиг. 37, принимающее устройство PROD_B включает в себя (i) секцию PROD_B1 приема, которая принимает модулированный сигнал, (ii) секцию PROD_B2 демодуляции, которая получает кодированные данные путем демодуляции модулированного сигнала, принятого секцией PROD_B1 приема, и (iii) секцию PROD_B3 декодирования, которая получает движущееся изображение путем декодирования кодированных данных, полученных секцией PROD_B2 демодуляции. Устройство 1 декодирования движущихся изображений используется как секция PROD_B3 декодирования.
В качестве пунктов назначения, куда должны поступать движущиеся изображения, выводимые секцией PROD_B3 декодирования, принимающее устройство PROD_B может дополнительно включать в себя (i) дисплей PROD_B4 который отображает движущееся изображение, (ii) носитель PROD_B5 записи, в котором записывается движущееся изображение, и (iii) выходной разъем PROD_B6, через который движущееся изображение выводится наружу. (b) на фиг. 37 иллюстрирует конфигурацию принимающего устройства PROD_B, включающего в себя все вышеперечисленные элементы, часть которых может быть опущена.
Носителем PROD_B5 записи может быть (i) носитель записи, на который должно записываться движущееся изображение, которое не кодировано, или (ii) носитель записи, на который должно записываться движущееся изображение, которое кодировано системой кодирования записи, отличной от системы кодирования передачи. В случае носителя записи, на который должно записываться движущееся изображение, которое кодировано системой кодирования записи, отличной от системы кодирования передачи, секция кодирования (не показана), которая кодирует, в соответствии с системой кодирования записи, движущееся изображение, полученное от секции PROD_B3 декодирования, может быть предусмотрена между секцией PROD_B3 декодирования и носителем PROD_B5 записи.
Среда передачи, по которой передается модулированный сигнал, может быть проводной или беспроводной средой передачи. Дополнительно, режим, в котором передается модулированный сигнал, может быть широковещательным (что в данном случае означает режим передачи, в котором пункт назначения заранее не указан) или может быть коммуникационным (что в данном случае означает режим передачи, в котором пункт назначения указан заранее). Другими словами, модулированный сигнал может передаваться посредством любого из беспроводного вещания, кабельного вещания, беспроводной связи и кабельной связи.
Например, вещательная станция (например, вещательное оборудование)/приемная станция (например, телевизионный приемник) наземного цифрового вещания демонстрируют передающее устройство PROD_A/принимающее устройство PROD_B, передающее/принимающее модулированный сигнал посредством беспроводного вещания. Дополнительно, вещательная станция (например, вещательное оборудование)/приемная станция (например, телевизионный приемник) кабельного телевидения демонстрируют передающее устройство PROD_A/принимающее устройство PROD_B, передающее/принимающее модулированный сигнал посредством кабельное вещание.
Кроме того, сервер (например, рабочая станция)/ клиент (например, телевизионный приемник, персональный компьютер, смартфон, и т.п.) услуги видео по запросу (VOD), услуги видеохостинга и т.п., использующей интернет, демонстрируют передающее устройство PROD_A/ принимающее устройство PROD_B, передающее/принимающее модулированный сигнал посредством связи (обычно в LAN используется проводная или беспроводная среда передачи, и в WAN используется проводная среда передачи). Персональные компьютеры включают в себя настольный ПК, портативный ПК и планшетный ПК. Дополнительно, смартфоны включают в себя многофункциональный мобильный телефон.
Клиент услуги видеохостинга имеет не только функцию (i) декодирования кодированных данных, загружаемых с сервера, и (ii) отображения декодированных данных на дисплее, но и функцию (i) кодирования движущегося изображения, захваченного с помощью камеры, и (ii) выгрузки кодированного движущегося изображения на сервер. Другими словами, клиент услуги видеохостинга выступает в качестве как передающего устройства PROD_A, так и принимающего устройства PROD_B.
Далее, со ссылкой на фиг. 38, объяснено, что устройство 2 кодирования движущихся изображений и устройство 1 декодирования движущихся изображений можно использовать для записи и воспроизведения движущегося изображения.
На фиг. 38 (a) показана блок-схема, демонстрирующая конфигурацию устройства PROD_C записи, снабженного устройством 2 кодирования движущихся изображений. Как показано в (a) на фиг. 38, устройство PROD_C записи включает в себя (i) секцию PROD_C1 кодирования, которая получает кодированные данные путем кодирования движущегося изображения, и (ii) секцию PROD_C2 записи, которая записывает на носитель PROD_M записи кодированные данные, полученные секцией PROD_C1 кодирования. Устройство 2 кодирования движущихся изображений используется как секция PROD_C1 кодирования.
Носителем PROD_M записи может быть (1) носитель записи, например, HDD (жесткий диск) или твердотельный диск (SSD), который встроен в устройство PROD_C записи, (2) носитель записи, например, карта памяти SD или флэш-память, подключаемая по универсальной последовательной шине (USB), которая соединена с устройством PROD_C записи, или (3) носитель записи, например, цифровой универсальный диск (DVD) или диск Blu-ray (BD: зарегистрированный товарный знак) который загружается в устройство привода (не показано), встроенное в устройство PROD_C записи.
В качестве источников движущихся изображений, поступающих на секцию PROD_C1 кодирования, устройство PROD_C записи может дополнительно включать в себя (i) камеру PROD_C3, которая захватывает движущееся изображение, (ii) входной разъем PROD_C4, через который движущееся изображение вводится извне секции PROD_C5 приема, которая принимает движущееся изображение, и (iii) секцию C6 обработки изображений, которая генерирует или обрабатывает изображение. (a) на фиг. 38 иллюстрирует конфигурацию устройства PROD_C записи, включающего в себя все вышеперечисленные элементы, часть которых может быть упущена.
Секцией PROD_C5 приема может быть (i) секция приема, которая принимает движущееся изображение, которое не кодировано, или (ii) секция приема, которая принимает кодированные данные, которые кодированы системой кодирования передачи, отличной от системы кодирования записи. В случае секции приема, которая принимает кодированные данные, которые кодированы системой кодирования передачи, отличной от системы кодирования записи, секция декодирования передачи (не показана), которая декодирует кодированные данные, кодированные системой кодирования передачи, может быть предусмотрена между секцией PROD_C5 приема и секцией PROD_C1 кодирования.
Например, устройство PROD_C записи представлено устройством записи DVD, устройством записи BD и устройством записи на жесткий диск (HDD) (в этом случае, входной разъем PROD_C4 или секция PROD_C5 приема выступает в качестве главного источника движущегося изображения). Дополнительно, устройство PROD_C записи также представлено (i) видеокамерой (в этом случае, камера PROD_C3 выступает в качестве главного источника движущегося изображения), (ii) персональным компьютером (в этом случае, секция PROD_C5 приема или секция C6 обработки изображений выступает в качестве главного источника движущегося изображения), и (iii) смартфоном (в этом случае, камера PROD_C3 или секция PROD_C5 приема выступает в качестве главного источника движущегося изображения).
На фиг. 38(b) показан блок, демонстрирующий конфигурацию устройства PROD_D, воспроизведения снабженного устройством 1 декодирования движущихся изображений. Как показано в (b) на фиг. 38, устройство PROD_D воспроизведения включает в себя (i) секцию PROD_D1 чтения, которая считывает кодированные данные, записанные на носитель PROD_M записи, и (ii) секцию PROD_D2 декодирования, которая получает движущееся изображение путем декодирования кодированных данных, считанных секцией PROD_D1 чтения. Устройство 1 декодирования движущихся изображений используется как секция PROD_D2 декодирования.
Носителем PROD_M записи может быть (1) носитель записи, например, HDD или твердотельный диск (SSD), который встроен в устройство PROD_D воспроизведения, (2) носитель записи, например, карта памяти SD или USB флэш-память, которая соединена с устройством PROD_D воспроизведения, или (3) носитель записи, например, DVD или BD, который загружается в устройство привода (не показано), встроенное в устройство PROD_D воспроизведения.
В качестве пунктов назначения, куда должны поступать движущиеся изображения, выводимые секцией PROD_D2 декодирования, устройство PROD_D воспроизведения может дополнительно включать в себя (i) дисплей PROD_D3, который отображает движущееся изображение, (ii) выходной разъем PROD_D4, через который движущееся изображение выводится наружу, и (iii) секцию PROD_D5 передачи, которая передает движущееся изображение. (b) на фиг. 38 иллюстрирует конфигурацию устройства PROD_D воспроизведения, включающего в себя все вышеперечисленные элементы, часть которых может быть упущена.
Секцией PROD_D5 передачи может быть (i) секция передачи, которая передает движущееся изображение, которое не кодировано, или (ii) секция передачи, которая передает движущееся изображение, которое кодировано системой кодирования передачи, отличной от системы кодирования записи. В случае секции передачи, которая передает движущееся изображение, которое кодировано системой кодирования передачи, отличной от системы кодирования записи, секция кодирования (не показана), которая кодирует движущееся изображение в соответствии с системой кодирования передачи, может быть предусмотрена между секцией PROD_D2 декодирования и секцией PROD_D5 передачи.
Например, устройство PROD_D воспроизведения представлено проигрывателем DVD, проигрывателем BD и проигрывателем HDD (в этом случае, выходной разъем PROD_D4, с которым соединен телевизионный приемник и т.п., выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение). Дополнительно, устройство PROD_D воспроизведения также представлено (i) телевизионным приемником (в этом случае, дисплей PROD_D3 выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение), (ii) цифровым идентификационным комплектом (также именуемым электронной вывеской или системой доски объявлений, и в этом случае, дисплей PROD_D3 или секция PROD_D5 передачи выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение), (iii) настольным ПК (в этом случае, выходной разъем PROD_D4 или секция PROD_D5 передачи выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение), (iv) портативным или планшетным ПК (в этом случае, дисплей PROD_D3 или секция PROD_D5 передачи выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение), и (v) смартфоном (в этом случае, дисплей PROD_D3 или секция PROD_D5 передачи выступает в качестве главного пункта назначения, на который должно поступать движущееся изображение).
Промышленная применимость
Настоящее изобретение пригодно для применения к (i) устройству декодирования изображений для декодирования кодированных данных, в которых кодируются данные изображения, и (ii) устройству кодирования изображений для генерации кодированных данных, в которых кодируются данные изображения. Настоящее изобретение пригодно для применения к структуре данных кодированных данных, генерируемой устройством кодирования изображений, к которой обращается устройство декодирования изображений.
Перечень условных обозначений
1 Устройство декодирования движущихся изображений (устройство декодирования изображений)
2 Устройство кодирования движущихся изображений (устройство кодирования изображений)
12, 12A Секция декодирования информации TU
121 Секция разбиения области (средство разбиения единицы преобразования)
122 Секция декодирования области (средство декодирования коэффициентов преобразования)
280, 280A Секция кодирования информации TU
281 Секция разбиения области (средство разбиения единицы преобразования)
282 Секция кодирования области (средство кодирования коэффициентов преобразования)
320 Секция декодирования в режиме относительной позиции
321 Секция декодирования последнего ненулевого коэффициента
322 Секция декодирования относительной позиции (средство декодирования относительной позиции)
323 Секция определения позиции коэффициента (средство указания позиции)
310 Секция декодирования в серийно-уровневом режиме (средство декодирования)
420 Секция кодирования в режиме относительной позиции
421 Секция кодирования последнего ненулевого коэффициента
422 Секция вычисления относительной позиции (средство кодирования относительной позиции)
423 Секция кодирования относительной позиции (средство кодирования относительной позиции)
BLK целевой блок (единица преобразования)
R11-R14 область декодирования (подъединица)
TBL11, TBL30 таблица VLC (информация декодирования)
TBL21, TBL40 таблица VLC (информация кодирования)
TUI информация TU (кодированные данные)