Определение вектора движения для видеокодировки

Иллюстрации

Показать все

Изобретение относится к области кодирования и декодирования видеоданных. Технический результат - обеспечение эффективного генерирования списка кандидатов, за счет чего происходит снижение количества битов, необходимого для представления информации движения единицы прогнозирования. Способ декодирования видеоданных содержит этапы, на которых для каждой единицы (PU) прогнозирования во множестве PU, принадлежащих текущей единице (CU) кодирования видеоданных: генерируют список кандидатов для PU, при этом генерирование списка кандидатов для PU использует только исходные положения вне текущей CU, причем список кандидатов для PU включает в себя один или более пространственных кандидатов, причем исходные положения включают в себя по меньшей мере одно из: исходное положение выше текущей CU, исходное положение выше и справа текущей CU, исходное положение выше и слева текущей CU, исходное положение слева текущей CU и исходное положение ниже и слева текущей CU; определяют, по меньшей мере, частично на основании информации движения, указанной выбранным кандидатом в списке кандидатов для PU, информацию движения PU; и генерируют, по меньшей мере, частично на основании опорного блока, указанного информацией движения PU, прогностический видеоблок для PU. 8 н. и 64 з.п. ф-лы, 30 ил.

Реферат

[0001] По данной заявке испрашивается приоритет по предварительной заявке на патент США № 61/535964, поданной 17 сентября 2011 г., предварительной заявке на патент США № 61/564764, поданной 29 ноября 2011 г., и предварительной заявке на патент США № 61/564799, поданной 29 ноября 2011 г., полное содержание каждой из которых включено в данное описание посредством ссылки.

Область техники, к которой относится изобретение

[0002] Изобретение относится к видеокодировке и, в частности, к межкадровому прогнозированию видеоданных.

Уровень техники

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

[0004] Методы сжатия видеосигнала осуществляют пространственное (внутри изображения) прогнозирование и/или временное (между изображениями) прогнозирование для снижения или устранения избыточности, присущей видеопоследовательностям. Для кодирования видеосигнала на основе блоков, срез видео можно разбивать на видеоблоки, которые также могут именоваться блоками дерева, единицами (CU) кодирования и/или узлами кодирования. Видеоблоки во внутренне кодированном (I) срезе изображения кодируются с использованием пространственного прогнозирования в отношении опорных выборок в соседних блоках в одном и том же изображении. Видеоблоки во внешне кодированном (P или B) срезе изображения могут использовать пространственное прогнозирование в отношении опорных выборок в соседних блоках в одном и том же изображении или временное прогнозирование в отношении опорных выборок в других опорных изображениях. Изображения могут именоваться кадрами, и опорные изображения могут именоваться опорными кадрами.

Сущность изобретения

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

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

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

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

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

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

Краткое описание чертежей

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

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

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

[0014] Фиг. 4 - блок-схема, иллюстрирующая примерную конфигурацию модуля внешнего прогнозирования.

[0015] Фиг. 5 - блок-схема операций, которая иллюстрирует пример операции слияния.

[0016] Фиг. 6 - блок-схема операций, которая иллюстрирует пример операции усовершенствованного прогнозирования вектора движения (AMVP).

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

[0018] Фиг. 8A - принципиальная схема, которая демонстрирует единицу (CU) кодирования и примерные исходные положения, связанные с CU.

[0019] Фиг. 8B - принципиальная схема, которая демонстрирует CU и примерные альтернативные исходные положения, связанные с CU.

[0020] Фиг. 9A - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса левее CU с разбиением 2N×N.

[0021] Фиг. 9B - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса левее CU с разбиением N×2N.

[0022] Фиг. 9C - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса выше CU с разбиением 2N×N.

[0023] Фиг. 9D - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса выше CU с разбиением N×2N.

[0024] Фиг. 9E - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса левее CU с разбиением N×N.

[0025] Фиг. 9F - принципиальная схема, которая демонстрирует примерные исходные положения опорного индекса выше CU с разбиением N×N.

[0026] Фиг. 10A - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса левее CU с разбиением 2N×N.

[0027] Фиг. 10B - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса левее CU с разбиением N×2N.

