Адаптивная поддержка для интерполяционных значений субпикселя для кодирования видеосигнала

Иллюстрации

Показать все

Изобретение относится к средствам кодирования и декодирования видеоданных. Техническим результатом является повышение эффективности кодирования видеоданных. В способе генерируют блок предсказания на основе интерполированных значений субцелых пикселей, где значение субцелого пикселя является его интерполированным значением, вычисляют значение субцелого пикселя на основе интреполяционного фильтра и набора поддержки фильтра для упомянутого местоположения субцелого пикселя, применяют остаточный блок к блоку предсказания для воссоздания исходного блока. В способе местоположение субцелого пикселя связанно с полным целым пикселем. 8 н. и 24 з.п. ф-лы, 16 ил.

Реферат

[0001] По настоящей заявке испрашивается приоритет предварительной заявки на патент США № 61/422,051, поданной 10 декабря 2010 года, полное содержание которой включено сюда в полном объеме посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0002] Данное раскрытие относится к области кодирования видеосигнала, например, кодирования и декодирования видеоданных.

УРОВЕНЬ ТЕХНИКИ

[0003] Возможности цифрового видео могут быть использованы для широкого диапазона устройств, включая цифровые телевизионные системы, цифровые системы прямого вещания, устройства беспроводной связи, такие как радиотелефонные трубки, беспроводные системы вещания, персональные цифровые помощники (PDA), лэптопы или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства для видеоигр, игровые видеоконсоли и т.п. Цифровые видеоустройства задействуют методики сжатия видеосигнала, такие как, чтобы более эффективно передавать и принимать цифровое видео. Методики сжатия видеосигнала подразумевают пространственное или временное предсказание, чтобы снизить или устранить избыточность, свойственную видеопоследовательностям.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0004] Это раскрытие описывает методики фильтрации, которые могут применяться кодером и декодером во время стадии межкадрового предсказания в процессе кодирования и/или декодирования видеосигнала. Описанные методики фильтрации могут повысить точность данных предсказания, используемых при фракционной пиксельной интерполяции, и в некоторых случаях могут повысить эффективность кодирования. Существует несколько аспектов данного раскрытия, включающих в себя методики интерполяции значений для положений субпикселя на основе применения интерполяционного фильтра в отношении различных комбинаций положений полного пикселя. Значения, в отношении которых применяется интерполяционный фильтр, обычно именуются «поддержкой». Данные методики также включают в себя выбор поддержки, в отношении которой надлежит применить интерполяционный фильтр для положения субпикселя на основе таких факторов, как, например, кодированные прежде кадры или текущее кодирование кадров.

[0005] В одном аспекте способ кодирования видеоданных содержит прием значений для положений полного целого пикселя из контрольной выборки. Способ также включает в себя применение интерполяционного фильтра в отношении первой группы значений для положений полного целого пикселя, чтобы вычислить значение для первого субцелого пикселя одного из положений полного целого пикселя. Кроме того, способ также содержит применение интерполяционного фильтра в отношении второй, другой, группы значений для положений полного целого пикселя, чтобы вычислить значение для второго, другого, субцелого пикселя одного из положений полного целого пикселя. Способ дополнительно содержит кодирование блока пикселей с использованием вектора движения, который указывает на один из первого субцелого пикселя и второго субцелого пикселя.

[0006] В другом аспекте устройство содержит видеокодер, который выполнен с возможностью принимать значения для положений полного целого пикселя из контрольной выборки. Видеокодер также выполнен с возможностью применять интерполяционный фильтр в отношении первой группы значений для положений полного целого пикселя, чтобы вычислить значение для первого субцелого пикселя одного из положений полного целого пикселя. Подобным образом, видеокодер выполнен с возможностью применять интерполяционный фильтр в отношении второй, другой, группы значений для положений полного целого пикселя, чтобы вычислить значение для второго, другого, субцелого пикселя одного из положений полного целого пикселя. Видеокодер дополнительно выполнен с возможностью кодировать блок пикселей с использованием вектора движения, который указывает на один из первого субцелого пикселя и второго субцелого пикселя.

