RU2584546C2 - Способ и устройство для компенсации движения с предсказанием - Google Patents
Способ и устройство для компенсации движения с предсказанием Download PDFInfo
- Publication number
- RU2584546C2 RU2584546C2 RU2015113433/07A RU2015113433A RU2584546C2 RU 2584546 C2 RU2584546 C2 RU 2584546C2 RU 2015113433/07 A RU2015113433/07 A RU 2015113433/07A RU 2015113433 A RU2015113433 A RU 2015113433A RU 2584546 C2 RU2584546 C2 RU 2584546C2
- Authority
- RU
- Russia
- Prior art keywords
- samples
- fractional
- bit depth
- interpolation
- prediction
- 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/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
-
- 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
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/184—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 bits, e.g. of the compressed video stream
-
- 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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- 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/59—Methods 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
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details 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 н. и 12 з.п. ф-лы, 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, выводятся посредством следующих интерполяционных равенств:
Дробная часть горизонтального компонента вектора движения определяет, какая выборка выводится. Например, если дробная часть равна ¼, то выводится а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 выводится посредством следующих интерполяционных равенств:
Дробные части горизонтального и вертикального компонентов вектора движения определяют, какая выборка выводится. Например, если горизонтальная дробная часть равна 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 (14)
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].
извлечения эталонных выборок из памяти эталонных изображений;
применения первой интерполяции дробных выборок к извлеченным выборкам в первом направлении для генерации первого набора дробных выборок; и
применения второй интерполяции дробных выборок к первому набору дробных выборок во втором направлении для генерации второго набора дробных выборок,
причем эталонные выборки представлены с первой битовой глубиной, а первый набор дробных выборок представлен со второй битовой глубиной, которая является постоянной независимо от первой битовой глубины эталонных выборок; и
причем при интерполяции дробных выборок применяют фильтр с конечной импульсной характеристикой (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].
2. Способ по п. 1, в котором интерполяция дробных выборок содержит усечение каждого из отфильтрованных результатов таким образом, что дробные выборки имеют желаемую точность.
3. Способ по п. 2, в котором желаемая точность является
постоянной по первому и второму процессам дробной интерполяции.
постоянной по первому и второму процессам дробной интерполяции.
4. Способ по п. 2, в котором усечение каждого из отфильтрованных результатов содержит округление усеченных результатов по направлению к минус бесконечности.
5. Способ по любому из пп. 1-4, в котором первая битовая глубина эталонных выборок задана равной 8 или 10.
6. Способ по любому из пп. 1-4, в котором вторая битовая глубина задана равной 14.
7. Способ по п. 5, в котором вторая битовая глубина задана равной 14.
8. Устройство декодирования видео для компенсации движения, выполняемой при межкадровом предсказании, причем устройство содержит:
память эталонов, содержащую эталонные изображения, и
блок предсказания/компенсации движения, соединенный с памятью эталонов и выполненный с возможностью:
извлечения эталонных выборок из памяти эталонных изображений;
применения первой интерполяции дробных выборок к извлеченным выборкам в первом направлении для генерации первого набора дробных выборок; и
применения второй интерполяции дробных выборок к первому набору дробных выборок во втором направлении для генерации второго набора дробных выборок,
причем эталонные выборки представлены с первой битовой глубиной, а первый набор дробных выборок представлен со второй битовой глубиной, которая является постоянной независимо от
первой битовой глубины эталонных выборок; и
причем при интерполяции дробных выборок применяется фильтр с конечной импульсной характеристикой (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].
память эталонов, содержащую эталонные изображения, и
блок предсказания/компенсации движения, соединенный с памятью эталонов и выполненный с возможностью:
извлечения эталонных выборок из памяти эталонных изображений;
применения первой интерполяции дробных выборок к извлеченным выборкам в первом направлении для генерации первого набора дробных выборок; и
применения второй интерполяции дробных выборок к первому набору дробных выборок во втором направлении для генерации второго набора дробных выборок,
причем эталонные выборки представлены с первой битовой глубиной, а первый набор дробных выборок представлен со второй битовой глубиной, которая является постоянной независимо от
первой битовой глубины эталонных выборок; и
причем при интерполяции дробных выборок применяется фильтр с конечной импульсной характеристикой (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. Устройство по п. 9, в котором усечение каждого из отфильтрованных результатов содержит округление усеченных результатов по направлению к минус бесконечности.
12. Устройство по любому из пп. 8-11, в котором первая битовая глубина эталонных выборок задана равной 8 или 10.
13. Устройство по любому из пп. 8-11, в котором вторая битовая глубина задана равной 14.
14. Устройство по п. 12, в котором вторая битовая глубина задана равной 14.
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 |
---|---|---|---|
RU2014102188/07A Division RU2559839C1 (ru) | 2011-06-24 | 2012-06-22 | Способ и устройство для компенсации движения с предсказанием |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016113727A Division RU2634703C2 (ru) | 2011-06-24 | 2016-04-11 | Способ и устройство для компенсации движения с предсказанием |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2015113433A RU2015113433A (ru) | 2015-09-10 |
RU2584546C2 true RU2584546C2 (ru) | 2016-05-20 |
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 (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014102188/07A RU2559839C1 (ru) | 2011-06-24 | 2012-06-22 | Способ и устройство для компенсации движения с предсказанием |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | Способ декодирования видео для компенсации движения |
Country Status (17)
Country | Link |
---|---|
US (4) | US9860532B2 (ru) |
EP (6) | EP3367687B1 (ru) |
JP (7) | JP5625139B2 (ru) |
KR (5) | KR101855975B1 (ru) |
CN (5) | CN107105263B (ru) |
AU (6) | AU2012272779B2 (ru) |
BR (1) | BR112013032716B1 (ru) |
CA (5) | CA2839704C (ru) |
DK (1) | DK3826307T3 (ru) |
ES (6) | ES2869948T3 (ru) |
FI (1) | FI3826307T3 (ru) |
HU (4) | HUE062673T2 (ru) |
MX (3) | MX352293B (ru) |
PL (6) | PL3367687T3 (ru) |
PT (6) | PT2724540T (ru) |
RU (7) | RU2559839C1 (ru) |
WO (1) | WO2012177961A1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2689129C1 (ru) * | 2011-06-28 | 2019-05-24 | Самсунг Электроникс Ко., Лтд. | Способ для интерполяции изображений с использованием асимметричного интерполяционного фильтра и устройство для этого |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107105263B (zh) | 2011-06-24 | 2019-04-26 | 株式会社Ntt都科摩 | 用于在帧间预测下执行的运动补偿的视频解码方法和装置 |
WO2014162736A1 (en) | 2013-04-05 | 2014-10-09 | Sharp Kabushiki Kaisha | Video compression with color bit depth scaling |
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 | 北京大学 | 一种视频编码标准中的亮度分量运动补偿方法及视频编码方法 |
CN114402591B (zh) | 2019-09-13 | 2024-08-02 | 北京字节跳动网络技术有限公司 | 并置运动矢量的推导 |
KR20220063272A (ko) | 2019-09-24 | 2022-05-17 | 알리바바 그룹 홀딩 리미티드 | 비디오 코딩을 위한 움직임 보상 방법 |
JP7534395B2 (ja) * | 2019-09-30 | 2024-08-14 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | インター予測装置用の補間フィルタおよびビデオコーディングのための方法 |
US11523112B2 (en) * | 2020-04-09 | 2022-12-06 | Tencent America LLC | Intra coding with L-type partitioning tree |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2317654C2 (ru) * | 2001-09-17 | 2008-02-20 | Нокиа Корпорейшн | Способ интерполяции значений подпикселов |
EP2091258A1 (en) * | 2006-12-05 | 2009-08-19 | Huawei Technologies Co Ltd | An encoding/decoding method and device, a fractional pixel interpolation processing method and device |
WO2009126911A1 (en) * | 2008-04-10 | 2009-10-15 | Qualcomm Incorporated | Prediction techniques for interpolation in video coding |
WO2010143583A1 (ja) * | 2009-06-09 | 2010-12-16 | ソニー株式会社 | 画像処理装置および方法 |
Family Cites Families (41)
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 |
US7620109B2 (en) | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
JP4161676B2 (ja) | 2002-10-18 | 2008-10-08 | ソニー株式会社 | 信号処理装置、その方法およびそのプログラム |
US20040076333A1 (en) * | 2002-10-22 | 2004-04-22 | Huipin Zhang | Adaptive interpolation filter system for motion compensated predictive video coding |
US8284835B2 (en) * | 2004-04-21 | 2012-10-09 | Panasonic Corporation | Motion compensating apparatus |
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 |
AU2005299534A1 (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 |
JP5111392B2 (ja) | 2005-12-08 | 2013-01-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 適応ガード・インターバルを備えた単一キャリア・ブロック送信のためのシステム、装置及び方法 |
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 | 画像符号化装置及び方法並びに画像復号化装置及び方法 |
CN101589625B (zh) * | 2006-10-25 | 2011-09-21 | 弗劳恩霍夫应用研究促进协会 | 质量可缩放编码 |
WO2008084378A2 (en) * | 2007-01-09 | 2008-07-17 | 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 | 上海交通大学 | 视频解码方法与解码装置 |
US8204333B2 (en) * | 2007-10-15 | 2012-06-19 | Intel Corporation | Converting video and image signal bit depths |
US8208560B2 (en) * | 2007-10-15 | 2012-06-26 | Intel Corporation | Bit depth enhancement for scalable video coding |
KR102139535B1 (ko) * | 2007-10-16 | 2020-07-30 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
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 |
HUE024173T2 (en) * | 2008-04-16 | 2016-05-30 | Ge Video Compression Llc | Bit depth scalability |
US9326004B2 (en) * | 2008-06-03 | 2016-04-26 | Broadcom Corporation | Reduced memory mode video decode |
JP5697301B2 (ja) * | 2008-10-01 | 2015-04-08 | 株式会社Nttドコモ | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム |
EP2422520A1 (en) * | 2009-04-20 | 2012-02-29 | Dolby Laboratories Licensing Corporation | Adaptive interpolation filters for multi-layered video delivery |
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运动补偿亮度插值运算的电路及方法 |
WO2011121716A1 (ja) | 2010-03-30 | 2011-10-06 | 株式会社 東芝 | 動画像符号化方法、復号化方法、符号化装置および復号化装置 |
GB201007351D0 (en) * | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Varying temporal interpolation in a motion compensated frame interpolation system |
KR101686945B1 (ko) | 2010-07-09 | 2016-12-15 | 삼성전자주식회사 | 영상 보간 방법 및 장치 |
EP2724532A1 (en) * | 2011-06-22 | 2014-04-30 | Motorola Mobility LLC | Fractional pixel interpolation filter for video compression |
CN107105263B (zh) * | 2011-06-24 | 2019-04-26 | 株式会社Ntt都科摩 | 用于在帧间预测下执行的运动补偿的视频解码方法和装置 |
-
2012
- 2012-06-22 CN CN201710221171.0A patent/CN107105263B/zh active Active
- 2012-06-22 ES ES18168744T patent/ES2869948T3/es active Active
- 2012-06-22 MX MX2016003463A patent/MX352293B/es unknown
- 2012-06-22 CN CN201280031173.9A patent/CN103650490B/zh active Active
- 2012-06-22 CA CA2839704A patent/CA2839704C/en active Active
- 2012-06-22 KR KR1020177015861A patent/KR101855975B1/ko active IP Right Grant
- 2012-06-22 PT PT128034899T patent/PT2724540T/pt unknown
- 2012-06-22 CN CN201710221139.2A patent/CN106878734B/zh active Active
- 2012-06-22 ES ES12803489T patent/ES2822248T3/es active Active
- 2012-06-22 WO PCT/US2012/043674 patent/WO2012177961A1/en active Application Filing
- 2012-06-22 JP JP2014517194A patent/JP5625139B2/ja active Active
- 2012-06-22 PT PT15163455T patent/PT2916549T/pt unknown
- 2012-06-22 PL PL18168744T patent/PL3367687T3/pl unknown
- 2012-06-22 PT PT181687443T patent/PT3367687T/pt unknown
- 2012-06-22 KR KR1020137032807A patent/KR101662654B1/ko active IP Right Grant
- 2012-06-22 PL PL12803489T patent/PL2724540T3/pl unknown
- 2012-06-22 ES ES15163455.7T patent/ES2683857T3/es active Active
- 2012-06-22 PL PL21152044.0T patent/PL3826307T3/pl unknown
- 2012-06-22 CN CN201610804839.XA patent/CN106162187B/zh active Active
- 2012-06-22 EP EP18168744.3A patent/EP3367687B1/en active Active
- 2012-06-22 CA CA2997877A patent/CA2997877C/en active Active
- 2012-06-22 DK DK21152044.0T patent/DK3826307T3/da active
- 2012-06-22 ES ES21152044T patent/ES2963964T3/es active Active
- 2012-06-22 EP EP15163455.7A patent/EP2916549B1/en active Active
- 2012-06-22 PL PL15163455T patent/PL2916549T3/pl unknown
- 2012-06-22 CN CN201510462973.1A patent/CN104967851B/zh active Active
- 2012-06-22 EP EP18168716.1A patent/EP3367686B1/en active Active
- 2012-06-22 ES ES20181965T patent/ES2953082T3/es active Active
- 2012-06-22 FI FIEP21152044.0T patent/FI3826307T3/fi active
- 2012-06-22 MX MX2015010842A patent/MX337794B/es unknown
- 2012-06-22 CA CA2904551A patent/CA2904551C/en active Active
- 2012-06-22 PT PT211520440T patent/PT3826307T/pt unknown
- 2012-06-22 CA CA3083886A patent/CA3083886C/en active Active
- 2012-06-22 PT PT201819653T patent/PT3751856T/pt unknown
- 2012-06-22 EP EP12803489.9A patent/EP2724540B8/en active Active
- 2012-06-22 PL PL20181965.3T patent/PL3751856T3/pl unknown
- 2012-06-22 MX MX2013014726A patent/MX2013014726A/es active IP Right Grant
- 2012-06-22 KR KR1020167017302A patent/KR101748810B1/ko active IP Right Grant
- 2012-06-22 EP EP21152044.0A patent/EP3826307B1/en active Active
- 2012-06-22 EP EP20181965.3A patent/EP3751856B1/en active Active
- 2012-06-22 KR KR1020167017300A patent/KR101747122B1/ko active IP Right Grant
- 2012-06-22 KR KR1020187012281A patent/KR101988409B1/ko active IP Right Grant
- 2012-06-22 HU HUE20181965A patent/HUE062673T2/hu unknown
- 2012-06-22 US US14/126,734 patent/US9860532B2/en active Active
- 2012-06-22 HU HUE21152044A patent/HUE064092T2/hu unknown
- 2012-06-22 HU HUE18168744A patent/HUE053960T2/hu unknown
- 2012-06-22 RU RU2014102188/07A patent/RU2559839C1/ru active
- 2012-06-22 ES ES18168716T patent/ES2847955T3/es active Active
- 2012-06-22 BR BR112013032716-2A patent/BR112013032716B1/pt active IP Right Grant
- 2012-06-22 AU AU2012272779A patent/AU2012272779B2/en active Active
- 2012-06-22 HU HUE18168716A patent/HUE053980T2/hu unknown
- 2012-06-22 CA CA3158173A patent/CA3158173A1/en active Pending
- 2012-06-22 PT PT181687161T patent/PT3367686T/pt unknown
- 2012-06-22 PL PL18168716T patent/PL3367686T3/pl unknown
- 2012-06-22 RU RU2015113433/07A patent/RU2584546C2/ru active
-
2014
- 2014-07-25 JP JP2014152268A patent/JP5865965B2/ja active Active
-
2015
- 2015-09-09 JP JP2015177699A patent/JP6101327B2/ja active Active
-
2016
- 2016-04-11 RU RU2016113727A patent/RU2634703C2/ru active
- 2016-11-09 AU AU2016256712A patent/AU2016256712B2/en active Active
- 2016-12-26 JP JP2016251782A patent/JP6271697B2/ja active Active
-
2017
- 2017-10-11 RU RU2017136064A patent/RU2664389C1/ru active
- 2017-10-27 US US15/795,658 patent/US10171816B2/en active Active
- 2017-12-27 JP JP2017251054A patent/JP6467030B2/ja active Active
-
2018
- 2018-06-21 AU AU2018204505A patent/AU2018204505B2/en active Active
- 2018-06-21 AU AU2018204503A patent/AU2018204503B2/en active Active
- 2018-08-02 RU RU2018128280A patent/RU2683591C1/ru active
- 2018-11-30 US US16/206,664 patent/US10721481B2/en active Active
- 2018-11-30 US US16/206,672 patent/US10735746B2/en active Active
-
2019
- 2019-01-10 JP JP2019002663A patent/JP6707678B2/ja active Active
- 2019-03-21 RU RU2019108127A patent/RU2721004C1/ru active
- 2019-10-04 AU AU2019240711A patent/AU2019240711C1/en active Active
-
2020
- 2020-04-28 RU RU2020114956A patent/RU2739499C1/ru active
- 2020-05-20 JP JP2020088029A patent/JP6900547B2/ja active Active
- 2020-12-24 AU AU2020294315A patent/AU2020294315B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2317654C2 (ru) * | 2001-09-17 | 2008-02-20 | Нокиа Корпорейшн | Способ интерполяции значений подпикселов |
EP2091258A1 (en) * | 2006-12-05 | 2009-08-19 | Huawei Technologies Co Ltd | An encoding/decoding method and device, a fractional pixel interpolation processing method and device |
WO2009126911A1 (en) * | 2008-04-10 | 2009-10-15 | Qualcomm Incorporated | Prediction techniques for interpolation in video coding |
WO2010143583A1 (ja) * | 2009-06-09 | 2010-12-16 | ソニー株式会社 | 画像処理装置および方法 |
Non-Patent Citations (1)
Title |
---|
YURI VATIS et al, Syntax of adaptive filter coefficients in the KTA reference model, JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, VCEG-AF09, 32 Meeting, San Jose, 20-21 April 2007. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2689129C1 (ru) * | 2011-06-28 | 2019-05-24 | Самсунг Электроникс Ко., Лтд. | Способ для интерполяции изображений с использованием асимметричного интерполяционного фильтра и устройство для этого |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2721004C1 (ru) | Способ и устройство для компенсации движения с предсказанием |