Кодирование вектора движения и би-предсказание в hevc и его расширениях

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении лучшей совместимости с будущими версиями для кодека видео с множественными видами и/или трехмерного видео. Способ декодирования видеоданных содержит определение первого типа для текущего вектора движения текущего блока видеоданных; определение второго типа для предсказателя вектора движения - кандидата соседнего блока к текущему блоку; установку переменной в первое значение, указывающее, что предсказатель вектора движения - кандидат не доступен для использования в качестве предсказателя вектора движения для текущего вектора движения, при этом переменная может быть установлена либо в первое значение, либо во второе значение, отличное от первого значения, указывающее, что предсказатель вектора движения - кандидат доступен для использования в качестве предсказателя вектора движения для текущего вектора движения; определение, отличается ли упомянутый первый тип от упомянутого второго типа; и после начальной установки переменной в первое значение установку этой переменной во второе значение в ответ на определение того, что упомянутый первый тип идентичен упомянутому второму типу; и декодирование текущего вектора движения на основании, по меньшей мере частично, второго значения этой переменной. 6 н. и 49 з.п. ф-лы, 6 ил., 6 табл.

Реферат

[0001] Настоящая заявка испрашивает приоритет следующих предварительных заявок на патент, все содержимое каждой из которых тем самым включено по ссылке:

предварительной патентной заявки US61/611,959, поданной 16 марта 2012;

предварительной патентной заявки US61/624,990, поданной 16 апреля 2012;

предварительной патентной заявки US61/658,344, поданной 11 июня 2012; и

предварительной патентной заявки US61/663,484, поданной 22 июня 2012.

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

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

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

[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включающий в себя цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), ноутбуки или настольные компьютеры, планшетные компьютеры, считыватели электронных книг, цифровые камеры, цифровые устройства записи, цифровые медиаплееры, устройства проигрывания видео, консоли видеоигр, сотовые или спутниковые радиотелефоны, так называемые “смартфоны,” устройства организации видео телеконференций, устройства потоковой передачи видео и т.п. Цифровые видео устройства реализуют способы кодирования видео, такие как описанные в стандартах, определенных посредством MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC), стандарт высокоэффективного кодирования видео (HEVC) находящегося в настоящее время в развитии, и расширениях таких стандартов, таких как масштабируемое кодирование видео (SVC) и кодирование видео с множественными видами (MVC). Версия 6 рабочего проекта (WD) HEVC доступна по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v21.zip. Видео устройства могут передавать, принимать, кодировать, декодировать, и/или сохранять цифровую информацию видео более эффективно посредством реализации таких способов кодирования видео.

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

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

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

[0006] В целом, настоящее раскрытие описывает способы для кодирования векторов движения и для выполнения би-предсказания в высокоэффективном кодировании видео (HEVC) и его расширениях, таких как расширения для множественных видов или трехмерного видео (3DV). Способы настоящего раскрытия могут поддерживать лучшую совместимость с будущими версиями для кодека видео с множественными видами и/или кода 3D видео в базовой структуре кодека.

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

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

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

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

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

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

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

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

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

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

[0016] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может использовать способы для кодирования векторов движения и для выполнения би-предсказания в высокоэффективном кодировании видео (HEVC) и его расширениях, таких как расширения для множественных видов или трехмерного видео (3DV).

[0017] ФИГ. 2 является блок-схемой, иллюстрирующей пример кодера видео, который может реализовать способы для кодирования векторов движения и для выполнения би-предсказания в HEVC и его расширениях, таких как расширения для множественных видов или 3DV.

[0018] ФИГ. 3 является блок-схемой, иллюстрирующей примерный видео декодер 30, который может реализовать способы для кодирования векторов движения и для выполнения би-предсказания в HEVC и его расширениях, таких как расширения для множественных видов или 3DV.

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

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

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

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

