Обходные бины для кодирования опорных индексов при кодировании видео

Иллюстрации

Показать все

Изобретение относится к кодированию видео, а конкретнее к методам для кодирования синтаксических элементов в ходе процесса кодирования видео. Техническим результатом является уменьшение запаздывания при кодировании синтаксических элементов, которые включают в себя сочетание контекстно-кодируемых бинов и кодируемых с обходом бинов. В способе для кодирования синтаксического элемента индекса опорного изображения в процессе кодирования видео осуществляют бинаризацию значения индекса опорного изображения. Кодируют бины бинаризованного значения индекса опорного изображения в режиме контекстного кодирования процесса контекстно-адаптивного двоичного арифметического кодирования (САВАС). Определяют, что бинаризованное значение индекса опорного изображения содержит больше бинов, чем кодированные в режиме контекстного кодирования, и кодируют другие бины бинаризованного значения индекса опорного изображения в режиме кодирования с обходом процесса САВАС. 6 н. и 85 з.п. ф-лы, 14 ил., 9 табл.

Реферат

Настоящая заявка испрашивает приоритет по предварительной заявке на патент США Номер 61/623,043, поданной 11 апреля 2012, предварительной заявке на патент США Номер 61/637,218, поданной 23 апреля 2012, предварительной заявке на патент США Номер 61/640,568, поданной 30 апреля 2012, предварительной заявке на патент США Номер 61/647,422, поданной 15 мая 2012, и предварительной заявке на патент США Номер 61/665,151, поданной 27 июня 2012, содержимое каждой из которых включено в данный документ путем ссылки, во всей их полноте.

ОБЛАСТЬ ТЕХНИКИ

Настоящее раскрытие изобретения имеет отношение к кодированию видео, а конкретнее, к методам для кодирования синтаксических элементов в ходе процесса кодирования видео.

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

Возможности цифрового видеопредставления могут внедряться в широком разнообразии устройств, включающих в себя цифровые телевизоры, цифровые системы непосредственного вещания, беспроводные широковещательные системы, карманные персональные компьютеры (КПК), переносные или настольные компьютеры, планшетные компьютеры, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, видеоигровые устройства, видеоигровые приставки, сотовые или спутниковые радиотелефоны, устройства для видеоконференцсвязи, и тому подобные. Устройства цифрового видеопредставления реализуют такие методы сжатия видео, как описанные в стандартах, определяемых MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное Кодирование Видео (AVC - Advanced Video Coding), находящемся в настоящее время в стадии разработки стандарте Высокоэффективное Видеокодирование (HEVC - High Efficiency Video coding), и расширениях таких стандартов, чтобы более эффективно передавать, принимать и хранить цифровое видео.

Методы сжатия видео включают в себя пространственное предсказание и/или временное предсказание, чтобы уменьшить или устранить избыточность, свойственную видеопоследовательностям. Для блочного кодирования видео, видеокадр или слайс может быть разделен на блоки. Видеокадр, в качестве альтернативы, может упоминаться как изображение. Каждый блок может быть дополнительно разделен. Блоки в изображении или слайсе с внутренним кодированием (I) кодируются с использованием пространственного предсказания в отношении опорных выборок в соседних блоках в одном и том же изображении или слайсе. Блоки в изображении или слайсе с внешним кодированием (P или B) могут использовать пространственное предсказание в отношении опорных выборок в соседних блоках в одном и том же изображении или слайсе или временное предсказание в отношении опорных выборок в других опорных изображениях. Пространственное или временное предсказание дает в результате предсказуемостный блок для блока, подлежащего кодированию. Остаточные данные представляют разности элементов изображения между исходным блоком, подлежащим кодированию, и предсказуемостным блоком.

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

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

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

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

