RU2684753C1 - Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных - Google Patents
Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных Download PDFInfo
- Publication number
- RU2684753C1 RU2684753C1 RU2018100102A RU2018100102A RU2684753C1 RU 2684753 C1 RU2684753 C1 RU 2684753C1 RU 2018100102 A RU2018100102 A RU 2018100102A RU 2018100102 A RU2018100102 A RU 2018100102A RU 2684753 C1 RU2684753 C1 RU 2684753C1
- Authority
- RU
- Russia
- Prior art keywords
- predictors
- motion vector
- block
- motion
- predictor
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/127—Prioritisation of hardware or computational resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении вычислительной сложности. Устройство кодирования для определения возможных вариантов предиктора вектора движения для блока, подлежащего кодированию, содержит блок получения для получения множества векторов движения, при этом множество векторов движения способны включать в себя по меньшей мере множество пространственных векторов движения, полученных из кадра, включающего в себя блок, подлежащий кодированию, или временной вектор движения, полученный из кадра, отличного от кадра, включающего в себя блок, подлежащий кодированию; блок обработки для выполнения обработки множества пространственных векторов движения, полученных блоком получения; и блок определения для определения по меньшей мере части множества векторов движения, полученных блоком получения, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего кодированию, причем блок обработки исключает один из идентичных векторов движения из множества пространственных векторов движения в случае, когда идентичные пространственные векторы движения были получены блоком получения, и временной вектор движения не подлежит обработке, выполняемой блоком обработки. 6 н. и 18 з.п. ф-лы, 13 ил., 1 табл.
Description
Настоящее изобретение относится к способу и устройству для кодирования последовательности цифровых изображений и к способу и устройству для декодирования соответствующего потока битов. Изобретение дополнительно относится к способу и устройству для извлечения информации движения, включающей в себя, по меньшей мере, один предиктор информации движения для предсказания части изображения для изображения, предсказанного посредством компенсации движения, относительно, по меньшей мере, одной части опорного изображения.
Изобретение может применяться в области техники обработки цифровых сигналов и, в частности, в области сжатия видео с использованием компенсации движения, чтобы уменьшать пространственные и временные избыточности в видеопотоках.
Множество форматов сжатия видео, таких как, например, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, используют дискретное косинусное преобразование (DCT) на основе блоков и компенсацию движения, чтобы удалять пространственные и временные избыточности. Они могут упоминаться как видеоформаты с предсказанием. Каждый кадр или изображение видеосигнала разделяется на серии последовательных макроблоков, которые кодируются и могут декодироваться независимо. Серия последовательных макроблоков типично представляет собой прямоугольную часть кадра либо, если обобщать, часть кадра или весь кадр. Дополнительно, каждая серия последовательных макроблоков разделяется на макроблоки (MB), и каждый макроблок дополнительно разделяется на блоки, типично блоки по 8×8 пикселов. Кодированные кадры имеют два типа: временные предсказанные кадры (либо предсказанные из одного опорного кадра, называемые "P-кадрами", либо предсказанные из двух опорных кадров, называемые "B-кадрами") и невременные предсказанные кадры (называемые "внутренними кадрами", или "I-кадрами").
Временное предсказание состоит в нахождении в опорном кадре, предыдущем или будущем кадре видеопоследовательности, части изображения или опорной области, которая является ближайшей к блоку для кодирования. Этот этап типично известен в качестве оценки движения. Затем, блок предсказывается с использованием опорной области на этапе, типично называемом "компенсацией движения", при этом разность между блоком для кодирования и опорной частью кодируется, вместе с элементом информации движения относительно вектора движения, который указывает опорную область для использования для компенсации движения. При внутреннем предсказании кодируется направление предсказания.
Чтобы дополнительно уменьшать затраты на кодирование информации движения, вектор движения может быть кодирован с точки зрения разности между вектором движения и предиктором вектора движения, типично вычисляемым из одного или более векторов движения блоков, окружающих блок для кодирования.
В H.264 векторы движения кодируются относительно среднего предиктора, вычисленного из векторов движения, расположенных в причинном окружении блока для кодирования, например, из блоков, расположенных выше и слева от блока для кодирования. Разность, также называемая "остаточным вектором движения", между средним предиктором и вектором движения текущего блока, кодируется для того, чтобы уменьшать затраты на кодирование.
Кодирование с использованием остаточных векторов движения дает некоторую экономию скорости передачи битов, но требует того, чтобы декодер выполнял идентичное вычисление предиктора вектора движения, чтобы декодировать значение вектора движения блока для декодирования.
В последнее время, предлагаются дополнительные возможности повышения эффективности кодирования, такие как использование множества возможных предикторов векторов движения. Этот способ, зачастую называемый "конкуренцией векторов движения (MVCOMP)", состоит в определении из числа нескольких предикторов или возможных вариантов векторов движения того, какой предиктор вектора движения минимизирует затраты на кодирование, типично функцию затрат на искажение в зависимости от скорости передачи, остаточной информации движения. Остаточная информация движения содержит остаточный вектор движения, т.е. разность между фактическим вектором движения блока для кодирования и выбранным предиктором вектора движения, и элемент информации, указывающий выбранный предиктор вектора движения, такой как, например, кодированное значение индекса выбранного предиктора вектора движения. Индекс выбранного предиктора вектора движения кодируется в потоке битов с помощью унарного максимального кода на основе фиксированного размера списка.
В стандарте высокоэффективного кодирования видео (HEVC) предложена новая реализация идентичного принципа для обеспечения возможности выбора наилучшего предиктора из данного набора предикторов, состоящих из пространственных векторов движения и временных векторов движения. Эта технология упоминается в качестве усовершенствованного предсказания векторов движения (AMVP). Если некоторые предикторы из числа этих предикторов данного набора являются копиями других предикторов в наборе, копии могут удаляться, и дополнительные предикторы могут добавляться в набор, чтобы создавать новый второй набор предикторов. Добавленные предикторы могут быть комбинацией пространственных и временных предикторов, уже присутствующих в наборе, других предикторов, извлекаемых из этих пространственных и временных предикторов, или предикторов с фиксированными значениями. В завершение, дублированные предикторы второго набора предикторов удаляются, чтобы получать неизбыточные возможные варианты во втором наборе предикторов.
Сформированный второй набор предикторов значительно повышает сложность процесса извлечения. Повышенная вычислительная сложность вытекает из каскадного формирования предикторов.
Текущая HEVC-реализация использует набор предикторов векторов движения, содержащих самое большее 2 предиктора для внешнего режима и самое большее 5 предикторов для режима пропуска со слиянием и режима слияния.
В текущей HEVC-схеме внешнее предсказание может быть однонаправленным или двунаправленным. "Однонаправленное" означает то, что один блок предиктора используется для того, чтобы предсказывать текущий блок. Один блок предиктора задается посредством индекса списка, индекса опорного кадра и вектора движения. Индекс списка соответствует списку опорных кадров. Например, может рассматриваться возможность того, что используются два списка: L0 и L1. Один список содержит, по меньшей мере, один опорный кадр, и опорный кадр может быть включен в оба списка. Вектор движения имеет два компонента: горизонтальный и вертикальный. Вектор движения соответствует пространственному смещению в отношении пикселов между текущим блоком и временным блоком предиктора в опорном кадре. Таким образом, предиктор блока для однонаправленного предсказания является блоком из опорного кадра (опорного индекса) списка, указываемого посредством вектора движения.
Для двунаправленного внешнего предсказания рассматриваются два предиктора блоков: по одному для каждого списка (L0 и L1). Следовательно, рассматриваются 2 индекса опорных кадров, как и 2 вектора движения. Предиктор внешнего блока для двунаправленного предсказания представляет собой среднее (попиксельное) двух блоков, указываемых посредством этих двух векторов движения.
Информация движения, выделяемая предиктору внешнего блока, может быть задана посредством следующих параметров:
- Тип направления: однонаправленное или двунаправленное
- Один список (однонаправленное) или два списка (двунаправленное): L0, L1, L0 и L1.
- Один (однонаправленное) или два индекса опорных кадров (двунаправленное): RefL0, RefL1, (RefL0, RefL1).
- Один (однонаправленное) или два вектора движения (двунаправленное): каждый вектор движения имеет два компонента (горизонтальный mvx и вертикальный mvy).
Можно отметить, что двунаправленный внешний предиктор может использоваться только для типа серии последовательных макроблоков B-типа. Внешнее предсказание в сериях последовательных B-макроблоков может быть одно- или двунаправленным. В сериях последовательных P-макроблоков внешнее предсказание является только однонаправленным.
Текущая схема HEVC использует 3 различных внешних режима: внешний режим, режим слияния и режим пропуска со слиянием. Основное отличие между этими режимами заключается в передаче служебных данных в потоке битов.
Во внешнем режиме все данные явно передаются в служебных сигналах. Это означает то, что остаток текстуры кодируется и вставляется в поток битов (остаток текстуры является разностью между текущим блоком и блоком внешнего предсказания). Для информации движения кодируются все данные. Таким образом, кодируется тип направления (одно- или двунаправленное). Индекс списка, если требуется, также кодируется и вставляется в поток битов. Связанные индексы опорных кадров явно кодируются и вставляются в поток битов. Значение вектора движения предсказывается посредством выбранного предиктора вектора движения. Остаток вектора движения для каждого компонента затем кодируется и вставляется в поток битов, после чего следует индекс предиктора.
В режиме слияния остаток текстуры и индекс предиктора кодируются и вставляются в поток битов. Остаток вектора движения, тип направления, список или индекс опорного кадра не кодируются. Эти параметры движения извлекаются из индекса предиктора. Таким образом, предиктор является предиктором всех данных информации движения.
В режиме пропуска со слиянием информация, за исключением "режима" и индекса предиктора, не передается на сторону декодера. В этом режиме обработка является аналогичной режиму слияния за исключением того, что остаток текстуры не кодируется или не передается. Пиксельные значения блока пропуска со слиянием являются пиксельными значениями предиктора блока.
В наборе предикторов информации движения, представленном на фиг. 1, два пространственных вектора движения внешнего режима выбираются из числа тех блоков в кадре N, которые находятся выше и слева от блока, который должен быть кодирован, включающих в себя верхние угловые блоки и левый угловой блок.
Левый предиктор выбирается из числа блоков "верхний левый" и "левый". Следующие условия оцениваются в указанном порядке до тех пор, пока не будет найдено значение вектора движения:
1. Вектор движения из идентичного опорного списка и идентичного опорного изображения
2. Вектор движения из другого опорного списка и идентичного опорного изображения
3. Масштабированный вектор движения из идентичного опорного списка и другого опорного изображения
4. Масштабированный вектор движения из другого опорного списка и другого опорного изображения
Если значение не находится, левый предиктор считается недоступным. В этом случае, это указывает, что связанные блоки внутренне кодированы, или эти блоки не существуют. Верхний предиктор выбирается из "верхний правый", "верхний" и "верхний левый" в этом конкретном порядке с идентичными условиями, как описано выше.
Временной предиктор движения поступает из ближайшего опорного кадра в конфигурации с низкой задержкой. В случае B-кадров 2 вектора движения рассматриваются для совместно размещенного блока в кадре N-1. Один располагается в первом списке L0, и один располагается во втором списке L1. Если оба вектора движения существуют, выбирается вектор движения, который имеет кратчайшее временное расстояние. Если оба предиктора векторов движения имеют идентичное временное расстояние, выбирается движение из первого списка L0. Выбранный совместно размещенный вектор движения затем масштабируется, если требуется, согласно своему временному расстоянию и временному расстоянию кодированного вектора движения. Если совместно размещенного предиктора не существует, предиктор считается недоступным.
Для иерархического кодирования B-кадров могут рассматриваться 2 совместно размещенных вектора движения. Оба поступают из будущего опорного кадра. Выбирается вектор движения, который пересекает текущий кадр. Если оба предиктора пересекают текущий кадр, выбирается вектор движения, который имеет кратчайшее временное расстояние. Если оба предиктора имеют идентичное временное расстояние, то выбирается движение из первого списка L0. Выбранный совместно размещенный вектор движения затем масштабируется, если требуется, согласно своему временному расстоянию и временному расстоянию кодированного вектора движения. Если совместно размещенного предиктора не существует, предиктор считается недоступным.
Для случая с низкой задержкой и иерархического случая, когда совместно размещенный блок разделяется на множество сегментов (потенциально, совместно размещенный блок содержит множество векторов движения), выбранный сегмент является верхним левым центральным сегментом. Кроме того, временной предиктор является вектором движения блока в нижней правой позиции совместно размещенного блока (позиции H на фиг. 1). Если этот блок не существует, или если он внутренне кодируется, блок в центральной позиции совместно размещенного блока выбирается в качестве вектора движения, который должен быть извлечен.
Значение предиктора движения затем добавляется в набор предикторов.
В завершение, применяется процесс отбрасывания. Он состоит в удалении дублированных предикторов из набора выбранных предикторов векторов движения. В конце этого процесса набор содержит недублированные предикторы векторов движения. Этот набор может содержать 1, 2, 3 или 4 предиктора. В текущей схеме, список предикторов является фиксированным, так что размер списка ограничен 2. Следовательно, выбранный предиктор кодируется с помощью одного бита. Таким образом, если число предикторов в списке равно 3 или 4, последний предиктор, или, соответственно, 2 последних предиктора удаляются.
Предиктор режимов слияния ("классического" или пропуска) представляет всю информацию движения: направление, список, индекс опорного кадра и векторы движения. Индекс предиктора кодируется с помощью унарного максимального кода, как проиллюстрировано в таблице 1.
ТАБЛИЦА 1 | |||||
Кодовое слово, когда число предикторов в наборе составляет N | |||||
Индекс | N=1 | N=2 | N=3 | N=4 | N=5 |
0 | (логически выводится) | 0 | 0 | 0 | 0 |
1 | 1 | 10 | 10 | 10 | |
2 | 11 | 110 | 110 | ||
3 | 111 | 1110 | |||
4 | 1111 |
Размер списка является фиксировано равным 5 для всех блоков слияния или блоков пропуска со слиянием в текущей HEVC-схеме.
Фиг. 2 является блок-схемой последовательности операций в примере процесса извлечения векторов движения для режимов слияния внутреннего предсказания (пропуск со слиянием и слияние имеют идентичный процесс извлечения предикторов векторов движения). Способ применяется для того, чтобы получать набор потенциальных предикторов информации движения для кодирования части изображения для изображения относительно части опорного изображения. На первом этапе извлечения, рассматриваются 7 позиций блоков (601-607). Эти позиции являются пространственными и временными позициями, проиллюстрированными на фиг. 1 (каждая позиция обозначается одинаково на обоих чертежах). Модуль 608 проверяет доступность этих векторов движения и выбирает самое большее 5 векторов движения. Этот этап 608 реализации модуля определяет то, что предиктор доступен, если он существует, а если блок не подвергается внутреннему кодированию. Выбор и верификация 5 выбранных векторов движения выполняется в соответствии со следующими условиями:
- Если доступен "левый" вектор (601) движения (т.е. если он существует, и если этот блок не подвергается внутреннему кодированию), вектор движения "левого" блока выбирается и используется в качестве предиктора 1 (610).
- Если доступен "верхний" вектор (602) движения, вектор движения "верхнего" блока выбирается и используется в качестве предиктора 2 (611).
- Если доступен "верхний правый" вектор (603) движения, вектор движения "верхнего правого" блока выбирается и используется в качестве предиктора 3 (612).
- Если доступен "нижний левый" вектор (604) движения, вектор движения "нижнего левого" блока выбирается и используется в качестве предиктора 4 (613).
- Если один (или более) из предыдущих предикторов недоступны, и если доступен "верхний левый" вектор (605) движения, вектор движения "верхнего левого" блока добавляется в набор предикторов векторов движения после добавленного пространственного предиктора.
- Если доступен вектор H движения, вектор движения блока H выбирается и используется в качестве предиктора 5 (614). Если блок H недоступен, проверяется доступность "совместно размещенного" вектора движения (т.е. вектора движения блока в позиции в опорном кадре, идентичной позиции текущего блока в текущем кадре), и если он существует, он используется в качестве временного предиктора. Проверка доступности, выполняемая посредством модуля 608, требует 1 цикла.
Временной предиктор должен масштабироваться при необходимости. Фактически, для временного вектора движения, направление и индекс опорного кадра не зависят от блока H или совместно размещенного блока, а зависят от данных текущей серии последовательных макроблоков. Если текущий блок находится в серии последовательных B-макроблоков, временной предиктор всегда является двунаправленным, и всегда является однонаправленным для серий последовательных P-макроблоков. Индексы опорных кадров для каждого списка (L0, L1) опорных кадров извлекаются из левого и верхнего предиктора. Если для списка левый и верхний блоки не имеют индекса опорного кадра, индекс опорного кадра для временного предиктора задается равным нулю.
Поскольку индекс опорного кадра для временного предиктора зависит не от индекса опорного кадра блока H или совместно размещенного блока, а от опорного кадра левого и верхнего предиктора, его значение вектора движения должно масштабироваться. Это означает то, что если временное расстояние, покрываемое посредством временного вектора движения, отличается от разности между текущим кадром и опорным кадром предиктора, временной вектор движения масштабируется, чтобы покрывать корректное временное расстояние.
В конце модулей 608 и 609 набор предикторов содержит самое большее 5 предикторов (610-614). Затем, процесс 615 отбрасывания применяется для того, чтобы удалять дублированные возможные варианты из набора предикторов. Этот процесс состоит в сравнении каждого предиктора набора со всеми остальными предикторами в этом наборе и в удалении тех предикторов, которые равны другому предиктору в наборе (при сохранении другого предиктора, дублированный возможный вариант которого является копией в наборе), так что копии отсутствуют для предикторов в наборе. Процесс отбрасывания для серий последовательных P-макроблоков учитывает значения векторов движения и их индексы опорных кадров. Соответственно, два компонента вектора движения и его опорного индекса сравниваются со всеми остальными, и только если эти три значения равны, предиктор удаляется из набора. Для B-кадра этот критерий расширяется на направление и списки. Таким образом, предиктор считается дублированным предиктором, если он использует идентичное направление, идентичные списки (L0, L1 или L0 и L1), индексы опорных кадров и идентичное значение векторов движения (MV_L0 и MV_L1 для двунаправленного предсказания). Процесс отбрасывания длится 1 цикл, когда должны сравниваться 5 предикторов самое большее. Фактически, можно считать, что 12 сравнений могут быть вычислены в 1 цикле. Число сравнений для процесса отбрасывания в самом сложном случае равно сумме от 0 до N-1. Следовательно, для 5 предикторов требуются 10 сравнений (т.е. 4+3+2+1=10).
В конце этого процесса 615 отбрасывания формируется сокращенный набор 616 предикторов.
Затем, модуль 617 формирования векторов движения формирует новые возможные варианты на основе сокращенного набора предикторов векторов движения. Эта обработка типично может длиться, по меньшей мере, один цикл. Можно отметить, что в текущей HEVC-схеме, используемая схема может формировать максимум 20 предикторов в самом сложном случае. Этот модуль 617 формирует второй набор 618 предикторов.
Второй набор 618 предикторов добавляется в сокращенный набор 616 предикторов, и процесс отбрасывания применяется для того, чтобы удалять дублированные возможные варианты этого второго набора предикторов по сравнению с сокращенным и вторым наборами. Этот процесс отбрасывания является аналогичным процессу отбрасывания модуля 615. Тем не менее, в завершение, если список содержит более 5 предикторов, список предикторов усекается до 5, что представляет собой текущий размер списка, заданный в HEVC-схеме. Можно отметить, что этот процесс может длиться, по меньшей мере, 1 цикл. Тем не менее, длительность цикла зависит от числа предикторов, сформированных во втором наборе 618 предикторов. В текущей реализации HEVC этот процесс длится 3 цикла вследствие числа сформированных предикторов (наиболее сложный случай: 32 сравнения для текущей схемы).
В завершение, процесс 619 отбрасывания формирует окончательный список 620 предикторов, из которого должен извлекаться предиктор для текущего блока.
Недостаток процесса состоит в том, что извлечение предиктора текущего вектора движения для режима слияния может достигать 11 циклов в самом сложном случае, в то время как, по меньшей мере, 5 циклов требуются в наименее сложном случае. Таким образом, извлечение векторов движения оказывает значительное влияние на сложность кодирования и декодирования.
Настоящее изобретение разработано, чтобы разрешать одну или более вышеприведенных проблем.
Независимо, в первом аспекте изобретения, может предоставляться способ извлечения, по меньшей мере, одного предиктора информации движения для кодирования или декодирования части изображения для изображения посредством компенсации движения относительно, по меньшей мере, одной части опорного изображения, при этом для упомянутой части изображения, которая должна быть кодирована или декодирована, способ содержит предоставление, для обработки, по меньшей мере, двух различных первого и второго поднаборов предикторов информации движения первого набора (801-807) предикторов информации движения, причем первый поднабор содержит, по меньшей мере, один временной предиктор информации движения, и второй поднабор содержит, по меньшей мере, один пространственный предиктор информации движения и исключает временные предикторы информации движения; обработку (808, 809) первого поднабора предикторов информации движения; и обработку (808, 815, 817) второго поднабора предикторов информации движения; и получение (819), на основе предикторов (818, 814) информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, окончательного набора (820) предикторов информации движения, применимых для предсказания упомянутой части изображения из части опорного изображения; при этом обработка второго поднабора содержит удаление копий из числа предикторов информации движения упомянутого второго поднабора только в случае, если второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять сокращенный поднабор (816) предикторов информации движения.
Поскольку временные предикторы исключаются из выбора для второго поднабора, следует понимать, что процесс удаления или отбрасывания копий из числа выбранных предикторов второго поднабора может применяться к пространственным предикторам только и тем самым не заключает в себе обработку временных предикторов информации движения.
Посредством исключения временных предикторов из процесса отбрасывания таким образом, уменьшается общее число сравнений, в силу этого снижается вычислительная сложность.
Наоборот, в конкретных вариантах осуществления пространственные предикторы исключаются из выбора для первого поднабора. Обработка первого набора (то есть временных предикторов движения) может не заключать в себе удаление копий в некоторых вариантах осуществления, хотя, как подробнее поясняется ниже, варианты осуществления преимущественно могут комбинировать обработанные первый и второй поднаборы, с тем чтобы исключать копии на стадии получения окончательного набора. Другими словами, как следствие, обработка первого набора может не заключать в себе удаление копий до получения окончательного набора.
В варианте осуществления, масштабирование временного предиктора информации движения первого поднабора выполняется одновременно с этапами удаления копий и формирования дополнительных предикторов информации движения второго поднабора.
В варианте осуществления, способ включает в себя: удаление копий из числа предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, в случае если один или более предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, являются идентичными, чтобы предоставлять окончательный набор предикторов информации движения, применимых для кодирования упомянутой части изображения, так что копии отсутствуют в окончательном наборе предикторов информации движения.
В варианте осуществления, обработка второго поднабора предикторов информации движения дополнительно содержит удаление копий из числа предикторов информации движения дополнительного второго поднабора предикторов информации движения, в случае если дополнительный второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять второй сокращенный поднабор предикторов информации движения.
В варианте осуществления, этап удаления копий из числа предикторов информации движения дополнительного второго поднабора выполняется одновременно с масштабированием временного предиктора информации движения первого поднабора.
В варианте осуществления, способ включает в себя добавление, во второй сокращенный поднабор предикторов информации движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения второго сокращенного поднабора предикторов информации движения, чтобы получать окончательный набор предикторов информации движения.
В варианте осуществления, способ включает в себя добавление, в сокращенный поднабор предикторов информации движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения сокращенного поднабора предикторов информации движения; при этом окончательный набор предикторов информации движения содержит недублированные векторы движения из числа предикторов векторов движения из сокращенного поднабора предикторов информации движения и дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, обработка второго поднабора, выполняемая одновременно с обработкой первого поднабора, основана на оценке длительности обработки первого поднабора.
В варианте осуществления, предикторы информации движения, полученные в результате обработки второго поднабора, которые добавляются в предикторы информации движения, полученные в результате обработки первого поднабора, чтобы получать окончательный набор предикторов информации движения, основаны на длительности обработки первого поднабора.
В варианте осуществления, способ включает в себя этап определения, на основе временной разности между изображением части изображения и изображением части опорного изображения, того, должен или нет процесс временного масштабирования применяться к первому поднабору предикторов информации движения; при этом в случае, если определяется то, что процесс временного масштабирования должен применяться, обработка первого поднабора предикторов информации движения содержит этап временного масштабирования предикторов информации движения первого поднабора предикторов информации движения на основе временной разности между изображением части изображения и изображением части опорного изображения; в противном случае, если определяется то, что процесс временного масштабирования не должен применяться, обработка первого поднабора предикторов информации движения содержит этап удаления копий из числа предикторов информации движения первого поднабора предикторов информации движения, так что сокращенный поднабор, содержащий недублированные предикторы информации движения из числа предикторов информации движения первого поднабора предикторов информации движения и второго поднабора предикторов информации движения, предоставляется посредством обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения.
В варианте осуществления, в случае если определяется то, что процесс временного масштабирования должен применяться, окончательный набор предикторов получается посредством удаления копий из числа предикторов информации движения, полученных в результате параллельной обработки первого поднабора предикторов информации движения и второго поднабора предикторов информации движения; в противном случае, если определяется то, что процесс временного масштабирования не должен применяться, окончательный набор предикторов получается посредством формирования дополнительных предикторов информации движения на основе сокращенного поднабора, чтобы предоставлять дополнительный второй поднабор предикторов информации движения, и удаления копий из числа дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, способ включает в себя определение сложности процесса временного масштабирования первого поднабора предикторов информации движения, при этом в случае если определяется то, что процесс временного масштабирования длится в течение большей длительности, чем предварительно определенное пороговое значение длительности, окончательный набор предикторов информации движения получается посредством удаления копий из числа предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения; в противном случае, если определяется то, что процесс временного масштабирования длится в течение меньшей длительности, чем предварительно определенное пороговое значение длительности, окончательный набор предикторов получается посредством добавления, в сокращенный поднабор предикторов информации движения, полученный из второго поднабора предикторов векторов движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения сокращенного поднабора предикторов информации движения; при этом окончательный набор предикторов информации движения содержит недублированные предикторы информации движения из числа предикторов информации движения сокращенного поднабора предикторов информации движения и дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, обработка второго поднабора первого набора предикторов информации движения содержит удаление копий из числа предикторов информации движения упомянутого второго поднабора, чтобы предоставлять сокращенный поднабор предикторов информации движения; и формирование дополнительного набора предикторов информации движения на основе одного из предикторов информации движения упомянутого второго поднабора и включение упомянутого одного из предикторов информации движения упомянутого второго поднабора, при этом копии отсутствуют в дополнительном наборе предикторов информации движения, при этом способ дополнительно содержит удаление копий из числа сокращенного поднабора предикторов информации движения и дополнительного набора предикторов информации движения, чтобы предоставлять недублированный набор предикторов информации движения.
В варианте осуществления, обработка второго поднабора первого набора предикторов информации движения дополнительно содержит: формирование дополнительных предикторов информации движения на основе сокращенного поднабора предикторов информации движения, чтобы предоставлять дополнительный второй поднабор предикторов информации движения; и удаление копий из числа предикторов информации движения дополнительного второго поднабора предикторов информации движения и недублированного набора предикторов информации движения, чтобы предоставлять второй недублированный набор предикторов информации движения.
В варианте осуществления, способ включает в себя добавление, во второй недублированный набор предикторов информации движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения второго недублированного набора предикторов информации движения, чтобы получать окончательный набор предикторов информации движения.
Согласно второму аспекту изобретения, предусмотрено устройство для извлечения, по меньшей мере, одного предиктора информации движения для кодирования или декодирования части изображения для изображения посредством компенсации движения относительно, по меньшей мере, одной части опорного изображения, причем устройство содержит: средство для получения, по меньшей мере, двух различных первого и второго поднаборов предикторов информации движения первого набора предикторов информации движения; первое средство обработки для обработки первого поднабора предикторов информации движения; и второе средство обработки для обработки второго поднабора предикторов информации движения, при этом второе средство обработки сконфигурировано с возможностью выполнять, по меньшей мере, часть обработки второго поднабора предикторов информации движения одновременно, по меньшей мере, с частью обработки первого поднабора предикторов информации движения, выполняемой посредством первого средства обработки; и средство для получения, на основе предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, окончательного набора предикторов информации движения, применимых для предсказания упомянутой части изображения из части опорного изображения.
В варианте осуществления, первый поднабор содержит, по меньшей мере, один временной предиктор информации движения, и второй поднабор содержит, по меньшей мере, один пространственный предиктор информации движения.
В варианте осуществления, первое средство обработки сконфигурировано с возможностью временно масштабировать один или каждый временной предиктор информации движения на основе временной разности между изображением части изображения, которая должна быть кодирована, и изображением части опорного изображения.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью формировать набор недублированных предикторов информации движения, в которых копии отсутствуют для предикторов информации движения упомянутого набора.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью формировать один или более дополнительных предикторов информации движения на основе предикторов информации движения второго поднабора.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью комбинировать один или более предикторов информации движения второго поднабора и/или добавлять смещение в один или более предикторов информации второго поднабора.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью: удалять копии из числа предикторов информации движения упомянутого второго поднабора, в случае если второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять сокращенный поднабор предикторов информации движения; и формировать дополнительные предикторы информации движения на основе сокращенного поднабора предикторов информации движения, чтобы предоставлять дополнительный второй поднабор предикторов информации движения.
В связанном аспекте, независимо может быть предусмотрено устройство для извлечения, по меньшей мере, одного предиктора информации движения для кодирования или декодирования части изображения для изображения посредством компенсации движения относительно, по меньшей мере, одной части опорного изображения, причем устройство содержит: средство для получения, по меньшей мере, двух различных первого и второго поднаборов предикторов информации движения первого набора (801-807) предикторов информации движения, причем первый поднабор содержит, по меньшей мере, один временной предиктор информации движения, и второй поднабор содержит, по меньшей мере, один пространственный предиктор информации движения и исключает временные предикторы информации движения; первое средство (808, 809) обработки для обработки первого поднабора предикторов информации движения; и второе средство (808, 815, 817) обработки для обработки второго поднабора предикторов информации движения; и средство для получения (819), на основе предикторов (818, 814) информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, окончательного набора (820) предикторов информации движения, применимых для предсказания упомянутой части изображения из части опорного изображения; при этом вторая обработка сконфигурирована с возможностью удалять копии из числа предикторов информации движения упомянутого второго поднабора только в случае, если второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять сокращенный поднабор (816) предикторов информации движения.
В варианте осуществления, первое средство обработки сконфигурировано с возможностью выполнять масштабирование временного предиктора информации движения первого поднабора одновременно с операциями удаления копий и формирования дополнительных предикторов информации движения второго поднабора, выполняемыми посредством второго средства обработки.
В варианте осуществления, устройство включает в себя средство отбрасывания для удаления копий из числа предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, в случае если один или более предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения сокращенного поднабора предикторов информации движения; при этом окончательный набор предикторов информации движения содержит недублированные предикторы информации движения из числа предикторов информации движения сокращенного поднабора предикторов информации движения и дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, обработка второго поднабора первого набора предикторов информации движения содержит удаление копий из числа предикторов информации движения упомянутого второго поднабора, чтобы предоставлять сокращенный поднабор предикторов информации движения; и формирование дополнительного набора предикторов информации движения на основе одного из предикторов информации движения упомянутого второго поднабора и включение упомянутого одного из предикторов информации движения упомянутого второго поднабора, при этом копии отсутствуют в дополнительном наборе предикторов информации движения, при этом способ дополнительно содержит удаление копий из числа сокращенного поднабора предикторов информации движения и дополнительного набора предикторов информации движения, чтобы предоставлять недублированный набор предикторов информации движения.
В варианте осуществления, обработка второго поднабора первого набора предикторов информации движения дополнительно содержит: формирование дополнительных предикторов информации движения на основе сокращенного поднабора предикторов информации движения, чтобы предоставлять дополнительный второй поднабор предикторов информации движения; и удаление копий из числа предикторов информации движения дополнительного второго поднабора предикторов информации движения и недублированного набора предикторов информации движения, чтобы предоставлять второй недублированный набор предикторов информации движения.
В варианте осуществления, способ включает в себя добавление, во второй недублированный набор предикторов информации движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения второго недублированного набора предикторов информации движения, чтобы получать окончательный набор предикторов информации движения.
Во втором аспекте изобретения, независимо может быть предусмотрено устройство для извлечения, по меньшей мере, одного предиктора информации движения для кодирования или декодирования части изображения для изображения посредством компенсации движения относительно, по меньшей мере, одной части опорного изображения, причем устройство содержит: средство для получения, по меньшей мере, двух различных первого и второго поднаборов предикторов информации движения первого набора (801-807) предикторов информации движения, причем первый поднабор содержит, по меньшей мере, один временной предиктор информации движения, и второй поднабор содержит, по меньшей мере, один пространственный предиктор информации движения и исключает временные предикторы информации движения; первое средство (808, 809) обработки для обработки первого поднабора предикторов информации движения; и второе средство (808, 815, 817) обработки для обработки второго поднабора предикторов информации движения; и средство для получения (819), на основе предикторов (818, 814) информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, окончательного набора (820) предикторов информации движения, применимых для предсказания упомянутой части изображения из части опорного изображения; при этом вторая обработка сконфигурирована с возможностью удалять копии из числа предикторов информации движения упомянутого второго поднабора только в случае, если второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять сокращенный поднабор (816) предикторов информации движения.
В варианте осуществления, первое средство обработки сконфигурировано с возможностью выполнять масштабирование временного предиктора информации движения первого поднабора одновременно с операциями удаления копий и формирования дополнительных предикторов информации движения второго поднабора, выполняемыми посредством второго средства обработки.
В варианте осуществления, устройство включает в себя средство отбрасывания для удаления копий из числа предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, в случае если один или более предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения, являются идентичными, чтобы предоставлять окончательный набор предикторов информации движения, применимых для кодирования упомянутой части изображения, так что копии отсутствуют в окончательном наборе предикторов информации движения.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью удалять копии из числа предикторов информации движения дополнительного второго поднабора предикторов информации движения, в случае если дополнительный второй поднабор содержит один или более предикторов информации движения, которые являются идентичными, чтобы предоставлять второй сокращенный поднабор предикторов информации движения.
В варианте осуществления, второе средство обработки сконфигурировано с возможностью удалять копии из числа предикторов информации движения дополнительного второго поднабора одновременно с масштабированием временного предиктора информации движения первого поднабора, выполняемым посредством первого средства обработки.
В варианте осуществления, устройство включает в себя средство, сконфигурированное с возможностью добавлять, во второй сокращенный поднабор предикторов информации движения, предиктор информации движения, полученный в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения второго сокращенного поднабора предикторов информации движения, чтобы получать окончательный набор предикторов информации движения.
В варианте осуществления, устройство включает в себя средство для добавления, в сокращенный поднабор предикторов информации движения, предиктора информации движения, полученного в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения сокращенного поднабора предикторов информации движения; при этом окончательный набор предикторов информации движения содержит недублированные векторы движения из числа предикторов векторов движения из сокращенного поднабора предикторов информации движения и дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, устройство включает в себя средство для оценки длительности обработки первого поднабора, при этом обработка второго поднабора, выполняемая посредством второго средства обработки одновременно с обработкой первого поднабора, выполняемой посредством первого средства обработки, основана на оценке длительности обработки первого поднабора.
В варианте осуществления, устройство включает в себя средство для оценки длительности обработки первого поднабора, при этом предикторы информации движения, полученные в результате обработки второго поднабора, которые добавляются в предикторы информации движения, полученные в результате обработки первого поднабора, чтобы получать окончательный набор предикторов информации движения, основаны на длительности обработки первого поднабора.
В варианте осуществления, устройство включает в себя средство для определения, на основе временной разности между изображением части изображения и изображением части опорного изображения, того, должен или нет процесс временного масштабирования применяться к первому поднабору предикторов информации движения; при этом в случае, если определяется то, что процесс временного масштабирования должен применяться, первое средство обработки сконфигурировано с возможностью выполнять временное масштабирование предикторов информации движения первого поднабора предикторов информации движения на основе временной разности между изображением части изображения и изображением части опорного изображения; в противном случае, если определяется то, что процесс временного масштабирования не должен применяться, первое средство обработки сконфигурировано с возможностью удалять копии из числа предикторов информации движения первого поднабора предикторов информации движения, так что сокращенный поднабор, содержащий недублированные предикторы информации движения из числа предикторов информации движения первого поднабора предикторов информации движения и второго поднабора предикторов информации движения, предоставляется посредством обработки, выполняемой посредством первого средства обработки и второго средства обработки.
В варианте осуществления, устройство включает в себя средство отбрасывания для получения окончательного набора предикторов информации движения, при этом в случае, если определяется то, что процесс временного масштабирования должен применяться, средство отбрасывания сконфигурировано с возможностью получать окончательный набор предикторов посредством удаления копий из числа предикторов информации движения, полученных в результате параллельной обработки первого поднабора предикторов информации движения и второго поднабора предикторов информации движения; в противном случае, если определяется то, что процесс временного масштабирования не должен применяться, первое или второе средство обработки сконфигурировано с возможностью получать дополнительные предикторы информации движения на основе сокращенного поднабора, чтобы предоставлять дополнительный второй поднабор предикторов информации движения, и средство отбрасывания сконфигурировано с возможностью удалять копии из числа дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, устройство включает в себя средство для определения сложности процесса временного масштабирования первого поднабора предикторов информации движения и средство отбрасывания для получения окончательного набора предикторов информации движения, которые являются недублированными; при этом в случае, если определяется то, что процесс временного масштабирования длится в течение большей длительности, чем предварительно определенное пороговое значение длительности, средство отбрасывания сконфигурировано с возможностью удалять копии из числа предикторов информации движения, полученных в результате обработки первого поднабора предикторов информации движения и обработки второго поднабора предикторов информации движения;
- в противном случае, если определяется то, что процесс временного масштабирования длится в течение меньшей длительности, чем предварительно определенное пороговое значение длительности, средство отбрасывания сконфигурировано с возможностью добавлять в сокращенный поднабор предикторов информации движения, полученный из второго поднабора предикторов векторов движения, предиктор информации движения, полученный в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения сокращенного поднабора предикторов информации движения; при этом окончательный набор предикторов информации движения содержит недублированные предикторы информации движения из числа предикторов информации движения сокращенного поднабора предикторов информации движения и дополнительного второго поднабора предикторов информации движения.
В варианте осуществления, второе средство обработки содержит средство для удаления копий из числа предикторов информации движения упомянутого второго поднабора, чтобы предоставлять сокращенный поднабор предикторов информации движения; и средство для формирования дополнительного набора предикторов информации движения на основе одного из предикторов информации движения упомянутого второго поднабора и включения упомянутого одного из предикторов информации движения упомянутого второго поднабора, при этом копии отсутствуют в дополнительном наборе предикторов информации движения, причем устройство дополнительно содержит средство отбрасывания для удаления копий из числа сокращенного поднабора предикторов информации движения и дополнительного набора предикторов информации движения, чтобы предоставлять недублированный набор предикторов информации движения.
В варианте осуществления, второе средство обработки дополнительно содержит средство для формирования дополнительных предикторов информации движения на основе сокращенного поднабора предикторов информации движения, чтобы предоставлять дополнительный второй поднабор предикторов информации движения; и средство для удаления копий из числа предикторов информации движения дополнительного второго поднабора предикторов информации движения и недублированного набора предикторов информации движения, чтобы предоставлять второй недублированный набор предикторов информации движения.
В варианте осуществления, средство отбрасывания сконфигурировано с возможностью добавлять, во второй недублированный набор предикторов информации движения, предиктор информации движения, полученный в результате обработки первого поднабора предикторов информации движения, который не является копией ни одного из предикторов информации движения второго недублированного набора предикторов информации движения, чтобы получать окончательный набор предикторов информации движения.
Третий аспект изобретения предоставляет способ кодирования последовательности цифровых изображений в поток битов, при этом, по меньшей мере, одна часть изображения кодируется посредством компенсации движения относительно части опорного изображения, при этом, по меньшей мере, для одной части изображения для кодирования способ содержит: получение в наборе предикторов информации движения, применимых для предсказания движения части изображения относительно, по меньшей мере, одной части опорного изображения в соответствии со способом по любому из вариантов осуществления первого аспекта изобретения; выбор, по меньшей мере, одного предиктора информации движения из набора предикторов информации для кодирования части изображения; и кодирование части изображения с использованием выбранного, по меньшей мере, одного предиктора информации движения.
Способ может включать в себя кодирование информационного элемента, идентифицирующего выбранный предиктор информации движения.
Четвертый аспект изобретения предоставляет устройство кодирования для кодирования последовательности изображений в поток битов, при этом, по меньшей мере, одна часть изображения кодируется посредством компенсации движения относительно части опорного изображения, причем устройство кодирования содержит: устройство для извлечения, по меньшей мере, одного предиктора информации движения в соответствии с любым из вариантов осуществления второго аспекта изобретения; средство выбора для выбора, по меньшей мере, одного предиктора информации движения из набора предикторов информации для кодирования части изображения; и средство кодирования для кодирования части изображения с использованием выбранного, по меньшей мере, одного предиктора информации движения.
Пятый аспект изобретения предоставляет способ декодирования потока битов, содержащего кодированную последовательность изображений, причем, по меньшей мере, одна часть изображения кодирована посредством компенсации движения относительно части опорного изображения, при этом способ содержит, по меньшей мере, для одной части изображения, которая должна быть декодирована: получение в наборе предикторов информации движения, применимых для предсказания движения части изображения относительно, по меньшей мере, одной части опорного изображения в соответствии со способом по любому из вариантов осуществления первого аспекта изобретения; выбор, по меньшей мере, одного предиктора информации движения из набора предикторов информации для декодирования части изображения; и декодирование части изображения с использованием выбранного, по меньшей мере, одного предиктора информации движения.
Шестой аспект изобретения предоставляет устройство декодирования декодированию потока битов, содержащего кодированную последовательность изображений, причем, по меньшей мере, одна часть изображения кодирована посредством компенсации движения относительно части опорного изображения, причем устройство декодирования содержит:
- устройство для извлечения, по меньшей мере, одного предиктора информации движения в соответствии с устройством по любому из вариантов осуществления второго аспекта изобретения; средство выбора для выбора, по меньшей мере, одного предиктора информации движения из набора предикторов информации для декодирования части изображения; и средство декодирования для декодирования части изображения с использованием выбранного, по меньшей мере, одного предиктора информации движения.
Следует принимать во внимание, что варианты осуществления различных аспектов изобретения могут использоваться для серий последовательных P- и B-макроблоков и для одно- и двунаправленных внешних предсказаний.
По меньшей мере, части способов согласно изобретению могут быть реализованными на компьютере. Соответственно, настоящее изобретение может принимать форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (включающего в себя микропрограммное обеспечение, резидентное программное обеспечение, микрокод и т.д.) или варианта осуществления, комбинирующего программные и аппаратные аспекты, которые могут совместно, в общем, упоминаться в данном документе как "схема", "модуль" или "система". Кроме того, настоящее изобретение может принимать форму компьютерного программного продукта, осуществленного в любом материальном носителе, в представлении, имеющем используемый компьютером программный код, осуществленный на носителе.
Поскольку настоящее изобретение может быть реализовано в программном обеспечении, настоящее изобретение может быть осуществлено в качестве машиночитаемого кода для предоставления в программируемое устройство на любом подходящем носителе. Материальный носитель может содержать носитель хранения данных, такой как гибкий диск, CD-ROM, жесткий диск, устройство на магнитных лентах или полупроводниковое запоминающее устройство и т.п. Временный носитель может включать в себя такой сигнал, как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал либо электромагнитный сигнал, например, микроволновый или RF-сигнал.
Далее описываются варианты осуществления изобретения, только в качестве примера и со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 является принципиальной схемой набора предикторов векторов движения, используемых в процессе предсказания векторов движения в контексте вариантов осуществления настоящего изобретения;
Фиг. 2 является блок-схемой последовательности операций, иллюстрирующей этапы процесса предшествующего уровня техники для извлечения набора предикторов векторов движения;
Фиг. 3 является блок-схемой, иллюстрирующей компоненты устройства обработки, в котором могут быть реализованы варианты осуществления изобретения;
Фиг. 4 является блок-схемой, иллюстрирующей компоненты устройства кодера согласно вариантам осуществления изобретения;
Фиг. 5 является блок-схемой, иллюстрирующей компоненты устройства декодера согласно вариантам осуществления изобретения;
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения набора предикторов информации движения согласно первому варианту осуществления изобретения;
Фиг. 7 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения набора предикторов информации движения согласно второму варианту осуществления изобретения;
Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения набора предикторов информации движения согласно третьему варианту осуществления изобретения;
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения набора предикторов информации движения согласно четвертому варианту осуществления изобретения;
Фиг. 10(a)-10(c) схематично иллюстрируют схемы для формирования предикторов векторов движения в соответствии с одним или более вариантами осуществления изобретения; и
Фиг. 11 является принципиальной схемой для иллюстрации процесса масштабирования временного предиктора, используемого в вариантах осуществления изобретения.
Фиг. 3 схематично иллюстрирует устройство 200 обработки, сконфигурированное с возможностью реализовывать, по меньшей мере, один вариант осуществления настоящего изобретения. Устройство 200 обработки может быть таким устройством, как микрокомпьютер, рабочая станция или легкое портативное устройство. Устройство 200 содержит шину 213 связи, к которой предпочтительно подсоединяются:
- центральный процессор 211, такой как микропроцессор, обозначаемый CPU;
- постоянное запоминающее устройство 207, обозначаемое ROM, для хранения компьютерных программ для реализации изобретения;
- оперативное запоминающее устройство 212, обозначаемое RAM, для хранения исполняемого кода способа вариантов осуществления изобретения, а также регистров, сконфигурированных с возможностью записывать переменные и параметры, необходимые для реализации способа кодирования последовательности цифровых изображений и/или способа декодирования потока битов согласно вариантам осуществления изобретения; и
- интерфейс 202 связи, присоединенный к сети 203 связи, по которой передаются цифровые данные, которые должны быть обработаны.
Необязательно, устройство 200 также может включать в себя следующие компоненты:
- средство 204 хранения данных, такое как жесткий диск, для хранения компьютерных программ для реализации способов одного или более вариантов осуществления изобретения и данных, используемых или сформированных во время реализации одного или более вариантов осуществления изобретения;
- накопитель 205 на дисках для диска 206, причем накопитель на дисках сконфигурирован с возможностью считывать данные с диска 206 или записывать данные на упомянутый диск;
- экран 209 для отображения данных и/или для службы в качестве графического интерфейса с пользователем, посредством клавиатуры 210 или любого другого средства указания.
Устройство 200 может присоединяться к различным периферийным устройствам, такими как, например, цифровая камера 200 или микрофон 208, присоединенным к плате ввода-вывода (не показана), с тем, чтобы предоставлять мультимедийные данные в устройство 200.
Шина связи обеспечивает связь и функциональную совместимость между различными элементами, включенными в устройство 200 или присоединенными к нему. Представление шины не является ограничивающим, и, в частности, центральный процессор сконфигурирован с возможностью передавать инструкции в любой элемент устройства 200 непосредственно или посредством другого элемента устройства 200.
Диск 206 может быть заменен любым носителем информации, таким как, например, компакт-диск (CD-ROM), перезаписываемый или нет, Zip-диск или карта памяти, и в общем виде, средством хранения информации, которое может считываться посредством микрокомпьютера или посредством микропроцессора, интегрированного или нет в устройство, возможно съемного и сконфигурированного с возможностью хранить одну или более программ, выполнение которых обеспечивает возможность реализации способа кодирования последовательности цифровых изображений и/или способа декодирования потока битов согласно изобретению.
Исполняемый код может быть сохранен либо в постоянном запоминающем устройстве 207 на жестком диске 204, либо на съемном цифровом носителе, таком как, например, диск 206, как описано выше. Согласно варианту, исполняемый код программ может быть принят посредством сети 203 связи через интерфейс 202, чтобы сохраняться на одном из средств хранения устройства 200 перед выполнением, таком как жесткий диск 204.
Центральный процессор 211 сконфигурирован с возможностью управлять и направлять выполнение инструкций или части программного кода программы или программ согласно изобретению, инструкций, которые хранятся на одном из вышеуказанного средств хранения. При включении питания программа или программы, которые хранятся в энергонезависимом запоминающем устройстве, например, на жестком диске 204 или в постоянном запоминающем устройстве 207, передаются в оперативное запоминающее устройство 212, которое в таком случае содержит исполняемый код программы или программ, а также регистры для хранения переменных и параметров, необходимых для реализации изобретения.
В этом варианте осуществления, устройство является программируемым устройством, которое использует программное обеспечение для того, чтобы реализовывать изобретение. Тем не менее, альтернативно настоящее изобретение может быть реализовано в аппаратных средствах (например, в форме специализированной интегральной схемы или ASIC).
Фиг. 4 иллюстрирует блок-схему кодера согласно, по меньшей мере, одному варианту осуществления изобретения. Кодер представляется посредством соединенных модулей, причем каждый модуль сконфигурирован с возможностью реализовывать, например, в форме инструкций программирования, которые должны быть выполнены посредством CPU 211 устройства 200, по меньшей мере, один соответствующий этап способа, реализующего, по меньшей мере, один вариант осуществления кодирования изображения из последовательности изображений согласно одному или более вариантам осуществления изобретения.
Исходная последовательность цифровых изображений i0-in 301 принимается как ввод посредством кодера 30. Каждое цифровое изображение представляется посредством набора выборок, известных как пиксели.
Поток 310 битов выводится посредством кодера 30 после реализации процесса кодирования.
Поток 310 битов содержит множество единиц кодирования или серий последовательных макроблоков, причем каждая серия последовательных макроблоков содержит заголовок серии последовательных макроблоков для передачи значений для кодирования параметров кодирования, используемых для того, чтобы кодировать серию последовательных макроблоков, и тело серии последовательных макроблоков, содержащее кодированные видеоданные.
Входные цифровые изображения i0-i0 301 разделяются на блоки пикселов посредством модуля 302. Блоки соответствуют частям изображения и могут иметь переменные размеры (например, 4×4, 8×8, 16×16, 32×32 пикселов). Режим кодирования выбирается для каждого входного блока. Предоставляются два семейства режимов кодирования: режимы кодирования на основе кодирования с пространственным предсказанием (внутреннее предсказание) и режимы кодирования на основе временного предсказания внешнее предсказание, двунаправленное, режим пропуска. Возможные режимы кодирования тестируются.
Модуль 303 реализует внутреннее предсказание, при котором данный блок, который должен быть кодирован, предсказывается посредством предиктора, вычисленного из пикселов окружения упомянутого блока, который должен быть кодирован. Индикатор относительно выбранного внутреннего предиктора и разность между данным блоком и его предиктором кодируются для того, чтобы предоставлять остаток, если выбирается внутреннее кодирование.
Временное предсказание реализуется посредством модуля 304 оценки движения и модуля 305 компенсации движения. Во-первых, выбирается опорное изображение из числа набора 316 опорных изображений, и часть опорного изображения, также называемая "опорной областью", или часть изображения, которая является ближайшей областью к данному блоку, который должен быть кодирован, выбирается посредством модуля 304 оценки движения. Модуль 305 компенсации движения затем предсказывает блок, который должен быть кодирован, с использованием выбранной области. Разность между выбранной опорной областью и данным блоком, также называемая "остаточным блоком", вычисляется посредством модуля 305 компенсации движения. Выбранная опорная область указывается посредством вектора движения.
Таким образом, в обоих случаях (пространственное и временное предсказание), остаток вычисляется посредством вычитания предсказания из исходного предсказанного блока.
При внутреннем предсказании, реализованном посредством модуля 303, кодируется направление предсказания. При временном предсказании кодируется, по меньшей мере, один вектор движения.
Информация относительно вектора движения и остаточного блока кодируется, если выбирается внешнее предсказание. Чтобы дополнительно снижать скорость передачи битов, вектор движения кодируется посредством разности относительно предиктора вектора движения. Предикторы векторов движения из набора предикторов информации движения получаются из поля 318 векторов движения посредством модуля 317 предсказания и кодирования векторов движения.
Набор предикторов векторов движения, из которых выбирается предиктор вектора движения для кодирования текущего вектора движения, формируется так, как подробнее поясняется далее относительно любого из фиг. 7-10. Для данного текущего блока, который должен быть кодирован, в некоторых вариантах осуществления изобретения определяется число N предикторов векторов движения, и, следовательно, индекс выбранного предиктора вектора движения, который является элементом информации, представляющим выбранный предиктор вектора движения, может быть кодирован с использованием предварительно определенного числа битов согласно числу N предикторов векторов движения. Это предварительно определенное число битов также может быть извлечено посредством декодера даже в случае потерь, и следовательно, можно обеспечивать то, что декодер имеет возможность синтаксически анализировать поток битов даже в случае ошибок или потерь. N предикторов векторов движения выбираются согласно различным вариантам осуществления изобретения таким образом, что они отличаются друг от друга, с тем, чтобы повышать эффективность сжатия.
Кодер 30 дополнительно содержит модуль 306 выбора для выбора режима кодирования. Модуль 306 выбора применяет критерий затрат на кодирование, к примеру, критерий искажения в зависимости от скорости передачи, чтобы определять то, какой режим является наилучшим режимом между режимом пространственного предсказания и режимом временного предсказания. Чтобы дополнительно уменьшать избыточность, преобразование применяется посредством модуля 307 преобразования к остаточному блоку, преобразованные полученные данные затем квантуются посредством модуля 308 квантования и энтропийно кодируются посредством модуля 309 энтропийного кодирования. В завершение, кодированный остаточный блок кодируемого текущего блока вставляется в поток 310 битов, вместе с информацией относительно используемого предиктора, такой как индекс выбранного предиктора вектора движения. Для блоков, кодированных в режиме пропуска, только ссылка на предиктор кодируется в потоке битов без остаточных блоков.
Кодер 30 также выполняет декодирование кодированного изображения для того, чтобы формировать опорное изображение для оценки движения последующих изображений. Это позволяет кодеру и декодеру, принимающим поток битов, иметь идентичные опорные кадры. Модуль 311 обратного квантования выполняет обратное квантование квантованных данных, после чего выполняется обратное преобразование посредством модуля 312 обратного преобразования. Модуль 313 обратного внутреннего предсказания использует информацию предсказания, чтобы определять то, какой предиктор использовать для данного блока, и модуль 314 обратной компенсации движения фактически добавляет остаток, полученный посредством модуля 312, в опорную область, полученную из набора 316 опорных изображений. Необязательно, фильтр 315 удаления блочности применяется для того, чтобы удалять эффекты блочности и повышать визуальное качество декодированного изображения. Идентичный фильтр удаления блочности применяется в декодере, так что если нет потерь при передаче, кодер и декодер применяют идентичную обработку.
Фиг. 5 иллюстрирует блок-схему декодера 40 согласно, по меньшей мере, одному варианту осуществления изобретения. Декодер представляется посредством соединенных модулей, причем каждый модуль сконфигурирован с возможностью реализовывать, например, в форме инструкций программирования, которые должны быть выполнены посредством CPU 211 устройства 200, соответствующий этап способа, реализующий вариант осуществления изобретения.
Декодер 40 принимает поток 401 битов, содержащий единицы кодирования, каждая из которых состоит из заголовка, содержащего информацию относительно параметров кодирования, и тела, содержащего кодированные видеоданные. Как пояснено относительно фиг. 4, кодированные видеоданные энтропийно кодируются, и индексы предикторов векторов движения кодируются, для данного блока, для предварительно определенного числа битов. Принятые кодированные видеоданные энтропийно декодируются посредством модуля 402. Остаточные данные затем деквантуются посредством модуля 403, и затем обратное преобразование применяется посредством модуля 404, чтобы получать пиксельные значения.
Данные режима также энтропийно декодируются, и на основе режима выполняется внутреннее декодирование или внешнее (INTER) декодирование.
В случае внутреннего режима внутренний предиктор определяется посредством модуля 405 обратного внутреннего предсказания на основе режима внутреннего предсказания, указываемого в потоке битов.
Если режим является внешним (INTER), информация предсказания движения извлекается из потока битов, с тем чтобы находить опорную область, используемую посредством кодера. Информация предсказания движения состоит из индекса опорного кадра и остатка вектора движения. Предиктор вектора движения добавляется в остаток вектора движения, чтобы получать вектор движения посредством модуля 410 декодирования на основе векторов движения.
Модуль 410 декодирования на основе векторов движения применяет декодирование на основе векторов движения для каждого текущего блока, кодированного посредством предсказания движения. После того, как получен индекс предиктора вектора движения для текущего блока, фактическое значение вектора движения, ассоциированного с текущим блоком, может быть декодировано и использовано для того, чтобы применять обратную компенсацию движения посредством модуля 406. Опорная область, указываемая посредством декодированного вектора движения, извлекается из опорного изображения 408, чтобы применять обратную компенсацию 406 движения. Данные 411 поля векторов движения обновляются с помощью декодированного вектора движения, с тем, чтобы использоваться для обратного предсказания следующих декодированных векторов движения.
В завершение, получается декодированный блок. Фильтр 407 удаления блочности применяется аналогично фильтру 315 удаления блочности, применяемому в кодере. Декодированный видеосигнал 409 в итоге предоставляется посредством декодера 40.
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей этапы способа согласно первому варианту осуществления изобретения для извлечения набора потенциальных предикторов информации движения, подходящих для кодирования части изображения для изображения относительно части опорного изображения. На первом этапе способа, рассматриваются 7 позиций блоков (701-707). Эти позиции соответствуют пространственным и временным позициям, проиллюстрированным на фиг. 1. Модуль 708 верифицирует доступность векторов движения 7 позиций блоков и выбирает 4 вектора движения в качестве предикторов векторов движения. В этом модуле вектор движения доступен в качестве предиктора, если он существует, и если блок вектора движения не подвергается внутреннему кодированию. Выбор и верификация 4 предикторов векторов движения описываются при следующих условиях:
- Если доступен "левый" вектор (701) движения (если он существует, и если этот блок не подвергается внутреннему кодированию), вектор движения "левого" блока выбирается и используется в качестве предиктора 1 (610).
- Если доступен "верхний" вектор (702) движения, вектор движения "верхнего" блока выбирается и используется в качестве предиктора 2 (711).
- Если доступен "верхний правый" вектор (703) движения, вектор движения "верхнего правого" блока выбирается и используется в качестве предиктора 3 (712).
- Если доступен "нижний левый" вектор (704) движения, вектор движения "нижнего левого" блока выбирается и используется в качестве предиктора 4 (713).
- Если один (или более) из этих предикторов недоступны, и если доступен "верхний левый" вектор (705) движения, вектор движения "верхнего левого" блока добавляется в набор выбранных предикторов векторов движения после добавленного пространственного предиктора.
- Если доступен вектор H движения, вектор движения блока H выбирается и используется в качестве предиктора 5 (714). Если блок H недоступен, проверяется доступность "совместно размещенного" вектора движения (вектора движения блока в идентичной позиции в текущем блоке), и если совместно размещенный вектор движения доступен, он используется в качестве временного предиктора. Проверка доступности модуля 708 требует 1 цикла.
Поскольку набор предикторов векторов движения, выбранных в начале процесса, содержит только пространственные предикторы 1, 2, 3, 4, сложность процесса 715 выбора уменьшается по сравнению с процессом выбора предшествующего уровня техники на фиг. 2, содержащим 4 пространственных и 1 временного предиктора.
Процесс отбрасывания состоит в сравнении выбранного предиктора со всеми остальными выбранными предикторами и в удалении тех выбранных предикторов, которые равны другому выбранному предиктору (при сохранении другого выбранного предиктора, копией которого является удаляемый предиктор), чтобы предоставлять набор предикторов, в котором ни один из предикторов не является копией любого другого. Процесс отбрасывания для серий последовательных P-макроблоков учитывает значения векторов движения и их индексы опорных кадров. Соответственно, два компонента вектора движения и его индекса опорного кадра сравниваются со всеми соответствующими компонентами других векторов движения, и только если эти три значения равны, предиктор, удаляется (или не добавляется) из набора. Для B-кадра этот критерий может быть расширен на направление и списки. Таким образом, предиктор считается дублированным предиктором, если он использует идентичное направление, идентичные списки (L0, L1 или L0 и L1), идентичные индексы опорных кадров и идентичное значение векторов движения (MV_L0 и MV_L1 для двунаправленного предсказания) в наборе выбранных векторов движения. Процесс отбрасывания длится 1 цикл, когда должны сравниваться 5 предикторов самое большее. Фактически, можно считать, что 12 сравнений могут быть вычислены в 1 цикле. Максимальное число сравнений для процесса отбрасывания в самом сложном случае равно сумме от 0 до N-1. Поскольку максимальное число предикторов в начале процесса отбрасывания составляет 4 вместо 5, максимальное число сравнений, которые должны быть выполнены, составляет 6 (т.е. 3+2+1=6) по сравнению с 10 касательно 5 выбранных предикторов предшествующего уровня техники по фиг. 2. В конце этого процесса 715 отбрасывания формируется сокращенный набор 716 предикторов. Сокращенный набор 716 предикторов векторов движения содержит самое большее 4 предиктора по сравнению с 5 в предшествующем уровне техники.
Модуль 717 формирования предикторов векторов движения формирует новые возможные варианты предикторов на основе предикторов сокращенного набора предикторов векторов движения. Могут использоваться несколько схем для создания таких предикторов, и одна такая схема описывается ниже со ссылкой на фиг. 10(a)-(c). Можно считать, что процесс, выполняемый посредством модуля формирования предикторов векторов движения, длится, по меньшей мере, 1 цикл и формирует второй набор 718 предикторов. Поскольку сокращенный набор 716 предикторов, в общем, содержит меньшее число предикторов, чем сокращенный набор 616 предикторов предшествующего уровня техники, проиллюстрированного на фиг. 2, в среднем меньшее число комбинированных предикторов и масштабированных предикторов формируется в сокращенном наборе 717 предикторов векторов движения по сравнению с числом предшествующего уровня техники, и сложность процесса уменьшается.
Затем, процессор 721 отбрасывания, который работает аналогично процессору 715 отбрасывания, удаляет дублированные возможные варианты из второго набора 718 предикторов и сокращенного набора 716 предикторов посредством сравнения соответствующих компонентов вектора движения и ассоциированных параметров информации движения. В предшествующем уровне техники, проиллюстрированном на фиг. 2, длительность этого конкретного процесса может достигать 3 циклов в зависимости от числа предикторов, сформированных во втором наборе 718 предикторов, в частности, в случае если применяется формирование предикторов векторов движения текущей HEVC-схемы. Процесс 721 отбрасывания формирует второй сокращенный набор 722 предикторов векторов движения.
В завершение, временной предиктор 714 сравнивается со вторым сокращенным набором 722 предикторов векторов движения в модуле 719. В обработке отбрасывания и переупорядочения, выполняемой посредством модуля 719, временной предиктор сравнивается, самое большее, с 5 предикторами, чтобы определять то, является или нет временной предиктор дублированным предиктором. Если он является недублированным предиктором, временной предиктор вставляется в список предикторов непосредственно перед последним недублированным пространственным предиктором. Временная позиция определена посредством процессора 715 отбрасывания и передана в процессор 719 и соответствует числу предикторов в 715. Список предикторов усекается, если он содержит более 5 предикторов, с тем чтобы формировать окончательный набор 720 предикторов. Можно отметить, что максимальное число сравнений, выполняемых посредством модуля 719, составляет 5 в самом сложном случае, что представляет собой уменьшение по сравнению с максимальным числом сравнений модуля 619 отбрасывания предшествующего уровня техники, проиллюстрированного на фиг. 2.
В альтернативном варианте осуществления, процессор 719 отбрасывания может работать аналогично процессору 619 отбрасывания предшествующего уровня техники. В таком случае временной предиктор добавляется в набор предикторов только в том случае, если сокращенный набор 722 предикторов содержит самое большее 4 предиктора. В противном случае он добавляется до конца списка предикторов.
Фиг. 7 иллюстрирует второй вариант осуществления изобретения. Основное отличие относительно варианта осуществления по фиг. 6 заключается в том, что процесс формирования предикторов векторов движения, выполняемый посредством модуля 817, длится в течение определенной длительности в 2 цикла вместо 1 цикла, как в случае модуля 717 по фиг. 6. В случае фиг. 7 процесс отбрасывания для удаления дублированных предикторов второго набора 818 предикторов не выполняется параллельно процессу 809 временного масштабирования. Следовательно, на фиг. 7, в модуле 819 отбрасывания, временной предиктор 814 сравнивается как с предикторами сокращенного набора 816 предикторов векторов движения, так и с предикторами второго набора 818 предикторов. В этом процессе, если временной предиктор 814 является недублированным предиктором предикторов векторов движения сокращенного набора 816 предикторов векторов движения, временной предиктор 814 добавляется в сокращенный набор предикторов векторов движения после пространственных предикторов. Затем, предикторы второго набора 818 предикторов сравниваются с предикторами сокращенного набора 816 предикторов векторов движения, с временным предиктором 814, если добавлен, и с другими предикторами второго набора 818 предикторов.
Преимущество обработки вариантов осуществления по фиг. 6 или фиг. 7 вытекает из полного выполнения процесса 709 масштабирования параллельно с первым процессом 715 или 815 отбрасывания и процессом 717 или 817 формирования предикторов векторов движения. Согласно сложности каждого процесса, дополнительные процессы 721 отбрасывания могут быть включены в способ для того, чтобы предварительно определять недублированный набор, чтобы уменьшать сложность конечного процесса 719 отбрасывания. Таким образом, в первом варианте осуществления изобретения можно считать, что полный процесс отбрасывания разбивается на два процесса отбрасывания, реализованные посредством модулей 721 и 719.
Параллельный процесс масштабирования оказывает положительное влияние на эффективность кодирования. Фактически, поскольку временной предиктор 714 или 814 не используется для того, чтобы формировать второй набор 718 или 818 предикторов, это оказывает влияние на формирование предикторов векторов движения.
Этапы способа формирования набора предикторов векторов движения в соответствии с третьим вариантом осуществления изобретения проиллюстрированы на блок-схеме последовательности операций по фиг. 8. Способ согласно третьему варианту осуществления изобретения дополнительно уменьшает влияние на эффективность кодирования.
Модуль 908 выбора работает аналогично соответствующим модулям 708 и 808 выбора первого и второго вариантов осуществления изобретения, чтобы выбирать 4 вектора 910-913 движения на основе их доступности, из пространственных и временных позиций 901-907 блоков.
Основное отличие заключается в использовании модуля 923 принятия решений по масштабированию. В модуле 923 принятия решений по масштабированию сравниваются временное расстояние временного вектора движения и временное расстояние временного предиктора (номер 5 предиктора). Для однонаправленного типа внешнего предсказания это означает то, что разность номера в последовательности изображений (POC) между временным кадром (кадром блока H и совместно размещенного блока) и опорным кадром, указываемым посредством временного вектора движения (H или совместно размещенного), сравнивается с временным расстоянием между текущим кадром и опорным кадром временного предиктора. Если эти временные расстояния равны, модуль 923 принятия решений по масштабированию возвращает значение "Нет". В противном случае, это означает то, что процесс масштабирования требуется, и модуль 923 принятия решений по масштабированию возвращает значение "Да". Для типа двунаправленного предсказания модуль 923 принятия решений сравнивает временные расстояния для каждого списка, и возвращаемое решение зависит от решений для обоих списков. Таким образом, если для обоих списков не требуется масштабирование, модуль 923 принятия решений по масштабированию возвращает значение "Нет", а если, по меньшей мере, один процесс масштабирования требуется для одного списка, модуль 923 принятия решений по масштабированию возвращает значение "Да".
Если модуль 923 принятия решений по масштабированию возвращает значение "Нет", временной предиктор 5 (924) используется в процессе 915 отбрасывания. Следовательно, формирование 917 предикторов векторов движения использует значение временного предиктора 5 для того, чтобы формировать второй набор 918 предикторов. Затем, процесс 921 отбрасывания применяется к сокращенному набору 916 предикторов и второму набору 918 предикторов. Затем, модуль 925 принятия решений принимает решение по предоставлению окончательного набора предикторов векторов движения на основе решения модуля 923 принятия решений по масштабированию - т.е. решение, принимаемое посредством модуля 923 принятия решений по масштабированию, используется для того, чтобы определять то, является или нет сокращенный набор предикторов, сформированный посредством процесса 921 отбрасывания, окончательным набором предикторов - когда "Нет" возвращается посредством модуля 923 принятия решений, определяется то, что сокращенный набор предикторов, сформированный посредством процесса 921 отбрасывания, является окончательным набором предикторов. Таким образом, когда модуль 923 принятия решений по масштабированию возвращает "Нет", указывающее то, что масштабирование не требуется, извлечение набора предикторов работает аналогично извлечению набора предикторов, как проиллюстрировано на фиг. 2.
В противном случае, если модуль 923 принятия решений по масштабированию возвращает значение "Да", указывающее то, что временной предиктор масштабируется в модуле 909 для того, чтобы формировать номер 5 (914) временного предиктора, определяется то, что сокращенный набор предикторов, сформированный посредством процесса 921 отбрасывания, не является окончательным набором предикторов. В этом случае процессор 915 отбрасывания не использует временной предиктор для процесса отбрасывания, и модуль 917 формирования предикторов векторов движения не использует временной предиктор, чтобы создавать новые предикторы. Следовательно, аналогично процессу, проиллюстрированному на блок-схеме последовательности операций по фиг. 6, процесс 909 масштабирования временного предиктора 5 выполняется параллельно формированию 917 предикторов векторов движения. Модуль 925 принятия решений по масштабированию, после второго процесса отбрасывания, возвращает значение "Да". Таким образом, масштабированный временной предиктор 914 сравнивается с предикторами второго сокращенного набора 922 предикторов в процессе 919 отбрасывания. Как и в случае процессора 719 отбрасывания по фиг. 6, если временной предиктор 914 является недублированным предиктором предикторов во втором сокращенном наборе предикторов, модуль 919 отбрасывания и переупорядочения вставляет временной предиктор в набор предикторов после первого сокращенного набора 916 предикторов, чтобы предоставлять окончательный набор 920 предикторов.
Если обобщить этот вариант осуществления, процесс 909 масштабирования выполняется параллельно процессу 917 формирования второго набора 918, только если временной предиктор должен масштабироваться.
Если предполагается, что формирование 917 предикторов векторов движения длится 1 цикл, и если временному предиктору не требуется процесс масштабирования, 4 цикла требуются для того, чтобы формировать набор предикторов слияния, в противном случае требуются 5 циклов. Следовательно, процесс сокращается на 2 цикла в самом сложном случае аналогично первому варианту осуществления. Основные преимущества этого варианта осуществления по сравнению с предыдущим заключаются в использовании временного предиктора для формирования второго набора предикторов только тогда, когда временному предиктору не требуется масштабирование. Следовательно, эффективность кодирования может быть повышена по сравнению с первым вариантом осуществления.
В дополнительном варианте осуществления, можно учитывать сложность процесса масштабирования. Например, можно знать, требует процесс масштабирования только одного цикла или нет. Только один цикл требуется, если должен быть изменен знак предиктора вектора движения. В этом случае, временной предиктор доступен в идентичное время с сокращенным набором 916 предикторов. Таким образом, временной предиктор может использоваться для процесса 921 отбрасывания. В этом случае, модуль 925 принятия решений по масштабированию возвращает значение "Да", и модули 922 и 919 не требуются для того, чтобы предоставлять окончательный набор предикторов. Следовательно, длительность процесса извлечения сокращается на один цикл, поскольку процесс 919 отбрасывания длится 1 цикл.
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей способ извлечения набора предикторов векторов движения в соответствии с четвертым вариантом осуществления изобретения. Блок-схема последовательности операций по фиг. 9 основана на блок-схеме последовательности операций по фиг. 6. Как следствие, модули 1001-1020 и 1022 по фиг. 9 являются идентичными, соответственно, модулям 701-720 и 720 по фиг. 6. Отличия заключаются в параллельном использовании недублированных предикторов посредством добавления смещений, как описано при формировании предикторов векторов движения относительно фиг. 10(a)-(c). Когда задается первый предиктор 1 1010, модуль 1023 формирует недублированные предикторы списка. Как пояснено относительно фиг. 10(c), этот процесс состоит в добавлении смещений в один или оба компонента вектора движения первого предиктора 1010. Набор 1024 недублированных предикторов содержит 4 предиктора, которые отличаются друг от друга и отличаются от первого предиктора 1010, доступного после проверки доступности, реализованной посредством процессора 1008 выбора. Как следствие, в этом варианте осуществления, набор 1024 недублированных предикторов, при добавлении в первый предиктор 1010, содержит 5 недублированных предикторов, что фиксировано задано для режима слияния. Формирование недублированных предикторов выполняется параллельно процессу 1015 отбрасывания. Процессор 1025 отбрасывания сравнивает набор 1024 недублированных предикторов с сокращенным набором 1016 предикторов, чтобы получать только 5 предикторов. Набор 1026 недублированных предикторов содержит сокращенный набор 1016 предикторов, после которого идет набор недублированных предикторов, сформированный в 1024. Можно отметить, что процесс 1025 отбрасывания, в общем, требует максимум 6 сравнений. Самый сложный случай возникает, когда сокращенный набор 1016 предикторов векторов движения содержит 4 предиктора. Набор 1024 недублированных предикторов содержит 4 предиктора. Теоретически, процесс отбрасывания требует 16 сравнений в самом сложном случае (4 предиктора сокращенного набора 1016 предикторов векторов движения на 4 предиктора набора 1024 недублированных предикторов). Тем не менее, предикторы векторов движения в наборе 1024 недублированных предикторов отличаются от первого предиктора, так что только второй, третий и четвертые предикторы сокращенного набора 1016 предикторов векторов движения должны сравниваться с набором 1024 недублированных предикторов векторов движения. Как следствие, требуется 12 (4 на 3) сравнений. Предикторы отличаются друг от друга в наборе 1024 недублированных предикторов, так что в самом сложном случае, если 3 первых предиктора недублированных предикторов 1024 равны 3 последним предикторам сокращенного набора 1016 предикторов векторов движения, можно предположить, что последний предиктор в 1024 отличается от предиктора сокращенного набора 1016 предикторов векторов движения. Таким образом, требуются только 9 (3 на 3) сравнений.
Затем, второй набор 1018 предикторов векторов движения формируется посредством модуля 1017 формирования предикторов векторов движения. Процесс 1021 отбрасывания и переупорядочения проверяет то, являются или нет предикторы векторов движения второго набора 1018 предикторов недублированными по сравнению с недублированным набором 1026, который уже содержит 5 предикторов. Если предиктор второго набора 1018 предикторов отличается от всех остальных, он вставляется в позиции числа предикторов в сокращенном наборе 1016 предикторов (после предикторов сокращенного набора 1016 предикторов векторов движения в списке). Следующие этапы 1022, 1019 и 1020 работают идентично обработке модулей 722, 719 и 720 по фиг. 6.
Можно отметить, что формирование 1023 недублированных предикторов может добавляться в конце процесса извлечения после процесса 1019 отбрасывания. Это требует дополнительного процесса отбрасывания, которому необходим еще один цикл, и не приводит к идентичному упорядочению набора предикторов.
Четвертый вариант осуществления имеет несколько преимуществ. Во-первых, в этом варианте осуществления, каждая позиция предиктора имеет значение. Следовательно, способ предоставляет более надежный процесс, чем текущая схема HEVC. Фактически, кодер может использовать индекс предиктора без значения в декодере, которое может приводить к отказу в декодере. Это может происходить, например, когда возникают ошибки сети.
Этот вариант осуществления компенсирует потери эффективности кодирования при параллельном масштабировании. Кроме того, эта модификация также компенсирует потери эффективности кодирования уменьшения числа возможных вариантов, сформированных при формировании предикторов векторов движения модуля 1017. За счет этих недублированных предикторов, только 2 предиктора должны быть сформированы в 1021. Следовательно, процессу 1021 отбрасывания требуются только 10 сравнений в самом сложном случае. Таким образом, требуется только один цикл вместо 3 для самого сложного случая текущей HEVC-схемы, представленной на фиг. 2. За счет этого упрощения только 5 циклов в самом сложном случае требуются для того, чтобы извлекать набор предикторов слияния, вместо 11 для текущей HEVC-схемы.
Следует принимать во внимание, что четвертый вариант осуществления по фиг. 9 может быть легко комбинирован с третьим вариантом осуществления, представленным на фиг. 8.
Далее описываются примеры процессов для формирования дополнительных векторов движения в качестве предикторов, реализованных посредством модулей 717, 817, 917 и 1017 формирования предикторов векторов движения по фиг. 6, 7, 8 и 9, соответственно, со ссылкой на фиг. 10(a)-(c). Текущая HEVC-схема использует 3 схемы, чтобы добавлять новые предикторы на основе формирования текущего набора. Первая схема используется для серий последовательных B-макроблоков. Формирование предикторов векторов движения заключает в себе комбинирование предикторов сокращенного набора 716, 816, 916, 1016 предикторов по фиг. 6, 7, 8 и 9, соответственно. Комбинированный предиктор формируется посредством выбора вектора движения списка L0 первого предиктора и посредством выбора вектора движения списка L1 из другого предиктора. Например, первый возможный комбинированный предиктор имеет вектор движения (и опорный индекс) из L0 первого предиктора из 716 и вектор движения (и опорный индекс) из L1 второго предиктора из 716. В текущей HEVC-схеме могут быть сформированы 12 возможных комбинированных предикторов. Фиг. 10(a) показывает пример этого процесса.
Вторая схема может использоваться только для серий последовательных B-макроблоков. Масштабированный предиктор содержит замену однонаправленных предикторов на двунаправленные предикторы. Если предиктор из 716 является однонаправленным, вектор движения создается в противоположном списке на основе начального вектора движения. Например, если первый предиктор из 716 является однонаправленным, и если он указывает на L0 с опорным индексом 0, значение его вектора движения масштабируется, чтобы указывать на опорный индекс 0 из L1. Компонуемый предиктор содержит опорный индекс 0 и значение вектора движения для L0, а также опорный индекс 0 и масштабированный вектор для списка L1. Этот новый двунаправленный предиктор добавляется во второй набор (718) предикторов. Этот вид формирования предиктора является очень сложным, поскольку он должен масштабировать векторы движения, так что это увеличивает число циклов для модуля 717 (3 цикла). Таким образом, процесс масштабирования может быть ограничен, чтобы менять знак на противоположный компонента значения вектора движения, который может быть выполнен в одном цикле, вместо 3 для классического процесса масштабирования. Фиг. 10(b) показывает пример этого формирования.
Другой способ формирования новых предикторов векторов движения состоит в замене двунаправленных предикторов на однонаправленные предикторы. В этом случае, когда предиктор является двунаправленным, могут формироваться 2 новых предиктора (по одному для каждого списка). Это представляет собой процесс с низкой сложностью по сравнению с процессом обработки масштабированных векторов движения по фиг. 10(a).
В текущей схеме HEVC в конце списка добавляется значение "нулевого вектора движения". Для слияния нулевое значение задается для обоих векторов движения из L0 и L1. Кроме того, при возможности индекс опорного кадра каждого списка увеличивается, чтобы создавать другие нулевые предикторы. Таким образом, изменяется только опорный индекс. Если N опорных индексов используются в обоих списках, N нулевых векторов могут добавляться в набор предикторов. Фиг. 10(c) иллюстрирует пример такого процесса формирования предикторов векторов движения.
Кроме того, можно использовать недублированные предикторы посредством добавления одного или более смещений в компоненты или в несколько компонентов одного доступного предиктора начального набора предикторов. Например, если только один предиктор находится в начальном наборе предикторов, можно формировать 4 предиктора, которые отличаются друг от друга. Например, если предполагается, что предиктор в списке является однонаправленным, первый предиктор формируется посредством добавления значения смещения для одного компонента первого вектора движения. Второй предиктор формируется посредством добавления обратного смещения в первый компонент. Третий получается посредством добавления смещения во второй компонент, и четвертый - посредством добавления обратного смещения во второй компонент. Можно отметить, что этот процесс может применяться к первому возможному варианту, так что предиктор может извлекаться перед процессом 715 отбрасывания.
Фиг. 11 показывает пример масштабирования для временного предиктора, применяемого в модулях 709, 809, 909 и 1009 масштабирования по фиг. 6, 7, 8 и 9, соответственно. На этом чертеже, совместно размещенный вектор MVcol движения в опорном кадре Ref0 указывает на Ref2 с POC (номером в последовательности изображений), равным N-3. Опорный кадр временного предиктора MVt определен и равен Ref0 (POC-номер, равный N-1). Временное расстояние iDiffPocD совместно размещенного вектора движения равно POC Ref2 минус POC Ref0. Таким образом, его временное расстояние равно:
iDiffPocD=(N-3)-(N-1)=2
Аналогичным образом, временное расстояние iDiffPocB, которое должно покрываться посредством временного предиктора, равно POC текущего кадра N минус POC Ref0:
iDiffPocB=(N)-(N-1)=1
Теоретически, масштабированный вектор движения для временного предиктора равен:
MVt=(iDiffPocB*MVcol)/iDiffPocD
Таким образом, в примере, каждый компонент (горизонтальный и вертикальный) делится на 2. Тем не менее, в текущей HEVC-схеме, масштабирование вектора движения задается посредством следующего процесса.
Масштабированный фактор определяется посредством следующей формулы:
iScale=(iDiffPocB×iX+32)>>6;
где iX:
iX=(0×4000+abs(iDiffPocD/2))/iDiffPocD;
MVt затем задается следующим образом:
MVt=(iScale×MVcol+127+(iScale×MVcol<0))>>8
В этих формулах:
">>" представляет оператор сдвига
"abs" представляет функцию, которая возвращает абсолютное значение
"0×4000" представляет значение 16384
Таким образом, варианты осуществления изобретения предоставляют процесс параллельного извлечения с целью уменьшения числа циклов, требуемых для того, чтобы извлекать набор предикторов векторов движения с незначительным влиянием на эффективность кодирования.
Хотя настоящее изобретение описано выше в отношении конкретных вариантов осуществления, настоящее изобретение не ограничено конкретными вариантами осуществления, и для специалистов в данной области техники должны быть очевидными модификации, которые находятся в пределах объема настоящего изобретения. Множество дополнительных модификаций и изменений предполагаются специалистами в данной области техники после прочтения вышеприведенных иллюстративных вариантов осуществления, которые приводятся только в качестве примера и которые не направлены на то, чтобы ограничивать объем изобретения, который определяется исключительно посредством прилагаемой формулы изобретения. В частности, при необходимости различные признаки из различных вариантов осуществления могут меняться местами.
В формуле изобретения, слово "содержащий" не исключает другие элементы или этапы, и упоминание единственного элемента не исключает множества элементов. Простой факт того, что различные признаки упомянуты во взаимно различных зависимых пунктах формулы изобретения, не означает того, что комбинация этих признаков не может быть с выгодой использована.
Claims (44)
1. Устройство кодирования для определения возможных вариантов предиктора вектора движения для блока, подлежащего кодированию, содержащее:
блок получения, выполненный с возможностью получения множества векторов движения, при этом множество векторов движения способны включать в себя по меньшей мере множество пространственных векторов движения, полученных из кадра, включающего в себя блок, подлежащий кодированию, или временной вектор движения, полученный из кадра, отличного от кадра, включающего в себя блок, подлежащий кодированию,
блок обработки, выполненный с возможностью выполнять обработку множества пространственных векторов движения, полученных блоком получения, и
блок определения, выполненный с возможностью определения по меньшей мере части множества векторов движения, полученных блоком получения, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего кодированию,
причем обработка, выполняемая блоком обработки, является обработкой, при которой блок обработки определяет получены ли идентичные векторы движения блоком получения, и блок обработки исключает один из идентичных векторов движения из множества пространственных векторов движения в случае, когда идентичные пространственные векторы движения были получены блоком получения, и
при этом временной вектор движения не подлежит обработке, выполняемой блоком обработки.
2. Устройство кодирования по п.1, в котором блок определения определяет множество предикторов вектора движения, которые включают в себя множество пространственных векторов движения, для которых выполнена обработка блоком обработки, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего кодированию.
3. Устройство кодирования по п.1 или 2, в котором блок определения определяет множество предикторов вектора движения, которые включают в себя временной вектор движения, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего кодированию.
4. Устройство кодирования по любому из пп.1-3, дополнительно содержащее блок кодирования, выполненный с возможностью кодирования индекса, указывающего предиктор вектора движения, который должен быть выбран.
5. Устройство кодирования по любому из пп.1-4, в котором вектор движения для блока, подлежащего кодированию, извлекается посредством добавления предиктора вектора движения для блока, подлежащего кодированию, к разнице для вектора движения для блока, подлежащего кодированию.
6. Устройство кодирования по любому из пп.1-5, в котором количество возможных вариантов предиктора вектора движения для блока, подлежащего кодированию, равно 2.
7. Устройство кодирования по любому из пп.1-4, в котором в режиме слияния количество возможных вариантов предиктора вектора движения для блока, подлежащего кодированию, равно 5.
8. Устройство кодирования по любому из пп.1–4 или 7, в котором разница для вектора движения для блока, подлежащего кодированию, не кодируется в режиме слияния.
9. Устройство кодирования по любому из пп.1-8, дополнительно содержащее блок добавления, выполненный с возможностью добавления вектора к возможным вариантам предиктора вектора движения для блока, подлежащего кодированию.
10. Устройство кодирования по п.9, в котором блок добавления выполнен с возможностью добавления нулевого вектора движения к возможным вариантам предиктора вектора движения для блока, подлежащего кодированию.
11. Способ кодирования для определения возможного варианта предиктора вектора движения для кодирования блока, подлежащего кодированию, содержащий:
получение множества векторов движения, при этом множество векторов движения способны включать в себя по меньшей мере множество пространственных векторов движения, полученных из кадра, включающего в себя блок, подлежащий кодированию, или временной вектор движения, полученный из кадра, отличного от кадра, включающего в себя блок, подлежащий кодированию,
обработку полученного множества векторов движения, и
определение по меньшей мере части полученного множества векторов движения в качестве возможных вариантов предиктора вектора движения для блока, подлежащего кодированию,
причем обработка определяет получены ли идентичные векторы движения, и один из идентичных векторов движения исключается из множества векторов движения в случае, когда были получены идентичные пространственные векторы движения, и
при этом при обработке временной вектор движения не подлежит обработке.
12. Машиночитаемый носитель данных, содержащий программу, которая при исполнении программируемым устройством предписывает программируемому устройству осуществлять способ по п.11.
13. Устройство декодирования для определения возможных вариантов предиктора вектора движения для блока, подлежащего декодированию, содержащее:
блок получения, выполненный с возможностью получения множества векторов движения, при этом множество векторов движения способно включать в себя по меньшей мере множество пространственных векторов движения, полученных из кадра, включающего в себя блок, подлежащий декодированию, или временной вектор движения, полученный из кадра, отличного от кадра, включающего в себя блок, подлежащий декодированию,
блок обработки, выполненный с возможностью выполнять обработку множества пространственных векторов движения, полученных блоком получения, и
блок определения, выполненный с возможностью определения по меньшей мере части множества векторов движения, полученных блоком получения, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего декодированию,
причем обработка, выполняемая блоком обработки, является обработкой, при которой блок обработки определяет получены ли идентичные векторы движения блоком получения, и блок обработки исключает один из идентичных векторов движения из множества пространственных векторов движения в случае, когда идентичные пространственные векторы движения были получены блоком получения, и
при этом временной вектор движения не подлежит обработке, выполняемой блоком обработки.
14. Устройство декодирования по п.13, в котором блок определения определяет множество предикторов вектора движения, которые включают в себя множество пространственных векторов движения, для которых выполнена обработка блоком обработки, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего декодированию.
15. Устройство декодирования по п.13 или 14, в котором блок определения определяет множество предикторов вектора движения, которые включают в себя временной вектор движения, в качестве возможных вариантов предиктора вектора движения для блока, подлежащего декодированию.
16. Устройство декодирования по любому из пп.13-15, дополнительно содержащее блок декодирования, выполненный с возможностью декодирования индекса, указывающего предиктор вектора движения, который должен быть выбран.
17. Устройство декодирования по любому из пп.13-16, в котором вектор движения для блока, подлежащего декодированию, извлекается посредством добавления предиктора вектора движения для блока, подлежащего декодированию, к разнице для вектора движения для блока, подлежащего декодированию.
18. Устройство декодирования по любому из пп.13-17, в котором количество возможных вариантов предиктора вектора движения для блока, подлежащего декодированию, равно 2.
19. Устройство декодирования по любому из пп.13-16, в котором в режиме слияния количество возможных вариантов предиктора вектора движения для блока, подлежащего декодированию, равно 5.
20. Устройство декодирования по любому из пп.13–16 или 19, в котором разница для вектора движения для блока, подлежащего декодированию, не декодируется в режиме слияния.
21. Устройство декодирования по любому из пп.13-20, дополнительно содержащее блок добавления, выполненный с возможностью добавления вектора к возможным вариантам предиктора вектора движения для блока, подлежащего декодированию.
22. Устройство декодирования по п.21, в котором блок добавления выполнен с возможностью добавления нулевого вектора движения к возможным вариантам предиктора вектора движения для блока, подлежащего декодированию.
23. Способ декодирования для определения возможного варианта предиктора вектора движения для блока, подлежащего декодированию, содержащий:
получение множества векторов движения, при этом множество векторов движения способны включать в себя по меньшей мере множество пространственных векторов движения, полученных из кадра, включающего в себя блок, подлежащий декодированию, или временной вектор движения, полученный из кадра, отличного от кадра, включающего в себя блок, подлежащий декодированию,
обработку полученного множества векторов движения, и
определение по меньшей мере части полученного множества векторов движения в качестве возможных вариантов предиктора вектора движения для блока, подлежащего декодированию,
причем обработка определяет получены ли идентичные векторы движения, и один из идентичных векторов движения исключается из множества векторов движения в случае, когда были получены идентичные пространственные векторы движения, и
при этом при обработке временной вектор движения не подлежит обработке.
24. Машиночитаемый носитель данных, содержащий программу, которая при исполнении программируемым устройством предписывает программируемому устройству осуществлять способ по п.23.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1114184.3A GB2493755B (en) | 2011-08-17 | 2011-08-17 | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
GB1114184.3 | 2011-08-17 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016121861A Division RU2643450C1 (ru) | 2011-08-17 | 2012-08-16 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2019109653A Division RU2708440C1 (ru) | 2011-08-17 | 2019-04-02 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2684753C1 true RU2684753C1 (ru) | 2019-04-12 |
Family
ID=44800466
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014110037/08A RU2589402C2 (ru) | 2011-08-17 | 2012-08-16 | Способ и устройство для кодирования последовательности изображений, а также способ и устройство для декодирования последовательности изображений |
RU2016121861A RU2643450C1 (ru) | 2011-08-17 | 2012-08-16 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
RU2018100102A RU2684753C1 (ru) | 2011-08-17 | 2018-01-09 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
RU2019109653A RU2708440C1 (ru) | 2011-08-17 | 2019-04-02 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
RU2019137982A RU2720560C1 (ru) | 2011-08-17 | 2019-11-25 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014110037/08A RU2589402C2 (ru) | 2011-08-17 | 2012-08-16 | Способ и устройство для кодирования последовательности изображений, а также способ и устройство для декодирования последовательности изображений |
RU2016121861A RU2643450C1 (ru) | 2011-08-17 | 2012-08-16 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2019109653A RU2708440C1 (ru) | 2011-08-17 | 2019-04-02 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
RU2019137982A RU2720560C1 (ru) | 2011-08-17 | 2019-11-25 | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных |
Country Status (16)
Country | Link |
---|---|
US (7) | US10306256B2 (ru) |
EP (5) | EP3474552B1 (ru) |
JP (5) | JP6109170B2 (ru) |
KR (6) | KR102042374B1 (ru) |
CN (7) | CN107197306B (ru) |
BR (2) | BR122020002131B8 (ru) |
ES (5) | ES2727629T3 (ru) |
GB (1) | GB2493755B (ru) |
HR (3) | HRP20231270T1 (ru) |
HU (5) | HUE043598T2 (ru) |
PL (5) | PL3806470T3 (ru) |
PT (3) | PT3806468T (ru) |
RS (3) | RS64982B1 (ru) |
RU (5) | RU2589402C2 (ru) |
TR (1) | TR201908328T4 (ru) |
WO (1) | WO2013023785A2 (ru) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2487197B (en) * | 2011-01-11 | 2015-06-17 | Canon Kk | Video encoding and decoding with improved error resilience |
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 |
US9571833B2 (en) | 2011-11-04 | 2017-02-14 | Nokia Technologies Oy | Method for coding and an apparatus |
TWI511530B (zh) * | 2014-12-09 | 2015-12-01 | Univ Nat Kaohsiung 1St Univ Sc | Distributed video coding system and decoder for distributed video coding system |
US10368083B2 (en) * | 2016-02-15 | 2019-07-30 | Qualcomm Incorporated | Picture order count based motion vector pruning |
US11172203B2 (en) * | 2017-08-08 | 2021-11-09 | Mediatek Inc. | Intra merge prediction |
CN117336504A (zh) | 2017-12-31 | 2024-01-02 | 华为技术有限公司 | 图像预测方法、装置以及编解码器 |
EP3811624A1 (en) * | 2018-06-21 | 2021-04-28 | Telefonaktiebolaget LM Ericsson (publ) | Tile shuffling for 360 degree video decoding |
RU2760850C1 (ru) | 2018-06-21 | 2021-11-30 | Телефонактиеболагет Лм Эрикссон (Пабл) | Гибкие разбиения тайлов |
JP7460617B2 (ja) | 2018-06-29 | 2024-04-02 | 北京字節跳動網絡技術有限公司 | Lut更新条件 |
KR20240005240A (ko) | 2018-06-29 | 2024-01-11 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut에서의 모션 후보들의 검사 순서 |
WO2020003282A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Managing motion vector predictors for video coding |
KR20240007299A (ko) | 2018-06-29 | 2024-01-16 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 룩업 테이블의 업데이트: fifo, 제약된 fifo |
CA3101730A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Partial/full pruning when adding a hmvp candidate to merge/amvp |
WO2020003284A1 (en) | 2018-06-29 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and amvp |
CN110662059B (zh) | 2018-06-29 | 2021-04-20 | 北京字节跳动网络技术有限公司 | 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置 |
TWI743506B (zh) | 2018-06-29 | 2021-10-21 | 大陸商北京字節跳動網絡技術有限公司 | 來自多個查找表(lut)的選擇 |
WO2020008350A1 (en) | 2018-07-02 | 2020-01-09 | Beijing Bytedance Network Technology Co., Ltd. | Luts with intra prediction modes and intra mode prediction from non-adjacent blocks |
US10958932B2 (en) * | 2018-09-12 | 2021-03-23 | Qualcomm Incorporated | Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks |
TWI820211B (zh) | 2018-09-12 | 2023-11-01 | 大陸商北京字節跳動網絡技術有限公司 | 取決於總數減去k的開始檢查hmvp候選的條件 |
CN109274966A (zh) * | 2018-09-21 | 2019-01-25 | 华中科技大学 | 一种基于运动矢量的监控视频内容去重方法和*** |
TWI766214B (zh) | 2018-12-28 | 2022-06-01 | 日商Jvc建伍股份有限公司 | 影像編碼裝置、影像編碼方法、影像編碼程式、影像解碼裝置、影像解碼方法及影像解碼程式 |
KR20240010576A (ko) | 2019-01-10 | 2024-01-23 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Lut 업데이트의 호출 |
WO2020143824A1 (en) | 2019-01-13 | 2020-07-16 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between lut and shared merge list |
WO2020147773A1 (en) | 2019-01-16 | 2020-07-23 | Beijing Bytedance Network Technology Co., Ltd. | Inserting order of motion candidates in lut |
CN113615193B (zh) | 2019-03-22 | 2024-06-25 | 北京字节跳动网络技术有限公司 | Merge列表构建和其他工具之间的交互 |
KR20230098704A (ko) * | 2019-06-07 | 2023-07-04 | 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 | 비디오 코딩을 위한 서브-블록 시간적 움직임 벡터 예측 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2310231C2 (ru) * | 2002-06-03 | 2007-11-10 | Майкрософт Корпорейшн | Пространственно-временное прогнозирование для двунаправлено прогнозируемых (в) изображений и прогнозирование вектора движения для компенсации движения множественных изображений с помощью эталона |
US7450642B2 (en) * | 2002-11-13 | 2008-11-11 | Sony Corporation | Fast motion vector prediction method |
WO2009115901A2 (en) * | 2008-03-19 | 2009-09-24 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
WO2011041321A1 (en) * | 2009-10-01 | 2011-04-07 | Ntt Docomo, Inc. | Motion vector prediction in video coding |
US8000392B1 (en) * | 2004-02-27 | 2011-08-16 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08129646A (ja) * | 1994-11-02 | 1996-05-21 | Matsushita Electric Ind Co Ltd | 画像符号化方法、画像復号化方法、画像処理方法及びその装置 |
JPH1079949A (ja) | 1996-09-04 | 1998-03-24 | Oki Electric Ind Co Ltd | 画像符号化装置、画像復号化装置及び画像伝送システム |
JP3159713B2 (ja) * | 1997-03-14 | 2001-04-23 | クセルト―セントロ・ステユデイ・エ・ラボラトリ・テレコミニカチオーニ・エツセ・ピー・アー | デジタル化ビデオシーケンス符号器における運動推定回路 |
KR100571307B1 (ko) | 1999-02-09 | 2006-04-17 | 소니 가부시끼 가이샤 | 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 |
US7206448B2 (en) | 2002-02-28 | 2007-04-17 | At&T Corp. | System and method for using pattern vectors for video and image coding and decoding |
EP1418762A1 (en) * | 2002-05-22 | 2004-05-12 | Matsushita Electric Industrial Co., Ltd. | Moving image encoding method, moving image decoding method, and data recording medium |
JP2004023458A (ja) * | 2002-06-17 | 2004-01-22 | Toshiba Corp | 動画像符号化/復号化方法及び装置 |
JP4724351B2 (ja) * | 2002-07-15 | 2011-07-13 | 三菱電機株式会社 | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置 |
CN101790095B (zh) * | 2002-11-01 | 2013-02-27 | 松下电器产业株式会社 | 解码***、解码装置、编码装置及记录方法 |
US20060098886A1 (en) * | 2003-01-10 | 2006-05-11 | Koninklijke Philips Electronics N.V. | Efficient predictive image parameter estimation |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
KR100587561B1 (ko) * | 2004-04-08 | 2006-06-08 | 삼성전자주식회사 | 모션 스케일러빌리티를 구현하는 방법 및 장치 |
KR100631768B1 (ko) * | 2004-04-14 | 2006-10-09 | 삼성전자주식회사 | 비디오 코딩에서 프레임간 예측방법 및 비디오 인코더와,비디오 디코딩방법 및 비디오 디코더 |
KR101099884B1 (ko) | 2004-04-23 | 2011-12-28 | 히또시 기야 | 동화상데이터의 부호화방법, 복호화방법, 이들을 실행하는단말장치, 및 쌍방향 대화형 시스템 |
CN101005620B (zh) * | 2004-09-03 | 2011-08-10 | 微软公司 | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 |
DE102004061906A1 (de) * | 2004-12-22 | 2006-07-13 | Siemens Ag | Bildencodierverfahren, sowie dazugehöriges Bilddecodierverfahren, Encodiervorrichtung und Decodiervorrichtung |
US20080192827A1 (en) * | 2005-04-12 | 2008-08-14 | Koninklijke Philips Electronics, N.V. | Video Processing With Region-Based Multiple-Pass Motion Estimation And Update Of Temporal Motion Vector Candidates |
JP5044415B2 (ja) | 2005-11-30 | 2012-10-10 | 株式会社東芝 | 画像符号化/画像復号化方法及び画像符号化/画像復号化装置 |
US20090316786A1 (en) * | 2006-04-14 | 2009-12-24 | Nxp B.V. | Motion estimation at image borders |
CN101617538A (zh) * | 2007-01-08 | 2009-12-30 | 诺基亚公司 | 用于视频编码中扩展空间可分级性的改进层间预测 |
KR102037328B1 (ko) * | 2007-10-16 | 2019-10-28 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
US8908765B2 (en) * | 2007-11-15 | 2014-12-09 | General Instrument Corporation | Method and apparatus for performing motion estimation |
JP4697275B2 (ja) * | 2008-07-30 | 2011-06-08 | ソニー株式会社 | 動きベクトル検出装置、動きベクトル検出方法及びプログラム |
US8675736B2 (en) * | 2009-05-14 | 2014-03-18 | Qualcomm Incorporated | Motion vector processing |
JPWO2010137086A1 (ja) * | 2009-05-26 | 2012-11-12 | パナソニック株式会社 | 動画像処理装置および動画像処理方法 |
CN101931803B (zh) * | 2009-06-26 | 2013-01-09 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
CN101605262B (zh) * | 2009-07-09 | 2011-11-09 | 杭州士兰微电子股份有限公司 | 可变块尺寸运动预测方法和装置 |
TWI566586B (zh) * | 2009-10-20 | 2017-01-11 | 湯姆生特許公司 | 一序列形象的現時區塊之寫碼方法和重建方法 |
CN102577392A (zh) * | 2009-10-20 | 2012-07-11 | 夏普株式会社 | 运动图像编码装置、运动图像解码装置以及数据结构 |
CN104811717B (zh) * | 2009-12-01 | 2018-09-14 | 数码士有限公司 | 用于编码/解码高分辨率图像的方法和设备 |
CN101860754B (zh) * | 2009-12-16 | 2013-11-13 | 香港应用科技研究院有限公司 | 运动矢量编码和解码的方法和装置 |
KR101327636B1 (ko) | 2010-02-03 | 2013-11-12 | 주식회사 팬택 | 무선통신 시스템에서 시스템 프레임 번호를 관리하는 장치 및 방법 |
US8824558B2 (en) * | 2010-11-23 | 2014-09-02 | Mediatek Inc. | Method and apparatus of spatial motion vector prediction |
GB2487200A (en) * | 2011-01-12 | 2012-07-18 | Canon Kk | Video encoding and decoding with improved error resilience |
EP2664146A1 (en) * | 2011-01-14 | 2013-11-20 | Motorola Mobility LLC | Joint spatial and temporal block merge mode for hevc |
US9319716B2 (en) * | 2011-01-27 | 2016-04-19 | Qualcomm Incorporated | Performing motion vector prediction for video coding |
US9131239B2 (en) * | 2011-06-20 | 2015-09-08 | Qualcomm Incorporated | Unified merge mode and adaptive motion vector prediction mode candidates selection |
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 |
-
2011
- 2011-08-17 GB GB1114184.3A patent/GB2493755B/en active Active
-
2012
- 2012-08-16 ES ES12751267T patent/ES2727629T3/es active Active
- 2012-08-16 HU HUE12751267A patent/HUE043598T2/hu unknown
- 2012-08-16 PL PL20205753.5T patent/PL3806470T3/pl unknown
- 2012-08-16 HU HUE20205750A patent/HUE064678T2/hu unknown
- 2012-08-16 PT PT202057493T patent/PT3806468T/pt unknown
- 2012-08-16 BR BR122020002131A patent/BR122020002131B8/pt active Search and Examination
- 2012-08-16 EP EP18201066.0A patent/EP3474552B1/en active Active
- 2012-08-16 KR KR1020187027915A patent/KR102042374B1/ko active IP Right Grant
- 2012-08-16 CN CN201710349647.9A patent/CN107197306B/zh active Active
- 2012-08-16 RS RS20231242A patent/RS64982B1/sr unknown
- 2012-08-16 HR HRP20231270TT patent/HRP20231270T1/hr unknown
- 2012-08-16 US US14/238,821 patent/US10306256B2/en active Active
- 2012-08-16 TR TR2019/08328T patent/TR201908328T4/tr unknown
- 2012-08-16 CN CN201710348687.1A patent/CN107277544B/zh active Active
- 2012-08-16 CN CN201710349649.8A patent/CN107277546B/zh active Active
- 2012-08-16 PL PL20205749.3T patent/PL3806468T3/pl unknown
- 2012-08-16 PL PL12751267T patent/PL2745515T3/pl unknown
- 2012-08-16 PL PL20205750.1T patent/PL3806469T3/pl unknown
- 2012-08-16 RS RS20230919A patent/RS64675B1/sr unknown
- 2012-08-16 KR KR1020187027914A patent/KR102027721B1/ko active IP Right Grant
- 2012-08-16 KR KR1020147006243A patent/KR101617740B1/ko active IP Right Grant
- 2012-08-16 CN CN201280040143.4A patent/CN103748880B/zh active Active
- 2012-08-16 ES ES20205750T patent/ES2962876T3/es active Active
- 2012-08-16 KR KR1020187027913A patent/KR102038791B1/ko active IP Right Grant
- 2012-08-16 PT PT202057535T patent/PT3806470T/pt unknown
- 2012-08-16 HR HRP20240008TT patent/HRP20240008T1/hr unknown
- 2012-08-16 EP EP20205749.3A patent/EP3806468B1/en active Active
- 2012-08-16 CN CN201710349361.0A patent/CN107277545B/zh active Active
- 2012-08-16 EP EP20205750.1A patent/EP3806469B1/en active Active
- 2012-08-16 KR KR1020197032529A patent/KR102085498B1/ko active IP Right Grant
- 2012-08-16 CN CN201710348275.8A patent/CN107277543B/zh active Active
- 2012-08-16 JP JP2014525345A patent/JP6109170B2/ja active Active
- 2012-08-16 ES ES18201066T patent/ES2875926T3/es active Active
- 2012-08-16 EP EP12751267.1A patent/EP2745515B1/en active Active
- 2012-08-16 EP EP20205753.5A patent/EP3806470B1/en active Active
- 2012-08-16 HU HUE20205753A patent/HUE064679T2/hu unknown
- 2012-08-16 HU HUE18201066A patent/HUE054992T2/hu unknown
- 2012-08-16 RU RU2014110037/08A patent/RU2589402C2/ru active
- 2012-08-16 KR KR1020167011114A patent/KR101904404B1/ko active Application Filing
- 2012-08-16 ES ES20205753T patent/ES2964571T3/es active Active
- 2012-08-16 CN CN201710349362.5A patent/CN107181960B/zh active Active
- 2012-08-16 HU HUE20205749A patent/HUE063247T2/hu unknown
- 2012-08-16 RS RS20240016A patent/RS65035B1/sr unknown
- 2012-08-16 WO PCT/EP2012/003490 patent/WO2013023785A2/en active Application Filing
- 2012-08-16 BR BR112014002932-6A patent/BR112014002932B1/pt active IP Right Grant
- 2012-08-16 ES ES20205749T patent/ES2954263T3/es active Active
- 2012-08-16 PL PL18201066T patent/PL3474552T3/pl unknown
- 2012-08-16 RU RU2016121861A patent/RU2643450C1/ru active
- 2012-08-16 PT PT202057501T patent/PT3806469T/pt unknown
- 2012-08-16 HR HRP20231726TT patent/HRP20231726T1/hr unknown
-
2017
- 2017-03-02 JP JP2017039886A patent/JP6494675B2/ja active Active
-
2018
- 2018-01-09 RU RU2018100102A patent/RU2684753C1/ru active
-
2019
- 2019-03-06 JP JP2019040360A patent/JP6679782B2/ja active Active
- 2019-03-06 JP JP2019040359A patent/JP6679781B2/ja active Active
- 2019-03-06 JP JP2019040361A patent/JP6821730B2/ja active Active
- 2019-03-13 US US16/352,625 patent/US10771806B2/en active Active
- 2019-04-02 RU RU2019109653A patent/RU2708440C1/ru active
- 2019-11-25 RU RU2019137982A patent/RU2720560C1/ru active
-
2020
- 2020-08-04 US US16/985,078 patent/US11134264B2/en active Active
- 2020-08-04 US US16/985,082 patent/US11134265B2/en active Active
- 2020-08-04 US US16/985,089 patent/US11134266B2/en active Active
-
2021
- 2021-08-30 US US17/461,543 patent/US11729415B2/en active Active
-
2022
- 2022-11-03 US US18/052,359 patent/US11968390B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2310231C2 (ru) * | 2002-06-03 | 2007-11-10 | Майкрософт Корпорейшн | Пространственно-временное прогнозирование для двунаправлено прогнозируемых (в) изображений и прогнозирование вектора движения для компенсации движения множественных изображений с помощью эталона |
US7450642B2 (en) * | 2002-11-13 | 2008-11-11 | Sony Corporation | Fast motion vector prediction method |
US8000392B1 (en) * | 2004-02-27 | 2011-08-16 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
WO2009115901A2 (en) * | 2008-03-19 | 2009-09-24 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
WO2011041321A1 (en) * | 2009-10-01 | 2011-04-07 | Ntt Docomo, Inc. | Motion vector prediction in video coding |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2684753C1 (ru) | Устройство и способ кодирования изображения, устройство и способ декодирования изображения и носители данных | |
KR101841352B1 (ko) | 참조 프레임 선택 방법 및 그 장치 |