Ограничение однонаправленным интер-предсказанием для блоков предсказания в в-слайсах

Иллюстрации

Показать все

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

Реферат

Данная заявка испрашивает приоритет по предварительной патентной заявке США №61/596,597, поданной 08 февраля 2012 года, и предварительной патентной заявке США №61/622968, поданной 11 апреля 2012 года, содержание каждой из которых целиком включено в данный документ по ссылке.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Данное изобретение относится к видеокодированию и, в частности, к интер-предсказанию при видеокодировании.

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

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

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

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

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

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

Согласно одному аспекту описывается способ кодирования видеоданных. Способ содержит определение того, ограничен ли блок PU в B-слайсе однонаправленным интер-предсказанием. Способ также содержит формирование списка кандидатов на слияние для данного блока PU. Вдобавок, способ содержит определение выбранного кандидата на слияние в списке кандидатов на слияние. Вдобавок, способ содержит формирование предсказанного видеоблока для данного блока PU на основе не более одного опорного блока, связанного с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU ограничен однонаправленным интер-предсказанием. Способ также содержит формирование предсказанного видеоблока для данного блока PU на основе одного или более опорных блоков, связанных с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU не ограничен однонаправленным интер-предсказанием.

Согласно другому аспекту описывается устройство видеокодирования, которое содержит один или более процессоров, сконфигурированных для определения того, ограничен ли блок PU в B-слайсе однонаправленным интер-предсказанием. Этот один или более процессоров также сконфигурированы для формирования списка кандидатов на слияние для данного блока PU и определения выбранного кандидата на слияние в списке кандидатов на слияние. Этот один или более процессоров сконфигурированы так, что они формируют предсказанный видеоблок для данного блока PU на основе не более одного опорного блока, связанного с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU ограничен однонаправленным интер-предсказанием. Кроме того этот один или более процессоров также сконфигурированы так, что они формируют предсказанный видеоблок для данного блока PU на основе одного или более опорных блоков, связанных с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU не ограничен однонаправленным интер-предсказанием.

Согласно еще одному аспекту описывается устройство видеокодирования, содержащее средство для определения того, ограничен ли блок PU в B-слайсе однонаправленным интер-предсказанием. Устройство видеокодирования также содержит средство для формирования списка кандидатов на слияние для данного блока PU. Вдобавок, Устройство видеокодирования содержит средство для определения выбранного кандидата на слияние в списке кандидатов на слияние. Устройство видеокодирования также содержит средство для формирования предсказанного видеоблока для данного блока PU на основе не более одного опорного блока, связанного с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU ограничен однонаправленным интер-предсказанием. Устройство видеокодирования также содержит средство для формирования предсказанного видеоблока для данного блока PU на основе одного или более опорных блоков, связанных с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU не ограничен однонаправленным интер-предсказанием.

Согласно следующему аспекту описывается компьютерный программный продукт, который содержит один или более компьютерно-читаемых запоминающих носителей, хранящих команды, которые при их исполнении конфигурируют один или более процессоров для определения того, ограничен ли блок PU в B-слайсе однонаправленным интер-предсказанием. Эти команды также конфигурируют один или более процессоров для формирования списка кандидатов на слияние для данного блока PU и определения выбранного кандидата на слияние в списке кандидатов на слияние. Эти команды конфигурируют один или более процессоров для формирования предсказанного видеоблока для данного блока PU на основе не более одного опорного блока, связанного с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU ограничен однонаправленным интер-предсказанием. Эти команды конфигурируют один или более процессоров для формирования предсказанного видеоблока для данного блока PU на основе одного или более опорных блоков, связанных с информацией о движении, заданной выбранным кандидатом на слияние, если данный блок PU не ограничен однонаправленным интер-предсказанием.

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

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

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

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

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

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

фиг. 5 - блок-схема, иллюстрирующая приведенную в качестве другого примера операцию компенсации движения;

фиг. 6 - блок-схема, иллюстрирующая приведенную в качестве примера операцию формирования списка кандидатов на слияние;

