Выполнение предсказания вектора движения для видеокодирования

Иллюстрации

Показать все

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

Реферат

[0001] Эта заявка испрашивает приоритет предварительной заявки на патент США № 61/436,997, поданной 27 января 2011 года, предварительной заявки на патент США № 61/449,985, поданной 7 марта 2011 года и предварительной заявки на патент США № 61/561,601, поданной 18 ноября 2011 года, каждая из которых в своей полноте включена в данный документ посредством ссылки.

Область техники

[0002] Это раскрытие относится к видеокодированию и, более конкретно, к аспектам компенсации движения видеокодирования.

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

[0003] Возможности цифрового видео могут быть включены в широкий диапазон устройств, в том числе средства цифрового телевидения, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые устройства записи, цифровые медиа проигрыватели, игровые видеоустройства, консоли видеоигр, сотовые или спутниковые радиотелефоны, устройства видеоконференц-связи и подобное. Цифровые видеоустройства реализуют методики сжатия видео, например такие, которые описаны в стандартах, определенных посредством 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), разрабатываемый «Объединенной Командой по Видеокодированию» (Joint Collaborative Team - Video Coding, JCT-VC), который представляет собой совместную работу между MPEG и ITU-T. Развивающийся стандарт HEVC иногда называют как H.265, хотя такое обозначение формально не было сделано.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0021] Фиг. 1 представляет собой блок-схему, иллюстрирующую примерную систему 10 видео- кодирования и декодирования, которая может быть сконфигурирована для применения методик, описанных в этом раскрытии для задания предикторов вектора движения (MVP). Как показано в примере по Фиг. 1, система 10 включает в себя устройство 12 источник, которое генерирует кодированное видео для декодирования посредством устройства 14 адресата. Устройство 12 источник может передавать кодированное видео устройству 14 адресату через канал 16 связи или может сохранять кодированное видео на носителе 34 хранения или файловом сервере 36 так, что к кодированному видео может быть осуществлен доступ посредством устройства 14 адресата по желанию. Устройство 12 источник и устройство 14 адресат могут содержать любое из широкого выбора устройств, в том числе настольные компьютеры, переносные (т.е. портативные) компьютеры, планшетные компьютеры, телевизионные приставки, телефонные трубки (в том числе сотовые телефоны или трубки и так называемые интеллектуальные телефоны), телевизоры, камеры, устройства отображения, цифровые медиа проигрыватели, консоли видеоигр и т.п.

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

[0023] Как дополнительно показано в примере по Фиг. 1, устройство 12 источник включает в себя видеоисточник 18, видеокодер 20, модулятор/демодулятор 22 («модем 22») и передатчик 24. В устройстве 12 источника видеоисточник 18 может включать в себя источник, такой как устройство видеозахвата. Устройство видеозахвата, в качестве примера, может включать в себя одно или более из видеокамеры, видеоархива, содержащего ранее захваченное видео, интерфейса внешнего видеосигнала для приема видео от поставщика видеоконтента и/или систему компьютерной графики для генерирования данных компьютерной графики в качестве видео источника. В качестве одного примера, если видеоисточник 18 представляет собой видеокамеру, устройство 12 источник и устройство 14 адресат могут формировать так называемые телефоны-камеры или видеотелефоны. Методики, описанные в этом раскрытии, однако не ограничены беспроводными применениями или установками, а могут быть применены к устройствам, которые не являются беспроводными, включающим в себя возможности видео- кодирования и/или декодирования. Устройство 12 источник и устройство 14 адресат, следовательно, представляют собой лишь примеры устройств кодирования, которые могут поддерживать методики, описанные в данном документе.

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

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

[0026] Файловый сервер 36 может представлять собой любой тип сервера, способного хранить кодированное видео и передавать это кодированное видео устройству 14 адресату. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP сервер, подключаемые к сети устройства хранения (NAS), накопитель на локальном диске или любой другой тип устройства, способного хранить кодированные видеоданные и передавать их устройству адресату. Передача кодированных видеоданных от файлового сервера 36 может представлять собой потоковую передачу, передачу загрузки или их комбинацию. Устройство 14 адресат может осуществлять доступ к файловому серверу 36 в соответствии с любым стандартом соединения для данных, в том числе Интернет соединение. Это соединение может включать в себя беспроводной канал (например Wi-Fi соединение или беспроводное сотовое соединение для данных), проводное соединение (например DSL, кабельный модем и т.д.), комбинацию и проводного и беспроводного каналов или любой другой тип канала связи, подходящего для осуществления доступа к кодированным видеоданным, хранимым на файловом сервере.

