Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству для кодирования и декодирования движущегося или неподвижного изображения.
Уровень техники
В последние годы способ кодирования изображения, эффективность кодирования которого значительно улучшена, рекомендуется в сотрудничестве с ITU-T и ISO/IEC как ITU-T Rec. H.264 и ISO/IEC 14496-10 (далее - H.264). В схеме кодирования, такой как ISO/IEC MPEG-1, 2 и 4, ITU-T H.261, и H.263, после ортогонального преобразования выполняется внутрикадровое прогнозирование в частотной области (коэффициент DCT) для уменьшения объема кода для коэффициента преобразования. В отличие от этого направленное прогнозирование (см. Greg Conklin, "New Intra Prediction Modes", ITU-T Q.6/SG16 VCEG, VCEG-N54, сентябрь 2001 г.) используется для реализации более высокой эффективности прогнозирования, чем внутрикадровое прогнозирование в ISO/IEC MPEG-1, 2 и 4.
В развитом варианте H.264 схемы внутрикадрового прогнозирования трех типов регулируются в соответствии с сигналом яркости, причем одна из этих схем может быть выбрана в макроблоке (пиксельный блок 16×16). Схемы внутрикадрового прогнозирования этих трех типов названы прогнозированием 4×4 пиксела, прогнозированием 8×8 пикселов и прогнозированием 16×16 пикселов, соответственно.
При прогнозировании 16×16 пикселов регулируются четыре режима прогнозирования, которые названы прогнозированием по вертикали, прогнозированием по горизонтали, прогнозированием DC и прогнозированием в плоскости. В этих четырех режимах прогнозирования применяется сигнал местного декодирования, полученный перед применением деблокирующего фильтра, а пиксельное значение макроблока вокруг макроблока, который должен кодироваться, используется как эталонное пиксельное значение для выполнения прогнозирования.
При прогнозировании 4×4 пиксела макроблок делится на пиксельные блоки 4×4 (субблоки), для каждого из пиксельных блоков 4×4 выбирается любой из девяти режимов прогнозирования. Из девяти режимов прогнозирования, за исключением прогнозирования DC (режим 2), которое выполняет прогнозирование с помощью среднего пиксельного значения имеющихся в наличии эталонных пикселов, восемь режимов имеют направления прогнозирования, построенные с интервалами 22,5°, соответственно. Экстраполяция выполняется в направлении прогнозирования, используя эталонный пиксел для создания сигнала прогнозирования.
При прогнозировании 8×8 пикселов макроблок делится на четыре пиксельных блока 8×8 (субблоки), и любой из девяти режимов прогнозирования выбирается для каждого из пиксельных блоков 8×8. Режим прогнозирования разработан в той же самой структуре, что и режим прогнозирования 4×4 пиксела. Процесс применения трехзвенной фильтрации к кодированным эталонным пикселам и планаризация эталонных пикселов, которая должна использоваться при прогнозировании для усреднения искажения кодирования, складываются вместе.
В публикации Kenneth K.C. Lee et al. "Spatial Domain Contribution to a High Compression Efficiency System" IWAIT2006, июнь 2006 г., раскрыт способ, в соответствии с которым выбирают два режима прогнозирования из подходящих девяти претендентов режима прогнозирования и вычисляют средние значения сигналов прогнозирования, созданных в соответствии с двумя выбранными режимами прогнозирования в пиксельных блоках для создания сигнала прогнозирования. В соответствии с этим способом высокая эффективность прогнозирования реализуется даже для комплексной текстуры, которая не предполагается при обычном прогнозировании 4×4 пиксела или обычном прогнозировании 8×8 пикселов.
В соответствии с Kenneth K.C. Lee et al. "Spatial Domain Contribution to a High Compression Efficiency System" IWAIT 2006, июнь 2006 г., последовательность прогнозирования субблоков (4×4 пиксельных блоков или 8×8 пиксельных блоков) в макроблоке устанавливается равномерной. Например, при прогнозировании рассматриваются каждый из пиксельных блоков 4×4, пиксельных блоков 8×8, полученных делением макроблока на четыре, и экстраполяция прогнозирования последовательно применяется к пиксельным блокам 4×4, каждый из которых получен делением пиксельных блоков 8×8. Процессы в блоках пиксельных блоков 8×8 повторяются четыре раза, чтобы завершить прогнозирующее кодирование шестнадцати пиксельных блоков 4×4. С другой стороны, в прогнозе для пиксельных блоков 8×8 экстраполяция прогнозирования последовательно применяется к пиксельным блокам 8×8, полученным делением макроблока на четыре.
Раскрытие изобретения
Поскольку согласно H.264 внутрикадровое прогнозирование основывается на экстраполяции прогнозирования, в макроблоке только левые и верхние пикселы могут упоминаться в отношении субблока в макроблоке. Поэтому когда корреляция между яркостью пикселов субблока и яркостью левых и верхних пикселов низкая, остаточная ошибка прогнозирования увеличивается, и эффективность кодирования в результате уменьшается.
Согласно публикации Kenneth K.C. Lee et al. "Spatial Domain Contribution to a High Compression Efficiency System" IWAIT 2006 г., июнь 2006 г., всегда используются два режима прогнозирования. Более конкретно, даже несмотря на то, что с помощью одиночного режима прогнозирования может быть получен достаточный результат, прогнозирование выполняется с использованием двух режимов прогнозирования. По этой причине система имеет возможность улучшения эффективности кодирования.
Задача настоящего изобретения состоит в том, чтобы обеспечить способ и устройство для кодирования изображения, имеющего высокую эффективность кодирования и декодирования.
В соответствии с одним аспектом настоящего изобретения обеспечивается устройство кодирования изображения, содержащее первый переключатель, который выбирает последовательность прогнозирования для множества субблоков, полученных дополнительным делением множества пиксельных блоков, полученных делением кадра входного сигнала изображения из множества заранее определенных последовательностей прогнозирования; второй переключатель, который выбирает из множества режимов прогнозирования, которые регулируют способ ссылки на кодированный пиксел, когда для кодированного пиксела создается первый сигнал прогнозирования каждого субблока, определенное число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования; третий переключатель, который выбирает режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования для использования при прогнозировании первого сигнала прогнозирования; генератор, создающий первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования, для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и кодер, который кодирует сигнал остаточной ошибки прогнозирования, выражающий разность между сигналом изображения пиксельного блока и вторым сигналом прогнозирования, чтобы создать кодированные данные, полученные с помощью кодирования с прогнозированием.
В соответствии с другим аспектом настоящего изобретения обеспечивается устройство декодирования изображения, содержащее: первый переключатель, который для множества субблоков, полученных дополнительным делением пиксельного блока, выбирает последовательность прогнозирования из множества заранее определенных последовательностей прогнозирования; второй переключатель, который из множества режимов прогнозирования, регулирующих способ ссылки на кодированный пиксел, когда для декодированного пиксела создается первый сигнал прогнозирования каждого субблока, выбирает определенное число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования; третий переключатель, который выбирает режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования, чтобы использовать их при прогнозировании первого сигнала прогнозирования; генератор, создающий первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя определенное число выбранных режимов прогнозирования для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и генератор, который создает декодированный сигнал изображения, используя второй сигнал прогнозирования.
В соответствии с еще одним аспектом настоящего изобретения обеспечивается машиночитаемый носитель данных, на котором хранится программа, заставляющая компьютер выполнять по меньшей мере одно из процесса кодирования изображения и процесса декодирования изображения.
Краткое описание чертежей
Фиг.1 - блок-схема устройства кодирования изображения в соответствии с вариантом осуществления.
Фиг.2A - схема, показывающая целевой блок кодирования и кодированный блок в целевом кадре кодирования.
Фиг.2B - схема, показывающая блочный размер макроблока.
Фиг.3A - схема, показывающая пиксельный блок 8×8.
Фиг.3B - схема, показывающая пиксельный блок 4×4.
Фиг.3C - схема, показывающая пиксельные блоки 8×8/4×4.
Фиг.4 - блок-схема с подробностями прогнозирующего устройства, показанного на фиг.1.
Фиг.5 - блок-схема с подробностями генератора сигнала прогнозирования, показанного на фиг.1.
Фиг.6A - схема, показывающая пиксельные блоки 8×8 и блочные индексы.
Фиг.6B - схема, показывающая последовательность прогнозирования с помощью последовательного прогнозирования в блоках, показанных на фиг.6A.
Фиг.6C - схема, показывающая изменение последовательности прогнозирования с помощью прогноза экстраполяции/интерполяции в блоках, показанных на фиг.6A.
Фиг.6D - схема, показывающая изменение другой последовательности прогнозирования в блоках, показанных на фиг.6A.
Фиг.7A - схема, показывающая пиксельные блоки 4×4 и блочные индексы.
Фиг.7B - схема, показывающая последовательность прогнозирования с помощью последовательного прогнозирования в блоках, показанных на фиг.7A.
Фиг.7C - схема, показывающая изменение последовательности прогнозирования с помощью прогноза экстраполяции/интерполяции в блоках, показанных на фиг.7А.
Фиг.7D - схема, показывающая изменение другой последовательности прогнозирования в блоках, показанных на фиг.7A.
Фиг.8 - схема, поясняющая таблицу последовательности прогнозирования, используемую в переключателе последовательности прогнозирования.
Фиг.9A - схема, показывающая режим прогнозирования растрового блочного прогнозирования в устройстве однонаправленного прогнозирования.
Фиг.9B - схема, показывающая зависимость между пикселом прогнозирования и ссылочным пикселом в прогнозировании 4×4 пиксела.
Фиг.9C - схема, поясняющая способ создания сигнала прогнозирования в режиме 0.
Фиг.9D - схема, поясняющая способ создания сигнала прогнозирования в режиме 4.
Фиг.10 - схема, показывающая названия режимов прогнозирования и индексов режимов в устройстве однонаправленного прогнозирования.
Фиг.11 - схема, показывающая названия режимов прогнозирования и индексов режимов в устройстве двунаправленного прогнозирования.
Фиг.12A - концептуальная схема прогнозирования по вертикали/горизонтали (режим 01) при прогнозировании 4Ч4 пиксела.
Фиг.12B - концептуальная схема прогнозирования по вертикали/горизонтали-вниз-вправо (режим 04) при прогнозировании 4×4 пиксела.
Фиг.13A - схема, поясняющая прогнозирование блока экстраполяции/интерполяции в пиксельных блоках 8×8.
Фиг.13B - схема, поясняющая прогнозирование блока экстраполяции/интерполяции в пиксельных блоках 4×4.
Фиг.14A - схема, показывающая позиционное соотношение между эталонным пикселом и пикселом прогнозирования при прогнозировании блока экстраполяции.
Фиг.14B - схема, показывающая соотношение между блоком интерполяции (1) и эталонным пикселом при прогнозировании 4×4 пиксела.
Фиг.14C - схема, показывающая соотношение между блоком интерполяции (2) и эталонным пикселом при прогнозировании 4×4 пиксела.
Фиг.14D - схема, показывающая соотношение между блоком интерполяции и эталонным пикселом при прогнозировании 4×4 пиксела.
Фиг.I5A - схема, поясняющая способ создания сигнала прогнозирования, полученного, когда в прогнозе блока экстраполяции выбрано прогнозирование по вертикали (режим 0).
Фиг.15B - схема, поясняющая способ создания сигнала прогнозирования, полученного, когда в прогнозе блока экстраполяции выбрано прогнозирование по диагонали-вниз-вправо (режим 4).
Фиг.16 - схема, показывающая режим прогнозирования прогноза блока интерполяции в устройстве однонаправленного прогнозирования.
Фиг.17 - схема, показывающая режим прогнозирования с однонаправленным прогнозированием, выполняемый при прогнозе блока интерполяции в устройстве однонаправленного прогнозирования.
Фиг.18A - схема, показывающая режим прогнозирования, который может быть выбран в блоке интерполяции (1) в устройстве однонаправленного прогнозирования.
Фиг.18B - схема, показывающая режим прогнозирования, который может быть выбран в блоке интерполяции (2) в устройстве однонаправленного прогнозирования.
Фиг.18C - схема, показывающая режим прогнозирования, который может быть выбран в блоке интерполяции (3) в устройстве однонаправленного прогнозирования.
Фиг.18D - схема, показывающая режимы прогнозирования, которые могут быть выбраны в блоке интерполяции (4) в устройстве однонаправленного прогнозирования.
Фиг.19A - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (1) при прогнозировании обратно-по вертикали (режим 9).
Фиг.19B - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (2) при прогнозировании обратно-по вертикали (режим 9).
Фиг.20A - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (1) при прогнозировании обратно-по горизонтали (режим 10).
Фиг.20B - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (2) при прогнозировании обратно-по горизонтали (режим 10).
Фиг.21A - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (1) при прогнозировании по диагонали-влево (режим 12).
Фиг.21B - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (1) при прогнозировании по диагонали-влево (режим 12).
Фиг.21C - схема, поясняющая способ создания сигнала прогнозирования для блока интерполяции (2) при прогнозировании по диагонали-влево (режим 12).
Фиг.22 - схема, показывающая названия режимов прогнозирования и индексы режимов при прогнозировании блока интерполяции в устройстве двунаправленного прогнозирования.
Фиг.23 - блок-схема последовательности операций процедуры обработки изображения, кодируемого в соответствии с вариантом осуществления.
Фиг.24 - блок-схема последовательности операций части процедуры обработки, показанной на фиг.23.
Фиг.25 - схема, показывающая пример структуры синтаксиса, использованного в кодере изображения.
Фиг.26 - схема, показывающая пример структуры данных синтаксиса уровня макроблока.
Фиг.27 - схема, показывающая пример структуры данных синтаксиса прогнозирования макроблока.
Фиг.28 - схема, поясняющая уравнение преобразования режима прогнозирования в индекс кодирования.
Фиг.29 - схема, поясняющая таблицу преобразования режима прогнозирования в индекс кодирования.
Фиг.30 - схема, показывающая названия режимов прогнозирования, которые могут использоваться в блоках (1), (2) и (3) интерполяции и в блоке (4) экстраполяции, и индексы режимов.
Фиг.31 - схема, показывающая другой пример структуры данных синтаксиса прогнозирования макроблока.
Фиг.32 - способ получения режима прогнозирования.
Фиг.33 - позиции блоков, в которых режим прогнозирования упоминается при прогнозировании.
Фиг.34 - схема, показывающая другой пример структуры данных синтаксиса прогнозирования макроблока.
Фиг.35 - схема, показывающая пример структуры данных синтаксиса набора параметров последовательности.
Фиг.36 - схема, показывающая пример структуры данных синтаксиса набора параметров изображения.
Фиг.37 - схема, показывающая пример структуры данных синтаксиса заголовка слоя.
Фиг.38 - схема, показывающая пример структуры данных синтаксиса уровня макроблока.
Фиг.39 - схема, показывающая еще один пример синтаксиса прогнозирования макроблока.
Фиг.40 - блок-схема устройства декодирования изображения в соответствии с вариантом осуществления.
Фиг.41 - блок-схема устройства, показывающая подробности генератора сигнала прогнозирования, показанного на фиг.40.
Фиг.42 - схема, поясняющая уравнение обратного преобразования декодированного индекса в режим прогнозирования.
Фиг.43 - схема, поясняющая таблицы для обратного преобразования декодированного индекса в режим прогнозирования.
Фиг.44A - схема, поясняющая положения блоков, где режим прогнозирования относится к прогнозированию блока интерполяции (1).
Фиг.44B - схема, поясняющая положения блоков, где режим прогнозирования относится к прогнозированию блока интерполяции (2).
Фиг.44C - схема, поясняющая положения блоков, где режим прогнозирования относится к прогнозированию блока интерполяции (3).
Фиг.44D - схема, поясняющая положения блоков, где режим прогнозирования относится к прогнозированию блока интерполяции (4).
Осуществление изобретения
Вариант осуществления настоящего изобретения ниже будет описан со ссылкой на чертежи.
Устройство кодирования изображения
Как показано на фиг.1, в устройстве кодирования изображения, соответствующем варианту осуществления изобретения, входной сигнал 120 движущегося изображения или неподвижного изображения поступает на кодер 100 изображения. Кодер 100 изображения имеет делитель 101 кадров, устройство 102 прогнозирования, переключатель 103 режимов, блок 104 ортогонального преобразования/квантования, блок 105 обратного квантования/обратного ортогонального преобразования, сумматор 106, запоминающее устройство 107 эталонного изображения и энтропийный кодер 108.
Контроллер 110 кодирования подает информацию 140 управления кодированием на кодер 100 изображения для управления всем процессом кодирования кодера 100 изображения и должным образом принимает информацию 150 обратной связи от кодера 100 изображения. Информация 140 управления кодированием содержит информацию индекса режима прогнозирования (описана ниже), информацию переключения размеров блоков, информацию переключения последовательности прогнозирования, информацию переключения числа режимов прогнозирования, информацию параметров квантования и т.п. Информация параметров квантования содержит ширину квантования (размер шага квантования), матрицу квантования и тому подобное. Информация 150 обратной связи содержит информацию о созданном количестве битов кодирования в кодере 100 изображения, требуемых для определения параметров квантования.
В кодере 100 изображения входной сигнал 120 изображения вводится в делитель 101 кадров. В делителе 101 кадров кодируемый целевой кадр входного сигнала 120 изображения делится на множество пиксельных блоков, чтобы создать блочный сигнал 121 изображения. Например, кодируемый целевой кадр, показанный на фиг.2A, делится на множество блоков, каждый из которых имеет размер блока 16×16 пикселов, как показано на фиг.2B. Блок, показанный на фиг.2B, называется макроблоком и является основным обрабатываемым модулем для кодирования. Более конкретно, кодирование выполняется в блоке макроблока.
Блочный сигнал 121 изображения, выведенный из делителя 101 кадров, сначала подвергается внутрикадровому прогнозированию с помощью устройства 102 прогнозирования. Внутрикадровое прогнозирование представляет собой схему, согласно которой, как известно, выполняется прогнозирование, ограниченное кадром. Устройство 102 прогнозирования использует кодированный пиксел в качестве эталонного пикселя, чтобы прогнозировать кодируемый целевой блок, тем самым создавая сигнал 122 прогнозирования в модуле макроблока.
В устройстве 102 прогнозирования подготовлены множество режимов прогнозирования для внутрикадрового прогнозирования и прогнозирование выполняется в соответствии со всеми выбираемыми режимами прогнозирования. Устройство 102 прогнозирования может иметь режим прогнозирования, согласно которому выполняется внутреннее прогнозирование для H.264, то есть прогнозирование 8×8 пикселов на фиг.3A, прогнозирование 4×4 пиксела на фиг.3B или прогнозирование 8×8/4×4 пиксела на фиг.3C (прогнозирование 8×8 пиксела и прогнозирование 4×4 пиксела смешиваются друг с другом в макроблоке). При внутреннем прогнозировании H.264 последующее прогнозирование не может быть выполнено без формирования локального декодированного изображения в макроблоке. В этом случае ортогональное преобразование/квантование и обратное квантование/обратное ортогональное преобразование могут быть выполнены в устройстве 102 прогнозирования.
При прогнозировании 8×8 пикселов и при прогнозировании 4×4 пиксела каждый макроблок делится на субблоки, составленные из пиксельных блоков 8×8 и пиксельных блоков 4×4. В этом случае в соответствии с режимом прогнозирования регулируется способ, которым осуществляется ссылка на кодированные пиксели, используемые при создании сигналов прогнозирования субблоков. Форма (включая размер) субблока не ограничивается конкретной формой. Например, могут использоваться формы 16×8 пикселов, 8×16 пикселов, 8×4 пиксела и 4×8 пикселов. Поэтому прогнозирование 8×4 пиксела и прогнозирование 2×2 пиксела могут быть реализованы с помощью одной и той же структуры, как описано выше.
Когда блочный размер субблока уменьшается, то есть когда количество поделенных макроблоков увеличивается, объем кода, используемого при кодировании информации о переключении размера блока (описана ниже), увеличивается. Однако, поскольку внутрикадровое прогнозирование может быть выполнено с более высокой эффективностью прогнозирования, остаточная ошибка уменьшается. Поэтому блочный размер может быть выбран с учетом баланса количества битов кодирования для информации о коэффициенте преобразования (описан ниже) и сигнала локального декодирования. Тот же самый процесс, как описано выше, может быть применен к пиксельной области, имеющей произвольную форму, созданную способом деления области.
В устройстве 102 прогнозирования остаточная ошибка прогнозирования формируется путем вычитания сигнала 12 прогнозирования из сигнала 122 прогнозирования и блочного сигнала 121 изображения. Сигнал 123 остаточной ошибки прогнозирования подается на блок 104 ортогонального преобразования/квантования 104 и на переключатель 103 режимов. В блоке 104 ортогонального преобразования/квантования выполняется ортогональное преобразование сигнала 123 остаточной ошибки прогнозирования и коэффициент преобразования, полученный ортогональным преобразованием, квантуется с целью создания информации 127 о коэффициенте преобразования квантования.
Что касается формы блока преобразования/квантования, который является обрабатываемым блоком в блоке 104 ортогонального преобразования/квантования, могут быть выбраны блоки формы 8×8 пикселов, 4×4 пиксела, 16×8 пикселов, 8×16 пикселов, 8×4 пиксела и 4×8 пикселов. В качестве альтернативы различные формы задаются для блоков преобразования/квантования в одном макроблоке. Например, пиксельные блоки 8×8 и пиксельные блоки 4×4 могут быть смешаны в макроблоке, как показано на фиг.3C.
В переключателе 103 режимов на основе информации 124 о режиме прогнозирования (далее - информация об индексе режима прогнозирования, информация о переключении размера блока информация о переключении последовательности прогнозирования и информация о переключении числа режимов прогнозирования будет, в общем, называться информацией о режиме прогнозирования), такой как информация об индексе режима прогнозирования, информация о переключении размера блока, информация о переключении последовательности прогнозирования и информация о переключении количества режимов прогнозирования, связанная с режимом прогнозирования, должна вводиться через сигнал 123 остаточной ошибки прогнозирования и устройство 102 прогнозирования, вычисляется стоимость кодирования. На основе этого выбирается оптимальный режим прогнозирования.
Более конкретно, когда информация 124 о режиме прогнозирования 124 представлена как ОН и сумма абсолютных значений величин сигналов остаточной ошибки прогнозирования представлена как SAD, переключатель 103 режимов выбирает режим прогнозирования, который дает минимальное значение стоимости K кодирования, вычисленное в соответствии со следующим уравнением как оптимальный режим.
[Уравнение 1]
K=SAD+λ×ОН(1),
где λ означает константу, которая определена на основе значения параметра квантования.
В другом примере вычисления стоимости в переключателе 103 режимов может использоваться только информация ОН о режиме прогнозирования или только сумма абсолютных величин SAD сигналов остаточной ошибки прогнозирования. Может использоваться значение, полученное преобразованием Адамара или аппроксимирующее информацию о режиме прогнозирования или сигнал остаточной ошибки прогнозирования. Функция стоимости может быть сформирована с использованием ширины квантования и параметра квантования.
В качестве еще одного примера вычисления стоимости предусмотрен виртуальный кодер, и может использоваться объем кода, полученного фактически кодированием сигнала 123 остаточной ошибки прогнозирования, генерируемого в каждом режиме прогнозирования, и квадратичная ошибка между декодированным сигналом 130 изображения, полученным с помощью локального декодирования кодированных данных, и сигналом 121 блочного изображения. В этом случае режим прогнозирования, который дает минимальное значение стоимости J кодирования, вычисленное с помощью нижеследующего уравнения, выбирается как оптимальный режим:
[Уравнение 2]
J=D+λ×R(2)
где D обозначает искажение кодирования, выражающее квадратичную ошибку между сигналом 121 блочного изображения и сигналом 130 декодированного изображения. С другой стороны, R обозначает объем кода, оцененный виртуальным кодированием.
Когда используется стоимость J кодирования в Уравнении (2), виртуальное кодирование и локальное декодирование (обратное квантование и обратное ортогональное преобразование) необходимы в каждом режиме прогнозирования. По этой причине объем обработки или размеры схемы возрастают. Однако, поскольку стоимость J отражает точный объем кода и точное искажение при кодировании, может быть выбран более оптимальный режим прогнозирования. В результате может быть получена более высокая эффективность кодирования. В Уравнении (2) искажение D при кодировании и количество R битов кодирования используются при вычислении стоимости J кодирования. Однако стоимость J кодирования может быть вычислена с использованием либо D, либо R. Функция стоимости может быть сформирована с использованием значения, полученного приближением D и R.
От переключателя 103 режимов выводятся информация 125 об оптимальном режиме прогнозирования, выражающая выбранный режим прогнозирования, и сигнал 126 прогнозирования, соответствующий выбранному режиму прогнозирования. Информация 125 об оптимальном режиме прогнозирования подается на блок 104 ортогонального преобразования/квантования вместе с сигналом 123 остаточной ошибки прогнозирования от устройства 102 прогнозирования. Блок 104 ортогонального преобразования/квантования применяет ортогональное преобразование, например дискретное косинусное преобразование (DCT) к сигналу 123 остаточной ошибки прогнозирования со ссылкой на информацию 125 об оптимальном режиме прогнозирования. В качестве ортогонального преобразования могут использоваться вейвлет-преобразование, независимый компонентный анализ и т.п. В блоке 104 ортогонального преобразования/квантования коэффициент преобразования, полученный ортогональным преобразованием, квантуется, чтобы создать информацию 127 о коэффициенте преобразования. В этом случае параметр квантования, такой как ширина квантования, требующаяся для квантования в блоке 104 ортогонального преобразования/квантования, задается информацией о параметре квантования, содержащейся в информации 140 управления кодированием, полученной от контроллера 110 кодирования.
Информация 127 о коэффициенте преобразования квантования вводится на энтропийный кодер 108 вместе с информацией, связанной с прогнозированием, такой как информация 141 об индексе режима прогнозирования, информация 142 о переключении размера блоков, информация 143 о переключении последовательности прогнозирования, информация 144 о переключении числа режимов прогнозирования и параметра квантования, которые содержатся в информации 140 об управлении кодированием. Энтропийный кодер 108 выполняет энтропийное кодирование, такое как кодирование Хаффмана, кодирование Голомба или арифметическое кодирование, для информации 127 коэффициента преобразования квантования и информации, связанной с прогнозированием, чтобы создать кодированные данные 146. Кодированные данные 146 мультиплексируются мультиплексором 111 и передаются через выходной буфер 112 как поток 147 битов кодирования.
Информация 127 о коэффициенте преобразования при квантовании также вводится в блок 105 обратного квантования/обратного ортогонального преобразования. Блок 105 обратного квантования/обратного ортогонального преобразования обратно квантует информацию 127 о коэффициенте преобразования для квантования в соответствии с информацией о параметре квантования от контроллера 110 кодирования и выполняет обратное ортогональное преобразование, такое как обратное дискретное косинусное преобразование (IDCT), для коэффициента преобразования, полученного обратным квантованием, создавая, таким образом, сигнал 128 остаточной ошибки прогнозирования, эквивалентный сигналу 123 остаточной ошибки прогнозирования, выведенному из устройства 102 прогнозирования.
Сигнал 128 остаточной ошибки прогнозирования, созданный блоком 105 обратного квантования/обратного ортогонального преобразования, добавляется к сигналу 105 прогнозирования, поступающему от переключателя 103 режимов, в сумматоре 106 для создания сигнала 129 локального декодирования. Сигнал 129 локального декодирования сохраняется в запоминающем устройстве 130 эталонного изображения. Сигнал локального декодирования, сохраненный в запоминающем устройстве 107 эталонного изображения, считывается как сигнал 130 эталонного изображения и используется для ссылки на него, когда сигнал 123 остаточной ошибки прогнозирования создается устройством 102 прогнозирования.
Контур кодирования (на фиг.1, устройство 102 прогнозирования->блок 104 ортогонального преобразования/квантования->блок 105 обратного квантования/обратного ортогонального преобразования->запоминающее устройство 130 эталонного изображения->устройство 102 прогнозирования) выполняется, когда обработка во всех выбираемых режимах прогнозирования заканчивается в целевом блоке кодирования. Когда заканчивается обработка контура кодирования в некотором целевом блоке кодирования, сигнал 121 блочного изображения следующего целевого блока кодирования вводится в устройство 101 прогнозирования, чтобы выполнить кодирование снова.
Контроллер 110 кодирования выполняет управление всем кодированием, такое как управление скоростью количества созданных битов кодирования, осуществляемое с помощью обратной связи, или управление параметром квантования, управление режимом кодирования и управление устройством прогнозирования. Устройство кодирования изображения, показанное на фиг.1, реализуется с помощью аппаратурного обеспечения типа микросхемы большой степени интеграции (LSI) или реализуется путем выполнения программы кодирования изображения в компьютере.
Устройство 102 прогнозирования
Устройство 102 прогнозирования будет описано ниже со ссылкой на фиг.4. Устройство 102 прогнозирования имеет генератор 113 сигнала прогнозирования, который создает сигнал прогнозирования, и дополнительно имеет внутренний переключатель 114 режимов, внутренний блок 115 ортогонального преобразования/квантования, внутренний блок 116 обратного квантования/обратного ортогонального преобразования и внутреннее запоминающее устройство 118 для хранения эталонного изображения, чтобы выполнять прогнозирование в блоках из множества пиксельных блоков малой величины (называемых субблоками), полученных дополнительным делением макроблока.
Когда сигнал 121 блочного изображения вводится в устройство 102 прогнозирования, генератором 113 сигнала прогнозирования создается сигнал 122 прогнозирования, получаемый посредством однонаправленного прогнозирования (описано ниже) или двунаправленного прогнозирования (описано ниже). В этом случае информация о режиме прогнозирования, включающая в себя информацию 141 об индексе режима прогнозирования, информацию 142 о переключении размера блоков, информацию 143 о переключении последовательности прогнозирования, и информацию 144 о переключении числа режимов прогнозирования, передается от контроллера 110 кодирования на генератор 113 сигнала прогнозирования. Контроллер 110 кодирования передает множество режимов прогнозирования на генератор 113 сигнала прогнозирования, чтобы заставить генератор 113 сигнала прогнозирования выполнять прогнозирование во множестве режимов прогнозирования. Генератор 113 сигнала прогнозирования в дополнение к сигналу 122 прогнозирования, полученному с помощью соответствующих режимов прогнозирования, создает информацию 161 о целевом режиме прогнозирования, соответствующую сигналу 122 прогнозирования.
Вычитающее устройство 119 вычитает сигнал 114 прогнозирования из сигнала 121 блочного изображения для создания сигнала 123 остаточной ошибки прогнозирования. Внутренний переключатель 114 режимов выбирает режим прогнозирования на основе информации 161 о режиме прогнозирования (в том числе, информации 141 об индексе режима прогнозирования, информации 142 о переключении размера блоков, информации 143 о переключении последовательности прогнозирования и информации 144 о переключении числа режимов прогнозирования), переданной через генератор 113 сигнала прогнозирования 113, и сигнал 123 остаточной ошибки прогнозирования для вывода информации 124 о режиме прогнозирования, представляющего выбранный режим прогнозирования.
Сигнал 123 остаточной ошибки прогнозирования и информация 124 о режиме прогнозирования, выведенные от внутреннего переключателя 114 режимов, вводятся на внутренний блок 115 ортогонального преобразования/квантования. Во внутреннем блоке 115 ортогонального преобразования/квантования ортогональное преобразование, например, DCT, применяется к сигналу 123 остаточной ошибки прогнозирования со ссылкой на информацию 124 о режиме прогнозирования. В качестве ортогонального преобразования могут использоваться вейвлет-преобразование, независимый компонентный анализ и т.п. Во внутреннем блоке 115 ортогонального преобразования/квантования коэффициент преобразования, полученный ортогональным преобразованием, квантуется для создания информации 163 о коэффициенте преобразования квантования. В этом случае параметр квантования, такой как ширина квантования, требующаяся для квантования во внутреннем блоке 115 ортогонального преобразования/квантования, задается информацией о параметре квантования, содержащейся в информации 140 управления кодированием от контроллера 110 кодирования.
Информация 163 о коэффициенте преобразования квантования 163 вводится во внутренний блок 116 обратного квантования/обратного ортогонального преобразования. Внутренний блок 116 обратного квантования/обратного ортогонального преобразования обратным образом квантует информацию 163 о коэффициенте преобразования квантования, соответствующую информации о параметре квантования, получаемой от контроллера 110 кодирования, и применяет обратное ортогональное преобразование, такое как IDCT, к коэффициенту преобразования, полученному обратным квантованием, таким образом создавая сигнал 164 остаточной ошибки прогнозирования, эквивалентный сигналу 123 остаточной ошибки прогнозирования.
Сигнал 164 остаточной ошибки прогнозирования, созданный внутренним блоком 116 обратного квантования/обратного ортогонального преобразования, прибавляется к сигналу 162 прогнозирования, поступающему от внутреннего переключателя 114 режимов, в сумматоре 117 для создания внутреннего сигнала 165 декодирования. Внутренний сигнал 165 декодирования сохраняется во внутреннем запоминающем устройстве 118 эталонного изображения.
Сигнал локального декодирования, сохраненный во внутреннем запоминающем устройстве 118 эталонного изображения, считывается как внутренний сигнал 166 эталонного изображения и используется для ссылки, когда сигнал остаточной ошибки прогнозирования создается генератором 113 сигнала прогнозирования. После завершения прогнозирования во всех субблоках в устройстве 102 прогнозирования сигнал 122 прогнозирования, сигнал 123 остаточной ошибки прогнозирования и информация 124 о режиме прогнозирования, соответствующая макроблоку, выводятся из устройства 102 прогнозирования.
Генератор 113 сигнала прогнозирования
Генератор 113 сигнала прогнозирования будет описан ниже со ссылкой на фиг.5. На фиг.5 показана только часть, связанная с созданием сигнала 122 прогнозирования в генераторе 113 сигнала прогнозирования. На фиг.5 переключатель 170 последовательности прогнозирования переключает последовательности прогнозирования субблоков в макроблоке на основе информации 143 о переключении последовательности прогнозирования в отношении сигнала 121 блочного изображения. Более конкретно, переключатель 170 последовательности прогнозирования выбирает последовательность прогнозирования из множества заранее определенных последовательностей прогнозирования для множества субблоков, полученных путем деления пиксельного блока (макроблока). Сигналы блочного изображения, последовательности прогнозирования которых переключаются переключателем 170 последовательности прогнозирования, подаются на устройство 171 однонаправленного прогнозирования и на устройство 172 двунаправленного прогнозирования.
Устройство 171 однонаправленного прогнозирования и устройство 172 двунаправленного прогнозирования прогнозируют макроблок со ссылкой на кодированные пиксели, соответствующие последовательности прогнозирования, переключаемой и выбираемой переключателем 170 последовательности прогнозирования, и режимы прогнозирования соответственно выбираются для создания сигнала прогнозирования, соответствующего макроблоку.
Более конкретно, устройство 171 однонаправленного прогнозирования выбирает один режим прогнозирования из множества подготовленных режимов прогнозирования на основе информации 141 об индексе режима прогнозирования. Устройство 171 однонаправленного прогнозирования создает сигналы прогнозирования со ссылкой на внутренний сигнал 166 эталонного изображения в соответствии с режимом прогнозирования, выбранным, как описано выше, и информацией 142 для переключения размера блока. Устройство 172 двунаправленного прогнозирования выбирает два вида режимов прогнозирования из множества подготовленных режимов прогнозирования на основе информации 141 об индексе режима прогнозирования. Устройство 172 двунаправленного прогнозирования создает сигналы прогнозирования со ссылкой на внутренний сигнал 166 эталонного изображения в соответствии с двумя видами режимов прогнозирования, выбранными, как описано выше, и информацией 142 для переключения блочного размера. Сигналы прогнозирования с выхода устройства 171 однонаправленного прогнозирования и устройства 172 двунаправленного прогнозирования поступают на переключатель 173 индекса режима прогнозирования.
Переключатель 173 индекса режима прогнозирования управляется в соответствии с информацией 144 о переключении числа режимов прогнозирования, чтобы выбрать любой из сигналов прогнозирования, созданных устройством 171 однонаправленного прогнозирования, и сигнал прогнозирования, созданный устройством 172 двунаправленного прогнозирования, осуществляя, таким образом, вывод выбранного сигнала 122 прогнозирования. Другими словами, переключатель 173 числа режимов прогнозирования выбирает число пригодных для использования режимов прогнозирования из множества заранее определенных режимов прогнозирования.
Работа переключателя 170 последовательности прогнозирования будет описана со ссылкой на фиг.6A-6D, фиг.7A-7D и фиг.8. На фиг.6A показан индекс:blk, служащий в качестве ссылки субблоков (8×8 пиксельных блоков) в макроблоке при прогнозировании 8×8 пикселов. Точно так же на фиг.7A показан индекс:blk субблоков (4×4 пиксельных блоков) в макроблоке при прогнозировании 4×4 пиксела. На фиг.6A, пиксельные блоки 8×8, полученные делением макроблока на четыре, размещаются в такой последовательности, что выполняются растровое блочное прогнозирование и процесс кодирования. На фиг.7A пиксельные блоки, с учетом того, что пиксельные блоки 8×8 получены делением макроблока на четыре, а пиксельные блоки 4×4, полученные делением пиксельных блоков 8×8 на четыре, размещаются в такой последовательности, что выполняется растровое блочное прогнозирование и процесс кодирования.
Переключатель 170 последовательности прогнозирования управляется информацией 143 о переключении последовательности прогнозирования. Переключатель 170 последовательности прогнозирования преобразует индекс:blk, служащий в качестве ссылки, зависимой от значения флажка:block_order_flag (описан ниже), представляющей информацию 143 о переключении последовательности прогнозирования, чтобы переключить последовательность прогнозирования субблоков. В последовательности:idx субблоков индекс:order (выражающий последовательность прогнозирования) субблоков при фактическом кодировании определяется следующим уравнением:
[Уравнение 3]
order=blkConv[block_order_flag][idx](3)
На фиг.8 показан пример конкретной таблицы преобразования для blkConv[][]. Когда флажок:block_order_flag равен 0 (FALSE), индекс:order субблока при фактическом прогнозирующем кодировании является самим индексом:idx субблока, который должен кодироваться, и прогнозирование блоков и последовательность прогнозирования не изменяются (такое прогнозирование, выполненное с помощью последовательности прогнозирования, здесь далее называется растровым блочным прогнозированием).
Фиг.6B и 7B показывают последовательности прогнозирования, полученные в соответствии с растровым блочным прогнозированием на фиг.6A и 7A. Более конкретно, на фиг.6B последовательность прогнозирования устанавливается как последовательность (0->1->2->3), в зависимости от индекса:idx. Точно так же, как на фиг.7B, последовательность прогнозирования устанавливается как последовательность (0->1->2->…->14->15), в зависимости от индекса:idx.
С другой стороны, когда флажок:block_order_flag равен 1 (TRUE), индекс:order субблоков, которые должны быть фактически кодированы путем прогнозирования, демонстрирует последовательность прогнозирования, при которой сначала один диагональный блок из четырех субблоков прогнозируется путем экстраполяции, а три остальные блока прогнозируются экстраполяцией или интерполяцией. Прогнозирование, выполненное с помощью последовательности прогнозирования, здесь далее будет называться прогнозированием экстраполяции/интерполяции.
Фиг.6C и 7C показывают изменения последовательности прогнозирования, полученные в соответствии с прогнозированием экстраполяции/интерполяции согласно фиг.6A и 7A, соответственно. На фиг.6C субблок индекса=3 сначала прогнозируется путем экстраполяции, прогнозируются субблоки idx=1 и idx=2 и, наконец, субблок idx=0, расположенный в диагональном положении позиции субблока idx=3, прогнозируется с помощью экстраполяции. На фиг.7C последовательности прогнозирования установлены в четырех субблоках из 4х4 пиксела, полученных делением пиксельного блока 8×8 на четыре, как показано на фиг.6C.
В качестве еще одного, другого примера, последовательности прогнозирования субблоков могут устанавливаться произвольно, как показано на фиг.6D и 7D, в зависимости от свойств, таких как корреляция между пикселами в макроблоке.
Как описано выше, последовательности прогнозирования субблоков, которые переключаются переключателем 170 последовательности прогнозирования, поступают на устройство 171 однонаправленного прогнозирования или устройство 172 двунаправленного прогнозирования для создания сигналов прогнозирования, соответствующих субблокам. Переключатель 173 числа режимов прогнозирования выводит сигнал прогнозирования, полученный устройством 171 однонаправленного прогнозирования, когда информация 144 о переключении числа режимов прогнозирования представляет число "1" режимов прогнозирования, и выводит сигнал прогнозирования, полученный двунаправленным устройством 172, когда информация 144 переключения числа режимов представляет число "2" режимов прогнозирования. Сигнал прогнозирования, выведенный от переключателя 173 числа режимов прогнозирования, извлекается как выходной сигнал 122 из генератора 113 сигнала прогнозирования.
Ниже будут описаны процессы устройства 171 однонаправленного прогнозирования и устройства 172 двунаправленного прогнозирования, соответствующие последовательностями прогнозирования, установленным флажком:block_order_flag. Как описано выше, устройство 171 однонаправленного прогнозирования и устройство 172 двунаправленного прогнозирования прогнозируют субблоки, которые должны быть кодированы, используя декодированные пикселы, хранящиеся во внутреннем запоминающем устройстве 118 эталонного изображения, показанном на фиг.4, в качестве внутреннего сигнала 166 эталонного изображения.
Процесс, выполняемый блоком 171 однонаправленного прогнозирования при растровом блочном прогнозировании.
В качестве режимов прогнозирования растрового блочного прогнозирования в устройстве 171 однонаправленного прогнозирования представляются, например, девять режимов, то есть, режимы 0-8. Как показано на фиг.9A, восемь режимов, за исключением режима 2 (режимы 0, 1, и от 3 до 8), имеют направления прогнозирования (направления, к которым обращаются кодированные пикселы), которые смещаются с интервалами 22,5° в пространстве изображения, сформированном кодером 100 изображения, и называются режимами направленного прогнозирования. Режим 2 является режимом прогнозирования DC в устройстве 171 однонаправленного прогнозирования. На фиг.10 показаны названия режимов прогнозирования: режимы от 0 до 8 растрового блочного прогнозирования в устройстве 171 однонаправленного прогнозирования. Индексам режимов, выражающим режимы от 0 до 8, даются соответствующие названия.
Фиг.9B показывает соотношение между пикселами прогнозирования и эталонными пикселами при прогнозировании 4х4 пиксела. На фиг.9B, пикселы А-М являются эталонными пикселами, а пикселы а-p являются пикселами прогнозирования. Конкретный способ прогнозирования будет описан ниже, используя фиг.9A, 9B, 9C, и 9D.
В устройстве 171 однонаправленного прогнозирования, когда в режиме 2 выбирается прогнозирование DC, значения пиксел а-р прогнозирования вычисляется следующим уравнением с целью создания сигналов прогнозирования.
[Уравнение 4]
a~p=ave (A, B, C, D, I, J, K, L)(4)
В этом уравнении, ave(.) обозначает среднее значение (называемое средним пиксельным значением) пиксельных значений (значений яркости) эталонных пикселов, указанных в скобках.
Когда некоторые из эталонных пикселов, указанных в скобках, не могут быть использованы, для создания сигналов прогнозирования вычисляется среднее пиксельное значение только пригодных для использования эталонных пикселов. Когда пригодный для использования эталонный пиксел вообще отсутствует, в генераторе 113 сигнала прогнозирования значение (128 в случае 8 битов), которое является половиной максимального значения яркости сигналов прогнозирования, устанавливается как сигнал прогнозирования.
Когда выбран какой-либо режим, за исключением режима 2, устройство 171 однонаправленного прогнозирования использует способ прогнозирования, который копирует эталонные пикселы в пикселы прогнозирования в направлениях прогнозирования, показанных на фиг.9A. Более конкретно, способ создания сигнала прогнозирования, используемый, когда выбирается режим 0 (прогнозирование по вертикали), представляется следующими уравнениями:
[Уравнение 5]
a, e, i, m=A
b, f, j, n=B
c, g, k, o=C
d, h, 1, p=D (5)
Этот режим 0 может быть выбран, только когда могут использоваться эталонные пикселы А-D. В режиме 0, как показано на фиг.9C, эталонные пикселы А-D непосредственно копируются в пикселы прогнозирования, размещаемые в вертикальном направлении, чтобы создать сигналы прогнозирования.
С другой стороны, способ создания сигнала прогнозирования, используемый, когда выбирается режим 4 (прогнозирование по диагонали-вниз-вправо, описывается следующими уравнениями: [Уравнение 6]
d=(B+(C<<1)+D+2)>>2
c, h=(A+(B<<1)+C+2)>>2
b, g, 1=(M+(A<<1)+B+2)>>2
a, f, k, p=(I+(M<<1)+A+2)>>2
e, j, o=(J+(I<<1)+M+2)>>2
i, n=(K+(J<<1)+I+2)>>2
m=(L+(K<<1)+J+2)>>2(6)
Режим 4 может использоваться, только когда могут использоваться эталонные пикселы А-D и I-М. В режиме 4, показанном на фиг.9D, значения, созданные 3-звенным фильтром, копируются в нижнем правом направлении под углом 45°, чтобы создать сигналы прогнозирования.
В отношении режимов прогнозирования, отличных от режимов 0, 2 и 4, используется та же самая структура. Более конкретно, сигнал прогнозирования создается способом копирования эталонных пикселов, которые могут использоваться в направлении прогнозирования пикселов прогнозирования, расположенных в направлении прогнозирования.
Процесс, выполняемый двунаправленным блоком 172 прогнозирования в растровом блочном прогнозе
При однонаправленном прогнозировании сигнал прогнозирования создается при допущении, что изображение в блоке имеет только одну пространственную направленность. Когда изображение в блоке имеет две или более пространственных направленности, допущение не может быть принято. По этой причине число сигналов остаточной ошибки прогнозирования имеет тенденцию увеличиваться, когда используется только однонаправленное прогнозирование. Поэтому, когда изображение имеет две или больше пространственных направленности, два вида режимов из девяти режимов прогнозирования (в том числе также прогнозирование DC) в устройстве 171 однонаправленного прогнозирования одновременно используются в устройстве 172 двунаправленного прогнозирования для выполнения прогнозирования с учетом множества пространственных направленностей, тем самым не допуская увеличения числа сигналов остаточной ошибки прогнозирования.
На фиг.11 показаны индексы режимов, соответствующие названиям режимов прогнозирования в устройстве 172 двунаправленного прогнозирования. На фиг.11 представлен режим прогнозирования, который использует два режима. Например, название и индекс режима для режима прогнозирования, который использует прогнозирование по вертикали (режим 0) и прогнозирование по горизонтали (режим 1), описаны как "прогнозирование по вертикали/горизонтали" и "режим 01", соответственно. Например, название и индекс режима для режима прогнозирования, который использует вертикальное прогнозирование (режим 0) и прогнозирование DC (режим 2), описаны как "вертикальное/DC прогнозирование" и "режим 02", соответственно.
В качестве примера ниже описан способ создания сигнала прогнозирования, выполняемый с помощью прогнозирования по вертикали/горизонтали, используя прогнозирование по вертикали (режим 0) и прогнозирование по горизонтали (режим 1). На фиг.12A показана концепция прогнозирования по вертикали/горизонтали (режим 01) при прогнозировании 4х4 пиксела. Соотношение между пикселами прогнозирования и эталонными пикселами при прогнозировании 4×4 пиксела является таким же, как то, которое показано на фиг.9B. Например, в пикселе а прогнозирования среднее пиксельное значение для пиксела А, относящееся к прогнозированию по вертикали, и для пиксела I, относящегося к прогнозированию по горизонтали, устанавливается как сигнал прогнозирования. В пикселе b прогнозирования, среднее пиксельное значение для эталонного пиксела B при прогнозировании по вертикали и для эталонного пиксела I при прогнозировании по диагонали-вниз-вправо устанавливается как сигнал прогнозирования. В отношении других пикселов прогнозирования, сигналы прогнозирования создаются тем же самым способом, как описано выше.
Более конкретно, пиксел прогнозирования вычисляется с использованием следующего уравнения при прогнозировании по вертикали/горизонтали (режим 01).
[Уравнение 7]
X(01, n)=(X(0,n)+X(1,n)+1)>>1(7)
В этом уравнении эталонный символ n означает индекс, соответствующий пикселам прогнозирования а-p, показанным на фиг.9B, и X(0,n) и X(1,n) означают сигналы прогнозирования, созданные с помощью прогнозирования по вертикали и прогнозирования по горизонтали, представляющего собой однонаправленное прогнозирование. Поскольку конкретные способы создания сигналов прогнозирования X(0,n) и X(1,n) являются такими же, как те, которые выражены Уравнением (5) и Уравнением (6), их описание опущено.
Пиксел прогнозирования вычисляется, используя следующее уравнение прогнозирования по вертикали/DC (режим 02).
[Уравнение 8]
X(02,n)=(X(0,n)+X(2,n)+1)>>1(8)
Пиксел прогнозирования вычисляется с использованием следующего уравнения для прогнозирования по вертикали/диагонали-вниз-вправо (режим 04).
[Уравнение 9]
X(04,n)=(X(0,n)+X(4,n)+1)>>1(9)
На фиг.12B показана концепция способа прогнозирования в режиме 04.
При прогнозировании экстраполяции во множестве направлений, за исключением направления для прогнозирования в режиме 01 или 02, пикселы прогнозирования могут быть вычислены подобным способом. Прогнозирование экстраполяции во множестве направлений может быть выражено следующим общим уравнением:
[Уравнение 10]
X(UV,n)=(X(U,n)+X(V,n)+1)>>1(10)
В этом уравнении X(U,n) и X(V,n) являются режимом "U" и режимом "V" при однонаправленном прогнозировании, и X(UV,n) является сигналом прогнозирования режима "UV" при прогнозировании экстраполяции для множества направлений. Таким способом, пикселы прогнозирования вычисляются с помощью однонаправленного прогнозирования произвольных двух типов в блоках пикселов. Значение, полученное усреднением этих пикселов прогнозирования, устанавливается как сигнал прогнозирования. По этой причине, когда в блоке присутствует множество пространственных направленностей, прогнозирование может быть выполнено с высокой точностью, и эффективность кодирования может быть повышена.
Прогнозирование блока экстраполяции/интерполяции
При прогнозировании с помощью блока экстраполяции/интерполяции, как показано на фиг.6B, последовательность субблоков в макроблоке изменяется с последовательности при растровом блочном прогнозировании на прогнозирование согласно уравнению (3). Например, когда прогнозирование выполняется для пиксельных блоков 8×8, как показано на фиг.13A, внешний угловой блок прогнозируется как блок (далее - блок экстраполяции), который может заранее прогнозироваться путем экстраполяции, а три другие блока прогнозируются как блоки (далее - блоки интерполяции), которые могут быть прогнозированы путем интерполяции. Более конкретно, прогнозируется блок (4) экстраполяции и затем прогнозируются блоки (1) (2) и (3) интерполяции. Когда прогнозируются пиксельные блоки 4×4, последовательность прогнозирования устанавливается такой, что прогнозирование блока экстраполяции и прогнозирования блоков интерполяции выполняются для каждого из пиксельных блоков 4×4 в блоках пиксельных блоков 8×8.
При процессе прогнозирования после завершения прогнозирования в единицах пиксельных блоков 8×8, прогнозирование выполняется для следующих пиксельных блоков 8×8. Этим способом прогнозирование блоков для пиксельных блоков 8×8 повторяется в итоге четыре раза.
Прогнозирование блока экстраполяции
Когда должен прогнозироваться блок экстраполяции, расстояние между эталонным пикселом и пикселом прогнозирования является большим. По этой причине диапазон эталонных пикселов таков, как показано на фиг.14A. На фиг.14A пикселы А-X и Z являются эталонными пикселами, а пикселы а-p - пикселами прогнозирования. Хотя диапазон эталонных пикселов становится широким, способ создания сигнала прогнозирования копированием эталонных пиксел в зависимости от углов прогнозирования выполняется тем же самым способом, что и в растровом блочном прогнозировании.
Более конкретно, когда в блоке экстраполяции выбирается прогнозирование DC в режиме 2, пикселы прогнозирования а-p вычисляются с помощью следующего уравнения:
[Уравнение 11]
a~p=ave(E, F, F, H, U, V, W, X)(11)
В этом уравнении, ave(.) обозначает среднее пиксельное значение эталонных пикселов, указанных в скобках.
Когда нет возможности использовать некоторые из эталонных пикселов, указанных в скобках, для создания сигналов прогнозирования вычисляется среднее пиксельное значение только для пригодных для использования эталонных пикселов. Когда пригодный для использования эталонный пиксел вообще отсутствует, в генераторе 113 сигнала прогнозирования значение (128 в случае 8 битов), которое является половиной от максимального значения яркости сигналов прогнозирования, устанавливается как сигнал прогнозирования.
Когда выбирается режим, отличный от режима 2, устройство 171 однонаправленного прогнозирования использует способ прогнозирования, который копирует эталонные пикселы в пикселы прогнозирования в направлениях прогнозирования, показанных на фиг.9A. Более конкретно, способ создания сигнала прогнозирования, используемый, когда выбирается режим 0 (прогнозирование по вертикали), определяется следующими уравнениями:
[Уравнение 12]
a, e, i, m=E
b, f, j, n=F
c, g, k, o=G
d, h, l, p=H(12)
Этот режим 0 может быть выбран, только когда могут использоваться эталонные пикселы E-H. В режиме 0, как показано на фиг.15A, эталонные пикселы E-H непосредственно копируются в пикселы прогнозирования, размещенные в вертикальном направлении, чтобы создать сигналы прогнозирования.
Способ создания сигнала прогнозирования, используемый, когда в блоке экстраполяции выбран режим 4 (прогнозирование по диагонали-вниз-вправо), определяется следующими уравнениями:
[Уравнение 13]
d=(B+(C<<1)+D+2)>>2
c, h=(A+(B<<1)+C+2)>>2
b, g, l=(Z+(A<<1)+B+2)>>2
a, f, k, p=(Q+(Z<<1)+A+2)>>2
e, j, o=(R+(Q<<1)+Z+2)>>2
i, n=(S+(R<<1)+Q+2)>>2
m=(T+(S<<1)+R+2)>>2
Этот режим 4 может быть выбран только тогда, когда могут использоваться эталонные пикселы А-D, Q-T и Z. В режиме 4, как показано на фиг.15B, значения, созданные 3-звенным фильтром, становятся пикселами прогнозирования, выровненными в нижнем правом направлении под углом 45° с целью создания сигналов прогнозирования.
В отношении режимов прогнозирования, за исключением режимов 0, 2 и 4, используется почти такая же структура, как та, которая описана выше. Более конкретно, для создания сигнала прогнозирования используется способ копирования эталонного пиксела, который может использоваться в направлении прогнозирования, или интерполированного значения, созданного из эталонного пиксела, в пикселы прогнозирования, размещаемые в направлении прогнозирования.
Прогнозирование блока интерполяции
На фиг.13A и 13B, когда прогнозируется блок (2) интерполяции, прогнозирование блока (4) экстраполяции завершено. По этой причине может быть выполнено прогнозирование, которое ссылается на пикселы блока (4) экстраполяции. Когда должен прогнозироваться блок (3) интерполяции, может быть выполнено прогнозирование, которое ссылается не только на пикселы блока (4) экстраполяции, но также и на пикселы блока (2) интерполяции. Когда должен прогнозироваться блок (1) экстраполяции, может быть выполнено прогнозирование, которое ссылается не только на пикселы блока (4) экстраполяции и блока (2) интерполяции, но также и на пикселы блока (3) интерполяции.
Фиг.14B, 14C и 14D показывают соотношения между блоками интерполяции (1), (2) и (3) и эталонными пикселами при прогнозировании 4×4 пиксела. Пикселы RA-RI являются эталонными пикселами, вновь добавленными к фиг.14A, а пикселы а-p - пикселами прогнозирования.
Процесс, осуществляемый устройством 171 однонаправленного прогнозирования при прогнозировании блока интерполяции.
Устройство 171 однонаправленного прогнозирования имеет в блоке экстраполяции всего 17 режимов направленного прогнозирования в отношении прогнозирования блока интерполяции и прогнозирования с обратной экстраполяцией, которое ссылается на эталонные пикселы в кодированном макроблоке, как показано на фиг.16. Эти 17 режимов, за исключением режима 2, имеют направления прогнозирования, смещенные относительно друг друга на 22,5°.
На фиг.17 показаны названия режимов прогнозирования 00-16 однонаправленного прогнозирования, выполняемого при прогнозировании блока интерполяции в устройстве 171 однонаправленного прогнозирования. Индексы режимов 00-16, выражающие режимы от 00 до 16, соответственно, добавляются к названиям. На фиг.17 к режиму прогнозирования при прогнозировании блока экстраполяции (прогнозирование растрового блока прогнозирования), показанном на фиг.10, добавляется режим обратного прогнозирования.
Более конкретно, режимы прогнозирования по вертикали, прогнозирования по горизонтали, прогнозирования DC, прогнозирования по диагонали-вниз-влево, прогнозирования по диагонали-вниз-вправо, прогнозирования по вертикали-вправо, прогнозирование по горизонтали-вниз, прогнозирования по вертикали-влево, и прогнозирования по горизонтали-вверх являются общими на фиг.10 и 17. На фиг.17, в дополнение к режимам, показанным на фиг.10, добавляются обратное прогнозирование по вертикали (режим 9), обратное прогнозирование по горизонтали (режим 10), прогнозирование по диагонали-вверх-вправо (режим 11), прогнозирование по диагонали-вверх-влево (режим 12), обратное прогнозирование по вертикали-влево (режим 13), обратное прогнозирование по горизонтали-вверх (режим 14), обратное прогнозирование по вертикали-вправо (режим 15) и обратное прогнозирование по горизонтали-вниз (режим 16).
Определяется, может ли режим прогнозирования быть выбран в зависимости от позиционного соотношения блока интерполяции и эталонных пикселов и присутствия/отсутствия эталонных пикселов. Например, в блоке (1) интерполяции эталонные пикселы размещаются во всех направлениях, то есть слева, справа, выше и ниже. По этой причине, как показано на фиг.18A, могут быть выбраны все режимы 0-16. В блоке (2) интерполяции, поскольку справа отсутствует эталонный пиксел, режим 10, режим 14 и режим 16 не могут быть выбраны, как показано на фиг.18B. В блоке (3) интерполяции, поскольку на нижней стороне отсутствует эталонный пиксел, режим 9, режим 13 и режим 15 не могут быть выбраны, как показано на фиг.18C.
Способ создания сигнала прогнозирования устройством 171 однонаправленного прогнозирования при прогнозировании в блоке интерполяции будет описан ниже. В устройстве 171 однонаправленного прогнозирования, когда выбрано прогнозирование DC в режиме 2, для создания сигнала прогнозирования вычисляется среднее пиксельное значение верхних, нижних, левых и правых ближних эталонных пикселов.
Более конкретно, в отношении блока (1) интерполяции сигналы прогнозирования вычисляются в соответствии со следующим уравнением:
[Уравнение 14]
a~p=ave (A, B, C, D, RA, RB, RC, RD,
Q, R, S, T, RE, RF, RG, RH)(14)
В отношении блока (2) интерполяции сигнал прогнозирования вычисляется согласно следующему уравнению:
[Уравнение 15]
a~p=ave (Q, R, S, T, E, F, G, H,
RA, RB, RC, RD)(15)
В отношении блока (3) интерполяции сигнал прогнозирования вычисляется согласно следующему уравнению:
[Уравнение 16]
a~p=ave (A, B, C, D, U, V, W, X,
RE, RF, RG, RH)(16)
В Уравнениях (14), (15), и (16), ave(.) означает среднее значение эталонных пикселов, заключенных в скобки.
Когда некоторые из эталонных пикселов, заключенных в скобки, не могут использоваться, для создания сигналов прогнозирования используется среднее пиксельное значение только пригодных для использования эталонных пиксел.
Когда выбран режим, отличный от режима 2, устройство 171 однонаправленного прогнозирования использует способ прогнозирования, который копирует эталонные пикселы в пикселы прогнозирования в направлениях прогнозирования, показанных на фиг.16. Описание вычисления пикселов прогнозирования в режимах 0-8 опущено, потому что прогнозирование выполняется под теми же самыми углами прогнозирования, что и в блоке экстраполяции.
В отношении режимов 9-16, кодированные блоки, расположенные в макроблоке, упоминаются в последовательности пикселов или в последовательности прогнозирования кодированного экстраполированного блока (4). Более конкретно, когда выбран режим 9 (обратное прогнозирование по вертикали), сигнал прогнозирования создается из ближайшего эталонного пиксела на нижней стороне. В отношении блока (1) интерполяции и блока (2) интерполяции, сигналы прогнозирования вычисляются согласно следующим уравнениям:
[Уравнение 17]
a, e, i, m=RA
b, f, j, n=RB
c, g, k, o=RC
d, h, l, p=RD(17)
На фиг.19A и 19B показаны способы создания сигналов прогнозирования для блока интерполяции (1) и блока интерполяции (2) в режиме 9. Для создания сигнала прогнозирования эталонные пикселы RA-RD непосредственно копируются в пикселы прогнозирования, расположенные в вертикальном направлении. В отношении блока (3) интерполяции режим 9 не может использоваться, поскольку эталонный пиксел отсутствует на нижней стороне.
Когда выбран режим 10 (обратное прогнозирование по горизонтали), сигнал прогнозирования создается из ближайшего эталонного пиксела на правой стороне. В отношении блока (1) интерполяции и блока (3) интерполяции сигналы прогнозирования вычисляются в соответствии со следующими уравнениями:
[Уравнение 18]
a, b, c, d=RE
e, f, g, h=RF
i, j, k, h=RG
m, n, o, p=RH(18)
На фиг.20A и 20B показаны способы создания сигналов прогнозирования для блока (1) интерполяции (1) и блока (3) интерполяции в режиме 10. Чтобы создать сигнал прогнозирования, эталонные пикселы RE-RH непосредственно копируются в пикселы прогнозирования, расположенные в горизонтальном направлении. В отношении блока (2) интерполяции режим 10 не может использоваться, поскольку на правой стороне эталонный пиксел отсутствует.
Далее, когда выбран режим 12 (прогнозирование по диагонали-сверху-влево), сигнал прогнозирования для блока (1) интерполяции вычисляется согласно следующим уравнениям:
[Уравнение 19]
d=(RE+(RF<<1)+RG+2)>>2
c, h=(RF+(RG<<1)+RH+2)>>2
b, g, l=(RG+(RH<<1)+RI+2)>>2
a, f, k, p=(RH+(RI<<1)+RD+2)>>2
e, j, o=(RI+(RD<<1)+RC+2)>>2
i, n=(RD+(RC<<1)+RB+2)>>2
m=(RC+(RB<<1)+RA+2)>>2(19)
В отношении блока (2) интерполяции сигнал прогнозирования вычисляется в соответствии со следующим уравнением:
[Уравнение 20]
d, c, h, b, g, l, a, f, k, p=RD
e, j, o=(RC+(RD<<1)+RD+2)>>2
i, n=(RB+(RC<<1)+RD+2)>>2
m=(RA+(RB<<1)+RC+2)>>2(20)
В отношении блока (3) интерполяции сигнал прогнозирования вычисляется в соответствии со следующим уравнением:
[Уравнение 21]
d=(RE+(RF <<1)+RG+2)>>2
c, h=(RF+(RG<<1)+RH+2)>>2
b, g, l=(RG+(RH<<1)+RH+2)>>2
a, f, k, p, e, j, o, m=RH(21)
На фиг.21A, 21B, и 21C показаны способы создания сигналов прогнозирования для блока (1) интерполяции, блока (2) интерполяции и блока (3) интерполяции, соответственно, в режиме 12. Значение, созданное 3-звенным фильтром, копируется на левую-верхнюю сторону под углом 45°, чтобы создать сигнал прогнозирования.
В отношении режимов прогнозирования (режимы 12-16), за исключением режимов 2, 9, и 11, в направлениях прогнозирования, показанных на фиг.18A, 18B, 18C, и 18D, используется способ прогнозирования, в соответствии с которым копируют сигнал прогнозирования, интерполированный из ближайшего пиксела, на который можно сделать ссылку. Когда в направлении прогнозирования отсутствует эталонный пиксел, может быть скопировано значение ближайшего эталонного пиксела, чтобы создать эталонный пиксел. В качестве альтернативы, интерполяцией множества эталонных пикселов могут быть созданы виртуальные эталонные пикселы, которые могут использоваться в прогнозировании.
Процесс, осуществляемый устройством 172 двунаправленного прогнозирования при прогнозировании блока интерполяции.
Устройство 172 двунаправленного прогнозирования одновременно использует два режима из 17 режимов прогнозирования (также содержащих прогнозирование DC) прогнозирования блока интерполяции, выполняемых устройством 171 однонаправленного прогнозирования при прогнозировании блока интерполяции, для выполнения прогнозирования, содержащего множество направленностей. Конкретный способ создания сигнала прогнозирования является тем же, что и описанный уравнением (10). Более конкретно, значение, полученное усреднением в блоке пикселов сигналов прогнозирования, полученных в двух выбранных режимах (режимы "U" и "V" в уравнении (10)), используется как сигнал прогнозирования пикселов прогнозирования.
На фиг.22 показан индекс режима, соответствующий названию режима прогнозирования, выполняемого при прогнозировании в блоке интерполяции в устройстве 172 двунаправленного прогнозирования. Как видно на фиг.22, существует режим прогнозирования, использующий два режима. Например, название и индекс режима для режима прогнозирования, когда используются прогнозирование по вертикали (режим 0) и обратное прогнозирование по горизонтали (режим 10), выражаются как "прогнозирование по вертикали/обратное-по горизонтали" и "режим 0010", соответственно. Когда номер каждого режима прогнозирования выражается однозначным числом, спереди числа добавляется 0, чтобы выразить число как двухзначное число. Режим 0 и режим 00 имеют одно и то же значение.
Таким образом, при двунаправленном прогнозировании блока интерполяции может выполняться не только простое прогнозирование интерполяции, при котором направления режимов прогнозирования противоположны друг другу, но также и прогнозирование интерполяции, которое выполняет копирование с небольшим изменением в направленности блока или комплексности направленности. Поэтому остаточные сигналы прогнозирования могут быть с успехом уменьшены.
Процедура кодирования изображения
Процедура работы кодера 100 изображения будет описана ниже со ссылкой на фиг.23. Когда входной сигнал 120 изображения одного кадра поступает на кодер 100 изображения (этап S101), кадр входного сигнала 120 изображения, который должен быть кодирован, делится на множество пиксельных блоков (макроблоков) делителем 101 кадров для создания сигнала 121 блочного изображения. Кодирование сигнала 121 блочного изображения начинается (этап S102). Сигнал 121 блочного изображения подается на устройство 102 прогнозирования.
В устройстве 102 прогнозирования на основе информации 143 переключения последовательности прогнозирования определяется, изменилась ли последовательность прогнозирования субблоков (этап S103). Если последовательность прогнозирования не изменилась (НЕТ на этапе S103), block_order_flag является FALSE (ложно), и переключатель 170 последовательности прогнозирования включает "растровое блочное прогнозирование", которое прогнозирует и кодирует субблоки в соответствии с последовательностью, выраженной Уравнением (3).
При растровом блочном прогнозировании с помощью информации 144 переключения числа режимов прогнозирования определяется, выполняется ли однонаправленное прогнозирование для субблоков (этап S104). В том случае, когда однонаправленное прогнозирование выполняется (ДА на этапе S104), прогнозирование выполняет устройство 171 однонаправленного прогнозирования (этап S106). Когда однонаправленное прогнозирование не выполняется (НЕТ на этапе S104), прогнозирование выполняет устройство 172 двунаправленного прогнозирования (этап S107).
С другой стороны, когда последовательность прогнозирования изменяется (ДА на этапе S103), block_order_flag имеет значение TRUE (истинно), и переключатель 170 последовательности прогнозирования включает "прогнозирование блока экстраполяции/интерполяции", которое прогнозирует и кодирует субблоки в соответствии с последовательностью, выраженной Уравнением (3).
При прогнозировании блока экстраполяции/интерполяции с помощью информации 144 о переключении числа режимов прогнозирования определяется, выполняется ли однонаправленное прогнозирование для субблоков (этап S105). В этом случае, когда однонаправленное прогнозирование выполняется (ДА на этапе S105), прогнозирование выполняет устройство 171 однонаправленного прогнозирования (этап S108). Когда однонаправленное прогнозирование не выполняется (НЕТ на этапе S105), прогнозирование выполняет устройство 172 двунаправленного прогнозирования (этап S109).
После завершения прогнозирования на этапе S106, S107, S108 или S109 (1) общая стоимость (1), (2), (3) или (4) в макроблоке вычисляется в соответствии с Уравнением (3) и Уравнением (4) (этап S111, S112, S113 или S114). Общие стоимости, вычисленные на этапах S111, S112, S113 и S114, сравниваются друг с другом для определения способа прогнозирования (этап S115). Используя способ прогнозирования, определенный, как описано выше, блок 104 ортогонального преобразования/квантования и энтропийный кодер 108 выполняют кодирование, чтобы вывести кодированные данные 146 (этап S116).
В это время обратное квантование и обратное ортогональное преобразование выполняются для информации 127 коэффициента преобразования квантования блоком 105 обратного квантования/обратного ортогонального преобразования, чтобы создать декодированный сигнал 128 остаточной ошибки прогнозирования. Декодированный сигнал 128 остаточной ошибки прогнозирования и сигнал 126 прогнозирования, поступившие от переключателя 103 режимов, складываются друг с другом в сумматоре 106 для создания сигнала 129 локального декодирования. Сигнал 129 локального декодирования сохраняется в запоминающем устройстве 107 эталонных изображений.
Определяется, закончено ли прогнозирующее кодирование одного кадра сигнала 120 входного изображения (этап S117). Если прогнозирующее кодирование закончено (ДА на этапе S117), вводится входной сигнал 120 изображения из следующего кадра, чтобы снова выполнить прогнозирующее кодирование. С другой стороны, если прогнозирующее кодирование одного кадра не заканчивается (НЕТ на этапе S117), операция возвращается к этапу S102 для выполнения прогнозирующего кодирования сигнала 121 блочного изображения следующего макроблока.
Процедура процессов прогнозирования на этапах S104 и S105 на фиг.23 будет описана ниже со ссылкой на фиг.24.
Когда сигнал 121 блочного изображения поступает на устройство 102 прогнозирования, субблок, выраженный blk=0, устанавливается в генераторе 113 сигнала прогнозирования (этап S201). Далее инициализируются режим прогнозирования и стоимость кодирования в переключателе 103 режимов и внутреннем переключателе 114 режимов (этап S202). Например, режим прогнозирования:index устанавливается на 0 и минимальная стоимость кодирования:min_cost устанавливается на бесконечную.
Генератор 113 сигнала прогнозирования генерирует сигнал 122 прогнозирования с помощью одного режима, который может быть выбран в субблоке, выраженном blk=0 (этап S203). Разность между сигналом 121 блочного изображения и сигналом 122 прогнозирования вычисляется для генерации сигнала 123 остаточной ошибки прогнозирования, и стоимость кодирования вычисляется в соответствии с Уравнением (1) или Уравнением (2) (этап S204).
Переключатель 103 режимов определяет, является ли вычисленное значение стоимости кодирования меньшим минимальной стоимости кодирования:min_cost (этап S205). Если стоимость кодирования меньше, чем минимальная стоимость кодирования (ДА на этапе S205), минимальная стоимость кодирования обновляется на вычисленное значение стоимости кодирования, и информация о режиме прогнозирования, полученная в это время, сохраняется как информация об индексе best_mode, представляющем оптимальный режим прогнозирования (этап S206). Если вычисленная стоимость больше, чем минимальная стоимость кодирования:min_cost (НЕТ на этапе S205), индекс режима:index увеличивается, и происходит определение, является ли увеличенный индекс большим, чем последний номер (MAX) режима (этап S207).
Когда индекс больше, чем MAX (ДА на этапе S207), информация 125 об оптимальном режиме прогнозирования и сигнал 126 остаточной ошибки прогнозирования подаются от переключателя 103 режимов на блок 104 ортогонального преобразования/квантования для выполнения ортогонального преобразования и квантования. Информация 127 о коэффициенте преобразования квантования, полученная блоком 104 ортогонального преобразования/квантования, энтропийно кодируется энтропийным кодером 108 вместе с информацией 141 об индексе режима прогнозирования (этап S208). С другой стороны, когда индекс меньше, чем MAX (НЕТ на этапе S207), операция возвращается к этапу S203 для создания сигнала 122 прогнозирования режима прогнозирования, указанного следующим индексом.
Когда выполняется кодирование в режиме best_mode, информация 163 коэффициента преобразования квантования, полученная внутренним блоком 115 ортогонального преобразования/квантования, подается на блок 116 внутреннего обратного квантования/обратного ортогонального преобразования для выполнения обратного квантования и обратного преобразования. Декодированный сигнал 164 остаточной ошибки прогнозирования, созданный внутренним блоком 116 обратного квантования/обратного ортогонального преобразования, прибавляется к сигналу 162 прогнозирования best_mode, введенному от внутреннего переключателя 114 режимов, внутренним сумматором 117. Внутренний сигнал 165 декодирования, созданный внутренним сумматором 117, сохраняется во внутреннем запоминающем устройстве 118 эталонного изображения 118 (этап S208).
Номер:blk блока кодирования получает приращение, определяется, является ли значение увеличенного blk большим, чем общее количество малых блоков: BLK_MAX (16 при прогнозировании 4×4 пиксела, и 4 при прогнозировании 8×8 пикселов) в макроблоке (этап S209). Если значение увеличенного blk больше, чем BLK_MAX (ДА на этапе S209), процесс прогнозирования в макроблоке закончен. С другой стороны, если увеличенный blk меньше, чем BLK_MAX (НЕТ на этапе S209), операция возвращается на этап S202 для выполнения процесса прогнозирования малого блока, указанного следующим blk.
Как описано выше, в соответствии с вариантом осуществления переключение последовательностей прогнозирования и переключение однонаправленного прогнозирования и двунаправленного прогнозирования (переключение числа режимов прогнозирования) выполняется адаптивно, в зависимости от свойств (направленность, комплексность и текстура) каждой области изображения. Поэтому эффективность прогнозирования улучшается, и, как следствие, улучшается эффективность кодирования.
В устройстве кодирования изображения, соответствующем варианту осуществления настоящего изобретения, могут быть доступны различные изменения.
(a) В варианте осуществления описывается внутрикадровое прогнозирование, связанное с прогнозированием 4×4 пиксела. Однако то же самое внутрикадровое прогнозирование может также быть выполнено при прогнозировании 8×8 пикселов или при прогнозировании 16×16 пикселов или для цветоразностного сигнала.
(b) Число режимов прогнозирования может быть уменьшено для уменьшения издержек арифметических операций. Интервалы направлений прогнозирования не ограничиваются 22,5°, и угловой интервал может быть сделан меньшим или большим.
(c) В варианте осуществления, режимы прогнозирования, за исключением режима 2 внутрикадрового прогнозирования используют направленное прогнозирование. Однако не только направленное прогнозирование, но также интерполирующее прогнозирование, такое как двумерное прогнозирование, двухлинейная интерполяция, интерполяция с кубической сверткой или ближайшая соседняя интерполяция, могут быть установлены как режим интерполяции.
(d) В варианте осуществления среднее пиксельное значение в двух режимах, подготовленное для режима двунаправленного прогнозирования, выбранного из множества режимов прогнозирования, устанавливается как значение прогнозирования. Вместо вычисления среднего пиксельного значения значение прогнозирования может быть вычислено с помощью взвешенного среднего значения, используя коэффициент взвешивания, такой как 1:3 или 1:4. В этом случае коэффициенты взвешивания режимов прогнозирования могут быть представлены в виде таблицы.
В качестве альтернативы пиксел прогнозирования может быть вычислен с использованием фильтра максимального значения, фильтра минимального значения, медианного фильтра и таблицы взвешивания, имеющей описанные здесь коэффициенты взвешивания в зависимости от угла направленного прогнозирования или числа использованных режимов прогнозирования. Для создания режима прогнозирования могут быть выбраны три или более режимов прогнозирования из множества режимов прогнозирования. В отношении количества режимов, выбранных из множества режимов прогнозирования и таблицы взвешивания, множества кандидатов могут храниться в блоках последовательностей, изображениях, слоях, макроблоках или пикселах и переключаться в этих блоках.
(d) В варианте осуществления переключение происходит в зависимости от того, изменяется ли последовательность прогнозирования субблоков в блоках макроблоков 16×16 пикселов. Переключение изменений в последовательности прогнозирования может быть выполнено в блоках с размерами 32×32 пикселов, 64×64 пиксела или 64×32 пиксела или кадра.
(e) Вариант осуществления описывает случай, в котором субблоки в макроблоке последовательно прогнозируются от верхнего левого блока до нижнего правого блока. Однако последовательность прогнозирования не ограничена этой последовательностью. Например, прогнозирование может последовательно выполняться от нижнего правого блока до верхнего левого блока или может выполняться по спирали от центра кадра. Прогнозирование может последовательно выполняться от верхнего правого блока к нижнему левому блоку или выполняться последовательно от периферийной части кадра к центральной части.
(f) В варианте осуществления только внутрикадровое прогнозирование описывается как режим прогнозирования. Однако может использоваться межкадровое прогнозирование, в соответствии с которым прогнозирование выполняется с использованием корреляции между кадрами. Когда из множества доступных режимов выбирается по меньшей мере один режим прогнозирования, может быть выбран любой из режимов прогнозирования способом внутрикадрового прогнозирования или режим прогнозирования способом межкадрового прогнозирования, или могут быть выбраны оба режима прогнозирования. Когда выбираются и режим прогнозирования с помощью внутрикадрового прогнозирования, и режим прогнозирования с помощью межкадрового прогнозирования, осуществляется трехмерное прогнозирование, которое использует пространственную корреляцию и временную корреляцию между эталонными пикселами и пикселами прогнозирования.
(g) Внутрикадровое прогнозирование, используемое в варианте осуществления, может быть выполнено в части межкадрового кодирования. В этом случае нет необходимости выполнять в блоках макроблоков переключение между внутрикадровым прогнозированием и межкадровым прогнозированием. Переключение может выполняться в блоках пиксельных блоков 8×8 или пиксельных блоков 8×4. Тот же самый процесс может быть применен к пиксельной области, имеющей произвольную форму и созданной способом деления области.
(h) В варианте осуществления выполняется переключение на основе издержек кодирования, вычисленных из Уравнений (1) и (2), независимо от того, изменяется ли последовательность прогнозирования и выполняется ли однонаправленное прогнозирование или двунаправленное прогнозирование. В качестве стоимости кодирования может использоваться не только значение стоимости кодирования, вычисленное по Уравнениям (1) и (2), но также и информация активности, такая как дисперсия, стандартное отклонение, распределение частот или коэффициент корреляции, вычисленная для целевого блока или соседнего блока. На основе информации активности могут быть выполнены переключение изменений в последовательности прогнозирования или переключение между однонаправленным прогнозированием и двунаправленным прогнозированием.
Например, коэффициент корреляции между левым эталонным пикселом и верхним эталонным пикселом вычисляется для заранее определенных пикселов. Когда коэффициент корреляции больше, например, некоторого порогового значения, принимается решение, что корреляция между пикселом прогнозирования и левым и верхним эталонными пикселами высока и нет необходимости изменять последовательность прогнозирования. Например, вычисляется дисперсия в целевом блоке. Когда дисперсия больше, чем, например, некоторое пороговое значение, принимается решение, что текстура в блоке является комплексной, и выполняется двунаправленное прогнозирование. С другой стороны, когда дисперсия меньше, например, порогового значения, принимается решение, что текстура в блоке является монотонной, и выполняется однонаправленное прогнозирование.
(j) В блоке 104 ортогонального преобразования/квантования и в блоке 105 обратного квантования/обратного ортогонального преобразования, показанных на фиг.3, процесс не должен использоваться для всех сигналов остаточной ошибки прогнозирования. Например, некоторые из сигналов остаточной ошибки прогнозирования могут быть кодированы энтропийным кодером 108. В качестве альтернативы, процессы квантования и обратного квантования могут быть пропущены и процессы ортогонального преобразования и обратного ортогонального преобразования могут быть пропущены.
Первый пример построения синтаксиса
Общий обзор структуры синтаксиса, используемого в кодере 100 изображения, будет приведен ниже со ссылкой на фиг.25.
Синтаксис состоит из трех частей, то есть синтаксиса 201 высокого уровня, синтаксиса 204 уровня слоев, и синтаксиса 207 макроблочного уровня. В синтаксисе 201 высокого уровня заполняется информация синтаксиса высокого уровня, которая выше слоев. В синтаксисе 204 уровня слоев необходимая информация явным образом записывается в блоки слоев. В синтаксисе 207 макроуровня явным образом записывается значение изменения параметра квантования, информации режима и т.п., требуемого для каждого макроблока.
Эти три части точным образом составлены с использованием множества синтаксисов. Более определенно, синтаксис 201 высокого уровня включает в себя синтаксис уровня последовательностей и уровня изображения, то есть синтаксис 202 набора параметра последовательности и синтаксис 203 набора параметра изображения. Синтаксис 204 уровня слоев включает в себя синтаксис 205 заголовков слоев и синтаксис 206 данных слоев. Синтаксис 207 макроблочного уровня включает в себя синтаксис 208 макроблочного уровня и синтаксис 209 прогнозирования макроблоков.
В варианте осуществления специально требуемая информация синтаксиса состоит из синтаксиса 208 макроблочного уровня и синтаксиса 209 прогнозирования макроблоков. Синтаксис 208 макроблочного уровня и синтаксис 209 прогнозирования макроблоков описаны ниже подробно со ссылкой на фиг.26 и 27.
Флажок block_order_flag, указанный в синтаксисе макроблочного уровня на фиг.26, означает, выполняется ли переключение последовательностей прогнозирования посредством макроблока. Более конкретно, значение FALSE флажка:block_order_flag означает, что переключение последовательностей прогнозирования не выполняется макроблоком, тогда как TRUE означает, что переключение последовательностей прогнозирования выполняется макроблоком.
В синтаксисе прогнозирования макроблока, показанном на фиг.27, информация о режиме прогнозирования каждого субблока (пиксельные блоки 4×4 или пиксельные блоки 8×8) в макроблоке записана явным образом. В отношении однонаправленного прогнозирования информация о режиме прогнозирования, указывающая режим, используемый во множестве режимов прогнозирования, выражается посредством intra4×4(8×8)_pred_mode_10_org или intra4×4(8×8)_pred_mode_ll_org. В отношении двунаправленного прогнозирования информация о режиме прогнозирования содержит два синтаксиса. В этом случае режим прогнозирования, имеющий меньший индекс режима (список 0), когда режимы прогнозирования двух типов выбираются из множества режимов прогнозирования, выражается как intra4×4(8×8)_pred_mode_10_org, и режим прогнозирования, имеющий больший индекс режима (список 1), выражается как intra4×4(8×8)_pred_mode_ll_org. Режим прогнозирования, имеющий больший индекс режима (список 0) может быть выражен как intra4×4(8×8)_pred_mode_10_org, а режим прогнозирования, имеющий меньший индекс режима (список 1), может быть выражен как intra4×4(8×8)_pred_mode_ll_org.
Конфигурация синтаксиса прогнозирования макроблока, полученного при выбранном прогнозировании 4x4 пиксела, будет описана ниже со ссылкой на фиг.27.
На фиг.27 blkConv[block_order_flag][luma4×4BlkIdx] имеет таблицу преобразования, которая выполняет преобразование последовательности прогнозирования, как показано на фиг.8, и выводит индекс блока, который должен быть кодирован.
На фиг.27 intra4×4_pred_mode_10[block_order_flag][order] представляет собой данные индекса, полученные путем преобразования intra4×4_pred_mode_10_org[block_order_flag][order] в соответствии с modeConv[block_order_flag][intra4×4_pred_mode_10_org].
На фиг.27 intra4×4_bi_pred_flag является флажком, который выполняет переключение независимо от того, выполняется ли двунаправленное прогнозирование в пиксельных блоках 4×4. Более конкретно, FALSE флажка intra4×4_bi_pred_flag означает, что для пиксельных блоков 4×4 выполняется однонаправленное прогнозирование, а TRUE означает, что для пиксельных блоков 4×4 выполняется двунаправленное прогнозирование.
На фиг.27 intra4×4_pred_mode_ll означает данные индекса, полученные преобразованием intra4×4_pred_mode_ll_org[block_order_flag][order] в соответствии с modeConv[block_order_flag][intra4×4_pred_mode_ll_org]. Данные intra4×4_pred_mode_ll кодируются, когда флажок intra4×4_bi_pred_flag имеет значение TRUE.
Подробности синтаксиса будут описаны ниже.
Преобразование выполняется в luma4×4Blk в соответствии с таблицей, показанной в BlkConv[block_order_flag][luma4×4BlkIdx], каждый block_order_flag должен вычислить блочный индекс:order, указывающий субблок, который должен быть кодирован (фиг.8).
Когда пиксельные блоки 4×4, обозначенные блочным индексом:order должны быть прогнозированы, как показано на фиг.28, intra4×4_pred_mode_10_org[block_order_flag][order] преобразуется в intra4×4_pred_mode_10 [order]. Это процесс, который выполняется, поскольку пригодные для использования режимы прогнозирования изменяются в зависимости от block_order_flag и позиций пиксельных блоков 4×4 в макроблоке. Более конкретно, как показано на фиг.29, когда block_order_flag равен 0 (FALSE), intra4×4_pred_mode_10_org непосредственно присваивается intra4×4_pred_mode_10. В это время intra4×4_pred_mode_10 представляет собой данные, представляющие конкретный режим прогнозирования, используемый при прогнозировании пиксельных блоков 4×4 в режимах прогнозирования девяти типов однонаправленного прогнозирования.
С другой стороны, когда block_order_flag равен 1 (TRUE: прогнозирование блока экстраполяции/интерполяции), таблицы переключаются в зависимости от позиций пиксельных блоков 4×4 в макроблоке, который должен быть кодирован. На фиг.30 показаны режимы прогнозирования, которые могут использоваться соответственно субблокам (блоки интерполяции (1), (2) и (3) и блок экстраполяции (4)), показанным на фиг.13B, и названия режимов прогнозирования, на которые можно ссылаться, когда левый, верхний, правый верхний и левый верхний макроблоки соседствуют с макроблоком, который должен быть кодирован.
Как видно из фиг.30, блок (1) интерполяции может использовать все 17 режимов, а блоки интерполяции (2) и (3) не могут использовать некоторых из режимов. По этой причине, как показано на фиг.28, intra4×4_pred_mode_10_org[block_order_flag][order] преобразуется в intra4×4_pred_mode_10 с помощью режима Conv[][], чтобы заранее удалить непригодный режим прогнозирования так, чтобы улучшить эффективность энтропийного кодирования (описано позже). Как конкретный пример преобразования, когда режимом прогнозирования блока (2) интерполяции является режим 15 (прогнозирование обратно-по вертикали-вправо), intra4×4_pred_mode_10 присваивается "13". Когда режимом прогнозирования блока (3) интерполяции (3) является режим 14 (прогнозирование обратно-по горизонтали-вверх), intra4×4_pred_mode_10 присваивается "12".
Когда должен кодироваться intra4×4_pred_mode_10, поскольку числа состояний режимов, пригодных для использования, изменяются в зависимости от block_order_flag и позиций блоков, энтропийное кодирование (кодирование Хаффмана, кодирование Голомба или арифметическое кодирование) выполняется в зависимости от позиций пиксельных блоков 4×4, которые должны быть кодированы. Число состояний, которые могут быть приняты конкретными символами, показано на фиг.30. Сказанное выше является описанием синтаксиса, связанного с кодированием intra4×4_pred_mode_10_org.
Когда intra4×4_bi_pred_flag имеет значение TRUE, intra4×4_pred_mode_ll_org кодируется дополнительно. В отношении кодирования intra4×4_pred_mode_ll_org выполняется процесс, который является почти таким же, как тот, который выполняется в случае intra4×4_pred_mode_10_org.
Сначала intra4×4_pred_mode_ll_org преобразуется в intra4×4_pred_mode_ll в соответствии с режимом Conv[][] для энтропийного кодирования intra4×4_pred_mode_ll кодом переменной длины в зависимости от bock_order_flag и последовательности. Поскольку intra4×4_pred_mode_ll и intra4×4_pred_mode_10 не могут иметь один и тот же режим прогнозирования, число, полученное вычитанием 1 из числа состояний intra4×4_pred_mode_10, является числом состояний символов, которые могут приниматься intra4×4_pred_mode_ll. На основе числа состояний выполняется энтропийное кодирование.
В качестве другого примера, intra4×4(8×8)_pred_mode_10_org и intra4×4(8×8)_pred_mode_ll_org могут быть энтропийно кодированными без преобразования, с использованием режима Conv[][]. Приведенное выше представляет собой подробности синтаксисов.
В этом случае block_order_flag и intra4×4_bi pred_flag могут быть кодированы, мультиплексированы в потоки кодирования и затем переданы. С другой стороны, без выполнения мультиплексирования и передачи информация block_order_flag и intra4×4_bi_pred_flag может быть выражена информацией активности, вычисленной из кодированных блоков и пикселов. В этом случае, также на стороне декодирования, используя ту же самую логику, что и на стороне кодирования, показывается та же самая информация, что и на стороне кодирования, поскольку информация block_order_flag и intra4×4_bi_pred_flag является той же самой информацией.
При прогнозировании 8x8 пикселов, как показано на фиг.27, используется тот же самый синтаксис, что и при прогнозировании 4×4 пиксела. По этой причине описание прогнозирования 8×8 пикселов будет опущено.
В качестве другого примера, intra4×4_pred_mode_10_org может быть кодирован с использованием корреляции с intra4×4_pred_mode_10_org в соседнем блоке. Конкретная конфигурация синтаксиса показана на фиг.31. Конфигурация синтаксиса макроблочного прогнозирования, показанного на фиг.27, заменяется конфигурацией, показанной на фиг.31.
На фиг.31 prev_intra4×4_pred_mode_10_flag[block_order_flag][order] является флажком, представляющим, является ли режим программирования ref_pred_mode_org списка 0, вычисленный из эталонного блока (описан ниже), равным режиму прогнозирования
intra4×4_pred_mode_10_org[block_order_flag][order] списка 0 блока.
На фиг.32 показан способ получения prev_intra4×4_pred_mode_10_flag[block_order_flag][order]. В этом случае, ref_blkA_mode_10 на фиг.32 означает режим прогнозирования списка 0 самого ближайшего кодированного блока blkA, расположенного слева от блока blkA, и ref_blkB_mode_10 означает режим прогнозирования списка 0 самого ближайшего кодированного блока, расположенного на верхней стороне блока blkB. Позиции ref_blkA_mode_10 и ref_blkB_mode_10 изменяются в зависимости от block_order_flag. Более конкретно позиции показаны на фиг.33, 44A, 44B, 44C, и 44D. Когда block_order_flag имеет значение FALSE, blkA и blkB являются левым и верхним кодированными блоками, соседствующими с блоком (фиг.33). С другой стороны, когда флажок равен TRUE, блоки blkA и blkB являются левым и верхним кодированными блоками, самыми ближними к блоку blkA и blkB (фиг.44A, 44B, 44C, и 44D).
Когда prev_intra4×4_pred_mode_10_flag[block_order_flag][order] истинно (TRUE), информация intra4×4_pred_mode_10_org может быть выражена 1 битом, используя корреляцию с соседним блоком. По этой причине эффективность кодирования улучшается.
С другой стороны, когда
prev_intra4×4_pred_mode_10_flag[block_order_flag][order] ложно (FALSE), в качестве режима прогнозирования из списка 0, за исключением prev_intra4×4_pred_mode_10_flag[block_order_flag][order], показывается rem_intra4×4_pred_mode_10[block_order_flag]
[order]. Это данные, выражающие конкретный режим прогнозирования из числа режимов прогнозирования, за исключением ref_pred_mode_org из rem_intra4×4_pred_mode_10_[block_order_flag][order]. Данные являются энтропийно кодированными на основе числа состояний, за исключением ref_pred_mode_org, из символов, которые могут браться в режиме прогнозирования списка 0.
При прогнозировании 8×8 пикселов, как показано на фиг.31, выполняется тот же самый синтаксис, который использовался при пиксельном прогнозировании 4×4. По этой причине описание прогнозирования 8×8 пикселов будет опущено.
Структура синтаксиса, как описано выше, выполнена с возможностью повышения эффективности кодирования даже при кодировании в режиме прогнозирования.
Второй пример структуры синтаксиса
На фиг.34 показан другой пример структуры синтаксиса, используемого в кодере 100 изображения. Необходимой информацией синтаксиса является синтаксис 208 макроблочного уровня на фиг.25. В этом случае конфигурация синтаксиса макроблочного уровня, показанная на фиг.26, заменяется конфигурацией, показанной на фиг.34. Синтаксисы будут описаны ниже.
Block_order_flag, который показан в синтаксисе макроблочного уровня на фиг.34, является флажком, обозначающим, выполнено ли макроблоком переключение последовательностей прогнозирования. Когда block_order_flag соответствует TRUE, последовательности прогнозирования переключаются для выполнения прогнозирования блока экстраполяции/интерполяции. С другой стороны, когда block_order_flag соответствует FALSE, блочное прогнозирование выполняется без переключения последовательности прогнозирования. Конкретный способ описания последовательности прогнозирования, когда block_order_flag соответствует TRUE, показывается в block_order_in_mb_mode. Block_order_in_mb_mode показывает последовательность прогнозирования следующим образом.
Когда режим прогнозирования является режимом 0, последовательность прогнозирования блока экстраполяции/интерполяции задается прогнозированием, описанным в первом варианте осуществления. Когда режим прогнозирования является режимом 1, комбинация последовательностей прогнозирования преобразуется в индекс, и последовательность прогнозирования выражается информацией об индексе. Когда последовательность прогнозирования должна быть определена для четырех блоков, одна из 23 комбинаций последовательностей прогнозирования, за исключением растрового блочного прогнозирования, из 24 комбинаций (=4P4) определяется для каждого макроблока перестановкой. Более конкретно, block_order_idx на фиг.34 дает индекс комбинации блоков. Когда режим прогнозирования равен режиму 2, номер последовательности показывается непосредственно по каждому блоку. В отношении пиксельных блоков 4×4 номера последовательностей показываются на 16 block_order4×4 [BLK]. В отношении пиксельных блоков 8×8 номера последовательностей показываются на 4 block_order8×8 [BLK].
Описанная выше структура синтаксиса может иметь следующие модификации.
(a) Когда block_order_in_mb_mode равен 1, может быть показан только один блок, который кодируется первым.
(b) Так как число индексов последовательностей прогнозирования при прогнозировании 4×4 пиксел огромно, последовательность прогнозирования 4×4 пиксел, показанная в блоках пиксельных блоков 8×8, может быть повторена четыре раза, чтобы уменьшить информацию об индексах.
(c) Когда block_prder_in_mb_mode равен 2,
block_order4×4[BLK] может быть показан с помощью внешней таблицы, или разность между block_order4×4[BLK] и смежным block_order4×4[] может быть выражена переменной длиной кода.
(d) Поскольку последняя block_order4×4[15] является одной остающейся последовательностью прогнозирования, block_order4×4 [15] показывать нет необходимости. То же самое относится к пиксельным блокам 8×8. При прогнозировании 4×4 пиксела последовательность прогнозирования из 4×4 пиксельных блоков, показанная в блоках пиксельных блоков 8×8, может быть повторена четыре раза для уменьшения объема информации для block_order4×4.
(e) Значения информации, такие как block_order_in_mb_mode, block_order_idx, block_order4×4, и block_order8×8 могут адаптивно устанавливаться в блоки последовательностей, изображений, слоев или макроблоков.
Третий пример структуры синтаксиса
Фиг.35, 36, 37, 38, и 39 показывают еще один пример структуры синтаксиса, использованной в кодере 100 изображения. Информация о синтаксисе, требующаяся в этом примере, содержит синтаксис 702 набора параметра последовательности, синтаксис 703 набора параметров изображения, синтаксис 705 заголовка слоя и синтаксис 708 макроблочного уровня на фиг.25. Синтаксисы, показанные на фиг.35, 36, 37, 38 и 39, добавлены к структуре синтаксиса первого примера. Синтаксисы будут описаны ниже.
Block_order_in_seq_flag, показанный в синтаксисе набора параметров последовательности на фиг.35, является флажком, обозначающим, сделано ли возможным переключение последовательностей прогнозирования по порядку. Когда block_order_in_seq_flag соответствует TRUE, последовательности прогнозирования могут переключаться по порядку. С другой стороны, когда block_order_in_seq_flag соответствует FALSE, последовательности прогнозирования не могут переключаться по порядку.
Block_order_in_pic_flag, показанный в синтаксисе набора параметров изображения на фиг.36, является флажком, обозначающим, сделано ли возможным переключение последовательностей прогнозирования в изображении. Когда block_order_in_pic_flag соответствует TRUE, последовательности прогнозирования в изображении могут переключаться. С другой стороны, когда block_order_in_pic_flag соответствует FALSE, последовательности прогнозирования в изображении не могут переключаться.
Block_order_in_slice_flag, показанный в синтаксисе заголовка слоя на фиг.37, является флажком, обозначающим, сделано ли возможным переключение последовательностей прогнозирования в слое. Когда block_order_in_slice_flag соответствует TRUE, последовательности прогнозирования в слое могут переключаться. С другой стороны, когда block_order_in_slice_flag соответствует FALSE, последовательности прогнозирования в слое не могут переключаться.
Block_order_flag, показанный в синтаксисе макроблочного уровня на фиг.38, является флажком, обозначающим, сделано ли возможным переключение последовательностей прогнозирования в макроблоке. Когда block_order_flag соответствует TRUE, последовательности прогнозирования переключаются для выполнения прогнозирования блока экстраполяции/интерполяции. С другой стороны, когда block_order_flag соответствует FALSE, последовательности прогнозирования не переключаются для выполнения прогнозирования блока растрового прогнозирования. Block_order_flag эффективен, когда block_order_in_slice_flag соответствует TRUE, и может использоваться, только когда типом прогнозирования макроблока является внутрикадровое прогнозирование.
Intra_bi_pred_in_seq_flag, показанный в синтаксисе набора параметров последовательности на фиг.35, является флажком, обозначающим, может ли двунаправленное прогнозирование быть выполнено по порядку. Когда intra_bi_pred_in_seq_flag соответствует TRUE, двунаправленное прогнозирование может быть выполнено по порядку. С другой стороны, когда intra_bi_pred_in_seq_flag соответствует FALSE, двунаправленное прогнозирование не может быть выполнено по порядку.
Intra_bi_pred in_pic_flag, показанный в синтаксисе набора параметров изображения на фиг.36, является флажком, обозначающим, может ли быть выполнено в изображении двунаправленное прогнозирование. Когда intra_bi_pred_in_pic_flag соответствует TRUE, двунаправленное прогнозирование в изображении может быть выполнено. С другой стороны, когда intra_bi_pred_in_pic_flag соответствует FALSE, двунаправленное прогнозирование в изображении не может быть выполнено.
Intra_bi_pred_in_slice_flag, показанный в синтаксисе заголовка слоя на фиг.37, является флажком, обозначающим, может ли быть выполнено двунаправленное прогнозирование в слое. Когда intra_bi_pred_in_slice_flag соответствует TRUE, двунаправленное прогнозирование в слое может быть выполнено. С другой стороны, когда intra_bi_pred_in_slice_flag соответствует FALSE, двунаправленное прогнозирование в слое не может быть выполнено.
Intra_bi_pred_in_mb_flag, показанный в синтаксисе макроблочного уровня на фиг.38, является флажком, обозначающим, может ли двунаправленное прогнозирование быть выполнено в макроблоке. Когда intra_bi_pred_in_mb_flag соответствует TRUE, двунаправленное прогнозирование в макроблоке может быть выполнено. С другой стороны, когда intra_bi_pred_in_mb_flag соответствует FALSE, двунаправленное прогнозирование в макроблоке не может быть выполнено.
Intra4×4_bi_pred_flag, показанный в синтаксисе макроблочного прогнозирования на фиг.39, является флажком, обозначающим, может ли двунаправленное прогнозирование быть выполнено в блоке прогнозирования. Когда intra4×4_bi_pred_flag соответствует TRUE, в блоке прогнозирования выполняется двунаправленное прогнозирование. С другой стороны, когда intra4×4_bi_pred_flag соответствует FALSE, двунаправленное прогнозирование не выполняется в макроблоке. Intra4×4_bi_pred_flag эффективен только тогда, когда intra_bi_pred_in_mb_flag соответствует TRUE, и может использоваться, только когда типом прогнозирования макроблока является внутрикадровое прогнозирование. Начальное значение синтаксиса устанавливается как FALSE.
Устройство декодирования изображения
На устройство декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, показанным на фиг.40, поступает поток 320 битов кодирования 320, переданный от устройства кодирования изображения (не показано) (например, от устройства кодирования изображения, показанного на фиг.1) и переданный системой передачи или системой запоминающего устройства. Поток 320 битов кодирования временно запоминается во входном буфере 901, разделенным обратным мультиплексором 302 на блоки кадров на основе синтаксиса, и затем поступает на декодер 304. Декодер 304 имеет энтропийный декодер 305, блок 306 обратного квантования/обратного ортогонального преобразования, сумматор 307, запоминающее устройство 308 эталонного изображения и генератор 309 сигнала прогнозирования.
В декодере 304 поток битов кодирования, разделенный обратным мультиплексором 302, поступает на энтропийный декодер 303. В энтропийном декодере 303 в соответствии со структурой синтаксиса, показанной на фиг.25, строки кода энтропийно декодируются относительно синтаксиса высокого уровня, синтаксиса уровня слоев и синтаксиса макроблочного уровня потока битов кодирования, соответственно.
Таким образом, из энтропийного декодера 303 в дополнение к информации 321 о коэффициенте преобразования квантования и информации о параметре квантования выводится информация (информация об индексе режима прогнозирования, информация о переключении размера блоков, информация о переключении последовательностей прогнозирования и информация о переключении числа режимов прогнозирования, далее называемые в общем информацией о режиме прогнозирования), такая как информация 331 об индексе режима прогнозирования, информация 332 о переключении размера блоков, информация 333 о переключении последовательностей прогнозирования и информация 334 о переключении числа режимов прогнозирования, которые связаны с режимами прогнозирования. Информация 321 о коэффициенте преобразования квантования получена ортогональным преобразованием и квантованием сигнала остаточной ошибки прогнозирования. Информация о параметре квантования содержит информацию о ширине квантования (размер шага квантования) и матрице квантования.
Информация 321 о коэффициенте преобразования квантования обратно квантуется блоком 306 обратного квантования/обратного ортогонального преобразования в соответствии с декодированным параметром квантования и дополнительно подвергается обратному ортогональному преобразованию типа IDCT. В данном случае описано обратное ортогональное преобразование. Однако когда вейвлет-преобразование и т.п. выполняется на стороне кодирования, блок 306 обратного квантования/обратного ортогонального преобразования может выполнять соответствующее обратное квантование/обратное вейвлет-преобразование и т.п.
Сигнал 332 остаточной ошибки прогнозирования выводится из блока 306 обратного квантования/обратного ортогонального преобразования и поступает в сумматор 307. В сумматоре 307 сигнал 323 прогнозирования, выведенный из генератора 309 сигнала прогнозирования, и сигнал 322 остаточной ошибки прогнозирования складываются друг с другом для создания сигнала 324 декодированного изображения. Сигнал 324 декодированного изображения подается в запоминающее устройство 308 эталонного изображения, соединенное с выходным буфером 311, и выводится из выходного буфера 311 с временными характеристиками управления, выполняемого контроллером 310 декодирования.
С другой стороны, информация 331 об индексе режима прогнозирования, информация 332 о переключении размера блока, информация 333 о переключении последовательности прогнозирования и информация 334 о переключении числа режимов прогнозирования, декодированная энтропийным декодером 305, поступает на генератор 309 сигнала прогнозирования. На генератор 309 сигнала прогнозирования дополнительно поступает декодированный сигнал 325 эталонного изображения от запоминающего устройства 308 эталонного изображения. Генератор 309 сигнала прогнозирования создает сигнал 323 прогнозирования со ссылкой на сигнал 325 эталонного изображения на основе информации 331 об индексе режима прогнозирования, информации о переключении размера блока, информации 333 о переключении последовательности прогнозирования и информации 334 о переключении числа режимов прогнозирования. Контроллер 310 декодирования выполняет управление всем процессом декодирования декодера 304, например, управление входным буфером 301 и выходным буфером 311, управление синхронизацией декодирования и т.п.
Генератор 309 сигнала прогнозирования
Генератор 309 сигнала прогнозирования будет описан ниже со ссылкой на фиг.41. Генератор 309 сигнала прогнозирования, показанный на фиг.41, является в основном таким же, как генератор 113 сигнала прогнозирования в устройстве кодирования изображения, описанном выше. На фиг.41 переключатель 370 переключает последовательности прогнозирования субблоков в макроблоке в сигнал 325 эталонного изображения, взятый из запоминающего устройства 308 эталонного изображения на основе информации 333 переключения последовательности прогнозирования. Сигнал изображения, последовательность прогнозирования которого переключается переключателем 370 последовательности прогнозирования, поступает на устройство 371 однонаправленного прогнозирования и на устройство 372 двунаправленного прогнозирования.
Устройство 371 однонаправленного прогнозирования выбирает один режим прогнозирования из множества подготовленных режимов прогнозирования на основе информации 331 об индексе режима прогнозирования и создает сигнал прогнозирования со ссылкой на сигнал 325 эталонного изображения в соответствии с выбранным режимом прогнозирования и информацией 332 о переключении блочного размера. Устройство 372 двунаправленного прогнозирования выбирает два режима прогнозирования из множества подготовленных режимов прогнозирования на основе информации 331 об индексе режима прогнозирования и создает сигнал прогнозирования со ссылкой на сигнал 325 эталонного изображения, соответствующий выбранным режимам прогнозирования и информации 332 о переключении размера блока. Сигналы прогнозирования, выведенные из устройства 371 однонаправленного прогнозирования и устройства 372 двунаправленного прогнозирования, поступают на переключатель 373 числа режимов прогнозирования. В этом случае режимы прогнозирования регулируют способ ссылки на декодированные пикселы, когда создается сигнал прогнозирования субблока.
Переключатель 373 числа режимов прогнозирования управляется в соответствии с информацией 334 о переключении числа режимов прогнозирования для выбора одного из сигнала прогнозирования, созданного устройством 371 однонаправленного прогнозирования, и сигнала прогнозирования, созданного устройством 372 двунаправленного прогнозирования, для вывода выбранного сигнала 323 прогнозирования.
Переключатель 370 последовательности прогнозирования управляется информацией 333 о переключении последовательности прогнозирования и переключает последовательности прогнозирования субблоков путем преобразования индекса:blk, служащего в качестве ссылки, в значение:block_order_flag (описано ниже), выражающее информацию 333 о переключении последовательности прогнозирования. В последовательности:idx субблоков индекс:order (выражающий последовательность прогнозирования) субблока при реальном кодировании является таким, как он выражен в уравнении (3). Таблица преобразования для преобразования blockConv[][] является такой, как показано на фиг.8.
Когда флажок:block_order_flag равен 0 (FALSE), индекс:order субблока при фактическом прогнозирующем кодировании является индексом:idx непосредственно субблока, который должен кодироваться, и прогнозирование блока и последовательность прогнозирования не изменяются (такое прогнозирование с помощью последовательности прогнозирования далее называется последовательным прогнозированием). На фиг.6B и 7B показаны последовательности прогнозирования, полученные последовательными прогнозированиями, показанными на фиг.6A и 7A, соответственно.
С другой стороны, когда флажок:block_order_flag равен 1 (TRUE), индекс:order субблока при реальном прогнозирующем кодировании показывает последовательность прогнозирования, в которой диагональный блок четырех субблоков сначала прогнозируется посредством экстраполяции, а три остальные блока прогнозируются в соответствии с экстраполирующим или интерполирующим прогнозированием. Прогнозирование, выполненное в последовательности прогнозирования, далее называется прогнозированием экстраполяции/интерполяции. На фиг.6C и 7C показаны изменения в последовательности прогнозирования в соответствии с прогнозированиями экстраполяции/интерполяции на фиг.6A и 7A, соответственно.
Как описано выше, субблоки, последовательности прогнозирования которых переключаются переключателем 370 последовательности прогнозирования, поступают на устройство 371 однонаправленного прогнозирования или на устройство 272 двунаправленного прогнозирования для создания сигналов прогнозирования, соответствующих субблокам. Переключатель 373 числа режимов прогнозирования выводит сигнал прогнозирования, полученный устройством 371 однонаправленного прогнозирования, когда информация 334 о переключении числа режимов прогнозирования указывает число "1" режимов прогнозирования, и выводит сигнал прогнозирования, полученный устройством 372 двунаправленного прогнозирования, когда информация 334 о переключении режимов прогнозирования указывает число "2" режимов прогнозирования. Сигнал прогнозирования, выведенный от переключателя 373 числа режимов прогнозирования, извлекается как выходной сигнал 323 генератора 309 сигнала прогнозирования.
Переключатель 373 числа режимов прогнозирования управляется в соответствии с информацией 334 переключения числа режимов прогнозирования, заданной в единицах блоков прогнозирования (4×4 пиксельных блока или 8×8 пиксельных блоков), чтобы вывести сигнал 223 прогнозирования. Более конкретно, в случае прогнозирования 4×4 пиксела, intra4×4_bi_pred_flag описывается в единицах пиксельных блоков 4×4.
Более конкретно, переключатель 373 числа режимов прогнозирования включает сигнал прогнозирования, полученный устройством 371 однонаправленного прогнозирования, когда флажок:intra4×4_bi_pred_flag, служащий в качестве информации 334 о переключении числа режимов прогнозирования, соответствует FALSE, и включает сигнал прогнозирования, полученный устройством 372 двунаправленного прогнозирования, когда intra_4×4_bi_pred_flag соответствует TRUE.
Поскольку конкретные процессы устройства 371 однонаправленного прогнозирования устройства 372 двунаправленного прогнозирования являются теми же самыми, что и в устройстве 171 однонаправленного прогнозирования и устройстве 172 двунаправленного прогнозирования в устройстве кодирования изображения, их описания будут опущены.
Структура синтаксиса в основном такая, как показано на фиг.19. Однако конфигурация синтаксиса макроблочного прогнозирования, используемая, когда включается прогнозирование 4x4 пиксела, будет описана ниже со ссылкой на фиг.27.
BlkConv[block_order_flag][luma4×4BlkIDx] на фиг.27 имеет таблицу преобразования, которая преобразует последовательность прогнозирования, как показано на фиг.8, и выводит индекс блока, который должен быть декодирован. Intra4×4_pred_mode_10[block_order_flag][order] является данными декодированного индекса.
Intra4×4_bi_pred_flag на фиг.27 является флажком, который осуществляет переключение между состоянием, в котором выполняется двунаправленное прогнозирование для пиксельных блоков 4×4, и состоянием, в котором не выполняется двунаправленное прогнозирование для пиксельных блоков 4×4. Более конкретно, флажок intra4×4_bi_pred_flag, который соответствует FALSE, означает, что для пиксельных блоков 4×4 выполняется однонаправленное прогнозирование. Флажок, который соответствует TRUE, означает, что для пиксельных блоков 4×4 выполняется двунаправленное прогнозирование.
Intra4×4_pred_mode_ll на фиг.27 являются данными декодированного индекса. Данные intra4×4_pred_mode_ll декодируются, когда флажок intra4×4_bi_pred_flag соответствует TRUE.
Подробности синтаксиса будут приведены ниже.
Luma4×4Blk преобразуется в блоки block_order_flag в соответствии с таблицей, показанной в blkConv [block_order_flag] [luma4×4BlkIDx] для вычисления индекса блока:order, указывающего субблок, который должен быть кодирован (фиг.8).
Когда пиксельные блоки 4×4, указанные последовательностью индекса блока, должны быть декодированы, intra4×4_pred_mode_10[block_order_flag][order] декодируется и обратно преобразуется в intra4×4_pred_mode_10_org[block_order_flag][order], как показано на фиг.42. Этот процесс выполняется, поскольку пригодные для использования режимы прогнозирования изменяются в зависимости от флажка block_order_flag и позиций блоков в макроблоке. Более конкретно, как показано на фиг.43, когда block_order_flag равен 0 (FALSE), значение intra4×4_pred_mode_10 непосредственно задается для intra4×4_pred_mode_10_org. В это время intra4×4_pred_mode_10_org представляет собой данные, указывающие режим прогнозирования, который выбирается из подготовленных режимов прогнозирования девяти типов однонаправленного прогнозирования, и используемые при декодировании пиксельных блоков 4×4.
С другой стороны, когда block_order_flag равен 1 (TRUE: прогнозирование блока экстраполяции/интерполяции), таблицы переключаются в зависимости от позиций, в которых пиксельные блоки 4×4 расположены в макроблоке. Более конкретно, когда intra4×4_pred_mode_10[1][order], декодированный в блоке интерполяции (2), равен 13, режим прогнозирования intra4×4_pred_mode_10_org[1][order] становится равным 15 (прогнозирование обратно-по вертикали-вправо). Когда intra4×4_pred_mode_10[1][order], декодированный в блоке интерполяции (3), равен 12, режим прогнозирования intra4×4_pred_mode_10_org[1][order] становится равным 14 (прогнозирование обратно-по горизонтали-вверх).
Когда флажок intra4×4_bi_pred_flag соответствует TRUE, intra4×4_pred_mode_ll[block_order_flag][order] декодируется. Декодированный intra4×4_pred_mode_10[block_order_flag][order] преобразуется в intra4×4_pred_mode_10_org[block_order_flag][order], как показано на фиг.43.
В другом варианте осуществления информация Block_order_flag и intra4×4_bi_pred_flag отделена от потока кодированных битов и декодируется. Однако информация block_order_flag и intra4×4_bi_pred_flag может быть показана с помощью информации о деятельности, вычисленной декодированными блоками и пикселами. В этом случае, используя ту же самую логику, что и на стороне кодирования, та же самая информация, что и на стороне кодирования, показывается как информация block_order_flag и intra4×4_bi_pred_flag. По этой причине нет необходимости в отделении от потока кодированных битов и процесса декодирования.
В качестве еще одного примера, intra4×4_pred_mode_10_org может быть кодирован с использованием корреляции с intra4×4_pred_mode_10_org в соседнем блоке. Конкретная структура синтаксиса показана на фиг.31, и конфигурация синтаксиса макроблочного прогнозирования, показанная на фиг.27, заменяется конфигурацией, показанной на фиг.31.
Prev_intra4×4_pred_mode_10_flag[block_order_flag][order] на фиг.31 является флажком, обозначающим, равен ли режим прогнозирования ref_pred_mode_org из списка 0, вычисленный из эталонного блока (описанного ниже), режиму прогнозирования intra4×4_pred_mode_10_org[block_order_flag][order] из списка 0 для целевого блока.
На фиг.32 показан способ получения prev_intra4×4_pred_mode_10_flag[block_order_flag][order]. В этом случае ref_blkA_mode_10 на фиг.32 обозначает режим прогнозирования для списка 0 самого ближнего кодированного блока blkA, расположенного слева от блока blkA. Ref_blkB_mode_10 обозначает режим прогнозирования для списка 0 самого ближнего кодированного блока, расположенного на верхней стороне блока blkB.
Позиции ref_blkA_mode_10 и Ref_blkB_mode_10 меняются в зависимости от block_order_flag, более определенно они показаны на фиг.33, 44A, 44B, 44C и 44D. Когда block_order_flag соответствует FALSE, blkA и blkB служат в качестве левого и верхнего декодированных блоков, соседних с целевым блоком (фиг.33). С другой стороны, когда block_order_flag соответствует TRUE, ref_blkA и ref_blkB служат в качестве левого и верхнего декодированных блоков, ближайших к целевому блоку (фиг.44A, 44B, 44C, и 44D).
Когда prev_intra4×4_pred_mode_10_flag[block_order_flag][order] соответствует TRUE, информация из intra4×4_pred_mode_10_org показывается с помощью 1 бита, используя корреляцию между целевым блоком и соседним блоком.
С другой стороны, когда prev_intra4×4_pred_mode_10_flag[block_order_flag][order] соответствует FALSE, как режим прогнозирования из списка 0, за исключением prev_intra4×4_pred_mode_10_flag[block_order_flag][order], показывается rem_intra4×4_pred_mode_10[block_order_flag][order]. Данные, представляющие режим прогнозирования, выбранный из режимов прогнозирования, за исключением ref_pred_mode_org из rem_intra4×4_pred_mode_10[block_order_flag][order], декодируются на основе числа состояний, за исключением ref_pred_mode_org, из символов, которые могут браться в соответствии с режимом прогнозирования из списка 0.
В отношении прогнозирования 8×8 пикселов используется тот же самый синтаксис, который использовался при прогнозировании 4×4 пиксела, как показано на фиг.27. По этой причине описание прогнозирования 8×8 пикселов будет опущено.
Устройство кодирования изображения, соответствующее другому варианту осуществления, будет описано ниже с концентрацией внимания на деталях, отличных от тех, которые имеются в приведенном выше описании. Block_order_flag, показанный в синтаксисе макроблочного уровня на фиг.33, является флажком, обозначающим, выполняется ли переключение последовательностей прогнозирования. Когда block_order_flag соответствует TRUE, последовательности прогнозирования переключаются для выполнения прогнозирования блока экстраполяции/интерполяции. С другой стороны, когда block_order_flag соответствует FALSE, растровое блочное прогнозирование выполняется без переключения последовательности прогнозирования.
Когда block_order_flag соответствует TRUE, конкретный способ описания последовательности прогнозирования показывается с помощью block_order_in_mb_mode. Block_order_in_mb_mode показывает последовательность прогнозирования в соответствии со следующим способом.
(a) Когда режим равен 0, последовательность прогнозирования, задается последовательность прогнозирования, используемая, когда выполняется прогнозирование блока экстраполяции/интерполяции.
(b) Когда режим равен 1, комбинация последовательностей прогнозирования преобразуется в информацию об индексе, и последовательность прогнозирования показывается информацией об индексе. Когда последовательность прогнозирования определена в четырех блоках, одна из 23 комбинаций последовательностей прогнозирования, кроме растрового блочного прогнозирования из 4P4=24 определенных комбинаций, определяется перестановкой для каждого макроблока. Особо отметим, что block_order_idx на фиг.33 дает индекс комбинации блоков.
(c) Когда режим равен 2, число последовательностей непосредственно показывается на каждом блоке. Относительно 4×4 пиксельных блоков число последовательностей показывается на 16 block_order4×4[BLK]. Относительно пиксельных блоков 8×8, числа последовательностей показываются на четырех block_order8×8[BLK].
В качестве другого примера, когда block_order_in_mb_mode равен 1, может быть показан только один блок, который должен быть декодирован первым. При прогнозировании 4×4 пиксела число индексов последовательностей прогнозирования огромно. По этой причине последовательность пиксельных блоков 4×4, показанных в модулях пиксельных блоков 8×8, может быть повторена четыре раза, чтобы уменьшить объем информации индексов.
Когда block_order_in_mb_mode равен 2, block_order4×4 [BLK] можно быть показан с помощью внешней таблицы. Разность между block_order4×4 [BLK] и соседним block_order4×4[] может быть вычислена, и block_order4×4 [BLK] может быть выражен переменной разрядностью кода. Так как последний block_order4×4[15] является остающейся последовательностью, нет необходимости показывать block_order4×4[15]. То же самое может применяться к пиксельным блокам 8×8. При прогнозировании 4×4 пиксела, последовательность пиксельных блоков 4×4, показанная в блоках пиксельных модулей 8×8, может быть повторена четыре раза, чтобы уменьшить объем информации block_order4×4.
В такой информации, как block_order_in_mb_mode, block_order_idx, block_order4×4, и block_order8×8, значения могут адаптивно устанавливаться в блоках последовательности, изображений, слоев и макроблоков.
В соответствии с одним вариантом осуществления настоящего изобретения последовательность прогнозирования сделана выбираемой, так чтобы могли выполняться не только экстраполяция, использующая корреляцию, например, с левым или верхним пикселом, но также и интерполяция, эффективно использующая корреляцию с правым или нижним пикселом. Поскольку число пригодных для использования режимов прогнозирования может быть выбрано, например, двунаправленное прогнозирование, которое вычисляет сигналы прогнозирования, полученные в множестве режимов прогнозирования в блоках пикселов, выбирается для обеспечения возможности реализации высокой эффективности прогнозирования для сложной текстуры. В качестве дополнения, информация о переключении последовательности прогнозирования или информация о выборе режима прогнозирования может кодироваться, так что фрагменты информации адаптивно переключаются в блоках последовательностей, изображений, слоев, макроблоках или субблоках. Поэтому может быть реализовано кодирование изображения, обладающее высокой эффективностью кодирования, и декодирование кодированного изображения.
Процесс кодирования изображения и процесс декодирования изображения, основанные на варианте осуществления, описанные выше, могут быть осуществлены с помощью аппаратурного обеспечения. Однако процессы могут быть также выполнены посредством выполнения программного обеспечения с использованием компьютера, такого как персональный компьютер. Поэтому, в соответствии с этой точкой зрения, могут также быть обеспечены программа кодирования изображения, программа декодирования изображения или машиночитаемый носитель данных, на котором хранятся программы, которые используются, чтобы заставить компьютер выполнять, по меньшей мере, процесс кодирования изображения или процесс декодирования изображения.
Настоящее изобретение не ограничивается непосредственно вышеупомянутыми вариантами осуществления. На этапе выполнения изобретение может осуществляться с изменением составляющих элементов, не отходя от объема и сущности изобретения. Различные изобретения могут быть сформированы соответствующими комбинациями множества составляющих элементов, раскрытых в вариантах осуществления. Например, несколько составляющих элементов могут быть удалены из всех составляющих элементов, описанных в вариантах осуществления. Кроме того, составляющие элементы различных вариантов осуществления могут быть соответственно объединены друг с другом.
Промышленная применимость
Настоящее изобретение может использоваться при высокоэффективном кодировании/декодировании сжатия движущегося изображения или неподвижного изображения.
Изобретение относится к кодеру/декодеру изображения. Техническим результатом является повышение эффективности кодирования/декодирования изображения. Предложенное устройство кодирования изображения содержит первый переключатель, выбирающий из заранее определенных последовательностей прогнозирования последовательность прогнозирования субблоков, полученных дополнительным делением пиксельных блоков, полученных делением кадра входного сигнала изображения, второй переключатель, выбирающий из режимов прогнозирования, регулирующих способ обращения к кодированным пикселам, когда первый сигнал прогнозирования первого субблока создается при обращении к кодированному пикселу, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования, третий переключатель, выбирающий режимы прогнозирования, число которых равно числу, выбранному из числа режимов прогнозирования для использования режимов прогнозирования при прогнозировании первого сигнала прогнозирования, генератор, создающий первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя выбранные режимы прогнозирования, число которых равно выбранному числу для создания второго сигнала прогнозирования, соответствующего пиксельному блоку, и кодер, кодирующий сигнал остаточной ошибки прогнозирования, выражающий разность между сигналом изображения пиксельного блока и вторым сигналом прогнозирования, для создания кодированных данных, полученных прогнозирующим кодированием. 6 н. и 27 з.п. ф-лы, 72 ил.
1. Способ кодирования изображения для выполнения прогнозирующего кодирования для каждого из множества пиксельных блоков, полученных делением кадра входного сигнала изображения, содержащий этапы, на которых:
выбирают последовательность прогнозирования множества субблоков, полученных делением пиксельного блока, из множества заранее определенных последовательностей прогнозирования;
выбирают из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселу, когда первый сигнал прогнозирования каждого субблока (без предшествующей основы) создается для кодированного пиксела, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
выбирают режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования, для использования в прогнозировании первого сигнала прогнозирования;
создают первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования, чтобы создать второй сигнал прогнозирования, соответствующий пиксельному блоку; и
кодируют сигнал остаточной ошибки прогнозирования, выражающий разность между сигналом изображения пиксельного блока и вторым сигналом прогнозирования, для создания кодированных данных, полученных прогнозирующим кодированием.
2. Устройство кодирования изображения, которое исполняет прогнозирующее кодирование для каждого из множества пиксельных блоков, полученных делением кадра входного сигнала изображения, содержащее:
первый переключатель, который выбирает последовательность прогнозирования множества субблоков, полученных делением пиксельного блока, из множества заранее определенных последовательностей прогнозирования;
второй переключатель, который выбирает из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселу, когда первый сигнал прогнозирования каждого субблока создается для кодированного пиксела, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
третий переключатель, который выбирает режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования, для использования при прогнозировании первого сигнала прогнозирования;
генератор, который создает второй сигнал прогнозирования, используя первый сигнал прогнозирования, соответствующий пиксельному блоку в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования; и
кодер, кодирующий сигнал остаточной ошибки прогнозирования, выражающий разность между сигналом изображения пиксельного блока и вторым сигналом прогнозирования, для создания кодированных данных, полученных прогнозирующим кодированием.
3. Устройство кодирования изображения по п.2, в котором устройство кодирования изображения выполнено с возможностью выполнения прогнозирующего кодирования с использованием по меньшей мере внутрикадрового прогнозирования или межкадрового прогнозирования.
4. Устройство кодирования изображения по п.2, в котором первый переключатель выбирает последовательность прогнозирования для каждого из пиксельных блоков.
5. Устройство кодирования изображения по п.2, в котором первый переключатель выбирает первую последовательность прогнозирования или вторую последовательность прогнозирования для каждого из пиксельных блоков.
6. Устройство кодирования изображения по п.2, в котором первый переключатель выполнен с возможностью контроля, выбираются ли последовательности прогнозирования посредством переключения для каждого из пиксельных блоков.
7. Устройство кодирования изображения по п.2, в котором первый переключатель выполнен с возможностью контроля, выбрана ли для каждого из пиксельных блоков первая последовательность прогнозирования или вторая последовательность прогнозирования.
8. Устройство кодирования изображения по п.2, в котором кодер выполнен с возможностью кодирования информации, представляющей выбранную последовательность прогнозирования, для создания кодированных данных.
9. Устройство кодирования изображения по п.2, в котором по меньшей мере, один из режимов прогнозирования является пространственно направленным режимом прогнозирования, обращающимся к кодированному пикселу в конкретном направлении, определенном входным сигналом изображения.
10. Устройство кодирования изображения по п.2, в котором генератор имеет первое устройство прогнозирования, которое, когда режим прогнозирования выбран из множества режимов прогнозирования, прогнозирует пиксельный блок в соответствии с выбранной последовательностью прогнозирования и выбранным режимом прогнозирования, и второе устройство прогнозирования, которое, когда по меньшей мере два режима прогнозирования выбраны из множества режимов прогнозирования, прогнозирует пиксельный блок в соответствии с выбранной последовательностью прогнозирования и по меньшей мере двумя выбранными режимами прогнозирования, для создания множества сигналов прогнозирования и второго сигнала прогнозирования путем объединения сигналов прогнозирования для каждого пиксела.
11. Устройство кодирования изображения по п.10, в котором второе устройство прогнозирования выполнено с возможностью выполнения комбинации пиксельных блоков с помощью, по меньшей мере, одного из (а) взвешенного среднего значения, (b) фильтра максимального значения, (с) фильтра минимального значения, (d) медианного фильтра и (е) угла направленного прогнозирования, которое обращается к кодированному пикселу в соответствии с конкретным пространственным направлением, определенным входным сигналом изображения или таблицей, в которой описаны коэффициенты взвешивания в зависимости от числа выбранных режимов прогнозирования.
12. Устройство кодирования изображения по п.2, в котором кодер выполнен с возможностью кодирования информации, представляющей число выбранных режимов прогнозирования, для создания кодированных данных.
13. Устройство кодирования изображения по п.2, в котором первый переключатель выполнен с возможностью выбора последовательности прогнозирования в соответствии с информацией активности пиксельного блока или соседних пиксельных блоков.
14. Устройство кодирования изображения по п.2, в котором первый переключатель выполнен с возможностью выбора последовательности прогнозирования в соответствии с информацией активности пиксельного блока или соседних пиксельных блоков и кодер выполнен с возможностью также кодирования информации, представляющей выбранную последовательность прогнозирования, для создания кодированных данных.
15. Устройство кодирования изображения по п.2, в котором второй переключатель выполнен с возможностью выбора числа режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования в соответствии с информацией активности пиксельного блока или соседнего пиксельного блока.
16. Устройство кодирования изображения по п.2, в котором второй переключатель выполнен с возможностью выбора числа режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования в зависимости от информации активности пиксельного блока или соседнего пиксельного блока, и кодер выполнен с возможностью также кодирования информации, представляющей число выбранных режимов прогнозирования, для создания кодированных данных.
17. Способ декодирования изображения для декодирования кодированных данных для каждого из множества пиксельных блоков, полученных делением кадра входного сигнала изображения, содержащий этапы, на которых:
выбирают последовательность прогнозирования множества субблоков, полученных делением пиксельного блока из множества заранее определенных последовательностей прогнозирования;
выбирают из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселу, когда первый сигнал прогнозирования каждого субблока создается для декодированного пиксела, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
выбирают режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования, для использования при прогнозировании первого сигнала прогнозирования;
создают первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и
создают декодированный сигнал изображения, используя второй сигнал прогнозирования.
18. Устройство декодирования изображения, декодирующее кодированные данные для каждого из множества пиксельных блоков, полученных делением кадра входного сигнала изображения, содержащее:
первый переключатель, который выбирает последовательность прогнозирования множества субблоков, полученных делением пиксельного блока, из множества заранее определенных последовательностей прогнозирования;
второй переключатель, который выбирает из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселу, когда первый сигнал прогнозирования каждого субблока создается для декодированного пиксела, множество режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
третий переключатель, который выбирает режимы прогнозирования из числа режимов прогнозирования, выбранных из множества режимов прогнозирования, для использования при прогнозировании первого сигнала прогнозирования;
генератор, который создает первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и
генератор, создающий декодированный сигнал изображения, используя второй сигнал прогнозирования.
19. Устройство декодирования изображения по п.18, в котором первый переключатель выбирает последовательность прогнозирования для каждого из пиксельных блоков.
20. Устройство декодирования изображения по п.18, в котором первый переключатель выбирает первую последовательность прогнозирования или вторую последовательность прогнозирования для каждого из пиксельных блоков.
21. Устройство декодирования изображения по п.18, в котором первый переключатель выполнен с возможностью контроля, выбраны ли последовательности прогнозирования, путем переключения для каждого из пиксельных блоков.
22. Устройство декодирования изображения по п.18, в котором первый переключатель выполнен с возможностью контроля, выбрана ли для каждого из пиксельных блоков первая последовательность прогнозирования или вторая последовательность прогнозирования.
23. Устройство декодирования изображения по п.18, дополнительно содержащее блок разделения, который отделяет первую информацию, содержащуюся в кодированных данных, представляя последовательность прогнозирования множества субблоков, полученных делением пиксельного блока, в котором первый переключатель выполнен с возможностью выбора последовательности прогнозирования, указанной первой информацией.
24. Устройство декодирования изображения по п.18, в котором по меньшей мере один из режимов прогнозирования является режимом направленного прогнозирования, который обращается к декодированному пикселу в конкретном пространственном направлении в пространстве, определенном сигналом изображения.
25. Устройство декодирования изображения по п.18, в котором генератор имеет первое устройство прогнозирования, которое, когда режим прогнозирования выбран из множества режимов прогнозирования, прогнозирует пиксельный блок, соответствующий выбранной последовательности прогнозирования и выбранному режиму прогнозирования, и второе устройство прогнозирования, которое, когда по меньшей мере два режима прогнозирования выбраны из множества режимов прогнозирования, прогнозирует пиксельный блок, соответствующий пиксельному блоку согласно выбранной последовательности прогнозирования, и по меньшей мере два выбранных режима прогнозирования для создания множества сигналов прогнозирования, и сигнала прогнозирования, соответствующего пиксельному блоку, путем объединения сигналов прогнозирования в пиксельных блоках.
26. Устройство декодирования изображения по п.25, в котором второе устройство прогнозирования выполнено с возможностью выполнения комбинации пиксельных блоков, по меньшей мере, с помощью (а) взвешенного среднего значения, (b) фильтра максимального значения, (с) фильтра минимального значения, (d) медианного фильтра, и (е) угла направленного прогнозирования, который обращается к кодированному пикселу в отношении конкретного направления в пространстве, определенного входным сигналом изображения или таблицей, в которой описываются коэффициенты взвешивания, зависящие от числа выбранных режимов прогнозирования.
27. Устройство декодирования изображения по п.18, дополнительно содержащее блок разделения, который отделяет вторую информацию, содержащуюся в кодированных данных, представляющую число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования, в котором второй переключатель выполнен с возможностью выбора числа режимов прогнозирования, указанных второй информацией.
28. Устройство декодирования изображения по п.18, в котором первый переключатель выполнен с возможностью выбора последовательности прогнозирования в соответствии с информацией о деятельности пиксельного блока или соседнего пиксельного блока.
29. Устройство декодирования изображения по п.18, дополнительно содержащее блок разделения, который отделяет первую информацию, содержащуюся в кодированных данных, представляющую последовательность прогнозирования множества субблоков, полученных делением пиксельного блока, причем первый переключатель выполнен с возможностью выбора последовательности прогнозирования в соответствии, по меньшей мере, с первой информацией или информацией о деятельности пиксельного блока или соседнего пиксельного блока.
30. Устройство декодирования изображения по п.18, в котором второй переключатель выполнен с возможностью выбора числа режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования в соответствии с информацией о деятельности пиксельного блока или соседнего пиксельного блока.
31. Устройство декодирования изображения по п.18, дополнительно содержащее блок разделения, который отделяет вторую информацию, включенную в кодированные данные, представляющую число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования, в котором второй переключатель выполнен с возможностью выбора числа режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования, в зависимости по меньшей мере от второй информации или информации о деятельности пиксельного блока или соседнего пиксельного блока.
32. Машиночитаемый носитель данных, на котором хранится программа кодирования изображения, которая заставляет компьютер выполнять кодирование изображения, включающее в себя прогнозирующее кодирование для каждого из множества пиксельных блоков, полученных делением кадра входного сигнала изображения, причем программа содержит:
средство, заставляющее компьютер выбирать для множества субблоков, полученных делением пиксельного блока, последовательность прогнозирования из множества заранее определенных последовательностей прогнозирования;
средство, заставляющее компьютер выбирать из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселю, когда для кодированного пиксела создается первый сигнал прогнозирования каждого субблока, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
средство, заставляющее компьютер выбирать режимы прогнозирования из числа выбранных режимов прогнозирования из множества режимов прогнозирования для использования при прогнозировании первого сигнала прогнозирования;
средство, заставляющее компьютер создавать первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя число выбранных режимов прогнозирования, для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и
средство, заставляющее компьютер кодировать сигнал остаточной ошибки прогнозирования, выражающий разность между сигналом изображения пиксельного блока и вторым сигналом прогнозирования для создания кодированных данных, полученных прогнозирующим кодированием.
33. Машиночитаемый носитель данных, на котором хранится программа декодирования изображения, которая заставляет компьютер выполнять декодирование изображения, включающее в себя декодирование кодированных данных для каждого из множества пиксельных блоков, полученных делением кадра сигнала изображения, программа, содержащая:
средство, заставляющее компьютер выбирать для множества субблоков, полученных делением пиксельного блока, последовательность прогнозирования из множества заранее определенных последовательностей прогнозирования;
средство, заставляющее компьютер выбирать из множества режимов прогнозирования, которые регулируют способ обращения к кодированному пикселю, когда первый, сигнал прогнозирования каждого субблока создается для декодированного пиксела, число режимов прогнозирования, используемых при прогнозировании первого сигнала прогнозирования;
средство, заставляющее компьютер выбирать режимы прогнозирования из числа выбранных режимов прогнозирования из множества режимов прогнозирования для использования при прогнозировании первого сигнала прогнозирования;
средство, заставляющее компьютер создавать первый сигнал прогнозирования в выбранной последовательности прогнозирования, используя выбранные режимы прогнозирования, для создания второго сигнала прогнозирования, соответствующего пиксельному блоку; и
средство, заставляющее компьютер создавать декодированный сигнал изображения, используя второй сигнал прогнозирования.
RU 2004139081 А, 10.07.2005 | |||
WO 2006004331 A1, 2006.01.12 | |||
JP 2005260464 A, 2005.09.22 | |||
JP 2006033451 A, 2006.02.02 | |||
JP 2004140473 A, 2004.05.13 | |||
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ИЗОБРАЖЕНИЙ | 1997 |
|
RU2189120C2 |
РИЧАРДСОН ЯН | |||
Видеокодирование | |||
Железнодорожный снегоочиститель | 1920 |
|
SU264A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
JUN SUNG PARK et al | |||
Selective Intra Prediction Mode Decision |
Авторы
Даты
2011-08-27—Публикация
2006-07-28—Подача