Объединенная структура для схем деления картинки

Иллюстрации

Показать все

Изобретение относится к видеокодированию. Техническим результатом является упрощение видеокодирования за счет сокращения количества битов, о которых видиокодер сигнализирует. Кодировщик видео может управлять предсказанием в картинке сквозь границы вырезок в пределах картинки. В одном примере первый элемент синтаксиса может управлять предсказанием в картинке сквозь границы вырезок для вырезок картинки. Если предсказание в картинке сквозь границы вырезок разрешено для картинки, то второй элемент синтаксиса может управлять, для отдельных вырезок, разрешено ли предсказание в картинке сквозь границы вырезок для этой вырезки. 4 н. и 19 з.п. ф-лы, 9 ил., 3 табл.

Реферат

[0001] Эта заявка испрашивает приоритет предварительной заявки на патент США 61/551,862 поданной 26 октября 2011, все содержимое которой включено в настоящее описание по ссылке.

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

[0002] Настоящее раскрытие относится к кодированию видео.

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

[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включающих в себя цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые устройства регистрации, цифровые медиаплееры, устройства видео игр, пульты видеоигр, сотовые или спутниковые радио-телефоны, устройства организации видео телеконференций и т.п. Цифровые видео устройства реализуют методы сжатия видео, такие как описанные в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), и расширения таких стандартов, чтобы передавать и принимать цифровую видео информацию более эффективно.

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

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

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

[0006] ФИГ. 2A и 2B являются концептуальными диаграммами, иллюстрирующими пример разделения квадродерева, примененного к наибольшей единице кодирования (LCU).

[0007] ФИГ. 3 является концептуальной диаграммой, которая иллюстрирует примерный порядок кодирования, когда картинка разделена на множество ячеек.

[0008] ФИГ. 4 является концептуальной диаграммой, которая иллюстрирует параллельную обработку фронта волны.

[0009] ФИГ. 5 является блок-схемой, иллюстрирующей пример видео кодера, который может реализовать методы, описанные в настоящем раскрытии.

[0010] ФИГ. 6 является блок-схемой, иллюстрирующей пример видео декодера, который декодирует закодированную видео последовательность.

[0011] ФИГ. 7 является последовательностью операций, изображающей примерный способ согласно методам, описанным в настоящем раскрытии.

[0012] ФИГ. 8 является последовательностью операций, изображающей примерный способ согласно методам, описанным в настоящем раскрытии.

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

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

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

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

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

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

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

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

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

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

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

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

[0023] Энтропийные вырезки могут быть подобны вырезкам. Однако, единицы CU в пределах энтропийных вырезок может быть предсказаны сквозь границу вырезки. Энтропийные вырезки также традиционно отличаются от обычных вырезок по их структуре заголовка вырезки. Энтропийные вырезки могут использовать поднабор полей, которые присутствуют в заголовке обычной вырезки, в то же время наследуя недостающие поля из заголовка главной вырезки, которая предшествует энтропийной вырезке в порядке декодирования. Чтобы указать, что энтропийная вырезка должна унаследовать недостающие поля из заголовка главной вырезки, может использоваться элемент синтаксиса, упомянутый в настоящем раскрытии как lightweight_slice_flag. Например, когда этот элемент синтаксиса установлен равным 1, энтропийная вырезка наследует недостающие поля из заголовка главной вырезки.

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

[0025] WPP является методом, с помощью которого картинка может быть разделена на "волны" или "фронты волны", которые являются наборами строк единиц CU в пределах картинки. Картинка может иметь R строк единиц CU и быть разделена на N волн или фронтов волны, таким образом, что для каждого значения X (0<=X <=N), волны, имеющие R%N==X, принадлежат одному и тому же набору (где “%” соответствует оператору взятия модуля). В этом способе видео декодер может декодировать каждый набор волн картинки параллельно. Например, картинка может быть разделена на строки, и каждая из строк может быть идентифицирована значением фронта волны чередующимся образом. Например, первая - третья строки могут быть идентифицированы как значения фронта волны от 0 до 2, соответственно. Четвертая строка может быть затем идентифицирована как значение 0 фронта волны, пятая строка будет идентифицирована как значение 1 фронта волны, шестая строка может быть идентифицирована как значение 2 фронта волны, и т.д.

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

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

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

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