В одном из примеров, аспекты настоящего раскрытия изобретения имеют отношение к способу для кодирования синтаксического элемента опорного индекса в процессе кодирования видео, который включает в себя этапы, на которых бинаризуют значение опорного индекса, кодируют по меньшей мере один бин бинаризованного значения опорного индекса в режиме контекстного кодирования процесса контекстно-адаптивного двоичного арифметического кодирования (CABAC - Context-adaptive binary arithmetic coding), и кодируют, если бинаризованное значение опорного индекса содержит больше бинов, чем по меньшей мере один бин, кодируемый в режиме контекстного кодирования по меньшей мере другой бин бинаризованного значения опорного индекса в режиме кодирования с обходом процесса CABAC.

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

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

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

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

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

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

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

Фиг. 1 является структурной схемой, иллюстрирующей типовую систему кодирования и декодирования видео.

Фиг. 2 является структурной схемой, иллюстрирующей типовой кодер видео.

Фиг. 3 является структурной схемой, иллюстрирующей типовой декодер видео.

Фиг. 4 является структурной схемой, иллюстрирующей типовой процесс арифметического кодирования.

Фиг. 5A является структурной схемой, иллюстрирующей типовую строку данных предсказания.

Фиг. 5B является структурной схемой, иллюстрирующей другую типовую строку данных предсказания.

Фиг. 6 является структурной схемой, иллюстрирующей другую типовую строку данных предсказания.

Фиг. 7 является структурной схемой, иллюстрирующей другую типовую строку данных предсказания.

Фиг. 8A является структурной схемой, иллюстрирующей контекстное кодирование синтаксического элемента направления внешнего предсказания с тремя возможными значениями.

Фиг. 8B является структурной схемой, иллюстрирующей кодирование с обходом синтаксического элемента направления внешнего предсказания, в соответствии с аспектами настоящего раскрытия изобретения.

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

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

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

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

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

Устройство кодирования видео может сжимать видеоданные, воспользовавшись пространственной и временной избыточностью. Например, кодер видео может воспользоваться пространственной избыточностью, кодируя блок относительно соседних, ранее кодированных блоков. Аналогично, кодер видео может воспользоваться временной избыточностью, кодируя блок относительно данных ранее кодированных изображений. В частности, кодер видео может предсказать текущий блок, исходя из данных пространственно соседних элементов (упоминается как внутреннее кодирование) или из данных одного или более других изображений (упоминается как внешнее кодирование). Затем кодер видео может вычислить остаточную погрешность для блока как разность между фактическими значениями элементов изображения для блока и предсказанными значениями элементов изображения для блока. Соответственно, остаточная погрешность для блока может включать в себя значения разностей по каждому элементу изображения в области элементов изображения (или пространственной области).

Видеокодер может выполнить оценку движения и компенсацию движения при внешнем предсказании блока видеоданных. Например, оценка движения выполняется на кодере видео и включает в себя вычисление одного или более векторов движения. Вектор движения может показывать отклонение блока видеоданных в текущем изображении по отношению к опорным выборкам опорного изображения. Опорная выборка может быть блоком, для которого обнаруживается близкое соответствие подлежащему кодированию блоку, если говорить о разности элементов изображения, что может быть определено по сумме абсолютной разности (SAD - sum of absolute difference), сумме квадрата разности (SSD - sum of squared difference), или другим показателям разности. Опорная выборка может оказаться где угодно в пределах опорного изображения или опорного слайса, и не обязательно на границе блока опорного изображения или слайса. В некоторых примерах, опорная выборка может оказаться в позиции фрагментированного элемента изображения.

Данные, задающие вектор движения, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разложение для вектора движения (например, точность до одной четверти элемента изображения или точность до одной восьмой элемента изображения), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0 (L0), список 1 (L1) или объединенный список (LC)) для вектора движения, например, как показано направлением предсказания. Опорный индекс (ref_idx) может идентифицировать конкретное изображение в списке опорных изображений, на которое указывает вектор движения. Таким образом, синтаксический элемент ref_idx служит индексом в списке опорных изображений, например, L0, L1 или LC.