[0027] Устройство 14 адресат, в примере по Фиг. 1, включает в себя приемник 26, модем 28, видеодекодер 30, устройство 32 отображения. Приемник 26 устройства 14 адресата принимает информацию по каналу 16 и модем 28 демодулирует информацию для выработки демодулированного битового потока для видеодекодера 20. Информация, передаваемая по каналу 16, может включать в себя разнообразие информации синтаксиса, сгенерированной видеокодером 20 для использования видеодекодером 30 при декодировании связанных кодированных видеоданных. Такой синтаксис также может быть включен в кодированные видеоданные, хранимые на носителе 34 хранения или файловом сервере 36. Каждое из видеокодера 20 и видеодекодера 30 может формировать часть соответствующего кодера-декодера (CODEC), который способен кодировать или декодировать видеоданные.

[0028] Устройство 32 отображения устройства 14 адресата представляет любой тип средства отображения, способного представлять видеоданные для потребления наблюдателем. Несмотря на то, что показано как объединенное с устройством 14 адресатом, устройство 32 отображения может быть объединено с устройством 14 адресатом или быть внешним относительно него. В некоторых примерах устройство 14 адресат может включать в себя интегрированное устройство отображения и также может быть сконфигурировано для сопряжения с внешним устройством отображения. В других примерах устройство 14 адресат может представлять собой устройство отображения. В общем, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из многообразия устройств отображения, например жидкокристаллическое устройство отображения (LCD), плазменное устройство отображения, устройство отображения на органических светодиодах (OLED), или другой тип устройства отображения.

[0029] В общем, это раскрытие может относиться к видеокодеру 20, «сигнализирующему» информацию синтаксиса другому устройству, такому как видеодекодер 30. Следует понимать, однако, что видеокодер 20 может сигнализировать информацию посредством связи элементов синтаксиса с различными кодируемыми участками видеоданных. Таким образом, видеокодер 20 может «сигнализировать» данные путем сохранения некоторых элементов синтаксиса в заголовки различных кодируемых участков видеоданных. В некоторых случаях такие элементы синтаксиса могут быть кодированы и сохранены (например сохранены на носитель 34 хранения или файловый сервер 36) перед их приемом и декодированием видеодекодером 30. Таким образом, термин «сигнализируют» в общем может относиться к передаче синтаксиса или других данных, используемых для декодирования сжатых видеоданных вне зависимости от того, происходит ли такая передача в реальном или близком к реальному времени или в течение промежутка времени, как это может происходить при сохранении элементов синтаксиса на носитель во время кодирования, которые затем могут быть извлечены устройством декодирования в любое время после их сохранения на этот носитель.

[0030] Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как разрабатываемый в настоящее время стандарт Высокоэффективного Видеокодирования (HEVC) и могут соответствовать Тестовой Модели HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать согласно другим частным или промышленным стандартам, таким как стандарт ITU-T H.264, в качестве альтернативы называемый MPEG-4, Часть 10, Усовершенствованное Видеокодирование (AVC) или расширениям таких стандартов. Методики этого раскрытия, однако, не ограничены каким-либо конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и ITU-T H.263.

[0031] HM ссылается на блок видеоданных как единицу кодирования (CU). В общем CU имеет назначение, аналогичное макроблоку, кодируемому согласно H.264, за исключением того, что CU не имеет отличия по размеру, связанного с макроблоками из H.264. Таким образом, CU может быть разбита на суб-CU (суб-единицы кодирования). В общем, ссылки в этом раскрытии на CU могут ссылаться на наибольшую единицу кодирования (LCU) графического изображения или на суб-CU из LCU. Например, данные синтаксиса в пределах битового потока могут определять LCU, которая является наибольшей единицей кодирования, исходя из числа пикселей. LCU может быть разбита на суб-CU, и каждая суб-CU может быть разбита на суб-CU. Данные синтаксиса для битового потока могут определять максимальное число раз возможного разбиения LCU, называемое максимальной глубиной CU. Соответственно, битовый поток также может определять наименьшую единицу кодирования (SCU).

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