[0030] В способах настоящего раскрытия элементы синтаксиса набора параметров последовательности (SPS) и набора параметров картинки (PPS) для ячейки могут быть такими же как для текущих способов, сформулированных в WD8. Для WPP элемент синтаксиса entropy_coding_synchro может быть изменен на 1-битовый флаг, который включен в элементы синтаксиса PPS. Когда значение entropy_coding_synchro равно 0, никакой конкретный процесс синхронизации для переменных контекста не вызывается. Если значение entropy_coding_synchro равно 1, однако, то конкретный процесс синхронизации для переменных контекста может быть вызван. Например, один подпоток фронта волны может быть синхронизирован от конца второй наибольшей единицы кодирования (LCU) в строке выше. Пример этой синхронизации описан ниже.

[0031] В дополнение к изменениям к элементам синтаксиса WPP и ячеек PPS, настоящее раскрытие описывает элемент синтаксиса “short_slice_header_enabled_flag” и элемент синтаксиса “dependent_slice_enabled_flag”, которые могут быть частью синтаксиса PPS. Как будет иллюстрировано ниже со ссылками на Таблицу 2 и Таблицу 3, short_slice_header_enabled_flag в PPS может указывать присутствие элемента синтаксиса “slice_id” и элемента синтаксиса “short_slice_header_flag” в заголовке вырезки. Как будет также иллюстрировано ниже со ссылками на Таблицу 2 и Таблицу 3, элемент синтаксиса “dependent_slice_enabled_flag” в PPS может указывать присутствие “slice_boundary_independence_flag” в заголовке вырезки. В целом, способы, описанные в настоящем раскрытии, изменяют синтаксис заголовка вырезки, чтобы поддерживать более короткие заголовки вырезки и указывать возможность разрешить или запретить предсказание в картинке сквозь вырезки для декодирования.

[0032] Элемент синтаксиса “short_slice_header_flag” указывает, что вырезка должна унаследовать недостающие поля от другой вырезки, или возможно от PPS или SPS. Элемент синтаксиса “short_slice_header_flag” может использоваться независимо от того, является ли вырезка, на которую ссылается этот элемент синтаксиса, обычной вырезкой или энтропийной вырезкой. Как описано выше, вырезка или энтропийная вырезка могут являться частью или включать в себя все или часть ячейки или волны.

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

[0034] В соответствии со способами настоящего раскрытия, полный заголовок вырезки и короткий заголовок вырезки могут быть независимо синтаксически разбираемыми. Другими словами, короткий заголовок вырезки может включать в себя достаточные элементы синтаксиса, чтобы позволить видео декодеру наследовать недостающие поля заголовка. Например, короткий заголовок вырезки может включать в себя начальный адрес вырезки, и также включать в себя ID вырезки, short_slice_header_flag, slice_boundary_independence_flag, параметры инициализации CABAC, и параметр квантования вырезки (QP). slice_boundary_independence_flag может быть новым флагом, введенным в заголовке вырезки, чтобы сигнализировать, разрешается ли предсказание в картинке сквозь вырезки для декодирования (когда значение равно 0), или запрещается (когда значение равно 1). В некоторых примерах начальный адрес вырезки может быть в начале короткого заголовка вырезки, вместо того, чтобы быть внедренным в заголовок. Все другие элементы синтаксиса заголовка вырезки могут присутствовать только в полных заголовках вырезки.

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