фиг. 7 - блок-схема, иллюстрирующая приведенный в качестве примера процесс формирования искусственных кандидатов на слияние;

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

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

Как описывается ниже, изображение можно разделить на один или более слайсов. Каждый слайс может включать в себя целое число блоков кодирования (CU). Каждый блок CU может иметь один или более блоков предсказания (PU). Слайсы могут представлять собой I-слайсы, P-слайсы или B-слайсы. В I-слайсе для всех блоков PU используется интра-предсказание. Видеокодер может выполнить интра-предсказание или однонаправленное интер-предсказание на блоках PU в P-слайсах. Когда видеокодер выполняет однонаправленное интер-предсказание на блоке PU в P-слайсе, он может идентифицировать или синтезировать опорный отсчет в опорном изображении, вошедшем в первый список опорных изображений («список 0»). Указанный опорный блок может представлять собой блок опорных отсчетов в опорном изображении. Опорные отсчеты могут соответствовать реальным пикселям в опорном блоке или пикселям, которые синтезируют, например, путем интерполяции с использованием реальных пикселей. Затем видеокодер может сформировать предсказанный видеоблок для блока PU на основе опорного блока для данного PU.

Видеокодер может выполнить однонаправленное интер-предсказание по списку 0, однонаправленное интер-предсказание по списку 1 или двунаправленное интер-предсказание на блоках PU в B-слайсах. Когда видеокодер выполняет однонаправленное интер-предсказание на PU по списку 0, он может идентифицировать опорный блок в опорном изображении, введенном в список 0, или синтезировать опорный блок на основе опорных отсчетов в опорном изображении, внесенном в список 0. Затем видеокодер может сформировать предсказанный видеоблок для данного PU на основе опорного блока. Когда видеокодер выполняет однонаправленное интер-предсказание на PU по списку 1, он может идентифицировать опорный блок в опорном изображении, введенном во второй список опорных изображений («список 1»), или может синтезировать опорный блок на основе опорных отсчетов в опорном изображении, внесенном в список 1. Затем видеокодер может сформировать предсказанный видеоблок для данного PU на основе опорного блока. Когда видеокодер выполняет двунаправленное интер-предсказание на PU, он может идентифицировать опорный блок в опорном изображении, введенном в список 0, или синтезировать опорный блок на основе опорных отсчетов в опорном изображении, внесенном в список 0. Вдобавок, когда видеокодер выполняет двунаправленное интер-предсказание на данном PU, он может идентифицировать опорный блок в опорном изображении, внесенном в список 1, или синтезировать опорный блок на основе опорных отсчетов в опорном изображении, внесенном в список 1. Затем видеокодер может сформировать предсказанный видеоблок для данного PU на основе этих двух опорных блоков.

Видеокодер может сообщить информацию о движении блока PU, чтобы дать возможность видеодекодеру идентифицировать или синтезировать опорный блок или опорные блоки, которые видеокодер использовал для формирования предсказанного видеоблока для данного PU. Информация о движении блока PU может включать в себя один или более векторов движения, индексы опорных изображений и флаги, указывающие на основе какого списка (списка 0 и/или списка 1) выполняется интер-предсказание. В некоторых случаях видеокодер может сообщить информацию о движении блока PU, используя режим слияния. Когда видеокодер передает информацию о движении данного PU, используя режим слияния, он может сформировать список кандидатов на слияние для данного блока PU. Список кандидатов на слияние может включать в себя множество кандидатов на слияние, каждый из которых задает набор, содержащий информацию о движении.