[0007] В другом аспекте машиночитаемый носитель данных содержит команды, которые при выполнении в устройстве кодирования видеосигналов инициируют кодирование устройством видеоблоков. В частности, команды инициируют прием устройством значений для положений полного целого пикселя из контрольной выборки и применение интерполяционного фильтра в отношении первой группы значений для положений полного целого пикселя, чтобы вычислить значение для первого субцелого пикселя одного из положений полного целого пикселя. Команды также инициируют применение устройством интерполяционного фильтра в отношении второй, другой, группы значений для положений полного целого пикселя, чтобы вычислить значение для второго, другого, субцелого пикселя одного из положений полного целого пикселя. Команды дополнительно инициируют кодирование устройством блока пикселей с использованием вектора движения, который указывает на один из первого субцелого пикселя и второго субцелого пикселя.

[0008] В другом аспекте устройство предусмотрено таким образом, что содержит средство приема значений для положений полного целого пикселя из контрольной выборки. Устройство дополнительно содержит средство применения интерполяционного фильтра в отношении первой группы значений для положений полного целого пикселя, чтобы вычислить значение для первого субцелого пикселя одного из положений полного целого пикселя. Также устройство содержит средство применения интерполяционного фильтра в отношении второй, другой, группы значений для положений полного целого пикселя, чтобы вычислить значение для второго, другого, субцелого пикселя одного из положений полного целого пикселя, и средство кодирования блока пикселей с использованием вектора движения, который указывает на один из первого субцелого пикселя и второго субцелого пикселя.

[0009] В еще одном аспекте способ декодирования видеоданных содержит прием контрольной выборки, содержащей положения полного целого пикселя. Способ также включает в себя прием индикации группы положений полного целого пикселя из контрольной выборки, используемой для интерполяции значения для субцелого пикселя из контрольной выборки. Кроме того, способ также включает в себя применение интерполяционного фильтра в отношении группы положений полного целого пикселя, чтобы вычислить значение субцелого пикселя из контрольной выборки. Способ дополнительно содержит декодирование блока пикселей относительно вычисленного значения субцелого пикселя.

[0010] В другом аспекте устройство содержит видеодекдоер, который выполнен с возможностью принимать контрольную выборку, содержащую положения полного целого пикселя. Видеодекодер также выполнен с возможностью принимать индикацию группы положений полного целого пикселя из контрольной выборки, используемой для интерполяции значения для субцелого пикселя из контрольной выборки. Подобным образом, видеодекодер выполнен с возможностью применять интерполяционный фильтр в отношении группы положений полного целого пикселя, чтобы вычислить значение субцелого пикселя из контрольной выборки. Видеодекодер дополнительно выполнен с возможностью декодировать блок пикселей относительно вычисленного значения субцелого пикселя.

[0011] В другом аспекте машиночитаемый носитель данных содержит команды, которые при выполнении в устройстве кодирования видеосигналов инициируют кодирование устройством видеоблоков. В частности, команды инициируют прием устройством контрольной выборки, содержащей положения полного целого пикселя, и прием индикации группы положений полного целого пикселя из контрольной выборки, используемой для интерполяции значения для субцелого пикселя из контрольной выборки. Команды также инициируют применение устройством интерполяционного фильтра в отношении группы положений полного целого пикселя, чтобы вычислить значение субцелого пикселя из контрольной выборки. Команды дополнительно инициируют декодирование устройством блока пикселей относительно вычисленного значения субцелого пикселя.

[0012] В другом аспекте устройство содержит средство приема контрольной выборки, содержащей положения полного целого пикселя, и средство приема индикации группы положений полного целого пикселя из контрольной выборки, чтобы использовать для интерполяции значения для субцелого пикселя из контрольной выборки. Устройство дополнительно содержит средство вычисления значения субцелого пикселя из контрольной выборки с использованием группы положений полного целого пикселя. Устройство дополнительно включает в себя средство декодирования блока пикселей относительно вычисленного значения субцелого пикселя.

