RU2721004C1 - Способ и устройство для компенсации движения с предсказанием - Google Patents

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

Info

Publication number
RU2721004C1
RU2721004C1 RU2019108127A RU2019108127A RU2721004C1 RU 2721004 C1 RU2721004 C1 RU 2721004C1 RU 2019108127 A RU2019108127 A RU 2019108127A RU 2019108127 A RU2019108127 A RU 2019108127A RU 2721004 C1 RU2721004 C1 RU 2721004C1
Authority
RU
Russia
Prior art keywords
bit depth
samples
fractional
prediction
sample
Prior art date
Application number
RU2019108127A
Other languages
English (en)
Inventor
Франк Ян БОССЕН
Original Assignee
Нтт Докомо, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Нтт Докомо, Инк. filed Critical Нтт Докомо, Инк.
Application granted granted Critical
Publication of RU2721004C1 publication Critical patent/RU2721004C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

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

Description

РОДСТВЕННЫЕ ЗАЯВКИ
Данный патентный документ испрашивает приоритет согласно §119(e) Раздела 35 Кодекса США по дате подачи предварительной заявки на патент США № 61/501112, поданной 24 июня 2011 года, полное содержание которой включено в данный документ по ссылке.
УРОВЕНЬ ТЕХНИКИ
1. Область техники, к которой относится изобретение
Данное изобретение относится к компенсации движения для межкадрового предсказания и, в частности, к интерполяции дробной выборки, используемой в компенсации движения, которая достигает и низкой сложности, и высокой точности.
2. Описание предшествующего уровня техники
Цифровое видео требует большого объема данных для представления каждого и всякого кадра цифровой видеопоследовательности (например, последовательности кадров) несжатым образом. Для большинства применений невозможно передавать несжатое цифровое видео через компьютерные сети из-за ограничений полосы частот. Кроме того, несжатое цифровое видео требует большого объема пространства памяти. Цифровое видео обычно кодируется некоторым образом для уменьшения требований к памяти и уменьшения требований к полосе частот.
Одним способом для кодирования цифрового видео является межкадровое предсказание, или внешнее предсказание. Внешнее предсказание использует временные избыточности среди различных кадров. Временно смежные кадры видео обычно включают в себя блоки пикселов, которые по существу остаются одними и теми же. Во время процесса кодирования, вектор движения взаимосвязывает перемещение блока пикселов в одном кадре с блоком подобных пикселов в другом кадре. Соответственно, системе не требуется кодировать этот блок пикселов дважды, и вместо этого она кодирует этот блок пикселов один раз и обеспечивает вектор движения для предсказания другого блока пикселов.
Другим способом для кодирования цифрового видео является внутрикадровое предсказание или внутреннее предсказание. Внутреннее предсказание кодирует некоторый кадр или его часть без ссылки на пикселы в других кадрах. Внутреннее предсказание использует пространственные избыточности среди блоков пикселов в пределах некоторого кадра. Поскольку пространственно смежные блоки пикселов обычно имеют подобные атрибуты, эффективность процесса кодирования улучшается посредством ссылки на пространственную корреляцию между смежными блоками. Эта корреляция может использоваться посредством предсказания целевого блока на основе режимов предсказания, используемых в смежных блоках.
Во внешнем предсказании, принятое изображение предсказывается на основе оценки и компенсации движения. Движущиеся объекты в видео часто появляются от кадра к кадру, при этом все или часть из них перемещаются в эти последующие кадры. Несмотря на эти перемещения, корреляция среди этой последовательности кадров является высокой и создает избыточность. Эта временная избыточность может быть уменьшена посредством сравнения и отнесения образцов в текущем кадре к местоположению того же самого объекта в опорных кадрах. Конкретно, во время оценки движения, текущий кадр или его раздел сравнивается с опорными кадрами, которые могут быть по времени предыдущими или идти впереди текущего кадра. Шаблон пикселов в пределах диапазона поиска, установленного в соответствующем опорном кадре, сравнивается с шаблоном пикселов, демонстрируемых в текущем кадре, до тех пор, пока не будет найден опорный кадр, который содержит шаблон пикселов, наилучшим образом согласующийся с шаблоном пикселов в текущем кадре, подлежащем кодированию. На основе результатов сравнения, оценивается вектор межкадрового смещения или вектор движения. С использованием оцененного вектора движения, компенсация движения дает предсказание текущего кадра.
Точность вектора движения и эффективность кодирования могут быть увеличены посредством применения интерполяции к пикселам в опорном изображении, которые называются выборками в целых положениях, или просто целыми выборками, для увеличения разрешения опорного изображения. Интерполяция должна генерировать дробные выборки между каждой целой выборкой, с использованием значений этих целых выборок. Чем более дробные выборки генерируются между целыми выборками, тем выше становится разрешение опорного изображения, и тем более точно может быть скомпенсировано смещение дробной выборки. Например, для точной компенсации перемещения движущегося объекта, которое является смещением только на половину пиксела, необходима по меньшей мере интерполяция в пол-пиксела (pel). Оценка и компенсация движения могут выполняться с использованием некоторого количества различных размеров блоков. Отдельные векторы движения могут быть определены для разделов, имеющих 4×4, 4×8, 8×4, 8×8, 8×16, 16×8 или 16×16 пикселов. Обеспечение малых разделов компенсации движения улучшает способность обрабатывать тонкие подробности движения.
H.264/AVC применяет 2-х этапный подход и достигает компенсации движения вплоть до разрешения в четверть pel. В H.264/AVC, на первом этапе используется фильтр с 6 отводами для генерации промежуточных значений при разрешении в половину pel из значений окружающих целых выборок. На втором этапе, эти значения целых выборок и промежуточные значения усредняются, или промежуточные значения усредняются между собой для генерации дробных выборок при положениях в четверть pel, или просто выборок в четверть-pel. В В-вырезках, две дробных выборки предсказаний из двух предсказаний могут быть дополнительно усреднены. Следует отметить, однако, что множественные операции усреднения, при последовательном выполнении, вводят ошибки округления, которые неблагоприятно влияют на точность и эффективность компенсации движения. Предложения D321 и Е242 объединенной команды сотрудников по кодированию видео (JCT-VC) адресуются к вопросу ошибки округления, связанной с двунаправленным усреднением. В этих документах предлагается, чтобы операция округления была ограничена применением на последнем этапе двунаправленного усреднения после сложения двух предсказаний.
JCT-VC Draft E603 описывает использование фильтра с 8 отводами для достижения разрешения в четверть pel. В Е603, некоторые из выборок в четверть-pel выводятся посредством применения фильтра с 8 отводами к ближайшим целым выборкам и усечения отфильтрованных результатов на предварительно определенную битовую глубину. Оставшиеся из выборок в четверть-pel выводятся через 2 процесса. В первом процессе выводятся промежуточные значения посредством применения фильтра с 8 отводами к ближайшим целым выборкам в вертикальном направлении. Во втором процессе фильтр с 8 отводами применяется к промежуточным значениям в горизонтальном направлении, и отфильтрованные результаты усекаются на предварительно определенную битовую глубину. Этот 2-процессный подход является выгодным в том, что не требуется фиксированного порядка для вертикальной фильтрации и горизонтальной фильтрации во втором процессе, и, таким образом, не нужна сигнализация декодеру, касающаяся порядка вертикальной фильтрации и горизонтальной фильтрации во втором процессе. Однако, компенсация движения, обсуждаемая в Е603, требует задания дополнительных операций фильтрации для генерации промежуточных значений. Операция фильтрации, примененная к промежуточным значениям, является дорогостоящей и требует высокой вычислительной сложности, в частности, для видеоданных с высокой битовой глубиной.
Кроме того, в компенсации движения, обсуждаемой в Е603, промежуточные значения не усекаются таким образом, чтобы гарантировать точность выборок в четверть pel, вычисляемых из них. Таким образом, побитовая точность вычисленных значений не является постоянной во время компенсации движения, обсуждаемой в Е603. В конце первого процесса, объясненного выше, точность результирующих значений выборок увеличивается на величину, определенную усилением фильтра с 8 отводами. Посредством применения фильтра с 8 отводами к промежуточным значениям, точность затем возрастает опять на ту же самую величину, что и в первом процессе перед усечением для предварительно определенной точности. Следовательно, вдвое большее усечение разрешения необходимо во втором процессе, чем необходимо в первом процессе, для возвращения разрешения обратно к первоначальной битовой глубине в конце второго этапа.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Ввиду обсужденного выше известного уровня техники, данное изобретение обеспечивает новую операцию компенсации движения для межкадрового предсказания. Эта компенсация движения применяет интерполяцию дробных выборок к выборкам для генерации дробных выборок. При компенсации движения согласно данному изобретению, первая интерполяция дробных выборок применяется к выборкам в первом направлении для генерации первого набора дробных выборок. Вторая интерполяция дробных выборок применяется к первому набору дробных выборок во втором направлении для генерации второго набора дробных выборок. В данном изобретении, первый набор дробных выборок представлен с точностью, не зависящей от точности представления выборок.
В одном аспекте данного изобретения, интерполяция дробных выборок применяет FIR фильтр с 8 отводами, имеющий одно из трех наборов коэффициентов для генерации выборки в четверть pel:
[-1, 4, -10, 58, 17, -5, 1, 0];
[-1, 4, -11, 40, 40, -11, 4, -1]; и
[0, 1, -5, 17, 58, -10, 4, -1].
В одном аспекте данного изобретения, интерполяция дробных выборок содержит усечение каждого из отфильтрованных результатов таким образом, что дробные выборки имеют желаемую точность. Эта желаемая точность может быть постоянной по первому и второму процессам дробной интерполяции.
Процесс усечения может включать в себя округление усекаемых результатов по направлению к минус бесконечности. Это достигается посредством недобавления никакого смещения к фильтрованным результатам перед процессом усечения.
Кроме того, в другом аспекте данного изобретения, выборки могут быть увеличены в масштабе до второй битовой глубины, которая является постоянной для этих выборок, независимо от первоначальных битовых глубин этих выборок. Вторая битовая глубина может быть установлена равной некоторому количеству битов, доступных для представления этой выборки, и коэффициент увеличения масштаба устанавливается равным числу битов, доступных для представления этой выборки, минус первоначальная битовая глубина этой выборки.
Далее, в другом аспекте данного изобретения, увеличенные в масштабе выборки, вычитаются со смещением.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой, показывающей примерную архитектуру аппаратного обеспечения, на которой может быть реализовано данное изобретение.
Фиг. 2 является блок-схемой, показывающей общий вид видеокодера, к которому может быть применено данное изобретение.
Фиг. 3 является блок-схемой, показывающей общий вид видеодекодера, к которому может быть применено данное изобретение.
Фиг. 4 является блок-схемой, показывающей функциональные модули кодера согласно одному варианту осуществления данного изобретения.
Фиг. 5 является блок-схемой, показывающей процесс кодирования, выполняемый посредством видеокодера согласно одному варианту осуществления данного изобретения.
Фиг. 6 является блок-схемой, показывающей процессы интерполяции дробных выборок согласно одному варианту осуществления данного изобретения.
Фиг. 7 является иллюстрацией фильтрации для интерполяции дробных выборок.
Фиг. 8 является блок-схемой, показывающей функциональные модули декодера согласно одному варианту осуществления данного изобретения.
Фиг. 9 является блок-схемой, показывающей процесс декодирования, выполняемый посредством видеодекодера согласно одному варианту осуществления данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ И ПРЕДПОЧТИТЕЛЬНЫХ В ДАННОЕ ВРЕМЯ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 1 показывает примерную архитектуру аппаратного обеспечения компьютера 100, на котором может быть реализовано данное изобретение. Следует отметить, что архитектура аппаратного обеспечения, показанная на фиг. 1, может быть общей как в видеокодере, так и в видеодекодере, которая реализует варианты осуществления данного изобретения. Компьютер 100 включает в себя процессор 101, память 102, запоминающее устройство 105 и одно или более устройств 106 ввода и/или вывода (I/O) (или периферийных устройств), которые соединены с возможностью связи через локальный интерфейс 107. Локальным интерфейсом 107 может быть, например, без ограничения этим, одна или более шин или других проводных или беспроводных подключений, как известно в данной области техники.
Процессор 101 является аппаратным устройством для выполнения программного обеспечения, в частности, того, которое хранится в памяти 102. Процессор 101 может быть любым заказным или коммерчески доступным процессором, центральным процессором (CPU), вспомогательным процессором среди нескольких процессоров, связанных с компьютером 100, основанным на полупроводнике микропроцессором (в форме микросхемы или набора микросхем), или в общем любым устройством для выполнения программных команд.
Память 102 содержит компьютерно-читаемый носитель, который может включать в себя какой-либо один или комбинацию из элементов энергозависимой памяти (например, оперативной памяти (RAM, такой как DRAM, SRAM, SDRAM и т.д.) и элементов энергонезависимой памяти (например, ROM, жесткий диск, ленту, CD-ROM и т.д.). Кроме того, память 102 может включать в себя электронные, магнитные, оптические и/или другие типы запоминающих носителей. Компьютерно-читаемым носителем может быть любое средство, которое может хранить, связываться, распространять или транспортировать программу для использования посредством или в соединении с системой, аппаратурой или устройством исполнения команд. Следует отметить, что память 102 может иметь распределенную архитектуру, где различные компоненты расположены удаленно друг от друга, но могут быть доступны процессору 101.
Программное обеспечение 103 в памяти 102 может включать в себя одну или более отдельных программ, каждая из которых содержит упорядоченный перечень исполняемых команд для реализации логических функций компьютера 100, как описано ниже. В примере фиг. 1, программное обеспечение 103 в памяти 102 задает функциональность кодирования или декодирования видеоданных компьютером 100 в соответствии с данным изобретением. Кроме того, хотя это и не требуется, память 102 может содержать операционную систему (O/S) 104. Операционная система 104 по существу управляет исполнением компьютерных программ и обеспечивает планирование, управление вводом-выводом, управление файлами и данными, управление памятью и управление связью и связанными службами.
Запоминающее устройство 105 компьютера 100 может быть одним из многих различных типов запоминающего устройства, включающих в себя стационарное запоминающее устройство или портативное запоминающее устройство. В качестве примера, запоминающее устройство 105 может быть магнитной лентой, диском, флэш-памятью, энергозависимой памятью или другим запоминающим устройством. Кроме того, запоминающее устройство 105 может быть картой памяти secure digital или другим съемным запоминающим устройством 105.
I/O устройства 106 могут включать в себя устройства ввода, например, но не ограниченные этим, сенсорный экран, клавиатуру, мышь, сканер, микрофон или другое устройство ввода. Кроме того, I/O устройства 106 могут также включать в себя устройства вывода, например, но не ограниченные этим, дисплей или другие устройства вывода. I/O устройства 106 могут дополнительно включать в себя устройства, которые связываются как через входы так и выходы, например, но не ограничены этим, модулятор/демодулятор (например, модем; для доступа к другому устройству, системе или сети), радиочастотный (RF), беспроводной или другой трансивер, телефонный интерфейс, мост, маршрутизатор или другие устройства, которые функционируют как ввод, так и вывод.
Как хорошо известно специалистам обычной квалификации в данной области техники, сжатие видео достигается посредством удаления избыточной информации в видеопоследовательности. Существует много различных стандартов кодирования видео, примеры которых включают в себя MPEG-1, MPEG-2, MPEG-4, H.261, H.263 и H.264/AVC. Следует отметить, что данное изобретение не предназначено для ограничения в применении какого-либо конкретного стандарта кодирования видео. Однако, следующее описание данного изобретения обеспечено с использованием примера стандарта H.264/AVC, который включен в данный документ по ссылке. H.264/AVC является новейшим стандартом кодирования видео и достигает значительного улучшения производительности над предыдущими стандартами кодирования, такими как MPEG-1, MPEG-2, H.261 и H.263.
В H.264/AVC, каждый кадр или изображение видео может быть разбит на несколько вырезок. Эти вырезки затем разделяются на блоки 16×16 пикселов, называемые макроблоками, которые могут быть затем дополнительно разделены на блоки 8×16, 16×8, 8×8, 4×8, 8×4, вплоть до 4×4 пикселов. Имеется пять типов вырезок, поддерживаемых H.264/AVC. В I вырезках, все макроблоки кодируются с использованием внутреннего предсказания. В Р вырезках, макроблоки могут быть кодированы с использованием внутреннего или внешнего предсказания. Р вырезки позволяют использовать только один сигнал компенсированного предсказания движения (МСР) на макроблок. В В вырезках, макроблоки могут быть кодированы с использованием внутреннего или внешнего предсказания. Два МСР сигнала могут использоваться на каждое предсказание. SP вырезки позволяют Р вырезкам эффективно переключаться между различными видеопотоками. SI вырезка является точным совпадением для SP вырезки для случайного доступа или устранения ошибок, при использовании только внутреннего предсказания.
Фиг. 2 показывает общий вид видеокодера, к которому может быть применено данное изобретение. Блоки, показанные на этом чертеже, представляют функциональные модули, реализованные процессором 101, выполняющим программное обеспечение 103 в памяти 102. Изображение видеокадра 200 подается в видеокодер 201. Видеокодер 201 трактует изображение 200 в единицах макроблоков 200А. Каждый макроблок содержит несколько пикселов изображения 200. На каждом макроблоке, выполняется преобразование в коэффициенты преобразования, за которым следует квантование в уровни коэффициентов преобразования. Кроме того, используется внутреннее предсказание или внешнее предсказание таким образом, чтобы не выполнять этапы кодирования непосредственно на данных пикселов, а на разностях между значениями пикселов и их предсказаниями, посредством чего достигаются малые значения, которые легче сжимаются.
Для каждой вырезки, кодер 201 генерирует некоторое количество синтаксических элементов, которые образуют кодированную версию макроблоков в соответствующей вырезке. Все остаточные элементы данных в этих синтаксических элементах, которые связаны с кодированием коэффициентов преобразования, такие как уровни коэффициентов преобразования или карта значимости, указывающая пропущенные уровни коэффициентов преобразования, называются синтаксическими элементами остаточных данных. Кроме этих синтаксических элементов остаточных данных, синтаксические элементы, генерируемые кодером 201, содержат синтаксические элементы информации управления, содержащие информацию управления о том, как каждый макроблок был кодирован или декодирован, соответственно. Другими словами, синтаксические элементы могут быть разделены на две категории. Первая категория, синтаксические элементы информации управления, содержит элементы, связанные с типом макроблока, типом субмакроблока и информацией о режимах предсказания как пространственного, так и временного типов, а также с основанной на вырезке и основанной на макроблоке информации, например. Во второй категории, все элементы остаточных данных, такие как карта значимости, указывающая местоположения всех значимых коэффициентов внутри некоторого блока квантованных коэффициентов преобразования и значения значимых коэффициентов, которые указаны в единицах уровней, соответствующих этапам квантования, скомбинированы и становятся синтаксическими элементами остаточных данных.
Кодер 201 содержит энтропийный кодер, который кодирует синтаксические элементы и генерирует арифметические кодовые слова для каждой вырезки. При генерации арифметических кодовых слов для некоторой вырезки, энтропийный кодер использует статистические зависимости среди значений данных синтаксических элементов в битовом потоке видеосигнала. Кодер 201 выводит кодированный видеосигнал для некоторой вырезки изображения 200 для видеодекодера 302, показанного на фиг. 3.
Фиг. 3 показывает общий вид видеодекодера, к которому может быть применено данное изобретение. Аналогично, блоки, показанные на этом чертеже, представляют функциональные модули, реализованные процессором 101, выполняющим программное обеспечение 103 в памяти 102. Видеодекодер 301 принимает кодированный видеосигнал и сначала энтропийно декодирует этот сигнал обратно в синтаксические элементы. Декодер 301 использует эти синтаксические элементы для реконструкции, макроблок за макроблоком и затем вырезка за вырезкой, выборок 300А изображения пикселов в изображении 300.
Фиг. 4 показывает функциональные модули видеокодера 201, который обычно обозначается со ссылочной позицией 400 на фиг. 4. Эти функциональные модули реализуются процессором 101, выполняющим программное обеспечение 103 в памяти 102. Входное видеоизображение является кадром или полем естественного (несжатого) видеоизображения, заданного посредством точек выборки, представляющих компоненты первоначальных цветов, такие как цветность (“chroma”) и яркость (“luma”). Возможны и другие компоненты, такие как оттенок, насыщенность и значение. Это входное видеоизображение разделяется на макроблоки, каждый из которых представляет квадратную область изображения, состоящую из 16×16 пикселов luma-компонента цвета изображения. Входное видеоизображение также разделяется на макроблоки, каждый из которых представляет 8×8 пикселов каждой из chroma-компонентов цвета изображения. В основной операции кодера, введенные макроблоки могут быть временно или пространственно предсказаны с использованием внешнего или внутреннего предсказания. Однако, с целью обсуждения предполагается, что все макроблоки 400 являются либо макроблоками типа Р-вырезки, либо макроблоками типа В-вырезки, или смесью обоих, и подвергаются только внешнему предсказанию.
Видеокодер 400, показанный на фиг. 4, передает только остатки или разности между текущим изображением и предсказанием текущего изображения. Вычитатель 410 получает эти остатки посредством приема блока текущего изображения, подлежащего кодированию, как входной сигнал IS, и вычитания из него блока изображения предсказания, указанного посредством сигнала PS предсказания. Как показано на фиг. 4, видеокодер 400 включает в себя блок 420 преобразования/квантования для вывода квантованных коэффициентов преобразования QC. Блок 420 преобразования/квантования преобразует остаток из пространственной области в частотную область и квантует преобразованный остаток. Видеокодер 400 также включает в себя блок 490 энтропийного кодирования для выполнения энтропийного кодирования (кодирования переменной длины) квантованных коэффициентов преобразования QC и вывода битового потока BS.
Видеокодер 400 дополнительно включает в себя блок 430 обратного квантования/преобразования и сумматор 435. Блок 430 обратного преобразования/квантования преобразует квантованные коэффициенты преобразования QC обратно в остаточный сигнал RS, к которому сумматор 435 добавляет сигнал PS предсказания для вывода декодированного изображения. Деблокирующий фильтр 437 удаляет артефакты блоков из декодированного изображения и сохраняет очищенное декодированное изображение в памяти 440 опорных изображений.
Видеокодер 400 дополнительно включает в себя блок 460 предсказания/компенсации движения и блок 470 оценки движения. Блок 460 предсказания/компенсации движения считывает опорное изображение из памяти 440 опорных изображений и применяет интерполяцию для генерации дробных выборок в положениях четвертей pel. Блок 470 оценки движения также считывает опорное изображение из памяти опорных изображений и оценивает вектор движения МV для текущего изображения посредством сравнения текущего изображения и опорного изображения. Вектор движения MV выводится для блока 460 предсказания/компенсации движения и блока 490 энтропийного кодирования. Этот блок может быть разделен на разделы, имеющие 4×4, 4×8, 8×4, 8×8, 8×16, 16×8, или 16×16 пикселов. Блок 470 оценки движения выполняет оценку движения на соответствующих разделах в этом блоке и выдает векторы движения MV для соответствующих разделов. Блок 460 предсказания/компенсации движения смещает соответствующие разделы в опорном изображении на величины и в направлениях, указанных векторами движения, для вывода изображения предсказания, который обеспечивается как сигнал IS предсказания для вычитателя 410 и сумматора 435.
Фиг. 5 является блок-схемой, показывающей высокий уровень процесса кодирования, выполняемого видеокодером 400. На этапе 502, блок 460 предсказания/компенсации движения генерирует блок предсказания. На этапе 504, вычитатель 410 вычитает изображение предсказания из текущего изображения для получения остатка. На этапе 506, блок 420 преобразования/квантования кодирует этот остаток.
Фиг. 6 является блок-схемой, показывающей процессы компенсации движения, выполняемые блоком 460 предсказания/компенсации движения для генерации сигнала предсказания согласно одному варианту осуществления данного изобретения. На этапе 602, блок 460 предсказания/компенсации движения считывает опорные выборки из памяти 440 опорных изображений. Память 440 опорных изображений хранит множественные опорные изображения. Как обсуждалось в разделе 8.4.2 и его подразделах H.264/AVC, местоположение опорных выборок, подлежащих извлечению из опорного изображения, хранимого в памяти 440 опорных изображений, может быть определено при помощи положения области, подлежащей предсказанию в пределах текущего изображения, вектора движения MV этой области и индекса опорного кадра.
На этапе 604, извлеченные опорные выборки увеличиваются в масштабе для увеличения точности опорных выборок. Коэффициент масштабирования может быть определен при помощи битовой глубины опорных выборок и числа битов, доступных для представления опорной выборки. Это число битов, доступных для представления опорной выборки, может быть определено таким образом, что если 16 является максимально доступным числом битов для представления опорной выборки, то число битов, доступных для представления этой выборки, может быть ограничено 14 для того, чтобы помешать переполнению или исчезновению значащих разрядов данных, которое может произойти во время компенсации движения. Если число битов, доступных для представления этой выборки, равно 14, то коэффициент масштабирования равен 6 для опорной выборки, которая составляет 8 битов в ширину, и извлеченные опорные выборки увеличиваются в масштабе посредством сдвига влево их битов на 6 битов. Более общим образом, коэффициент масштабирования может быть выражен как «число битов, доступных для представления опорной выборки» минус «битовая глубина опорной выборки». Этот процесс увеличения масштаба, выполняемый на этапе 604, является выгодным, так как он преобразует опорные выборки, хранимые в памяти опорных изображений, в форму, независимую от их битовых глубин, и процессы, следующие за процессом увеличения масштаба станут независимыми от первоначальных битовых глубин видеоданных.
По выбору, некоторое смещение может быть вычтено из увеличенного в масштабе значения опорной выборки. Например, если имеющее знак 14-битовое представление используется для представления увеличенных в масштабе опорных выборок, то значение этого смещения, подлежащего вычитанию, может быть равным 8192 (=213), что переводит увеличенные в масштабе опорные выборки в пределы диапазона от -8192 до 8192. Добавление этого смещения является выгодным для уменьшения числа битов, требуемых для представления выборки. Поскольку процесс интерполяции, описанный ниже, имеет дело с имеющими знак значениями выборок, имеющее знак представление всех значений выборок, таким образом, является предпочтительным. В приведенном выше примере, в котором выборки увеличиваются в масштабе вплоть до 14-битовых представлений, если это смещение не вычитается, то должно было бы использоваться 15-битовое имеющее знак представление, которое является более дорогостоящим, чем 14-битовое имеющее знак представление, полученное от вычитания этого смещения. Следует отметить, что опорные выборки могут быть увеличены в масштабе и смещены, когда они хранятся в памяти опорных изображений. Если опорные выборки хранятся в памяти опорных изображений после увеличения в масштабе и смещения, то этап 604 не является необходимым.
Разрешение увеличенных в масштабе опорных выборок затем увеличивается с использованием дробной интерполяции выборок для генерации дробных выборок в положениях четверти pel. Фиг. 7 является иллюстрацией фильтрации для компенсации движения дробных выборок. На фиг. 7, буквы Аij верхнего регистра обозначают увеличенные в масштабе опорные выборки. Эти выборки называются целыми выборками. Другие выборки, показанные посредством букв нижнего регистра, такие как а0,0, b0,0, c0,0, d0,0,… и r0,0, являются дробными выборками в положениях четверти pel. На этапе 606, четверть-pel выборка а0,0, b0,0 или c0,0, выводятся посредством следующих интерполяционных равенств:
Figure 00000001
Дробная часть горизонтального компонента вектора движения определяет, какая выборка выводится. Например, если дробная часть равна ¼, то выводится а0,0.
Каждая из операций интерполяции включает в себя применение FIR фильтра с 8 отводами для ближайших целых выборок и усечение отфильтрованного результата для смещения увеличения фильтра. Сумма коэффициентов каждого фильтра установлена равной 64(=26). Таким образом, операция усечения включает в себя деление отфильтрованного результата на 64 или сдвиг вправо отфильтрованного результата на 6. Следует отметить, что в вышеуказанных операциях интерполяции, усеченные результаты округляются по направлению к минус бесконечности. Посредством добавления смещения к отфильтрованным результатам, усеченные результаты могут быть округлены по направлению к ближайшему целому. Однако, округление по направлению к минус бесконечности является выгодным, так как оно не требует добавления смещения к отфильтрованным результатам. По выбору, могут быть обеспечены различные типы фильтров, из которых один фильтр применяется избирательно, в зависимости от дробного смещения, определенного горизонтальным компонентом вектора движения. Этот этап может быть опущен в случае, когда горизонтальное дробное смещение равно нулю. Следует отметить, что имеется операция сдвига вправо на 6 битов на этапе 606, и операция сдвига влево на 6 битов на этапе 604 в примере с 8-битовыми входами. Таким образом, этапы 604 и 606 могут комбинироваться таким образом, что операции сдвига влево и сдвига вправо устраняются без изменения выхода.
На этапе 608, дробная выборка d0,0, h0,0, n0,0, e0,0, i0,0, p0,0, f0,0, j0,0, q0,0, g0,0, k0,0 или r0,0 выводится посредством следующих интерполяционных равенств:
Figure 00000002
Дробные части горизонтального и вертикального компонентов вектора движения определяют, какая выборка выводится. Например, если горизонтальная дробная часть равна 1/4, а вертикальная дробная часть равна ¾, то выводится р0,0.
Вышеприведенные операции интерполяции включают в себя применение FIR фильтров с 8 отводами вертикально к выборкам А0,j, a0,i, b0,i и c0,i, где i=-3..4, и усечение отфильтрованных результатов на коэффициент 6. Следует отметить, что в данном изобретении, каждый отфильтрованный результат усекается и что никакой отфильтрованный результат не используется как неусеченное промежуточное значение для вычисления из него дробных выборок. В данном изобретении, следовательно, точность значений выборок является постоянной по интерполяции дробных выборок. Ни этап 606, ни этап 608 не изменяет точность в представлении выборок.
В вышеуказанном варианте осуществления интерполяции дробных выборок, все наборы фильтров, используемых в операциях вертикальной и горизонтальной фильтрации, являются фильтрами с 8 отводами. Следует отметить, что фильтры с различными количествами отводов могут использоваться для интерполяции дробного движения. Например, желательно использовать фильтры с меньшим количеством отводов для меньших размеров блоков. Использование фильтров с меньшим числом отводов уменьшает число выборок, подлежащих извлечению из памяти опорных изображений, посредством чего полоса частот памяти может быть уменьшена. Использование фильтров с меньшим числом отводов также снижает число умножений в операциях фильтрации и улучшает эффективность компенсации движения. H.264/AVC позволяет макроблоку или субмакроблоку быть разделенным на один или более разделов с целью компенсации движения. В H.264/AVC, макроблок, имеющий размер 16×16, может быть разделен на один или более разделов, причем каждое имеет размер 4×4, 4×8, 8×4, 8×8, 8×16 или 16×16. Соответственно, фильтры с различным числом отводов могут подготавливаться и применяться избирательно согласно ширине раздела. Например, фильтр с 8 отводами может быть применен к разделам, имеющим ширину, равную или большую, чем 8, а фильтр с 4 отводами может быть применен к разделам, имеющим ширину, меньшую, чем 8. В одном варианте осуществления, такой фильтр с 4 отводами имеет коэффициенты [-4 36 36 -4]. JCT-VC проект Е603 ввел понятие блока кодирования (CU). CU, имеющий размер N×N может быть разделен на один или более разделов, имеющих размер N×N, N×N/2 или N/2×N. Фильтры с различными количествами отводов могут применяться избирательно, равна ли высота или ширина CU N или N/2.
В вышеуказанном варианте осуществления компенсации движения дробных выборок, горизонтальная интерполяция дробных выборок (этап 606) предшествует вертикальной интерполяции дробных выборок (этап 608). Следует отметить, что этот порядок может быть переключен до тех пор, пока этот порядок согласован заранее между кодером и декодером. В другом варианте осуществления, этот порядок может быть сигнализирован от кодера к декодеру. Когда опорные выборки имеют 8 битов в ширину, результат вычисления будет тем же самым, независимо от порядка горизонтальной и вертикальной интерполяции. Если это имеет место, что никакого предшествующего соглашения, касающегося этого порядка, между кодером и декодером не нужно.
В компенсации движения, обсуждаемого в JCT-VC проекте Е603, одни и те же дробные выборки могут быть выведены независимо от того, выводятся ли промежуточные значения вертикально и применяются горизонтально, или выводятся ли они горизонтально и применяются вертикально. Это является выгодным в том смысле, что не нужно предшествующее соглашение между кодером и декодером, касающееся того, должны ли промежуточные значения выводиться вертикально и применяться горизонтально, или они должны выводиться горизонтально и применяться вертикально. Однако, промежуточные значения имеют более высокую точность, чем в данном изобретении, и стоимость применения второго FIR фильтра к этим промежуточным значениям является более высокой, чем эта стоимость данного изобретения. Обычно, эта стоимость возрастает в пропорции к точности. Эта стоимость может быть значительно более высокой в программном обеспечении, где точность превышает общий размер слова, такой как 16 битов. В таком случае точность дополнительно расширяется для соответствия следующему общему размеру слова. Например, промежуточные значения с 17 битами точности расширились бы до 32 битов. Более высокая точность промежуточных значений, как обсуждается в JCT-VC проекте Е603, не имеет значительного влияния на стоимость, без обеспечения значительной выгоды в терминах точности сигнала предсказания.
В варианте осуществления данного изобретения, описанном выше, порядок горизонтальной и вертикальной интерполяций необходимо фиксировать между кодером и декодером. Однако, фиксация порядка горизонтальной и вертикальной интерполяции не вызовет каких-либо издержек для кодера и декодера. Скорее, посредством фиксации этого порядка, компенсация движения может работать при более низкой, и все же достаточно высокой, точности для снижения стоимости операций, таких как умножения. Также, посредством фиксации этого порядка, точность вычисления становится постоянной по интерполяции дробных выборок. Вычисление фильтрации может быть, таким образом, упрощено в том, что все умножения между выборками и коэффициентами могут быть выполнены в пределах фиксированных битовых диапазонов, например, 16-битового, имеющего знак диапазона для выборок, и 8-битового, имеющего знак диапазона для коэффициентов фильтров. Поскольку все умножения выполняются в пределах фиксированных битовых диапазонов, операции фильтрации могут быть эффективно реализованы параллельно на SIMD архитектурах.
Возвращаясь обратно к фиг. 6, преобразование применяется к выведенным выборкам на этапе 610. Пример такого преобразования описан как процесс предсказания взвешенной выборки в разделе 8.4.2.3 и его подразделах H.264/AVC. Процесс предсказания взвешенной выборки комбинирует два набора выборок посредством линейной интерполяции. Это преобразование может улучшить эффективность кодирования для сцен, содержащих затухания. Значение комбинированных выборок, являющееся результатом этого преобразования, может быть обрезано для подгонки в пределах определенного диапазона, например, 16-битового имеющего знак диапазона. Следует отметить, что этап 610 может быть опущен, когда такое преобразование не является необходимым.
Затем на этапе 612 проверяется, необходима ли генерация другого предсказания для компенсации движения. Например, когда должно быть выполнено двунаправленное усреднение, необходимо сгенерировать два предсказания для их усреднения. Если определено, что необходимо другое предсказание, то этот процесс возвращается к этапу 602. На этапе 614, два предсказания усредняются для генерации двунаправленного предсказания. Если двунаправленное усреднение не нужно, то этап 614 пропускается.
На этапе 616, сгенерированное предсказание уменьшается в масштабе и обрезается до достоверного диапазона. Операция уменьшения в масштабе, выполняемая на этапе 616, отменяет операцию увеличения в масштабе, выполняемую на этапе 604, и сдвигает вправо сгенерированное предсказание на то же самое число битов, что и используется для сдвига влево выборок на этапе 604. Является предпочтительным добавить округляющее смещение перед операцией сдвига вправо для округления уменьшенного в масштабе значения по направлению к ближайшему целому. Если это смещение вычитается из выборки на этапе 604, то то же самое смещение добавляется к предсказанию. Достоверный диапазон, до которого обрезается предсказание, обычно задается как {0…255}, где сохраненные опорные выборки имеют ширину 8 битов. Обычно, достоверный диапазон может быть задан как {0…2М-1} для опорных выборок, которые имеют ширину М битов.
В практической реализации данного изобретения, этапы необязательно должны выполняться отдельно, как показано на фиг. 6, и некоторые этапы могут быть скомбинированы. Например, операции сдвига, выполняемые отдельно на этапах фиг. 6, могут быть скомбинированы. Примером является то, что операция сдвига вправо, включенная в двунаправленное усреднение, выполняемое на этапе 614, и операция сдвига вправо, включенная в уменьшение в масштабе, выполняемая на этапе 616, могут быть скомбинированы. Далее, множественные функции или схемы могут быть реализованы для обстоятельств, когда процессы могут быть упрощены, например, когда нет дробных смещений и, таким образом, FIR фильтрация не требуется.
Фиг. 8 показывает функциональные модули видеодекодера 301, который обычно обозначается ссылочной позицией 800 на фиг. 8. Эти функциональные модули реализуются процессором 101, выполняющим программное обеспечение 103 в памяти 102. На фиг. 8, блок 810 энтропийного декодирования получает битовый поток BS, выданный устройством 400 кодирования движущегося изображения, и выполняет обработку энтропийного декодирования этого битового потока. Блок 810 энтропийного декодирования затем выдает квантованные коэффициенты преобразования QC для блока 820 обратного квантования/обратного преобразования. Блок 810 энтропийного декодирования также выдает вектор движения MV для блока 860 предсказания/компенсации движения. Блок 820 обратного квантования/обратного преобразования выполняет обработку декодирования обратного квантования и обратного DCT преобразования на квантованных коэффициентах преобразования QC. Блок 820 обратного квантования/обратного преобразования затем выдает остаточный сигнал RS.
Сумматор 830 добавляет остаточный сигнал RS к сигналу предсказания PS, полученному от блока 860 компенсации движения, и выдает декодированное изображение для деблокирующего фильтра 840. Деблокирующий фильтр 840 устраняет блочные артефакты из декодированного изображения и сохраняет его в памяти 850 опорных изображений. Это декодированное изображение извлекается из памяти 850 и выдается как выходной сигнал OS.
Блок 860 предсказания/компенсации движения извлекает выборки в опорном изображении, хранимом в памяти 850 опорных изображений, и выполняет интерполяцию дробных выборок, как показано на фиг. 7. Этот блок 860 предсказания/компенсации движения генерирует предсказание на основе вектора движения MV и опорного изображения, на котором была выполнена интерполяция дробных выборок. Таким образом, блок 860 предсказания/компенсации движения выдает сигнал предсказания PS для сумматора 830.
Фиг. 9 является блок-схемой, показывающей высокий уровень процесса декодирования, выполняемого видеодекодером 800. На этапе 902, блок 860 предсказания/компенсации движения генерирует блок предсказания. На этапе 904, блок 820 обратного квантования/обратного преобразования декодирует квантованные коэффициенты преобразования QC и выдает остаточный сигнал RS. На этапе 906, сумматор 830 добавляет остаточный сигнал RS к сигналу предсказания PS.
В то время, как много изменений и модификаций данного изобретения будут, без сомнения, очевидными для специалиста в данной области техники после прочтения вышеизложенного описания, следует понимать, что любой конкретный вариант осуществления, показанный и описанный посредством иллюстрации, никоим образом не предназначен для рассмотрения его как ограничительного. Следовательно, ссылки на подробности различных вариантов осуществления не предназначены для ограничения объема формулы изобретения, которая в себе излагает только те признаки, которые считаются существенными для данного изобретения.

Claims (32)

1. Способ декодирования видео для компенсации движения, выполняемой при межкадровом предсказании для декодирования целевого изображения, причем способ содержит компьютерно-исполняемые этапы, исполняемые процессором видеодекодера для реализации:
декодирования остатка и вектора движения, принятых от кодера;
обращения к вектору движения для извлечения опорной выборки из опорного изображения, сохраненного в памяти опорных изображений, при этом и опорное изображение, сохраненное в памяти опорных изображений, и опорная выборка, извлеченная из опорного изображения, представлены с первой битовой глубиной;
выполнения операции увеличения масштаба и первой интерполяции дробных выборок в первом направлении в отношении извлеченной опорной выборки для генерации первого набора дробных выборок, представленных со второй битовой глубиной, до которой масштаб первой битовой глубины был увеличен с помощью коэффициента увеличения масштаба, при этом вторая битовая глубина является постоянной и установленной равной числу битов, доступных для представления дробной выборки, а коэффициент увеличения масштаба устанавливается равным второй битовой глубине за минусом первой битовой глубины и является переменным, чтобы сохранять вторую битовую глубину постоянной и не зависящей от изменения первой битовой глубины;
выполнения второй интерполяции дробных выборок в отношении упомянутого первого набора дробных выборок во втором направлении для генерации второго набора дробных выборок, представленных со второй битовой глубиной;
обращения к дробным частям вектора движения для получения выборки предсказания из первого и второго наборов дробных выборок, при этом выборка предсказания представлена со второй битовой глубиной;
уменьшения масштаба и ограничения выборки предсказания для генерации изображения предсказания, масштаб которого уменьшен со второй битовой глубины до первой битовой глубины; и
сложения изображения предсказания и остатка для восстановления целевого изображения, представленного с первой битовой глубиной.
2. Способ по п.1, в котором интерполяция дробных выборок применяет фильтр с конечной импульсной характеристикой (FIR) с 8 отводами, имеющий один из следующих трех наборов коэффициентов для генерации четверть-пиксельной выборки:
[-1, 4, -10, 58, 17, -5, 1, 0];
[-1, 4, -11, 40, 40, -11, 4, -1]; и
[0, 1, -5, 17, 58, -10, 4, -1].
3. Способ по п.2, в котором интерполяция дробных выборок содержит усечение каждого отфильтрованного результата так, чтобы дробные выборки представлялись со второй битовой глубиной.
4. Способ по п.3, в котором вторую битовую глубину поддерживают в течение первого и второго процессов дробной интерполяции.
5. Способ по п.3, в котором усечение каждого отфильтрованного результата содержит округление усеченных результатов по направлению к минус бесконечности.
6. Способ по п.1, дополнительно содержащий вычитание смещения из увеличенных в масштабе выборок.
7. Способ кодирования видео для компенсации движения, выполняемой при межкадровом предсказании, причем способ содержит компьютерно-исполняемые этапы, исполняемые процессором видеокодера для реализации:
сравнения целевого изображения и опорного изображения, сохраненного в памяти опорных изображений, для оценки вектора движения, при этом опорное изображение, сохраненное в упомянутой памяти изображений, представлено с первой битовой глубиной;
обращения к вектору движения для извлечения опорной выборки из опорного изображения, при этом опорная выборка, извлеченная из опорного изображения, представлена с первой битовой глубиной;
выполнения операции увеличения масштаба и первой интерполяции дробных выборок в первом направлении в отношении извлеченной опорной выборки для генерации первого набора дробных выборок, представленных со второй битовой глубиной, до которой масштаб первой битовой глубины был увеличен с помощью коэффициента увеличения масштаба, при этом вторая битовая глубина является постоянной и установленной равной числу битов, доступных для представления дробной выборки, а коэффициент увеличения масштаба устанавливается равным второй битовой глубине за минусом первой битовой глубины и является переменным, чтобы сохранять вторую битовую глубину постоянной и не зависящей от изменения первой битовой глубины;
выполнения второй интерполяции дробных выборок в отношении упомянутого первого набора дробных выборок во втором направлении для генерации второго набора дробных выборок, представленных со второй битовой глубиной;
обращения к дробным частям векторов движения для получения выборки предсказания из первого и второго наборов дробных выборок, при этом выборка предсказания представлена со второй битовой глубиной;
уменьшения масштаба и ограничения выборки предсказания для генерации изображения предсказания, масштаб которого уменьшен со второй битовой глубины до первой битовой глубины; и
вычитания изображения предсказания из целевого изображения, чтобы получить остаток для кодирования.
8. Способ по п.7, в котором интерполяция дробных выборок применяет фильтр с конечной импульсной характеристикой (FIR) с 8 отводами, имеющий один из следующих трех наборов коэффициентов для генерации четверть-пиксельной выборки:
[-1, 4, -10, 58, 17, -5, 1, 0];
[-1, 4, -11, 40, 40, -11, 4, -1]; и
[0, 1, -5, 17, 58, -10, 4, -1].
9. Способ по п.8, в котором интерполяция дробных выборок содержит усечение каждого отфильтрованного результата так, чтобы дробные выборки представлялись со второй битовой глубиной.
10. Способ по п.9, в котором вторую битовую глубину поддерживают в течение первого и второго процессов интерполяции.
11. Способ по п.10, в котором усечение каждого отфильтрованного результата содержит округление усеченных результатов по направлению к минус бесконечности.
12. Способ по п.8, дополнительно содержащий вычитание смещения из увеличенных в масштабе выборок.
RU2019108127A 2011-06-24 2019-03-21 Способ и устройство для компенсации движения с предсказанием RU2721004C1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161501112P 2011-06-24 2011-06-24
US61/501,112 2011-06-24

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2018128280A Division RU2683591C1 (ru) 2011-06-24 2018-08-02 Способ и устройство для компенсации движения с предсказанием

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2020114956A Division RU2739499C1 (ru) 2011-06-24 2020-04-28 Способ декодирования видео для компенсации движения

Publications (1)

Publication Number Publication Date
RU2721004C1 true RU2721004C1 (ru) 2020-05-15

Family

ID=47422960

Family Applications (7)

Application Number Title Priority Date Filing Date
RU2014102188/07A RU2559839C1 (ru) 2011-06-24 2012-06-22 Способ и устройство для компенсации движения с предсказанием
RU2015113433/07A RU2584546C2 (ru) 2011-06-24 2012-06-22 Способ и устройство для компенсации движения с предсказанием
RU2016113727A RU2634703C2 (ru) 2011-06-24 2016-04-11 Способ и устройство для компенсации движения с предсказанием
RU2017136064A RU2664389C1 (ru) 2011-06-24 2017-10-11 Способ и устройство для компенсации движения с предсказанием
RU2018128280A RU2683591C1 (ru) 2011-06-24 2018-08-02 Способ и устройство для компенсации движения с предсказанием
RU2019108127A RU2721004C1 (ru) 2011-06-24 2019-03-21 Способ и устройство для компенсации движения с предсказанием
RU2020114956A RU2739499C1 (ru) 2011-06-24 2020-04-28 Способ декодирования видео для компенсации движения

Family Applications Before (5)

Application Number Title Priority Date Filing Date
RU2014102188/07A RU2559839C1 (ru) 2011-06-24 2012-06-22 Способ и устройство для компенсации движения с предсказанием
RU2015113433/07A RU2584546C2 (ru) 2011-06-24 2012-06-22 Способ и устройство для компенсации движения с предсказанием
RU2016113727A RU2634703C2 (ru) 2011-06-24 2016-04-11 Способ и устройство для компенсации движения с предсказанием
RU2017136064A RU2664389C1 (ru) 2011-06-24 2017-10-11 Способ и устройство для компенсации движения с предсказанием
RU2018128280A RU2683591C1 (ru) 2011-06-24 2018-08-02 Способ и устройство для компенсации движения с предсказанием

Family Applications After (1)

Application Number Title Priority Date Filing Date
RU2020114956A RU2739499C1 (ru) 2011-06-24 2020-04-28 Способ декодирования видео для компенсации движения

Country Status (17)

Country Link
US (4) US9860532B2 (ru)
EP (6) EP3367687B1 (ru)
JP (7) JP5625139B2 (ru)
KR (5) KR101855975B1 (ru)
CN (5) CN106878734B (ru)
AU (6) AU2012272779B2 (ru)
BR (1) BR112013032716B1 (ru)
CA (5) CA2839704C (ru)
DK (1) DK3826307T3 (ru)
ES (6) ES2847955T3 (ru)
FI (1) FI3826307T3 (ru)
HU (4) HUE053980T2 (ru)
MX (3) MX337794B (ru)
PL (6) PL3826307T3 (ru)
PT (6) PT3367687T (ru)
RU (7) RU2559839C1 (ru)
WO (1) WO2012177961A1 (ru)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3367687T (pt) 2011-06-24 2021-04-26 Ntt Docomo Inc Método e aparelho para a previsão da compensação de movimento
CA2976108C (en) * 2011-06-28 2020-06-30 Samsung Electronics Co., Ltd. Method for image interpolation using asymmetric interpolation filter and apparatus therefor
JP2016519854A (ja) 2013-04-05 2016-07-07 シャープ株式会社 色ビット深度スケーリングを用いたビデオ圧縮
CN104618680B (zh) * 2015-01-21 2017-09-05 北京瀚景锦河科技有限公司 一种视频分辨率的压缩方法
US10257524B2 (en) * 2015-07-01 2019-04-09 Mediatek Inc. Residual up-sampling apparatus for performing transform block up-sampling and residual down-sampling apparatus for performing transform block down-sampling
WO2019072368A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT
CN112422976B (zh) * 2019-08-23 2024-04-16 北京大学 一种视频编码标准中的亮度分量运动补偿方法及视频编码方法
EP4011077A4 (en) 2019-09-13 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SAMPLE WEIGHTED BIDIRECTIONAL PREDICTION IN VIDEO CODING
WO2021061322A1 (en) * 2019-09-24 2021-04-01 Alibaba Group Holding Limited Motion compensation methods for video coding
EP4029250A4 (en) * 2019-09-30 2023-01-04 Huawei Technologies Co., Ltd. INTERPOLATION FILTER FOR INTER PREDICTION DEVICE AND VIDEO CODING METHOD
US11523112B2 (en) 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1353514A2 (en) * 2002-04-10 2003-10-15 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
RU2317654C2 (ru) * 2001-09-17 2008-02-20 Нокиа Корпорейшн Способ интерполяции значений подпикселов
WO2010143583A1 (ja) * 2009-06-09 2010-12-16 ソニー株式会社 画像処理装置および方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69835431T2 (de) * 1997-06-03 2007-06-06 Hitachi, Ltd. Bildkodier-und-dekodierverfahren und-vorrichtung
JPH1169345A (ja) * 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
KR100739281B1 (ko) * 2000-02-21 2007-07-12 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
DE10022264A1 (de) 2000-05-08 2001-11-22 Micronas Munich Gmbh Videosignal-Decoder und Verfahren zur Beseitigung von Bildstörungen in einem Videobild
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
JP4161676B2 (ja) 2002-10-18 2008-10-08 ソニー株式会社 信号処理装置、その方法およびそのプログラム
WO2005104564A1 (ja) * 2004-04-21 2005-11-03 Matsushita Electric Industrial Co., Ltd. 動き補償装置
US8731054B2 (en) * 2004-05-04 2014-05-20 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
EP1617672A1 (en) * 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
CA2584765A1 (en) * 2004-10-21 2006-05-04 Sony Electonics Inc. Supporting fidelity range extensions in advanced video codec file format
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
CN101326752B (zh) 2005-12-08 2013-02-13 皇家飞利浦电子股份有限公司 用于具有自适应保护间隔的单载波块传输的系统、设备和方法
KR100772390B1 (ko) * 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
WO2007114368A1 (ja) 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
JP5039142B2 (ja) * 2006-10-25 2012-10-03 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 品質スケーラブルな符号化方法
CN100551073C (zh) * 2006-12-05 2009-10-14 华为技术有限公司 编解码方法及装置、分像素插值处理方法及装置
EP2127391A2 (en) * 2007-01-09 2009-12-02 Nokia Corporation Adaptive interpolation filters for video coding
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
CN100568920C (zh) * 2007-07-24 2009-12-09 浙江大学 串行输入并行输出的视频图像亮度插值的方法和装置
US8819095B2 (en) * 2007-08-28 2014-08-26 Qualcomm Incorporated Fast computation of products by dyadic fractions with sign-symmetric rounding errors
CN100562114C (zh) * 2007-08-30 2009-11-18 上海交通大学 视频解码方法与解码装置
US8208560B2 (en) * 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
US8204333B2 (en) * 2007-10-15 2012-06-19 Intel Corporation Converting video and image signal bit depths
EP2210421A4 (en) * 2007-10-16 2013-12-04 Lg Electronics Inc METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
ES2602100T3 (es) * 2008-04-16 2017-02-17 Ge Video Compression, Llc Escalabilidad de profundidad de bits
US9326004B2 (en) * 2008-06-03 2016-04-26 Broadcom Corporation Reduced memory mode video decode
JP5697301B2 (ja) * 2008-10-01 2015-04-08 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム
JP5416271B2 (ja) * 2009-04-20 2014-02-12 ドルビー ラボラトリーズ ライセンシング コーポレイション 多層映像配信のための適応補間フィルタ
JP2011061320A (ja) * 2009-09-07 2011-03-24 Sony Corp 動き補償装置、符号化装置、復号装置、これらにおける処理方法およびプログラム
CN101715125B (zh) * 2009-09-11 2011-09-28 中山大学 一种用于h.264视频编码的联合分数点运动估计和插值方法
WO2011086672A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
CN101778280B (zh) * 2010-01-14 2011-09-28 山东大学 一种基于avs运动补偿亮度插值运算的电路及方法
JP5323252B2 (ja) 2010-03-30 2013-10-23 株式会社東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
GB201007351D0 (en) * 2010-04-30 2010-06-16 Imagination Tech Ltd Varying temporal interpolation in a motion compensated frame interpolation system
US9317896B2 (en) 2010-07-09 2016-04-19 Samsung Electronics Co., Ltd. Image interpolation method and apparatus
US9036706B2 (en) * 2011-06-22 2015-05-19 Google Inc. Fractional pixel interpolation filter for video compression
PT3367687T (pt) * 2011-06-24 2021-04-26 Ntt Docomo Inc Método e aparelho para a previsão da compensação de movimento

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2317654C2 (ru) * 2001-09-17 2008-02-20 Нокиа Корпорейшн Способ интерполяции значений подпикселов
EP1353514A2 (en) * 2002-04-10 2003-10-15 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
WO2010143583A1 (ja) * 2009-06-09 2010-12-16 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Thomas Wiegand, WD3: Working Draft 3 of High-Efficiency Video Coding, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-E603, 5th Meeting: Geneva, 16-23 March 2011. *
Thomas Wiegand, WD3: Working Draft 3 of High-Efficiency Video Coding, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-E603, 5th Meeting: Geneva, 16-23 March 2011. Yan Ye et al, High Precision Interpolation and Prediction, ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG), VCEG-AI33, 35th Meeting: Berlin, Germany, 16-18 July 2008. *
Yan Ye et al, High Precision Interpolation and Prediction, ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG), VCEG-AI33, 35th Meeting: Berlin, Germany, 16-18 July 2008 *