[0022] В целом, настоящее раскрытие описывает способы для кодирования данных кодирования видео с множественными видами (MVC). В настоящее время группа экспертов по движущимся изображениям (MPEG) развивает стандарт трехмерного видео (3DV) на основании предстоящего стандарта кодирования видео высокой производительности (HEVC). Часть усилий по стандартизации также включает в себя стандартизацию кодека видео с множественными видами на основании HEVC. В двумерном кодировании данные видео для видео (то есть, последовательность картинок) являются закодированными картинка - за - картинкой, не обязательно в порядке отображения. Устройства кодирования видео делят каждую картинку на блоки, и кодируют каждый блок индивидуально. Основанные на блоках режимы предсказания включают в себя пространственное предсказание, также называемое внутренним предсказанием, и временное предсказание, также называемое внешним предсказанием.

[0023] Для данных трехмерного видео, таких как основанные на 3DV HEVC, блоки могут также быть предсказаны между видами. Таким образом, блоки могут быть предсказаны из картинки другого вида, где каждый вид обычно соответствует соответствующему местоположению камеры. Таким образом, в основанном на HEVC 3DV, может быть разрешено предсказание между видами, основанное на реконструированных компонентах вида из различных видов. Настоящее раскрытие использует термин "компонент вида", чтобы ссылаться на кодированную картинку конкретного вида. То есть, компонент вида может содержать закодированную картинку для конкретного вида в конкретное время (в терминах порядка отображения или порядка вывода). Компонент вида (или вырезка (слайс) компонента вида) может иметь значение счета по порядку картинки (POC), которое обычно указывает порядок отображения (или порядок вывода) компонента вида.

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

[0025] В целом, данные, указывающие опорные картинки, на которые могут ссылаться вектор движения или вектор смещения, хранятся в списках опорных картинок. Таким образом, данные вектора движения (или данные вектора смещения) могут включать в себя не только данные для x-компонента и y-компонента вектора движения, но также и индикацию записи списка опорных картинок, называемого индексом опорной картинки. Устройства кодирования видео могут конструировать множественные списки опорных картинок. Например, устройство кодирования видео может конструировать первый список опорных картинок (список 0 или RefPicList0), чтобы сохранить данные для опорных картинок, имеющих значения POC, более ранние, чем текущая картинка, и второй список опорных картинок (список 1, или RefPicList1), чтобы сохранить данные для опорных картинок, имеющих значения POC, более поздних, чем текущая картинка. Снова следует отметить, что порядки отображения или вывода для картинок не обязательно являются такими же, как значения порядка кодирования (например, номер кадра или значения “frame_num”). Таким образом, картинки могут быть закодированы в порядке, который отличается от порядка, в котором кадры показываются (или захвачены).

[0026] Как правило, конструирование списка опорных картинок для первого или второго списка опорных картинок B-картинки включает в себя два этапа: инициализация списка опорных картинок и переупорядочение списка опорных картинок (модификация). Инициализация списка опорных картинок является явным механизмом, который помещает опорные картинки в память опорных картинок (также известную как буфер декодированных картинок) в список на основании значений порядка POC (счет по порядку картинок, согласованный с порядком отображения картинок). Механизм переупорядочения списка опорных картинок может модифицировать позицию картинки, которая была помещена в список во время инициализации списка опорных картинок, в любую новую позицию, или помещение любой опорной картинки в память опорных картинок в любой позиции, даже если картинка не принадлежит инициализированному списку. Некоторые картинки после переупорядочения списка опорных картинок (модификации) могут быть помещены в дополнительную позицию в списке. Однако, если позиция картинки превышает количество активных опорных картинок списка, эта картинка не рассматривается как запись окончательного списка опорных картинок. Количество активных опорных картинок может быть сигнализировано в заголовке вырезки для каждого списка. После того как списки опорных картинок построены (например, RefPicList0 и RefPicList1, если доступны), опорный индекс может быть использован для идентификации картинки в любом списке опорных картинок.

