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

Область техники, к которой относится изобретение
Данная технология относится к устройству и способу обработки изображений и относится к устройству и способу обработки изображения, предназначенных для выполнения процесса квантования или обратного квантования.
Уровень техники
В последнее время, как при распространении информации на вещательной станции, так и при приеме информации в обычном доме широкое использование получили устройства, соответствующие такой системе, как MPEG (формат, разработанный Экспертной группой по вопросам движущегося изображения), обрабатывающие в цифровой форме информацию изображения и сжимающие ее посредством ортогонального преобразования, такого как дискретное косинусное преобразование, и посредством компенсации движения, используя избыточность, характерную для информации изображения, для эффективной передачи и накопления информации.
В наши дни возрастают потребности в кодировании с более высокой степенью сжатия, таком как кодирование изображения с разрешением, составляющим приблизительно 4096×2048 пикселей, что в четыре раза больше, чем для изображения высокой четкости, или в распространении изображения высокой четкости в среде, имеющей ограниченную пропускную способность, такой как сеть "Интернет". По этой причине группа VCEG (Экспертная группа по кодированию видеоинформации), действующая под руководством сектора телекоммуникаций Международного союза электросвязи (ITU-T) непрерывно исследует вопросы повышения эффективности кодирования.
Выраженный в пикселях размер макроблока, представляющего собой частную область изображения, которая является элементом разделения (элементом процесса кодирования) изображения во время кодирования изображения в стандартах MPEG 1 (Стандарт 1, разработанный Экспертной группой по вопросам движущегося изображения), MPEG 2 (Стандарт 2, разработанный Экспертной группой по вопросам движущегося изображения) и ITU-T Н.264 (Стандарт Н.264 сектора телекоммуникаций Международного союза электросвязи)/MPEO 4 - AVC (Стандарт 4, разработанный Экспертной группой по вопросам движущегося изображения, - Усовершенствованное кодирование видеоданных), являющихся традиционными системами кодирования изображения, всегда составляет 16×16 пикселей. С другой стороны, в непатентном документе 1 предлагается в качестве элементарной технологии стандарта кодирования изображений, относящегося к следующему поколению, увеличить количество пикселей макроблока в горизонтальном направлении и в вертикальном направлении. В нем также предлагается в дополнение к выраженному в пикселях размеру макроблока, составляющему 16×16 пикселей, определенному в стандартах MPEG 1, MPEG 2, ITU - Т H.264/MPEG 4 - AVC и им подобных, использовать макроблок размером 32×32 пикселя и 64×64 пикселя. Это делается для повышения эффективности кодирования благодаря выполнению компенсации движения и ортогонального преобразования на элементе с большей площадью в областях со сходным движением, поскольку прогнозируется, что выраженный в пикселях размер кодируемого изображения возрастет в будущем в горизонтальном направлении и в вертикальном направлении, как, например, в формате UHD (формате Сверхвысокой четкости изображения, где он составляет 4000 пикселей × 2000 пикселей).
В непатентном документе 1 принята иерархическая структура, определяющая, таким образом, более крупный блок как надмножество для блока, не превышающего 16×16 пикселей, сохраняющая при этом совместимость с макроблоком действующего на текущий момент стандарта AVC (Усовершенствованного кодирования видеоданных).
Хотя в непатентном документе 1 предлагается применять расширенный макроблок к межкадровому слою (последовательности макроблоков), в непатентном документе 2 предлагается применять расширенный макроблок к внутрикадровому слою.
Список документов
Непатентные документы
Непатентный документ 1: Peisong Chenn, Yan Ye, Marta Karczewicz, "Video Coding Using Extended Block Sizes", COM16-C123-E, Qualcomm Inc (Пейсонг Ченн, Ян Йе, Марта Карцевич "Кодирование видеоданных с использованием расширенных размеров блока", COM 16 - С 123 - Е, Квел комм Инк.)
Непатентный документ 2: Sung-Chang Lim, Hahyun Lee, Jinho Lee, Jongho Kim, Haechul Choi, Seyoon Jeong, Jin Soo Choi, "Intra coding using extended block size", VCEG-AL28, July, 2009 (Сунг - Чанг Лим, Хахюн Ли, Джинхо Ли, Джонгхо Ким, Хаэчул Чой, Сейоон Джеонг, Джин Соо Чой "Внутрикадровое кодирование с использованием расширенного размера блока" (VCEG - AL28, июль 2009 года)
Раскрытие изобретения
Задачи, решаемые изобретением
При применении расширенного макроблока, который предложен в непатентных документах 1 и 2, появляется высокая вероятность того, что в одном макроблоке будут смешаны однотонная область и область, включающая в себя текстуру.
Однако поскольку в Непатентных документах 1 и 2 для одного макроблока может быть определен только один параметр квантования, то трудно выполнить адаптивное квантование, соответствующее характеристикам соответствующих областей в плоскости.
Данная технология была реализована ввиду такого рода обстоятельств, и цель ее заключается в том, чтобы воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения благодаря выполнению более подходящего процесса квантования.
Решение задач
Один аспект данной технологии представляет собой устройство обработки изображений, включающее в себя: декодирующий модуль для декодирования закодированного потока данных для генерирования квантованных данных; устанавливающий модуль для установки параметра квантования, используемого при выполнении над квантованными данными, сгенерированными декодирующим модулем, обратного квантования, для элемента кодирования на уровне более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; и модуль обратного квантования для обратного квантования с использованием параметра квантования, устанавливаемого устанавливающим модулем квантованных данных, сгенерированных декодирующим модулем.
Устанавливающий модуль выполнен с возможностью установки параметра квантования для текущего элемента кодирования, с использованием разностного параметра квантования, указывающего значение разности между параметром квантования, установленным для текущего элемента кодирования, являющегося объектом обратного квантования, и параметром квантования, установленным для элемента кодирования на том же самом уровне, что и текущий элемент кодирования.
Разностный параметр квантования может представлять собой значение разности между параметром квантования, установленным для текущего элемента кодирования, и параметром квантования, установленным для элемента кодирования, который в порядке процесса декодирования декодируется перед текущим элементом кодирования.
Разностный параметр квантования может представлять собой значение разности между параметром квантования, установленным для текущего элемента кодирования, и параметром квантования, установленным для элемента кодирования, который в порядке процесса декодирования декодируется непосредственно перед текущим элементом кодирования.
Опорный элемент кодирования может представлять собой наибольший элемент кодирования, являющийся элементом кодирования самого верхнего уровня.
Устройство обработки изображений может дополнительно включать в себя: принимающий модуль, который принимает закодированный поток данных и данные о минимальном размере элемента кодирования, указывающие минимальный размер элемента кодирования, для которого устанавливается разностный параметр квантования, и устанавливающий модуль может устанавливать параметр квантования для текущего элемента кодирования в соответствии с данными о минимальном размере элемента кодирования, принятыми принимающим модулем.
Принимающий модуль может получать данные о минимальном размере элемента кодирования из заголовка слоя закодированного потока данных.
В случае, когда размер, указанный данными о минимальном размере элемента кодирования, составляет 16 пикселей, разностный параметр квантования для элемента кодирования, размер которого меньше, чем 16 пикселей, может быть установлен в 0.
Устанавливающий модуль выполнен с возможностью установки параметра квантования для текущего элемента кодирования, с использованием разностного параметра квантования, указывающего значение разности между параметром квантования, устанавливаемым для текущего элемента кодирования, являющегося объектом декодирования, и параметром квантования, устанавливаемым для слоя, к которому принадлежит текущий элемент кодирования.
Устанавливающий модуль выполнен с возможностью установки параметра квантования для текущего элемента кодирования, с использованием разностного параметра квантования, указывающего значение разности между параметром квантования, установленным для текущего элемента кодирования, и параметром квантования, установленным для слоя, к которому принадлежит текущий элемент кодирования, в том случае, когда текущий элемент кодирования представляет собой первый элемент кодирования в порядке процесса декодирования на уровне опорного элемента кодирования.
Опорный элемент кодирования может представлять собой наибольший элемент кодирования, являющийся элементом кодирования самого верхнего уровня.
Устройство обработки изображений может дополнительно включать в себя: принимающий модуль для приема закодированного потока данных и данных о минимальном размере элемента кодирования, указывающих минимальный размер элемента кодирования, для которого устанавливается разностный параметр квантования, и устанавливающий модуль выполнен с возможностью установки параметра квантования для текущего элемента кодирования в соответствии с данными о минимальном размере элемента кодирования, принятыми принимающим модулем.
Принимающий модуль выполнен с возможностью получения данных о минимальном размере элемента кодирования из заголовка слоя закодированного потока данных.
В случае, когда размер, указанный данными о минимальном размере элемента кодирования, составляет 16 пикселей, разностный параметр квантования для элемента кодирования, размер которого меньше, чем 16 пикселей, может быть установлен в 0.
В случае, когда значение разностного параметра квантования для элемента кодирования на уровне, более низком, чем опорный элемент кодирования, составляет 0, устанавливающий модуль выполнен с возможностью установки в качестве параметра квантования, устанавливаемого для указанного элемента кодирования на уровне, более низком, чем опорный элемент кодирования, параметр квантования, устанавливаемый для этого опорного элемента кодирования.
Устройство обработки изображений может дополнительно включать в себя: принимающий модуль для приема данных идентификации разности для идентификации того, равно ли 0 значение разностного параметра квантования для элемента кодирования на уровне, более низком, чем опорный элемент кодирования, и устанавливающий модуль, выполненный с возможностью установки с использованием данных идентификации разности, принятых принимающих модулем, в качестве параметра квантования, устанавливаемого для элемента кодирования на уровне, более низком, чем опорный элемент кодирования, параметр квантования, устанавливаемый для указанного опорного элемента кодирования.
Один аспект данной технологии представляет собой способ обработки изображения, включающий в себя этапы, на которых: генерируют квантованные данные, декодируя закодированный поток данных; устанавливают параметр квантования, используемый при обратном квантовании сгенерированных квантованных данных, для элемента кодирования на уровне, более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; и выполняют обратное квантование, используя установленный параметр квантования, сгенерированных квантованных данных.
Другой аспект данной технологии представляет собой устройство обработки изображений, включающее в себя: устанавливающий модуль для установки параметра квантования, используемого при квантовании данных изображения, для элемента кодирования на уровне более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; модуль квантования для генерирования квантованных данных, при квантовании данных изображения, с использованием параметра квантования, установленного устанавливающим модулем; и кодирующий модуль для кодирования квантованных данных, сгенерированных модулем квантования, для генерирования закодированного потока данных.
Устанавливающий модуль выполнен с возможностью установки разностного параметра квантования, указывающего значение разности между параметром квантования, устанавливаемого для текущего элемента кодирования, являющегося объектом процесса кодирования, и параметром квантования, устанавливаемым для элемента кодирования на том же самом уровне, что и текущий элемент кодирования, и устройство обработки изображений может дополнительно включать в себя: передающий элемент для передачи разностного параметра квантования, установленного устанавливающим модулем, и закодированного потока данных, сгенерированного кодирующим модулем.
Устанавливающий модуль выполнен с возможностью установки в качестве разностного параметра квантования, значения разности между параметром квантования, устанавливаемым для текущего элемента кодирования, и параметром квантования, устанавливаемым для элемента кодирования, который в порядке процесса кодирования кодируется перед текущим элементом кодирования.
Устанавливающий модуль выполнен с возможностью установки в качестве разностного параметра квантования, значения разности между параметром квантования, установленным для текущего элемента кодирования, и параметром квантования, установленным для элемента кодирования, который в порядке процесса кодирования кодируется непосредственно перед текущим элементом кодирования.
Опорный элемент кодирования может представлять собой наибольший элемент кодирования, являющийся элементом кодирования самого верхнего уровня.
Устанавливающий модуль выполнен с возможностью установки данных о минимальном размере элемента кодирования, указывающих минимальный размер элемента кодирования, для которого устанавливается разностный параметр квантования, и передающий модуль выполнен с возможностью передачи данных о минимальном размере элемента кодирования, установленных устанавливающим модулем.
Передающий модуль выполнен с возможностью добавления в качестве заголовка слоя данных о минимальном размере элемента кодирования, установленных устанавливающим модулем, в синтаксис закодированного потока данных, сгенерированного кодирующим модулем.
В случае, когда размер, указанный данными о минимальном размере элемента кодирования, задан как 16 пикселей, устанавливающий модуль выполнен с возможностью установки разностного параметра квантования для элемента кодирования, размер которого меньше, чем 16 пикселей, в 0.
Устанавливающий модуль выполнен с возможностью установки разностного параметра квантования, указывающего значение разности между параметром квантования, устанавливаемым для текущего элемента кодирования, являющегося объектом процесса кодирования, и параметром квантования, устанавливаемым для слоя, к которому принадлежит текущий элемент кодирования, и устройство обработки изображений может дополнительно включать в себя: передающий модуль для передачи разностного параметра квантования, установленного устанавливающим модулем, и закодированного потока данных, сгенерированного кодирующим модулем.
Устанавливающий модуль выполнен с возможностью установки, в качестве разностного параметра квантования, значения разности между параметром квантования, установленным для текущего элемента кодирования, и параметром квантования, установленным для слоя, к которому принадлежит текущий элемент кодирования, в том случае, когда текущий элемент кодирования представляет собой первый элемент кодирования в порядке процесса кодирования на уровне опорного элемента кодирования.
Опорный элемент кодирования может представлять собой наибольший элемент кодирования, являющийся элементом кодирования самого верхнего уровня.
Устанавливающий модуль выполнен с возможностью установки данных о минимальном размере элемента кодирования, указывающих минимальный размер элемента кодирования, для которого устанавливается разностный параметр квантования, а передающий модуль выполнен с возможностью передачи данных о минимальном размере элемента кодирования, установленных устанавливающим модулем.
Передающий модуль выполнен с возможностью добавления, в качестве заголовка слоя данных о минимальном размере элемента кодирования, установленных устанавливающим модулем, к синтаксису закодированного потока данных, сгенерированного кодирующим модулем.
В случае, когда размер, указанный данными о минимальном размере элемента кодирования, установлен как 16 пикселей, устанавливающий модуль выполнен с возможностью установки разностного параметра квантования для элемента кодирования, размер которого меньше, чем 16 пикселей, в 0.
В случае, когда значение разностного параметра квантования для элемента кодирования на уровне более низком, чем опорный элемент кодирования, установлено в 0, устанавливающий модуль выполнен с возможностью установки в качестве параметра квантования, устанавливаемого для этого элемента кодирования на уровне более низком, чем опорный элемент кодирования.
Устанавливающий модуль выполнен с возможностью установки данных идентификации разности для идентификации того, равно ли 0 значение разностного параметра квантования для элемента кодирования на уровне, более низком, чем опорный элемент кодирования, и устройство обработки изображений может дополнительно включать в себя: передающий модуль для передачи данных идентификации разности, установленных устанавливающим модулем, и закодированного потока данных, сгенерированного кодирующим модулем.
Другой аспект данной технологии представляет собой способ обработки изображения, включающий в себя этапы, на которых: устанавливают параметр квантования, используемый при квантовании данных изображения квантуемых для элемента кодирования на уровне более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; генерируют квантованные данные, квантуя данные изображения, используя установленный параметр квантования; и генерируют закодированный поток данных, кодируя сгенерированные квантованные данные.
В одном аспекте данной технологии осуществляют декодирование закодированного потока данных и генерируют квантованные данные; параметр квантования, используемый при обратном квантовании сгенерированных квантованных данных, устанавливают для элемента кодирования на уровне, более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; и, используя установленный параметр квантования, осуществляют обратное квантование над сгенерированными квантованными данными.
В другом аспекте данной технологии параметр квантования, используемый тогда, когда квантуются данные изображения, устанавливают для элемента кодирования на уровне более низком, чем опорный элемент кодирования на опорном уровне элемента кодирования, являющегося элементом процесса кодирования при кодировании данных изображения; квантуют данные изображения и генерируют квантованные данные, используя установленный параметр квантования; и кодируют сгенерированные квантованные данные и генерируют закодированный поток данных.
Результаты изобретения
В соответствии с данной технологией процесс квантования или обратного квантования, могут быть выполнены более подходящим образом.
Краткое описание чертежей
Фиг.1 представляет собой структурную схему, на которой иллюстрирован пример основной конфигурации устройства кодирования изображения, к которому применена данная технология.
Фиг.2 представляет собой чертеж, на котором проиллюстрирован пример отношения соответствия между параметром квантования для сигнала яркости и параметра квантования для сигнала цветности.
Фиг.3 представляет собой чертеж, на котором проиллюстрирован пример макроблока.
Фиг.4 представляет собой чертеж, на котором проиллюстрирован другой пример макроблока.
Фиг.5 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля квантования.
Фиг.6 представляет собой чертеж, на котором проиллюстрирован пример изображения в элементе - макроблоке.
Фиг.7 представляет собой блок-схему алгоритма, на которой проиллюстрирован пример алгоритма процесса кодирования.
Фиг.8 представляет собой блок-схему алгоритма, на которой проиллюстрирован пример алгоритма процесса вычисления параметра квантования.
Фиг.9 представляет собой структурную схему, на которой проиллюстрирована пример основной конфигурации устройства декодирования изображений, к которому применена данная технология.
Фиг.10 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля обратного квантованию.
Фиг.11 представляет собой блок-схему алгоритма, на которой проиллюстрирован пример алгоритма декодирования.
Фиг.12 представляет собой блок-схему алгоритма, на которой проиллюстрирован пример алгоритма обратного квантованию.
Фиг.13 представляет собой блок-схему алгоритма, на которой проиллюстрирован другой пример алгоритма вычисления параметра квантования.
Фиг.14 представляет собой блок-схему алгоритма, на которой проиллюстрирован другой пример алгоритма обратного квантованию.
Фиг.15 представляет собой чертеж, на котором проиллюстрирован пример конфигурации элемента кодирования.
Фиг.16 представляет собой чертеж, на котором проиллюстрирован пример параметра квантования, присваиваемого каждому элементу кодирования.
Фиг.17 представляет собой чертеж, на котором проиллюстрирован пример синтаксиса.
Фиг.18 представляет собой структурную схему, на которой проиллюстрирован другой пример конфигурации устройства кодирования изображений, к которому применена данная технология.
Фиг.19 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля квантования элемента кодирования и контроллера скорости.
Фиг.20 представляет собой блок-схему алгоритма, на которой проиллюстрирован еще один пример последовательности процесса вычисления параметра квантования.
Фиг.21 представляет собой структурную схему, на которой проиллюстрирован другой пример конфигурации устройства декодирования изображений, к которому применена данная технология.
Фиг.22 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации элемента кодирования модуля обратного квантования.
Фиг.23 представляет собой блок-схему алгоритма, на которой проиллюстрирован еще один пример последовательности процесса обратного квантования.
Фиг.24 представляет собой чертеж, на котором сравниваются характеристики способов вычисления параметра dQP квантования.
Фиг.25 представляет собой чертеж, на котором проиллюстрирован пример параметра квантования, назначаемого каждому элементу кодирования.
Фиг.26 представляет собой чертеж, на котором проиллюстрирован пример синтаксиса заголовка слоя.
Фиг.27 представляет собой чертеж, на котором проиллюстрирован пример способа вычисления активности.
Фиг.28 представляет собой чертеж, на котором проиллюстрирована связь между параметром квантования и масштабом квантования.
Фиг.29 представляет собой структурную схему, на которой проиллюстрирован еще один другой пример конфигурации устройства кодирования изображений, к которому применена данная технология.
Фиг.30 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля квантования элемента кодирования, модуля квантования и контроллера отношения.
Фиг.31 представляет собой блок-схему алгоритма, на которой проиллюстрирован другой пример последовательности процесса кодирования.
Фиг.32 представляет собой блок-схему алгоритма, на которой проиллюстрирован пример последовательности процесса квантования.
Фиг.33 представляет собой чертеж, на котором проиллюстрирован пример системы кодирования изображения с множественными представлениями.
Фиг.34 представляет собой чертеж, на котором проиллюстрирован пример основной конфигурации устройства кодирования изображений с множественными представлениями, к которому применена данная технология.
Фиг.35 представляет собой чертеж, на котором проиллюстрирован пример основной конфигурации устройства декодирования изображений с множественными представлениями, к которому применена данная технология.
Фиг.36 представляет собой чертеж, на котором проиллюстрирован пример системы кодирования иерархического изображения.
Фиг.37 представляет собой чертеж, на котором проиллюстрирован пример основной конфигурации устройства кодирования иерархических изображений, к которому применена данная технология.
Фиг.38 представляет собой чертеж, на котором проиллюстрирован пример основной конфигурации устройства декодирования иерархических изображений, к которому применена данная технология.
Фиг.39 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации компьютера, к которому применена данная технология.
Фиг.40 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации телевизионного устройства, к которому применена данная технология.
Фиг.41 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации мобильного оконечного устройства, к которому применена данная технология.
Фиг.42 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства записи/воспроизведения, к которому применена данная технология.
Фиг.43 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства формирования изображений, к которому применена данная технология.
Осуществление изобретения
Ниже описываются способы осуществления данной технологии (в дальнейшем именуемые как варианты реализации изобретения). Отметим, что описание приводится в нижеследующем порядке.
1. Первый вариант реализации изобретения (Устройство кодирования изображения)
2. Второй вариант реализации изобретения (Устройство декодирования изображения)
3. Третий вариант реализации изобретения (Устройство кодирования изображения/Устройство декодирования изображения)
4. Четвертый вариант реализации изобретения (Устройство кодирования изображения/Устройство декодирования изображения)
5. Пятый вариант реализации изобретения (Устройство кодирования изображения)
6. Шестой вариант реализации изобретения (Устройства кодирования изображения с множественными представлениями/декодирования изображения с множественными представлениями)
7. Седьмой вариант реализации изобретения (Устройства кодирования иерархического изображения/декодирования иерархического изображения)
8. Восьмой вариант реализации изобретения (Применение)
1. Первый вариант реализации изобретения
Устройство кодирования изображения
На Фиг.1 проиллюстрирована конфигурация одного варианта реализации устройства кодирования изображения в качестве устройства обработки изображений, к которому применена данная технология.
Устройство (100) кодирования изображения, проиллюстрированное на Фиг.1, представляет собой устройство кодирования, кодирующее изображение способом, аналогичным например, системе стандарта Н.264/Часть 10 MPEG - 4 (Часть 10 стандарта 4 экспертной группы по движущемуся изображению) (AVC (Усовершенствованное кодирование видеоданных)) (в дальнейшем, именуемая как H.264/AVC). Однако устройство 100 кодирования изображения определяет параметр квантования для каждого субмакроблока.
Макроблок представляет собой частную область изображения, которая является элементом процесса при кодировании изображения. Субмакроблок представляет собой малую область, получаемую при разделении макроблока на множество областей.
В примере, показанном на Фиг.1, устройство 100 кодирования изображения включает в себя аналого-цифровой (A/D) преобразователь 101, буфер 102 переупорядочивания экранного изображения, арифметический модуль 103, модуль 104 ортогонального преобразования, модуль 105 квантования, модуль 106 кодирования без потерь и буфер 107 накопления. Устройство 100 кодирования изображения также включает в себя модуль 108 обратного квантования, модуль 109 обратного ортогонального преобразования, арифметический модуль НО, фильтр 111 устранения блочности, память 112 кадров, переключатель 113, модуль 114 внутрикадрового предсказания, модуль 115 предсказания/компенсации движения, переключатель 116 и контроллер 117 отношения.
Кроме того, устройство 100 кодирования изображения включает в себя модуль 121 квантования субмакроблока и модуль 122 обратного квантования, для субмакроблока.
Аналого-цифровой преобразователь 101 осуществляет аналого-цифровое преобразование данных входного изображения и выводит их для сохранения в буфер 102 переупорядочивания экранного изображения.
Буфер 102 переупорядочивания экранного изображения переупорядочивает сохраненное изображение с кадрами, располагающимися в порядке их отображения, перестраивая их в порядок следования кадров для кодирования в соответствии с GOP -структурой (структурой Группы изображений). Буфер 102 переупорядочивания экранного изображения предоставляет изображение, в котором был переупорядочен порядок следования кадров, арифметическому модулю 103. Буфер 102 переупорядочивания экранного изображения предоставляет изображение, в котором порядок следования кадров был переупорядочен, также модулю 114 внутрикадрового предсказания и модулю 122 предсказания/компенсации движения.
Арифметический модуль 103 вычитает предсказанное изображение, предоставляемое через переключатель 116 от модуля 114 внутрикадрового предсказания или модуля 122 предсказания/компенсации движения, из изображения, считываемого из буфера 102 переупорядочивания экранного изображения, и выводит информацию разности на модуль 104 ортогонального преобразования.
Например, в случае изображения, над которым выполняется внутрикадровое кодирование, арифметический модуль 103 вычитает, из изображения, считываемого из буфера 102 переупорядочивания экранного изображения, предсказанное изображение, предоставляемое модулем 114 внутрикадрового предсказания. Кроме того, в случае изображения, над которым выполняется межкадровое кодирование, например, арифметический модуль 103 вычитает из изображения, считываемого из буфера 102 переупорядочивания экранного изображения, предсказанное изображение, предоставляемое модулем 115 предсказания/компенсации движения.
Модуль 104 ортогонального преобразования выполняет над информацией разности, предоставленной из арифметического модуля 103, ортогональное преобразование, такое как дискретное косинусное преобразование и преобразование Карунена - Лоэва (Karhunen - Loeve) и предоставляет коэффициент преобразования модулю 105 квантования.
Модуль 105 квантования осуществляет квантование коэффициента преобразования, выводимого модулем 104 ортогонального преобразования. Модуль 105 квантования, взаимодействуя с модулем 121 квантования субмакроблока, основываясь на информации, предоставленной от контроллера 117 отношения, устанавливает параметр квантования для каждого субмакроблока, который представляет собой область, меньшую чем макроблок, и выполняет квантование. Модуль 105 квантования предоставляет квантованный коэффициент преобразования модулю 106 кодирования без потерь.
Модуль 106 кодирования без потерь выполняет над квантованным коэффициентом преобразования кодирование без потерь, такое как кодирование с переменной длиной кодового слова и арифметическое кодирование.
Модуль 106 кодирования без потерь получает от модуля 114 внутрикадрового предсказания информацию, указывающую внутрикадровое предсказание и тому подобное, и получает от модуля 115 предсказания/компенсации движения информацию, указывающую режим межкадрового предсказания, информацию вектора движения и тому подобное. Между тем, информация, указывающая внутрикадровое предсказание, (внутрикадровое предсказание) в дальнейшем также именуется как информация режима внутрикадрового предсказания. Кроме того, информация, указывающая информационный режим, указывающий межкадровое предсказание, (межкадровое предсказание) в дальнейшем также именуется как информация режима межкадрового предсказания.
Модуль 106 кодирования без потерь кодирует квантованный коэффициент преобразования и делает различные секции информации, такие как коэффициент фильтрации, информация режима внутрикадрового предсказания, информация режима межкадрового предсказания и параметр квантования, областью информации заголовка кодированных данных (мультиплексирует их). Модуль 106 кодирования без потерь предоставляет закодированные данные, полученные посредством кодирования, буферу 107 накопления для накопления.
Например, модуль 106 кодирования без потерь выполняет процесс кодирования без потерь, такой как кодирование с переменной длиной кодового слова или арифметическое кодирование. Кодирование с переменной длиной кодового слова включает в себя CAVLC - кодирование (Контекстно зависимое адаптивное кодирование с переменной длиной кодового слова), определенное системой H.264/AVC и тому подобное. Арифметическое кодирование включает в себя САВАС - кодирование (Контекстно зависимое адаптивное бинарное арифметическое кодирование) и тому подобное.
Буфер 107 накопления временно сохраняет в себе кодированные данные, предоставленные модулем 106 кодирования без потерь, и выводит их в качестве закодированного изображения, закодированного в системе H.264/AVC, в некоторые предварительно заданные моменты времени, например, на следующие за ним устройства записи и канал передачи данных, не проиллюстрированные на чертеже.
Коэффициент преобразования, подвергшийся квантованию в модуле 105 квантования, также предоставляется модулю 108, обратного квантования. Модуль 108 обратного квантования осуществляет над квантованным коэффициентом преобразования обратное квантование, способом, соответствующим квантованию в модуле 105 квантования. Модуль 108 обратного квантования выполняет преобразование, обратное квантованию, используя параметр квантования для каждого субмакроблока, установленный модулем 105 квантования, во взаимодействии с модулем 122 обратного квантования. Модуль 108 обратного квантования предоставляет полученный коэффициент преобразования модулю 109 обратного ортогонального преобразования.
Модуль 109 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование предоставленного коэффициента преобразования, используя способ, соответствующий процессу ортогонального преобразования, проводимому модулем 104 ортогонального преобразования. Выходные данные, полученные обратным ортогональным преобразованием (восстановленная информация разности) предоставляется арифметическому модулю 110.
Арифметический модуль 110 суммирует предсказанное изображение, предоставляемое через переключатель 116 модулем 114 внутрикадрового предсказания или модулем 122 предсказания/компенсации движения, с результатом обратного ортогонального преобразования, то есть с восстановленной информацией разности, предоставляемой модулем 109 обратного ортогонального преобразования, получая локально декодированное изображение (декодированное изображение).
Например, когда информация разности соответствует изображению, на котором выполняется внутрикадровое кодирование, арифметический модуль 110 суммирует предсказанное изображение, предоставляемое модулем 114 внутрикадрового предсказания с информацией разности. Кроме того, например, когда информация разности соответствует изображению, на котором выполняется межкадровое кодирование, арифметический модуль 110 суммирует с информацией разности предсказанное изображение, предоставляемое модулем 122 предсказания/компенсации движения.
Результат суммирования предоставляется фильтру 111 устранения блочности или памяти 112 кадров.
Фильтр 111 устранения блочности устраняет вызванное блочностью искажение декодированного изображения, надлежащим образом выполняя фильтрацию устранения блочности, и повышает качество изображения, надлежащим образом выполняя фильтрацию в цепи обратной связи с использованием, например, фильтра Винера. Фильтр 111 устранения блочности классифицирует каждый пиксель и выполняет соответствующую фильтрацию для каждого класса. Фильтр 111 устранения блочности предоставляет результат процесса фильтрации в память 112 кадров.
Память 112 кадров выводит аккумулированное опорное изображение в некоторые предварительно заданные моменты времени через переключатель 113 на модуль 114 внутрикадрового предсказания или в модуль 115 предсказания/компенсации движения.
Например, в случае изображения, над которым выполняется внутрикадровое кодирование, память 112 кадров предоставляет указанное опорное изображение через переключатель 113 модулю 114 внутрикадрового предсказания. Кроме того, например, в случае, когда выполняется межкадровое кодирование, память 112 кадров предоставляет указанное опорное изображение через переключатель 113 модулю 115 предсказания/компенсации движения.
В случае, когда опорное изображение, предоставляемое из памяти 112 кадров, представляет собой изображение, над которым выполняется внутрикадровое кодирование, переключатель 113 предоставляет это опорное изображение модулю 114 внутрикадрового предсказания. Кроме того, в случае, когда опорное изображение, предоставляемое из памяти 112 кадров, представляет собой изображение, над которым выполняется межкадровое кодирование, переключатель 113 предоставляет указанное опорное изображение модулю 115 предсказания/компенсации движения.
Модуль 114 внутрикадрового предсказания выполняет внутрикадровое предсказание (внутрикадровое предсказание) для генерирования предсказанного изображения с использованием значения пикселя на экране. Модуль 114 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов (режимов внутрикадрового предсказания).
Модуль 114 внутрикадрового предсказания генерирует предсказанное изображение во всех режимах внутрикадрового предсказания и оценивает каждое предсказанное изображение для выбора оптимального режима. После выбора оптимального режима внутрикадрового предсказания модуль 114 внутрикадрового предсказания предоставляет через переключатель 116 предсказанное изображение, сгенерированное в оптимальном режиме, арифметическому модулю 103 и арифметическому модулю 110.
Кроме того, как было описано выше, модуль 114 внутрикадрового предсказания, соответственно, предоставляет модулю 106 кодирования без потерь, такую информацию, как информация режима внутрикадрового предсказания, указывающая принятый режим внутрикадрового предсказания.
Модуль 115 предсказания/компенсации движения выполняет предсказание движения, используя входное изображение, предоставляемое буфером 102 переупорядочивания экранного изображения, и опорное изображение, предоставляемое через переключатель 113 из памяти 112 кадров, выполняет, процесс компенсации движения, соответствующий обнаруженному вектору движению, и генерирует предсказанное изображение (информацию изображения с межкадровым предсказанием) для изображения, над которым выполняется межкадровое кодирование.
Для генерирования предсказанного изображения модуль 115 предсказания/компенсации движения выполняет процесс межкадрового предсказания во всех рассматриваемых в качестве кандидатов режимах межкадрового предсказания. Модуль 115 предсказания/компенсации движения предоставляет через переключатель 116 сгенерированное предсказанное изображение арифметическому модулю 103 и арифметическому модулю 110.
Кроме того, модуль 115 предсказания/компенсации движения предоставляет информацию режима межкадрового предсказания, указывающую принятый режим межкадрового предсказания, и информацию вектора движения, указывающую вычисленный вектор движения, модулю 106 кодирования без потерь.
В случае изображения, над которым выполняется внутрикадровое кодирование, переключатель 116 предоставляет выходные данные модуля 114 внутрикадрового предсказания арифметическому модулю 103 и арифметическому модулю 110, а в случае изображения, над которым выполняется межкадровое кодирование, переключатель 116 предоставляет выходные данные модуля 115 предсказания/компенсации движения арифметическому модулю 103 и арифметическому модулю 110.
Контроллер 117 скорости, основываясь на сжатом изображении, накапливаемом в буфере 107 накопления, управляет скоростью операции квантования в модуле 105 квантования таким образом, чтобы не имело место переполнение или опустошение буфера. Контроллер 117 скорости предоставляет модулю 105 квантования информацию, указывающую сложность изображения, для каждого субмакроблока, который представляет собой малую область, полученную путем разделения макроблока на множество областей.
Например, в качестве информации, указывающей сложность изображения, контроллер 117 скорости предоставляет модулю 105 квантования показатель активности, который представляет собой информацию, указывающую дисперсию пиксельных значений. Само собой разумеется, что информация, указывающая сложность изображения, может представлять собой любую информацию.
Модуль 121 квантования субмакроблока получает от модуля 105 квантования информацию, указывающую сложность изображения для каждого субмакроблока, установленный, основываясь на информации, значение квантования (шаг квантования) для каждого субмакроблока и возвращает это значение модулю 105 квантования.
Модуль 122 обратного квантования, для субмакроблока, получает от модуля 108 обратного квантования, параметр квантования, получает, используя это значение параметра, значение квантования для каждого субмакроблока и возвращает это значение модулю 108 обратного квантования.
Квантование при AVC - кодировании
Здесь, в качестве примера традиционного процесса квантования описывается квантование, определенное стандартом AVC (Усовершенствованного кодирования видеоданных).
Хотя целочисленная матрица [Н] преобразования, определенная стандартом AVC, не удовлетворяет требованию матрицы ортогонального преобразования, представленной нижеследующим уравнением (1), процесс ортогонального преобразования выполняется путем выполнения различных процессов квантования над соответствующими компонентами после целочисленного преобразования и сочетания целочисленного преобразования и квантования.
<mrow><mrow><mo>[</mo><mi>H</mi><mo>]</mo></mrow><msup><mrow><mrow><mo>[</mo><mi>H</mi><mo>]</mo></mrow></mrow><mi>T</mi></msup><mo>=</mo><mrow><mo>[</mo><mi>I</mi><mo>]</mo></mrow><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>
В стандарте AVC возможно определение параметра QP квантования для выполнения квантования, который может иметь значения от "0" до "51", для каждого макроблока.
Например, предположим, что A (QP) и В (QP) имеют значения, которые удовлетворяют нижеследующему уравнению (2), независимо от значения QP.
<mrow><mi>A</mi><mrow><mo>(</mo><mrow><mi>Q</mi><mi>P</mi></mrow><mo>)</mo></mrow><mo>*</mo><mi>B</mi><mrow><mo>(</mo><mrow><mi>Q</mi><mi>P</mi></mrow><mo>)</mo></mrow><mo>=</mo><mn>2</mn><mi>m</mi><mo>+</mo><mi>n</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
Ортогональное преобразование и преобразование, обратное ортогональному, в стандарте AVC могут быть реализованы посредством операции, представленной нижеследующими уравнениями (3) и (4).
<mrow><mi>d</mi><mo>=</mo><mi>c</mi><mo>*</mo><mi>A</mi><mrow><mo>(</mo><mrow><mi>Q</mi><mi>P</mi></mrow><mo>)</mo></mrow><mo>/</mo><msup><mn>2</mn><mi>m</mi></msup><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>
<mrow><mi>c</mi><mo>'</mo><mo>=</mo><mi>d</mi><mo>*</mo><mi>B</mi><mrow><mo>(</mo><mrow><mi>Q</mi><mi>P</mi></mrow><mo>)</mo></mrow><mo>/</mo><msup><mn>2</mn><mi>n</mi></msup><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>
При этом с представляет коэффициент ортогонального преобразования перед квантованием, d представляет коэффициент ортогонального преобразования после квантования, а с' представляет коэффициент ортогонального преобразования после процесса, обратного квантованию.
При выполнении такого рода процесса при AVC - кодировании имеется возможность реализовать процесс квантования и обратное квантование, не посредством разделения, а только лишь посредством операции сдвига.
Между тем, значения А и В отличаются в зависимости от компонентов.
Параметр QP квантования разработан таким образом, что в случае, когда значение этого параметра увеличивается на 6, как, например, с 6 до 12, выполняется процесс квантования в два раза более грубый, чем исходный.
Y
В частности, при более низкой битовой скорости передачи данных, то есть, при более высоком значении QP легко можно заметить ухудшение в сигнале цветности. По этой причине принимаемый по умолчанию параметр QPc квантования для сигнала цветности определяется относительно параметра QP квантования для сигнала яркости так, как это показано в таблице на Фиг.2.
Пользователь может управлять этой зависимостью, задавая информацию о ChromaQPOffset (Сдвиге Параметра квантования для сигнала цветности), включенном в состав сжатой информации изображения.
Кроме того, в случае профиля, не ниже чем Высокий профиль, имеется возможность независимо устанавливать параметр квантования для составляющей Cb/Cr, используя ChromaQPOffset (Сдвиг Параметра квантования для сигнала цветности) и 2ndChromaQPOffset (Второй сдвиг Параметра квантования для сигнала цветности).
Вычисление параметра квантования
В системе кодирования по стандарту AVC и системах кодирования, раскрытых в непатентных документах 1 и 2, параметр MB_QP квантования для каждого макроблока вычисляется следующим образом.
Y
То есть сначала, исходя из значения bit_depth_luma_minus8 в наборе параметров последовательности вычисляется QpBdOffset, как это представлено нижеследующим уравнением (5).
<mrow><mi>Q</mi><mi>p</mi><mi>B</mi><mi>d</mi><mi>O</mi><mi>f</mi><mi>f</mi><mi>s</mi><mi>e</mi><msub><mi>t</mi><mi>Y</mi></msub><mo>=</mo><mn>6</mn><mo>*</mo><mi>b</mi><mi>i</mi><mi>t</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>p</mi><mi>t</mi><mi>h</mi><mo>_</mo><mi>l</mi><mi>u</mi><mi>m</mi><mi>a</mi><mo>_</mo><mi>min</mi><mi>u</mi><mi>s</mi><mn>8</mn><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>
Далее, начальное значение параметра квантования на каждом изображении определяется значением pic_init_qp_minus26 в наборе параметров изображения.
Y
Далее, посредством значения slice_qp_delta, определенного на уровне слоя, параметр SliceQP квантования в слое вычисляется так, как это представлено нижеследующим уравнением (6).
<mrow><mi>S</mi><mi>l</mi><mi>i</mi><mi>c</mi><mi>e</mi><mi>Q</mi><mi>P</mi><mi>Y</mi><mo>=</mo><mn>26</mn><mo>+</mo><mi>p</mi><mi>i</mi><mi>c</mi><mo>_</mo><mi>i</mi><mi>n</mi><mi>i</mi><mi>t</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>min</mi><mi>u</mi><mi>s</mi><mn>26</mn><mo>+</mo><mi>s</mi><mi>l</mi><mi>i</mi><mi>c</mi><mi>e</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>
Наконец, с использованием значения mb_qp_delta на уровне макроблока вычисляется параметр MB_QP квантования для каждого макроблока так, как это представлено нижеследующим уравнением (7).
<mtable columnalign="left"><mtr><mtd><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>=</mo><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><msub><mi>P</mi><mrow><mi>Pr</mi><mi>e</mi><mi>v</mi></mrow></msub><mo>+</mo><mi>m</mi><mi>b</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi><mo>+</mo><mn>52</mn><mo>+</mo><mn>2</mn><mo>*</mo><mi>Q</mi><mi>p</mi><mi>B</mi><mi>d</mi><mi>O</mi><mi>f</mi><mi>f</mi><mi>s</mi><mi>e</mi><msub><mi>t</mi><mi>Y</mi></msub></mrow><mo>)</mo></mrow><mi>%</mi><mrow><mo>(</mo><mrow><mn>52</mn><mo>+</mo><mi>Q</mi><mi>p</mi><mi>B</mi><mi>d</mi><mi>O</mi><mi>f</mi><mi>f</mi><mi>s</mi><mi>e</mi><msub><mi>t</mi><mi>Y</mi></msub></mrow><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>−</mo><mi>Q</mi><mi>p</mi><mi>B</mi><mi>d</mi><mi>O</mi><mi>f</mi><mi>f</mi><mi>s</mi><mi>e</mi><msub><mi>t</mi><mi>Y</mi></msub><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mtd></mtr></mtable>
Prev
Здесь, MB_QP представляет параметр квантования для предшествующего макроблока.
В данной технологии, в дополнение к этому, при сжатии изображения в состав уровня субмакроблока дополнительно включается информация о submb_qp_delta.
С использованием этой информации вычисляется параметр SubMB_QP квантования для каждого субмакроблока так, как это представлено нижеследующим уравнением (8).
<mrow><mi>S</mi><mi>u</mi><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mrow><mo>(</mo><mrow><mn>0,51</mn><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>+</mo><mi>s</mi><mi>u</mi><mi>b</mi><mi>m</mi><mi>b</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>
Здесь, Clip(min,max,value) представляет функцию, имеющую возвращаемое значение, которое представлено нижеследующим уравнением (9).
Уравнение 9
<mrow><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mrow><mo>(</mo><mrow><mi>min</mi><mo>,</mo><mi>max</mi><mo>,</mo><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi></mrow><mo>)</mo></mrow><mo>=</mo><mtable><mtr><mtd><mrow><mi>min</mi><mo>,</mo><mi>i</mi><mi>f</mi><mrow><mo>(</mo><mrow><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi><mo><</mo><mi>min</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>max</mi><mo>,</mo><mi>i</mi><mi>f</mi><mrow><mo>(</mo><mrow><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi><mo><</mo><mi>max</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi><mo>,</mo><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mo>…</mo><mtext> </mtext><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mrow>
Таким образом, параметр (SubMB_QP) квантования для каждого субмакроблока вычисляется так, как это представлено нижеследующим уравнением (10). Здесь, определяемый заранее минимальный параметр квантования обозначен как minQP, а определяемый заранее максимальный параметр квантования обозначен как maxQP.
Уравнение 210
<mtable columnalign="left"><mtr><mtd><mi>S</mi><mi>U</mi><mi>B</mi><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>=</mo><mtable><mtr><mtd><mrow><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mrow><mo>(</mo><mrow><mi>min</mi><mi>Q</mi><mi>P</mi><mo>,</mo><mi>max</mi><mi>Q</mi><mi>P</mi><mo>,</mo><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi></mrow></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mrow><mo>+</mo><mi>s</mi><mi>u</mi><mi>b</mi><mi>m</mi><mi>b</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mtd></mtr><mtr><mtd><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>10</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable>
Между тем, в случае, когда в сжатой информации изображения нет submb_qp_delta, значение этой переменной устанавливается в "0", и параметр квантования для макроблока также применяется и к субмакроблоку.
Модуль квантования
Фиг.5 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля 105 квантования, показанного на Фиг.1. Как проиллюстрировано на Фиг.5, модуль 105 квантования включает в себя буфер 151 показателя активности для субмакроблока, модуль 152 вычисления параметра квантования и процессор 153 квантования.
Буфер 151 показателя "активности" для субмакроблока сохраняет в памяти показатель активности, предоставляемый из контроллера 117 скорости. Хотя в системе кодирования по стандарту AVC выполняется адаптивное квантование, основанное на показателе активности, которое определено в тестовой модели MPEG - 2, контроллер 117 скорости вычисляет показатель активности для каждого субмакроблока (также именуемый как показатель активности для субмакроблока). Способ вычисления показателя активности для субмакроблока аналогичен способу вычисления показателя активности в традиционном случае, при котором показатель активности вычисляется для каждого макроблока.
Буфер 151 показателя активности для субмакроблока сохраняет в памяти показатель активности для субмакроблока, предоставляемое контроллером 117 коэффициента, и предоставляет сохраненный показатель активности для субмакроблока модулю 121 квантования субмакроблока для каждого предварительно установленного количества (например, количества одного экрана).
Модуль 121 квантования субмакроблока, используя показатель активности для субмакроблока, предоставляемый из буфера 151 показателя активности для субмакроблока, вычисляет значение квантования для каждого субмакроблока. Значение квантования для каждого субмакроблока может быть вычислено способом, аналогичным способу вычисления в случае, при котором значение квантования для каждого макроблока вычисляется, исходя из показателя активности для каждого макроблока.
После получения значения квантования для каждого субмакроблока модуль 121 квантования субмакроблока предоставляет значение квантования для каждого субмакроблока модулю 152 вычисления параметра квантования.
Модуль 152 вычисления параметра квантования, используя значение квантования для каждого субмакроблока, предоставляемое модулем 121 квантования субмакроблока, вычисляет различные параметры квантования.
Например, модуль 152 вычисления параметра квантования вычисляет такие параметры квантования, как pic_init_qp_minus26, slice_qp_delta и mb_qp_delta. Исходя из значения квантования для каждого субмакроблока модуль 152 вычисления параметра квантования может получить значение квантования для каждого макроблока. Следовательно, модуль 152 вычисления параметра квантования вычисляет различные параметры квантования для установки, как в случае традиционной системы кодирования по стандарту AVC.
Модуль 152 вычисления параметра квантования далее получает параметр submb_qp_delta квантования, указывающий разность между параметром MB_QP квантования для каждого макроблока и параметром SubMB_QP квантования для каждого субмакроблока. Требуется передавать параметр квантования для каждого субмакроблока стороне декодирования. Посредством получения значения разности таким способом, становится возможным уменьшить количество кода параметра квантования для каждого субмакроблока. Если можно так выразиться, параметр submb_qp_delta квантования представляет собой формат передачи параметра SubMB_QP квантования. Параметр SubMB_QP квантования для каждого субмакроблока может быть получен посредством преобразования значения квантования для каждого субмакроблока. Аналогичным образом, параметр MB_QP квантования для каждого макроблока получается посредством преобразования значения квантования для каждого макроблока. Модуль 152 вычисления параметра квантования вычисляет значение submb_qp_delta для каждого субмакроблока, используя, например, вышеописанное уравнение (35).
Модуль 152 вычисления параметра квантования предоставляет значение квантования для каждого субмакроблока в процессор 153 квантования. Кроме того, модуль 152 вычисления параметра квантования предоставляет различные вычисленные параметры квантования (в частности, pic_init_qp_minus26, slice_qp_delta, mb_qp_delta и тому подобное) модулю 106 кодирования без потерь и передают их вместе с закодированным потоком, полученным посредством кодирования изображения. Между тем, как было описано выше, в случае, когда значение submb_qp_delta составляет "0", передача значения submb_qp_delta не производится. Таким образом, в этом случае, модулю 106 кодирования без потерь предоставляется параметр квантования, отличный от submb_qp_delta.
Кроме того, модуль 152 вычисления параметра квантования предоставляет значение квантования для каждого субмакроблока также и модулю 108 обратного квантования.
Процессор 153 квантования осуществляет квантование коэффициента ортогонального преобразования, который предоставляется модулем 104 ортогонального преобразования, с использованием значения квантования для каждого субмакроблока.
Процессор 153 квантования предоставляет квантованный коэффициент ортогонального преобразования модулю 106 кодирования без потерь и модулю 108 обратного квантования.
Между тем, модуль 108 обратного квантования, осуществляет обратное квантование коэффициента ортогонального преобразования, подвергнутого квантованию вышеописанным модулем 105 квантования, с использованием модуля 122 обратного квантования, для субмакроблока. В устройстве декодирования изображения, соответствующего устройству 100 кодирования изображения, также выполняется процесс, аналогичный процессу, обратному квантования, так что обратное квантование, подробно описывается при описании устройства декодирования изображения.
В традиционном случае, таком как система кодирования по стандарту AVC, для одного макроблока может быть установлен только один параметр квантования. Следовательно, в случае, при котором в одном макроблоке смешаны планарная область и область, включающая в себя текстуру, трудно установить параметр квантования, подходящий для обеих из областей.
В частности, чем больше размер макроблока, как у расширенного макроблока (расширенной частной области изображения) предложенного в непатентном документе 2 и тому подобном, тем выше вероятность того, что в этой области будут смешаны изображения, имеющие различные характеристики, так что становится более трудно выполнять адаптивное квантование, корреспондирующее характеристикам каждой области.
С другой стороны, устройство 100 кодирования изображения может вычислять посредством контроллера 117 скорости показатель, указывающий сложность изображения для каждого субмакроблока, и может посредством модуля 121 квантования субмакроблока вычислять значение квантования для каждого субмакроблока. Таким образом, процессор 153 квантования может выполнять процесс квантования, используя значение квантования, подходящее для каждого субмакроблока.
В соответствии с этим, устройство 100 кодирования изображения может выполнять процесс квантования, более подходящий для содержания изображения. В частности, также в случае, при котором размер макроблока расширен и в состав единого макроблока входят как однотонная область, так и область, включающая в себя текстуру, устройство 100 кодирования изображения может выполнять адаптивный процесс квантования, подходящий для каждой области, препятствуя ухудшению субъективного качества изображения.
Например, на изображении 160, проиллюстрированном на Фиг.6, макроблок 161 включает в себя только однотонную область. Следовательно, даже в том случае, когда устройство 100 кодирования изображения выполняет процесс квантования, используя единственный параметр квантования для такого макроблока 161, особой проблемы с качеством изображения не возникает.
С другой стороны, макроблок 162 включает в себя как однотонную область, так и область текстуры. В ходе процесса квантования с использованием единственного параметра квантования нет возможности выполнить адаптивное квантование, подходящее как для однотонной области и области текстуры. Следовательно, если устройство 100 кодирования изображения выполняет процесс квантования с использованием единственного параметра квантования для такого макроблока 161, субъективное качество изображения для декодированного изображения могло бы ухудшиться.
В таком случае, также устройство 100 кодирования изображения может вычислять значение квантования для каждого субмакроблока, как это описано выше, так что имеется возможность выполнить более походящий процесс квантования для того, чтобы воспрепятствовать ухудшению субъективного качества изображения.
Кроме того, в случае, когда вероятно, что полное количество кода для каждого изображения переполнит буфер 107 накопления, выполняется управление по параметру квантования. Следовательно, при этом, позволяя модулю 105 квантования вычислять значение квантования для каждого субмакроблока и выполнять квантование так, как это описано выше, устройство 100 кодирования изображения может управлять измерением против переполнения в меньшем элементе.
Кроме того, в случае, когда значение submb_qp_delta составляет "0", передача submb_qp_ delta не производится, так что имеется возможность воспрепятствовать ненужному снижению эффективности кодирования. Когда значение submb_qp_delta составляет "0", параметр SubMB_QP квантования для каждого субмакроблока и параметр MB_QP квантования для каждого макроблока равны друг другу. Следовательно, имеется возможность делать параметр MB_QP квантования для каждого макроблока параметром SubMB_QP квантования для каждого субмакроблока на стороне декодирования, так что значение submb_qp_delta ("0") не требуется. Следовательно, имеется возможность не производить передачу submb_qp_delta, как это описано выше. Само собой разумеется, что параметр submb_qp_delta, имеющий значение "0", может быть передан; однако, не производя передачу submb_qp_delta, имеется возможность повысить эффективность кодирования.
Алгоритм процесса кодирования
Далее описывается алгоритм каждого процесса, выполняемого вышеописанным устройством 100 кодирования изображения. Сначала, со ссылкой на блок-схему алгоритма, показанную на Фиг.7, описывается пример алгоритма процесса кодирования.
На этапе S 101 аналого-цифровой преобразователь 101 осуществляет аналого-цифровое преобразование входного изображения. На этапе S 102 буфер 102 переупорядочивания экранного изображения сохраняет подвергшееся аналого-цифровому преобразованию изображение и переупорядочивает изображения, следующие в порядке отображения, перестраивая их в порядок для кодирования.
На этапе S 103 арифметический модуль 103 вычисляет разность между изображением, переупорядоченным посредством процесса на этапе S 102, и предсказанным изображением. Предсказанное изображение предоставляется арифметическому модулю 103 через переключатель 116 от, соответственно, модуля 115 предсказания/компенсации движения - в случае межкадрового предсказания, и от модуля 114 внутрикадрового предсказания в случае внутрикадрового предсказания.
Количество данных для данных разности меньше чем количество данных для данных исходного изображения. Следовательно, имеется возможность сжать количество данных по сравнению со случаем, при котором кодируется непосредственно изображение.
На этапе S 104 модуль 104 ортогонального преобразования осуществляет ортогональное преобразование информации разности, сгенерированной посредством процесса на этапе S 103. В частности, выполняется ортогональное преобразование, такое как дискретное косинусное преобразование и преобразование Карунена-Лоэва, и выводится коэффициент преобразования.
На этапе S 105 модуль 105 квантования и модуль 121 квантования субмакроблока получают параметр квантования. Алгоритм процесса вычисления параметра квантования подробно описывается позже.
На этапе S 106 процессор 153 квантования, входящий в состав модуля 105 квантования осуществляет квантование коэффициента ортогонального преобразования, полученного посредством процесса на этапе S 104, используя при этом значение квантования для каждого субмакроблока, вычисленное посредством процесса на этапе S 105.
Информация разности, квантованная посредством процесса на этапе S 106, локально декодируется следующим образом. А именно: на этапе S 107 модуль 108 обратного квантования, осуществляет обратное квантование квантованного коэффициента ортогонального преобразования (также именуемым как квантованный коэффициент), сгенерированного посредством процесса на этапе S 106, в соответствии с характеристиками, согласно характеристикам модуля 105 квантования. На этапе S 108 модуль 109 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование коэффициента ортогонального преобразования, полученного посредством процесса на этапе S 107, в соответствии с характеристиками, согласно характеристикам модуля 104 ортогонального преобразования.
На этапе S 109 арифметический модуль 110 суммирует предсказанное изображение с локально декодированной информацией разности для генерирования локально декодированное изображения (изображения, соответствующего входным данным арифметического модуля 103). На этапе S 110 фильтр 111 устранения блочности фильтрует изображение, сгенерированное посредством процесса на этапе S 109. В соответствии с этим, удаляется вызванное блочностью искажение.
На этапе S 111 память 112 кадров сохраняет изображение, из которого посредством процесса на этапе S 110 было удалено искажение, вызванное блочностью. Между тем, изображение, которое не подвергнуто процессу фильтрации фильтром 111 устранения блочности, также предоставляется арифметическим модулем 110 в память 112 кадров для хранения.
На этапе S 112 модуль 114 внутрикадрового предсказания выполняет в режиме внутрикадрового предсказания процесс внутрикадрового предсказания. На этапе S 113 модуль 115 предсказания/компенсации движения выполняет процесс межкадрового предсказания движения, в ходе которого в режиме межкадрового предсказания выполняются предсказание движения и компенсация движения.
На этапе S 114 переключатель (116) определяет оптимальный режим предсказания, основываясь на каждом значении функции стоимости, выводимой модулем 114 внутрикадрового предсказания и модулем 115 предсказания/компенсации движения.
Таким образом, переключатель 116 выбирает предсказанное изображение, сгенерированное модулем 114 внутрикадрового предсказания, или предсказанное изображение, сгенерированное модулем 115 предсказания/компенсации движения.
Кроме того, информация выбора, указывающая выбранное предсказанное изображение, предоставляется тому модулю 114 внутрикадрового предсказания или модулю 115 предсказания/компенсации движения, чье предсказанное изображение выбрано. В случае, когда выбрано предсказанное изображение в оптимальном режиме внутрикадрового предсказания, модуль 114 внутрикадрового предсказания предоставляет информацию, указывающую оптимальный режим внутрикадрового предсказания (то есть информацию режима внутрикадрового предсказания), модулю 106 кодирования без потерь.
В случае, когда выбрано предсказанное изображение оптимального режима межкадрового предсказания, модуль 115 предсказания/компенсации движения выводит на модуль 106 кодирования без потерь информацию, указывающую оптимальный режим межкадрового предсказания, и информацию, соответствующую оптимальному режиму межкадрового предсказания, в соответствии с потребностью. Информация, соответствующая оптимальному режиму межкадрового предсказания, включает в себя информацию вектора движения, информацию органа, информацию об опорном кадре и тому подобное.
На этапе S 115 модуль 106 кодирования без потерь кодирует коэффициент преобразования, квантованный посредством процесса на этапе S 106. Таким образом, кодирование без потерь, такое как кодирование с переменной длиной кодового слова и арифметическое кодирование, выполняется над разностным изображением (вторичное разностное изображение в случае межкадрового предсказания).
Между тем, модуль 106 кодирования без потерь кодирует параметр квантования, вычисленный на этапе S 105, для того, чтобы добавить его к закодированным данным.
Кроме того, модуль 106 кодирования без потерь кодирует информацию о режиме предсказания предсказанного изображения, выбранного посредством процесса на этапе S 114, для того, чтобы добавить ее к закодированным данным, полученным посредством кодирования разностного изображения. Таким образом, модуль 106 кодирования без потерь кодирует информацию режима внутрикадрового предсказания, предоставляемую модулем 114 внутрикадрового предсказания или информацию, корреспондирующую оптимальному режиму межкадрового предсказания, предоставляемую модулем 115 предсказания/компенсации движения, и тому подобное для того, чтобы добавить ее к закодированным данным.
На этапе S 116 накопительный буфер 107 накапливает закодированные данные, выводимые модулем 106 кодирования без потерь. Закодированные данные, накопленные в буфере 107 накопления, надлежащим образом считываются для того, чтобы быть переданными на сторону декодирования через канал передачи.
На этапе S 117 контроллер 117 скорости, основываясь на сжатом изображении, накопленном в буфере 107 накопления в ходе процесса на этапе S 116, управляет скоростью операции квантования в модуле 105 квантования таким образом, чтобы не происходило переполнение или опустошение.
Когда процесс на этапе S 117 заканчивается, процесс кодирования заканчивается.
Алгоритм процесса вычисления параметра квантования
Далее, со ссылкой на блок-схему алгоритма, показанную на Фиг.8, описывается пример алгоритма процесса вычисления параметра квантования, выполняемого на этапе S 105, показанном на Фиг.7.
Когда процесс вычисления параметра квантования запущен, буфер 151 показателя активности для субмакроблока на этапе S 131 получает показатель активности для субмакроблока, предоставляемый контроллером 117 скорости. Буфер 151 показателя активности для субмакроблока сохраняет полученный показатель активности для субмакроблоков в количестве, например, одного экрана.
На этапе S 132 модуль 121 квантования субмакроблока получает показатель активности для субмакроблоков в количестве одного экрана, например, из буфера 151 показателя активности для субмакроблока. После этого, модуль 121 квантования субмакроблока, используя полученный показатель активности для субмакроблока, вычисляет значение квантования для каждого субмакроблока.
На этапе S 133 модуль 152 вычисления параметра квантования, используя значение квантования для каждого субмакроблока, вычисленное на этапе S 132, получает параметр pic_init_qp_minus26 квантования.
На этапе S 134 модуль 152 вычисления параметра квантования, используя значение квантования для каждого субмакроблока, вычисленное на этапе S 132, получает параметр slice_qp_delta квантования.
На этапе S 135 модуль 152 вычисления параметра квантования, используя значение квантования для каждого субмакроблока, вычисленное на этапе S 132, получает параметр mb_qp_delta квантования.
На этапе S 136 модуль 152 вычисления параметра квантования, используя значение квантования для каждого субмакроблока, вычисленное на этапе S 132, получает параметр mb_qp_delta квантования.
После получения различных параметров квантования, как это описано выше, модуль 105 квантования завершает процесс операции с параметрами квантования, возвращает процесс на этап S 105, показанный на Фиг.7, и позволяет выполняться процессу на этапе S 106 и последующих этапах.
Поскольку процесс кодирования и процесс вычисления параметра квантования выполняются способом, описанным выше, то устройство 100 кодирования изображения может установить значение квантования для каждого субмакроблока и выполнять более подходящий процесс квантования.
Кроме того, поскольку параметр квантования, вычисленный этим способом, передается устройству кодирования изображения, то устройство 100 кодирования изображения может позволить устройству декодирования изображения получить значение квантования для каждого субмакроблока и выполнить обратное квантование, используя это значение.
2. Второй вариант реализации изобретения
Устройство декодирования изображения
Фиг.9 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства декодирования изображений, к которому применена данная технология. Устройство 200 декодирования изображения, проиллюстрированное на Фиг.9, представляет собой устройство декодирования, соответствующее устройству 100 кодирования изображения.
Кодированные данные, закодированные устройством 100 кодирования изображения, передаются через некоторый предварительно заданный канал передачи данных устройству 200 декодирования изображения, соответствующего устройству 100 кодирования изображения, для декодирования.
Как проиллюстрировано на Фиг.9, устройство 200 декодирования изображения включает в себя буфер 201 накопления, модуль 202 декодирования без потерь, модуль 203 обратного квантования, модуль 204 обратного ортогонального преобразования, арифметический модуль 205, фильтр 206 устранения блочности, буфер 207 переупорядочивания экранного изображения и цифроаналоговый преобразователь 208. Устройство 200 декодирования изображения также включает в себя память 209 кадров, переключатель 210, модуль 211 внутрикадрового предсказания, модуль 212 предсказания/компенсации движения и переключатель 213.
Кроме того, устройство 200 декодирования изображения включает в себя модуль 221 обратного квантования, для субмакроблока.
Буфер 201накопления накапливает переданные закодированные данные. Эти закодированные данные закодированы устройством 100 кодирования изображения. Модуль 202 декодирования без потерь декодирует закодированные данные, считываемые из буфера 201 накопления в некоторые предварительно заданные моменты времени, посредством системы, соответствующей системе кодирования в модуле 106 кодирования без потерь, показанном на Фиг.1.
Модуль 203 обратного квантования, функционирует во взаимодействии с модулем 221 обратного квантования, для субмакроблока, таким образом, чтобы осуществлять обратное квантование данных коэффициента: полученных посредством декодирования модулем 202 декодирования без потерь, (квантованным коэффициентом) посредством системы, соответствующей системе квантования в модуле 105 квантования, показанном на Фиг.1. Таким образом, модуль 203 обратного квантования осуществляет обратное квантование квантованного коэффициента способом, аналогичным способу, применяемому в модуле 108 обратного квантования, показанном на Фиг.1, используя параметр квантования, вычисленный для каждого субмакроблока, предоставляемого устройством 100 кодирования изображения.
Модуль 203 обратного квантования предоставляет данные коэффициента, подвергшиеся обратному квантованию, то есть коэффициент ортогонального преобразования, модулю 204 обратного ортогонального преобразования. Модуль 204 обратного ортогонального преобразования осуществляет над коэффициентом ортогонального преобразования обратное ортогональное преобразование посредством системы, соответствующей системе ортогонального преобразования в модуле 104 ортогонального преобразования, показанном на Фиг.1, таким образом, чтобы получить декодированные разностные данные, соответствующие разностным данным перед ортогональным преобразованием посредством устройства 100 кодирования изображения.
Декодированные разностные данные, полученные посредством обратного ортогонального преобразования, предоставляются арифметическому модулю 205. Арифметическому модулю 205 также предоставляется, через переключатель 213 модулем 211 внутрикадрового предсказания или модулем (212) предсказания/компенсации движения предсказанное изображение.
Арифметический модуль 205 суммирует декодированные разностные данные с предсказанным изображением, чтобы получить данные декодированного изображения, соответствующие данным изображения перед вычитанием предсказанного изображения, осуществляемым арифметическим модулем 103, входящим в состав устройства 100 кодирования изображения. Арифметический модуль 205 предоставляет декодированные данные изображения фильтру 206 устранения блочности.
Фильтр 206 устранения блочности удаляет из предоставленного декодированного изображения искажение, вызванное блочностью, и после этого предоставляет это изображение буферу 207 переупорядочивания экранного изображения.
Буфер 207 переупорядочивания экранного изображения переупорядочивает изображение. То есть кадры, переупорядоченные буфером 102 переупорядочивания экранного изображения, показанным на Фиг.1, в порядок для кодирования, переупорядочиваются в первоначальный порядок отображения. Цифроаналоговый преобразователь 208 осуществляет цифроаналоговое преобразование изображения, предоставленного из буфера 207 переупорядочивания экранного изображения, и выводит это изображение на устройство отображения (не проиллюстрированное на чертеже) для отображения.
После этого выходные данные фильтра 206 устранения блочности предоставляются памяти 209 кадров.
Память 209 кадров, переключатель 210, модуль 211 внутрикадрового предсказания, модуль 212 предсказания/компенсации движения и переключатель 213 соответствуют, соответственно, памяти 112 кадров, переключателю 113, модулю 114 внутрикадрового предсказания, модулю 115 предсказания/компенсации движения и переключателю 116, входящим в состав устройства 100 кодирования изображения.
Переключатель 210 считывает из памяти 209 кадров изображение, над которым выполняется процесс межкадрового предсказания, и опорное изображение для того, чтобы предоставить эти изображения модулю 212 предсказания/компенсации движения. Кроме того, переключатель 210 считывает из памяти 209 кадров изображение, используемое для внутрикадрового предсказания, для того, чтобы предоставить это изображение модулю 211 внутрикадрового предсказания.
Из модуля 202 декодирования без потерь модулю 211 внутрикадрового предсказания предоставляется надлежащим образом информация, указывающая режим внутрикадрового предсказания и тому подобное, полученная при декодировании информацию заголовка. Основываясь на этой информации, модуль 211 внутрикадрового предсказания генерирует из опорного изображения, полученного из памяти 209 кадров, предсказанное изображение и предоставляет сгенерированное предсказанное изображение переключателю 213.
Модуль 212 предсказания/компенсации движения получает от модуля 202 декодирования без потерь информацию, получаемую посредством декодирования информации заголовка, (информацию режима предсказания, информацию вектора движения, информацию об опорном кадре, флаг, различные параметры и тому подобное).
Основываясь на информации, предоставленной модулем 202 декодирования без потерь, модуль 212 предсказания/компенсации движения генерирует из опорного изображения, полученного из памяти 209 кадров, предсказанное изображение и предоставляет сгенерированное предсказанное изображение переключателю 213.
Переключатель 213 выбирает предсказанное изображение, сгенерированное модулем 212 предсказания/компенсации движения или модулем 211 внутрикадрового предсказания, и предоставляет это предсказанное изображение арифметическому модулю 205.
Модуль 221 обратного квантования, для субмакроблока, получает от модуля 203, обратного квантования, параметр квантования и получает с использованием уравнения 10 значение квантования для каждого субмакроблока и возвращает это значение квантования модулю 203 обратного квантования.
Модуль обратного квантования
Фиг.10 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации модуля 203 обратного квантования.
Как проиллюстрировано на Фиг.10, модуль 203 обратного квантования, включает в себя буфер 251 параметра квантования, буфер 252 коэффициента ортогонального преобразования, и процессор 253 обратного квантования.
Параметр, касающийся квантования на каждом уровне, такой как набор параметров изображения и заголовок слоя закодированных данных, предоставленных устройством 100 кодирования изображения, декодируется модулем 202 декодирования без потерь для того, чтобы быть предоставленным буферу 251 параметра квантования. Буфер 251 параметра квантования надлежащим образом сохраняет параметр квантования и в предварительно заданные моменты времени предоставляет параметр квантования модулю 221 обратного квантования, для субмакроблока.
Модуль 221 обратного квантования, для субмакроблока вычисляет параметр SubMB_QP квантования для каждого макроблока, как это представлено уравнениями: с (5) по (10), например, с использованием параметра квантования, предоставленного из буфера 251 параметра квантования, и преобразует его в значение квантования для каждого субмакроблока для того, чтобы предоставить это значение квантования процессору 253 обратного квантования.
Между тем, как было описано выше в первом варианте реализации изобретения, в случае, когда значение submb_qp_delta составляет "0", submb_qp_delta не передается. В случае, когда в параметре квантования, предоставленном из буфера 251 параметра квантования, значение submb_qp_delta отсутствует, модуль 221 обратного квантования, для субмакроблока, применяет к параметру SubMB_QP квантования для каждого субмакроблока значение параметра MB_QP квантования для каждого макроблока.
Кроме того, квантованный коэффициент ортогонального преобразования, полученный посредством декодирования закодированных данных, предоставленных устройством 100 кодирования изображения, модулем 202 декодирования без потерь, предоставляется буферу 252 коэффициента ортогонального преобразования. Буфер 252 коэффициента ортогонального преобразования надлежащим образом сохраняет квантованный коэффициент ортогонального преобразования и в предварительно заданные моменты времени предоставляет его процессору 253 обратного квантования.
Процессор 253 обратного квантования, осуществляет обратное квантование, над квантованным коэффициентом ортогонального преобразования, предоставленным из буфера 252 коэффициента ортогонального преобразования, используя значение квантования для каждого субмакроблока, предоставленное из модуля 221 обратного квантования, для субмакроблока. Процессор 253 обратного квантования, предоставляет коэффициент ортогонального преобразования, полученный посредством обратного квантования, модулю 204 обратного ортогонального преобразования.
Как было описано выше, модуль 203 обратного квантования, может выполнять обратное квантование, с использованием значения квантования, вычисленного для каждого субмакроблока. В соответствии с этим, устройство 200 декодирования изображения может выполнять обратное квантование, более подходящее для содержания изображения. В частности, даже в случае, при котором размер макроблока является расширенным, и в состав единого макроблока включены как однотонная область, так и область, включающая в себя текстуру, устройство 200 декодирования изображения может выполнять адаптивный обратное квантование, подходящий для каждой области, препятствуя ухудшению субъективного качества изображения для декодированного изображения.
Между тем, модуль 108 обратного квантования, входящий в состав устройства 100 кодирования изображения, проиллюстрированный на Фиг.1, также имеет конфигурацию, аналогичную конфигурации модуля 203 обратного квантования, и выполняет аналогичный процесс. Однако модуль 108 обратного квантования получает параметр квантования, предоставляемый модулем 105 квантования, и квантованный коэффициент ортогонального преобразования и выполняет обратное квантование.
Кроме того, модуль 108 обратного квантования предоставляет параметр квантования модулю 122 обратного квантования, для субмакроблока, каковой модуль выполняет, процесс, аналогичный процессу в модуле 221 обратного квантования, для субмакроблока, и позволяет модулю 122 обратного квантования, для субмакроблока генерировать значение квантования для каждого субмакроблока.
Алгоритм процесса декодирования
Далее описывается алгоритм каждого процесса, исполняемого вышеописанным устройством 200 декодирования изображения. Сначала, со ссылкой на блок-схему алгоритма, показанную на Фиг.11, описывается пример алгоритма процесса декодирования.
Когда процесс декодирования запущен, буфер 201 накопления на этапе S 201 накапливает передаваемые закодированные данные. На этапе S 202 модуль 202 декодирования без потерь декодирует закодированные данные, предоставляемые буфером 201 накопления. Таким образом, декодируются I - кадр, Р - кадр и В - кадр, закодированные модулем 106 кодирования без потерь, показанным на Фиг.1.
При этом также декодируются информация вектора движения, информация об опорном кадре, информация режима предсказания (режим внутрикадрового предсказания или режим межкадрового предсказания) и такая информация, как флаг и параметр квантования.
В случае, когда информация режима предсказания представляет собой информацию режима внутрикадрового предсказания, информация режима предсказания предоставляется модулю 211 внутрикадрового предсказания. В случае, когда информация режима предсказания представляет собой информацию режима межкадрового предсказания, информация вектора движения, корреспондирующая этой информации режима предсказания, предоставляется модулю 212 предсказания/компенсации движения.
На этапе S 203 модуль 203 обратного квантования осуществляет обратное квантование над квантованным коэффициентом ортогонального преобразования, полученным посредством декодирования модулем 202 декодирования без потерь. На этапе S 204 модуль 204 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование коэффициента ортогонального преобразования, который получен посредством обратного квантования, в модуле 203 обратного квантования, способом, соответствующим способу в модуле 104 ортогонального преобразования, показанному на Фиг.1. В соответствии с этим, декодируется информация разности, соответствующая входным данным модуля 104 ортогонального преобразования, который показан на Фиг.1 (выходные данные арифметического модуля 103).
На этапе S 205 арифметический модуль 205 суммирует предсказанное изображение с информацией разности, полученной посредством процесса на этапе S 204. В соответствии с этим, декодируются данные исходного изображения.
На этапе S 206 фильтр 206 устранения блочности фильтрует надлежащим образом декодированное изображение, полученное посредством процесса на этапе S 205. В соответствии с этим, из декодированного изображения надлежащим образом удаляется искажение, вызванное блочностью.
На этапе S 207 память 209 кадров сохраняет фильтрованное декодированное изображение.
На этапе S 208 модуль 211 внутрикадрового предсказания или модуль 212 предсказания/компенсации движения выполняет процесс предсказания изображения в соответствии с информацией режима предсказания, предоставляемой модулем 202 декодирования без потерь.
Таким образом, в случае, при котором модулем 202 декодирования без потерь предоставляется информация режима внутрикадрового предсказания, модуль 211 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания в режиме внутрикадрового предсказания. Кроме того, в случае, при котором из модуля 202 декодирования без потерь предоставляется информация режима межкадрового предсказания, модуль 212 предсказания/компенсации движения выполняет процесс предсказания движения в режиме межкадрового предсказания.
На этапе S 209 переключатель 213 выбирает предсказанное изображение. Таким образом, переключателю 213 предоставляется предсказанное изображение, сгенерированное модулем 211 внутрикадрового предсказания, или предсказанное изображение, сгенерированное модулем 212 предсказания/компенсации движения. Переключатель 213 выбирает модуль, из которого предоставляется предсказанное изображение и предоставляет это предсказанное изображение арифметическому модулю 205. Предсказанное изображение суммируется посредством процесса на этапе S 205 с информацией разности.
На этапе S 210 буфер 207 переупорядочивания экранного изображения переупорядочивает кадры декодированных данных изображения. Таким образом, кадры декодированных данных изображения, переупорядоченные для кодирования буфером 102 переупорядочивания экранного изображения, входящим в состав устройства 100 кодирования изображения (см. Фиг.1) переупорядочены в исходный порядок отображения.
На этапе S 211 цифроаналоговый преобразователь 208 осуществляет цифроаналоговое преобразование декодированных данных изображения, кадры которых переупорядочены буфером 207 переупорядочивания экранного изображения. Декодированные данные изображения выводятся на устройство отображения, не проиллюстрированное на чертеже, и осуществляется отображение изображения.
Обратное квантование
Далее, со ссылкой на блок-схему алгоритма, показанную на Фиг.12, описывается пример алгоритма обратного квантования.
Когда обратное квантование запущено, буфер 251 параметра квантования получает на этапе S 231 параметр pic_init_qp_minus26 квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 232 буфер 251 параметра квантования получает параметр slice_qp_delta квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 233 буфер 251 параметра квантования получает параметр mb_qp_delta квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 234 буфер 251 параметра квантования получает параметр submb_qp_delta квантования, предоставляемый модулем 202 декодирования без потерь. Однако в случае, когда параметр submb_qp_delta отсутствует, процесс на этапе S 234 не выполняется.
На этапе S 235 модуль 221 обратного квантования для субмакроблока, используя различные параметры квантования, полученные посредством процессов на этапах: с S 231 по S 234, вычисляет значение квантования для каждого субмакроблока. Однако в случае, когда параметр submb_qp_delta не предоставлен устройством 100 кодирования изображения, и процесс на этапе S 234 не выполняется, модуль 221 обратного квантования, для субмакроблока применяет значение квантования для каждого макроблока к значению квантования для каждого субмакроблока.
На этапе S 236 процессор 253 обратного квантования, используя значение квантования для каждого субмакроблока, вычисленное посредством процесса на этапе S 235 осуществляет обратное квантование квантованного коэффициента ортогонального преобразования, хранящегося в буфере 252 коэффициента ортогонального преобразования.
Когда процесс на этапе S 236 завершен, модуль 203 обратного квантования возвращает процесс на этап S 203 и позволяет исполняться процессам на этапе S 204 и последующих этапах.
Выполняя процесс декодирования и обратное квантование, так, как описано выше, устройство 200 декодирования изображения может выполнить обратное квантование, с использованием значения квантования, вычисленного для каждого субмакроблока, и выполняют обратное квантование, более подходящее для содержания изображения.
3. Третий вариант реализации изобретения >
submb_qp_present_flag
Хотя выше было сказано, что в качестве параметра квантования надлежащим образом передается параметр submb_qp_delta, также имеется возможность дополнительно передавать признак, который подтверждает присутствие параметра submb_qp_delta для каждого макроблока.
В этом случае, конфигурация устройства 100 кодирования изображения аналогична примеру конфигурации, проиллюстрированному на Фиг.1. Кроме того, конфигурация модуля 105 квантования аналогична примеру конфигурации, проиллюстрированному на Фиг.5. Однако модуль 152 вычисления параметра квантования дополнительно вычисляет для каждого макроблока признак submb_qp__present_flag, который является информацией флага, указывающего на то, присутствует ли параметр submb_qp_delta, значение которого не равно"0". В случае, когда какой - либо параметр submb_qp_delta субмакроблоков, принадлежащих макроблоку, имеет значение, не равное "0", признак submb_qp_present_flag устанавливается, например, в "1". Кроме того, в случае, когда параметры submb_qp_delta всех субмакроблоков, принадлежащих макроблоку, составляют "0", submb_qp_present_flag устанавливается, например, в "0".
Само собой разумеется, что значение submb_qp_present_flag является произвольным, и может быть использовано любое значение, если имеется возможность отличать случай, при котором какой - либо параметр submb_qp_delta имеет значение, не равное "0", от случая, при котором параметр submb_qp_delta всех субмакроблоков равен "0".
В случае, когда модуль 152 вычисления параметра квантования устанавливает это значение таким способом, модуль 152 вычисления параметра квантования предоставляет признак submb_qp_present_flag модулю 106 кодирования без потерь, в качестве одного из параметров квантования. Модуль 106 кодирования без потерь добавляет этот флаг submb_qp_present_flag, например, в заголовок макроблока и кодирует его. Таким образом, флаг submb_qp_present_flag передается вместе с закодированными данными, так же как и другой параметр квантования.
Следовательно, процесс кодирования в этом случае выполняется так, как в случае, описанном выше со ссылкой на блок-схему алгоритма, показанную на Фиг.7. Кроме того, пример алгоритма процесса вычисления параметра квантования в этом случае описывается со ссылкой на блок-схему алгоритма, показанную на Фиг.13. В этом случае также, процесс вычисления параметра квантования выполняется способом, в основном, аналогичным способу в случае, проиллюстрированном со ссылкой на блок-схему алгоритма, показанную на Фиг.8.
Таким образом, процессы на этапах: с S 331 по S 336, выполняются так, как процессы в этапах: с S 131 по S 136, показанных на Фиг.8. Однако в этом случае модуль 152 вычисления параметра квантования дополнительно вычисляет на этапе S 337 параметр (submb_qp_present_flag) квантования.
Как было описано выше, параметр submb_qp_present_flag квантования вычисляется для того, чтобы быть переданным.
Таким образом, флаг submb_qp_present_flag присутствует в каждом заголовке макроблока данных. В таком случае, флаг submb_qp_delta присутствует в заголовке субмакроблока того макроблока, в котором значение флага submb_qp_present_flag составляет "1", и параметр submb_qp_delta не присутствует в заголовке субмакроблока того макроблока, в котором значение признака submb_qp_present_flag составляет "0".
Такие закодированные данные передаются от устройства 100 кодирования изображения устройству 200 декодирования изображения.
Конфигурация устройства 200 декодирования изображения в этом случае аналогична примеру конфигурации, проиллюстрированному на Фиг.9. Кроме того, конфигурация модуля 203 обратного квантования аналогична примеру конфигурации, проиллюстрированному на Фиг.10. Однако модуль 221 обратного квантования, для субмакроблока вычисляет значение квантования для каждого макроблока для макроблока, в котором флаг submb_qp__present_flag установлен в "0", не ожидая предоставления параметра submb_qp_delta, и применяет это значение квантования к значению квантования для каждого субмакроблока.
Другими словами, модуль 221 обратного квантования, для субмакроблока получает параметр submb_qp_delta только в том случае, когда флаг submb_qp_present_flag равен "1" и вычисляет значение квантования для каждого субмакроблока.
Процесс декодирования в этом случае выполняется способом, аналогичным описанным выше со ссылкой на блок-схему алгоритма, показанную на Фиг.11. Кроме того, пример алгоритма обратного квантования, в этом случае описан со ссылкой на блок-схему алгоритма, показанную на Фиг.14. В этом случае также, обратное квантование выполняется способом, в основном, аналогичным способу в случае, описанном со ссылкой на блок-схему алгоритма, показанную на Фиг.12.
Таким образом, процессы на этапах: с S 431 по S 433, выполняются так, как процессы в этапах: с S 231 по S 233, показанных на Фиг.12. Однако в этом случае, буфер 251 параметра квантования получает на этапе S 434 параметр submb_qp_present_flag квантования, хранящийся в заголовке макроблока.
На этапе S 435 модуль 221обратного квантования, для субмакроблока определяет то, составляет ли значение параметра submb_qp_present_flag квантования "1". В случае, когда значение параметра submb_qp_present_flag квантования составляет "1", буфер 251 параметра квантования получает, на этапе S 436, параметр submb_qp_delta квантования. На этапе S 437 модуль 221 обратного квантования, для субмакроблока вычисляет значение квантования для каждого субмакроблока. Таким образом, выполняются процессы, аналогичные процессам на этапах S 234 и S 235 на Фиг.12.
Кроме того, в случае, когда на этапе S 435 определено, что значение параметра submb_qp_present_flag квантования составляет "0", модуль 221 обратного квантования, для субмакроблока вычисляет на этапе S 438 значение квантования для каждого макроблока и применяет это значение в качестве значения квантования для каждого субмакроблока.
В случае, когда значение квантования вычисляется так, как в вышеописанном способе, процессор 253 обратного квантования, используя значение квантования, выполняет, на этапе S 439 обратное квантование.
Как было описано выше, устройство 200 декодирования изображения может более легко уловить присутствие параметра submb_qp_delta квантования и может более легко вычислить значение квантования без необходимости прибегать к ненужному процессу поиска параметра submb_qp_delta, который отсутствует, благодаря передаче флага submb_qp_present_flag, указывающего на присутствие параметра submb_qp_delta квантования для каждого макроблока для использования во время обратного квантования.
Хотя выше в качестве примера в вариантах реализации изобретения: с первого по третий, были описаны устройство кодирования изображения, которое осуществляет кодирование посредством системы, эквивалентной стандарту AVC (Усовершенствованного кодирования видеоданных), и устройство декодирования изображения, которое осуществляет декодирование посредством системы, эквивалентной стандарту AVC, объем применения данной технологии этим не ограничен, и данная технология может быть применена к любому устройству кодирования изображения и устройству декодирования изображения, которые выполняют процесс кодирования, основанный на блоке, имеющем иерархическую структуру, которая проиллюстрирована на Фиг.4.
Кроме того, вышеописанные различные параметры квантования могут быть добавлены в произвольном месте закодированных данных или могут быть переданы не сторону декодирования, например, отдельно от закодированных данных. Например, модуль 106 кодирования без потерь может описать информацию в потоке битов как синтаксис. Кроме того, модуль 106 кодирования без потерь может сохранять информацию в некоторой предварительно заданной области как вспомогательную информацию для передачи. Например, эта информацию может быть сохранена в наборе параметров (например, в заголовке и тому подобном последовательности и кадра), таком как SEI (Дополнительная расширенная информация).
Также имеется возможность, чтобы модуль 106 кодирования без потерь передавал информацию от устройства кодирования изображения на устройства декодирования изображения отдельно от закодированных данных (в качестве другого файла). В этом случае, необходимо прояснить отношение соответствия между этой информацией и закодированными данными (таким образом, чтобы сторона декодирования могла понять это отношение), но для этого может быть использован любой способ. Например, имеется возможность отдельно создавать табличную информацию, указывающую этот отношение соответствия, или внедрять связывающую информацию, указывающую корреспондирующие данные, в каждые данные.
Между тем, также имеется возможность, чтобы вышеописанное квантование с использованием значения квантования для каждого субмакроблока (вычисление параметра квантования для каждого субмакроблока) выполнялось только для расширенного макроблока, не меньшего чем 32×32.
Например, контроллер 117 скорости вычисляет показатель активности для каждого субмакроблока только в том случае, когда текущий макроблок представляет собой расширенный макроблок, и вычисляет показатель активности для каждого макроблока в том случае, когда текущий макроблок представляет собой традиционный макроблок, не больший чем 16×16, определенный в существующем стандарте кодирования, таком как AVC (Усовершенствованное кодирование видеоданных).
Модуль 121 квантования субмакроблока вычисляет значение квантования для каждого субмакроблока только для расширенного макроблока, и вычисляет значение квантования для каждого макроблока для традиционного макроблока, не большего чем, например, 16×16.
Модуль 152 вычисления параметра квантования вычисляет параметр Submb_qp_delta квантования только для расширенного макроблока и не вычисляет параметр submb_qp_delta квантования для традиционного макроблока, не большего чем, например, 16×16.
Процессор 153 квантования выполняет квантование с использованием значения квантования для каждого субмакроблока только для расширенного макроблока, а для традиционного макроблока, не большего чем, например, 16×16, выполняет квантование с использованием значения квантования для каждого макроблока.
Согласно вышеописанному способу устройство 100 кодирования изображения может вьполнять квантование с использованием значения квантования для каждого субмакроблока только для расширенного макроблока, имеющего большую площадь, в котором можно в достаточной мере ожидать эффект предотвращения ухудшения субъективного качества изображения для декодированного изображения, и может выполнять квантование с использованием значения квантования для каждого макроблока для макроблока, имеющего традиционный размер, в котором ожидание этого эффекта является относительно малым. В соответствии с этим, устройство 100 кодирования изображения может воспрепятствовать увеличению нагрузки, вызванному квантованием с использованием значения квантования для каждого субмакроблока.
В этом случае, конечно, имеется возможность, чтобы устройство 200 декодирования изображения выполняло обратное квантование, с использованием значения квантования для каждого субмакроблока только для расширенного макроблока, как устройство 100 кодирования изображения.
Например, модуль 221 обратного квантования, для субмакроблока вычисляет, значение квантования для каждого субмакроблока только для расширенного макроблока, а для традиционного макроблока, не большего чем 16×16, вычисляет значение квантования для каждого макроблока.
Следовательно, процессор 253 обратного квантования выполняет обратное квантование, с использованием значения квантования для каждого субмакроблока только для расширенного макроблока, а для традиционного макроблока, не большего чем, например, 16×16, выполняет обратное квантование с использованием значения квантования для каждого макроблока.
Согласно вышеописанному способу, устройство 200 декодирования изображения может выполнять обратное квантование, с использованием значения квантования для каждого субмакроблока только для расширенного макроблока, имеющего большую площадь, в котором можно в достаточной мере ожидать эффект предотвращения ухудшения субъективного качества изображения для декодированного изображения, и может выполнять обратное квантование, с использованием значения квантования для каждого макроблока для макроблока, имеющего традиционный размер, в котором ожидание этого эффекта является относительно малым. В соответствии с этим, устройство 200 декодирования изображения может воспрепятствовать увеличению нагрузки, вызванной обратным квантованием, с использованием значения квантования для каждого субмакроблока.
Между тем, в случае, когда передается флаг submb_qp_present_flag, как в третьем варианте реализации изобретения, конфигурация может быть такова, чтобы передавать
флаг submb_qp_present_flag квантования только для расширенного макроблока. Другими с
словами, передача флага submb_qp_present_flag квантования может не выполняться для макроблока, имеющего традиционный размер. Конечно же, конфигурация может быть такова, чтобы передавать флаг submb_qp_present_flag квантования, имеющий значение, указывающее на то, что флаг submb_qp_delta квантования, значение которого отлично от "0", для макроблока, имеющего традиционный размер, отсутствует.4. Четвертый вариант реализации изобретения Резюме
Хотя выше было сказано этого, параметр квантования определяется для каждого субмакроблока, способ назначения параметра квантования субмакроблоку может быть отличен от вышеописанного. Например, имеется также возможность определять параметр SubMB_QP квантования, назначаемый каждому субмакроблоку, таким образом, как это представлено нижеследующим уравнением (11) с использованием параметра submb_qp_delta квантования для каждого субмакроблока и параметра previous_qp квантования для субмакроблока, закодированного непосредственно перед этим макроблоком.
<mrow><mi>S</mi><mi>u</mi><mi>b</mi><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mrow><mo>(</mo><mrow><mn>0,51,</mn><mi>p</mi><mi>r</mi><mi>e</mi><mi>v</mi><mi>i</mi><mi>o</mi><mi>u</mi><mi>s</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>+</mo><mi>s</mi><mi>u</mi><mi>b</mi><mi>m</mi><mi>b</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>11</mn></mrow><mo>)</mo></mrow></mrow>
Элемент кодирования
Такого рода способ будет описан ниже; далее он будет описываться с использованием элемента, именуемого элементом кодирования, вместо вышеописанных макроблока и субмакроблока.
Например, в документе "Test Model Under Consideration" ("Рассматриваемая тестовая модель") (JCTVC - В205), расширенный макроблок, описанный со ссылкой на Фиг.4, определен посредством концепции, именуемой как элемент кодирования.
Элемент кодирования представляет собой элемент разделения изображения (одного фотоизображения), который является элементом процесса, такого как процесс кодирования данных изображения. Таким образом, элемент кодирования представляет собой блок (частную область), получаемый при разделении изображения (одного фотоизображения) на множество областей. Таким образом, термин "элемент кодирования" соответствует вышеописанному макроблоку и субмакроблоку.
Фиг.15 представляет собой чертеж, на котором проиллюстрирован пример конфигурации элемента кодирования. Как проиллюстрировано на Фиг.15, область элемента кодирования может быть дополнительно разделена на множество областей, и каждая область может быть сделана элементом кодирования на один уровень ниже. Таким образом, элементы кодирования могут быть сконфигурированы иерархическим образом (сконфигурированы таким образом, чтобы иметь древовидную структуру). Кроме того,
размер элемента кодирования является произвольным, и в одном кадре могут присутствовать элементы кодирования, имеющие различные размеры.
В примере, показанном на Фиг.15, размер элемента кодирования на самом верхнем уровне (depth=0 (глубина=0)) устанавливается равным 128×128 пикселей, область размером 64×64 пикселей, получаемая путем разделения этого элемента пополам по вертикали и по горизонтали (на четыре области), делаются элементом кодирования на один уровень ниже (depth=1 (глубина=1)), и иерархическое разделение элементов кодирования повторяется аналогичным образом, а область размером 8×8 пикселей делается элементом кодирования на самом низком уровне (depth=4 (глубина=4)).
При этом элемент кодирования на самом верхнем уровне именуется как LCU (Наибольший элемент кодирования), а элемент кодирования самого низкого уровня именуется как SCU (Наименьший элемент кодирования). Таким образом, Наибольший элемент кодирования соответствует макроблоку, а элемент кодирования на более низком уровне соответствует субмакроблоку.
Между тем, размер и форма элемента кодирования каждого уровня и количество уровней является произвольными. Таким образом, не требуется, чтобы размеры и формы всех Наибольших элементов кодирования и Наименьших элементов кодирования были на изображении (на одном кадре) одними и теми же, количество уровней элементов кодирования может различаться в соответствии с местом на изображении, и способ разделения области также является произвольным. Таким образом, древовидная структура элементов кодирования может представлять собой произвольную структуру.
Само собой разумеется, что степень свободы иерархической структуры элементов кодирования может быть частично ограничена таким образом, что, например, способы разделения области являются теми же самыми, но только количества уровней различаются. Например, как проиллюстрировано на Фиг.15, возможна такая конфигурация, что одна область (один кадр или один элемент кодирования) разделяется пополам по вертикали и по горизонтали (то есть, на четыре части) в любом месте и в каждом месте определяются размеры Наибольшего элемента кодирования и Наименьшего элемента кодирования, тем самым определяя иерархическую структуру элементов кодирования.
Размеры Наибольшего элемента кодирования и Наименьшего элемента кодирования могут быть указаны параметром последовательности, устанавливаемым, например, в сжатой информации изображения. Само собой разумеется, что они могут быть указаны и другими метаданными и тому подобным.
Назначение параметра квантования
В этом варианте реализации изобретения параметр submb_qp_delta квантования назначается каждому элементу кодирования, а не макроблоку и субмакроблоку. Однако в этом случае параметр submb_qp_delta квантования представляет собой не значение разности между параметром MB_QP квантования для каждого макроблока и параметром SubMB_QP квантования для каждого субмакроблока, но значение разности между параметром previous_qp квантования для предшествующего закодированного элемента кодирования и параметром SubMB_QP квантования для текущего элемента кодирования.
Другими словами, для каждого элемента кодирования назначается параметр submb_qp_delta квантования, указывающий значение разности между параметром previous_qp квантования, использованным для предшествующего кодирования, и параметром SubMB_QP квантования для текущего элемента кодирования. Таким образом, для каждого элемента кодирования назначается параметр submb_qp_delta квантования, удовлетворяющий вышеописанному уравнению (11).
Между тем, требуется только, чтобы вся область изображения была квантована, так чтобы параметр submb_qp_delta квантования фактически назначался для части элементов кодирования, такой как, например, только для Наименьшего элемента кодирования.
Как и в вышеописанных других вариантах реализации изобретения, имеется возможность получить параметр SubMB_QP квантования для текущего элемента кодирования, преобразуя значение квантования, полученное исходя из показателя активности для элемента кодирования. Следовательно, параметр submb_qp_delta квантования для каждого элемента кодирования может быть вычислен с использованием уравнения (11).
На Фиг.16 проиллюстрирован пример конфигурации элемента кодирования в одном Наибольшем элементе кодирования и пример параметра квантования, назначаемого для каждого элемента кодирования. Как проиллюстрировано на Фиг.16, для каждого элемента кодирования (CU - элемента) назначается, в качестве параметра квантования, значение ΔQP разности между параметром previous_qp квантования, использованным для предшествующего кодирования, и параметром SubMB_QP квантования для текущего элемента кодирования.
0
10
11
12
13
Если описать это более конкретно, то для верхнего левого элемента 0 кодирования (Элемента 0 кодирования) в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования. Кроме того, для верхнего левого элемента 10 кодирования (Элемента 10 кодирования) из числа четырех верхних правых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования. Помимо этого, для верхнего правого элемента 11 кодирования (Элемента 11 кодирования) из числа четырех верхних правых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP. Кроме того, для нижнего левого элемента 12 кодирования (Элемента (12) кодирования) из числа четырех верхних правых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQPквантования. Помимо этого, для нижнего правого элемента 13 кодирования (Элемента 13 кодирования) из числа четырех верхних правых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования.
00
21
23
23
3
Для верхнего левого элемента 20 кодирования (Элемента 20 кодирования) из числа четырех нижних левых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования. Помимо этого, для верхнего правого элемента 21 кодирования (Элемента 21 кодирования) из числа четырех нижних левых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP. Кроме того, для нижнего левого элемента 22 кодирования (Элемента 22 кодирования) из числа четырех нижних левых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования. Помимо этого, для нижнего правого элемента 23 кодирования (Элемента 23 кодирования) из числа четырех нижних левых элементов кодирования в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования. Для нижнего правого элемента 3 кодирования (Элемента 3 кодирования) в этом Наибольшем элементе кодирования назначается параметр ΔQP квантования.
Параметр квантования для элемента кодирования, обрабатываемого непосредственно перед этим Наибольшим элементом кодирования, устанавливается как PrevQP. Далее, предположим, что верхний левый элемент 0 кодирования (Элемент 0 кодирования) в этом Наибольшем элементе кодирования представляет собой текущий элемент кодирования, обрабатываемый первым в этом Наибольшем элементе кодирования.
Параметр CurrentQP квантования для текущего элемента кодирования вычисляется так, как представлено нижеследующим уравнением (12).
<mrow><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>Pr</mi><mi>e</mi><mi>v</mi><mi>Q</mi><mi>P</mi><mo>+</mo><mi>Δ</mi><mi>Q</mi><mi>P</mi><mmultiscripts><mtext> </mtext><mprescripts /><mn>0</mn><none /></mmultiscripts><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>12</mn></mrow><mo>)</mo></mrow></mrow>
Предположим, что элементом кодирования, подлежащим обработке после элемента 0 кодирования, является верхний левый элемент 10 кодирования (Элемент 10 кодирования) из числа верхних правых четырех элементов кодирования в Наибольшем элементе кодирования, проиллюстрированном на Фиг.16.
Когда объектом обработки становится элемент 10 кодирования, параметр CurrentQP квантования текущего элемента кодирования вычисляется так, как представлено нижеследующими уравнениями (13) и (14).
<mrow><mi>Pr</mi><mi>e</mi><mi>v</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>13</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>Pr</mi><mi>e</mi><mi>v</mi><mi>Q</mi><mi>P</mi><mo>+</mo><mi>Δ</mi><mi>Q</mi><mi>P</mi><mmultiscripts><mtext> </mtext><mprescripts /><mrow><mn>10</mn></mrow><none /></mmultiscripts><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>14</mn></mrow><mo>)</mo></mrow></mrow>
Таким образом, сделав параметр квантования, назначаемый для каждого элемента кодирования, значение разности между параметром квантования для предшествующего закодированного элемента кодирования и текущим параметром квантования, нет необходимости вычислять параметр квантования для каждого макроблока, так что процесс квантования может быть выполнен более легко.
Между тем, в случае, когда вычисляется значение разности между параметром квантования для уже закодированного элемента кодирования и текущим параметром квантования, также имеется возможность вычислять значение разности от элемента кодирования, закодированного перед текущим элементом кодирования (элемент кодирования, закодированный перед предшествующим закодированным элементом кодирования в этом Наибольшем элементе кодирования). Однако предпочтительным является значение разности между параметром квантования для предшествующего закодированного элемента кодирования и текущим параметром квантования.
Таким образом, в случае, когда вычисляется значение разности между параметром квантования для предшествующего закодированного элемента кодирования и текущим параметром квантования, требуется только, чтобы в памяти был сохранен только параметр квантования для предшествующего закодированного элемента кодирования, и параметр квантования можно обрабатывать в системе FIFO (первый пришел - первый вышел). Следовательно, при вычислении значения разности параметра квантования параметр квантования легко обрабатывать, и используемый объем памяти мал, так что имеется преимущество при установке.
Между тем, такого рода параметр cu_qp_delta квантования для каждого элемента кодирования определен синтаксисом элемента кодирования, как это проиллюстрировано на Фиг.17, например, для передачи стороне декодирования. Таким образом, параметр cu_qp_delta квантования для каждого элемента кодирования соответствует вышеописанному параметру sub_qp_delta квантования.
Устройство кодирования изображения
Фиг.18 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства кодирования изображений, к которому применена данная технология. Устройство 300 кодирования изображения, проиллюстрированный на Фиг.18, назначает параметр cu_qp_delta квантования для каждого элемента кодирования так, как это описано выше.
Как проиллюстрировано на Фиг.18, устройство 300 кодирования изображения имеет конфигурацию, в основном, аналогичную конфигурации устройства 100 кодирования изображения, которое показано на Фиг.1. Однако вместо модуля 105 квантования, контроллера 117 скорости и модуля 121 квантования субмакроблока, входящих в состав устройства 100 кодирования изображения, устройство 300 кодирования изображения включает в себя модуль 305 квантования элемента кодирования и контроллер 317 скорости. Кроме того, устройство 300 кодирования изображения включает в себя модуль 308 обратного квантования, для элемента кодирования вместо модуля 108 обратного квантования, и модуля 122 обратного квантования, для субмакроблока, входящих в состав устройства 100 кодирования изображения.
Контроллер 317 скорости, основываясь на сжатом изображении, накапливаемом в буфере 107 накопления, управляет скоростью операции квантования в модуле 305 квантования элемента кодирования, таким образом, чтобы не имело место переполнение или опустошение. Кроме того, контроллер 317 скорости предоставляет модулю 305 квантования элемента кодирования информацию, указывающую сложность изображения для каждого элемента кодирования. Модуль 305 квантования элемента кодирования выполняет квантование для каждого элемента кодирования, используя показатель активности. Кроме того, модуль 305 квантования элемента кодирования вычисляет параметр квантования для каждого элемента кодирования. Модуль 305 квантования элемента кодирования предоставляет коэффициент ортогонального преобразования (данные коэффициента), квантованный для каждого элемента кодирования, и вычисленный параметр квантования для каждого элемента кодирования модулю 106 кодирования без потерь и кодирует их для передачи. Кроме того, модуль 305 квантования элемента кодирования также предоставляет коэффициент ортогонального преобразования (данные коэффициента), квантованный для каждого элемента кодирования, и вычисленный параметр квантования для каждого элемента кодирования также и модулю 308 обратного квантования, для элемента кодирования.
Модуль 308 обратного квантования, для элемента кодирования выполняет обратное квантование, для каждого элемента кодирования, используя параметр квантования для каждого элемента кодирования, предоставленный из модуля 305 квантования элемента кодирования. Модуль 308 обратного квантования, для элемента кодирования предоставляет коэффициент ортогонального преобразования (данные коэффициента), подвергшийся обратному квантованию, для каждого элемента кодирования на модуль 109 обратного ортогонального преобразования. Модуль 308 обратного квантования, для элемента кодирования будет подробно описан позже при описании устройства декодирования изображения.
Детализированная конфигурация, касающаяся квантования
Фиг.19 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации контроллера 317 скорости и модуля 305 квантования элемента кодирования.
Как проиллюстрировано на Фиг, 19, контроллер 317 скорости включает в себя модуль 321 вычисления показателя активности и буфер 322 показателя активности.
Модуль 321 вычисления показателя активности получает изображение, являющееся объектом процесса кодирования (текущий элемент кодирования), от буфера 102 переупорядочивания экранного изображения, и вычисляет показатель активности, представляющий собой информацию, указывающую дисперсию пиксельных значений, в качестве информации, указывающей степень сложности изображения. Таким образом, модуль 321 вычисления показателя активности вычисляет показатель активности для каждого элемента кодирования. При этом требуется только, чтобы процесс квантования был выполнен для всего изображения, так что имеется также возможность, чтобы показатель активности вычислялся только для части элементов кодирования, как, например, только для Наименьшего элемента кодирования.
Буфер 322 показателя активности сохраняет показатель активности для каждого элемента кодирования, вычисленный модулем 321 вычисления показателя активности, и предоставляет в некоторый предварительно заданный момент времени этот показатель активности модулю 105 квантования. Буфер 322 показателя активности сохраняет полученный показатель активности для каждого элемента кодирования в количестве, например, одного экранного изображения.
Способ вычисления показателя активности является произвольным и может представлять собой способ, аналогичный, например, способу из вышеописанной Тестовой модели стандарта MPEG 2 (Стандарта 2, разработанного Экспертной группой по вопросам движущегося изображения). Кроме того, содержание информации, указывающей степень сложности изображения, также является произвольным и может представлять собой информацию, отличную от такого показателя активности.
Модуль 305 квантования элемента кодирования включает в себя модуль 331 вычисления значения квантования для элемента кодирования, модуль 332 вычисления параметра квантования для изображения, модуль 333 вычисления параметра квантования для слоя, модуль 334 вычисления параметра квантования для элемента кодирования и модуль 335 квантования элемента кодирования.
Модуль 331 вычисления значения квантования для элемента кодирования вычисляет значение квантования для каждого элемента кодирования, основываясь на показателе "активности" для каждого элемента кодирования (на информации, указывающей степень сложности изображения для каждого элемента кодирования), предоставленном из контроллера 317 скорости. Значение квантования для каждого элемента кодирования может быть вычислено способом, аналогичным способу в случае, при котором значение квантования для каждого Наибольшего элемента кодирования вычисляется, исходя из показателя активности для каждого Наибольшего элемента кодирования. При этом требуется только, чтобы процесс квантования был выполнен для всего изображения, так что имеется также возможность, чтобы значение квантования для каждого элемента кодирования вычислялось только для части элементов кодирования. В дальнейшем, предполагается, в качестве примера, что значение квантования для каждого элемента кодирования вычисляется только для Наименьшего элемента кодирования.
После получения значения квантования для каждого элемента кодирования модуль 331 вычисления значения квантования для элемента кодирования предоставляет значение квантования для каждого элемента кодирования модулю 332 вычисления параметра квантования для изображения.
Модуль 332 вычисления параметра квантования для изображения, используя значение квантования для каждого элемента кодирования, получает параметр pic_init_qp_minus26 квантования для каждого изображения.
Модуль 333 вычисления параметра квантования для слоя, используя значение квантования для каждого элемента кодирования, получает параметр slice_qp_delta квантования для каждого слоя.
Модуль 334 вычисления параметра квантования для элемента кодирования, используя параметр prevQP квантования, использованный для предшествующего кодирования, получает параметр cu_qp_delta квантования для каждого элемента кодирования.
Параметры квантования, сгенерированные модулями: от модуля 332 вычисления параметра квантования для изображения до модуля 334 вычисления параметра квантования для элемента кодирования, предоставляются модулю 106 кодирования без потерь, кодируются и передаются стороне декодирования, и предоставляются также модулю 308 обратного квантования, для элемента кодирования.
Модуль 335 квантования элемента кодирования, используя значение квантования для каждого элемента кодирования, квантует коэффициент ортогонального преобразования текущего элемента кодирования.
Модуль 335 квантования элемента кодирования предоставляет коэффициент ортогонального преобразования, квантованный для каждого элемента кодирования, модулю 106 кодирования без потерь и модулю 308 обратного квантования, для элемента кодирования.
Алгоритм процесса кодирования
Устройство 300 кодирования изображения выполняет процесс кодирования, в основном, так, как в случае устройства 100 кодирования изображения, который показан на Фиг.1, описанный со ссылкой на Фиг.6.
Алгоритм процесса вычисления параметра квантования
Пример алгоритма процесса вычисления параметра квантования, исполняемого в ходе процесса кодирования, описан со ссылкой на блок-схему алгоритма, показанную на Фиг.20.
Когда процесс вычисления параметра квантования запущен, модуль 331 вычисления значения квантования для элемента кодирования получает на этапе S 531 показатель активности для каждого элемента кодирования, предоставляемый контроллером 317 скорости.
На этапе S 532 модуль 331 вычисления значения квантования для элемента кодирования, используя показатель активности для каждого элемента кодирования, вычисляет значение квантования для каждого элемента кодирования.
На этапе S 533 модуль 332 вычисления параметра квантования для изображения, используя значение квантования для каждого элемента кодирования, вычисленное на этапе S 532, получает параметр pic_init_qp_minus26 квантования.
На этапе S 534 модуль 333 вычисления параметра квантования для слоя, используя значение квантования для каждого элемента кодирования, вычисленное на этапе S 532, получает параметр slice_qp_delta квантования.
0
23
На этапе S 535 модуль 334 вычисления параметра квантования для элемента кодирования, используя параметр prevQP квантования, использованный для предыдущего кодирования, получает параметр cu_qp_delta квантования для каждого элемента кодирования (с ΔQP по ΔQP и тому подобное на Фиг.16).
После получения различных параметров квантования вышеописанным способом, модуль 305 квантования элемента кодирования завершает процесс вычисления параметра квантования и выполняет последующие процессы в процессе кодирования.
Поскольку процесс кодирования и процесс вычисления параметра квантования выполняются вышеописанным способом, устройство (300) кодирования изображения может устанавливать значение квантования для каждого элемента кодирования и выполнять более подходящий процесс квантования, соответствующий содержанию изображения.
Кроме того, поскольку параметр квантования, вычисленный этим способом, передается устройству декодирования изображения, устройство 300 кодирования изображения может обеспечить для устройства декодирования изображения возможность обратного квантования для каждого элемента кодирования.
Между тем, модуль 308 обратного квантования, для элемента кодирования, входящий в состав устройства (300) кодирования изображения, выполняет процесс, аналогичный способу в модуле обратного квантования, для элемента кодирования, входящем в состав устройства декодирования изображения, соответствующего устройству 300 кодирования изображения. Таким образом, устройство 300 кодирования изображения может также выполнять обратное квантование, для каждого элемента кодирования.
Аппарат декодирования изображения
Фиг.21 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства декодирования изображений, к которому применена данная технология. Устройство 400 декодирования изображения, проиллюстрированное на Фиг.21, соответствует вышеописанному устройству 300 кодирования изображения, правильно декодирует закодированный поток закодированные данные, сгенерированный при кодировании данных изображения устройством 300 кодирования изображения, генерируя декодированное изображение.
Как проиллюстрировано на Фиг.21, устройство 400 декодирования изображения имеет конфигурацию, в основном, аналогичную конфигурации устройства 200 декодирования изображения, показанного на Фиг.8, и выполняет аналогичный процесс. Однако вместо модуля 203 обратного квантования и модуля 221 обратного квантования, для субмакроблока, входящих в состав устройства 200 декодирования изображения, устройство 400 декодирования изображения включает в себя модуль 403 обратного квантования, для элемента кодирования.
Модуль 403 обратного квантования, для элемента кодирования осуществляет обратное квантование, над коэффициентом ортогонального преобразования, квантованным для каждого элемента кодирования устройством 300 кодирования изображения, используя параметр квантования и тому подобное для каждого элемента кодирования, предоставленный устройством 300 кодирования изображения.
Фиг.22 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации модуля 403 обратного квантования, для элемента кодирования. Как проиллюстрировано на Фиг.22, модуль 403 обратного квантования, для элемента кодирования включает в себя буфер 411 параметра квантования, буфер 412 коэффициента ортогонального преобразования, модуль 413 вычисления значения квантования для элемента кодирования и процессор 414 обратного квантования, для элемента кодирования.
Параметр квантования на каждом уровне, таком как набор параметров изображения и заголовок слоя закодированных данных, предоставляемый устройством 300 кодирования изображения, декодируется модулем 202 декодирования без потерь для того, чтобы быть предоставленным буферу 411 параметра квантования. Буфер 411 параметра квантования надлежащим образом сохраняет параметр квантования и предоставляет в некоторый предварительно заданный момент времени этот параметр модулю 413 вычисления значения квантования для элемента кодирования.
Модуль 413 вычисления значения квантования для элемента кодирования вычисляет значение квантования для каждого элемента кодирования так, как это представлено уравнениями: с (36) по (39), например, посредством использования параметра квантования, предоставленного из буфера 411 параметра квантования, и предоставляет это значение квантования процессору 414 обратного квантования, для элемента кодирования.
Кроме того, квантованный коэффициент ортогонального преобразования, полученный посредством декодирования закодированных данных, предоставленных устройством 300 кодирования изображения, модулем 202 декодирования без потерь, предоставляется буферу 412 коэффициента ортогонального преобразования. Буфер 412 коэффициента ортогонального преобразования надлежащим образом сохраняет квантованный коэффициент ортогонального преобразования для того, чтобы в некоторый предварительно заданный момент времени предоставить его процессору 414 обратного квантования, для элемента кодирования.
Процессор 414 обратного квантования, для элемента кодирования осуществляет обратное квантование, над квантованным коэффициентом ортогонального преобразования, предоставляемым из буфера 412 коэффициента ортогонального преобразования, используя при этом значения квантования для каждого элемента кодирования, предоставляемые модулем 413 вычисления значения квантования для элемента кодирования. Процессор 414 обратного квантования, для элемента кодирования предоставляет коэффициент ортогонального преобразования, полученный посредством обратного квантования, модулю 204 обратного ортогонального преобразования.
Как было описано выше, модуль 403 обратного квантования, для элемента кодирования может выполнять обратное квантование, с использованием значения квантования, вычисленного для каждого элемента кодирования. В соответствии с этим, устройство 400 декодирования изображения может выполнять обратное квантование, более подходящее для содержания изображения. В частности, даже в случае, при котором размер макроблока является расширенным (размер Наибольшего элемента кодирования является большим) и в состав единого Наибольшего элемента кодирования входят как однотонная область, так и область, включающая в себя текстуру, устройство 400 декодирования изображения может выполнять адаптивное обратное квантование, подходящее для каждой области, препятствуя ухудшению субъективного качества изображения для декодированного изображения.
Между тем, модуль 308 обратного квантования, для элемента кодирования, входящий в состав устройства 300 кодирования изображения, проиллюстрированный на Фиг.18, также имеет конфигурацию, аналогичную конфигурации модуля 403 обратного квантования, для элемента кодирования, и выполняет аналогичный процесс. Однако модуль 308 обратного квантования, для элемента кодирования получает параметр квантования и квантованный коэффициент ортогонального преобразования, предоставляемые модулем 305 квантования элемента кодирования, и выполняет обратное квантование.
Алгоритм процесса декодирования
Устройство 400 декодирования изображения выполняет процесс декодирования способом, в основном, аналогичным способу в случае устройства 200 декодирования изображения, который показан на Фиг.8, описанной со ссылкой на блок-схему алгоритма, показанного на Фиг.10.
Алгоритм обратного квантования
Пример алгоритма обратного квантования, выполняемого в ходе декодирования устройством 400 декодирования изображения, описывается со ссылкой на блок-схему алгоритма, показанную на Фиг.23.
Когда обратное квантование запущено, буфер 411 параметра квантования получает на этапе S 631 параметр pic_init_qp_minus26 квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 632 буфер 411 параметра квантования получает параметр slice_qp_delta квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 633 буфер 411 параметра квантования получает параметр cu_qp_delta квантования, предоставляемый модулем 202 декодирования без потерь.
На этапе S 634 модуль 413 вычисления значения квантования для элемента кодирования вычисляет значение квантования для каждого элемента кодирования, используя различные параметры квантования, полученные посредством процессов на этапах: с S 631 по S 633, и использованный перед этим параметр PrevQP квантования.
На этапе S 635 процессор 414 обратного квантования, для элемента кодирования осуществляет обратное квантование, над квантованным коэффициентом ортогонального преобразования, сохраненным буфером 412 коэффициента ортогонального преобразования, с использованием значения квантования для каждого элемента кодирования, вычисленное посредством процесса на этапе S 634.
Когда процесс на этапе S 635 завершен, модуль 403 обратного квантования, для элемента кодирования возвращает процесс к процессу декодирования, и позволяет исполняться последующим процессам.
Как было описано выше, при выполнении процесса декодирования и обратного квантования, устройство 400 декодирования изображения может выполнять обратное квантование, с использованием значения квантования, вычисленного для каждого элемента кодирования, и может выполнять обратное квантование, более подходящее для содержания изображения.
Как было описано выше, для того, чтобы уменьшить количество кода параметра квантования для каждого элемента кодирования (субмакроблока), вместо того, чтобы передавать непосредственно параметр SubMB_QP квантования, получают для передачи значение dQP разности между некоторым предварительно установленным параметром квантования и параметром SubMB_QP квантования (параметром submb_qp_delta квантования). В качестве способов вычисления параметра dQP квантования выше были описаны два способа, представленные нижеследующими уравнениями (15) и (16).
<mrow><mi>d</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mo>−</mo><mi>L</mi><mi>C</mi><mi>U</mi><mi>Q</mi><mi>P</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>15</mn></mrow><mo>)</mo></mrow></mrow>
<mrow><mi>d</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mo>−</mo><mi>Pr</mi><mi>e</mi><mi>v</mi><mi>i</mi><mi>o</mi><mi>u</mi><mi>s</mi><mi>Q</mi><mi>P</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>16</mn></mrow><mo>)</mo></mrow></mrow>
В уравнениях (15) и (16) CurrentQP представляет параметр квантования для текущего элемента кодирования (CU). Кроме того, LCUQP представляет параметр квантования для Наибольшего элемента кодирования, к которому принадлежит текущий элемент кодирования (то есть, для текущего Наибольшего элемента кодирования). Кроме того, PreviousQP представляет параметр квантования для элемента кодирования, обработанного непосредственно перед текущим элементом кодирования.
Таким образом, в случае уравнения (15) передается значение разности между параметром квантования для текущего Наибольшего элемента кодирования и параметром квантования для текущего элемента кодирования. Кроме того, в случае уравнения (16) передается значение разности между параметром квантования предшествующего обработанного элемента кодирования и параметром квантования текущего элемента кодирования.
Способ вычисления такого параметра dQP квантования для передачи произволен и может быть отличным от вышеописанных двух примеров.
Например, также имеется возможность передавать значение разности между параметром SliceQP квантования для слоя, к которому принадлежит текущий элемент кодирования, (то есть для текущего слоя) и параметром квантования для текущего элемента кодирования, как это представлено нижеследующим уравнением (17).
<mrow><mi>d</mi><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>u</mi><mi>r</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>Q</mi><mi>P</mi><mo>−</mo><mi>S</mi><mi>l</mi><mi>i</mi><mi>c</mi><mi>e</mi><mi>Q</mi><mi>P</mi><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>17</mn></mrow><mo>)</mo></mrow></mrow>
Параметр CurrentQP квантования может быть получен, например, модулем 334 вычисления параметра квантования для элемента кодирования, показанным на Фиг.19, посредством преобразования значения квантования для текущего элемента кодирования, которое вычислено модулем 331 вычисления значения квантования для элемента кодирования. Кроме того, параметр SliceQP квантования может быть получен модулем 333 вычисления параметра квантования для слоя, показанным на Фиг.19, с использованием параметра pic_init_qp_minus26 квантования, полученного модулем 332 вычисления параметра квантования для изображения, и параметра slice_qp_delta квантования, полученным, например, самостоятельно.
Следовательно, например, модуль 334 вычисления параметра квантования для элемента кодирования, показанный на Фиг.19, может получить параметр dQP квантования с использованием этих значений. Модуль 334 вычисления параметра квантования для элемента кодирования предоставляет параметр dQP квантования модулю 106 кодирования без потерь для передачи стороне декодирования.
Параметр pic_init_qp_minus26 квантования и параметр slice_qp_delta квантования определены, например, в "Рассматриваемой тестовой модели" (JCTVC - В205) и могут быть заданы способом, аналогичным способу традиционной системы кодирования.
На стороне декодирования параметр квантования для элемента кодирования может быть получен из параметра dQP квантования, передаваемого со стороны кодирования.
Например, модуль 413 вычисления значения квантования для элемента кодирования получает параметр SubMB_QP квантования для элемента кодирования из параметра dQP квантования, как это представлено нижеследующим уравнением (18), и преобразует его для того, чтобы получить значение квантования.
<mrow><mi>S</mi><mi>u</mi><mi>b</mi><mi>M</mi><mi>B</mi><mo>_</mo><mi>Q</mi><mi>P</mi><mo>=</mo><mi>C</mi><mi>l</mi><mi>i</mi><mi>p</mi><mrow><mo>(</mo><mrow><mi>min</mi><mi>Q</mi><mi>P</mi><mo>,</mo><mi>max</mi><mi>Q</mi><mi>P</mi><mo>,</mo><mi>S</mi><mi>l</mi><mi>i</mi><mi>c</mi><mi>e</mi><mi>Q</mi><mi>P</mi><mo>+</mo><mi>s</mi><mi>u</mi><mi>b</mi><mi>m</mi><mi>b</mi><mo>_</mo><mi>q</mi><mi>p</mi><mo>_</mo><mi>d</mi><mi>e</mi><mi>l</mi><mi>t</mi><mi>a</mi></mrow><mo>)</mo></mrow><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>18</mn></mrow><mo>)</mo></mrow></mrow>
В уравнении (18), minQP представляет некоторый определенный заранее минимальный параметр квантования, a maxQP представляет некоторый определенный заранее максимальный параметр квантования.
Таким образом, в случае, при котором параметр SliceQP квантования используется также для получения параметра dQP квантования, квантование и обратное квантование,
могут быть выполнены как в вышеописанных двух способах. Таким образом, не только могут быть выполнены квантование и обратное квантование, более подходящие для содержания изображения, но также и может быть уменьшено количество кода параметра квантования.
Таблица, в которой характеристики процессов указанных способов сравниваются друг с другом, проиллюстрирована на Фиг.24. В таблице, проиллюстрированной на Фиг.24, способ в верхней части таблицы (именуемый как первый способ) представляет собой способ получения параметра dQP квантования с использованием параметра квантования для Наибольшего элемента кодирования. Второй сверху способ (именуемый как второй способ) представляет собой способ получения параметра dQP квантования с использованием параметра квантования для элемента кодирования, обработанного непосредственно перед текущим блоком управления. Способ в нижней части таблицы (именуется как третий способ) представляет собой способ получения параметра dQP квантования с использованием параметра квантования для текущего слоя.
В таблице, показанной на Фиг.24, в качестве характеристик этих способов сравниваются друг с другом легкость осуществления конвейерного процесса и эффективность кодирования. Как обозначено в таблице, показанной на Фиг.24, конвейерный процесс легче осуществить в первом способе, чем во втором способе. Конвейерный процесс легче осуществить в третьем способе, чем в первом способе. Кроме того, эффективность кодирования лучше в первом способе, чем в третьем способе. Эффективность кодирования лучше во втором способе, чем в первом способе.
Таким образом, в общем, чем ближе область располагается к текущей области, тем выше коррелятивность с текущей областью (такой как элемент кодирования и субмакроблок). Следовательно, имеется возможность дополнительно повысить эффективность кодирования параметра dQP квантования, получая параметр dQP квантования с использованием области, более близкой к текущей области.
Однако, в общем, чем дальше область располагается от текущей области, тем раньше она обрабатывается. Следовательно, время до момента обработки текущей области, становится более длинным. Таким образом, допустимое время задержки обработки и тому подобного становится больше. Следовательно, в случае, когда параметр dQP квантования получается с использованием области, расположенной дальше от текущей области, вероятность, того, что произойдет задержка, является ниже, что полезно для конвейерного процесса.
Как было описано выше, способы имеют различные характеристики, так что подходящий способ отличается в зависимости от условия, имеющего приоритет. Между тем, также имеется возможность, чтобы мог быть выбран каждый способ. Способ выбора является произвольным. Например, пользователь и т.п. может заранее определить способ, который будет применен. Например, также имеется возможность, чтобы любой способ адаптивным образом выбирался в соответствии с некоторым произвольным условием (для каждого произвольного элемента процесса или когда, например, происходит некоторое произвольное событие).
В случае, когда адаптивным образом выбор какой - либо способ, также имеется возможность генерировать информацию флага, указывающую выбранный способ, и передавать эту информацию флага со стороны кодирования (стороны квантования) стороне декодирования (стороне обратного квантования). В этом случае, обратившись к информации флага, сторона декодирования (сторона обратного квантования) может выбрать тот же самый способ, что и способ на стороне кодирования (стороне квантования).
Кроме того, способ вычисления параметра dQP квантования является произвольным и может быть отличным от вышеописанного способа. Количество подготовленных способов вычисления также является произвольным. Кроме того, значение может быть переменным. Также имеется возможность передавать со стороны кодирования (стороны квантования) стороне декодирования (стороне обратного квантования) информацию, определяющую параметр dQP квантования.
С учетом характеристик вышеописанных способов проиллюстрируем способ вычисления значения разности параметра квантования. На Фиг.25 проиллюстрирован пример конфигураций Наибольшего элемента кодирования (LCU - элемента) и элемента кодирования (CU - элемента). (Номер) указывает порядок процесса кодирования (декодирования) элементов кодирования.
В LCU (0) порядок кодирования элементов кодирования является следующим:
CU(0)
→CU(10)→CU(11)→CU(12)→CU(13)
→CU(20)→CU(21)
→CU(30)→CU(31)→CU(32)→CU(33)
→CU(23)
→CU(3)
В этом случае, значение разности параметра квантования является следующим: Элемент CU(0) кодирования в головной части этого Наибольшего элемента кодирования передает значение разности между параметром SliceQP квантования для слоя, к которому принадлежит CU(0), (то есть для текущего слоя) и параметром квантования для текущего CU(0) с использованием уравнения (17).
dQP(CU(0))=CurrentQP(CU0)- SliceQP
Затем, элементы кодирования: с CU(10) по CU(3), отличные от элемента кодирования в головной части этого Наибольшего элемента кодирования, передают значение разности между параметром CurrentCU квантования для текущего элемента кодирования и параметром квантования предшествующего закодированного элемента кодирования (параметром PrevisousCU квантования) с использованием уравнения (16).
dQP=CurrentQP(CUi)-PreviousQP(CUi-1)
Таким образом, при описании со ссылкой на Фиг.25 значения разности параметра квантования являются нижеследующими:
dQP(CU(10))=CurrentQP(CU(10))-PrevisouQP(CU(0))
dQP(CU(11))=CurrentQP(CU(11))-PrevisouQP(CU(10))
dQP(CU(12))=CurrentQP(CU(12))-PrevisouQP(CU(11))
dQP(CU(13))=CurrentQP(CU(13))-PrevisouQP(CU(12))
dQP(CU(20))=CurrentQP(CU(20))-PrevisouQP(CU(13))
dQP(CU(21))=CurrentQP(CU(21))-PrevisouQP(CU(20))
dQP(CU(30))=CurrentQP(CU(30))-PrevisouQP(CU(21))
dQP(CU(31))=CurrentQP(CU(31))-PrevisouQP(CU(30))
dQP(CU(32))=CurrentQP(CU(32))-PrevisouQP(CU(31))
dQP(CU(33))=CurrentQP(CU(33))-PrevisouQP(CU32))
dQP(CU(23))=CurrentQP(CU(23))-PrevisouQP(CU33))
dQP(CU(3))=CurrentQP(CU(3))-PrevisouQP(CU23)
Для других Наибольших элементов кодирования: с LCU (1) по LCU (N), также, значения разности параметра квантования, подлежащие передаче, вычисляются аналогичным образом.
Таким образом, имеется возможность удовлетворять как условие легкости осуществления конвейерного процесса, так и условие эффективности кодирования, принимая преимущество характеристик каждого способа (обозначенное на чертеже двойной окружностью), вычисляя и передавая значение разности параметра квантования.
Между тем, принимая во внимание монтажную схему, при выполнении замкнутого регулирования внутри Наибольшего элемента кодирования, элемент CU(0) кодирования, расположенный в головной части Наибольшего элемента кодирования, может вычислять значение разности параметра квантования, используя уравнение (15).
Между тем, описанный выше параметр dQP квантования не обязательно должен быть установлен для всех элементов кодирования, и он может быть установлен только для того элемента кодирования, для которого желательно установить значение, отличное от опорного параметра квантования, такого как LCUQP, PreviousQP и SliceQP.
С этой целью, также имеется возможность добавить, например, в заголовок слоя SliceHeader синтаксическую конструкцию MinCUForDQPCoded.
Фиг.26 представляет собой чертеж, на котором проиллюстрирован пример синтаксиса заголовка слоя. Номер в левом конце каждой строки представляет собой номер строки, назначенный для описания.
В примере, показанном на Фиг.26, MinCUForDQPCoded устанавливается в 22 - ой строке. Это значение MinCUForDQPCoded указывает минимальный размер элемента кодирования, для которого устанавливается dQP. Например, даже в том случае, когда минимальный размер элемента кодирования составляет 8x8, если указано, что MinCUForDQPCoded=16, то модуль 334 вычисления параметра квантования для элемента кодирования, входящий в состав устройства 300 кодирования изображения, устанавливает dQP только для элемента кодирования, имеющего размер, не меньше чем 16 х 16, и не устанавливает dQP для элемента кодирования, имеющего размер 8x8. Таким образом, в этом случае, передается dQP для элемента кодирования, имеющего размер, не меньший чем 16 х 16. Между тем, в качестве способа указания минимального размера элемента кодирования, для которого устанавливается dQP, параметр MinCUForDQPCoded может быть установлен в виде флага (например, 0:4×4, 1:8×8, 2:16×16 и тому подобное) для того, чтобы идентифицировать (выбирать) минимальный размер элемента кодирования, для которого устанавливается dQP, из размера элемента кодирования (4×4, 8×8, 16×16, 32×32 и тому подобного), устанавливаемого во время кодирования (декодирования).
Например, когда изготовитель кодера хочет осуществлять регулирование только в случае элемента кодирования, имеющего размер 16×16, в элементе кодирования, имеющем размер 8x8, требуется передавать все dQP как 0, и это могло бы снизить эффективность кодирования.
Поэтому, устанавливая такую синтаксическую конструкцию MinCUForDQPCoded, имеется возможность в этом случае не производить передачу dQP для элемента кодирования, имеющего размер 8×8, препятствуя, таким образом, снижению эффективности кодирования.
Модуль 413 вычисления значения квантования для элемента кодирования, входящий в состав устройства 400 декодирования изображения, понимает, что dQP для элемента кодирования, имеющего размер 8×8, не передается в соответствии с таким синтаксисом, и вычисляет значение квантования, используя опорный параметр квантования, такой как LCUQP, PreviousQP и SliceQP.
Между тем, значение MinCUForDQPCoded может быть сохранено в месте, отличном от заголовка слоя. Например, оно может быть сохранено в наборе PictureParameterSet параметров изображения. Имеется возможность поддерживать операцию по смене этого значения после смены сцены, например, сохраняя его в заголовке слоя или наборе параметров изображения.
Однако в случае, когда значение MinCUForDQPCoded сохранено в заголовке среза, имеется возможность поддерживать ситуацию, при которой изображение разделено на множество слоев и также обрабатывается параллельно для каждого слоя, что более желательно.
5. Пятый вариант реализации изобретения
Резюме
Хотя выше было сказано, что параметр квантования для каждого субмакроблока (элемента кодирования, меньшего, чем Наибольший элемент кодирования) передается устройством кодирования изображения на устройство декодирования изображения, в этом случае требуется, чтобы устройство декодирования изображения также могло получать параметр квантования для каждого субмакроблока (элемента кодирования, меньшего, чем Наибольший элемент кодирования) и выполнять квантование для каждого субмакроблока (элемента кодирования, меньшего чем Наибольший элемент кодирования), используя указанный параметр квантования.
Следовательно, конфигурация может быть такой, что устройство кодирования изображения, выполняя квантование для каждого субмакроблока (элемента кодирования, меньшего чем Наибольший элемент кодирования) устанавливает параметр квантования для каждого макроблока (Наибольшего элемента кодирования) и предоставляет параметр квантования для каждого макроблока (Наибольшего элемента кодирования) устройству декодирования изображения.
Например, при вычислении показателя активности для каждого макроблока (Наибольшего элемента кодирования) согласно вышеописанной TestModel 5 устройство кодирования изображения вычисляет показатель активности для каждого блока (элемента кодирования) размером 8×8, 16×16 и тому подобное, меньшего чем макроблок (Наибольший элемент кодирования), даже в том случае, когда размер макроблока (Наибольшего элемента кодирования) составляет 64×64, 128×128 и тому подобное.
После этого, устройство кодирования изображения, основываясь на показателе активности для каждого блока 8x8 или блока 16×16, основанном на способе TestModel 5, определяет значение параметра квантования для каждого блока 8×8 или блока 16×16.
Однако параметр квантования устанавливается для каждого макроблока (Наибольшего элемента кодирования).
00
33
Например, предположим, что размер Наибольшего элемента кодирования (макроблока) составляет 64×64 пикселя, как это проиллюстрировано на Фиг.27. Когда устройство кодирования изображения вычисляет показатель активности для каждого элемента кодирования размером 16×16 для вычисления параметра квантования для Наибольшего элемента кодирования, показатель активности для каждого элемента кодирования (блока) становится: с QP по QP.
В случае стандарта AVC (Усовершенствованного кодирования видеоданных) параметр QP квантования разработан таким образом, чтобы, когда его значение получает приращение на 6, как, например, с 6 до 12, как это проиллюстрировано на Фиг.28, выполнялся бы процесс квантования, в два раза более грубый, чем исходный.
C
Y
Ухудшение сигнала цветности легко заметно, особенно на более низкой битовой скорости передачи данных, то есть, при более высоком QP. По этой причине заранее определяется принимаемый по умолчанию параметр QP квантования для сигнала цветности в отношении параметра QP квантования для сигнала яркости.
Пользователь может управлять этим соотношением, задавая информацию о ChromaQPOffset, включенном в состав сжатую информации изображения.
MB
С другой стороны, в случае этого варианта реализации изобретения, устройство кодирования изображения на первом этапе определяет параметр QP квантования для макроблока так, как представлено нижеследующим уравнением (19).
Уравнение 19
<mrow><mi>Q</mi><msub><mi>P</mi><mrow><mi>M</mi><mi>B</mi></mrow></msub><mo>=</mo><munder><mrow><mi>min</mi><mi>Q</mi><msub><mi>P</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><mrow><mi>i</mi><mi>j</mi><mo>=</mo><mn>0,3</mn></mrow></munder><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mn>19</mn></mrow><mo>)</mo></mrow></mrow>
00
33
На втором этапе с использованием значений: с QP по QP, выполняется процесс квантования для каждого блока. В результате этого в памяти сохраняется положение ненулевого коэффициента в каждом блоке.
MB
На третьем этапе с использованием значения QP выполняется процесс квантования для каждого блока.
На четвертом этапе только значение в положении коэффициента, являющегося ненулевым коэффициентом также на втором этапе, из числа ненулевых значений, полученных на третьем этапе, передается в информацию кодирования без потерь как закодированная информация.
MB
00
33
При выполнении такого рода процесса, хотя в сжатую информацию изображения передается в качестве параметра квантования только QP, становится возможным реализовать адаптивное квантование и улучшить субъективное качество изображения для сжатой информации изображения, являющейся выходной информацией, выполняя псевдопроцесс для каждого блока с использованием значений: с QP по QP.
Устройство кодирования изображения
Фиг.29 представляет собой структурную схему, на которой проиллюстрирован пример основной конфигурации устройства кодирования изображений, к которому применена данная технология. Как проиллюстрировано на Фиг.29, устройство 500 кодирования изображения в этом случае имеет конфигурацию, в основном, аналогичную конфигурации устройства 100 кодирования изображения, который показан на Фиг.1, и выполняет аналогичный процесс.
Однако вместо модуля 105 квантования, контроллера 117 скорости и модуля 121 квантования субмакроблока, входящих в состав устройства 100 кодирования изображения, устройство 500 кодирования изображения включает в себя контроллер 317 скорости, модуль 504 квантования элемента кодирования и модуль 505 квантования.
Хотя устройство 100 кодирования изображения, показанное на Фиг.1, включает в себя в дополнение к модулю 108 обратного квантования, модуль 122 обратного квантования, для субмакроблока, устройство 500 кодирования изображения включает в себя только модуль 108 обратного квантования. Таким образом, обратное квантование выполняется для каждого Наибольшего элемента кодирования (макроблока) как в традиционном AVC - кодировании и тому подобном. Это также относится к устройству декодирования изображения, соответствующему устройству 500 кодирования изображения.
Модуль 504 квантования элемента кодирования выполняет квантование для каждого элемента кодирования (например, Наименьшего элемента кодирования), используя показатель активности для каждого элемента кодирования, полученный контроллером 317 скорости.
Модуль 505 квантования получает параметр квантования для каждого Наибольшего элемента кодирования и, используя этот параметр, выполняет квантование для каждого элемента кодирования. После этого, модуль 505 квантования заменяет ненулевой коэффициент из числа квантованных коэффициентов ортогонального преобразования для элементов кодирования, полученных модулем 504 квантования элемента кодирования, на результат процесса квантования, выполняемого модулем 505 квантования, (на квантованный коэффициент ортогонального преобразования) в том же самом положении.
Результат этой замены предоставляется модулю 106 кодирования без потерь и модулю 108 обратного квантования, в качестве результата квантования. Кроме того, параметр квантования для каждого Наибольшего элемента кодирования, вычисленный модулем 505 квантования, предоставляется модулю 106 кодирования без потерь и модулю 108 обратного квантования.
Модуль 108 обратного квантования и модуль обратного квантования, входящие в состав устройства декодирования изображения (который не проиллюстрирован на чертеже) выполняет обратное квантование, используя параметр квантования для каждого Наибольшего элемента кодирования, как в случае традиционного AVC - кодирования и тому подобного.
Конфигурации контроллера скорости, модуля квантования элемента кодирования и модуля квантования
Фиг.30 представляет собой структурную схему, на которой проиллюстрирован пример детализированной конфигурации контроллера скорости, модуля квантования элемента кодирования и модуля квантования, показанных на Фиг.29.
Как проиллюстрировано на Фиг.30, модуль 504 квантования элемента кодирования включает в себя модуль 511 определения параметра квантования для элемента кодирования, процессор 512 квантования элемента кодирования и буфер 513 положения ненулевого коэффициента.
Модуль 511 определения параметра квантования для элемента кодирования определяет параметр CU_QP квантования для каждого элемента кодирования (например, Наименьшего элемента кодирования) на уровне, более низком, чем Наибольший элемент кодирования, с использованием показателя активности для каждого элемента кодирования (например, Наименьшего элемента кодирования) на уровне, более низком, чем Наибольший элемент кодирования, предоставляемого из буфера 322 показателя активности, входящего в состав контроллера 317 скорости. Модуль 511 определения параметра квантования для элемента кодирования предоставляет параметр CU_QP квантования для каждого элемента кодирования процессору 512 квантования элемента кодирования и модулю 522 определения параметра квантования для Наибольшего элемента кодирования, входящему в состав модуля 505 квантования.
Процессор 512 квантования элемента кодирования квантует коэффициент ортогонального преобразования, предоставляемый буфером 521 коэффициента ортогонального преобразования, входящим в состав модуля 505 квантования, для каждого элемента кодирования (например, Наименьшего элемента кодирования) на уровне, более низком, чем Наибольший элемент кодирования, используя параметр CU_QP квантования для каждого элемента кодирования, предоставляемый модулем 511 определения параметра квантования для элемента кодирования. Процессор 512 квантования элемента кодирования предоставляет буферу 513 положения ненулевого коэффициента данные о положении элемента кодирования, в котором значение не равно 0 (ненулевой коэффициент) из числа квантованных коэффициентов ортогонального преобразования для элементов кодирования, полученных посредством квантования.
Буфер 513 положения ненулевого коэффициента предоставляет в некоторый предварительно заданный момент времени сохраненные данные о положении ненулевого коэффициента модулю 524 замены коэффициента, входящему в состав модуля 505 квантования.
Как проиллюстрировано на Фиг.30, модуль 505 квантования включает в себя буфер 521 коэффициента ортогонального преобразования, модуль 522 определения параметра квантования для Наибольшего элемента кодирования, процессор 523 квантования Наибольшего элемента кодирования и модуль 524 замены коэффициента.
Буфер 521 коэффициента ортогонального преобразования сохраняет коэффициент ортогонального преобразования, предоставляемый модулем 104 ортогонального преобразования, и в некоторый предварительно заданный момент времени предоставляет сохраненный коэффициент ортогонального преобразования процессору 512 квантования элемента кодирования и процессору 523 квантования Наибольшего элемента кодирования.
Модуль 522 определения параметра квантования для Наибольшего элемента кодирования определяет в Наибольшем элементе кодирования минимальное значение параметров CU_QP квантования для каждого элемента кодирования, предоставляемых из модуля 511 определения параметра квантования для элемента кодирования, как параметр LCU_QP квантования для каждого Наибольшего элемента кодирования, как это представлено вышеописанным уравнением (19). Модуль 522 определения параметра квантования для Наибольшего элемента кодирования предоставляет параметр LCU_QP квантования (минимальное значение CU_QP в текущем Наибольшем элементе кодирования) для каждого Наибольшего элемента кодирования процессору 523 квантования Наибольшего элемента кодирования.
Процессор 523 квантования Наибольшего элемента кодирования квантует коэффициент ортогонального преобразования, предоставляемый из буфера 521 коэффициента ортогонального преобразования, для каждого элемента кодирования (например, Наименьшего элемента кодирования) на уровне, более низком, чем Наибольший элемент кодирования, используя параметр LCU_QP квантования для каждого Наибольшего элемента кодирования, предоставляемый модулем 522 определения параметра квантования для Наибольшего элемента кодирования. Процессор 523 квантования Наибольшего элемента кодирования предоставляет квантованный коэффициент ортогонального преобразования для каждого элемента кодирования, полученный посредством квантования, модулю 524 замены коэффициента.
Модуль 524 замены коэффициента заменяет коэффициент в положении, отличном от положения ненулевого коэффициента, данные о котором предоставлены из буфера 513 положения ненулевого коэффициента, из числа коэффициентов, значение которых не равно 0, (ненулевого коэффициента) из числа коэффициентов ортогонального преобразования, квантованных процессором 523 квантования Наибольшего элемента кодирования, на 0.
Таким образом, модуль 524 замены коэффициента принимает значение результата квантования, как квантованный ортогональный коэффициент преобразования, только для элемента кодирования (на уровне, более низком, чем Наибольший элемент кодирования), в котором полученное значение результата квантования не равно 0 как при квантовании, использующем параметр CU_QP квантования, определенный для каждого элемента кодирования на уровне, более низком, чем Наибольший элемент кодирования, так и при квантовании, использующем параметр LCU_QP квантования, определенный для каждого Наибольшего элемента кодирования. С другой стороны, для других элементов кодирования (на уровне, более низком, чем Наибольший элемент кодирования) модуль 524 замены коэффициента устанавливает все значения всех квантованных коэффициентов ортогонального преобразования в 0.
Модуль 524 замены коэффициента предоставляет квантованный коэффициент ортогонального преобразования, значение которого надлежащим образом заменено этим способом, вместе с параметром LCU_QP квантования, определенным для каждого Наибольшего элемента кодирования, модулю 106 кодирования без потерь и модулю 108 обратного квантования.
Модуль 106 кодирования без потерь кодирует предоставленные ему данные коэффициентов и параметр квантования для того, чтобы предоставить их устройству декодирования изображения (способное декодировать закодированные данные, сгенерированные устройством 500 кодирования изображения), соответствующее устройству 500 кодирования изображения. Устройство декодирования изображения выполняет обратное квантование, используя параметр LCU_QP квантования для каждого Наибольшего элемента кодирования, предоставляемого устройством 500 кодирования изображения, как в случае традиционного AVC - кодирования и тому подобного.
Модуль 108 обратного квантования, аналогичным образом осуществляет обратное квантование данных коэффициентов, предоставленных модулем 524 замены коэффициента, используя параметр LCU_QP квантования для каждого Наибольшего элемента кодирования, предоставляемый модулем 524 замены коэффициента.
Тем временем, модуль 108 обратного квантования, имеет конфигурацию, в основном, аналогичную конфигурации модуля 203 обратного квантования, описанного со ссылкой на Фиг.10. Однако в случае модуля 108 обратного квантования, процессор 253 обратного квантования осуществляет обратное квантование квантованного коэффициента ортогонального преобразования, предоставляемого буфером 252 коэффициента ортогонального преобразования, используя параметр квантования (параметр LCU_QP квантования для каждого Наибольшего элемента кодирования), предоставляемый из буфера 251 параметра квантования.
Алгоритм процесса кодирования
Далее, со ссылкой на блок-схему алгоритма, показанную на Фиг.31, описывается пример алгоритма процесса кодирования, исполняемого устройством 500 кодирования изображения. В этом случае, каждый процесс, входящий в состав процесса кодирования, выполняется способом, в основном, аналогичным способу в каждом процессе, входящем в состав процесса кодирования, описанного со ссылкой на блок-схему алгоритма, показанную на Фиг.7.
Таким образом, процессы на этапах: с S 701 по S 704, выполняются как процессы в этапах: с S 101по S 104, показанных на Фиг.7. Однако вместо этапов S 105 и S 106, показанных на Фиг.7, выполняется процесс квантования на этапе S 705. Кроме того, процессы на этапах: с S 706 по S 716 выполняются так, как процессы на этапах: с S 106 по S 117.
Алгоритм процесса квантования
Далее, со ссылкой на блок-схему алгоритма, показанную на Фиг.32, описывается пример алгоритма процесса квантования, выполняемого на этапе S 705 показанном на Фиг.31.
Когда процесс квантования запущен, модуль 321 вычисления показателя активности вычисляет на этапе S 731 показатель активности для каждого элемента кодирования.
На этапе S 732 модуль 511 определения параметра квантования для элемента кодирования определяет параметр CU_QP квантования для каждого элемента кодирования на уровне, более низком, чем Наибольший элемент кодирования.
На этапе S 733 модуль 522 определения параметра квантования для Наибольшего элемента кодирования определяет параметр LCU_QP квантования для каждого Наибольшего элемента кодирования.
На этапе S 734 процессор 512 квантования элемента кодирования выполняет квантование с использованием параметра CU_QP квантования для каждого элемента кодирования на уровне, более низком, чем Наибольший элемент кодирования.
На этапе S 735 буфер 513 положения ненулевого коэффициента сохраняет данные о положении ненулевого коэффициента, сгенерированного посредством процесса квантования на этапе S 734.
На этапе S 736 процессор 523 квантования Наибольшего элемента кодирования выполняет квантование с использованием параметра LCU_QP квантования для каждого Наибольшего элемента кодирования.
На этапе S 737 модуль 524 замены коэффициента заменяет значение квантованного коэффициента ортогонального преобразования для элемента кодирования на уровне, более низком, чем Наибольший элемент кодирования, в положении, отличном от положения ненулевого коэффициента, данные о котором сохранены посредством процесса на этапе S 735, на 0.
Когда замена завершается, процесс квантования завершается, и процесс возвращается на этап S 705, показанный на Фиг.31, после чего исполняются процессы на этапе S 706 и последующие этапы.
Как было описано выше, в устройстве кодирования информации изображения и устройстве декодирования информации изображения, у которых, соответственно, выходные и входные данные представляют собой сжатую информацию изображения, основанную на системе кодирования, использующей расширенный макроблок, имеется возможность выполнять адаптивное квантование, основанное на характеристиках однотонной области и области текстуры, даже когда они смешаны в едином Наибольшем элементе кодирования (макроблоке), выполняя процесс псевдоквантования для каждого элемента кодирования (субмакроблока) на уровне, более низком, чем Наибольший элемент кодирования, таким образом, улучшая субъективное качество изображения.
6. Шестой вариант реализации изобретения
Применение к кодированию изображения с множественными представлениями/декодированию изображения с множественными представлениями
Вышеописанная последовательность процессов может быть применена к кодированию изображения с множественными представлениями и декодированию изображения с множественными представлениями. На Фиг.33 проиллюстрирован пример системы кодирования изображения с множественными представлениями.
Как проилюстрировано на Фиг.33, изображение с множественными представлениями включает в себя изображения с множества точек обзора, и изображение с некоторой предварительно заданной точки обзора из множества точек обзора определено как изображение основного представления. Изображение с каждой точки обзора, отличное от изображения основного представления, рассматривается как изображение неосновного представления.
При выполнении кодирования изображения с множественными представлениями, как это проиллюстрировано на Фиг.33, также имеется возможность получить разность между параметрами квантования каждого представления (одного и того же представления).
(1) основное представление:
(1-1) dQP (основного представления)=Current_CU_QP(основного представления) - LCU_QP (основного представления)
(1-2) dQP (основного представления)=Current_CU_QP(основного представления) - Previsous_CU_QP (основного представления)
(1-3) dQP(основного представления)=Current_CU_QP(основного представления) - Slice_QP (основного представления)
(2) неосновное представление:
(2-1) dQP (неосновного представления)=Current_CU_QP(неосновного представления) - LCU_QP (неосновного представления)
(2-2) dQP (неосновного представления)=CurrentQP (неосновного представления) - PrevisousQP (неосновного представления)
(2-3) dQP (неосновного представления)=Current_CU_QP (неосновного представления) - Slice_QP (неосновного представления)
При выполнении кодирования изображения с множественными представлениями, также имеется возможность получить разность между параметрами квантования для каждого представления (различных представлений).
(3) основное представление/неосновное представление:
(3-1) dQP (между представлениями)=Slice_QP (основное представление) - Slice_QP (неосновное представление)
(3-2) dQP (между представлениями)=LCU_QP (основное представление) - LCU_QP (неосновное представление)
(4) неосновное представление/неосновное представление:
(4-1) dQP (между представлениями)=Slice_QP (неосновное представление i) - Slice_QP (неосновное представление j)
(4-2) dQP (между представлениями)=LCU_QP(неосновное представление i) - LCU_QP (неосновное представление j)
В этом случае, также имеется возможность объединять вышеописанные варианты: с (1) по (4). Например, в случае неосновного представления рассматриваются способ получения разности между параметрами квантования на уровне слоя между основным представлением и неосновным представлением (объединяются варианты 3- 1 и 2-3) и способ получения разности между параметрами квантования на уровне Наибольшего элемента кодирования между основным представлением и неосновным представлением (объединяются варианты 3-2 и 2-1). Таким образом, имеется возможность, повторно применяя разность, повысить эффективность кодирования также и в том случае, при котором выполняется кодирование с множественными представлениями.
Как и в вышеописанном способе, также имеется возможность для каждого dQP, описанного выше, устанавливать флаг для идентификации того, имеется ли dQP, значение которого не равно 0.
Устройство кодирования изображения с множественными представлениями
Фиг.34 представляет собой чертеж, на котором проиллюстрирован устройство кодирования изображений с множественными представлениями, выполняющее вышеописанное кодирование изображения с множественными представлениями. Как проиллюстрировано на Фиг.34, устройство 600 кодирования изображения с множественными представлениями включает в себя модуль 601 кодирования, модуль 602 кодирования и модуль 603 мультиплексирования.
Модуль 601 кодирования кодирует изображение основного представления для генерирования закодированного потока данных изображения основного представления. Модуль 602 кодирования кодирует изображение неосновного представления для генерирования закодированного потока данных изображения неосновного представления. Модуль 603 мультиплексирования мультиплексирует закодированный поток данных изображения основного представления, генерированный модулем 601 кодирования, и закодированный поток данных изображения неосновного представления, сгенерированный модулем 602 кодирования, для генерирования закодированный поток данных изображения с множественными представлениями.
В модуле 601 кодирования и модуле 602 кодирования, входящих в состав устройства 600 кодирования изображения с множественными представлениями, могут быть применены устройство 100 кодирования изображения (см. Фиг.1), устройство 300 кодирования изображения (см. Фиг.18) или устройство 500 кодирования изображения (см. Фиг.29). В этом случае устройство 600 кодирования изображения с множественными представлениями устанавливает значение разности между параметром квантования, устанавливаемым модулем 601 кодирования, и параметром квантования, устанавливаемым модулем 602 кодирования, для передачи этого значения.
Устройство декодирования изображения с множественными представлениями
Фиг.35 представляет собой чертеж, на котором проиллюстрировано устройство декодирования изображений с множественными представлениями, который выполняет вышеописанное декодирование изображения с множественными представлениями. Как проиллюстрировано на Фиг.35, устройство 610 декодирования изображения с множественными представлениями включает в себя модуль 611 демультиплексирования, модуль 612 декодирования и модуль 613 декодирования.
Модуль 611 демультиплексирования осуществляет демультиплексирование закодированного потока данных изображения с множественными представлениями, в котором мультиплексированы закодированный поток данных изображения основного представления и закодированный поток данных изображения неосновного представления, для извлечения закодированного потока данных изображения основного представления и закодированного потока данных изображения неосновного представления. Модуль 612 декодирования декодирует извлеченный модулем 611 демультиплексирования закодированный поток данных изображения основного представления для того, чтобы получить изображение основного представления. Модуль 613 декодирования декодирует извлеченный модулем 611 демультиплексирования закодированный поток данных изображения неосновного представления для того, чтобы получить изображение неосновного представления.
Имеется возможность применить в модуле 612 декодирования и модуле 613 декодирования входящих в состав устройства 610 декодирования изображения с множественными представлениями, устройство 200 декодирования изображения (см. Фиг.9) или устройство 400 декодирования изображения (см. Фиг.21). В этом случае, для выполнения обратного квантования, устройство 610 декодирования изображения с множественными представлениями устанавливает параметр квантования, исходя из значения разности между параметром квантования, установленным модулем 601 кодирования и параметром квантования, установленным модулем 602 кодирования.
7. Седьмой вариант реализации изобретения
Применение к кодированию точки иерархического изображения/декодированию иерархического изображения
Вышеописанная последовательность процессов может быть применена к кодированию иерархического изображения/декодированию иерархического изображения. На Фиг.36 проиллюстрирован пример системы кодирования изображения с множественными представлениями.
Как проиллюстрировано на Фиг.36, иерархическое изображение включает в себя изображения множества уровней (разрешающих способностей), и изображение некоторого предварительно заданного уровня из числа множества разрешений указывается в качестве изображения основного уровня. Изображение каждого уровня, отличное от изображения основного уровня, рассматривается как изображение неосновного уровня.
При выполнении кодирования иерархического изображения (пространственной масштабируемости), как это проиллюстрировано на Фиг.36, также имеется возможность получить разность между параметрами квантования каждого уровня (одного и того же уровня):
(1) основной уровень:
(1-1) dQP (основного уровня)=Current_CU_QP (основного уровня) - LCU_QP(основного уровня)
(1-2) dQP (основного уровня)=Current_CU_QP (основного уровня) - Previsous_CU_QP (основного уровня)
(1-3) dQP (основного уровня)=Current_CU_QP (основного уровня) - Slice_QP (основного уровня)
(2) неосновной уровень:
(2-1) dQP (неосновного уровня)=Current_CU_QP (неосновного уровня) - LCU_QP (неосновного уровня)
(2-2) dQP (неосновного уровня)=CurrentQP (неосновного уровня) - PrevisousQP (неосновного уровня)
(2-3) dQP (неосновного уровня)=Current_CU_QP (неосновного уровня) - Slice_QP (неосновного уровня)
При выполнении иерархического кодирования также имеется возможность получить разность между параметрами квантования каждого уровня (различных уровней).
(3) основной уровень/неосновной уровень:
(3-1) dQP (между уровнями)=Slice_QP (основной уровень) - Slice_QP (неосновной уровень)
(3-2) dQP (между уровнями)=LCU_QP (основной уровень) - LCU_QP (неосновной уровень)
(4) неосновной уровень/неосновной уровень:
(4-1) dQP (между уровнями)=Slice_QP (неосновной уровень i) - Slice_QP (неосновной уровень j)
(4-2) dQP(между уровнями)=LCU_QP (неосновной уровень i) - LCU_QP (неосновной уровень j)
В этом случае, также имеется возможность объединять вышеописанные варианты: с (1) по (4). Например, в случае неосновного уровня рассматриваются способ получения разности между параметрами квантования, относящимися к слою, между основным уровнем и неосновным уровнем (объединяются варианты 3-1 и 2-3)и способ получения разности между параметрами квантования, относящимися к Наибольшему элементу кодирования, между основным уровнем и неосновным уровнем (объединяются варианты 3-2 и 2-1). Таким образом, имеется возможность, повторно применяя разность, повысить эффективность кодирования также и в том случае, когда выполняется иерархическое кодирование.
Как и в вышеописанном способе, также имеется возможность для каждого dQP, описанного выше, устанавливать флаг для идентификации того, имеется ли dQP, значение которого не равно 0.
Устройство кодирования иерархического изображения
Фиг.37 представляет собой чертеж, на котором проиллюстрировано устройство кодирования иерархических изображений, выполняющее вышеописанное кодирование иерархического изображения. Как проиллюстрировано на Фиг.37, устройство 620 кодирования иерархического изображения включает в себя модуль 621 кодирования, модуль 622 кодирования и модуль 623 мультиплексирования.
Модуль 621 кодирования кодирует изображение основного уровня для генерирования закодированного потока данных изображения основного уровня. Модуль 622 кодирования кодирует изображение неосновного уровня генерирования закодированного потока данных изображения неосновного уровня. Модуль 623 мультиплексирования мультиплексирует закодированный поток данных изображения основного уровня, сгенерированный модулем 621 кодирования, и закодированный поток данных изображения неосновного уровня, сгенерированный модулем 622 кодирования, для генерирования закодированного потока данных иерархического изображения.
В модуле 621 кодирования и модуле 622 кодирования, входящих в состав устройства 620 кодирования иерархического изображения, могут быть применены устройство 100 кодирования изображения (см. Фиг.1), устройство 300 кодирования изображения (см. Фиг.18) или устройство 500 кодирования изображения (см. Фиг.29). В этом случае устройство 600 кодирования иерархического изображения устанавливает значение разности между параметром квантования, устанавливаемым модулем 621 кодирования, и параметром квантования, устанавливаемым модулем 622 кодирования для того, чтобы передать это значение.
Аппарат декодирования иерархического изображения
Фиг.38 представляет собой чертеж, на котором проиллюстрировано устройство декодирования иерархических изображений, выполняющее вышеописанное декодирование иерархического изображения. Как проиллюстрировано на Фиг.38, устройство 630 декодирования иерархического изображения включает в себя модуль 631 демультиплексирования, модуль 632 декодирования и модуль 633 декодирования.
Модуль 631 демультиплексирования осуществляет демультиплексирование закодированного потока данных иерархического изображения, который получен посредством мультиплексирования закодированного потока данных изображения основного уровня и закодированного потока данных изображения неосновного уровня, для того, чтобы извлечь закодированный поток данных изображения основного уровня и закодированный поток данных изображения неосновного уровня. Модуль 632 декодирования декодирует извлеченный модулем 631 демультиплексирования закодированный поток данных изображения основного уровня для того, чтобы получить изображение основного уровня. Модуль 633 декодирования декодирует извлеченный модулем 631 демультиплексирования закодированный поток данных изображения неосновного уровня для получения изображения неосновного уровня.
В модуле 632 декодирования и модуле 633 декодирования, входящих в состав устройства 630 декодирования иерархического изображения, могут быть применены устройство 200 декодирования изображения (см. Фиг.9) или устройство 400 декодирования изображения (см. Фиг.21). В этом случае, для выполнения обратного квантования, устройство 630 декодирования иерархического изображения устанавливает параметр квантования, исходя из значения разности между параметром квантования, установленным кодирующим модулем 631, и параметром квантования, установленным модулем 632 кодирования.
8. Восьмой вариант реализации изобретения
Компьютер
Вышеописанная последовательность процессов может быть исполнена посредством аппаратных средств или может быть исполнена посредством программных средств. В этом случае, может иметь место конфигурация, например, как компьютер, проиллюстрированный на Фиг.39.
На Фиг.39 центральный процессор (ЦП) 701, входящий в состав персонального компьютера 700, исполняет различные процессы в соответствии с программой, хранящейся в Постоянном запоминающем устройстве (ПЗУ) 702, или программой, загружаемой с модуля 713 хранения в Оперативное запоминающее устройство (ОЗУ) 703Г Данные, необходимые для того, чтобы центральный процессор 701 исполнял различные процессы, также надлежащим образом хранятся в оперативном запоминающем устройстве 703.
Центральный процессор 701, постоянное запоминающее устройство 702 и оперативное запоминающее устройство 703 соединены друг с другом через шину 704. С шиной 704 также соединен интерфейс 710 ввода-вывода.
С интерфейсом ввода-вывода (710) соединены модуль 711 ввода, образованный клавиатурой, "мышью" и тому подобным, модуль 712 вывода, образованный устройством отображения, формируемым электронно-лучевой трубкой (ЭЛТ) или жидкокристаллическим дисплеем (ЖКД), громкоговорителем и тому подобным, модуль 713 хранения, образованный жестким магнитным диском и тому подобным, и модуль 714 связи, образованный модемом и тому подобным. Модуль 714 связи выполняет процесс связи через сеть, включающую в себя Интернет.
С интерфейсом 710 ввода - вывода соединен, при необходимости привод 715, на него надлежащим образом устанавливается съемный носитель 721 данных, такой как магнитный диск, оптический диск, магнитооптического диск и полупроводниковое запоминающее устройство, и компьютерная программа, считываемая с носителя данных, устанавливается в модуль 713 хранения.
В случае, когда вышеописанная последовательность процессов выполняется посредством программного обеспечения, программа, которая составляет это программное обеспечение, устанавливается из сети или с носителя записи.
Носитель записи состоит не только из съемного носителя 721 данных, включающего в себя магнитный диск (включая гибкий диск), оптический диск (включая CD-ROM (Постоянное запоминающее устройство на компакт - диске) и DVD (Цифровой универсальный диск)), магнитооптический диск (включая MD (Минидиск)), и полупроводниковое запоминающего устройства, на которое записана программа, поставляемого пользователю для поставки программы отдельно от основного корпуса устройства, но также и из постоянного запоминающего устройства 702, в котором записана программа, и жесткого магнитного диска, входящего в состав модуля 713 хранения, поставляемого пользователю в состоянии, заранее встроенном в основной корпус устройства, как это проиллюстрировано, например, на Фиг.39.
Между тем, программа, исполняемая компьютером, может представлять собой программу, процессы которой выполняются хронологически в порядке, описанном в этой спецификации, или программу, процессы которой выполняются параллельно или в некоторые предварительно заданные моменты времени, как, например, когда их вызывают.
Кроме того, в этой спецификации этап описания программы, записанной на носителе записи, включает в себя не только процессы, выполненные хронологически в описанном порядке, но также и процессы, исполняемые параллельно или в индивидуальном порядке, которые не обязательно выполняются в хронологическом порядке.
Кроме того, в этой спецификации система означает все устройство, включающее в себя множество устройств (аппаратов).
Также имеется возможность разделить конфигурацию, описанную выше как одно устройство (или процессор), на множество устройство (или процессоров). Наоборот, также имеется возможность расположить конфигурации, описанные выше как множество устройств (или процессоров), вместе как одно устройство (или процессор). Само собой разумеется, что к конфигурации каждого устройства (или каждого процессора) может быть добавлена конфигурация, отличная от вышеописанной конфигурации. Кроме того, также имеется возможность добавлять часть конфигурации определенного устройства (или процессора) к конфигурации другого устройства (или другого процессора), если конфигурация и операция всей системы является, по существу, той же самой. Таким образом, вариант реализации данной технологии не ограничен вышеописанными вариантами реализации, и могут быть сделаны различные изменения, не выходящие за рамки сущности данной технологии.
Устройство 100 кодирования изображения (см. Фиг.1), устройство 300 кодирования изображения (см. Фиг.18), устройство 500 кодирования изображения (см. Фиг.29), устройство 600 кодирования изображения с множественными представлениями (см. Фиг.34), устройство 620 кодирования иерархического изображения (см. Фиг.37), устройство 200 декодирования изображения (см. Фиг.9), устройство 400 декодирования изображения (см. Фиг.21), устройство 610 декодирования изображения с множественными представлениями (см. Фиг.35) и устройство декодирования иерархического изображения (см. Фиг.38), соответствующие вышеописанным вариантам реализации изобретениям, могут быть применены к различным электронным устройствам, таким как передатчик или приемник в спутниковом вещании, кабельном вещании, к кабельному телевидению и тому подобному, передаче данных в сети "Интернет", передаче данных на оконечное устройство посредством сотовой связи и тому подобного, записывающему устройству, которое записывает изображение на носитель данных, такой как оптический диск, магнитный диск и флэш-память, или устройству воспроизведения, которое воспроизводит изображение с носителя данных. Далее описываются четыре варианта применения.
Телевизионный аппарат
На Фиг.40 проиллюстрирован пример схематической конфигурации телевизионного устройства, к которому применен вышеописанный вариант реализации изобретения. Телевизионное устройство 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 видеосигнала, таким образом, чтобы отображать видеоинформацию или изображение на видеоэкране устройства отображения (например, жидкокристаллического дисплея, плазменного дисплея, органического электролюминесцентного дисплея (OELD - дисплея (органического ЭЛ дисплея)) и тому подобного).
Процессор 907 речевого сигнала выполняет процесс воспроизведения, такой как цифроаналоговое преобразование и усиление, над речевыми данными, вводимыми декодером 904, и позволяет громкоговорителю 908 выводить речевую информацию. Процессор 907 видеосигнала может также выполнять над речевыми данными дополнительный процесс, такой как удаления шума.
Внешний интерфейс 909 представляет собой интерфейс для соединения телевизионного устройства 900 и внешнего устройства или сети. Например, поток видеоинформации или поток речевой информации, принятые через внешний интерфейс 909, могут быть декодированы декодером 904. Таким образом, внешний интерфейс 909 также служит в качестве передающего средства в телевизионном устройстве 900, который принимает закодированный поток, в котором закодировано изображение.
Контроллер 910 включает в себя процессор, такой как центральный процессор, и память, такую как оперативное запоминающее устройство и постоянное запоминающее устройство. Память хранит программу, исполняемую центральным процессором, данные программ, данные EPG (Электронного путеводителя по телевизионным программам), данные, полученные через сеть, и тому подобное. Программа, хранящаяся в памяти, считывается центральным процессором, например, при пуске телевизионного устройства 900. Исполняя эту программу, центральный процессор управляет функционированием телевизионного устройства 900 в соответствии, например, с операционным сигналом, вводимым пользовательским интерфейсом 911.
С контроллером 910 соединен пользовательский интерфейс 911. Пользовательский интерфейс 911 включает в себя, например, кнопку и выключатель для того, чтобы пользователь управлял телевизионным устройством 900, приемник сигнала дистанционного управления и тому подобное. Пользовательский интерфейс 911 обнаруживает операцию, производимую пользователем, посредством компонентов, предназначенных для генерирования операционного сигнала, и выводит сгенерированный операционный сигнал на контроллер 910.
Шина 912 соединяет тюнер 902, демультиплексор 903, декодер 904, процессор 905 видеосигнала, процессор 907 речевого сигнала, внешний интерфейс 909 и контроллер 910 друг с другом.
В телевизионном устройстве 900, сконфигурированном таким образом, декодер 904 выполняет функции устройства 200 декодирования изображения (см. Фиг.9), устройства 400 декодирования изображения (см. Фиг.21), устройства 610 декодирования изображения с множественными представлениями (см. Фиг.35) или устройства 630 декодирования иерархического изображения (см. Фиг.38), соответствующих вышеописанным вариантам реализации изобретения. Следовательно, декодер 904 вычисляет значение квантования для каждого субмакроблока, используя параметр квантования, такой как submb_qp_delta, предоставляемый со стороны кодирования, для того, чтобы выполнить обратное квантование, для видеоинформации, декодируемой телевизионным устройством 900. Следовательно, имеется возможность выполнять обратное квантование, более подходящее для содержания изображения, таким образом, препятствуя ухудшению субъективного качества изображения для декодированного изображения.
Мобильный телефон
На Фиг.41 проиллюстрирован пример схематической конфигурации мобильного телефона, к которому применен вышеописанный вариант реализации изобретения. Мобильный телефон 920 снабжен антенной 921, модулем 922 связи, речевым кодером - декодером 923, громкоговорителем 924, микрофоном 925, модулем 926 фотокамеры, процессором 927 изображения, модулем 928 мультиплексирования/разделения, модулем 929 записи/воспроизведения, модулем 930 отображения, контроллером 931, операционным модулем 932 и шиной 933.
Антенна 921 соединена с модулем 922 связи. Громкоговоритель 924 и микрофон 925 соединены с речевым кодером - декодером 923. Операционный модуль 932 соединен с контроллером 931. Шина 933 соединяет модуль 922 связи, речевой кодер - декодер 923, модуль 926 фотокамеры, процессор 927 изображения, модуль 928 мультиплексирования/разделения, модуль 929 записи/воспроизведения, модуль 930 отображения, контроллером 931 друг с другом.
Мобильный телефон 920 выполняет операцию, такую как передача/прием речевого сигнала, передача/прием электронной почты или данных изображения, фотографирование изображения и запись данных в различных рабочих режимах, включающих в себя режим передачи речевого сигнала, режим передачи данных, режим формирования изображения, и телевизионный - телефонный режим.
В режиме передачи речевого сигнала, аналоговый речевой сигнал, сгенерированный микрофоном 925, предоставляется речевому кодеру - декодеру 923. Речевой кодер - декодер 923 преобразует аналоговый речевой сигнал в речевые данные и осуществляет аналого-цифровое преобразование этих преобразованных речевых данных для сжатия. После этого, речевой кодер-декодер 923 выводит сжатые речевые данные в модуль 922 связи. Модуль 922 связи кодирует и модулирует речевые данные таким образом, чтобы сгенерировать сигнал передачи. После этого, модуль 922 связи передает через антенну 921 сгенерированный сигнал передачи базовой станции (не проиллюстрированной на чертеже). Кроме того, модуль 922 связи усиливает сигнал беспроводной связи, принятый через антенну 921, и применяет к нему преобразование частоты для того, чтобы получить сигнал приема. После этого, модуль 922 связи, демодулируя и декодируя сигнал приема, генерирует речевые данные и выводит сгенерированные речевые данные в речевой кодер-декодер 923. Речевой кодер-декодер 923 разворачивает речевые данные и осуществляет их цифроаналоговое преобразование для того, чтобы сгенерировать аналоговый речевой сигнал. После этого, речевой кодер-декодер 923 предоставляет сгенерированный речевой сигнал громкоговорителю 924, позволяя ему выводить речевую информацию.
В режиме передачи данных, например, контроллер 931 генерирует в соответствии с операцией пользователя, выполняемой посредством операционного модуля 932, символьные данные, составляющие электронное почтовое сообщение. Кроме того, контроллер 931 позволяет модулю 930 отображения отображать символы. Контроллер 931 генерирует данные электронного почтового сообщения, соответствующие команде передачи, поступающей от пользователя через операционный модуль 932, для того, чтобы вывести сгенерированные данные электронного почтового сообщения на модуль 922 связи. Модуль 922 связи кодирует и модулирует данные электронного почтового сообщения для того, чтобы сгенерировать сигнал передачи. После этого, модуль 922 связи передает через антенну 921 сгенерированный сигнал передачи на базовую станцию (не проиллюстрированную на чертеже). Кроме того, модуль 922 связи усиливает сигнал беспроводной связи, принимаемый через антенну 921, и применяет к нему преобразование частоты для того, чтобы получить сигнал приема. После этого, модуль 922 связи демодулирует и декодирует сигнал приема для того, чтобы восстановить данные электронного почтового сообщения, и выводит восстановленные данные электронного почтового сообщения на контроллер 931. Контроллер 931 позволяет модулю 930 отображения отобразить содержание данных электронного почтового сообщения и позволяет носителю данных, относящемуся к модулю 929 записи/воспроизведения, сохранить эти данные электронного почтового сообщения.
Модуль 929 записи/воспроизведения включает в себя произвольный считываемый/записываемый носитель данных. Например, этот носитель данных может представлять собой встроенный носитель данных, такой как оперативное запоминающее устройство и флэш-память, и может представлять собой устанавливаемый внешним образом носитель данных, такой как жесткий магнитный диск, магнитный диск, магнитооптический диск, оптический диск, память с USB - разъемом и карта памяти.
В режиме формирования изображения, например, модуль 926 фотокамеры снимает изображение объекта, генерируя данные изображений, и выводит сгенерированные данные изображений на процессор 927 изображения. Процессор 927 изображения кодирует данные изображений, вводимые модулем 926 фотокамеры и сохраняет закодированный поток данных на носителе данных, относящемся к модулю 929 записи/воспроизведения.
Кроме того, в телевизионном - телефонном режиме, например, модуль 928 мультиплексирования/разделения осуществляет мультиплексирование потока видеоинформации, закодированного процессором 927 изображения, и потока речевой информации, вводимой речевым кодером-декодером 923, и выводит мультиплексированный поток данных на модуль 922 связи. Модуль 922 связи кодирует и модулирует этот поток данных для генерирования сигнала передачи. После этого, модуль 922 связи передает через антенну 921 сгенерированный сигнал передачи на базовую станцию (не проиллюстрированную на чертеже). Кроме того, модуль 922 связи усиливает сигнал беспроводной связи, принятый антенной 921, и применяет к нему преобразование частоты для получения сигнала приема. Сигнал передачи и сигнал приема могут включать в себя закодированный поток битов. После этого, модуль 922 связи, демодулируя и декодируя сигнал приема, восстанавливает поток данных и выводит восстановленный поток данных на модуль 928 мультиплексирования/разделения. Модуль 928 мультиплексирования/разделения отделяет от входного потока данных поток видеоинформации и поток речевой информации и выводит поток видеоинформации и поток речевой информации на процессор 927 изображения и речевой кодер-декодер 923, соответственно. Процессор 927 изображения декодирует поток видеоинформации для того, чтобы сгенерировать видеоданные. Видеоданные предоставляются модулю 930 отображения, и модуль 930 отображения отображает последовательность изображений. Речевой кодер - декодер 923 разворачивает поток речевой информации и осуществляет его цифроаналоговое преобразование для генерирования аналогового речевого сигнала. После этого, речевой кодер-декодер 923 предоставляет сгенерированный речевой сигнал громкоговорителю 924 для вывода речевой информации.
В мобильном телефоне 920, сконфигурированном таким образом, процессор 927 изображения выполняет функции устройства 100 кодирования изображения (см. Фиг.1), устройства 300 кодирования изображения (см. Фиг.18) устройства 500 кодирования изображения (см. Фиг.29), устройства 600 кодирования изображения с множественными представлениями (см. Фиг.34) или устройства 620 кодирования иерархического изображения (см. Фиг.37) и функции устройства 200 декодирования изображения (см. Фиг.9), устройства 400 декодирования изображения (см. Фиг.21), устройства 610 декодирования изображения с множественными представлениями (см. Фиг.35) или устройства 630 декодирования иерархического изображения (см. Фиг.38), соответствующих вышеописанным вариантам реализации изобретения. Следовательно, процессор 927 изображения вычисляет значение квантования для каждого субмакроблока и осуществляет квантование коэффициента ортогонального преобразования, используя этот параметр квантования для каждого субмакроблока, для видеоинформации, кодируемой и декодируемой мобильным телефоном 920. Таким образом, имеется возможность выполнять процесс квантования, более подходящий для содержания изображения, и генерировать закодированные данные таким образом, чтобы воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения. Кроме того, процессор 927 изображения вычисляет значение квантования для каждого субмакроблока, используя параметр квантования, такой как submb_qp_delta, предоставляемый со стороны кодирования, для того, чтобы выполнить обратное квантование. Следовательно, имеется возможность выполнять обратное квантование, более подходящее для содержания изображения, препятствуя ухудшению субъективного качества изображения для декодированного изображения.
Устройство кодирования изображения и устройство декодирования изображения, к которым применена данная технология, хотя выше и были описаны, как мобильный телефон 920, могут быть применены, как в случае мобильного телефона 920, к любому устройству, имеющему функцию формирования изображения и функцию связи, аналогичные функциям мобильного телефона 920, такому как, например, PDA (персональные цифровые секретари), "смартфон" (интеллектуальный мобильный телефон), UMPC (ультратонкий мобильный персональный компьютер), "нетбук" (ноутбук, предназначенный, главным образом, для выхода в сеть), и компьютер - ноутбук.
Аппарат записи/воспроизведения
На Фиг.42 проиллюстрирован пример схематической конфигурации устройства записи/воспроизведения, к которому применен вышеописанный вариант реализации изобретения. Устройство 940 записи/воспроизведения, например, кодирует речевые данные и видеоданные принятой вещательной программы для того, чтобы записать их на носитель записи. Кроме того, устройство 940 записи/воспроизведения может, например, кодировать для записи наноситель записи, речевые данные и видеоданные, полученные от другого устройства. Кроме того, устройство 940 записи/воспроизведения воспроизводит, в соответствии с командой пользователя, данные, записанные на носителе записи, посредством монитора и громкоговорителя. При этом устройство 940 записи/воспроизведения декодирует речевые данные и видеоданные.
Устройство 940 записи/воспроизведения снабжено тюнером 941, внешним интерфейсом 942, кодером 943, накопителем 944 на жестком магнитном диске (НЖМД), дисководом 945, переключателем 946, декодером 947, OSD - модулем 948 (модулем отображения на экране), контроллером 949 и пользовательским интерфейсом 950.
Тюнер 941 извлекает из сигнала вещания, принятого через антенну (не показанную на чертеже), сигнал требуемого канала и демодулирует извлеченный сигнал. После этого, тюнер 941 выводит закодированный поток битов, полученный посредством демодуляции, на переключатель 946. Таким образом, тюнер 941 в устройстве 940 записи/воспроизведения служит в качестве передающего средства.
Внешний интерфейс 942 представляет собой интерфейс для соединения устройства 940 записи/воспроизведения и внешнего устройства или сети. Внешний интерфейс 942 может представлять собой, например, интерфейс IEEE 1394 (интерфейс стандарта 1394 Института инженеров по электротехнике и радиоэлектронике, (США)), сетевой интерфейс, интерфейс USB (Универсальной последовательной шины), интерфейс флэш-памяти и тому подобное. Например, видеоданные или речевые данные, принятые через внешний интерфейс 942, вводятся на кодер 943. Таким образом, внешний интерфейс 942 служит в качестве передающего средства в устройстве 940 записи/воспроизведения.
Кодер 943 кодирует видеоданные и речевые данные, когда видеоданные и речевые данные, вводимые от внешнего интерфейса 942, не закодированы. После этого, кодер 943 выводит закодированный поток битов в переключатель 946.
Накопитель 944 на жестком магнитном диске (HDD) записывает закодированный поток битов, в котором данные контента (информационно значимого содержимого), такие как видеоинформация и речевая информация, сжаты, различные программы и другие данные на внутренний жесткий магнитный диск. При воспроизведении видеоинформации и речевой информации накопитель 944 на жестком магнитном диске (HDD) считывает данные с жесткого магнитного диска.
Дисковод 945 записывает данные на установленный на нем носитель записи и считывает их оттуда. Носитель записи, установленный на дисковод 945, может представлять собой, например, DVD - диск (универсальный цифровой диск) (DVD - "Video (универсальный цифровой диск для видеоданных), DVD-RAM (оперативное запоминающее устройство на универсальном цифровом диске) DVD-R (однократно записываемый универсальный цифровой диск формата "-"), DVD-RW (перезаписываемый универсальный цифровой диск формата "-"), DVD+R (однократно записываемый универсальный цифровой диск формата "+"), DVD+RW (перезаписываемый универсальный цифровой диск формата "+") и тому подобное) диск Blu-ray (зарегистрированный товарный знак) и тому подобное.
Переключатель 946, при записи видеоинформации и речевой информации, осуществляет выбор закодированного потока битов, вводимого тюнером 941 или кодером 943, и выводит выбранный закодированный поток битов в накопитель 944 на жестком магнитном диске или в дисковод 945. Кроме того, переключатель 946, при воспроизведении видеоинформации и речевой информации, выводит закодированный поток битов от накопителя 944 на жестком магнитном диске или дисковода 945 на декодер 947.
Декодер 947 декодирует закодированный поток битов для того, чтобы сгенерировать видеоданные и речевые данные. После этого, декодер 947 выводит сгенерированные видеоданные в OSD - модуль 948. Кроме того, декодер 904 выводит сгенерированные речевые данные на внешний громкоговоритель.
OSD - модуль 948 воспроизводит видеоданные, вводимые от декодера 947, отображая видеоинформацию. OSD - модуль 948 может также накладывать на отображаемую видеоинформацию изображение графического пользовательского интерфейса, такого как, например, меню, кнопка и курсор.
Контроллер 949 включает в себя процессор, такой как центральный процессор, и память, такую как оперативное запоминающее устройство и постоянное запоминающее устройство. Память хранит программу, исполняемую центральным процессором, данные программ и тому подобное. Программа, хранящаяся в памяти, считывается для исполнения центральным процессором, например, при включении устройства 940 записи/воспроизведения. Исполняя эту программу, центральный процессор управляет функционированием устройства 940 записи/воспроизведения в соответствии, например, с операционным сигналом, вводимым с пользовательского интерфейса 950.
С контроллером 949 соединен пользовательский интерфейс 950. Пользовательский интерфейс 950 включает в себя, например, кнопку и выключатель для того, чтобы пользователь управлял устройством 940 записи/воспроизведения, и приемник сигнала дистанционного управления. Пользовательский интерфейс 950 обнаруживает операцию, производимую пользователем, посредством компонентов, предназначенных для генерирования операционного сигнала, и выводит сгенерированный операционный сигнал на контроллер 949.
В устройстве 940 записи/воспроизведения, сконфигурированном таким образом, кодер 943 выполняет функции устройства 100 кодирования изображения (см. Фиг.1), устройства 300 кодирования изображения (см. Фиг.18), устройства 500 кодирования изображения (см. Фиг.29), устройства 600 кодирования изображения с множественными представлениями (см. Фиг.34) или устройства 620 кодирования иерархического изображения (см. Фиг.37), соответствующих вышеописанным вариантам реализации изобретения. Кроме того, декодер 947 выполняет функции устройства 200 декодирования изображения (см. Фиг.9), устройства 400 декодирования изображения (см. Фиг.21), устройства 610 декодирования изображения с множественными представлениями (см. Фиг.35) и устройства 630 декодирования иерархического изображения (см. Фиг.38), соответствующих вышеописанным вариантам реализации изобретения. Следовательно, вычисляется значение квантования для каждого субмакроблока и с использованием этого параметра квантования для каждого субмакроблока для видеоинформации, кодируемой и декодируемой устройством 940 записи/воспроизведения, осуществляется квантование коэффициента ортогонального преобразования. Таким образом, имеется возможность выполнять процесс квантования, более подходящий для содержания изображения, и генерировать закодированные данные таким образом, чтобы воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения. Кроме того, с использованием параметра квантования, такого как submb_qp_delta, предоставляемого со стороны кодирования, вычисляется значение квантования для каждого субмакроблока и выполняется обратное квантование. Следовательно, имеется возможность выполнять обратное квантование, более подходящее для содержания изображения, и воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения. Устройство формирования изображения
На Фиг.43 проиллюстрирован пример схематической конфигурации устройства формирования изображений, к которому применен вышеописанный вариант реализации изобретения. Устройство 960 формирования изображения фотографирует изображение объекта, генерируя изображение, кодирует данные изображений и записывает эти данные на носитель записи.
Устройство 960 формирования изображения снабжено оптическим блоком 961, модулем 962 формирования изображения, процессором 963 обработки сигналов, процессором 964 изображения, модулем 965 отображения, внешним интерфейсом 966, памятью 967, накопителем 968 с носителем данных, OSD - модулем 969, контроллером 970, пользовательским интерфейсом 97и шиной 972.
Оптический блок 961 соединен с модулем 962 формирования изображения. Модуль 962 формирования изображения соединен с процессором 963 обработки сигналов. Модуль 965 отображения соединен с процессором 964 изображения. Пользовательский интерфейс 971 соединен с контроллером 970. Шина 972 соединяет процессор 964 изображения, внешний интерфейс 966, память 967, накопитель 968 с носителем данных, OSD - модуль 969 и контроллер 970 друг с другом.
Оптический блок 961 включает в себя фокусирующую линзу, механизм диафрагмы и тому подобное. Оптический блок 961 формирует оптическое изображение объекта на поверхности формирования изображения в модуле 962 формирования изображения. Модуль 962 формирования изображения включает в себя датчик изображения, такой как прибор с зарядовой связью и комплементарная структура металл-оксид-полупроводник, и преобразует посредством фотоэлектрического преобразования оптическое изображение, сформированное на поверхности формирования изображения, в сигнал изображения, как электрический сигнал. После этого, модуль 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 генерирует изображение графического пользовательского интерфейса, такого как, например, меню, кнопка и курсор, и выводит сгенерированное изображение на процессор 964 изображения.
Внешний интерфейс 966 состоит, например, как входной/выходной разъем USB (Универсальной последовательной шины). Внешний интерфейс 966, например, соединяет устройство 960 формирования изображения и принтер при печатании изображения. Кроме того, при необходимости с внешним интерфейсом 966 соединен накопитель. В этот накопитель устанавливается, например, съемный носитель данных, такой как магнитный диск и оптический диск, и программа, считываемая со съемного носителя данных, может быть установлена в устройстве 960 формирования изображения. Кроме того, внешний интерфейс 966 может быть сконфигурирован как сетевой интерфейс, связанный с сетью, такой как локальная сеть и сеть "Интернет". Таким образом, внешний интерфейс 966 служит в качестве передающего средства в устройстве 960 формирования изображения.
Носитель записи, устанавливаемый в накопитель 968 с носителем данных, может представлять собой произвольно считываемый/записываемый носитель данных, такой как, например, магнитный диск, магнитооптический диск, оптический диск и полупроводниковое запоминающее устройство. Также имеется возможность, чтобы носитель записи был постоянно установлен в накопителе 968 с носителем данных, образуя несъемное запоминающее устройство, такое как, например, встроенный накопитель на жестком магнитном диске или твердотельный накопитель (SSD - накопитель).
Контроллер 970 включает в себя процессор, такой как центральный процессор, и память, такую как оперативное запоминающее устройство и постоянное запоминающее устройство. Память хранит программу, исполняемую центральным процессором и данные программ. Программа, хранящаяся в памяти, например, считывается для исполнения центральным процессором, при пуске устройства 960 формирования изображения. Исполняя эту программу, центральный процессор управляет функционированием устройства 960 формирования изображения в соответствии, например, с операционным сигналом, вводимым с пользовательского интерфейса 971.
С контроллером 970 соединен пользовательский интерфейс 971. Пользовательский интерфейс 971 включает в себя, например, кнопку, переключатель и тому подобное для того, чтобы пользователь управлял аппаратом 960 записи/воспроизведения. Пользовательский интерфейс 971 обнаруживает операцию, производимую пользователем, посредством компонентов, предназначенных для генерирования операционного сигнала, и выводит сгенерированный операционный сигнал в контроллер 970.
В устройстве 960 формирования изображения, сконфигурированном таким образом, процессор 964 изображения выполняет функции устройства 100 кодирования изображения (см. Фиг.1), устройства 300 кодирования изображения (см. Фиг.18), устройства 500 кодирования изображения (см. Фиг.29), устройства 600 кодирования изображения с множественными представлениями (см. Фиг.34) или устройства 620 кодирования иерархического изображения (см. Фиг.37) и функции устройства 200 декодирования изображения (см. Фиг.9), устройства 400 декодирования изображения (см. Фиг.21), устройства 610 декодирования изображения с множественными представлениями (см. Фиг.35), или устройства 630 декодирования иерархического изображения (см. Фиг.38), соответствующих вышеописанным вариантам реализации изобретения. Следовательно, процессор 964 изображения вычисляет значение квантования для каждого субмакроблока и, используя этот параметра квантования для каждого субмакроблока для видеоинформации, кодируемой и декодируемой устройством 960 формирования изображения, осуществляет квантование коэффициента ортогонального преобразования. Таким образом, имеется возможность выполнять процесс квантования, более подходящий для содержания изображения, и генерировать закодированные данные таким образом, чтобы воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения. Кроме того, процессор 964 изображения, используя параметр квантования, такой как submb_qp_delta, предоставляемого со стороны кодирования, вычисляет значение квантования для каждого субмакроблока и выполняет обратное квантование. Следовательно, имеется возможность выполнять обратное квантование, более подходящее для содержания изображения, и воспрепятствовать ухудшению субъективного качества изображения для декодированного изображения.
Само собой разумеется, что устройство кодирования изображения и устройство декодирования изображения, к которому применена данная технология, могут быть применены к устройству и системе, отличным от вышеописанного устройства.
Между тем, в данном описании был описан пример, в котором со стороны кодирования стороне декодирования передается параметр квантования. Имеется возможность, чтобы способ передачи параметра матрицы квантования был передан или записан как отдельные данные, ассоциативно связанные с закодированным потоком битов вместо того, чтобы быть мультиплексированными с закодированным потоком битов. Здесь, термин "ассоциативно связывать" означает, что изображение, входящее в состав потока битов, (или часть изображения, такая как слой и блок) и информация, соответствующая изображению, могут быть соединены друг с другом во время декодирования. Таким образом, эта информация может быть передана по каналу передачи, отличному от канала передачи изображения (или потока битов). Кроме того, эта информация может быть записана на носитель записи, от носителя записи для изображения (или потока битов) (или в другой области записи того же самого носителя записи). Помимо этого, имеется возможность, чтобы эта информация и изображение (или поток битов) были ассоциативно" связаны друг с другом в произвольном элементе, таком как, например, множество кадров, один кадр или часть кадра.
Хотя предпочтительные варианты реализации этого раскрываемого изобретения были описаны подробно со ссылкой на прилагаемые чертежи, технический объем этого раскрываемого изобретения не ограничивается такими примерами. Ясно, что специалист в области техники, к которой относится это раскрываемое изобретение, может представить себе различные изменения и исправления в рамках технической идеи, изложенной в формуле изобретения, и понятно, что они также, естественно, принадлежат техническому объему этого раскрываемого изобретения.
Перечень ссылочных позиций
100
Устройство кодирования изображения
105
Модуль квантования
108
Модуль обратного квантования
117
Контроллер скорости
121
Модуль квантования субмакроблока
122
Модуль обратного квантования, для субмакроблока
151
Буфер показателя активности для субмакроблока
152
Модуль вычисления параметра квантования
153
Процессор квантования
200
Устройство декодирования изображения
203
Модуль обратного квантования
221
Модуль обратного квантования, для субмакроблока
251
Буфер параметра квантования
252
Буфер коэффициента ортогонального преобразования
253
Процессор обратного квантования