[0028] Фиг. 10C - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса выше CU с разбиением 2N×N.

[0029] Фиг. 10D - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса выше CU с разбиением N×2N.

[0030] Фиг. 10E - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса левее CU с разбиением N×N.

Фиг. 10F - принципиальная схема, которая демонстрирует примерное исходное положение опорного индекса выше CU с разбиением N×N.

[0031] Фиг. 11 - блок-схема операций, которая иллюстрирует пример операции для генерации временного кандидата для PU.

[0032] Фиг. 12 - блок-схема операций, которая иллюстрирует первый пример операции для генерации списка кандидатов для PU.

[0033] Фиг. 13 - блок-схема операций, которая иллюстрирует второй пример операции для генерации списка кандидатов для PU.

[0034] Фиг. 14A - принципиальная схема, которая демонстрирует примерные исходные положения пространственных кандидатов, связанные с левой PU примера CU с разбиением N×2N.

[0035] Фиг. 14B - принципиальная схема, которая демонстрирует примерные исходные положения пространственных кандидатов, связанные с нижней PU CU с разбиением 2N×N.

[0036] Фиг. 15A-15D - принципиальные схемы, которые демонстрируют примерные исходные положения пространственных кандидатов, связанные с PU CU с разбиением N×N.

Подробное описание

[0037] Видеокодер может осуществлять внешнее прогнозирование для снижения временной избыточности между изображениями. Как описано ниже, единица (CU) кодирования может иметь множество единиц (PUs) прогнозирования. Другими словами, множество PU может принадлежать CU. Когда видеокодер осуществляет внешнее прогнозирование, видеокодер может сигнализировать информацию движения для PU. Информация движения PU может включать в себя индекс опорного изображения, вектор движения и индикатор направления прогнозирования. Вектор движения может указывать смещение между видеоблоком PU и опорным блоком PU. Опорный блок PU может быть частью опорного изображения, которая аналогична видеоблоку PU. Опорный блок может находиться в опорном изображении, указанном индексом опорного изображения и индикатором направления прогнозирования.

[0038] Для снижения количества битов, необходимого для представления информации движения PU, видеокодер может генерировать списки кандидатов для каждой из PU согласно режиму слияния или процессу усовершенствованного прогнозирования вектора движения (AMVP). Каждый кандидат в списке кандидатов для PU может указывать информацию движения. Информация движения, указанная некоторыми из кандидатов в списке кандидатов, может базироваться на информации движения других PU. Например, списки кандидатов могут включать в себя “первоначальные” кандидаты, которые указывают информацию движения PU, которые покрывают указанные положения пространственных или временных кандидатов. Кроме того, в некоторых примерах, списки кандидатов могут включать в себя кандидаты, генерируемые путем объединения частичных векторов движения из разных первоначальных кандидатов. Кроме того, списки кандидатов могут включать в себя “искусственные” кандидаты, которые не генерируются на основании информации движения других PU, например кандидаты, которые указывают векторы движения, имеющие нулевую величину.

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

[0040] После генерации списка кандидатов для PU CU, видеокодер может выбирать кандидат из списка кандидатов и выводить индекс кандидата в битовый поток. Индекс кандидата может указывать позицию выбранного кандидата в списке кандидатов. Видеокодер также может генерировать прогностический видеоблок для PU на основании опорного блока, указанного информацией движения PU. Информация движения PU может быть определимой на основании информации движения, указанной выбранным кандидатом. Например, в режиме слияния, информация движения PU может быть идентична информации движения, указанной выбранным кандидатом. В режиме AMVP, информация движения PU может определяться на основании разности векторов движения PU и информации движения, указанной выбранным кандидатом. Видеокодер может генерировать один или более остаточных видеоблоков для CU на основании прогностических видеоблоков PU CU и первоначальный видеоблок для CU. Затем видеокодер может кодировать и выводить один или более остаточных видеоблоков в битовый поток.

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

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

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