[0013] Методики, описанные в данном раскрытии, могут применяться в отношении аппаратного обеспечения, программного обеспечения, программно-аппаратного обеспечения или любой их комбинации. При применении в отношении программного обеспечения программное обеспечение может реализовываться процессором, который может относиться к одному или нескольким процессорам, таким как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или процессор цифровых сигналов (DSP), или другому интегрированному эквиваленту или дискретным логическим схемам. Программное обеспечение, содержащее команды для реализации методик, может изначально храниться на машиночитаемом носителе и загружаться и выполняться процессором.

[0014] Соответственно, раскрытие также рассматривает машиночитаемый носитель, содержащий команды для инициации реализации процессором любой из множества методик, как описывается в данном раскрытии. В некоторых случаях машиночитаемый носитель данных может формировать часть компьютерного программного продукта, который может быть продан производителям и/или использован в устройстве. Компьютерный программный продукт может включать в себя машиночитаемый носитель данных и в некоторых случаях может также включать в себя упаковочные материалы.

[0015] Раскрытие может также использовать информацию о переносе электромагнитных сигналов. Например, электромагнитный сигнал может содержать информацию, относящуюся к поддержке полного пикселя, используемой для интерполяции значения для субцелого пикселя из контрольной выборки. В некоторых примерах сигнал может генерироваться от устройства или передаваться им с применением методик, описанных здесь. В других примерах это раскрытие может применяться в отношении сигналов, которые могут быть приняты устройством, реализующим методики, описанные здесь.

[0016] Детали одного или нескольких аспектов раскрытия изложены в прилагаемых чертежах и описании, представленных ниже. Другие признаки, цели и преимущества методик, описанных в данном раскрытии, будут понятны из описания и чертежей, а также формулы изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0017] Фиг. 1 представляет собой блок-схему, иллюстрирующую один пример системы кодирования и декодирования видеосигналов, которая может использоваться для реализации одной или нескольких методик этого раскрытия.

[0018] Фиг. 2 представляет собой блок-схему, иллюстрирующую пример видеокодера, продемонстрированного на фиг. 1, с дополнительными деталями.

[0019] Фиг. 3 представляет собой концептуальную диаграмму, иллюстрирующую пример положений целого пикселя, связанных с данными предсказания, и положений субпикселя, связанных с интерполированными данными предсказания.

[0020] Фиг. 4 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки диагонального шестипиксельного фильтра относительно местоположения субцелого пикселя.

[0021] Фиг. 5 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки x-образного двенадцатипиксельного фильтра относительно местоположения субцелого пикселя.

[0022] Фиг. 6 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки двенадцатипиксельного фильтра относительно трех горизонтальных положений субпикселя и трех ветрикальных положений субпикселя.

[0023] Фиг. 7 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки двенадцатипиксельного фильтра относительно местоположения субпикселя.

[0024] Фиг. 8 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки квадратного четырехпиксельного фильтра относительно положения субцелого пикселя.

[0025] Фиг. 9 представляет собой концептуальную диаграмму, иллюстрирующую пример поддержки прямоугольного шестипиксельного фильтра относительно положения субцелого пикселя.

[0026] Фиг. 10 представляет собой блок-схему, иллюстрирующую пример видеодекодера, продемонстрированного на фиг. 1, с дополнительными деталями.

[0027] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую примерное функционирование видеокодера, который использует поддержку пиксельного фильтра, совместимую с этим раскрытием.

[0028] Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую другое примерное функционирование видеокодера, который использует поддержку пиксельного фильтра, совместимую с этим раскрытием.

[0029] Фиг. 13 представляет собой блок-схему последовательности операций, иллюстрирующую пример способа определения поддержки фильтра для субцелого пикселя, совместимой с этим раскрытием.

[0030] Фиг. 14 представляет собой блок-схему последовательности операций, иллюстрирующую другой пример способа определения поддержки фильтра для субцелого пикселя, совместимой с этим раскрытием.

