Способ кодирования изображений и способ декодирования изображений
Иллюстрации
Показать всеИзобретение относится к области кодирования изображений. Техническим результатом является повышение эффективности кодирования. Способ кодирования изображения с разделением сигнала входного изображения на пиксельные блоки и выполнения внешнего предсказания в отношении разделенных пиксельных блоков содержит этапы, на которых: выбирают предсказанную информацию движения из множества элементов информации движения в кодированной области на основании информации, полученной в соответствии с первой информацией, указывающей способ выбора предсказанной информации движения; и предсказывают информацию движения целевого блока кодирования посредством использования упомянутой предсказанной информации движения, причем упомянутая первая информация содержит вторую информацию, которая задает позицию в целевом блоке кодирования, причем упомянутая вторая информация используется для выбора упомянутой предсказанной информации движения. 2 н.п. ф-лы, 59 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления, описанные в данном документе, в целом относятся к способу сжатия информации движения, способу кодирования изображений и способу декодирования изображений при кодировании и декодировании движущегося изображения.
УРОВЕНЬ ТЕХНИКИ
В последнее время способ кодирования изображений, имеющий значительно более высокую эффективность кодирования, рекомендован в качестве ITU-T Rec. H.264 и ISO/IEC 14496-10 (далее называется H.264) в результате сотрудничества ITU-T и ISO/IEC. В H.264 процесс предсказания, процесс преобразования и процесс энтропийного кодирования выполняются для каждого прямоугольного блока (например, каждого блока в 16x16 или 8x8 пикселей). В процессе предсказания компенсация движения с выполнением предсказания во временной области выполняется для прямоугольного блока, который должен быть кодирован (целевого блока кодирования), посредством обращения к уже кодированному кадру (опорному кадру). При этой компенсации движения необходимо кодировать информацию движения, содержащую вектор движения, в качестве информации пространственного сдвига между целевым блоком кодирования и блоком, к которому следует обращаться в опорном кадре, и передавать кодированную информацию движения на сторону декодирования. При выполнении компенсации движения посредством использования множества опорных кадров также необходимо кодировать номера опорных кадров в дополнение к информации движения. Это иногда увеличивает объем кода информации движения и номеров опорных кадров. Существуют также способы предсказания информации движения, посредством которых предсказывающая информация движения целевого блока кодирования извлекается посредством обращения к информации движения опорного кадра, которая сохраняется в запоминающем устройстве информации движения (патентный документ 1 и непатентный документ 2), и емкость запоминающего устройства информации движения для сохранения информации движения иногда увеличивается.
В качестве примера способа уменьшения емкости запоминающего устройства информации движения, представляющая движение информация извлекается в предварительно определенном блоке, и только представляющая движение информация сохраняется в запоминающем устройстве информации движения в непатентном документе 2.
СПИСОК БИБЛИОГРАФИЧЕСКИХ ССЫЛОК
ПАТЕНТНЫЕ ДОКУМЕНТЫ
Патентный документ 1. Патент (Япония) номер 4020789.
НЕПАТЕНТНЫЕ ДОКУМЕНТЫ
Непатентный документ 1. J. Jung et al, "Temporal MV Predictor Modification for MV-Comp, Skip, Direct and Merge Schemes", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 Document, JCTVC-D164, январь 2011 года.
Непатентный документ 2. Yeping Su и др. "CE9: Reduced Resolution Storage of Motion Vector Data", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 Document, JCTVC-D072, январь 2011 года.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Тем не менее имеется проблема в том, что если способ извлечения предсказанной информации движения, раскрытый в непатентном документе 1, и способ извлечения представляющей движение информации, раскрытый в непатентном документе 2, отличаются, временная корреляция предсказанной информации движения уменьшается, и как следствие, возрастает объем кода информации движения.
Настоящий вариант осуществления осуществлен для того, чтобы разрешить вышеуказанную проблему, и имеет в качестве свой цели предоставлять устройство кодирования изображений и устройство декодирования изображений, включающие в себя устройство сжатия информации, допускающее повышение эффективности кодирования.
РЕШЕНИЕ ЗАДАЧИ
В общем, согласно одному варианту осуществления, раскрыт способ разделения сигнала входного изображения на пиксельные блоки и выполнения внешнего предсказания для разделенных пиксельных блоков. Этот способ включает в себя выбор предсказанной информации движения из буфера информации движения, сохраняющего информацию движения в кодированной области, и предсказание информации движения целевого блока кодирования посредством использования предсказанной информации движения. Способ дополнительно включает в себя получение представляющей движение информации из множества элементов информации движения в кодированной области в соответствии с первой информацией, указывающей способ выбора предсказанной информации движения, таким образом получая только представляющую движение информацию.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой, схематично показывающей компоновку устройства кодирования изображений согласно первому варианту осуществления.
Фиг. 2A является видом для пояснения последовательности кодирования с предсказанием пиксельных блоков.
Фиг. 2B является видом для пояснения примера размера пиксельного блока.
Фиг. 2C является видом для пояснения другого примера размера пиксельного блока.
Фиг. 2D является видом для пояснения еще одного другого примера размера пиксельного блока.
Фиг. 3A является видом для пояснения примера пиксельного блока в единице дерева кодирования.
Фиг. 3B является видом для пояснения другого примера пиксельного блока в единице дерева кодирования.
Фиг. 3C является видом для пояснения еще одного другого примера пиксельного блока в единице дерева кодирования.
Фиг. 3D является видом для пояснения еще одного другого примера пиксельного блока в единице дерева кодирования.
Фиг. 4 является блок-схемой, схематично показывающей компоновку энтропийного кодера, показанного на фиг. 1.
Фиг. 5 является видом, схематично показывающим компоновку запоминающего устройства информации движения, показанного на фиг. 1.
Фиг. 6A является видом для пояснения примера процесса внешнего предсказания, выполняемого посредством модуля внешнего предсказания, показанного на фиг. 1.
Фиг. 6B является видом для пояснения другого примера процесса внешнего предсказания, выполняемого посредством модуля внешнего предсказания, показанного на фиг. 1.
Фиг. 7A является видом для пояснения примера единицы предсказания.
Фиг. 7B является видом для пояснения другого примера единицы предсказания.
Фиг. 7C является видом для пояснения еще одного другого примера единицы предсказания.
Фиг. 7D является видом для пояснения еще одного другого примера единицы предсказания.
Фиг. 7E является видом для пояснения еще одного другого примера единицы предсказания.
Фиг. 7F является видом для пояснения еще одного другого примера единицы предсказания.
Фиг. 7G является видом для пояснения еще одного другого примера единицы предсказания.
Фиг. 8 является видом для пояснения режима пропуска, режима объединения и взаимного режима.
Фиг. 9 является блок-схемой, схематично показывающей компоновку кодера информации движения, показанного на фиг. 4.
Фиг. 10 является видом для пояснения примеров позиции кандидата предсказанной информации движения относительно целевой единицы предсказания при кодировании.
Фиг. 11 является видом для пояснения другого примера позиции кандидата предсказанной информации движения относительно целевой единицы предсказания при кодировании.
Фиг. 12 является видом, показывающим пример списка, указывающего взаимосвязь между позициями блоков и индексами Mvpidx множества кандидатов предсказанной информации движения.
Фиг. 13A является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x32.
Фиг. 13B является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x16.
Фиг. 13C является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x32.
Фиг. 13D является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x16.
Фиг. 13E является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x8.
Фиг. 13F является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8x16.
Фиг. 14A является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x32.
Фиг. 14B является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x16.
Фиг. 14C является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x32.
Фиг. 14D является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x16.
Фиг. 14E является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x8.
Фиг. 14F является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8x16.
Фиг. 15 является видом для пояснения запоминающего устройства 501 опорной информации движения в пространственной области и запоминающего устройства 502 опорной информации движения во временной области.
Фиг. 16 является блок-схемой последовательности операций, показывающей пример работы модуля сжатия информации движения, показанного на фиг. 1.
Фиг. 17A является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x32.
Фиг. 17B является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32x16.
Фиг. 17C является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x32.
Фиг. 17D является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x16.
Фиг. 17E является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16x8.
Фиг. 17F является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8x16.
Фиг. 18A является видом, показывающим примеры позиции представляющей движение информации.
Фиг. 18B является видом, показывающим другие примеры позиции представляющей движение информации.
Фиг. 19 является видом, показывающим примеры центров единиц предсказания, имеющих различные размеры предсказания.
Фиг. 20A является видом, показывающим примеры позиции представляющей движение информации, когда центр тяжести множества позиций получения опорной информации движения каждого блока сжатия информации движения задается в качестве позиции представляющей движение информации.
Фиг. 20B является видом, показывающим другие примеры позиции представляющей движение информации, когда центр тяжести множества позиций получения опорной информации движения каждого блока сжатия информации движения задается в качестве позиции представляющей движение информации.
Фиг. 21A является видом, показывающим пример позиции представляющей движение информации.
Фиг. 21B является видом, показывающим другой пример позиции представляющей движение информации.
Фиг. 22 является видом, показывающим синтаксическую структуру согласно варианту осуществления.
Фиг. 23A является видом, показывающим пример синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг. 23B является видом, показывающим другой пример синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг. 24 является видом, показывающим пример синтаксиса единицы предсказания согласно варианту осуществления.
Фиг. 25 является блок-схемой, схематично показывающей устройство декодирования изображений согласно второму варианту осуществления.
Фиг. 26 является блок-схемой, схематично показывающей энтропийный декодер, показанный на фиг. 25.
Фиг. 27 является блок-схемой, схематично показывающей декодер информации движения, показанный на фиг. 26.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Устройство кодирования изображений и устройство декодирования изображений согласно каждому варианту осуществления подробнее поясняются ниже со ссылкой на прилагаемые чертежи. Следует отметить, что в нижеприведенном пояснении, термин "изображение" может надлежащим образом быть заменен посредством таких терминов, как "изображение", "пиксел", "сигнал изображения" и "данные изображений". Также следует отметить, что в следующих вариантах осуществления части, обозначаемые посредством одной и той же ссылки с номером, выполняют одну и ту же операцию, так что повторное пояснение опускается.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Первый вариант осуществления направлен на устройство кодирования изображений. Устройство декодирования изображений, соответствующее устройству кодирования изображений согласно этому варианту осуществления, поясняется во втором варианте осуществления. Это устройство кодирования изображений может быть реализовано посредством аппаратных средств, таких как большая интегральная схема (LSI), процессор цифровых сигналов (DSP) или программируемая пользователем вентильная матрица (FPGA). Это устройство кодирования изображений также может быть реализовано посредством инструктирования компьютеру выполнять программу для кодирования изображений.
Как показано на фиг. 1, устройство 100 кодирования изображений согласно этому варианту осуществления включает в себя модуль 101 вычитания, ортогональный преобразователь 102, квантователь 103, обратный квантователь 104, обратный ортогональный преобразователь 105, сумматор 106, запоминающее устройство 107 опорных изображений, модуль 108 внешнего предсказания, модуль 109 сжатия информации движения, запоминающее устройство 110 информации движения и энтропийный кодер 112. Контроллер 114 кодирования и выходной буфер 113 обычно устанавливаются вне устройства 100 кодирования изображений.
Устройство 100 кодирования изображений, показанное на фиг. 1, разделяет каждый кадр, каждое поле или каждую вырезку, формирующую сигнал 151 входного изображения, на множество пиксельных блоков, выполняет кодирование с предсказанием для этих разделенных пиксельных блоков и выводит кодированные данные 163. В нижеприведенном пояснении, для простоты предполагается, что кодирование с предсказанием пиксельных блоков выполняется от верхнего левого угла к нижнему правому углу, как показано на фиг. 2A. Ссылаясь на фиг. 2A, кодированные пиксельные блоки p размещаются выше и слева целевого пиксельного блока c кодирования в кадре f в качестве цели кодирования.
Пиксельный блок представляет собой единицу обработки изображений, такой как блок MxN пикселей (при этом N и M являются натуральными числами), единицу кодирования, макроблок, субблок или один пиксель. Следует отметить, что пиксельный блок по существу означает единицу кодирования в нижеприведенном пояснении, но пиксельный блок также может быть интерпретирован в вышеописанных смысловых значениях посредством надлежащей замены терминов. Единица кодирования типично представляет собой, например, блок в 16x16 пикселей, как показано на фиг. 2B, но также может представлять собой блок в 32x32 пикселей, как показано на фиг. 2C, или блок в 64x64 пикселей, как показано на фиг. 2D. Единица кодирования также может представлять собой блок в 8x8 пикселей (не показан) или блок в 4x4 пикселей (не показан). Кроме того, единица кодирования не обязательно должна быть квадратной. В нижеприведенном пояснении, целевой блок кодирования или единица кодирования сигнала 151 входного изображения также упоминается как "целевой блок предсказания". Помимо этого, единица кодирования не ограничивается пиксельным блоком, таким как единица кодирования, и также можно использовать кадр, поле или вырезку либо комбинацию вышеозначенного.
Фиг. 3A, 3B, 3C и 3D являются видами, показывающими практические примеры единицы кодирования. Фиг. 3A показывает пример, в котором размер единицы кодирования составляет 64x64 пикселей (N=32). N представляет размер единицы кодирования в качестве опорного значения. Размер, когда единица кодирования разделяется, задается как N, а размер, когда она не разделяется, задается как 2N. Единица дерева кодирования имеет структуру в виде дерева квадрантов. Когда единица дерева кодирования разделяется, индексы выделяются четырем пиксельным блокам в порядке Z-сканирования. Фиг. 3B показывает пример, в котором разделение на дерево квадрантов выполняется для блока в 64x64 пикселей, показанного на фиг. 3A. Номера, показанные на фиг. 3B, представляют порядковые номера в Z-сканировании. Также можно дополнительно выполнять разделение на дерево квадрантов для одного индекса дерева квадрантов единицы кодирования. Глубина разделения задается как Depth (Глубина). Иными словами, фиг. 3A показывает пример, в котором Depth=0. Фиг. 3C показывает пример единицы кодирования, имеющей размер 32x32 пикселей (N=16), когда Depth=1. Наибольшая единица единицы дерева кодирования, такая как эта, называется большой единицей дерева кодирования или древовидным блоком, и сигнал входного изображения кодируется в порядке растрового сканирования посредством использования этой единицы, как показано на фиг. 2A.
На основе параметра кодирования, вводимого из контроллера 114 кодирования, устройство 100 кодирования изображений, показанное на фиг. 1, выполняет внешнее предсказание (также называемое внешним предсказанием изображений, межкадровым предсказанием или предсказанием с компенсацией движения) или внутреннее предсказание (также называемое внутренним предсказанием изображений или внутрикадровым предсказанием) (не показано) для пиксельного блока, за счет этого формируя сигнал 159 предсказанного изображения. Устройство 100 кодирования изображений ортогонально преобразует и квантует сигнал 152 ошибки предсказания между пиксельным блоком (сигналом 151 входного изображения) и сигналом 159 предсказанного изображения, формирует кодированные данные 163 посредством выполнения энтропийного кодирования и выводит кодированные данные 163.
Устройство 100 кодирования изображений, показанное на фиг. 1, выполняет кодирование посредством избирательного применения множества режимов предсказания, имеющих различные размеры блоков и различные способы формирования сигнала 159 предсказанного изображения. Способы формирования сигнала 159 предсказанного изображения грубо классифицируются на два типа: внутреннее предсказание, которое выполняет предсказание в целевом кадре кодирования; и внешнее предсказание, которое выполняет предсказание посредством использования одного опорного кадра или множества временно различных опорных кадров.
Ниже поясняется каждый элемент, включенный в устройство 100 кодирования изображений, показанное на фиг. 1.
Модуль 101 вычитания получает сигнал 152 ошибки предсказания посредством вычитания, из целевого блока кодирования сигнала 151 входного изображения, сигнала 159 предсказанного изображения, соответствующего целевому блоку кодирования. Модуль 101 вычитания вводит сигнал 152 ошибки предсказания в ортогональный преобразователь 102.
Ортогональный преобразователь 102 получает коэффициент 153 преобразования посредством выполнения ортогонального преобразования, такого как дискретное косинусное преобразование (DCT), для сигнала 152 ошибки предсказания из модуля 101 вычитания. Ортогональный преобразователь 102 выводит коэффициент 153 преобразования в квантователь 103.
Квантователь 103 получает квантованный коэффициент 154 преобразования посредством квантования коэффициента 153 преобразования из ортогонального преобразователя 102. Более конкретно, квантователь 103 выполняет квантование в соответствии с информацией квантования, такой как параметр квантования и матрица квантования, указанной посредством контроллера 114 кодирования. Параметр квантования указывает точность квантования. Матрица квантования используется для того, чтобы взвешивать точность квантования для каждого компонента коэффициента преобразования, но то, следует или нет использовать матрицу квантования, не важно для этого варианта осуществления. Квантователь 103 выводит квантованный коэффициент 154 преобразования в энтропийный кодер 112 и обратный квантователь 104.
Энтропийный кодер 112 выполняет энтропийное кодирование (например, кодирование методом Хаффмана или арифметическое кодирование) для различных параметров кодирования, таких как квантованный коэффициент 154 преобразования из квантователя 103, информация 160 движения из модуля 108 внешнего предсказания, информация 165 предсказания, указанная посредством контроллера 114 кодирования, опорная информация 164 позиции из контроллера 114 кодирования и информация квантования, за счет этого формируя кодированные данные 163. Следует отметить, что параметры кодирования представляют собой параметры, необходимые для декодирования, такие как информация 165 предсказания, информация коэффициента преобразования и информация квантования. Например, контроллер 114 кодирования включает в себя внутреннее запоминающее устройство (не показано), и это запоминающее устройство сохраняет параметры кодирования. При кодировании целевого блока предсказания используются параметры кодирования уже кодированного пиксельного блока, смежного с целевым блоком предсказания.
Более конкретно, как показано на фиг. 4, энтропийный кодер 112 включает в себя кодер 401 параметров, кодер 402 коэффициентов преобразования, кодер 403 информации движения и мультиплексор 404. Кодер 401 параметров формирует кодированные данные 451A посредством кодирования таких параметров кодирования, как информация 165 предсказания, принимаемая из контроллера 114 кодирования. Кодер 402 коэффициентов преобразования формирует кодированные данные 451B посредством кодирования квантованного коэффициента 154 преобразования, принимаемого из квантователя 103.
Кодер 403 информации движения кодирует информацию 160 движения, принимаемую из модуля 108 внешнего предсказания, посредством обращения к опорной информации 166 движения, принимаемой из запоминающего устройства 110 информации движения, и опорной информации 164 позиции, принимаемой из контроллера 114 кодирования, за счет этого формируя кодированные данные 451C. Ниже описываются подробности кодера 403 информации движения.
Мультиплексор 404 формирует кодированные данные 163 посредством мультиплексирования кодированных данных 451A, 451B и 451C. Сформированные кодированные данные 163 содержат все параметры, необходимые для декодирования, такие как информация коэффициента преобразования и информация квантования, в дополнение к информации 160 движения и информации 165 предсказания.
Кодированные данные 163, сформированные посредством энтропийного кодера 112, временно сохраняются в выходном буфере 113 после, например, умножения и вывода в надлежащие моменты времени вывода, управляемые посредством контроллера 114 кодирования. Кодированные данные 163 выводятся, например, в систему хранения данных (носитель хранения данных) (не показана) или систему передачи (линию связи) (не показана).
Обратный квантователь 104 получает восстановленный коэффициент 155 преобразования посредством обратного квантования квантованного коэффициента 154 преобразования из квантователя 103. Более конкретно, обратный квантователь 104 выполняет обратное квантование в соответствии с информацией квантования, используемой в квантователе 103. Информация квантования, используемая в квантователе 103, загружается из внутреннего запоминающего устройства контроллера 114 кодирования. Обратный квантователь 104 выводит восстановленный коэффициент 155 преобразования в обратный ортогональный преобразователь 105.
Обратный ортогональный преобразователь 105 выполняет, для восстановленного коэффициента 155 преобразования из обратного квантователя 104, обратное ортогональное преобразование, такое как обратное дискретное косинусное преобразование, соответствующее ортогональному преобразованию, выполняемому в ортогональном преобразователе 102, таким образом получая восстановленный сигнал 156 ошибки предсказания. Обратный ортогональный преобразователь 105 выводит восстановленный сигнал 156 ошибки предсказания в сумматор 106.
Сумматор 106 формирует сигнал 157 локального декодированного изображения посредством суммирования восстановленного сигнала 156 ошибки предсказания и соответствующего сигнала 159 предсказанного изображения. Сигнал 157 декодированного изображения вводится в запоминающее устройство 107 опорных изображений через фильтр удаления блочности или фильтр Винера (не показаны).
Запоминающее устройство 107 опорных изображений сохраняет сигнал 158 локального декодированного фильтрованного изображения. Модуль 108 внешнего предсказания обращается к сигналу 158 фильтрованного изображения в качестве опорного сигнала 158 изображения при формировании предсказанного изображения по мере необходимости.
Модуль 108 внешнего предсказания выполняет внешнее предсказание посредством использования опорного сигнала 158 изображения, сохраненного в запоминающем устройстве 107 опорных изображений. Более конкретно, модуль 108 внешнего предсказания извлекает разность движения (вектор движения) посредством выполнения процесса сопоставления блоков между целевым блоком предсказания и опорным сигналом 158 изображения. На основе этого вектора движения модуль 108 внешнего предсказания формирует внешне предсказанное изображение посредством выполнения компенсации движения (интерполяции для движения с десятичной точностью). В H.264 интерполяция может быть выполнена вплоть до точности в 1/4 пикселя. Извлеченный вектор движения энтропийно кодируется в качестве части информации 160 движения.
Запоминающее устройство 110 информации движения включает в себя модуль 109 сжатия информации движения. Запоминающее устройство 110 информации движения уменьшает объем информации для информации 160 движения посредством надлежащего выполнения процесса сжатия и временно сохраняет сжатую информацию движения в качестве опорной информации 166 движения. Как показано на фиг. 5, запоминающее устройство 110 информации движения сохраняется для каждого кадра (или вырезки), и запоминающее устройство 110 информации движения дополнительно включает в себя запоминающее устройство 501 опорной информации движения в пространственной области для сохранения информации 160 движения относительно того же кадра, что и опорная информация 166 движения, и запоминающее устройство 502 опорной информации движения во временной области для сохранения информации 160 движения уже кодированного кадра в качестве опорной информации 166 движения. Запоминающее устройство 110 информации движения также может включать в себя множество запоминающих устройств 502 опорной информации движения во временной области в соответствии с числом опорных кадров, которые должны быть использованы посредством целевого кадра кодирования для предсказания.
Кроме того, запоминающее устройство 501 опорной информации движения в пространственной области и запоминающее устройство 502 опорной информации движения во временной области могут быть получены посредством логического разбиения физически единого запоминающего устройства. Кроме того, запоминающее устройство 501 опорной информации движения в пространственной области может сохранять только информацию движения пространственной области, необходимую для кадра, в данный момент кодируемого, и элементов информации движения пространственной области, которые более не требуются в качестве опорной информации, могут последовательно сжиматься и сохраняться в запоминающем устройстве 502 опорной информации движения во временной области.
Опорная информация 166 движения сохраняется для каждой предварительно определенной области (например, каждого пиксельного блока в 4x4) в запоминающем устройстве 501 опорной информации движения в пространственной области и запоминающем устройстве 502 опорной информации движения во временной области. Опорная информация 166 движения дополнительно содержит информацию, указывающую то, кодируется область посредством внешнего предсказания (которое описывается ниже) или внутреннего предсказания (которое описывается ниже). Кроме того, даже когда единица кодирования (или единица предсказания) внешне предсказывается посредством использования информации 160 движения, предсказанной из кодированной области, без кодирования значения вектора движения в информации 160 движения, к примеру, в режиме пропуска или в прямом режиме, заданном посредством H.264, либо в режиме объединения (который описывается ниже), информация движения единицы кодирования (или единицы предсказания) сохраняется в качестве опорной информации 166 движения.
Когда процесс кодирования целевого кадра или вырезки кодирования закончен, обработка запоминающего устройства 501 опорной информации движения в пространственной области кадра изменяется на обработку запоминающего устройства 502 опорной информации движения во временной области для кадра, который должен быть кодирован следующим. На этом этапе, для того чтобы уменьшать емкость запоминающего устройства запоминающего устройства 502 опорной информации движения во временной области, информация 160 движения, сжатая посредством модуля 109 сжатия информации движения (который описывается ниже), сохраняется в запоминающем устройстве 502 опорной информации движения во временной области.
Информация 165 предсказания соответствует режиму предсказания, управляемому посредством контроллера 114 кодирования. Как описано выше, можно выбирать внешнее предсказание, или внутреннее предсказание (не показаны) либо внешнее предсказание для того, чтобы формировать сигнал 159 предсказанного изображения. Также можно дополнительно выбирать множество режимов для каждого из внутреннего предсказания и внешнего предсказания. Контроллер 114 кодирования определяет один из множества режимов предсказания внутреннего предсказания и внешнего предсказания в качестве оптимального режима предсказания и задает информацию 165 предсказания.
Например, контроллер 114 кодирования определяет оптимальный режим предсказания посредством использования функции затрат, указываемой посредством нижеприведенного уравнения (1):
В уравнении (1) (которое называется упрощенными затратами на кодирование в дальнейшем), OH указывает объем кода информации 160 предсказания (например, информации вектора движения или информации размера предсказанного блока), а SAD указывает сумму абсолютных значений разности (т.е. накопленную сумму абсолютных значений сигнала 152 ошибки предсказания) между целевым блоком предсказания и сигналом 159 предсказанного изображения. Кроме того, λ указывает неопределенный множитель Лагранжа, который должен быть определен на основе значения информации квантования (параметра квантования), а K указывает затраты на кодирование. При использовании уравнения (1), режим предсказания, который минимизирует затраты на кодирование K, определяется в качестве оптимального режима предсказания с точки зрения объема сформированного кода и ошибки предсказания. В качестве варианта уравнения (1), также можно оценивать затраты на кодирование только из OH или SAD либо оценивать затраты на кодирование посредством использования значения, полученного посредством выполнения преобразования Адамара для SAD или аппроксимации этого значения.
Кроме того, оптимальный режим предсказания может быть определен посредством использования единицы временного кодирования (не показана). Например, контроллер 114 кодирования определяет оптимальный режим предсказания посредством использования функции затрат, указываемой посредством нижеприведенного уравнения (2):
В уравнении (2), D указывает сумму квадратов ошибки (т.е. искажение при кодировании) между целевым блоком предсказания и локально декодированным изображением, R указывает объем кода, оцененный посредством временного кодирования для ошибки предсказания между целевым блоком предсказания и сигналом 159 предсказанного изображения режима предсказания, и J указывает затраты на кодирование. При вычислении затрат J на кодирование (которые называются подробными затратами на кодирование в дальнейшем) уравнения (2), процесс временного кодирования и процесс локального декодирования необходимы для каждого режима предсказания, так что размер схем или объем вычислений возрастает. С другой стороны, затраты J на кодирование вычисляются на основе более точного искажения при кодировании и более точного объема кода. Это упрощает поддержание высокой эффективности кодирования посредством точного определения оптимального режима предсказания. Следует отметить, что в качестве варианта уравнения (2), также можно оценивать затраты на кодирование только из R или D либо оценивать затраты на кодирование посредством использования приближенного значения R или D. Кроме того, иерархическое использование этих затрат также является возможным. Контроллер 114 кодирования также может заранее сокращать число кандидатов режимов предсказания для выполнения определения с использованием уравнения (1) или (2) на основе информации (например, режимов предсказания окружающих пиксельных блоков или результата анализа изображений), предварительно полученной для целевого блока предсказания.
В качестве модификации этого варианта осуществления, можно дополнительно сокращать число кандидатов режимов предсказания при поддержании производительности кодирования посредством выполнения уравнений двухэтапного комбинирования определения режима (1) и (2). Упрощенные затраты на кодирование, указываемые посредством уравнения (1), не требуют процесса локального декодирования, в отличие от уравнения (2), и, следовательно, могут быть вычислены на высокой скорости. Устройство кодирования изображений этого варианта осуществления имеет больше режимов предсказания, чем режимов в H.264, так что определение режима с использованием подробных затрат на кодирование является нереальным. Следовательно, в качестве первого этапа определение режима с использованием упрощенных затрат на кодирование выполняется для режимов предсказания, применимых для соответствующего пиксельного блока, тем самым извлекая кандидаты режимов предсказания.
Поскольку корреляция между упрощенными затратами на кодирование и подробными затратами на кодирование возрастает по мере того, как возрастает значение параметра квантования, задающего сложность квантования, число кандидатов режимов предсказания изменяется посредством использования этого свойства.
Далее поясняется процесс предсказания устройства 100 кодирования изображений.
Хот