После идентификации опорного блока, определяется разность между исходным блоком видеоданных и опорным блоком. Эта разность может упоминаться как остаточные данные предсказания, и показывает разности элементов изображения между значениями элементов изображения в блоке для кодирования и значениями элементов изображения в опорном блоке, выбранном для представления кодируемого блока. Для достижения лучшего сжатия, остаточные данные предсказания могут быть преобразованы, например, с использованием дискретного косинусного преобразования (ДКП), целочисленного преобразования, преобразования Карунена-Лоэва (K-L - Karhunen-Loeve), или другого преобразования. Для дополнительного сжатия, коэффициенты преобразования могут квантоваться.

Затем энтропийный кодер осуществляет энтропийное кодирование символов или синтаксических элементов, связанных с блоком видеоданных, и квантованных коэффициентов преобразования. Примеры схем энтропийного кодирования включают в себя контекстно-адаптивное кодирование с переменной длиной кодового слова (CAVLC - Context Adaptive Variable Length Coding), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), энтропийное кодирование с разбивкой интервала вероятности (PIPE - Probability Interval Partitioning Entropy Coding), или тому подобное. Перед контекстным кодированием, кодер видео может переводить абсолютное значение каждого значения, подлежащего кодированию, в бинаризованную форму. Таким образом, каждое ненулевое кодируемое значение может быть "бинаризовано", например, используя унарную кодовую таблицу или другую схему кодирования, которая переводит значение в кодовое слово, имеющее один или более битов, или "бинов".

Что касается CABAC, в качестве примера, видеокодер может выбрать вероятностную модель (также упоминаемую как контекстная модель) для кодовых символов, связанных с блоком видеоданных. Например, на кодере, целевой символ может быть закодирован с помощью вероятностной модели. На декодере, целевой символ может подвергаться синтаксическому анализу с помощью вероятностной модели. В некоторых случаях, бины могут быть закодированы с использованием сочетания контекстно-адаптивного кодирования и контекстно-независимого адаптивного кодирования. Например, видеокодер может использовать режим с обходом, чтобы обойти, или пропустить, нормальный процесс арифметического кодирования для одного или более бинов, при использовании контекстно-адаптивного кодирования для других бинов. В таких примерах, видеокодер может использовать фиксированную вероятностную модель, чтобы кодировать с обходом бины. То есть, кодируемые с обходом бины не включают в себя обновления контекста или вероятности. Вообще, как более подробно описано ниже со ссылкой на Фиг. 4, контекстное кодирование бинов может упоминаться как кодирование бинов с использованием режима контекстного кодирования. Точно так же, кодирование с обходом бинов может упоминаться как кодирование бинов с использованием режима кодирования с обходом.

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

В некоторых примерах, контекстная модель (Ctx) может быть индексом или смещением, которое применяется для выбора одного из множества различных контекстов, каждый из которых может соответствовать конкретной вероятностной модели. Значит, в любом случае, как правило, своя вероятностная модель задается для каждого контекста. После кодирования бина, вероятностная модель дополнительно обновляется на основании значения бина, чтобы отразить самые последние вероятностные оценки для бина. Например, вероятностная модель может обслуживаться как состояние в конечном автомате. Каждое конкретное состояние может соответствовать определенному значению вероятности. Следующее состояние, которое соответствует обновлению вероятностной модели, может зависеть от значения текущего бина (например, бина, кодируемого в настоящий момент). Соответственно, на выбор вероятностной модели могут влиять значения ранее кодированных бинов, так как эти значения показывают по меньшей мере частично, вероятность бина, имеющего данное значение. Процесс контекстного кодирования, описанный выше, может в широком смысле упоминаться как режим контекстно-адаптивного кодирования.

Процесс обновления вероятности, описанный выше, может замедлять процесс кодирования. Например, предположим, что два бина используют одну и ту же контекстную модель (например, ctx(0)) для целей контекстно-адаптивного кодирования. В этом примере, первый бин может использовать ctx(0), чтобы определить вероятностную модель для кодирования. Значение первого бина влияет на вероятностную модель, связанную с ctx(0). Соответственно, обновление вероятности должно быть выполнено до кодирования второго бина с использованием ctx(0). Таким образом, обновление вероятности может привносить задержку в цикл кодирования.