[0031] Фиг. 15 представляет собой блок-схему последовательности операций, иллюстрирующую примерное функционирование видеодекодера, который использует поддержку фильтра, совместимую с этим раскрытием.

[0032] Фиг. 16 представляет собой блок-схему последовательности операций, иллюстрирующую другое примерное функционирование видеодекодера, который использует поддержку фильтра, совместимую с этим раскрытием.

ПОДРОБНОЕ ОПИСАНИЕ

[0033] Это раскрытие описывает методики фильтрации, которые могут применяться кодером и декодером во время стадии межкадрового предсказания в процессе кодирования и/или декодирования видеосигнала. Описанные методики фильтрации могут повысить точность данных предсказания, используемых при фракционной пиксельной интерполяции, и в некоторых случаях могут повысить эффективность кодирования. В раскрытии используются термины «субпиксель», «субцелый пиксель», «частичный пиксель» и «субпел» взаимозаменяемо. Существуют аспекты данного раскрытия, включающие в себя методики интерполяции положений субпикселя на основе любой комбинации любого количества положений полного пикселя, и методики выбора поддержки для интерполяционных фильтров для положений субпикселя на основе кодированных прежде кадров или текущего кодирования кадров. Эти и другие методики подробно описываются ниже.

[0034] Межкадровое кодирование на основе блоков представляет собой методику кодирования, которая полагается на временное предсказание, чтобы снизить или устранить временную избыточность между видеоблоками последовательных кодированных элементов видеопоследовательности. Кодированные элементы могут содержать видеокадры, фрагменты (слайсы) видеокадров, группы изображений или другой определенный элемент из кодированных видеоблоков. Для межкадрового кодирования видеокодер выполняет оценку движения и компенсацию движения, чтобы оценить движение между видеоблоками двух или более смежных кодированных элементов. Используя методики оценки движения, видеокодер генерирует векторы движения, которые могут отражать смещение видеоблоков по отношению к соответствующим видеоблокам предсказания в одном или нескольких опорных кадрах или других кодированных элементах. Используя методики компенсации движения, видеокодер может использовать векторы движения, чтобы генерировать видеоблоки предсказания из одного или нескольких опорных кадров или других кодированных элементов. После компенсации движения видеокодер может вычислять остаточные видеоблоки, вычитая видеоблоки предсказания из числа исходных видеоблоков, подвергаемых кодированию.

[0035] Видеокодер также может осуществлять процессы кодирования с преобразованием, квантованием и энтропийного кодирования, чтобы дополнительно снизить битрейт, относящуюся к связи остаточных блоков. Методики преобразования могут содержать дискретные косинусные преобразования (DCT) или концептуально сходные процессы. В качестве альтернативы могут использоваться вейвлетные преобразования, преобразования целого или преобразования других типов. В процессе DCT, например, группа значений пикселя может быть преобразована в коэффициенты преобразования, которые могут отражать энергию значений пикселя в частотной области. Видеокодер также может квантовать коэффициенты преобразования, что в общем может включать процесс, который снижает количество битов, относящихся к соответствующему коэффициенту преобразования. Энтропийное кодирование может включать в себя один или несколько процессов, которые совместно сжимают данные для вывода в битовый поток, где сжатые данные могут включать в себя, например, последовательность режимов кодирования, информацию о движении, шаблоны кодированных блоков и квантованные коэффициенты преобразования. Примеры энтропийного кодирования включают в себя адаптивное к контексту кодирование с переменной длиной (CAVLC) и адаптивное к контексту двоичное арифметическое кодирование (CABAC), но не ограничиваются этим.