[0044] Для простоты объяснения, это изобретение может описывать положения или видеоблоки как имеющие различные пространственные соотношения с CU или PU. Такое описание можно интерпретировать в том смысле, что положения или видеоблоки находятся в различных пространственных соотношениях с видеоблоками, связанными с CU или PU. Кроме того, это изобретение может относиться к PU, которую видеокодировщик в данный момент кодирует как текущую PU. Это изобретение может относиться к CU, которую видеокодировщик в данный момент кодирует как текущую CU. Это изобретение может относиться к изображению, которое видеокодировщик в данный момент кодирует как текущее изображение.

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

[0046] На фиг. 1 показана блок-схема, иллюстрирующая пример видеокодировочной системы 10, которая может использовать методы этого изобретения. Используемый здесь термин “видеокодировщик” относится, в целом, к видеокодерам и видеодекодерам. В этом изобретении, термины “видеокодировка” или “кодировка” может относиться, в целом, к кодированию видеосигнала и декодированию видеосигнала.

[0047] Как показано на фиг. 1, видеокодировочная система 10 включает в себя устройство-источник 12 и устройство 14 назначения. Устройство-источник 12 генерирует кодированные видеоданные. Соответственно, устройство-источник 12 может именоваться устройством кодирования видеосигнала. Устройство 14 назначения может декодировать кодированные видеоданные, генерируемые устройством-источником 12. Соответственно, устройство 14 назначения может именоваться устройством декодирования видеосигнала. Устройство-источник 12 и устройство 14 назначения могут служить примерами видеокодировочных устройств.

[0048] Устройство-источник 12 и устройство 14 назначения может содержать разнообразные устройства, включая настольные компьютеры, мобильные вычислительные устройства, компьютеры типа ноутбук (например, портативные), планшетные компьютеры, телевизионные приставки, телефонные трубки, например так называемые “смартфоны”, телевизоры, камеры, устройства отображения, цифровые медиапроигрыватели, видеоигровые консоли, бортовые автомобильные компьютеры и т.п. В некоторых примерах, устройство-источник 12 и устройство 14 назначения могут быть оборудованы для беспроводной связи.

[0049] Устройство 14 назначения может принимать кодированные видеоданные от устройства-источника 12 через канал 16. Канал 16 может содержать тип носителя или устройство, способное переносить кодированные видеоданные от устройства-источника 12 на устройство 14 назначения. В одном примере, канал 16 может содержать среду связи, которая позволяет устройству-источнику 12 передавать кодированные видеоданные непосредственно на устройство 14 назначения в реальном времени. В этом примере, устройство-источник 12 может модулировать кодированные видеоданные согласно стандарту связи, например протоколу беспроводной связи, и может передавать модулированные видеоданные на устройство 14 назначения. Среда связи может содержать среду беспроводной или проводной связи, например радиочастотный (РЧ) спектр или одну или более физических линий передачи. Среда связи может составлять часть сети с коммутацией пакетов, например локальной сети, широкомасштабной сети или глобальной сети, например интернета. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или другое оборудование, которое облегчает передачу от устройства-источника 12 на устройство 14 назначения.

[0050] В другом примере, канал 16 может соответствовать носителю данных, где хранятся кодированные видеоданные, генерируемые устройством-источником 12. В этом примере, устройство 14 назначения может обращаться к носителю данных посредством доступа к диску или доступа к карте. Носитель данных может включать в себя различные локально доступные носители данных, например диски Blu-ray, DVD, CD-ROM, флэш-память или другие пригодные цифровые носители данных для хранения кодированных видеоданных. В дополнительном примере, канал 16 может включать в себя файловый сервер или другое промежуточное запоминающее устройство, где хранятся кодированный видеосигнал, генерируемый устройством-источником 12. В этом примере, устройство 14 назначения может обращаться к кодированным видеоданным, хранящимся на файловом сервере или другом промежуточном запоминающем устройстве, посредством потоковой передачи или загрузки. Файловый сервер может быть типом сервера, способным хранить кодированные видеоданные и передавать кодированные видеоданные на устройство 14 назначения. Примеры файловых серверов включают в себя веб-серверы (например, для веб-сайта), серверы протокола передачи файлов (FTP), устройства сетевого хранения (NAS), и локальные дисководы. Устройство 14 назначения может обращаться к кодированным видеоданным через стандартное соединение передачи данных, в том числе, интернет-соединение. Примерные типы соединений передачи данных могут включать в себя беспроводные каналы (например, соединения Wi-Fi), проводные соединения (например, DSL, кабельный модем и т.д.), или их комбинации, которые пригодны для осуществления доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных с файлового сервера может быть потоковой передачей, передачей загрузки, или их комбинацией.

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