[0036] С этой структурой обычные вырезки (то есть родительские вырезки), короткие вырезки (вырезки с короткими заголовками вырезки), энтропийные вырезки, фронты волны и ячейки могут быть поддержаны в гармонии друг с другом. В этой структуре ячейки только определяют LCU, порядок декодирования. Когда независимо декодируемые ячейки являются желательными, каждая из них является вложенной в независимо декодируемую вырезку. Аналогично, каждая волна WPP инкапсулирована в независимо декодируемую вырезку. Сигнализация точек входа для ячеек или волн WPP не является необходимой в этом случае, так как вырезка не пересекает границы ячейки или волны. Энтропийные вырезки поддерживаются, просто разрешая предсказание в картинке для операций декодирования, устанавливая slice_boundary_independence_flag равным 0.

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

[0038] Помимо объединения различных схем деления картинки, настоящее раскрытие может также улучшить другие упомянутые выше проблемы. Например, согласно способам настоящего раскрытия, начальный адрес вырезки перемещается вперед в заголовке вырезки. В качестве другого примера присутствие параметра инициализации CABAC, cabac_init_idc, больше не зависит от slice_type, который не присутствует в коротком заголовке вырезки, и таким образом короткий заголовок вырезки сам может быть синтаксически разобран.

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

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

[0041] В примере согласно фиг. 1 исходное устройство 12 включает в себя видео источник 18, видео кодер 20, модулятор/демодулятор (модем) 22 и передатчик 24. Устройство 14 назначения включает в себя приемник 26, модем 28, видео декодер 30, и устройство 32 отображения. В соответствии с этим раскрытием видео кодер 20 из исходного устройства 12 может быть сконфигурирован, чтобы применять способы для кодирования данных синтаксиса, представляющих режимы внутреннего предсказания для блоков видео данных. В других примерах исходное устройство и устройство назначения могут включать в себя другие компоненты или компоновки. Например, исходное устройство 12 может принять видео данные из внешнего видео источника 18, такого как внешняя камера. Аналогично, устройство 14 назначения может взаимодействовать с внешним устройством отображения, вместо включения интегрированного устройства отображения.

[0042] Иллюстрированная система 10 согласно фиг. 1 является просто одним примером. Способы для кодирования данных синтаксиса, представляющих режимы внутреннего предсказания для блоков видео данных, могут быть выполнены любым устройство цифрового кодирования и/или декодирования видео. Хотя в целом способы настоящего раскрытия выполняются устройством кодирования видео, способы могут также быть выполнены кодером/декодером видео, типично называемым "кодек". Кроме того, способы настоящего раскрытия могут также быть выполнены препроцессором видео. Исходное устройство 12 и устройство 14 назначения являются просто примерами таких устройств кодировки, в которых исходное устройство 12 генерирует закодированные видео данные для передачи к устройству 14 назначения. В некоторых примерах устройства 12, 14 могут работать по существу симметричным образом таким образом, что каждое из устройств 12, 14 включают в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между видео устройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, вещания видео или видео телефонии.

[0043] Видео источник 18 из исходного устройства 12 может включать в себя устройство захвата видео, такое как видео камера, видео архив, содержащий ранее захваченное видео, и/или подачу видео от поставщика видео контента. В качестве дальнейшей альтернативы, видео источник 18 может генерировать основанные на компьютерной графике данные в качестве исходного видео, или комбинацию живого видео, заархивированного видео, и генерируемого компьютером видео. В некоторых случаях, если видео источник 18 является видео камерой, исходное устройство 12 и устройство 14 назначения может сформировать так называемые камерофоны или видео телефоны. Как упомянуто выше, однако, способы, описанные в настоящем раскрытии, могут быть применимыми к кодированию видео вообще, и могут быть применены к беспроводным и/или проводным применениям. В каждом случае захваченное, предзахваченное или генерируемое компьютером видео может быть закодировано видео кодером 20. Закодированная видео информация может затем модулироваться модемом 22 согласно стандарту связи, и передана к устройству 14 назначения через передатчик 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или другие компоненты, разработанные для модуляции сигнала. Передатчик 24 может включать в себя схемы, разработанные для передачи данных, включая усилители, фильтры, и одну или более антенн.