Кандидатом на слияние может быть однонаправленный кандидат на слияние, если кандидат на слияние задает информацию о движении, которая идентифицирует единственное местоположение в опорном изображении, внесенном в список 0 или в список 1. Опорный блок может быть связан с набором, содержащим информацию о движении, если отсчеты в опорном блоке определены на основе отсчетов в том месте, которое идентифицировано информацией о движении в опорном изображении, идентифицированном информацией о движении. Например, опорный блок может быть связан с набором информации о движении, если отсчеты в опорном блоке совпадают с отсчетами в видеоблоке в месте, идентифицированном информацией о движении в опорном изображении, идентифицированном информацией о движении. Опорный блок также может быть связан с набором информации о движении, если отсчеты в этом опорном блоке синтезированы (например, интерполированы) из отсчетов в видеоблоке в месте, идентифицированном информацией о движении в опорном кадре, идентифицированном информацией о движении.

Кандидатом на слияние может быть двунаправленный кандидат на слияние, если этот кандидат на слияние задает информацию о движении, которая идентифицирует место в опорном изображении, внесенном в список 0, и место в опорном изображении, внесенном в список 1. Видеокодер может сформировать информацию о движении, заданную кандидатами на слияние, на основе информации о движении тех блоков PU, которые соседствуют в пространстве с текущим блоком PU, и/или соответственно расположенного блока PU в другом изображении. После формирования списка слияния для текущего PU видеокодер может выбрать одного из кандидатов на слияние в списке кандидатов на слияние и просигнализировать о местоположении в списке кандидатов на слияние выбранного кандидата на слияние. Видеодекодер может определить информацию о движении текущего PU на основе информации о движении, заданной выбранным кандидатом на слияние.

С точки зрения требуемых операций и пропускной способности памяти формирование предсказанного видеоблока для блока PU на основе двух опорных блоков может оказаться более сложным, чем формирование предсказанного видеоблока для данного блока PU на основе одного опорного блока. Сложность, связанная с формированием предсказанных видеоблоков на основе двух опорных блоков, может увеличиться с ростом количества блоков PU с двунаправленным интер-предсказанием в B-слайсе. Это может быть особенно актуальным при возрастании количества небольших блоков PU с двунаправленным интер-предсказанием. Соответственно, может оказаться выгодным ограничить некоторые блоки PU в B-слайсах однонаправленным интер-предсказанием.

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

Согласно раскрытым здесь методикам видеокодер (например, видеокодер или видеодекодер) может определить, ограничен ли блок PU в B-слайсе однонаправленным интер-предсказанием. Например, видеокодер может определить, что блок PU ограничен однонаправленным интер-предсказанием, если размерная характеристика этого блока PU меньше конкретного порогового значения. Размерной характеристикой блока PU может быть характеристика размера видеоблока, связанного с данным PU, такая как высота, ширина, длина диагонали и т.д. видеоблока, связанного с данным PU. Вдобавок, видеокодер может сформировать список кандидатов на слияние для данного PU и определить выбранного кандидата на слияние в списке кандидатов на слияние. Если данный PU ограничен однонаправленным интер-предсказанием, видеокодер может сформировать предсказанный видеоблок для данного PU на основе не более одного опорного блока, связанного с информацией о движении, заданной выбранным кандидатом на слияние. Если данный блок PU не ограничен однонаправленным интер-предсказанием, то видеокодер может сформировать предсказанный видеоблок для данного PU на основе одного или более опорных блоков, связанных с информацией о движении, заданной выбранным кандидатом на слияние. Используя такое ограничение некоторых блоков PU однонаправленным интер-предсказанием, видеокодер может уменьшить сложность формирования предсказанных видеоблоков на основе множества опорных блоков. Это может привести к увеличению скорости, с которой видеокодер способен выполнять кодирование видеоданных, и может снизить требования к пропускной способности, необходимой для обработки данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

Хотя в примере на фиг. 1 это не показано, видеокодер 20 и видеодекодер 30 могут быть интегрированы каждый с аудиокодером и аудиодекодером и могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексор-демультиплексор) или другие аппаратные и программные средства для кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. В некоторых примерах блоки MUX-DEMUX, если они применяются, могут соответствовать Протоколу мультиплексора ITU H.223 или другим протоколам, таким как Протокол дэйтаграмм пользователя (UDP).

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

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

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

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

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

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

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