RU2577207C2 - Способ и устройство для видеокодирования - Google Patents

Способ и устройство для видеокодирования Download PDF

Info

Publication number
RU2577207C2
RU2577207C2 RU2014120207/12A RU2014120207A RU2577207C2 RU 2577207 C2 RU2577207 C2 RU 2577207C2 RU 2014120207/12 A RU2014120207/12 A RU 2014120207/12A RU 2014120207 A RU2014120207 A RU 2014120207A RU 2577207 C2 RU2577207 C2 RU 2577207C2
Authority
RU
Russia
Prior art keywords
motion vector
prediction
block
spatial prediction
candidate
Prior art date
Application number
RU2014120207/12A
Other languages
English (en)
Other versions
RU2014120207A (ru
Inventor
Мехмет Огуз БИСИ
Яни ЛАЙНЕМА
Кемал УГУР
Original Assignee
Нокиа Текнолоджиз Ой
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48191432&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2577207(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Нокиа Текнолоджиз Ой filed Critical Нокиа Текнолоджиз Ой
Publication of RU2014120207A publication Critical patent/RU2014120207A/ru
Application granted granted Critical
Publication of RU2577207C2 publication Critical patent/RU2577207C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

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

Description

Область техники
Предложен способ кодирования, способ декодирования, устройство, компьютерный программный продукт, кодер и декодер.
Предпосылки создания изобретения
Данный раздел имеет целью описание предпосылок или контекста настоящего изобретения, изложенного в формуле изобретения. Описание может включать идеи, которые могли бы быть предложены, но при этом не все из них уже были предложены или разработаны ранее. Таким образом, если не указано обратное, описанное в настоящем разделе не является существующим уровнем техники для описания и формулы изобретения настоящей заявки, и не признается таковым вследствие включения в настоящий раздел.
Видеокодек может иметь в своем составе кодер, который преобразует входные видеоданные в их сжатое представление, приспособленное для хранения и/или передачи, и декодер, который распаковывает сжатое представление видеоданных обратно в подходящую для просмотра форму, или только один из этих элементов. В кодере часть информации исходной видеопоследовательности может быть отброшена для представления видеоданных в более компактной форме, к примеру, с меньшим битрейтом.
Многие гибридные видеокодеки, например, работающие по стандартам кодирования Международного союза электросвязи ITU-T Н.263 и Н.264, обеспечивают кодирование видеоинформации в два этапа. На первом этапе предсказывают значения пикселей в определенной области изображения, или «блоке пикселей». Эти значения пикселей могут предсказываться, к примеру, с помощью механизмов компенсации движения, в которых применяются поиск и указание на область в одном из ранее кодированных видеокадров (или в позднее кодируемом видеокадре), близко соответствующую кодируемому блоку. В дополнение, значения пикселей могут быть предсказаны с помощью пространственных механизмов, в которых применяются поиск связей между некоторыми пространственными областями и передача указаний на эти связи, к примеру, с использованием значений пикселей вокруг блока пикселей, кодируемого заданным образом.
При этом методы предсказания, в которых используется видеоинформация из предыдущих или последующих изображений, могут называться методами внешнего предсказания (Inter prediction), тогда как подходы, в которых применяется предсказание с использованием видеоинформации внутри одного изображения, могут называться методами внутреннего предсказания (Intra prediction).
Второй этап - это этап кодирования расхождения между предсказанным блоком пикселей и исходным блоком пикселей. Это осуществляют, как правило, при помощи преобразования разности значений пикселей с использованием выбранного метода преобразования. Таким преобразованием может быть, например, дискретное косинусное преобразование (Discrete Cosine Transform, DCT) или какая-либо его разновидность. Преобразованная разность, после осуществления преобразования, может быть квантована и энтропийно кодирована.
Меняя точность процедуры квантования в кодере можно управлять балансом между достоверностью пиксельного представления (другими, словами, качеством изображения) и размером результирующего кодированного представления видеоданных (другими словами, размером файла или битрейтом передачи).
Декодер восстанавливает выходные видеоданные при помощи механизма предсказания, аналогичного применяемому кодером, для формирования предсказанного представления пиксельных блоков (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении изображения), и декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания для восстановления квантованного сигнала ошибки предсказания в пространственной области).
После применения процедур предсказания пикселей и декодирования ошибки декодер комбинирует сигнал предсказания и сигнал ошибки предсказания (значения пикселей), формируя выходной видеокадра.
В декодере (как и кодере) могут при этом применяться вспомогательные процедуры фильтрации для повышения качества выходного видеосигнала перед его передачей для отображения и/или перед сохранением его в качестве опорного предсказания для будущих кадров видеопоследовательности.
В некоторых видеокодеках, например, в 4-ой рабочей версии (Draft 4) кодека высокоэффективного видеокодирования (High Efficiency Video Coding), видеоизображения разбивают на блоки кодирования (coding units, CU), покрывающие область изображения. Каждый блок кодирования состоит из одного или более блоков предсказания (prediction units, PU), определяющих процедуру предсказания пиксельных значений блока кодирования, а также из одного или более блоков преобразования (transform units, TU), определяющих процедуру кодирования ошибки предсказания для пиксельных значений блока кодирования. Блок кодирования может представлять собой квадратный блок пиксельных значений, размер которого выбирают из заранее заданного множества возможных размеров блока кодирования. Блок кодирования максимально допустимого размера может быть назван наибольшим блоком кодирования (largest coding unit), при этом видеоизображение может разбиваться на неперекрывающиеся наибольшие блоки кодирования. Наибольший блок кодирования может быть, в свою очередь, разбит на комбинацию менее крупных блоков кодирования, например, путем рекурсивного разделения наибольшего блока кодирования и результирующих блоков кодирования. Каждый результирующий блок кодирования может иметь связанные с ним по меньшей мере один блок предсказания и по меньшей мере один блок преобразования. Каждый блок предсказания и каждый блок преобразования, с целью повышения детализации предсказания и процедур кодирования ошибки предсказания, соответственно, в свою очередь, могут быть разделены на менее крупные блоки предсказания и блоки преобразования. Каждый блок предсказания может включать связанную с ним информацию предсказания, которая определяет тип применяемого предсказания для пикселей в этом блоке предсказания (например, информация вектора движения для блоков предсказания при использовании метода внутреннего предсказания и информация о направленности внешнего предсказания для блоков предсказания при использовании метода внешнего предсказания). Аналогично, каждый блок преобразования может быть связан с информацией, описывающей процедуру декодирования ошибки предсказания для пиксельных значений в этом блоке преобразования (включая, например, информацию о коэффициентах дискретного косинусного преобразования (DCT)). На уровне блока кодирования может сигнализироваться информация о том, было ли применено кодирование ошибки предсказания в этом блоке кодирования или нет. В случае, если с блоком кодирования не связано остаточной ошибки предсказания, считается, что для этого блока кодирования блоки преобразования отсутствуют. Информация о разбиении изображения на блоки кодирования и о разделении блоков кодирования на блоки предсказания и блоки преобразования может сигнализироваться в битовом потоке, что позволяет декодеру восстанавливать исходную структуру этих блоков.
В некоторых из видеокодеков, при использовании метода компенсации движения, информацию о движении указывают с помощью векторов движения, связанных с каждым блоком пикселей изображения. Эти векторы движения отражают смещение блока пикселей кодируемого (в кодере) или декодируемого (в декодере) изображения, а также указывают на исходный блок предсказания в одном из ранее кодированных или декодированных изображениях (или кадрах). С целью повышения эффективности представления векторов движения их кодирование может выполняться дифференциально относительно предсказанного вектора движения, определенного для каждого блока. В некоторых видеокодеках предсказания векторов движения формируют заранее заданным способом, например, при помощи вычисления среднего значения кодированных или декодированных векторов движения смежных блоков.
Другим способом создания предсказания вектора движения является формирование списка, или набора, "кандидатов для предсказания" на основе блоков пикселей в текущем кадре и/или в смежных с ним кадрах, или других блоков пикселей во временных опорных изображениях, и сигнализация выбранного кандидата для предсказания в качестве предсказания вектора движения. Пространственное предсказание вектора движения - это предсказание, полученное исключительно на основе информации одного или более блоков пикселей в том же самом текущем кадре, тогда как временное предсказание вектора движения - это предсказание, полученное на основе информации одного или более блоков пикселей в кадре, не являющемся текущим кадром. Возможно также получение предсказаний вектора движения с комбинированием информации пространственного и временного предсказаний для одного или более кодированных блоков. Такие предсказания векторов движения называют пространственно-временными предсказаниями вектора движения.
В дополнение к предсказанию значений векторов движения может также предсказываться индекс опорного изображения в списке опорных изображений. Индекс опорного изображения может предсказываться на основе блоков пикселей текущего и/или смежных кадров, или других блоков пикселей во временном опорном изображении. При этом в некоторых высокопроизводительных видеокодеках применяют вспомогательный механизм кодирования и декодирования информации о движении, часто называемый режимом объединения (merge mode), в котором предсказание и использование всей информации поля движения, включающей вектор движения и соответствующий индекс опорного изображения для каждого имеющегося в наличии списка опорных изображений, может выполняться без каких-либо изменений или коррекций. Аналогично, предсказание информации поля движения может осуществляться с использованием информации поля движения блоков пикселей в текущем и/или смежных кадрах, или других блоков пикселей во временных опорных кадрах, при этом используемую информацию поля движения сигнализируют в списке кандидатов для полей движения, заполненных информацией полей движения блоков пикселей, доступных в текущем кадре и/или смежных блоков пикселей, или других блоков пикселей во временных опорных кадрах.
В некоторых из видеокодеков остаток предсказания после компенсации движения сначала преобразуют с использованием процедуры преобразования (например, DCT) и затем кодируют. Причиной этому является частое наличие определенной корреляции в упомянутом остатке, при этом преобразование во многих случаях позволяет снизить корреляцию и получить более эффективное кодирование.
В некоторых видеокодеках для поиска оптимальных моделей кодирования применяют функцию стоимости Лагранжа, например, для определения нужного режима макроблока и связанных с ним векторов движения. В функции стоимости подобного типа искажение изображения (точное или прогнозируемое) из-за методов кодирования с потерями и количество информации (точное или прогнозируемое), необходимое для представления пиксельных значений в некоторой области изображения связаны с использованием коэффициента λ:
C = D + λ R ( 1 )
Figure 00000001
,
где С - оптимизируемое значение функции Лагранжа, D - искажение изображения (например, среднеквадратическая ошибка) с учетом режима и векторов движения, a R - количество битов, необходимое для представления данных, требуемых для восстановления блока изображения в декодере (включая количество данных для представления кандидатов для векторов движения).
В некоторых видеокодеках (например, в гибридных) может формироваться список предсказаний векторов движения (motion vector predictions, MVP), состоящий из векторов движения пространственно смежных блоков пикселей (пространственные MVP) и/или векторов движения блоков пикселей в ранее декодированном кадре (временные MVP). Один из кандидатов для векторов в этом списке сигнализируют для использования его в качестве предсказания вектора движения текущего блока. После формирования списка некоторые из кандидатов для векторов движения могут иметь идентичную информацию о движении. В таком случае идентичные векторы-кандидаты могут быть удалены, чтобы исключить избыточность. При декодировании, если информация по временным предсказаниям векторов движении недоступна, например, в результате потери опорного кадра, декодер может не иметь информации о необходимости удаления кандидата для временного предсказания вектора движения из списка. Это может привести к возникновению неопределенности при сопоставлении декодированного индекса кандидата для предсказания с кандидатами для предсказания, решение об удалении которых основано на сравнении информации о движении с временными предсказаниями векторов движения. В результате может произойти ложное назначение кандидатов для векторов движения, что ведет к ухудшению качества изображения и к дальнейшему распространению ложной информации о движении в процессе декодирования.
Сущность изобретения
В настоящем изобретении предложен способ формирования списка предсказаний векторов движения для блока пикселей в изображении. В некоторых из вариантов осуществления настоящего изобретения в видеокодеках при построении списка кандидатов для предсказания движения применяют метод, позволяющий снизить сложность реализации этой процедуры. Это может достигаться за счет выполнения ограниченного количества сравнений информации о движении среди пар-кандидатов с целью удаления избыточных кандидатов, чтобы не выполнять сравнения всех имеющихся пар кандидатов. Решение о сравнении двух кандидатов может основываться на порядке рассматриваемых кандидатов в списке и/или на режиме кодирования/предсказания, и/или на местоположении блоков пикселей, связанных с этими кандидатами для предсказания. В некоторых из вариантов осуществления настоящего изобретения в видеокодеке при кодировании информации о движении применяют процедуру объединения и создают список кандидатов для предсказания движения, один кандидат из которого будет сигнализирован в качестве информации о движении для текущего блока кодирования или предсказания. Кандидаты для предсказания движения могут состоять из нескольких пространственных предсказаний движения и временного предсказания движения. Кандидатов для пространственного предсказания получают, например, на основе информации о движении пространственно смежных блоков пикселей.
В соответствии с первым аспектом настоящего изобретения предложен способ, включающий:
прием блока пикселей, включающего блок предсказания; определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии со вторым аспектом настоящего изобретения предложен способ, включающий:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с третьим аспектом настоящего изобретения, предложено устройство, имеющее в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с четвертым аспектом настоящего изобретения предложено устройство, имеющее в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с пятым аспектом настоящего изобретения, предложен носитель данных, содержащий хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема блока пикселей, включающего блок предсказания; определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В соответствии с шестым аспектом настоящего изобретения предложен носитель данных, содержащий хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В соответствии с седьмым аспектом настоящего изобретения, предложено устройство, включающее:
средства приема блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В соответствии с восьмым аспектом настоящего изобретения, предложено устройство, включающее:
средства приема кодированного блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
Описание чертежей
Для более глубокого понимания настоящего изобретения далее, в качестве примеров, будут осуществляться ссылки на приложенные чертежи, где:
Фиг. 1 схематично иллюстрирует электронное устройство, в котором применяются некоторые из вариантов осуществления настоящего изобретения;
Фиг. 2 схематично иллюстрирует абонентское оборудование, подходящее для применения некоторых из вариантов осуществления настоящего изобретения;
Фиг. 3 также схематично иллюстрирует электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые связаны с помощью беспроводных и проводных сетевых соединений;
Фиг. 4а схематично иллюстрирует один из вариантов осуществления настоящего изобретения в составе кодера;
Фиг. 4b схематично иллюстрирует один из вариантов формирования и модификации списка опорных изображений предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения;
Фиг. 5а и 5b иллюстрируют блок-схему алгоритма, демонстрирующую работу одного из вариантов осуществления настоящего изобретения в отношении кодера, показанного на фиг. 4а;
Фиг. 6а иллюстрирует один из примеров пространственного и временного предсказания блока предсказания;
Фиг. 6b иллюстрирует другой пример пространственного и временного предсказания для блока предсказания;
Фиг. 7 схематично иллюстрирует один из вариантов осуществления настоящего изобретения в составе декодера;
Фиг. 8а и 8b иллюстрируют блок-схему алгоритма, демонстрирующую работу одного из вариантов осуществления настоящего изобретения в отношении декодера, показанного на фиг. 7;
Фиг. 9 иллюстрирует пример блока кодирования и нескольких блоков пикселей, смежных с этим блоком кодирования;
Фиг. 10а иллюстрирует пример горизонтального разбиения блока кодирования;
Фиг. 10b иллюстрирует пример вертикального разбиения блока кодирования;
Фиг. 11а иллюстрирует местоположения пяти блоков А0, А1, В0, В1, В2, пространственно смежных с блоком предсказания, сформированного как второй блок предсказания разбитого по горизонтали блока кодирования;
Фиг. 11b иллюстрирует местоположения пяти блоков, пространственно смежных с блоком предсказания, сформированного как второй блок предсказания разбитого по вертикали блока кодирования; и
Фиг. 12 иллюстрирует пример некоторых из блоков, пространственно смежных с блоком кодирования.
Подробное описание некоторых из примеров осуществления изобретения
Ниже более подробно описаны устройства и возможные механизмы, подходящие для повышения точности предсказания, и следовательно, потенциального уменьшения объема информации, передаваемой в системах видеокодирования. С этой целью обратимся сначала к фиг. 1, где проиллюстрирована упрощенная блок-схема одного из примеров аппаратуры, или электронного устройства 50, которое может иметь в своем составе кодек в соответствии с одним из вариантов осуществления настоящего изобретения.
Электронное устройство 50 может, к примеру, представлять собой терминал или абонентское оборудование системы беспроводной связи. Тем не менее, нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы в любых электронных устройствах или аппаратуре, где необходимы кодирование и декодирование, или же кодирование или декодирование видеоизображений.
Устройство 50 может иметь в своем составе корпус 30 для размещения и защиты устройства. Устройство 50 может также включать дисплей 32 в виде дисплея на жидких кристаллах. В других вариантах осуществления настоящего изобретения упомянутый дисплей может быть выполнен по любой технологии, подходящей для отображения изображений или видеоинформации. Устройство 50 может также включать клавиатуру 34. В других вариантах осуществления настоящего изобретения может применяться любой подходящий интерфейс обмена данными или пользовательский интерфейс. К примеру, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного дисплея. Устройство может включать микрофон 36 или любое другое подходящее устройство ввода аудиоинформации, которое может быть устройством ввода цифрового или аналогового сигнала. Устройство 50 может также включать устройство вывода аудиоинформации, которое в вариантах осуществления настоящего изобретения может представлять собой любое из следующего: головной телефон 38, громкоговоритель или же аналоговое или цифровое соединение для вывода аудиоинформации. Устройство 50 может также включать аккумулятор 50 (или, в других вариантах осуществления настоящего изобретения, устройство может снабжаться электроэнергией от любого подходящего мобильного энергетического устройства, например, солнечной батареи, топливной батареи или заводного генератора). Устройство может также включать инфракрасный порт 42 для связи с другими устройствами в ближней зоне прямой видимости. В других вариантах осуществления настоящего изобретения устройство может включать любые подходящие решения для связи малой дальности, например, беспроводное соединение Bluetooth или проводное соединение USB/Firewire.
Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, которая в различных вариантах осуществления настоящего изобретения может хранить данные одновременно в форме видеоинформации и аудиоинформации, и/или может также хранить инструкции для исполнения в контроллере 56. Контроллер 56 может быть также соединен со схемами 54 кодека, способными осуществлять кодирование и декодирование аудио- и/или видеоданных или являться вспомогательным средством при кодировании и декодировании, выполняемом контроллером 56.
Устройство 50 может также включать устройство 48 чтения карт и смарт-карту 46, например, карту UICC и устройство чтения UICC-карт, для предоставления информации об абоненте и для обеспечения возможности предоставления аутентификационной информации с целью аутентификации и авторизации абонента в сети.
Устройство 50 может включать схемы 52 радиоинтерфейса, связанные с контроллером, которые могут использоваться для формирования сигналов беспроводной связи, например, для связи с сетью сотовой связи, системой беспроводной связи или беспроводной локальной вычислительной сетью. Устройство 50 может также включать антенну 44, связанную со схемами 52 радиоинтерфейса, для передачи радиочастотных сигналов, формируемых в схемах 52 радиоинтерфейса, в другое устройство (или устройства), а также для приема радиочастотных сигналов от другого устройства (или устройств).
В некоторых вариантах осуществления настоящего изобретения устройство 50 включает камеру, способную записывать или регистрировать отдельные кадры, которые затем передают в кодек 54 или контроллер для обработки. В некоторых вариантах осуществления настоящего изобретения устройство может принимать от другого устройства данные видеоизображений для обработки перед их передачей и/или хранением. В некоторых вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования либо беспроводным способом, либо по проводному соединению.
Обратимся к фиг. 3, где изображена система 10, в которой могут использоваться различные варианты осуществления настоящего изобретения. Система 10 включает несколько устройств связи, способных осуществлять связь при помощи одной или нескольких сетей. В состав системы 10 может входить любая комбинация проводных и беспроводных сетей, включая, без ограничения перечисленным, беспроводную сотовую телефонную сеть (например, сеть GSM, UMTS, CDMA и т.п.), беспроводную локальную вычислительную сеть (wireless local area network, WLAN), например, в соответствии с определением в любом из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную вычислительную сеть Ethernet, локальную вычислительную сеть типа «маркерное кольцо», глобальную сеть и Интернет.
Система 10 может включать как проводные, так и беспроводные устройства связи, а также устройство 50, подходящее для реализации вариантов осуществления настоящего изобретения.
В качестве примера на фиг. 3 показана мобильная телефонная сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, без ограничения перечисленным, беспроводные соединения с большим радиусом действия, беспроводные соединения с малым радиусом действия, а также различные проводные соединения, включая, без ограничения перечисленным, телефонные линии, кабельные линии, линии электропередач и аналогичные каналы связи.
Примерами устройств связи в системе 10 могут служить, без ограничения перечисленным, электронное устройство 50, комбинация карманного персонального компьютера (personal digital assistant, PDA) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (integrated messaging device, IMD), настольный компьютер 20, ноутбук 22 и т.д. Устройства 50 связи могут быть как стационарными, так и мобильными, например, они могут переноситься лицами, находящимися в движении. Устройство 50 может также размещаться на транспортном средстве, включая, без ограничения перечисленным, автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
Некоторые из этих или других устройств могут как посылать, так и принимать вызовы и сообщения, а также осуществлять связь с операторами связи при помощи беспроводного соединения 25 с базовой станцией 24. Базовая станция 24 может быть соединена с сетевым сервером 26, обеспечивающим связь между средствами 11 связи и Интернетом 28. Система может включать дополнительные устройства связи, а также устройства связи других типов.
Устройства связи могут осуществлять связь с использованием различных технологий передачи данных, включая, без ограничения перечисленным, множественный доступ с кодовым разделением (Code Division Multiple Access, CDMA), глобальную систему мобильной связи (Global System for Mobile Communications, GSM), универсальную систему мобильной связи (Universal Mobile Telecommunication System, UMTS), множественный доступ с разделением по времени (Time Division Multiple Access, TDMA), множественный доступ с разделением по частоте (Frequency Division Multiple Access, FDMA), протокол управления передачей/протокол Интернета (Transmission Control Protocol/Internet Protocol, TCP-IP), службу коротких сообщений (Short Messaging Service, SMS), службу мультимедийных сообщений (Multimedia Messaging Service, MMS), электронную почту, сервис мгновенной передачи сообщений (Instant Messaging Service, IMS), Bluetooth, IEEE 802.11 и любые аналогичные технологии беспроводной связи. Устройство связи, используемое при реализации различных вариантов осуществления настоящего изобретения, может осуществлять связь с использованием различных сред передачи данных, включая, без ограничения, радиосоединения, инфракрасные, лазерные, кабельные соединения или любые другие подходящие соединения.
Обратимся к фиг. 4а, где проиллюстрирована блок-схема видеокодера, подходящего для реализации вариантов осуществления настоящего изобретения. Также рассмотрим фиг. 5а и 5b, где в виде блок-схемы алгоритма проиллюстрирована работа одного из примеров осуществления кодера в соответствии с настоящим изобретением, а именно, в отношении создания списка кандидатов для предсказания.
На фиг. 4а показан кодер, который включает устройство 302 предсказания пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. Также на фиг. 4а показан один из вариантов осуществления устройства 302 предсказания пикселей, включающего устройство 306 внешнего предсказания, устройство 308 внутреннего предсказания, селектор 310 режима, фильтр 316 и память 318 опорных кадров. В данном варианте осуществления настоящего изобретения селектор 310 режима включает процессор 381 блоков пикселей и вычислитель 382 функции стоимости. Кодер может также иметь в своем составе энтропийный кодер 330 для энтропийного кодирования битового потока.
На фиг. 4b показан один из вариантов осуществления устройства 306 внешнего предсказания. Устройство 306 внешнего предсказания включает селектор 360 опорного кадра для выбора опорного кадра или кадров, устройство 361 определения векторов движения, модификатор 363 списка предсказаний и селектор 364 вектора движения. Все эти элементы (или их часть) могут быть реализованы, например, в процессоре 362 предсказаний или с помощью других средств.
Устройство 302 предсказания пикселей принимает кодируемое изображение 300 одновременно в устройство 306 внешнего предсказания (которое определяет разницу между этим изображением и опорным кадром 318 компенсации движения) и в устройство 308 внутреннего предсказания (которое определяет предсказание для блока изображения, исходя только из уже обработанных частей текущего кадра или изображения). Выходные данные из устройства внешнего предсказания и из устройства внутреннего предсказания могут быть переданы в селектор 310 режима. Устройство 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, с помощью каждого из этих режимов может осуществляться внутреннее предсказание, и затем сигнал предсказания может предоставляться в селектор 310 режима. В селектор 310 режима передается также копия изображения 300.
Селектор 310 режима определяет, какой режим кодирования использовать для кодирования текущего блока. Если селектор 310 режима принимает решение использовать режим внешнего предсказания, то он передает выходные данные устройства 306 внешнего предсказания на выход селектора 310 режима. Если селектор 310 режима принимает решение использовать режим внутреннего предсказания, то он передает на выход селектора 310 режима выходные данные одного из режимов внутреннего предсказания.
Выходные данные селектора режима передают в первое суммирующее устройство 321. Первое суммирующее устройство может вычитать выходные данные устройства 302 предсказания пикселей из изображения 300 с формированием первого сигнала 320 ошибки предсказания, который подают на вход кодера 303 ошибки предсказания.
Также устройство 302 предсказания пикселей принимает от устройства 339 предварительного восстановления комбинацию предсказанного представления блока 312 изображения и выходные данные 338 кодера 304 ошибки предсказания. Предварительно восстановленное изображение 314 может быть передано в устройство 308 внутреннего предсказания и фильтр 316. Фильтр 316, принимающий предварительное представление блока, может выполнять фильтрацию этого предварительного представления и выдавать окончательное восстановленное изображение 340, которое может сохраняться в памяти 318 опорных кадров. Память 318 опорных кадров может иметь соединение с устройством 306 внешнего предсказания и использоваться для предоставления опорного изображения, с которым сравнивают будущее изображение 300 во время выполнения операций внешнего предсказания.
Устройство 302 предсказания пикселей может быть сконфигурировано таким образом, чтобы при функционировании реализовывать любой из известных на существующем уровне техники алгоритмов предсказания пикселей.
Устройство 302 предсказания пикселей может также включать фильтр 385 для фильтрации предсказанных значений перед выводом их из устройства 302 предсказания пикселей.
Далее более подробно будет описана работа кодера 303 ошибки предсказания и декодера 304 ошибки предсказания. В приведенных ниже примерах кодер формирует изображения в виде макроблоков 16×16 пикселей, из которых затем формируется полное изображение или кадр.
Итак, в приведенных ниже примерах устройство 302 предсказания пикселей выдает последовательность предсказанных макроблоков размером 16×16 пикселей, а первое суммирующее устройство 321 выдает последовательность макроблоков данных остатка (размером 16×16 пикселей), которые могут представлять расхождение между первым макроблоком в изображении 300 и предсказанным макроблоком (выходными данными устройства 302 предсказания пикселей). Следует понимать, что может использоваться и другой размер макроблоков.
Кодер 303 ошибки предсказания имеет в своем составе блок 342 преобразования и квантователь 344. Блок 342 преобразования преобразует первый сигнал 320 ошибки предсказания в область преобразования. Таким преобразованием является, к примеру, преобразование DCT. Квантователь 344 квантует сигнал, например, коэффициенты DCT, в области преобразования и формирует квантованные коэффициенты.
Декодер 304 ошибки предсказания принимает выходные данные от кодера 303 ошибки предсказания, выполняет процедуры, обратные кодеру 303 ошибки предсказания, и формирует декодированный сигнал 338 ошибки предсказания, который, после комбинирования с предсказанным представлением блока 312 изображения во втором суммирующем устройстве 339, образует предварительное восстановленное изображение 314. Декодер ошибки предсказания можно рассматривать как имеющий в своем составе деквантователь 346, который деквантует квантованные значения коэффициентов, например, коэффициентов DCT, и восстанавливает преобразованный сигнал, а также как включающий блок 348 обратного преобразования, который выполняет обратное преобразование и формирует восстановленный сигнал (из ранее преобразованного сигнала), при этом выходные данные блока 348 обратного преобразования содержат восстановленный блок (или блоки). Декодер ошибки предсказания может также включать фильтр макроблоков (не показан), который может фильтровать восстановленный макроблок в соответствии с дополнительной декодированной информацией и параметрами фильтрации.
Ниже более подробно описана работа одного из примеров устройства 306 внешнего предсказания. Устройство 306 внешнего предсказания принимает текущий блок пикселей с целью выполнения внешнего предсказания. Допустим, текущий блок пикселей уже имеет один или более соседних блоков пикселей, которые были кодированы и для которых уже были определены векторы движения. К примеру, такими блоками пикселей могут быть блок пикселей слева от текущего блока пикселей и/или блок пикселей над текущим блоком. Пространственные предсказания векторов движения для текущего блока пикселей могут быть сформированы, например, с помощью векторов движения уже кодированных смежных блоков пикселей и/или несмежных блоков пикселей в том же слайсе или кадре с использованием линейных или нелинейных функций пространственного предсказания векторов движения, с использованием комбинирования различных пространственных предсказателей векторов движения с линейными или нелинейными операциями, или с помощью любых других подходящих средств, не использующих временную опорную информацию. Также получение предсказаний векторов движения может осуществляться с помощью комбинирования одновременно пространственной и временной информации предсказания для одного или более кодированных блоков пикселей. Такие предсказания векторов движения могут названы пространственно-временными предсказаниями векторов движения.
Опорные кадры, использованные при кодировании упомянутых смежных блоков пикселей, были сохранены в памяти 404 опорных кадров. Опорные кадры могут являться краткосрочными или долгосрочными опорными изображениями, при этом каждый опорный кадр может иметь уникальный индекс, указывающий на местоположение этого опорного кадра в памяти опорных кадров. Если опорный кадр более не используется в качестве такового, он может быть удален из памяти опорных кадров или помечен как не являющийся опорным, тогда место, в котором хранится этот опорный кадр, может быть занято новым опорным кадром. В дополнение к опорным кадрам смежных блоков пикселей, селектор 360 опорных кадров может также выбирать один или более кадров в качестве потенциальных опорных кадров и сохранять их в памяти опорных кадров.
Информация векторов движения кодированных блоков также сохраняется в памяти, чтобы устройство 306 внешнего предсказания могло получать информацию векторов движения при обработке кандидатов для векторов движения для текущего блока пикселей.
В некоторых вариантах осуществления настоящего изобретения векторы движения хранят в одном или более списках. К примеру, векторы движения кадров, для которых предсказание выполняется в одном направлении (например, Р-кадры), могут храниться в списке, называемом list0. Для кадров, предсказание для которых выполняется в двух направлениях (например, В-кадры), может храниться два списка (list0 и list1), тогда как для кадров с мульти-предсказанием может храниться более двух списков. Индексы опорных кадров, возможно связанные с упомянутыми векторами движения, также хранят в одном или более списках.
В некоторых вариантах осуществления настоящего изобретения могут выполняться две или более процедуры предсказания векторов движения, при этом каждая из процедур может иметь отличающийся процесс создания набора кандидатов. В одной из процедур могут использоваться только значения векторов движения. В другой процедуре, которая может называться «режимом объединения», каждый элемент-кандидат может включать: 1) информацию о том, что «для блока пикселей было выполнено однонаправленное предсказание с использованием только списка list0 », или о том, что «для блока пикселей было выполнено однонаправленное предсказание с использованием только списка list0», или же о том, что «для блока пикселей было выполнено двунаправленное предсказание с использованием списка list0 и списка list1», 2) значение вектора движения для списка list0, 3) индекс опорного изображения в списке list0, 4) значение вектора движения для списка list1, 5) индекс опорного изображения в списке list1. Соответственно, когда необходимо выполнить сравнение двух кандидатов для предсказания, чтобы определить их соответствие друг другу, сравнивают не только значения векторов движения, но и пять указанных выше значений. В противном случае, если любое из сравнений указывает на то, что кандидаты для предсказания имеют неидентичную информацию о движении, дальнейшие сравнения выполнять не требуется.
Устройство 361 определения векторов движения определяет кандидатов для векторов движения для текущего кадра с использованием одного или более векторов движения одного или более смежных блоков пикселей и/или других блоков пикселей в том же кадре и/или блока пикселей с тем же местоположением (и/или других блоков пикселей) в одном или более других кадрах. Этих кандидатов для векторов движения можно назвать набором кандидатов для предсказания или набором предсказаний. Соответственно, каждый кандидат для предсказания представляет собой вектор движения для одного или более уже кодированных блоков. В некоторых вариантах осуществления настоящего изобретения вектор движения кандидата для предсказания назначают равным вектору движения смежного блока пикселей в том же списке, если текущий блок пикселей и смежный блок пикселей ссылаются на одни и те же опорные кадры для этого списка. Также, в случае временного предсказания, могут присутствовать один или более ранее кодированных кадров, при этом в качестве кандидатов для предсказания для текущего блока могут быть выбраны векторы движения блока пикселей с тем же местоположением или векторы движения других блоков пикселей в одном из ранее кодированных кадров. Кандидат для временного предсказания вектора движения может формироваться любыми средствами, в которых, помимо текущего кадра, применяются другие кадры.
Кандидаты для векторов движения могут быть также получены с использованием более чем одного вектора движения одного или более других блоков пикселей, например, блоков пикселей, смежных с текущим блоком пикселей, или блоков пикселей с тем же местоположением в одном или более других кадрах. В качестве примера, может использоваться любая комбинация вектора движения блока пикселей слева от текущего блока пикселей, вектора движения блока пикселей сверху от текущего блока пикселей, и вектора движения блока пикселей в верхнем правом углу от текущего блока пикселей (т.е. блока пикселей справа от блока, который расположен сверху от текущего блока пикселей). Упомянутая комбинация может представлять собой среднее значение векторов движения или может вычисляться с использованием других формул. К примеру, один или более векторов, используемых в этой комбинации, могут масштабироваться с использованием коэффициента масштабирования, к ним может добавляться смещение и/или могут добавляться постоянные векторы движения. В некоторых вариантах осуществления настоящего изобретения комбинированный вектор движения получают на основе временных и пространственных векторов движения одновременно, например, вектора движения одного или более блоков пикселей, смежных с текущим блоком пикселей, или других блоков пикселей, и вектора движения блока пикселей, имеющего то же местоположение, или другого блока пикселей, в другом кадре.
Если какой-либо из смежных блоков пикселей не имеет информации о движении, то вместо нее может использоваться заданный по умолчанию вектор движения, например, нулевой вектор движения.
На фиг. 9 проиллюстрирован один из примеров блока 900 кодирования и нескольких блоков 901-905, смежных с этим блоком кодирования. Как видно из фиг. 9, если блок 900 кодирования является текущим блоком пикселей, то смежные блоки 901-905, обозначенные А0, А1, В0, В1 и В2, могут быть смежными блоками пикселей, подходящими для использования при получении кандидатов для вектора движения.
Если текущее количество кандидатов ограничено или недостаточно, может требоваться создание вспомогательных, или дополнительных, предсказаний векторов движения на основе ранее добавленных предсказаний. Такое создание дополнительных кандидатов может выполняться при помощи комбинирования двух ранее полученных предсказаний и/или обработки одного из предыдущих кандидатов с масштабированием или добавлением смещения, или при помощи добавления нулевого вектора движения, с различными опорными индексами. Соответственно, устройство 361 определения векторов движения может анализировать, сколько кандидатов для векторов движения может быть определено и сколько кандидатов для векторов движения потенциально существует для текущего блока пикселей. Если количество потенциальных кандидатов для векторов движения меньше, чем пороговое значение, то устройство 361 определения векторов движения может создавать дополнительные предсказания векторов движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый комбинированный вектор движения может быть получен на основе векторов движения из различных списков. К примеру, один из векторов движения может быть получен комбинированием одного вектора движения из списка list0 и одного вектора движения из списка list1, например, если смежный блок пикселей или блок пикселей с тем же местоположением представляет собой блок пикселей с двунаправленным предсказанием, и для этого блока пикселей с двунаправленным предсказанием в списках list0 и list1 имеется по меньшей мере по одному вектору движения.
Чтобы отличать текущий блок пикселей от кодированных/ декодированных блоков пикселей, векторы движения которых используют в качестве кандидатов для векторов движения, эти кодированные/ декодированные блоки в настоящей заявки называются также опорными блоками пикселей.
В некоторых вариантах осуществления настоящего изобретения получают (например, копированием) не только информацию векторов движения опорного блока (или блоков) пикселей, но также опорный индекс опорного блока пикселей в списке опорных изображений, который может копироваться в список кандидатов. Также может копироваться информация о том, было ли выполнено однонаправленное предсказание блока с использованием только списка list0, или было выполнено однонаправленное предсказание блока с использованием только списка list1, или же было выполнено двунаправленное предсказание блока с использованием списков list0 и list1. Этот список кандидатов может быть также назван набором кандидатов или набором кандидатов для предсказания векторов движения.
На фиг. 6а проиллюстрирован пример пространственного и временного предсказания блока предсказания. Показан текущий блок 601 пикселей в кадре 600 и смежный с ним блок 602 пикселей, который уже был кодирован. С помощью устройства 361 определения векторов движения был определен вектор 603 движения для смежного блока 602 пикселей, который указывает на блок 604 пикселей в предыдущем кадре 605. Данный вектор движения может быть использован как потенциальное пространственное предсказание 610 вектора движения для текущего блока пикселей. На фиг. 6 показано, что блок 606 пикселей с тем же положением в предыдущем кадре 605 (т.е. с тем же положением, что и текущий блок, но в предыдущем кадре) имеет вектор 607 движения, указывающий на блок 609 пикселей в другом кадре 608. Данный вектор 607 может быть использован как потенциальное временное предсказание 611 вектора движения для текущего кадра.
На фиг. 6b проиллюстрирован еще один пример пространственного и временного предсказания блока предсказания. В данном примере для блока 606 пикселей предыдущего кадра 605 было использовано двунаправленное предсказание на основе блока 609 пикселей из кадра, предшествующего кадру 605, и блока 612 пикселей из кадра, следующего за текущим кадром 600. Временное предсказание вектора движения для текущего блока 601 пикселей может быть сформировано с использованием обоих векторов 607, 614 движения или только одного из них.
Далее будет подробно описана работа модификатора 363 списка предсказания на примере блок-схем алгоритмов фиг. 5а и 5b. На шаге 500 фиг. 5а модификатор 363 списка предсказаний инициализирует список предсказаний векторов движения заданными по умолчанию значениями. Модификатор 363 списка предсказаний может также инициализировать индекс списка начальным значением, например, нулевым. Затем, на шаге 501, модификатор списка предсказаний проверяет, присутствуют ли кандидаты для векторов движения для обработки. Если в наборе предсказаний имеется по меньшей мере один кандидат для вектора движения для обработки, то модификатор 363 списка предсказаний формирует следующего кандидата для вектора движения, который может представлять собой временной вектор движения или пространственный вектор движения. Сравнение может представлять собой проверку на идентичность или эквивалентность, или же сравнение (абсолютного значения) разности с пороговым значением или какой-либо иной метрикой похожести.
Ниже будет более подробно описан процесс объединения для кодирования информации о движении в соответствии с одним из примеров осуществления настоящего изобретения. Кодер создает список кандидатов для предсказания движения, из которого один кандидат будет сигнализирован в качестве информации о движении для текущего блока кодирования или блока предсказания. Кандидаты для предсказания движения могут состоять из нескольких пространственных предсказаний движения и одного временного предсказания движения. Пространственные кандидаты могут быть получены, например, на основе информации о движении пространственно смежных блоков А0, А1, В0, В1, В2 пикселей, информацию о движении которых используют в качестве кандидатов для пространственного предсказания движения. Кандидат для временного предсказания движения может быть получен при помощи обработки движения блока пикселей в другом, а не в текущем кадре. В данном примере осуществления настоящего изобретения операции кодера по построению списка объединения для пространственных кандидатов могут включать описанные ниже действия. Эти операции могут выполняться, к примеру, модификатором 363 списка предсказаний.
Может быть задано максимальное количество кандидатов для пространственного предсказания, включаемых в список объединения. Это максимальное количество может сохраняться, например, в памяти 58 устройства 50 или в другое подходящее место. Допускается также определение этого максимального количества с помощью других средств, или оно может определяться в программном обеспечении кодера устройства 50.
В некоторых вариантах осуществления настоящего изобретения упомянутое максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список объединения, равно четырем, однако в других вариантах осуществления настоящего изобретения это максимальное количество может быть меньше четырех или больше четырех.
В данном примере кандидатами для пространственного предсказания векторов движения являются пространственно смежные блоки А0, А1, В0, В1, В2 пикселей. Кандидат для пространственного предсказания А1 вектора движения расположен слева от блока предсказания, когда кодирование и декодирование осуществляется в порядке слева направо и сверху вниз кадра, области изображения или иного кодируемого и декодируемого элемента. Соответственно, кандидат В1 для пространственного предсказания расположен над блоком предсказания, кандидат ВО для пространственного предсказания вектора движения расположен справа от кандидата В1 для пространственного предсказания вектора движения; кандидат А0 для пространственного предсказания вектора движения расположен под кандидатом А1 для пространственного предсказания вектора движения; и кандидат В2 для пространственного предсказания вектора движения расположен в том же столбце, что и кандидат А1 для пространственного предсказания вектора движения, и в той же строке, что и кандидат В1 для пространственного предсказания вектора движения. Другими словами, кандидат В2 для пространственного предсказания является смежным с блоком предсказания по диагонали, как можно видеть, например, на фиг. 9.
Эти кандидаты для пространственного предсказания векторов движения могут обрабатываться в заранее заданном порядке, например: А1, В1, В0, А0 и В2. Кандидатом для пространственного предсказания вектора движения, выбираемым первым для дальнейшего анализа, таким образом, будет А1. Перед выполнением дальнейшего анализа выбранного кандидата для пространственного предсказания вектора движения может выполняться определение, содержит ли уже список объединения максимальное количество кандидатов для пространственного предсказания векторов движения. Соответственно, модификатор 363 списка предсказаний сравнивает, на шаге 502, количество кандидатов для пространственного предсказания векторов движения в списке объединения с упомянутым максимальным количеством, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения не меньше, чем упомянутое максимальное количество, то выбранного кандидата для пространственного предсказания вектора движения не включают в список объединения, и процедура построения списка объединения может быть остановлена (шаг 526). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем упомянутое максимальное количество, выполняют дальнейший анализ выбранного кандидата для пространственного предсказания вектора движения (шаги 504-522).
Для всех кандидатов для пространственного предсказания векторов движения, для которых планируется выполнение дальнейшего анализа, может выполняться проверка некоторых или всех из описанных ниже условий, чтобы определить, следует ли включать кандидата для пространственного предсказания вектора движения в список объединения.
Модификатор 363 списка предсказаний проверяет (на шаге 504), доступен ли блок предсказания или блок пикселей, охватывающий блок кандидата для пространственного предсказания вектора движения, для предсказания движения. Если нет, то данный кандидат не включается в список объединения. Причиной, по которой блок пикселей может быть недоступен, может быть кодирование этого блока пикселей во внутреннем режиме предсказания, или то, что он расположен в другом слайсе или вне области изображения.
Для всех кандидатов для пространственного предсказания векторов движения, если в дополнение к описанным выше общим условиям выполняется любое из описанных ниже условий, то кандидата для предсказания не включают в список объединения, а в противном случае - включают.
Модификатор 363 списка предсказаний определяет (на шаге 506), какой из кандидатов для пространственного предсказания векторов движения в наборе кандидатов для пространственного предсказания векторов движения рассматривается. Если этим кандидатом для пространственного предсказания вектора движения является блок А1, то на шаге 508 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по вертикали на два прямоугольных блока 103, 104 предсказания, как это показано на фиг. 10b, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 508), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по вертикали на два прямоугольных блока предсказания, а разбит горизонтально на два прямоугольных блока 101, 102 в соответствии с иллюстрацией фиг. 10а, и текущий блок предсказания является вторым блоком предсказания в последовательности кодирования/декодирования, и при этом блок А1 включает ту же информацию о движении, что и блок В1 (шаг 510), это кандидата для пространственного предсказания (блок А1) вектора движения не включают в список объединения. В примере на фиг. 10а вторым блоком предсказания является нижний блок 102 предсказания блока 100 кодирования, а в примере фиг. 10b вторым блоком предсказания является правый блок 104 предсказания блока 100 кодирования. Если ни одно из описанных выше условий не выполняется, то блок А1 включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В1, то на шаге 512, 514 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по горизонтали на два прямоугольных блока 101, 102 предсказания, в соответствии с иллюстрацией на фиг. 10а, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 512), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по горизонтали на два прямоугольных блока предсказания, и если блок В1 включает ту же информацию о движении, что и блок А1 (шаг 514), этого кандидата для пространственного предсказания (блок В1) вектора движения не включают в список объединения. Если ни одно из описанных выше условий не выполняется, то блок В1 включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок ВО имеет ту же информацию о движении, что и блок В1 (шаг 516). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, то этого кандидата для пространственного предсказания (блок В0) вектора движения включают в список объединения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок А0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок А0 имеет ту же информацию о движении, что и блок А1 (шаг 518). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок А0) вектора движения включают в список объединения (шаг 524).
Если кандидатом для пространственного предсказания вектора движения является блок В2 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если максимальное количество кандидатов для пространственного предсказания векторов движения равно четырем, а по остальным блокам А0, А1, В0 и В1 пикселей были приняты решения о включении их в список объединения (шаг 520). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, блок В2 пикселей не включают в список объединения, если блок В2 пикселей имеет ту же информацию о движении, что и блок В1 пикселей или блок А1 пикселей (шаг 522).
После обработки блоков А1, В1, В0, А0 и В2 пикселей и включения некоторого их поднабора в список объединения на основе описанных выше условий, других проверок на избыточность среди этих кандидатов не выполняют, и могут быть обработаны оставшиеся кандидаты для временного предсказания вектора движения и/или другие потенциальные дополнительные кандидаты для предсказания.
Сравнение двух блоков пикселей на предмет содержания в них одного и того же движения может выполняться при помощи сравнения всех элементов информации о движении, а именно: 1) информации о том, что «для блока было выполнено однонаправленное предсказание с использованием только списка Iist0», или о том, что «для блока было выполнено однонаправленное предсказание с использованием только списка list1», или же о том, что «для блока было выполнено двунаправленное предсказание с использованием списка list0 и списка list1», 2) значения вектора движения, соответствующего списку list0 опорных изображений, 3) индекса опорного изображения в списке list0, 4) значения вектора движения, соответствующего списку list1 опорных изображений, 5) индекса опорного изображения в списке list1 опорных изображений.
В некоторых вариантах осуществления настоящего изобретения аналогичные ограничения могут налагаться на сравнение пар кандидатов, если текущий блок кодирования кодируется или декодируется с разбиением на четыре или любое другое количество блоков предсказания.
Максимальное количество кандидатов в списке объединения может иметь любое ненулевое значение. В приведенном выше примере упомянутыми кандидатами на включение в список объединения были пространственно смежные блоки А0, А1, В0, В1, В2 пикселей и кандидат для временного предсказания вектора движения, однако могут использоваться более одного кандидата для временного предсказания вектора движения, а также другие пространственные смежные блоки пикселей, нежели блоки А0, А1, В0, В1, В2.
Также максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список, может отличаться от четырех.
В некоторых вариантах осуществления настоящего изобретения максимальное количество кандидатов в списке объединения и максимальное количество кандидатов для пространственного предсказания векторов движения, включаемых в список, может зависеть от того, включают кандидата для временного предсказания вектора движения в список или нет.
Обрабатываться может и другое количество кандидатов для пространственного предсказания векторов движения, находящихся в различных местоположениях в текущем кадре. Местоположения могут быть теми же самыми, что для блоков А0, А1, В0, В1 и В2, или могут отличаться от них.
Решение о том, какие из кандидатов для пространственного предсказания векторов движения включать в список, может приниматься за два шага. На первом шаге устраняют часть кандидатов, проверяя, доступен ли блок пикселей кандидата, не является ли режим его предсказания внутренним, и/или не является ли текущий блок пикселей вторым блоком предсказания блока кодирования, кодируемого с использованием двух блоков предсказания, и не имеет ли этот кандидат для предсказания ту же информацию о движении, что и первый блок предсказания. На втором шаге анализируют оставшихся кандидатов для предсказания и часть из них включают в список объединения. Анализ на втором шаге не включает сравнения информации о движении между всеми возможными парами кандидатов, а включает лишь поднабор всех возможных комбинаций сравнения.
Решения по кандидатам могут приниматься в любом порядке элементов А0, А1, В0, В1 и В2, или независимо и параллельно.
Для каждого кандидата и/или поднабора кандидатов могут проверяться также следующие условия: имеет ли блок кандидата ту же информацию о движении, что и первый блок предсказания текущего блока кодирования, когда текущий блок кодирования разбит на два прямоугольных блока предсказания и текущий блок предсказания является вторым блоком предсказания в последовательности кодирования/декодирования.
Для определения, включать ли кандидата в список, могут применяться дополнительные условия, связанные с различными свойствами текущих и/или предыдущих областей изображения, и/или текущих и/или смежных блоков пикселей.
Сравнение движения может быть реализовано при помощи сравнения поднабора всей информации о движении. К примеру, могут сравниваться только значения векторов движения для всех списков опорных изображений, или их части, и/или индексы опорных изображений для всех списков опорных изображений, или их части, и/или идентификационные значения, назначенные каждому блоку пикселей для представления их информации о движении. Это сравнение может представлять собой проверку на идентичность или эквивалентность или сравнение (абсолютного значения) разности с пороговым значением или любую другую метрику похожести.
Условия, на основе которых принимается решении о включении кандидата в список, могут включать сравнение информации о движении с любым поднабором кандидатов, поскольку в конечном итоге будет выполнено сравнение не всех возможных пар кандидатов.
Решение о включении в список кандидата для временного предсказания вектора движения может быть основано на сравнении его информации о движении с информацией о движении некоторого поднабора кандидатов для пространственного предсказания векторов движения.
При сравнении информации о движении двух блоков пикселей может учитываться также информация о движении дополнительных блоков пикселей. К примеру, при сравнении блока В2 с блоком А1 выполняется проверка всех блоков между блоком В2 и блоком А1 (см. фиг. 12) на предмет идентичности их движения; а при сравнении блока В2 с блоком В1 выполняется проверка всех блоков между блоком В2 и блоком В1 (см. фиг. 12) на предмет идентичности их движения. Такой вариант осуществления настоящего изобретения может быть реализован так образом, что самый правый блок пикселей каждого блока предсказания или все блоки пикселей в каждом блоке предсказания могут хранить информацию о количестве последовательных блоков, следующих за этим блоком и имеющих такую же информацию о движении. При этом информация о количестве последовательных блоков слева, имеющих ту же информацию о движении, может храниться в самом нижнем блоке пикселей каждого блока предсказания или во всех блоках пикселей каждого блока предсказания. С использованием этой информации проверка условия невключения В0 в список может реализована как проверка того, что количество последовательных блоков с той же информацией о движении слева от блока В0 больше 0. Проверка условия невключения блока А0 в список может быть реализована как проверка того, что количество последовательных блоков с идентичной информацией о движении над А0 больше 0. Условия невключения В2 могут быть изменены следующим образом:
проверяют не факт того, что блок В2 имеет такую же информацию о движении, что и блок В1, или что блок В2 имеет такую же информацию о движении, что и блок А1, а сколько последовательных блоков имеется слева от блока В1 с той же информацией о движении, что и блок В1, и/или сколько последовательных блоков с имеется над блоком А1 с идентичной ему информацией о движении. Если количество последовательных блоков с той же информацией о движении слева от блока В1 больше, чем количество блоков между В2 и В1, или если количество последовательных блоков с той же информацией о движении над блоком А1 больше, чем количество блоков между блоком В2 и блоком А1, блок В2 не включают в список объединения.
Если используют описанную выше реализацию, то значение количества последовательных блоков слева или сверху, с той же информацией о движении, может определяться при помощи непосредственного сравнения информации о движении или при помощи проверки режима предсказания, и/или индекса объединения, если для этого блока применяется процедура объединения.
При кодировании или декодировании выбранного индекса объединения может также учитываться информация о том, применяется ли процедура объединения для кодирования и декодирования блока кодирования в режиме пропуска (Skip mode) или блока кодирования в режиме внешнего объединения (Inter Merge mode). К примеру, если для энтропийного кодирования/декодирования используется контекстно-адаптивный двоичный арифметический кодер (context adaptive binary arithmetic coder, CABAC), то для бинов могут использоваться различные контексты в зависимости от режима кодирования (режима пропуска или режима внешнего объединения) текущего блока. При этом может применяться назначение двух контекстов в зависимости от факта использования процедуры объединения в блоке кодирования в режиме пропуска или в блоке предсказания в режиме внешнего объединения только для наиболее значимого бина упомянутого индекса объединения.
В процессе удаления избыточных кандидатов сравнение между кандидатами для предсказания векторов движения может быть основано, вместо значений векторов движения, на любой другой информации. К примеру, оно может быть основано на линейных или нелинейных функциях значений векторов движения, на типе кодирования или предсказания блоков, используемых для получения информации о движении, размере блоков пикселей, пространственном расположении в блоке пикселей / (наиболее крупном) блоке кодирования / макроблоке, на информации о том, что блоки пикселей разделяют одну и ту же информацию с некоторым блоком, на информации о том, что блоки пикселей находятся в одном и том же блоке кодирования или предсказания, и т.п.
С помощью приведенного ниже псевдокода проиллюстрирован один из примеров осуществления настоящего изобретения, предназначенный для построения списка объединения.
Входные данные для этой процедуры:
- местоположение (xP, yP) в яркостной составляющей сигнала, задающее вернее левое значение яркости текущего блока предсказания относительно верхнего левого значения текущего изображения;
- переменные, задающие ширину и высоту блока предсказания для яркостной составляющей сигнала, nPSW и nPSH, и
- переменная Partldx, задающая индекс текущего блока предсказания в текущем блоке кодирования.
Выходные данные этой процедуры (где N заменяют на А0, A1, В0, B1 или B2, а X заменяют на 0 или 1)
- флаги доступности availableFlagN смежных блоков предсказания,
- индексы опорных изображений refldxLXN для смежных блоков предсказания,
- флаги, указывающие на использование списка предсказания predFlagLXN для смежных блоков предсказания,
- векторы движения mvLXN смежных блоков предсказания.
Для вычисления флага availableFlagN, где N является А0, A1, В0, B1 или В2, (xN, yN) является (xP-1, yP+nPSH), (xP-1, yP+nPSH-1), (xP+nPSW, yP-1), (xP+nPSW-1, yP-1) или (xP-1, yP-1), верно следующее:
- если одно из описанных ниже условий выполнено, то флаг availableFlagN устанавливают равным 0, обе составляющих mvLXN устанавливают равными 0, значения refldxLXN и predFlagLX[xN, yN] блока предсказания, охватывающего местоположение (xN, yN) яркостной составляющей сигнала, назначают равными соответственно mvLXN, refldxLXN и predFlagLXN.
- N равно В2, а сумма availableFlagA0 + availableFlagA1 + availableFlagB0 + availableFlagB1 равна 4.
- блок предсказания, охватывающий местоположение (xN, yN), не доступен или значение PreMode равно MODE_INTRA.
- N равно A1, при этом значение PartMode текущего блока предсказания равно PART_N×2N или PART_nL×2N или PART_nR×2N, а значение Partldx равно 1.
- N равно A1, при этом значение PartMode текущего блока предсказания равно PART_2N×N или PART_2N×nU или PART_2N×nD, значение Partldx равно 1, а блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==mvLX[xN, yN]
- refldxLX[xP+nPSW-I, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1I, yP-1]==predFlagLX[xN, yN]
- N равно B1, при этом значение PartMode текущего блока предсказания равно 2N×N или PART_2N×nU, или PART_2N×nD, а значение Partldx равно 1.
- N равно В1, при этом блоки предсказания, охватывающие местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- N равно В0, при этом блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==mvLX[xN, yN]
- refldxLX[xP+nPSW-1, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1, yP-1]==predFlagLX[xN, yN]
- N равно A0, при этом блоки предсказания, охватывающие местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- N равно B2, при этом блоки предсказания, охватывающие местоположение (xP+nPSW-1, yP-1) (N=В1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала, имеют идентичные параметры движения:
- mvLX[xP+nPSW-1, yP-1]==n1vLX[xN, yN]
- reldxLX[xP+nPSW-1, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP+nPSW-1, yP-1]==predFlagLX[xN, yN]
- N равно B2, при этом блоки предсказания, охватывающие
местоположение (xP-1, yP+nPSH-1) (N=А1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP+nPSH-1]==mvLX[xN, yN]
- refldxLX[xP-1, yP+nPSH-1]==refldxLX[xN, yN]
- predFlagLX[xP-1, yP+nPSH-1]==predFlagLX[xN, yN]
- значение PartMode текущего блока предсказания равно PART_N×N, а значение Partldx равно 3, при этом блоки предсказания, охватывающие местоположение (xP-1, yP) (Partldx=2) в яркостной составляющей сигнала и местоположение (xP-1, yP-1) (Partldx=0) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP]==mvLX[xP-1, yP-1]
- refldxLX[xP-1, yP]==refldxLX[xP-1, yP-1]
- predFlagLX[xP-1, yP]==predFlagLX[xP-1, yP-1]
и блоки предсказания, охватывающие местоположение (xP, yP-1) (Partldx=1) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP, yP-1]==mvLX[xN, yN]
- refldxLX[xP, yP-1]==refldxLX[xN, yN]
- predFlagLX[xP, yP-1]==predFlagLX[xN, yN]
- Значение PartMode текущего блока кодирования равно PART_N×N, а значение Partldx равно 3, при этом блоки предсказания, охватывающие местоположение (xP, yP-1) (Partldx=1) в яркостной составляющей сигнала и местоположение (xP-1, yP-1) (Partldx=0) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP, yP-1]==mvLX[xP-1, yP-1]
- refldxLX[xP, yP-1]==reldxLX[xP-1, yP-1]
- predFlagLXfxP, yP-1]==predFlagLX[xP-1, yP-1]
при этом блоки предсказания, охватывающие местоположение (xP-1, yP) (Partldx=2) в яркостной составляющей сигнала и местоположение (xN, yN) (Канд. N) в яркостной составляющей сигнала имеют идентичные параметры движения:
- mvLX[xP-1, yP]==mvLX[xN, yN]
- refldxLX[xP-1, yP]==reldxLX[xN, yN]
- predFlagLX[xP-1, yP]==predFlagLX[xN, yN]
- В обратном случае флаг availableFlagN устанавливают равным 1, а переменные mvLX[xN, yN], refldxLX[xN, yN] и predFlagLX[xN, yN] блока предсказания, охватывающего местоположение (xN, yN) в яркостной составляющей сигнала назначают, соответственно, равными mvLXN, refldxLXN и predFlagLXN.
Что касается процедуры формирования списка кандидатов для предсказания векторов движения, каждый кандидат из списка может включать не только значение вектора движения, но и дополнительную информацию, например, применяемые списки опорных изображений, опорные кадры, использованные в каждом списке, и вектор движения для каждого списка.
После анализа всех кандидатов для векторов движения выбирают один вектор движения и используют его как вектор движения текущего блока. Селектор 364 вектора движения может выполнять анализ различных векторов движения в списке и определять, какой из векторов движения дает наиболее эффективный результат кодирования, или же выбор вектора движения может быть также основан на других критериях. Информацию о выбранном векторе движения предоставляют в селектор режима для кодирования и передачи в декодер, или для хранения, если селектор режима принимает решение об использовании внешнего предсказания для текущего блока. Эта информация может включать индекс вектора движения в списке и/или параметры вектора движения, или другую подходящую информацию.
Выбранный вектор движения и блок, связанный с этим вектором движения, используют для формирования предсказанного представления блока 312 изображения, которое выдают в качестве выходных данных селектора режима. Эти выходные данные могут использоваться суммирующим устройством 321 для формирования первого сигнала 320 ошибки предсказания в соответствии с предшествующим описанием.
Выбранный кандидат для предсказания вектора движения может быть модифицирован добавлением разности векторов движения или может быть использован в качестве вектора движения данного блока непосредственно. При этом после выполнения компенсации движения с использованием выбранного кандидата для предсказания вектора движения сигнал ошибки для этого блока может быть кодирован с преобразованием, или этот сигнал может быть пропущен.
Варианты осуществления настоящего изобретения, описанные выше, были рассмотрены на примере размера макроблока, равного 16×16 пикселей, однако нужно понимать, что описанные способы и устройства могут быть сконфигурированы для работы с макроблоками отличающихся пиксельных размеров.
Ниже более подробно описана работа одного из примеров осуществления декодера 600 на примере фиг. 7.
На стороне декодера выполняют аналогичные операции для восстановления блоков изображения. На фиг. 7 проиллюстрирована блок-схема видеодекодера 700, подходящего для реализации вариантов осуществления настоящего изобретения, а на фиг. 8а и 8b проиллюстрированы блок-схемы алгоритмов для одного из примеров способа, реализуемого в видеодекодере. Декодируемый битовый поток может приниматься от кодера, от сетевого элемента, с носителя данных или из другого источника. В декодере имеется информация о структуре битового потока, поэтому он способен определять значение энтропийно кодированных кодовых слов и может декодировать битовый поток с помощью энтропийного декодера 701, который выполняет энтропийное декодирование принятого сигнала. То есть, энтропийный декодер выполняет операцию, обратную энтропийному кодеру 330 описанного выше кодера. Энтропийный декодер 701 выдает результаты энтропийного декодирования в декодер 702 ошибки предсказания и в устройство 704 предсказания пикселей.
В некоторых вариантах осуществления настоящего изобретения энтропийное кодирование может не применяться, но может использоваться другое канальное кодирование, или же кодированный битовый поток может поступать в декодер 700 без канального кодирования. Декодер 700 может включать соответствующий канальный декодер для получения кодированных кодовых слов из принятого сигнала.
Устройство 704 предсказания пикселей принимает выходные данные энтропийного декодера 701. Выходные данные энтропийного декодера 701 могут включать указание на режим предсказания, используемый при кодировании текущего блока. Селектор 714 предсказания в устройстве 704 предсказания пикселей определяет, что необходимо выполнять, внутреннее предсказание или внешнее предсказание. Селектор 714 предсказания может при этом выдавать предсказанное представление блока 716 изображения в первое комбинирующее устройство 713. Предсказанное представление блока 716 изображения используют вместе с восстановленным сигналом 712 ошибки предсказания для формирования предварительного восстановленного изображения 718. Предварительное восстановленное изображение 718 может использоваться в устройстве 714 предсказания или может передаваться в фильтр 720. Фильтр 720, если он применяется, осуществляет фильтрацию, после которой выдается окончательный восстановленный сигнал 722. Окончательный восстановленный сигнал 722 может быть сохранен в памяти 724 опорных кадров, при этом память 724 опорных кадров имеет соединение с устройством 714 предсказания для выполнения операций предсказания.
Также декодер 702 ошибки предсказания принимает выходные данные энтропийного декодера 701. Деквантователь 792 декодера 702 ошибки предсказания может деквантовать выходные данные энтропийного декодера 701, при этом блок 793 обратного преобразования может выполнять операцию обратного преобразования над деквантованным сигналом на выходе деквантователя 792. Выходные данные энтропийного декодера 701 могут также указывать на то, что сигнал ошибки предсказания не должен применяться, в этом случае декодер ошибки предсказания формирует выходной сигнал состоящий из нулей.
Декодер выбирает остаточный макроблок размером 16×16 пикселей для его восстановления. Этот остаточный макроблок называют также текущим блоком.
Декодер может также принимать информацию о режиме кодирования, использованном при кодировании текущего блока. Это указание при необходимости декодируют и предоставляют в процессор 791 восстановления селектора 714 предсказания. Процессор 791 восстановления анализирует это указание и выбирает один из режимов внутреннего предсказания, если эта информация указывает на то, что данный блок был кодирован с использованием внутреннего предсказания, или режим внешнего предсказания, если информация указывает на то, что данный блок был кодирован с использованием внешнего предсказания.
Для режима внешнего предсказания в состав процессора 791 восстановления могут входить один или более элементов, соответствующих процессору 362 предсказания из состава кодера, например, устройство определения векторов движения, модификатор списка предсказаний и/или селектор вектора движения.
На шаге 800 процессор 791 восстановления инициализирует список предсказаний векторов движения заданными по умолчанию значениями. Как и в случае, рассмотренном для процесса кодирования, в данном примере кандидатами для пространственного предсказания векторов движения являются пространственно смежные блоки А0, А1, В0, В1, В2 пикселей, и эти кандидаты для пространственного предсказания векторов движения обрабатываются в том же заранее заданном порядке, что и в кодере: А1, В1, В0, А0 и В2. Кандидатом для пространственного предсказания вектора движения, выбираемым первым для дальнейшего анализа, таким образом будет А1. Перед выполнением дальнейшего анализа выбранного кандидата для пространственного предсказания вектора движения проверяют, содержит ли уже список объединения максимальное количество кандидатов для пространственного предсказания векторов движения. Если количество кандидатов для пространственного предсказания векторов движения в списке объединения не меньше, чем упомянутое максимальное количество, то выбранного кандидата для пространственного предсказания вектора движения не включают в список объединения, и процедура построения списка объединения может быть остановлена (шаг 826). В противном случае, если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем упомянутое максимальное количество, выполняют дальнейший анализ выбранного кандидата для пространственного предсказания вектора движения (шаги 804-822).
Декодер проверяет (на шаге 504), доступен ли блок предсказания или блок пикселей, охватывающий блок кандидата для пространственного предсказания вектора движения, для предсказания движения. Если нет, то данный кандидат не включается в список объединения. Причиной, по которой блок может быть недоступен, может быть кодирование блока в режиме внутреннего предсказания или то, что он находится в другой области изображения или вне области изображения.
Для всех кандидатов для пространственного предсказания векторов движения, если в дополнение к описанным выше общим условиям выполняется любое из описанных ниже условий, то кандидата не включают в список объединения, а в противном случае - включают.
Декодер определяет (на шаге 806), какой из кандидатов для пространственного предсказания векторов движения в наборе кандидатов для пространственного предсказания векторов движения рассматривается. Если этим кандидатом для пространственного предсказания вектора движения является блок А1 пикселей, то на шаге 808, 810 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по вертикали на два прямоугольных блока 103, 104 предсказания, как это показано на фиг. 10b, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 508), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по вертикали на два прямоугольных блока предсказания, а разбит горизонтально на два прямоугольных блока 101, 102 в соответствии с иллюстрацией на фиг. 10а, и текущий блок предсказания представляет собой второй блок предсказания в последовательности кодирования/декодирования, и при этом блок А1 пикселей включает ту же информацию о движении, что и блок В1 (шаг 510) пикселей, этого кандидата для пространственного предсказания (блок А1) вектора движения не включают в список объединения. В примере на фиг. 10а вторым блоком предсказания является нижний блок 102 предсказания блока 100 кодирования, а в примере на фиг. 10b вторым блоком предсказания является правый блок 104 предсказания блока 100 кодирования. Если ни одно из описанных выше условий не выполняется, то блок А1 пикселей включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В1 пикселей, то на шаге 812, 814 могут проверяться одно или более описанных ниже условий с целью определения, включать этого кандидата для пространственного предсказания вектора движения в список объединения или нет. Если текущий блок 100 кодирования разбит по горизонтали на два прямоугольных блока 101, 102 предсказания, в соответствии с иллюстрацией фиг. 10а, и текущий блок предсказания является вторым блоком 104 предсказания в последовательности кодирования/декодирования (шаг 812), то данного кандидата для пространственного предсказания вектора движения не включают в список объединения. Если текущий блок 100 кодирования не разбит по горизонтали на два прямоугольных блока предсказания, и если блок В1 включает ту же информацию о движении, что и блок А1 пикселей (шаг 814), этого кандидата для пространственного предсказания (блок В1) вектора движения не включают в список объединения. Если ни одно из описанных выше условий не выполняется, то блок В1 пикселей включают в список объединения как кандидата для пространственного предсказания вектора движения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок В0 пикселей имеет ту же информацию о движении, что и блок В1 пикселей (шаг 816). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок В0) вектора движения включают в список объединения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок А0 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если блок А0 пикселей имеет ту же информацию о движении, что и блок А1 пикселей (шаг 818). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, этого кандидата для пространственного предсказания (блок АО) вектора движения включают в список объединения (шаг 824).
Если кандидатом для пространственного предсказания вектора движения является блок В2 пикселей, то этого кандидата для пространственного предсказания вектора движения не включают в список объединения, если максимальное количество кандидатов для пространственного предсказания векторов движения равно четырем, а по остальным блокам А0, А1, В0 и В1 пикселей были приняты решения о включении их в список объединения (шаг 520). В противном случае, и если количество кандидатов для пространственного предсказания векторов движения в списке объединения меньше, чем максимальное количество кандидатов для пространственного предсказания векторов движения, блок В2 пикселей не включают в список объединения, если блок В2 пикселей имеет ту же информацию о движении, что и блок В1 пикселей или блок А1 пикселей (шаг 822).
После обработки блоков А1, В1, В0, А0 И В2 пикселей и включения некоторого их поднабора в список объединения на основе описанных выше условий, других проверок на избыточность среди этих кандидатов не выполняют, и могут быть обработаны оставшиеся кандидаты для временного предсказания вектора движения и/или другие потенциальные дополнительные кандидаты.
После построения списка объединения декодер может использовать (шаг 828) указание на вектор движения, принятое от кодера, для выбора вектора движения для декодирования текущего блока. Таким указанием может быть, к примеру, индекс для списка объединения.
Собственно, после построения процессором 791 восстановления списка объединения, он должен соответствовать списку объединения, построенному кодером, если процессор 791 восстановления имел ту же информацию, что и кодер. Утеря какой-либо части информации при передаче от кодера в декодер может повлиять на формирование списка объединения в декодере 700.
Приведенные выше примеры описывают работу только в режиме объединения, однако кодер и декодер могут работать и в других режимах.
В рассмотренных выше вариантах осуществления настоящего изобретения, чтобы упростить понимание выполняемых процедур, кодек описан как раздельные устройства кодера и декодера. Однако нужно понимать, что эти устройства, структуры и операции могут быть реализованы как единое устройство/структура/операция декодера. Также, в некоторых вариантах осуществления настоящего изобретения, кодер и декодер могут иметь некоторые или все общие элементы.
В рассмотренных выше примерах варианты осуществления настоящего изобретения функционируют в составе кодека в электронном устройстве, однако следует понимать, что настоящее изобретение, в соответствии с последующим описанием, может быть реализовано как часть любого видеокодека. Так, например, варианты осуществления настоящего изобретения могут быть реализованы в видеокодеке, который может реализовывать видеокодирование по стационарным или проводным каналам связи.
Соответственно, абонентское оборудование может включать видеокодек, например, описанный в представленных выше вариантах осуществления настоящего изобретения.
Нужно понимать, что выражение «абонентское оборудование» используется как охватывающие любые подходящие типы беспроводного абонентского оборудования, например, мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
При этом элементы наземной сети мобильной связи общего пользования (public land mobile network, PLMN) также могут включать видеокодеки в соответствии с предшествующим описанием.
В общем случае различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения или схем специального назначения, программного обеспечения, логики или какой-либо их комбинации. К примеру, некоторые из аспектов могут быть реализованы в виде аппаратного обеспечения, тогда как другие аспекты могут быть реализованы в виде микропрограммного или программного обеспечения, которое может исполняться контроллером, микропроцессором или иным вычислительным устройством, без ограничения настоящего изобретения перечисленным. Различные аспекты настоящего изобретения допускают иллюстрацию и описание в виде блок-схем, блок-схем алгоритмов или с помощью некоторых других наглядных представлений, но при этом нужно хорошо понимать, что блоки, устройства, системы, методы или способы, описанные в настоящем документе, могут быть реализованы, в качестве неограничивающих примеров, в виде аппаратного обеспечения, программного обеспечения, микропрограммного обеспечения, схем или логики специального назначения, аппаратного обеспечения или контроллера общего назначения, или же иных вычислительных устройств, или некоторой их комбинации.
Варианты осуществления настоящего изобретения могут быть реализованы с помощью программного обеспечения, исполняемого процессором данных мобильного устройства, например, процессорным элементом, или с помощью аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. Также в этом отношении следует отметить, что любые блоки последовательностей логических операций, проиллюстрированные на чертежах, могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию программных шагов и логических схем, блоков и функций. Упомянутое программное обеспечение может храниться на таких физических носителях, как микросхемы памяти или блоки памяти, реализованные внутри процессора, магнитные носители, например, жесткий диск или гибкий диск, и оптические носители, например, DVD и их варианты для хранения данных, CD.
Упомянутая память может относиться к любому типу, соответствующему локальному техническому окружению, при этом она может быть реализована с использованием любой подходящей технологии хранения данных, например, запоминающие устройства на полупроводниках, магнитные запоминающие устройства и системы, оптические запоминающие устройства и системы, несъемная или съемная память. Упомянутые процессоры данных могут относиться к любому типу, соответствующему локальному техническому окружению, и могут включать одно или более из следующего: компьютеры общего назначения, компьютеры специального назначения, микропроцессоры, цифровые сигнальные процессоры (digital signal processors, DSP), процессоры на основе многоядерной архитектуры - в качестве неограничивающих примеров.
Варианты осуществления настоящего изобретения могут применяться на практике в различных компонентах, например, в модулях интегральных схем. Процесс разработки интегральных схем в целом в высокой степени автоматизирован. Существуют сложные и мощные программные инструменты для преобразования проектов логического уровня в конструкции полупроводниковых схем, готовые для вытравливания и формирования на полупроводниковой подложке.
Программы, подобные поставляемой фирмой Synopsys, Inc (Маунтин-Вью, Калифорния) или фирмой Cadence Design (Сан-Хосе, Калифорния), осуществляют автоматическую разводку проводников и позиционирование компонентов на полупроводниковом кристалле с использованием общепринятых правил разработки, а также с использованием библиотек заранее сохраненных модулей проектов. По завершении разработки полупроводниковой схемы результирующая конструкция в стандартизированном электронном формате (например, Opus, GDSII и т.п.) может быть передана на полупроводниковое производство для изготовления.
В предшествующем изложении с помощью иллюстративных и неограничивающих примеров было обеспечено полное и информативное описание настоящего изобретения. Однако в свете предшествующего описания, рассматриваемого в сочетании с приложенными чертежами, специалистам в соответствующих областях техники могут быть очевидны различные модификации и доработки. Тем не менее, любые такие или аналогичные им модификации концепции настоящего изобретения попадают в его рамки.
Ниже приведены некоторые примеры.
В некоторых вариантах осуществления настоящего изобретения способ включает:
прием блока пикселей, включающего блок предсказания; определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ также включает шаг включения блоков, смежных с упомянутым принятым блоком пикселей, в упомянутый набор кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает построение упомянутого набора кандидатов для пространственного предсказания вектора движения с использованием векторов движения одного или более кодированных блоков пикселей в том же кадре, что и упомянутый блок пикселей.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также выбор кандидатов для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения в заранее заданном порядке.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает проверку, является ли упомянутый принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
определение максимального количества кандидатов для пространственного предсказания вектора движения, включаемых в список объединения; и
ограничение количества кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения количеством, меньшим или равным упомянутому максимальному количеству.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем упомянутое максимальное количество;
если это так, проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен под упомянутым потенциальным кандидатом для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает выбор одного кандидата для предсказания вектора движения из упомянутого списка объединения, которое будет представлять предсказание вектора движения для упомянутого блока пикселей.
В некоторых вариантах осуществления настоящего изобретения способ, в соответствии со вторым аспектом, включает:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также шаг включения блоков, смежных с упомянутым принятым кодированным блоком пикселей, в упомянутый набор кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает построение набора кандидатов для пространственного предсказания вектора движения с использованием векторов движения одного или более декодированных блоков пикселей в том же кадре, что и принятый кодированный блок пикселей.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает также выбор кандидатов для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения в заранее заданном порядке.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает проверку, является ли принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
определение максимального количества кандидатов для пространственного предсказания вектора движения, включаемых в список объединения; и
ограничение количества кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения количеством, меньшим или равным упомянутому максимальному количеству.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем упомянутое максимальное количество;
если это так, проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен под упомянутым потенциальным кандидатом для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает шаг включения кандидата для временного предсказания вектора движения в упомянутый список объединения.
В некоторых вариантах осуществления настоящего изобретения упомянутый способ включает выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого принятого кодированного блока пикселей.
В некоторых вариантах осуществления настоящего изобретения, в соответствии с третьим аспектом настоящего изобретения, устройство имеет в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения, в соответствии с его четвертым аспектом, устройство имеет в своем составе процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, вместе с упомянутым процессором, для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В некоторых вариантах осуществления настоящего изобретения носитель данных имеет хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения носитель данных имеет хранимый на нем машиноисполняемый программный код для применения в кодере, при этом упомянутый программный код включает инструкции для:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
В некоторых вариантах осуществления настоящего изобретения устройство включает:
средства приема блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения;
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из упомянутых сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
В некоторых вариантах осуществления настоящего изобретения устройство включает:
средства приема кодированного блока пикселей, включающего блок предсказания;
средства определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
средства выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
средства определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
средства сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения;
средства исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.

