Предсказание векторов движения при кодировании видео

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

 

[0001] Это раскрытие сущности испрашивает приоритет предварительной заявки на патент (США) № 61/477,561, поданной 20 апреля 2011 года, и предварительной заявки на патент (США) № 61/512,765, поданной 28 июля 2011 года, содержимое обеих из которых полностью содержится в данном документе по ссылке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0028] В некоторых случаях, также применяется кодирование с предсказанием векторов движения, чтобы дополнительно уменьшать объем данных, требуемых для того, чтобы передавать вектор движения. Когда вектор движения устанавливается, он исходит из целевого изображения к опорному изображению. Вектор движения может пространственно или временно предсказываться. Пространственно предсказанный вектор движения ассоциирован с доступными пространственными блоками (блоком для идентичного момента времени). Временно предсказанный вектор движения ассоциирован с доступными временными блоками (блоком для другого момента времени). В случае предсказания векторов движения, вместо кодирования и передачи самого вектора движения, кодер кодирует и передает разность векторов движения (MVD) относительно известного (или узнаваемого) вектора движения. В H.264/AVC известный вектор движения, который может быть использован с MVD, чтобы задавать текущий вектор движения, может быть задан посредством так называемого предиктора вектора движения (MVP). Для того чтобы быть допустимым MVP, вектор движения должен указывать на изображение, идентичное изображению вектора движения, в данный момент кодируемого посредством MVP и MVD.

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

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

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

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

[0033] В MVC конкретное изображение конкретного вида называется "компонентой вида". Иными словами, компонента вида для вида соответствует конкретному временному моменту вида. Типично, идентичные или соответствующие объекты двух видов не являются совместно размещенными. Термин "вектор диспаратности" может быть использован как означающий вектор, который указывает смещение объекта в изображении вида относительно соответствующего объекта в другом виде. Такой вектор также может называться "вектором смещения". Вектор диспаратности также может быть применимым к пикселю или блоку видеоданных изображения. Например, пиксель в изображении первого вида может быть смещен относительно соответствующего пикселя в изображении второго вида посредством конкретной диспаратности, связанной с отличающимися местоположениями камеры, из которых захватываются первый вид и второй вид. В некоторых примерах, диспаратность может быть использована для того, чтобы предсказывать вектор движения от одного вида до другого вида.

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

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

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

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

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

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

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

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

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

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

[0044] Устройство-адресат 14 может принимать кодированные видеоданные, которые должны быть декодированы, через считываемый компьютером носитель 16. Считываемый компьютером носитель 16 может содержать любой тип носителя или устройства, допускающего перемещение кодированных видеоданных из устройства-источника 12 в устройство-адресат 14. В одном примере считываемый компьютером носитель 16 может содержать среду связи, чтобы давать возможность устройству-источнику 12 передавать кодированные видеоданные непосредственно в устройство-адресат 14 в реальном времени.

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

[0046] В некоторых примерах кодированные данные могут выводиться из интерфейса 22 вывода в устройство хранения данных. Аналогично, к кодированным данным может осуществляться доступ из устройства хранения данных посредством интерфейса ввода. Устройство хранения данных может включать в себя любые из множества носителей хранения данных с распределенным или локальным доступом, такие как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство или любые другие подходящие цифровые носители хранения данных для сохранения кодированных видеоданных. В дополнительном примере устройство хранения данных может соответствовать файловому серверу или другому промежуточному устройству хранения данных, которое может сохранять кодированное видео, сгенерированное посредством устройства-источника 12.

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

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

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

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

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

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

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

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

[0055] Стандарт ITU H.264/MPEG-4 (AVC) сформулирован посредством экспертной группы в области кодирования видео (VCEG) ITU-T совместно с экспертной группой по киноизображению (MPEG) ISO/IEC как продукт совместного партнерского проекта, известного как объединенная группа по видеостандартам (JVT). В некоторых аспектах, способы, описанные в этом раскрытии сущности, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Recommendation H.264 "Advanced Video Coding for Generic Audiovisual Services" от Исследовательской группы ITU-T и датирован мартом 2005 года, который может упоминаться в данном документе как стандарт H.264 или спецификация H.264 либо стандарт или спецификация H.264/AVC. Объединенная группа по видеостандартам (JVT) продолжает работать над дополнениями к H.264/MPEG-4 AVC.

[0056] JCT-VC проводит работы по разработке HEVC-стандарта. Работа по стандартизации HEVC основана на усовершенствованной модели устройства кодирования видео, называемой "тестовой моделью HEVC (HM)". HM предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, тогда как H.264 предоставляет девять режимов кодирования с внутренним предсказанием, HM может предоставлять целых тридцать три режима кодирования с внутренним предсказанием.

[0057] В общем, рабочая модель HM описывает, что видеоизображение (или "кадр") может быть разделено на последовательность блоков дерева или наибольших единиц кодирования (LCU), которые включают в себя выборки как сигнала яркости, так и сигнала цветности. Синтаксические данные в потоке битов могут задавать размер для LCU, которая является наибольшей единицей кодирования с точки зрения числа пикселей. Срез включает в себя некоторое число последовательных блоков дерева в порядке кодирования. Изображение может быть разделено на один или более срезов. Каждый блок дерева может разбиваться на единицы кодирования (CU) согласно дереву квадрантов. В общем, структура данных в виде дерева квадрантов включает в себя один узел для каждого CU, при этом корневой узел соответствует блоку дерева. Если CU разбивается на четыре суб-CU, узел, соответствующий CU, включает в себя четыре концевых узла, каждый из которых соответствует одной из суб-CU.

[0058] Каждый узел структуры данных в виде дерева квадрантов может предоставлять синтаксические данные для соответствующей CU. Например, узел в дереве квадрантов может включать в себя флаг разбиения, указывающий то, разбивается или нет CU, соответствующая узлу, на суб-CU. Элементы синтаксиса для CU могут быть заданы рекурсивно и могут зависеть от того, разбивается или нет CU на суб-CU. Если CU не разбивается дополнительно, она называется "концевой CU". В этом раскрытии сущности, четыре суб-CU концевой CU также называются "концевыми CU", даже если отсутствует явное разбиение исходной концевой CU. Например, если CU размера 16x16 не разбивается дополнительно, четыре суб-CU 8x8 также называются "концевыми CU", хотя CU 16x16 вообще не разбивается.

[0059] CU имеет назначение, аналогичное назначению макроблока стандарта H.264, за исключением того, что CU не имеет различения размера. Например, блок дерева может разбиваться на четыре дочерних узла (также называемые "суб-CU"), и каждый дочерний узел, в свою очередь, может быть родительским узлом и разбиваться еще на четыре дочерних узла. Конечный неразбиваемый дочерний узел, называемый "концевым узлом дерева квадрантов", содержит узел кодирования, также называемый "концевой CU". Синтаксические данные, ассоциированные с кодированным потоком битов, могут задавать максимальное число раз, которое может разбиваться блок дерева, называемое "максимальной CU-глубиной", и также может задавать минимальный размер узлов кодирования. Соответственно, поток битов также может задавать наименьшую единицу кодирования (SCU). Это раскрытие сущности использует термин "блок", чтобы ссылаться на любое из CU, PU или TU в контексте HEVC, или аналогичные структуры данных в контексте других стандартов (например, макроблоки и их субблоки в H.264/AVC).

[0060] CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен иметь квадратную форму. Размер CU может колебаться от 8x8 пикселей вплоть до размера блока дерева максимум в 64x64 пикселей или более. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, разделение CU на одну или более PU. Режимы разделения могут отличаться между тем, является CU кодированной в режиме пропуска или прямом режиме, кодированной в режиме внутреннего предсказания или кодированной в режиме внешнего предсказания. PU могут быть разделены таким образом, что они имеют неквадратную форму. Синтаксические данные, ассоциированные с CU, также могут описывать, например, разделение CU на одну или более TU согласно дереву квадрантов. TU может иметь квадратную или неквадратную (например, прямоугольную) форму.

[0061] HEVC-стандарт обеспечивает возможность преобразований согласно TU, которые могут отличаться для различных CU. Размеры NU типично задаются на основе размера PU в данной CU, заданного для разделенной LCU, хотя это может не всегда иметь место. TU типично имеет идентичный размер или меньше, чем PU. В некоторых примерах остаточные выборки, соответствующие CU, могут подразделяться на меньшие единицы с использованием структуры в виде дерева квадрантов, известной как "остаточное дерево квадрантов" (RQT). Концевые узлы RQT могут называться "единицами преобразования (TU)". Значения пиксельных разностей, ассоциированные с TU, могут быть преобразованы, чтобы генерировать коэффициенты преобразования, которые могут быть квантованы.

[0062] Концевая CU может включать в себя одну или более единиц предсказания (PU). В общем, PU представляет пространственную область, соответствующую всем или части соответствующей CU, и может включать в себя данные для извлечения опорной выборки для PU. Кроме того, PU включает в себя данные, связанные с предсказанием. Например, когда PU кодируется во внутреннем режиме, данные для PU могут быть включены в остаточное дерево квадрантов (RQT), которое может включать в себя данные, описывающие режим внутреннего предсказания для TU, соответствующей PU. В качестве другого примера, когда PU кодируется во внешнем режиме, PU может включать в себя данные, задающие один или более векторов движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение для вектора движения (например, точность в одну четверть пикселя или точность в одну восьмую пикселя), опорный кадр, на который указывает вектор движения, и/или опорный список (например, список 0, список 1 или список c) для вектора движения.

[0063] Концевая CU, имеющая одну или более PU, также может включать в себя одну или более единиц преобразования (TU). Единицы преобразования могут указываться с использованием RQT (также называемой "структурой в виде дерева квадрантов TU"), как пояснено выше. Например, флаг разбиения может указывать то, разбивается или нет концевая CU на четыре единицы преобразования. Затем, каждая единица преобразования дополнительно может разбиваться на дополнительные под-TU. Когда TU не разбивается дополнительно, она может называться "концевой TU". В общем, для внутреннего кодирования, все концевые TU, принадлежащие концевой CU, совместно используют идентичный режим внутреннего предсказания. Иными словами, идентичный режим внутреннего предсказания, в общем, применяется для того, чтобы вычислять предсказанные значения для всех TU концевой CU. Для внутреннего кодирования видеокодер 20 может вычислять остаточное значение для каждой концевой TU с использованием режима внутреннего предсказания, в качестве разности между частью CU, соответствующей TU, и исходным блоком. TU не обязательно ограничивается размером PU. Таким образом, TU могут быть больше или меньше PU. Для внутреннего кодирования PU может совместно размещаться с соответствующей концевой TU для идентичной CU. В некоторых примерах максимальный размер концевой TU может соответствовать размеру соответствующей концевой CU.

[0064] Кроме того, TU концевых CU также могут быть ассоциированы с соответствующими структурами данных в виде дерева квадрантов, называемыми "остаточными деревьями квадрантов (RQT)". Иными словами, концевая CU может включать в себя дерево квадрантов, указывающее то, как концевая CU разделяется на TU. Корневой узел дерева квадрантов TU, в общем, соответствует концевой CU, в то время как корневой узел дерева квадрантов CU, в общем, соответствует блоку дерева (или LCU). TU RQT, которые не разбиваются, называются "концевыми TU". В общем, это раскрытие сущности использует термины CU и TU, чтобы ссылаться на концевую CU и концевую TU, соответственно, если не указано иное.

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

[0066] В качестве примера, HM поддерживает предсказание для различных PU-размеров. При условии, что размер конкретной CU составляет 2Nx2N, HM поддерживает внутреннее предсказание для PU-размеров 2Nx2N или NxN и внешнее предсказание для симметричных PU-размеров 2Nx2N, 2NxN, Nx2N или NxN. HM также поддерживает асимметричное разделение для внешнего предсказания для PU-размеров 2NxnU, 2NxnD, nLx2N и nRx2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25%-ому разделу, указывается посредством "n", после чего идет индикатор относительно "вверх (Up)", "вниз (Down)", "влево (Left)" или "вправо (Right)". Таким образом, например, "2NxnU" означает CU 2Nx2N, которая разделяется горизонтально с PU 2Nx0,5N вверху и PU 2Nx1,5N внизу.

[0067] В этом раскрытии сущности, "NxN" и "N на N" могут быть использованы взаимозаменяемо для того, чтобы ссылаться на размеры пикселя видеоблока с точки зрения размеров по вертикали и горизонтали, например, 16x16 пикселей или 16 на 16 пикселей. В общем, блок 16x16 должен иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок NxN, в общем, имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Пиксели в блоке могут размещаться в строках и столбцах. Кроме того, блок не обязательно должен иметь совпадающее число пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать NxM пикселей, причем M не обязательно равно N.

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

