Буферизация данных предсказания при кодировании видео

Иллюстрации

Показать все

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

Реферат

[0001] По настоящей заявке испрашивается приоритет в соответствии с предварительной заявкой на патент США № 61/509,933, поданной 20 июля 2011 года, и предварительной заявкой на патент США № 61/522,136, поданной 10 августа 2011 года, полное содержание каждой из которых включено сюда посредством ссылки.

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

[0002] Это раскрытие относится к кодированию видео и, точнее, к энтропийному кодированию видеоданных.

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

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

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

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

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

[0006] В общем, это раскрытие описывает методики для кодирования видеоданных. Например, методики по данному раскрытию включают в себя уменьшение количества данных, которые буферизуются при выполнении методик предсказания при кодировании видео. То есть пространственное предсказание (то есть внутреннее предсказание) или временное предсказание (то есть внешнее предсказание) может использоваться для снижения или устранения избыточности в видеопоследовательности. При кодировании видео на основе блоков видеоданные из одного блока могут использоваться как информация предсказания для одного или нескольких блоков видеоданных. Информация предсказания, связанная с одним или несколькими соседними блоками блока, кодируемого в настоящий момент, может храниться (то есть буферизоваться) так, что информация предсказания доступна для кодирования текущего блока. Методики этого раскрытия относятся к ограничению количества информации предсказания из соседних блоков, которая буферизуется во время кодирования. В соответствии с некоторыми аспектами этого раскрытия устройство для кодирования видео может избегать использования информации предсказания из блоков видеоданных, которые располагаются над блоком видеоданных, который кодируется в текущий момент (например, именуемые «верхние соседние блоки»), при кодировании текущего блока.

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

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

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

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

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

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

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

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

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

[0015] Фиг. 4А и фиг. 4В представляют собой концептуальные схемы, иллюстрирующие примерное квадрадерево и соответствующий самый большой элемент кодирования (LCU).

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

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

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

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

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

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

[0022] Фиг. 11 представляет собой концептуальную схему, иллюстрирующую пример ограничения информации предсказания одного или нескольких соседних блоков.

[0023] Фиг. 12 представляет собой другую концептуальную схему, иллюстрирующую пример ограничения информации предсказания одного или нескольких соседних блоков.

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

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

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

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

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

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

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

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

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

[0032] Новый стандарт HEVC может использовать не менее тридцати пяти или более режимов внутреннего предсказания. Чтобы сократить количество битов, необходимых для передачи режима внутреннего предсказания, выбранного видеокодером, видеокодер может идентифицировать режимы внутреннего предсказания для уже кодированных видеоблоков, таких как один или несколько пространственно соседних блоков. На основе режимов внутреннего предсказания эти соседних блоков видеокодер может идентифицировать наиболее вероятный режим внутреннего предсказания для текущего видеоблока. Наиболее вероятный режим внутреннего предсказания представляет собой режим внутреннего предсказания, который наиболее вероятно будет использоваться для кодирования текущего видеоблока на основе контекста для текущего блока. Контекст может, например, определяться некоторой комбинацией режимов внутреннего предсказания, используемых для соседних блоков, размером текущего блока и другими факторами. Факторы, используемые видеокодером, чтобы определить контекст для текущего видеоблока, также актуальны для видеодекодера. Так, наиболее вероятный режим внутреннего предсказания, определенный видеокодером, также может определен видеодекодером без необходимости явно передаваться к видеодекодеру. Наиболее вероятный режим внутреннего предсказания может быть, а может и не быть одним и таким же, что и режим внутреннего предсказания, фактически используемый, чтобы кодировать текущий блок. Действительный режим внутреннего предсказания может быть определен видеокодером на основе того, какой режим внутреннего предсказания формирует лучшее качество восстановленного видео.