[0027] Как отмечено выше, данные вектора движения могут также включать в себя горизонтальный компонент (или x-компонент) и вертикальный компонент (или y-компонент). Таким образом, вектор движения может быть определен как <x, y>. Вместо того, чтобы кодировать x-компонент и y-компонент вектора движения непосредственно, устройства кодирования видео могут кодировать вектора движения относительно предсказателей вектора движения. Предсказатели вектора движения могут быть выбраны из пространственных соседей для текущего блока, совместно расположенного блока временно отделенной картинки (то есть, совместно расположенного блока в ранее закодированной картинке), или совместно расположенного блока картинки в другом виде в одном и том же временном экземпляре, в различных примерах. Предсказатели вектора движения отдельной во времени картинки называются как временные предсказатели вектора движения (TMVPs).

[0028] Чтобы определить TMVP для текущего блока (например, текущая единица предсказания (PU) текущей единицы кодирования (CU) в HEVC), устройство кодирования видео может сначала идентифицировать совмещенную картинку. Термин "совмещенная" картинка относится к картинке, включающей в себя конкретный совмещенный блок. Совмещенный блок может также быть включен в “совмещенное разделение”, как указано в WD6 в HEVC. Если текущая картинка является вырезкой B, collocated_from_10_flag может быть сигнализирован в заголовке вырезки для вырезки текущей картинки, чтобы указать, является ли совмещенная картинка из RefPicList0 или RefPicList1. После того, как список опорных картинок идентифицирован, устройство кодирования видео может использовать collocated_ref_idx, сигнализированный в заголовке вырезки, чтобы идентифицировать совмещенную картинку в списке опорных картинок. Совмещенная PU затем идентифицируется посредством проверки совмещенной картинки. Любой вектор движения из правой нижней единицы PU в CU, содержащей текущую PU, или вектор движения правой нижней PU в пределах центральных PU в CU, содержащей эту PU, можно рассматривать как TMVP для текущей PU. Когда вектора движения, идентифицированные вышеупомянутым процессом, используются для генерирования кандидата движения для AMVP или режима слияния, они могут быть масштабированы на основании временного местоположения (отраженного посредством значения POC опорной картинки). В соответствии со способами настоящего раскрытия, как описано ниже, TMVP может быть одного и того же вида или различного вида.

[0029] В HEVC набор параметров картинки (PPS) включает в себя флаг enable_temporal_mvp_flag. Когда конкретная картинка с temporal_id, равным 0, ссылается на PPS, имеющий enable_temporal_mvp_flag, равный 0, все опорные картинки в DPB могут быть отмечены как “неиспользованные для временного предсказания вектора движения”, и никакой вектор движения из картинок до этой конкретной картинки в порядке декодирования не может быть использован как временной предсказатель вектора движения при декодировании конкретной картинки или картинки после конкретной картинки в порядке декодирования.

[0030] В H.264/AVC или HEVC, для вырезок P, когда взвешенное предсказание разрешено посредством установки weighted_pred_flag в 1, веса предсказания явно сигнализируются. Элемент синтаксиса weighted_pred_flag сигнализируется в заголовке вырезки, и его семантика является следующей.

[0031] В некоторых примерах weighted_pred_flag, равный 0, может задавать, что взвешенное предсказание не может быть применено к вырезкам P. weighted_pred_flag, равный 1, задает, что взвешенное предсказание может быть применено к вырезкам P.

[0032] Для вырезки B, когда взвешенное предсказание разрешено посредством установки weighted_bipred_idc ненулевым, веса предсказания могут быть явно сигнализированы или выведены неявно. Синтаксис может также быть сигнализирован в заголовке вырезки, и его семантика является следующей.

[0033] В некоторых примерах weighted_bipred_idc, равное 0, задает, что взвешенное предсказание по умолчанию применяется к вырезкам B. В некоторых примерах weighted_bipred_idc, равное 1, задает, что явное взвешенное предсказание применяется к вырезкам B. В некоторых примерах weighted_bipred_idc, равное 2, задает, что неявное взвешенное предсказание должно быть применено к вырезкам B. Значение weighted_bipred_idc может быть в диапазоне от 0 до 2, включительно.

[0034] Когда weighted_bipred_idc равно 1, веса могут быть выведены на основании временного расстояния двух опорных кадров посредством вычисления расстояния POC.