Claims (22)

1. Способ кодирования видеоизображения, включающий:
прием блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний вектора движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения кандидатов для пространственного предсказания вектора движения соответствует одна другой, исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
2. Способ по п. 1, включающий сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
3. Способ по п. 1 или 2, включающий проверку, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
4. Способ по п. 1 или 2, включающий:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
5. Способ по п. 1 или 2, включающий выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
6. Способ декодирования кодированного видеоизображения, включающий:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний вектора движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении другого кандидата для пространственного предсказания вектора движения в упомянутом наборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
7. Способ по п. 6, включающий сравнение информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
8. Способ по п. 6 или 7, включающий проверку, является ли упомянутый принятый кодированный блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если это так, то исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
9. Способ по п. 6 или 7, включающий:
проверку, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый кодированный блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
10. Способ по п. 6 или 7, включающий выбор из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого принятого кодированного блока пикселей.
11. Устройство для кодирования видеоизображения, содержащее процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код конфигурированы вместе с упомянутым процессором для обеспечения выполнения упомянутым устройством:
приема блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
12. Устройство по п. 11, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством сравнения информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
13. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством проверки, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то выполнение исключения упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
14. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
проверки, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
15. Устройство по п. 11 или 12, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
выбора из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
16. Устройство для декодирования кодированного видеоизображения, содержащее процессор и память, включающую компьютерный программный код, при этом упомянутые память и компьютерный программный код конфигурированы вместе с упомянутым процессором для обеспечения выполнения упомянутым устройством:
приема кодированного блока пикселей, включающего блок предсказания;
определения набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбора первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определения поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнения информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
исключения упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой.
17. Устройство по п. 16, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством сравнения информации о движении упомянутого потенциального кандидата для пространственного предсказания вектора движения с информацией о движении не более чем одного другого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения.
18. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством проверки, является ли упомянутый принятый блок пикселей разбитым на первый блок предсказания и второй блок предсказания; и если так, то выполнение исключения упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если упомянутый блок предсказания является вторым блоком предсказания.
19. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
проверки, является ли количество кандидатов для пространственного предсказания вектора движения в упомянутом списке объединения меньшим, чем максимальное количество;
если это так, то проверку, является ли блок предсказания, которому принадлежит кандидат для пространственного предсказания вектора движения, доступным для предсказания движения;
если это так, то выполнение по меньшей мере одного из следующего:
для потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по вертикали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, и если упомянутый блок предсказания является вторым блоком предсказания, и упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- упомянутый принятый блок пикселей разбит по горизонтали на первый блок предсказания и второй блок предсказания, при этом упомянутый блок предсказания является вторым блоком предсказания;
- упомянутый потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен справа от упомянутого потенциального кандидата для пространственного предсказания вектора движения над упомянутым блоком предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
для потенциального кандидата для пространственного предсказания вектора движения, который расположен ниже упомянутого потенциального кандидата для пространственного предсказания вектора движения слева от упомянутого блока предсказания, исключение упомянутого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания;
для потенциального кандидата для пространственного предсказания вектора, смежного по диагонали с упомянутым блоком предсказания, исключение этого потенциального кандидата для пространственного предсказания вектора движения из упомянутого списка объединения, если выполнено любое из следующих условий:
- все остальные потенциальные кандидаты для пространственного предсказания вектора движения были включены в упомянутый список объединения;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения над упомянутым блоком предсказания;
- этот потенциальный кандидат для пространственного предсказания вектора движения имеет информацию о движении, по существу аналогичную упомянутому кандидату для пространственного предсказания вектора движения слева от упомянутого блока предсказания.
20. Устройство по п. 16 или 17, в котором компьютерный программный код конфигурирован так, чтобы вместе с упомянутым процессором обеспечивать выполнение устройством:
выбора из упомянутого списка объединения одного кандидата для предсказания вектора движения, который будет представлять предсказание вектора движения для упомянутого блока пикселей.
21. Машиночитаемый носитель данных, имеющий хранимые на нем машиночитаемые команды, которые при исполнении одним или более процессором обеспечивают выполнение одним или более процессором способа кодирования видеоизображения, включающего:
прием блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
22. Машиночитаемый носитель данных, имеющий хранимые на нем машиночитаемые команды, которые при исполнении одним или более процессором обеспечивают выполнение одним или более процессором способа декодирования кодированного видеоизображения, включающего:
прием кодированного блока пикселей, включающего блок предсказания;
определение набора кандидатов для пространственного предсказания вектора движения для упомянутого кодированного блока пикселей; при этом упомянутые кандидаты для пространственного предсказания вектора движения включают информацию о движении;
выбор первого кандидата для пространственного предсказания вектора движения из упомянутого набора кандидатов для пространственного предсказания вектора движения в качестве потенциального кандидата для пространственного предсказания вектора движения, включаемого в список объединения для упомянутого блока предсказания;
определение поднабора пространственных предсказаний векторов движения на основе местоположения блока пикселей, связанного с упомянутым первым кандидатом для пространственного предсказания вектора движения;
сравнение информации о движении упомянутого первого кандидата для пространственного предсказания вектора движения с информацией о движении кандидата для пространственного предсказания вектора движения в упомянутом определенном поднаборе кандидатов для пространственного предсказания вектора движения; и
если по меньшей мере одно из сравнений показывает, что информация векторов движения упомянутых кандидатов для пространственного предсказания вектора движения соответствует одна другой, то исключение упомянутого первого кандидата для пространственного предсказания вектора движения из упомянутого списка объединения.
RU2014120207/12A 2011-11-04 2012-11-02 Способ и устройство для видеокодирования RU2577207C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161555703P 2011-11-04 2011-11-04
US61/555,703 2011-11-04
PCT/FI2012/051070 WO2013064749A1 (en) 2011-11-04 2012-11-02 Method for video coding and an apparatus