[0052] В примере, показанном на фиг. 1, устройство-источник 12 включает в себя источник 18 видеосигнала, видеокодер 20 и выходной интерфейс 22. В ряде случаев, выходной интерфейс 22 может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве-источнике 12, источник 18 видеосигнала может включать в себя такой источник, как устройство захвата видео, например видеокамеру, архив видеозаписей, содержащий ранее захваченные видеоданные, интерфейс видеоподачи для приема видеоданных от поставщика видеоконтента, и/или систему компьютерной графики для генерации видеоданных, или комбинацию таких источников.

[0053] Видеокодер 20 может кодировать захваченные, предварительно захваченные или создаваемые на компьютере видеоданные. Кодированные видеоданные могут передаваться непосредственно на устройство 14 назначения через выходной интерфейс 22 устройства-источника 12. Кодированные видеоданные также могут сохраняться на носителе данных или файловом сервере для дальнейшего доступа со стороны устройства 14 назначения для декодирования и/или воспроизведения.

[0054] В примере, показанном на фиг. 1, устройство 14 назначения включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В ряде случаев, входной интерфейс 28 может включать в себя приемник и/или модем. Входной интерфейс 28 устройства 14 назначения принимает кодированные видеоданные по каналу 16. Кодированные видеоданные могут включать в себя различные элементы синтаксиса, генерируемые видеокодером 20, которые представляют видеоданные. Такие элементы синтаксиса могут быть включены с кодированными видеоданными, передаваемыми по среде связи, хранящимися на носителе данных или хранящимися на файловом сервере.

[0055] Устройство 32 отображения может быть объединено с устройством 14 назначения или быть отдельным от него. В некоторых примерах, устройство 14 назначения может включать в себя встроенное устройство отображения и также может быть выполнено с возможностью сопряжения с внешним устройством отображения. В других примерах, устройство 14 назначения может быть устройством отображения. В целом, устройство 32 отображения отображает декодированные видеоданные пользователю. Устройство 32 отображения может содержать любое из различных устройств отображения, например жидкокристаллический дисплей (ЖКД), плазменный дисплей, органо-светодиодный (ОСИД) дисплей или другой тип устройства отображения.

