ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящего изобретения относятся к ортогональному преобразованию и обратному ортогональному преобразованию при кодировании и декодировании видео.
УРОВЕНЬ ТЕХНИКИ
В последние годы, способ кодирования изображения со значительно улучшенной эффективностью кодирования был совместно рекомендован 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), для устранения горизонтальной корреляции в ошибке предсказания.
Z=HYT (4)
В Равенстве (4), H всесторонне обозначает матрицу A 1D преобразования и матрицу B 1D преобразования (обе являются матрицами N×N), и Z обозначает выходную матрицу (N×N) от каждого из блока A 208 1D ортогонального преобразования и блока B 209 1D ортогонального преобразования; выходная матрица указывает коэффициенты 120 преобразования. Конкретно, матрица H преобразования является матрицей преобразования N×N, в которой базис преобразования, спроектированный для устранения горизонтальной корреляции в матрице Y, является вертикально расположенным как векторы-строки. Как описано выше, матрица A 1D преобразования и матрица B 1D преобразования спроектированы разным образом и имеют разные типы природы. К тому же, матрица A 1D преобразования и матрица B 1D преобразования может использовать целые числа, полученные посредством спроектированного базиса преобразования, подвергнутые скалярному умножению.
Как описано выше, блок 102 ортогонального преобразования осуществляет ортогональное преобразование, в соответствии с информацией 129 задания матрицы 1D преобразования, введенной из блока 112 задания матрицы 1D преобразования, ошибки 119 предсказания (матрицы) для генерирования коэффициентов 120 преобразования (матрицы). С помощью принятого во внимание H. 264 блок 102 ортогонального преобразования может включать в себя блок DCT (не показан на чертежах) или одна из матрицы A 1D преобразования и матрицы B 1D преобразования может быть заменена матрицей для DCT. Например, матрица B 1D преобразования может быть матрицей преобразования для DCT. Более того, блок 102 ортогонального преобразования может реализовать, в дополнение к DCT, различные ортогональные преобразования, такие как преобразование Адамара, преобразование Карунена-Лоэва, описанное ниже, и дискретное синусное преобразование.
Теперь будет описана разница в природе между матрицей A 1D преобразования и матрицей B 1D преобразования. Некоторые режимы внутреннего предсказания, поддерживаемые посредством H. 264 и тому подобным, генерируют предсказанное изображение посредством копирования, вдоль направления предсказания, причем группа опорных пикселей на одной или обеих смежных линиях, размещенных слева от или выше целевого блока предсказания, или осуществляя аналогичное копирование после интерполяции. То есть, этот режим внутреннего предсказания выбирает по меньшей мере один опорный пиксель из группы опорных пикселей в соответствии с направлением предсказания и копирует опорный пиксель или осуществляет интерполяцию, используя опорные пиксели, чтобы сгенерировать предсказанное изображение. Режим внутреннего предсказания использует пространственную корреляцию в изображении и таким образом имеет точность предсказания, которая имеет тенденцию уменьшаться с увеличением расстояния от опорного пикселя. То есть, абсолютное значение ошибки предсказания, вероятно, увеличится согласно расстоянию от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Более конкретно, в связи с режимами внутреннего предсказания (например, режим 1 и режим 8 на Фиг. 7A), в которых ссылаются (значения пикселей опорных пикселей копируются, или интерполяция осуществляется, используя опорные пиксели) только на группу опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в горизонтальном направлении. В связи с режимами предсказания, в которых ссылаются (например, режим 0, режим 3 и режим 7 на Фиг. 7A) только на группу опорных пикселей на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет тенденцию в вертикальном направлении. Более того, в связи с режимами предсказания (например, режим 4, режим 5 и режим 6 на Фиг. 7A), в которых ссылаются на группы опорных пикселей на линии, размещенной слева от или рядом с целевым блоком предсказания, и на линии, размещенной выше или рядом с целевым блоком предсказания, ошибка предсказания проявляет такую тенденцию в горизонтальном направлении и вертикальном направлении. В общем, тенденция проявляется в направлении, ортогональном линии группы опорных пикселей, используемом для генерирования предсказанного изображения.
Матрица A 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей B 1D преобразования, плотность коэффициентов 1D ортогонального преобразования (то есть, уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в ортогональном направлении (вертикальном направлении или горизонтальном направлении). С другой стороны, матрица B 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Например, преобразованием общего назначения является DCT. Эффективность преобразования ошибки предсказания при внутреннем предсказании и, таким образом, эффективность кодирования улучшается посредством осуществления 1D ортогонального преобразования в ортогональном направлении, используя матрицу A 1D преобразования. Например, ошибка 119 предсказания в режиме 0 (вертикальное предсказание) проявляет тенденцию в вертикальном направлении, но не в горизонтальном направлении. Отсюда, эффективность ортогонального преобразования может быть достигнута посредством осуществления 1D ортогонального преобразования в блоке 202 вертикального преобразования, используя матрицу A 1D преобразования, и осуществления 1D ортогонального преобразования в блоке 205 горизонтального преобразования, используя матрицу B 1D преобразования.
Блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления будет подробно описан ниже со ссылкой на Фиг. 3.
Блок 105 обратного ортогонального преобразования включает в себя переключатель 301 выбора, блок 302 вертикального обратного преобразования, блок 303 транспонирования, переключатель 304 выбора и блок 305 горизонтального обратного преобразования. Блок 302 вертикального обратного преобразования включает в себя блок A 306 1D обратного ортогонального преобразования и блок B 307 1D обратного ортогонального преобразования. Блок 305 горизонтального обратного преобразования включает в себя блок A 308 1D обратного ортогонального преобразования и блок B 309 1D обратного ортогонального преобразования. Порядок блока 302 вертикального обратного преобразования и блока 305 горизонтального обратного преобразования является иллюстративным и может быть обратным.
Блок A 306 1D обратного ортогонального преобразования и блок A 308 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы A 1D преобразования. Блок B 307 1D обратного ортогонального преобразования и блок B 309 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы B 1D преобразования. Таким образом, блок A 306 1D обратного ортогонального преобразования и блок A 308 1D обратного ортогонального преобразования могут быть также реализованы посредством использования физически одинакового аппаратного обеспечения с разделением по времени. Это также применяется к блоку B 307 1D обратного ортогонального преобразования и блоку B 309 1D обратного ортогонального преобразования.
Переключатель 301 выбора приводит восстановленные коэффициенты 122 преобразования в один из блока A 306 1D обратного ортогонального преобразования и блока B 307 1D обратного ортогонального преобразования в соответствии с индексом вертикального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 306 1D обратного ортогонального преобразования умножает входные коэффициенты 122 преобразования (форма матрицы) на транспонированную матрицу матрицы A 1D преобразования и выводит произведение. Блок B 307 1D обратного ортогонального преобразования умножает входные коэффициенты 122 преобразования на транспонированную матрицу матрицы B 1D преобразования и выводит произведение. Конкретно, блок A 306 обратного ортогонального преобразования и блок B 307 обратного ортогонального преобразования (то есть, блок 302 вертикального обратного преобразования) осуществляют одномерное обратное ортогональное преобразование, показанное в:
Y'=VTZ' (5)
В Выражении (5), Z' обозначает матрицу (N×N) восстановленных коэффициентов 122 преобразования, VT всесторонне обозначает транспонированные матрицы для матрицы A 1D преобразования и матрицы B 1D преобразования (обе являются матрицами N×N), и Y обозначает выходную матрицу (N×N) из каждого из блока A 306 1D обратного ортогонального преобразования и блока B 307 1D обратного ортогонального преобразования.
Блок 303 транспонирования транспонирует выходную матрицу (Y') из блока 202 вертикального обратного преобразования и выводит транспонированную выходную матрицу в переключатель 304 выбора. Однако блок 303 транспонирования является иллюстративным, и соответствующее аппаратное обеспечение не обязательно должно быть подготовлено. Например, выходная матрица (Y') может быть транспонирована без необходимости подготовления аппаратного обеспечения, соответствующего блоку 303 транспонирования, посредством сохранения результатов 1D обратного ортогонального преобразования, осуществляемого блоком 302 обратного вертикального преобразования (каждого из элементов выходной матрицы из блока 302 обратного вертикального преобразования), и загрузки результатов в должном порядке, когда блок 305 горизонтального обратного преобразования выполняет 1D обратное ортогональное преобразование.
Переключатель 304 выбора приводит входную матрицу из блока 303 транспонирования в один из блока A 308 1D обратного ортогонального преобразования и блока B 309 1D обратного ортогонального преобразования в соответствии с индексом горизонтального преобразования, включенным в информацию 129 задания матрицы 1D преобразования. Блок A 308 1D обратного ортогонального преобразования умножает входную матрицу на транспонированную матрицу матрицы A 1D преобразования и выводит произведение. Блок B 309 1D обратного ортогонального преобразования умножает входную матрицу на транспонированную матрицу матрицы B 1D преобразования и выводит произведение. Конкретно, блок A 308 обратного ортогонального преобразования и блок B 309 обратного ортогонального преобразования (то есть, блок 305 горизонтального обратного преобразования) осуществляют одномерное обратное ортогональное преобразование, показанное в:
X'=HTY'T (6)
В Равенстве (6), HT всесторонне обозначает транспонированные матрицы для матрицы A 1D преобразования и матрицы B 1D преобразования (обе являются матрицами N×N), и X' обозначает выходную матрицу (N×N) от каждого из блока A 308 1D обратного ортогонального преобразования и блока B 309 1D обратного ортогонального преобразования; выходная матрица указывает восстановленную ошибку 123 предсказания.
Как описано выше, блок 105 обратного ортогонального преобразования осуществляет ортогональное преобразование, в соответствии с информацией 129 задания матрицы 1D преобразования, введенной из блока 112 задания матрицы 1D преобразования, восстановленных коэффициентов 122 преобразования (матрицы) для генерирования восстановленной ошибки 123 предсказания (матрицы). С помощью принятого во внимание H. 264 блок 105 обратного ортогонального преобразования может включать в себя блок IDCT (не показан на чертежах) или одна из матрицы A 1D преобразования и матрицы B 1D преобразования может быть заменена матрицей для DCT. Например, матрица B 1D преобразования может быть матрицей преобразования для DCT. Более того, блок 105 обратного ортогонального преобразования может реализовать, в дополнение к IDCT, обратные ортогональные преобразования, соответствующие различным ортогональным преобразованиям, такие как преобразование Адамара, преобразование Карунена-Лоэва, описанное ниже, и дискретное синусное преобразование для координации с блоком 102 ортогонального преобразования.
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, которая генерируется блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 4D. Ссылка на таблицу на Фиг. 4D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекса горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.
Как показано на Фиг. 4B, индекс вертикального преобразования "0" обеспечивает возможность выбора матрицы A 1D преобразования (1D_Transform_Matrix_A) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора матрицы B 1D преобразования (1D_Transform_Matrix_B) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.
Как показано на Фиг. 4С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы A 1D преобразования (1D_Transform_Matrix_A) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы B 1D преобразования (1D_Transform_Matrix_B) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.
К тому же, на Фиг. 4A проиллюстрирован индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode), и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 4A, "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть, прямоугольники вместо квадратов).
Фиг. 4E получена посредством объединения Фиг. 4A и Фиг. 4D вместе и показывает индекс для каждого режима предсказания, имя индекса и соответствующий индекс преобразования.
Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания из информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 4A, Фиг. 4B, Фиг. 4C, Фиг. 4D и Фиг. 4E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.
Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 0 и что индекс горизонтального преобразования указывает 0. Это означает, что матрица A 1D преобразования используется для вертикального ортогонального преобразования и что матрица A 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы A 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы A 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0 и что индекс горизонтального преобразования указывает 1. Это означает, что матрица A 1D преобразования используется для вертикального ортогонального преобразования и что матрица B 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы A 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы B 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1 и что индекс горизонтального преобразования указывает 0. Это означает, что матрица B 1D преобразования используется для вертикального ортогонального преобразования и что матрица A 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы B 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы A 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 1 и что индекс горизонтального преобразования указывает 1. Это означает, что матрица B 1D преобразования используется для вертикального ортогонального преобразования и что матрица B 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы B 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы B 1D преобразования используется для горизонтального обратного ортогонального преобразования.
Таблица, показанная на Фиг. 4A, назначает информацию 129 задания матрицы 1D преобразования, учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть, 0 назначается индексу вертикального преобразования для режимов предсказания, проявляющих тенденцию в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования для режимов предсказания, проявляющих тенденцию в горизонтальном направлении. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию.
Когда вертикальное и горизонтальное направления предсказания классифицируются на два класса, в зависимости от того, существует ли тенденция и применяется ли адаптивно матрица A 1D преобразования или матрица B 1D преобразования к каждому из вертикального и горизонтального направлений, может быть достигнута более высокая эффективность преобразования, чем в случае, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.
Блок 113 управления порядком коэффициентов будет подробно описан ниже.
Блок 113 управления порядком коэффициентов преобразует квантованные коэффициенты 121 преобразования, которые являются двухмерным выражением, в последовательность 117 квантованных коэффициентов преобразования, которая является одномерным выражением, посредством расположения элементов квантованных коэффициентов 121 преобразования согласно предварительно определенному порядку. В качестве примера, блок 113 управления порядком коэффициентов может осуществлять общее 2D-1D преобразование независимо от режима предсказания. Конкретно, блок 113 управления порядком коэффициентов может использовать зигзагообразное сканирование как в случае с H. 264. Зигзагообразное сканирование располагает элементы квантованных коэффициентов 121 преобразования в таком порядке, как показано на Фиг. 8A, и преобразует элементы в такую последовательность 117 квантованных коэффициентов преобразования, как показано на Фиг. 8B. На Фиг. 8A и Фиг. 8B, (i, j) обозначает координаты (информацию о положении) каждого элемента в квантованных коэффициентах 121 преобразования (матрице). К тому же, на Фиг. 2C показано 2D-1D преобразование, использующее зигзагообразное сканирование (в случае блока пикселей 4×4). Конкретно, на Фиг. 8C показан индекс (idx), указывающий порядок коэффициентов (порядок сканирований) в последовательности 117 квантованных коэффициентов преобразования, подверженной 2D-1D преобразованию, использующему зигзагообразное сканирование, и соответствующие элементы (cij) квантованных коэффициентов 121 преобразования. На Фиг. 8C, cij обозначает элементы с координатами (i, j) в квантованных коэффициентах 121 преобразования (матрице).
В качестве другого примера, блок 113 управления порядком коэффициентов может осуществлять индивидуальные 2D-1D преобразования для соответствующих режимов предсказания. Блок 113 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 5A. Блок 113 управления порядком коэффициентов включает в себя переключатель 501 выбора и блоки индивидуального 2D-1D преобразования 502,..., и 510 для соответственных девяти типов режимов предсказания. В соответствии с информацией режима предсказания (например, индексы режимов предсказания на Фиг. 4A), включенной в информацию 126 предсказания, переключатель 501 выбора приводит квантованные коэффициенты 121 преобразования в блок 2D-1D преобразования, соответствующий режиму предсказания (один из блоков 502,..., 510 2D-1D преобразования). Например, индекс режима предсказания 0 обеспечивает возможность переключателю 501 выбора приводить квантованные коэффициенты 121 преобразования в блок 502 2D-1D преобразования. На Фиг. 5A, режимы предсказания и блоки 2D-1D преобразования находятся во взаимно-однозначном соответствии. Квантованные коэффициенты 121 преобразования приводятся в один блок 2D-1D преобразования, соответствующий режиму предсказания. На Фиг. 9 показано 2D-1D преобразование, осуществляемое посредством каждого из блоков 502,..., 510 2D-1D преобразования (в случае блока пикселей 4×4). Конкретный метод проектирования для 2D-1D преобразования для каждого режима предсказания, как показано на Фиг. 9, будет описан ниже. На Фиг. 9 показан индекс (idx), указывающий порядок коэффициентов (порядок сканирований) в последовательности 117 квантованных коэффициентов преобразования, подверженной 2D-1D преобразованию посредством блока 2D-1D преобразования, и соответствующие элементы (cij) квантованных 121 коэффициентов преобразования. На Фиг. 9, cij обозначает элементы с координатами (i, j) в квантованных коэффициентах 121 преобразования (матрице). К тому же, на Фиг. 9 каждый режим предсказания выражен своим именем, и соответствие между именами и индексом режима предсказания является таким, как показано на Фиг. 4A. Таким образом, применение индивидуальных 2D-1D преобразований для соответственных режимов предсказания, например, обеспечивает возможность сканирования коэффициентов в порядке, подходящем для данной тенденции, чтобы сгенерировать ненулевые коэффициенты в квантованных коэффициентах 121 преобразования для каждого режима предсказания. Это увеличивает эффективность кодирования.
Для упрощения, показан пример, касающийся блока пикселей 4×4. Однако для блока пикселей 8×8, блока пикселей 16×16 и тому подобных индивидуальные 2D-1D преобразования для соответственных режимов предсказания могут быть аналогично установлены. К тому же, блок пикселей является прямоугольным блоком, выраженным как M×N, размер блока, который следует подвергнуть 2D-1D преобразованию, может быть также M×N. В этом случае, для прямоугольного блока такие индивидуальные 2D-1D преобразования, как проиллюстрировано на Фиг. 9, могут быть установлены для соответственных режимов предсказания.
В еще одном примере, блок 113 управления порядком коэффициентов может динамически обновлять порядок сканирования для 2D-1D преобразования. Блок 113 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 5B. Блок 113 управления порядком коэффициентов включает в себя переключатель 501 выбора, блоки индивидуального 2D-1D преобразования 502,..., и 510 для соответственных девяти типов режимов предсказания, блок 511 подсчета частоты возникновения и блок 512 обновления порядка коэффициентов. Переключатель 501 выбора является таким, как описано со ссылкой на Фиг 5A. Блоки индивидуального 2D-1D преобразования 502,..., и 510 для соответственных девяти типов режимов предсказания отличаются от блоков 2D-1D преобразования, показанных на Фиг. 5A в том, что порядок сканирования для блоков 502,..., и 510 2D-1D преобразования обновляется блоком 512 обновления порядка коэффициентов.
Блок 511 подсчета частоты возникновения создает, для каждого режима предсказания, гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 117 квантованных коэффициентов преобразования. Блок 511 подсчета частоты возникновения вводит созданную гистограмму 513 в блок 512 обновления порядка коэффициентов.
Блок 512 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 513. Временной интервал может быть, например, временным интервалом, когда завершен процесс кодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс кодирования, осуществляемый над одной линией в единице дерева кодирования.
Конкретно, блок 512 обновления порядка коэффициентов ссылается на гистограмму 513 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 512 обновления порядка коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.
Блок 512 обновления порядка коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например пузырьковая сортировка или быстрая сортировка. Блок 512 обновления порядка коэффициентов вводит информацию 514 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 2D-1D преобразования, соответствующий режиму предсказания цели обновления.
Как только информация 514 обновления порядка коэффициентов введена в блок 2D-1D преобразования, блок 2D-1D преобразования осуществляет 2D-1D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 2D-1D преобразования. Например, зигзагообразное сканирование или порядок сканирования, проиллюстрированные на Фиг. 9, могут быть использованы в качестве первоначального порядка сканирования.
Динамическое обновление порядка сканирования предполагается для достижения стабильно высокой эффективности кодирования, даже если тенденция для генерирования ненулевых коэффициентов в квантованных коэффициентах 121 преобразования варьируется в зависимости от природы предсказанного изображения, информации квантования (параметра квантования) и тому подобного. Конкретно, объем кода, сгенерированного при кодировании длины серий в блоке 114 энтропийного кодирования, может быть уменьшена.
Для упрощения, был проиллюстрирован H. 264 и был описан случай девяти типов режимов предсказания. Однако, даже если число типов режима предсказания увеличено до 17, 33 или тому подобного, индивидуальные 2D-1D преобразования для соответственных режимов предсказания могут быть достигнуты посредством добавления блоков 2D-1D преобразования, соответствующих режимам предсказания, возникающим в результате данного увеличения.
Обработка, осуществляемая над целевым блоком кодирования (единицей дерева кодирования) устройством кодирования изображения на Фиг. 1, будет описана ниже со ссылкой на Фиг. 10A и Фиг. 10B. В примере, показанном на Фиг. 10A и Фиг. 10B, предполагается, что позволены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления (то есть, адаптивное ортогональное преобразование и обратное ортогональное преобразование на основе информации 129 задания матрицы 1D преобразования). Однако, как описано ниже, синтаксис может быть задан, чтобы запретить ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.
Как только входное изображение 118 введено в устройство кодирования изображения на Фиг. 1 в единицах целевого блока кодирования, начинается процесс кодирования целевого блока кодирования (этап S601). Блок 108 внутреннего предсказания и блок 109 внешнего предсказания используют опорное изображение 125, сохраненное в память 107 опорного изображения, для генерирования изображения, предсказанного посредством внутреннего предсказания, и изображения, предсказанного посредством внутреннего предсказания (этап S602). Блок 116 управления кодированием определяет оптимальный режим предсказания в том, что касается вышеописанной стоимости кодирования, чтобы сгенерировать информацию 126 предсказания (этап S603). Информация 126 предсказания вводится в каждый элемент блоком 110 выбора предсказания, как описано выше. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внутреннее предсказание, обработка переходит к этапу S605. Если информация 126 предсказания, сгенерированная на этапе S603, указывает на внешнее предсказание, обработка переходит к этапу S605'.
На этапе S605, блок 101 вычитания вычитает изображение 127, предсказанное посредством (внутреннего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S606. С другой стороны, также на этапе S605', блок 101 вычитания вычитает изображение 127, предсказанное посредством (внешнего) предсказания из целевого блока кодирования для генерирования ошибки 119 предсказания. Обработка затем переходит к этапу S614'.
На этапе S606, блок 112 задания матрицы 1D преобразования извлекает информацию режима предсказания, включенную в информацию 126 предсказания, сгенерированную на этапе S603. На основе извлеченной информации режима предсказания (например, ссылкой на таблицу на Фиг. 4A), блок 112 задания матрицы 1D преобразования генерирует информацию 129 задания матрицы 1D преобразования (этап S607). Блок 112 задания матрицы 1D преобразования выводит информацию 129 задания матрицы 1D преобразования в блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования.
Переключатель 201 выбора в блоке 102 ортогонального преобразования выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S608, этап S609 и этап S610). С другой стороны, переключатель 204 выбора в блоке 102 ортогонального преобразования выбирает блок A 208 1D ортогонального преобразования или блок B 209 ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S611, этап S612 и этап S613). Обработка затем переходит к этапу S614.
Например, если индекс преобразования (TransformIdx), пример информации 129 задания матрицы 1D преобразования, 0, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S609). Если TransformIdx 0, переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S612). Если TransformIdx 1, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S609). Если TransformIdx 1, переключатель 204 выбора выбирает блок B 209 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S613). Если TransformIdx 2, переключатель 201 выбора выбирает блок B 207 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S610). Если TransformIdx 2, переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S612). Если TransformIdx 3, переключатель 201 выбора выбирает блок B 207 1D ортогонального преобразования в блоке 202 вертикального преобразования (этап S610). Если TransformIdx 3, переключатель 204 выбора выбирает блок B 209 1D ортогонального преобразования в блоке 205 горизонтального преобразования (этап S613).
На этапе S614, блок 102 ортогонального преобразования осуществляет вертикальное преобразование и горизонтальное преобразование, которые соответствуют заданиям, сделанным на этапе S608,... и этапе S613, ошибки 119 предсказания для генерирования коэффициентов 120 преобразования. Впоследствии, блок 103 квантования квантует коэффициенты 120 преобразования, сгенерированные на этапе S614 (этап S615). Обработка затем переходит к этапу S616.
С другой стороны, на этапе S614', блок 102 ортогонального преобразования осуществляет фиксированное ортогональное преобразование, например, DCT, ошибки 119 предсказания для генерирования коэффициентов 120 преобразования. Впоследствии, блок 103 квантования квантует коэффициенты 120 преобразования, сгенерированные на этапе S614' для генерирования квантованных коэффициентов 121 преобразования (этап S615'). Обработка переходит к этапу S617'. Ортогональное преобразование, осуществляемое на этапе S614', может быть реализовано блоком DCT (не показан на чертежах) или блоком B 207 1D ортогонального преобразования и блоком B 209 1D ортогонального преобразования.
На этапе s616, блок 113 управления порядком коэффициентов задает порядок сканирования (то есть, в примере, показанном на Фиг. 5A и Фиг. 5B, блок, к которому присоединен переключатель 501 выбора) на основе информации режима предсказания, включенной в информацию 126 предсказания, сгенерированную на этапе S603. Обработка переходит к этапу S617. Если блок 113 управления порядком коэффициентов осуществляет общее 2D-1D преобразование независимо от режима предсказания, этап S616 может быть опущен.
На этапе S617, блок 113 управления порядком коэффициентов осуществляет 2D-1D преобразование, соответствующее заданию, сделанному на этапе S616, квантованных коэффициентов 121 преобразования для генерирования последовательности 117 квантованных коэффициентов преобразования. Впоследствии блок 114 энтропийного кодирования осуществляет энтропийное кодирование параметров кодирования, включающих в себя последовательность 117 квантованных коэффициентов преобразования (этап S618). Кодированные данные выводятся с должным временным интервалом, управляемым блоком 116 управления кодированием. С другой стороны, блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования для генерирования восстановленных квантованных коэффициентов 122 преобразования (этап S619). Обработка переходит к этапу S620.
На этапе S617', блок 113 управления порядком коэффициентов осуществляет, например, фиксированное 2D-1D преобразование, такое как зигзагообразное сканирование, или 2D-1D преобразование, соответствующее Intra_NxN_DC на Фиг. 9, квантованных коэффициентов 121 преобразования для генерирования последовательности 117 квантованных коэффициентов преобразования. Впоследствии, блок 114 энтропийного кодирования осуществляет энтропийное кодирование параметров кодирования, включающих в себя последовательность 117 квантованных коэффициентов преобразования (этап S618'). Кодированные данные выводятся с должным временным интервалом, управляемым блоком 116 управления кодированием. С другой стороны, блок 104 деквантования деквантует квантованные коэффициенты 121 преобразования для генерирования восстановленных квантованных коэффициентов 122 преобразования (этап S619'). Обработка затем переходит к этапу S626'.
Переключатель 301 выбора в блоке 105 обратного ортогонального преобразования выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S620, этап S621 и этап S622). С другой стороны, переключатель 304 выбора в блоке 105 обратного ортогонального преобразования выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования (этап S623, этап S624 и этап S625). Обработка затем переходит к этапу S626.
Например, если индекс преобразования (TransformIdx), пример информации 129 задания матрицы 1D преобразования, 0, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S621). Если TransformIdx 0, переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S624). Если TransformIdx 1, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S621). Если TransformIdx 1, переключатель 304 выбора выбирает блок B 309 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S625).
Если TransformIdx 2, переключатель 301 выбора выбирает блок B 307 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S622). Если TransformIdx 2, переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S624). Если TransformIdx 3, переключатель 301 выбора выбирает блок B 307 1D обратного ортогонального преобразования в блоке 302 вертикального обратного преобразования (этап S622). Если TransformIdx 3, переключатель 304 выбора выбирает блок B 309 1D обратного ортогонального преобразования в блоке 305 горизонтального обратного преобразования (этап S625).
На этапе S626, блок 105 обратного ортогонального преобразования осуществляет вертикальное преобразование и горизонтальное преобразование, которые соответствуют заданиям, сделанным на этапе S620,... и этапе S625, восстановленных коэффициентов 122 преобразования для генерирования восстановленной ошибки 123 предсказания. Обработка переходит к этапу S627. На этапе S626', блок 105 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование, например, IDCT, восстановленных коэффициентов 122 преобразования для генерирования восстановленной ошибки 123 предсказания. Обработка затем переходит к этапу S627. Фиксированное обратное ортогональное преобразование, осуществляемое на этапе S626', может быть реализовано блоком IDCT (не показан на чертежах) или блоком B 307 1D обратного ортогонального преобразования и блоком B 309 1D обратного ортогонального преобразования.
На этапе S627, блок 106 сложения прибавляет восстановленную ошибку 123 предсказания, сгенерированную на этапе S626 или S626', к соответствующему предсказанному изображению 127, чтобы сгенерировать локально декодированное изображение 124. Локально декодированное изображение 124 сохраняется в память 107 опорного изображения, в качестве опорного изображения. Таким образом, процесс кодирования целевого блока кодирования заканчивается (этап S628).
Метод для проектирования матрицы A 1D преобразования и матрицы B 1D преобразования будет описан ниже. Согласно H. 264, девять типов режимов предсказания установлены для блока пикселей 4×4 и блока пикселей 8×8. Четыре типа режимов предсказания установлены для блока пикселей 16×16.
Сначала генерируется ошибка 119 предсказания для каждого режима предсказания. Собраны те из ошибок 119 предсказания для соответственных режимов предсказания, которые проявляют, в вертикальном направлении или горизонтальном направлении, вышеописанную тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Затем осуществляется сингулярная декомпозиция матрицы, в которой направление с проявленной в нем тенденцией установлено как направление столбца и в которой ошибки 119 предсказания расположены в направлении ряда. Таким образом, спроектирован 1D ортогональный базис, который устраняет вертикальную корреляцию в матрице. 1D ортогональный базис расположен в направлении столбца, как векторы-строки, для генерирования матрицы A 1D преобразования.
С другой стороны, осуществляется сингулярная декомпозиция матрицы, в которой направление с не проявленной в нем тенденцией установлено как направление столбца и в которой ошибки 119 предсказания расположены в направлении ряда. Таким образом, сгенерирован 1D ортогональный базис, который устраняет вертикальную корреляцию в матрице. 1D ортогональный базис расположен в направлении столбца, как векторы-строки, для генерирования матрицы B 1D преобразования. Матрица B 1D преобразования может быть просто заменена матрицей для DCT. Для упрощения, было проиллюстрировано проектирование для блока пикселей 4×4. Однако матрицы 1D преобразования для блоков пикселей 8×8 и блоков пикселей 16×16 могут быть аналогично спроектированы. К тому же, вышеописанный метод проектирования является иллюстративным, и проектирование может быть осуществлено в случае необходимости из-за вышеописанной природы учтенной ошибки предсказания.
Конкретный метод проектирования для 2D-1D преобразования для каждого режима предсказания (порядок сканирования), как проиллюстрировано на Фиг. 9, будет описан ниже. Порядок сканирования для каждого режима предсказания может быть спроектирован на основе квантованных коэффициентов 121 преобразования, сгенерированных блоком 103 квантования. Например, проектирование для блока пикселей 4×4 подготавливает множество обучающих изображений для генерирования ошибки 119 предсказания для каждого из девяти типов режимов предсказания. Ортогональные преобразования, показанные в Выражении (3) и Выражении (4), осуществляются над каждой ошибкой 119 предсказания для генерирования коэффициентов 120 преобразования. Затем коэффициенты 120 преобразования квантуются. В связи с квантованными коэффициентами 121 преобразования, число возникновений ненулевых коэффициентов кумулятивно добавляется для каждого из элементов блока пикселей 4×4. Кумулятивное добавление осуществляется на всех обучающих изображениях для создания гистограммы, указывающей частоту возникновения ненулевых коэффициентов для каждого из 16 элементов блока пикселей 4×4. На основе гистограммы, индексы от 0 до 15 назначаются элементам в порядке уменьшения частоты возникновения. Такое назначение индексов индивидуально осуществляется на всех режимах предсказания. Порядок назначенных индексов используется в качестве порядка сканирования, соответствующего каждому режиму предсказания.
Для упрощения, была проиллюстрировано проектирование блока пикселей 4×4. Однако порядки сканирования для блоков пикселей 8×8 и блоков пикселей 16×16 могут быть аналогично спроектированы. К тому же, даже если число режимов предсказания увеличено до 17, 33 или любого другого значения, данное проектирование может быть достигнуто, используя аналогичный метод. Метод для динамического обновления порядка сканирования описан со ссылкой на Фиг. 5B.
Синтаксис, используемый устройством кодирования изображения на Фиг. 1, будет описан.
Синтаксис указывает структуру кодированных данных (пример кодированных данных 130 на Фиг. 1), полученных устройством кодирования изображения, кодирующего видеоданные. Когда кодированные данные декодируются, устройство декодирования изображения ссылается на ту же структуру данных для интерпретации синтаксиса. На Фиг. 11 проиллюстрирован синтаксис 700, используемый устройством кодирования изображения на Фиг. 1.
Синтаксис 700 включает в себя три части, то есть высокоуровневый синтаксис 701, синтаксис 702 уровня вырезки и синтаксис 703 уровня дерева кодирования. Высокоуровневый синтаксис 701 включает в себя информацию синтаксиса на уровне, более высоком, чем вырезка. Вырезка относится к прямоугольной области или непрерывной области, включенной в кадр или поле. Синтаксис 702 уровня вырезки включает в себя информацию, требуемую для декодирования каждой вырезки. Синтаксис 703 уровня дерева кодирования включает в себя информацию, требуемую для декодирования каждого дерева кодирования (то есть, каждой единицы дерева кодирования). Каждая из этих частей включает в себя дополнительно детализированный синтаксис.
Высокоуровневый синтаксис 701 включает в себя синтаксис уровня последовательности и синтаксис уровня картинки, такие как синтаксис 704 задания параметров последовательности и синтаксис 705 задания параметров картинки. Синтаксис 702 уровня вырезки включает в себя синтаксис 706 заголовка вырезки и синтаксис 707 данных вырезки. Синтаксис 703 уровня дерева кодирования включает в себя синтаксис 708 единицы дерева кодирования и синтаксис 709 единицы предсказания.
Синтаксис 708 единицы дерева кодирования может иметь структуру тетрарного дерева. Конкретно, в качестве элемента синтаксиса синтаксиса 708 единицы дерева кодирования, синтаксис 708 единицы дерева кодирования может быть дополнительно рекурсивно привлечен. То есть, одна единица дерева кодирования может быть разделена на куски, используя тетрарные деревья. К тому же, синтаксис 708 единицы дерева кодирования содержит синтаксис 710 единицы преобразования. Синтаксис 710 единицы преобразования привлекается при каждом синтаксисе 708 единицы дерева кодирования, размещенном на конце тетрарного дерева. Синтаксис 710 единицы преобразования имеет информацию по обратному ортогональному преобразованию, квантованию и тому подобном, описанным в ней.
На Фиг. 12 проиллюстрирован синтаксис 706 заголовка вырезки согласно настоящему варианту осуществления. slice_directional_unified_transform_flag, показанный на Фиг. 12 является, например, элементом синтаксиса, который указывает, позволены или запрещены для определенной вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.
slice_directional_unified_transform_flag 0 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления позволены в данной вырезке. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть, посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же, блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.
В качестве примера, slice_directional_unified_transform_flag 1 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления позволены во всей данной вырезке. То есть, процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502,... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.
К тому же, в другом примере, если slice_directional_unified_transform_flag 1, синтаксис в нижнем слое (таком как единица дерева кодирования или единица преобразования) может быть задан для указания, позволены или запрещены для каждой локальной области внутри вырезки ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления.
На Фиг. проиллюстрирован синтаксис 708 единицы дерева кодирования согласно настоящему варианту осуществления.
ctb_directional_unified_transform_flag, показанный на Фиг. 13, является элементом синтаксиса, указывающим, позволены или запрещены для определенной единицы кодирования ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления. К тому же, pred_mode, показанный на Фиг. 13, является элементом синтаксиса, включенным в синтаксис 709 единицы предсказания, и указывает тип кодирования в единице дерева кодирования или макроблоке. MODE_INTRA указывает, что типом кодирования является внутреннее предсказание.
ctb_directional_unified_transform_flag кодируется, только когда вышеописанный slice_directional_unified_transform_flag 1 и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.
ctb_directional_unified_transform_flag 0 означает, что ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления запрещены в единице дерева кодирования. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное преобразование, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть, посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же, блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.
С другой стороны, ctb_directional_unified_transform_flag 1 позволяет ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице кодирования. Затем процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502,... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.
Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 708 единицы дерева кодирования, как в примере на Фиг. 13, объем информации (объем кода) увеличивается по сравнению с тем, когда флаг не кодируется. Однако кодирование флага позволяет осуществления оптимального ортогонального преобразования для каждой локальной области (то есть, для каждой единицы дерева кодирования).
На Фиг. 14 проиллюстрирован синтаксис 710 единицы преобразования согласно настоящему варианту осуществления.
tu_directional_unified_transform_flag, показанный на Фиг. 14, является элементом синтаксиса, указывающим позволены или запрещены для определенной единицы преобразования ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления. К тому же, pred_mode, показанный на Фиг. 14, является элементом синтаксиса, включенным в синтаксис 709 единицы предсказания, и указывает тип кодирования в определенной единице дерева кодирования или макроблоке. MODE_INTRA указывает, что типом кодирования является внутреннее предсказание.
tu_directional_unified_transform_flag кодируется, только когда вышеописанный slice_directional_unified_transform_flag 1 и когда тип кодирования единицы дерева кодирования является внутренним предсказанием.
tu_directional_unified_transform_flag 0 запрещает ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице преобразования. Отсюда, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования осуществляют фиксированные ортогональное преобразование и обратное ортогональное преобразование, такие как DCT и IDCT. Фиксированные ортогональное преобразование и обратное ортогональное преобразование могут быть осуществлены блоком B 207 1D ортогонального преобразования, блоком B 209 1D ортогонального преобразования, блоком B 307 1D обратного ортогонального преобразования и блоком B 209 1D обратного ортогонального преобразования (то есть, посредством матрицы B 1D преобразования) или блоком DCT и IDCT (ни один из блоков не показан на чертежах). К тому же, блок 113 управления порядком коэффициентов осуществляет фиксированное 2D-1D преобразование (например, зигзагообразное сканирование). Фиксированное 2D-1D преобразование может быть осуществлено блоком 504 2D-1D преобразования (режим 2) или блоком 2D-1D преобразования, не показанным не чертежах.
С другой стороны, tu_directional_unified_transform_flag 1 позволяет ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления в единице преобразования. Затем процесс кодирования осуществляется в соответствии с вышеописанной схемой последовательности операций кодирования на Фиг. 10A и Фиг. 10B. То есть, переключатель 201 выбора выбирает блок A 206 1D ортогонального преобразования или блок B 207 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 204 выбора выбирает блок A 208 1D ортогонального преобразования или блок B 209 1D ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. К тому же, переключатель 301 выбора выбирает блок A 306 1D обратного ортогонального преобразования или блок B 307 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Переключатель 304 выбора выбирает блок A 308 1D обратного ортогонального преобразования или блок B 309 1D обратного ортогонального преобразования на основе информации 129 задания матрицы 1D преобразования. Более того, переключатель 501 выбора выбирает один из блоков 502,... и 510 2D-1D преобразования в соответствии с информацией режима предсказания, включенной в информацию 126 предсказания.
Когда флаг, задающий, позволены или запрещены ортогональное преобразование и обратное ортогональное преобразование согласно настоящему варианту осуществления, кодируется в синтаксисе 710 единицы преобразования, как в примере на Фиг. 14, объем информации (объем кода) увеличивается по сравнению с тем, когда флаг не кодируется. Однако кодирование флага позволяет осуществления оптимального ортогонального преобразования для каждой локальной области (то есть, для каждой единицы преобразования).
Элементы синтаксиса, не заданные согласно настоящему варианту осуществления, или описания других условных переходов, могут быть вставлены между рядами в синтаксических таблицах, проиллюстрированных на Фиг. 12, Фиг. 13 и Фиг. 14. К тому же, синтаксическая таблица может быть разделена на множество таблиц или множество синтаксических таблиц может быть унифицировано. Дополнительно, проиллюстрированные термины для элементов синтаксиса могут быть опционально изменены.
Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания, чтобы иметь точность предсказания, уменьшающуюся с увеличением расстояния от опорного пикселя. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания на два класса в зависимости от того, присутствует или нет данная тенденция. Устройство кодирования изображения дополнительно адаптивно применяет матрицу A 1D преобразования или матрицу матрицы B 1D преобразования к каждому из вертикального и горизонтального направлений. Матрица A 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). С другой стороны, матрица B 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Например, преобразованием общего назначения является DCT. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает высокой эффективности преобразования по сравнению со случаем, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.
К тому же, блок 102 ортогонального преобразования и блок 105 обратного ортогонального преобразования согласно настоящему варианту осуществления подходят как для аппаратной реализации, так и для программной реализации.
Выражения (3) по Выражение (6) выражают умножения фиксированных матриц. Таким образом, когда блок ортогонального преобразования и блок обратного ортогонального преобразования реализованы посредством аппаратного обеспечения, предполагается, что реализация сконфигурирована используя схемно реализованную логику вместо умножающих устройств.
Если выделенный базис преобразования используется для каждого из девяти типов режимов внутреннего предсказания для осуществления ортогонального преобразования и обратного ортогонального преобразования, нужно подготовить девять блоков 2D ортогонального преобразования или нужно подготовить 18 (= 9×2) блоков 1D ортогонального преобразования, как показано на Фиг. 15. Девять блоков 2D ортогонального преобразования или 18 блоков 1D ортогонального преобразования осуществляют умножения разных матриц преобразования. В результате, кроме выделенного аппаратного обеспечения для DCT, требуемого для H. 264, дополнительно предоставляются девять блоков 2D ортогонального преобразования или 18 блоков 1D ортогонального преобразования. Это увеличивает масштаб релевантных схем.
С другой стороны, как показано на Фиг. 2 и Фиг. 3, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления используют комбинацию из двух (если блок вертикального (обратного) преобразования и блок горизонтального (обратного) преобразования совместно используются с разделением по времени) блоков 1D ортогонального преобразования со схемой для транспонирования матрицы, чтобы осуществлять четыре типа двухмерных ортогональных преобразований. Отсюда, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления обеспечивают возможность значительного подавления увеличения в масштабе схем при аппаратной реализации.
К тому же, если выделенный базис преобразования используется для каждого из девяти типов режимов внутреннего предсказания для осуществления ортогонального преобразования и обратного ортогонального преобразования, программная реализация предполагается такой, как следует ниже. Девять матриц 2D ортогонального преобразования или 18(=9×2) матриц 1D ортогонального преобразования сохраняются в памяти. Каждая из матриц преобразования привлекается для соответствующего одного из режимов предсказания, ортогональное преобразование реализуется, используя устройство умножения общего назначения. Это может увеличить размер памяти, в которую сохраняются матрицы преобразования, и таким образом расходы, и также увеличить пропускную способность памяти в результате загрузки матрицы преобразования в память для каждого преобразования.
С другой стороны, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления комбинирует вертикальное преобразование и горизонтальное преобразование, используя матрицы 1D преобразования, чтобы осуществить четыре типа ортогональных преобразований. Таким образом, блок ортогонального преобразования и блок обратного ортогонального преобразования согласно настоящему варианту осуществления обеспечивают возможность значительного подавления увеличения в размере памяти при программной реализации.
К тому же, подготовка индивидуальных порядков сканирования для соответственных режимов предсказания, как описано в настоящем варианте осуществления, способствует улучшению эффективности кодирования. Квантованные коэффициенты 121 преобразования показывают, что тенденция для генерирования ненулевых коэффициентов смещается в зависимости от элемента. Тенденция для генерирования ненулевых коэффициентов варьируется в зависимости от направления предсказания внутреннего предсказания. Более того, при том же направлении предсказания, даже кодирование блоков пикселей из разных входных изображений 118 приводит к аналогичным тенденциям для генерирования ненулевых коэффициентов. Отсюда, когда блок 113 управления порядком коэффициентов преобразует элементы в соответственные последовательностей 122 одномерных квантованных коэффициентов преобразования в порядке уменьшения вероятности возникновения ненулевых коэффициентов в квантованных 121 коэффициентах преобразования, ненулевые коэффициенты, очень вероятно, плотно возникают в последовательности 122 квантованных коэффициентов преобразования. Это позволяет уменьшение в объеме кода, сгенерированного в результате кодирования длины серий в блоке 114 энтропийного кодирования. Как описано со ссылкой на Фиг. 5A и Фиг. 5B, блок 113 управления порядком коэффициентов может неизменно использовать порядки сканирования, изученные для соответственных режимов предсказания, или использовать порядок сканирования, динамически обновляемый во время процесса кодирования. С использованием порядков сканирования, оптимизированных для соответственных режимов предсказания, блок 114 энтропийного кодирования может уменьшить, по сравнению с H. 264, объем сгенерированного кода на основе последовательности 122 квантованных коэффициентов преобразования без значительного увеличения объема вычислений.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Устройство кодирования изображения согласно второму варианту осуществления отличается от устройства кодирования изображения согласно первому варианту осуществления в деталях ортогонального преобразования и обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты первого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в пятом варианте осуществления.
Вместо блока 102 ортогонального преобразования, проиллюстрированного на Фиг. 2, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 102 ортогонального преобразования, проиллюстрированный на Фиг. 16. Блок 102 ортогонального преобразования на Фиг. 16 включает в себя переключатель 801 выбора, блок 802 вертикального преобразования, блок 203 транспонирования, переключатель 804 выбора и блок 805 горизонтального преобразования. Блок 802 вертикального преобразования включает в себя блок C 806 1D ортогонального преобразования, блок D 807 1D ортогонального преобразования и блок E 808 1D ортогонального преобразования. Блок 805 горизонтального преобразования включает в себя блок C 809 1D ортогонального преобразования, блок D 810 1D ортогонального преобразования и блок E 811 1D ортогонального преобразования. Порядок блока 802 вертикального преобразования и блока 805 горизонтального преобразования является иллюстративным и может быть обратным.
Блок C 806 1D ортогонального преобразования и блок C 809 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу C 1D преобразования. Блок D 807 1D ортогонального преобразования и блок D 810 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу D 1D преобразования. Блок E 808 1D ортогонального преобразования и блок E 811 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу E 1D преобразования.
Матрица C 1D преобразования, матрица D 1D преобразования и матрица E 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.
Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако ошибка предсказания в режиме DC предсказания не проявляет тенденцию в вертикальном направлении или в горизонтальном направлении. Настоящее изобретение использует матрицу E 1D преобразования, описанную ниже для режима DC предсказания. Для режимов предсказания, отличных от режима DC предсказания, настоящий вариант осуществления адаптивно использует матрицу С 1D преобразования и матрицу D 1D преобразования в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.
Конкретно, матрица C 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы A 1D преобразования. К тому же, матрица D 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы B 1D преобразования. То есть, матрица D 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для матрицы B 1D преобразования с включенным в него режимом DC предсказания.
Матрица E 1D преобразования может быть матрицей для DCT. В качестве альтернативы, матрица E 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, по сравнению с матрицей D 1D преобразования, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.
Вместо блока 105 обратного ортогонального преобразования, проиллюстрированного на Фиг. 3, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 105 обратного ортогонального преобразования, проиллюстрированный на Фиг. 17. Блок 105 обратного ортогонального преобразования на Фиг. 17 включает в себя переключатель 901 выбора, блок 902 вертикального обратного преобразования, блок 303 транспонирования, переключатель 904 выбора и блок 905 горизонтального обратного преобразования. Блок 902 вертикального обратного преобразования включает в себя блок C 906 1D обратного ортогонального преобразования, блок D 907 1D обратного ортогонального преобразования и блок E 908 1D обратного ортогонального преобразования. Блок 905 горизонтального обратного преобразования включает в себя блок C 909 1D обратного ортогонального преобразования, блок D 910 1D обратного ортогонального преобразования и блок E 911 1D обратного ортогонального преобразования. Порядок блока 902 вертикального обратного преобразования и блока 905 горизонтального обратного преобразования является иллюстративным и может быть обратным.
Блок C 906 1D обратного ортогонального преобразования и блок C 909 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы C 1D преобразования. Блок D 907 1D обратного ортогонального преобразования и блок D 910 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы D 1D преобразования. Блок E 908 1D обратного ортогонального преобразования и блок E 911 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы E 1D преобразования.
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 18D. Ссылка на таблицу на Фиг. 18D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекса горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.
Как показано на Фиг. 18B, индекс вертикального преобразования "0" обеспечивает возможность выбора вышеописанной матрицы C 1D преобразования (1D_Transform_Matrix_C) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора вышеописанной матрицы D 1D преобразования (1D_Transform_Matrix_D) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. Более того, индекс вертикального преобразования "2" обеспечивает возможность выбора вышеописанной матрицы E 1D преобразования (1D_Transform_Matrix_E) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.
Как показано на Фиг. 18С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы C 1D преобразования (1D_Transform_Matrix_C) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы D 1D преобразования (1D_Transform_Matrix_D) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. Более того, индекс горизонтального преобразования "2" обеспечивает возможность выбора матрицы E 1D преобразования (1D_Transform_Matrix_E) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.
К тому же, на Фиг. 18A проиллюстрированы индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode) и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 18A, "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть, прямоугольники вместо квадратов).
На Фиг. 18E получено посредством объединения Фиг. 18A и Фиг. 18D вместе и показаны индекс для каждого режима предсказания, имя режима предсказания и соответствующий индекс преобразования.
Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания в информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 18A, Фиг. 18B, Фиг. 18C, Фиг. 18D и Фиг. 18E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.
Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 0 и что индекс горизонтального преобразования указывает 0. Это означает, что матрица C 1D преобразования используется для вертикального ортогонального преобразования и что матрица C 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы C 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы C 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0 и что индекс горизонтального преобразования указывает 1. Это означает, что матрица C 1D преобразования используется для вертикального ортогонального преобразования и что матрица D 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы C 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы D 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1 и что индекс горизонтального преобразования указывает 0. Это означает, что матрица D 1D преобразования используется для вертикального ортогонального преобразования и что матрица C 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы D 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы C 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 2 и что индекс горизонтального преобразования указывает 2. Это означает, что матрица E 1D преобразования используется для вертикального ортогонального преобразования и что матрица E 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы E 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы E 1D преобразования используется для горизонтального обратного ортогонального преобразования.
Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.
Таблица, показанная на Фиг. 18A, назначает информацию 129 задания матрицы 1D преобразования, учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть, для режима DC предсказания, 2 назначается как индексу вертикального преобразования, так и индексу горизонтального преобразования. Отсюда, для режима DC предсказания, ортогональное преобразование и обратное ортогональное преобразование осуществляются в вертикальном направлении и горизонтальном направлении, используя матрицу E 1D преобразования и ее транспонированную матрицу. В результате, достигается высокая эффективность преобразования.
Для режимов предсказания, отличных от режима DC предсказания, 0 назначается индексу вертикального преобразования, если тенденция проявляется в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования, если тенденция проявляется в горизонтальном направлении ошибки предсказания. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию. Высокая эффективность преобразования достигается посредством классифицирования вертикального и горизонтального направлений режимов предсказания, отличных от режима DC предсказания, на два класса в зависимости от того, присутствует ли тенденция, и адаптивного применения матрицы C 1D преобразования или матрицы D 1D преобразования к вертикальному и горизонтальному направлениям.
Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к DC предсказанию, определенным образом, отличным от образа действий для других режимов предсказания. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания, на два класса в зависимости от того, присутствует ли тенденция, и адаптивно применяет матрицу C 1D преобразования или матрицу D 1D преобразования к вертикальному и горизонтальному направлениям. Устройство кодирования изображения применяет матрицу E 1D преобразования к режиму DC предсказания. Матрица C 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). Матрица D 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы с включенным в него режимом DC предсказания. Матрица E 1D преобразования может быть матрицей для DCT. В качестве альтернативы, матрица E 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в режиме DC предсказания, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает более высокой эффективности преобразования, чем в случае, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.
ТРЕТИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Устройство кодирования изображения согласно третьему варианту осуществления отличается от устройств кодирования изображения согласно первому варианту осуществления и второму варианту осуществления в деталях ортогонального преобразования и обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты первого варианта осуществления и второго варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство декодирования изображения, соответствующее устройству кодирования изображения согласно настоящему варианту осуществления, будет описано в шестом варианте осуществления.
Вместо блока 102 ортогонального преобразования, проиллюстрированного на Фиг. 2, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 102 ортогонального преобразования, проиллюстрированный на Фиг. 19. Блок 102 ортогонального преобразования на Фиг. 19 включает в себя переключатель 1201 выбора, блок 1202 вертикального преобразования, блок 203 транспонирования, переключатель 1204 выбора и блок 1205 горизонтального преобразования. Блок 1202 вертикального преобразования включает в себя блок F 1206 1D ортогонального преобразования, блок G 1207 1D ортогонального преобразования и блок H 1208 1D ортогонального преобразования. Блок 1205 горизонтального преобразования включает в себя блок F 1209 1D ортогонального преобразования, блок G 1210 1D ортогонального преобразования и блок H 1211 1D ортогонального преобразования. Порядок блока 1202 вертикального преобразования и блока 1205 горизонтального преобразования является иллюстративным и может быть обратным.
Блок F 1206 1D ортогонального преобразования и блок F 1209 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу F 1D преобразования. Блок G 1207 1D ортогонального преобразования и блок G 1210 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу G 1D преобразования. Блок H 1208 1D ортогонального преобразования и блок H 1211 1D ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на матрицу H 1D преобразования.
Матрица F 1D преобразования, матрица G 1D преобразования и матрица H 1D преобразования согласно настоящему варианту осуществления будут описаны ниже.
Как описано выше, ошибка 119 предсказания имеет тенденцию иметь абсолютное значение, увеличивающееся с расстоянием от опорного пикселя. Данная тенденция аналогично проявляется независимо от направления предсказания. Однако режимы внутреннего предсказания включают в себя режимы предсказания, в которых ссылаются (значения опорных пикселей копируются, или осуществляется интерпретация используя значения опорных пикселей) только на группу опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, или на линии, размещенной выше и рядом с целевым блоком предсказания, и режимы предсказания, в которых ссылаются на группы опорных пикселей на линии, размещенной слева от и рядом с целевым блоком предсказания, и на линии, размещенной выше и рядом с целевым блоком предсказания. Образ действий, при котором проявляется данная тенденция, варьируется между режимом предсказания, для которого ссылаются только на группу опорных пикселей на одной линии, и режимом предсказания, для которого ссылаются только на группы опорных пикселей на двух линиях. Таким образом, настоящий вариант осуществления осуществляет ортогональное преобразование и обратное ортогональное преобразование по-разному между режимами предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, и режимами предсказания, в которых ссылаются только на группы опорных пикселей на двух линиях.
Конкретно, матрица H 1D преобразования, описанная ниже, используется для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях. С другой стороны, матрица F 1D преобразования и матрица G 1D преобразования адаптивно используются для режимов предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, в зависимости от того, присутствует ли тенденция, как в случае с первым вариантом осуществления.
Конкретно, матрица F 1D преобразования может быть сгенерирована, используя метод проектирования, аналогичный методу проектирования для вышеописанной матрицы A 1D преобразования. К тому же, матрица F 1D преобразования может быть сгенерирована посредством осуществления метода проектирования для вышеописанной матрицы A 1D преобразования, в то же время исключая режимы предсказания, в которых ссылаются на группы пикселей на двух линиях (например, режим 4, режим 5 и режим 6 на Фиг. 7A). К тому же, матрица G 1D преобразования может быть сгенерирована, используя тот же метод проектирования, как метод проектирования для вышеописанной матрицы B 1D преобразования. В качестве альтернативы, матрица G 1D преобразования может быть матрицей для DCT.
Матрица H 1D преобразования может быть сгенерирована посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в режимах предсказания, в которых ссылаются на группы пикселей на двух линиях, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении.
Вместо блока 105 обратного ортогонального преобразования, проиллюстрированного на Фиг. 3, устройство кодирования изображения согласно настоящему варианту осуществления включает в себя блок 105 обратного ортогонального преобразования, проиллюстрированный на Фиг. 20. Блок 105 обратного ортогонального преобразования на Фиг. 20 включает в себя переключатель 1301 выбора, блок 1302 вертикального обратного преобразования, блок 303 транспонирования, переключатель 1304 выбора и блок 1305 горизонтального обратного преобразования. Блок 1302 вертикального обратного преобразования включает в себя блок F 1306 1D обратного ортогонального преобразования, блок G 1307 1D обратного ортогонального преобразования и блок H 1308 1D обратного ортогонального преобразования. Блок 1305 горизонтального обратного преобразования включает в себя блок F 1309 1D обратного ортогонального преобразования, блок G 1310 1D обратного ортогонального преобразования и блок H 1311 1D обратного ортогонального преобразования. Порядок блока 1302 вертикального обратного преобразования и блока 1305 горизонтального обратного преобразования является иллюстративным и может быть обратным.
Блок F 1306 1D обратного ортогонального преобразования и блок F 1309 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы F 1D преобразования. Блок G 1307 1D обратного ортогонального преобразования и блок G 1310 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы G 1D преобразования. Блок H 1308 1D обратного ортогонального преобразования и блок H 1311 1D обратного ортогонального преобразования имеют общие функции в том, что оба блока умножают входную матрицу на транспонированную матрицу матрицы H 1D преобразования.
Информация 129 задания матрицы 1D преобразования согласно настоящему варианту осуществления, генерируемая блоком 112 задания матрицы 1D преобразования, будет подробно описана ниже.
Информация 129 задания матрицы 1D преобразования прямо или непрямо указывает индекс вертикального преобразования для выбора матрицы преобразования для использования при вертикальном ортогональном преобразовании и вертикальном обратном ортогональном преобразовании, и индекс горизонтального преобразования для выбора матрицы преобразования для использования при горизонтальном ортогональном преобразовании и горизонтальном обратном ортогональном преобразовании. Например, информация 129 задания матрицы 1D преобразования может быть выражена посредством индекса преобразования (TrasformIdx), показанного на Фиг. 21D. Ссылка на таблицу на Фиг. 21D обеспечивает возможность получения индекса вертикального преобразования (Idx вертикального преобразования) и индекс горизонтального преобразования (Idx горизонтального преобразования) из индекса преобразования.
Как показано на Фиг. 21B, индекс вертикального преобразования "0" обеспечивает возможность выбора вышеописанной матрицы F 1D преобразования (1D_Transform_Matrix_F) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. С другой стороны, индекс вертикального преобразования "1" обеспечивает возможность выбора вышеописанной матрицы G 1D преобразования (1D_Transform_Matrix_G) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования. Более того, индекс вертикального преобразования "2" обеспечивает возможность выбора вышеописанной матрицы H 1D преобразования (1D_Transform_Matrix_H) или ее транспонированной матрицы для вертикального ортогонального преобразования или вертикального обратного ортогонального преобразования.
Как показано на Фиг. 21С, индекс горизонтального преобразования "0" обеспечивает возможность выбора матрицы F 1D преобразования (1D_Transform_Matrix_F) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. С другой стороны, индекс горизонтального преобразования "1" обеспечивает возможность выбора матрицы G 1D преобразования (1D_Transform_Matrix_G) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования. Более того, индекс горизонтального преобразования "2" обеспечивает возможность выбора матрицы H 1D преобразования (1D_Transform_Matrix_H) или ее транспонированной матрицы для горизонтального ортогонального преобразования или горизонтального обратного ортогонального преобразования.
К тому же, на Фиг. 21A проиллюстрирован индекс для каждого режима (внутреннего) предсказания (IntraN×NPredModeIndex), его имя (имя IntraN×NPredMode) и соответствующий индекс вертикального преобразования и индекс горизонтального преобразования. На Фиг. 21A, "N×N" указывает размер целевого блока предсказания (N=4, 8, 16 или тому подобные). Размер целевого блока предсказания может быть расширен до "M×N" (то есть, прямоугольники вместо квадратов).
На Фиг. 21E получено посредством объединения Фиг. 21A и Фиг. 21D вместе и показан индекс для каждого режима предсказания, имя индекса и соответствующий индекс преобразования.
Блок 112 задания матрицы 1D преобразования детектирует индекс режима предсказания в информации режима предсказания, включенной в информацию 126 предсказания. Блок 112 задания матрицы 1D преобразования затем генерирует соответствующую информацию 129 задания матрицы 1D преобразования. Таблицы, показанные на Фиг. 21A, Фиг. 21B, Фиг. 21C, Фиг. 21D и Фиг. 21E, являются иллюстративными. Блок 112 задания матрицы 1D преобразования может генерировать информацию 129 задания матрицы 1D преобразования, в то же время избегая использования некоторых или всех таблиц.
Например, TransformIdx, указывающий 0, означает, что индекс вертикального преобразования указывает 2 и что индекс горизонтального преобразования указывает 2. Это означает, что матрица H 1D преобразования используется для вертикального ортогонального преобразования и что матрица H 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы H 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы H 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 1, означает, что индекс вертикального преобразования указывает 0 и что индекс горизонтального преобразования указывает 1. Это означает, что матрица F 1D преобразования используется для вертикального ортогонального преобразования и что матрица G 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы F 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы G 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 2, означает, что индекс вертикального преобразования указывает 1 и что индекс горизонтального преобразования указывает 0. Это означает, что матрица G 1D преобразования используется для вертикального ортогонального преобразования и что матрица F 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы G 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы F 1D преобразования используется для горизонтального обратного ортогонального преобразования.
TransformIdx, указывающий 3, означает, что индекс вертикального преобразования указывает 1 и что индекс горизонтального преобразования указывает 1. Это означает, что матрица G 1D преобразования используется для вертикального ортогонального преобразования и что матрица G 1D преобразования используется для горизонтального ортогонального преобразования. Эти значения также означают, что транспонированная матрица матрицы G 1D преобразования используется для вертикального обратного ортогонального преобразования и что транспонированная матрица матрицы G 1D преобразования используется для горизонтального обратного ортогонального преобразования.
Здесь, если целевой блок предсказания является прямоугольным блоком, выраженным как M×N, размер блока, который следует ортогонально преобразовать, может быть также M×N.
Таблица, показанная на Фиг. 21A, назначает информацию 129 задания матрицы 1D преобразования, учитывая вышеописанную тенденцию каждого режима внутреннего предсказания. То есть, для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, 2 назначается как индексу вертикального преобразования, так и индексу горизонтального преобразования. Отсюда, для режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, ортогональное преобразование и обратное ортогональное преобразование осуществляются в вертикальном направлении и горизонтальном направлении, используя матрицу H 1D преобразования и ее транспонированную матрицу. В результате, достигается высокая эффективность преобразования.
Для режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, 0 назначается индексу вертикального преобразования, если тенденция проявляется в вертикальном направлении ошибки предсказания. 0 назначается индексу горизонтального преобразования, если тенденция проявляется в горизонтальном направлении ошибки предсказания. С другой стороны, 1 назначается каждому из направлений, не проявляющих тенденцию. Высокая эффективность преобразования достигается посредством классифицирования вертикального и горизонтального направлений режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, на два класса в зависимости от того, присутствует ли тенденция, и адаптивного применения матрицы F 1D преобразования или матрицы G 1D преобразования к вертикальному и горизонтальному направлениям.
Как описано выше, устройство кодирования изображения согласно настоящему варианту осуществления использует тенденцию внутреннего предсказания иметь уменьшающуюся точность предсказания с увеличением расстояния от опорного пикселя, как в случае первого варианта, в то же время применяя ортогональное преобразование и обратное ортогональное преобразование к режимам предсказания определенным образом, варьирующимся в зависимости от числа линий, соответствующих группам опорных пикселей. Устройство кодирования изображения классифицирует вертикальное и горизонтальное направления режимов предсказания, отличных от режимов предсказания, в которых ссылаются на группы опорных пикселей на двух линиях, на два класса в зависимости от того, присутствует ли тенденция, и адаптивно применяет матрицу F 1D преобразования или матрицу G 1D преобразования к вертикальному и горизонтальному направлениям. С другой стороны, устройство кодирования изображения применяет матрицу H 1D преобразования в режимах предсказания, в которых ссылаются на группы опорных пикселей на двух линиях. Для режимов предсказания, в которых ссылаются только на группу опорных пикселей на одной линии, матрица F 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в направлении, ортогональном линии группы опорных пикселей (вертикальное направление и горизонтальное направление). С другой стороны, матрица G 1D преобразования генерируется посредством проектирования матрицы преобразования общего назначения, не имеющей такой природы. Более того, матрица H 1D преобразования генерируется посредством предварительного проектирования общего базиса преобразования, с тем чтобы увеличить, для ошибки 119 предсказания в каждом режиме предсказания, для которого ссылаются на группы пикселей на двух линиях, плотность коэффициентов после 1D ортогонального преобразования (то есть, чтобы уменьшить долю ненулевых коэффициентов в квантованных коэффициентах 121 преобразования) в вертикальном направлении и горизонтальном направлении. Отсюда, устройство кодирования изображения согласно настоящему варианту осуществления достигает более высокой эффективности преобразования, чем в случае, где фиксированное ортогональное преобразование, такое как DCT, единообразно применяется к режимам предсказания.
Первый и третий варианты осуществления подготавливают два или три типа матриц 1D преобразования и выбирают одну из матриц 1D преобразования для вертикального преобразования (или вертикального обратного преобразования) и горизонтального преобразования (или горизонтального обратного преобразования) согласно режиму предсказания. Однако вышеописанные два или три типа матриц 1D преобразования являются иллюстративными. Эффективность кодирования может быть увеличена посредством подготовки больше матриц преобразования. Например, второй вариант осуществления и третий вариант осуществления могут быть скомбинированы вместе для подготовки четырех типов матриц 1D преобразования. Однако увеличившееся число типов подготовленных матриц преобразования требует дополнительного аппаратного обеспечения или тому подобного. Таким образом, баланс между эффективностью кодирования и недостатками, возникающими в результате увеличившегося числа типов матриц преобразования, желательно учитывать.
ЧЕТВЕРТЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Четвертый вариант осуществления относится к устройству декодирования изображения. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано в первом варианте осуществления. То есть, устройство декодирования изображения согласно настоящему варианту осуществления декодирует кодированные данные, сгенерированные, например, устройством кодирования изображения согласно первому варианту осуществления.
Как показано на Фиг. 22, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя входной буфер 401, блок 402 энтропийного декодирования, блок 403 управления порядком коэффициентов, блок 404 деквантования, блок 405 обратного ортогонального преобразования, блок 406 сложения, память 407опорного изображения, блок 408 внутреннего предсказания, блок 409 внешнего предсказания, переключатель 410 выбора, блок 411 задания матрицы 1D преобразования и выходной буфер 412.
Устройство декодирования изображения на Фиг. 22 декодирует кодированные данные во входном буфере 401, накапливает декодированное изображение 419 в выходном буфере 412 и выводит декодированное изображение 419 в качестве выходного изображения 425. Кодированные данные 414 выводятся, например, устройством кодирования изображения на Фиг. 1, и временно накапливаются во входном буфере 401 посредством системы накопления или системы передачи (не показано на чертежах).
Для того, чтобы декодировать кодированные данные 414, блок 402 энтропийного декодирования декодирует каждый кадр или поле на основе синтаксиса. Блок 402 энтропийного декодирования подвергает каждую последовательность кода для энтропийного декодирования, чтобы воспроизвести параметры кодирования для кодирования целевого блока кодирования, такие как информацию 424 предсказания, включающую в себя информацию 421 режима предсказания и последовательность 415 квантованных коэффициентов преобразования. Параметры кодирования требуются для декодирования и включают в себя информацию 424 предсказания, информацию по коэффициентам преобразования и информацию по квантованию. Последовательность 415 квантованных коэффициентов преобразования вводится в блок 403 управления порядком коэффициентов. К тому же, информация 421 режима предсказания, включенная в информацию 424 предсказания, аналогично вводится в блок 403 управления порядком коэффициентов. Информация 424 предсказания вводится в блок 411 задания матрицы 1D преобразования и переключатель 410 выбора.
Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением. Блок 403 управления порядком коэффициентов затем вводит квантованные коэффициенты 416 преобразования в блок 404 деквантования. Блок 403 управления порядком коэффициентов будет подробно описан ниже.
Блок 404 деквантования деквантует квантованные коэффициенты 416 преобразования из блока 403 управления порядком коэффициентов для получения восстановленных коэффициентов 417 преобразования. Конкретно, блок 404 деквантования осуществляет деквантование в соответствии с информацией по квантованию, декодированной блоком 402 энтропийного декодирования. Блок 404 деквантования вводит восстановленные коэффициенты 417 преобразования в блок 405 обратного ортогонального преобразования.
Блок обратного ортогонального преобразования 405 осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, выполненному на кодирующей стороне, над восстановленными коэффициентами 417 преобразования из блока 404 деквантования, чтобы получить восстановленную ошибку 418 предсказания. Блок 405 обратного ортогонального преобразования вводит восстановленную ошибку 418 предсказания в блок 406 сложения.
Конкретно, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 3 и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу A 1D преобразования и матрицу B 1D преобразования, которые являются общими для блока обратного ортогонального преобразования на Фиг. 3. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 3 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и восстановленной ошибке 418 предсказания согласно настоящему варианту осуществления, соответственно.
Блок 406 сложения складывает восстановленную ошибку 418 предсказания и соответствующее изображение 423 с предсказанием вместе, чтобы сгенерировать локально декодированное изображение 419. Декодированное изображение 419 временно накапливается в выходном буфере 412 для выходного изображения 425 и также сохраняется в память 407 опорного изображения для опорного изображения 420. На декодированное изображение, сохраненное в память 407 опорного изображения, ссылается в блоках кадра или поля, если необходимо, блок внутреннего предсказания 408 и блок 409 внешнего предсказания в качестве опорного изображения 420. Декодированное изображение 419, временно накапливаемое в выходном буфере 412, выводится с временным интервалом вывода, управляемым блоком 413 управления декодирования.
Блок 408 внутреннего предсказания, блок 409 внешнего предсказания и переключатель 410 выбора являются по существу таким же как или аналогичными блоку 108 внутреннего предсказания, блоку 109 внешнего предсказания и переключателю 110 выбора на Фиг. 1 и таким образом не будут описаны подробно ниже. Блок 413 управления декодированием управляет компонентами устройства декодирования изображения на Фиг. 22. Конкретно, блок 413 управления декодированием выполняет различные операции управления для процесса декодирования, включая вышеописанные операции.
Блок 411 задания матрицы 1D преобразования генерирует информацию 422 задания матрицы 1D преобразования на основе информации режима предсказания, включенной в информацию 424 предсказания из блока 402 энтропийного декодирования. Блок 411 задания матрицы 1D преобразования выводит информацию 422 задания матрицы 1D преобразования в блок 405 обратного ортогонального преобразования.
Конкретно, блок 411 задания матрицы 1D преобразования является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно первому варианту осуществления, и таким образом не будет описан подробно ниже. То есть, блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 4A, Фиг. 4B, Фиг. 4C, Фиг. 4D и Фиг. 4E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно первому варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.
К тому же, устройство декодирования изображения на Фиг. 22 использует синтаксис, который является таким же как или аналогичным синтаксису, описанному со ссылкой на Фиг. 11, Фиг. 12, Фиг. 13 и Фиг. 14. Таким образом, подробное описание синтаксиса опущено.
Блок 403 управления порядком коэффициентов будет подробно описан ниже.
Блок 403 управления порядком коэффициентов преобразует последовательность 415 квантованных коэффициентов преобразования, которая является одномерным выражением, в квантованные коэффициенты 416 преобразования, которые являются двухмерным выражением, посредством расположения элементов последовательности 415 квантованных коэффициентов преобразования в предварительно определенном порядке (то есть, порядке, соответствующем порядку, используемому на кодирующей стороне). В качестве примера, если кодирующая сторона осуществляет 2D-1D преобразование независимо от режима предсказания, блок 403 управления порядком коэффициентов может выполнить общее 1D-2D преобразование независимо от режима предсказания. Конкретно, блок 403 управления порядком коэффициентов может использовать обратное зигзагообразное сканирование, как в случае с H. 264. Обратное зигзагообразное сканирование является 1D-2D преобразованием, соответствующим вышеописанному зигзагообразному сканированию.
В другом примере, если кодирующая сторона осуществляет индивидуальные 2D-1D преобразования для соответственных режимов предсказания, блок 403 управления порядком коэффициентов может также выполнять индивидуальные 1D-2D преобразования для соответственных режимов предсказания. Блок 403 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 23A. Блок 403 управления порядком коэффициентов включает в себя переключатель 1001 выбора и блоки индивидуального 1D-2D преобразования 1002,..., и 1010 для соответственных режимов предсказания. В соответствии с информацией режима предсказания (например, индексы режимов предсказания на Фиг. 4A), включенной в информацию 424 предсказания, переключатель 1001 выбора приводит последовательность 415 квантованных коэффициентов преобразования в блок 1D-2D преобразования (один из 1002,... и 1010), соответствующий режиму предсказания. Например, индекс режима предсказания 0 обеспечивает возможность переключателю 1001 выбора приводить последовательность 415 квантованных коэффициентов преобразования в блок 1002 1D-2D преобразования. На Фиг. 23A, режимы предсказания и блоки 1D-2D преобразования находятся во взаимно-однозначном соответствии. Последовательность 415 квантованных коэффициентов преобразования приводится в один блок 1D-2D преобразования, соответствующий режиму предсказания. Последовательность 415 квантованных коэффициентов преобразования затем преобразуется в квантованные коэффициенты 416 преобразования.
В другом примере, если кодирующая сторона динамически обновляет порядок сканирования при 2D-1D преобразовании, блок 403 управления порядком коэффициентов может также динамически обновлять порядок сканирования при 1D-2D преобразовании определенным образом, соответствующим образу действий, используемому на кодирующей стороне. Блок 403 управления порядком коэффициентов, выполняющий такую операцию, проиллюстрирован на Фиг. 23B. Блок 403 управления порядком коэффициентов включает в себя переключатель 1001 выбора, блоки индивидуального 1D-2D преобразования 1002,..., и 1010 для соответственных девяти типов режимов предсказания, блок 1011 подсчета частоты возникновения и блок 1012 обновления порядка коэффициентов. Переключатель 1001 выбора является таким, как описано со ссылкой на Фиг 23A. Блоки индивидуального 1D-2D преобразования 1002,..., и 1010 для соответственных девяти типов режимов предсказания отличаются от блоков 1D-2D преобразования, показанных на Фиг. 23A в том, что порядок сканирования для блоков 1002,..., и 1010 1D-2D преобразования обновляется блоком 1012 обновления порядка коэффициентов.
Блок 1011 подсчета частоты возникновения создает гистограмму из числа возникновений ненулевых коэффициентов в каждом элементе последовательности 416 квантованных коэффициентов преобразования. Блок 1011 подсчета частоты возникновения вводит созданную гистограмму 1013 в блок 1012 обновления порядка коэффициентов.
Блок 1012 обновления порядка коэффициентов обновляет порядок коэффициентов с предварительно определенным временным интервалом на основе гистограммы 1013. Временной интервал может быть, например, временным интервалом, когда завершен процесс декодирования, осуществляемый над единицей дерева кодирования, или временным интервалом, когда завершен процесс декодирования, осуществляемый над одной линией в единице дерева кодирования.
Конкретно, блок 1012 управления порядком коэффициентов ссылается на гистограмму 1013 для обновления порядка коэффициентов для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов равняется или больше, чем пороговое значение. Например, блок 1012 управления порядком коэффициентов выполняет обновление для режима предсказания с помощью элемента, для которого подсчитанное число возникновений ненулевых коэффициентов является 16 или больше. Задание порогового значения для числа возникновений обеспечивает возможность глобального обновления порядка коэффициентов, таким образом избегая сведения к локальному оптимальному решению.
Блок 1012 управления порядком коэффициентов сортирует, для режима предсказания цели обновления, элементы в порядке уменьшения частоты возникновения ненулевых коэффициентов. Сортировка может быть достигнута в соответствии с существующим алгоритмом, например пузырьковая сортировка или быстрая сортировка. Блок 1012 управления порядком коэффициентов вводит информацию 1014 обновления порядка коэффициентов, указывающую отсортированный порядок элементов в блок 1D-2D преобразования, соответствующий режиму предсказания цели обновления.
Как только информация 1014 обновления порядка коэффициентов введена в блок 1D-2D преобразования, блок 1D-2D преобразования осуществляет 1D-2D преобразование в соответствии с обновленным порядком сканирования. Если порядок сканирования является динамически обновляемым, должны быть заданы первоначальные порядки сканирования для блоков 1D-2D преобразования, которые соответствуют порядку сканирования на кодирующей стороне.
Для упрощения, был проиллюстрирован H. 264 и был описан случай девяти типов режимов предсказания. Однако, даже если число типов режима предсказания увеличено до 17, 33 или тому подобного, индивидуальные 1D-2D преобразования для соответственных режимов предсказания могут быть достигнуты посредством добавления блоков 1D-2D преобразования, соответствующих режимам предсказания, возникающим в результате данного увеличения.
Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно первому варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно первому варианту осуществления.
ПЯТЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Устройство декодирования изображения согласно пятому варианту осуществления отличается от устройства декодирования изображения согласно четвертому варианту осуществления в деталях обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты четвертого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано во втором варианте осуществления.
Блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 17, и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу C 1D преобразования, матрицу D 1D преобразования и матрицу E 1D преобразования, которые являются общими для блока 105 обратного ортогонального преобразования на Фиг. 17. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 17 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и сигналу 418 восстановленной ошибки предсказания согласно настоящему варианту осуществления, соответственно.
Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно второму варианту осуществления, и таким образом не будет описан подробно ниже. То есть, блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 18A, Фиг. 18B, Фиг. 18C, Фиг. 18D и Фиг. 18E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно второму варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.
Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно второму варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно второму варианту осуществления.
ШЕСТОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Устройство декодирования изображения согласно шестому варианту осуществления отличается от устройств декодирования изображения согласно четвертому варианту осуществления и пятому варианту осуществления в деталях обратного ортогонального преобразования. Одинаковые компоненты настоящего варианта осуществления, как соответствующие компоненты четвертого варианта осуществления и пятого варианта осуществления, в дальнейшем в этом документе обозначены одинаковыми ссылочными номерами, и в основном разные компоненты будут описаны ниже. Устройство кодирования изображения, соответствующее устройству декодирования изображения согласно настоящему варианту осуществления, описано в третьем варианте осуществления.
Блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 105 обратного ортогонального преобразования на Фиг. 20, и таким образом не будет описан подробно ниже. В частности, блок 405 обратного ортогонального преобразования согласно настоящему варианту осуществления использует матрицу F 1D преобразования, матрицу G 1D преобразования и матрицу H 1D преобразования, которые являются общими для блока 105 обратного ортогонального преобразования на Фиг. 20. Восстановленные коэффициенты 122 преобразования, информация 129 задания матрицы 1D преобразования и восстановленная ошибка 129 предсказания на Фиг. 20 соответствуют восстановленным коэффициентам 417 преобразования, информации 422 задания матрицы 1D преобразования и сигналу 418 восстановленной ошибки предсказания согласно настоящему варианту осуществления, соответственно.
Блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления является компонентом, который является по существу таким же как или аналогичным блоку 112 задания матрицы 1D преобразования согласно третьему варианту осуществления, и таким образом не будет описан подробно ниже. То есть, блок 411 задания матрицы 1D преобразования согласно настоящему варианту осуществления использует, например, таблицы на Фиг. 21A, Фиг. 21B, Фиг. 21C, Фиг. 21D и Фиг. 21E для генерирования информации 422 задания матрицы 1D преобразования. Информация 126 предсказания и информация 129 задания матрицы 1D преобразования согласно третьему варианту осуществления соответствуют информации 424 предсказания и информации 422 задания матрицы 1D преобразования согласно настоящему варианту осуществления, соответственно.
Как описано выше, устройство декодирования изображения согласно настоящему варианту осуществления включает в себя блок обратного ортогонального преобразования, который является таким же или аналогичным блоку обратного ортогонального преобразования устройства кодирования изображения согласно третьему варианту осуществления. Отсюда, устройство декодирования изображения согласно настоящему варианту осуществления оказывает воздействия, которые являются такими же или аналогичными воздействиям устройства кодирования изображения согласно третьему варианту осуществления.
С четвертого по шестой варианты осуществления подготавливают два или три типа матриц 1D преобразования и выбирают одну из матриц 1D преобразования для вертикального обратного преобразования и горизонтального обратного преобразования согласно режиму предсказания. Однако вышеописанные два или три типа матриц 1D преобразования являются иллюстративными. Эффективность кодирования может быть увеличена посредством подготовки больше матриц преобразования. Например, пятый вариант осуществления и шестой вариант осуществления могут быть скомбинированы вместе для подготовки четырех типов матриц 1D преобразования. Однако увеличившееся число типов подготовленных матриц преобразования требует дополнительного аппаратного обеспечения или тому подобного. Таким образом, баланс между эффективностью кодирования и недостатками, возникающими в результате увеличившегося числа типов матриц преобразования, желательно учитывать.
Модификации вариантов осуществления будут приведены и представлены ниже.
С первого по шестой варианты осуществления описывают пример, в котором кадр разделяется на прямоугольные блоки с размером 16×16 пикселей или тому подобным и в котором кодирование или декодирование осуществляется над каждым блоков в порядке с верхнего левого к нижнему правому на картинке (смотри Фиг. 6A). Однако порядок кодирования и порядок декодирования не ограничены этим примером. Например, кодирование и декодирование могут осуществляться в порядке с нижнего правого к верхнему левому или по спирали от центра к краю картинки. Более того, кодирование и декодирование могут осуществляться в порядке с верхнего правого к нижнему левому или по спирали от края к центру картинки.
С первого по шестой варианты осуществления иллюстрируют размеры целевого блока предсказания, такие как блок пикселей 4×4, блок пикселей 8×8 и блок пикселей 16×16 для описания. Однако целевой блок предсказания не должен обязательно иметь единообразную форму блока. Например, примеры размера целевого блока предсказания могут включать в себя блок пикселей 16×8, блок пикселей 8×16, блок пикселей 8×4 или блок пикселей 4×8. К тому же, не все блоки в пределах одной единицы дерева кодирования должны иметь одинаковый размер блока, и множество разных размеров блоков могут быть приняты вместе внутри единицы дерева кодирования. Если множество разных размеров блоков могут быть приняты вместе внутри единицы дерева кодирования, увеличившееся число блоков, на которые разделена единица дерева кодирования, увеличивает объем кода, требуемого для кодирования или декодирования информации деления. Таким образом, размер блока желательно выбирается, учитывая баланс между объемом кода для информации деления и качеством локально декодированного изображения или декодированного изображения.
Для упрощения, с первого по шестой варианты осуществления всесторонне описывают компоненты цветного сигнала, не различая сигналы яркости от цветоразностных сигналов. Однако, если процесс предсказания варьируется между сигналом яркости и цветоразностным сигналом, может быть использована та же схема предсказания или другие схемы предсказания. Если разные схемы предсказания используются для сигнала яркости или для цветоразностного сигнала, схема предсказания, выбранная для цветоразностного сигнала, может быть кодирована или декодирована определенным образом, аналогичным образу действий для сигнала яркости.
Для упрощения, с первого по шестой варианты осуществления всесторонне описывают компоненты цветного сигнала, не различая сигнал яркости от цветоразностного сигнала. Однако, если процесс ортогонального преобразования варьируется между сигналом яркости и цветоразностным сигналом, может быть использована та же схема ортогонального преобразования или другие схемы ортогонального преобразования. Если разные схемы ортогонального преобразования используются для сигнала яркости или для цветоразностного сигнала, схема ортогонального преобразования, выбранная для цветоразностного сигнала, может быть кодирована или декодирована определенным образом, аналогичным образу действий для сигнала яркости.
Как описано, каждый из вариантов осуществления достигает эффективного ортогонального преобразования и обратного ортогонального преобразования, в то же время облегчая трудности в аппаратной реализации и программной реализации. Отсюда, каждый вариант осуществления улучшает эффективность кодирования и таким образом субъективное качество изображения.
Тогда как определенные варианты осуществления были описаны, эти варианты осуществления были представлены только в качестве примера и не предназначены для ограничения объема данных изобретений. На самом деле, новые способы и системы, описанные в настоящем документе, могут быть осуществлены в многообразии других форм; к тому же, различные упущения, замены и изменения в формах способов и систем, описанных в настоящем документе, могут быть сделаны, не отступая от сущности данных изобретений. Сопутствующие пункты формулы изобретения и их эквиваленты предназначены охватывать такие формы или модификации, как могли бы попадать в пределы объема и сущности данных изобретений.
Например, может быть предоставлена программа, которая хранится в считываемом компьютером носителе информации и выполнена с возможностью реализации обработки согласно каждому из вариантов осуществления. Носитель информации может быть в любом формате хранения, предоставляющем, что программа может быть сохранена в носителе информации и считана с носителя информации компьютером; носителем информации может быть магнитный диск, оптический диск (CD-ROM, CD-R, DVD или тому подобные), магнитооптический диск (MO или тому подобный), полупроводниковая память или тому подобное.
К тому же, программа, выполненная с возможностью реализации обработки согласно каждому из вариантов осуществления, может быть сохранена на компьютере (сервере), присоединенном к сети, такой как Интернет. Таким образом, программа может быть загружена в компьютер (клиент) через сеть.
СПИСОК ССЫЛОЧНЫХ ПОЗИЦИЙ
101: блок вычитания
102: блок ортогонального преобразования
103: блок квантования
104: блок деквантования
105: блок обратного ортогонального преобразования
106: блок сложения
107: память опорного изображения
108: блок внутреннего предсказания
109: блок внешнего предсказания
110: блок выбора предсказания
111: переключатель выбора предсказания
112: блок задания матрицы 1D преобразования
113: блок управления порядком коэффициентов
114: блок энтропийного кодирования
115: выходной буфер
116: блок управления кодированием
117: последовательность квантованных коэффициентов преобразования
118: входное изображение
119: ошибка предсказания
120: коэффициент преобразования
121: квантованный коэффициент преобразования
122: восстановленный коэффициент преобразования
123: восстановленная ошибка предсказания
124: локально декодированное изображение
125: опорное изображение
126: информация предсказания
127: предсказанное изображение
129: информация задания матрицы 1D преобразования
130: кодированные данные
201, 204, 801, 804, 1101, 1104, 1201, 1204: переключатель выбора
202, 802, 1102, 1202: блок вертикального преобразования
206,..., 209, 806,..., 811, 1206,..., 1211: блок 1D ортогонального преобразования
203, 1103: блок транспонирования
205, 805, 1105, 1205: блок горизонтального преобразования
301, 304, 901, 904, 1301, 1304: переключатель выбора
302, 902, 1302: блок вертикального обратного преобразования
303: блок транспонирования
305, 905, 1305: блок горизонтального обратного преобразования
306,..., 309, 906,..., 911, 1306,..., 1311: блок 1D обратного ортогонального преобразования
401: входной буфер
402: блок энтропийного декодирования
403: блок управления порядком коэффициентов
404: блок деквантования
405: блок обратного ортогонального преобразования
406: блок сложения
407: память опорного изображения
408: блок внутреннего предсказания
409: блок внешнего предсказания
410: переключатель выбора
411: блок задания матрицы 1D преобразования
412: выходной буфер
413: блок управления декодированием
414: кодированные данные
415: последовательность квантованных коэффициентов преобразования
416: квантованный коэффициент преобразования
417: восстановленный коэффициент преобразования
418: восстановленная ошибка предсказания
419: декодированное изображение
420: опорное изображение
421: информация режима предсказания
422: информация задания матрицы 1D преобразования
423: изображение с предсказанием
424: информация предсказания
425: выходное изображение
501: переключатель выбора
502,..., 510: блок 2D-1D преобразования
511: блок подсчета частоты возникновения
512: блок обновления порядка коэффициентов
513: гистограмма
514: информация обновления порядка коэффициентов
700: синтаксис
701: высокоуровневый синтаксис
702: синтаксис уровня вырезки
703: синтаксис уровня дерева кодирования
704: синтаксис задания параметров последовательности
705: синтаксис задания параметров картинки
706: синтаксис заголовка вырезки
707: синтаксис данных вырезки
708: синтаксис единицы дерева кодирования
709: синтаксис единицы предсказания
710: синтаксис единицы преобразования
1001: переключатель выбора
1002,..., 1010: блок 1D-2D преобразования
1011: блок подсчета частоты возникновения
1012: блок обновления порядка коэффициентов
1013: гистограмма
1014: информация обновления порядка коэффициентов
Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования. Способ кодирования изображения, в котором предсказывают ошибку предсказания целевого изображения, которое следует кодировать, на основе режима внутреннего предсказания; задают комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, соответствующую целевому изображению, на основе предварительно определенного отношения; преобразуют ошибку предсказания, используя комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, для получения коэффициентов преобразования; и кодируют коэффициенты преобразования и информацию, указывающую режим внутреннего предсказания для целевого изображения, и при этом упомянутая комбинация содержит любую из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием. 2 н. и 14 з.п. ф-лы, 46 ил.
1. Способ кодирования изображения, отличающийся тем, что содержит этапы, на которых:
предсказывают ошибку предсказания целевого изображения, которое следует кодировать, на основе режима внутреннего предсказания;
задают комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, соответствующую целевому изображению, на основе предварительно определенного отношения;
преобразуют ошибку предсказания, используя комбинацию из матрицы вертикального преобразования и матрицы горизонтального преобразования, для получения коэффициентов преобразования; и
кодируют коэффициенты преобразования и информацию, указывающую режим внутреннего предсказания для целевого изображения, и при этом
упомянутая комбинация содержит любую из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием.
2. Способ согласно п. 1, в котором вторая матрица преобразования включает в себя базис преобразования, предварительно спроектированный так, чтобы увеличить плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняют на основе тенденции увеличить абсолютное значение ошибки предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием.
3. Способ согласно п. 1, дополнительно содержащий этапы, на которых задают вторую матрицу преобразования как матрицу вертикального преобразования, соответствующую режиму внутреннего предсказания, в котором ссылаются на группу опорных пикселей на по меньшей мере одной линии для генерирования изображения с внутренним предсказанием, если линия из группы опорных пикселей включает в себя горизонтальную линию, и задают вторую матрицу преобразования как матрицу горизонтального преобразования, соответствующую режиму внутреннего предсказания, если линия из группы опорных пикселей включает в себя вертикальную линию.
4. Способ согласно п. 1, дополнительно содержащий этап, на котором преобразуют коэффициенты преобразования в одномерное выражение в индивидуальном порядке сканирования, соответствующем режиму внутреннего предсказания для целевого изображения, до того как коэффициенты преобразования кодируют,
причем индивидуальный порядок сканирования, соответствующий режиму внутреннего предсказания для целевого изображения, предварительно спроектирован, чтобы совпадал с порядком уменьшения частоты возникновения ненулевых коэффициентов в коэффициентах преобразования режима внутреннего предсказания после квантования.
5. Способ согласно п. 4, дополнительно содержащий этап, на котором динамически обновляют индивидуальный порядок сканирования, соответствующий режиму внутреннего предсказания для целевого изображения, таким образом, что индивидуальный порядок сканирования совпадает с порядком уменьшения частоты возникновения ненулевых коэффициентов в коэффициентах преобразования режима внутреннего предсказания после квантования.
6. Способ согласно п. 1, в котором множество матриц преобразования включают в себя третью матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование в вертикальном направлении и горизонтальном направлении выполняют над ошибкой предсказания в режиме внутреннего предсказания для DC предсказания.
7. Способ согласно п. 6, в котором третья матрица преобразования является матрицей дискретного косинусного преобразования.
8. Способ согласно п. 1, в котором вторая матрица преобразования увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование в направлении, ортогональном линии из группы опорных пикселей на одной линии, выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием, и
множество матриц преобразования включают в себя третью матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование в вертикальном направлении и горизонтальном направлении выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группы опорных пикселей на двух линиях для генерирования изображения с внутренним предсказанием.
9. Способ декодирования изображения, отличающийся тем, что содержит этапы, на которых:
декодируют коэффициенты преобразования для целевого изображения, которое следует декодировать, и информацию, указывающую режим внутреннего предсказания для целевого изображения;
задают комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, соответствующую целевому изображению, на основе предварительно определенного отношения;
выполняют обратное преобразование коэффициентов преобразования, используя комбинацию из матрицы вертикального обратного преобразования и матрицы горизонтального обратного преобразования, для получения ошибки предсказания; и
генерируют декодированное изображение на основе ошибки предсказания, и при этом
упомянутая комбинация содержит любую из множества транспонированных матриц из множества матриц преобразования, включая первую матрицу преобразования и вторую матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием.
10. Способ согласно п. 9, в котором вторая матрица преобразования включает в себя базис преобразования, предварительно спроектированный так, чтобы увеличить плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на по меньшей мере одной линии, выполняют на основе тенденции увеличить абсолютное значение ошибки предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием.
11. Способ согласно п. 9, дополнительно содержащий этапы, на которых задают транспонированную матрицу второй матрицы преобразования как матрицу вертикального обратного преобразования, соответствующую режиму внутреннего предсказания, в котором ссылаются на группу опорных пикселей на по меньшей мере одной линии для генерирования изображения с внутренним предсказанием, если линия из группы опорных пикселей включает в себя горизонтальную линию, и задают транспонированную матрицу второй матрицы преобразования как матрицу горизонтального преобразования, соответствующую режиму внутреннего предсказания, если линия из группы опорных пикселей включает в себя вертикальную линию.
12. Способ согласно п. 9, дополнительно содержащий этап, на котором преобразуют коэффициенты преобразования в двухмерное выражение в индивидуальном порядке сканирования, соответствующем режиму внутреннего предсказания для целевого изображения, до того как выполнены вертикальное обратное преобразование и горизонтальное обратное преобразование над коэффициентами преобразования,
причем индивидуальный порядок сканирования, соответствующий режиму внутреннего предсказания для целевого изображения, предварительно спроектирован, чтобы совпадал с порядком уменьшения частоты возникновения ненулевых коэффициентов в матрице преобразования режима внутреннего предсказания до деквантования.
13. Способ согласно п. 12, дополнительно содержащий этап, на котором динамически обновляют индивидуальный порядок сканирования, соответствующий режиму внутреннего предсказания для целевого изображения, таким образом, что индивидуальный порядок сканирования совпадает с порядком уменьшения частоты возникновения ненулевых коэффициентов в коэффициентах преобразования режима внутреннего предсказания до деквантования.
14. Способ согласно п. 9, в котором множество матриц преобразования включают в себя третью матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование в вертикальном направлении и горизонтальном направлении выполняют над ошибкой предсказания в режиме внутреннего предсказания для DC предсказания.
15. Способ согласно п. 14, в котором третья матрица преобразования является транспонированной матрицей матрицы дискретного косинусного преобразования.
16. Способ согласно п. 9, в котором вторая матрица преобразования увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование, в направлении, ортогональном линии из группы опорных пикселей на одной линии, выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группу опорных пикселей для генерирования изображения с внутренним предсказанием, и
множество матриц преобразования включают в себя третью матрицу преобразования, которая увеличивает плотность коэффициентов по сравнению с первой матрицей преобразования, если одномерное ортогональное преобразование в вертикальном направлении и горизонтальном направлении выполняют над ошибкой предсказания в режиме внутреннего предсказания, в котором ссылаются на группы опорных пикселей на двух линиях для генерирования изображения с внутренним предсказанием.
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
US 6707948 B1, 16.03.2004 | |||
US 5859668 A1, 12.01.1999 | |||
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
US 6990506 B2, 24.01.2006 | |||
УСТРОЙСТВО КОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ, СПОСОБ И ПРОГРАММА УПРАВЛЕНИЯ ЭТИМ УСТРОЙСТВОМ | 2004 |
|
RU2335859C2 |
Авторы
Даты
2014-09-10—Публикация
2010-07-15—Подача