|
(21), (22) Заявка: 2007101271/09, 11.01.2007
(24) Дата начала отсчета срока действия патента:
11.01.2007
(30) Конвенционный приоритет:
12.01.2006 US 60/758,227
(43) Дата публикации заявки: 20.07.2008
(46) Опубликовано: 10.05.2009
(56) Список документов, цитированных в отчете о поиске:
WO 03/077563 А1, 18.09.2003. RU 2183360 С2, 10.06.2002. US 2005195896, 08.09.2005. JP 2005348068, 15.12.2005. US 2002028061 A1, 07.03.2002. JOINT SCALABLE VIDEO MODEL JSVM-2, JULIEN REICHEL AND OTHER, JVT-O202, 15TH JVT MEETING, BUSAN KOREA, 16-22 APRIL 2005.
Адрес для переписки:
129090, Москва, ул. Б.Спасская, 25, стр.3, ООО “Юридическая фирма Городисский и Партнеры”, пат.пов. Ю.Д.Кузнецову, рег. 595
|
(72) Автор(ы):
ХАН Воо-дзин (KR), КИМ Со-янг (KR), ЛИ Тэмми (KR), ЛИ Кио-Хиук (KR)
(73) Патентообладатель(и):
САМСУНГ ЭЛЕКТРОНИКС КО., ЛТД. (KR)
|
(54) ОСНОВЫВАЮЩИЕСЯ НА МНОЖЕСТВЕ СЛОЕВ СПОСОБ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ И ВИДЕОКОДЕР/ДЕКОДЕР, В КОТОРЫХ ИСПОЛЬЗУЕТСЯ СГЛАЖИВАЮЩЕЕ ПРЕДСКАЗАНИЕ
(57) Реферат:
Настоящее изобретение относится к технологии видеокодирования и, более конкретно, к способу и устройству для сокращения артефактов, связанных с разбиением на блоки, во время остаточного предсказания при основывающемся на множестве слоев видеокодировании. Технический результат заключается в повышении эффективности кодирования. Основывающийся на множестве слоев способ видеокодирования содержит этапы, на которых получают различие между предсказанным блоком для второго блока нижерасположенного слоя, который соответствует первому блоку, включенному в текущий слой, и вторым блоком, прибавляют полученное различие к предсказанному блоку для первого блока, сглаживают третий блок, сгенерированный в результате прибавления, используя сглаживающую функцию, и кодируют различие между первым блоком и сглаженным третьим блоком. 7 н. и 22 з.п. ф-лы, 12 ил., 1 табл.
Перекрестная ссылка на родственные заявки
По данной заявке испрашивается приоритет корейской патентной заявки 10-2006-0022871, поданной 10 марта 2006 г. в Корейское Ведомство по Интеллектуальной Собственности, и предварительных заявок 60/758227 и 60/760401 на патент США, поданных 12 января 2006 и 20 января 2006, соответственно, в Ведомство США по Патентам и Товарным Знакам, раскрытия которых во всей своей полноте включены в материалы настоящей заявки.
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии видеокодирования и, более конкретно, к способу и устройству для сокращения артефактов, связанных с разбиением на блоки, во время остаточного предсказания при основывающемся на множестве слоев видеокодировании.
Предшествующий уровень техники
С развитием информационных и коммуникационных технологий нарастает интенсивность мультимедийной связи, а также текстовой и речевой связи. Существующие ориентированные на текст системы связи являются недостаточными для удовлетворения разнообразных потребностей потребителей, что обуславливает рост мультимедийных услуг, которые могут охватывать разнообразные формы информации, такие как текст, изображения, музыка и т.п. Поскольку мультимедийные данные являются достаточно объемными, для их хранения и передачи, соответственно, требуются носители данных большой емкости и широкие полосы пропускания. Следовательно, для передачи мультимедийных данных требуются методики кодирования со сжатием.
Базовый принцип, лежащий в основе сжатия данных, заключается в удалении избыточности в данных. Данные могут быть сжаты посредством удаления пространственной избыточности, такой как повторение одного и того же цвета или объекта в изображениях, временной избыточности, такой как подобные соседние кадры в движущихся изображениях или непрерывное повторение звуков, и визуально/перцепционной избыточности, при которой учитывается нечувствительность человека к высоким частотам. Согласно общему способу видеокодирования временная избыточность удаляется посредством временной фильтрации на основе компенсации движения, а пространственная избыточность удаляется посредством пространственного преобразования.
Для передачи мультимедиа, после того как избыточность в данных удалена, требуются среды передачи, рабочие характеристики которых отличаются. Используемые на текущий момент среды передачи имеют различные скорости передачи. Например, сверхвысокоскоростная коммуникационная сеть может передавать несколько десятков мегабит данных в секунду, а скорость передачи сети мобильной связи равна 384 килобит в секунду. Для поддержки сред передачи в таком окружении передачи и для передачи мультимедиа со скоростью передачи, подходящей для этого окружения передачи, наиболее подходящим является способ масштабируемого видеокодирования.
Способ масштабируемого видеокодирования является способом кодирования, которым можно регулировать видеоразрешение, частоту смены кадров и отношение сигнал-шум, т.е. способом кодирования, в котором поддерживаются разнообразные виды масштабируемости, посредством отсечения части сжатого битового потока в соответствии с периферийными условиями, такими как битовая скорость передачи, частота ошибок при передаче и системные ресурсы.
В рамках текущего стандарта масштабируемого видеокодирования, который продвигается Объединенной группой по вопросам видео (JVT), которая представляет собой объединенную рабочую группу Группы экспертов по вопросам движущегося изображения (MPEG) и Международного союза телекоммуникаций (ITU), полным ходом ведется исследование для реализации многослойной масштабируемости, основываясь на Н.264 (что в дальнейшем упоминается как масштабируемое расширение Н.264 (SE)).
SE Н.264 и многоуровневый масштабируемый видеокодек в основном поддерживают четыре режима предсказания: внешнее предсказание, направленное внутреннее предсказание (в дальнейшем упоминаемое как внутреннее предсказание), остаточное предсказание и внутреннее базовое предсказание. Предсказание означает методику отображения сжатым образом исходных данных, используя предсказанные данные, сгенерированные на основе информации, которая совместно доступна в кодере и декодере.
Среди четырех режимов предсказания режим внешнего предсказания представляет собой режим предсказания, который в общем используется даже в существующем однослойном видеокодеке. Внешнее предсказание, как проиллюстрировано на Фиг.1, представляет собой способ для поиска блока, который наиболее подобен некоторому блоку (т.е. текущему блоку), из по меньшей мере одного опорного кадра, получения предсказанного блока, который может наилучшим образом выразить текущий блок на основе найденного блока, и последующего квантования различия между текущим блоком и предсказанным блоком.
Внешнее предсказание классифицируется на двунаправленное предсказание, для которого используются два опорных кадра, предсказание в прямом направлении, для которого используется предшествующий опорный кадр, и предсказание в обратном направлении, для которого используется последующий опорный кадр.
С другой стороны, внутреннее предсказание представляет собой методику, которая тоже используется в однослойном кодеке, например, соответствующем Н.264. Внутреннее предсказание является способом для предсказания текущего блока, используя пиксели, смежные с текущим блоком, среди соседних блоков текущего блока. Внутреннее предсказание отличается от других способов предсказания тем, что в нем используется только информация в текущем кадре и не осуществляется обращение к другим кадрам на том же слое или кадрам других слоев.
Внутреннее базовое предсказание может использоваться в случае, когда текущий кадр имеет кадр нижерасположенного слоя (в дальнейшем упоминаемый как базовый кадр), имеющий ту же самую позицию во времени. Как показано на Фиг.2, макроблок текущего кадра может быть эффективно предсказан на основе макроблока базового кадра, который соответствует макроблоку текущего кадра. Иными словами, для предсказания используется различие между макроблоком текущего кадра и макроблоком базового кадра.
Если разрешение, соответствующее нижерасположенному слою, и разрешение, соответствующее текущему слою, отличаются друг от друга, макроблок базового кадра следует передискретизовать с повышением частоты дискретизации с разрешением, соответствующим текущему слою, перед тем, как будет получено различие. Внутреннее базовое предсказание является эффективным для видео, для которого характерно очень быстрое перемещение, или видео, в котором имеет место смена сцен.
Наконец, внешнее предсказание с остаточным предсказанием (в дальнейшем упоминаемое как остаточное предсказание) представляет собой режим предсказания, посредством которого существующее однослойное внешнее предсказание расширяется до многослойной формы. Как показано на Фиг.3, согласно остаточному предсказанию различие, генерируемое в процессе внешнего предсказания текущего слоя, не квантуют непосредственно, но получают и квантуют различие между упомянутым различием и различием, сгенерированным в выполняемом в отношении нижерасположенного слоя процессе внешнего предсказания.
При рассмотрении характеристик разнообразных видеопоследовательностей выбирается один эффективный способ из четырех вышеописанных способов предсказания для каждого макроблока, образующего кадр. Например, в видеопоследовательности, для которой характерно медленное движение, в основном будут выбираться внешнее предсказание и остаточное предсказание, в то время как в видеопоследовательности, для которой характерно быстрое движение, в основном будет выбираться внутреннее базовое предсказание.
Многослойный видеокодек имеет относительно сложную структуру предсказания по сравнению с однослойным видеокодеком. Также, поскольку в многослойном видеокодеке в основном используется структура с незамкнутым контуром, многочисленные артефакты, связанные с разбиением на блоки, имеют место в многослойном видеокодеке по сравнению с однослойным видеокодеком. В частности, в случае вышеизложенного остаточного предсказания используется остаточный сигнал кадра нижерасположенного слоя и, если имеется значительное отличие между этим остаточным сигналом и характеристикой предсказанного внешним предсказанием сигнала текущего кадра, может возникнуть сильное искажение.
Напротив, во время внутреннего базового предсказания предсказанный сигнал макроблока текущего кадра, т.е. макроблока базового слоя, является не исходным сигналом, а сигналом, который был квантован и восстановлен. Соответственно, этот предсказанный сигнал может быть совместно получен как в кодере, так и в декодере и, таким образом, рассогласования между кодером и декодером нет. В частности, поскольку различие между макроблоком базового кадра и макроблоком текущего кадра получают после применения сглаживающего фильтра к предсказанному сигналу, количество связанных с разбиением на блоки артефактов в значительной степени сокращается.
Однако согласно условию декодирования с низкой сложностью и условию декодирования за один цикл, которые приняты в качестве рабочего проекта SE H.264, на использование внутреннего базового предсказания накладывается ограничение. Иными словами, согласно SE H.264 внутреннее базовое предсказание может использоваться только тогда, когда удовлетворено заданное условие, так что, хотя кодирование выполняется многослойным образом, декодирование может быть выполнено образом, аналогичным однослойному видеокодеку.
Согласно условию декодирования с низкой сложностью внутреннее базовое предсказание используется только тогда, когда соответствующий макроблоку нижерасположенного слоя тип макроблока, который соответствует некоторому макроблоку текущего слоя, относится к режиму внутреннего предсказания или режиму внутреннего базового предсказания. Напротив, поскольку внутреннее базовое предсказание используется при ограниченных обстоятельствах, показатели эффективности для видео, для которого характерно быстрое движение, в значительной степени снижаются.
Соответственно, в случае использования внешнего предсказания или остаточного предсказания в соответствии с условием низкой сложности или другими условиями требуется методика, которая позволит сократить разного рода искажения, такие как рассогласование между кодером и декодером и связанные с разбиением на блоки артефакты.
Сущность изобретения
Соответственно, настоящее изобретение было создано для решения вышеупомянутых проблем, характерных для предшествующего уровня техники, и аспектом настоящего изобретения является повышение эффективности кодирования во время внешнего предсказания или остаточного предсказания в основывающемся на множестве слоев видеокодеке.
Дополнительные преимущества и признаки изобретения излагаются частично в описании, которое следует ниже, и частично станут очевидными для специалиста в данной области техники при рассмотрении нижеследующего или могут быть изучены при практическом использовании изобретения.
Согласно аспекту настоящего изобретения предоставляется способ видеокодирования, который включает в себя получение различия между предсказанным блоком для второго блока нижерасположенного слоя, который соответствует первому блоку, включенному в текущий слой, и вторым блоком; прибавление полученного различия к предсказанному блоку для первого слоя; сглаживание третьего блока, сгенерированного в результате упомянутого прибавления, с использованием сглаживающей функции; и кодирование различия между первым блоком и сглаженным третьим блоком.
Согласно другому аспекту настоящего изобретения предоставляется способ генерирования битового потока, который включает в себя сглаживание предсказанного сигнала для первого блока, включенного в текущий слой; кодирование различия между первым блоком и сглаженным предсказанным сигналом; и генерирование битового потока, который включает в себя кодированное различие и первый флаг, указывающий, было ли применено сглаживание.
Согласно еще одному аспекту настоящего изобретения предоставляется способ видеодекодирования, который включает в себя восстановление остаточных данных первого блока из данных текстуры первого блока текущего кадра, включенного во входной битовый поток; восстановление остаточного сигнала для второго блока базового слоя, который включен в битовый поток и соответствует данному блоку; прибавление остаточного сигнала для второго блока к предсказанному блоку для первого блока; сглаживание третьего блока, сгенерированного в результате упомянутого прибавления, с использованием сглаживающего фильтра; и прибавление остаточного сигнала для первого блока к сглаженному третьему блоку.
Согласно еще одному аспекту настоящего изобретения предоставляется способ видеодекодирования, который включает в себя восстановление остаточных данных первого блока из данных текстуры первого блока текущего кадра, включенного во входной битовый поток; восстановление остаточного сигнала для второго блока базового слоя, который включен в битовый поток и соответствует данному блоку; прибавление первого остаточного сигнала ко второму остаточному сигналу; сглаживание предсказанного внешним предсказанием блока для первого блока с использованием сглаживающего фильтра; и прибавление результата упомянутого прибавления к сглаженному предсказанному внешним предсказанием блоку.
Согласно еще одному аспекту настоящего изобретения предоставляется видеокодер, который включает в себя секцию, которая получает различие между предсказанным блоком для второго блока нижерасположенного слоя, который соответствует первому блоку, включенному в текущий слой, и вторым блоком; секцию, которая прибавляет полученное различие к предсказанному блоку для первого блока; секцию, которая сглаживает третий блок, сгенерированный в результате упомянутого прибавления, с использованием сглаживающей функции; и секцию, которая кодирует различие между первым блоком и сглаженным третьим блоком.
Согласно еще одному аспекту настоящего изобретения предоставляется видеодекодер, который включает в себя секцию, которая восстанавливает остаточные данные первого блока из данных текстуры первого блока текущего кадра, включенного во входной битовый поток; секцию, которая восстанавливает остаточный сигнал для второго блока базового слоя, который включен в битовый поток и соответствует данному блоку; секцию, которая прибавляет остаточный сигнал для второго блока к предсказанному блоку для первого блока; секцию, которая сглаживает третий блок, сгенерированный в результате упомянутого прибавления, с использованием сглаживающей функции; и секцию, которая прибавляет остаточный сигнал для первого блока к сглаженному третьему блоку.
Перечень фигур чертежей
Вышеуказанные и другие аспекты, признаки и преимущества настоящего изобретения станут более понятны из нижеследующего подробного описания, приводимого в сочетании с сопровождающими чертежами, на которых:
Фиг.1 – вид, поясняющий известную методику внешнего предсказания.
Фиг.2 – вид, поясняющий известную методику внутреннего базового предсказания.
Фиг.3 – вид, поясняющий известную методику остаточного предсказания.
Фиг.4 – вид, поясняющий методику сглаживающего предсказания согласно иллюстративному варианту осуществления настоящего изобретения.
Фиг.5-8 – виды, иллюстрирующие примеры применения сглаживающего фильтра на уровне макроблока.
Фиг.9 – график, иллюстрирующий PSNR, полученное с использованием другого адаптивного фильтра, на основе PSNR, полученного с использованием сглаживающего фильтра 1:2:1.
Фиг.10 – блок-схема, иллюстрирующая конструкцию видеокодера согласно иллюстративному варианту осуществления настоящего изобретения.
Фиг.11 – блок-схема, иллюстрирующая конструкцию видеодекодера согласно иллюстративному варианту осуществления настоящего изобретения.
Фиг.12 – блок-схема, иллюстрирующая конструкцию видеодекодера согласно еще одному иллюстративному варианту осуществления настоящего изобретения.
Подробное описание иллюстративных вариантов осуществления
Ниже подробно описываются иллюстративные варианты осуществления настоящего изобретения со ссылкой на сопровождающие чертежи. Аспекты и признаки настоящего изобретения и способы для реализации этих аспектов и признаков станут очевидны при рассмотрении вариантов осуществления, подробно описываемых со ссылкой на сопровождающие чертежи. Однако настоящее изобретение не ограничивается нижеописываемыми вариантами осуществления, но может быть реализовано в разнообразных формах. Информация, приведенная в описании, такая как детали конструкции и элементы, просто представлена для содействия специалистам в данной области техники во всеобъемлющем понимании изобретения, и объем настоящего изобретения определяется только прилагаемой формулой изобретения. По всему описанию настоящего изобретения одни и те же ссылочные номера на чертежах используются для одинаковых элементов по всем чертежам.
Если блоком текущего кадра является OF, предсказанным блоком, получаемым посредством выполнения внешнего предсказания в отношении этого блока, является PF, блоком базового слоя, соответствующим упомянутому блоку текущего кадра, является OB, а предсказанным блоком, получаемым посредством выполнения внешнего предсказания в отношении базового кадра, является PB, остаточный сигнал RB, который соответствует OB, получают из OB – PB.
В этом случае OB, PB и RB являются значениями, которые уже квантованы и восстановлены, а OF и PF являются исходными сигналами в случае структуры с незамкнутым контуром, при этом они представляют собой значения, которые квантованы и восстановлены. Если подлежащее кодированию значение в текущем кадре есть RF, остаточное предсказание может быть выражено уравнением (1). В уравнении (1) U обозначает функцию передискретизации с повышением частоты дискретизации. Поскольку функция передискретизации с повышением частоты дискретизации применяется только тогда, когда разрешения текущего слоя и нижерасположенного слоя отличаются друг от друга, она обозначается как {U} в том смысле, что она может быть применена выборочно.
(1)
С другой стороны, внутреннее базовое предсказание может быть выражено с помощью уравнения (2).
(2)
При сравнении уравнения (1) с уравнением (2) может показаться, что они не имеют общего признака. Тем не менее, посредством повторного выражения их посредством уравнения (3) и уравнения (4) их сходства можно сравнивать друг с другом.
(3)
(4)
В уравнении (4) В обозначает функцию обращенного разбиения на блоки. При сравнении уравнений (3) и (4) видно, что RB используется и в уравнении (3), и в уравнении (4). Наибольшее различие между ними заключается в том, что предсказанный внешним предсказанием блок PF текущего слоя используется в уравнении (3), и предсказанный внешним предсказанием блок PB нижерасположенного слоя используется в уравнении (4). В случае внутреннего базового предсказания, если применяются функция обращенного разбиения на блоки и функция передискретизации с повышением частоты дискретизации, изображение восстановленного кадра становится более гладким, и, таким образом, сокращается количество артефактов, связанных с разбиением на блоки.
Напротив, в уравнении (3) остаточный сигнал RB базового кадра, полученный из PB, прибавляется к предсказанному внешним предсказанием блоку PF текущего кадра, и, таким образом, взаимная несогласованность или связанные с разбиением на блоки артефакты могут иметь место. Хотя данная проблема может быть смягчена, если используется внутреннее базовое предсказание, внутреннее базовое предсказание не может быть использовано даже в том случае, когда эффективность внутреннего базового предсказания не выше, чем эффективность остаточного предсказания. Также, в случае, когда применяется условие декодирования с низкой сложностью, количество блоков, для которых внутреннее базовое предсказание не используется, увеличивается даже в ситуации, когда внутреннее базовое предсказание является более эффективным, и это обуславливает значительное ухудшение рабочих показателей. Соответственно, требуется выработать надлежащие меры, с помощью которых можно было бы сократить связанные с разбиением на блоки артефакты в случае, когда используется остаточное предсказание.
В настоящем изобретении существующее остаточное предсказание дополняется прибавлением сглаживающей функции F к уравнению (3). Согласно настоящему изобретению подлежащие квантованию данные RF текущего блока выражаются уравнением (5).
(5)
Режим предсказания согласно уравнению (5) может быть в чистом виде применен к внешнему предсказанию. Иными словами, в случае внешнего предсказания можно считать, что RB равно нулю, и, таким образом, RF можно выразить уравнением (6).
(6)
Касаемо уравнений (5) и (6) методика, задействующая сглаживающий фильтр в течение существующего остаточного предсказания или внешнего предсказания, определена как сглаживающее предсказание. Подробности процесса выполнения сглаживающего предсказания будут пояснены со ссылкой на Фиг.4. Пример процесса кодирования некоторого блока 20 текущего кадра (в дальнейшем упоминаемого как текущий блок) дается на Фиг.4. Блок 10 в базовом кадре, который соответствует текущему блоку 20, в дальнейшем будет упоминаться как базовый блок.
Сначала предсказанный внешним предсказанием блок 13 для базового блока 10 генерируется из блоков 11 и 12 в периферийных опорных кадрах (т.е. опорном кадре прямого направления, опорном кадре обратного направления и других) соответствующего нижерасположенного слоя посредством базового блока 10 и векторов движения (S1). Затем получают различие между базовым блоком и предсказанным блоком 13 (соответствующим RB в уравнении (5)) (S2). Также генерируют предсказанный внешним предсказанием блок 23 для базового блока 20 (соответствующий PF в уравнении (5)) на основе блоков 21 и 22 в периферийных опорных кадрах соответствующего текущего слоя посредством базового блока 20 и векторов движения (S3). Этап S3 может выполняться перед этапами S1 и S2. В общем случае, предсказанный внешним предсказанием блок означает предсказанный блок для некоторого блока в подлежащем кодированию кадре, который получен из изображения (изображений) опорных кадров, соответствующих этому некоторому блоку. Соответствие блока изображению указывается вектором движения. В общем, предсказанный внешним предсказанием блок, если имеется один опорный кадр, означает само соответствующее изображение или взвешенную сумму соответствующих изображений, если имеется множество опорных кадров.
Далее предсказанный блок 23 и различие, полученное на этапе S2, складываются друг с другом (S4), и блок, сгенерированный в результате такого сложения (соответствующий PF + RB в уравнении (5)), сглаживается с использованием сглаживающего фильтра (S5). Наконец, получают различие между текущим блоком 20 и блоком, сгенерированным в результате сглаживания (соответствующим F(PF + RB) в уравнении (5)) (S6), а затем полученное различие квантуют (S7).
Фиг.4 иллюстрирует процесс сглаживающего предсказания, основывающегося на остаточном предсказании. Основывающийся на внешнем предсказании процесс сглаживающего предсказания значительно проще, чем таковой процесс, основывающийся на остаточном предсказании. А именно, поскольку RB, относящийся к вычислению нижерасположенного слоя на Фиг.5, опускается, все из проиллюстрированных на Фиг.4 этапов S1, S2 и S3 опускаются. Соответственно, предсказанный внешним предсказанием блок 23, сгенерированный на текущем слое, сглаживается посредством сглаживающего фильтра, а затем различие между текущим блоком 20 и блоком, сгенерированным в результате сглаживания (соответствующим F(PF) в уравнении (6)), квантуют.
С другой стороны, важным аспектом также является то, какой сглаживающий фильтр F на самом деле применяется при сглаживающем предсказании. В качестве сглаживающего фильтра F можно использовать известный фильтр В обращенного разбиения на блоки. Также может использоваться комбинация функции U передискретизации с повышением частоты дискретизации и функции D передискретизации с понижением частоты дискретизации, поскольку эффекта сглаживания можно также добиться посредством комбинирования функции передискретизации с повышением частоты дискретизации и функции передискретизации с понижением частоты дискретизации.
Однако, поскольку функция В обращенного разбиения на блоки, функция передискретизации с повышением частоты дискретизации и функция передискретизации с понижением частоты дискретизации требуют значительного объема вычислений, а функция передискретизации с понижением частоты дискретизации обычно служит в качестве весьма сильного фильтра нижних частот имеется вероятность того, что качество деталей изображения в значительной степени ухудшается во время предсказания.
Соответственно, требуется, чтобы процесс применения сглаживающего фильтра выполнялся с малым объемом вычислений. Для этой цели сглаживающий фильтр F может быть просто выражен как линейная функция среди заранее определенного количества соседних пикселей. Например, если это заранее определенное количество равно трем, значение x'(n) пикселя, который отфильтрован из исходного значения x(n) пикселя посредством сглаживающего фильтра F, может быть выражено уравнением (7).
Значения , , могут быть надлежащим образом выбраны так, чтобы их сумма была равной 1. Например, выбирая = , = , = в уравнении (7), значение веса соответствующего пикселя, подлежащего фильтрации, может быть увеличено по сравнению с соседними пикселями. Естественно, можно выбрать большее количество пикселей в уравнении (7).
Используя сглаживающий фильтр F, имеющий простую форму, как описано выше, объем вычислений может быть значительно сокращен, и ухудшение деталей изображения, имеющее место при передискретизации с понижением частоты дискретизации и т.п., может быть также уменьшено.
Фиг.5-8 – это представления, иллюстрирующие примеры применения сглаживающего фильтра в отношении макроблока 60 16 × 16.
Согласно варианту осуществления настоящего изобретения сглаживающий фильтр применяется к соответствующему макроблоку 60 на четырех этапах следующим образом. Со ссылкой на Фиг.5 далее поясняется первый этап среди этих четырех этапов.
Сначала задается горизонтальное окно 50, имеющее размер, который соответствует трем соседствующим пикселям, расположенным в горизонтальном направлении, и сглаживающий фильтр F, который представляет собой линейную функцию, применяется к этим исходным трем соседствующим пикселям, включенным в горизонтальное окно 50. После того как сглаживающий фильтр F применен, горизонтальное окно 50 перемещается на один пиксель в горизонтальном направлении, и сглаживающий фильтр F применяется снова. Вышеописанный процесс повторяется и, если горизонтальное окно 50 достигает правой границы макроблока 60, горизонтальное окно возвращается в свою исходную позицию и перемещается на один пиксель в направлении вниз, а затем сглаживающий фильтр F применяется вновь по мере того, как горизонтальное окно перемещается в горизонтальном направлении. Этот процесс выполняется для всего макроблока 60. На первом этапе фильтрация выполняется 224 (= 14 (по ширине) × 16 (по длине)) раза по отношению к одному макроблоку.
Далее со ссылкой на Фиг.6 поясняется второй этап среди упомянутых четырех этапов.
Задается вертикальное окно 51, имеющее размер, который соответствует трем соседствующим пикселям, расположенным в вертикальном направлении, и сглаживающий фильтр F, который представляет собой линейную функцию, применяется к этим исходным трем соседствующим пикселям, включенным в вертикальное окно. После того, как сглаживающий фильтр F применен, вертикальное окно 51 перемещается на один пиксель в горизонтальном направлении, и сглаживающий фильтр применяется снова. Вышеописанный процесс повторяется, и если вертикальное окно достигает правой границы макроблока 60, вертикальное окно 51 возвращается в свое исходное положение и перемещается на один пиксель в направлении вниз, а затем сглаживающий фильтр применяется вновь по мере того, как вертикальное окно перемещается в горизонтальном направлении. Этот процесс выполняется для всего макроблока 60. На втором этапе фильтрация выполняется 224 (= 14 (по ширине) × 16 (по длине)) раза по отношению к одному макроблоку.
Посредством рассмотренных первого этапа и второго этапа применение сглаживающего фильтра F к пикселям внутри макроблока 60, которые не являются смежными границе макроблока, завершается. Далее требуется применение сглаживающего фильтра к пикселям, примыкающим к верхней границе макроблока 60, и применение сглаживающего фильтра к пикселям, примыкающим к левой границе макроблока 60.
Далее со ссылкой на Фиг.7 поясняется третий этап, который соответствует процессу фильтрации в отношении левой границы, среди упомянутых четырех этапов.
Задается горизонтальное окно 53, имеющее размер, который соответствует трем соседствующим пикселям, расположенным в горизонтальном направлении, так что верхний левый пиксель макроблока 60 располагается в центре горизонтального окна 53. Затем сглаживающий фильтр F, который представляет собой линейную функцию, применяется к этим трем исходным соседствующим пикселям, включенным в горизонтальное окно 53. После того, как сглаживающий фильтр F применен, горизонтальное окно 53 перемещается на один пиксель в вертикальном направлении, и сглаживающий фильтр F применяется снова. Вышеописанный процесс повторяется до тех пор, пока горизонтальное окно 53 не достигнет нижней границы макроблока 60. На третьем этапе фильтрация выполняется 16 раз по отношению к одному макроблоку.
Наконец, со ссылкой на Фиг.8 поясняется четвертый этап, который соответствует процессу фильтрации в отношении верхней границы, среди упомянутых четырех этапов.
Задается вертикальное окно 54, имеющее размер, который соответствует трем соседствующим пикселям, расположенным в вертикальном направлении, так что верхний левый пиксель макроблока 60 располагается в центре вертикального окна 54. Затем сглаживающий фильтр F, который представляет собой линейную функцию, применяется к этим трем исходным соседствующим пикселям, включенным в вертикальное окно 54. После того, как сглаживающий фильтр F применен, вертикальное окно 54 перемещается на один пиксель в горизонтальном направлении, и сглаживающий фильтр F применяется снова. Вышеописанный процесс повторяется до тех пор, пока вертикальное окно 54 не достигнет правой границы макроблока 60. На четвертом этапе фильтрация выполняется 16 раз по отношению к одному макроблоку.
Изменение порядка соответствующих четырех этапов не окажет значительного влияния на эффекты, достигаемые согласно настоящему изобретению. Согласно вариантам осуществления настоящего изобретения, проиллюстрированным на Фиг.5-8, :: задается как 1:2:1 в уравнении (7). Однако большого различия в достигаемом эффекте, даже при изменении этого соотношения, нет. Это может быть показано по результатам эксперимента, иллюстрируемого Фиг.9.
Фиг.9 представляет собой график, иллюстрирующий PSNR, полученное посредством сжатия той же самой последовательности, используя другой адаптивный фильтр, на основе PSNR, полученного посредством сжатия последовательности Football CIF, используя сглаживающий фильтр 1:2:1.
На Фиг.9 график 91 представляет собой результат адаптивного использования сглаживающего фильтра 1:2:1 и сглаживающего фильтра 1:3:1, график 92 представляет собой результат адаптивного использования сглаживающего фильтра 1:2:1 и сглаживающего фильтра 1:14:1, а график 93 представляет собой результат адаптивного использования сглаживающего фильтра 1:2:1 и сглаживающего фильтра 1:6:1. Согласно Фиг.9 можно видеть, что по сравнению со случаем, в котором используется сглаживающий фильтр 1:2:1, PSNR максимально улучшается только приблизительно на 0,005 дБ, даже если используется адаптивный фильтр.
Настоящий вариант осуществления показывает пример, где сглаживающий фильтр применяется в единицах макроблока. Однако для специалистов в данной области техники должно быть в полной мере понятно, что сглаживающий фильтр может применяться в единицах подблока 4 × 4 или в других единицах.
Как описано выше, посредством применения сглаживающего фильтра согласно уравнению (5) проблема, заключающаяся в том, что показатели эффективности кодирования ухудшаются вследствие существующего условия декодирования за один цикл, некоторым образом смягчается. Однако, если используется сглаживающая функция при декодировании за один цикл, предложенном для снижения сложности, то сложность может скорее возрасти.
В предположении, что OF восстанавливается посредством выполнения декодирования согласно уравнению (5), обращенное дискретное косинусное преобразование (DCT) должно быть выполнено по отношению к RB и PF. Для сокращения процесса обращенного DCT во время процесса декодирования может использоваться уравнение (8).
(8)
Согласно уравнению (8) RB, который остается в качестве компонента, являющегося коэффициентом преобразования, не осуществляя отдельный процесс обращенного DCT, прибавляется к остатку текущего блока RB, а затем в отношении него выполняется обращенное DCT в то же время. Соответственно, процесс обращенного DCT не выполняется дважды, а выполняется только один раз, с целью снижения сложности. Также, в случае выполнения декодирования согласно уравнению (5) сглаживающий фильтр применяется к сумме RB и PF, в то время как в случае выполнения декодирования согласно уравнению (8) сглаживающая функция применяется только к предсказанному сигналу PF.
В соответствии с вышеприведенным описанием для применения сглаживающего предсказания согласно варианту осуществления настоящего изобретения к существующему рабочему проекту JSVM-4 (Julien Reichel, Heiko Schwarz и Mathias Wien, Joint Scalable Video Mode JSVM-4, встреча JVT, Ницца, Франция) требуется некая модификация в синтаксисе, семантике и процессе декодирования. Во-первых, части, подлежащие модификации в синтаксисе, показаны в Таблице 1. Таблица 1 является частью Residual in scalable extension syntax, упоминаемой в Статье G.7.3.8.3 JSVM-4, и подлежащие модификации части подчеркнуты.
[Таблица 1] Часть остатка в синтаксисе масштабируемого расширения
Флаг smoothed_reference_flag, который представляет собой новый элемент синтаксиса, закодирован в данном случае, где как residual_prediction_flag, так и base_mode_flag установлены в 1 из условия декодирования за один цикл. Условие декодирования за один цикл указывается функцией constrained_inter_layer_pred(). Флаг residual_prediction_flag является флагом, который показывает, используется ли остаточное предсказание, а base_mode_flag – это флаг, который показывает, используется ли режим пропуска базового слоя. Если значением данного флага является 1 (истина), он показывает, что соответствующая операция должна быть выполнена, в то время как если значением данного флага является 0 (ложь), он показывает, что соответствующая операция не должна быть выполнена. В частности, касаемо режима декодирования за множество циклов следует отметить, что в отношении синтаксиса нет увеличения объема служебной информации.
В режиме пропуска базового слоя (BL) отдельный процесс оценки движения не выполняется на текущем слое, а используются вектор движения и структура макроблока, которые были получены в процессе оценки движения, выполненном на базовом слое, в том виде, в каком они есть, на текущем слое. Соответственно, по сравнению со случаем, когда данный режим не используется, сокращается объем вычислений и повышается эффективность кодирования, поскольку информация движения текущего слоя не кодируется. Однако если распределение движения на текущем слое в некотором смысле отличается от такового на базовом слое, может иметь место снижение качества изображения. Соответственно, режим пропуска базового слоя главным образом используется в случае, когда распределения движения между слоями подобны друг другу.
С другой стороны, части, которые должны быть изменены в плане семантики, представляют собой части, которые описывают семантику smoothed_reference_flag. Смысловое содержание данного флага раскрыто в Residual in scalable extension semantics в Главе G.7.4.8.3 JSVM-4.
Если smoothed_reference_flag представляет собой 1, это означает, что сглаживающая функция применяется к сумме, предсказанной внешним предсказанием выборки и остаточной выборки базового слоя, в то время как если smoothed_reference_flag представляет собой 0, это означает, что сглаживающая функция не применяется. Если флага smoothed_reference_flag нет, считается, что его значение равно 0.
Наконец, части, которые должны быть изменены в процессе декодирования, описаны в Главе G.8.4.2.4 JSVM-4. В этой главе описано содержимое по-новому определенной сглаживающей функции. В процессе декодирования, если smoothed_reference_flag равен 1, обращаются к Главе G.8.4.2.4.
Более конкретно, сперва обращаются к resPredL[x, y] (где x и y лежат в диапазоне от 0 до 15, соответственно) (размер макроблока), который представляет собой массив соответствующих яркости остаточных выборок базового слоя, полученный на основе процесса остаточного предсказания, и к resPredCb[x, y] и resPredCr[x, y] (где x лежит в диапазоне от 0 до MbWidthC – 1, а y лежит в диапазоне от 0 до MbHeightC – 1), которые представляют собой массивы соответствующих цветности остаточных выборок базового слоя. После этого, соответственная предсказанная внешним предсказанием выборка PredL[x, y], соответствующая яркости, прибавляется к соответствующей яркости остаточной выборки resPredL[x, y], подлежащей обновлению с помощью уравнения (9). Здесь x и y соответственно показывают x-координату и y-координату пикселя, включенного в текущий макроблок.
(9)
Также, если chroma_format_idc не 0 (т.е., в случае цветного изображения), соответственные предсказанные внешним предсказанием выборки predCb[x, y] и predCr[x, y] обновляются с помощью уравнения (10).
(10)
Далее поясняется процесс применения сглаживающей функции в отношении predL[x, y], обновленной согласно уравнению (9), и predCb[x, y] и predCr[x, y], обновленным согласно уравнению (10). Этот процесс состоит из четырех этапов, что отражено на Фиг.5-8.
Сначала предсказанные внешним предсказанием выборки, обновленные согласно уравнениям (9) и (10), обновляются согласно уравнению (11) по мере прохождения через процесс применения сглаживающей функции, как показано на Фиг.5.
Уравнение (11) должно воплощать применение сглаживающей функции по мере попиксельного перемещения горизонтального окна (50 на Фиг.5) в макроблоке (60 на Фиг.5). Поскольку размер макроблока компонента яркости составляет 16 × 16, а размер макроблока компонента цветности составляет MbWidthC × MbHeightC, диапазоны x и y для компонента яркости и компонента цветности указываются по-разному. Сглаживающая функция, которая используется в уравнении (11), представляет собой линейную функцию 1:2:1.
С другой стороны, предсказанные внешним предсказанием выборки, обновленные согласно уравнению (11), обновляются согласно уравнению (12) по мере прохождения процесса применения сглаживающей функции, как показано на Фиг.6.
Предсказанные внешним предсказанием выборки, обновленные согласно уравнению (12), обновляются согласно уравнению (13) по мере прохождения процесса применения сглаживающей функции, как показано на Фиг.7.
Здесь xP и yP обозначают абсолютные координаты (т.е. положение в кадре) первой соответствующей яркости выборки, которая принадлежит текущему макроблоку, и S’L[xP + x – 1, yP + y] обозначает величину выборки, имеющей соответствующие абсолютные координаты (xP + x – 1, yP + y) среди соответствующих яркости выборок, включенных в сглаженный макроблок. Аналогичным образом, S’Cb[xC + x – 1, yC + y] и S’Cr[xC + x – 1, yC + y] обозначают величину выборки, имеющей соответствующие абсолютные координаты (xC + x – 1, yC + y) среди соответствующих цветности выборок, включенных в сглаженный макроблок. xC и yP обозначают абсолютные координаты первой соответствующей цветности выборки, которая принадлежит текущему макроблоку.
Наконец, предсказанные внешним предсказанием выборки, обновленные согласно уравнению (13), обновляются согласно уравнению (14) по мере прохождения процесса применения сглаживающей функции, как показано на Фиг.8.
Фиг.10 – это блок-схема, иллюстрирующая конструкцию видеокодера 100 согласно варианту осуществления настоящего изобретения.
Изначально, конкретный блок, включенный в текущий блок (в дальнейшем упоминаемый как текущий блок) OF, вводится в средство 103 передискретизации с понижением частоты дискретизации. Средство 103 передискретизации с понижением частоты дискретизации выполняет пространственную и/или временную дискретизацию с понижением частоты дискретизации в отношении текущего блока OF и генерирует соответствующий блок OB базового слоя.
Модуль 205 оценки движения выполняет оценку движения для блока OB базового слоя с обращением к соседнему кадру FB‘ и получает вектор MVB движения. Данный соседний кадр, к которому осуществляется обращение согласно вышеописанному, называется опорным кадром. В общем, алгоритм, широко используемый для оценки движения, – это алгоритм соотнесения блоков. Согласно данному алгоритму соотнесения блоков оценивается смещение, которое соответствует минимальной ошибке, в качестве вектора движения по мере перемещения заданного блока движения в единицах пикселя или подпикселя (например, пикселя, пикселя) в заданной области поиска опорного кадра. Оценку движения можно выполнять, используя блок движения фиксированного размера или используя блок движения, имеющий переменный размер согласно иерархическому соотнесению блоков переменного размера (HVSBM), используемому в H.264.
Если видеокодер 100 выполнен в форме кодека с незамкнутым контуром, исходный соседний кадр FB‘, сохраненный в буфере, используется в качестве опорного кадра. Однако, если видеокодер 100 выполнен в форме кодека с замкнутым контуром, в качестве опорного кадра будет использоваться кадр, декодируемый после того, как он был закодирован (на показано). В дальнейшем, настоящее изобретение будет поясняться в контексте кодека с незамкнутым контуром, но не ограничиваясь им при этом.
Вектор MVB движения, полученный модулем 205 оценки движения, подается на модуль 210 компенсации движения. Модуль 210 компенсации движения извлекает соответствующее изображение среди опорных кадров FB‘ посредством вектора MVB движения и генерирует предсказанный внешним предсказанием блок PB. Если используется двунаправленное обращение, предсказанный внешним предсказанием блок может быть вычислен на основе среднего от извлеченного изображения. Если используется однонаправленное обращение, предсказанный внешним предсказанием блок может быть тем же, что и извлеченное изображение.
Вычитатель 215 вычитает предсказанный внешним предсказанием блок PB из блока OB базового слоя для формирования остаточного блока RB. Остаточный блок RB подается в средство 140 передискретизации с повышением частоты дискретизации и модуль 220 преобразования.
Средство 140 передискретизации с повышением частоты дискретизации выполняет передискретизацию с повышением частоты дискретизации в отношении остаточного блока RB. В общем, передискретизация с повышением частоты дискретизации по схеме n:1 предназначена не просто для растягивания одного пикселя на n пикселей, но представляет собой рабочий процесс с рассмотрением соседних пикселей. Хотя результат более мягкой передискретизации с повышением частоты дискретизации может проявиться в том, что количество соседних пикселей становится больше, может быть получено в некотором смысле искаженное изображение, и, таким образом, требуется выбирать надлежащее количество соседних пикселей. Если разрешение базового слоя такое же, как разрешение текущего слоя, выполняемую средством 140 передискретизации с повышением частоты дискретизации операцию передискретизации с повышением частоты дискретизации можно опустить.
Текущий блок OF также вводится в модуль 110 компенсации движения, буфер 101 и вычитатель 115. Если base_mode_flag есть 1, т.е. если структура макроблока текущего слоя подобна структуре макроблока базового слоя и он соответствует режиму пропуска базового слоя, вектор движения и структура макроблока, которые были получены в процессе оценки движения, выполненном на базовом слое, используются на текущем слое как есть, и, таким образом, не требуется выполнять отдельного процесса оценки движения. Однако определение отдельных вектора движения и структуры макроблока посредством отдельного процесса оценки движения на текущем слое подпадает под объем настоящего изобретения. В дальнейшем будет поясняться случай использования режима пропуска базового слоя.
Вектор MVB движения, полученный в модуле 205 оценки движения, подается в модуль 110 компенсации движения. Модуль 110 компенсации движения извлекает соответствующее изображение среди опорных кадров FF‘, предоставленных из буфера 101, на основе вектора MVB движения и формирует предсказанный внешним предсказанием блок PF. Если разрешение базового слоя такое же, как разрешение текущего слоя, модуль 110 компенсации движения использует вектор MVB движения базового слоя в качестве вектора движения текущего слоя. Однако, если упомянутые разрешения неодинаковые, модуль компенсации движения растягивает вектор MVB движения в количество раз, соответствующее отношению разрешения текущего слоя к разрешению базового слоя, и использует растянутый вектор движения в качестве вектора движения текущего слоя.
Сумматор 135 прибавляет сигнал U·RB, предоставленный из средства 140 передискретизации с повышением частоты дискретизации, к сигналу PF, предоставленному из модуля 110 компенсации движения, и подает результат сложения U·RB + PF на сглаживающий фильтр 130. Этот процесс сложения соответствует рабочему процессу по уравнениям (9) и (10).
Сглаживающий фильтр 130 выполняет сглаживание результата сложения U·RB + PF посредством применения сглаживающей функции, т.е. функции обращенного разбиения на блоки. В качестве сглаживающей функции может использоваться функция обращенного разбиения на блоки, используемая в общеизвестном H.264, или комбинация функции передискретизации с повышением частоты дискретизации и функции передискретизации с понижением частоты дискретизации. Однако для снижения объема вычислений согласно условию низкой сложности может использоваться простая линейная функция, как в уравнении (7). Эта линейная функция может применяться в единицах блока (т.е. подблока или макроблока) и может применяться к границе блока или границе блока и всей внутренности блока. В предпочтительном варианте осуществления примеры применения сглаживающей функции к границе блока и всей внутренности блока за четыре этапа поясняются со ссылкой на Фиг.5-8 и уравнения (11)-(14). Естественно, порядок этих четырех этапов может меняться.
Вычитатель 115 вычитает сигнал F(PF + U·RB), который предоставляется в качестве результата сглаживания, выполненного сглаживающим фильтром 130, из текущего блока OF и формирует остаточный сигнал RF текущего слоя.
Модуль 120 преобразования выполняет пространственное преобразование по отношению к остаточному сигналу RF и генерирует коэффициенты преобразования RFT. В качестве метода пространственного преобразования можно использовать дискретное косинусное преобразование (DCT) и вейвлетное преобразование. В случае использования DCT коэффициентами преобразования будут коэффициенты DCT, в то время как в случае вейвлетного преобразования коэффициентами преобразования будут вейвлет-коэффициенты.
Модуль 125 квантования выполняет квантование коэффициентов RFT преобразования и генерирует коэффициенты RFQ квантования. Квантование – это процесс представления коэффициентов преобразования RFT, выраженных некоторыми действительными значениями, посредством дискретных значений. Например, модуль 125 квантования разделяет коэффициенты преобразования, выраженные некоторыми действительными значениями, на заданные этапы квантования и округляет результирующие значения до ближайших целых чисел.
Остаточный сигнал RB базового слоя также преобразуется в коэффициенты RBQ квантования посредством модуля 220 преобразования и модуля 225 квантования.
Модуль 150 энтропийного кодирования выполняет кодирование без потерь в отношении вектора MVB движения, оцененного модулем 205 оценки движения, коэффициентов RFQ квантования, предоставленных модулем 125 квантования, и коэффициентов RBQ квантования, предоставленных модулем 225 квантования, и генерирует битовый поток. В качестве упомянутого метода кодирования без потерь может использоваться кодирование Хаффмана, арифметическое кодирование, кодирование с переменной длиной и т.п.
Фиг.11 – блок-схема, иллюстрирующая конструкцию видеодекодера 300 согласно варианту осуществления настоящего изобретения.
Модуль 305 энтропийного декодирования выполняет декодирование без потерь в отношении входного битового потока и извлекает данные RFQ текстуры текущего блока, данные RBQ текстуры базового блока, соответствующего текущему слою, и вектор MVB движения блока базового слоя. Процесс декодирования без потерь – это процесс, который является обратным по отношению к выполняемому в кодере процессу кодирования без потерь.
Данные RFQ текстуры текущего блока подаются в модуль 310 обратного квантования, а данные RBQ текстуры базового блока подаются в модуль 410 обратного квантования. Вектор MVB движения блока базового слоя подается в модуль 350 компенсации движения.
Модуль 310 обратного квантования выполняет обратное квантование в отношении данных RFQ текстуры текущего блока. Этот процесс обратного квантования представляет собой процесс восстановления значений, которые согласуются с индексами, сгенерированными в процессе квантования, используя ту же таблицу квантования, что использовалась в процессе квантования.
Модуль 320 обратного преобразования выполняет обратное преобразование в отношении результата обратного квантования. Обратное преобразование – это процесс, обратный по отношению к процессу преобразования в кодере. Более конкретно, в модуле обратного преобразования могут использоваться обратное преобразование DCT и обратное вейвлетное преобразование, и в результате этого обратного преобразования восстанавливается остаточный сигнал RF для текущего блока.
С другой стороны, модуль 410 обратного квантования выполняет обратное квантование в отношении данных RBQ текстуры блока базового слоя, а модуль 420 обратного преобразования выполняет обратное преобразование в отношении результата обратного квантования RBT. В результате этого обратного преобразования восстанавливается остаточный сигнал RВ для блока базового слоя. Восстановленный остаточный сигнал RВ подается в средство 380 передискретизации с повышением частоты дискретизации.
Средство 380 передискретизации с повышением частоты дискретизации выполняет передискретизацию с повышением частоты дискретизации в отношении остаточных данных RВ. Если разрешение базового слоя такое же, как разрешение текущего слоя, выполняемую средством 380 передискретизации с повышением частоты дискретизации операцию передискретизации с повышением частоты дискретизации можно опустить.
Модуль 350 компенсации движения извлекает соответствующее изображение среди опорных кадров FF‘, предоставленных из буфера 340, посредством вектора MVB движения и формирует предсказанный внешним предсказанием блок PF. Если разрешение базового слоя такое же, как разрешение текущего слоя, модуль 350 компенсации движения использует вектор MVB движения базового слоя в качестве вектора движения текущего слоя. Однако, если упомянутые разрешения не одинаковые, модуль компенсации движения растягивает вектор MVB движения в количество раз, равное отношению разрешения текущего слоя к разрешению базового слоя, и использует растянутый вектор движения в качестве вектора движения текущего слоя.
Сумматор 360 прибавляет сигнал U·RB, предоставленный из средства 380 передискретизации с повышением частоты дискретизации, к сигналу PF, предоставленному модулем 350 компенсации движения, и подает результат сложения U·RB + PF на сглаживающий фильтр 370. Данный процесс сложения соответствует рабочему процессу по уравнениям (9) и (10).
Сглаживающий фильтр 370 выполняет сглаживание результата сложения U·RB + PF посредством применения сглаживающей функции, т.е. функции обращенного разбиения на блоки. В качестве сглаживающей функции может использоваться та же сглаживающая функция, что и сглаживающая функция, используемая в сглаживающем фильтре 130, показанном на Фиг.10.
Сумматор 330 прибавляет сигнал F(U·RB + PF), который предоставлен в качестве результата сглаживания, выполненного сглаживающим фильтром 370, к остаточному блоку RF, сгенерированному в результате обратного преобразования, выполненного модулем 320 обратного преобразования. Соответственно, текущие блоки OF восстанавливаются, и, посредством комбинирования множества текущих блоков OF, восстанавливается один кадр FF. Буфер 340 временно сохраняет окончательно восстановленный кадр FF и выдает сохраненный кадр в качестве опорного кадра FF‘ во время восстановления другого кадра.
С другой стороны, проиллюстрированный на Фиг.12 видеодекодер 400, который восстанавливает текущий блок согласно уравнению (8), некоторым образом отличается от видеодекодера 300, проиллюстрированного на Фиг.11.
Согласно Фиг.12, предсказанный внешним предсказанием блок PF, предоставленный модулем 350 компенсации движения, напрямую вводится в сглаживающий фильтр 370 для сглаживания, и сумматор 360 прибавляет результат U·RB передискретизации с повышением частоты дискретизации, выполненной средством 380 передискретизации с повышением частоты дискретизации, к остаточному блоку RF. Наконец, сумматор 330 прибавляет результат сглаживания F(PF) к результату сложения U·RB + RF для восстановления текущего блока OF.
В вариантах осуществления настоящего изобретения, проиллюстрированных на Фиг.10-12, приводится пример, что видеокадр, скомпонованный из двух слоев, кодируется. Однако специалистам в данной области техники следует в полной мере отдавать себе отчет в том, что настоящее изобретение не ограничивается данным примером и может быть также применено к кодированию видеокадра, скомпонованного из трех или более слоев.
Соответствующие составляющие элементы по Фиг.10-12 могут быть реализованы посредством программного обеспечения, такого как задача, которая выполняется в заданной области памяти, класс, процедура, процесс, объект, поток исполнения или программа, либо аппаратного обеспечения, такого как эксплуатационно-программируемая вентильная матрица (FPGA) или специализированная интегральная микросхема (ASIC), либо комбинации программного и аппаратного обеспечения. Эти соответствующие составляющие элементы могут быть включены в машиночитаемый носитель или их части могут быть распределены по множеству компьютеров.
В соответствии с вышесказанным, согласно настоящему изобретению может быть повышена эффективность кодека, который использует остаточное предсказание или внешнее предсказание.
В частности, может быть повышена эффективность кодека, который использует внутреннее базовое предсказание при наложенном условии декодирования с низкой сложностью.
Предпочтительные варианты осуществления настоящего изобретения были изложены в иллюстративных целях и специалистам в данной области техники должно быть очевидно, что разнообразные модификации, добавления и исключения возможны, не выходя за рамки объема настоящего изобретения, определяемого прилагаемой формулой изобретения. Иными словами, объем настоящего изобретения определяется прилагаемой формулой изобретения и ее эквивалентами.
Формула изобретения
1. Основывающийся на множестве слоев способ видеокодирования, содержащий этапы, на которых (a) получают различие между предсказанным блоком для второго блока нижерасположенного слоя, который соответствует первому блоку, включенному в текущий слой, и вторым блоком, (b) прибавляют полученное различие к предсказанному блоку для первого блока, (c) сглаживают третий блок, сгенерированный в результате прибавления, используя сглаживающую функцию, и (d) кодируют различие между первым блоком и сглаженным третьим блоком.
2. Способ видеокодирования по п.1, в котором предсказанный блок для первого блока и предсказанный блок для второго блока являются блоками, предсказанными внешним предсказанием.
3. Способ видеокодирования по п.1, в котором предсказанный блок для второго блока получают посредством процесса оценки движения и процесса компенсации движения.
4. Способ видеокодирования по п.3, в котором предсказанный блок для первого блока получают посредством процесса компенсации движения с использованием векторов движения, сгенерированных в процессе оценки движения.
5. Способ видеокодирования по п.1, дополнительно содержащий этап, на котором перед этапом (b) выполняют передискретизацию с повышением частоты дискретизации в отношении полученного различия, причем различие, которое прибавляют на этапе (b), представляет собой различие, в отношении которого выполнена передискретизация с повышением частоты дискретизации.
6. Способ видеокодирования по п.1, в котором сглаживающая функция указывается как линейная комбинация подлежащего сглаживанию пикселя и его соседних пикселей.
7. Способ видеокодирования по п.6, в котором упомянутые соседние пиксели являются двумя пикселями, прилегающими к подлежащему сглаживанию пикселю в вертикальном или горизонтальном направлении.
8. Способ видеокодирования по п.7, в котором весовое значение подлежащего сглаживанию пикселя равно 1/2, а весовые значения упомянутых двух соседних пикселей равны 1/4 соответственно.
9. Способ видеокодирования по п.6, в котором этап (с) включает в себя этап, на котором сглаживают пиксель по мере перемещения горизонтального окна, которое включает в себя подлежащий сглаживанию пиксель и соседние пиксели, расположенные слева и справа от данного пикселя, в пределах третьего блока.
10. Способ видеокодирования по п.6, в котором этап (с) включает в себя этап, на котором сглаживают пиксель по мере перемещения вертикального окна, которое включает в себя подлежащий сглаживанию пиксель и соседние пиксели, расположенные сверху и снизу от данного пикселя, в пределах третьего блока.
11. Способ видеокодирования по п.6, в котором этап (с) включает в себя этап, на котором сглаживают пиксель по мере перемещения горизонтального окна, которое включает в себя пиксель, прилегающий к левой границе третьего блока, и соседние пиксели, расположенные слева и справа от данного пикселя, вдоль левой границы третьего блока.
12. Способ видеокодирования по п.6, в котором этап (с) включает в себя этап, на котором сглаживают пиксель по мере перемещения вертикального окна, которое включает в себя пиксель, прилегающий к верхней границе третьего блока, и соседние пиксели, расположенные сверху и снизу от данного пикселя, вдоль верхней границы третьего блока.
13. Способ видеокодирования по п.9, в котором третий блок является макроблоком или подблоком.
14. Способ формирования битового потока посредством кодирования блока видеокадра с помощью различия между данным блоком и предсказанным блоком, при этом способ включает в себя этап, на котором в битовый поток вставляют информацию, которая показывает, была ли в отношении предсказанного блока применена сглаживающая фильтрация.
15. Способ по п.14, в котором предсказанный блок получают из предсказанного внешним предсказанием блока для упомянутого блока и остаточного блока нижерасположенного слоя упомянутого блока.
16. Способ по п.15, дополнительно содержащий этап, на котором в битовый поток вводят информацию, показывающую, предсказан ли упомянутый блок посредством предсказанного блока.
17. Способ по п.14, в котором к упомянутому блоку применяют остаточное предсказание, и упомянутый блок декодируется за один цикл.
18. Способ декодирования текущего блока видеокадра на основе предсказанного блока, содержащий этапы, на которых восстанавливают предсказанный блок, выполняют сглаживающую фильтрацию в отношении предсказанного блока, и восстанавливают текущий блок из предсказанного блока, в отношении которого выполнена сглаживающая фильтрация, при этом предсказанный блок получают из предсказанного внешним предсказанием блока для текущего блока и остаточного блока нижерасположенного слоя текущего блока.
19. Способ по п.18, в котором сглаживающая фильтрация указывается как линейная комбинация подлежащего сглаживанию пикселя и его соседних пикселей, при этом упомянутые пиксель и его соседние пиксели принадлежат предсказанному блоку.
20. Способ по п.19, в котором упомянутые соседние пиксели представляют собой два пикселя, прилегающих к подлежащему сглаживанию пикселю в вертикальном или горизонтальном направлении.
21. Способ по п.20, в котором при сглаживающей фильтрации взвешивают подлежащий сглаживанию пиксель со значением 1/2 и взвешивают упомянутые два соседних пикселя со значением 1/4 соответственно.
22. Способ по п.20, в котором, если подлежащий сглаживанию пиксель представляет собой пиксель, прилегающий к границе упомянутого блока, пиксели блоков, прилегающих к упомянутому блоку, выбираются в качестве упомянутых соседних пикселей.
23. Способ декодирования текущего блока видеокадра на основе предсказанного блока, содержащий этапы, на которых восстанавливают предсказанный блок, выполняют сглаживающую фильтрацию в отношении предсказанного блока, если текущий блок использует остаточное предсказание и режим пропуска базового слоя, и восстанавливают текущий блок из предсказанного блока.
24. Способ по п.23, в котором предсказанный блок получают из предсказанного внешним предсказанием блока для текущего блока и остаточного блока базового слоя текущего блока.
25. Способ по п.24, в котором сглаживающая фильтрация указывается как линейная комбинация пикселя текущего блока и двух прилегающих пикселей.
26. Способ по п.24, в котором пиксель текущего блока образует линейную комбинацию с двумя прилегающими пикселями, расположенными сверху и снизу или слева и справа относительно данного пикселя.
27. Основывающийся на множестве слоев способ видеодекодирования, содержащий этапы, на которых (a) восстанавливают первый остаточный сигнал первого блока из данных текстуры первого блока текущего кадра, включенного во входной битовый поток, (b) восстанавливают второй остаточный сигнал для второго блока базового слоя, который включен в битовый поток и соответствует упомянутому блоку, (c) прибавляют первый остаточный сигнал ко второму остаточному сигналу, (d) сглаживают предсказанный внешним предсказанием блок для первого блока, используя сглаживающий фильтр, и (e) прибавляют результат упомянутого прибавления к сглаженному предсказанному внешним предсказанием блоку.
28. Основывающийся на множестве слоев видеокодер, содержащий секцию, которая получает различие между предсказанным блоком для второго блока нижерасположенного слоя, который соответствует первому блоку, включенному в текущий слой, и вторым блоком, секцию, которая прибавляет полученное различие к предсказанному блоку для первого блока, секцию, которая сглаживает третий блок, сгенерированный в результате прибавления, используя сглаживающую функцию, и секцию, которая кодирует различие между первым блоком и сглаженным третьим блоком.
29. Основывающийся на множестве слоев видеодекодер, содержащий секцию, которая восстанавливает остаточные данные первого блока из данных текстуры первого блока текущего кадра, включенного во входной битовый поток, секцию, которая восстанавливает остаточный сигнал для второго блока базового слоя, который включен в битовый поток и соответствует упомянутому блоку, секцию, которая прибавляет упомянутый остаточный сигнал для второго блока к предсказанному блоку для первого блока, секцию, которая сглаживает третий блок, сгенерированный в результате упомянутого прибавления, используя сглаживающий фильтр, и секцию, которая прибавляет остаточный сигнал для первого блока к сглаженному третьему блоку.
РИСУНКИ
|
|