[0069] После каких-либо преобразований, чтобы генерировать коэффициенты преобразования, видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование, в общем, означает процесс, в котором коэффициенты преобразования квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты, обеспечивая дополнительное сжатие. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битовое значение может быть округлено в меньшую сторону до m-битового значения в ходе квантования, при этом n больше m.

[0070] После квантования видеокодер может сканировать коэффициенты преобразования, формирующие одномерный вектор, из двумерной матрицы, включающей в себя квантованные коэффициенты преобразования. Сканирование может быть спроектировано с возможностью размещать коэффициенты с более высокой энергией (и, следовательно, более низкой частотой) в начале массива и размещать коэффициенты с более низкой энергией (и, следовательно, более высокой частотой) в конце массива. В некоторых примерах видеокодер 20 может использовать предварительно заданный порядок сканирования для того, чтобы сканировать квантованные коэффициенты преобразования, так чтобы генерировать преобразованный в последовательную форму вектор, который может энтропийно кодироваться. В других примерах видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования, чтобы генерировать одномерный вектор, видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию переменной длины (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), синтаксическому контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию на основе разделения на интервалы вероятности (PIPE) или другой способы энтропийного кодирования. Видеокодер 20 также может энтропийно кодировать элементы синтаксиса, ассоциированные с кодированными видеоданными, для использования посредством видеодекодера 30 при декодировании видеоданных.

[0071] Чтобы выполнять CABAC, видеокодер 20 может назначать контекст в контекстной модели символу, который должен быть передан. Контекст может быть связан, например, с тем, являются соседние значения символа ненулевыми или нет. Чтобы выполнять CAVLC, видеокодер 20 может выбирать код переменной длины для символа, который должен быть передан. Кодовые слова в VLC могут иметь такую структуру, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC позволяет добиваться экономии битов, например, по сравнению с использованием кодовых слов равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначаемом символу.

[0072] Видеокодер 20 дополнительно может отправлять синтаксические данные, к примеру, синтаксические данные на основе блоков, синтаксические данные на основе изображений и синтаксические GOP-данные, в видеодекодер 30, например, в заголовке изображения, в заголовке блока, в заголовке среза или в GOP-заголовке. Синтаксические GOP-данные могут описывать число изображений в соответствующей GOP, и синтаксические данные изображений могут указывать режим кодирования/предсказания, используемый для того, чтобы кодировать соответствующее изображение.

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

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

[0075] Как показано на фиг. 2, видеокодер 20 принимает видеоданные, которые должны быть кодированы. В примере по фиг. 2, видеокодер 20 включает в себя модуль 40 выбора режима, сумматор 50, модуль 52 преобразования, модуль 54 квантования, модуль 56 энтропийного кодирования и запоминающее устройство 64 опорных изображений. Модуль 40 выбора режима, в свою очередь, включает в себя модуль 42 оценки движения, модуль 44 компенсации движения, модуль 46 внутреннего предсказания и модуль 48 разделения. Для восстановления видеоблоков видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для того, чтобы фильтровать границы блоков, чтобы удалять артефакты блочности из восстановленного видео. Если требуется, фильтр удаления блочности типично должен фильтровать вывод сумматора 62. Дополнительные контурные фильтры (в контуре или пост-контуре) также могут быть использованы в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но если требуется, могут фильтровать вывод сумматора 50 (в качестве внутриконтурного фильтра).

[0076] В ходе процесса кодирования видеокодер 20 принимает изображение или срез, которые должны быть кодированы. Изображение или срез могут быть разделены на несколько видеоблоков. Модуль 42 оценки движения и модуль 44 компенсации движения выполняют кодирование с внешним предсказанием принимаемого видеоблока относительно одного или более блоков в одном или более опорных изображений, чтобы предоставлять временное сжатие. Модуль 46 внутреннего предсказания альтернативно может выполнять внутреннее кодирование с предсказанием принимаемого видеоблока относительно одного или более соседних блоков в идентичном изображении или срезе, что и блок, который должен быть кодирован, чтобы предоставлять пространственное сжатие. Видеокодер 20 может выполнять несколько проходов кодирования, например, для того чтобы выбирать надлежащий режим кодирования для каждого блока видеоданных.

[0077] Кроме того, модуль 48 разделения может разделять блоки видеоданных на субблоки на основе оценки предыдущих схем разделения в предыдущих проходах кодирования. Например, модуль 48 разделения может первоначально разделять изображение или срез на LCU и разделять каждую из LCU на суб-CU на основе анализа искажения в зависимости от скорости передачи (например, оптимизации искажения в зависимости от скорости передачи). Модуль 40 выбора режима дополнительно может генерировать структуру данных в виде дерева квадрантов, указывающую разделение LCU на суб-CU. CU вершины дерева квадрантов могут включать в себя одну или более PU и одну или более TU.

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

[0079] Модуль 42 оценки движения, модуль 43 предсказания векторов движения и модуль 44 компенсации движения могут иметь высокую степень интеграции, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством модуля 42 оценки движения, является процессом генерирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем изображении относительно предсказывающего блока в опорном изображении (или другой кодированной единицы) относительно текущего блока, кодируемого в текущем изображении (или другой кодированной единицы).

[0080] Предсказывающий блок является блоком, для которого обнаруживается, что он практически совпадает с блоком, который должен быть кодирован, с точки зрения пиксельной разности, которая может быть определена посредством суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных показателей. В некоторых примерах видеокодер 20 может вычислять значения для субцелочисленнопикселных позиций опорных изображений, сохраненных в запоминающем устройстве 64 опорных изображений, которое также может называться "буфером опорных изображений". Например, видеокодер 20 может интерполировать значения позиций в одну четверть пикселя, позиций в одну восьмую пикселя или других дробнопикселных позиций опорного изображения. Следовательно, модуль 42 оценки движения может выполнять поиск движения относительно полнопикселных позиций и дробнопикселных позиций и выводить вектор движения с дробно-пиксельной точностью.

[0081] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока во внешне-кодированном срезе посредством сравнения позиции PU с позицией предсказывающего блока опорного изображения. Соответственно, в общем, данные для вектора движения могут включать в себя список опорных изображений, индекс в списке опорных изображений (ref_idx), горизонтальную компоненту и вертикальную компоненту. Опорное изображение может быть выбрано из первого списка опорных изображений (списка 0), второго списка опорных изображений (списка 1) или комбинированного списка опорных изображений (списка c), каждый из которых идентифицирует одно или более опорных изображений, сохраненных в запоминающем устройстве 64 опорных изображений.

[0082] Модуль 42 оценки движения может генерировать и отправлять вектор движения, который идентифицирует предсказывающий блок опорного изображения, в модуль 56 энтропийного кодирования и модуль 44 компенсации движения. Иными словами, модуль 42 оценки движения может генерировать и отправлять данные вектора движения, которые идентифицируют список опорных изображений, содержащий предсказывающий блок, индекс в списке опорных изображений, идентифицирующий изображение предсказывающего блока, и горизонтальную и вертикальную компоненту, чтобы находить предсказывающий блок в идентифицированном изображении.

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

[0084] В некоторых примерах, как подробнее описано относительно фиг. 5 ниже, модуль 43 предсказания векторов движения может компоновать список кандидатов предикторов вектора движения, который включает в себя несколько соседних блоков в пространственном и/или временном направлениях в качестве кандидатов для MVP. Согласно аспектам этого раскрытия сущности, как подробнее описано ниже, кандидаты предикторов вектора движения также могут быть идентифицированы в изображениях различных видов (например, при многовидовом кодировании). Когда несколько кандидатов предикторов вектора движения доступны (из нескольких кандидатов блоков), модуль 43 предсказания векторов движения может определять предиктор вектора движения для текущего блока согласно предварительно определенным критериям выбора. Например, модуль 43 предсказания векторов движения может выбирать самый точный предиктор из набора кандидатов на основе анализа скорости кодирования и искажения (например, с использованием анализа функции затрат на искажение в зависимости от скорости передачи или другого анализа эффективности кодирования). В других примерах модуль 43 предсказания векторов движения может генерировать среднее кандидатов предикторов вектора движения. Другие способы выбора предиктора вектора движения также являются возможными.

[0085] После выбора предиктора вектора движения модуль 43 предсказания векторов движения может определять индекс предиктора вектора движения (mvp_flag), который может быть использован для того, чтобы сообщать в видеодекодер (например, такой как видеодекодер 30), где находить MVP в списке опорных изображений, содержащем кандидаты MVP-блоков. Модуль 43 предсказания векторов движения также может определять MVD между текущим блоком и выбранным MVP. MVP-индекс и MVD могут быть использованы для того, чтобы восстанавливать вектор движения.

[0086] В некоторых примерах модуль 43 предсказания векторов движения вместо этого может реализовывать так называемый "режим слияния", в котором модуль 43 предсказания векторов движения может "осуществлять слияние" информации движения (такой как векторы движения, индексы опорных изображений, направления предсказания или другая информация) предсказывающего видеоблока с текущим видеоблоком. Соответственно, относительно режима слияния, текущий видеоблок наследует информацию движения из другого известного (или узнаваемого) видеоблока. Модуль 43 предсказания векторов движения может компоновать список кандидатов режима слияния, который включает в себя несколько соседних блоков в пространственном и/или временном направлениях в качестве кандидатов для режима слияния. Модуль 43 предсказания векторов движения может определять значение индекса (например, merge_idx), которое может быть использовано для того, чтобы сообщать в видеодекодер (например, такой как видеодекодер 30), где находить видеоблок для слияния в списке опорных изображений, содержащем кандидаты блоков слияния.

[0087] Согласно аспектам этого раскрытия сущности, модуль 43 предсказания векторов движения может идентифицировать предиктор вектора движения, например, для генерирования MVD или слияния, при многовидовом кодировании. Например, модуль 43 предсказания векторов движения может идентифицировать вектор диспаратности движения из блока в отличном компоненте вида относительно текущего блока, чтобы предсказывать вектор движения для текущего блока. В других примерах модуль 43 предсказания векторов движения может идентифицировать временной вектор движения из блока в отличном компоненте вида относительно текущего блока, чтобы предсказывать вектор движения для текущего блока.

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

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

[0090] Согласно аспектам этого раскрытия сущности, модуль 43 предсказания векторов движения может генерировать MVP-индекс (mvp_flag) и MVD или может генерировать индекс слияния (merge_idx). Например, модуль 43 предсказания векторов движения может генерировать список кандидатов MVP или слияния. Согласно аспектам этого раскрытия сущности, кандидаты MVP и/или слияния включают в себя один или более видеоблоков, расположенных в отличном виде относительно видеоблока, в данный момент декодируемого.

[0091] Компенсация движения, выполняемая посредством модуля 44 компенсации движения, может заключать в себе выборку или генерирование предсказывающего блока на основе вектора движения, определенного посредством модуля 42 оценки движения, и/или информации из модуля 43 предсказания векторов движения. С другой стороны, модуль 42 оценки движения, модуль 43 предсказания векторов движения и модуль 44 компенсации движения могут быть функционально интегрированы в некоторых примерах. При приеме вектора движения для PU текущего видеоблока модуль 44 компенсации движения может находить предсказывающий блок, на который указывает вектор движения в одном из списков опорных изображений.

[0092] Сумматор 50 формирует остаточный видеоблок посредством вычитания пиксельных значений предсказывающего блока из пиксельных значений текущего кодируемого видеоблока, формируя значения пиксельных разностей, как пояснено ниже. В общем, модуль 42 оценки движения выполняет оценку движения относительно компонент сигнала яркости, и модуль 44 компенсации движения использует векторы движения, вычисленные на основе компонент сигнала яркости, как для компонент сигнала цветности, так и для компонент сигнала яркости. Модуль 40 выбора режима также может генерировать элементы синтаксиса, ассоциированные с видеоблоками и срезом, для использования посредством видеодекодера 30 при декодировании видеоблоков среза.

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

[0094] Например, модуль 46 внутреннего предсказания может вычислять значения искажения в зависимости от скорости передачи с использованием анализа искажения в зависимости от скорости передачи для различных тестированных режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий наилучшие характеристики искажения в зависимости от скорости передачи, из тестированных режимов. Анализ искажения в зависимости от скорости передачи, в общем, определяет величину искажения (или ошибки) между кодированным блоком и исходным некодированным блоком, который кодирован для того, чтобы генерировать кодированный блок, а также скорость передачи битов (т.е. число битов), используемую для того, чтобы генерировать кодированный блок. Модуль 46 внутреннего предсказания может вычислять отношения из искажений и скоростей для различных кодированных блоков, чтобы определять то, какой режим внутреннего предсказания демонстрирует наилучшее значение искажения в зависимости от скорости передачи для блока.