[0035] Текущая структура HEVC может препятствовать развитию будущих расширений, таких как расширение для множественных видов или 3DV, особенно если разработчики таких расширений хотят обеспечить возможность только создания изменений синтаксиса высокого уровня. Например, если опорная картинка, которая должна использоваться для TMVP, исходит из отличного вида, она может иметь то же самое POC, как текущая картинка. Текущая структура HEVC для масштабирования вектора движения может быть не в состоянии точно идентифицировать опорную картинку, используемую для TMVP в этом сценарии. Когда неявное взвешенное предсказание применяется для вырезки B и одна опорная картинка берется из отличного вида, процесс вычисления весов предсказания может столкнуться с проблемой, так как процесс был разработан на основании только расстояний POC.

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

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

[0038] Любое из множества способов может быть использовано для определения типа для вектора движения. Например, видео кодировщик может определить тип для вектора движения (например, временное в зависимости от диспаратности) на основании сравнения значений POC между текущей картинкой и опорной картинкой, на которую ссылается вектор движения. Если значения POC различны, то видео кодировщик может определить, что вектор движения является временным вектором движения. С другой стороны, если значения POC одинаковы, видео кодировщик может определить, что вектор движения является диспаратным вектором движения.

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

[0040] В качестве еще одного другого примера, видео кодировщик может определить, является ли опорная картинка, на которую ссылается вектор движения, долгосрочной опорной картинкой или краткосрочной опорной картинкой. Если опорная картинка является краткосрочной опорной картинкой, видео кодировщик может определить, что вектор движения является диспаратным вектором движения. Однако, если опорная картинка является долгосрочной опорной картинкой, видео кодировщик может определить, что вектор движения является временным вектором движения.

[0041] Кроме того, в соответствии с некоторыми способами настоящего раскрытия, когда текущий вектор движения имеет отличный тип, чем предсказатель вектора движения - кандидат, видео кодировщик может быть сконфигурирован, чтобы определить, что предсказатель вектора движения - кандидат не доступен. Например, видео кодировщик может установить флаг (или переменную) "доступный" (available), указывающий, доступен ли предсказатель вектора движения - кандидат для использования в качестве предсказателя для текущего вектора движения, в значение, указывающее, что предсказатель вектора движения - кандидат не доступен, когда типы являются различными между текущим вектором движения и предсказателем вектора движения - кандидатом.

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

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

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

[0045] Способы настоящего раскрытия не обязательно ограничены беспроводными приложениями или параметрами настройки. Эти способы могут быть применены к кодированию видео в поддержку любого множества мультимедийных приложений, таких как эфирное телевидение, передачи кабельного телевидения, передачи спутникового телевидения, Интернет, передачи потокового видео, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое закодировано на запоминающем носителе данных, декодирование цифрового видео, сохраненного на запоминающем носителе данных, или других приложений. В некоторых примерах система 10 может быть сконфигурирована, чтобы поддерживать одностороннюю или двухстороннюю передачу видео, чтобы поддерживать приложения, такие как потоковая передача видео, воспроизведение видео, вещание видео и/или видео телефония.

[0046] В примере на ФИГ. 1 исходное устройство 12 включает в себя видео источник 18, видео кодер 20 и интерфейс 22 вывода. Устройство 14 назначения включает в себя интерфейс 28 ввода, видео декодер 30, и устройство 32 отображения. В соответствии с этим раскрытием видео кодер 20 из исходного устройства 12 может быть сконфигурирован, чтобы применять способы для кодирования векторов движения и для выполнения би-предсказания в HEVC и его расширениях, таких как расширения для множественных видов или 3DV. В других примерах исходное устройство и устройство назначения могут включать в себя другие компоненты или компоновки. Например, исходное устройство 12 может принять данные видео из внешнего видео источника 18, такого как внешняя камера. Аналогично, устройство 14 назначения может взаимодействовать с внешним устройством отображения, вместо включения интегрированного устройства отображения.

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

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

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

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

[0051] Видео кодер 20 и видео декодер 30 могут работать соглас