[0036] Кодированный видеоблок может быть представлен информацией о предсказании, которая может использоваться для создания или идентификации блока предсказания, и остаточным блоком данных, который может применяться в отношении блока предсказания, чтобы воссоздать исходный блок. Информация о предсказании может содержать один или несколько векторов движения, которые используются для идентификации блока предсказания данных. Используя векторы движения, декодер может восстанавливать блоки предсказания, которые были использованы для кодирования остаточных блоков. Так, имея группу остаточных блоков и группу векторов движения (и, возможно, некоторый дополнительный синтаксис), декодер может восстанавливать видеокадр, который был первоначально кодирован. Межкадровое кодирование на основе оценки движения и компенсации движения может способствовать относительно большим объемам сжатия без чрезмерной потери данных, поскольку последовательные видеокадры или другие типы кодированных элементов зачастую сходны. Кодированная видеопоследовательность может содержать блоки остаточных данных, векторы движения (когда межкадровое предсказание кодировано), обозначения режимов межкадрового предсказания для внутрикадрового предсказания и, возможно, другие данные, такие как типы синтаксиса.

[0037] Методики интерполяции субцелых пикселей были разработаны с целью увеличить точность предсказания для уровня сжатия, которая может достигаться при межкадровом кодировании. В этом случае данные предсказания, генерируемые во время компенсации движения, которые используется для кодирования видеоблока, могут соответствовать субцелым пикселям, значения которых могут быть интерполированы от значений для целых пикселей видеоблоков опорного видеокадра или другого кодированного элемента, к которому относится вектор движения. Видеокодер может вычислять значения для положений субцелого пикселя, используя методики интерполяции, например, применяя интерполяционные фильтры в отношении группы поддержки, например, значения для полного целого пикселя и/или кодированные прежде значения других положений субцелого пикселя. Положения субцелого пикселя могут иметь различные степени разрешения в разных примерах, как то разрешение в полпикселя, разрешение в четверть пикселя, разрешение в одну восьмую пикселя, разрешение в одну шестнадцатую пикселя или другие разрешения. Соответственно, видеокодер может вычислять вектор движения во время оценки движения, которая имеет точность до субпикселя.

[0038] Фиг. 1 представляет собой блок-схему, иллюстрирующую один пример системы 10 кодирования и декодирования видеосигналов, которая может использоваться для реализации одной или нескольких методик этого раскрытия. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает кодированное видео к устройству-адресату 16 посредством канала 15 связи. Устройство-источник 12 и устройство-адресат 16 могут содержать любое из широкого диапазона устройств. В некоторых случаях любое из устройства-источника 12 и устройства-адресата 16 может содержать устройства беспроводной связи, такие как беспроводные радиотелефонные трубки, так называемые сотовые или спутниковые радиотелефоны или любые беспроводные устройства, которые могут передавать видеоинформацию по каналу 15 связи, при этом в таком случае канал 15 связи является беспроводным. Однако методики этого раскрытия, которые касаются фильтрации и генерации данных предсказания во время кодирования с предсказанием, не обязательно должны ограничиваться беспроводными приложениями или установками. Методики также могут быть актуальны для широкого диапазона других установок и устройств, включая устройства, которые осуществляют связь посредством физических проводов, оптоволокон или других физических или беспроводных носителей. Кроме того, методики кодирования или декодирования также могут применяться в отношении автономного устройства, которые не обязательно осуществляет связь с каким-либо другим устройством.

[0039] В примере, продемонстрированном на фиг. 1, устройство-источник 12 может включать в себя источник 20 видеосигнала, видеокодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Устройство-адресат 16 может включать в себя приемник 26, модем 27, видеодекодер 28 и устройство 30 отображения. В соответствии с данным раскрытием видеокодер 22 устройства-источника 12 может быть выполнен с возможностью применять одну или несколько методик настоящего раскрытия как часть процесса кодирования видеосигнала. Подобным образом видеодекодер 28 устройства-адресата 16 может быть выполнен с возможностью применять одну или несколько методик настоящего раскрытия как часть процесса декодирования видеосигнала.