[0033] Видеокодер может генерировать синтаксический элемент для включения в битовый поток, отражающий, является ли наиболее вероятный режим внутреннего предсказания таким же, как и действительный режим предсказания для текущего видеоблока. Синтаксический элемент может, например, быть одним битом, где «1» отражает, что действительный режим внутреннего предсказания является наиболее вероятным режимом внутреннего предсказания, а «0» отражает, что действительный режим внутреннего предсказания не является наиболее вероятным режимом внутреннего предсказания. Так, когда действительный режим внутреннего предсказания для текущего видеоблока является наиболее вероятным режимом внутреннего предсказания, действительный режим внутреннего предсказания для текущего видеоблока может быть передан от кодера к декодеру при использовании одного бита («1» в этом примере). В примерах, где действительный режим внутреннего предсказания не является наиболее вероятным режимом внутреннего предсказания, действительный режим внутреннего предсказания может быть передан с кодовым словом, следующим за первым битом (то есть первый бит «0», за которым следует кодовое слово).

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

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

[0036] Может применяться процесс, именуемый в новом стандарте HEVC адаптивным предсказанием вектора движения (AMVP) и в котором группа кандидатов векторов движения строится из нескольких соседних блоков в пространственном и временном направлениях. Группа кандидатов векторов движения включает в себя множество кандидатов MVP. В этом случае видеокодер выбирает наиболее точный предиктор из группы кандидатов на основе анализа скорости кодирования и искажения (например, используя так называемый анализ затрат скорости-искажения). Индекс предиктора вектора движения (mvp_idx) может передаваться к видеодекодеру, чтобы сообщить декодеру, где расположить MVP, то есть какой из кандидатов MVP должен использоваться для декодирования. MVD также передается. Декодер может комбинировать MVD с MVP (определенный индексом предиктора вектора движения), чтобы восстановить вектор движения.

[0037] Так называемый «режим слияния» также может быть доступен, в нем информация движения (например, векторы движения, индексы опорного предсказания, направления предсказания или другая информация) соседнего видеоблока наследуется от текущего видеоблока, подвергаемого кодированию. Значение индекса может использоваться, чтобы идентифицировать соседа, от которого текущий видеоблок наследует информацию движения (например, от верхнего, верхнего правого, левого или совмещенного с временно смежным кадром). Режим слияния использует информацию движения одного из нескольких блоков-кандидатов, но не полагается на MVD.

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

[0039] В любом случае информация предсказания может храниться в так называемом «линейном буфере» - так, что информация предсказания доступна для ссылки во время кодирования. Что касается внутреннего кодирования, то видеокодер может хранить информацию движения (например, векторы движения (mvx, mvy), индексы опорного изображения (ref_idx), направления предсказания (inter_dir) или другую информацию) для каждого из блоков. Линейный буфер может хранить информацию предсказания, связанную с линией блоков, расположенных над блоком или фрагментом, кодируемым в текущий момент, и обычно протягивается по всей ширине изображения.

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

[0041] Однако по мере того как разрешение видео и ширина кадров (например, количество пикселей справа налево по заданному видеокадру) увеличиваются, количество данных, которые хранятся в линейном буфере, тоже увеличивается. В некоторых примерах блоки видеоданных в пределах 4х4 пикселей могут использоваться, чтобы кодировать изображение. В качестве примера изображение 1920х1080 пикселей (например, для видео 1080р) может включать в себя до 495 блоков 4х4 пикселя. Соответственно, если информация предсказания хранится для каждого блока видеоданных, от видеокодера может потребоваться хранение относительно значительного количества данных для линейного буфера.

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

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

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

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

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

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

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

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

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

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

[0052] Проиллюстрированная система 10 с фиг. 1 - это только один пример. Методики для эффективного хранения данных предсказания могут реализовываться любым устройством кодирования и/или декодирования цифрового видео. Хотя в общем методики этого раскрытия выполняются устройством кодирования видео, они также могут реализовываться кодером/декодером видео, обычно именуемым «CODEC». Более того, методики этого раскрытия также могут реализовываться препроцессором видео. Устройство 12 источник и устройство 14 адресат - это только примеры таких устройств кодирования, из которых устройство 12 источник генерирует кодированные видеоданные для передачи к устройству 14 адресату. В некоторых примерах устройства 12, 14 могут функционировать по большей части симметрично, так, что каждое из устройств 12, 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 14, например, для передачи потокового видео, воспроизведения видеозаписи, телевизионного вещания и/или видеотелефонии.

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

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