Способ кодирования изображения и способ декодирования изображения
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности декодирования. Способ декодирования изображения, в котором декодируют коэффициенты преобразования для целевого изображения, которое следует декодировать, и информацию, указывающую режим внутреннего предсказания для целевого изображения; сканируют коэффициенты преобразования для генерации сканированных коэффициентов преобразования; задают комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, соответствующую целевому изображению, на основе предварительно определенного отношения; выполняют обратное преобразование сканированных коэффициентов преобразования вдоль вертикального направления и горизонтального направления, используя комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, когда режим внутреннего предсказания является первым режимом или вторым режимом, для получения ошибки предсказания; и генерируют декодированное изображение на основе ошибки предсказания. 46 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящего изобретения относятся к ортогональному преобразованию и обратному ортогональному преобразованию при кодировании и декодировании видео.
УРОВЕНЬ ТЕХНИКИ
В последние годы способ кодирования изображения со значительно улучшенной эффективностью кодирования был совместно рекомендован ITU-T и ISO/IEC как ITU-T REC. H. 264 и ISO/IEC 14496-10 (в дальнейшем в этом документе называемый как "H. 264"). H. 264 осуществляет дискретное косинусное преобразование (DCT) и обратное дискретное косинусное преобразование (IDCT) в качестве ортогонального преобразования и обратного ортогонального преобразования ошибок предсказания в целевом блоке пикселей независимо от схемы предсказания, примененной к целевому блоку пикселей.
Расширенный H. 264 предполагается для осуществления ортогонального преобразования и обратного ортогонального преобразования используя индивидуальные базисы преобразования для соответственных девяти типов режимов предсказания, заданных для предсказания внутри картинки (внутреннее предсказание), таким образом увеличивая эффективность кодирования.
СПИСОК ЦИТИРУЕМОЙ ЛИТЕРАТУРЫ
НЕПАТЕНТНАЯ ЛИТЕРАТУРА
Непатентная литература 1: M. Karczewicz, "Improved intra coding", ITU-T SG16/Q. 6, Документ VCEG, VCEG-AF15, апрель 2007.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
Однако сложно в связи с реализацией осуществить ортогональное преобразование и обратное ортогональное преобразование, используя индивидуальные базисы преобразования для соответственных многочисленных типов режимов предсказания. Например, аппаратная реализация требует не только выделенного аппаратного обеспечения для DCT и IDCT, требуемых для H. 264, но также выделенного аппаратного обеспечения для индивидуальных ортогональных преобразований и обратных ортогональных преобразований для соответственных многочисленных типов направлений предсказания. Добавление выделенного аппаратного обеспечение увеличивает масштаб релевантных схем.
Программная реализация позволяет загрузить из памяти в случае необходимости и удерживать в кэш-памяти в случае необходимости. В этом случае желаемые ортогональное преобразование и обратное ортогональное преобразование могут быть реализованы посредством устройства умножения общего назначения. Однако непредпочтительно то, что расходы увеличиваются в результате увеличения пропускной способности памяти или размера кэш-памяти.
Таким образом, целью вариантов осуществления является предоставить ортогональное преобразование и обратное ортогональное преобразование, которые позволяют улучшить эффективность кодирования.
РЕШЕНИЕ ПРОБЛЕМЫ
Согласно одному аспекту способ кодирования изображения включает в себя предсказание ошибки предсказания целевого изображения, которое следует кодировать, на основе режима внутреннего предсказания. Способ включает себя задание комбинации из матрицы вертикального преобразования и матрицы горизонтального преобразования, соответствующей целевому изображению на основе предварительно определенного отношения. Данная комбинация включает в себя любую из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняется над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием. Способ включает в себя преобразование ошибки предсказания, используя комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, для получения коэффициентов преобразования. Способ включает в себя кодирование коэффициентов преобразования и информации, указывающей режим внутреннего предсказания для целевого изображения.
Согласно другому аспекту способ декодирования изображения включает в себя декодирование коэффициентов преобразования для целевого изображения, которое следует декодировать, и информации, указывающей режим внутреннего предсказания для целевого изображения. Способ включает себя задание комбинации из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, соответствующей целевому изображению на основе предварительно определенного отношения. Данная комбинация включает в себя любую из множества транспонированных матриц из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняется над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием. Способ включает в себя выполнение обратного преобразования коэффициентов предсказания, используя комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, для получения ошибки предсказания. Способ включает в себя генерирование декодированного изображения на основе ошибки предсказания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1 показана блок-схема, иллюстрирующая устройство кодирования изображения согласно первому варианту осуществления.
На Фиг. 2 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно первому варианту осуществления.
На Фиг. 3 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно первому варианту осуществления.
На Фиг. 4A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно первому варианту осуществления.
На Фиг. 4B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно первому варианту осуществления.
На Фиг. 4C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно первому варианту осуществления.
На Фиг. 4D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно первому варианту осуществления.
На Фиг. 4E показана таблица, полученная посредством объединения Фиг. 4A с 4D.
На Фиг. 5A показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно первому варианту осуществления.
На Фиг. 5B показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно первому варианту осуществления.
На фиг. 6A показано графическое представление, иллюстрирующее порядок кодирования с предсказанием блока пикселей.
На фиг. 6B показано графическое представление, иллюстрирующее пример размера блока пикселей.
На фиг. 6C показано графическое представление, иллюстрирующее пример размера блока пикселей.
На фиг. 6D показано графическое представление, иллюстрирующее пример размера блока пикселей.
На фиг. 7A показано графическое представление, иллюстрирующее режим внутреннего предсказания.
На фиг. 7B показано графическое представление, иллюстрирующее отношение расположения между целевыми пикселями предсказания и опорными пикселями.
На фиг. 7C показано графическое представление, иллюстрирующее режим 1 внутреннего предсказания.
На фиг. 7D показано графическое представление, иллюстрирующее режим 4 внутреннего предсказания.
На фиг. 8A показано графическое представление, иллюстрирующее зигзагообразное сканирование.
На фиг. 8B показано графическое представление, иллюстрирующее зигзагообразное сканирование.
На Фиг. 8C показана таблица, показывающая 2D-1D преобразование, использующее зигзагообразное сканирование.
На Фиг. 9 показана таблица, показывающая индивидуальные 2D-1D преобразования для соответственных режимов предсказания.
На Фиг. 10A показана схема последовательности операций, иллюстрирующая обработку, осуществляемую над целевым блоком кодирования посредством устройства кодирования изображения на Фиг. 1.
На Фиг. 10B показана схема последовательности операций, иллюстрирующая обработку, осуществляемую над целевым блоком кодирования посредством устройства кодирования изображения на Фиг. 1.
На фиг. 11 показано графическое представление, иллюстрирующее структуру синтаксиса.
На фиг. 12 показано графическое представление, иллюстрирующее синтаксис заголовка вырезки.
На фиг. 13 показано графическое представление, иллюстрирующее синтаксис единицы дерева кодирования.
На фиг. 14 показано графическое представление, иллюстрирующее синтаксис единицы преобразования.
На Фиг. 15 показана блок-схема, иллюстрирующая блок ортогонального преобразования, который осуществляет ортогональное преобразование по каждому из девяти типов направлений предсказания, используя конкретный базис преобразования.
На Фиг. 16 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно второму варианту осуществления.
На Фиг. 17 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно второму варианту осуществления.
На Фиг. 18A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно второму варианту осуществления.
На Фиг. 18B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно второму варианту осуществления.
На Фиг. 18C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно второму варианту осуществления.
На Фиг. 18D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно второму варианту осуществления.
На Фиг. 18E показана таблица, полученная посредством объединения Фиг. 18A с 18D.
На Фиг. 19 показана блок-схема, иллюстрирующая блок ортогонального преобразования согласно третьему варианту осуществления.
На Фиг. 20 показана блок-схема, иллюстрирующая блок обратного ортогонального преобразования согласно третьему варианту осуществления.
На Фиг. 21A показана таблица, иллюстрирующая соответствие между режимами предсказания и индексом вертикального преобразования и индексом горизонтального преобразования согласно третьему варианту осуществления.
На Фиг. 21B показана таблица, иллюстрирующая соответствие между индексом вертикального преобразования и матрицами 1D преобразования согласно третьему варианту осуществления.
На Фиг. 21C показана таблица, иллюстрирующая соответствие между индексом горизонтального преобразования и матрицами 1D преобразования согласно третьему варианту осуществления.
На Фиг. 21D показана таблица, иллюстрирующая соответствие между индексом преобразования и индексом вертикального преобразования и индексом горизонтального преобразования согласно третьему варианту осуществления.
На Фиг. 21E показана таблица, полученная посредством объединения Фиг. 21A с 21D.
На Фиг. 22 показана блок-схема, иллюстрирующая устройство декодирования изображения согласно четвертому варианту осуществления.
На Фиг. 23A показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно четвертому варианту осуществления.
На Фиг. 23B показана блок-схема, иллюстрирующая блок управления порядком коэффициентов согласно четвертому варианту осуществления.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Варианты осуществления будут описаны ниже со ссылкой на чертежи. В описании ниже, термин "изображение" может быть заменен термином "сигнал изображения", "данные изображения", или тому подобным в случае необходимости.
(ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ)
Первый вариант осуществления относится к устройству кодирования изображения. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в четвертом варианте осуществления. Устройство кодирования изображения может быть реализовано посредством аппаратного обеспечения, такого как кристаллы БИС (большой интегральной схемы), DSP (процессоры цифровой обработки сигналов), FPGA (программируемые пользователем вентильные матрицы) и тому подобного. К тому же устройство кодирования изображения может быть также реализовано посредством обеспечения возможности компьютеру исполнять программу кодирования изображения.
Как показано на Фиг. 1, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 101 вычитания, блок 102 ортогонального преобразования, блок 103 квантования, блок деквантования, блок 105 обратного ортогонального преобразования, блок 106 сложения, память 107 опорного изображения, блок 108 внутреннего предсказания, блок 109 внешнего предсказания, блок 110 выбора предсказания, переключатель 111 выбора предсказания, блок 112 задания матрицы 1D (одномерного) преобразования, блок 113 управления порядком коэффициентов, блок 114 энтропийного кодирования, выходной буфер 115 и блок 116 управления кодированием.
Устройство кодирования изображения на Фиг. 1 делит каждый из кадров или полей, образующих входное изображение 118, на множество блоков пикселей, осуществляет кодирование с предсказанием блоков пикселей, возникающих в результате деления, и выводит кодированные данные 130. Для упрощения предполагается, что кодирование с предсказанием в дальнейшем в этом документе осуществляется над блоком пикселей от верхнего левого к нижнему правому, как показано на Фиг. 6A. На Фиг. 6A показан целевой кадр f кодирования, в котором кодированные блоки p пикселей расположены слева и выше целевого блока c пикселей кодирования.
Здесь, блок пикселей относится к, например, единице дерева кодирования, макроблоку, подблоку или пикселю. Блок пикселей в дальнейшем в этом документе в основном используется, чтобы означать единицу дерева кодирования, но может интерпретироваться так, чтобы иметь другое значение в случае необходимости. Единицей дерева кодирования является обычно, например, блок пикселей 16 x 16, показанный на Фиг. 6B, но может быть блоком пикселей 32 x 32, показанным на Фиг. 6C, блоком пикселей 64 x 64, показанным на Фиг. 6D, или блоком пикселей 8 x 8 или блоком пикселей 4 x 4, показанными на чертежах. Единица дерева кодирования необязательно должна быть квадратной. Целевой блок кодирования или единица дерева кодирования во входном изображении в дальнейшем в этом документе иногда называется как "целевой блок предсказания". К тому же единица кодирования не ограничена блоком пикселей, таким как единица дерева кодирования, но может быть кадром, полем, или их комбинацией.
Устройство кодирования изображения на Фиг. 1 осуществляет внутреннее предсказание (также называемое как внутрикадровое, внутрикадровое предсказание или тому подобное) или внешнее предсказание (также называемое как предсказание между картинками, межкадровое предсказание или тому подобное) для генерирования предсказанного изображения 127. Устройство кодирования изображения ортогонально преобразует и квантует ошибку 119 предсказания между блоком пикселей (входное изображение 118) и предсказанным изображением 127. Устройство кодирования изображения затем осуществляет энтропийное кодирование преобразованной и квантованной ошибки предсказания, чтобы сгенерировать и вывести кодированные данные 130.
Устройство кодирования изображения на Фиг. 1 осуществляет кодирование посредством выборочного применения множества режимов предсказания, предусматривающих разные размеры блоков и разные способы для генерирования предсказанного изображения 127. Способ для генерирования предсказанного изображения 127 грубо классифицируется на два типа: внутреннее предсказание, которое осуществляет предсказание внутри целевого кадра кодирования, и внешнее предсказание, которое осуществляет предсказание, используя один или более опорных кадров, временно отличающихся друг от друга. В настоящем варианте осуществления, ортогональное преобразование и обратное ортогональное преобразование, осуществляемые для генерирования предсказанного изображения, используя внутреннее предсказание, будут описаны подробно.
Компоненты устройства кодирования изображения на Фиг. 1 будут описаны ниже.
Вычитающее устройство 101 вычитает соответствующее предсказанное изображение 127 из целевого блока кодирования во входном изображении 118, чтобы получить ошибку 119 предсказания. Устройство 101 вычитания вводит ошибку 119 предсказания в блок 102 ортогонального преобразования.
Блок 102 ортогонального преобразования преобразует ошибку 119 предсказания из устройства 101 вычитания для получения коэффициентов 120 преобразования. Блок 102 ортогонального преобразования будет подробно описан ниже. Блок 102 ортогонального преобразования вводит коэффициенты преобразования 120 в блок 103 квантования.
Блок 103 квантования квантует коэффициенты преобразования из блока 102 ортогонального преобразования для получения квантованных коэффициентов 121 преобразования. Конкретно, блок 103 квантования осуществляет квантование в соответствии с информацией квантования, такой как параметр квантования и матрица квантования, которая задана блоком 116 управления кодированием. Параметр квантования указывает разрешение квантования. Матрица квантования используется для назначения веса разрешению квантования для каждого компонента коэффициентов преобразования. Блок 103 квантования вводит коэффициенты 121 преобразования в блок 113 управления порядком коэффициентов и блок 104 деквантования.
Блок 113 управления порядком коэффициентов преобразует квантованные коэффициенты 121 преобразования, которые являются двухмерным (2D) выражением, в последовательность 117 квантованных коэффициентов преобразования, которая является одномерным (1D) выражением. Блок 113 управления порядком коэффициентов затем вводит последовательность 117 квантованных коэффициентов преобразования в блок 114 энтропийного кодирования. Блок 113 управления коэффициентами будет подробно описан ниже.
Блок 114 энтропийного кодирования осуществляет энтропийное кодирование (например, кодирование по алгоритму Хаффмана или арифметическое кодирование) над различными параметрами кодирования, такими как последовательность 117 квантованных коэффициентов преобразования из блока 113 управления коэффициентами, информация 126 предсказания из блока 110 выбора предсказания и информация квантования, которые задаются блоком 116 управления кодирования. Параметры кодирования требуются для декодирования и включают в себя информацию 126 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Параметры кодирования удерживаются во внутренней памяти (не показана на чертежах) в блоке 116 управления кодированием. Когда кодируется целевой блок предсказания, могут быть использованы параметры кодирования для уже кодированных смежных блоков пикселей. Например, внутреннее предсказание H. 264 позволяет получить предсказанное значение для режима предсказания целевого блока предсказания из информации режима предсказания по кодированному смежному блоку.
Кодированные данные, сгенерированные блоком 114 энтропийного кодирования, например, мультиплексируются и затем временно накапливаются в выходном буфере 115. Данные затем выводятся как кодированные данные 130 в соответствии с должным временным интервалом вывода, управляемым блоком 116 управления кодированием. Кодированные данные 130 выводятся, например, в систему накопления (носитель накопления) или систему передачи (линию связи), которые не показаны на чертежах.
Блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования из блока 103 квантования для получения восстановленных коэффициентов 122 преобразования. Конкретно, блок 104 деквантования осуществляет деквантование в соответствии с информацией квантования, используемой в блоке 103 квантования. Информация квантования, используемая в блоке 103 квантования, загружается из внутренней памяти в блоке 116 управления кодированием. Блок 104 деквантования вводит восстановленные коэффициенты 122 преобразования в блок 105 обратного ортогонального преобразования.
Блок обратного ортогонального преобразования 105 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному блоком 102 ортогонального преобразования над восстановленными коэффициентами 122 преобразования из блока 104 деквантования, чтобы получить восстановленную ошибку 123 предсказания. Блок 105 обратного ортогонального преобразования будет подробно описан ниже. Блок 105 обратного ортогонального преобразования вводит восстановленную ошибку 123 предсказания в блок 106 сложения.
Блок 106 сложения складывает восстановленную ошибку 123 предсказания и соответствующее предсказанное изображение 127 вместе, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения. На локально декодированное изображение 124, сохраненное в память 107 опорного изображения, ссылается блок 108 внутреннего предсказания и блок 109 внешнего предсказания в качестве опорного изображения 125, если необходимо.
Блок 108 внутреннего предсказания осуществляет внутреннее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Например, H. 264 использует значение кодированного опорного пикселя для блока, смежного для целевого блока предсказания для компенсации пикселей (копировать или интерполировать пиксели) вдоль направления предсказания, такого как вертикальное направление или горизонтальное направление, чтобы сгенерировать изображение, предсказанное посредством внутреннего предсказания. На Фиг. 7A показаны направления предсказания для внутреннего предсказания согласно H. 264. К тому же на Фиг. 7B отношение расположения между опорными пикселями и целевыми пикселями кодирования согласно H. 264. На Фиг. 7C показан способ для генерирования предсказанного изображения в режиме 1 (горизонтальное предсказание). На Фиг. 7D показан способ для генерирования предсказанного изображения в режиме 4 (предсказание по диагонали вниз-вправо; Intra_NxN_Diagonal_Down_Right на Фиг. 4A).
Блок 108 внутреннего предсказания может интерполировать значения пикселей, используя предварительно определенный способ интерполяции, и затем копирует интерполированные значения пикселей в предварительно определенном направлении. Проиллюстрированы направления предсказания для внутреннего предсказания согласно H. 264, но любое число режимов предсказания, таких как 17 или 33 типа режимов предсказания, сделаны доступными посредством задания более подробной классификации направлений предсказания. Например, H. 264 устанавливает углы предсказания с интервалами в 22,5 градуса, но 17 типов режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 11,25 градуса. К тому же 33 типа режимов предсказания, включая DC предсказание, сделаны доступными посредством задания углов предсказания с интервалами в 5,625 градуса. В качестве альтернативы вместо расположения с равными интервалами, углы направлений предсказания могут быть выражены прямой линией, которая соединяет первую опорную точку со второй опорной точкой, полученной посредством перемещения первой опорной точки в горизонтальном направлении и в вертикальном направлении. Как описано выше, число режимов предсказания может быть легко увеличено, и настоящий вариант осуществления является применимым независимо от числа режимов предсказания.
Блок 109 внешнего предсказания осуществляет внешнее предсказание, используя опорное изображение 125, сохраненное в память 107 опорного изображения. Конкретно, блок 109 внешнего предсказания осуществляет процесс сопоставления блоков между целевым блоком предсказания и опорным изображением 125 для получения величины отклонения в движении (вектор движения). Блок 109 внешнего предсказания осуществляет процесс интерполяции (компенсацию движения) на основе вектора движения, чтобы сгенерировать изображение, предсказанное посредством внешнего предсказания. H. 264 позволяет процессу интерпретации достигнуть точности в 1/4 пикселя. Полученный вектор движения подвергается энтропийному кодированию как часть информации 126 предсказания.
Переключатель 111 выбора выбирает выходной конец блока 108 внутреннего предсказания или выходной конец блока 109 внешнего предсказания в соответствии с информацией 126 предсказания из блока 110 выбора предсказания. Переключатель 111 выбора затем вводит изображение, предсказанное посредством внутреннего предсказания, или изображение, предсказанное посредством внешнего предсказания, в блок 101 вычитания и блок 106 сложения в качестве предсказанного изображения 127. Информация 126 предсказания указывает внутреннее предсказание, блок 110 выбора получает изображение, предсказанное посредством внутреннего предсказания, из блока 108 внутреннего предсказания, в качестве предсказанного изображения 127. С другой стороны, если информация 126 предсказания указывает внешнее предсказание, блок 110 выбора получает изображение, предсказанное посредством внешнего предсказания, из блока 109 внутреннего предсказания, в качестве предсказанного изображения 127.
Блок 110 выбора предсказания имеет функцию для задания информации 126 предсказания в соответствии с режимом предсказания, управляемым блоком 116 управления кодированием. Как описано выше, внутреннее предсказание или внешнее предсказание может быть выбрано для генерирования предсказанного изображения 127. Более того, множество режимов могут быть дополнительно выбраны для каждого из внутреннего предсказания и внешнего предсказания. Блок 116 управления кодированием определяет одно из множества режимов предсказания для внутреннего предсказания и внешнего предсказания, чтобы было оптимальным режимом предсказания. Блок 110 выбора предсказания задает информацию предсказания 126 согласно определенному оптимальному режиму предсказания.
Например, в связи с внутренним предсказанием информация режима предсказания от блока 116 управления кодированием задается в блоке 108 внутреннего предсказания. В соответствии с информацией режима предсказания, блок 108 внутреннего предсказания генерирует предсказанное изображение 127. Блок 116 управления кодированием может задавать множество порций информации режима предсказания в порядке увеличения числа режима предсказания или уменьшения числа режима предсказания. К тому же блок 116 управления кодированием может ограничить режим предсказания в соответствии с характеристиками входного изображения. Блок 116 управления кодированием не должен задавать все режимы предсказания, но может задавать по меньшей мере одну порцию информации режима предсказания для целевого блока кодирования.
Например, блок 116 управления кодированием определяет оптимальный режим предсказания, используя функцию стоимости, показанную в:
К=SAD+λ×OH (1)
В Выражении (1), OH обозначает объем кода для информации 126 предсказания (например, информацию вектора движения и информацию размера блока предсказания), и SAD обозначает сумму абсолютной разности между целевым блоком предсказания и предсказанным изображением 127 (то есть накопленная сумма абсолютных значений ошибки 119 предсказания). К тому же λ обозначает множитель Лагранжа, определенный на основе значения информация квантования (параметра квантования), и K обозначает стоимость кодирования. Если используется Выражение (1), режим предсказания, который минимизирует стоимость кодирования K, определяется так, чтобы быть оптимальным в том, что касается объема сгенерированного кода и ошибок предсказания. В качестве модификации Выражения (1) стоимость кодирования может быть оценена только исходя из OH или SAD, посредством использования значения, полученного посредством осуществления преобразования Адамара над SAD или значении, приближенном к нему.
К тому же оптимальный режим предсказания может быть определен, используя блок предварительного кодирования (не показан на чертежах). Например, блок 116 управления кодированием определяет оптимальный режим предсказания, используя функцию стоимости, показанную в:
J=D+λ×R (2)
В Выражении (2), D обозначает сумму квадратов разностей (то есть искажение кодирования) между целевым блоком предсказания и локально декодированным изображением, R обозначает объем кода, оцененный посредством предварительного кодирования ошибки предсказания между целевым блоком предсказания и предсказанным изображением 127 для режима предсказания, и J обозначает стоимость кодирования. Чтобы получить стоимость кодирования в Выражении (2), процесс предварительного кодирования и процесс локального декодирования должны быть осуществлены в каждом режиме предсказания. Это увеличивает масштаб релевантных схем или объем вычисления. С другой стороны, стоимость кодирования J получена на основе более точного искажения кодирования и более точного объема кода. Вследствие этого оптимальный режим предсказания точно определяется для обеспечения возможности простого поддержания высокой эффективности кодирования. В качестве модификации Выражения (2) стоимость кодирования может быть оценена только исходя из R или D или посредством использования значения, приближенного к R или D. К тому же блок 116 управления кодированием может, заранее, уменьшить число кандидатов для режима предсказания, один из которых определяется, используя Выражение (1) или Выражение (2), на основе информации, предварительно полученной для целевого блока предсказания (режимы предсказания для окружающих блоков пикселей, результаты анализа изображения и тому подобное).
Блок 116 управления кодированием управляет компонентами устройства кодирования изображения на Фиг. 1. Конкретно, блок 116 управления кодированием выполняет различные операции управления для процесса кодирования, включая вышеописанные операции.
Блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 126 предсказания из блока 110 выбора предсказания. Блок задания матрицы 1D преобразования затем выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования. Информация 129 задания матрицы 1D преобразования будет подробно описана ниже.
Блок 102 ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 2.
Блок 102 ортогонального преобразования включает в себя переключатель 201 выбора, блок 202 вертикального преобразования, блок 203 транспонирования, переключатель 204 выбора и блок 205 горизонтального преобразования. Блок 202 вертикального преобразования включает в себя блок A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования. Блок 205 горизонтального преобразования включает в себя блок A 208 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования. Порядок блока 202 вертикального преобразования и блока 205 горизонтального преобразования является иллюстративным и может быть обратным.
Блок A 206 1D ортогонального преобразования и блок A 208 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу A 1D преобразования. Блок B 207 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу B 1D преобразования. Таким образом, блок A 206 1D ортогонального преобразования и блок A 208 1D ортогонального преобразования могут быть также реализованы посредством использования физически одинакового аппаратного обеспечения с разделением по времени. Это также применяется к блоку B 207 1D ортогонального преобразования и блоку B 209 1D ортогонального преобразования.
Переключатель 201 выбора приводит ошибку 119 предсказания в один из блока A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования в соответствии с индексом вертикального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 206 1D ортогонального преобразования умножает входную ошибку 119 предсказания (матрицу) на матрицу A 1D преобразования и выводит произведение. Блок B 207 1D ортогонального преобразования умножает входную ошибку 119 предсказания на матрицу B 1D преобразования и выводит произведение. Конкретно, блок A 206 1D ортогонального преобразования и блок B 207 1D ортогонального преобразования (то есть блок 202 вертикального преобразования) осуществляют одномерное ортогональное преобразование, показанное в Равенстве (3), для устранения вертикальной корреляции в ошибке 119 предсказания.
Y=VX (3)
В Выражении (3), X обозначает матрицу (N×N) ошибки 119 предсказания, V всесторонне обозначает матрицу A 1D преобразования и матрицу B 1D преобразования (обе являются матрицами N×N), и Y обозначает выходную матрицу (N×N) из каждого из блока A 206 1D ортогонального преобразования и блока B 207 1D ортогонального преобразования. Конкретно, матрица V преобразования является матрицей преобразования N×N, в которой базис преобразования, спроектированный для устранения вертикальной корреляции в матрице X, является вертикальным как векторы-строки. Однако, как описано ниже, матрица A 1D преобразования и матрица B 1D преобразования спроектированы разным образом и имеют разные типы природы.
Матрица A 1D преобразования и матрица B 1D преобразования может использовать целые числа, полученные посредством спроектированного базиса преобразования, подвергнутые скалярному умножению.
Здесь, если ошибка 119 предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.
Блок 203 транспонирования транспонирует выходную матрицу (Y) из блока 202 вертикального преобразования и предоставляет транспонированную выходную матрицу (Y) переключателю 204 выбора. Однако блок 203 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y) может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 203 транспонирования, посредством сохранения результатов 1D ортогонального преобразования, осуществляемого блоком 202 вертикального преобразования, (каждого из элементов выходной матрицы из блока 202 вертикального преобразования) и загрузки результатов в должном порядке, когда блок 205 горизонтального преобразования выполняет 1D ортогональное преобразование.
Переключатель 204 выбора приводит входную матрицу из блока 203 транспонирования в один из блока A 208 1D ортогонального преобразования и блока B 209 1D ортогонального преобразования в соответствии с индексом горизонтального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 208 1D ортогонального преобразования умножает входную матрицу на матрицу A 1D преобразования и выводит произведение. Блок B 209 1D ортогонального преобразования умножает входную матрицу на матрицу B 1D преобразования и выводит произведение. Конкретно, блок A 208 1D ортогонального преобразования и блок B 209 1D ортогонального преобразования (то есть блок 205 горизонтального преобразования) осуществляют одномерное ортогональное преобразование, показанное в Равенстве (4), для устранения горизонтальной корреляции в ошибке пре