[0095] После выбора режима внутреннего предсказания для блока модуль 46 внутреннего предсказания может предоставлять информацию, указывающую выбранный режим внутреннего предсказания для блока, в модуль 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включать в передаваемый поток битов конфигурационные данные, которые могут включать в себя множество индексных таблиц режима внутреннего предсказания и множество модифицированных индексных таблиц режима внутреннего предсказания (также называемых "таблицами преобразования кодовых слов"), определения контекстов кодирования для различных блоков и индикаторы относительно наиболее вероятного режима внутреннего предсказания, индексной таблицы режима внутреннего предсказания и модифицированной индексной таблицы режима внутреннего предсказания, которые следует использовать для каждого из контекстов.

[0096] Видеокодер 20 формирует остаточный видеоблок посредством вычитания данных предсказания из модуля 40 выбора режима из кодируемого исходного видеоблока. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. Процессор 52 преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование, к остаточному блоку, формируя видеоблок, содержащий значения остаточных коэффициентов преобразования. Процессор 52 преобразования может выполнять другие преобразования, которые концептуально являются аналогичными DCT. Вейвлет-преобразования, целочисленные преобразования, субполосные преобразования или другие типы преобразований также могут использоваться. В любом случае, процессор 52 преобразования применяет преобразование к остаточному блоку, формируя блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из пиксельной области в область преобразования, такую как частотная область.

[0097] Процессор 52 преобразования может отправлять результирующие коэффициенты преобразования в модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулирования параметра квантования. В некоторых примерах модуль 54 квантования затем может выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Альтернативно, модуль 56 энтропийного кодирования может выполнять сканирование.

[0098] После квантования модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе разделения на интервалы вероятности (PIPE) или другую технологию энтропийного кодирования. В случае контекстного энтропийного кодирования контекст может быть основан на соседних блоках. После энтропийного кодирования посредством модуля 56 энтропийного кодирования, кодированный поток битов может быть передан в другое устройство (к примеру, видеодекодер 30) или заархивировано для последующей передачи или извлечения.

[0099] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстанавливать остаточный блок в пиксельной области, к примеру, для последующего использования в качестве опорного блока. Модуль 44 компенсации движения может вычислять опорный блок посредством суммирования остаточного блока с предсказывающим блоком одного из изображений запоминающего устройства 64 опорных изображений. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку, чтобы вычислять субцелочисленные пиксельные значения для использования при оценке движения. Сумматор 62 суммирует восстановленный остаточный блок с предсказывающим блоком с компенсацией движения, сформированным посредством модуля 44 компенсации движения, чтобы сформировать восстановленный видеоблок для хранения в запоминающем устройстве 64 опорных изображений. Восстановленный видеоблок может использоваться посредством модуля 42 оценки движения и модуля 44 компенсации движения в качестве опорного блока для того, чтобы внешне кодировать блок в последующем изображении.

[0100] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который может реализовывать способы, описанные в этом раскрытии сущности для предсказания векторов движения при многовидовом кодировании. В примере по фиг. 3, видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, модуль 81 предсказания, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90 и запоминающее устройство 92 опорных изображений. Модуль 81 предсказания включает в себя модуль 82 компенсации движения и модуль 84 внутреннего предсказания.

[0101] В ходе процесса декодирования видеодекодер 30 принимает кодированный поток видеобитов, который представляет видеоблоки кодированного среза, и ассоциированные элементы синтаксиса из видеокодера 20. Модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует поток битов, чтобы генерировать квантованные коэффициенты, векторы движения и другие элементы синтаксиса. Модуль 80 энтропийного декодирования перенаправляет векторы движения и другие элементы синтаксиса в модуль 81 предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне среза и/или на уровне видеоблока.

[0102] Например, в качестве исходной информации, видеодекодер 30 может принимать сжатые видеоданные, которые сжаты для передачи через сеть в так называемые "единицы уровня абстрагирования от сети" или NAL-единицы. Каждая NAL-единица может включать в себя заголовок, который идентифицирует тип данных, сохраненных к NAL-единице. Существует два типа данных, которые обычно сохраняются в NAL-единицах. Первый тип данных, сохраненных к NAL-единице, представляет собой данные уровня кодирования видео (VCL), которые включают в себя сжатые видеоданные. Второй тип данных, сохраненных в NAL-единице, называется "не-VCL-данными", которые включают в себя дополнительную информацию, такую как наборы параметров, которые задают данные заголовка, общие для большого числа NAL-единиц, и дополнительную улучшающую информацию (SEI).

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

[0104] Когда срез видео кодируется в качестве внутренне-кодированного (I-) среза, модуль 84 внутреннего предсказания модуля 81 предсказания может генерировать данные предсказания для видеоблока текущего среза на основе передаваемого в служебных сигналах режима внутреннего предсказания и данных из ранее декодированных блоков текущего изображения. Когда изображение кодируется в качестве внешне-кодированного среза (т.е. B-, P- или GPB-) макроблоков, модуль 82 компенсации движения модуля 81 предсказания формирует прогнозные блоки для видеоблока текущего среза на основе векторов движения и других элементов синтаксиса, принимаемых из модуля 80 энтропийного декодирования. Прогнозные блоки могут генерироваться из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных изображений, список 0 и список 1, с использованием технологий составления по умолчанию на основе опорных изображений, сохраненных в запоминающем устройстве 92 опорных изображений.

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

[0106] Согласно аспектам этого раскрытия сущности, модуль 83 предсказания векторов движения может принимать данные предсказания, указывающие то, где извлекать информацию движения для текущего блока. Например, модуль 83 предсказания векторов движения может принимать информацию предсказания векторов движения, такую как MVP-индекс (mvp_flag), MVD, флаг слияния (merge_flag) и/или индекс слияния (merge_idx), и использовать эту информацию для того, чтобы идентифицировать информацию движения, используемую для того, чтобы предсказывать текущий блок. Иными словами, как отмечено выше относительно видеокодера 20, согласно аспектам этого раскрытия сущности, модуль 83 предсказания векторов движения может принимать MVP-индекс (mvp_flag) и MVD и использовать эту информацию для того, чтобы определять вектор движения, используемый для того, чтобы предсказывать текущий блок. Модуль 83 предсказания векторов движения может генерировать список кандидатов MVP или слияния. Согласно аспектам этого раскрытия сущности, кандидаты MVP и/или слияния могут включать в себя один или более видеоблоков, расположенных в отличном виде относительно видеоблока, в данный момент декодируемого.

[0107] Модуль 83 предсказания векторов движения может использовать MVP или индекс слияния, чтобы идентифицировать информацию движения, используемую для того, чтобы предсказывать вектор движения текущего блока. Иными словами, например, модуль 83 предсказания векторов движения может идентифицировать MVP из списка опорного изображения с использованием MVP-индекса (mvp_flag). Модуль 83 предсказания векторов движения может комбинировать идентифицированный MVP с принимаемым MVD, чтобы определять вектор движения для текущего блока. В других примерах модуль 83 предсказания векторов движения может идентифицировать кандидата слияния из списка опорных изображений с использованием индекса слияния (merge_idx), чтобы определять информацию движения для текущего блока. В любом случае, после определения информации движения для текущего блока, модуль 83 предсказания векторов движения может генерировать предсказывающий блок для текущего блока.

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

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

[0110] Например, относительно MVP или относительно режима слияния, известны (ранее определены) целевое изображение и опорное изображение для вектора A диспаратности движения текущего блока, который должен быть предсказан. В целях пояснения допустим, что вектор движения из кандидата блока представляет собой "B". Согласно аспектам этого раскрытия сущности, если вектор B движения не является вектором диспаратности движения, модуль 83 предсказания векторов движения может считать кандидата блока недоступным (например, недоступным для предсказания вектора A движения). Иными словами, модуль 83 предсказания векторов движения может деактивировать возможность использовать кандидата блока в целях предсказания векторов движения.

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

[0112] Что касается временного предсказания векторов движения, модуль 83 предсказания векторов движения может предсказывать временной вектор движения для текущего блока из кандидата блока в отличном виде относительно вида текущего блока. Например, модуль 83 предсказания векторов движения может идентифицировать кандидата временного предиктора вектора движения, имеющего целевое изображение в первом виде, который ссылается на блок в опорном изображении в другом временном местоположении первого вида. Согласно аспектам этого раскрытия сущности, модуль 83 предсказания векторов движения может использовать идентифицированного кандидата временного предиктора вектора движения для того, чтобы предсказывать вектор движения, ассоциированный с текущим блоком во втором другом виде.

[0113] Например, относительно MVP или относительно режима слияния, известны (ранее определены) целевое изображение и опорное изображение для временного вектора A движения текущего блока, который должен быть предсказан. В целях пояснения допустим, что вектор движения из кандидата блока представляет собой "B". Согласно аспектам этого раскрытия сущности, если вектор B движения из кандидата блока не является временным вектором движения, модуль 83 предсказания векторов движения может считать кандидата блока недоступным (например, недоступным для предсказания вектора A движения). Иными словами, В некоторых примерах модуль 83 предсказания векторов движения может деактивировать возможность использовать кандидата блока в целях предсказания векторов движения.

[0114] Если вектор B движения является временным вектором движения, и POC опорного изображения вектора B движения является идентичным опорному изображению вектора A движения, и POC целевого изображения вектора B движения является идентичным целевому изображению вектора B движения, модуль 83 предсказания векторов движения может использовать вектор B движения непосредственно в качестве предиктора кандидата вектора A движения. В противном случае, модуль 83 предсказания векторов движения может масштабировать временной вектор B движения на основе временного расстояния. Кандидат блока (который включает в себя кандидата предиктора вектора движения) и текущий блок могут совместно размещаться в другом виде. Тем не менее, относительное местоположение кандидата блока может смещаться от текущего блока вследствие диспаратности между двумя видами.

[0115] Модуль 86 обратного квантования обратно квантует, т.е. деквантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные посредством модуля 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного посредством видеокодера 20 для каждого видеоблока в срезе, чтобы определять степень квантования и, аналогично, степень обратного квантования, которое должно применяться.

[0116] Модуль 88 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования, чтобы генерировать остаточные блоки в пиксельной области. Согласно аспектам этого раскрытия сущности, модуль 88 обратного преобразования может определять способ, которым преобразования применены к остаточным данным. Иными словами, например, модуль 88 обратного преобразования может определять RQT, которое представляет способ, которым преобразования (например, DCT, целочисленное преобразование, вейвлет-преобразование или одно или более других преобразований) применены к остаточным выборкам сигнала яркости и остаточным выборкам сигнала цветности, ассоциированным с блоком принимаемых видеоданных.

[0117] После того, как модуль 82 компенсации движения формирует предсказывающий блок для текущего видеоблока на основе векторов движения и других элементов синтаксиса, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими предсказывающими блоками, сформированными посредством модуля 82 компенсации движения. Сумматор 90 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Если требуется, фильтр удаления блочности также может быть применен для того, чтобы фильтровать декодированные блоки, чтобы удалять артефакты блочности. Другие контурные фильтры (в контуре кодирования или после контура кодирования) также могут быть использованы для того, чтобы сглаживать пиксельные переходы или иным образом повышать качество видео. Декодированные видеоблоки в данном изображении затем сохраняются в запоминающем устройстве 92 опорных изображений, которое сохраняет опорные изображения, используемые для последующей компенсации движения. Запоминающее устройство 92 опорных изображений также сохраняет декодированное видео для последующего представления относительно устройства отображения, такого как устройство 32 отображения по фиг. 1.

[0118] Фиг. 4 является концептуальной схемой, иллюстрирующей примерный шаблон MVC-предсказания. В примере по фиг. 4, проиллюстрированы восемь видов, и двенадцать временных местоположений проиллюстрированы для каждого вида. В общем, каждая строка на фиг. 4 соответствует виду, в то время как каждый столбец указывает временное местоположение. Каждый из видов может быть идентифицирован с использованием идентификатора вида ("view_id"), который может быть использован для того, чтобы указывать относительное местоположение камеры относительно других видов. В примере, показанном на фиг. 4, идентификаторы видов указываются как "S0-S7", хотя числовые идентификаторы видов также могут быть использованы. Помимо этого, каждое из временных местоположений может быть идентифицировано с использованием значения номера в последовательности изображений (POC), которое указывает порядок отображения изображений. В примере, показанном на фиг. 4, POC-значения указываются как "T0-T11".

[0119] Хотя MVC имеет так называемый базовый вид, который может декодироваться посредством H.264/AVC-декодеров, и пара стереовидов может поддерживаться посредством MVC, MVC может поддерживать более двух видов в качестве трехмерного видеоввода. Соответственно, модуль рендеринга клиента, имеющего MVC-декодер, может ожидать трехмерный видеоконтент с несколькими видами.