[0040] Снова стоит упомянуть, что система 10, продемонстрированная на фиг. 1 является только одним примером. Различные методики этого раскрытия могут реализовываться любым кодирующим устройством, которое поддерживает кодирование с предсказанием на основе блоков, или любым декодирующим устройством, которое поддерживает кодирование с предсказанием на основе блоков. Устройство-источник 12 и устройство-адресат 16 - это только примеры таких кодирующих устройств, в которых устройство-источник 12 генерирует кодированные видеоданные для передачи к устройству-адресату 16. В некоторых случаях устройства 12, 16 могут функционировать по существу симметрично, так, что каждое из устройств 12, 16 включает в себя компоненты для кодирования и декодирования видеосигнала. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видеосигналов между видеоустройствами 12, 16, например, для потокового видео, воспроизведения видео, телевизионного вещания или видеотелефонии.

[0041] Источник 20 видеосигнала устройства-источника 12 может включать в себя устройство захвата видеоизображений, такое как видеокамера, видеоархив, содержащий записанное ранее видео, или источник видеосигнала от провайдера видеоконтента. В качестве дополнительной альтернативы источник 20 видеосигнала может генерировать данные на основе компьютерной графики как исходное видео или комбинацию «живого» видео, архивного видео и/или генерированного компьютером видео. В некоторых случаях, если источник 20 видеосигнала представляет собой видеокамеру, устройство-источник 12 и устройство-адресат 16 могут формировать так называемые камерофоны или видеофоны или другие мобильные устройства, выполненные с возможностью управлять видеоданными, как то планшетные вычислительные устройства. В таком случае захваченное, предварительно захваченное или генерированное компьютером видео может кодироваться видеокодером 22. Кодированная видеоинформация затем может модулироваться модемом 23 в соответствии со стандартом связи, например, таким как множественный доступ с кодовым разделением каналов (CDMA) или другим стандартом связи, и передаваться к устройству-адресату 16 посредством передатчика 24 и канала 15 связи. Модем 23 может включать в себя различные блоки смешивания, фильтры, усилители или другие компоненты, предназначенные для модуляции сигналов. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включая усилители, фильтры, а также одну или несколько антенн.

[0042] Приемник 26 устройства-адресата 16 принимает информацию по каналу 15 связи, а модем 27 демодулирует данную информацию. Подобно передатчику 24, приемник 26 может включать в себя схемы, предназначенные для приема данных, включая усилители, фильтры, а также одну или несколько антенн. В некоторых случаях передатчик 24 и/или приемник 26 могут объединены в пределах одного передающего компоненты, который включает в себя как приемные, так и передающие схемы. Модем 27 может включать в себя различные блоки смешивания, фильтры, усилители или другие компоненты, предназначенные для демодуляции сигналов. В некоторых случаях модемы 23 и 27 могут включать в себя компоненты для осуществления и модуляции, и демодуляции.

[0043] Снова процесс кодирования видеосигнала, выполняемый видеокодером 22, может задействовать одну или несколько методик, описанных здесь, во время процесса кодирования межкадрового предсказания, который может включать в себя оценку движения и компенсацию движения. Процесс декодирования видеосигнала, выполняемый видеодекодером 28, также может реализовывать подобные методики во время стадии компенсации движения процесса декодирования. Термин «кодер» используется здесь в отношении специального компьютерного устройства или аппаратуры, который или которая осуществляет кодирование или декодирование видеосигнала. Термин «кодер» в общем относится к любому видеокодеру или видеодекодеру или комбинированному кодеру/декодеру (кодек). Термин «кодирование» относится к кодированию или декодированию. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое многообразие устройств отображения, как то электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

[0044] В примере, продемонстрированном на фиг. 1, канал 15 связи может содержать любой беспроводное или проводное средство связи, такое как радиочастотный (RF) спектр или одна или несколько физических линий связи, или любую комбинацию беспроводных и проводных средств. Канал 15 связи может формировать часть сети на основе пакетов, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Канал 15 связи в общем представляет собой любое подходящее средство связи или совокупность различных средств связи для передачи видеоданных от устройства-источника 12 к устройству-адресату 16. Канал 15 связи может включать в себя маршрутизаторы, переключатели, базовые станции или любое другое оборудование, которое может быть полезным для упрощения связи устройства-источника 12 с устройством-адресатом 16.