[0033] CU, которая не разбита, может включать в себя одну или более единиц предсказания (PU). В общем PU представляет всю или участок соответствующей CU и включает в себя данные для извлечения опорной выборки для PU. Например, когда PU кодирована в intra-режиме, PU может включать в себя данные, описывающие режим intra-предсказания для PU. В качестве другого примера, когда PU кодирована в inter-режиме, PU может включать в себя данные, определяющие один или более векторов движения для PU. Вектор движения обычно идентифицирует совместно размещенную CU в одном или более опорных кадрах, где термин «опорный кадр» относится к кадру, который возникает во времени до или после кадра, в котором размещена PU. Данные для CU, определяющие PU (или несколько PU), также могут быть описаны, например, деление CU на одну или боле PU. Режимы деления могут отличаться в зависимости от того, является ли CU некодированной, кодируется в режиме intra-предсказания или кодируется в режиме inter-предсказания.

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

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

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

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

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

[0039] В общем, кодированные видеоданные могут включать в себя данные предсказания и остаточные данные. Видеокодер 20 может вырабатывать данные предсказания во время режима intra-предсказания или режима inter-предсказания. Intra-предсказание в общем влечет за собой предсказание пиксельных значений в блоке графического изображения относительно опорных выборок в соседствующих, ранее кодированных блоках того же самого графического изображения. Inter-предсказание в общем влечет за собой предсказание пиксельных значений в блоке графического изображения относительно данных ранее кодированного графического изображения.

[0040] Следом за intra- или inter- предсказанием, видеокодер 20 может вычислить остаточные пиксельные значения для блока. Остаточные значения обычно соответствуют разностям между предсказанными данными пиксельных значений для блока и истинными данными пиксельных значений блока. Например, остаточные значения могут включать в себя пиксельные разностные значения, указывающие разности между кодированными пикселями и пикселями предсказания. В некоторых примерах кодированные пиксели могут быть связаны с блоком пикселей, который должен быть кодирован, и пиксели предсказания могут быть связаны с одним или более блоками пикселей, используемыми для предсказания кодированного блока.

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

[0042] Видеокодер 20 затем может квантовать коэффициенты преобразования, чтобы дополнительно сжать видеоданные. Квантование обычно влечет за собой отображение значений в пределах относительно большого диапазона на значения в относительно малом диапазоне, тем самым уменьшая количество данных, необходимых для представления квантованных коэффициентов преобразования. Более конкретно, квантование может быть применено согласно параметру квантования (QP), который может быть определен на уровне LCU. Соответственно тот же самый уровень квантования может быть применен ко всем коэффициентам преобразования в TU, связанных с различными PU из CU в пределах LCU. Однако, вместо того чтобы сигнализировать сам QP, может быть осуществлена сигнализация изменения (т.е. дельты) в QP с LCU. Дельта QP определяет изменение в параметре квантования для LCU относительно некоторого опорного QP, такого как QP ранее переданной LCU.

[0043] Следом за квантованием, видеокодер 20 может сканировать коэффициенты преобразования, вырабатывая одномерный вектор из двумерной матрицы, включающей в себя квантованные коэффициенты преобразования. Видеокодер 20 затем может выполнять статистическое кодирование без потерь (которое обычно называют ошибочно употребляемым термином «энтропийное кодирование»), чтобы кодировать получающийся массив, чтобы еще дополнительно сжать данные. В общем, энтропийное кодирование содержит один или более процессов, которые совместно сжимают последовательность квантованных коэффициентов преобразования и/или другую информацию синтаксиса. Например, элементы синтаксиса, такие как дельта QP, векторы предсказания, режимы кодирования, фильтры, смещения или другая информация также могут быть включены в энтропийно кодированный битовый поток. Просканированные коэффициенты затем энтропийно кодируют вместе с любой информацией синтаксиса, например посредством контекстно-зависимого адаптивного кодирования с переменной длинной кодового слова (CAVLC), контекстно-зависимого адаптивного двоичного арифметического кодирования (CABAC) или любого другого процесса статистического кодирования без потерь.

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