[0120] Изображения на фиг. 4 указываются с использованием затененного блока, включающего в себя букву, обозначающую то, соответствующее изображение внутренне кодируется (т.е. в качестве I-кадра) либо внешне кодируется в одном направлении (т.е. в качестве P-кадра) или в нескольких направлениях (т.е. в качестве B-кадра). В общем, предсказания указываются посредством стрелок, при этом указываемое изображение использует указывающий объект для опорного элемента предсказания. Например, P-кадр вида S2 во временном местоположении T0 прогнозируется из I-кадра вида S0 во временном местоположении T0.

[0121] Аналогично кодированию одновидового видео, изображения последовательности многовидового видео могут быть прогнозирующе кодированы относительно изображений в различных временных местоположениях. Например, b-кадр вида S0 во временном местоположении T1 имеет стрелку, указывающую на него из I-кадра вида S0 во временном местоположении T0, показывающую то, что b-кадр прогнозируется из I-кадра. Тем не менее, дополнительно, в контексте кодирования многовидового видео, изображения могут межвидово предсказываться. Иными словами, компонента вида может использовать компоненты видов в других видах для опорных элементов. В MVC, например, реализуется межвидовое предсказание, как будто компонента вида в другом виде является опорным элементом внешнего предсказания. Потенциальные межвидовые опорные элементы могут быть переданы в служебных сигналах в MVC-расширении набора параметров последовательности (SPS) и могут быть модифицированы посредством процесса составления списка опорных изображений, который обеспечивает гибкое упорядочение опорных элементов внешнего предсказания или межвидового предсказания.

[0122] Фиг. 4 предоставляет различные примеры межвидового предсказания. Изображения вида S1, в примере по фиг. 4, проиллюстрированы как прогнозируемые из изображений в различных временных местоположениях вида S1, а также межвидово предсказанные из изображений для изображений видов S0 и S2 в идентичных временных местоположениях. Например, b-кадр вида S1 во временном местоположении T1 прогнозируется из каждого из B-кадров вида S1 во временных местоположениях T0 и T2, а также b-кадров видов S0 и S2 во временном местоположении T1.

[0123] В примере по фиг. 4, заглавная буква "B" и строчная буква "b" имеют намерение указывать различные иерархические взаимосвязи между изображениями, а не различные способы кодирования. В общем, кадры с заглавной буквы "B" располагаются относительно выше в иерархии предсказания, чем кадры со строчной буквы "b". Фиг. 4 также иллюстрирует изменения в иерархии предсказания с использованием разных уровней затенения, при этом изображения с большей величиной затенения (т.е. относительно более темные) располагаются выше в иерархии предсказания, чем изображения, имеющие меньшее затенение (т.е. относительно более светлые). Например, все I-кадры на фиг. 4 проиллюстрированы с полным затенением, в то время как P-кадры имеют в определенной степени более светлое затенение, и B-кадры (и кадры со строчной буквы b) имеют различные уровни затенения относительно друг друга, но всегда светлее затенения P-кадров и I-кадров.

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

[0125] Таким образом, изображения, используемые в качестве опорных изображений, могут быть декодированы до декодирования изображений, которые кодируются в отношении опорных изображений. Индекс порядка видов является индексом, который указывает порядок декодирования компонент видов в единице доступа. Для каждого индекса i порядка видов соответствующий view_id передается в служебных сигналах. Декодирование компонент видов следует порядку по возрастанию индексов порядка видов. Если все виды представляются, то набор индексов порядка видов содержит последовательно упорядоченный набор от нуля до на единицу меньше полного числа видов.

[0126] В MVC поднабор всего потока битов может быть извлечен для того, чтобы генерировать субпоток битов, который по-прежнему соответствует MVC. Существует множество возможных субпотоков битов, которых могут требовать конкретные приложения, на основе, например, услуг, предоставляемых посредством сервера, пропускной способности, поддержки и характеристик декодеров одного или более клиентов и/или предпочтений одного или более клиентов. Например, клиент может требовать только трех видов, и может быть предусмотрено два сценария. В одном примере один клиент может требовать плавного впечатления от просмотра и может предпочитать виды со значениями view_id в S0, S1 и S2, в то время как другой клиент может требовать масштабируемости вида и предпочитать виды со значениями view_id в S0, S2 и S4. Отметим, что оба из этих субпотоков битов могут быть декодированы в качестве независимых MVC-потоков битов и могут поддерживаться одновременно.

[0127] Фиг. 5 является блок-схемой, иллюстрирующей потенциальные кандидаты предикторов вектора движения при выполнении предсказания векторов движения (включающего в себя режим слияния). Иными словами, для блока 100, в данный момент кодируемого, информация движения (например, вектор движения, содержащий горизонтальную компоненту и вертикальную компоненту, индексы векторов движения, направления предсказания или другую информацию) из соседних блоков A0, A1, B0, B1 и B2 может быть использована для того, чтобы предсказывать информацию движения для блока 100. Помимо этого, информация движения, ассоциированная с совместно размещенным блоком COL, также может быть использована для того, чтобы предсказывать информацию движения для блока 100. Соседние блоки A0, A1, B0, B1 и B2 и совместно размещенный блок COL, в контексте предсказания векторов движения, могут, в общем, называться ниже "возможными вариантами предикторов вектора движения".

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

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

[0130] После составления списка кандидатов видеокодер 20 может выбирать вектор движения из списка кандидатов, который должен быть использован в качестве вектора движения для текущего блока 100. В некоторых примерах видеокодер 20 может выбирать вектор движения из списка кандидатов, который лучше всего совпадает с вектором движения для блока 100. Иными словами, видеокодер 20 может выбирать вектор движения из списка кандидатов согласно анализу искажения в зависимости от скорости передачи.

[0131] Видеокодер 20 может предоставлять индикатор того, что блок 100 кодируется с использованием режима слияния. Например, видеокодер 20 может задавать флаг или другой элемент синтаксиса, указывающий, что вектор движения для блока 100 прогнозируется с использованием режима слияния. В примере, видеокодер 20 может указывать, что параметры внешнего предсказания для блока 100 логически выводятся из кандидата предиктора вектора движения посредством задания merge_flag [x0][y0]. В этом примере, индексы x0, y0 массива могут указывать местоположение (x0, y0) верхней левой выборки сигнала яркости предсказывающего блока относительно верхней левой выборки сигнала яркости изображения (или среза).

[0132] Помимо этого, В некоторых примерах видеокодер 20 может предоставлять индекс, идентифицирующий кандидата слияния, из которого блок 100 наследует свой вектор движения. Например, merge_idx [x0][y0] может указывать индекс кандидата слияния, который идентифицирует изображение в списке кандидатов слияния, где x0, y0 указывает местоположение (x0, y0) верхней левой выборки сигнала яркости предсказывающего блока относительно верхней левой выборки сигнала яркости изображения (или среза).

[0133] Видеодекодер (к примеру, видеодекодер 30) может выполнять аналогичные этапы, чтобы идентифицировать надлежащего кандидата слияния при декодировании блока 100. Например, видеодекодер 30 может принимать индикатор того, что блок 100 прогнозируется с использованием режима слияния. В примере, видеодекодер 30 может принимать merge_flag [x0][y0], где (x0, y0) указывает местоположение верхней левой выборки сигнала яркости предсказывающего блока относительно верхней левой выборки сигнала яркости изображения (или среза).

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

1. A1, если availableFlagA1 равен 1

2. B1, если availableFlagB1 равен 1

3. B0, если availableFlagB0 равен 1

4. A0, если availableFlagA0 равен 1

5. B2, если availableFlagB2 равен 1

6. Col, если availableFlagCol равен 1

Если несколько кандидатов слияния имеют идентичные векторы движения и идентичные опорные индексы, кандидаты слияния могут удаляться из списка.

[0135] Видеодекодер 30 может идентифицировать надлежащего кандидата слияния согласно принимаемому индексу. Например, видеодекодер 30 может принимать индекс, идентифицирующий кандидат слияния, из которого блок 100 наследует свой вектор движения. В примере, merge_idx [x0][y0] может указывать индекс кандидата слияния, который идентифицирует изображение в списке кандидатов слияния, где x0, y0 указывает местоположение (x0, y0) верхней левой выборки сигнала яркости предсказывающего блока относительно верхней левой выборки сигнала яркости изображения (или среза).

[0136] В некоторых примерах видеодекодер 30 может масштабировать предиктор вектора движения до слияния информации движения кандидата блока с блоком 100. Например, относительно временного предиктора вектора движения, если предиктор вектора движения ссылается на предсказывающий блок в опорном изображении, который находится в отличном временном местоположении относительно предсказывающего блока, на который ссылается блок 100 (например, фактический вектор движения для блока 100), видеодекодер 30 может масштабировать предиктор вектора движения. Например, видеодекодер 30 может масштабировать предиктор вектора движения таким образом, что он ссылается на опорное изображение, идентичное опорному изображению для блока 100. В некоторых примерах видеодекодер 30 может масштабировать предиктор вектора движения согласно разности в значениях номера в последовательности изображений (POC). Иными словами, видеодекодер 30 может масштабировать предиктор вектора движения на основе разности между POC-расстоянием между кандидатом блока и предсказывающим блоком, на который ссылается предиктор вектора движения, и POC-расстоянием между блоком 100 и текущим опорным изображением (например, на которое ссылается фактический вектор движения для блока 100). После выбора надлежащего предиктора вектора движения видеодекодер 30 может осуществлять слияние информации движения, ассоциированной с предиктором вектора движения, с информацией движения для блока 100.

[0137] Аналогичный процесс может быть реализован посредством видеокодера 20 и видеодекодера 30, чтобы выполнять предсказание векторов движения для текущего блока видеоданных. Например, видеокодер 20 может первоначально определять то, какие векторы движения из кандидатов предикторов вектора движения доступны для использования в качестве MVP. Информация движения из одного или более кандидатов предикторов вектора движения может быть недоступна вследствие, например, внутренне кодируемого, еще не кодированного или не существующего кандидата предиктора вектора движения.

[0138] Чтобы определять то, какие из кандидатов предикторов вектора движения доступны, видеокодер 20 может анализировать каждый из кандидатов предикторов вектора движения поочередно согласно предварительно определенной схеме на основе приоритета. Например, для каждого кандидата предиктора вектора движения, видеокодер 20 может определять то, ссылается или нет предиктор вектора движения на опорное изображение, идентичное опорному изображению фактического вектора движения для блока 100. Если предиктор вектора движения ссылается на идентичное опорное изображение, видеокодер 20 может добавлять кандидат предиктора вектора движения в список кандидатов MVP. Если предиктор вектора движения не ссылается на идентичное опорное изображение, предиктор вектора движения может масштабироваться (например, масштабироваться на основе POC-расстояний, как пояснено выше) перед добавлением в список кандидатов MVP.

[0139] Относительно совместно размещенного блока COL, если совместно размещенный блок включает в себя несколько предикторов вектора движения (например, COL прогнозируется в качестве B-кадра), видеокодер 20 может выбирать один из временных предикторов вектора движения согласно текущему списку и текущему опорному изображению (для блока 100). Видеокодер 20 затем может добавлять выбранный временной предиктор вектора движения в список кандидатов предикторов вектора движения.

[0140] Видеокодер 20 может передавать в служебных сигналах то, что один или более предикторов вектора движения доступны, посредством задания enable_temporal_mvp_flag. После компоновки списка кандидатов видеокодер 20 может выбирать вектор движения из кандидатов, который должен использоваться в качестве предиктора вектора движения для блока 100. В некоторых примерах видеокодер 20 может выбирать кандидат вектора движения согласно анализу искажения в зависимости от скорости передачи.

[0141] Видеокодер 20 может передавать в служебных сигналах выбранный предиктор вектора движения с использованием MVP-индекса (mvp_flag), который идентифицирует MVP в списке кандидатов. Например, видеокодер 20 может задавать mvp_l0_flag [x0][y0], чтобы указывать индекс предиктора вектора движения списка 0, где x0, y0 указывает местоположение (x0, y0) верхней левой выборки сигнала яркости кандидата блока относительно верхней левой выборки сигнала яркости изображения. В другом примере видеокодер 20 может задавать mvp_l1_flag [x0][y0], чтобы указывать индекс предиктора вектора движения списка 1, где x0, y0 указывает местоположение (x0, y0) верхней левой выборки сигнала яркости кандидата блока относительно верхней левой выборки сигнала яркости изображения. В еще одном другом примере, видеокодер 20 может задавать mvp_lc_flag [x0][y0], чтобы указывать индекс предиктора вектора движения списка c, где x0, y0 указывает местоположение (x0, y0) верхней левой выборки сигнала яркости кандидата блока относительно верхней левой выборки сигнала яркости изображения.