[0045] Видеокодер 22 и видеодекодер 28 могут функционировать в соответствии со стандартом сжатия видеосигнала, таким как стандарт ITU-T H.264, в качестве альтернативы описываемый как MPEG-4, часть 10, усовершенствованное кодирование видеосигнала (AVC). Методики, представленные в этом раскрытии, однако не ограничиваются каким-либо конкретным стандартом кодирования видеосигнала. Хотя это и не показано на фиг. 1, в некоторых аспектах каждый из видеокодера 22 и видеодекодера 28 может интегрироваться с аудиокодером или аудиодекодером и может включать в себя соответствующие MUX-DEMUX элементы или другое аппаратное и программное обеспечение, чтобы осуществлять кодирование и аудио-, и видеосигнала в общем потоке данных или отдельных потоках данных. Если это является релевантным, MUX-DEMUX элементы могут соответствовать протоколу мультиплексирования ITU H.223 или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).

[0046] Каждый из видеокодера 22 и видеодекодера 28 может быть реализован как один или несколько микропроцессоров, процессоров обработки цифровых сигналов (DSP), специализированных интегральных схем (ASIC) программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратное обеспечение или любая их комбинация. Когда любая из методик этого раскрытия или они все реализованы в виде программного обеспечения, устройство реализации может дополнительно включать в себя аппаратное обеспечение для хранения и/или выполнения команд для программного обеспечения, например, блок памяти для хранения команд и один или несколько блоков обработки для выполнения команд. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или несколько кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодека, который обеспечивает возможности кодирования и декодирования в соответствующем мобильном устройстве, абонентском устройстве, вещательном устройстве, сервере и т.п.

[0047] Видеопоследовательность обычно включает в себя серию видеокадров, также именуемых видеоизображениями. Видеокодер 22 функционирует на видеоблоках внутри отдельных видеокадров, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированные или изменяющиеся размеры и могут различаться по размеру в соответствии с определенным стандартом кодирования. Каждый видеокадр включает в себя серию фрагментов. В стандарте ITU-T H.264, например, каждый фрагмент может включать в себя серию макроблоков, которые могут быть организованы в субблоки. Стандарт H.264 поддерживает внутрикадровое предсказание в различных размерах блоков, как то 16 на 16, 8 на 8 или 4 на 4 для компонентов яркости и 8 на 8 для компонентов цветности, как и внутрикадровое предсказание в различных размерах блоков, как то 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 или 4 на 4 для компонентов яркости и соответствующих вычисленных размеров для компонентов цветности. Видеоблоки могут содержать блоки пиксельных данных или блоки коэффициентов преобразования, например, после такого процесса преобразования, как дискретное конусное преобразование (DCT), или концептуально подобного процесса преобразования.

[0048] Меньшие видеоблоки могут обеспечивать лучшее разрешение и могут использоваться для местоположений видеокадра, которые включают в себя высокую степень детализации. В общем макроблоки и различные субблоки могут рассматриваться как видеоблоки. Кроме того, фрагмент может рассматриваться как серия видеоблоков, таких как макроблоки и/или субблоки. Каждый фрагмент может быть независимо декодируемым элементом видеокадра. В качестве альтернативы сами кадры могут быть декодируемыми элементами или другие части кадра могут быть определены как декодируемые элементы. Термин «кодированный элемент» относится к любому независимо декодируемому элементу видеокадра, такому как целый кадр, фрагмент кадра, блока видеоданных, или другому независимо декодируемому элементу, определенному в соответствии с используемыми методиками кодирования.

