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

Область техники, к которой относится изобретение
Настоящее раскрытие относится к устройству и способу обработки изображений.
Уровень техники
В H.264/AVC, одной из спецификаций стандарта для схем кодирования изображения, можно использовать разные шаги квантования для каждого компонента коэффициентов ортогонального преобразования при выполнении квантования данных изображения с высоким профилем или более высоким профилем. Шаг квантования (или масштаб квантования) для каждого компонента коэффициентов ортогонального преобразования может быть установлен на основе матрицы квантования (также называемой списком масштабирования), определенной с тем же размером, в качестве модулей ортогонального преобразования, и стандартного значения шага.
На фиг.38 иллюстрируются четыре класса принятых по умолчанию матриц квантования, которые заранее определены в H.264/AVC. Матрица SL1 представляет собой принятую по умолчанию матрицу квантования 4×4 для режима прогнозирования внутри кадра. Матрица SL2 представляет собой принятую по умолчанию матрицу 4×4 квантования для режима прогнозирования между кадрами. Матрица SL3 представляет собой принятую по умолчанию матрицу квантования 8×8 для режима прогнозирования внутри кадра. Матрица SL4 представляет собой принятую по умолчанию матрицу квантования 8×8 для режима прогнозирования между кадрами. Пользователь может также определить собственную матрицу квантования, которая отличается от принятых по умолчанию матриц, показанных на фиг.38, в наборе параметров последовательности или в наборе параметров изображения. Следует отметить, что в случае, когда матрица квантования не установлена, может использоваться плоская матрица квантования, имеющая равный шаг квантования для всех компонентов.
При кодировании видеоданных с высокой эффективностью (HEVC), стандартизация которого в настоящее время выполняется как схема кодирования изображения следующего поколения, которая следует после H.264/AVC, вводится понятие модуля кодирования (CU), который соответствует понятию макроблока, использовавшегося в прошлом (см. Непатентную литературу 1, указанную ниже). Диапазон размеров модуля кодирования устанавливают в наборе параметров последовательности как пару значений степени 2, называемых наибольшим модулем кодирования (LCU) и наименьшим модулем кодирования (SCU). Кроме того, используют SPLIT_FLAG для обозначения конкретного размера модуля кодирования в пределах диапазона, установленного по LCU и SCU.
В HEVC один модуль кодирования может быть разделен на один или больше модулей ортогонального преобразования, или другими словами, один или больше модулей преобразования (TU). Любой из размеров 4×4, 8×8, 16×16 и 32×32 может использоваться, как размер модуля преобразования. Следовательно, матрица квантования также может быть установлена для каждого из этих кандидатов размера модуля преобразования. В Непатентной литературе 2, представленной ниже, предложено установление множества кандидатов матрицы квантования для одного размера модуля преобразования в одном изображении, и выбор адаптивной матрицы квантования для каждого блока, с точки зрения оптимизации скорость-искажения (RD).
Список литературы
Непатентная литература
Непатентная литература 1: JCTVC-B205, "Test Model under Consideration", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 2nd Meeting: Geneva, CH, 21-28 July, 2010.
Non-Patent Literature 2: VCEG-AD06, "Adaptive Quantization Matrix Selection on KTA Software", ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG) 30th Meeting: Hangzhou, China, 23-24 October, 2006.
Раскрытие изобретения
Техническая задача
Однако матрица квантования, выполненная с возможностью квантования и обратного квантования, отличается в зависимости от характеристик каждого изображения, включенного в видеоданные. По этой причине частота обновлений матрицы квантования будет расти при попытке кодировать видеоизображение, характеристики изображения которого изменяются от момента к моменту, с оптимальными матрицами квантования. В H.264/AVC матрица квантования определена в наборе параметров последовательности (SPS) или в наборе параметров изображения (PPS). Следовательно, если частота обновлений матрицы квантования растет, доля кодируемого потока, занятая SPS или PPS, увеличивается. Это означает, что эффективность кодирования снижается из-за увеличенного количества служебных данных. Для HEVC, в котором размер матриц квантования дополнительно увеличен и в котором несколько разных матриц квантования могут быть определены для каждого изображения, существует риск, что такое снижение эффективности кодирования, сопровождающее обновление матрицы квантования, может стать еще более существенным.
Следовательно, желательно обеспечить механизм, позволяющий сдерживать снижение эффективности кодирования, сопровождающее обновление матрицы квантования.
Решение задачи
В соответствии с вариантом осуществления настоящего раскрытия, предложено устройство обработки изображения, включающее в себя блок получения, выполненный с возможностью получения параметров матрицы квантования из кодированного потока, причем параметры матрицы квантования, определяющие матрицу квантования, установлены в рамках набора параметров, отличного от набора параметров последовательности и набора параметров изображения, блок установки, выполненный с возможностью установки, на основе параметров матрицы квантования, получаемых блоком получения, матрицы квантования, используемой при обратном квантовании данных, декодируемых из кодированного потока, и блок обратного квантования, выполненный с возможностью обратного квантования данных, декодируемых из кодированного потока, с использованием матрицы квантования, устанавливаемой блоком установки.
Устройство обработки изображения может обычно быть реализовано в виде устройства декодирования изображения, декодирующего изображение.
В соответствии с вариантом осуществления настоящего раскрытия предусмотрен способ обработки изображения, включающий в себя этапы, на которых: получают параметры матрицы квантования из кодированного потока, причем параметры матрицы квантования, определяющие матрицу квантования, установлены в рамках набора параметров, который отличается от набора параметров последовательности и набора параметров изображения, устанавливают, на основе полученных параметров матрицы квантования, матрицу квантования, используемую при обратном квантовании данных, декодированных из кодированного потока, и выполняют обратное квантование данных, декодированных из кодированного потока, с использованием установленной матрицы квантования.
В соответствии с вариантом осуществления настоящего раскрытия, предложено устройство обработки изображения, включающее в себя блок квантования, выполненный с возможностью квантования данных с использованием матрицы квантования, блок установки, выполненный с возможностью установки параметров матрицы квантования, определяющих матрицу квантования, подлежащую использованию при выполнении блоком квантования квантование данных, и блок кодирования, выполненный с возможностью кодировать параметры матрицы квантования, устанавливаемые блоком установки, в рамках набора параметров, отличного от набора параметров последовательности и набора параметров изображения.
Устройство обработки изображения обычно может быть реализовано в виде устройства кодирования изображения, кодирующего изображение.
В соответствии с вариантом осуществления настоящего раскрытия предусмотрен способ обработки изображений, включающий в себя этапы, на которых: квантуют данные с использованием матрицы квантования, устанавливают параметры матрицы квантования, определяющие матрицу квантования, подлежащую использованию при выполнении квантования данных, и кодируют установленные параметры матрицы квантования в рамках набора параметров, отличного от набора параметров последовательности и набора параметров изображения.
Полезные результаты изобретения
В соответствии с устройством обработки изображений и способом обработки изображений согласно настоящему раскрытию, возможно сдерживать снижение эффективности кодирования, сопровождающее обновление матрицы квантования.
Краткое описание чертежей
На фиг.1 показана блок-схема, иллюстрирующая примерную конфигурацию устройства кодирования изображения в соответствии с вариантом осуществления.
На фиг.2 показана блок-схема, иллюстрирующая пример подробной конфигурации блока обработки синтаксиса, представленного на фиг.1.
На фиг.3 показана пояснительная схема, иллюстрирующая примерные параметры, включенные в набор параметров матрицы квантования, в соответствии с вариантом осуществления.
На фиг.4 показана пояснительная схема, иллюстрирующая примерные параметры, включенные в заголовок среза, в соответствии с вариантом осуществления.
На фиг.5 показана блок-схема последовательности операций, иллюстрирующая примерный поток процесса вставки набора параметров в соответствии с вариантом осуществления.
На фиг.6 показана пояснительная схема для пояснения разницы в структуре потока между технологией в соответствии с вариантом осуществления и существующей технологией.
На фиг.7 показана блок-схема, иллюстрирующая примерную конфигурацию декодера изображения, в соответствии с вариантом осуществления.
На фиг.8 показана блок-схема, иллюстрирующая пример подробной конфигурации блока обработки синтаксиса, представленного на фиг.7.
На фиг.9 показана блок-схема последовательности операций, иллюстрирующая примерный поток процесса генерирования матрицы квантования, в соответствии с вариантом осуществления.
На фиг.10 показана блок-схема последовательности операций, иллюстрирующая пример потока подробной обработки в режиме копии в соответствии с вариантом осуществления.
На фиг.11 показана блок-схема последовательности операций, иллюстрирующая пример потока подробной обработки в режиме обозначения оси в соответствии с вариантом осуществления.
На фиг.12 показана блок-схема последовательности операций, иллюстрирующая пример потока подробной обработки для установления матрицы квантования для среза в соответствии с вариантом осуществления.
На фиг.13 показана первая пояснительная схема, иллюстрирующая первый пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.14 показана вторая пояснительная схема, иллюстрирующая первый пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.15 показана третья пояснительная схема, иллюстрирующая первый пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.16 показана первая пояснительная схема, иллюстрирующая второй пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.17 показана вторая пояснительная схема, иллюстрирующая второй пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.18 показана третья пояснительная схема, иллюстрирующая второй пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.19 показана четвертая пояснительная схема, иллюстрирующая второй пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.20 показана пятая пояснительная схема, иллюстрирующая второй пример иллюстративного псевдокода, выражающего синтаксис набора параметров матрицы квантования.
На фиг.21 показана пояснительная схема, иллюстрирующая пример областей установки масштаба квантования, определенных для квантования матрицы квантования.
На фиг.22 показана пояснительная схема, иллюстрирующая пример наборов масштабов квантования в соответствующих областях установки масштаба квантования, представленных, как пример, на фиг.21.
На фиг.23 показана пояснительная схема для пояснения 11 классов таблиц VLC, подготовленных в LCEC.
На фиг.24 показана пояснительная схема, иллюстрирующая пример кодированного потока, структурированного в соответствии с первой технологией, в которой используется APS.
На фиг.25 показана пояснительная схема, иллюстрирующая пример синтаксиса APS, определенного в соответствии с первой технологией, в которой используется APS.
На фиг.26 показана пояснительная схема, иллюстрирующая пример синтаксиса заголовка среза, определенного в соответствии с первой технологией, в которой используется APS.
На фиг.27 показана пояснительная схема, иллюстрирующая пример синтаксиса APS, определенного в соответствии с примерной модификацией первой технологии, в которой используется APS.
На фиг.28 показана пояснительная схема, иллюстрирующая пример кодированного потока, структурированного в соответствии со второй технологией, в которой используется APS.
На фиг.29 показана пояснительная схема, иллюстрирующая пример кодированного потока, структурированного в соответствии с третьей технологией, в которой используется APS.
На фиг.30 показана пояснительная схема, иллюстрирующая пример синтаксиса APS, определенного в соответствии с третьей технологией, в которой используется APS.
На фиг.31 показана пояснительная схема, иллюстрирующая пример синтаксиса заголовка среза, определенного в соответствии с третьей технологией, в которой используется APS.
На фиг.32 показана таблица, представляющая особенности параметра для каждого из нескольких типичных инструментов кодирования.
На фиг.33 показана пояснительная схема для пояснения примера кодированного потока, структурированного в соответствии с примерной модификацией третьей технологии, в которой используется APS.
На фиг.34 показана блок-схема, иллюстрирующая пример схематичной конфигурации телевизора.
На фиг.35 показана блок-схема, иллюстрирующая пример схематичной конфигурации мобильного телефона.
На фиг.36 показана блок-схема, иллюстрирующая пример схематичной конфигурации устройства записи и воспроизведения.
На фиг.37 показана блок-схема, иллюстрирующая пример схематичной конфигурации устройства формирования изображения.
На фиг.38 показана пояснительная схема, иллюстрирующая принятые по умолчанию матрицы квантования, которые предварительно определены в H.264/AVC.
Подробное описание изобретения
Ниже будут подробно описаны предпочтительные варианты осуществления настоящего изобретения со ссылкой на приложенные чертежи. Следует отметить, что, в данном описании и на чертежах, элементы, которые имеют, по существу, одинаковую функцию и структуру, обозначены одинаковыми номерами ссылочных позиций, и повторное их пояснение исключено.
Кроме того, описание будет представлено в следующем порядке.
1. Пример конфигурации устройства кодирования изображения в соответствии с вариантом осуществления.
1-1. Пример общей конфигурации.
1-2. Пример конфигурации блока обработки синтаксиса.
1-3. Пример структуры параметра.
2. Поток обработки при кодировании в соответствии с вариантом осуществления.
3. Пример конфигурации устройства декодирования изображения в соответствии с вариантом осуществления.
3-1. Пример общей конфигурации.
3-2. Пример конфигурации блока обработки синтаксиса.
4. Поток обработки во время декодирования в соответствии с вариантом осуществления.
4-1. Генерирование матриц квантования.
4-2. Установка матрицы квантования для среза.
5. Примеры синтаксиса.
5-1. Первый пример.
5-2. Второй пример.
6. Различные примерные конфигурации наборов параметров.
6-1. Первая технология.
6-2. Пример модификации первой технологии.
6-3. Вторая технология.
6-4. Третья технология.
6-5. Пример модификации третьей технологии.
7. Варианты применения.
8. Заключение.
1. Пример конфигурации устройства кодирования изображения в соответствии с вариантом осуществления
В данном разделе описана примерная конфигурация устройства кодирования изображения в соответствии с вариантом осуществления.
1-1. Пример общей конфигурации
На фиг.1 показана блок-схема, иллюстрирующая примерную конфигурацию устройства 10 кодирования изображения в соответствии с вариантом осуществления. На фиг.1 устройство 10 кодирования изображения оборудовано блоком 11 аналого-цифрового (A/D) преобразования, буфером 12 изменения порядка, блоком 13 обработки синтаксиса, блоком 14 вычитания, блоком 15 ортогонального преобразования, блоком 16 квантования, блоком 17 кодирования без потерь, буфером 18 накопления, блоком 19 управления скоростью, блоком 21 обратного квантования, блоком 22 обратного ортогонального преобразование, блоком 23 суммирования, фильтром 24 устранения блоков, запоминающим устройством 25 кадра, селектором 26, блоком 30 прогнозирования внутри кадра, блоком 40 оценки движения и блоком 50 выбора режима.
Блок 11 A/D преобразования преобразует сигнала изображения, вводимый в аналоговом формате, в данные изображения в цифровом формате и выводит последовательность цифровых данных изображения в буфер 12 изменения порядка.
Буфер 12 изменения порядка изменяет порядок изображений, включенных в последовательность данных изображения, поступающих из блока 11 A/D преобразования. После изменения порядка изображений, в соответствии со структурой группы изображений (GOP), в соответствии с процессом кодирования, буфер 12 изменения порядка выводит данные изображения с измененным порядком в блок 13 обработки синтаксиса.
Данные изображения, выводимые из буфера 12 изменения порядка в блок 13 обработки синтаксиса, отображают на поток битов в единицах, называемых модулями уровня абстракции сети (NAL). Поток данных изображения включает в себя одну или больше последовательностей. Ведущее изображение в последовательности называется изображением обновления мгновенного декодирования (IDR). Каждая последовательность включает в себя одно или больше изображений, и каждое изображение дополнительно включает в себя один или больше срезов. В H.264/AVC и в HEVC, такие срезы представляют собой основные модули для кодирования и декодирования видеоданных. Данные для каждого среза распознают, как модуль уровня кодирования видеоданных (VCL) NAL.
Блок 13 обработки синтаксиса последовательно распознает модули NAL в потоке данных изображения, поступающих из буфера 12 изменения порядка, и вставляет в поток модули NAL, не являющиеся VCL, содержащие информацию заголовка. Модули NAL, не являющиеся VCL, которые блок обработки 13 синтаксиса вставляет в поток, включают в себя наборы параметров последовательности (SPS) и наборы параметров изображения (PPS). Кроме того, в настоящем варианте осуществления, блок 13 обработки синтаксиса вставляет в поток набор параметров матрицы квантования (QMPS), модуль NAL, не являющийся VCL, отличающийся от SPS и PPS. Блок 13 обработки синтаксиса также добавляет заголовок среза (SH) в начало срезов. Блок 13 обработки синтаксиса затем выводит поток данных изображения, включающий в себя модули VCL NAL и модули NAL, не являющиеся VCL, в блок 14 вычитания, блок 30 прогнозирования внутри кадра и блок 40 оценки движения. Подробная конфигурация блока 13 обработки синтаксиса будет дополнительно описана ниже.
В блок 14 вычитания подают данные изображения, выводимые из блока 13 обработки синтаксиса, и данные прогнозируемого изображения, выбранные блоком 50 выбора режима, описанным ниже. Блок 14 вычитания рассчитывает данные ошибки прогнозирования, которые представляют собой разность между данными изображения, выводимыми из блока 13 обработки синтаксиса, и данными прогнозируемого изображения, выводимыми из блока 50 выбора режима, и выводит данные рассчитанной ошибки прогнозирования в блок 15 ортогонального преобразования.
Блок 15 ортогонального преобразования выполняет ортогональное преобразование данных ошибки прогнозирования, выводимых из блока 13 вычитания. Ортогональное преобразование, выполняемое блоком 15 ортогонального преобразования, может представлять собой, например, дискретное косинусное преобразование (DCT) или преобразование Карунена-Лоэва. Блок 15 ортогонального преобразования выводит данные коэффициента преобразования, полученные с помощью процесса ортогонального преобразования, в блок 16 квантования.
Блок 16 квантования использует матрицу квантования для квантования данных коэффициента преобразования, вводимых из блока 15 ортогонального преобразования, и выводит квантованные данные коэффициента преобразования (в дальнейшем называются квантованными данными) в блок 17 кодирования без потерь и в блок 21 обратного квантования. Скоростью передачи битов квантованных данных управляют на основе сигнала управления скоростью из блока 19 управления скоростью. Матрицу квантования, используемую блоком 16 квантования, определяют в наборе параметров матрицы квантования, и она может быть установлена в заголовке среза для каждого среза. В случае, когда матрица квантования не установлена, используется плоская матрица квантования, имеющая одинаковый шаг квантования для всех компонентов.
Блок 17 кодирования без потерь генерирует кодированный поток, выполняя процесс кодирования без потерь для вывода квантованных данных из блока 16 квантования. Кодирование без потерь, выполняемое блоком 17 кодирования без потерь, может представлять собой, например, кодирование переменной длины или арифметическое кодирование. Кроме того, блок 17 кодирования без потерь мультиплексирует информацию о прогнозировании внутри кадра или информацию о прогнозирования между кадрами, вводимую из блока 50 выбора режима, в заголовок кодированного потока. Блок 17 кодирования без потерь затем выводит кодированный поток, сгенерированный таким образом, в буфер 18 накопления.
Буфер 18 накопления использует носитель информации, такой как полупроводниковое запоминающее устройство, для временного сохранения в буфере кодированного потока, вводимого из блока 17 кодирования без потерь. Буфер 18 накопления затем выводит кодированный поток, помещенный, таким образом, в буфере, в блок передачи, который не показан (такой как, например, интерфейс передачи данных или соединительный интерфейс с периферийным оборудованием), с частотой, соответствующей полосе пропускания канала передачи.
Блок 19 управления скоростью отслеживает свободное пространство в буфере 18 накопления. Затем блок 19 управления скоростью генерирует сигнал управления скоростью в соответствии со свободным пространством в буфере 18 накопления, и выводит сгенерированный сигнал управления скоростью в блок 16 квантования. Например, когда отсутствует большое свободное пространство в буфере 18 накопления, блок 19 управления скоростью генерирует сигнал управления скоростью для понижения скорости битов квантованных данных. Кроме того, например, когда имеется достаточно свободного пространства в буфере 18 накопления, блок 19 управления скоростью генерирует сигнал управления скоростью для повышения скорости битов квантованных данных.
Блок 21 обратного квантования использует матрицу квантования для выполнения процесса обратного квантования для квантованных данных, вводимых из блока 16 квантования. Блок 21 обратного квантования затем выводит данные коэффициента преобразования, полученные в процессе обратного квантования, в блок 22 обратного ортогонального преобразования.
Блок 22 обратного ортогонального преобразования выполняет процесс обратного ортогонального преобразования для преобразованных данных коэффициента, вводимых из блока 21 устранения квантования, чтобы, таким образом, восстановить данные ошибки прогнозирования. Затем блок 22 обратного ортогонального преобразования выводит восстановленные данные ошибки прогнозирования в блок 23 суммирования.
Блок 23 суммирования суммирует восстановленные данные ошибки прогнозирования, вводимые из блока 22 обратного ортогонального преобразования, и данные прогнозируемого изображения, вводимые из блока 50 выбора режима, чтобы, таким образом, сгенерировать декодированные данные изображения. Затем блок 23 суммирования выводит декодированные данные изображения, сгенерированные таким образом, в фильтр 24 устранения блоков и в запоминающее устройство 25 кадра.
Фильтр 24 устранения блоков применяет фильтрацию для уменьшения артефактов, связанных с блокированием, образующихся во время кодирования изображения. Фильтр 24 устранения блоков удаляет артефакты, связанные с блокированием, путем фильтрации данных декодированного изображения, вводимых из блока 23 суммирования, и выводит данные декодированного изображения, отфильтрованные, таким образом, в запоминающее устройство 25 кадра.
В запоминающем устройстве 25 кадра используется носитель информации для сохранения декодированных данных изображения, подаваемых из блока 23 суммирования, и декодированных данных изображения после фильтрации, подаваемых из фильтра 24 устранения блоков.
Селектор 26 считывает из запоминающего устройства 25 кадра, нефильтрованные декодированные данные изображения, предназначенные для использования для прогнозирования внутри кадра, и подает эти декодированные данные изображения, считываемые, таким образом, в блок 30 прогнозирования внутри кадра, как данные эталонного изображения. Кроме того, селектор 26 считывает из запоминающего устройства 25 кадра отфильтрованные декодированные данные изображения, предназначенные для использования для прогнозирования между кадрами, и подает декодированные данные изображения, считанные таким образом, в блок 40 оценки движения, как данные эталонного изображения.
Блок 30 прогнозирования внутри кадра выполняет процесс прогнозирования внутри кадра в каждом режиме прогнозирования внутри кадра, на основе данных изображения, которые должны быть кодированы, которые вводят из блока 13 обработки синтаксиса, и данные декодированного изображения, подаваемые через селектор 26. Например, в блоке 30 прогнозирования внутри кадра выполняют оценку результата прогнозирования для каждого режима прогнозирования внутри кадра, используя заданную функцию стоимости. Затем блок 30 прогнозирования внутри кадра выбирает режим прогнозирования внутри кадра, который приводит к наименьшему значению функции стоимости, то есть, режим прогнозирования внутри кадра, в результате которого получают наибольшую степень сжатия, как оптимальный режим прогнозирования внутри кадра. Кроме того, блок 30 прогнозирования внутри кадра выводит информацию о прогнозировании внутри кадра, такую как информация о режиме прогнозирования, обозначающая оптимальный режим прогнозирования внутри кадра, данные прогнозируемого изображения и значение функции стоимости в блок 50 выбора режима.
Блок 40 оценки движения выполняет процесс прогнозирования между кадрами (процесс прогнозирования между кадрами) на основе данных изображения, которые должны быть кодированы, то есть, подаваемых из блока 13 обработки синтаксиса, и данных декодированного изображения, подаваемых через селектор 26. Например, блок 40 оценки движения выполняет оценку результата прогнозирования каждого режима прогнозирования, используя заданную функцию стоимости. Затем блок 40 оценки движения выбирает режим прогнозирования, приводящий к наименьшему значению функции стоимости, то есть, режим прогнозирования, с помощью которого получают самую большую степень сжатия, как оптимальный режим прогнозирования. Блок 40 оценки движения генерирует данные прогнозируемого изображения в соответствии с оптимальным режимом прогнозирования. Блок 40 оценки движения выводит информацию о прогнозировании между кадрами, такую, как информация о режиме прогнозирования, обозначающую оптимальный режим прогнозирования внутри кадра, выбранный таким образом, данные прогнозируемого изображения и значение функции стоимости, в блок 50 выбора режима.
Блок 50 выбора режима сравнивает значение функции стоимости, относящейся к прогнозированию внутри кадра, выводимое из блока 30 прогнозирования внутри кадра, со значением функции стоимости, которое соотносится с вводом прогнозирования между кадрами из блока 40 оценки движения. Затем блок 50 выбора режима выбирает способ прогнозирования с меньшим значением функции стоимости между прогнозированием внутри кадра и прогнозированием между кадрами. В случае выбора прогнозирования внутри кадра, блок 50 выбора режима выводит информацию о прогнозировании внутри кадра в блок 17 кодирования без потерь, и также выводит данные прогнозируемого изображения в блок 14 вычитания и в блок 23 суммирования. Кроме того, в случае выбора прогнозирования между кадрами, блок 50 выбора режима выводит информацию о прогнозировании между кадрами, описанную выше, в блок 17 кодирования без потерь, и также выводит данные прогнозируемого изображения в блок 14 вычитания и в блок 23 суммирования.
1-2. Пример конфигурации блока обработки синтаксиса
На фиг.2 показана блок-схема, иллюстрирующая пример подробной конфигурации блока 13 обработки синтаксиса устройства 10 кодирования изображения, представленного на фиг.1. Как показано на фиг.2, блок 13 обработки синтаксиса включает в себя блок 110 установки, блок 120 генерирования параметра и блок 130 вставки.
(1) Блок установки
Блок 110 установки содержит различные установки, используемые для процесса кодирования, выполняемого устройством 10 кодирования изображения. Например, блок 110 установки содержит профиль для каждой последовательности в данных изображения, режима кодирования для каждого изображения, данные, относящиеся к структуре GOP, и т.п. Кроме того, в настоящем варианте осуществления блок 110 установки содержит установки, относящиеся к матрицам квантования, используемым блоком 16 квантования (и блоком 21 обратного квантование). Вопрос о том, какую матрицу квантования следует использовать в блоке 16 квантования, может быть заранее определен для каждого среза, обычно на основе анализа изображения без подключения к сети.
Например, в примерных вариантах применения, таких как цифровые видеокамеры, артефакты сжатия не существуют во входных изображениях, и, таким образом, может использоваться матрица квантования с уменьшенным шагом квантования, даже в высоком диапазоне. Матрица квантования изменяется в модулях изображения или в модулях кадра. В случае входных изображений с малой сложностью, с использованием плоской матрицы квантования с меньшим шагом квантования, обеспечивается возможность улучшения качества изображения, субъективно воспринимаемого пользователем. С другой стороны, в случае входных изображений с высокой сложностью, желательно использовать больший шаг квантования для сдерживания повышения скорости. В этом случае, использование плоской матрицы квантования представляет риск возникновения артефактов в сигнале низкого диапазона, распознаваемых как шум блоков. По этой причине предпочтительно уменьшить шум, используя матрицу квантования, в которой шаг квантования увеличивается, начиная с низкого диапазона, до высокого диапазона.
В примерных вариантах применения, таких как устройства записи, которые повторно сжимают содержание, переданное в режиме широковещательной передачи, кодированное в MPEG 2, артефакты сжатия MPEG 2, такие как москитные шумы, будут присутствовать в самих входных изображениях. Москитный шум представляет собой шум, формируемый в результате квантования сигнала в высоком диапазоне с большим шагом квантования, и частотные компоненты шумов сами по себе становятся очень высокочастотными. Когда выполняют повторное сжатие таких входных изображений, желательно использовать матрицу квантования, имеющую большой шаг квантования в высоком диапазоне. Кроме того, в сигналах с перемежением корреляция сигнала в горизонтальном направлении будет выше, чем корреляция сигнала в вертикальном направлении, по сравнению с прогрессивными сигналами, ввиду эффекта чересстрочной развертки. По этой причине также предпочтительно использовать разные матрицы квантования, в соответствии с тем, является ли сигнал изображения прогрессивным сигналом или сигналом с перемежением. В любом случае, оптимальная матрица квантования может изменяться в модулях изображения или в модулях кадров, в зависимости от содержания изображения.
(2) Блок генерирования параметра
Блок 120 генерирования параметра генерирует параметры, определяющие установки для процесса кодирования, которые поддерживает блок 110 установки, и выводит сгенерированные параметры в блок 130 вставки.
Например, в настоящем варианте осуществления, блок 120 генерирования параметра генерирует параметры матрицы квантования, определяющие матрицы квантования, предназначенные для использования блоком 16 квантования. Группа параметров матрицы квантования, сгенерированная блоком 120 генерирования параметра, включена в набор параметров матрицы квантования (QMPS). Каждому QMPS назначают QMPS ID, который представляет собой идентификатор для различения отдельных QMPS друг от друга. Как правило, множество классов матриц квантования определены в одном QMPS. Классы матриц квантования различают друг от друга по размеру матрицы, вместе с соответствующим способом прогнозирования, и компонентами сигнала. Например, максимум шесть классов матриц квантования (компоненты Y/Cb/Cr в режиме прогнозирования внутри кадра/между кадрами) может быть определено для каждого из размеров 4×4, 8×8, 16×16 и 32×32 в одном QMPS.
Более конкретно, блок 120 генерирования параметра может преобразовывать каждую матрицу квантования в линейный массив, используя зигзагообразную развертку, и может кодировать значение каждого элемента в линейном массиве, в формате дифференциальной импульсно-кодовой модуляции (DPCM), аналогично процессу кодирования матрицы квантования в H.264/AVC. В таком случае, линейные массивы дифференциальных данных DPCM становятся параметрами матрицы квантования. В данном описании такой режим для генерирования параметров матрицы квантования обозначен режимом полной развертки.
Кроме того, блок 120 генерирования параметра также может генерировать параметры матрицы квантования в режиме, который отличается от режима полной развертки, для уменьшения количества кодов параметров матрицы квантования. Например, вместо режима полной развертки, блок 120 генерирования параметра также может генерировать параметры матрицы квантования в режиме копирования или в режиме обозначения оси, которые описаны ниже.
Режим копирования представляет собой режим, который может быть выбран в случае, когда матрица квантования, используемая для данного среза, напоминает или эквивалентна уже определенной матрице квантования. В случае режима копирования, блок 120 генерирования параметра включает в себя QMPS ID для QMPS, в котором определена матрица квантования источника копии, а также размер и тип матрицы квантования источника копии в QMPS, в качестве параметров матрицы квантования. Следует отметить, что в данном описании, комбинация способа прогнозирования и компонентов сигнала, соответствующих заданной матрице квантования, обозначена типом этой матрицы квантования. В случае, когда существует разность между матрицей квантования, которая должна быть определена, и матрицей квантования источника копии, блок 120 генерирования параметра может дополнительно включить остаточные данные для генерирования остаточной матрицы, выражающей остаточную ошибку каждого компонента в QMPS.
Обработка для режима обозначения оси далее разделяется в соответствии с двумя способами установления: дифференциальным способом и способом интерполяции. В дифференциальном способе блок 120 генерирования параметра устанавливает только значения элементов матрицы квантования, соответствующих вертикальной оси, которая представляет собой самый левый столбец, горизонтальной оси, которая представляет собой верхний ряд, и диагональной оси вдоль диагонали модуля преобразования. В способе интерполяции блок 120 генерирования параметра устанавливает только значения элементов в матрице квантования, соответствующих четырем углам в верхнем левом (компонент DC), верхнем правом, нижнем левом и нижнем правом модулях преобразования. Значения остальных элементов могут быть интерполированы, используя произвольную технологию, такую как линейная интерполяция, кубическая интерполяция или интерполяция Лагранжа. Аналогично, в режиме обозначения оси, в случае, когда существует разность между матрицей квантования, которая должна быть определена, и интерполированной матрицей квантования, блок 120 генерирования параметра может дополнительно включать в себя остаточные данные для генерирования остаточной матрицы, выражающие остаточную ошибку каждого компонента в QMPS.
(3) Блок вставки
Блок 130 вставки вставляет информацию заголовка, такую как SPS, PPS, QMPS и заголовки среза, которые, соответственно, включают в себя группы параметров, генерируемые блоком 120 генерирования параметра, в поток данных изображения, подаваемый из буфера 12 изменения порядка. Как описано выше, QMPS представляет собой модуль, не являющийся VCL NAL, который отличается от SPS и PPS. QMPS включает в себя параметры матрицы квантования, генерируемые блоком 120 генерирования параметра. Блок 130 вставки затем выводит поток данных изображения со вставленной информацией заголовка в блок 14 вычитания, блок 30 прогнозирования внутри кадра и блок 40 оценки движения.
1-3. Пример структуры параметра
(1) Набор параметров матрицы квантования
На фиг.3 показана пояснительная схема, иллюстрирующая примеры параметров, включенных в каждый QMPS, в настоящем варианте осуществления. Как показано на фиг.3, каждый QMPS включает в себя "QMPS ID", "флаг присутствия режима генерирования", "режим генерирования" и разные параметры матрицы квантования для каждого режима.
"QMPS ID" представляет собой идентификатор для различения отдельных QMPS друг от друга. QMPS ID может представлять собой целое число в диапазоне от 0 до 31, и т.п. Спецификация неиспользуемого QMPS ID означает, что должен быть определен новый QMPS. Повторная спецификация QMPS ID, уже используемого в последовательности, означает, что уже определенный QMPS должен быть обновлен.
"Флаг присутствия режима генерирования" представляет собой флаг, обозначающий, присутствует или нет флаг, обозначающий является ли "режим генерирования", который представляет собой классификацию, представляющую режим процесса генерирования матрицы квантования, внутри этого QMPS. В случае, когда флаг присутствия режима генерирования обозначает "0: не присутствует", матрицы квантования определены в режиме полной развертки внутри этого QMPS. В то же время, в случае, когда флаг присутствия режима генерирования обозначает "1: присутствует", "режим генерирования" присутствует внутри этого QMPS.
"Режим генерирования" представляет собой классификацию, которая может принимать любое из значений, например, "0: копия", "1: обозначение оси", или "2: полная развертка". В псевдокоде синтаксиса, описанном ниже, режим генерирования представлен переменной, называемой "pred_mode".
В случае режима копии (то есть pred_mode=0) QMPS может включать в себя "ID источника", "размер источника копии", "тип источника копии", "остаточный флаг" и "остаточные данные", как параметры матрицы квантования. "ID источника" представляет собой ID QMPS, устанавливающий QMPS, в котором определена матрица квантования источника копии. "Размер источника копии" представляет собой размер матрицы квантования источника копии. "Тип источника копии" представляет собой тип матрицы квантования источника копии (внутренний-Y, внутренний-Cb, …, внутренний-Cr). "Остаточный флаг" представляет собой флаг, обозначающий, присутствует или нет остаточная ошибка. "Остаточные данные" представляют собой данные для генерирования остаточной матрицы, выражающей остаточную ошибку, в случае, когда присутствует остаточная ошибка. Остаточные данные могут быть исключены в случае, когда остаточный флаг обозначает "0: не присутствует".
Следует отметить, что случай, когда ID источника данного QMPS равен QMPS ID самого этого QMPS, можно интерпретировать, как устанавливающий принятую по умолчанию матрицу квантования, аналогично тому, что представлено на примере на фиг.38. Таким образом, можно уменьшить количество кодов QMPS, поскольку независимый флаг для установления принятой по умолчанию матрицы квантования больше не требуется включать в QMPS.
В случае режима обозначения оси (то есть pred_mode=1), QMPS может включать в себя "флаг способа обозначения", либо в дополнение к "данным опорной оси", или в дополнение к "угловым данным", "остаточному флагу" и "остаточным данным" в качестве параметров матрицы квантования. Флаг способа обозначения представляет собой флаг, который представляет, как обозначать значения элементов вдоль опорных осей, которые используются, как опорные оси, для генерирования матрицы квантования, и может принимать значение, например, либо "0: дифференциальный" или "1: интерполяция". В случае, когда способ обозначения представляет собой "0: дифференциальный", значения элементов, соответствующие опорным осям матрицы квантования, которые представляют собой вертикальную ось, горизонтальную ось и диагональную ось, обозначены данными опорной оси. В случае, когда способ обозначения представляет собой " 1: интерполяция", значения элементов, соответствующих четырем углам в верхнем левом, верхнем правом, нижнем левом и нижнем правом углах матрицы квантования, обозначены данными углов. Значения элементов на трех опорных осях могут быть сгенерированы путем интерполяции значений этих четырех углов. Остаточный флаг и остаточные данные аналогичны случаю режима копирования.
В случае режима полной развертки (то есть pred_mode=2), QMPS может включать в себя линейные массивы дифференциальных данных DPCM в качестве параметров матрицы квантования.
Следует отметить, что каждый QMPS может включать в себя режимы генерирования, которые отличаются для каждого класса матрицы квантования, и параметры матрицы квантования, соответствующие каждому режиму. Другими словами, в качестве примера, заданный класс матрицы квантования может быть определен в режиме полной развертки, другой класс матрицы квантования может быть определен в режиме обозначения оси, и остальные матрицы квантования могут быть определены в режиме копии, внутри одного QMPS.
(2) Заголовок среза
На фиг.4 показана пояснительная схема, частично иллюстрирующая примерные параметры, включенные в каждый заголовок среза, в настоящем варианте осуществления. Как показано на фиг.4, каждый заголовок среза может включать в себя "тип среза", " PPS ID", "флаг QMPS ID присутствует" и "QMPS ID". "Тип среза" представляет собой классификацию, обозначающую тип кодирования для этого среза, и принимает значение, соответствующее срезу Р, срезу В или срезу А и т.п. "PPS ID" представляет собой ID для набора параметров изображения (PPS), на который ссылаются для этого среза. "Флаг QMPS ID присутствует" представляет собой флаг, обозначающий, присутствует или QMPS ID в этом заголовке среза. "QMPS ID" представляет собой QMPS ID для набора параметров матрицы квантования (QMPS), на который ссылаются для этого среза.
2. Поток обработки при кодировании в соответствии с вариантом осуществления
(1) Процесс вставки набора параметров
На фиг.5 показана блок-схема последовательности операций, иллюстрирующая примерный поток процесса вставки набора параметров, выполняемого блоком 130 вставки блока 13 обработки синтаксиса, в соответствии с настоящим вариантом осуществления.
На фиг.5 блок 130 вставки вначале последовательно получает модули NAL внутри потока данных изображения, подаваемых из буфера 12 изменения порядка, и распознает одиночное изображение (этап S100). Затем блок 130 вставки определяет, является или нет распознанное изображение ведущим изображением последовательности (этап S102). В этот момент блок 130 вставляет SPS в поток, в случае, когда распознанное изображение представляет собой ведущее изображение последовательности (этап S104). Затем блок 130 вставки дополнительно определяет, происходит или нет изменение PPS для распознанного изображения (этап S106). В этот момент блок 130 вставки вставляет PPS в поток, в случае, когда происходит изменение в PPS, или в случае, когда распознанное изображение представляет собой ведущее изображение последовательности (этап S108). Затем блок 130 вставки дополнительно определяет, происходит или нет изменение в QMPS (этап S110). В этот момент блок 130 вставки вставляет QMPS в поток, в случае, когда происходит изменение в QMPS, или в случае, когда распознанное изображение представляет собой ведущее изображение последовательности (этап S112). После этого, блок 130 вставки заканчивает обработку в случае детектирования конца потока. С другой стороны, блок 130 вставки повторяет описанную выше обработку для следующего изображения в случае, когда поток не закончился (этап S114).
Следует отметить, что, хотя в блок-схеме последовательности операций иллюстрируется только вставка SPS, PPS и QMPS, для простоты, блок 130 вставки также может вставлять в поток другую информацию заголовка, такую как вспомогательная информация улучшения (SEI) и заголовки среза.
(2) Описание структуры потока
На фиг.6 показана пояснительная схема для пояснения различий в структуре потока между технологией в соответствии с настоящим вариантом осуществления и существующей технологией.
С левой стороны на фиг.6 иллюстрируется поток ST1, как пример, сгенерированный в соответствии с существующей технологией. Поскольку начало потока ST1 представляет собой начало последовательности, первый SPS (1) и первый PPS (1) вставляют в начале потока ST1. Одна или больше матриц квантования могут быть определены в SPS (1) и в PPS (1). Далее, предположим, что становится необходимым обновить матрицы квантования после нескольких последовательных заголовков среза и данных среза. Таким образом, второй PPS (2) вставляют в поток ST1. PPS (2) также включает в себя другие параметры, кроме параметров матрицы квантования. Затем предположим, что становится необходимым обновить PPS после нескольких последовательных заголовков среза и данных среза. Таким образом, третий PPS (3) вставляют в поток ST1. PPS (3) также включает в себя параметры матрицы квантования. Процесс квантования (и процесс обратного квантование) для последовательных срезов выполняют, используя матрицы квантования, определенные в PPS, установленных PPS ID в заголовке среза.
С правой стороны на фиг.6 иллюстрируется поток ST2, как пример, сгенерированный в соответствии с описанной выше технологией, в соответствии с настоящим вариантом осуществления. Поскольку начало потока ST2 представляет собой начало последовательности, первый SPS (1), первый PPS (1) и первый QMPS (1), вставляют в начале потока ST1. В потоке ST2 одна или больше матриц квантования могут быть определены в QMPS (1). Сумма длин PPS (1) и QMPS (1) в потоке ST2 приблизительно равна длине PPS (1) в потоке ST1. Далее, если становится необходимым обновить матрицы квантования, после нескольких последовательных заголовков среза и данных среза, вставляют второй QMPS (2) в поток ST2. Поскольку QMPS (2) не содержит параметры, кроме параметров матрицы квантования, длина QMPS (2) короче, чем длина PPS (2) в потоке ST2. Далее, если становится необходимым обновить PPS после нескольких последовательных заголовков среза и данных среза, вставляют второй PPS (2) в поток ST2. Поскольку PPS (2) в потоке ST2 не содержит параметры матрицы квантования, длина PPS (2) в потоке ST2 будет, короче, чем длина PPS (3) в потоке ST1. Процесс квантования (и процесс обратного квантования) для последующих срезов выполняют, используя матрицы квантования, определенные в QMPS, установленном по QMPS ID в заголовке среза.
Сравнение потоков ST1 и ST2 на фиг.6 раскрывает то, что количество кодов всего потока может быть уменьшено при использовании технологии, описанной в настоящем варианте осуществления. В частности, уменьшение количества кодов при использовании описанной выше технологии становится еще более эффективным, в случае матриц квантования с большими размерами, или в случае, когда большое количество матриц квантования определено для каждого изображения.
3. Примерная конфигурация устройства декодирования изображения в соответствии с вариантом осуществления
3-1. Пример общей конфигурации
В данном разделе описывается примерная конфигурация устройства декодирования изображения в соответствии с вариантом осуществления.
3-1. Пример общей конфигурации
На фиг.7 показана блок-схема, иллюстрирующая пример конфигурации устройства 60 декодирования изображения в соответствии с вариантом осуществления. Как показано на фиг.7, устройство 60 декодирования изображения оборудовано блоком 61 обработки синтаксиса, блоком 62 декодирования без потерь, блоком 63 обратного квантования, блоком 64 обратного ортогонального преобразования, блоком 65 суммирования, фильтром 66 устранения блоков, буфером 67 изменения порядка, блоком 68 цифроаналогового (D/A) преобразования, запоминающим устройством 69 кадра, селекторами 70 и 71, блоком 80 прогнозирования внутри кадра и блоком 90 компенсации движения.
Блок 61 обработки синтаксиса получает информацию заголовка, такую как SPS, PPS, QMPS и заголовки среза, из кодируемого потока, вводимого через канал передачи, и распознает различные установки для процесса декодирования с помощью устройства 60 декодирования изображения, на основе полученной информации заголовка. Например, в настоящем варианте осуществления, блок 61 обработки синтаксиса устанавливает матрицу квантования, предназначенную для использования во время процесса обратного квантования, с помощью блока 63 обратного квантования, на основе параметров матрицы квантования, включенных в QMPS. Подробная конфигурация блока 61 обработки синтаксиса будет дополнительно описана ниже.
Блок 62 декодирования без потерь декодирует кодированный поток, выводимый из блока 61 обработки синтаксиса, в соответствии со способом кодирования, используемым во время кодирования. Блок 62 декодирования без потерь затем выводит декодированные данные квантования в блок 62 обратного квантования. Кроме того, блок 62 декодирования без потерь выводит информацию о прогнозировании внутри кадра, включенную в информацию заголовка, в блок 80 прогнозирования внутри кадра, и выводит информацию о прогнозировании между кадрами в блок 90 компенсации движения.
Блок 63 обратного квантование использует матрицу квантования, установленную блоком 61 обработки синтаксиса, для обратного квантования данных квантования, декодированных блоком 62 декодирования без потерь (то есть квантованные данные коэффициента преобразования). Вопрос, в соответствии с чем следует использовать матрицу квантования для каждого блока в заданном срезе, может быть определен в соответствии с QMPS ID, установленным в заголовке среза, размером каждого блока (модуля преобразования), способом прогнозирования для каждого блока и компонентами сигнала.
Блок 64 обратного ортогонального преобразования генерирует данные ошибки прогнозирования путем выполнения обратного ортогонального преобразования для данных коэффициента преобразования, вводимых из блока 63 устранения квантования, в соответствии со способом ортогонального преобразования, используемым во время кодирования. Затем блок 64 обратного ортогонального преобразования выводит сгенерированные данные ошибки прогнозирования в блок 65 суммирования.
Блок 65 суммирования добавляет данные ошибки прогнозирования, выводимые из блока 64 обратного ортогонального преобразования, в ввод данных прогнозируемого изображения из селектора 71, с тем, чтобы, таким образом, генерировать декодированные данные изображения. Затем блок 65 суммирования выводит декодированные данные изображения, сгенерированные таким образом, в фильтр 66 устранения блоков и в запоминающее устройство 69 кадра.
Фильтр 66 устранения блоков устраняет артефакты блоков, путем фильтрации декодированных данных изображения, подаваемых из блока 65 суммирования, и выводит декодированные данные изображения, отфильтрованные таким образом, в буфер 67 изменения порядка и в запоминающее устройство 69 кадра.
Буфер 67 изменения порядка генерирует хронологическую последовательность данных изображения путем изменения порядка изображений, подаваемых из фильтра 66 устранения блоков. Затем буфер 67 изменения порядка выводит сгенерированные данные изображения в блок 68 D/A преобразования.
Блок 68 D/A преобразования преобразует данные изображения в цифровом формате, подаваемые из буфера 67 изменения порядка, в сигнал изображения в аналоговом формате. Затем блок 68 D/A преобразования обеспечивает отображение изображения путем вывода аналогового сигнала изображения на дисплей (не показан), соединенный, например, с устройством 60 декодирования изображения.
В запоминающем устройстве 69 кадра используют носитель информации для сохранения нефильтрованных декодированных данных изображения, подаваемых из блока 65 суммирования, и фильтрованных декодированных данных изображения, подаваемых из фильтра 66 устранения блоков.
Селектор 70 переключает назначение выхода данных изображения из запоминающего устройства 69 кадра между блоком 80 прогнозирования внутри кадра и блоком 90 компенсации движения для каждого блока в изображении, в соответствии с информацией о режиме, получаемой блоком 62 декодирования без потерь. Например, в случае, когда установлен режим прогнозирования внутри кадра, селектор 70 выводит нефильтрованные данные декодированного изображения, которые подают из запоминающего устройства 69 кадра, в блок 80 прогнозирования внутри кадра, как данные опорного изображения. Кроме того, в случае, когда установлен режим прогнозирования между кадрами, селектор 70 выводит фильтрованные данные декодированного изображения, которые подают из запоминающего устройства 69 кадра в блок 90 компенсации движения, как данные опорного изображения.
Селектор 71 переключает источник вывода прогнозируемых данных изображения, подаваемых в блок 65 суммирования между блоком 80 прогнозирования внутри кадра и блоком 90 компенсации движения для каждого блока в изображении, в соответствии с информацией режима, полученной блоком 62 декодирования без потерь. Например, в случае, когда установлен режим прогнозирования внутри кадра, селектор 71 подает в блок 65 суммирования данные прогнозируемого изображения, выводимые из блока 80 прогнозирования внутри кадра. В случае, когда установлен режим прогнозирования между кадрами, селектор 71 подает в блок 65 суммирования данные прогнозируемого изображения, выводимые из блока 90 компенсации движения.
Блок 80 прогнозирования внутри кадра выполняет прогнозирование в изображении для значений пикселя на основе информации о вводе прогнозирования внутри кадра из блока 62 декодирования без потерь, и данные эталонного изображения из запоминающего устройства 69 кадра, и генерирует данные прогнозируемого изображения. Затем блок 80 прогнозирования внутри кадра выводит данные прогнозируемого изображения, сгенерированные таким образом, в селектор 71.
Блок 90 компенсации движения выполняет процесс компенсации движения на основе информации прогнозирования между кадрами, подаваемой из блока 62 декодирования без потерь, и данные эталонного изображения из запоминающего устройства 69 кадра, и генерирует данные прогнозируемого изображения. Затем блок 90 компенсации движения выводит данные прогнозируемого изображения, сгенерированные таким образом, в селектор 71.
3-2. Пример конфигурации блока обработки синтаксиса
На фиг.8 показана блок-схема, иллюстрирующей пример подробной конфигурации блока 61 обработки синтаксиса устройства 60 декодирования изображения, представленного на фиг.7. Как показано на фиг.8, блок 61 обработки синтаксиса включает в себя блок 160 получения параметра и блок 170 установки.
(1) Блок получения параметра
Блок 160 получения параметра распознает информацию заголовка, такую как SPS, PPS, QMPS и заголовки среза из потока данных изображения и получает параметры, включенные в информацию заголовка. Например, в настоящем варианте осуществления, блок 160 получения параметра получает параметры матрицы квантования, определяющие матрицу квантования из QMPS. Как описано выше, QMPS представляет собой модуль, не являющийся VCL NAL, который отличается от SPS и PPS. Блок 160 получения параметра затем выводит полученные параметры в блок 170 установки. Блок 160 получения параметров также выводит поток данных изображения в блок 62 декодирования без потерь.
(2) Блок установки
Блок 170 установки применяет установки для обработки в каждом блоке, представленном на фиг.7, на основе параметров, полученных блоком 160 получения параметров. Например, блок 170 установки распознает диапазон размеров модуля кодирования из пары значений LCU и SCU, устанавливая также размер модуля кодирования, в соответствии со значением split_flag. Декодирование данных изображения выполняют путем отбора модулей кодирования, установленных в этот момент, как модули обработки. Кроме того, блок 170 установки дополнительно устанавливает размер модуля преобразования. Обратное квантование, выполняемое в блоке 63 обратного квантования, и обратное ортогональное преобразование, выполняемое в блоке 64 обратного ортогонального преобразование, описанные выше, выполняют путем отбора модулей преобразования, установленных в этой точке, как модули обработки.
Кроме того, в настоящем варианте осуществления, блок 170 установки устанавливает матрицы квантования на основе параметров матрицы квантования, полученных из QMPS блоком 160 получения параметра. Более конкретно, на основе параметров квантования, включенных в QMPS, блок 170 установки генерирует множество матриц квантования, которые отличаются друг от друга по размеру и типу, в режиме полной развертки, в режиме копирования и в режиме обозначения оси, соответственно. Генерирование матриц квантования может быть выполнено каждый раз, когда QMPS детектируют в потоке данных изображения.
Например, в режиме полной развертки, блок 170 установки декодирует линейный массив дифференциальных данных, включенных в параметры матрицы квантования, в формате DPCM. Блок 170 установки затем преобразует декодированный линейный массив в двумерную матрицу квантования, в соответствии со структурой развертки при зигзагообразной развертке.
Кроме того, в режиме копии блок 170 установки копирует (ранее сгенерированную) матрицу квантования, установленную по ID источника, размеру источника копии и типу источника копии, включенных в параметры матрицы квантования. В этот момент, в случае, когда размер новой матрицы квантования меньше, чем размер матрицы квантования источника копии, блок 170 установки генерирует новую матрицу квантования путем прореживания элементов в скопированной матрице квантования. Кроме того, в случае, когда размер новой матрицы квантования больше, чем размер матрицы квантования источника копии, блок 170 установки генерирует новую матрицу квантования путем интерполяции элементов в скопированной матрице квантования. Затем, в случае, когда присутствуют остаточные компоненты, блок 170 установки добавляет остаточные компоненты к новой матрице квантования.
Кроме того, в случае, когда ID источника, включенный в параметры матрицы квантования, внутри заданного QMPS, равен QMPS ID этого QMPS, блок 170 установки обрабатывает новую матрицу квантования, как принятую по умолчанию матрицу квантования.
Кроме того, в режиме обозначения оси блок 170 установки распознает флаг способа обозначения, включенный в параметры матрицы квантования. Затем, в случае дифференциального способа, блок 170 установки генерирует значения элементов матрицы квантования, которые соответствуют вертикальной оси, горизонтальной оси и диагональной оси, на основе данных опорной оси, включенных в параметры матрицы квантования, и генерирует значения оставшихся элементов с помощью интерполяции. Кроме того, в случае способа интерполяции, блок 170 установки генерирует значения элементов матрицы квантования, которые соответствуют четырем углам, на основе данных углов, включенных в параметры матрицы квантования, и после генерирования значений элементов вдоль опорной оси путем интерполяции, дополнительно генерирует значения оставшихся элементов путем интерполяции. Затем, в случае, когда присутствуют остаточные компоненты, блок 170 установки добавляет остаточные компоненты к новой матрице квантования.
После этого, когда QMPS ID установлен в заголовке среза, блок 170 установки устанавливает матрицу квантования, сгенерированную для QMPS, идентифицированного по установленному QMPS ID, как матрицу квантования, предназначенную для использования блоком 63 обратного квантования.
4. Поток обработки во время декодирования в соответствии с вариантом осуществления
4-1. Генерирование матриц квантования
(1) Процесс генерирования матрицы квантования
На фиг.9 показана блок-схема последовательности операций, иллюстрирующая примерный поток процесса генерирования матрицы квантования блоком 61 обработки синтаксиса, в соответствии с настоящим вариантом осуществления. Процесс генерирования матрицы квантования по фиг.9 представляет собой процесс, который может быть выполнен каждый раз, когда QMPS детектируют в потоке данных изображения.
Как показано на фиг.9, блок 160 получения параметра вначале получает QMPS ID из QMPS (этап S200). Если QMPS ID, полученный в этот момент, представляет собой неиспользуемый ID в потоке, блок 170 установки генерирует новую матрицу квантования, которая должна быть ассоциирована с этим QMPS ID, в соответствии с описанным ниже процессом. С другой стороны, если QMPS ID представляет собой ID, который уже используется, блок 170 установки обновляет матрицу квантования, сохраненную в ассоциации этим QMPS ID, в матрице, генерируемой в соответствии с процессом, описанным ниже. Затем блок 160 получения параметра получает флаг присутствия режима генерирования из QMPS (этап S202).
Последующая обработка с этапа S206 по этап S240 повторяется для каждого класса матрицы квантования (этап S204). Следует отметить, что класс матрицы квантования соответствует комбинации размера и типа (то есть способу прогнозирования и компонентам сигнала) матрицы квантования.
На этапе S206, блок 170 установки определяет, в соответствии с флагом присутствия режима генерирования, присутствует ли (классификация) режим генерирования в QMPS (этап S206). В случае, когда режим генерирования не присутствует в этот момент, блок 170 установки генерирует матрицу квантования способом полной развертки, аналогично процессу декодирования матрицы квантования в H.264/AVC (этап S208). С другой стороны, в случае, когда режим генерирования присутствует, блок 160 получения параметра получает режим генерирования из QMPS (этап S210). Блок 170 установки затем выполняет разную обработку, в зависимости от режима генерирования (этапы S212, S214).
Например, в случае, когда обозначен режим копирования, блок 170 установки выполняет обработку в режиме копирования, который иллюстрируется примером на фиг.10 (этап S220). Кроме того, в случае, когда обозначен режим обозначения оси, блок 170 установки выполняет обработку в режиме обозначения оси, представленном, как пример, на фиг.11 (этап S240). Кроме того, в случае, когда обозначен полный режим развертки, блок 170 установки генерирует матрицу квантования, используя способ полной развертки, аналогично процессу декодирования матрицы квантования, в H.264/AVC (этап S208).
После этого, когда генерируют матрицу квантования для всех классов матриц квантования, процесс генерирования матрицы квантования, показанный на фиг.9, заканчивается.
(2) Обработка в режиме копирования
На фиг.10 показана блок-схема последовательности операций, иллюстрирующая пример потока подробной обработки в режиме копирования на этапе S220 по фиг.9.
Как показано на фиг.10, вначале блок 160 получения параметра получает ID источника из QMPS (этап S221). Затем блок 170 установки определяет, равны или нет QMPS ID, полученный на этапе S200 на фиг.9 (QMPS ID текущего QMPS) и ID источника, (этап S222). В этот момент в случае, когда QMPS ID текущего QMPS и ID источника равны, блок 170 установки генерирует новую матрицу квантования, как принятую по умолчанию матрицу квантования (этап S223). С другой стороны, в случае, когда QMPS ID текущего QMPS и ID источника не равны, обработка переходит на этап S224.
На этапе S224, блок 160 получения параметра получает размер источника копии и тип источника копии из QMPS (этап S224). Затем блок 170 установки копирует матрицу квантования, установленную по ID источника, размеру источника копии и типу источника копии (этап S225). Затем блок 170 установки сравнивает размер источника копии с размером матрицы квантования, которая должна быть сгенерирована (этап S226). В это время в случае, когда размер источника копии и размер матрицы квантования, которая должна быть сгенерирована, не равны, блок 170 установки генерирует новую матрицу квантования путем интерполяции или путем прореживания элементов в скопированной матрице квантования, в зависимости от разницы размеров (этап S227).
Кроме того, блок 160 получения параметра получает остаточный флаг из QMPS (этап S228). Затем блок 170 установки определяет, присутствуют или нет остаточные данные, в соответствии со значением остаточного флага (этап S229). В этот момент в случае, когда остаточные данные присутствуют, блок 170 установки добавляет остаточную ошибку к новой матрице квантования, сгенерированной на этапе S223 или этапах S225-S227 (этап S230).
(3) Обработка в режиме обозначения оси
На фиг.11 показана блок-схема последовательности операций, иллюстрирующая пример подробного потока обработки в режиме обозначения оси на этапе S240 по фиг.9.
Как показано на фиг.11, вначале блок 160 получения параметра получает флаг способа обозначения из QMPS (этап S241). Затем блок 170 установки определяет способ обозначения, в соответствии со значением флага способа обозначения (этап S242). В этот момент обработка переходит на этап S243, в случае, когда обозначен дифференциальный способ. С другой стороны, обработка переходит на этап S246, в случае, когда обозначен способ интерполяции.
В случае дифференциального способа блок 170 установки генерирует значения элементов матрицы квантования, которые соответствуют вертикальной оси, горизонтальной оси и диагональной оси, на основе данных опорной оси, включенных в параметры матрицы квантования (этапы S243, S244 и S245). В то же время в случае способа интерполяции, блок 170 установки генерирует значения элементов матрицы квантования, которые соответствуют четырем углам, на основе данных угла, включенных в параметры матрицы квантования (этап S246). Затем блок 170 установки генерирует путем интерполяции значения элементов вдоль опорной оси (вертикальной оси, горизонтальной оси и диагональной оси), которые соединяют четыре угла (этап S247). После этого блок 170 установки интерполирует значения оставшихся элементов на основе значений элементов вдоль опорной оси (этап S248).
Кроме того, блок 160 получения параметра получает остаточный флаг из QMPS (этап S249). Затем блок 170 установки определяет, присутствуют или нет остаточные данные, в соответствии со значением остаточного флага (этап S250). В этот момент в случае, когда остаточные данные присутствуют, блок 170 установки добавляет остаточную ошибку к новой матрице квантования, сгенерированной на этапе S248 (этап S251).
4-2. Установка матрицы квантования для среза
На фиг.12 показана блок-схема последовательности операций, иллюстрирующая примерный поток обработки для установки матрицы квантования для среза с помощью блока 61 обработки синтаксиса в соответствии с настоящим вариантом осуществления. Процесс на фиг.12 может быть выполнен каждый раз, когда заголовок среза детектируют в потоке данных изображения.
Вначале блок 160 получения параметра получает флаг присутствия QMPS ID из заголовка среза (этап S261). Затем блок 160 получения параметра определяет, присутствует или нет QMPS ID в заголовке среза, в соответствии со значением флага присутствия QMPS ID (этап S262). В этот момент блок 160 получения параметра дополнительно получает QMPS ID из QMPS, в случае, когда QMPS ID присутствует (этап S263). Блок 170 установки затем устанавливает матрицу квантования, сгенерированную для QMPS, идентифицированную с помощью полученного QMPS ID для срезов, следующих после того заголовка среза (этап S264). С другой стороны, в случае, когда QMPS ID не присутствует внутри заголовка среза, блок 170 установки устанавливает плоскую матрицу квантования для срезов, следующих после этого заголовка среза (этап S265).
5. Примеры синтаксиса
5-1. Первый пример
На фиг.13-15 иллюстрируется первый пример иллюстративного псевдокода, выражающего синтаксис QMPS, в соответствии с настоящим вариантом осуществления. Номера строк представлены на левой кромке псевдокода. Кроме того, подчеркнутая переменная в псевдокоде означает, что параметр, соответствующий этой переменной, установлен внутри QMPS.
Функция QuantizaionMatrixParameterSet() в строке 1 на фиг.13 представляет собой функцию, которая выражает синтаксис одиночного QMPS. В строке 2 и в строке 3 установлены QMPS ID (quantization_matrix_paramter_id) и флаг присутствия режима генерирования (pred_present_flag). Следующий синтаксис от строки 6 по строку 56 представляет циклы для каждого размера и типа матриц квантования. Синтаксис от строки 7 по строку 53 в цикле вставляют в QMPS, в случае, когда режим генерирования присутствует (pred_present_flag=1).
Синтаксис от строки 9 по строку 16, в случае, когда режим генерирования присутствует, представляет собой синтаксис для режима копии. От строки 9 по строку 11 установлены идентификатор источника, размер источника копии и тип источника копии. Функция pred_matrix () в строке 12 означает, что матрица квантования, установленная для ID источника, размер источника копии, и тип источника копии, следует скопировать. В строке 13 установлен остаточный флаг. Функция residual_matrix () в строке 15 означает, что остаточные данные установлены в QMPS, в случае, когда присутствуют остаточные компоненты.
Синтаксис от строки 18 по строку 50 представляет собой синтаксис для режима обозначения оси, и описан на фиг.14. В строке 18 установлен флаг способа обозначения. В случае, когда способ обозначения представляет собой дифференциальный (DPCM) способ, значения элементов вдоль вертикальной оси установлены от строки 21 по строку 25, в то время как значения элементов вдоль горизонтальной оси установлены от строки 26 по строку 34, и значения элементов вдоль диагональной оси установлены от строки 35 по строку 40. Данные опорной оси в этом случае представляют собой линейные массивы дифференциальных данных DPCM. Следует отметить, что синтаксис для элементов вдоль горизонтальной оси может быть исключен в случае, когда значения элементов вдоль горизонтальной оси могут быть скопированы (строка 27, строка 28). В случае, когда способ обозначения представляет собой способ интерполяции, значения верхнего левого (компонент DC), верхнего правого, нижнего левого и нижнего правого элементов, соответственно, установлены, как угловые данные от строки 42 до строки 45.
Обработка в строке 52 представляет собой синтаксис для режима полной развертки. Обработка на строке 55 представляет собой синтаксис для случая, когда режим генерирования не присутствует. В любом случае, матрица квантования установлена, используя способ полной развертки с помощью функции qmatrix (), которая представляет синтаксис матрицы квантования в H.264/AVC.
Функция residual_matrix () в строке 1 на фиг.15 представляет собой функцию для установления остаточных данных, используемых в строке 15 на фиг.13 и в строке 49 на фиг.14. В примере на фиг.15, остаточные данные установлены с помощью способа DPCM или способа с длиной последовательности. В случае способа DPCM значение разности от последнего элемента (delta_coef) установлено от строки 4 по строку 8 для каждого элемента в линейном массиве. В случае способа последовательного кодирования длину групп элементов на участках, на которых значение представляет собой последовательные нули, и значения ненулевых элементов (данные) неоднократно устанавливают от строки 11 по строку 18.
5-2. Второй пример
На фиг.16-20 иллюстрируется второй пример иллюстративного псевдокода, выражающего синтаксис QMPS, в соответствии с настоящим вариантом осуществления.
Функция QuantizaionMatrixParameterSet () в строке 1 на фиг.16 представляет собой функцию, которая выражает синтаксис одного QMPS. В строке 2 установлен QMPS ID (quantization_matrix_paramter_id). Кроме того, флаг присутствия режима генерирования (pred_present_flag) установлен в строке 6, за исключением случая, когда обозначена только принятая по умолчанию матрица квантования.
Кроме того, во втором примере, четыре класса масштабов квантования (Qscale0 - Qscale3) устанавливают от строки 7 по строку 10 в функции QuantizaionMatrixParameterSet(). Такие масштабы квантования представляют собой параметры, которые могут быть приняты для квантования значения каждого элемента в матрице квантования и дополнительного уменьшения скорости. Более конкретно, например, четыре области А1-А4 установки масштаба квантования, такие, как показаны на фиг.21, определены в матрице квантования 8×8. Область А1 установки масштаба квантования представляет собой область для группы элементов, соответствующей сигналу с низким диапазоном, включающим в себя компонент DC. Области А2 и A3 установки масштаба квантования представляют собой области для групп элементов, которые соответствуют соответствующим сигналам в среднем диапазоне. Область А4 установки масштаба квантования представляет собой область для группы элементов, соответствующей сигналу с высоким диапазоном. Масштаб квантования для квантования значений элементов в матрице квантования может быть установлен для каждой из этих областей. Например, как показано на фиг.22, первый масштаб квантования (Qscale0) равен "1" для области А1 установки масштаба квантования. Это означает, что значения в матрице квантования не квантуют в группах элементов, соответствующих сигналу низкого диапазона. В то же время второй масштаб квантования (Qscale1) равен "2" для области А2 установки масштаба квантования. Третий масштаб квантования (Qscale2) равен "3" для области A3 установки масштаба квантования. Четвертый масштаб квантования (Qscale3) равен "4" для области А4 установки масштаба квантования. По мере того, как масштаб квантования становится большим, ошибка, полученная при квантовании, увеличивается. Как правило, однако, некоторая степень ошибок допустима для сигнала высокого диапазона. Следовательно, в случаях, когда желательно получить высокую эффективность кодирования, количество кодов, требуемых для определения матрицы квантования, может быть эффективно уменьшено путем установки таких масштабов квантования для квантования матрицы квантования, без существенного ухудшения качества изображения. В случаях, когда матрица квантования квантована, значение каждого элемента в остаточных данных или дифференциальных данных, представленных в примере на фиг.3, может быть в существенной степени квантовано или обратно квантовано, используя этапы квантования в областях установки масштаба квантования, которым принадлежит каждый элемент.
Следует отметить, что компоновка областей установки масштаба квантования, представленная на фиг.21, представляет собой только один пример. Например, разные количества областей установки масштаба квантования также могут быть определены для каждого размера матрицы квантования (например, большее количество областей установки масштаба квантования может быть определено для больших размеров). Кроме того, положения границ областей установки масштаба квантования не ограничены примером на фиг.21. Обычно, структура развертки при линеаризации матрицы квантования, представляет собой зигзагообразную развертку. По этой причине предпочтительно использовать границы диагональной области от верхней правой до нижней левой позиции, как показано на фиг.21. Однако границы области, следующие вдоль вертикального направления или горизонтального направления, также можно использовать, в зависимости от таких факторов, как корреляция между элементами в матрице квантования и используемая структура развертки. Кроме того, компоновка областей установки масштаба квантования (количество областей, положения границ и т.п.) также может быть адаптивно выбрана, учитывая перспективу эффективности кодирования. Например, меньшее количество областей установки масштаба квантования также может быть выбрано в случае, когда определена практически плоская матрица квантования.
На фиг.16 последовательный синтаксис со строки 13 по строку 76 представляет собой цикл для каждого размера и типа матрицы квантования. Синтаксис со строки 14 по строку 66 (см. фиг.18) в цикле вставляют в QMPS, в случае, когда режим генерирования присутствует (pred_present_flag=1).
Синтаксис со строки 16 по строку 22 в случае, когда режим генерирования присутствует, представляет собой синтаксис для режима копии. Со строки 16 по строку 18 ID источника установлены размер источника копии и тип источника копии. В строке 19 установлен остаточный флаг. Функция residual_matrix() в строке 21 означает, что остаточные данные установлены в QMPS, в случае, когда остаточные компоненты присутствуют. Остаточные данные в этот момент могут быть квантованы в соответствии со значениями четырех классов масштабов квантования (Qscale0 - Qscale3), описанных выше. Синтаксис со строки 23 по строку 56 представляет собой синтаксис для режима обозначения оси и описан со ссылкой на фиг.17. Остаточные данные в режиме обозначения оси аналогично могут быть квантованы, в соответствии со значениями четырех классов масштаба квантования (Qscale0 - Qscale3), описанных выше (строка 55).
Синтаксис со строки 57 по строку 66 на фиг.18 представляет собой синтаксис для режима полной развертки. Кроме того, синтаксис со строки 68 по строку 75 представляет собой синтаксис для случая, в котором режим генерирования не присутствует. В любом случае матрица квантования установлена, используя способ полной развертки по функции qmatrix(). Однако, во втором примере, таблицы VLC для энтропийного кодирования дифференциальных данных (delta_coef) в способе DPCM или значения длины последовательности (длина последовательности), и значения ненулевого элемента (данные) в способе последовательного кодирования адаптивно переключают для дополнительного подъема эффективности кодирования. Данные vlc_table_data в строке 61 и в строке 71 устанавливают номер таблицы для таблицы VLC, выбранный для дифференциальных данных (delta_coef) в способе DPCM, или значения (данные) ненулевого элемента в режиме последовательного кодирования. Значеня vlc_table_run в строке 63 и в строке 73 устанавливают номер таблицы для таблицы VLC, выбранной для значений длины последовательности (длина последовательности) в способе последовательного кодирования.
Функция qmatrix() в строке 1 на фиг.19 представляет собой синтаксис для установления матрицы квантования, используя способ полной развертки. 3-я строка - 8-я строка на фиг.19 обозначают синтаксис для способа DPCM, и дифференциальные данные (delta_coef) в строке 5 кодируют, используя таблицу VLC, установленную по vlc_table_data, описанным выше. Кроме того, строка 10 - строка 21 обозначают синтаксис для способа с последовательным кодированием, и значения длины последовательности (длина последовательности) в строке 12 кодируют, используя таблицу VLC, установленную по vlc_table_run, описанным выше. Значения (данные) ненулевого элемента в строке 13 кодируют, используя таблицу VLC, установленную по vlc_table_data, описанным выше.
На фиг.23 иллюстрируется список кодовых слов в 11 классах таблицы кодирования переменной длины (VLC), выбираемых для способа энтропийного кодирования с низкой сложностью (LCEC). Значение "х" в каждом кодовом слове на фиг.23 представляет собой заданный суффикс. Например, если значение "15" кодировано с использованием экспоненциального кодирования Голомба, получают 9-битное кодовое слово "000010000", но если это значение кодировано с использованием VLC4, получают 5-битное кодовое слово "11111". Таким образом, эффективность кодирования может быть повышена путем выбора таблицы VLC, имеющей суффиксы с большим количеством цифр в коротких кодовых словах, в случае кодирования множества крупных значений. Среди 11 классов таблиц VLC на фиг.23, VLC4, например, имеет 4-значные суффиксы в 5-битных кодовых словах. Кроме того, VLC9 имеет 4-битные суффиксы в 6-битных кодовых словах. Вследствие этого, такие таблицы VLC пригодны в случае кодирования большого количества крупных значений.
Возвращаясь к синтаксису матрицы квантования, поскольку дифференциальные данные линейного массива матрицы квантования имеют множество последовательных нулей, значения последовательности в способе последовательного кодирования формируют множество больших значений, вместо малых значений, таких как 0,1 или 2. С другой стороны, значения ненулевого элемента и значения дифференциальных данных в способе последовательного кодирования только нечасто формируют большие значения. Следовательно, путем переключения таблицы VLC для каждого способа обозначения дифференциальных данных (DPCM/длина последовательности) и класса значения (последовательность/ненулевой элемент в случае способа последовательного кодирования) и используя описанный выше синтаксис, количество кодов, требуемых для определения матрицы квантования, существенно уменьшается.
Функция residual_matrix() в строке 1 на фиг.20 также воплощает адаптивное переключение таблиц VLC. Другими словами, vlc_table_data в строке 7 устанавливает номер таблицы для таблицы VLC, выбранной для дифференциальных данных (delta_coef) в способе DPCM. Дифференциальные данные (delta_coef) в строке 10 кодируют, используя таблицу VLC, установленную в строке 7. vlc_table_data в строке 15 устанавливает номер таблицы для таблицы VLC, выбранной для значений (данных) ненулевого элемента в способе последовательного кодирования. vlc_table_run в строке 16 устанавливает номер таблицы для таблицы VLC, выбранной среди значений длины последовательности (последовательностей) в способе последовательного кодирования. Значения длины последовательности (последовательностей) в строке 19 кодируют, используя таблицу VLC, установленную по vlc_table_run, описанной выше. Значения (данные) ненулевого элемента в строке 20 кодируют, используя таблицу VLC, установленную по vlc_table_data, описанным выше.
В соответствии с различными свойствами такого синтаксиса QMPS, количество кодов, требуемых для определения матрицы квантования, эффективно уменьшается, и эффективность кодирования может быть улучшена. Однако синтаксис, описанный в этом разделе, представляет собой только один пример. Другими словами, часть синтаксиса, иллюстрируемая по примеру, представленному здесь, может быть уменьшена или исключена, последовательность параметров может быть изменена, или другие параметры могут быть добавлены к синтаксису. Кроме того, ряд особенностей синтаксиса, описанных в данном разделе, также могут быть воплощены при определении матрицы квантования в SPS или PPS, вместо QMPS. В таких случаях можно уменьшить количество кодов, требуемых для определения матрицы квантования в SPS или PPS.
6. Различные примерные конфигурации наборов параметров
Выше описано несколько конкретных примеров синтаксиса для набора параметров матрицы квантования (QMPS), в котором содержатся параметры матрицы квантования. QMPS, по существу, может представлять собой специализированный набор параметров, содержащий только параметры матрицы квантования, но также может представлять собой общей набор параметров, который также содержит другие параметры, относящиеся к другим инструментам кодирования, чем матрицы квантования. Например, "набор параметров адаптации (APS)" (JCTVC-F747r3, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Meeting: Torino, IT, 14-22 July, 2011) вводит новый набор параметров, называемый набором параметра адаптации (APS) и предлагает сохранять параметры, относящиеся к адаптивному фильтру цикла (ALF) и адаптивному смещению выборки (SAO) в APS. Путем дополнительного включения параметров матрицы квантования в такой APS, также становится возможным, по существу, сконфигурировать QMPS, описанный выше. Таким образом, в данном разделе, будет описано несколько технологий для конфигурирования QMPS, используя APS, предложенный в "Adaptation Parameter Set (APS)" (JCTVC-F747r3).
6-1. Первая технология
Первая технология представляет собой технологию, которая представляет в виде списка все целевые параметры внутри одного APS и обращается к каждому параметру, используя APS ID, идентификатор, который уникально идентифицирует этот APS. На фиг.24 иллюстрируется пример кодируемого потока, сконфигурированного в соответствии с этой первой технологией.
Как показано на фиг.24, SPS 801, PPS 802 и APS 803 вставлены в начало изображения Р0, установленного в начале последовательности. PPS 802 идентифицирован по PPS ID "Р0". APS 803 идентифицирован по APS ID "А0". APS 803 включает в себя параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры матрицы квантования (ниже обозначены параметрами, относящимися к QM). Заголовок 804 среза, прикрепленный к данным среза внутри изображения Р0, включает в себя опорный PPS ID "Р0", и это означает, что к параметрам, находящимся внутри PPS 802, обращаются для декодирования этих данных среза. Аналогично, заголовок 804 среза включает в себя опорный APS ID "А0", и это означает, что к параметрам, в находящимся внутри APS 803, обращаются для декодирования этих данных среза.
APS 805 вставляют в изображение Р1, следующее после изображения Р0. APS 805 идентифицирован по APS ID "A1". APS 805 включает в себя параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры, относящиеся к QM. Параметры, относящиеся к ALF, и параметры, относящиеся к SAO, включенные в APS 805, были обновлены из APS 803, но параметры, относящиеся к QM, не были обновлены. Заголовок 806 среза, закрепленный на данных среза внутри изображения Р1, включает в себя ссылку APS "A1", и это означает, что к параметрам, находящимся внутри APS 805, обращаются для декодирования данных этого среза.
APS 807 вставлен в изображение Р2, следующее после изображения Р1. APS 807 идентифицируют по ID APS "A2". APS 807 включает в себя параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры, относящиеся к QM. Параметры, относящиеся к ALF, и параметры, относящиеся к QM, включенные в APS 807, были обновлены из APS 805, но параметры, относящиеся к SAO, не были обновлены. Заголовок 808 среза, закрепленный на данных среза внутри изображения Р2, включает в себя ссылку APS ID "A2", и это означает, что к параметрам внутри APS 807, обращаются для декодирования этих данных среза.
На фиг.25 иллюстрируется пример синтаксиса APS, определенный в соответствии с первой технологией. В строке 2 на фиг.25 установлен APS ID для уникальной идентификации этого APS. APS ID представляет собой идентификатор набора параметров, используемый вместо QMPS ID, описанного со ссылкой на фиг.3. Параметры, относящиеся к ALF, установлены в строке 13 - строке 17. Параметры, относящиеся к SAO, установлены в строке 18 - строке 23. Параметры, относящиеся к QM, установлены в строке 24 - строке 28. Флаг "aps_qmatrix_flag" в строке 24 представляет собой флаг присутствия матрицы квантования, обозначающий, установлены ли параметры, относящиеся к QM, внутри этого APS. "qmatrix_param()" в строке 27 представляет собой функцию, устанавливающую параметры матрицы квантования, как представлено на примере на фиг.13-20. В случае, когда флаг присутствия матрицы квантования в строке 24 обозначает, что параметры, относящиеся к QM, установлены внутри этого APS (aps_qmatrix_flag=1), функция qmatrix_param() может использоваться для установки параметров матрицы квантования внутри этого APS.
В случае воплощения первой технологии, блок 160 получения параметра, представленный на фиг.8, определяет, установлены ли параметры матрицы квантования внутри APS, путем ссылки на флаг присутствия матрицы квантования, включенный в этот APS. Блок 160 получения параметра затем получает параметры матрицы квантования из APS в случае, когда параметры матрицы квантования установлены внутри этого APS.
На фиг.26 показана пояснительная схема, иллюстрирующая пример синтаксиса заголовка среза, определенного в соответствии с первой технологией. В строке 5 на фиг.26 установлен ссылочный PPS ID для ссылки на параметры, включенные в PPS среди параметров, предназначенных для установки для данного среза. В строке 8 установлен ссылочный APS ID для ссылки на параметры, включенные в APS среди параметров, которые должны быть установлены для этого среза. Ссылка на APS ID представляет собой опорный параметр, используемый вместо (ссылки) QMPS ID, описанной со ссылкой фиг.4.
В соответствии с первой технологией, путем расширения APS, предложенного "Adaptation Parameter Set (APS)" (JCTVC-F747r3), становится возможным реализовать набор параметров матрицы квантования, описанной выше, с малыми затратами. Кроме того, становится возможным использовать флаг присутствия матрицы квантования для частичного обновления только параметров матрицы квантования среди параметров, относящихся к различным инструментам кодирования, потенциально включенным в APS, или, в качестве альтернативы, частично не обновлять только параметры матрицы квантования. Другими словами, поскольку возможно включить параметры матрицы квантования в APS, только, когда обновление матрицы квантования становится необходимым, параметры матрицы квантования могут быть эффективно переданы внутри APS.
6-2. Пример модификации первой технологии
Технология, в соответствии с примерной модификацией, описанной ниже, также может быть воплощена для дополнительного уменьшения количества кодов параметров матрицы квантования внутри APS.
На фиг.27 иллюстрируется пример синтаксиса APS, определенного в соответствии с примерной модификацией первой технологии. В синтаксисе, показанном на фиг.27, параметры, относящиеся к QM, установлены в строке 24 - строке 33. "aps_qmatrix_flag" в строке 24 представляет собой флаг присутствия матрицы квантования, обозначающий, установлены ли параметры, относящиеся к QM, внутри этого APS. Флаг "ref_aps_id_present_flag" в строке 25 представляет собой флаг присутствия ID прошлой ссылки, обозначающий, следует ли использовать ID прошлой ссылки в качестве параметра, относящегося к QM, в этом APS. В случае, когда флаг присутствия ID прошлой ссылки обозначает, что следует использовать ID ссылки (ref_aps_id_present_flag=1), ID прошлой ссылки "ref_aps_id" устанавливают в строке 27. ID прошлой ссылки представляет собой идентификатор для ссылки APS ID для APS, кодированных или декодированных перед текущим APS. В случае, когда используется ID прошлой ссылки, параметры матрицы квантования не устанавливают внутри опорного источника (последнего) APS. В этом случае, блок 170 установки, показанный на фиг.8, повторно использует матрицы квантования, установленные на основе параметров матрицы квантования в APS - цели ссылки, обозначенной ID прошлой ссылки, в качестве матриц квантования, соответствующих опорному источнику APS. Следует отметить, что ID прошлой ссылки, который ссылается на APS ID для опорного источника APS (то, что называется ссылкой на самого себя), может быть запрещен. Вместо этого, блок 170 установки может устанавливать матрицу квантования, принятую по умолчанию, в качестве матрицы квантования, соответствующей APS со ссылкой на самого себя. В случае, когда ID прошлой ссылки не используется (ref_aps_id_present_flag=0), функция "qmatrix_param ()" в строке 31 может использоваться для установки параметров матрицы квантования внутри этого APS.
Таким образом, путем использования ID прошлой ссылки для повторного использования кодированных или декодированных матриц квантования, многократная установка одних и тех же параметров матрицы квантования внутри APS исключается. Таким образом, количество кодов параметров матрицы квантования внутри APS может быть уменьшено. Следует отметить, что, хотя на фиг.27 иллюстрируется пример, в котором APS ID используется для ссылки на прошедший APS, средство ссылки на прошедший APS не ограничивается таким примером. Например, другой параметр, такой как количество APS, между опорным APS источником и опорным целевым APS также может использоваться, для ссылки на прошлый APS. Кроме того, вместо использования флага присутствия ID прошлой ссылки, ссылка на прошлый APS и установки новых параметров матрицы квантования можно переключать в зависимости от того, обозначает или нет ID прошлой ссылки заданное значение (например, минус единица).
6-3. Вторая технология
Вторая технология представляет собой технологию, в которой содержатся параметры в разных APS (в разных модулях NAL) для каждого класса параметра, и выполняются ссылки на каждый параметр, используя APS ID, который уникально определяет каждый APS. На фиг.28 иллюстрируется пример кодированного потока, выполненного в соответствии со второй технологией.
Как показано на фиг.28, SPS 811, PPS 812, APS 813a, APS 813b и APS 813c вставлены в начале изображения Р0, установленного в начале последовательности. PPS 812 идентифицирован по PPS ID "Р0". APS 813a представляет собой APS для параметров, относящихся к ALF, и он идентифицирован по APS ID "A00". APS 813b представляет собой APS для параметров, относящихся к SAO, и он идентифицирован по APS ID "А10". APS 813c представляет собой APS для параметров, относящихся к QM, и он идентифицирован по APS ID "A20". Заголовок 814, прикрепленный к данным среза внутри изображения Р0, включает в себя ссылку PPS ID "Р0", и это означает, что к параметрам, находящимся внутри PPS 812, обращаются для декодирования этих данных среза. Точно так же заголовок среза 814 включает в себя ссылку APS_ALF "A00", ссылку APS_SAO "А10", и ссылку APS_QM "A20", и они означают, что ссылку на параметры в APSs 813a, 813b и 813c выполняют для декодирования данных этого среза.
APS 815a и APS 815b вставляют в изображение Р1, следующее после изображения P0. APS 815a представляет собой APS для параметров, относящихся к ALF, и он идентифицирован по APS ID "A01". APS 815b представляет собой APS параметров, относящихся к SAO, и он идентифицирован по APS ID "A11". Поскольку параметры, относящиеся к QM, не обновляют из изображения P0, APS для параметров, относящихся к QM, не вставляют. Заголовок 816 среза, прикрепленный к данным среза внутри изображения Р1, включает в себя ссылку APS_ALF ID "A01", ссылку APS_SAO ID "A11" и ссылку APS_QM ID "A20". Это означает, что ссылку на параметры внутри APSs 815a, 815b и 813c выполняют для декодирования данных этого среза.
APS 817a и APS 817c вставляют в изображение Р2, следующее после изображения Р1. APS 817а представляет собой APS для параметров, относящихся к ALF, и идентифицирован, как APS ID "A02". APS 817 с представляет собой APS для параметров, относящихся к QM, и идентифицирован по APS ID "A21". Поскольку параметры, относящиеся к SAO, не обновляют из изображения Р1, APS для параметров, относящихся к SAO, не вставляют. Заголовок 818 среза, прикрепленный к данным среза внутри изображения Р2, включает в себя ссылку APS_ALF ID "A02", ссылку APS_SAO ID "A11" и ссылку APS_QM ID "A21". Это означает, что ссылку на параметры внутри APS 817a, 815b и 817c выполняют для декодирования данных этого среза.
APS для параметров, относящихся к QM во второй технологии (например, APSs 813c и 817c), по существу, равны QMPS, описанному выше. APS ID в APS для параметров, относящихся к QM, используют вместо QMPS ID, описанного со ссылкой на фиг.3. В соответствии со второй технологией, поскольку разные APS используют для каждого класса параметров, передача избыточных параметров не выполняется для параметров, которые не требуют обновления. По этой причине может быть оптимизирована эффективность кодирования. Однако, в такой второй технологии, поскольку количество классов параметров, которые должны быть внедрены в APS, увеличивается, происходит увеличение классов типов модуля NAL (nal_unit_type), идентификатора для идентификации классов APS. В стандартной спецификации HEVC существует ограниченное количество типов модуля NAL (nal_unit_type), зарезервированных для расширения. Следовательно, предпочтительно рассмотреть структуру, в которой исключается расширение множества типов модуля NAL для APS.
6-4. Третья технология
Третья технология представляет собой технологию, которая включает в себя параметры матрицы квантования и другие параметры в APS и в которой эти параметры группируются по индивидуальным идентификаторам, определенным отдельно от APS ID. В данном описании такой идентификатор, назначенный для каждой группы и определенный отдельно от APS ID, называется вспомогательным идентификатором (SUB ID). Ссылка на каждый параметр выполняется с использованием вспомогательного идентификатора в заголовке среза. На фиг.29 иллюстрируется пример кодированного потока, сконфигурированного в соответствии с третьей технологией.
Как показано на фиг.29, SPS 821, PPS 822 и APS 823 вставляют в начало изображения Р0, которое расположено в начале последовательности. PPS 822 идентифицирован по PPS ID "Р0". APS 823 включает в себя параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры относящиеся к QM. Параметры относящиеся к ALF, принадлежат одной группе, и их идентифицируют по SUB_ALF ID "АА0", вспомогательному идентификатору для ALF. Параметры, относящиеся к SAO, принадлежат одной группе, и их идентифицируют по SUB_SAO ID "AS0", вспомогательному идентификатору для SAO. Параметры, относящиеся к QM, принадлежат одной группе, и их идентифицируют по SUB_QM ID "AQ0", вспомогательному идентификатору QM. Заголовок 824 среза, прикрепленный к данным среза внутри изображения РО, включает в себя ссылку SUB_ALF ID "АА0", ссылку SUB_SAO ID "AS0" и ссылку SUB_QM ID "AQ0". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащие SUB_ALF ID "АА0", параметры, относящиеся к SAO, принадлежащие SUB_SAO ID "AS0", и параметры, относящиеся к QM, принадлежащие SUB_QM ID "AQ0", выполняют для декодирования данных этого среза.
APS 825 вставлен в изображение Р1 после изображения Р0. APS 825 включает в себя параметры, относящиеся к ALF, и параметры, относящиеся к SAO. Параметры, относящиеся к ALF, идентифицированы по SUB_ALF ID "AA1". Параметры, относящиеся к SAO, идентифицированы по SUB_SAO ID "AS1". Поскольку параметры, относящиеся к QM, не обновляют из изображения Р0, параметры, относящиеся к QM, не включают в APS 825. Заголовок 826 среза, прикрепленный к данным среза внутри изображения Р1, включает в себя ссылку SUB_ALF ID "AA1", ссылку SUB_SAO ID "AS1" и ссылку SUB_QM ID "AQ0". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащим SUB_ALF ID "AA1", и параметры, относящиеся к SAO, принадлежащие SUB_SAO ID "AS1" внутри APS 825, и параметры, относящиеся к QM, принадлежащие SUB_QM ID "AQ0" внутри APS 823, выполняют для декодирования данных этого среза.
APS 827 вставляют в изображение Р2, которое следует после изображения Р1. APS 827 включает в себя параметры, относящиеся к ALF, и параметры, относящиеся к QM. Параметры, относящиеся к ALF, идентифицированы по SUB_ALF ID "AA2". Параметры, относящиеся к QM, идентифицированы по SUB_QM ID "AQ1". Поскольку параметры, относящиеся к SAO, не обновляют из изображения Р1, параметры, относящиеся к SAO, не включают в APS 827. Заголовок 828 среза, прикрепленный к данным среза внутри изображения Р2, включает в себя ссылку SUB_ALF ID "AA2", ссылку SUB_SAO ID "AS1" и ссылку SUB_QM ID "AQ1". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащие SUB_ALF ID "AA2", и параметры, относящиеся к QM, принадлежащие SUB_QM ID "AQ1" внутри APS 827, а так же параметры, относящиеся к SAO, принадлежащие SUB_SAO ID "AS1" внутри APS 825, выполняют для декодирования данных этого среза.
На фиг.30 иллюстрируется пример синтаксиса APS, определенного в соответствии с третьей технологией. В строке 2 - строке 4 на фиг.30 три группы представляют флаги, которые установлены, как: "aps_adaptive_loop_filter_flag", "aps_sample_adaptive_offset_flag" и "aps_qmatrix_flag". Группы, представляющие флаги, обозначают, включены или нет параметры, принадлежащие соответствующим группам, в этот APS. Хотя APS ID исключен из синтаксиса в примере на фиг.30, APS ID, для идентификации APS, может также быть добавлен в синтаксис. Параметры, относящиеся к ALF, установлены в строке 12 - строке 17. "sub_alf_id" в строке 13 представляет собой вспомогательный идентификатор для ALF. Параметры, относящиеся к SAO, установлены в строке 18 - строке 24. "sub_sao_id" в строке 19 представляет собой вспомогательный идентификатор для SAO. Параметры, относящиеся к QM, установлены в строке 25 - строке 30. "sub_qmatrix_id" в строке 26 представляет собой вспомогательный идентификатор для QM. "qmatrix_param()" в строке 29 представляет собой функцию, устанавливающую параметры матрицы квантования, как иллюстрируется в примере на фиг.13-20.
На фиг.31 показана пояснительная схема, иллюстрирующая пример синтаксиса заголовка среза, определенного в соответствии с третьей технологией. В строке 5 на фиг.31 установлена ссылка PPS ID, для ссылки на параметры, включенные в PPS, среди параметров, которые должны быть установлены для этого среза. В строке 8 установлена ссылка SUB_ALF ID для ссылки на параметры, относящиеся к ALF, среди параметров, которые должны быть установлены для этого среза. В строке 9 установлена ссылка SUB_SAO ID для ссылки на параметры, относящиеся к SAO, среди параметров, которые должны быть установлены для этого среза. В строке 10 установлена ссылка SUB_QM ID для ссылки на параметры, относящиеся к QM, среди параметров, которые должны быть установлены для этого среза.
В случае воплощения третьей технологии, блок 130 генерирования параметра в блоке 13 обработки синтаксиса устройства 10 кодирования изображения прикрепляет новый SUB_QM ID, как вспомогательный идентификатор, к обновленной группе параметров матрицы квантования каждый раз, когда параметры матрицы квантования обновляют. Блок 130 вставки затем вставляет параметры матрицы квантования с прикрепленным SUB_QM ID в APS, вместе с другими параметрами. Блок 160 получения параметра блока 61 обработки синтаксиса устройства 60 декодирования изображения использует ссылку SUB_QM ID, обозначенную в заголовке среза, для получения из APS параметров матрицы квантования, которые должны быть установлены для каждого среза.
В соответствии с третьей технологией, параметры группируют внутри APS, используя вспомогательные идентификаторы, и передачу избыточных параметров не выполняют для параметров в группах, в которых не требуется обновления. По этой причине эффективность кодирования может быть оптимизирована. Кроме того, поскольку классы APS не увеличиваются, даже если классы параметров увеличиваются, большое количество типов модулей NAL не расширяется, как во второй технологи, описанной выше. Следовательно, третья технология не нарушает гибкость будущих расширений.
В примере на фиг.29-31, параметры, включенные в APS, группируют в соответствии с инструментами кодирования, относящимися к ALF, SAO и QM. Однако, это представляет собой просто один пример параметров группирования. APS может также включать в себя параметры, относящиеся к другим инструментам кодирования. Например, параметры, относящиеся к AIF, такие как коэффициенты фильтра для адаптивного фильтра интерполяции (AIF), представляют собой один пример параметров, которые могут быть внедрены в APS. Ниже различные критерии для группирования параметров, которые должны быть внедрены в APS, будут описаны со ссылкой на фиг.32.
В таблице, представленной на фиг.32, представлены списки "Содержание параметра", "Частота обновления" и "Размер данных", как свойства соответствующих параметров в типичных инструментах кодирования.
Адаптивный фильтр цикла (ALF) представляет собой фильтр (обычно фильтр Винера), который выполняет двумерную фильтрацию декодированного изображения, используя коэффициенты фильтра, адаптивно определенные для минимизации ошибки между декодируемым изображением и исходным изображением. Параметры, относящиеся к ALF, включают в себя коэффициенты фильтра, которые применят для каждого блока, и флаг включения/выключения, для каждого модуля (CU) кодирования. Размер данных коэффициентов фильтра ALF чрезвычайно велик по сравнению с другими классами параметров. По этой причине параметры, относящиеся к ALF, обычно передают для изображений I с высокой скоростью, тогда как передача параметров, относящихся к ALF, может быть исключена для изображений В с низкой скоростью. Это связано с тем, что передача параметров, относящихся к ALF с большим размером данных для изображений с низкой скоростью неэффективна с точки зрения прироста. В большинстве случаев коэффициенты фильтра ALF изменяются для каждого изображения. Поскольку коэффициенты фильтра зависят от содержания изображения, вероятность обеспечения возможности повторного использования заранее установленных коэффициентов фильтра низка.
Смещение адаптивной выборки (SAO) представляет собой инструмент, который улучшает качество изображения для декодируемого изображения, путем добавления адаптивно определенного значения смещения к каждому значению пикселя в декодируемом изображении. Параметры, относящиеся к SAO, включают в себя структуры смещения и значения смещения. Размер данных параметров, относящихся к SAO, не является таким же большим, как у параметров, относящихся к ALF. Параметры, относящиеся к SAO, также изменяются, как правило, для каждого изображения. Однако, поскольку параметры, относящихся к SAO, имеют свойство не очень сильно изменяться, даже в случае незначительного изменения содержания изображения, существует вероятность того, что можно будет повторно использовать заранее установленные значения параметров.
Матрица квантования (QM) представляет собой матрицу, элементы которой представляют собой масштабы квантования, используемые, когда коэффициенты преобразования квантования преобразуют из данных изображения, используя ортогональное преобразование. Параметры, относящиеся к QM, или, другими словами, параметры матрицы квантования, являются такими, как подробно описано в данном описании. Размер данных параметров, относящихся к QM, больше, чем у параметров, относящихся к SAO. Матрица квантования, как правило, требуется для всех изображений, но не обязательно требует обновления для каждого изображения, если содержание изображения меняется незначительно. По этой причине матрица квантования может повторно использоваться для тех же типов изображения (таких, как изображения I/P/B), или для каждого GOP.
Адаптивный фильтр интерполяции (AIF) представляет собой инструмент, который адаптивно изменяет коэффициенты фильтра для фильтра интерполяции, используемого во время компенсации движения для каждого положения вспомогательного пикселя. Параметры, относящиеся к AIF, включают в себя коэффициенты фильтра для соответствующих положений подпикселя. Размер данных параметров, относящихся к AIF, является малым по сравнению с представленными выше тремя классами параметров. Параметры, относящиеся к AIF, как правило, изменяются для каждого изображения.
Однако, поскольку одни и те же типы изображения проявляют тенденцию иметь аналогичные свойства интерполяции, параметры, относящиеся к AIF, могут повторно использоваться для одних и тех же типов изображения (таких, как изображения I/P/B).
На основе упомянутых выше качеств параметров, следующие три критерия, например, могут быть приняты с целью группирования параметров, включенных в APS:
Критерий А. Группирование в соответствии с инструментом кодирования.
Критерий В. Группирование в соответствии с частотой обновления.
Критерий С. Группирование в соответствии с вероятностью повторного использования параметра.
Критерий А представляет собой критерий, который группирует параметры в соответствии с соответствующими инструментами кодирования. Структура набора параметров, иллюстрируемая на примере на фиг.29-31, основана на критерии А. Поскольку качества параметров, в общем, определяют в соответствии с их соответствующими инструментами кодирования, группирование параметров с помощью инструмента кодирования позволяет выполнить своевременные и эффективные обновления параметра, в соответствии с различными качествами параметров.
Критерий В представляет собой критерий, который группирует параметры в соответствии с частотой их обновления. Как показано на фиг.32, параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры, относящиеся к AIF, как правило, все могут обновляться в каждом изображении. Таким образом, эти параметры могут быть сгруппированы, например, в одну группу, в то время как параметры, относящиеся к QM, могут быть сгруппированы в другую группу. В этом случае существует меньшее количество групп по сравнению с критерием А. В результате, существует также меньшее количество вспомогательных идентификаторов для установления в заголовке среза, и количество кодов заголовка среза может быть уменьшено. В то же время, поскольку частоты обновления параметров, принадлежащих одной и той же группе, близки друг к другу, вероятность избыточной передачи не обновленных параметров для обновления других параметров, поддерживается на низком уровне.
Критерий С представляет собой критерий, который группирует параметры в соответствии с вероятностью повторного использования параметров. Хотя параметры, относящиеся к ALF, вряд ли, будут повторно использоваться, параметры, относящиеся к SAO, и параметры, относящиеся к AIF, в определенной степени, могут легко повторно использоваться. Для параметров, относящихся к QM, параметры, чрезвычайно вероятно, будут повторно использоваться для множества изображений. Следовательно, путем группирования параметров в соответствии с вероятностью их повторного использования, таким образом, можно исключить избыточную передачу повторно используемых параметров внутри APS.
6-5. Пример модификации третьей технологии
В третьей технологии, описанной выше, количество групп, в которые сгруппированы параметры внутри APS, приводит к равному количеству ссылочных SUB ID, установленных в заголовках среза, как иллюстрируется на примере на фиг.31. Количество кодов, требуемых ссылочными SUB ID, приблизительно пропорционально произведению количества заголовков среза и количества групп. Технология, в соответствии с примерной модификацией, описанной ниже, также может быть воплощена для дальнейшего уменьшения такой пропорции.
В примерной модификации третьей технологии комбинация ID, ассоциированных с комбинацией вспомогательных идентификаторов, определена внутри APS или другого набора параметров. К параметрам, включенным внутри APS, можно затем обращаться из заголовка среза через комбинацию ID. На фиг.33 иллюстрируется пример кодированного потока, сконфигурированного в соответствии с такой примерной модификацией третьей технологии.
Как показано на фиг.33, SPS 831, PPS 832 и APS 833 вставлены в начало изображения Р0, расположенного в начале последовательности. PPS 832 идентифицирован по PPS ID "Р0". APS 833 включает в себя параметры, относящиеся к ALF, параметры, относящиеся к SAO, и параметры, относящиеся к QM. Параметры относящиеся к ALF, идентифицированы по SUB_ALF ID "AA0". Параметры, относящиеся к SAO, идентифицированы по SUBJSAO ID "AS0". Параметры, относящиеся к QM, идентифицированы по SUB_QM ID "AQ0". Кроме того, APS 833 включает в себя комбинацию ID "C00"={AA0, AS0, AQ0}, как определение комбинации. Заголовок 834 среза, прикрепленный к данным среза, в изображении Р0, включает в себя ID комбинации "С00". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащие SUB_ALF ID "AA0", параметры, относящиеся к SAO, принадлежащие к SUB_SAO ID "AS0", и параметры, относящиеся к QM, принадлежащие к SUB_QM ID "AQ0", которые, соответственно, ассоциированы с ID "C00" комбинации, выполняют для декодирования данных этого среза.
APS 835 вставлен в изображение Р1, следующее после изображения РО. APS 835 включает в себя параметры, относящиеся ALF, и параметры, относящиеся к SAO. Параметры, относящиеся к ALF, идентифицированы no SUB_ALF ID "AA1". Параметры, относящиеся к SAO, идентифицированы по SUB_SAO ID "AS1". Поскольку параметры, относящиеся к QM, не обновляют из изображения Р0, параметры, относящиеся к QM, не включены в APS 835. Кроме того, APS 835 включает в себя ID комбинации "С01"={АА1, AS0, AQ0}, ID комбинации "С02"={АА0, AS1, AQ0} и ID комбинации "С03"={АА1, AS1, AQ0}, как определение комбинаций. Заголовок 836 среза, прикрепленный к данным среза в изображении Р1, включает в себя ID комбинации "С03". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащие SUB_ALF ID "АА1", параметры, относящиеся к SAO, принадлежащие SUB_SAO ID "AS1", и параметры, относящиеся к QM, принадлежащие SUB_QM ID "AQ0", которые, соответственно, ассоциированы с ID "С03" комбинации, выполняют для декодирования данных этого среза.
APS 837 вставляют в изображение Р2, следующее после изображения Р1. APS 837 включает в себя параметры, относящиеся к ALF. Параметры относящиеся к ALF, идентифицированы по SUB_ALF ID "AA2". Поскольку параметры, относящиеся SAO, и параметры, относящиеся QM, не обновляют из изображения Р1, параметры, относящиеся к SAO, и параметры, относящиеся к QM, не включены в APS 837. Кроме того, APS 837 включает в себя ID комбинации "С04"={AA2, AS0, AQ0} и ID комбинации "С05"={AA2, AS1, AQ0}, как определения комбинаций. Заголовок 838 среза, прикрепленный к данным среза в изображении Р2, включает в себя ID комбинации "С05". Это означает, что ссылку на параметры, относящиеся к ALF, принадлежащие SUB_ALF ID "AA2", параметры, относящиеся к SAO, принадлежащие SUB_SAO ID "AS1", и параметры, относящиеся к QM, принадлежащие SUB_QM ID "AQ0", которые, соответственно, ассоциированы с ID комбинации "С05", выполняют для декодирования данных этого среза.
Следует отметить, что в данной примерной модификации ID комбинации могут не быть определены для всех комбинаций вспомогательных идентификаторов, таким образом, комбинации ID определяются только для комбинаций вспомогательных идентификаторов, к которым фактически обращаются в заголовке среза. Кроме того, комбинации вспомогательных идентификаторов могут быть определены внутри APS, отличных от APS, где содержатся соответствующие параметры.
В случае воплощения таких примерных модификаций, блок 130 генерирования параметра блока 13 обработки синтаксиса устройства 10 кодирования изображения генерирует ID комбинации, как вспомогательные параметры, которые должны быть ассоциированы с комбинациями вспомогательных идентификаторов, которые группируют различные параметры, включая в себя параметры матрицы квантования. Блок 130 вставки затем вставляет ID комбинации, сгенерированные блоком 130 генерирования параметра, в APS или в другой набор параметров. Блок 160 получения параметра блока 61 обработки синтаксиса устройства 60 декодирования изображения получает ID комбинации, обозначенный в заголовке среза каждого среза, и используют вспомогательные идентификаторы, ассоциированные с ID комбинации, для дополнительного получения параметров матрицы квантования внутри APS.
Таким образом, путем использования ID комбинации, ассоциированного с комбинациями вспомогательных идентификаторов, для ссылки на параметры внутри APS, количество кодов, требуемых для ссылки на каждый параметр из заголовков среза, может быть уменьшено.
7. Пример вариантов применения
Устройство 10 кодирования изображения и устройство 60 декодирования изображения, в соответствии с вариантом осуществления, описанным выше, может применяться в различных электронных устройствах, таких как передатчик и приемник, для спутниковой широковещательной передачи, кабельной широковещательной передачи, такой как кабельное TV, распространение по Интернет, распределение в устройства - клиенты через сотовую передачу данных и т.п., и устройство записи, которое записывает изображения на носители информации, такие как оптический диск, магнитный диск или запоминающее устройство типа флэш, и устройство воспроизведения, которое воспроизводит изображения с таких носителей записи. Ниже будут описаны четыре примера вариантов применения.
7-1. Первый пример варианта применения
На фиг.34 показана блок-схема, иллюстрирующая пример конфигурации схемы телевизора, в котором применяется описанный выше вариант осуществления. Телевизор 900 включает в себя антенну 901, тюнер 902, демультиплексор 903, декодер 904, блок 905 обработки видеосигнала, блок 906 дисплея, блок 907 обработки аудиосигнала, громкоговоритель 908, внешний интерфейс 909, блок 910 управления, интерфейс 911 пользователя и шину 912.
Тюнер 902 выделяет сигнал требуемого канала из сигналов широковещательной передачи, принимаемых через антенну 901, и демодулирует выделенный сигнал. Затем тюнер 902 выводит кодированный поток битов, полученный путем демодуляции, в демультиплексор 903. Таким образом, тюнер 902 используется, как средство передачи телевизора 900 для приема кодированного потока, в котором кодировано изображение.
Демультиплексор 903 разделяет видеопоток и аудоипоток программы, предназначенной для просмотра, из кодированного потока битов, и выводит выделенные потоки в декодер 904. Кроме того, демультиплексор 903 выделяет вспомогательные данные, такие как электронная программа телевизионных передач (EPG), из кодированного потока битов и подает выделенные данные в блок 910 управления. Дополнительно, демультиплексор 903 может выполнять дескремблирование, в случае, когда кодированный поток битов скремблирован.
Декодер 904 декодирует видеопоток и аудиопоток, подаваемые из демультиплексора 903. Затем декодер 904 выводит видеоданные, сгенерированные в процессе декодирования, в блок обработки 905 видеосигнала. Кроме того, декодер 904 выводит аудиоданные, сгенерированные в процессе декодирования, в блок 907 обработки аудиосигнала.
Блок 905 обработки видеосигнала воспроизводит видеоданные, подаваемые из декодера 904, и обеспечивает отображение видеоизображения блоком 906 дисплея. Блок 905 обработки видеосигнала также может обеспечить отображение в блоке 906 дисплея экрана приложения, подаваемого через сеть. Кроме того, блок 905 обработки видеосигнала может выполнять дополнительную обработку, такую как удаление шумов, например, для видеоданных, в соответствии с установками. Кроме того, блок 905 обработки видеосигнала может генерировать изображения графического интерфейса пользователя (GUI), такие как, например, меню, кнопки или курсор, и накладывать генерируемые изображения на выходное изображение.
Блоком 906 дисплея управляют с помощью сигнала управления, подаваемого из блока 905 обработки видеосигнала, и он отображает видеоизображение или изображение на видеоэкране устройства дисплея (такого как, например, жидкокристаллический дисплей, плазменный дисплей или дисплей OLED).
Блок 907 обработки аудиосигнала выполняет обработку воспроизведения, такую как D/A преобразование и усиление аудиоданных, подаваемых из декодера 904, и выводит звук через громкоговоритель 908. Кроме того, блок 907 обработки аудиосигнала может выполнять дополнительные процессы, такие как удаление шумов для аудиоданных.
Внешний интерфейс 909 представляет собой интерфейс для соединения телевизора 900 с внешним устройством или сетью. Например, видеопоток или аудиопоток, принятый через внешний интерфейс 909, может быть декодирован декодером 904. Таким образом, внешний интерфейс 909 также используется, как средство передачи для телевизора 900, для приема кодированного потока, в котором кодировано изображение.
Блок 910 управления включает в себя процессор, такой как центральное процессорное устройство (CPU), и запоминающее устройство, такое как оперативное запоминающее устройство (RAM), и постоянное запоминающее устройство (ROM). В запоминающем устройстве содержится программа, исполняемая CPU, данные программы, данные EPG, данные, полученные через сеть, и т.п. Программу, содержащуюся в запоминающем устройстве, считывают и выполняют с помощью CPU, например, при включении телевизора 900. В результате выполнения программы, CPU управляет работой телевизора 900, например, в соответствии с сигналом операции, подаваемым через интерфейс 911 пользователя.
Интерфейс 911 пользователя соединен с блоком 910 управления. Интерфейс 911 пользователя включает в себя кнопки и переключатели, используемые пользователем для выполнения операций с телевизором 900, и например, приемник сигнала пульта дистанционного управления. Интерфейс 911 пользователя детектирует операцию пользователя через структурные элементы, генерирует сигнал операции, и выводит сгенерированный сигнал операции в блок 910 управления.
Шина 912 взаимно соединяет тюнер 902, демультиплексор 903, декодер 904, блок 905 обработки видеосигнала, блок 907 обработки аудиосигнала, внешний интерфейс 909 и блок 910 управления.
В телевизоре 900, сконфигурированном таким образом, декодер 904 включает в себя функции устройства 60 декодирования изображения, в соответствии с представленными выше вариантами осуществления. Следовательно, возможно сделать более умеренным снижение эффективности кодирования видеоданных, декодируемых телевизором 900, или улучшить эффективность кодирования.
7-2. Второй пример варианта применения
На фиг.35 показана блок-схема, иллюстрирующая примерную конфигурацию схемы мобильного телефона, в котором используется описанный выше вариант осуществления. Мобильный телефон 920 включает в себя антенну 921, блок 922 передачи данных, аудиокодек 923, громкоговоритель 924, микрофон 925, блок 926 камеры, блок 927 обработки изображений, блок 928 мультиплексирования/демультиплексирования (mux/demux), блок 929 записи и воспроизведения, блок 930 дисплея, блок 931 управления, блок 932 операций и шину 933.
Антенна 921 соединена с блоком 922 передачи данных. Громкоговоритель 924 и микрофон 925 соединены с аудиокодеком 923. Блок 932 операций соединен с блоком 931 управления. Шина 933 взаимно соединят блок 922 передачи данных, аудиокодек 923, блок 926 камеры, блок 927 обработки изображений, блок 928 мультиплексора/демультиплексора, блок 929 записи и воспроизведения, дисплей 930 и блок 931 управления.
Мобильный телефон 920 выполняет операции, такие как передача и прием аудиосигналов, передача и прием электронной почты или данных изображения, съемка изображений и запись данных, в различных режимах операций, включающих в себя режим передачи аудиоданных, режим передачи данных, режим формирования изображения и режим видеотелефона.
В режиме передачи аудиоданных аналоговый аудиосигнал, генерируемый микрофоном 925, подают в аудиокодек 923. Аудиокодек 923 преобразует аналоговый аудиосигнал в аудиоданные, выполняет A/D преобразование и сжимает преобразованные аудиоданные. Затем аудиокодек 923 выводит сжатые аудиоданные в блок 922 передачи данных. Блок 922 передачи данных кодирует, модулирует аудиоданные и генерирует сигнал передачи. Затем блок 922 передачи данных передает сгенерированный сигнал в базовую станцию (не представлена) через антенну 921. Кроме того, блок 922 передачи данных усиливает беспроводный сигнал, принятый через антенну 921, преобразует частоту беспроводного сигнала и получает принятый сигнал. Затем блок 922 передачи данных демодулирует, декодирует принятый сигнал и генерирует аудиоданные, и выводит сгенерированные аудиоданные в аудиокодек 923. Аудиокодек 923 разворачивает, выполняет D/A преобразование аудиоданных и генерирует аналоговый аудиосигнал. Затем аудиокодек 923 подает сгенерированный аудиосигнал в громкоговоритель 924 и обеспечивает вывод звука.
Кроме того, в режиме передачи данных блок 931 управления генерирует текстовые данные, который составляют электронную почту, например, в соответствии с операцией пользователя, через блок 932 операций. Кроме того, блок 931 управления обеспечивает отображение текста в блоке 930 дисплея. Кроме того, блок 931 управления генерирует данные электронной почты, в соответствии с инструкциями передачи от пользователя через блок 932 операций, и выводит сгенерированные данные электронной почты в блок 922 передачи данных. Блок 922 передачи данных кодирует и модулирует данные электронной почты, и генерирует сигнал передачи. Затем, блок 922 передачи данных передает сгенерированный сигнал передачи в базовую станцию (не показана) через антенну 921. Кроме того, блок 922 передачи данных усиливает беспроводный сигнал, принятый через антенну 921, и преобразует частоту беспроводного сигнала, и получает принятый сигнал. Затем, блок 922 передачи данных демодулирует и декодирует принятый сигнал, реконструирует данные электронной почты и выводит реконструированные данные электронной почты в блок 931 управления. Блок 931 управления обеспечивает отображение в блоке 930 дисплея содержания электронной почты и также обеспечивает сохранение данных электронной почты на носителе информации блока 929 записи и воспроизведения.
Блок 929 записи и воспроизведения включает в себя произвольный носитель информации с возможностью считывания и записи. Например, носитель информации может представлять собой встроенный носитель информации, такой как RAM или запоминающее устройство типа флэш, или устанавливаемый внешне носитель информации, такой как жесткий диск, магнитный диск, магнитооптический диск, оптический диск, запоминающее устройство USB или карта памяти.
Кроме того, в режиме формирования изображения, блок 926 камеры снимает изображение субъекта, генерирует данные изображения и выводит сгенерированные данные изображения, например, в блок 927 обработки изображений. Блок 927 обработки изображений кодирует данные изображения, подаваемые из блока 926 камеры, и обеспечивает сохранение кодированного потока на носителе информации в блоке 929 записи и воспроизведения.
Кроме того, в режиме видеотелефона блок 928 мультиплексора/демультиплексора мультиплексирует видеопоток, кодированный блоком 927 обработки изображений, и аудиопоток, подаваемый из аудиокодека 923, и выводит мультиплексированный поток, например, в блок 922 передачи данных. Блок 922 передачи данных кодирует и модулирует поток, и генерирует сигнал передачи. Затем блок 922 передачи данных передает сгенерированный сигнал передачи в базовую станцию (не показана) через антенну 921. Кроме того, блок 922 передачи данных усиливает беспроводный сигнал, принятый через антенну 921, и преобразует частоту беспроводного сигнала, и получает принятый сигнал. Переданный сигнал и принятый сигнал могут включать в себя кодированный поток битов. Затем блок 922 передачи данных демодулирует и декодирует принятый сигнал, реконструирует поток и выводит реконструированный поток в блок 928 мультиплексора/демультиплексора. Блок 928 мультиплексора/демультиплексора отделяет видеопоток и аудиопоток из входного потока, и выводит видеопоток в блок 927 обработки изображений и аудиопоток в аудиокодек 923. Блок 927 обработки изображений декодирует видеопоток, и генерирует видеоданные. Видеоданные подают в блок 930 дисплея, и отображают последовательность изображений в блоке 930 дисплея. Аудиокодек 923 выполняет разворачивание и D/A преобразование аудиопотока и генерирует аналоговый аудиосигнал. Затем аудиокодек 923 передает сгенерировнный аудиосигнал в громкоговоритель 924 и обеспечивает вывод звука.
В мобильном телефоне 920, выполненном таким образом, блок 927 обработки изображений включает в себя функции устройства 10 кодирования изображения и устройства 60 декодирования изображения, в соответствии с представленными выше вариантами осуществления. Следовательно, становится возможным сдерживать уменьшение эффективности кодирования для видеоданных, кодируемых и декодируемых мобильным телефоном 920, или улучшить эффективность кодирования.
7-3. Третий пример варианта применения
На фиг.36 показана блок-схема, иллюстрирующая примерную конфигурацию схемы устройства записи и воспроизведения, в котором применяется описанный выше вариант осуществления. Устройство 940 записи и воспроизведения кодирует и записывает на носитель записи аудиоданные и видеоданные, например, принятой программы широковещательной передачи. Устройство 940 записи и воспроизведения также может кодировать и записывать на носитель записи аудиоданные и видеоданные, полученные, например, из другого устройства. Кроме того, устройство 940 записи и воспроизведения воспроизводит данные, записанные на носитель записи, через монитор и громкоговоритель, например, в соответствии с инструкциями пользователя. В это время устройство 940 записи и воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи и воспроизведения включает в себя тюнер 941, внешний интерфейс 942, кодер 943, привод 944 жесткого диска (HDD), привод 945 диска, селектор 946, декодер 947, индикацию 948 на экране (OSD), блок 949 управления и интерфейс 950 пользователя.
Тюнер 941 выделяет сигнал требуемого канала из сигналов широковещательной передачи, принимаемых через антенну (не показана) и демодулирует выделенный сигнал. Затем тюнер 941 выводит кодированный поток битов, полученный путем демодуляции, в селектор 946. Таким образом, тюнер 941 используется как средство передачи устройства 940 записи и воспроизведения.
Внешний интерфейс 942 представляет собой интерфейс для подключения устройства 940 записи и воспроизведения к внешнему устройству или к сети. Например, внешний интерфейс 942 может представлять собой интерфейс IEEE 1394, сетевой интерфейс, интерфейс USB, интерфейс запоминающего устройства типа флэш и т.п. Например, видеоданные и аудиоданные, принятые внешним интерфейсом 942, поступают в кодер 943. Таким образом, внешний интерфейс 942 используется как средство передачи устройства 940 записи и воспроизведения.
В случае, когда видеоданные и аудиоданные, подаваемые из внешнего интерфейса 942, не кодированы, кодер 943 кодирует видеоданные и аудиоданные. Затем кодер 943 выводит кодированный поток битов в селектор 946.
HDD 944 записывает на внутренний жесткий диск кодированный поток битов, который представляет собой сжатые данные содержания, такие, как видео- или аудиоданные, различные программы и другие данные. Кроме того, HDD 944 считывает такие данные с жесткого диска при воспроизведении видео- и аудиоданных.
Привод 945 диска выполняет запись или считывание данных для установленного носителя записи. Носитель записи, установленный в привод 945 диска, может представлять собой, например, диск DVD (такой как диск DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD+ или DVD+RW), диск Blu-ray (зарегистрированный товарный знак) и т.п.
При записи видео- и аудиоданных, селектор 946 выбирает кодированный поток битов, подаваемый из тюнера 941 или кодера 943, и выводит выбранный кодированный поток битов в HDD 944 или в привод 945 диска. Кроме того, при воспроизведении видео- и аудиоданных, селектор 946 выводит кодированный поток битов, подаваемых из HDD 944 или привода 945 диска, в декодер 947.
Декодер 947 декодирует кодированный поток битов и генерирует видеоданные и аудиоданные. Затем декодер 947 выводит сгенерированные видеоданные в OSD 948. Кроме того, декодер 904 выводит сгенерированные аудиоданные во внешний громкоговоритель.
OSD 948 воспроизводит видеоданные, подаваемые из декодера 947, и отображает видеоизображение. Кроме того, OSD 948 может, например, накладывать изображения GUI, такие как меню, кнопки или курсор, на отображаемое видеоизображение.
Блок 949 управления включает в себя процессор, такой как CPU, и запоминающее устройство, такое как RAM или ROM. В запоминающем устройстве содержится программа, исполняемая CPU, данные программы и т.п. Программу, содержащуюся в запоминающем устройстве, считывают и выполняют с помощью CPU, например, при включении устройства 940 записи и воспроизведения. При выполнении программы, CPU управляет операцией устройства 940 записи и воспроизведения, в соответствии с сигналом операции, подаваемым, например, из интерфейса 950 пользователя.
Интерфейс 950 пользователя соединен с блоком 949 управления. Интерфейс 950 пользователя включает в себя кнопки и переключатели, используемые пользователем для выполнения операций, например, с устройством 940 записи и воспроизведения и приемником сигнала дистанционного управления. Интерфейс 950 пользователя детектирует операцию пользователем через эти структурные элементы, генерирует сигнал операции и выводит сгенерированный сигнал операции в блок 949 управления.
В устройстве записи и воспроизведения, выполненном таким образом, кодер 943 включает в себя функции устройства 10 кодирования изображения, в соответствии с представленными выше вариантами осуществления. Кроме того, декодер 947 включает в себя функции устройства 60 декодирования изображения в соответствии с представленными выше вариантами осуществления. Следовательно, возможно сдерживать снижение эффективности кодирования для видеоданных, кодируемых и декодируемых устройством 940 записи и воспроизведения, или улучшить эффективность кодирования.
7-4. Четвертый пример варианта применения
На фиг.37 показана блок-схема, представляющая пример схематичной конфигурации устройства формирования изображения, в котором принят вариант осуществления, описанный выше. Устройство 960 формирования изображения снимает изображение субъекта, генерирует изображение, кодирует данные изображения и записывает эти данные изображения на носитель записи.
Устройство 960 формирования изображения включает в себя оптический блок 961, блок 962 формирования изображения, блок 963 обработки сигналов, блок 964 обработки изображений, блок 965 дисплея, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя, OSD 969, блок 970 управления, интерфейс 971 пользователя и шину 972.
Оптический блок 961 соединен с блоком 962 формирования изображения. Блок 962 формирования изображения соединен с блоком 963 обработки сигналов. Блок 965 дисплея соединен с блоком 964 обработки изображений. Интерфейс 971 пользователя соединен с блоком 970 управления. Шина 972 взаимно соединяет блок 964 обработки изображений, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя, OSD 969 и блок 970 управления.
Оптический блок 961 включает в себя линзу фокусирования, механизм диафрагмы и т.п. Оптический блок 961 формирует оптическое изображение субъекта на поверхности формирования изображения блока 962 формирования изображения. Блок 962 формирования изображения включает в себя датчик изображения, такой как датчик CCD или CMOS, и выполняет фотоэлектрическое преобразование оптического изображения, формируемого на поверхности формирования изображения, в сигнал изображения, который представляет собой электрический сигнал. Затем блок 962 формирования изображения выводит сигнал изображения в блок 963 обработки сигналов.
Блок 963 обработки сигналов выполняет различную обработку сигнала камеры, такую как коррекция изгиба характеристики передачи уровня яркости, гамма-коррекция и коррекция цвета для сигнала изображения, подаваемого из блока 962 формирования изображения. Блок 963 обработки сигналов выводит обработанные данные изображения в блок 964 обработки изображений.
Блок 964 обработки изображений кодирует данные изображения, подаваемые из блока 963 обработки сигналов, и генерирует эти кодированные данные. Затем блок 964 обработки изображений выводит кодированные данные, сгенерированные таким образом, во внешний интерфейс 966 или в привод 968 носителя. Кроме того, блок 964 обработки изображений декодирует кодированные данные, подаваемые из внешнего интерфейса 966, или из привода 968 носителя, и генерирует данные изображения. Затем блок 964 обработки изображений выводит сгенерированные данные изображения в блок 965 дисплея. Кроме того, блок 964 обработки изображений может выводить данные изображения, подаваемые из блока 963 обработки сигналов в блок 965 дисплея, и обеспечить отображение изображения. Кроме того, блок 964 обработки изображений может накладывать данные отображения, полученные из OSD 969, на изображение, предназначенное для вывода в блок 965 дисплея.
OSD 969 генерирует изображения GUI, такие как, например, меню, кнопки или курсор, и выводит сгенерированные изображения в блок 964 обработки изображений.
Внешний интерфейс 966 сконфигурирован, например как разъем ввода-вывода USB. Внешний интерфейс 966 соединяет устройство 960 формирования изображения, например, с принтером при печати изображения. Кроме того, привод соединяют с внешним интерфейсом 966, в случае необходимости. Съемный носитель, такой как, например, магнитный диск или оптический диск, вставляют в привод, и программа, считанная со съемного носителя, может быть установлена в устройство 960 формирования изображения. Кроме того, внешний интерфейс 966 может быть сконфигурирован, как сетевой интерфейс, предназначенный для подключения к сети, такой как LAN или Интернет. Таким образом, внешний интерфейс 966 используется, как средство передачи устройства 960 съемки изображения.
Носитель записи, который должен быть вставлен в привод 968 носителя, может представлять собой произвольный съемный носитель с возможностью считывания и записи на него, такой как, например, магнитный диск, магнитооптический диск, оптический диск или полупроводниковое запоминающее устройство. Кроме того, носитель записи может быть постоянно установлен в привод 968 носителя и может составлять стационарный блок сохранения, такой как, например, внутренний привод жесткого диска или твердотельное устройство (SSD).
Блок 970 управления включает в себя процессор, такой как CPU, и запоминающее устройство, такое как RAM или ROM. В запоминающем устройстве содержится программа, предназначенная для исполнения в CPU, данные программы и т.п. Программу, сохраненную в запоминающем устройстве, считывают и выполняют с помощью CPU, например, при включении устройства 960 формирования изображения. При выполнении программы, CPU управляет работой устройства 960 формирования изображения, в соответствии с сигналом операции, подаваемым, например, через интерфейс 971 пользователя.
Интерфейс 971 пользователя соединен с блоком 970 управления. Интерфейс 971 пользователя включает в себя кнопки, переключатели и т.п., используемые пользователем, например, для выполнения операций с устройством 960 формирования изображения. Интерфейс 971 пользователя детектирует операцию пользователя через эти структурные элементы, генерирует сигнал операции и выводит сгенерированный сигнал операции в блок 970 управления.
В устройстве 960 формирования изображения, выполненном, таким образом, блок 964 обработки изображений включает в себя функции устройства 10 кодирования изображения и устройства 60 декодирования изображения, в соответствии с представленными выше вариантами осуществления. Следовательно, возможно сдерживать снижение эффективности кодирования для видеоданных, кодируемых и декодируемых устройством 960 формирования изображения, или улучшить эффективность кодирования.
8. Заключение
В представленном выше описании используются фиг.1-37 для описания устройства 10 кодирования изображения и устройства 60 декодирования изображения, в соответствии с вариантом осуществления. В соответствии с вариантом осуществления, параметры матрицы квантования, определяющие матрицы квантования, используемые при квантовании и обратном квантовании изображения, вставляют в набор параметров матрицы квантования (QMPS), который отличается от набора параметров последовательности и набора параметров изображения. Таким образом, становится не нужным кодировать другие параметры, кроме параметров матрицы квантования, при обновлении матрицы квантования, и кодировать параметры матрицы квантования при обновлении других параметров, кроме параметров матрицы квантования. Следовательно, сдерживается снижение эффективности кодирования, сопровождающее обновление матрицы квантования, или улучшается эффективность кодирования. В частности, уменьшение количества кодов с помощью технологий, раскрытых в этом описании, становится еще более эффективным, в случае, когда матрицы квантования имеют большие размеры, или в случае, когда большее количество матриц квантования определено для каждого изображения.
Кроме того, в соответствии с настоящим вариантом осуществления, параметры, которые устанавливают копирование заранее сгенерированной матрицы квантования, могут быть включены в QMPS, вместо непосредственного определения матрицы квантования. В этом случае параметры, которые устанавливают саму матрицу квантования (например, массив дифференциальных данных в формате DPCM) исключают из QMPS, и, таким образом, количество кодов, требуемых для определения матрицы квантования, может быть дополнительно уменьшено.
Кроме того, в соответствии с настоящим вариантом осуществления, QMPS ID назначают для каждого QMPS. Затем, в режиме копирования, QMPS ID для QMPS, определяющий матрицу квантования источник копирования, может быть обозначен как ID источника. Кроме того, размер и тип матрицы квантования источника копирования может быть обозначен, как размер источника копирования и тип источника копирования. Следовательно, матрица квантования в произвольном QMPS среди матриц квантования в множестве QMPS, сгенерированных заранее, может быть гибко обозначена, как матрица квантования источника копирования. Также возможно копировать и повторно использовать матрицу квантования с другим размером или типом.
Кроме того, в соответствии с настоящим вариантом осуществления, параметры, которые устанавливают остаточные компоненты матрицы квантования, предназначенные для копирования, могут быть включены в QMPS. Следовательно, матрица квантования, которая не полностью эквивалентна заранее сгенерированной матрице квантования, все еще может быть сгенерирована вновь с малой скоростью.
Кроме того, в режиме обозначения оси, вместо развертки всех элементов матрицы квантования, только значения элементов матрицы квантования, соответствующие трем опорным осям или четырем углам матрицы квантования, могут быть включены в QMPS. Следовательно, в этом случае, в равной степени возможно определить матрицу квантования с малым количеством кодов.
Кроме того, в соответствии с настоящим вариантом осуществления, матрицы квантования для использования в каждом срезе устанавливают на основе параметров матрицы квантования внутри QMPS, идентифицированных QMPS ID, обозначенном в заголовке среза. Следовательно, поскольку матрицы квантования можно гибко переключать для каждого среза, оптимальную матрицу квантования в каждый момент времени можно использовать для кодирования или декодирования видеоданных, даже в случае, когда характеристики изображения изменяются от момента к моменту.
Следует отметить, что в данном описании описан пример, в котором набор параметров матрицы квантования мультиплексируют в заголовок кодированного потока и передают со стороны кодирования на сторону декодирования. Однако технология передачи набора параметров матрицы квантования не ограничена таким примером. Например, информация внутри каждого набора параметров может также быть передана или может быть записана, как отдельные данные, ассоциированные с кодированным потоком битов, без их мультиплексирования в кодированный поток битов. Здесь термин "ассоциированный" означает, что изображение, включенное в поток битов (также охватывающее частичные изображения, такие как срезы или блоки), и информация, соответствующая этим изображениям, могут быть связаны во время декодирования. Другими словами, информация также может быть передана по отдельному каналу передачи из изображения (или потока битов). Кроме того, информация может быть записана на отдельном носителе записи (или в отдельной области записи на одном и том же носителе записи) из изображения (или потока битов). Кроме того, информация и изображения (или потоки битов) могут быть ассоциированы друг с другом в произвольных модулях, таких как, например, множество кадров, один кадр или участки в пределах кадров.
Таким образом, выше были подробно представлены предпочтительные варианты осуществления настоящего раскрытия и со ссылкой на приложенные чертежи. Однако технический объем настоящего раскрытия не ограничен такими примерами. Для специалистов в данной области техники, к которой принадлежит настоящее раскрытие, будет понятно, что различные модификации или изменения могут быть выполнены, если только они находятся в пределах объема технических идей, заявленных в формуле изобретения, и следует понимать, что такие модификации или изменения, очевидно, принадлежат техническому объему настоящего раскрытия.
Кроме того, настоящая технология также может быть выполнена, как представлено ниже.
(1) Устройство обработки изображения, в котором
блок получения, выполненный с возможностью получения параметров матрицы квантования из кодированного потока, в котором параметры матрицы квантования, определяющие матрицу квантования, установлены в пределах набора параметров, который отличается от набора параметров последовательности и набора параметров изображения;
блок установки, выполненный с возможностью установки, на основе параметров матрицы квантования, полученных блоком получения, матрицы квантования, которая используется при обратном квантовании данных, декодированных из кодированного потока; и
блок обратного квантования, выполненный с возможностью обратного квантования данных, декодированных из кодированного потока, используя матрицу квантования, установленную блоком установки.
(2) Устройство обработки изображения по п.(1), в котором
набор параметров, содержащий параметры матрицы квантования, представляет собой общий набор параметров, в котором также могут быть установлены другие параметры кодирования, относящиеся к другим инструментам кодирования, кроме матрицы квантования, и
блок получения получает параметры матрицы квантования, когда параметры матрицы квантования установлены в общем наборе параметров.
(3) Устройство обработки изображения по п.(2), в котором
блок получения определяет, установлены ли параметры матрицы квантования среди общего набора параметров, обращаясь к флагу, включенному в общий набор параметров.
(4) Устройство обработки изображения по пп.(2) или (3), в котором
общий набор параметров представляет собой набор параметров адаптации.
(5) Устройство обработки изображения по п.(4), в котором
в случае, когда ссылка на первый набор параметров адаптации включена во второй набор параметров адаптации, декодированный после первого набора параметров адаптации, блок установки повторно использует матрицу квантования, установленную на основе параметров матрицы квантования, полученных из первого набора параметров адаптации, как матрицу квантования, соответствующую второму набору параметров адаптации.
(6) Устройство обработки изображения по п.(5), в котором
в случае, когда ссылка на третий набор параметров адаптации включена в третий набор параметров адаптации, блок установки устанавливает принятую по умолчанию матрицу квантования, как матрицу квантования, соответствующую третьему набору параметров адаптации.
(7) Устройство обработки изображения по п.(1), в котором
в случае, когда параметр копирования, инструктирующий выполнить копию первой матрицы квантования для первого набора параметров, включен во второй набор параметров, блок установки устанавливает вторую матрицу квантования путем копирования первой матрицы квантования.
(8) Устройство обработки изображения по п.(7), в котором
каждый набор параметров, который включает в себя параметры матрицы квантования, имеет идентификатор, который идентифицирует каждый набор параметров, и
параметр копирования включает в себя идентификатор набора параметров источника копии.
(9) Устройство обработки изображения по п.(8), в котором
каждый набор параметров включает в себя параметры матрицы квантования, которые, соответственно, определяют множество классов матриц квантования, и
параметр копирования включает в себя параметр класса, обозначающий класс первой матрицы квантования.
(10) Устройство обработки изображения по п.(8), в котором
в случае, когда идентификатор набора параметров источника копии, включенный в третий набор параметров, эквивалентен идентификатору третьему набору параметров, блок установки устанавливает принятую по умолчанию матрицу квантования, как третью матрицу квантования, для третьего набора параметров.
(11) Устройство обработки изображения по п.(7), в котором
в случае, когда размер второй матрицы квантования больше, чем размер первой матрицы квантования, блок установки устанавливает вторую матрицу квантования путем интерполяции элементов скопированной первой матрицы квантования.
(12) Устройство обработки изображения по п.(7), в котором
в случае, когда размер второй матрицы квантования меньше, чем размер первой матрицы квантования, блок установки устанавливает вторую матрицу квантования, путем прореживания элементов скопированной первой матрицы квантования.
(13) Устройство обработки изображения по п.(7), в котором
в случае, когда параметр обозначения остатка, обозначающий остаточные компоненты копируемой матрицы квантования, включен во второй набор параметров, блок установки устанавливает вторую матрицу квантования путем добавления остаточных компонентов к скопированной первой матрице квантования.
(14) Устройство обработки изображения по п.(1), в котором
каждый набор параметров, который включает в себя параметры матрицы квантования, имеет идентификатор набора параметров, который идентифицирует каждый набор параметров, и
блок обратного квантования использует для каждого среза, матрицу квантования, установленную блоком установки, на основе параметров матрицы квантования, включенных в набор параметров, идентифицированный идентификатором набора параметров, обозначенным в заголовке среза.
(15) Устройство обработки изображения по любому одному из пп.(7)-(14), в котором
набор параметров, содержащий параметры матрицы квантования, дополнительно включает в себя другие параметры кодирования, относящиеся к другим инструментам кодирования, кроме матрицы квантования.
(16) Устройство обработки изображения по п.(15), в котором
параметры матрицы квантования и другие параметры кодирования группируют с помощью вспомогательного идентификатора, определенного отдельно от идентификатора параметра, который идентифицирует каждый набор параметров, и
блок получения получает параметры матрицы квантования, используя вспомогательный идентификатор.
(17) Устройство обработки изображения по п.(16), в котором
идентификатор комбинаций, ассоциированный с комбинацией множества вспомогательных идентификаторов, определен в наборе параметров или в другом наборе параметров, и
блок получения получает идентификатор комбинации, обозначенный в заголовке среза для каждого среза, и получает параметры матрицы квантования, используя вспомогательные идентификаторы, ассоциированные с полученным идентификатором комбинации.
(18) Способ обработки изображений, в котором
получают параметры матрицы квантования из кодированного потока, в котором параметры матрицы квантования, определяющие матрицу квантования, установлены в пределах набора параметров, который отличается от набора параметров последовательности и набора параметров изображения;
устанавливают, на основе полученных параметров матрицы квантования, матрицу квантования, которая используется при обратном квантовании данных, декодированных из кодированного потока; и
выполняют обратное квантование данных, декодированных из кодированного потока, используя установленную матрицу квантования.
(19) Устройство обработки изображения, включающее в себя:
блок квантования, выполненный с возможностью квантования данных, используя матрицу квантования;
блок установки, выполненный с возможностью установки параметров матрицы квантования, которые определяют матрицу квантования, предназначенную для использования, когда блок квантования выполняет квантование данных; и
блок кодирования, выполненный с возможностью кодировать параметры матрицы квантования, установленные блоком установки, в пределах набора параметров, который отличается от набора параметров последовательности и набора параметров изображения.
(20) Способ обработки изображений, в котором
квантуют данные, используя матрицу квантования;
устанавливают параметры матрицы квантования, которые определяют матрицу квантования, предназначенную для использования, когда выполняют квантование данных; и
кодируют установленные параметры матрицы квантования в пределах набора параметров, который отличается от набора параметров последовательности и набора параметров изображения.
Список номеров ссылочных позиций
10. Устройство обработки изображения (устройство кодирования изображения)
16. Блок квантования
120. Блок генерирования параметра
130. Блок вставки
60. Устройство обработки изображения (устройство декодирования изображения)
63. Блок обратного квантования
160. Блок получения параметра
170. Блок установки