RU2491758C2 - Кодирование видеосигналов посредством выбора фильтра - Google Patents

Кодирование видеосигналов посредством выбора фильтра Download PDF

Info

Publication number
RU2491758C2
RU2491758C2 RU2011104078/07A RU2011104078A RU2491758C2 RU 2491758 C2 RU2491758 C2 RU 2491758C2 RU 2011104078/07 A RU2011104078/07 A RU 2011104078/07A RU 2011104078 A RU2011104078 A RU 2011104078A RU 2491758 C2 RU2491758 C2 RU 2491758C2
Authority
RU
Russia
Prior art keywords
filters
frame
filter
alternative
default
Prior art date
Application number
RU2011104078/07A
Other languages
English (en)
Other versions
RU2011104078A (ru
Inventor
Джованни МОТТА
Марта КАРЧЕВИЧ
Янь Е
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2011104078A publication Critical patent/RU2011104078A/ru
Application granted granted Critical
Publication of RU2491758C2 publication Critical patent/RU2491758C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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

Landscapes

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

Abstract

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

Description

Ссылка на родственные заявки
Данная заявка испрашивает приоритет согласно предварительной патентной заявки США № 61/078642, поданной 7 июля 2008 г., содержание которой тем самым полностью включено в документ посредством ссылки.
Область техники, к которой относится изобретение
Это заявка относится к кодированию видеосигналов, более определенно, к техническим приемам интерполирования опорных кадров в системах сжатия видеоизображений.
Описание предшествующего уровня техники
Возможности цифровой видеотехники могут быть встроены в широкий диапазон устройств, которые включают в себя цифровое телевидение, цифровые системы непосредственного вещания, устройства беспроводной связи, персональных цифровых ассистентов (PDA, ПЦА), портативные компьютеры, настольные компьютеры, цифровые камеры, цифровые записывающие устройства, сотовые или спутниковые радиотелефоны и т.п. Эти и другие цифровые видеоустройства могут обеспечивать существенные улучшения по сравнению с общепринятыми аналоговыми видеосистемами в создании, модифицировании, передаче, сохранении, записи и воспроизведении видеопоследовательностей с полноценным движением.
Для передачи цифровых видеопоследовательностей был установлен ряд различных стандартов кодирования видеосигналов. Например, Экспертная группа по вопросам движущегося изображения (MPEG) разработала некоторое количество стандартов, включающих в себя MPEG-1 (стандарт сжатия изображения и звука), MPEG-2 (расширение MPEG-1 для кабельного телевидения и видеодисков DVD (цифровых видеодисков)) и MPEG-4 (стандарт сжатия движущегося изображения и звука, предназначенный для передачи данных с низкой скоростью). Другие стандарты включают в себя ITU (Международный союз по телекоммуникациям) H.263, технологию QuickTime™, разработанную корпорацией Apple Computer Cupertino Calif.; Video for Windows™, разработанную корпорацией Microsoft Corporation of Redmond, Вашингтон; Indeo™, разработанную Корпорацией Intel; RealVideo™ от RealNetworks, Inc., Сиэтл, Вашингтон; и Cinepak, разработанную фирмой SuperMac, Inc. Эти и другие стандарты, включая стандарты, которые еще будут разработаны, продолжают развиваться.
Стандарты кодирования видеосигналов достигают увеличенных скоростей передачи благодаря кодированию данных в сжатой форме. Сжатие может снижать общее количество данных, которое необходимо передавать для эффективной передачи кадров изображения. Стандарты MPEG, например, используют технические приемы сжатия графических изображений и видеоизображений, предназначенные для того, чтобы облегчать передачу видеосигналов и изображений по более узкой полосе пропускания, чем может быть достигнуто без сжатия. В частности, стандарты MPEG включают в себя технические приемы кодирования видеосигналов, которые используют подобия между последовательными кадрами изображений, упоминаемые как временная или межкадровая корреляция, чтобы обеспечивать межкадровое сжатие. Технические приемы межкадрового сжатия используют избыточность данных по кадрам, с использованием компенсированного предсказания движения, то есть выполняются посредством предсказания кадра на основании другого после оценки движения сцены. Кроме того, технические приемы кодирования видеосигналов могут использовать подобия внутри кадров изображения, упоминаемые как пространственная или внутрикадровая корреляция. Сжатие кадров обычно основано на общепринятых процессах сжатия статических изображений, таких как кодирование дискретного косинусного преобразования (DCT, ДКП). Кодирование дискретного косинусного преобразования (DCT) также используется для того, чтобы сжимать компенсированное предсказание движения.
Один метод DCT известен как метод адаптивного дискретного косинусного преобразования размеров блоков (ABSDCT). Этот метод раскрыт в патенте США № 5021891, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Технические приемы DCT также раскрыты в патенте США № 5107345, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Кроме того, использование метода ABSDCT в сочетании с методом дифференциального преобразования дерева квадрантов обсуждается в патенте США № 5452104, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", также переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Раскрытые в этих патентах системы используют то, что упоминается как "внутрикадровое" кодирование, в котором каждый кадр данных изображения кодируется без учета содержимого какого-либо другого кадра. При использовании метода ABSDCT достигаемая скорость передачи данных может быть снижена от, приблизительно, 1,5 миллиарда битов в секунду до, приблизительно, 50 миллионов битов в секунду без заметного ухудшения качества изображения.
Метод ABSDCT может использоваться для того, чтобы сжимать либо черно-белое, либо цветное изображение или сигнал, представляющий изображение. Цветной входной сигнал может быть в формате YIQ, с Y, являющимся выборкой сигнала яркости, или освещенности, и I и Q, являющимися выборками сигнала цветности, или цвета, для каждого из блоков 4 на 4 пикселей (минимальных элементов изображения). Также могут использоваться другие известные форматы, такие как форматы YUV ("яркость - цветность синего - цветность красного"), YC.sub.bC.sub.y или RGB ("зеленый, красный, синий"). Из-за низкой пространственной чувствительности глаза к цвету, большая часть исследований показала, что подвыборка цветовых компонентов с множителем четыре в горизонтальном и вертикальном направлениях является разумной. Соответственно, видеосигнал может быть представлен четырьмя компонентами сигнала яркости и двумя компонентами сигнала цветности.
Чтобы поддерживать технические приемы сжатия, многие цифровые видеоустройства включают в себя кодер для сжатия цифровых видеопоследовательностей и декодер для восстановления сжатых цифровых видеопоследовательностей. Во многих случаях кодер и декодер содержат объединенный кодер/декодер (кодек), оперирующий блоками пикселей в пределах кадров, которые определяют последовательность видеоизображений. В стандарте MPEG-4, например, кодер передающего устройства обычно делит кадр видеоизображения, подлежащий передаче, на макроблоки, содержащие меньшие блоки изображения. Для каждого макроблока в кадре изображения, кодер выполняет поиск макроблоков, непосредственно предшествующих видеокадру, чтобы идентифицировать наиболее подобный макроблок, и кодирует разность между макроблоками для передачи, наряду с вектором движения, указывающим, который макроблок из предыдущего кадра использовался для кодирования. Декодер приемного устройства принимает вектор движения и закодированные разности, и выполняет компенсацию движения, чтобы генерировать видеопоследовательности. Векторы движения могут иметь точности в целый, половину или четверть пикселя, в зависимости от уровня точности, выбранной кодером. Когда используются векторы движения с дробными значениями пикселя, получают блок с наилучшим предсказанием. Интерполяция выполняется так, чтобы определять значения дробных пикселей (подпикселей). В одном примере, значения пикселей включают в себя биты, представляющие интенсивность компонента яркости, цветности или цветового компонента.
Процесс кодирования видеосигналов является интенсивным в вычислительном отношении. В частности процесс сравнивания блоков видеосигналов с предварительно переданными блоками видеосигналов требует больших количеств вычислений. Весьма желательны улучшенные технические приемы кодирования, особенно для использования в беспроводных устройствах или других портативных видеоустройствах, в которых вычислительные ресурсы являются более ограниченными и имеет важность потребляемая мощность.
Раскрытие изобретения
Один вариант осуществления представляет собой способ кодирования цифровых видеосигналов, причем способ включает в себя идентификацию опорного кадра и текущего кадра, интерполирование опорного кадра с использованием устанавливаемого по умолчанию фильтра, чтобы создавать интерполированный по умолчанию кадр, интерполирование опорного кадра с использованием альтернативного фильтра, чтобы создавать альтернативно интерполированный кадр, определение для каждой позиции подпикселя, использовать ли устанавливаемый по умолчанию фильтр или альтернативный фильтр, основываясь на более низкой суммарной погрешности, чтобы генерировать заключительный опорный кадр.
Другой вариант осуществления представляет собой устройство кодирования видеосигналов, включающее в себя модуль компенсации движения, выполненный с возможностью интерполировать первый опорный кадр с использованием устанавливаемого по умолчанию фильтра, чтобы создавать интерполированный по умолчанию кадр, и выполненный с возможностью интерполировать второй опорный кадр с использованием альтернативного фильтра, чтобы создавать альтернативно интерполированный кадр, запоминающее устройство для опорных кадров, выполненное с возможностью сохранять интерполированный по умолчанию кадр и сохранять альтернативно интерполированный кадр, модуль принятия решения относительно фильтров, выполненный с возможностью принимать текущий кадр, принимать интерполированный по умолчанию кадр, принимать альтернативно интерполированный кадр и определять, для каждой позиции целого пикселя и подпикселя, использовать ли в заключительном кадре устанавливаемый по умолчанию фильтр или альтернативный фильтр; и генерировать заключительный кадр.
Еще один вариант осуществления представляет собой устройство кодирования видеосигналов, включающее в себя средство для приема текущего кадра, средство для сохранения множества интерполированных опорных кадров в запоминающем устройстве для опорных кадров, средство для приема множества интерполированных опорных кадров из запоминающего устройства для опорных кадров, средство для создания заключительного кадра и средство для определения для каждой позиции целого пикселя и подпикселя в заключительном кадре, использовать ли устанавливаемый по умолчанию фильтр или альтернативный фильтр.
Другой вариант осуществления представляет собой устройство кодирования видеосигналов, включающее в себя модуль компенсации движения, выполненный с возможностью интерполировать первый опорный кадр с использованием устанавливаемого по умолчанию фильтра, чтобы создавать интерполированный по умолчанию кадр, и выполненный с возможностью интерполировать второй опорный кадр с использованием альтернативного фильтра, чтобы создавать альтернативно интерполированный кадр, модуль принятия решения относительно фильтров, выполненный с возможностью принимать текущий кадр, принимать интерполированный по умолчанию кадр, принимать альтернативно интерполированный кадр, определять, для каждой позиции целого пикселя и подпикселя, использовать ли в заключительном кадре устанавливаемый по умолчанию фильтр или альтернативный фильтр, и генерировать заключительный кадр.
Другой вариант осуществления представляет собой устройство кодирования видеосигналов, включающее в себя средство для приема текущего кадра, средство для приема множества интерполированных опорных кадров, средство для создания заключительного кадра и средство для определения для каждой позиции целого пикселя и подпикселя в заключительном кадре, использовать ли устанавливаемый по умолчанию фильтр или альтернативный фильтр.
Краткое описание чертежей
Вышеизложенные аспекты и многие из сопутствующих преимуществ этой заявки иллюстрируются посредством примера, но не ограничиваясь этим, на прилагаемых чертежах, на которых
Фиг.1 - блок-схема, иллюстрирующая систему кодирования и декодирования видеосигналов.
Фиг.2 - блок-схема, иллюстрирующая видеокодер.
Фиг.3 - блок-схема, иллюстрирующая запоминающее устройство для опорных кадров и модуль принятия решения относительно фильтров.
Фиг.4 - блок-схема последовательности операций способа, описывающая процесс определения наилучшей комбинации фильтров.
Фиг.5 - блок-схема видеокадра, показывающая дробные позиции пикселя для интерполяции.
Фиг.6 - блок-схема, иллюстрирующая оценку движения видеоизображения.
Фиг.7 - блок-схема, иллюстрирующая видеокадр, включающий в себя интра-кадр (внутренний кадр), предсказанный кадр и двунаправленный кадр.
Фиг.8 - блок-схема, иллюстрирующая видеокадр, содержащий слой В, который содержит два вектора движения.
Фиг.9 - блок-схема последовательности операций способа, описывающая процесс создания заключительного опорного кадра.
Осуществление изобретения
Далее со ссылкой на чертежи будут описаны конкретные варианты осуществления заявки. Терминология, используемая в представленном здесь описании, не предназначена для интерпретирования каким-либо ограниченным или ограничительным способом просто из-за того, что она используется вместе с подробным описанием некоторых конкретных вариантов осуществления заявки.
В одном варианте осуществления система интерполирует заданный блок или кадр видеоинформации с использованием множества фильтров, чтобы создавать многочисленные опорные кадры. Для каждого фильтра система после этого вычисляет векторы движения из заданного опорного кадра. Затем выполняется вычисление, чтобы определить, для каждого пикселя, который фильтр обеспечивает самую низкую частоту появления ошибок и показатель искажения. В некоторых вариантах осуществления исследуется ожидаемая рабочая характеристика одного или комбинации фильтров для каждого подпикселя и целого пикселя в пределах видеокадра. Затем выбирается наилучший фильтр для кодирования значений подпикселей и целых пикселей для каждой позиции в видеокадре.
В одном варианте осуществления система накапливает измерения погрешностей суммарных абсолютных разностей (SAD) для всех доступных позиций в единственном кадре с использованием множества фильтров. Измеряя SAD, система может определять, выгодно ли использовать адаптивный фильтр (например, адаптивный интерполирующий фильтр (AIF)), соответствующий этой позиции, или может быть более удобным (в отношении SAD и взвешенной стоимости в расчете на бит) использовать устанавливаемый по умолчанию интерполирующий фильтр, или не использовать фильтр вообще, чтобы кодировать значения пикселей.
В другом варианте осуществления используется процесс использования оптимальных критериев выбора для комбинации доступных фильтров, приводящий к минимальной вычислительной стоимости (или SAD плюс биты взвешенного кодирования, используемые не устанавливаемыми по умолчанию интерполирующими фильтрами). При заданных матрице и векторе, может оказаться возможным вычислять на компьютере погрешность, соответствующую каждому из векторов решений, и выбирать фильтр для каждой позиции подпикселя, указывающей минимальную вычислительную стоимость.
В еще одном варианте осуществления используется итерационный процесс. Этот процесс включает в себя начало работы с возможного решения (любого допустимого вектора решений) и обнаружение позиции, для которой альтернативный фильтр обеспечивает самое большое уменьшение погрешности. Затем эта новая позиция обновляется с помощью значения выбора нового фильтра, и процесс повторяется до тех пор, пока не будет больше возможных улучшений, улучшения будут незначительными (ниже предварительно определенного порогового значения), или будет достигнуто максимальное число итераций.
В еще одном варианте осуществления используется упрощенная эвристика для нахождения аппроксимации минимальной стоимости с использованием классов симметрии. Этот способ рассматривает только вклады от погрешности, в которых позиции двух опорных блоков используют один и тот же фильтр. Это случается, когда позиции идентичны, или когда они принадлежат классу симметрии.
В другом варианте осуществления используется таблица квантования, что улучшает кодирование коэффициентов фильтров, используемых на позициях целых пикселей, при этом точность квантования зависит от местоположения коэффициентов, при использовании процесса неравномерного квантования.
Соответствие блоков представляет собой самый распространенный способ оценки движения. Обычно каждый макроблок (то есть, 16×16 пикселей) в видеокадре сравнивается со сдвинутыми областями такого же размера из предыдущего кадра, и сдвиг, который приводит к минимальной погрешности, выбирается как наилучший вектор движения для этого макроблока.
Интра-кадры (или I-кадры) представляют собой кадры, закодированные независимо от любого другого кадра; они могут генерироваться кодером, чтобы создавать точку произвольного доступа. Интра-кадры обычно требуют большего количества битов для кодирования, чем другие типы изображений. Часто I-кадры используются для произвольного доступа и используются в качестве ссылок для декодирования других кадров.
Предсказанные кадры (или P-кадры) требуют предварительного декодирования некоторых других кадров (кадров) для их декодирования и могут содержать и данные изображения, и смещения векторов движения. В H.264, во время декодирования предсказанные кадры могут использовать множество предварительно декодированных кадров в качестве опорных, и могут иметь любое произвольное соотношение порядка - отображения относительно кадров (кадров), используемых для их предсказания. Также обычно предсказанные кадры требуют меньшего количества битов для кодирования, чем интра-кадры.
Двунаправленные предсказанные кадры (или В-кадры) требуют предварительного декодирования некоторого другого кадра (кадров) для их декодирования, могут содержать и данные изображения, и смещения векторов движения, и включают в себя некоторые виды предсказания, которые формируют предсказание посредством усреднения предсказаний, полученных с использованием двух различных предварительно декодированных опорных областей. В H.264, двунаправленные предсказанные кадры могут использоваться или не использоваться в качестве опорных для декодирования других изображений. В-кадры обычно требуют меньшего количества битов для кодирования, чем либо интра-кадры, либо предсказанные кадры.
Фиг.1 представляет блок-схему, иллюстрирующую систему 10 кодирования и декодирования видеосигналов. Как показано на фиг.1, система 10 включает в себя устройство 12 источника данных, которое передает закодированный видеосигнал на приемное устройство 14 через канал 16 связи. Устройство 12 источника данных может включать в себя источник 18 видеоинформации, видеокодер 20 и передатчик 22. Передатчик 22 может быть проводным/беспроводным передатчиком. Приемное устройство 14 может включать в себя приемник 24, видеодекодер 26 и устройство 28 отображения видеоинформации. В некоторых аспектах, приемник 24 может быть беспроводным приемником, таким как беспроводный приемник в телефонной трубке устройства беспроводной связи. Система 10 может быть выполнена с возможностью поддерживать альтернативную фильтрацию (или адаптивную фильтрацию) блоков компенсированного предсказания движения, чтобы улучшать и визуальное качество, и эффективность обработки.
В примере на фиг.1 канал 16 связи может содержать любое беспроводное или проводное средство связи, такое как радиочастотный спектр (РЧ) или одну или более физические линии передачи, или любую комбинацию беспроводных и проводных средств. Канал 16 может образовывать часть сети на основе пакетной коммутации, такой как локальная сеть, всемирная сеть связи или глобальная сеть, такая как Интернет. Канал 16 связи в общем представляет собой любое соответствующее средство связи или совокупность различных средств связи, предназначенных для передачи видеоинформации от устройства 12 источника данных на приемное устройство 14.
Устройство 12 источника данных генерирует видеосигнал для передачи на устройство 14 адресата. Однако, в некоторых случаях, устройства 12, 14 могут работать по существу симметричным образом. Например, каждое из устройств 12, 14 может включать в себя компоненты кодирования и декодирования видеосигналов. Следовательно, система 10 может поддерживать одностороннюю или двустороннюю передачу видеосигналов между видеоустройствами 12, 14, например, для потокового видео, видео- и телевещания или видеотелефонной связи.
Источник 18 видеоинформации может включать в себя устройство оцифровки видеосигналов, такое как одна или более видеокамер, видеоархив, содержащий предварительно запомненную видеоинформацию, или видео в реальном масштабе времени, подаваемое от поставщика видеоинформации. В качестве дополнительного альтернативного варианта, источник 18 видеоинформации может генерировать основанные на компьютерной графике данные в виде исходной видеоинформации, или комбинацию видео в реальном масштабе времени и генерируемой компьютером видеоинформации. В некоторых случаях, если источник 18 видеоинформации представляет собой камеру, устройство 12 источника данных и приемное устройство 14 могут образовывать так называемые мобильные телефоны со встроенной камерой или видеотелефоны, включающие в себя спутниковые или мобильные радиотелефоны, или другие устройства беспроводной связи. Следовательно, в некоторых аспектах, технические приемы, описанные в этой заявке, могут быть реализованы в пределах телефонной трубки мобильного устройства беспроводной связи, такой как телефонная трубка мобильного телефона. В каждом случае запомненная, предварительно запомненная или создаваемая компьютером видеоинформация может кодироваться видеокодером 20 для передачи от устройства 12 источника видеоинформации в видеодекодер 26 устройства 14 приема видеоинформации через передатчик 22, канал 16 и приемник 24. Устройство 28 отображения может включать в себя любое из множества устройств отображения, такое как жидкокристаллический дисплей (LCD, ЖКД), плазменный дисплей или дисплей на органических светоизлучающих диодах (OLED).
Видеокодер 20 и видеодекодер 26 могут быть выполнены, в некоторых аспектах этой заявки, с возможностью поддерживать масштабируемое кодирование видеосигналов для пространственной, временной масштабируемости и/или масштабируемости по отношению сигнал-шум (SNR). Кодер 20 и декодер 26 могут поддерживать различные степени масштабируемости благодаря поддерживанию кодирования, передачи и декодирования основного уровня и одного или более масштабируемых уровней расширения. Для масштабируемого кодирования, основной уровень несет видеоинформацию с минимальным уровнем качества. Один или более уровней расширения несут дополнительный битовый поток, чтобы поддерживать более высокие пространственные, временные уровни или уровни SNR.
Видеокодер 20 и видеодекодер 26 могут работать в соответствии со стандартом сжатия видеоизображения, таким как MPEG-2, MPEG-4, ITU-T (Международный союз электросвязи - сектор телекоммуникаций) H.263 или ITU-T H.264/MPEG-4, Часть 10 (AVC (средства обработки аудиовизуальной информации)). Хотя на фиг.1 не показано, в некоторых аспектах, видеокодер 20 и видеодекодер 22 могут быть объединены с кодером и декодером звукового сопровождения, соответственно, и включать в себя соответствующие модули MUX-DEMUX (мультиплексора-демультиплексора) или другое аппаратное обеспечение и программное обеспечение, чтобы манипулировать кодированием и аудио, и видеосигналов в общем потоке данных или в отдельных потоках данных. Если это является подходящим, модули MUX-DEMUX могут согласовываться с протоколом мультиплексора ITU H.223 или с другими протоколами, такими как протокол пользовательских дейтаграмм (UDP).
Стандарт H.264 был разработан Экспертной группой по вопросам кодирования видеосигнала ITU-T и Экспертной группой по вопросам движущегося изображения (MPEG) ISO/IEC (Международной организации по стандартизации/Международной электротехнической комиссии), как продукт партнерства, известный как Объединенная группа по видеоизображениям (JVT). Стандарт H.264 описан в Рекомендации H.264 ITU-T, Перспективное кодирование видеосигналов для универсальных аудиовизуальных услуг, датированной мартом 2005 г., которая может упоминаться в данном описании, как стандарт H.264 или спецификация H.264, или стандарт H.264/AVC, или спецификация. В некоторых аспектах, технические приемы, описанные в этой заявке, могут применяться к устройствам, которые в общем соответствуют стандарту H.264, или к другим устройствам, которые в общем не соответствуют стандарту H.264.
Объединенная группа по видеоизображениям (JVT) продолжает работать над расширением масштабируемого кодирования видеосигналов (SVC) для AVC H.264/MPEG-4. Спецификация и H.264/MPEG-4AVC, и развиваемого расширения SVC представлены в форме Объединенного проекта (JD). Объединенная масштабируемая модель видеоизображений (JSVM), созданная посредством JVT, реализует инструментальные средства для использования в масштабируемом видеоизображении, которые могут использоваться в системе 10 для различных задач кодирования, описанных в этой заявке.
В некоторых аспектах, для телевизионного вещания, варианты осуществления относятся к применению усовершенствованного кодирования видеосигналов H.264 для предоставления видеоуслуг в реальном масштабе времени в системах многоадресной передачи мультимедиа сухопутной подвижной службы связи (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Спецификация радиоинтерфейса только прямой линии связи для многоадресной передачи мультимедиа сухопутной подвижной службы связи", опубликованной как Технический стандарт TIA-1099 (Ассоциация промышленности средств связи) ("Спецификация FLO"). Спецификация FLO включает в себя примеры, определяющие синтаксис и семантику битового потока и процессы декодирования, подходящие для радиоинтерфейса FLO. В качестве альтернативы видеоинформация может быть передана широковещательной рассылкой в соответствии с другими стандартами, такими как DVB-H (портативное цифровое видео- и телевещание), ISDB-T (цифровое наземное телевизионное вещание с объединенными услугами) или DMB (широковещательная рассылка цифрового мультимедиа). Следовательно, в некоторых случаях, устройство 12 источника данных может быть мобильным радиотерминалом, таким как телефонная трубка устройства беспроводной связи, сервер потокового видео или сервер телевизионного вещания. Однако технические приемы, описанные в этой заявке, не ограничены каким-либо конкретным типом системы широковещательной рассылки, группового вещания или системы с двухточечным соединением.
Каждый из видеокодера 20 и видеодекодера 26 может быть реализован в виде одного или более микропроцессоров, процессор цифровых сигналов (DSP, ПЦС), интегральных схем прикладной ориентации (ASIC, ИСПО), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, встроенного программного обеспечения или любых их комбинаций. Следовательно, описанные в данном описании технические приемы могут быть реализованы в пределах одного или более устройств на интегральных схемах, которые могут быть упомянуты все вместе как устройство на интегральных схемах. Такое устройство на интегральных схемах может быть обеспечено в устройстве связи, таком как телефонная трубка устройства беспроводной связи. Каждый из видеокодера 20 и видеодекодера 26 может быть включен в один или более кодеров или декодеров, либо каждый из может быть включен в виде части объединенного кодера/декодера (кодека) в соответствующее мобильное устройство, абонентское устройство, устройство широковещательной рассылки, сервер или подобное устройство. Кроме того, каждое из устройства 12 источника видеоинформации и устройства 14 приема видеоинформации может включать в себя соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усилителя для передачи и приема закодированного видеосигнала, как это является подходящим, которые включают в себя компоненты радиочастотной (РЧ) беспроводной связи и антенны, достаточные для поддерживания беспроводной связи. Однако для обеспечения простоты иллюстрации, такие компоненты на фиг.1 не показаны.
Как упомянуто выше, видеосигналы включают в себя серии видеокадров. Видеокодер 20 работает на блоках пикселей в пределах индивидуальных видеокадров, чтобы кодировать видеоинформацию. Видеоблоки могут иметь фиксированные или изменяющиеся размеры, и могут отличаться по размеру в соответствии с указанным стандартом кодирования. В качестве примера стандарт ITU-T H.264 поддерживает интра-предсказание (внутреннее предсказание) при различных размерах блоков, таких как 16×16, 8×8, 4×4 для компонентов сигнала яркости и 8×8 для компонентов сигнала цветности. Стандарт ITU-T H.264 также поддерживает интер-предсказание (предсказание между блоками) при различных размерах блоков, таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов сигнала яркости и соответствующие масштабированные размеры для компонентов сигнала цветности. Видеоблоки меньших размеров могут обеспечивать лучшую разрешающую способность и могут использоваться для определений местоположения видеокадра, которые включают в себя верхние уровни детализации. В общем макроблоки и различные блоки меньших размеров могут рассматриваться, как видеоблоки. В некоторых случаях блоки меньших размеров могут упоминаться как субблоки. После предсказания может быть выполнено преобразование а блоке 8×8 остатка, или блоке 4×4 остатка. Также, дополнительное преобразование можно применять к коэффициентам DC блоков 4×4 для компонентов сигнала цветности или компонента сигнала яркости, если используется режим интра-предсказания субблоков 16×16.
Фиг.2 представляет блок-схему, иллюстрирующую видеокодер 20 более подробно. Видеокодер 20 может выполнять интра- и интер-кодирование блоков в пределах видеокадров. Интра-кодирование полагается на пространственное предсказание для снижения или удаления пространственной избыточности в данном видеокадре. Интер-кодирование полагается на временное предсказание, чтобы снижать, или удалять, временную избыточность в видеосигнале в пределах соседних кадров. Для интер-кодирования, видеокодер 20 выполняет оценку, чтобы отслеживать перемещение соответствующих видеблоков между двумя или более соседними кадрами.
Как показано на фиг.2, видеокодер 20 принимает текущий видеоблок 21 в пределах видеокадра, подлежащего кодированию. В примере на фиг.2 видеокодер 20 включает в себя модуль 23 оценки движения, запоминающее устройство 25 для опорных кадров, модуль 27 компенсации движения, модуль 29 преобразования блоков, модуль 31 квантования, модуль 33 инверсного квантования, модуль 35 обратного преобразования и модуль 37 энтропийного кодирования. Видеокодер 20 также включает в себя сумматор 39 и сумматор 41. Фиг.2 иллюстрирует компоненты временного предсказания видеокодера 20 для интер-кодирования видеоблоков. Хотя на фиг.2 для простоты иллюстрации не показано, видеокодер 20 также может включать в себя компоненты пространственного предсказания для интра-кодирования некоторых видеоблоков.
Модуль 23 оценки движения сравнивает видеоблок 21 с блоками в одном или более соседних видеокадрах, чтобы генерировать один или более векторов движения. Соседний кадр или кадры могут быть извлечены из запоминающего устройства 25 для опорных кадров. Оценка движения может быть выполнена для блоков переменных размеров, например, для 16×16, 16×8, 8×16, 8×8, или для меньших размеров блоков. Модуль 23 оценки движения идентифицирует блок в соседнем кадре, который наиболее близко соответствует текущему видеоблоку 21, например, на основании модели случайного искажения, и определяет смещение между блоками. Исходя из этого, модуль 23 оценки движения производит вектор движения, который указывает величину и траекторию смещения.
Векторы движения могут иметь точность в половину пикселя или четверть пикселя, или даже более высокую точность, позволяя видеокодеру 20 отслеживать движение с более высокой точностью, чем определение местоположений целых пикселей, и получать блок с более хорошим предсказанием. Когда используются векторы движения с дробными значениями пикселей, операции интерполяции могут выполняться в модуле 27 компенсации движения. Например, в стандарте H.264/AVC, чтобы получать сигнал яркости в позициях половин пикселей, может использоваться фильтр Винера с 6 отводами с коэффициентами (1, -5, 20, 20, -5, 1)/32. Чтобы получать сигналы яркости в местоположениях четвертей пикселей, может использоваться билинейная фильтрация на значениях в местоположениях целых пикселей и на интерполированных значениях в местоположениях половин пикселей. Билинейный фильтр также может использоваться в интерполяции дробных пикселей для компонентов сигнала цветности, которые могут иметь точность до 1/8 пикселя.
Модуль 23 оценки движения идентифицирует наилучший вектор движения для видеоблока с использованием модели определения искажения в зависимости от скорости передачи. Благодаря использованию результирующего вектора движения, модуль 27 компенсации движения формирует видеоблок предсказания с помощью компенсации движения. Видеокодер 20 формирует видеоблок остатка посредством вычитания видеоблока предсказания, произведенного модулем 27 компенсации движения, из первоначального, текущего видеоблока 21 в сумматоре 39. Модуль 29 преобразования блоков применяет преобразование к блоку остатка. Модуль 31 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи данных. Модуль 37 энтропийного кодирования выполняет энтропийное кодирование квантованных коэффициентов для еще большего дополнительного снижения скорости передачи данных. Видеодекодер 26 выполняет обратные операции для восстановления закодированной видеоинформации.
Модуль 33 инверсного квантования и модуль 35 обратного преобразования применяют инверсное квантование и обратное преобразование, соответственно, чтобы восстанавливать блок остатка. Сумматор 41 добавляет восстановленный блок остатка к блоку компенсированного предсказания движения, произведенному модулем 27 компенсации движения, чтобы произвести восстановленный видеоблок (или принятие решения относительно фильтров для текущего кадра) для сохранения в запоминающем устройстве 25 для опорных кадров. Модуль компенсации движения, содержащий модуль 44 принятия решения относительно фильтров, выполненный с возможностью принимать опорные кадры из запоминающего устройства 25 для опорных кадров, принимает текущий кадр и производит восстановленный видеоблок, подлежащий сохранению в запоминающем устройстве 25 для опорных кадров фильтра. Восстановленный видеоблок может использоваться модулем 23 оценки движения и модулем 27 компенсации движения для кодирования блока в последующем видеокадре.
При выполнении компенсации движения для данного блока в текущем видеокадре 21 модуль 27 компенсации движения может использовать фиксированный набор фильтров, чтобы интерполировать опорный блок из опорного кадра. Если текущий блок однонаправлено предсказан, необходим один опорный блок, или если текущий блок двунаправлено предсказан, необходимы два опорных блока. В H.264, в некоторых случаях могут использоваться многочисленные опорные кадры в прямом и обратном направлениях. Фильтры, фактически используемые модулем 27 компенсации движения, зависят от дробной части вектора движения. Например, если вектор движения указывает на местоположение половины пикселя в опорном кадре в данном измерении, чтобы получить значение местоположения половины пикселя, устанавливаемый по умолчанию интерполирующий фильтр может использоваться в этом измерении с вектором движения половины пикселя. Если оба компонента вектора движения указывают на целочисленные местоположения, значения пикселей из опорного кадра в запоминающем устройстве 25 для опорных кадров могут использоваться непосредственно, без выполнения какой-либо операции интерполирующей фильтрации.
Фиг.3 представляет блок-схему, иллюстрирующую запоминающее устройство 25 для опорных кадров и модуль 44 принятия решения относительно фильтров, как показано на фиг.2. Иллюстративная блок-схема запоминающего устройства 25 для опорных кадров и модуля 44 принятия решения относительно фильтров на фиг.3 включает в себя текущий кадр 30, запоминающее устройство 25 для опорных кадров и модуль 44 принятия решения относительно фильтров. Текущий кадр 30 может быть передан в модуль 44 принятия решения относительно фильтров, чтобы использоваться для создания заключительного (или восстановленного) опорного кадра, подлежащего сохранению в запоминающем устройстве 25 для опорных кадров. Запоминающее устройство 25 для опорных кадров может поддерживать набор опорных кадров и передавать поддерживаемые опорные кадры в модуль 27 компенсации движения. В одном варианте осуществления набор опорных кадров, интерполированных с помощью устанавливаемых по умолчанию фильтров 32, 34 и 36, сохраняется в запоминающем устройстве 25 для опорных кадров и посылается в модуль 44 принятия решения относительно фильтров. В другом варианте осуществления набор опорных кадров, интерполированных с помощью альтернативных фильтров (или не устанавливаемых по умолчанию фильтров) 38, 40, 42, сохраняется в запоминающем устройстве 25 для опорных кадров и посылается в модуль 44 принятия решения относительно фильтров. В другом варианте осуществления, если емкость запоминающего устройства ограничена, при необходимости интерполированные кадры могут генерироваться в сумматоре. В одном варианте осуществления интерполированные кадры генерируются в реальном масштабе времени до тех пор, пока имеются в наличии первоначальные (не интерполированные) кадры, интерполирующие фильтры и варианты выбора фильтра. Альтернативный фильтр (не показан), постоянно находящийся в видеокодере 20, может быть адаптивным интерполирующим фильтром, отделимым адаптивным интерполирующим фильтром, фиксированным фильтром. В другом варианте осуществления альтернативный фильтр может быть адаптивным интерполирующим фильтром (AIF), который предлагает большую эффективность кодирования, особенно на видеопоследовательностях с высоким разрешением (например 720 p (пикселей)). Видеокодер 20 имеет фиксированный набор альтернативных фильтров для интерполирования блока в опорном кадре. В еще одном варианте осуществления видеокодер 20 может поддерживать двумерный неотделимый адаптивный интерполяционный фильтр, отделимый адаптивный интерполяционный фильтр, направленный адаптивный интерполяционный фильтр и усовершенствованный адаптивный интерполяционный фильтр. Двумерный неотделимый адаптивный интерполирующий фильтр использует двумерную матрицу для интерполирования кадров. Отделимый адаптивный интерполирующий фильтр использует скорее вертикальное сканирование (кадровую развертку), чем горизонтальное сканирование (строчную развертку), для интерполирования кадров. Направленный адаптивный интерполирующий фильтр использует диагональное сканирование для интерполирования кадров.
В другом варианте осуществления может использоваться усовершенствованный адаптивный интерполирующий фильтр (E-AIF) посредством добавления фильтра позиций целых пикселей и смещения фильтра к каждой позиции целого пикселя и подпикселя. Для каждой позиции целого пикселя и подпикселя E-AIF также оценивает ожидаемое увеличение показателя искажения альтернативного фильтра по сравнению с устанавливаемой по умолчанию интерполяцией и решает, использовать ли альтернативный фильтр и сообщать ли об этом в декодер или нет.
Модуль 44 принятия решения относительно фильтров может сравнивать суммарные непроизводительные потери битов (или стоимость) кодирования принимаемого текущего кадра 30, используя опорные кадры, интерполированные с помощью устанавливаемого по умолчанию фильтра 32, 34, 36, и опорные кадры, интерполированные с помощью альтернативных фильтров 38, 40, 42. В одном варианте осуществления модуль 44 принятия решения относительно фильтров может использовать масштабный коэффициент (не показано), чтобы восстанавливать позиции пикселей для определения абсолютной погрешности, соответствующей использованию либо устанавливаемых по умолчанию фильтров, либо альтернативных фильтров. В другом варианте осуществления модуль 44 принятия решения относительно фильтров может сравнивать значение абсолютной погрешности для каждого пикселя, выбирать между доступным фильтром и производить вектор решений, который снижает до минимума частоту появления ошибочных битов и искажение.
Модуль 44 принятия решения относительно фильтров также может принимать векторы движения (или данные вектора движения) 48. В одном варианте осуществления модуль принятия решения относительно фильтров может принимать текущий кадр 30, векторы 48 движения, интерполированные опорные кадры, такие как опорные кадры, интерполированные с помощью устанавливаемого по умолчанию фильтра 32, 34, 36, и опорные кадры, интерполированные с помощью альтернативного фильтра 38, 40, 42, чтобы создавать заключительные (или восстановленные) опорные кадры 45, 46, 47, подлежащие сохранению в запоминающем устройстве 25 для опорных кадров. В результате модуль 44 принятия решения относительно фильтров обеспечивает интерполированные опорные кадры 45, 46 и 47, в которых каждый целый пиксель или подпиксель интерполируется с использованием либо устанавливаемого по умолчанию, либо альтернативного фильтра. В другом варианте осуществления модуль 44 принятия решения относительно фильтров может выводить в запоминающее устройство 25 для опорных кадров массив решений (не показано). Массив решений (не показан) может обеспечивать значения решений, описывающие восстановленные опорные кадры 45, 46, 47. В одном варианте осуществления значения решений, обеспечиваемые массивом решений (не показано), могут быть, например, такими как [а (1), b (0), c (1), d (0)...]; при этом позиция подпикселя идентифицируется буквой, а решение выбора фильтра идентифицируется в двоичном формате (0 или 1) либо как использование устанавливаемого по умолчанию фильтра, либо альтернативного фильтра, имеющегося в распоряжении в видеокодере 20. В другом варианте осуществления значения решений, обеспечиваемые массивом решений, могут быть, например, такими как [а (1), b (2), c (3), d (4)...], при этом позиция подпикселя идентифицирована буквой, а решение выбора фильтра идентифицировано с использованием числового формата, используемого для идентифицирования фактического типа фильтра, который нужно использовать в позиции подпикселя. В одном варианте осуществления множество устанавливаемых по умолчанию фильтров и множество адаптивных интерполирующих фильтров могут сравниваться друг с другом для того, чтобы определять наиболее эффективный фильтр для кодирования каждой позиции подпикселя. В другом варианте осуществления множество адаптивных интерполирующих фильтров сравниваются друг с другом для того, чтобы определять наиболее эффективный адаптивный фильтр, который нужно применять во время кодирования для каждой позиции подпикселя.
Фиг.4 изображает иллюстративный процесс 50 определения наилучшей комбинации фильтров с использованием системы, показанной на фиг.3. Процесс начинается в блоке 51 с видеокодера 20, вычисляющего векторы движения кадров системы отсчета для текущего кадра. Опорные кадры могут быть интра-кадрами или предсказанными кадрами. Текущий кадр 30 может быть двунаправленным предсказанным кадром. В одном варианте осуществления текущий кадр ссылается на предыдущий интра-кадр, и применяется ограниченный поиск, использующий соответствие блоков, чтобы вычислять вектор движения, описывающий предыдущее смещение. В другом варианте осуществления текущий кадр ссылается на будущий предсказанный кадр, и применяется ограниченный поиск, использующий соответствие блоков, чтобы вычислять вектор движения, описывающий предсказанное смещение. После того, как данные вектора движения вычислены, они передаются в модуль 44 принятия решения относительно фильтров, как описано на фиг.3.
Затем процесс 50 переходит к блоку 52 и вычисляет коэффициенты альтернативных фильтров. В одном варианте осуществления выбирается адаптивный интерполирующий фильтр, и посылаются коэффициенты, обычно два вектора, содержащие вектор коэффициентов и вектор смещения. Например, вектор коэффициентов, содержащий шесть коэффициентов, может быть таким как [1, 0, 1, 0, 1, 1], а соответствующий вектор смещения может быть таким как [-1, 0, 2, 1, 3, 0]. Для каждой позиции подпикселя посылается одно значение смещения, плюс одно смещение для позиции целого пикселя. Таким образом, могут быть два вектора, один для выбора фильтра, а другой, имеющий такой же размер, для смещений. В другом варианте осуществления используется набор фиксированных, предварительно вычисленных фильтров вместо адаптивного определения коэффициентов для каждого кадра.
Затем процесс 50 переходит к блоку 53, и генерируются опорные кадры с использованием альтернативных фильтров. В одном варианте осуществления опорный кадр генерируется с использованием усовершенствованного адаптивного интерполирующего фильтра и сохраняется в запоминающем устройстве 25 для опорных кадров. Опорный кадр может интерполироваться с использованием адаптивного интерполирующего фильтра, усовершенствованного адаптивного интерполирующего фильтра или комбинации не устанавливаемых по умолчанию фильтров.
Затем процесс 50 переходит к блоку 54 и вычисляет погрешность для каждого блока с помощью каждой комбинации доступных фильтров. В одном варианте осуществления текущий кадр 30 сравнивается с интерполированным опорным кадром с использованием альтернативного интерполирующего фильтра, и определяется частота появления ошибок и показатель искажения. В другом варианте осуществления текущий кадр 30 сравнивается с интерполированным опорным кадром с использованием устанавливаемого по умолчанию фильтра H.264, и определяется частота появления ошибок и показатель искажения.
Затем процесс 50 переходит к блоку 55 и определению стоимости коэффициентов кодирующих фильтров. В одном варианте осуществления модуль 44 принятия решения относительно фильтров на фиг.3 определяет стоимость для каждой позиции подпикселя коэффициентов кодирующих фильтров, использует устанавливаемый по умолчанию фильтр в сравнении с использованием альтернативного интерполирующего фильтра, при этом стоимость определяется в непроизводительных потерях битов.
Если некоторые позиции рассматриваются как симметричные, может быть определен и выбран единственный фильтр из более чем одной позиции подпикселя. Например, позиции подпикселя 'а' и 'c' могут использовать фильтры, которые являются зеркальными изображениями других позиций.
Затем процесс 50 переходит к блоку 56 и определяет наилучшую комбинацию фильтров. В одном варианте осуществления для каждой позиции целого пикселя и подпикселя в заключительном кадре делается определение относительно того, использовать ли устанавливаемый по умолчанию фильтр или альтернативный фильтр, основываясь на фильтре, имеющем при сравнении более низкие частоту появления ошибок и показатель искажения.
Ниже описаны математические вычисления, используемые для определения показателя искажения на пиксель:
SADStd, вычисляется сумма абсолютных разностей погрешности компенсированного предсказания движения на основании устанавливаемого по умолчанию интерполирующего фильтра;
SADAIF, вычисляется погрешность компенсированного предсказания движения на основании альтернативных интерполирующих фильтров;
λ·nBits, вычисляется стоимость (в битах) дополнительной информации, необходимой для кодирования коэффициентов фильтров, умножается на лямбду масштабного коэффициента и добавляется к SADAIF;
Наконец, сравниваются SADStd и SADAIF +λ·nBits, и самое низкое значение используется для определения, должны ли использоваться альтернативные или устанавливаемые по умолчанию интерполирующие фильтры.
В одном варианте осуществления, если выбор фильтра использует предварительно определенные и предварительно вычисленные фильтры, кодер принимает только информацию, связанную с выбором фильтров. Например, при использовании итерационного способа, который находит стоимость, которая является локальной минимальной аппроксимацией для оптимальной стоимости, никакая дополнительная информация, такая как стоимость (в битах), передаваться не должна.
Фиг.5 представляет блок-схему видеокадра, показывающую позиции дробных пикселей для интерполяции. Также фиг.5 иллюстрирует набор позиций дробных пикселей (или подпикселей) в видеокадрах. На фиг.5, всего имеется 15 позиций подпикселей, обозначенных на фиг.5 символами "a"-"o". Кроме того, эта блок-схема может использоваться для обеспечения симметричных данных и может снижать непроизводительные затраты на вычисления. Например, позиции 'а' 61 и 'c' 63 1/2 пикселей могут быть симметричными, снижая непроизводительные затраты на вычисления, вовлеченные в обработку интерполяции. В еще одном примере позиция 'C3' 65 подпикселя может быть симметричной с позицией подпикселя 'C4' 69, приводя к снижению вычислительных непроизводительных затрат во время обработки интерполяции.
Упрощенный эвристический способ рассматривает только вклады от погрешностей, в которых позиции двух опорных блоков используют один и тот же фильтр. Это случается, когда позиции идентичны или когда они принадлежат одному и тому же классу симметрии (например e, g, m и o на фиг.5).
С помощью этого подхода можно накапливать погрешность в векторе Cdii, и задача может быть выражена как:
Figure 00000002
Благодаря независимости выбора, может быть найдено решение посредством независимого снижения до минимума каждого di.
Фиг.6 представляет блок-схему, иллюстрирующую оценку движения. В общем оценка движения используется для того, чтобы определять векторы движения для каждого макроблока в текущем кадре по сравнению с опорным кадром. Процесс вычисления вектора движения содержит выполнение алгоритма поиска, который определяет наилучшее соответствие между макроблоком в текущем кадре и блоком пикселей из опорного кадра. Алгоритм поиска в общем выполняется с использованием вычисления суммарной абсолютной разности (SAD), которая является известной в уровне техники. В частности, оценка движения сравнивает каждый макроблок в текущем кадре с его окружающей областью в предыдущем кадре и пытается находить соответствие, обозначенное минимальной SAD.
Помимо этого фиг.6 иллюстрирует соотношение между последовательным набором видеокадров. Фиг.6 изображает интра-кадр (или I-кадр) 60 как опорный кадр и предсказанный кадр (или P кадр) 62 как текущий кадр. Предсказанный кадр (P кадр) 62 определяет первый макроблок 66 и выполняет оценку движения посредством определения второго макроблока 64 в интра-кадре 60 (или опорном кадре). Пиксели в пределах первого макроблока 66 и второго макроблока 64 сравниваются и вычисляется суммарная абсолютная разность (SAD), и в результате определяются векторы 68 движения.
Фиг.7 представляет блок-схему, иллюстрирующую видеокадр, включающий в себя интра-кадр, предсказанные кадры и двунаправленные предсказанные кадры. Как иллюстрируется, интра-кадр 70 не делает ссылку ни на какой другой кадр, кроме себя. В одном варианте осуществления интра-кадр представляет собой первый кадр, принятый в последовательности кадров. В общем интра-кадры не делают ссылки на какие-либо предшествующие кадры и не имеют возможности делать ссылку на кадры в будущем. С другой стороны, предсказанные кадры могут ссылаться на предыдущие интра-кадры или будущие предсказанные кадры. Как показано на блок-схеме, первый предсказанный кадр 76 делает ссылку на интра-кадр 70 и не делает ссылку на первый В кадр 72 или второй В кадр 74. В кадры обычно делают ссылку либо на интра-кадры, либо на предсказанные кадры, и в прошлом и в будущем. Как показано на фиг.7, первый В кадр 72 делает ссылку и на первый интра-кадр 70, и на первый предсказанный кадр 76, чтобы определить наилучший вектор движения. Как показано на фиг.7, второй В кадр 74 делает ссылку и на первый интра-кадр 70, и на первый предсказанный кадр 76.
Фиг.8 представляет блок-схему, иллюстрирующую видеокадр, содержащий двунаправленный предсказанный слой, который содержит два вектора движения. В одном варианте осуществления первый двунаправленный предсказанный кадр 72 определяет первый двунаправленный предсказанный макроблок 814, имеющий размер 16×16, делает ссылку на интра-кадр 70 (предшествующий кадр), определяет второй макроблок 806 интра-кадра, имеющий размер 16×16, и первый предсказанный кадр 76 (будущий кадр) определяет третий предсказанный макроблок 810, имеющий размер 16×16. В другом варианте осуществления опорные кадры также могут быть двумя двунаправленными предсказанными кадрами, двумя предсказанными кадрами или комбинацией предсказанного кадра и двунаправленного предсказанного кадра. Первый двунаправленный предсказанный кадр 72 вычисляет и идентифицирует два вектора движения, первый интра-вектор 820 движения и второй предсказанный вектор 822 движения, как иллюстрируется на фиг.8. Интра-кадр 70 идентифицирует первый интра-пиксель 808, имеющий самую маленькую сумму значений абсолютных разностей, со ссылкой на первый двунаправленный предсказанный кадр 72. Как показано на фиг.8, первый предсказанный кадр 76 идентифицирует первый предсказанный пиксель 812, имеющий самую маленькую сумму значений абсолютных разностей, со ссылкой на первой предсказанный кадр 72.
При идентификации первого интра-пикселя 808 и первого предсказанного пикселя 812, создается матрица, как описано ниже; при этом 'а' представляет первый интра-пиксель 808, а 'b' представляет первый предсказанный пиксель 812.
Figure 00000003
Матрица C содержит погрешности, накопленные в течение предсказания, при этом 'а' и 'b' представляют позиции подпикселей. Так, на фиг.8, первый вектор 820 интра-движения указывает на позицию 'а' подпикселя, а второй вектор 822 предсказанного движения указывает на позицию 'b' подпикселя. К матрице C=[0, 0, a, b] кодер будет добавлять погрешность предсказания, вычисленную посредством применения устанавливаемых по умолчанию фильтров (выбор 0), и к первому интра-пикселю 808, и к первому предсказанному пикселю 812. Для матрицы C=[1, 0, a, b] кодер будет обновляться, добавляя погрешность предсказания, полученную при интерполировании первого интра-пикселя 808 с помощью адаптивного фильтра и первого предсказанного пикселя 812 с помощью устанавливаемого по умолчанию фильтра (выбор 1 0). К матрице C=[0, 1, a, b] кодер будет добавлять погрешность предсказания, полученную при интерполировании первого интра-пикселя 808 с помощью устанавливаемого по умолчанию фильтра и первого предсказанного пикселя 812 с помощью адаптивного фильтра (выбор 0 1). Наконец, для матрицы C=[1, 1, a, b] кодер будет обновляться с помощью погрешности предсказания, полученной от интерполяции обоих пикселей с помощью адаптивного фильтра (выбор 1 1).
Для каждой позиции целого пикселя и подпикселя может быть вычислен вектор решений D=(d1, d2,...,dn), с di ∈ {0, 1} и i=1,...,n.
Флаг фильтра '1' или '0' для каждой позиции подпикселя, представляющей уникальный набор коэффициентов фильтра, посылается для того, чтобы указать, используется ли устанавливаемый по умолчанию или альтернативный фильтр для этой позиции подпикселя. Если флаг фильтра установлен на '1', то для этой позиции подпикселя коэффициенты альтернативного фильтра предсказываются, квантуются, кодируются и применяются к соответствующим позициям подпикселей. Если флаг фильтра установлен на '0', то используются устанавливаемые по умолчанию интерполирующие фильтры, чтобы интерполировать эту позицию подпикселя и симметричные с ней позиции подпикселей.
В эвристическом решении при использовании классов симметрии накапливается погрешность, если и интра-пиксель 808, и предсказанный пиксель 812 указывают на одну и ту же позицию подпикселя. Например, матрица может быть упрощена следующим образом:
Figure 00000004
В bi-предсказанном (двунаправленном) блоке позиции целых пикселей и подпикселей для двух опорных блоков, используемых в предсказании, могут быть разными, так что погрешность SAD должна собираться для каждой комбинации позиций. Можно выполнять итерацию по всем блокам и, в однократном прохождении, накапливать абсолютные разности между первоначальными и интерполированными пикселями в четырехмерной матрице, в которой Cdi,dj,i,j представляет сумму абсолютных разностей, накопленных для позиций i, j=1,..., n, когда принятие решения относительно фильтров представляет собой di, dj ∈{0, 1}.
Для каждого блока, подлежащего кодированию, позиции i и j относятся ко второму макроблоку 806 (A) интра-кадра и третьему предсказанному макроблоку 810 (B). Затем для каждого пикселя в блоке 814, вычисляются четыре предсказания с использованием pixStdX и pixAifX, пиксели интерполируются с помощью устанавливаемых по умолчанию и с помощью альтернативных фильтров:
Figure 00000005
наконец, восстановленные пиксели вычисляются как:
Figure 00000006
и используются для определения абсолютной погрешности, соответствующей использованию устанавливаемого по умолчанию или альтернативного интерполирующего фильтра. Погрешность будет накапливаться в матрице как:
Figure 00000007
b-масштабирование масштабного коэффициента может быть либо 0,5, либо может вычисляться в соответствии с последовательностью текущих и опорных кадров. Этот второй способ может использоваться для того, чтобы взвешивать большие вклады от предсказаний, происходящих от временно ближайшего опорного кадра.
Если один из двух опорных блоков пропущен, то вклады от погрешностей накапливаются только для одной из двух позиций. Кроме того, вклады от погрешностей для C[0][1] и C[1][0] не накапливаются, когда i=j и позиция является одной и той же для обоих опорных блоков.
Для каждого используемого альтернативного фильтра коэффициенты фильтра могут явно передаваться сигналами, таким образом, каждая позиция i=1,..., n (либо целого пикселя, либо подпикселя) имеет связанную взвешенную стоимость λ·nBitsi, с весовым множителем, отражающим вклад от битов в рабочую характеристику искажения в зависимости от скорости передачи. Если фильтры предварительно определены или предварительно вычислены и доступны для кодера, то может не требоваться передавать информацию, такую как стоимость (в расчете на биты).
С такой формальной системой, прикладная программа состоит из обнаружения вектора двоичного выбора D=(d1, d2,..., dn), который снижен до минимума:
Figure 00000008
При заданных матрице Cdi,dj,i,j и векторе λ·nBitsi можно исчерпывающе вычислять погрешность, соответствующую каждому из 2n векторов решений, и выбирать наименьшую.
Итерационный способ, который близко аппроксимирует оптимальную стратегию, включает в себя начало работы с возможного решения (любого допустимого вектора решений) и обнаружения позиции, для которой альтернативный фильтр имеет самое большое снижение погрешности. Эта позиция затем обновляется с помощью значения выбора нового фильтра, и процесс повторяется до тех пор, пока не останется больше возможных улучшений, улучшение будет незначительным (ниже предварительно определенного порогового значения) или будет достигнуто максимальное число итераций. Три критерия останова могут быть объединены вместе.
Описание псевдокода способа является следующим:
D[0,.., n-1]={0, 0, 0,..., 0}; //Начальное решение
SAD=ComputeSAD(D, C); //C - матрица стоимости
while (критерии останова не удовлетворены)
{(P, F)=FindPosition(D, C, SAD); //Найдены позиция и фильтр
//Уменьшение SAD наибольшее
D[P]=F; //Обновление D
SAD=ComputeSAD(D, C); //Обновление SAD}
Этот способ во многих случаях способен сходиться к локальному минимуму в 8-10 итерациях. Если n - количество позиций, а k - количество выборов (фильтров), доступных для каждой позиции, каждая итерация имеет n·(k-1) возможностей (поддержание k-1 фильтров на каждой из n позиций). Если мы ограничиваем максимальное число итераций самое большее значением c, этот способ будет иметь вычислительную сложность, которая является линейной по количеству позиций и фильтров.
Способ использования неравномерного квантования, то есть точность квантования, зависит от местоположения коэффициентов. Было найдено, что для коэффициентов с меньшей величиной (которые представляют собой коэффициенты, находящиеся дальше от центра фильтра), необходима лучшая точность по сравнению с коэффициентами с большей величиной (которые представляют собой коэффициенты, находящиеся ближе к центру фильтра).
Матрица QFP используется для определения точности квантования коэффициентов фильтра целых пикселей. Количества битов в матрице включают в себя 1 бит для знака, таким образом, например, центральный коэффициент будет квантоваться с 9 битами, из которых 1 используется для знака, а 8 битов - для величины погрешности.
Figure 00000009
Было найдено экспериментально, что QFP обеспечивает наилучшее квантование для P-кадров, в то время как В-кадры лучше кодируются с использованием более точного квантования, описываемого с помощью Q^FP
Figure 00000010
Фиг.9 представляет блок-схему последовательности операций способа, описывающую процесс 92 создания заключительного опорного кадра на основании решений выбора фильтров с использованием системы, показанной на фиг.3. Процесс начинается в блоке 93 посредством идентификации набора опорных кадров и текущего кадра. Например, набора опорных кадров, сохраненных в запоминающем устройстве 25 для опорных кадров, и текущего кадра, переданного в модуль 27 компенсации движения, находящийся в видеокодере 26. В одном варианте осуществления набор опорных кадров содержит интра-кадр и предсказанные кадры.
Затем процесс 92 переходит к блоку 94 и интерполирует набор опорных кадров с использованием устанавливаемого по умолчанию фильтра для создания интерполированного по умолчанию кадра. Предварительно идентифицированный набор опорных кадров в запоминающем устройстве 25 для опорных кадров может интерполироваться с использованием устанавливаемого по умолчанию фильтра и передаваться в запоминающее устройство 25 для опорных кадров для сохранения и извлечения позже. Устанавливаемый по умолчанию фильтр может быть любым устанавливаемым по умолчанию фильтром (то есть, фильтром H.264), постоянно находящимся в видеокодере 20, который является нормативным, как объявлено организацией по стандартам. В одном варианте осуществления набор опорных кадров интерполируется с использованием устанавливаемого по умолчанию фильтра H.264 и сохраняется в запоминающем устройстве 25 для опорных кадров, находящемся в видеокодере 26.
Затем процесс 92 переходит к блоку 95 и интерполирует набор опорных кадров с использованием альтернативного фильтра для создания альтернативно интерполированного кадра. Предварительно идентифицированный набор опорных кадров в запоминающем устройстве 25 для опорных кадров может интерполироваться с использованием альтернативного фильтра и передаваться в запоминающее устройство 25 для опорных кадров для сохранения и извлечения позже. Альтернативный фильтр может постоянно находиться в модуле 27 компенсации движения или может постоянно находиться в другом компоненте, находящемся в кодере. Альтернативный фильтр может быть любым адаптивным фильтром (то есть, двумерным адаптивным интерполирующим фильтром, E-AIF и т.д.), постоянно находящимся в видеокодере 26. Другими словами, альтернативный фильтр представляет собой любой фильтр, который является доступным в видеокодере 20, который не помечен, как устанавливаемый по умолчанию фильтр. В одном варианте осуществления набор опорных кадров интерполируется с использованием усовершенствованного адаптивного интерполирующего фильтра и сохраняется в запоминающем устройстве 25 для опорных кадров, находящемся в видеокодере 26.
Затем процесс 92 переходит к блоку 96 и сравнивает, для каждой позиции подпикселя, имеют ли интерполированные опорные кадры, использующие устанавливаемый по умолчанию фильтр, более низкую суммарную погрешность, чем интерполированные опорные кадры, использующие альтернативный фильтр; при этом более низкая суммарная погрешность основана на самой низкой комбинации частоты появления ошибок и искажения. Позиция подпикселя может быть половиной пикселя, одной четвертью пикселя, одной восьмой пикселя или любым дробным значением, которое меньше единицы. В одном варианте осуществления позиция подпикселя определяется так, чтобы иметь более низкую суммарную погрешность с использованием устанавливаемого по умолчанию фильтра, а не альтернативного фильтра, после сравнения обоих интерполированных опорных кадров.
Затем процесс 92 переходит к блоку 97, в котором выбирается альтернативный фильтр, если он имеет более низкое значение суммарной погрешности. В одном варианте осуществления для каждой позиции подпикселя, подлежащей генерированию в заключительном кадре, выбирается альтернативный фильтр, если определено, что альтернативный фильтр (например, адаптивный интерполирующий фильтр) имеет более низкие частоту появления ошибок и показатель искажения.
В противном случае процесс 92 переходит к блоку 98, в котором выбирается устанавливаемый по умолчанию фильтр, если альтернативный фильтр не имеет более низкое значение суммарной погрешности. В одном варианте осуществления для каждой позиции подпикселя, подлежащей генерированию в заключительном кадре, выбирается устанавливаемый по умолчанию фильтр, если определено, что устанавливаемый по умолчанию фильтр имеет более низкие частоту появления ошибок и показатель искажения.
Затем процесс 92 переходит к блоку 99, в котором для каждой позиции подпикселя выбирается наилучшая комбинация либо устанавливаемого по умолчанию, либо альтернативного фильтра, чтобы генерировать заключительный опорный кадр. В одном варианте осуществления заключительный опорный кадр генерируется с использованием только устанавливаемого по умолчанию фильтра для каждой позиции подпикселя. В другом варианте осуществления заключительный опорный кадр генерируется с использованием альтернативных фильтров, определяемых, как имеющие более низкую суммарную частоту появления ошибок. В другом варианте осуществления заключительный опорный кадр генерируется с использованием комбинации альтернативных и устанавливаемых по умолчанию фильтров, определяемых, как имеющие более низкую суммарную частоту появления ошибок на позицию подпикселя.
Общепринятый язык, такой как, среди прочего, "может", "мог", "мог бы" или "способен", если определенно не заявлено иначе, или иначе не понятно по контексту, как это используется, в общем предназначен для того, чтобы передавать, что некоторые варианты осуществления включают в себя некоторые признаки, элементы и/или этапы, в то время как другие варианты осуществления их не включают в себя. Таким образом, такой общепринятый язык в общем не предназначен для того, чтобы подразумевать, что эти признаки, элементы и/или этапы всегда требуются для одного или более вариантов осуществления, или что один или более вариантов осуществления обязательно включают в себя логику для решения, с вводом или подсказкой пользователя или без них, независимо от того, включены ли эти признаки, элементы и/или этапы или должны выполняться в каком-либо конкретном варианте осуществления.
Любые описания процессов, элементы или блоки в блок-схемах последовательностей операций способа, описанных в данном описании и/или изображенных на прилагаемых чертежах, следует понимать как потенциально представляющие модули, сегменты или части кода, которые включают в себя одну или более выполнимых команд для реализации конкретных логических функций или этапов в процессе. Альтернативные реализации включены в объем вариантов осуществления, описанных в данном описании, в которых элементы или функции могут быть удалены, выполнены в порядке, отличающемся от показанного или обсуждавшегося, включая по существу одновременное выполнение или выполнение в обратном порядке, в зависимости от включенных функциональных возможностей, как должно быть понятно специалистам в данной области техники.
Технические приемы, описанные в данном описании, могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если технические приемы реализованы в программном обеспечении, они могут быть реализованы, по меньшей мере частично, посредством одной или более сохраненных или передаваемых команд или кода на компьютерно-читаемом носителе. Компьютерно-читаемый носитель может включать в себя носитель данных компьютера, средство связи или и то, и другое, и может включать в себя любое средство, которое облегчает перенос компьютерной программы с одного места на другое. Носитель данных может быть любым доступным носителем, к которому компьютер может получать доступ.
Посредством примера, а не ограничения, такой компьютерно-читаемый носитель может содержать RAM (оперативное запоминающее устройство, ОЗУ), такое как синхронное динамическое ОЗУ (SDRAM), постоянное запоминающее устройство (ROM, ПЗУ), энергонезависимое ОЗУ (NVRAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM, ЭСППЗУ), ЭСППЗУ, флэш-память, CD-ROM (неперезаписываемый компакт-диск) или другое оптическое запоминающее устройство на дисках, магнитное запоминающее устройство на дисках или другие магнитные устройства хранения данных, или любой другой носитель, который может использоваться для переноса или сохранения требуемого кода программы в форме команд или структур данных, и к которому компьютер может получать доступ.
Также любое соединение должным образом называется компьютерно-читаемым носителем. Например, если программное обеспечение передается с Web-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, скрученной пары, цифровой абонентской линии (DSL, ЦАЛ) или беспроводных технологий, таких как связь в инфракрасном, радиочастотном и сверхвысокочастотном диапазоне, то коаксиальный кабель, волоконно-оптический кабель, скрученная пара, DSL или беспроводные технологии, такие как связь в инфракрасном, радиочастотном и сверхвысокочастотном диапазоне, включены в определение носителя данных. Термины "disk" (диск) и "disc" (диск), как используются в данном описании, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск технологии blu-ray, где disks (диски) обычно воспроизводят данные магнитным способом, в то время как discs (диски) воспроизводят данные оптическим способом, например, с помощью лазеров. Комбинации вышеупомянутых устройств также должны быть включены в область определения компьютерно-читаемого носителя.
Код, связанный с компьютерно-читаемым носителем компьютерного программного продукта, может выполняться компьютером, например, одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP, ПЦС), микропроцессоров общего назначения, интегральных схем прикладной ориентации (ASIC, ИСПО), программируемых пользователем вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. В некоторых аспектах функциональные возможности, описанные в данном описании, могут обеспечиваться в пределах специализированных модулей программного обеспечения или модулей аппаратного обеспечения, выполненных с возможностью кодирования и декодирования, или встроенных в объединенный кодер-декодер (кодек) видеосигналов.
Выше были описаны различные аспекты. Эти и другие аспекты находятся в пределах объема последующей формулы изобретения.

Claims (28)

1. Способ кодирования цифровых видеосигналов, причем способ содержит идентификацию опорного кадра и текущего кадра, интерполирование блоков опорного кадра с использованием множества фильтров, причем интерполированные блоки используются для предсказания видеоблоков текущего кадра, причем множество фильтров содержит один или более устанавливаемых по умолчанию фильтров и один или более альтернативных фильтров для каждой из множества позиций подпикселей, и для каждой из множества позиций подпикселей интерполированных блоков, определение, использовать ли один из одного или более устанавливаемых по умолчанию фильтров или один из одного или более альтернативных фильтров, основываясь на более низкой суммарной погрешности, чтобы генерировать блок заключительного кадра.
2. Способ по п.1, в котором опорный кадр представляет собой предсказанный кадр.
3. Способ по п.1, в котором опорный кадр представляет собой двунаправленный предсказанный кадр.
4. Способ по п.1, в котором, по меньшей мере, один из одного или более устанавливаемых по умолчанию фильтров представляет собой фильтр Н.264.
5. Способ по п.1, в котором один или более альтернативных фильтров представляют собой адаптивные интерполирующие фильтры.
6. Способ по п.1, в котором более низкая суммарная погрешность основана на самой низкой комбинации частоты появления ошибок и искажения.
7. Устройство кодирования видеосигналов, содержащее модуль компенсации движения, выполненный с возможностью интерполировать блоки опорного кадра с использованием множества фильтров, причем множество фильтров содержит один или более устанавливаемых по умолчанию фильтров и один или более альтернативных фильтров, запоминающее устройство для опорных кадров, выполненное с возможностью сохранять опорный кадр, модуль принятия решения относительно фильтров, выполненный с возможностью: принимать текущий кадр и опорный кадр, определять, для каждой из множества позиций подпикселей интерполированных блоков, использовать ли один из одного или более устанавливаемых по умолчанию фильтров или один из одного или более альтернативных фильтров, основываясь на более низкой суммарной погрешности, и генерировать блок заключительного кадра.
8. Устройство кодирования видеосигналов по п.7, в котором, по меньшей мере, часть одного из интерполированных блоков интерполирована с использованием фильтра Н.264.
9. Устройство кодирования видеосигналов по п.7, в котором заключительный кадр создается с использованием комбинации фильтров, определенных таким образом, чтобы иметь низкую частоту появления ошибок и низкий показатель искажения.
10. Устройство кодирования видеосигналов по п.7, в котором позиция подпикселя представляет собой 1/2 пикселя, 1/4 пикселя или 1/8 пикселя.
11. Устройство кодирования видеосигналов по п.7, в котором, по меньшей мере, один из одного или более устанавливаемых по умолчанию фильтров представляет собой фильтр Н.264.
12. Устройство кодирования видеосигналов по п.7, в котором один или более альтернативных фильтров представляют собой адаптивные интерполирующие фильтры.
13. Устройство кодирования видеосигналов, содержащее средство для приема текущего кадра, средство для интерполирования блоков опорного кадра с использованием множества фильтров, причем интерполированные блоки используются для предсказания видеоблоков текущего кадра, средство для создания блоков заключительного кадра, средство для определения, для каждой из множества позиций подпикселей интерполированных блоков, использовать ли один из одного или более устанавливаемых но умолчанию фильтров или один из одного или более альтернативных фильтров, основываясь на более низкой суммарной погрешности, чтобы создавать заключительный кадр.
14. Устройство кодирования видеосигналов по п.13, в котором, по меньшей мере, часть интерполированных блоков интерполирована с использованием фильтра Н.264.
15. Устройство кодирования видеосигналов по п.13, в котором блоки заключительного кадра создаются с использованием комбинации фильтров, определенных таким образом, чтобы иметь низкую частоту появления ошибок и низкий показатель искажения.
16. Устройство кодирования видеосигналов по п.13, в котором позиция подпикселя представляет собой 1/2 пикселя, 1/4 пикселя или 1/8 пикселя.
17. Устройство кодирования видеосигналов по п.13, в котором, по меньшей мере, один из одного или более устанавливаемых по умолчанию фильтров представляет собой фильтр Н.264.
18. Устройство кодирования видеосигналов по п.13, в котором один или более альтернативных фильтров представляют собой адаптивные интерполирующие фильтры.
19. Машиночитаемый носитель информации, содержащий команды для того, чтобы побуждать процессор идентифицировать опорный кадр и текущий кадр, интерполировать блоки опорного кадра с использованием множества фильтров, причем множество фильтров содержит один или более устанавливаемых по умолчанию фильтров и один или более альтернативных фильтров для каждой из множества позиций подпикселей, для каждой из множества позиций подпикселей интерполированных блоков, определять, использовать ли один из одного или более устанавливаемых по умолчанию фильтров или один из одного или более альтернативных фильтров, основываясь на более низкой суммарной погрешности, чтобы генерировать блок заключительного кадра.
20. Машиночитаемый носитель информации по п.19, в котором опорный кадр представляет собой интракадр.
21. Машиночитаемый носитель информации по п.19, в котором опорный кадр представляет собой предсказанный кадр.
22. Машиночитаемый носитель информации по п.19, в котором, по меньшей мере, один из одного или более устанавливаемых по умолчанию фильтров представляет собой устанавливаемый по умолчанию фильтр H.264.
23. Машиночитаемый носитель информации по п.19, в котором один или более альтернативных фильтров представляют собой адаптивные интерполирующие фильтры.
24. Машиночитаемый носитель информации по п.19, в котором более низкая суммарная погрешность основана на самой низкой комбинации частоты появления ошибок и искажения.
25. Устройство кодирования видеосигналов, содержащее модуль принятия решения относительно фильтров, выполненный с возможностью принимать текущий кадр и опорный кадр, модуль компенсации движения, выполненный с возможностью интерполировать блоки опорного кадра с использованием множества фильтров, причем множество фильтров содержит один или более устанавливаемых по умолчанию фильтров и один или более альтернативных фильтров для каждой из множества позиций подпикселей, причем модуль принятия решения относительно фильтров дополнительно выполнен с возможностью определять для каждой из множества позиций подпикселей интерполированных блоков, использовать ли один из одного или более устанавливаемых по умолчанию фильтров или один из одного или более альтернативных фильтров, основываясь на более низкой суммарной погрешности, чтобы создавать блок заключительного кадра, и создавать блок заключительного кадра.
26. Устройство кодирования видеосигналов по п.25, в котором, по меньшей мере, один из одного или более альтернативных фильтров представляет собой один из множества предварительно вычисленных интерполирующих фильтров.
27. Устройство кодирования видеосигналов, содержащее средство для приема текущего кадра, средство для приема множества интерполированных блоков опорного кадра, интерполированных с использованием одного или более устанавливаемых по умолчанию фильтров или одного или более альтернативных фильтров, средство для создания блока заключительного кадра, средство для определения, для каждой из множества позиций подпикселей интерполированных блоков, использовать ли один из одного или более устанавливаемых по умолчанию фильтров или один из одного или более альтернативных фильтров, чтобы создавать блок заключительного кадра.
28. Устройство кодирования видеосигналов по п.27, в котором, по меньшей мере, один из одного или более альтернативных фильтров представляет собой один из множества предварительно вычисленных интерполирующих фильтров.
RU2011104078/07A 2008-07-07 2009-06-26 Кодирование видеосигналов посредством выбора фильтра RU2491758C2 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7864208P 2008-07-07 2008-07-07
US61/078,642 2008-07-07
US12/208,269 2008-09-10
US12/208,269 US8811484B2 (en) 2008-07-07 2008-09-10 Video encoding by filter selection
PCT/US2009/048829 WO2010005808A1 (en) 2008-07-07 2009-06-26 Video encoding by filter selection

Publications (2)

Publication Number Publication Date
RU2011104078A RU2011104078A (ru) 2012-08-20
RU2491758C2 true RU2491758C2 (ru) 2013-08-27

Family

ID=41464385

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011104078/07A RU2491758C2 (ru) 2008-07-07 2009-06-26 Кодирование видеосигналов посредством выбора фильтра

Country Status (10)

Country Link
US (1) US8811484B2 (ru)
EP (1) EP2311263A1 (ru)
JP (1) JP5280531B2 (ru)
KR (1) KR101269334B1 (ru)
CN (1) CN102084655B (ru)
BR (1) BRPI0914218A2 (ru)
CA (1) CA2729287A1 (ru)
RU (1) RU2491758C2 (ru)
TW (1) TWI401961B (ru)
WO (1) WO2010005808A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2752009C1 (ru) * 2018-03-25 2021-07-21 Б1 Инститьют Оф Имидж Текнолоджи, Инк. Способ и устройство кодирования/декодирования изображения
RU2783335C2 (ru) * 2018-06-01 2022-11-11 Квэлкомм Инкорпорейтед Устройство и сигнализация адаптивного контурного фильтра (alf) на блочной основе

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548041B2 (en) * 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter
US9270871B2 (en) * 2009-04-20 2016-02-23 Dolby Laboratories Licensing Corporation Optimized filter selection for reference picture processing
US8705615B1 (en) * 2009-05-12 2014-04-22 Accumulus Technologies Inc. System for generating controllable difference measurements in a video processor
WO2010134079A1 (en) * 2009-05-20 2010-11-25 Nissimyan, Nissim Video encoding
WO2011003326A1 (en) * 2009-07-06 2011-01-13 Mediatek Singapore Pte. Ltd. Single pass adaptive interpolation filter
JP5233897B2 (ja) 2009-07-31 2013-07-10 ソニー株式会社 画像処理装置および方法
KR101611437B1 (ko) * 2009-10-28 2016-04-26 삼성전자주식회사 복수의 프레임을 참조하여 영상을 부호화, 복호화하는 방법 및 장치
US9363534B2 (en) * 2009-10-29 2016-06-07 Vestel Elektronik Sanayi Ve Ticaret A.S. Method and device for processing a video sequence
JPWO2011086836A1 (ja) * 2010-01-12 2013-05-16 シャープ株式会社 符号化装置、復号装置、および、データ構造
US8995527B2 (en) * 2010-02-19 2015-03-31 Qualcomm Incorporated Block type signalling in video coding
US8553763B2 (en) * 2010-06-10 2013-10-08 Sony Corporation Iterative computation of adaptive interpolation filter
US9154807B2 (en) 2010-06-25 2015-10-06 Qualcomm Incorporated Inclusion of switched interpolation filter coefficients in a compressed bit-stream
US20120008686A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Motion compensation using vector quantized interpolation filters
US20120008687A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Video coding using vector quantized deblocking filters
JP5513333B2 (ja) * 2010-09-22 2014-06-04 Kddi株式会社 動画像符号化装置、動画像符号化方法、およびプログラム
US9628821B2 (en) 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
CN103155559B (zh) * 2010-10-12 2016-01-06 杜比实验室特许公司 用于帧兼容视频传输的联合层优化
ES2870332T3 (es) 2010-10-20 2021-10-26 Guangdong Oppo Mobile Telecommunications Corp Ltd Optimización de la distorsión de la tasa resistente a errores para la codificación de imágenes y video
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
US9172972B2 (en) 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
PL2661892T3 (pl) 2011-01-07 2022-08-16 Nokia Technologies Oy Przewidywanie ruchu w kodowaniu wideo
US9049454B2 (en) 2011-01-19 2015-06-02 Google Technology Holdings Llc. High efficiency low complexity interpolation filters
JP5670226B2 (ja) * 2011-03-04 2015-02-18 Kddi株式会社 動画像符号化装置、動画像符号化方法、およびプログラム
US9313519B2 (en) * 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
US9143799B2 (en) * 2011-05-27 2015-09-22 Cisco Technology, Inc. Method, apparatus and computer program product for image motion prediction
JP5552092B2 (ja) * 2011-06-13 2014-07-16 日本電信電話株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
EP2724534A2 (en) 2011-06-24 2014-04-30 Motorola Mobility LLC Selection of phase offsets for interpolation filters for motion compensation
JP5727673B2 (ja) * 2011-07-01 2015-06-03 モトローラ モビリティ エルエルシーMotorola Mobility Llc 時間予測のためのジョイントサブピクセル補間フィルタ
US9159139B2 (en) * 2011-07-14 2015-10-13 Technische Universitat Berlin Method and device for processing pixels contained in a video sequence
JP5649539B2 (ja) * 2011-09-15 2015-01-07 日本放送協会 動画像符号化装置及びそのプログラム
JP5649540B2 (ja) * 2011-09-15 2015-01-07 日本放送協会 動画像符号化装置及びそのプログラム
JP5711098B2 (ja) * 2011-11-07 2015-04-30 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム
US20130142251A1 (en) * 2011-12-06 2013-06-06 Sony Corporation Syntax extension of adaptive loop filter in hevc
US8824811B2 (en) * 2012-03-06 2014-09-02 Htc Corporation LCD module, portable electronic devices and displaying method thereof
US9232230B2 (en) * 2012-03-21 2016-01-05 Vixs Systems, Inc. Method and device to identify motion vector candidates using a scaled motion search
KR101659914B1 (ko) * 2012-04-30 2016-09-26 맥마스터 유니버시티 고화질 비디오에 대한 디인터레이싱 및 프레임률 업컨버전
US9769473B2 (en) * 2012-06-08 2017-09-19 Apple Inc. Predictive video coder with low power reference picture transformation
TWI504197B (zh) * 2012-07-03 2015-10-11 Aten Int Co Ltd 遠端管理方法及使用該方法之遠端管理裝置
US9344718B2 (en) * 2012-08-08 2016-05-17 Qualcomm Incorporated Adaptive up-sampling filter for scalable video coding
US20140086319A1 (en) * 2012-09-25 2014-03-27 Sony Corporation Video coding system with adaptive upsampling and method of operation thereof
KR102276914B1 (ko) * 2013-10-24 2021-07-13 삼성전자주식회사 비디오 인코딩 장치 그리고 이의 구동 방법
EP3090547A4 (en) * 2014-01-01 2017-07-12 LG Electronics Inc. Method and apparatus for encoding, decoding a video signal using an adaptive prediction filter
KR102332782B1 (ko) * 2014-12-15 2021-11-30 삼성전자주식회사 시각 특성을 고려한 영상 데이터 압축
MX2018003673A (es) 2015-09-25 2018-08-01 Huawei Tech Co Ltd Aparato y metodo para compensacion de movimiento de video.
WO2017052405A1 (en) 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
MY190412A (en) 2015-09-25 2022-04-21 Huawei Tech Co Ltd Adaptive sharpening filter for predictive coding
WO2017052409A1 (en) * 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation with selectable interpolation filter
KR102146436B1 (ko) 2015-09-25 2020-08-20 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 모션 보상을 위한 장치 및 방법
CN106604030A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 参考图像的处理方法及装置、编码器以及解码器
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures
WO2018097700A1 (ko) * 2016-11-28 2018-05-31 한국전자통신연구원 필터링을 위한 방법 및 장치
CN116320498A (zh) * 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US11451773B2 (en) 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
CN111010568B (zh) * 2018-10-06 2023-09-29 华为技术有限公司 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器
KR20210100183A (ko) * 2018-12-21 2021-08-13 후아웨이 테크놀러지 컴퍼니 리미티드 예측 코딩을 위한 보간 필터링 방법 및 장치
JP7307191B2 (ja) 2019-04-01 2023-07-11 北京字節跳動網絡技術有限公司 履歴に基づく動きベクトル予測のための補間フィルタの使用
KR20220090493A (ko) * 2019-08-06 2022-06-29 오피 솔루션즈, 엘엘씨 블록-기반 적응적 해상도 관리
CN114270856A (zh) 2019-08-20 2022-04-01 北京字节跳动网络技术有限公司 视频处理中的备选插值滤波器的选择性使用
US11218724B2 (en) * 2019-09-24 2022-01-04 Alibaba Group Holding Limited Motion compensation methods for video coding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1432249A1 (en) * 2001-09-18 2004-06-23 Matsushita Electric Industrial Co., Ltd. Image encoding method and image decoding method
EP1499134A1 (en) * 2002-04-24 2005-01-19 NEC Corporation Moving picture coding method and decoding method, and apparatus and program using the same
WO2006108654A3 (en) * 2005-04-13 2007-05-10 Univ Hannover Method and apparatus for enhanced video coding
RU2302707C2 (ru) * 2002-01-14 2007-07-10 Нокиа Корпорейшн Кодирующие динамические фильтры
EP1841230A1 (en) * 2006-03-27 2007-10-03 Matsushita Electric Industrial Co., Ltd. Adaptive wiener filter for video coding
RU2317654C2 (ru) * 2001-09-17 2008-02-20 Нокиа Корпорейшн Способ интерполяции значений подпикселов

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021891A (en) 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
US5107345A (en) 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
ATE159396T1 (de) 1991-06-04 1997-11-15 Qualcomm Inc System zur adaptiven kompression der blockgrössen eines bildes
GB2327822B (en) * 1997-07-25 2002-02-27 Ibm Good quality video for the internet at very low bandwidth
US6775325B1 (en) * 1998-10-07 2004-08-10 Sarnoff Corporation Method and apparatus for converting the bitrate of an encoded bitstream without full re-encoding
GB2362531A (en) * 2000-05-15 2001-11-21 Nokia Mobile Phones Ltd Indicating the temporal order of reference frames in a video sequence
AU2003246987A1 (en) * 2002-07-09 2004-01-23 Nokia Corporation Method and system for selecting interpolation filter type in video coding
WO2004008773A1 (ja) 2002-07-11 2004-01-22 Matsushita Electric Industrial Co., Ltd. フィルタリング強度の決定方法、動画像符号化方法、および動画像復号化方法
US20040076333A1 (en) 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
US7408988B2 (en) * 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
JP4080951B2 (ja) * 2003-05-30 2008-04-23 株式会社東芝 フレーム補間方法及び装置並びに画像表示システム
US20060114995A1 (en) * 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US20070009050A1 (en) * 2005-04-11 2007-01-11 Nokia Corporation Method and apparatus for update step in video coding based on motion compensated temporal filtering
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
US7778494B2 (en) * 2005-10-13 2010-08-17 Texas Instruments Incorporated FIR-based interpolation in advanced video codecs on VLIW processor
US7873229B2 (en) * 2006-02-08 2011-01-18 Moxair, Inc. Distributed processing for video enhancement and display power management
US20080075165A1 (en) 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding
US9014280B2 (en) * 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
US8050324B2 (en) * 2006-11-29 2011-11-01 General Instrument Corporation Method and apparatus for selecting a reference frame for motion estimation in video encoding
JP2008154015A (ja) * 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
EP2127391A2 (en) * 2007-01-09 2009-12-02 Nokia Corporation Adaptive interpolation filters for video coding
KR100898176B1 (ko) * 2007-06-12 2009-05-19 한국전자통신연구원 비디오 인코딩을 위한 인터 모드 결정 방법
US20090010326A1 (en) * 2007-07-05 2009-01-08 Andreas Rossholm Method and apparatus for parallel video decoding
CN100568920C (zh) 2007-07-24 2009-12-09 浙江大学 串行输入并行输出的视频图像亮度插值的方法和装置
EP2048886A1 (en) 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
US8611423B2 (en) * 2008-02-11 2013-12-17 Csr Technology Inc. Determination of optimal frame types in video encoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2317654C2 (ru) * 2001-09-17 2008-02-20 Нокиа Корпорейшн Способ интерполяции значений подпикселов
EP1432249A1 (en) * 2001-09-18 2004-06-23 Matsushita Electric Industrial Co., Ltd. Image encoding method and image decoding method
RU2302707C2 (ru) * 2002-01-14 2007-07-10 Нокиа Корпорейшн Кодирующие динамические фильтры
EP1499134A1 (en) * 2002-04-24 2005-01-19 NEC Corporation Moving picture coding method and decoding method, and apparatus and program using the same
WO2006108654A3 (en) * 2005-04-13 2007-05-10 Univ Hannover Method and apparatus for enhanced video coding
EP1841230A1 (en) * 2006-03-27 2007-10-03 Matsushita Electric Industrial Co., Ltd. Adaptive wiener filter for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEMAL UGUR et al. Adaptive Interpolation Filter with Flexible Symmetry for Coding High *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2752009C1 (ru) * 2018-03-25 2021-07-21 Б1 Инститьют Оф Имидж Текнолоджи, Инк. Способ и устройство кодирования/декодирования изображения
US11438577B2 (en) 2018-03-25 2022-09-06 B1 Institute Of Image Technology, Inc. Image encoding/decoding method and device
US11956425B2 (en) 2018-03-25 2024-04-09 B1 Institute Of Image Technology, Inc. Image encoding/decoding method and device
RU2783335C2 (ru) * 2018-06-01 2022-11-11 Квэлкомм Инкорпорейтед Устройство и сигнализация адаптивного контурного фильтра (alf) на блочной основе

Also Published As

Publication number Publication date
US20100002770A1 (en) 2010-01-07
EP2311263A1 (en) 2011-04-20
JP5280531B2 (ja) 2013-09-04
KR20110026020A (ko) 2011-03-14
US8811484B2 (en) 2014-08-19
TW201008291A (en) 2010-02-16
CA2729287A1 (en) 2010-01-14
KR101269334B1 (ko) 2013-05-29
RU2011104078A (ru) 2012-08-20
WO2010005808A1 (en) 2010-01-14
CN102084655A (zh) 2011-06-01
BRPI0914218A2 (pt) 2015-11-03
CN102084655B (zh) 2015-02-11
JP2011527553A (ja) 2011-10-27
TWI401961B (zh) 2013-07-11

Similar Documents

Publication Publication Date Title
RU2491758C2 (ru) Кодирование видеосигналов посредством выбора фильтра
KR101313956B1 (ko) 스위칭된 보간 필터들에서의 오프셋 계산
RU2547634C2 (ru) Способ и устройство обработки изображения
KR100681370B1 (ko) 전방 예측된 인터레이스드 비디오 프레임의 필드에 대한모션 벡터의 예측
JP4659823B2 (ja) 予測フレームにおける重み付き予測に関する方法及び装置
US8411750B2 (en) Global motion parameter estimation using block-based motion vectors
KR101377883B1 (ko) 비디오 인코딩에서 넌-제로 라운딩 및 예측 모드 선택 기법들
US20110176614A1 (en) Image processing device and method, and program
US8059720B2 (en) Image down-sampling transcoding method and device
JP2014209743A (ja) 幾何学的動き区分のための固定小数点実装形態
US20090274211A1 (en) Apparatus and method for high quality intra mode prediction in a video coder
US20120218432A1 (en) Recursive adaptive intra smoothing for video coding
WO2021238540A1 (zh) 图像编码方法、图像解码方法及相关装置
CA2958254A1 (en) Methods and systems for determining motion vectors in a motion estimation process of a video encoder
CN113497937B (zh) 图像编码方法、图像解码方法及相关装置
WO2021244197A1 (zh) 图像编码方法、图像解码方法及相关装置
Brites et al. Distributed video coding: Assessing the HEVC upgrade
EP4268460A1 (en) Temporal filter
Goto et al. H. 264 video encoder implementation on a low-power DSP with low and stable computational complexity
KR101037070B1 (ko) 전역탐색기법에 의한 고속 움직임 예측 방법
KR100718467B1 (ko) 영상 축소 트랜스코딩 방법 및 장치
Murmu Fast motion estimation algorithm in H. 264 standard
Lonetti et al. Temporal video transcoding for multimedia services

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20140627