Что касается кодирования видео, в качестве другого примера, видеокодер может контекстно-адаптивно кодировать последовательность бинов (например, bin(0), bin(1),..., bin(n)) опорного индекса (ref_idx). Как отмечалось выше, опорный индекс (ref_idx) может идентифицировать конкретное изображение в списке опорных изображений, на которое указывает вектор движения. Один опорный индекс (ref_idx) может включать в себя, например, до 15 бинов. Для пояснения предположим, что видеокодер выводит три контекста для кодирования бинов и применяет эти контексты, исходя из номера кодируемого бина (например, обозначенного с помощью индексов ctx(0), ctx(1) и ctx(2) контекстов). То есть, в этом примере, видеокодер может использовать ctx(0), чтобы кодировать bin(0), ctx(1), чтобы кодировать bin(1), и ctx(2), чтобы кодировать остальные бины (например, bin(2)-bin(n)).

В описанном выше примере, третий контекст (ctx(2)) совместно используется некоторым количеством бинов (например, до 13 бинов). Использование одной и той же вероятностной модели, чтобы кодировать bin(2)-bin(n), таким образом, может создавать задержку между последовательными циклами кодирования. Например, как отмечалось выше, неоднократный вызов одного и того же контекста и ожидание обновления модели после каждого бина может представлять собой критический параметр для производительности кодера.

Более того, корреляция между bin(2) и bin(n) может быть недостаточной, чтобы оправдывать временные и вычислительные ресурсы, связанные с обновлением вероятностной модели. То есть, одним потенциальным преимуществом контекстно-адаптивного кодирования является способность адаптировать вероятностную модель, основываясь на ранее кодированных бинах (если имеется один и тот же контекст). Если значение первого бина, при этом, имеет небольшую зависимость или влияние на значение последующего бина, может иметь место небольшое повышение эффективности, связанное с обновлением вероятности. Соответственно, бины, демонстрирующие низкую корреляцию, не могут с такой же пользой применять контекстно-адаптивное кодирование, как бины с относительно более высокими корреляциями.

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

Обращаясь к конкретному примеру кодирования опорных индексов, описанному выше, в соответствии с аспектами настоящего раскрытия изобретения, видеокодер может применять ctx(0) для bin(0), ctx(1) для bin(1), ctx(2) для bin(2) и может кодировать с обходом остальные бины значения опорного индекса, не требуя каких-либо контекстов. Другими словами, видеокодер может использовать ctx(2) в качестве контекста для CABAC-кодирования bin(2) из бинаризованного значения опорного индекса, но может кодировать с обходом любые бины, которые следуют за bin(2).

Учитывая, что значения опорных индексов могут составлять 15 бинов или более в длину, ограничение количества бинов, которые контекстно кодируются, таким образом, может привести к экономии вычислительных и/или временных ресурсов по сравнению с контекстным кодированием всех бинов опорного индекса. Более того, как отмечалось выше, корреляция между битами значения опорного индекса может быть невысокой (например, значение bin(3) из значения опорного индекса может не обеспечивать полезное показание касательно вероятности bin(4) со значением "1" или "0"), что уменьшает выгоду от контекстного кодирования. Соответственно, объем временных и вычислительных ресурсов, сэкономленных благодаря контекстному кодированию меньшего количества бинов значения опорного индекса, могут перевесить повышение эффективности кодирования, связанное с контекстным кодированием всех бинов значения опорного индекса.

Другие аспекты настоящего раскрытия изобретения в целом имеют отношение к группированию контекстно кодируемых бинов и контекстно-независимо кодируемых бинов во время кодирования. Например, как отмечалось выше, некоторые синтаксические элементы могут кодироваться с использованием сочетания контекстного кодирования и кодирования с обходом. То есть, некоторые синтаксические элементы могут иметь один или более бинов, которые контекстно кодируются, и один или более других бинов, которые кодируются с обходом.