[0142] Видеокодер 20 также может генерировать значение разности векторов движения (MVD). MVD может составлять разность между выбранным предиктором вектора движения и фактическим вектором движения для блока 100. Видеокодер 20 может передавать в служебных сигналах MVD с MVP-индексом.

[0143] Видеодекодер 30 может выполнять аналогичные операции, чтобы определять вектор движения для текущего блока с использованием предиктора вектора движения. Например, видеодекодер 30 может принимать индикатор в наборе параметров (например, в наборе параметров изображения (PPS)), указывающий то, что предсказание векторов движения активируется для одного или более изображений. Иными словами, в примере, видеодекодер 30 может принимать enable_temporal_mvp_flag в PPS. Когда конкретное изображение обращается к PPS, имеющему enable_temporal_mvp_flag, равное нулю, опорные изображения в запоминающем устройстве опорных изображений могут помечаться как "неиспользуемые для временного предсказания векторов движения".

[0144] Если реализуется предсказание векторов движения, после приема блока 100 видеодекодер 30 может составлять список кандидатов MVP. Видеодекодер 30 может использовать идентичную схему, поясненную выше относительно видеокодера 20, для того чтобы составлять список кандидатов MVP. В некоторых случаях, видеодекодер 30 может выполнять масштабирование векторов движения, аналогичное масштабированию векторов движения, описанному выше относительно видеокодера 20. Например, если предиктор вектора движения не ссылается на опорное изображение, идентичное опорному изображению для блока 100, предиктор вектора движения может масштабироваться (например, масштабироваться на основе POC-расстояний, как пояснено выше) перед добавлением в список кандидатов MVP. Видеодекодер 30 может идентифицировать надлежащий предиктор вектора движения для блока 100 с использованием принимаемого MVP-индекса (mvp_flag), который идентифицирует MVP в списке кандидатов. Видеодекодер 30 затем может генерировать вектор движения для блока 100 с использованием MVP и принимаемого MVD.

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

[0146] Фиг. 6 является концептуальной схемой, иллюстрирующей генерирование и масштабирование предиктора вектора движения при многовидовом кодировании. Например, согласно аспектам этого раскрытия сущности, видеокодер (к примеру, видеокодер 20 или видеодекодер 30) может масштабировать вектор 120 диспаратности движения (mv) из кандидата 122 блока предиктора вектора диспаратности движения ("кандидата блока"), чтобы генерировать предиктор 124 вектора движения (mv') для текущего блока 126. Хотя фиг. 6 описывается относительно видеодекодера 30, следует понимать, что способы этого раскрытия сущности могут выполняться посредством множества других видеокодеров, включающих в себя другие процессоры, модули обработки, аппаратные модули кодирования, такие как кодеры/декодеры (кодеки) и т.п.

[0147] В примере по фиг. 6, кандидат 122 блока пространственно соседствует с текущим блоком 126 в компоненте вида два (view_id 2). Кандидат 122 блока внешне прогнозируется и включает в себя вектор 120 движения, который ссылается (или "указывает") на предсказывающий блок в компоненте вида нуль (view_id 0). Например, вектор 120 движения имеет целевое изображение в виде два (view_id 2) и опорное изображение в виде нуль (view_id 0). Текущий блок 126 также внешне прогнозируется и включает в себя фактический вектор движения (не показан), который ссылается на предсказывающий блок в компоненте вида один (view_id 1). Иными словами, например, фактический вектор движения для текущего блока 126 имеет целевое изображение в виде два (view_id 2) и опорный блок в виде один (view_id 1).

[0148] Согласно аспектам этого раскрытия сущности, видеодекодер 30 может генерировать предиктор 124 вектора движения для текущего блока 126 с использованием масштабированной версии вектора 120 движения. Например, видеодекодер 30 может масштабировать вектор 120 движения на основе разности в расстояниях для вида между вектором 120 движения и фактическим вектором движения для текущего блока 126. Иными словами, видеодекодер 30 может масштабировать вектор 120 движения на основе разности между местоположением камеры для камеры, используемой для того, чтобы захватывать предсказывающий блок (в опорном изображении) для кандидата 122 блока и предсказывающий блок (в опорном изображении) для текущего блока 126. Соответственно, видеодекодер 30 может масштабировать вектор 120 диспаратности движения (например, вектор движения, использующийся для предсказания) согласно разности между компонентой вида, на который ссылается вектор 120 движения для кандидата 122 блока, и компонентой вида, на который ссылается фактический вектор движения для текущего блока 126.

[0149] В примере, видеодекодер 30 может генерировать масштабированный предиктор вектора движения для текущего блока согласно уравнению (1), показанному ниже:

m v ' = m v ( V i e w D i s tan c e ( m v ' ) V i e w D i s tan c e ( m v ) ) , (1)

