ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления, описанные в данном документе, в целом относятся к способу сжатия информации движения, способу кодирования изображений и способу декодирования изображений при кодировании и декодировании движущегося изображения.
УРОВЕНЬ ТЕХНИКИ
В последнее время способ кодирования изображений, имеющий значительно более высокую эффективность кодирования, рекомендован в качестве ITU-T Rec. H.264 и ISO/IEC 14496-10 (далее называется H.264) в результате сотрудничества ITU-T и ISO/IEC. В H.264 процесс предсказания, процесс преобразования и процесс энтропийного кодирования выполняются для каждого прямоугольного блока (например, каждого блока в 16×16 или 8×8 пикселей). В процессе предсказания компенсация движения с выполнением предсказания во временной области выполняется для прямоугольного блока, который должен быть кодирован (целевого блока кодирования), посредством обращения к уже кодированному кадру (опорному кадру). При этой компенсации движения необходимо кодировать информацию движения, содержащую вектор движения, в качестве информации пространственного сдвига между целевым блоком кодирования и блоком, к которому следует обращаться в опорном кадре, и передавать кодированную информацию движения на сторону декодирования. При выполнении компенсации движения посредством использования множества опорных кадров также необходимо кодировать номера опорных кадров в дополнение к информации движения. Это иногда увеличивает объем кода информации движения и номеров опорных кадров. Существуют также способы предсказания информации движения, посредством которых предсказывающая информация движения целевого блока кодирования извлекается посредством обращения к информации движения опорного кадра, которая сохраняется в запоминающем устройстве информации движения (патентный документ 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 является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×32.
Фиг. 13B является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×16.
Фиг. 13C является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×32.
Фиг. 13D является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×16.
Фиг. 13E является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×8.
Фиг. 13F является видом, показывающим пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8×16.
Фиг. 14A является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×32.
Фиг. 14B является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×16.
Фиг. 14C является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×32.
Фиг. 14D является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×16.
Фиг. 14E является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×8.
Фиг. 14F является видом, показывающим другой пример позиции получения опорной информации движения, указывающей центр целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8×16.
Фиг. 15 является видом для пояснения запоминающего устройства 501 опорной информации движения в пространственной области и запоминающего устройства 502 опорной информации движения во временной области.
Фиг. 16 является блок-схемой последовательности операций, показывающей пример работы модуля сжатия информации движения, показанного на фиг. 1.
Фиг. 17A является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×32.
Фиг. 17B является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 32×16.
Фиг. 17C является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×32.
Фиг. 17D является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×16.
Фиг. 17E является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 16×8.
Фиг. 17F является видом, показывающим пример позиции получения опорной информации движения, указывающей верхний левый конец целевой единицы предсказания при кодировании, когда размер единицы предсказания составляет 8×16.
Фиг. 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 в качестве цели кодирования.
Пиксельный блок представляет собой единицу обработки изображений, такой как блок M×N пикселей (при этом N и M являются натуральными числами), единицу кодирования, макроблок, субблок или один пиксель. Следует отметить, что пиксельный блок по существу означает единицу кодирования в нижеприведенном пояснении, но пиксельный блок также может быть интерпретирован в вышеописанных смысловых значениях посредством надлежащей замены терминов. Единица кодирования типично представляет собой, например, блок в 16×16 пикселей, как показано на фиг. 2B, но также может представлять собой блок в 32×32 пикселей, как показано на фиг. 2C, или блок в 64×64 пикселей, как показано на фиг. 2D. Единица кодирования также может представлять собой блок в 8×8 пикселей (не показан) или блок в 4×4 пикселей (не показан). Кроме того, единица кодирования не обязательно должна быть квадратной. В нижеприведенном пояснении, целевой блок кодирования или единица кодирования сигнала 151 входного изображения также упоминается как "целевой блок предсказания". Помимо этого, единица кодирования не ограничивается пиксельным блоком, таким как единица кодирования, и также можно использовать кадр, поле или вырезку либо комбинацию вышеозначенного.
Фиг. 3A, 3B, 3C и 3D являются видами, показывающими практические примеры единицы кодирования. Фиг. 3A показывает пример, в котором размер единицы кодирования составляет 64×64 пикселей (N=32). N представляет размер единицы кодирования в качестве опорного значения. Размер, когда единица кодирования разделяется, задается как N, а размер, когда она не разделяется, задается как 2N. Единица дерева кодирования имеет структуру в виде дерева квадрантов. Когда единица дерева кодирования разделяется, индексы выделяются четырем пиксельным блокам в порядке Z-сканирования. Фиг. 3B показывает пример, в котором разделение на дерево квадрантов выполняется для блока в 64×64 пикселей, показанного на фиг. 3A. Номера, показанные на фиг. 3B, представляют порядковые номера в Z-сканировании. Также можно дополнительно выполнять разделение на дерево квадрантов для одного индекса дерева квадрантов единицы кодирования. Глубина разделения задается как Depth (Глубина). Иными словами, фиг. 3A показывает пример, в котором Depth=0. Фиг. 3C показывает пример единицы кодирования, имеющей размер 32×32 пикселей (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 движения сохраняется для каждой предварительно определенной области (например, каждого пиксельного блока в 4×4) в запоминающем устройстве 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 кодирования изображений.
Хотя не показано, множество режимов предсказания подготавливается к устройству 100 кодирования изображений, показанному на фиг. 1, и способу формирования сигнала 159 предсказанного изображения, и размер блока компенсации движения изменяется в зависимости от режима предсказания. Способы, посредством которых модуль 108 предсказания формирует сигнал 159 предсказанного изображения, примерно классифицируются на внутреннее предсказание (внутрикадровое предсказание), которое формирует предсказанное изображение посредством использования опорного сигнала 158 изображения целевого кадра (или поля) кодирования, и внешнее предсказание (межкадровое предсказание), которое формирует предсказанное изображение посредством использования опорного сигнала 158 изображения одного или более кодированных опорных кадров (или опорных полей). Модуль 108 предсказания формирует сигнал 159 предсказанного изображения целевого блока кодирования посредством избирательного переключения внутреннего предсказания и внешнего предсказания.
Фиг. 6A показывает пример внешнего предсказания. Внешнее предсказание типично выполняется для каждой единицы предсказания, и каждая единица предсказания может иметь уникальную информацию 160 движения. При взаимном предсказании, как показано на фиг. 6A, сигнал 159 предсказанного изображения формируется посредством использования опорного сигнала 158 изображения блока 602 в пространственно сдвинутой позиции, в соответствии с вектором движения, содержащимся в информации 160 движения, от блока 601, который представляет собой пиксельный блок в уже кодированном опорном кадре (например, непосредственно предыдущем кодированном кадре), и существует в той же позиции, что и позиция целевой единицы предсказания при кодировании. Иными словами, сигнал 159 предсказанного изображения формируется посредством использования опорного сигнала 158 изображения блока 602 в опорном кадре, который указывается посредством позиции (координаты) целевого блока кодирования и вектора движения, содержащегося в информации 160 движения.
При взаимном предсказании является возможной компенсация движения при точности в небольшое число пикселей (например, точности в 1/2 пикселя или точности в 1/4 пикселя), и значение интерполирующего пикселя формируется посредством фильтрации опорного сигнала 158 изображения. Например, интерполяционный процесс вплоть до точности в 1/4 пикселя может быть выполнен для сигнала яркости в H.264. Этот интерполяционный процесс может быть выполнен посредством использования произвольной фильтрации вместо фильтрации, заданной посредством H.264.
Следует отметить, что при взаимном предсказании можно использовать не только непосредственно предыдущий опорный кадр, как показано на фиг. 6A, но также и любой уже кодированный опорный кадр, как показано на фиг. 6B. Когда сохраняются опорные сигналы 158 изображения множества опорных кадров, имеющих различные позиции времени, информация, указывающая позицию времени опорного сигнала 158 изображения, из которого формируется сигнал 159 предсказанного изображения, представляется посредством номера опорного кадра. Информация 160 движения содержит этот номер опорного кадра. Номер опорного кадра может быть изменен для каждой области (например, каждого изображения, вырезки или блока). Иными словами, различные опорные кадры могут использоваться для различных единиц предсказания. В качестве примера, когда непосредственно предыдущий кодированный опорный кадр используется в предсказании, номер опорного кадра этой области задается равным нулю. Когда кодированный опорный кадр за два кадра до целевого кадра кодирования используется в предсказании, номер опорного кадра этой области задается равным 1. В качестве другого примера, когда опорный сигнал 158 изображения только одного кадра сохраняется в запоминающем устройстве 107 опорных изображений (когда только один опорный кадр сохраняется), номер опорного кадра всегда задается равным нулю.
Помимо этого, можно избирательно использовать размер, подходящий для целевого блока кодирования, из множества подготовленных размеров единиц предсказания. Например, компенсация движения может быть выполнена для каждой единицы предсказания, полученной посредством разделения единиц дерева кодирования, как показано на фиг. 7A, 7B, 7C, 7D, 7E, 7F и 7G. Также можно выполнять компенсацию движения для каждой единицы предсказания, разделенной на форму, отличную от квадрата, как показано на фиг. 7F или 7G.
Как описано выше, информация 160 движения кодированного пиксельного блока (например, блока в 4×4 пикселей) в целевом кадре кодирования, который должен быть использован при внешнем предсказании, сохраняется в качестве опорной информации 166 движения. Следовательно, форма и вектор движения оптимального блока компенсации движения и номер опорного кадра могут быть использованы в соответствии с локальным свойством сигнала 151 входного изображения. Также можно свободно комбинировать единицы кодирования и единицы предсказания. Когда единица кодирования представляет собой блок в 64×64 пикселей, каждая из четырех единиц дерева кодирования (блоков 32×32 пикселей), полученных посредством разделения блока в 64×64 пикселей, дополнительно может быть разделена на четыре блока. Это позволяет иерархически использовать блоки в 16×16 пикселей из блока в 64×64 пикселей. Аналогично можно иерархически использовать блоки в 8×8 пикселей из блока в 64×64 пикселей. Когда единица предсказания получается посредством разделения единицы дерева кодирования на четыре блока, можно выполнять иерархический процесс компенсации движения из блока в 64×64 пикселей в блоки 4×4 пикселей.
Кроме того, при внешнем предсказании двунаправленное предсказание с использованием двух видов компенсации движения может быть выполнено для целевого пиксельного блока кодирования. В H.264 новый сигнал предсказанного изображения (не показан) получается посредством выполнения двух видов компенсации движения для целевого пиксельного блока кодирования и вычисления взвешенного среднего двух видов сигналов предсказанного изображения. В этом двунаправленном предсказании, два вида компенсации движения упоминаются как предсказание из списка 0 и предсказание из списка 1.
ПОЯСНЕНИЕ РЕЖИМА ПРОПУСКА, РЕЖИМА ОБЪЕДИНЕНИЯ И ВЗАИМНОГО РЕЖИМА
Устройство 100 кодирования изображений согласно этому варианту осуществления использует множество режимов предсказания, имеющих различные процессы кодирования, как показано на фиг. 8. Ссылаясь на фиг. 8, режим пропуска представляет собой режим, в котором кодируется только синтаксис позиции 954 предсказанной информации движения (описана ниже), а другие синтаксисы не кодируются. Режим объединения представляет собой режим, в котором кодируется только синтаксис позиции 954 предсказанной информации движения и информации 153 коэффициентов преобразования, а другие синтаксисы не кодируются. Внешний режим представляет собой режим, в котором кодируется синтаксис позиции 954 предсказанной информации движения, разностная информация 953 движения (которая описывается ниже) и информация 153 коэффициентов преобразования. Эти режимы переключаются посредством информации 165 предсказания, управляемой посредством контроллера 114 кодирования.
КОДЕР 403 ИНФОРМАЦИИ ДВИЖЕНИЯ
Ниже поясняется кодер 403 информации движения со ссылкой на фиг. 9.
Кодер 403 информации движения включает в себя модуль 901 получения опорных векторов движения, переключатель 902 выбора предсказанных векторов движения (который также упоминается как переключатель выбора предсказанной информации движения), модуль 903 вычитания, кодер 904 разностной информации движения, кодер 905 позиций предсказанной информации движения и мультиплексор 906.
Модуль 901 получения опорных векторов движения принимает опорную информацию 166 движения и опорную информацию 164 позиции и формирует, по меньшей мере, один кандидат 951 предсказанной информации движения (также называемый кандидатом предсказанного вектора движения) (951A, 951B, …). Фиг. 10 и 11 иллюстрируют примеры позиции кандидата 951 предсказанной информации движения относительно целевой единицы предсказания. Фиг. 10 показывает позиции единиц предсказания, пространственно смежных с целевой единицей предсказания. AX (X=от 0 до nA-1) указывает смежную единицу предсказания слева от целевой единицы предсказания, BY (Y=от 0 до nB-1) указывает смежную единицу предсказания выше целевой единицы предсказания, и C, D, и E, соответственно, указывают смежные единицы предсказания в верхнем правом углу, верхнем левом углу и нижнем левом углу целевой единицы предсказания. Фиг. 11 показывает позицию единицы предсказания в уже кодированном опорном кадре относительно целевой единицы предсказания при кодировании. На фиг. 11, Col указывает единицу предсказания, которая существует в той же позиции, что и позиция целевой единицы предсказания при кодировании в опорном кадре. Фиг. 12 показывает пример списка, указывающего взаимосвязь между позициями блоков и индексами Mvpidx множества кандидатов 951 предсказанной информации движения. Индексы 0-2 Mvpidx указывают кандидаты 951 предсказанных векторов движения, размещенные в пространственной области, и индекс 3 Mvpidx указывает кандидат 951 предсказанного вектора движения, размещенный во временной области. Позиция A единицы предсказания является позицией единицы предсказания для внешнего предсказания, т.е. единицы предсказания, имеющей опорную информацию 166 движения, в AX, как показано на фиг. 10, и значение X является наименьшим в позиции A единицы предсказания. Позиция B единицы предсказания является позицией единицы предсказания для внешнего предсказания, т.е. единицы предсказания, имеющей опорную информацию 166 движения, в BY, как показано на фиг. 10, и значение Y является наименьшим в позиции B единицы предсказания. Когда позиция C единицы предсказания не является внешним предсказанием, опорная информация 166 движения в позиции D единицы предсказания заменяется опорной информацией 166 движения в позиции C единицы предсказания. Когда позиции C и D единиц предсказания не являются внешним предсказанием, опорная информация 166 движения в позиции E единицы предсказания заменяется опорной информацией 166 движения в позиции C единицы предсказания.
Если размер целевой единицы предсказания при кодировании превышает размер наименьшей единицы предсказания, позиция Col единицы предсказания может сохранять множество элементов опорной информации 166 движения в запоминающем устройстве 502 опорной информации движения во временной области. В этом случае опорная информация 166 движения в единице предсказания в позиции Col получается в соответствии с опорной информацией 164 позиции. Позиция получения опорной информации 166 движения в единице предсказания в позиции Col далее упоминается как позиция получения опорной информации движения. Фиг. 13A, 13B, 13C, 13D, 13E и 13F иллюстрируют примеры позиции получения опорной информации движения для каждого размера целевой единицы предсказания при кодировании (32x от 32 до 16x16), когда опорная информация 164 позиции указывает центр единицы предсказания в позиции Col. На фиг. 13A, 13B, 13C, 13D, 13E и 13F, каждый блок указывает единицу предсказания 4×4, и круг указывает позицию единицы предсказания 4×4, которая должна быть получена в качестве кандидата 951 предсказанной информации движения. Фиг. 14A, 14B, 14C, 14D, 14E и 14F иллюстрируют другие примеры позиции получения опорной информации движения. Ссылаясь на фиг. 14A, 14B, 14C, 14D, 14E и 14F, единиц предсказания 4x4 не существует в позиции круга, так что кандидат 951 предсказанной информации движения формируется посредством предварительно определенного способа, такого как среднее или медиана, опорной информации 166 движения в четырех единицах предсказания 4×4, смежных с кругом. В качестве еще одного другого примера позиции получения опорной информации движения, опорная информация 166 движения единицы предсказания 4×4, размещенной в верхнем левом углу единицы предсказания в позиции Col, также может быть использована в качестве кандидата 951 предсказанной информации движения. В случае, отличном от вышеуказанных примеров, можно формировать кандидат 951 предсказанной информации движения посредством использования любой позиции и любого способа при условии, что способ является предварительно определенным способом.
Следует отметить, что если опорной информации 166 движения не существует, информация 160 движения, имеющая нулевой вектор, выводится в качестве кандидата 951 предсказанной информации движения.
Посредством обработки, описанной выше, по меньшей мере, один кандидат 951 предсказанной информации движения выводится из опорного блока движения. Если номер опорного кадра вышеуказанного кандидата 951 предсказанной информации движения отличается от номера опорного кадра целевой единицы предсказания при кодировании, кандидат 951 предсказанной информации движения может масштабироваться посредством использования номера опорного кадра кандидата 951 предсказанной информации движения и номера опорного кадра целевой единицы предсказания при кодировании.
Переключатель 902 выбора предсказанной информации движения выбирает один из множества кандидатов 951 предсказанной информации движения в соответствии с командой из контроллера 114 кодирования и выводит предсказанную информацию 952 движения. Переключатель 902 выбора предсказанной информации движения также может выводить информацию 954 позиции предсказанной информации движения (которая описывается ниже). Вышеуказанный выбор может быть выполнен посредством использования оценочной функции, такой как уравнение (1) или (2). Модуль 903 вычитания вычитает информацию 952 предсказанных векторов движения из информации 160 движения и выводит разностную информацию 953 движения в кодер 904 разностной информации движения. Кодер 904 разностной информации движения кодирует разностную информацию 953 движения и выводит кодированные данные 960A. Следует отметить, что в режиме пропуска и режиме объединения, кодер 904 разностной информации движения не должен кодировать разностную информацию 953 движения.
Кодер 905 позиций предсказанной информации движения кодирует информацию 954 (Mvpidx) позиции предсказанной информации движения, указывающую то, какой кандидат 951 предсказанной информации движения выбирается из списка, показанного на фиг. 12, и выводит кодированные данные 960B. Информация 954 позиции предсказанной информации движения кодируется посредством использования кодирования с фиксированной длиной кода или кодирования с переменной длиной кода, сформированного из общего числа кандидатов 951 предсказанной информации движения. Кодирование с переменной длиной кода также может быть выполнено с использованием корреляции со смежными блоками. Кроме того, если множество кандидатов 951 предсказанной информации движения имеет одинаковую информацию, также можно кодировать информацию 954 позиции предсказанной информации движения посредством формирования кодовой таблицы из общего числа кандидатов 951 предсказанной информации движения, из которой удаляются одинаковые кандидаты 951 предсказанной информации движения. Кроме того, если общее число кандидатов 951 предсказанной информации движения равно 1, определяется то, что соответствующий кандидат 951 предсказанной информации движения является предсказанной информацией 952 движения, так что информация 954 позиции предсказанной информации движения не обязательно должна быть кодирована.
Помимо этого, в режиме пропуска, режиме объединения и взаимном режиме, способы выведения кандидата 951 предсказанной информации движения не должны быть обязательно не обязательно должны быть одинаковыми, и можно независимо задавать способы выведения кандидата 951 предсказанной информации движения. Этот вариант осуществления поясняется посредством допущения того, что один и тот же способ выведения кандидата 951 предсказанной информации движения используется в режиме пропуска и режиме объединения, и другой способ извлечения кандидата 951 предсказанной информации движения используется в режиме объединения.
ПОДРОБНОСТИ МОДУЛЯ 109 СЖАТИЯ ИНФОРМАЦИИ ДВИЖЕНИЯ
Во-первых, поясняется процесс сжатия информации движения со ссылкой на фиг. 15. На фиг. 15 опорная информация 166 движения запоминающего устройства 501 опорной информации движения в пространственной области сжимается и сохраняется в запоминающем устройстве 502 опорной информации движения во временной области. Опорная информация 166 движения, которая сохраняется в позиции представляющей движение информации для каждого блока сжатия информации движения (на фиг. 15, блока в 16×16 пикселей) в запоминающем устройстве 501 опорной информации движения в пространственной области, сохраняется в запоминающем устройстве 502 опорной информации движения во временной области. При выполнении вышеописанного процесса кодирования информации движения, опорная информация 166 движения, сохраненная в вышеописанной позиции получения опорной информации движения, задается в качестве кандидата 951 предсказанной информации движения. В этом случае также можно допустить, что блок сжатия информации движения фактически имеет ту же самую опорную информацию 166 движения, и задавать опорную информацию 166 движения, сохраненную в вышеописанной позиции опорной информации движения, в качестве кандидата 951 предсказанной информации движения (извлекается тот же кандидат 951 предсказанной информации движения).
Далее поясняется модуль 109 сжатия информации движения со ссылкой на блок-схему последовательности операций способа, показанную на фиг. 16. Когда процесс кодирования кадра (либо произвольной единицы, такой как единица вырезки или единица кодирования) закончен, сжатие 109 информации движения сжимает информация 160 движения и сохраняет информацию 160 движения в запоминающем устройстве 502 опорной информации движения во временной области.
Во-первых, опорная информация 164 позиции получается из контроллера 114 кодирования (этап S1601), и кадр разделяется на блоки сжатия информации движения в качестве единиц сжатия информации 160 движения (этап S1602). Блок сжатия информации движения представляет собой пиксельный блок, больший единицы (типично, блок в 4×4 пикселей), посредством которого информация 160 движения сохраняется посредством процесса компенсации движения, и типично представляет собой блок в 16×16 пикселей. Блок сжатия информации движения также может представлять собой блок в 64×64 пикселей, блок в 32×32 пикселей, блок в 8x8 пикселей, прямоугольный пиксельный блок или пиксельную область, имеющую произвольную форму.
Затем, позиция представляющей движение информации формируется в соответствии с опорной информацией 164 позиции (этап S1603). В качестве примера формирования позиции представляющей движение информации, когда блок сжатия информации движения представляет собой блок в 16×16 пикселей, позиция получения опорной информации движения, когда размер единицы предсказания составляет 16×16, как показано на фиг. 13D, 14D и 17D, задается в качестве позиции представляющей движение информации. После этого, опорная информация 166 движения сформированной позиции представляющей движение информации задается в качестве представляющей движение информации (этап S1604), и представляющая движение информация сохраняется в запоминающем устройстве опорной информации движения во временной области (этап S1605). Этапы S1604 и S1605, описанные выше, выполняются для всех блоков сжатия информации движения.
Когда единица для сохранения информации 160 движения представляет собой блок M×M, и размер блока сжатия информации движения составляет N×N (N является кратным M), емкость запоминающего устройства опорной информации движения может быть уменьшена до (M × M)/(N×N) посредством выполнения вышеуказанного процесса сжатия информации движения.
ДРУГИЕ ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ПОЗИЦИИ, ПРЕДСТАВЛЯЮЩЕЙ ДВИЖЕНИЕ ИНФОРМАЦИИ
В качестве другого примера формирования позиции представляющей движение информации центральная позиция из множества позиций получения опорной информации движения также может быть использована в качестве позиции представляющей движение информации. Фиг. 18A и 18B показывают позицию представляющей движение информации каждого блока сжатия движения, имеющего размер 16×16. Фиг. 18A показывает позиции представляющей движение информации, когда позиции получения опорной информации движения являются позициями, показанными на фиг. 13D. Аналогично, фиг. 18B показывает позиции представляющей движение информации, когда позиции получения опорной информации движения являются позициями, показанными на фиг. 17D. Символы • на фиг. 18A и 18B указывают позиции получения опорной информации движения, когда единица предсказания представляет собой блок в 16×16. Позиция представляющей движение информации, указываемая посредством x, размещается в центральной позиции (также называемой барицентрической позицией) из четырех позиций получения опорной информации движения.
В качестве еще одного другого примера формирования позиции представляющей движение информации также можно использовать позицию получения опорной информации движения для каждого размера множества единиц предсказания в качестве опорной информации 164 позиции и формировать позицию представляющей движение информации из множества позиций получения опорной информации движения.
В качестве примера формирования позиции представляющей движение информации, также можно использовать позицию получения опорной информации движения для каждого размера множества единиц предсказания в качестве опорной информации 164 позиции и формировать позицию представляющей движение информации из множества позиций получения опорной информации движения. Фиг. 19 показывает центр (позицию получения опорной информации движения) каждой единицы предсказания, имеющей размер единицы предсказания в 16×16 или больше, когда древовидный блок представляет собой блок в 64×64 пикселей.
В качестве другого примера формирования позиции представляющей движение информации, позиция представляющей движение информации также может задаваться посредством использования позиции получения опорной информации движения, заданной для каждого блока сжатия информации движения. Фиг. 20A показывает пример, когда центр тяжести множества позиций получения опорной информации движения в каждом блоке сжатия информации движения задается в качестве позиции представляющей движение информации. Если позиция центр тяжести не совпадает с позицией блока в 4×4, можно задавать ближайший блок в 4×4 в качестве позиции представляющей движение информации или формировать опорный вектор 166 движения позиции центр тяжести посредством использования интерполяции, такой как билинейная интерполяция.
Фиг. 20B показывает пример, в котором одна из множества позиций получения опорной информации движения выбирается для каждого блока сжатия информации движения и задается в качестве позиции представляющей движение информации.
Кроме того, фиг. 21A и 21B иллюстрируют примеры, когда блоки сжатия информации движения имеют одинаковую позицию получения опорной информации движения в древовидном блоке. Поскольку все блоки сжатия информации движения имеют одинаковую позицию представляющей движение информации, позиции представляющей движение информации не должны переключаться в соответствии с позицией в древовидном блоке. Позиция представляющей движение информации не обязательно должна представлять собой позиции, показанные на фиг. 21A и 21B, и может представлять собой любую позицию, к примеру, верхний левый угол или верхний правый угол, в блоке сжатия информации движения.
В качестве примера формирования позиции представляющей движение информации, позиция представляющей движение информации также может указываться посредством использования BlkIdx, указывающего позиции блоков 4×4 в блоке сжатия информации движения в порядке Z-сканирования. Когда размер блока сжатия информации движения составляет 16×16, позиция представляющей движение информации, показанная на фиг. 21A, является эквивалентной позиции BlkIdx=12. Кроме того, позиция представляющей движение информации, показанная на фиг. 21B, является эквивалентной позиции BlkIdx=15.
В качестве другого примера процесса сжатия информации движения процесс сжатия информации движения также может включать в себя номера опорных кадров, чтобы уменьшать емкость запоминающего устройства для номеров опорных кадров. В этом случае номер опорного кадра, сохраненный в позиции представляющей движение информации, сохраняется в емкости запоминающего устройства для номеров опорных кадров. Соответственно, запоминающее устройство 501 опорной информации движения в пространственной области и запоминающее устройство 502 опорной информации движения во временной области, показанные на фиг. 5, сохраняют номера опорных кадров в дополнение к информации вектора движения.
В качестве еще одного другого примера процесса сжатия информации движения, когда процесс сжатия информации движения не включает в себя номер опорного кадра, информация вектора движения в информации движения в позиции представляющей движение информации может масштабироваться посредством использования номера опорного кадра и сохраняться в запоминающем устройстве 110 информации движения. Типичным примером процесса масштабирования является процесс линейного масштабирования на основе номера нуль опорного кадра. Иными словами, если номер опорного кадра не является нулем, процесс линейного масштабирования выполняется таким образом, что информация вектора движения обращается к опорному кадру, соответствующему номеру нуль опорного кадра. Основой вышеописанного процесса масштабирования также может быть значение, отличное от номера нуль опорного кадра. Если разделение возникает при выполнении вышеописанного процесса линейного масштабирования, это разделение может быть реализовано посредством поиска в таблице процессов разделения, сформированной заранее.
Когда размер блока сжатия информации движения не представляет собой блок 16×16, позиция представляющей движение информации формируется посредством использования той же обработки, как описано выше. В качестве примера, когда размер блока сжатия информации движения составляет 64×64, позиция получения опорной информации движения в единице предсказания 64×64 задается в качестве позиции представляющей движение информации. В качестве другого примера, позиция представляющей движение информации в блоке сжатия информации движения 16×16, показанном, например, в фиг. 21A и 21B, может масштабироваться в горизонтальном и вертикальном направлениях в соответствии с размером блока сжатия информации движения, и масштабированная позиция может задаваться в качестве позиции представляющей движение информации.
Если опорной информации движения не существует, поскольку позиция представляющей движение информации находится за пределами изображения или вырезки, позиция, в которой опорная информация движения может быть получена в блоке сжатия информации движения, например, верхний левый угол блока сжатия информации движения, может задаваться в качестве новой позиции представляющей движение информации. Кроме того, если опорной информации движения не существует, поскольку позиция представляющей движение информации является областью, к которой применяется внутреннее предсказание, новая позиция представляющей движение информации может задаваться посредством выполнения одной и той же обработки.
КОНФИГУРАЦИЯ СИНТАКСИСА
Ниже поясняется синтаксис, используемый посредством устройства 100 кодирования изображений, показанного на фиг. 1.
Синтаксис указывает структуру кодированных данных (например, кодированные данные 163, показанные на фиг. 1), полученную, когда устройство кодирования изображений кодирует данные движущихся изображений. При декодировании этих кодированных данных устройство декодирования изображений интерпретирует синтаксис посредством обращения к одинаковой синтаксической структуре. Фиг. 22 показывает пример синтаксиса 2200, используемого посредством устройства кодирования изображений, показанного на фиг. 1.
Синтаксис 2200 включает в себя три части, т.е. высокоуровневый синтаксис 2201, синтаксис 2202 уровня вырезки и синтаксис 2203 уровня дерева кодирования. Высокоуровневый синтаксис 2201 содержит синтаксическую информацию уровней выше, чем вырезка. Вырезка является прямоугольной областью или непрерывной областью, включенной в кадр или поле. Синтаксис 2202 уровня вырезки содержит информацию, необходимую для того, чтобы декодировать каждую вырезку. Синтаксис 2203 уровня дерева кодирования содержит информацию, необходимую для того, чтобы декодировать каждое дерево кодирования (т.е. каждую единицу дерева кодирования). Эти части дополнительно включают в себя подробные синтаксисы.
Высокоуровневый синтаксис 2201 включает в себя синтаксисы уровня последовательности и изображения, к примеру, синтаксис 2204 набора параметров последовательности и синтаксис 2205 набора параметров изображения. Синтаксис 2202 уровня вырезки включает в себя синтаксис 2206 заголовка вырезки и синтаксис 2207 данных вырезки. Синтаксис 2203 уровня дерева кодирования включает в себя синтаксис 2208 единицы дерева кодирования, синтаксис 2209 единицы преобразования и синтаксис 2210 единицы предсказания.
Синтаксис 2208 единицы дерева кодирования может иметь структуру в виде дерева квадрантов. Более конкретно, синтаксис 2208 единицы дерева кодирования может рекурсивно вызываться как элемент синтаксиса для синтаксиса 2208 единицы дерева кодирования. Иными словами, одна единица дерева кодирования может подразделяться посредством дерева квадрантов. Кроме того, синтаксис 2208 единицы дерева кодирования включает в себя синтаксис 2209 единицы преобразования и синтаксис 2210 единицы предсказания. Синтаксис 2209 единицы преобразования и синтаксис 2210 единицы предсказания вызываются в каждом синтаксисе 2208 единицы дерева кодирования в самой дальней части дерева квадрантов. Информация предсказания описывается в синтаксисе 2210 единицы предсказания. Информация обратного ортогонального преобразования и квантования описывается в синтаксисе 2209 единицы преобразования.
Фиг. 23 показывает примеры синтаксиса 2204 набора параметров последовательности согласно этому варианту осуществления. Флаг motion_vector_buffer_comp_flag, показанный на фиг. 23A и 23B, является синтаксисом, указывающим то, является сжатие информации движения согласно этому варианту осуществления допустимым/недопустимым для последовательности. Если motion_vector_buffer_comp_flag равен 0, сжатие информации движения согласно этому варианту осуществления является недопустимым для последовательности. Соответственно, обработка модуля сжатия информации движения, показанного на фиг. 1, пропускается. В качестве примера, если motion_vector_buffer_comp_flag равен 1, сжатие информации движения согласно этому варианту осуществления является допустимым для последовательности. Значение motion_vector_buffer_comp_ratio_log2, показанное на фиг. 23A и 23B, является информацией, указывающей единицу процесса сжатия информации движения, и показывается, когда motion_vector_buffer_comp_flag равен 1. Например, motion_vector_buffer_comp_ratio_log2 указывает информацию размера блока сжатия информации движения согласно этому варианту осуществления, и значение, полученное посредством умножения наименьшей единицы компенсации движения на 2(motion_vector_buffer_comp_ratio_log2), является размером блока сжатия информации движения. Ниже описывается пример, в котором наименьшая единица компенсации движения представляет собой блок в 4×4 пикселей, т.е. запоминающее устройство опорной информации движения сохраняется для каждого блока в 4×4 пикселей. Когда motion_vector_buffer_comp_ratio_log2 равен 1, размер блока сжатия информации движения согласно этому варианту осуществления представляет собой блок в 8x8 пикселей. Аналогично, когда motion_vector_buffer_comp_ratio_log2 равен 2, размер блока сжатия информации движения согласно этому варианту осуществления представляет собой блок в 16×16 пикселей. Значение motion_vector_buffer_comp_position, показанное на фиг. 23B, является информацией, указывающей позицию представляющей движение информации в блоке сжатия информации движения, и показывается, когда motion_vector_buffer_comp_flag равен 1. Например, motion_vector_buffer_comp_position также может указывать позицию опорной информации движения в блоке сжатия информации движения, как показано на фиг. 21A и 21B, или указывать позицию опорной информации движения в каждом блоке сжатия информации движения, как показано на фиг. 20A и 20B. Кроме того, motion_vector_buffer_comp_position дополнительно может указывать центр множества блоков.
В качестве другого примера, допустимость/недопустимость предсказания согласно этому варианту осуществления также может быть задана для каждой локальной области в вырезке в синтаксисах уровней (например, в синтаксисе параметров изображения, синтаксисе уровня вырезки, единице дерева кодирования и единице преобразования) ниже motion_vector_buffer_comp_flag, motion_vector_buffer_comp_ratio_log2 и motion_vector_buffer_comp_position.
Фиг. 24 показывает пример синтаксиса единицы предсказания. Флаг skip_flag, показанный на фиг. 24, указывает то, является или нет режим предсказания единицы кодирования, которой принадлежит синтаксис единицы предсказания, режимом пропуска. Если skip_flag равен 1, это указывает то, что синтаксисы (синтаксис единицы кодирования, синтаксис единицы предсказания и синтаксис единицы преобразования), отличные от информации 954 позиции предсказанной информации движения, не кодируются. NumMVPCand(L0) и NumMVPCand(L1), соответственно, указывают номера кандидатов 951 предсказанной информации движения в предсказании из списка 0 и предсказании из списка 1. Если кандидат 951 предсказанной информации движения существует (NumMVPCand(LX)>0, X=0 или 1), кодируется mvp_idx_IX, указывающий информацию 954 позиции предсказанной информации движения.
Если skip_flag равен 0, это указывает то, что режим предсказания единицы кодирования, которой принадлежит синтаксис единицы предсказания, не представляет собой режим пропуска. NumMergeCandidates указывает число кандидатов 951 предсказанной информации движения, извлекаемых на фиг. 12, и т.п. Если кандидат 951 предсказанной информации движения существует (NumMergeCandidates>0), кодируется merge_flag в качестве флага, указывающего то, представляет собой или нет единица предсказания режим объединения. Когда значение merge_flag равно 1, флаг указывает то, что единица предсказания представляет собой режим объединения. Если значение равно 0, флаг указывает то, что единица предсказания использует внешний режим. Если merge_flag равен 1, и существуют два или более кандидатов 951 предсказанной информации движения (NumMergeCandidates>1), кодируется merge_idx в качестве предсказанной информации 952 движения, указывающей блок кандидатов 951 предсказанной информации движения, с которого начинается объединение.
Если merge_flag равен 1, синтаксисы единицы предсказания, отличные от merge_flag и merge_idx, не обязательно должны кодироваться.
Если merge_flag равен 0, это указывает то, что единица предсказания является внешним режимом. Во внешнем режиме кодируются mvd_IX (X=0 или 1), указывающий разностную информацию вектора движения, содержащуюся в разностной информации 953 движения, и номер ref_idx_IX опорного кадра, а в случае вырезки B, кодируется inter_pred_idc, указывающий то, представляет собой единица предсказания однонаправленное предсказание (список 0 или список 1) или двунаправленное предсказание. Помимо этого, получаются NumMVPCand(L0) и NumMVPCand(L1), аналогично режиму скольжения. Если кандидат 951 предсказанной информации движения существует (NumMVPCand(LX)>0, X=0 или 1), кодируется mvp_idx_IX, указывающий информацию 954 позиции предсказанной информации движения.
Выше приведена конфигурация синтаксиса согласно этому варианту осуществления.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Второй вариант осуществления направлен на устройство декодирования изображений. Устройство кодирования изображений, соответствующее устройству декодирования изображений согласно этому варианту осуществления, поясняется в первом варианте осуществления. Иными словами, устройство декодирования изображений согласно этому варианту осуществления декодирует, например, кодированные данные, сформированные посредством устройства кодирования изображений согласно первому варианту осуществления.
Как показано на фиг. 25, устройство декодирования изображений согласно этому варианту осуществления включает в себя энтропийный декодер 2501, обратный квантователь 2502, обратный ортогональный преобразователь 2503, сумматор 2504, запоминающее устройство 2505 опорных изображений, модуль 2506 внешнего предсказания, запоминающее устройство 2507 опорной информации движения, модуль 2508 сжатия опорной информации движения и контроллер 2510 декодирования.
Устройство декодирования изображений, показанное на фиг. 25, декодирует кодированные данные 2550, сохраняет сигнал 2554 декодированного изображения в выходном буфере 2511 и выводит сигнал 2554 декодированного изображения в качестве выходного изображения. Кодированные данные 2550 выводятся, например, из устройства кодирования изображений, показанного на фиг. 1, и вводятся в устройство 2500 декодирования изображений через систему хранения данных (не показана) или систему передачи (не показана).
Энтропийный декодер 2501 выполняет расшифровку на основе синтаксисов, чтобы декодировать кодированные данные 2550. Энтропийный декодер 2501 последовательно энтропийно декодирует кодовую последовательность каждого синтаксиса и воспроизводит такие параметры кодирования, как информация 2559 движения и квантованный коэффициент 2551 преобразования, целевого блока кодирования. Параметры кодирования представляют собой параметры, необходимые для декодирования, например, информацию предсказания, информацию коэффициента преобразования и информацию квантования.
Более конкретно, как показано на фиг. 26, энтропийный декодер 2501 включает в себя разделитель 2601, декодер 2602 параметров, декодер 2603 коэффициентов преобразования и декодер 2604 информации движения. Разделитель 2601 разделяет кодированные данные 2550 и выводит кодированные данные 2651A параметра в декодер 2602 параметров, кодированные данные 2651B коэффициента преобразования в декодер 2603 коэффициентов преобразования и кодированные данные 2651C информации движения в декодер 2604 информации движения. Декодер 2602 параметров декодирует параметр 2651A кодирования, такой как информация предсказания, и выводит параметр 2570 кодирования в контроллер 2510 декодирования. Декодер 2603 коэффициентов преобразования принимает кодированные данные 2651B, декодирует информацию 2551 коэффициентов преобразования и выводит декодированную информацию в обратный квантователь 2502.
Декодер 2604 информации движения принимает кодированные данные 2651C из разделителя 2601, опорную информацию 2560 позиции из контроллера 2510 декодирования и опорную информацию 2558 движения из запоминающего устройства 2507 опорной информации движения и выводит информацию 2559 движения. Выходная информация 2559 движения вводится в модуль 2506 внешнего предсказания.
Как показано на фиг. 27, декодер 2604 информации движения включает в себя разделитель 2701, декодер 2702 разностной информации движения, декодер 2703 позиций предсказанной информации движения, модуль 2704 получения опорной информации движения, переключатель 2705 выбора предсказанной информации движения и сумматор 2706.
Кодированные данные 2651C информации движения вводятся в разделитель 2701 и разделяются на кодированные данные 2751 разностной информации движения и кодированные данные 2752 позиции предсказанной информации движения. Кодер 2702 разностной информации движения принимает кодированные данные 2751 разностной информации движения и декодирует разностную информацию 2753 движения. Сумматор 2706 суммирует разностную информацию 2753 движения с предсказанной информацией 2756 движения (которая описывается ниже) и выводит информацию 2759 движения. Декодер 2703 позиций предсказанной информации движения принимает кодированные данные 2752 позиции предсказанной информации движения и декодирует позицию 2754 предсказанной информации движения.
Переключатель 2705 выбора предсказанной информации движения принимает позицию 2754 предсказанной информации движения и выбирает предсказанную информацию 2756 движения из кандидатов 2755 предсказанной информации движения. Информация 2560 позиции предсказанной информации движения декодируется посредством использования декодирования с фиксированной длиной кода или декодирования с переменной длиной кода, сформированного из числа кандидатов 2755 предсказанной информации движения. Декодирование с переменной длиной кода также может быть выполнено с использованием корреляции со смежными блоками. Кроме того, если множество кандидатов 2755 предсказанной информации движения являются одинаковыми, информация 2560 позиции предсказанной информации движения может быть декодирована на основе кодовой таблицы, сформированной из общего числа кандидатов 2755 предсказанной информации движения, из которой удаляются одинаковые кандидаты. Помимо этого, если общее число кандидатов 2755 предсказанной информации движения равно 1, соответствующий кандидат 2755 предсказанной информации движения определяется в качестве предсказанной информации 2556 движения, так что информация 2754 позиции предсказанной информации движения не обязательно должна быть декодирована.
Компоновка и содержание обработки модуля 2704 получения предсказанной информации движения являются такими же как компоновка и содержание обработки модуля 901 получения предсказанной информации движения, поясненному в первом варианте осуществления.
Модуль 2704 получения опорной информации движения принимает опорную информацию 2558 движения и опорную информацию 2560 позиции и формирует, по меньшей мере, один кандидат 2755 предсказанной информации движения (2755A, 2755B, …). Фиг. 10 и 11 иллюстрируют примеры позиции кандидата 2755 предсказанной информации движения относительно целевой единицы предсказания при декодировании. Фиг. 10 показывает позиции единиц предсказания, пространственно смежных с целевой единицей предсказания при декодировании. AX (X=от 0 до nA-1) указывает смежную единицу предсказания слева от целевой единицы предсказания, BY (Y=от 0 до nB-1) указывает смежную единицу предсказания выше целевой единицы предсказания, и C, D, и E, соответственно, указывают смежные единицы предсказания в верхнем правом углу, верхнем левом углу и нижнем левом углу целевой единицы предсказания. Фиг. 11 показывает позицию единицы предсказания в уже декодированном опорном кадре относительно целевой единицы предсказания при декодировании. На фиг. 11, Col указывает единицу предсказания, которая существует в той же позиции, что и позиция целевой единицы предсказания при декодировании в опорном кадре. Фиг. 12 показывает пример списка, указывающего взаимосвязь между позициями блоков и индексами Mvpidx множества кандидатов 2755 предсказанной информации движения. Индексы 0-2 Mvpidx указывают кандидаты 2755 предсказанных векторов движения, размещенные в пространственной области, а индекс 3 Mvpidx указывает кандидата 2755 предсказанного вектора движения, размещенный во временной области. Позиция A единицы предсказания является позицией единицы предсказания для внешнего предсказания, т.е. единицы предсказания, имеющей опорную информацию 2558 движения, в AX, как показано на фиг. 10, и значение X является наименьшим в позиции A единицы предсказания. Позиция B единицы предсказания является позицией единицы предсказания для внешнего предсказания, т.е. единицы предсказания, имеющей опорную информацию 2558 движения, в BY, как показано на фиг. 10, и значение Y является наименьшим в позиции B единицы предсказания. Когда позиция C единицы предсказания не является внешним предсказанием, опорная информация 2558 движения в позиции D единицы предсказания заменяется опорной информацией 2558 движения в позиции C единицы предсказания. Когда позиции C и D единиц предсказания не являются внешним предсказанием, опорная информация 2558 движения в позиции E единицы предсказания заменяется опорной информацией 2558 движения в позиции C единицы предсказания.
Если размер целевой единицы предсказания при кодировании превышает размер наименьшей единицы предсказания, позиция Col единицы предсказания может сохранять множество элементов опорной информации 2558 движения в запоминающем устройстве 2507 опорной информации движения во временной области. В этом случае опорная информация 2558 движения в единице предсказания в позиции Col получается в соответствии с опорной информацией 2560 позиции. Позиция получения опорной информации 2558 движения в единице предсказания в позиции Col далее упоминается как позиция получения опорной информации движения. Фиг. 13A, 13B, 13C, 13D, 13E и 13F иллюстрируют примеры позиции получения опорной информации движения для каждого размера целевой единицы предсказания при кодировании (32x от 32 до 16x16), когда опорная информация 2560 позиции указывает центр единицы предсказания в позиции Col. На фиг. 13A, 13B, 13C, 13D, 13E и 13F, каждый блок указывает единицу предсказания 4x4, и круг указывает позицию единицы предсказания 4×4, которая должна быть получена в качестве кандидата 2755 предсказанной информации движения. Фиг. 14A, 14B, 14C, 14D, 14E и 14F иллюстрируют другие примеры позиции получения опорной информации движения. Ссылаясь на фиг. 14A, 14B, 14C, 14D, 14E и 14F, единица предсказания 4×4 номера существует в позиции круга, так что кандидат 2755 предсказанной информации движения формируется посредством предварительно определенного способа, такого как среднее или медиана, опорной информации 2558 движения в четырех единицах предсказания 4×4, смежных с кругом. В качестве еще одного другого примера позиции получения опорной информации движения, опорная информация 2558 движения единицы предсказания 4×4, размещенной в верхнем левом углу единицы предсказания в позиции Col, также может быть использована в качестве кандидата 2755 предсказанной информации движения. В случае, отличном от вышеуказанных примеров, можно формировать кандидат 2755 предсказанной информации движения посредством использования любой позиции и любого способа при условии, что способ является предварительно определенным способом.
Следует отметить, что если опорной информации движения 2558 движения не существует, информация 2559 движения, имеющая нулевой вектор, выводится в качестве кандидата 2755 предсказанной информации движения.
Посредством обработки, описанной выше, по меньшей мере, один кандидат 2755 предсказанной информации движения выводится из опорного блока движения. Если номер опорного кадра вышеуказанного кандидата 2755 предсказанной информации движения отличается от номера опорного кадра целевой единицы предсказания при кодировании, кандидат 2755 предсказанной информации движения может масштабироваться посредством использования номера опорного кадра кандидата 2755 предсказанной информации движения и номера опорного кадра целевой единицы предсказания при кодировании. Переключатель 2705 выбора предсказанной информации движения выбирает один из множества кандидатов 2755 предсказанной информации движения в соответствии с позицией 2754 предсказанной информации движения и выводит предсказанную информацию 952 движения.
Обратный квантователь 2502 получает восстановленный коэффициент 2552 преобразования посредством обратного квантования квантованного коэффициента 2551 преобразования из энтропийного декодера 2501. Более конкретно, обратный квантователь 2502 выполняет обратное квантование в соответствии с информацией квантования, декодированной посредством энтропийного декодера 2501. Обратный квантователь 2502 выводит восстановленный коэффициент 2552 преобразования в обратный ортогональный преобразователь 2503.
Обратный ортогональный преобразователь 2503 выполняет, для восстановленного коэффициента 2552 преобразования из обратного квантователя 2502, обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполняемому на стороне кодирования, таким образом получая восстановленный сигнал 2553 ошибки предсказания. Обратный ортогональный преобразователь 2503 вводит восстановленный сигнал 2553 ошибки предсказания в сумматор 2504.
Сумматор 2504 формирует сигнал 2554 декодированного изображения посредством суммирования восстановленного сигнала 2553 ошибки предсказания с соответствующим сигналом 2556 предсказанного изображения. Сигнал 2554 декодированного изображения обрабатывается посредством фильтра удаления блочности (не показан) или фильтра Винера (не показан), временно сохраняется в выходном буфере 2511 для выходного изображения и также сохраняется в запоминающем устройстве 2505 опорных изображений для опорного сигнала 2555 изображения. К сигналу 2554 декодированного изображения, сохраненному в запоминающем устройстве 2505 опорных изображений, обращаются, в качестве опорного сигнала 2555 изображения, для каждого кадра или каждого поля по мере необходимости посредством модуля 2506 внешнего предсказания. Сигнал 2554 декодированного изображения, временно сохраненный в выходном буфере 2511, выводится в соответствии с моментами времени вывода (тактированием), управляемым посредством контроллера 2510 декодирования.
Модуль 2506 внешнего предсказания выполняет внешнее предсказание посредством использования опорного сигнала 2555 изображения, сохраненного в запоминающем устройстве 2505 опорных изображений. Более конкретно, модуль 2506 внешнего предсказания получает информацию 2559 движения, содержащую разность движения (вектор движения) между целевым блоком предсказания и опорным сигналом 2555 изображения, из энтропийного декодера 2501 и формирует внешне предсказанное изображение посредством выполнения интерполяции (компенсации движения) на основе этого вектора движения. Формирование внешне предсказанного изображения является таким же как формирование в первом варианте осуществления, так что повторное пояснение опускается.
Контроллер 2510 декодирования управляет каждым элементом устройства декодирования изображений, показанного на фиг. 25. Более конкретно, контроллер 2510 декодирования выводит опорную информацию 2560 позиции (которая описывается ниже) в энтропийный декодер 2501 и выполняет различные виды управления для процесса декодирования, включающего в себя вышеописанные операции.
ПОЯСНЕНИЕ РЕЖИМА ПРОПУСКА, РЕЖИМА ОБЪЕДИНЕНИЯ И ВЗАИМНОГО РЕЖИМА
Устройство 2500 декодирования изображений согласно этому варианту осуществления использует множество режимов предсказания с использованием различных процессов декодирования, как показано на фиг. 8. Ссылаясь на фиг. 8, режим пропуска представляет собой режим, который декодирует только синтаксис, связанный с позицией 2754 предсказанной информации движения (которая описывается ниже), и не декодирует другие синтаксисы. Режим объединения представляет собой режим, который декодирует только синтаксис, связанный с позицией 2754 предсказанной информации движения и информацией 2551 коэффициентов преобразования, и не декодирует другие синтаксисы. Внешний режим представляет собой режим, который декодирует синтаксис, связанный с позицией 2754 предсказанной информации движения, разностной информацией 2753 движения (которая описывается ниже) и информацией 2551 коэффициентов преобразования. Эти режимы переключаются посредством информации 2571 предсказания, управляемой посредством контроллера 2510 декодирования.
Кроме того, устройство декодирования изображений, показанное на фиг. 25, использует синтаксисы, которые являются такими же или аналогичными синтаксисам, поясненным со ссылкой на фиг. 22, так что их подробное пояснение опускается.
ПОДРОБНОСТИ МОДУЛЯ 2508 СЖАТИЯ ИНФОРМАЦИИ ДВИЖЕНИЯ
Далее поясняется модуль 2508 сжатия информации движения со ссылкой на блок-схему последовательности операций способа, показанную на фиг. 16. Когда процесс декодирования кадра (либо произвольной единицы, такой как единица вырезки или единица кодирования) закончен, модуль 2508 сжатия информации движения сжимает информацию 2559 движения и сохраняет информацию 2559 движения в запоминающем устройстве 502 опорной информации движения во временной области.
Во-первых, опорная информация 2560 позиции получается из контроллера 2510 декодирования (этап S1601), и кадр разделяется на блоки сжатия информации движения в качестве единиц сжатия информации 2559 движения (этап S1602). Блок сжатия информации движения представляет собой пиксельный блок, больший единицы (типично, блок в 4x4 пикселей), посредством которого информация 2559 движения сохраняется посредством процесса компенсации движения, и типично представляет собой блок в 16×16 пикселей. Блок сжатия информации движения также может представлять собой блок в 32×32 пикселей, блок в 8x8 пикселей, прямоугольный пиксельный блок или пиксельную область, имеющую произвольную форму.
Затем, позиция представляющей движение информации формируется в соответствии с опорной информацией 2560 позиции (этап S1603). В качестве примера формирования позиции представляющей движение информации, когда блок сжатия информации движения представляет собой блок в 16×16 пикселей, позиция получения опорной информации движения, когда размер единицы предсказания составляет 16×16, как показано на фиг. 13D, 14D и 17D, задается в качестве позиции представляющей движение информации. После этого, опорная информация 2558 движения сформированной позиции представляющей движение информации задается в качестве представляющей движение информации (этап S1604), и представляющая движение информация сохраняется в запоминающем устройстве опорной информации движения во временной области (этап S1605). Этапы S1604 и S1605, описанные выше, выполняются для всех блоков сжатия информации движения.
Когда единица для сохранения информации 2559 движения представляет собой блок M×M, и размер блока сжатия информации движения составляет N×N (N является кратным M), емкость запоминающего устройства опорной информации движения может быть уменьшена до (M×M)/(N×N) посредством выполнения вышеуказанного процесса сжатия информации движения.
ДРУГИЕ ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ПОЗИЦИИ, ПРЕДСТАВЛЯЮЩЕЙ ДВИЖЕНИЕ ИНФОРМАЦИИ
В качестве другого примера формирования позиции представляющей движение информации, центральная позиция из множества позиций получения опорной информации движения также может быть использована в качестве позиции представляющей движение информации. Фиг. 18A и 18B показывают позицию представляющей движение информации каждого блока сжатия движения, имеющего размер 16×16. Фиг. 18A показывает позиции представляющей движение информации, когда позиции получения опорной информации движения являются позициями, показанными на фиг. 13D. Аналогично, фиг. 18B показывает позиции представляющей движение информации, когда позиции получения опорной информации движения являются позициями, показанными на фиг. 17D. Символы • на фиг. 18A и 18B указывают позиции получения опорной информации движения, когда единица предсказания представляет собой блок в 16×16. Позиция представляющей движение информации, указываемая посредством x, размещается в центральной позиции (также называемой позицией центра тяжести) из четырех позиций получения опорной информации движения.
В качестве еще одного другого примера формирования позиции представляющей движение информации, также можно использовать позицию получения опорной информации движения для каждого размера множества единиц предсказания в качестве опорной информации 2560 позиции и формировать позицию представляющей движение информации из множества позиций получения опорной информации движения. Фиг. 19 показывает центр (позицию получения опорной информации движения) каждой единицы предсказания, имеющей размер единицы предсказания в 16×16 или больше, когда древовидный блок представляет собой блок в 64×64 пикселей.
В качестве другого примера формирования позиции представляющей движение информации, позиция представляющей движение информации также может задаваться посредством использования позиции получения опорной информации движения, заданной для каждого блока сжатия информации движения. Фиг. 20A показывает пример, когда центр тяжести множества позиций получения опорной информации движения в каждом блоке сжатия информации движения задается в качестве позиции представляющей движение информации. Если позиция центра тяжести не совпадает с позицией блока в 4×4, можно задавать ближайший блок в 4×4 в качестве позиции представляющей движение информации или формировать опорный вектор 166 движения позиции центра тяжести посредством использования интерполяции, такой как билинейная интерполяция.
Фиг. 20B показывает пример, в котором одна из множества позиций получения опорной информации движения выбирается для каждого блока сжатия информации движения и задается в качестве позиции представляющей движение информации.
Кроме того, фиг. 21A и 21B иллюстрируют примеры, когда блоки сжатия информации движения имеют одинаковую позицию получения опорной информации движения в древовидном блоке. Поскольку все блоки сжатия информации движения имеют одинаковую позицию представляющей движение информации, позиции представляющей движение информации не должны переключаться в соответствии с позицией в древовидном блоке. Позиция представляющей движение информации не обязательно должна быть одной из позиций, показанных на фиг. 21A и 21B. Позиция представляющей движение информации может представлять собой любую позицию, к примеру, верхний левый угол или верхний правый угол, в блоке сжатия информации движения.
В качестве примера формирования позиции представляющей движение информации, позиция представляющей движение информации также может указываться посредством использования BlkIdx, указывающего позиции блоков 4×4 в блоке сжатия информации движения в порядке Z-сканирования. Когда размер блока сжатия информации движения составляет 16×16, позиция представляющей движение информации, как показано на фиг. 21A, является эквивалентной позиции BlkIdx=12. Кроме того, позиция представляющей движение информации, как показано на фиг. 21B, является эквивалентной позиции BlkIdx=15.
В качестве другого примера процесса сжатия информации движения, процесс сжатия информации движения также может включать в себя номера опорных кадров, чтобы уменьшать емкость запоминающего устройства для номеров опорных кадров. В этом случае номер опорного кадра, сохраненный в позиции представляющей движение информации, сохраняется в емкости запоминающего устройства для номеров опорных кадров. Соответственно, запоминающее устройство 501 опорной информации движения в пространственной области и запоминающее устройство 502 опорной информации движения в пространственной области, показанные на фиг. 5, сохраняют номера опорных кадров в дополнение к информации вектора движения.
В качестве еще одного другого примера процесса сжатия информации движения, когда процесс сжатия информации движения не включает в себя номер опорного кадра, информация вектора движения в информации движения в позиции представляющей движение информации может масштабироваться посредством использования номера опорного кадра и сохраняться в запоминающем устройстве 110 информации движения. Типичным примером процесса масштабирования является процесс линейного масштабирования на основе номера нуль опорного кадра. Иными словами, если номер опорного кадра не является нулем, процесс линейного масштабирования выполняется таким образом, что информация вектора движения обращается к опорному кадру, соответствующему номеру нуль опорного кадра. Основой вышеописанного процесса масштабирования также может быть значение, отличное от номера нуль опорного кадра. Если разделение возникает при выполнении вышеописанного процесса линейного масштабирования, это разделение может быть реализовано посредством поиска в таблице процессов разделения, сформированной заранее.
Когда блок сжатия информации движения не представляет собой блок 16×16, позиция представляющей движение информации формируется посредством использования той же обработки, как описано выше. В качестве примера, когда размер блока сжатия информации движения составляет 64×64, позиция получения опорной информации движения в единице предсказания 64×64 задается в качестве позиции представляющей движение информации. В качестве другого примера, позиция представляющей движение информации в блоке сжатия информации движения 16×16, показанном, например, на фиг. 21A и 21B, может масштабироваться в горизонтальном и вертикальном направлениях в соответствии с размером блока сжатия информации движения, и масштабированная позиция может задаваться в качестве позиции представляющей движение информации.
Если опорной информации движения не существует, поскольку позиция представляющей движение информации находится за пределами изображения или вырезки, позиция, в которой опорная информация движения может быть получена в блоке сжатия информации движения, например, верхний левый угол блока сжатия информации движения может задаваться в качестве новой позиции представляющей движение информации. Кроме того, если опорной информации движения не существует, поскольку позиция представляющей движение информации является областью, к которой применяется внутреннее предсказание, новая позиция представляющей движение информации может задаваться посредством выполнения той же самой обработки.
Ниже поясняются модификации каждого варианта осуществления.
В каждом из первого и второго вариантов осуществления пояснен пример, в котором кадр разделяется на прямоугольные блоки, имеющие размер, например, в 16×16 пикселей, и кодирование или декодирование выполняется в порядке от верхнего левого блока к нижнему правому блоку на экране (см. фиг. 2A). Тем не менее, порядок кодирования и порядок декодирования не ограничены этим примером. Например, кодирование и декодирование также может выполняться в порядке от нижнего правого блока к верхнему левому блоку или выполняться по спирали от центра к краям экрана. Кроме того, кодирование и декодирование также может выполняться в порядке от верхнего правого блока к нижнему левому блоку или выполняться по спирали от краев к центру экрана.
Первый и второй варианты осуществления пояснены посредством показа размеров целевого блока предсказания, таких как блок в 4×4 пикселей, блок в 8x8 пикселей и блок в 16×16 пикселей в качестве примера, но целевой блок предсказания не обязательно должен иметь одинаковую форму блока. Например, размер целевого блока предсказания (единицы предсказания) также может представлять собой блок в 16×8 пикселей, блок в 8×16 пикселей, блок в 8×4 пикселей или блок в 4x8 пикселей. Кроме того, все размеры блоков не обязательно должны быть одинаковыми, в одной единице дерева кодирования, и множество различных размеров блоков может сосуществовать. Когда множество различных размеров блоков сосуществует в одной единице дерева кодирования, объем кода для кодирования или декодирования информации разделения возрастает по мере того, как возрастает число разделенных блоков. Следовательно, размер блока предпочтительно выбирается с учетом баланса между объемом кода информации разделения и качеством локально декодированного изображения или декодированного изображения.
В первом и втором вариантах осуществления, для простоты всестороннее пояснение приведено для компонентов цветового сигнала без различения между сигналом яркости и цветоразностными сигналами. Тем не менее, когда различные процессы предсказания используются для сигнала яркости и цветоразностных сигналов, можно использовать один и тот же способ предсказания или различные способы предсказания. Когда различные способы предсказания используются для сигнала яркости и цветоразностных сигналов, способ предсказания, выбранный для цветоразностных сигналов, может быть кодирован или декодирован посредством такого же способа, как способ для сигнала яркости.
В первом и втором вариантах осуществления, для простоты всестороннее пояснение приведено для компонентов цветового сигнала без различения между сигналом яркости и цветоразностными сигналами. Тем не менее, когда различные процессы ортогонального преобразования используются для сигнала яркости и цветоразностных сигналов, можно использовать один и тот же способ ортогонального преобразования или различные способы ортогонального преобразования. Когда различные способы ортогонального преобразования используются для сигнала яркости и цветоразностных сигналов, способ ортогонального преобразования, выбранный для цветоразностных сигналов, может быть кодирован или декодирован посредством того же способа, что и способ для сигнала яркости.
В первом и втором вариантах осуществления, элемент синтаксиса, не заданный в вариантах осуществления, может быть вставлен между строками таблицы, указывающими конфигурацию синтаксиса, либо также может быть включено другое описание, связанное с условным переходом. Также можно разделять синтаксическую таблицу на множество таблиц или интегрировать множество таблиц в одну таблицу. Кроме того, не всегда обязательно использовать один и тот же язык и свободно изменять язык в соответствии с формой использования.
Как пояснено выше, каждый вариант осуществления может реализовывать эффективное ортогональное преобразование и обратное ортогональное преобразование при уменьшении сложности в аппаратном комплексе и программном пакете. Соответственно, каждый вариант осуществления повышает эффективность кодирования, а также повышает субъективное качество изображений.
Кроме того, инструкции, указываемые посредством процедур, поясненных в вышеописанных вариантах осуществления, могут быть выполнены на основе программы в качестве программного обеспечения. Компьютерная система общего назначения позволяет достигать преимуществ, аналогичных преимуществам устройства кодирования изображений и устройства декодирования изображений согласно вышеописанным вариантам осуществления, посредством предварительного сохранения программы и ее считывания. Инструкции, описанные в вышеуказанных вариантах осуществления, записываются, в качестве программы, выполняемой посредством компьютера, на магнитном диске (например, на гибком диске или жестком диске), оптическом диске (например, CD-ROM, CD-R, CD-RW, DVD-ROM, DVD±R или DVD±RW), в полупроводниковом запоминающем устройстве или на носителе записи такого типа. Формат хранения носителя записи может принимать любую форму при условии, что носитель может считываться посредством компьютера или встроенной системы. Компьютер может реализовывать операции, одинаковые с операциями устройства кодирования изображений и устройства декодирования изображений согласно вышеописанным вариантам осуществления, посредством считывания программы из носителя записи и инструктирования CPU выполнять, на основе программы, инструкции, описанные в программе. Разумеется, компьютер также может получать или считывать программу по сети.
Помимо этого, на основе инструкций программы, установленной на компьютере или во встроенной системе из носителя записи, операционная система (ОС), работающая на компьютере, программное обеспечение управления базой данных либо промежуточное программное обеспечение (МВТ) сети и т.п. могут выполнять часть каждой обработки для реализации вариантов осуществления.
Кроме того, носитель записи согласно вариантам осуществления не ограничен носителем, независимым от компьютера или встроенной системы, и включает в себя носитель записи, сохраняющий или временно сохраняющий программу, передаваемую через LAN или Интернет и загружаемую. Также можно сохранять программу для реализации процесса каждого варианта осуществления на компьютере (сервере), подключенном к сети, такой как Интернет, и загружать программу на компьютер (клиент) по сети.
Кроме того, носитель записи не ограничен конкретным носителем. Даже когда процесс каждого варианта осуществления выполняется из множества носителей, эти носители включаются в носитель записи согласно вариантам осуществления, и носители могут принимать любую форму.
Следует отметить, что компьютер или встроенная система согласно вариантам осуществления используется для того, чтобы выполнять каждый процесс вариантов осуществления на основе программы, сохраненной в носителе записи, и может быть, например, одиночным устройством, таким как персональный компьютер или микрокомпьютер, либо системой, полученной посредством соединения множества устройств по сети.
Также следует отметить, что компьютер согласно вариантам осуществления не ограничен персональным компьютером и включает в себя процессор или микрокомпьютер, включенный в устройство обработки информации. Иными словами, компьютер является общим термином аппарата и устройства, допускающего реализацию функций вариантов осуществления на основе программы.
Хотя описаны конкретные варианты осуществления, эти варианты осуществления представлены только в качестве примера и не имеют намерение ограничивать объем изобретения. Фактически, новые варианты осуществления, описанные в данном документе, могут быть осуществлены во множестве других форм; кроме того, различные пропуски, подстановки и изменения в форме вариантов осуществления, описанных в данном документе, могут осуществляться без отступления от сущности изобретения. Прилагаемая формула изобретения и ее эквиваленты имеют намерение охватывать такие формы и модификации как попадающие в пределы объема и сущности изобретения.
Изобретение относится к средствам кодирования движущегося изображения. Техническим результатом является повышение эффективности кодирования. В способе выбирают предсказанную информацию движения из буфера информации движения, сохраняющего указанную информацию в кодированной области, предсказывают информацию движения целевого пиксельного блока кодирования посредством предсказанной информации движения, получают представляющую движение информацию из множества элементов информации движения в кодированной области в соответствии с первой информацией, указывающей способ выбора предсказанной информации движения. 2 н. и 14 з.п. ф-лы, 27 ил.
1. Способ получения представляющей движение информации для целевого пиксельного блока, подлежащего кодированию в процессе кодирования изображения, содержащем разделение сигнала входного изображения на пиксельные блоки и выполнение внешнего предсказания в отношении разделенных пиксельных блоков, при этом способ содержит этапы, на которых:
- выбирают предсказанную информацию движения из буфера информации движения, сохраняющего информацию движения в кодированной области, и предсказывают информацию движения целевого пиксельного блока кодирования посредством использования предсказанной информации движения; и
- получают представляющую движение информацию из множества элементов информации движения в кодированной области в соответствии с первой информацией, указывающей способ выбора предсказанной информации движения, таким образом получая только представляющую движение информацию для упомянутого целевого пиксельного блока.
2. Способ по п. 1, в котором первая информация содержит вторую информацию, которая указывает позицию в упомянутом целевом пиксельном блоке кодирования, причем вторая информация используется для того, чтобы выбирать информацию движения.
3. Способ по п. 2, в котором представляющая движение информация включает в себя информацию движения в буфере информации движения, которая размещается в центре из множества элементов второй информации целевого пиксельного блока кодирования и смежного пиксельного блока.
4. Способ по п. 2, дополнительно содержащий, если целевой пиксельный блок кодирования выбирается из множества размеров блоков, этап, на котором формируют третью информацию, которая указывает позицию в целевом пиксельном блоке кодирования, причем целевой пиксельный блок кодирования соответствует размерам блоков из множества элементов второй информации, соответствующей размерам блоков,
- при этом первая информация содержит третью информацию.
5. Способ по п. 4, в котором одно из:
(A) первой информации позиции, указываемой посредством одного из элементов второй информации, и
(B) второй информации позиции, соответствующей центру элементов второй информации,
задается в третьей информации.
6. Способ по п. 5, дополнительно содержащий, если множество различных элементов третьей информации формируется в предварительно определенной области, этап, на котором заменяют четвертую информацию, указывающую третью информацию, на третью информацию, имеющую наибольшую частоту.
7. Способ по п. 3 или 6, дополнительно содержащий этапы, на которых:
- выполняют процесс масштабирования в соответствии с информацией опорного кадра, содержащейся в представляющей движение информации, и сохраняют результат в буфере информации движения; и
- выполняют масштабирование в соответствии с информацией опорного кадра, содержащейся в предсказанной информации движения.
8. Способ по п. 3 или 6, в котором представляющая движение информация содержит информацию опорного кадра.
9. Способ получения представляющей движение информации для целевого пиксельного блока, подлежащего декодированию в процессе декодирования изображения, содержащем разделение сигнала входного изображения на пиксельные блоки и выполнение внешнего предсказания в отношении разделенных пиксельных блоков, при этом способ содержит этапы, на которых:
- выбирают предсказанную информацию движения из буфера информации движения, сохраняющего информацию движения в декодированной области, и предсказывают информацию движения целевого пиксельного блока декодирования посредством использования предсказанной информации движения; и
- получают представляющую движение информацию из множества элементов информации движения в декодированной области в соответствии с восьмой информацией, указывающей способ выбора предсказанной информации движения, таким образом получая только представляющую движение информацию целевого пиксельного блока.
10. Способ по п. 9, в котором восьмая информация содержит девятую информацию, которая указывает позицию в целевом пиксельном блоке декодирования, причем девятая информация используется для того, чтобы выбирать информацию движения.
11. Способ по п. 10, в котором представляющая движение информация включает в себя информацию движения в буфере информации движения, которая размещается в центре из множества элементов девятой информации целевого пиксельного блока декодирования и смежного пиксельного блока.
12. Способ по п. 10, дополнительно содержащий, если целевой пиксельный блок декодирования выбирается из множества размеров блоков, этап, на котором формируют десятую информацию, которая указывает позицию в целевом пиксельном блоке декодирования, причем целевой пиксельный блок декодирования соответствует размерам блоков, из множества элементов девятой информации, соответствующей размерам блоков,
- при этом восьмая информация содержит эту десятую информацию.
13. Способ по п. 12, в котором одно из:
(A) третьей информации позиции, указываемой посредством одного из элементов девятой информации, и
(B) четвертой информации позиции, соответствующей центру элементов девятой информации,
задается в десятой информации.
14. Способ по п. 13, дополнительно содержащий, если множество различных элементов десятой информации формируется в предварительно определенной области, этап, на котором заменяют одиннадцатую информацию, указывающую десятую информацию, на десятую информацию, имеющую наибольшую частоту.
15. Способ по п. 11 или 14, дополнительно содержащий этапы, на которых:
- выполняют процесс масштабирования в соответствии с информацией опорного кадра, содержащейся в представляющей движение информации, и сохраняют результат в буфере информации движения; и
- выполняют масштабирование в соответствии с информацией опорного кадра, содержащейся в предсказанной информации движения.
16. Способ по п. 11 или 14, в котором представляющая движение информация содержит информацию опорного кадра.
WO 2009051419 A2, 23.04.2009 | |||
US 20080037645 A1, 14.02.2008 | |||
JP 2008283490 A, 20.11.2008 | |||
БУФЕРИЗАЦИЯ ИЗОБРАЖЕНИЙ ДЛЯ ЭТАЛОНОВ ДЛЯ ПРЕДСКАЗАНИЯ И ОТОБРАЖЕНИЯ | 2003 |
|
RU2310290C2 |
СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА С ИСПОЛЬЗОВАНИЕМ ВЗВЕШЕННОГО ПРЕДСКАЗАНИЯ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 2006 |
|
RU2341035C1 |
Авторы
Даты
2015-12-20—Публикация
2011-03-09—Подача