Для примера предположим, что два синтаксических элемента, каждый из которых имеет контекстно кодируемую часть (включающую в себя один или более контекстно кодируемых бинов) и кодируемую с обходом часть (включающую в себя один или более кодируемых с обходом бинов). В этом примере, видеокодер может кодировать контекстно кодируемую часть первого синтаксического элемента, затем кодируемую с обходом часть первого синтаксического элемента, затем контекстно кодируемую часть второго синтаксического элемента, затем кодируемую с обходом часть второго синтаксического элемента.

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

Аспекты настоящего раскрытия изобретения включают в себя группирование контекстно кодируемых бинов и контекстно-независимо кодируемых бинов (например, обходных бинов) во время кодирования. Например, в отношении описанного выше примера, в соответствии с аспектами настоящего раскрытия изобретения, видеокодер может кодировать контекстно кодируемые бины первого синтаксического элемента, затем контекстно кодируемые бины второго синтаксического элемента, затем кодируемые с обходом бины первого синтаксического элемента, затем кодируемые с обходом бины второго синтаксического элемента. Соответственно, видеокодер только один раз переходит между режимом контекстного кодирования и режимом кодирования с обходом, например, между контекстно кодируемыми бинами и контекстно-независимо кодируемыми бинами.

Группирование бинов, таким образом, может уменьшить частоту, с которой видеокодер переключается между режимом контекстного кодирования и режимом кодирования с обходом. Соответственно, аспекты настоящего раскрытия изобретения могут уменьшить запаздывание при кодировании синтаксических элементов, которые включают в себя сочетание контекстно кодируемых бинов и кодируемых с обходом бинов. В некоторых примерах, как описано в отношении Фиг. 5-8 ниже, бины, связанные с данными предсказания, могут группироваться в соответствии с методами настоящего раскрытия изобретения. Например, как описывается в данном документе, данные предсказания могут, в общем случае, включать в себя данные, связанные с внешним предсказанием. Например, данные предсказания могут включать в себя данные, показывающие значения опорных индексов, векторы движения, предикторы векторов движения, значения разностей векторов движения, и тому подобное.

Фиг. 1 является структурной схемой, иллюстрирующей типовую систему 10 кодирования и декодирования видео, которая может быть выполнена с возможностью кодирования данных предсказания в соответствии с примерами настоящего раскрытия изобретения. Как показано на Фиг. 1, система 10 включает в себя устройство-источник 12, которое передает закодированное видео на устройство-адресат 14 через канал 16 связи. Закодированное видео также может храниться на информационном носителе 34 или обслуживающем узле 36 для хранения файлов, и может быть доступна со стороны устройства-адресата 14 при необходимости. При хранении на информационном носителе или обслуживающем узле для хранения файлов, кодер 20 видео может предоставлять кодированные видеоданные на другое устройство, такое, как сетевой интерфейс, устройство с возможностью записи или штамповки компакт-диска (CD), диска Blu-ray или цифрового видеодиска (DVD), или другие устройства, для сохранения кодируемого видео на информационном носителе. Точно так же, отдельное от декодера 30 видео устройство, такое, как сетевой интерфейс, устройство чтения CD или DVD, или тому подобное, может извлекать кодированные видеоданные с информационного носителя и предоставлять извлеченные данные декодеру 30 видео.

Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого разнообразия устройств, включающих в себя настольные компьютеры, портативные (т.е., переносные) компьютеры, планшетные компьютеры, телевизионные приставки, микротелефонные трубки, например, так называемые смартфоны, телевизоры, камеры, устройства отображения, цифровые мультимедийные проигрыватели, видеоигровые приставки, или тому подобное. Во многих случаях, такие устройства могут быть оборудованы для беспроводной связи. А следовательно, канал 16 связи может содержать беспроводной канал, проводной канал, или комбинацию беспроводных и проводных каналов, подходящих для передачи закодированных видеоданных. Аналогично, обслуживающий узел 36 для хранения файлов может быть доступен со стороны устройства-адресата 14 через любое стандартное информационное соединение, в том числе соединение через сеть Интернет. Это может включать в себя беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, DSL, кабельный модем, и т.д.), или комбинацию обоих, что подходит для получения доступа к закодированным видеоданным, хранящимся на обслуживающем узле для хранения файлов.

