УСОВЕРШЕНСТВОВАННОЕ КОДИРОВАНИЕ С ВНУТРИКАДРОВЫМ ПРЕДСКАЗАНИЕМ С ИСПОЛЬЗОВАНИЕМ ПЛАНАРНЫХ ПРЕДСТАВЛЕНИЙ
IMPROVED CODING WITH INTRA-FRAME PREDICTION USING PLANAR REPRESENTATIONS

РОДСТВЕННЫЕ ЗАЯВКИ
Настоящий патентный документ испрашивает приоритет по дате подачи временной заявки на патент США серийный номер 61/425,670, поданной 21 декабря 2010 года, и 61/449,528, поданной 4 марта 2011 года, содержание которых тем самым включено в настоящий документ по ссылке во всей своей полноте.
УРОВЕНЬ ТЕХНИКИ
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к видеокодированию и, в частности, к внутрикадровому предсказанию, усовершенствованному с помощью режима кодирования с планарным предсказанием с низкой сложностью.
ОПИСАНИЕ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
Цифровое видео требует большого объема данных для представления каждого кадра цифровой видеопоследовательности (например, серии кадров) в несжатом виде. Для большинства приложений передача несжатого цифрового видео через компьютерные сети является невыполнимой из-за ограничений пропускной способности. Кроме того, несжатое цифровое видео требует большого количества места для хранения. Цифровое видео обычно некоторым образом кодируется для уменьшения требований к хранению и уменьшения требований к пропускной способности.
Одной из методик для кодирования цифрового видео является межкадровое предсказание. Межкадровое предсказание  использует временную избыточность среди разных кадров. Смежные по времени кадры видео, как правило, включают в себя блоки пикселей, которые остаются в значительной степени одинаковыми. Во время процесса кодирования вектор движения взаимно связывает движение блока пикселей в одном кадре с блоком аналогичных пикселей в другом кадре. В соответствии с этим система не нуждается в кодировании блока пикселей не дважды, а вместо этого кодирует блок пикселей один раз и предоставляет вектор движения для предсказания другого блока пикселей.
Другой методикой для кодирования цифрового видео является внутрикадровое предсказание. Внутрикадровое предсказание кодирует кадр или его часть независимо от пикселей в других кадрах. Внутрикадровое предсказание использует пространственную избыточность среди блоков пикселей в пределах кадра. Поскольку пространственно смежные блоки пикселей обычно имеют похожие атрибуты, эффективность процесса кодирования улучшается посредством ссылки на пространственную корреляцию между смежными блоками. Эта корреляция может использоваться посредством предсказания целевого блока на основе видов предсказания, используемых в смежных блоках.
Как правило, кодер содержит модуль предсказания пикселей, который содержит модуль межкадрового предсказания, модуль внутрикадрового предсказания и селектор режима. Модуль межкадрового предсказания выполняет предсказание для принятого изображения на основе опорного кадра с компенсацией движения. Модуль внутрикадрового предсказания выполняет предсказание для принятого изображения на основе уже обработанных частей текущего кадра или изображения. Модуль внутрикадрового предсказания дополнительно содержит множество разных режимов внутрикадрового предсказания и выполняет предсказание в соответствующих режимах предсказания. Выходная информация из модуля межкадрового предсказания и модуля внутрикадрового предсказания подается на селектор режима.
Селектор режима определяет, какой способ кодирования должен использоваться: кодирование с межкадровым предсказанием или кодирование с внутрикадровым предсказанием, и когда должно использоваться кодирование с внутрикадровым предсказанием, определяет, какой режим кодирования с внутрикадровым предсказанием должен использоваться среди множества режимов внутрикадрового предсказания. В процессе определения селектор режима использует функции затрат для анализа, какой способ кодирования или какой режим дает самый эффективный результат относительно эффективности кодирования и затрат на обработку.
Режимы внутрикадрового предсказания содержат режим DC (постоянный) и направленные режимы. Режим DC надлежащим образом представляет блок, пиксельные значения которого являются постоянными в блоке. Направленные режимы подходят для представления блока, который имеет шаблон полосы в некотором направлении. Имеется другой шаблон изображения, в котором изображение является плавным, и его пиксельные значения постепенно изменяются в блоке. Режим DC и направленные режимы не подходят для предсказания небольших постепенных изменений в содержании изображения и могут создавать раздражающие артефакты блочности, особенно при низких и средних битовых скоростях. Это происходит потому, что когда кодируются блоки с постепенным изменением пиксельных значений, коэффициенты AC (переменные) для блоков имеют тенденцию квантоваться как нуль, в то время как коэффициенты DC имеют ненулевые значения.
Чтобы справиться с этой проблемой, режимы внутрикадрового предсказания стандарта H.264/AVC дополнительно включают в себя планарный режим для представления блока с плавным изображением, пиксельные значения которого постепенно изменяются с малым планарным градиентом. В планарном режиме стандарта H.264/AVC планарный градиент оценивается и сообщается в битовом потоке декодеру.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение обеспечивает режим кодирования с планарным предсказанием с низкой сложностью, который может улучшить эффективность кодирования с внутрикадровым предсказанием. В настоящем изобретении в планарном режиме предсказания кодер вычисляет первое значение предсказания и второе значение предсказания. Первое значение предсказания вычисляется с использованием линейной интерполяции между значением соответствующих пикселей горизонтальной границы и значением одного из пикселей вертикальной границы. Второе значение предсказания вычисляется с использованием линейной интерполяции между значением соответствующих пикселей вертикальной границы и значением одного из пикселей горизонтальной границы. Затем кодер выполняет усреднение первого и второго значений предсказания для получения соответствующего значения предсказания в блоке предсказания.
В одном аспекте настоящего изобретения кодер сообщает разность между блоком предсказания и целевым блоком в битовом потоке декодеру.
N
N
N
В другом аспекте настоящего изобретения первичный набор ядра преобразования H(i, j) переключается на вторичный набор ядра преобразования G(i., j). Кодер преобразовывает разность с использованием вторичного набора ядра преобразования G(i, j).
N
Вторичный набор ядра преобразования G(i, j) может быть задано одним из следующих уравнений:
и
N
M
N
В другом аспекте настоящего изобретения вторичный набор ядра преобразования G(i, j) для размера N×N задается посредством первичного набора ядра преобразования H(i, j) для размера M×M, где M>N. В частности, вторичный набор ядра преобразования G(i, j) может быть задан посредством
N
2N
2N
t
G(i, j) = k×H(2i,N+1-j), если поддерживаются ядра преобразования размером 2N×2N (H), или
N
N
G(i, j)=H(i, j) в ином случае.
Настоящее изобретение также обеспечивает планарный режим кодирования низкой сложности, используемый для декодирования. В планарном режиме декодер вычисляет первое значение предсказания и второе значение предсказания. Первое значение предсказания вычисляется с использованием линейной интерполяции между значением соответствующих пикселей горизонтальной границы и значением одного из пикселей вертикальной границы. Второе значение предсказания вычисляется с использованием линейной интерполяции между значением соответствующих пикселей вертикальной границы и значением одного из пикселей горизонтальной границы. Затем декодер выполняет усреднение первого и второго значений предсказания для получения соответствующего пиксельного значения предсказания в блоке предсказания. Декодер декодирует разность, сообщенную от кодера, которая была сформирована в планарном режиме в кодере, и добавляет декодированную разность к блоку предсказания для воссоздания данных изображения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - блок-схема, показывающая примерную аппаратную архитектуру, на которой может быть реализовано настоящее изобретение.
Фиг.2 - блок-схема, показывающая общий вид видеокодера, к которому может быть применено настоящее изобретение.
Фиг.3 - блок-схема, показывающая общий вид видеодекодера, к которому может быть применено настоящее изобретение.
Фиг.4 - блок-схема, показывающая функциональные модули кодера в соответствии с вариантом осуществления настоящего изобретения.
Фиг.5 - блок-схема последовательности операций, показывающая процесс кодирования, выполняемый видеокодером в соответствии с вариантом осуществления настоящего изобретения.
Фиг.6 - блок-схема, показывающая функциональные модули декодера в соответствии с вариантом осуществления настоящего изобретения.
Фиг.7 - схема, показывающая процесс декодирования, выполняемый видеодекодером в соответствии с вариантом осуществления настоящего изобретения.
Фиг.8 - схематическое представление целевого блока, содержащего 8x8 пикселей P(i, j), и опорные пиксели, используемые для предсказания пикселей P(i, j).
Фиг.9 - схематическое представление, показывающее процесс формирования пикселей предсказания в соответствии с планарным режимом кодирования, предложенным в JCT-VC A119.
Фиг.10 - схематическое представление, показывающее процесс формирования пикселей предсказания в соответствии с планарным режимом кодирования настоящего изобретения.
Фиг.11 - другое схематическое представление, показывающее процесс формирования пикселей предсказания в соответствии с планарным режимом кодирования настоящего изобретения.
Фиг.12 - блок-схема последовательности операций, показывающая процесс переключения между первичным набором ядра преобразования и вторичным набором ядра преобразования.
ПОДРОБНОЕ ОПИСАНИЕ ЧРЕТЕЖЕЙ И ПРЕДСТАВЛЕННЫХ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг.1 показывает примерную аппаратную архитектуру компьютера 100, на котором может быть реализовано настоящее изобретение. Следует отметить, что аппаратная архитектура, показанная на Фиг.1, может быть общей как в видеокодере, так и в видеодекодере, которые реализуют варианты осуществления настоящего изобретения. Компьютер 100 включает в себя процессор 101, память 102 устройство 105 хранения и одно или более устройств 106 ввода и/или вывода (или периферийные устройства), которые соединены с возможностью взаимодействия через локальный интерфейс 107. Локальный интерфейс 105, например, может представлять собой, но без ограничения, одну или более шин или другие проводные или беспроводные соединения, известные в области техники.
Процессор 101 является аппаратным устройством для исполнения программного обеспечения, в частности, сохраненного в памяти 102. Процессор 101 может являться любым изготовленным на заказ или серийно выпускаемым процессором, центральным процессором (CPU), вспомогательным процессором среди нескольких процессоров, связанных с компьютером 100, полупроводниковым микропроцессором (в виде микрокристалла или чипсета) или любым устройством для исполнения программных команд.
Память 102 содержит машиночитаемый носитель, который может включать в себя любой элемент энергозависимой памяти или их комбинацию (например, оперативное запоминающее устройство (RAM, такое как DRAM, SRAM, SDRAM, и т.д.)) и элементы энергонезависимой памяти (например, постоянное запоминающее устройство (ROM), накопитель на жестком диске, ленту, компакт диск (CD-ROM) и т.д.). Кроме того, память 102 может включать в себя электронные, магнитные, оптические и/или другие типы носителей. Машиночитаемый носитель может представлять собой любое средство, которое может хранить, передавать, распространять или транспортировать программу для использования с помощью системы или устройства исполнения команд. Следует отметить, что память 102 может иметь распределенную архитектуру, в которой различные компоненты расположены удаленно друг от друга, но к которым может быть получен доступ посредством процессора 101.
Программное обеспечение 103 в памяти 102 может включать в себя одну или более отдельных программ, каждая из которых содержит упорядоченный список исполняемых команд для реализации логических функций компьютера 100, как описано ниже. В примере на Фиг.1 программное обеспечение 103 в памяти 102 определяет функциональность кодирования видео и декодирования видео компьютера 100 в соответствии с настоящим изобретением. Кроме того, хотя это не обязательно, память 102 может содержать операционную систему (O/S) 104. Операционная система 104 в общем и целом управляет выполнением компьютерных программ и обеспечивает планирование, управление вводом-выводом, управление файлами и данными, управление памятью и управление связью и соответствующие службы.
Устройство 105 хранения компьютера 100 может являться одним из многих устройств хранения различных типов, включающих в себя стационарное устройство хранения или переносное устройство хранения. В качестве примера устройство 105 хранения может являться магнитной лентой, диском, флэш-памятью, энергозависимой памятью или другим устройством хранения. Кроме того, устройство 105 хранения может являться цифровой картой памяти с защищенным доступом или любым другим съемным устройством 105 хранения.
Устройства 106 ввода-вывода могут включать в себя устройства ввода данных, например, но без ограничения, сенсорный экран, клавиатуру, мышь, сканер, микрофон или другое устройство ввода данных. Кроме того, устройства 106 ввода-вывода также могут включать в себя устройства вывода, например, но без ограничения, дисплей или другие устройства вывода. Устройства 106 ввода-вывода могут дополнительно включать в себя устройства, которые осуществляют взаимодействие и через входы, и через выходы, например, но без ограничения, модулятор/демодулятор (например, модем для доступа к другому устройству, системе или сети), радиочастотный (RF), беспроводной или другой приемопередатчик, телефонный интерфейс, мост, маршрутизатор или другие устройства, которые функционируют и как устройства ввода, и как устройства вывода.
Как известно специалистам в области техники, сжатие видео достигается посредством удаления избыточной информации в последовательности видеокадров. Существует много различных стандартов видеокодирования, примеры которых включают в себя MPEG-1, MPEG-2, MPEG-4, H.261, H.263 и H.264/AVC. Следует отметить, что настоящее изобретение не предусматривает ограничения в применении какого-либо конкретного стандарта видеокодирования. Однако последующее описание настоящего изобретения представлено с использованием примера стандарта H.264/AVC, который включен в настоящий документ по ссылке. Стандарт H.264/AVC является новейшим стандартом видеокодирования и достигает существенного улучшения производительности по сравнению с предыдущими стандартами кодирования, такими как MPEG-1, MPEG-2, H.261 и H.263.
В стандарте H.264/AVC каждый кадр или изображение видео может быть разбит на несколько секций. Затем секции разделяются на блоки с размером 16×16 пикселей, называемые макроблоками, которые затем могут быть дополнительно разделены на блоки с размером 8×16, 16×8, 8×8, 4×8, 8×4 и вплоть до 4×4 пикселей. Имеется пять типов секций, поддерживаемых в стандарте H.264/AVC. В секциях I все макроэлементы кодируются с использованием внутрикадрового предсказания. В секциях P макроэлементы могут быть закодированы с использованием внутрикадрового или межкадрового предсказания. P секции разрешают использовать только один сигнал предсказания с компенсацией движения (MCP) для каждого макроблока. В секциях B макроэлементы могут быть закодированы с использованием внутрикадрового или межкадрового предсказания. Для каждого предсказания могут использоваться два сигнала MCP. Секции SP позволяют эффективно переключать секции P между разными видеопотоками. Секция SI представляет собой точное соответствие для секции SP для произвольного доступа или восстановления после ошибки при использовании только внутрикадрового предсказания.
Фиг.2 показывает общий вид видеокодера, к которому может быть применено настоящее изобретение. Блоки, показанные на фигуре, представляют функциональные модули, реализованные процессором 101, исполняющим программное обеспечение 103 в памяти 102. Изображение видеокадра 200 подается в видеокодер 201. Видеокодер обрабатывает изображение 200 в макроблоках 200A. Каждый макроблок содержит несколько пикселей изображения 200. Над каждым макроблоком выполняется преобразование в коэффициенты преобразования, за которым следует квантование в уровни коэффициентов преобразования. Кроме того, внутрикадровое предсказание или межкадровое предсказание используется таким образом, чтобы выполнять этапы кодирования не над самими пиксельными данными, а над их разностями с предсказанными пиксельными значениями, тем самым достигая маленьких значений, которые легче сжимаются.
Для каждой секции кодер 201 формирует несколько синтаксических элементов, которые формируют закодированную версию макроблоков соответствующей секции. Все элементы разностных данных в синтаксических элементах, которые относятся к кодированию коэффициентов преобразования, такие как уровни коэффициентов преобразования или карта значимости, указывающая пропущенные уровни коэффициентов преобразования, называются синтаксическими элементами разностных данных. Помимо этих синтаксических элементов разностных данных синтаксические элементы, формируемые кодером 201, содержат синтаксические элементы управляющей информации, содержащие управляющую информацию относительно того, как каждый макроблок был закодирован и должен быть декодирован, соответственно. Другими словами, синтаксические элементы делятся на две категории. Первая категория, синтаксические элементы управляющей информации, содержит элементы, имеющие отношение к типу макроблока, типу субмакроблока и информации о режимах предсказания как пространственного, так и временного типов, а также, например, управляющая информация для секций и макроблоков. Во второй категории все элементы разностных данных, такие как карта значимости, указывающая местоположения всех значимых коэффициентов в блоке квантованных коэффициентов преобразования, и значения значимых коэффициентов, которые указаны как уровни, соответствующие этапам квантования, объединяются и становятся синтаксическими элементами разностных данных.
Кодер 201 содержит энтропийный кодер, который кодирует синтаксические элементы и формирует арифметические кодовые слова для каждой секции. При формировании арифметических кодовых слов для секции энтропийный кодер использует статистические зависимости среди значений данных синтаксических элементов в битовом потоке видеосигнала. Кодер 201 выдает закодированный видеосигнал для секции изображения 200 видеодекодеру 301, показанному на Фиг.3.
Фиг.3 показывает общий вид видеодекодера, к которому может быть применено настоящее изобретение. Аналогичным образом, блоки, показанные на фигуре, представляют функциональные модули, реализованные процессором 101, исполняющим программное обеспечение 103 в памяти 102. Видеодекодер 301 принимает закодированный видеосигнал и сначала выполняет энтропийное декодирование сигнала обратно в синтаксические элементы. Декодер 301 использует синтаксические элементы для воссоздания, макроблока за макроблоком и затем секции за секцией, отсчетов 300A изображения пикселей в изображении 300.
Фиг.4 показывает функциональные модули видеокодера 201. Эти функциональные модули реализованы процессором 101, исполняющим программное обеспечение 103 в памяти 102. Входное видеоизображение представляет собой кадр или поле естественного (несжатого) видеоизображения, заданные точками отсчетов, представляющими компоненты первоначальных цветов, такие как цветность ("chroma") и яркость ("luma") (возможны другие компоненты, например, оттенок, насыщенность и значение). Входное видеоизображение разделяется на макроблоки 400, каждый из которых представляет квадратную область изображения, состоящую из 16×16 пикселей компонента яркости цвета изображения. Входное видеоизображение также разделяется на макроблоки, каждый из которых представляет 8×8 пикселей каждого из двух компонентов цветности цвета изображения. При обычной работе кодера введенные макроблоки могут быть предсказаны по времени или в пространстве с использованием межкадрового или внутрикадрового предсказания. Однако с целью обсуждения предполагается, что все макроблоки 400 представляют собой макроблоки секции типа I и подвергаются только внутрикадровому предсказанию.
Внутрикадровое предсказание выполняется в модуле 401 внутрикадрового предсказания, работа которого будет подробно обсуждена ниже. Модуль 401 внутрикадрового предсказания формирует блок 402 предсказания из пикселей горизонтальной и вертикальной границы соседних блоков, которые были ранее закодированы, воссозданы и сохранены в памяти 403 кадра. Разность 404 блока 402 предсказания, которая является разностью между целевым блоком 400 и блоком 402 предсказания, преобразовывается модулем 405 преобразования и затем квантуется модулем 406 квантования. Модуль 405 преобразования преобразовывает разность 404 в блок коэффициентов преобразования. Модуль 406 квантования квантует коэффициенты преобразования в квантованные коэффициенты 407 преобразования. Квантованные коэффициенты 407 преобразования затем подвергаются энтропийному кодированию в модуле 408 энтропийного кодирования и передаются (вместе с другой информацией, имеющей отношение к выбранному режиму внутрикадрового предсказания) как закодированный видеосигнал 409.
Видеокодер 201 содержит функциональность декодирования для выполнения внутрикадрового предсказания над целевыми блоками. Функциональность декодирования содержит модуль 410 обратного квантования и модуль 411 обратного преобразования, которые выполняют обратное квантование и обратное преобразование над квантованными коэффициентами 407 преобразования для получения декодированной разности 410 предсказания, которая добавляется к блоку 402 предсказания. Сумма декодированной разности 410 предсказания и блока 402 предсказания представляет собой воссозданный блок 413, который сохраняется в памяти 403 кадра и будет считан оттуда и использован модулем 401 внутрикадрового предсказания для формирования блока 402 предсказания для декодирования следующего целевого блока 400. Фильтр удаления блочности может быть дополнительно помещен либо на воде, либо на выходе памяти 403 кадра для удаления артефактов блочности из воссозданных изображений.
Фиг.5 является блок-схемой последовательности операций, показывающей процессы, выполняемые видеокодером 201. В соответствии со стандартом H.264/AVC, внутрикадровое предсказание включает в себя предсказание каждого пикселя целевого блока 400 во множестве режимов предсказания с использованием интерполяции граничных пикселей ("опорных пикселей") соседних блоков, ранее закодированных и воссозданных. Режимы предсказания идентифицированы положительными целыми числами 0, 1, 2, ..., и каждый из них имеет отношение к разным командам или алгоритмам для предсказания заданных пикселей в целевом блоке 400. Модуль 401 внутрикадрового предсказания выполняет внутрикадровое предсказание в соответствующих режимах предсказания и формирует разные блоки предсказания. В алгоритме полного поиска ("FS") каждый из сформированных блоков предсказания сравнивается с целевым блоком 400 для нахождения оптимального режима предсказания, который минимизирует разность 404 предсказания или производит меньшую разность 404 предсказания среди режимов предсказания (этап 501). Идентификационная информация оптимального режима предсказания сжимается (этап 502) и будет сообщена декодеру 301 с другими синтаксическими элементами управляющей информации.
Каждый режим предсказания может быть описан посредством общего направления предсказания, как описано словесно (то есть горизонтально, вертикально и по диагонали вниз и влево). Направление предсказания может быть описано графически угловым направлением. Угол, соответствующий режиму предсказания, имеет общее отношение к направлению от взвешенного среднего местоположения опорных пикселей, используемых для предсказания целевого пикселя, к местоположению целевого пикселя. В режиме предсказания DC блок 402 предсказания формируется таким образом, что каждый пиксель в блоке 402 предсказания однородно установлен равным среднему значению опорных пикселей.
Как показано на Фиг.5, модуль 401 внутрикадрового предсказания выдает блок 402 предсказания, который вычитается из целевого блока 400 для получения разности 404 (этап 503). Модуль 405 преобразования преобразовывает разность 404 в блок коэффициентов преобразования (этап 504). Модуль 406 квантования квантует коэффициенты преобразования в квантованные коэффициенты преобразования. Модуль 408 энтропийного кодирования - кодирует квантованные коэффициенты преобразования (этап 506), которые отправляются вместе со сжатой идентификационной информацией оптимального режима предсказания. Модуль 410 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования (этап 507). Модуль 411 обратного преобразования выполняет обратное преобразование для получения декодированной разности 412 предсказания (этап 508), который складывается с блоком 402 предсказания для получения воссозданного блока 413 (этап 509).
Фиг.6 показывает функциональные модули видеодекодера 301. Эти функциональные модули реализованы процессором 101, исполняющим программное обеспечение 103 в памяти 102. Закодированный видеосигнал от кодера 201 сначала принимается энтропийным декодером 600 и декодируется обратно в квантованные коэффициенты 601 преобразования. Квантованные коэффициенты 601 преобразования подвергаются обратному квантованию посредством модуля 602 обратного квантования и обратному преобразованию посредством модуля 603 обратного преобразования для формирования разности 604 предсказания. Модуль 605 внутрикадрового предсказания 605 уведомляется относительно режима предсказания, выбранного кодером 201. Согласно выбранному режиму предсказания модуль 605 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания, аналогичный выполняемому на этапе 503 на Фиг.5, для формирования блока 606 предсказания с использованием граничных пикселей соседних блоков, ранее воссозданных и сохраненных в памяти 607 кадра. Блок 606 предсказания добавляется к разности 604 предсказания для воссоздания блока 608 из декодированного видеосигнала. Воссозданный блок 608 сохраняется в памяти 607 кадра для использования при предсказании следующего блока.
Фиг.7 является блок-схемой последовательности операций, показывающей процессы, выполняемые видеокодером 201. Видеодекодер 301 декодирует идентификационную информацию оптимального режима предсказания, сообщенную от видеокодера 201 (этап 701). С использованием декодированного режима предсказания модуль 605 внутрикадрового предсказания формирует блок 606 предсказания, используя граничные пиксели соседних блоков, ранее воссозданных и сохраненных в памяти 607 кадра (этап 702). Арифметический декодер 600 декодирует закодированный видеосигнал от кодера 201 обратно в квантованные коэффициенты 601 преобразования (этап 703). Модуль 602 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования в коэффициенты преобразования (этап 704). Модуль 603 обратного преобразования выполняет обратное преобразование коэффициентов преобразования в разность 604 предсказания (этап 705), которая складывается с блоком 606 предсказания для воссоздания блока 608 из декодированного видеосигнала (этап 706).
Процесс кодирования, выполняемый видеокодером 201, может быть более подробно объяснен со ссылкой на Фиг.8. Фиг.8 является схематическим представлением целевого блока, содержащего 8x8 пикселей P(i, j), и опорные пиксели, используемые для предсказания пикселей P(i, j). На Фиг.8 опорные пиксели состоят из 17 горизонтальных пикселей и 17 вертикальных пикселей, причем верхний левый пиксель является общим для горизонтальной и для вертикальной границ. Таким образом, доступны 32 разных пикселя для формирования пикселей предсказания для целевого блока. Следует отметить, что хотя Фиг.8 показывает блок с размером 8×8, который должен быть предсказан, последующее объяснение обобщено, чтобы оно стало применимым к разным количествам пикселей в разных конфигурациях. Например, блок, который должен быть предсказан, может включать массив пикселей размером 4×4. Блок предсказания также может включать в себя массив пикселей с размером 8×8, 16×16 или с большим количеством пикселей. Другие конфигурации пикселей, в том числе квадратные и прямоугольные массивы, также могут составлять блок предсказания.
P
R
Q
C
Предположим, что блок пикселей ({P(i, j): 1≤i, j≤N}), подвергается кодированию с внутрикадровым предсказанием c использованием горизонтальных и вертикальных опорных пикселей ({P(i, 0): 0≤i≤2N}U{P(0, j): 0≤j≤2N}). Причем PO(i, j) обозначает первоначальные пиксельные значения целевого блока, P(i, j) обозначает предсказанные пиксельные значения, P(i, j) обозначает разностные значения, P(i, j) обозначает сжатые разностные значения, и P(i, j) обозначает сжатые значения для пикселей (i, j), следующие уравнения определяют их соотношение:
F
I
T
F
I
N
N
H - матрица с размером N×N, представляющая ядро прямого преобразования. H - матрица с размером N×N, представляющая ядро обратного преобразования. P(1:N, 1:N) представляет преобразованные и квантованные разностные сигналы в битовом потоке. Q( ) представляет операцию квантования, и Q( ) представляет операцию обратного квантования.
P
P
Предсказанные пиксельные значения P(i, j) определены режимом внутрикадрового предсказания, выполняемым с опорными пикселями {P(i, 0):0≤i≤2N}U{P(0, j):0≤j≤2N}. Стандарт H.264/AVC поддерживает предсказание Intra_4×4, предсказание Intra_8×8 и предсказание Intra_16×16. Предсказание Intra_4×4 выполняется в девяти режимах предсказания, включающих в себя вертикальный режим предсказания, горизонтальный режим предсказания, режим предсказания DC и шесть угловых режимов предсказания. Предсказание Intra_8×8 выполняется в девяти режимах предсказания, как и выполняющееся в предсказании Intra_4×4. Предсказание Intra_16×16 выполняется в четырех режимах предсказания, включающих в себя вертикальный режим предсказания, горизонтальный режим предсказания, режим предсказания DC и планарный режим предсказания. Например, предсказанные пиксельные значения P(i, j), полученные в режиме предсказания DC, вертикальном режиме предсказания и горизонтальным режиме предсказания, определяются следующим образом:
Режим предсказания DC:
Вертикальный режим предсказания:
Горизонтальный режим предсказания:
P
P
C
P
P
C
P
P
P
C
C
P
Недавно Объединенной команде по видеокодированию ((JCT-VC) было представлено предложение № JCT-VC A119, которое включено в настоящий документ по ссылке. Предложение № JCT-VC A119 предлагает операцию планарного режима с низкой сложностью, которая использует комбинацию операций линейной и билинейной интерполяции для предсказания постепенно изменяющихся пиксельных значений с малым планарным градиентом. Предложенный процесс планарного режима схематично показан на Фиг.9. Процесс начинается с идентификации значения P(N, N) нижнего правого пикселя в блоке, который должен быть предсказан. Затем выполняются линейные интерполяции между значением P(N, N) и значением P(N, 0) опорного пикселя для получения предсказанных пиксельных значений P(N, j) нижнего ряда в блоке. Аналогичным образом выполняются линейные интерполяции между значением P(N, N) и значением P(0, N) опорного пикселя для получения предсказанных пиксельных значений P(i, N) крайнего правого столбца в блоке. После этого выполняются билинейные интерполяции среди предсказанных пиксельных значений P(N, j) и P(i, N) и значений P(i, 0) и P(0, j) опорных пикселей для получения остальных пиксельных значений P(i, j) в блоке. Предложенный процесс планарного режима может быть выражен следующими уравнениями:
Правый столбец:
Нижняя строка:
Остальные пиксели:
P
В процессе планарного режима, предложенном в JCT-VC A119, имеются две проблемы, которые должны быть разрешены. В предложенном процессе значение P(N, N) нижнего правого пикселя сообщается в битовом потоке декодеру и используется для декодирования целевого блока в декодере. Другими словами, для выполнения предсказания в предложенном планарном режиме декодеру требуется значение нижнего правого пикселя. Кроме того, в предложенном процессе разность не получается в планарном режиме и, таким образом, не сообщается декодеру. Опускание сообщения разности может способствовать сокращению закодированных видеоданных, которые должны быть переданы, но ограничивает применение планарного режима кодированием видеосигнала с низкой битовой скоростью.
P
P
Планарный режим в соответствии с настоящим изобретением разработан для решения упомянутых выше вопросов, связанных с процессом планарного режима, предложенного в JCT-VC A119. Согласно варианту осуществления настоящего изобретения значение P(N, N) нижнего правого пикселя получается из опорных пикселей. Таким образом, нет необходимости сообщать значение P(N, N) нижнего правого пикселя декодеру. В другом варианте осуществления настоящего изобретения блок предсказания, сформированный в планарном режиме, используется для получения разности, которая преобразована и квантована для сообщения декодеру. Применение традиционного дискретного косинусного преобразования (DCT) и квантование со средним или грубым параметром квантования имеет тенденцию приводить к нулевым коэффициентам AC и ненулевым коэффициентам DC из разностей, полученных в планарном режиме. Чтобы избежать этого, вариант осуществления настоящего изобретения использует вторичное ядро преобразования вместо первичного ядра преобразования для преобразования разности, полученной в планарном режиме. Кроме того, другой вариант осуществления выполняет адаптивное квантование в планарном режиме, в котором параметр квантования изменяется адаптивно согласно пространственной активности в целевом блоке.
P
P
В варианте осуществления настоящего изобретения значение P(N, N) нижнего правого пикселя вычисляется из опорных пикселей. Значение P(N, N) вычисляется в соответствии с одним из следующих трех способов:
Способ 1:
где оператор ">>" представляет операцию сдвига вправо с округлением или без округления.
Способ 2:
h
v
C
C
h
v
где w и w - весовые коэффициенты, определенные с использованием P(0,1: N) и P(1: N,0). Например, w и w вычисляются следующим образом:
где оператор "var ()" представляет операцию для вычисления отклонения.
Способ 3:
0
1
2N
2N
P
P
где  и  представляет арифметическую операцию. В варианте осуществления настоящего изобретения арифметическая операция определена как . В другом варианте осуществления настоящего изобретения арифметическая операция просто определена как y=f(x, x, ..., x)=x. Следует отметить, что в настоящем изобретении значение P(N, N) нижнего правого пикселя не сообщается декодеру. Вместо этого декодер вычисляет значение P(N, N) в соответствии со способом, принятым кодером, который может являться предварительно определенным или идентификационная информация которого может быть сообщена декодеру.
P
P
P
C
P
P
C
P
P
P
C
P
P
Фиг.10 является схематическим изображением, показывающим процесс предсказания пиксельных значений, выполняемый в планарном режиме в соответствии с вариантом осуществления настоящего изобретения, в котором реализован описанный выше способ 1. Процесс начинается с вычисления значения P(N, N) нижнего правого пикселя в блоке с использованием способа 1. После вычисления значения P(N, N) выполняются линейные интерполяции между значением P(N, N) и значением P(N, 0) дляполучения предсказанных пиксельных значений P(N, j) нижней строки в блоке. Аналогичным образом, линейные интерполяции выполняются между значением P(N, N) и значением P(0, N) для получения предсказанных пиксельных значений P(i, N) крайнего правого столбца в блоке. После этого выполняются билинейные интерполяции среди предсказанных пиксельных значений P(N, j) и P(i, N) и значениями P(0, j) опорных пикселей для получения остальных пиксельных значений P(i, j) в блоке. Как показано посредством следующих уравнений и на Фиг.11, способ 1 может упростить операцию предсказания пиксельных значений P(i, j) в целевом блоке:
где  и , если необходима дробная точность.
P
Приведенные выше уравнения требуют деления на значение N для вычисления пиксельных значений P(i, j) в блоке. Дробных операций можно избежать посредством использования целочисленной арифметики следующим образом:
где  и
.
P
Если целочисленная точность достаточна, пиксельные значения P(i, j) могут быть выражены посредством
,
где  и .
Способ 1 может быть модифицирован следующим образом:
0
1
2N
где y = f(x, x, ..., x) представляет арифметическую операцию. В варианте осуществления настоящего изобретения арифметическая операция определена как . В другом варианте осуществления настоящего изобретения, арифметическая операция просто определена как .
Способ 1 дополнительно может быть изменен следующим образом:
где  представляет функцию, которая может быть определена одним из следующих четырех уравнений:
Уравнение 1:
Уравнение 2:
Уравнение 3:
Уравнение 4:
(N+i)
0
1
2N
, где  является фильтрованным значением x, когда фильтр применен к массиву [x, x, ... x]. В варианте осуществления настоящего изобретения фильтр может являться фильтром с 3 коэффициентами .
C
C
C
C
C
C
b
b
В описанных выше вариантах осуществления предполагается, что все вертикальные и горизонтальные опорные пиксели {P(i, 0):0≤i≤2N}U{P(0, j):0≤j≤2N} доступны для предсказания. Опорные пиксели могут быть не доступны, если целевой блок расположен на границе секции или кадра. Если вертикальные опорные пиксели {P(i, 0):0≤i≤2N} не доступны для предсказания, но горизонтальные опорные пиксели {P(0, j):0≤j≤2N} доступны, присваивание P(i, 0)=P(0,1), ∀1≤i≤2N выполняется для формирования вертикальных опорных пикселей для предсказания. Если горизонтальные опорные пиксели {P(0, j):0≤i≤2N} не доступны для предсказания, но вертикальных опорные пиксели {P(i, j):0≤j<2N) доступны, присваивание P(0, j)= P(1,0), ∀1≤i≤2N выполняется для формирования горизонтальных опорных пикселей для предсказания. Если для предсказания не доступны ни вертикальные опорные пиксели, ни горизонтальные опорные пиксели, присвоение P(i, 0)= P(0, j)=(1 <<(N-1)), ∀1≤i, j≤2N выполняется для формирования и вертикальных, и горизонтальных опорных пикселей. В уравнении N представляет битовую глубину, используемую для представления пиксельных значений.
R
T
T
Q
В варианте осуществления настоящего изобретения подобно блокам предсказания, сформированным в других режимах предсказания, блок предсказания, сформированный в планарном режиме используется для получения разности P(1:N, 1:N), которая преобразовывается модулем 405 преобразования и квантуется модулем 406 квантования. Преобразованная и квантованная разность P(1:N, 1:N) сообщается в битовом потоке декодеру. Кроме того, преобразованная и квантованная разность P(1:N, 1:N) подвергается обратному преобразованию и обратному квантованию посредством модуля 410 обратного преобразования и модуля 411 обратного квантования для получения сжатой разности P(1:N, 1:N), которая сохраняется в памяти 403 кадра для использования в предсказании последующих целевых блоков.
T
T
T
T
Q
Вся преобразованная и квантованная разность P(1:N, 1:N) может быть сообщена в битовом потоке декодеру. В качестве альтернативы, только часть разности P(1:K, 1:K) может быть сообщена в битовом потоке декодеру. K меньше N (K<N) и установлено равным предварительно определенному значению, например, 1. Значении K может быть сообщено в битовом потоке декодеру. Если декодер принимает только часть разности P(1:K, 1:K), он декодирует часть разности и устанавливает 0 в оставшуюся часть разности. Хотя только часть разности сообщается декодеру, вся разность P(1:N, 1:N) подвергается обратному преобразованию и квантованию для получения сжатой разности P(1:N, 1:N) с целью предсказания последующих целевых блоков.
planar
baseP
baseP
baseP
Далее, в другом варианте осуществления настоящего изобретения параметр квантования адаптивно изменяется для квантования разности, сформированной в планарным режиме. Планарный режим применяется к блоку с плавным изображением, пиксельные значения которого постепенно изменяются с малым планарным градиентом. Разность из такого плавного блока имеет тенденцию квантоваться в нулевое значение со средним или грубым параметром квантования. Чтобы гарантировать, что при квантовании получаются отличные от нуля коэффициенты, в варианте осуществления настоящего изобретения параметр квантования переключается на более точный параметр квантования, когда квантуется разность, сформированная в планарном режиме. Параметр квантования (QP), используемый для квантования разности, сформированной в планарном режиме, может быть определен с помощью базового параметра квантования (QP). Параметр QPможет быть установлен равным предварительно определенному значению, представляющему более точный параметр квантования. Если параметр QP не известен декодеру, он может быть сообщен в битовом потоке декодеру или, более определенно, сообщен в заголовке секции или в наборе параметров изображения, как определено в стандарте H.264/AVC.
Planar
baseP
Planar
baseP
Planar
baseP
N
Planar
baseP
N
N
N
Planar
Planar
baseP
diff
diff
diff
В варианте осуществления настоящего изобретения параметр QP просто устанавливается равным QP(QP = QP). Параметр QP может быть задан с помощью суммы QPи QP(QP = QP+ QP), где QP определяется с использованием таблицы поиска, которая перечисляет значения QP относительно значений N. В качестве альтернативы параметр QP может быть определен как QP = QP + QP(N). QP(N) является функцией значения N и сообщается в битовом потоке декодеру или, более определенно, сообщается в заголовке секции или в наборе параметров изображения, как определено в стандарте H.264/AVC. Декодер определяет QP(N) из битового потока для каждого из значений N, поддерживаемого в его схеме видеокодека.
delta
baseP
baseP
baseP
delta
delta
baseP
delta
delta
baseP
В другом варианте осуществления настоящего изобретения посредством добавления дифференциальный параметра квантования (QP) параметр QP модифицируется как QP= QP + QP. Параметр QP является параметром квантования, определенном из пространственной активности в блоке или группе блоков, для корректировки параметра QP, адаптивной по отношению к пространственной активности. QP сообщается в битовом потоке декодеру. Поскольку параметр QP определяется из пространственной активности в блоке, он может стать нулем в зависимости от содержания изображения в блоке и не влиять на QP для планарного режима предсказания.
Planar
normal
Planar
Далее, в другом варианте осуществления настоящего изобретения, параметр QP определяется с помощью нормального параметра квантования QP, который используется для квантования разностей, сформированных в режимах предсказания, отличающихся от планарного режима. В таком варианте осуществления QP определяется согласно одному из следующих пяти вариантов:
Planar
normal
1. QP = QP
Planar
normal
N
N
N
2. QP = QP+ QP, где QP определяется из таблицы поиска, которая перечисляет значения QP относительно значений N.
Planar
normal
diff
diff
3. QP = QP + QP(N), где QP(N) - функция значения N и сообщается в битовом потоке декодеру.
Planar
normal
delta
delta
normal
4. QP = QP + QP, где QP - параметр квантования, определенный из пространственной активности в блоке или группе блоков, для адаптивной корректировки параметра QP и сообщается в битовом потоке декодеру.
Planar
normal
N
delta
5. QP = QP+ QP + QP
F
I
F
I
H
H
H
H
В другом варианте осуществления настоящего изобретения модуль 405 преобразования и модуль 410 обратного преобразования используют вторичный набор ядер прямого и обратного преобразования (G и G) для прямого и обратного преобразования разности, сформированной в планарном режиме, вместо использования первичного набора ядер прямого и обратного преобразования (H и H). Первичный набор ядер преобразования используется для преобразования разностей, сформированных в режимах предсказания, отличающихся от планарного режима, и подходит для блоков, в которых имеется высокочастотная энергия. С другой стороны, блоки, которые должны быть подвергнуты планарному режиму предсказания, имеют в себе низкую пространственную активность, и им нужны ядра преобразования, адаптированные к блокам с плавными изображениями. В этом варианте осуществления модуль 405 преобразования и модуль 410 обратного преобразования переключаются между первичным набором ядер преобразования и вторичным набором ядер преобразования, как показано на Фиг.12, и используют первичный набор ядер преобразования при преобразовании разностей, сформированных в режимах предсказания, отличающихся от планарного режима, тогда как используют вторичный набор ядер преобразования при преобразовании разностей, сформированных в планарном режиме предсказания. Однако следует отметить, что вторичный набор ядер преобразования не ограничен преобразованием разностей, сформированных в планарном режиме предсказания, и может использоваться для преобразования разностей, сформированных в режимах предсказания, отличающихся от планарного режима.
F
H
Вторичный набор прямого ядра преобразования (G) может являться аппроксимацией с фиксированной точкой, полученной из одного из следующих вариантов:
Вариант 1 (DST, тип 7):
Вариант 2 (DST, тип 4):
Вариант 3 (DCT, тип 2, обычно известен как DCT):
Вариант 4:
F
2N
, если ядра преобразования с размером 2N×2N (H), поддерживаются видеокодеком. В ином случае, . Таким образом, в варианте 4, если самые маленькие и самые большие размеры преобразования, поддерживаемые в видеокодеке, представляют собой 4×4 и 32×32, вторичный набор ядра преобразования для размера 4×4 получается из первичного набора ядра преобразования для размера 8×8. Аналогичным образом, вторичный набор ядра преобразования для размера 8×8 получается из первичного набора ядра преобразования для размера 16×16, и вторичный набор ядра преобразования для размера 16×16 получается из первичного набора ядра преобразования для размера 32×32. Однако, из-за ограничения размера, в котором самый большой поддерживаемый размер представляет 32×32, вторичный набор ядра преобразования для размера 32×32 получается из первичного набора ядра преобразования для размера 32×32.
i
i
I
N
N
Масштабный коэффициент k может быть задан таким образом, чтобы удовлетворять . Масштабный коэффициент k может использоваться для корректировки параметра квантования, как используется в стандарте H.264/AVC. Вторичный набор ядра обратного преобразования Gможет быть получен с использованием прямого ядра преобразования , где Iпредставляет единичную матрицу с размером N×N.
F
F
2N
N
Если первичный набор ядра преобразования удовлетворяет свойству , предпочтительным является вторичный набор ядра преобразования, определенный в варианте 4. Вариант 4 является выгодным в том, что вторичный набор ядра преобразования не должен быть сохранен отдельно от первичного набора ядра преобразования, поскольку вторичный набор может быть получен из первичного набора. Если первичный набор ядра преобразования для размера 2N×2N (H) является аппроксимацией DCT типа 2, приведенное выше свойство удовлетворено, и вторичный набор ядра преобразования для размера N×N (G) может являться приближением DST типа 4. Если первичный набор ядра преобразования не удовлетворяет приведенному выше свойству, предпочтительным является вторичный набор ядра преобразования, определенный в варианте 1.
Планарный режим предсказания может быть выбран одним из двух способов. В первом способе блок предсказания, сформированный в планарном режиме предсказания, оценивается на эффективность кодирования наряду с блоками предсказания, сформированными в других режимах предсказания. Если блок предсказания, сформированный в планарном режиме, проявляет наилучшую эффективность кодирования среди блоков предсказания, выбирается планарный режим. В качестве альтернативы, на эффективность кодирования оценивается только один планарный режим. Планарный режим предсказания предпочтителен для области, в которой изображение является плавным, и его планарный градиент является малым. В соответствии с этим содержание целевого блока анализируется, чтобы увидеть количество высокочастотной энергии в блоке и разрывы изображения вдоль краев блока. Если количество высокочастотной энергии ниже порога, и никакие существенные разрывы не найдены вдоль краев блока, выбирается планарный режим. В ином случае блоки предсказания, сформированные в других режимах предсказания, оцениваются для выбора одного режима. В обоих случаях выбор планарного режима предсказания сообщается в битовом потоке декодеру.
Принимая во внимание, что по прочтении предшествующего описания многие изменения и модификации настоящего изобретения без сомнения будут очевидны специалистам в области техники, следует подразумевать, что любой конкретный вариант осуществления, показанный и описанный посредством иллюстрации, никоим образом не предназначен для рассмотрения как ограничивающий. Таким образом, ссылки на подробные описания различных вариантов осуществления не предназначены для ограничения объема формулы изобретения, которая сама по себе излагает только те признаки, которые расцениваются как существенные для изобретения.