[0049] Чтобы кодировать видеоблоки, видеокодер 22 выполняет внутрикадровое предсказание или межкадровое предсказание, чтобы генерировать блок предсказания. Видеокодер 22 вычитает блоки предсказания от исходных видеоблоков, подлежащих кодированию, чтобы генерировать остаточные блоки. Таким образом, остаточные блоки могут отражать разницу в пиксель на пиксель между блоками, подвергаемыми кодированию, и блоками предсказания. Видеокодер 22 может выполнять преобразование в отношении остаточных блоков, чтобы генерировать блоки коэффициентов преобразования. Применив методики кодирования и преобразования на основе внутрикадрового или междкадрового предсказания, видеокодер 22 может квантовать коэффициенты преобразования. Квантизация в общем относится к процессу, в котором коэффициенты квантуются, чтобы по возможности уменьшить количество данных, используемых для отражения коэффициентов. После квантизации энтропийное кодирование может выполняться в соответствии с методологией энтропийного кодирования, как то адаптивное к контексту кодирование с переменной длиной (CAVLC) и адаптивное к контексту двоичное арифметическое кодирование (CABAC). Дополнительные детали процесса кодирования, выполняемого видеокодером 22, описываются ниже со ссылкой на фиг. 2.

[0050] В настоящее время предпринимаются попытки разработать новый стандарт кодирования видеосигнала, сейчас именуемый высокоэффективным кодированием видеосигнала (HEVC). Новый будущий стандарт также именуется Н.265. Попытки стандартизации основаны на модели устройства кодирования видеосигнала, именуемой тестовой моделью HEVC (HM). НМ предполагает некоторые возможности устройств кодирования видеосигнала посредством устройств в соответствии, например, с ITU-T H.264/AVC. Например, тогда как Н.264 предполагает девять режимов кодирования внутрикадрового предсказания, НМ предполагает не меньше тридцати трех режимов кодирования внутрикадрового предсказания.

[0051] НМ относится к блоку видеоданных как модуль кодирования (CU). Синтаксические данные в пределах битового потока могут определять самый большой модуль кодирования (LCU), который является самым большим модулем кодирования с точки зрения количества пикселей. В общем CU имеет сходное назначение с макроблоком Н.264, за исключением того, что CU не имеет различия по размеру. Так, CU может быть разделен на несколько суб-CU. В общем, ссылки в этом раскрытии на CU могут относиться к самому большому модулю кодирования изображения или суб-CU LCU. LCU может быть разделен на несколько суб-CU, и каждый суб-CU может быть разделен на несколько суб-CU. Синтаксические данные для битового потока могут определять максимальное количество временных отрезков, на которые может быть разделен LCU, именуемое глубиной CU. Соответственно, битовый поток также может определять самый маленький модуль кодирования (SCU). Это раскрытие также использует термин «блок» в отношении любого из CU, модуля предсказания (PU), модуля преобразования (TU).

[0052] LCU может быть связан со структурой данных квадрадерева. В общем, структура данных квадрадерева включает в себя один узел на CU, где корневой узел соответствует LCU. Если CU разделен на четыре суб-CU, узел, соответствующий CU, включает в себя четыре концевых вершины, каждая из которых соответствует одному из суб-CU. Каждый узел из структуры данных квадрадерева может обеспечивать синтаксические данные для соответствующего CU. Например, узел в квадрадереве может включать в себя флажок разделения, указывающий, разделен ли CU, соответствующий узлу, на суб-CU. Синтаксические модули для CU могут быть определены рекурсивно и могут зависеть от того, разделен ли CU на суб-CU.

[0053] CU, который не разделен, может включать в себя один или несколько модулей предсказания (PU). В общем, PU отражает все или часть соответствующих CU и включает в себя данные для восстановления контрольной выборки для PU. Например, когда PU кодирован в режиме внутрикадрового кодирования, PU может включать в себя данные, описывающие режим внутрикадрового предсказания для PU. В качестве другого примера, когда PU кодирован в режиме межкадрового кодирования, PU может включать в себя данные, определяющие вектор движения для PU. Данные, определяющие вектор движения, могут описывать, к примеру, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, с точностью до четверти пикселя или с точностью до одной восьмой пикселя), опорный кадр, на который указывает вектор движения, и/или список ссылок (например, список 0 или список 1) для вектора движения. Данные для CU, определяющие PU, могут