Методы для кодирования данных предсказания, в соответствии с примерами согласно настоящему раскрытию изобретения, могут применяться к кодированию видео с задачей поддержки любого из множества мультимедийных приложений, таких, как эфирные телепередачи, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео, например, через сеть Интернет, кодирование цифрового видео для сохранения на носителе для хранения данных, декодирование цифрового видео, сохраненной на носителе для хранения данных, или другие приложения. В некоторых примерах, система 10 может быть выполнена с возможностью поддержки односторонней или двусторонней передачи видео, чтобы поддерживать такие приложения, как воспроизведение потокового видео, воспроизведение записанного видео, вещание видеоданных и/или видеотелефония.

В примере на Фиг. 1, устройство-источник 12 включает в себя источник 18 видео, кодер 20 видео, модулирующее/демодулирующее устройство 22 и передатчик 24. В устройстве-источнике 12, источник 18 видео может включать в себя такой источник, как устройство захвата видео, такое, как видеокамера, архив видео, содержащий ранее захваченное видео, интерфейс внешнего источника видео, чтобы принимать видео от поставщика информационной видеопродукции, и/или система компьютерной графики для генерирования данных компьютерной графики в качестве исходного видео, или комбинация таких источников. В качестве одного примера, если источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут образовывать так называемые камерофоны или видеотелефоны. Тем не менее, методы, описываемые в настоящем раскрытии изобретения, могут быть применимы к кодированию видео в целом, и могут применяться для беспроводных и/или проводных приложений, или приложения, в котором закодированные видеоданные хранятся на локальном диске.

Захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано кодером 20 видео. Закодированное видео может модулироваться модемом 22 в соответствии со стандартом связи, таким, как протокол беспроводной связи, и передаваться на устройство-адресат 14 с помощью передатчика 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, в том числе усилители, фильтры, и одну или более антенны.

Захваченное, предварительно захваченное или сгенерированное компьютером видео, которое закодировано кодером 20 видео, также может сохраняться на информационном носителе 34 или на обслуживающем узле 36 для хранения файлов для последующего использования. Информационный носитель 34 может включать в себя диски Blu-ray, DVD, CD-ROM, память с групповой перезаписью, или любые другие подходящие цифровые информационные носители для хранения закодированного видео. В дальнейшем к закодированному видео, сохраненному на информационном носителе 34, может получить доступ устройство-адресат 14 для декодирования и воспроизведения.

Обслуживающий узел 36 для хранения файлов может быть обслуживающим узлом любого типа, способным хранить закодированное видео и передавать это закодированное видео на устройство-адресат 14. Типовые обслуживающие узлы для хранения файлов включают в себя сетевой обслуживающий узел (например, для информационного центра во всемирной сети), обслуживающий узел с доступом по протоколу стандарта FTP, устройство хранения данных, подключаемое к сети (NAS - network attached storage), локальный дисковый накопитель, или устройство любого другого типа, способное хранить закодированные видеоданные и передавать их на устройство-адресат. Передача закодированных видеоданных от обслуживающего узла 36 для хранения файлов может быть потоковой передачей, передачей загрузки, или их комбинацией. Обслуживающий узел 36 для хранения файлов может быть доступен для устройства-адресата 14 через любое стандартное информационное соединение, в том числе соединение через сеть Интернет. Это может включать в себя беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, DSL, кабельный модем, Ethernet, USB, и т.д.), или комбинацию обоих, что подходит для получения доступа к закодированным видеоданным, хранящимся на обслуживающем узле для хранения файлов.

Устройство-адресат 14, в примере на Фиг. 1, включает в себя приемник 26, модем 28, декодер 30 видео и устройство 32 отображения. Приемник 26 в устройстве-адресате 14 принимает информацию по каналу 16, а модем 28 демодулирует информацию, чтобы получить демодулированный битовый поток для декодера 30 видео. Информация, сообщенная по каналу 16, может включать в себя различную синтаксическую информацию, сгенерированную кодером 20 видео, дл