[0044] Приемник 26 из устройства 14 назначения принимают информацию по каналу 16, и модем 28 демодулирует информацию. Снова, процесс кодирования видео может реализовать один или более способов, описанных в настоящем описании, для кодирования данных синтаксиса, представляющих режимы внутреннего предсказания для блоков видео данных. Информация, переданная по каналу 16, может включать в себя информацию синтаксиса, определенную видео кодером 20, которая также используется видео декодером 30, которая включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку макроблоков и других единиц кодированных единиц, например, GOP. Устройство 32 отображения отображает декодированные видео данные пользователю, и может содержать любое множество устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED), или другой тип устройства отображения.

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

[0046] Снова, ФИГ. 1 является просто примерным, и способы настоящего раскрытия могут относиться к параметрам настройки кодировки видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя любую передачу данных между устройств кодирования и декодирования. В других примерах данные могут быть извлечены из локальной памяти, переданы потоком по сети, или подобное. Устройство кодирования может закодировать и сохранить данные в памяти, и/или устройство декодирования может извлечь и декодировать данные из памяти. Во многих случаях кодирование и декодирование выполняются несвязанными устройствами, которые не обмениваются друг с другом, но просто кодируют данные в память и/или извлекают и декодируют данные из памяти.

[0047] Видео кодер 20 и видео декодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт высокоэффективного кодирования видео (HEVC), находящегося теперь в развитии, и могут соответствовать Тестовой Модели HEVC (HM). Один проект стандарта HEVC, названный “HEVC Working Draft 4” или “WD4”, описан в документе High-Efficiency Video Coding text specification draft 4” объединенной совместной команды по кодированию видео (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG116th Meeting: Torino, IT, 14-22 июля 2011, который тем самым включен ссылкой полностью. Более свежий проект стандарта HEVC, названный “HEVC Working Draft 8” или "WD8", описан в документе JCTVC-J1003, Bross и др., “ JCTVC-J1003, Bross et al., “High efficiency video coding (HEVC) text specification draft 8,” объединенной совместной команды по кодированию видео (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 10th Meeting: Стокгольм, SE 11-20 июля 2012, который, на 17 октября 2012, загружаем из http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip, и который включен здесь ссылкой полностью.

[0048] Альтернативно, видео кодер 20 и видео декодер 30 могут работать согласно другим составляющим собственность стандартам или стандартам промышленности, таким как стандарт ITU-T H.264, альтернативно названный MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), или расширениям таких стандартов. Способы настоящего раскрытия, однако, не ограничены никаким конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и ITU-T H.263. Хотя не показано на фиг. 1, в некоторых аспектах видео кодер 20 и видео декодер 30 могут каждый быть интегрированы с аудио кодером и декодером, и могут включать в себя соответствующие блоки мультиплексоров-демультиплексоров MUX-DEMUX, или другое аппаратное обеспечение и программное обеспечение, чтобы обрабатывать кодирование как аудио так и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу ITU H.223 мультиплексора, или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).

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

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

[0051] В качестве примера, ITU-T H.264 стандарт поддерживает внутреннее предсказание в различных размерах блока, такой как 16 на 16, 8 на 8, или 4 на 4 для компонентов яркости, и 8x8 для компонентов насыщенности цвета, так же как внешнее предсказание в различных размерах блока, таких как 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 и 4x4 для компонентов яркости и соответствующих масштабированных размеров для компонентов насыщенности цвета. В настоящем раскрытии “NxN” и “N на N” может использоваться взаимозаменяемо, чтобы относится к пиксельным размерностям блока в терминах вертикальных и горизонтальных измерений, например, 16x16 пикселей или 16 на 16 пикселей. Вообще, блок 16x16 будет 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок N x N вообще имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целое значение. Пиксели в блоке могут быть размещены в строках и колонках. Кроме того, блоки не обязательно должны иметь то же количество пикселей в горизонтальном направлении, что и в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где М не обязательно равно N. Размеры блока, которые являются меньшими, чем 16x16, могут называться как разделение макроблока 16x16 в ITU-T H.264.

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

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