где ViewDistance(mv) равно разности между идентификатором вида опорного изображения вектора 120 движения (например, ViewId(RefPic(mv)) и идентификатором вида целевого изображения вектора 120 движения (например, ViewId(TargetPic(mv)), и ViewDistance(mv') равно разности между идентификатором вида опорного изображения предиктора 124 вектора движения (например, ViewId(RefPic(mv')) и идентификатором вида целевого изображения предиктора 124 вектора движения (например, ViewId(TargetPic(mv')). Соответственно, в этом примере, опорное изображение предиктора 124 вектора движения, RefPic(mv'), принадлежит новому целевому виду, и целевое изображение предиктора 124 вектора движения, TargetPic(mv'), принадлежит текущему виду. Аналогично, опорное изображение вектора 120 движения, RefPic(mv), принадлежит виду, на который указывает кандидат вектора движения, и целевое изображение вектора 120 движения, TargetPic(mv), принадлежит текущему виду. Соответственно, видеодекодер 30 может генерировать масштабированный предиктор вектора движения согласно нижеприведенному уравнению (2):

m v ' = m v ( V i e w I D ( N e w T a r g e t ) V i e w I D ( C u r r e n t ) V i e w I D ( C a n d i d a t e ) V i e w I d ( C u r r e n t ) ) , (2)

где mv' представляет масштабированный предиктор вектора движения для текущего блока, mv представляет вектор движения для кандидата блока, ViewID(NewTarget) является компонентой вида, на который ссылается фактический вектор движения для текущего блока, ViewID(Current) является компонентой вида текущего блока, и ViewID(Candidate) является компонентой вида кандидата блока.

[0150] При применении уравнения (2) к примеру на фиг. 6, mv' представляет масштабированный предиктор вектора движения для текущего блока 126, mv представляет вектор 120 движения, ViewID(NewTarget) является компонентой вида, на который ссылается вектор 124 движения, ViewID(Current) является компонентой вида текущего блока 126, и ViewID(Candidate) является компонентой вида кандидата 122 блока. Соответственно, в примере, показанном на фиг. 4, предиктор 124 вектора движения является вектором 120 движения, масштабированным на коэффициент одна вторая (например, m v ' = m v ( 1 2 0 2 ) ). Иными словами, видеодекодер 30 может масштабировать как горизонтальную компоненту смещения, так и вертикальную компоненту смещения вектора 120 движения на коэффициент одна вторая, чтобы генерировать предиктор 124 вектора движения для текущего блока 126.

[0151] Масштабирование векторов движения, описанное относительно фиг. 6, может выполняться как для слияния, так и для предсказания векторов движения. Иными словами, например, видеодекодер 30 может масштабировать вектор 120 движения перед слиянием вектора 120 движения с информацией движения для текущего блока 126. В другом примере видеодекодер 30 может масштабировать вектор 120 движения перед вычислением значения разности вектора движения (MVD) согласно разности между предиктором 124 вектора движения и фактическим вектором движения для текущего блока 126.

[0152] Как показано в примере по фиг. 6, кандидат 122 блока и текущий блок 126 могут находиться в идентичном компоненте вида. Тем не менее, В других примерах как подробнее описано относительно фиг. 7 и 8, кандидат блока может находиться в отличном компоненте вида относительно текущего блока.

[0153] Фиг. 7 является другой концептуальной схемой, иллюстрирующей генерирование и масштабирование предиктора вектора движения. Например, согласно аспектам этого раскрытия сущности, видеокодер (к примеру, видеокодер 20 или видеодекодер 30) может масштабировать вектор 130 диспаратности движения (mv) из кандидата 132 блока предиктора вектора диспаратности движения (x', y'), чтобы генерировать предиктор 134 вектора движения (mv') для текущего блока 136 (x, y), причем кандидат 132 блока принадлежит отличному компоненту вида относительно текущего блока 136. Соответственно, процесс, показанный и описанный относительно фиг. 7 может, в общем, называться "межвидовым предсказанием векторов диспаратности движения". Хотя фиг. 7 описывается относительно видеодекодера 30, следует понимать, что способы этого раскрытия сущности могут выполняться посредством множества других видеокодеров, включающих в себя другие процессоры, модули обработки, аппаратные модули кодирования, такие как кодеры/декодеры (кодеки) и т.п.

[0154] В примере, показанном на фиг. 7, кандидат 132 блока находится в компоненте вида один (view_id 1). Кандидат 132 блока внешне прогнозируется и включает в себя вектор 130 движения (mv), который ссылается на предсказывающий блок в компоненте вида нуль (view_id 0). Например, вектор 130 движения имеет целевое изображение в виде один (view_id 1) и опорное изображение в виде нуль (view_id 0). Текущий блок 136 совместно размещается с кандидатом 132 блока и находится в компоненте вида два (view_id 2). Как подробнее описано ниже, В некоторых примерах текущий блок 136 может включать в себя фактический вектор движения (не показан), который идентифицирует блок в первом опорном виде (view_id 1). Иными словами, например, фактический вектор движения для текущего блока 136 имеет целевое изображение в виде два (view_id 2) и может иметь опорный блок в виде один (view_id 1). В других примерах текущий блок может включать в себя фактический вектор движения, который идентифицирует блок во втором опорном виде (view_id 0). Иными словами, например, фактический вектор движения для текущего блока 136 имеет целевое изображение в виде два (view_id 2), и может иметь опорный блок в виде нуль (view_id 0). Соответственно, предиктор 134 вектора движения (mv') может ссылаться на блок в первом опорном виде (view_id 1). В другом примере второй предиктор 138 вектора движения (mv'') может ссылаться на блок во втором опорном виде (view_id 0).

[0155] В некоторых примерах второй предиктор 138 вектора движения может быть недоступным для предсказания векторов движения. Например, второй предиктор 138 вектора движения может быть сгенерирован только в том случае, если предсказывающий блок во втором опорном виде доступен для прямого межвидового предсказания. Доступность предсказывающего блока во втором опорном виде может указываться, например, в наборе параметров (к примеру, в наборе параметров последовательности (SPS) или в наборе параметров изображения (PPS)) либо в заголовке среза, ассоциированном с текущим блоком 136.

[0156] Согласно аспектам этого раскрытия сущности, видеодекодер может выполнять межвидовое предсказание векторов диспаратности движения с использованием режима слияния или с использованием предсказания векторов движения. Относительно режима слияния видеодекодер 30 может первоначально выбирать "целевой вид" для текущего блока 136. В общем, целевой вид включает в себя предсказывающий блок для текущего блока 136. В некоторых примерах целевой вид может быть первым опорным видом (показан на фиг. 7 в качестве view_id 1). В других примерах целевой вид может быть вторым опорным видом (показан на фиг. 7 в качестве view_id 0). Тем не менее, как отмечено выше, в некоторых примерах второй опорный вид может быть использован в качестве целевого вида только в том случае, если предсказывающий блок во втором опорном виде доступен для использования для целей межвидового предсказания.

[0157] В некоторых примерах видеодекодер 30 может выбирать первый опорный вид в качестве целевого вида. В других примерах видеодекодер 30 может выбирать, когда доступен, второй опорный вид в качестве целевого вида. Выбор целевого вида может быть определен, например, на основе доступности предсказывающего блока и/или предварительно определенного алгоритма выбора. Опорный индекс (ref_idx) текущего блока 136 соответствует индексу изображения, содержащего предсказывающий блок целевого вида, который добавляется в список опорных изображений текущего блока 136.

[0158] После выбора целевого вида видеодекодер 30 может находить кандидат 132 блока. В примере в целях иллюстрации допустим, что верхняя левая выборка сигнала яркости текущего блока 136 находится в изображении (или среза) с координатами (x, y). Видеодекодер 30 может определять совместно размещенные координаты в компоненте вида один для кандидата 132 блока. Помимо этого, В некоторых примерах видеодекодер 30 может регулировать координаты на основе диспаратности между компонентой вида текущего блока 136 (компонентой вида два) и компонентой вида кандидата 132 блока (компонентой вида один). Соответственно, видеодекодер 30 может определять координаты для кандидата 132 блока как (x', y'), где (x', y',)=(x, y)+диспаратность. В некоторых примерах диспаратность может быть включена и/или вычислена в SPS, PPS, заголовке среза, синтаксисе CU и/или синтаксисе PU.

[0159] После нахождения кандидата 132 блока видеодекодер 30 может масштабировать вектор 130 движения для кандидата 132 блока на основе разности в расстояниях для вида между вектором 130 движения и фактическим вектором движения для текущего блока 136. Иными словами, видеодекодер 30 может масштабировать вектор 130 движения на основе разности в местоположении камеры для камеры, используемой для того, чтобы захватывать предсказывающий блок для кандидата 132 блока и предсказывающий блок для текущего блока 136 (например, предсказывающий блок в целевом виде). Иными словами, видеодекодер 30 может масштабировать вектор 130 диспаратности движения (например, вектор движения, использующийся для предсказания) согласно разности между компонентой вида, на который ссылается вектор 130 движения для кандидата 132 блока, и компонентой вида для целевого вида.

[0160] В примере, видеодекодер 30 может генерировать масштабированный предиктор вектора движения для текущего блока согласно уравнению (3), показанному ниже:

m v ' = m v ( V i e w I D ( T a r g e t ) V i e w I D ( C u r r e n t ) V i e w I D ( S e c o n d Reference ) V i e w I d ( Reference ) ) , (3)

где mv' представляет масштабированный предиктор вектора движения для текущего блока, mv представляет вектор движения для кандидата блока, ViewID(Target) является компонентой вида выбранного целевого вида, ViewID(Current) является компонентой вида текущего блока, и ViewID(SecondReference) является компонентой вида второго опорного вида (при наличии), и ViewID(Reference) является компонентой вида первого опорного вида. В некоторых примерах ViewID(Target) минус ViewID(Current) может называться "расстоянием для вида" предиктора 134 вектора движения, в то время как ViewID(SecondReference) минус ViewID(Reference) может называться "расстоянием для вида" вектора 130 движения. Иными словами, расстояние для вида предиктора 134 вектора движения является разностью между целевым изображением (view_id 1) и опорным изображением (view_id 2) предиктора 134 вектора движения, в то время как расстояние для вида вектора 130 движения является разностью между целевым изображением (view_id 0) и опорным изображением (view_id 1) вектора 130 движения.

[0161] При применении уравнения (3) к примеру на фиг. 7, mv' представляет масштабированный предиктор 134 вектора движения или масштабированный предиктор 138 вектора движения, в зависимости от того, какой компонента вида выбирается для целевого вида. Например, если первый опорный вид (view_id 1) выбирается в качестве целевого вида, mv' представляет масштабированный предиктор 134 вектора движения, mv представляет вектор 130 движения, ViewID(Target) является компонентой вида, на который ссылается предиктор 134 вектора движения, ViewID(Current) является компонентой вида текущего блока 136, ViewID(SecondReference) является компонентой вида второго опорного вида (view_id 0), и ViewID(Reference) является компонентой вида первого опорного вида (view_id 1). Соответственно, в примере, показанном на фиг. 7, предиктор 134 вектора движения является вектором 130 движения, масштабированным на коэффициент один (например, m v ' = m v ( 1 2 0 1 ) ). Иными словами, горизонтальную компоненту смещения и вертикальную компоненту смещения вектора 130 движения могут быть идентичными горизонтальному компоненту смещения и вертикальному компоненту смещения предиктора 134 вектора движения.

[0162] Альтернативно, если второй опорный вид (view_id 0) выбирается для целевого вида, mv' представляет масштабированный предиктор 138 вектора движения, mv представляет вектор 130 движения, ViewID(Target) является компонентой вида, на который ссылается предиктор 138 вектора движения, ViewID(Current) является компонентой вида текущего блока 136, ViewID(SecondReference) является компонентой вида второго опорного вида (view_id 0)), и ViewID(Reference) является компонентой вида первого опорного вида (view_id 1). Соответственно, в примере, показанном на фиг. 7, предиктор 138 вектора движения является вектором 130 движения, масштабированным на коэффициент два (например, m v ' = m v ( 0 2 0 1 ) ). Иными словами, видеодекодер 30 может масштабировать как горизонтальную компоненту смещения, так и вертикальную компоненту смещения вектора 130 движения на коэффициент два, чтобы генерировать предиктор 138 вектора движения для текущего блока 136.

[0163] Согласно аспектам этого раскрытия сущности, видеодекодер 30 может выполнять аналогичные этапы при выполнении предсказания векторов движения (например, формировании MVP). Например, видеодекодер 30 может выбирать целевой вид, который может быть первым опорным видом (view_id 1) или вторым опорным видом (view_id 0). Тем не менее, если опорное изображение компонента вида, содержащего предсказывающий блок для текущего блока, недоступно в целях межвидового предсказания, соответствующий предиктор не может быть использован. Соответственно, выбор целевого вида может быть определен, например, на основе доступности предсказывающего блока и/или предварительно определенного алгоритма выбора.

[0164] Если предсказывающий блок для текущего блока 136 недоступен для использования для прямого межвидового предсказания в первом опорном виде (view_id 1) либо втором опорном виде (view_id 0), видеодекодер 30 не может выполнять предсказание векторов движения. Если, по меньшей мере, один предсказывающий блок доступен, видеодекодер 30 может выбирать опорный вид, который включает в себя предсказывающий блок, ассоциированный с фактическим вектором движения для текущего блока 136.

[0165] После выбора целевого вида видеодекодер 30 затем может повторять этапы, описанные выше относительно режима слияния. Например, видеодекодер 30 может находить кандидат 132 блока. Иными словами, видеодекодер 30 может определять совместно размещенные координаты в компоненте вида один для кандидата 132 блока. Помимо этого, В некоторых примерах видеодекодер 30 может регулировать координаты на основе диспаратности между компонентой вида текущего блока 136 (компонентой вида два) и компонентой вида кандидата блока (компонентой вида один) 132.

[0166] Помимо этого, после нахождения кандидата 132 блока, видеодекодер 30 может масштабировать вектор 130 движения для кандидата 132 блока на основе разности в местоположении камеры для камеры, используемой для того, чтобы захватывать предсказывающий блок для кандидата 132 блока и предсказывающий блок для текущего блока 136 (например, предсказывающий блок в целевом виде). Иными словами, видеодекодер 30 может масштабировать вектор 130 диспаратности движения (например, вектор движения, использующийся для предсказания) согласно разности между компонентой вида, на который ссылается вектор 130 движения для кандидата 132 блока, и компонентой вида для целевого вида. В некоторых примерах видеодекодер 30 может выполнять масштабирование предикторов вектора движения с использованием вышеприведенного уравнения (2). В других примерах как описано относительно фиг. 8 ниже, масштабирование предикторов вектора движения может быть расширено до других видов.

[0167] Видеодекодер 30 может добавлять кандидат 132 блока в список кандидатов при выполнении режима слияния и/или предсказания векторов движения (описанного, например, относительно фиг. 5 выше). Согласно аспектам этого раскрытия сущности, кандидат блока может добавляться в список кандидатов предикторов вектора движения (например, для режима слияния либо для предсказания векторов движения с MVP) множеством способов. Например, видеодекодер 30 может составлять список кандидатов посредством нахождения кандидатов режима слияния согласно следующей схеме:

1. A1, если availableFlagA1 равен 1

2. V, если availableFlagV равен 1

3. B1, если availableFlagB1 равен 1

4. B0, если availableFlagB0 равен 1

5. A0, если availableFlagA0 равен 1

6. B2, если availableFlagB2 равен 1

7. Col, если availableFlagCol равен 1

- где V представляет кандидат 132 блока. В других примерах кандидат 132 блока может находиться и добавляться в список кандидатов в любой другой позиции списка кандидатов.

[0168] Фиг. 8 является другой концептуальной схемой, иллюстрирующей генерирование и масштабирование предиктора вектора движения, согласно аспектам этого раскрытия сущности. Например, согласно аспектам этого раскрытия сущности, видеокодер (к примеру, видеокодер 20 или видеодекодер 30) может масштабировать вектор 140 диспаратности движения (mv) из кандидата 142 блока предиктора вектора диспаратности движения, чтобы генерировать предиктор 144 вектора движения (mv') для текущего блока 146, причем кандидат 142 блока принадлежит отличному компоненту вида относительно текущего блока 146. Хотя фиг. 8 описывается относительно видеодекодера 30, следует понимать, что способы этого раскрытия сущности могут выполняться посредством множества других видеокодеров, включающих в себя другие процессоры, модули обработки, аппаратные модули кодирования, такие как кодеры/декодеры (кодеки) и т.п.

[0169] Пример, показанный на фиг. 8, расширяет предсказание векторов движения, показанное и описанное относительно фиг. 7, на окружение, которое включает в себя более трех видов. Например, как показано на фиг. 8, кандидат 142 блока находится в компоненте вида два (view_id 2). Кандидат 142 блока внешне прогнозируется и включает в себя вектор 140 движения (mv), который ссылается на предсказывающий блок в компоненте вида один (view_id 1). Например, вектор 140 движения имеет целевое изображение в виде два (view_id 2) и опорное изображение в виде один (view_id 1). Текущий блок 146 совместно размещается с кандидатом 142 блока и находится в компоненте вида три (view_id 3).

[0170] Согласно аспектам этого раскрытия сущности, видеодекодер 30 может выбирать целевой вид для текущего блока 146 в качестве компонента вида нуль (view_id 0). Например, целевой вид, в общем, включает в себя предсказывающий блок для текущего блока. Если изображение, содержащее предсказывающий блок, является межвидовым опорным изображением, и предсказывающий блок для текущего блока 146 находится в третьем опорном виде (view_id 0), видеодекодер 30 может выбирать третий опорный вид в качестве целевого вида.

[0171] После выбора целевого вида видеодекодер 30 может находить кандидат 142 блока. Например, при условии, что верхняя левая выборка сигнала яркости текущего блока 146 находится в изображении (или среза) с координатами (x, y) в компоненте вида три, видеодекодер 30 может определять совместно размещенные координаты в компоненте вида два для кандидата 142 блока. Помимо этого, как отмечено выше, видеодекодер 30 может регулировать координаты на основе диспаратности между компонентой вида текущего блока 146 (компонентой вида три) и компонентой вида кандидата 142 блока (компонентой вида два).

[0172] После нахождения кандидата 142 блока видеодекодер 30 может масштабировать вектор 140 движения для кандидата 142 блока на основе разности в расстояниях для вида между вектором 140 движения и фактическим вектором движения для текущего блока 146. Иными словами, видеодекодер 30 может масштабировать вектор 130 движения на основе разности в местоположении камеры для камеры, используемой для того, чтобы захватывать предсказывающий блок для кандидата 142 блока и предсказывающий блок для текущего блока 146 (например, предсказывающий блок в целевом виде). Иными словами, видеодекодер 30 может масштабировать вектор 140 диспаратности движения (например, вектор движения, использующийся для предсказания) согласно разности между компонентой вида, на который ссылается вектор 140 движения для кандидата 142 блока, и компонентой вида для целевого вида (view_id 0).

[0173] В примере, видеодекодер 30 может генерировать масштабированный предиктор вектора движения для текущего блока согласно уравнению (4), показанному ниже:

m v ' = m v ( V i e w I D ( T h i r d ) V i e w I D ( C u r r e n t ) V i e w I D ( S e c o n d Reference ) V i e w I d ( Reference ) ) , (4)

где mv' представляет масштабированный предиктор вектора движения для текущего блока, mv представляет вектор движения для кандидата блока, ViewID(Third) является компонентой вида третьего опорного вида, ViewID(Current) является компонентой вида текущего блока, и ViewID(SecondReference) является компонентой вида второго опорного вида (при наличии), и ViewID(Reference) является компонентой вида первого опорного вида. В некоторых примерах ViewID(Third) минус ViewID(Current) может называться "расстоянием для вида" предиктора 144 вектора движения, в то время как ViewID(SecondReference) минус ViewID(Reference) может называться "расстоянием для вида" вектора 140 движения. Иными словами, расстояние для вида предиктора 144 вектора движения является разностью между целевым изображением (view_id 0) и опорным изображением (view_id 3) предиктора 144 вектора движения, в то время как расстояние для вида вектора 140 движения является разностью между целевым изображением (view_id 1) и опорным изображением (view_id 2) вектора 140 движения.

[0174] При применении уравнения (3) к примеру на фиг. 8, mv' представляет масштабированный предиктор 144 вектора движения. Например, ViewID(Third) является третьим опорным видом (view_id 0), mv' представляет масштабированный предиктор 144 вектора движения, mv представляет вектор 140 движения, ViewID(Current) является компонентой вида текущего блока 146, ViewID(SecondReference) является компонентой вида второго опорного вида (view_id 1), и ViewID(Reference) является компонентой вида первого опорного вида (view_id 2). Соответственно, в примере, показанном на фиг. 8, предиктор 144 вектора движения является вектором 140 движения, масштабированным на коэффициент три (например, m v ' = m v ( 0 3 1 2 ) ). Иными словами, видеодекодер 30 может масштабировать горизонтальную компоненту смещения и вертикальную компоненту смещения вектора 140 движения на три, чтобы генерировать предиктор 144 вектора движения.

[0175] Хотя фиг. 7-8 предоставляют примеры для межвидового предсказания векторов диспаратности движения, следует понимать, что такие примеры предоставляются просто в целях иллюстрации. Иными словами, способы для предсказания векторов диспаратности движения могут применяться к большему или меньшему числу видов, чем показано. Дополнительно или альтернативно, способы для предсказания векторов диспаратности движения могут применяться в случаях, в которых виды имеют различные идентификаторы видов.

[0176] Фиг. 9 является блок-схемой последовательности операций способа, иллюстрирующей примерный способ кодирования информации предсказания для блока видеоданных. Пример, показанный на фиг. 9, в общем, описывается как выполняемый посредством видеокодера. Следует понимать, что, В некоторых примерах способ по фиг. 9 может выполняться посредством видеокодера 20 (фиг. 1 и 2) или видеодекодера 30 (фиг. 1 и 3), описанных выше. В других примерах способ по фиг. 9 может выполняться посредством множества других процессоров, модулей обработки, аппаратных модулей кодирования, таких как кодеры/декодеры (кодеки) и т.п.

[0177] Согласно примерному способу, показанному на фиг. 9, видеокодер может идентифицировать первый блок видеоданных в первом виде, причем первый блок видеоданных ассоциирован с первым вектором диспаратности движения (160). Например, вектор движения для первого блока видеоданных может быть вектором диспаратности движения, который идентифицирует опорный блок в другом компоненте вида. Видеокодер затем может определять то, является или нет второй вектор движения, ассоциированный со вторым блоком видеоданных, вектором диспаратности движения (162).

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

[0179] Если второй вектор движения является вектором диспаратности движения (ветвь "Да" этапа 162), видеокодер может масштабировать первый вектор движения, чтобы генерировать предиктор вектора движения для второго вектора движения (166). Например, согласно аспектам этого раскрытия сущности, видеокодер может масштабировать первый вектор движения, чтобы генерировать предиктор вектора диспаратности движения на основе разностей в расстояниях для вида, ассоциированных с первым вектором диспаратности движения и вторым вектором движения. Иными словами, В некоторых примерах видеокодер может масштабировать предиктор вектора движения для второго блока на основе местоположений камеры. Например, видеокодер может масштабировать второй вектор движения согласно разности в идентификаторах видов, как показано и описано относительно фиг. 6-8.

[0180] Видеокодер затем может кодировать данные предсказания для второго блока с использованием масштабированного предиктора вектора движения (168). Например, видеокодер может кодировать данные предсказания для второго блока с использованием режима слияния или с использованием предсказания векторов движения. Для режима слияния видеокодер может непосредственно кодировать данные предсказания для второго блока с использованием масштабированного второго предиктора вектора движения. Для предсказания векторов движения видеокодер может кодировать данные предсказания для второго блока посредством генерирования MVD. MVD может включать в себя разность между первым вектором движения и масштабированным вторым вектором движения.

[0181] Также следует понимать, что этапы, показанные и описанные относительно фиг. 9, предоставляются в качестве только одного примера. Иными словами, этапы способа по фиг. 9 не обязательно должны выполняться в порядке, показанном на фиг. 9, и могут выполняться меньшее число, дополнительные или альтернативные этапы.

[0182] Фиг. 10 является концептуальной схемой, иллюстрирующей генерирование предиктора вектора движения из блока в отличном виде относительно текущего блока. Например, согласно аспектам этого раскрытия сущности видеокодер (к примеру, видеокодер 20 или видеодекодер 30) может использовать временной вектор 180 движения (mv) из кандидата 182 блока временного предиктора вектора движения для того, чтобы генерировать предиктор 184 вектора движения (mv') для текущего блока 186, причем кандидат 182 блока принадлежит отличному компоненту вида относительно текущего блока 186. Хотя фиг. 10 описывается относительно видеодекодера 30, следует понимать, что способы этого раскрытия сущности могут выполняться посредством множества других видеокодеров, включающих в себя другие процессоры, модули обработки, аппаратные модули кодирования, такие как кодеры/декодеры (кодеки) и т.п.

[0183] Как показано на фиг. 10, текущий блок 186 находится в компоненте вида один (view_id 1). Кандидат 182 блока находится в компоненте вида нуль (view_id 0). Кандидат 182 блока временно прогнозируется и включает в себя вектор 180 движения (mv), который ссылается на предсказывающий блок в другом временном местоположении в идентичном компоненте вида. Иными словами, в примере, показанном на фиг. 10, вектор 180 движения идентифицирует предсказывающий блок в изображении, имеющем опорный индекс, равный переменной i (ref_idx=i).

[0184] Допустим, что верхняя левая выборка сигнала яркости текущего блока 186 находится в изображении (или среза) с координатами (x, y). Видеодекодер 30 может находить кандидат 182 блока посредством определения совместно размещенных координат в компоненте вида нуль для кандидата 182 блока. В некоторых примерах видеодекодер 30 может регулировать координаты кандидата 182 блока на основе диспаратности между компонентой вида текущего блока 186 (view_id 1) и компонентой вида кандидата 182 блока (view_id 0). Соответственно, видеодекодер 30 может определять координаты для кандидата 182 блока как (x', y'), где (x', y')=(x, y)+диспаратность. В некоторых примерах диспаратность может быть включена и/или вычислена в SPS, PPS, заголовке среза, синтаксисе CU и/или синтаксисе PU.

[0185] Согласно аспектам этого раскрытия сущности, видеодекодер 30 затем может повторно преобразовывать опорный индекс вектора 180 движения, использующегося для целей предсказания. В общем, как отмечено выше, данные для вектора движения включают в себя список опорных изображений, индекс в списке опорных изображений (называемый "ref_idx"), горизонтальную компоненту и вертикальную компоненту. В HEVC может быть два обычных списка опорных изображений (например, список 0 и список 1) и комбинированный список опорных изображений (например, список c). Без потери общности допустим, что текущий список опорных изображений является списком t (который может соответствовать любому из списка 0, списка 1 или списка c). Согласно примеру, показанному на фиг. 10, вектор 180 движения для кандидата 182 блока может идентифицировать предсказывающий блок в изображении, расположенном в компоненте вида нуль (view_id 0), имеющий POC-значение в два и ref_idx, равный i. Согласно аспектам этого раскрытия сущности, видеодекодер 30 может идентифицировать совместно размещенный предсказывающий блок для текущего блока 186 в момент времени, идентичный с моментом времени для текущего блока 186. Иными словами, предсказывающий блок для кандидата 182 блока и предсказывающий блок для текущего блока 186 имеют идентичное временное местоположение, но находятся в изображениях двух различных видов.

[0186] В примере, если идентифицированный предсказывающий блок для текущего блока 186 соответствует j-тому опорному изображению в списке t опорных изображений для текущего изображения, видеодекодер 30 может предсказывать опорный индекс (ref_idx) для текущего блока 186 в качестве j и видеодекодер 30 может задавать предиктор 184 вектора движения равным значению, идентичному значению для вектора 180 движения. Соответственно, видеодекодер 30 эффективно повторно преобразует опорный индекс для текущего блока 186 из ref_idx i в ref_idx j. Иными словами, видеодекодер 30 определяет то, что предиктор 184 вектора движения для текущего блока 186 имеет идентичный список опорных изображений, горизонтальную компоненту и вертикальную компоненту относительно кандидата 182 блока; тем не менее, предиктор 184 вектора движения ссылается на j-тое опорное изображение в списке опорных изображений, а не на i-тое опорное изображение в списке опорных изображений.

[0187] Согласно аспектам этого раскрытия сущности, В некоторых примерах видеодекодер также может масштабировать предиктор 184 вектора движения. Например, если изображение, содержащее идентифицированный предсказывающий блок для текущего блока 186, не включается в список t опорных изображений, видеодекодер 30 может идентифицировать второе изображение, которое является ближайшим в списке t опорных изображений. В некоторых примерах если два изображения имеют идентичные расстояния до изображения, содержащего идентифицированный предсказывающий блок для текущего блока 186, видеодекодер 30 может выбирать изображение, которое ближе к изображению, содержащему текущий блок 186, в качестве второго изображения. В целях пояснения допустим, что идентифицированное изображение имеет опорный индекс k. В этом примере, видеодекодер 30 затем может предсказывать опорный индекс предиктора 184 вектора движения в качестве k, и видеодекодер 30 может масштабировать предиктор 184 вектора движения на основе разности в номере в последовательности изображений (POC). Иными словами, видеодекодер 30 может масштабировать предиктор 184 вектора движения на основе разности между расстоянием между текущим блоком 186 и изображением с опорным индексом j и текущим блоком 186 и изображением с опорным индексом k.

[0188] Согласно некоторым примерам, видеодекодер 30 может выполнять идентичный процесс при выполнении предсказания векторов движения. Тем не менее, после определения предиктора 184 вектора движения, видеодекодер 30 может генерировать вектор движения для текущего блока 186 с использованием MVD. Предсказание векторов движения может использовать идентичный процесс. В другом примере относительно предсказания векторов движения, если предсказывающий блок для текущего блока 186 не может находиться (идентифицироваться выше как находящийся с опорным индексом j), видеодекодер 30 не может выполнять режим слияния или предсказание векторов движения для текущего блока 186. Иными словами, вместо масштабирования предиктора 184 вектора движения, видеодекодер 30 может считать предиктор 184 вектора движения недоступным.

[0189] Видеодекодер 30 может добавлять кандидат 182 блока в список кандидатов для выполнения режима слияния и/или предсказания векторов движения (описанного, например, относительно фиг. 5 выше). Согласно аспектам этого раскрытия сущности, кандидат 182 блока может добавляться в список кандидатов предикторов вектора движения (например, для режима слияния либо для предсказания векторов движения с MVP) множеством способов. Например, видеодекодер 30 может составлять список кандидатов посредством нахождения кандидатов согласно следующей схеме:

1. A1, если availableFlagA1 равен 1

2. V, если availableFlagV равен 1

3. B1, если availableFlagB1 равен 1

4. B0, если availableFlagB0 равен 1

5. A0, если availableFlagA0 равен 1

6. B2, если availableFlagB2 равен 1

7. Col, если availableFlagCol равен 1

- где V представляет кандидат 182 блока. В других примерах кандидат 132 блока может находиться и добавляться в список кандидатов в любой другой позиции списка кандидатов.

[0190] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей примерный способ генерирования предиктора вектора движения. Пример, показанный на фиг. 11, в общем, описывается как выполняемый посредством видеокодера. Следует понимать, что, В некоторых примерах способ по фиг. 11 может выполняться посредством видеокодера 20 (фиг. 1 и 2) или видеодекодера 30 (фиг. 1 и 3), описанных выше. В других примерах способ по фиг. 11 может выполняться посредством множества других процессоров, модулей обработки, аппаратных модулей кодирования, таких как кодеры/декодеры (кодеки) и т.п.

[0191] Согласно примеру, показанному на фиг. 11, видеокодер может идентифицировать первый блок видеоданных в первом временном местоположении первого вида, причем первый блок ассоциирован с первым временным вектором движения (202). Согласно аспектам этого раскрытия сущности, когда второй вектор движения, ассоциированный со вторым блоком видеоданных, является временным вектором движения, и второй блок исходит из второго отличного вида относительно первого блока (ветвь "Да" этапа 204), видеокодер может определять предиктор вектора движения на основе первого вектора движения (206). Иными словами, например, видеокодер может определять предиктор вектора движения для предсказания второго вектора движения из первого вектора движения. Видеокодер также может кодировать данные предсказания для второго блока с использованием предиктора вектора движения (208). Например, видеокодер может использовать предиктор вектора движения в режиме слияния либо для того, чтобы генерировать значение MVD.

[0192] Если второй вектор движения не является временным вектором движения, и/или второй блок видеоданных не исходит из отличного вида относительно первого блока видеоданных (ветвь "Нет" этапа 204), видеокодер может определять то, является или нет второй вектор движения вектором диспаратности движения (210). Согласно аспектам этого раскрытия сущности, если второй вектор движения не является вектором диспаратности движения (ветвь "Нет" этапа 210), видеокодер может идентифицировать другой кандидат предиктора вектора движения (212). Иными словами, видеокодер, В некоторых примерах может не использовать первый вектор движения для того, чтобы предсказывать второй вектор движения.

[0193] Если второй вектор движения является вектором диспаратности движения (ветвь "Да" этапа 210), видеокодер может определять то, деактивировано или нет предсказание векторов диспаратности движения (214). Иными словами, согласно некоторым аспектам этого раскрытия сущности, возможность использовать временной вектор движения (например, первый вектор движения) для того, чтобы предсказывать вектор диспаратности движения (например, второй вектор движения, когда второй вектор движения является вектором диспаратности движения), может деактивироваться. В таких случаях, видеокодер может идентифицировать другой кандидат предиктора вектора движения (212) (ветвь "Нет" этапа 214).

[0194] Если видеокодер определяет то, что предсказание векторов диспаратности движения активируется (либо, например, возможность активировать/деактивировать эту функцию отсутствует), видеокодер может определять предиктор вектора движения для второго вектора движения на основе первого вектора движения (206) (ветвь "Да" этапа 214). Помимо этого, видеокодер также может кодировать данные предсказания для второго блока с использованием предиктора вектора движения (208). Например, видеокодер может использовать предиктор вектора движения в режиме слияния либо для того, чтобы генерировать значение MVD.

[0195] Также следует понимать, что этапы, показанные и описанные относительно фиг. 11, предоставляются в качестве только одного примера. Иными словами, этапы способа по фиг. 11 не обязательно должны выполняться в порядке, показанном на фиг. 11, и могут выполняться меньшее число, дополнительные или альтернативные этапы.

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

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

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

[0199] В качестве примера, а не ограничения, эти считываемые компьютером носители хранения данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Так же любое подключение корректно называть машиночитаемым носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные способы, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя.

[0200] Тем не менее, следует понимать, что считываемые компьютером носители хранения данных и носители хранения данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители хранения данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число считываемых компьютером носителей.

[0201] Инструкции могут выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных и/или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, способы могут быть полностью реализованы в одной или более схем или логических элементов.

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

[0203] Описаны различные аспекты раскрытия сущности. Эти и другие аспекты находятся в пределах объема прилагаемой формулы изобретения.

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

2. Способ по п. 1, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

3. Способ по п. 1, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

4. Способ по п. 1, в котором второй блок видеоданных находится в первом временном местоположении.

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

6. Способ по п. 1, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

7. Способ по п. 1,
в котором, когда второй вектор движения содержит вектор диспаратности движения, определение предиктора вектора движения содержит масштабирование первого вектора диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором масштабирование первого вектора диспаратности движения содержит применение коэффициента масштабирования, содержащего расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором добавление предиктора вектора движения в упомянутый список кандидатов содержит добавление предиктора масштабированного вектора движения в упомянутый список кандидатов.

8. Способ по п. 7, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

9. Способ по п. 7, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

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

11. Способ по п. 10, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

12. Способ по п. 10, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

13. Способ по п. 10, в котором второй блок видеоданных находится в первом временном местоположении.

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

15. Способ по п. 10, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

16. Способ по п. 10,
в котором, когда второй вектор движения содержит вектор диспаратности движения, определение предиктора вектора движения содержит масштабирование первого вектора диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором масштабирование первого вектора диспаратности движения содержит применение коэффициента масштабирования, содержащего расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором добавление предиктора вектора движения в упомянутый список кандидатов содержит добавление предиктора масштабированного вектора движения в упомянутый список кандидатов.

17. Способ по п. 16, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

18. Способ по п. 16, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

19. Способ по п. 10, в котором список кандидатов-предикторов вектора движения содержит один или более других предикторов вектора движения и дополнительно содержащий выбор предиктора вектора движения из упомянутого списка кандидатов на основе значения индекса предиктора вектора движения.

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

21. Устройство по п. 20, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

22. Устройство по п. 20, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

23. Устройство по п. 20, в котором второй блок видеоданных находится в первом временном местоположении.

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

25. Устройство по п. 20, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

26. Устройство по п. 20,
в котором, когда второй вектор движения содержит вектор диспаратности движения, для определения предиктора вектора движения, упомянутый один или более процессоров выполнены с возможностью масштабировать первый вектор диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором для масштабирования первого вектора диспаратности движения упомянутый один или более процессоров выполнены с возможностью применять коэффициент масштабирования, содержащий расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором для добавления предиктора вектора движения в упомянутый список кандидатов упомянутый один или более процессоров выполнены с возможностью добавлять предиктор масштабированного вектора движения в упомянутый список кандидатов.

27. Устройство по п. 26, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

28. Устройство по п. 26, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

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

30. Устройство по п. 29, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

31. Устройство по п. 29, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

32. Устройство по п. 29, в котором второй блок видеоданных находится в первом временном местоположении.

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

34. Устройство по п. 29, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

35. Устройство по п. 29,
в котором, когда второй вектор движения содержит вектор диспаратности движения, для определения предиктора вектора движения упомянутый один или более процессоров выполнены с возможностью масштабировать первый вектор диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором для масштабирования первого вектора диспаратности движения упомянутый один или более процессоров выполнены с возможностью применять коэффициент масштабирования, содержащий расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором для добавления предиктора вектора движения в упомянутый список кандидатов упомянутый один или более процессоров выполнены с возможностью добавлять предиктор масштабированного вектора движения в упомянутый список кандидатов.

36. Устройство по п. 35, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

37. Устройство по п. 35, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

38. Устройство по п. 29, в котором список кандидатов-предикторов вектора движения содержит один или более других предикторов вектора движения и в котором упомянутый один или более процессоров дополнительно выполнены с возможностью выбирать предиктор вектора движения из упомянутого списка кандидатов на основе значения индекса предиктора вектора движения.

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

40. Устройство по п. 39, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

41. Устройство по п. 39, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

42. Устройство по п. 39, в котором второй блок видеоданных находится в первом временном местоположении.

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

44. Устройство по п. 39, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

45. Устройство по п. 39,
в котором, когда второй вектор движения содержит вектор диспаратности движения, средство для определения предиктора вектора движения содержит средство для масштабирования первого вектора диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором средство для масштабирования первого вектора диспаратности движения содержит средство для применения коэффициента масштабирования, содержащего расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором средство для добавления предиктора вектора движения в список кандидатов содержит средство для добавления предиктора масштабированного вектора движения в упомянутый список кандидатов.

46. Устройство по п. 45, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

47. Устройство по п. 45, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

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

49. Устройство по п. 48, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

50. Устройство по п. 48, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

51. Устройство по п. 48, в котором второй блок видеоданных находится в первом временном местоположении.

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

53. Устройство по п. 48, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

54. Устройство по п. 48,
в котором, когда второй вектор движения содержит вектор диспаратности движения, средство для определения предиктора вектора движения содержит средство для масштабирования первого вектора диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором средство для масштабирования первого вектора диспаратности движения содержит средство для применения коэффициента масштабирования, содержащего расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором средство для добавления предиктора вектора движения в список кандидатов содержит средство для добавления предиктора масштабированного вектора движения в упомянутый список кандидатов.

55. Устройство по п. 54, в котором расстояние между видами вектора диспаратности движения представляет собой разность между идентификатором вида опорного изображения и идентификатором вида целевого изображения, ассоциированного с упомянутым вектором диспаратности движения.

56. Устройство по п. 54, в котором расстояние между видами вектора диспаратности движения представляет собой геометрическое расстояние между местоположением камеры вида, содержащего опорное изображение, и местоположением камеры вида, содержащего целевое изображение, ассоциированное с упомянутым вектором диспаратности движения.

57. Устройство по п. 48, в котором список кандидатов-предикторов вектора движения содержит один или более других предикторов вектора движения и дополнительно содержащее средство для выбора предиктора вектора движения из упомянутого списка кандидатов на основе значения индекса предиктора вектора движения.

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

59. Считываемый компьютером носитель данных по п. 58, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

60. Считываемый компьютером носитель данных по п. 58, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

61. Считываемый компьютером носитель данных по п. 58, в котором второй блок видеоданных находится в первом временном местоположении.

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

63. Считываемый компьютером носитель данных по п. 58, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

64. Считываемый компьютером носитель данных по п. 58,
в котором, когда второй вектор движения содержит вектор диспаратности движения, для определения предиктора вектора движения инструкции побуждают упомянутый один или более процессоров масштабировать первый вектор диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором для масштабирования первого вектора диспаратности движения инструкции побуждают упомянутый один или более процессоров применять коэффициент масштабирования, содержащий расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором для добавления предиктора вектора движения в упомянутый список кандидатов инструкции побуждают упомянутый один или более процессоров добавлять предиктор масштабированного вектора движения в упомянутый список кандидатов.

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

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

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

68. Считываемый компьютером носитель данных по п. 67, в котором список кандидатов-предикторов вектора движения содержит предиктор вектора движения и один или более предикторов вектора движения, включающих в себя один или более предикторов временного вектора движения.

69. Считываемый компьютером носитель данных по п. 67, в котором второй блок видеоданных временно соседствует с первым блоком видеоданных.

70. Считываемый компьютером носитель данных по п. 67, в котором второй блок видеоданных находится в первом временном местоположении.

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

72. Считываемый компьютером носитель данных по п. 67, в котором второй блок видеоданных находится во втором временном местоположении, отличном от первого временного местоположения.

73. Считываемый компьютером носитель данных по п. 67,
в котором, когда второй вектор движения содержит вектор диспаратности движения, для определения предиктора вектора движения инструкции побуждают упомянутый один или более процессоров масштабировать первый вектор диспаратности движения, чтобы генерировать предиктор масштабированного вектора движения,
в котором для масштабирования первого вектора диспаратности движения инструкции побуждают упомянутый один или более процессоров применять коэффициент масштабирования, содержащий расстояние между видами второго вектора диспаратности движения, деленное на расстояние между видами первого вектора движения, к первому вектору диспаратности движения, и
в котором для добавления предиктора вектора движения в упомянутый список кандидатов, инструкции побуждают упомянутый один или более процессоров добавлять предиктор масштабированного вектора движения в упомянутый список кандидатов.

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

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

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



 

Похожие патенты:

Изобретение относится к видеокодированию. Техническим результатом является упрощение видеокодирования за счет сокращения количества битов, о которых видиокодер сигнализирует.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении быстродействия кодирования и декодирования при потенциальных издержках потерь сжимаемости.

Изобретение относится к программируемым мультимедийным системам управления, а именно к сопряжению устройства дистанционного управления с переносным электронным устройством.

Изобретение относится к отображению меню установки устройства отображения изображения и, в частности, к устройству отображения изображения, которое выводит изображение в по меньшей мере одном из двумерного (2D) и трехмерного (3D) режимов.

Изобретение относится к технологиям кодирования и декодирования видео. Техническим результатом является повышение эффективности декодирования видео за счет выполнения параллельного предсказания путем генерации оценочного списка кандидатов.

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

Изобретение относится к вычислительной технике. Технический результат заключается в снижении времени обработки и потребления энергии.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования слоя улучшения.

Изобретение относится к технологиям кодирования и декодирования видео. Техническим результатом является повышение эффективности кодирования или декодирования за счет сокращения числа контекстов контекстно-адаптированного бинарного арифметического кодирования (CABAC), которое используется для одного или нескольких синтаксических элементов.

Изобретение относится к вычислительной технике. Технический результат заключается в сокращении количества контекстов контекстно-адаптивного бинарного арифметического кодирования (САВАС), используемых для одного или нескольких синтаксических элементов без существенного влияния на эффективность кодирования.

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

Изобретение относится к передающему устройству, способу обработки информации, программе и передающей системе стандарта кабельного цифрового телевидения DVB-C2. Техническим результатом является повышение эффективности передачи широкополосного сигнала. Указанный технический результат достигается тем, что передающее устройство включает в себя первый блок получения, который получает первую информацию управления передачей; второй блок получения, который получает вторую информацию управления передачей, аналогичную информации, вводимой в другое передающее устройство; генерирующий блок, который обрабатывает целевые данные передачи на основании параметра, содержащегося в первой информации управления передачей, и генерирует данные, включающие в себя обработанные целевые данные передачи и вторую информацию управления передачей. 4 н. и 7 з.п. ф-лы, 21 ил.

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

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

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

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

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

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

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

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

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

Наверх