Видеокодер 20 и видеодекодер 30 могут действовать согласно стандарту сжатия видеосигнала, например стандарту High Efficiency Video Coding (HEVC), в настоящее время находящемуся в разработке, и могут отвечать HEVC Test Model (HM). Недавний проект перспективного стандарта HEVC, именуемый “HEVC Working Draft 7” или “WD7”, описан в документе JCTVC-I1003_d54, Bross et al., “High efficiency video coding (HEVC) text specification draft 7,” Joint Collaborative Team on Video Coding (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 9th Meeting: Geneva, Switzerland, May, 2012, который, как и изданный 19 июля 1, 2012, можно загрузить с адреса: http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zip, содержание которого в полном объеме включено в данное описание посредством ссылки. Альтернативно, видеокодер 20 и видеодекодер 30 могут действовать согласно другим собственным или промышленным стандартам, например стандарту ITU-T H.264, альтернативно именуемому MPEG 4, Part 10, Advanced Video Coding (AVC), или расширениям таких стандартов. Однако методы этого изобретения не ограничиваются никаким конкретным стандартом или методом кодирования. Другие примеры стандартов и методов сжатия видеосигнала включают в себя MPEG-2, ITU-T H.263 и форматы сжатия, защищенные правом собственности или с открытым исходным кодом, например VP8 и родственные форматы.

[0056] Хотя это не показано в примере, представленном на фиг. 1, каждый из видеокодера 20 и видеодекодера 30 может быть объединен с аудиокодером и декодером и может включать в себя надлежащие блоки мультиплексирования/демультиплексирования, или другое оборудование и программное обеспечение, для обработки кодирования аудио и видео в общем потоке данных или отдельных потоках данных. Если применимо, в некоторых примерах, блоки мультиплексирования/демультиплексирования могут отвечать протоколу мультиплексора ITU H.223 или другим протоколам, например протоколу пользовательских дейтаграмм (UDP).

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

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

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

[0060] Для генерации битового потока, видеокодер 20 может осуществлять операции кодирования на каждом изображении в видеоданных. Когда видеокодер 20 осуществляет операции кодирования на изображениях, видеокодер 20 может генерировать последовательность кодированных изображений и ассоциированных данных. Ассоциированные данные могут включать в себя наборы параметров последовательности, наборы параметров изображения, наборы параметров адаптации и другие синтаксические структуры. Набор параметров последовательности (SPS) может содержать параметры, применимые к нулю или более последовательностей изображений. Набор параметров изображения (PPS) может содержать параметры, применимые к нулю или более изображений. Набор параметров адаптации (APS) может содержать параметры, применимые к нулю или более изображений. Параметры в APS могут представлять собой параметры, которые изменяются с большей вероятностью, чем параметры в PPS.

[0061] Для генерации кодированного изображения, видеокодер 20 может разбивать изображение на видеоблоки равного размера. Видеоблок может представлять собой двухмерный массив выборок. Каждый из видеоблоков связан с блоком дерева. В ряде случаев, блок дерева может именоваться наибольшей единицей кодирования (LCU). Блоки дерева HEVC могут быть в широком смысле аналогичны макроблокам предыдущих стандартов, например H.264/AVC. Однако, блок дерева не обязан ограничиваться конкретным размером и может включать в себя одну или более единиц (CU) кодирования. Видеокодер 20 может использовать разбиение по принципу квадродерева для разбиения видеоблоков блоков дерева на видеоблоки, связанные с CU, отсюда название “блоки дерева”.

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

[0063] В ходе осуществления операции кодирования на изображении, видеокодер 20 может осуществлять операции кодирования на каждом срезе изображения. Когда видеокодер 20 осуществляет операцию кодирования на срезе, видеокодер 20 может генерировать кодированные данные, связанные со срезом. Кодированные данные, связанные со срезом, могут именоваться “кодированным срезом”.

[0064] Для генерации кодированного среза, видеокодер 20 может осуществлять операции кодирования на каждом блоке дерева в срезе. Когда видеокодер 20 осуществляет операцию кодирования на блоке дерева, видеокодер 20 может генерировать кодированный блок дерева. Кодированный блок дерева может содержать данные, представляющие кодированную версию блока дерева.

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

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

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

[0068] Один или более элементов синтаксиса в битовом потоке может указывать, сколько раз максимум видеокодер 20 может разбивать видеоблок блока дерева. Видеоблок CU может иметь квадратную форму. Размер видеоблока CU (т.е. размер CU) может составлять от 8×8 пикселей до размера видеоблока блока дерева (т.е. размера блока дерева) максимум 64×64 пикселя или более.

[0069] Видеокодер 20 может осуществлять операции кодирования на каждой CU блока дерева (т.е. кодировать ее) согласно порядку зигзагообразного сканирования. Другими словами, видеокодер 20 может кодировать верхнюю левую CU, верхнюю правую CU, нижнюю левую CU и затем нижнюю правую CU, в указанном порядке. Когда видеокодер 20 осуществляет операцию кодирования на CU с разбиением, видеокодер 20 может кодировать CU, связанные с подблоками видеоблока CU с разбиением согласно порядку зигзагообразного сканирования. Другими словами, видеокодер 20 может кодировать CU, связанную с верхним левым подблоком, CU, связанную с верхним правым подблоком, CU, связанную с нижним левым подблоком, и затем CU, связанную с нижним правым подблоком, в указанном порядке.

[0070] В результате кодирования CU блока дерева согласно порядку зигзагообразного сканирования, CU, расположенные выше, выше и левее, выше и правее, левее и ниже и левее данной CU, может быть закодирована. CU, расположенные ниже или правее данной CU, еще не закодированы. Следова