Also Published As

Publication number Publication date
JP2017098984A (ja) 2017-06-01
RU2739499C1 (ru) 2020-12-25
AU2019240711B2 (en) 2020-12-24
JP6707678B2 (ja) 2020-06-10
MX352293B (es) 2017-11-17
ES2683857T3 (es) 2018-09-28
HUE053960T2 (hu) 2021-08-30
CN103650490A (zh) 2014-03-19
EP3367686B1 (en) 2021-01-13
AU2012272779A1 (en) 2013-11-28
US20190098320A1 (en) 2019-03-28
PT3751856T (pt) 2023-08-17
PL3367687T3 (pl) 2021-08-02
AU2016256712B2 (en) 2018-04-26
US10171816B2 (en) 2019-01-01
PL3367686T3 (pl) 2021-06-28
PL2916549T3 (pl) 2018-10-31
ES2822248T3 (es) 2021-04-29
EP3367686A1 (en) 2018-08-29
RU2664389C1 (ru) 2018-08-17
EP3367687A1 (en) 2018-08-29
PT2916549T (pt) 2018-10-04
CN104967851A (zh) 2015-10-07
US20190098319A1 (en) 2019-03-28
MX2013014726A (es) 2014-02-27
RU2014102188A (ru) 2015-07-27
CN106162187A (zh) 2016-11-23
BR112013032716A2 (pt) 2017-01-24
EP2724540A1 (en) 2014-04-30
HUE064092T2 (hu) 2024-02-28
PL3751856T3 (pl) 2023-10-09
JP2014520488A (ja) 2014-08-21
KR20160079931A (ko) 2016-07-06
PL2724540T3 (pl) 2021-04-19
KR20180049218A (ko) 2018-05-10
KR101988409B1 (ko) 2019-06-12
HUE062673T2 (hu) 2023-12-28
RU2016113727A (ru) 2017-10-16
US20140119442A1 (en) 2014-05-01
EP2724540B1 (en) 2020-09-16
CA2839704C (en) 2018-05-01
ES2953082T3 (es) 2023-11-08
AU2012272779B2 (en) 2016-09-08
DK3826307T3 (da) 2023-11-06
AU2016256712A1 (en) 2016-11-24
JP2018082459A (ja) 2018-05-24
CN103650490B (zh) 2017-04-05
CA3083886A1 (en) 2012-12-27
JP2014222941A (ja) 2014-11-27
CA3158173A1 (en) 2012-12-27
CA3083886C (en) 2022-06-28
EP2916549B1 (en) 2018-07-18
KR20170070262A (ko) 2017-06-21
AU2018204505A1 (en) 2018-07-12
WO2012177961A1 (en) 2012-12-27
CA2997877A1 (en) 2012-12-27
KR101855975B1 (ko) 2018-05-09
JP5625139B2 (ja) 2014-11-12
JP2020145723A (ja) 2020-09-10
CA2904551A1 (en) 2012-12-27
JP6467030B2 (ja) 2019-02-06
ES2847955T3 (es) 2021-08-04
AU2018204503B2 (en) 2019-07-18
AU2020294315B2 (en) 2021-11-04
EP2724540A4 (en) 2014-11-05
US10721481B2 (en) 2020-07-21
BR112013032716B1 (pt) 2020-11-03
JP6101327B2 (ja) 2017-03-22
AU2019240711A1 (en) 2019-10-24
HUE053980T2 (hu) 2021-08-30
RU2584546C2 (ru) 2016-05-20
RU2683591C1 (ru) 2019-03-29
KR101748810B1 (ko) 2017-06-19
CA2839704A1 (en) 2012-12-27
RU2634703C2 (ru) 2017-11-03
JP6900547B2 (ja) 2021-07-07
PT3367686T (pt) 2021-02-08
RU2015113433A (ru) 2015-09-10
CN106878734B (zh) 2019-11-05
JP2016015761A (ja) 2016-01-28
FI3826307T3 (fi) 2023-10-18
EP2916549A1 (en) 2015-09-09
AU2018204503A1 (en) 2018-07-12
US10735746B2 (en) 2020-08-04
ES2869948T3 (es) 2021-10-26
JP5865965B2 (ja) 2016-02-17
AU2012272779A8 (en) 2013-12-12
AU2018204505B2 (en) 2019-07-18
EP3751856B1 (en) 2023-07-12
KR20140026557A (ko) 2014-03-05
PT3826307T (pt) 2023-10-19
CN104967851B (zh) 2018-06-29
EP3367687B1 (en) 2021-04-07
CN106162187B (zh) 2019-06-25
CA2997877C (en) 2020-08-04
MX337794B (es) 2016-03-18
EP3826307A1 (en) 2021-05-26
AU2020294315A1 (en) 2021-02-18
CN107105263B (zh) 2019-04-26
KR101662654B1 (ko) 2016-10-05
CA2904551C (en) 2018-05-01
CN106878734A (zh) 2017-06-20
EP3751856A1 (en) 2020-12-16
KR101747122B1 (ko) 2017-06-14
US9860532B2 (en) 2018-01-02
CN107105263A (zh) 2017-08-29
AU2019240711C1 (en) 2021-04-15
ES2963964T3 (es) 2024-04-03
PT2724540T (pt) 2020-10-19
PL3826307T3 (pl) 2024-01-29
EP2724540B8 (en) 2020-11-04
KR20160082268A (ko) 2016-07-08
JP2019071661A (ja) 2019-05-09
PT3367687T (pt) 2021-04-26
EP3826307B1 (en) 2023-10-04
US20180054622A1 (en) 2018-02-22
JP6271697B2 (ja) 2018-01-31
RU2559839C1 (ru) 2015-08-10

Similar Documents

Publication Publication Date Title
RU2721004C1 (ru) Способ и устройство для компенсации движения с предсказанием