Publications (2)

Publication Number Publication Date
RU2014120207A RU2014120207A (ru) 2015-12-10
RU2577207C2 true RU2577207C2 (ru) 2016-03-10

Family

ID=48191432

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014120207/12A RU2577207C2 (ru) 2011-11-04 2012-11-02 Способ и устройство для видеокодирования

Country Status (18)

Country Link
US (6) US9571833B2 (ru)
EP (3) EP4354867A3 (ru)
KR (1) KR101717475B1 (ru)
CN (1) CN104054350B (ru)
CA (1) CA2854495C (ru)
CY (1) CY1123787T1 (ru)
DK (1) DK2774375T3 (ru)
ES (1) ES2834676T3 (ru)
HR (1) HRP20201901T1 (ru)
HU (1) HUE052162T2 (ru)
IN (1) IN2014CN04092A (ru)
PL (1) PL2774375T3 (ru)
PT (1) PT2774375T (ru)
RS (1) RS61125B1 (ru)
RU (1) RU2577207C2 (ru)
SI (1) SI2774375T1 (ru)
TW (1) TWI549493B (ru)
WO (1) WO2013064749A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2768971C1 (ru) * 2018-12-28 2022-03-28 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования движущихся изображений, способ кодирования движущихся изображений, программа кодирования движущихся изображений, устройство декодирования движущихся изображений, способ декодирования движущихся изображений и программа декодирования движущихся изображений
RU2779292C2 (ru) * 2018-12-28 2022-09-05 Годо Кайся АйПи Бридж 1 Устройство кодирования движущихся изображений, способ кодирования движущихся изображений, программа кодирования движущихся изображений, устройство декодирования движущихся изображений, способ декодирования движущихся изображений и программа декодирования движущихся изображений

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013126182A (ja) * 2011-12-15 2013-06-24 Samsung Electronics Co Ltd 撮像装置及び画像処理方法
EP2847996B1 (en) * 2012-05-09 2020-10-07 Sun Patent Trust Method of performing motion vector prediction, encoding and decoding methods, and apparatuses thereof
KR20150075040A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
WO2015147426A1 (ko) 2014-03-24 2015-10-01 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10187653B2 (en) * 2015-05-18 2019-01-22 Avago Technologies International Sales Pte. Limited Motor vector prediction using co-located prediction units
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
KR102435500B1 (ko) * 2016-10-06 2022-08-23 세종대학교산학협력단 비디오 신호의 복호화 방법 및 이의 장치
WO2018226066A1 (ko) * 2017-06-09 2018-12-13 엘지전자 주식회사 영상 코딩 시스템에서 어파인 예측에 따른 영상 디코딩 방법 및 장치
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
CA3072323A1 (en) * 2017-09-26 2019-04-04 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method and decoding method
KR102476204B1 (ko) 2017-10-19 2022-12-08 삼성전자주식회사 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템
US11025943B2 (en) * 2017-10-20 2021-06-01 Kt Corporation Video signal processing method and device
WO2019112072A1 (ko) * 2017-12-04 2019-06-13 엘지전자 주식회사 영상 코딩 시스템에서 수정된 움직임 정보 후보 리스트에 기반한 영상 디코딩 방법 및 장치
CN118509603A (zh) 2018-01-29 2024-08-16 Vid拓展公司 低复杂度的帧速率上变换
WO2020003274A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
US11095909B2 (en) * 2018-06-25 2021-08-17 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
GB2588006B (en) 2018-06-29 2023-03-22 Beijing Bytedance Network Tech Co Ltd Number of motion candidates in a look up table to be checked according to mode
EP4325861A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
CN116320489A (zh) 2018-06-29 2023-06-23 北京字节跳动网络技术有限公司 视频处理方法、编码装置和解码装置
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
WO2020008346A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Rules on updating luts
CN112544077B (zh) * 2018-07-16 2023-12-08 Lg电子株式会社 用于子块单元中的时间运动信息预测的帧间预测方法及其装置
WO2020024275A1 (zh) * 2018-08-03 2020-02-06 华为技术有限公司 一种帧间预测的方法及装置
WO2020053798A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
US11317099B2 (en) 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
WO2020103933A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Configuration method for default motion candidate
US11122288B2 (en) * 2018-12-06 2021-09-14 Qualcomm Incorporated Spatio-temporal motion vector prediction patterns for video coding
US11470340B2 (en) * 2018-12-10 2022-10-11 Tencent America LLC Simplified merge list construction for small coding blocks
EP3905686A4 (en) * 2018-12-28 2022-10-19 JVCKenwood Corporation DYNAMIC IMAGE DECODING DEVICE, DYNAMIC IMAGE DECODING METHOD, DYNAMIC IMAGE DECODING PROGRAM, DYNAMIC IMAGE CODING DEVICE, DYNAMIC IMAGE CODING METHOD AND DYNAMIC IMAGE CODING PROGRAM
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN110809161B (zh) 2019-03-11 2020-12-29 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法及装置
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN111462170B (zh) * 2020-03-30 2023-08-25 Oppo广东移动通信有限公司 运动估计方法、运动估计装置、存储介质与电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2128405C1 (ru) * 1991-02-27 1999-03-27 Дженерал Электрик Компани Устройство кодирования видеосигнала, представляющего изображения, приемник телевизионного сигнала, включающего данные заголовков и полезные данные в виде сжатых видеоданных
WO2007037912A2 (en) * 2005-09-16 2007-04-05 Sony Electronics, Inc. Integrated spatial-temporal prediction
RU2341035C1 (ru) * 2005-03-25 2008-12-10 Самсунг Электроникс Ко., Лтд. Способ кодирования и декодирования видеосигнала с использованием взвешенного предсказания и устройство для его осуществления
WO2011062392A2 (ko) * 2009-11-18 2011-05-26 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE148607T1 (de) 1991-09-30 1997-02-15 Philips Electronics Nv Bewegungsvektorschätzung, bewegungsbildkodierung- und -speicherung
WO1994022269A1 (en) 1993-03-24 1994-09-29 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
US6567469B1 (en) 2000-03-23 2003-05-20 Koninklijke Philips Electronics N.V. Motion estimation algorithm suitable for H.261 videoconferencing applications
US7596279B2 (en) 2002-04-26 2009-09-29 Ntt Docomo, Inc. Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, and image decoding program
KR100865034B1 (ko) 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
FR2852179A1 (fr) * 2003-03-06 2004-09-10 Thomson Licensing Sa Procede de codage d'une image video
JP2005142986A (ja) 2003-11-10 2005-06-02 Matsushita Electric Ind Co Ltd 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
KR100955161B1 (ko) 2004-05-04 2010-04-28 콸콤 인코포레이티드 모션 보상된 프레임 레이트 상향 변환을 위한 방법 및 장치
FR2871018A1 (fr) 2004-05-25 2005-12-02 St Microelectronics Sa Procede et dispositif pour les systemes d'interpolation d'images par estimation et compensation de mouvement
KR100943591B1 (ko) 2004-07-20 2010-02-24 콸콤 인코포레이티드 움직임 벡터 처리를 위한 방법 및 장치
US8913660B2 (en) 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
KR101383540B1 (ko) 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
US8111750B2 (en) * 2007-03-20 2012-02-07 Himax Technologies Limited System and method for 3-D recursive search motion estimation
CN101605255B (zh) 2008-06-12 2011-05-04 华为技术有限公司 一种视频编解码的方法及装置
KR101377660B1 (ko) 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JP5401071B2 (ja) 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
US8675736B2 (en) 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
KR101671460B1 (ko) 2009-09-10 2016-11-02 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101522850B1 (ko) 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
KR101768207B1 (ko) 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US8488007B2 (en) * 2010-01-19 2013-07-16 Sony Corporation Method to estimate segmented motion
EP2532159A1 (en) * 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US9313526B2 (en) 2010-02-19 2016-04-12 Skype Data compression for video
US9628788B2 (en) 2010-03-16 2017-04-18 Thomson Licensing Methods and apparatus for implicit adaptive motion vector predictor selection for video encoding and decoding
SI3739883T1 (sl) 2010-05-04 2023-03-31 Lg Electronics Inc. Postopek in naprava za kodiranje in dekodiranje videosignala
WO2011156458A1 (en) 2010-06-10 2011-12-15 Technicolor Usa, Inc. Methods and apparatus for determining quantization parameter predictors from a plurality of neighboring quantization parameters
US9300970B2 (en) 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
US8787459B2 (en) 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
US8824558B2 (en) 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
US9137544B2 (en) * 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
US9635383B2 (en) 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for computing a motion vector
WO2012097376A1 (en) 2011-01-14 2012-07-19 General Instrument Corporation Spatial block merge mode
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9066110B2 (en) * 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
WO2012140821A1 (ja) * 2011-04-12 2012-10-18 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号化方法、動画像復号化装置、および動画像符号化復号化装置
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
US9247249B2 (en) * 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
WO2012160803A1 (ja) * 2011-05-24 2012-11-29 パナソニック株式会社 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
US9313494B2 (en) 2011-06-20 2016-04-12 Qualcomm Incorporated Parallelization friendly merge candidates for video coding
CN103535039B (zh) * 2011-06-30 2018-08-28 太阳专利托管公司 图像解码方法、图像编码方法、图像解码装置、图像编码装置以及图像编解码装置
ES2908152T3 (es) * 2011-06-30 2022-04-27 Sun Patent Trust Procedimiento de decodificación de imágenes
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
US20130070855A1 (en) * 2011-09-17 2013-03-21 Qualcomm Incorporated Hybrid motion vector coding modes for video coding
US9083983B2 (en) * 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
RU2577181C2 (ru) 2011-10-21 2016-03-10 Нокиа Текнолоджиз Ой Способ и устройство для кодирования видеосигналов

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2128405C1 (ru) * 1991-02-27 1999-03-27 Дженерал Электрик Компани Устройство кодирования видеосигнала, представляющего изображения, приемник телевизионного сигнала, включающего данные заголовков и полезные данные в виде сжатых видеоданных
RU2341035C1 (ru) * 2005-03-25 2008-12-10 Самсунг Электроникс Ко., Лтд. Способ кодирования и декодирования видеосигнала с использованием взвешенного предсказания и устройство для его осуществления
WO2007037912A2 (en) * 2005-09-16 2007-04-05 Sony Electronics, Inc. Integrated spatial-temporal prediction
WO2011062392A2 (ko) * 2009-11-18 2011-05-26 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2768971C1 (ru) * 2018-12-28 2022-03-28 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования движущихся изображений, способ кодирования движущихся изображений, программа кодирования движущихся изображений, устройство декодирования движущихся изображений, способ декодирования движущихся изображений и программа декодирования движущихся изображений
RU2779292C2 (ru) * 2018-12-28 2022-09-05 Годо Кайся АйПи Бридж 1 Устройство кодирования движущихся изображений, способ кодирования движущихся изображений, программа кодирования движущихся изображений, устройство декодирования движущихся изображений, способ декодирования движущихся изображений и программа декодирования движущихся изображений
US11558606B2 (en) 2018-12-28 2023-01-17 Godo Kaisha Ip Bridge 1 Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program

Also Published As

Publication number Publication date
US11570467B2 (en) 2023-01-31
US20170347117A1 (en) 2017-11-30
US20130114723A1 (en) 2013-05-09
PL2774375T3 (pl) 2021-04-06
PT2774375T (pt) 2020-11-19
ES2834676T3 (es) 2021-06-18
CA2854495A1 (en) 2013-05-10
WO2013064749A1 (en) 2013-05-10
CY1123787T1 (el) 2022-03-24
US10536714B2 (en) 2020-01-14
EP2774375A1 (en) 2014-09-10
KR20140092874A (ko) 2014-07-24
TW201325249A (zh) 2013-06-16
US10237574B2 (en) 2019-03-19
EP4354867A3 (en) 2024-05-08
EP4354867A2 (en) 2024-04-17
EP3849191B1 (en) 2024-08-28
DK2774375T3 (da) 2020-12-07
CA2854495C (en) 2018-04-24
IN2014CN04092A (ru) 2015-07-10
CN104054350A (zh) 2014-09-17
TWI549493B (zh) 2016-09-11
US20230179792A1 (en) 2023-06-08
US9743105B2 (en) 2017-08-22
HRP20201901T1 (hr) 2021-01-22
RU2014120207A (ru) 2015-12-10
US20170150174A1 (en) 2017-05-25
US20190215530A1 (en) 2019-07-11
SI2774375T1 (sl) 2021-01-29
US9571833B2 (en) 2017-02-14
EP2774375B1 (en) 2020-10-07
RS61125B1 (sr) 2020-12-31
HUE052162T2 (hu) 2021-04-28
US20200154132A1 (en) 2020-05-14
CN104054350B (zh) 2018-06-15
KR101717475B1 (ko) 2017-03-17
EP3849191A1 (en) 2021-07-14
EP2774375A4 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
RU2577207C2 (ru) Способ и устройство для видеокодирования
US20210409756A1 (en) Method for video coding and an apparatus
US10701391B2 (en) Motion vector difference (MVD) prediction
RU2668723C2 (ru) Способ и оборудование для кодирования и декодирования видеосигналов
CN113383550A (zh) 光流修正的提前终止
CN104170385B (zh) 用于编码的方法和装置
RU2778993C2 (ru) Способ и аппаратура предсказания видеоизображений
RU2787812C2 (ru) Способ и аппаратура предсказания видеоизображений

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant