Код документа: RU2367113C1
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии сжатия видео и более конкретно к фильтру устранения блочности, используемому в кодировщике/декодере многослойного видео.
Уровень техники
С развитием технологий информации и связи, передачи данных мультимедиа увеличиваются в дополнение к передаче данных текста и речи. Существующие ориентированные на текст системы связи недостаточны для удовлетворения разнообразных желаний потребителей, и, таким образом, увеличиваются в объеме услуги мультимедиа, которые могут обеспечивать разнообразные формы информации, такие как текст, изображение, музыка и другие. Так как данные мультимедиа являются большими, для хранения и передачи данных мультимедиа требуются запоминающие устройства большой емкости и широкие полосы пропускания. Соответственно, требуются сжимающие технологии кодирования, чтобы передавать данные мультимедиа, которые включают в себя текст, изображения и аудиоданные.
Базовый принцип сжатия данных - это удалять избыточность данных. Данные могут сжиматься посредством удаления пространственной избыточности, такой как повторение одного и того же цвета или объекта в изображениях, временной избыточности, такой как маленькое изменение смежных кадров в кадрах движущегося изображения или непрерывное повторение звуков в звуковом сопровождении, и зрительной/воспринимаемой избыточности, которая учитывает нечувствительность зрения и восприятия людей к высоким частотам. В общем способе кодирования видео временная избыточность удаляется посредством временной фильтрации, базирующейся на компенсации движения и пространственная избыточность удаляется посредством пространственного преобразования.
Чтобы передавать мультимедиа после удаления избыточности данных, требуются носители передачи, чьи производительности различаются. В настоящее время используемые носители передачи имеют разнообразные скорости передачи. Например, сеть связи сверхвысокой скорости может передавать несколько десятков мегабит данных в секунду и мобильная сеть связи имеет скорость передачи, равную 384 килобит в секунду. Чтобы поддерживать носители передачи в такой среде передачи и чтобы передавать мультимедиа со скоростью передачи, подходящей для среды передачи, наиболее подходящим является способ масштабируемого кодирования данных.
Этот способ кодирования делает возможным выполнять частичное декодирование одного сжатого битового потока на стороне декодера или предварительного декодера согласно скорости передачи битов, частоте ошибок и состоянию ресурсов системы. Декодер или предварительный декодер может восстанавливать последовательность мультимедиа, имеющую различающееся качество изображения, разрешение или частоту кадров, посредством принятия только части битового потока, кодированного с помощью способа масштабируемого кодирования.
По отношению к такому масштабируемому кодированию видео MPEG-21 (экспертная группа-21 по вопросам движущегося изображения) PART-13 уже продвинулась в своей работе по стандартизации. Конкретно, было сделано большое исследование для реализации масштабируемости в способе кодирования видео, базирующемся на множестве слоев. В качестве примера такого многослойного кодирования видео, многослойная структура компонуется из базового слоя, первого расширенного слоя и второго расширенного слоя, и соответствующие слои имеют разные разрешения QCIF, CIF и 2CIF и разные частоты кадров.
Фиг. 1 показывает пример масштабируемого видеокодека, использующего многослойную структуру. В этом видеокодеке базовый слой установлен на QCIF (четвертной общий промежуточный формат) на 15 Гц (частота кадров), первый расширенный слой установлен на CIF (общий промежуточный формат) на 30 Гц и второй расширенный слой установлен на SD (стандартная четкость) на 60 Гц.
В кодировании такого многослойного видеокадра может использоваться корреляция среди слоев. Например, некоторая область 12 видеокадра первого расширенного слоя эффективно кодируется через предсказание, основанное на соответствующей области 13 видеокадра базового слоя. Таким же способом область 11 видеокадра второго расширенного слоя может эффективно кодироваться через предсказание исходя из области 12 первого расширенного слоя. Если соответствующие слои многослойного видеокадра имеют разные разрешения, изображение базового слоя должно дискретизироваться с повышением до выполнения предсказания.
В нынешнем стандарте MPEG-21 масштабируемого кодирования видео (ниже указываемом как стандарт SVC) исследование находится на пути к реализации многослойного видеокодека как в примере, показанном на фиг. 1, базирующейся на существующем H.264/AVC (улучшенное кодирование видео).
Однако H.264 использует преобразование DCT в качестве способа пространственного преобразования, и в базирующемся на DCT кодеке происходят нежелательные артефакты блочности и эффект блочности по мере того, как увеличивается скорость сжатия. Имеются две причины артефактов блочности.
Первая причина - это базирующееся на блоках целочисленное преобразование DCT. Это из-за того, что прерывность возникает на границе блоков вследствие квантования коэффициентов DCT, получающихся из преобразования DCT. Так как H.264 использует преобразование DCT размера 4×4, который является относительно маленьким размером, проблема прерывности может быть до некоторой степени уменьшена, но она не может быть полностью устранена.
Вторая причина - это предсказание компенсации движения. Компенсированный по движению блок генерируется посредством копирования пиксельных данных, интерполированных из другого положения другого опорного кадра. Так как эти наборы данных не совпадают точно друг с другом, на крае копируемого блока возникает прерывность. Также в течение процесса копирования эта прерывность передается компенсированному по движению блоку.
В последнее время были разработаны несколько технологий для решения эффекта блочности. Чтобы уменьшать эффект блочности, H.263 и MPEG-4 предложили технологию компенсации движения перекрывающихся блоков (OBMC). Даже хотя OBMC является эффективной в уменьшении артефактов блочности, она имеет проблему в том, что требуется больший объем вычислений для предсказания движения, которое выполняется на стороне кодировщика. Соответственно, H.264 использует фильтр устранения блочности, чтобы удалять артефакты блочности и улучшать качество изображения.
Обработка фильтром блочности выполняется на стороне кодировщика или декодера до того, как макроблок восстанавливается, и после того, как выполняется его обратное преобразование. В этом случае сила фильтра устранения блочности может регулироваться, чтобы подходить для различных условий.
Фиг. 2 - это блок-схема последовательности операций, объясняющая способ выбора силы фильтра устранения блочности согласно общепринятому стандарту H.264. Здесь блок q и блок p - это два блока, которые определяют границу блока, к которой будет применяться фильтр устранения блочности, и представляют текущий блок и соседний блок. Пять типов сил фильтра (показываемые как Bs=0 по 4) устанавливаются согласно тому, является ли блок p или q блоком с внутренним кодированием, располагается ли целевая выборка на границе макроблока, является ли блок p или q кодированным блоком и другим. Если Bs=0, это означает, что фильтр устранения блочности не применяется к соответствующему целевому пикселю.
Другими словами, согласно стандартному способу для выбора силы фильтра устранения блочности сила фильтра базируется на том, являются ли текущий блок, в котором существует целевая выборка, и соседний блок внутренне кодированными, межкадровым образом кодированными или некодированными. Сила фильтра также базируется на том, существует ли целевая выборка на границе 4×4 блока или на границе 16×16 блока.
Раскрытие изобретения
Техническая проблема
Хотя в настоящее время развивающийся стандарт SVC принимает технологию, которая предсказывает кадр в текущем слое, используя кадр, сгенерированный в более низком слое, как показано на фиг. 1, т.е. режим внутреннего BL (базового слоя), он следует общепринятому стандарту H.264, как показано на фиг. 2, когда выбирается сила фильтра устранения блочности.
Однако так как фильтр устранения блочности применяется к слоям в кодировщике/декодере видео, базирующемся на множестве слоев, является неразумным сильно применять фильтр устранения блочности снова к кадру, предоставленному из более низкого слоя, чтобы эффективно предсказывать кадр текущего слоя. Тем не менее, в текущем стандарте SVC режим внутреннего BL содержится как тип внутреннего кодирования, и способ для выбора силы фильтра, как показано на фиг. 2, применяется как есть. Никак не учитывается то, принадлежит ли текущий блок макроблоку внутреннего BL, когда выбирается сила фильтра.
Известно, что качество изображения восстановленного видео в значительной степени улучшается, когда сила фильтра является подходящей для соответствующих условий и фильтр устранения блочности применяется при подходящей силе фильтра. Соответственно, необходимо исследовать технологии, которые должным образом выбирают силу фильтра при учете режима внутреннего BL в течение операции кодирования/декодирования многослойного видео.
Техническое решение
Соответственно, настоящее изобретение было создано, чтобы обратиться к вышеупомянутым проблемам, возникающим в предшествующем уровне техники, и одним аспектом настоящего изобретения является предоставить должную силу фильтра устранения блочности согласно тому, использует ли некоторый блок, к которому фильтр устранения блочности будет применяться, режим внутреннего BL в кодировщике/декодере видео, базирующемся на множестве слоев.
Дополнительные преимущества, цели и признаки этого изобретения будут излагаться частично в описании, которое следует, и частично станут видны специалистам в данной области техники после изучения последующего или могут быть узнаны из использования этого изобретения на практике.
Для достижения этих целей предоставляется способ выбора силы фильтра устранения блочности согласно вариантам осуществления настоящего изобретения, содержащий (a) выбор текущего блока, для которого будет выполняться фильтрация устранения блочности, и его соседнего блока, (b) выяснение, являются ли текущий блок и соседний блок кодированными посредством режима внутреннего BL, и (c) выбор силы фильтра устранения блочности согласно результату выяснения.
В другом аспекте настоящего изобретения предоставляется способ фильтрации устранения блочности, содержащий (a) выбор текущего блока, для которого будет выполняться фильтрация устранения блочности, и его соседнего блока, (b) выяснение, являются ли текущий блок и соседний блок кодированными посредством режима внутреннего BL, (c) выбор силы фильтра устранения блочности согласно результату выяснения и (d) выполнение фильтрации устранения блочности по отношению к границе между текущим блоком и соседним блоком согласно силе фильтра устранения блочности.
В еще другом аспекте настоящего изобретения предоставляется способ кодирования видео, базирующийся на множестве слоев, содержащий (a) кодирование входного видеокадра, (b) декодирование кодированного кадра, (c) выбор силы фильтра устранения блочности согласно тому, является ли блок, составляющий декодированный кадр, кодированным посредством режима внутреннего BL, и (d) выполнение фильтрации устранения блочности по отношению к границе между блоком и его соседним блоком согласно выбранной силе фильтра устранения блочности.
В еще другом аспекте настоящего изобретения предоставляется способ декодирования видео, базирующийся на множестве слоев, содержащий (a) восстановление видеокадра из входного битового потока, (b) выбор силы фильтра устранения блочности согласно тому, является ли блок, составляющий восстановленный кадр, кодированным посредством режима внутреннего BL, и (c) выполнение фильтрации устранения блочности по отношению к границе между блоком и его соседним блоком согласно выбранной силе фильтра устранения блочности.
В еще другом аспекте настоящего изобретения предоставляется кодировщик видео, базирующийся на множестве слоев, содержащий средство для кодирования входного видеокадра, средство для декодирования кодированного кадра, средство для выбора силы фильтра устранения блочности согласно тому, является ли блок, составляющий декодированный кадр, кодированным посредством режима внутреннего BL, и средство для выполнения фильтрации устранения блочности по отношению к границе между блоком и его соседним блоком согласно выбранной силе фильтра устранения блочности.
В еще другом аспекте настоящего изобретения предоставляется декодер видео, базирующийся на множестве слоев, содержащий средство для восстановления видеокадра из входного битового потока, средство для выбора силы фильтра устранения блочности согласно тому, является ли блок, составляющий восстановленный кадр, кодированным посредством режима внутреннего BL, и средство для выполнения фильтрации устранения блочности по отношению к границе между блоком и его соседним блоком согласно выбранной силе фильтра устранения блочности.
Описание чертежей
Вышеуказанные и другие аспекты, признаки и преимущества настоящего изобретения будут более ясны из последующего подробного описания, взятого в соединении с сопровождающими чертежами, на которых:
Фиг. 1 - это вид, показывающий пример масштабируемого видеокодека, использующего многослойную структуру;
Фиг. 2 - это блок-схема последовательности операций, показывающая способ выбора силы фильтра устранения блочности согласно общепринятому стандарту H.264;
Фиг. 3 - это блок-схема последовательности операций, показывающая способ выбора силы фильтра видеокодера, базирующегося на множестве слоев, согласно одному варианту осуществления настоящего изобретения;
Фиг. 4 - это вид, показывающий вертикальную границу и целевые выборки блока;
Фиг. 5 - это вид, показывающий горизонтальную границу и целевые выборки блока;
Фиг. 6 - это вид, показывающий позиционную корреляцию текущего блока q с его соседними блоками pa и pb;
Фиг. 7 - это блок-схема последовательности операций, показывающая способ выбора силы фильтра видеокодера, базирующегося на множестве слоев, согласно другому варианту осуществления настоящего изобретения;
Фиг. 8 - это блок-схема, показывающая конструкцию кодировщика видео типа открытого контура согласно одному варианту осуществления настоящего изобретения;
Фиг. 9 - это вид, показывающий структуру битового потока, сгенерированного согласно одному варианту осуществления настоящего изобретения;
Фиг. 10 - это вид, показывающий границы макроблока и блоков по отношению к яркостной составляющей сигнала;
Фиг. 11 - это вид, показывающий границы макроблока и блоков по отношению к составляющей цветности сигнала;
Фиг. 12 - это вид, показывающий пример макроблоков с силами фильтра, установленными с помощью их границ;
Фиг. 13 - это блок-схема, показывающая конструкцию декодера видео согласно одному варианту осуществления настоящего изобретения;
Фиг. 14 - это график, показывающий яркостную составляющую PSNR согласно изменению скорости передачи битов в последовательности, относящейся к группе людей;
Фиг. 15 - это график, показывающий яркостную составляющую PSNR согласно изменению скорости передачи битов в последовательности, относящейся к порту;
Фиг. 16 - это график, показывающий улучшение производительности настоящего изобретения по сравнению с предшествующим уровнем техники по отношению к последовательности, относящейся к футболу, CIF@1024kbps;
Фиг. 17 - это график, показывающий улучшение производительности настоящего изобретения по сравнению с предшествующим уровнем техники по отношению к последовательности, относящейся к группе людей, 4CIF@3000kbps;
Фиг. 18 - это вид, показывающий один кадр из последовательности, относящейся к футболу, восстановленный с помощью предшествующего уровня техники; и
Фиг. 19 - это вид, показывающий кадр из фиг. 18, восстановленный согласно настоящему изобретению.
Варианты осуществления изобретения
Ниже иллюстративные варианты осуществления настоящего изобретения будут подробно описываться со ссылкой на сопровождающие чертежи. Аспекты и признаки настоящего изобретения и способы для достижения аспектов и признаков должны быть видны из ссылок на варианты осуществления, которые будут подробно описываться со ссылкой на сопровождающие чертежи. Однако варианты осуществления настоящего изобретения не ограничены вариантами осуществления, раскрытыми ниже, и могут реализовываться в разнообразных формах. Предметы обсуждения, определенные в описании, такие как подробная конструкция и элементы, являются ни чем иным, как конкретными деталями, предоставленными, чтобы оказывать помощь для полного понимания этого изобретения. Таким образом, варианты осуществления настоящего изобретения могут реализоваться без таких ограничений. В последующем описании вариантов осуществления настоящего изобретения на различных чертежах используются одинаковые ссылочные позиции чертежей для одинаковых элементов.
Фиг. 3 - это блок-схема последовательности операций, показывающая способ выбора силы фильтра видеокодера, базирующегося на множестве слоев, согласно одному варианту осуществления настоящего изобретения. В последующем описании термин 'видеокодер' используется как общее обозначение кодировщика видео и декодера видео. Способ согласно варианту осуществления настоящего изобретения, как показано на фиг. 3, может дополнительно включать в себя этапы S25, S30, S55 и S60 в сравнении со стандартным способом, как показано на фиг. 2.
Прежде всего, целевые выборки выбираются вокруг границы блока (например, 4×4 блока пикселей). Целевые выборки означают набор выборок, размещенных, как показано на фиг. 4 или фиг. 5, вокруг границы между текущим блоком q и его соседним блоком p. Как показано на фиг. 6, при учете порядка генерирования блоков верхний блок и левый блок текущего блока q соответствуют соседним блокам p (Pa и Pb), и, таким образом, целевые объекты, к которым применяется фильтр устранения блочности, являются верхней границей и левой границей текущего блока q. Нижняя граница и правая граница текущего блока q фильтруются в течение последующей обработки для нижнего блока и правого блока текущего блока. В вариантах осуществления настоящего изобретения в качестве примера используются 4×4 блоки, так как в стандарте H.264 используется 4×4 преобразование DCT, и минимальный размер переменного блока в предсказании движения - это 4×4 пикселей. Однако в случае видеокодера, имеющего другие характеристики, то есть использующего 8×8 преобразование DCT, специалистам в данной области техники должно быть видно, что фильтрация также может применяться к границам блоков 8×8 блоков и других размеров блоков.
Ссылаясь на фиг. 4, целевые выборки возникают вокруг левой границы текущего блока q в случае, где граница блока является вертикальной. Целевые выборки включают в себя четыре выборки p0, p1, p2 и p3 на левой стороне линии вертикальной границы, которая существует в соседнем блоке p, и четыре выборки q0, q1, q2 и q3 на правой стороне линии границы, которая существует в текущем блоке q. Хотя все из четырех выборок подвергаются фильтрации, количество опорных выборок и количество фильтрованных выборок могут изменяться согласно выбранной силе фильтра.
Ссылаясь на фиг. 5, целевые выборки появляются вокруг верхней границы текущего блока q в случае, где граница блока является горизонтальной. Целевые выборки включают в себя четыре выборки p0, p1, p2 и p3, существующие в верхней половине линии горизонтальной границы (соседний блок p), и четыре выборки q0, q1, q2 и q3, существующие в нижней половине линии горизонтальной границы (текущий блок q).
Согласно существующему стандарту H.264 фильтр устранения блочности применяется к компоненте яркости сигнала и компоненте цветности сигнала соответственно, и фильтрация последовательно выполняется в порядке растрового сканирования на единице макроблока, который составляет один кадр. По отношению к соответствующим макроблокам фильтрация в горизонтальном направлении (как показано на фиг. 5) может выполняться после того, как выполняется фильтрация в вертикальном направлении (как показано на фиг. 4), и наоборот.
Ссылаясь на фиг. 3, после S10 выясняется, является ли, по меньшей мере, один из: блок p и блок q, к которым принадлежат целевые выборки, внутренне кодированным S15. Причина, почему выявляется внутренне кодированный блок, состоит в том, что внутреннее кодирование, которое использует сходство в кадре, в значительной степени усиливает эффект блочности в сравнении с межкадровым кодированием. Соответственно, сила фильтра относительно усиливается, когда, по меньшей мере, один из: блок p и q является внутренне кодированным, в сравнении с тем, когда никакой из них не является внутренне кодированным.
В вариантах осуществления настоящего изобретения внутреннее кодирование может включать в себя как кодирование согласно режиму направленного внутреннего предсказания для предсказания текущего блока по некоторой части соседнего блока кадра, так и кодирование согласно 'режиму внутреннего BL' для предсказания текущего макроблока по изображению, восстановленному из более нижнего слоя относительно текущего слоя.
Если блок p и/или блок q являются внутренне кодированными как результат решения этапа S15, тогда выясняется, совпадает ли граница блока с границей макроблока, S20. Так как эффект блочности границы макроблока проявляется больше, чем эффект границы 4×4 блока, сила фильтра может увеличиваться вследствие решения на этапе S20.
Если граница блока совпадает с границей макроблока как результат решения S20, выясняется, находятся ли блок p и блок q в режиме внутреннего BL, S25. Если это так, величина, которая показывает силу фильтра (ниже указываемая как 'Bs'), может устанавливаться на 'A' S30; если нет, Bs может устанавливаться на '4' S50. В одном варианте осуществления настоящего изобретения Bs может устанавливаться на '4', даже если один из: блок p и блок q - не находится в режиме BL.
Значение 'A' должно быть меньше, чем выбранное значение, если ответ на этапе S25 - это 'Нет', то есть '4'. Это из-за того, что, так как фильтр устранения блочности уже был применен к изображению базового слоя, который предоставляется, чтобы использовать режим внутреннего BL, является неразумным применять к изображению фильтр, имеющий такую же силу, что и другие режимы внутреннего предсказания. Соответственно, хотя 'A' может быть 0, 1, 2 или 3, было подтверждено экспериментами, что является предпочтительным, что 'A' равно '1'.
Если граница блока не совпадает с границей макроблока как результат решения на этапе S20, выясняется, является ли блок q кодированным посредством режима внутреннего BL S55. Если это так, Bs может устанавливаться на 'B' S60; если нет, Bs может устанавливаться на '3' S65. По той же причине, что и в установке значения 'A', Bs должно быть меньше, чем выбранное значение, если ответ на этапе S55 - это 'Нет', то есть '3'. Соответственно, хотя 'B' может быть 0, 1 или 2, было подтверждено экспериментами, что является предпочтительным, что 'B' равно '1'.
Если выясняется, что блок p или блок q не является внутренне кодированным, на этапе S15, тогда выясняется, является ли блок p или блок q кодированным, S70. В общем, блоки, которые не являются внутренне кодированными, являются межкадровым образом кодированными через межкадровое предсказание. Однако согласно стандарту H.264, если различие между предсказанным изображением и текущим изображением меньше, чем заданное пороговое значение как результат межкадрового предсказания, используется технология, которая не кодирует различие, и, таким образом, требуется выяснение этапа S70. Это из-за того, что вероятность, что возник эффект блочности, является малой в сравнении со случаем, где блоки являются кодированными, и, таким образом, является предпочтительным применять относительно низкую силу фильтра в этом случае.
Если какой-либо блок p или блок q является кодированным как результат выяснения этапа S70, Bs устанавливается на '2' S75. Однако, если опорные кадры блока p и блока q являются разными или количества опорных кадров являются разными в состоянии, где никакой из блоков не был кодирован (что соответствует 'Да' на этапе S80), Bs устанавливается на '1' S85. Это из-за того, что факт, что блоки p и q имеют разные опорные кадры, означает, что вероятность, что возник эффект блочности, является относительно высокой.
Если опорные кадры блоков p и q не являются разными или количества опорных кадров между ними не являются разными (что соответствует 'Нет' на этапе S80) как результат выяснения на этапе S80, выясняется, являются ли векторы движения блока p и блока q разными S90. Это из-за того, что, так как в случае, в котором векторы движения не совпадают друг с другом, хотя оба блока имеют одни и те же опорные кадры (что соответствует 'Нет' на этапе S80), вероятность, что возник эффект блочности, является относительно высокой в сравнении со случаем, в котором векторы движения совпадают друг с другом, и, таким образом, является предпочтительным применять разные силы фильтра согласно результату выяснения на этапе S90.
Если векторы движения блока p и блока q являются разными на этапе S90 (что соответствует 'Да' на этапе S90), Bs устанавливается на '1' S85; если нет, Bs устанавливается на '0' S95.
Фиг. 7 - это блок-схема последовательности операций, показывающая способ видеокодера, базирующийся на множестве слоев, для выбора силы фильтра согласно другому варианту осуществления настоящего изобретения. Хотя в варианте осуществления из фиг. 3 на этапе S25 выясняется, находятся ли оба: блок p и блок q - в режиме внутреннего BL, в варианте осуществления из фиг. 7 выясняется, находится ли какой-либо из: блок p или блок q - в режиме внутреннего BL, в дополнение к тому, находятся ли оба: блок p и блок q - в режиме внутреннего BL, чтобы применять разные силы фильтра к упомянутым случаям, соответственно.
Так как другие части варианта осуществления из фиг. 7 аналогичны частям варианта осуществления из фиг. 3, в последующем будут объясняться только части из фиг. 7, которые отличаются от частей варианта осуществления из фиг. 3.
Если оба: блок p и блок q - находятся в режиме внутреннего BL на этапе S25 (что соответствует 'Да' на этапе S25), Bs может устанавливаться на 'A' как в варианте осуществления из фиг. 3 S30. Однако, если только один из: блок p и блок q - находится в режиме внутреннего BL (что соответствует 'Да' на этапе S35), Bs может устанавливаться на новое значение 'C' S45. Тем временем, если какой-либо из: блок p или блок q - не находится в режиме внутреннего BL (что соответствует 'Нет' на этапе S35), Bs может устанавливаться на '4' таким же способом, как в варианте осуществления из фиг. 3 S50.
Так как 'C' указывает на случай, в котором только один из блоков находится в режиме внутреннего BL, сила фильтра должна устанавливаться на значение, которое больше, чем 'A', но меньше, чем '4'. Если 'A' устанавливается на '1', как на фиг. 3, то 'C' должно иметь значение, равное '2' или '3'.
Тем временем, фиг. 8 - это блок-схема, показывающая конструкцию кодировщика видео, базирующегося на множестве слоев, которая включает в себя фильтр устранения блочности согласно способу выбора силы фильтра. Кодировщик видео, базирующийся на множестве слоев, может реализоваться как тип замкнутого контура или тип открытого контура. Здесь кодировщик видео типа замкнутого контура выполняет предсказание со ссылкой на исходный кадр и кодировщик видео типа открытого контура выполняет предсказание со ссылкой на восстановленный кадр.
Устройство 280 выбора выбирает и выводит один из: сигнал, переданный от модуля 195 повышающей дискретизации кодировщика 100 базового слоя, сигнал, переданный от устройства 260 компенсации движения, и сигнал, переданный от устройства 270 внутреннего предсказания. Этот выбор выполняется посредством выбора из: режима внутреннего BL, режима межкадрового предсказания и режима внутреннего предсказания, который имеет наивысшую эффективность кодирования.
Устройство 270 внутреннего предсказания предсказывает изображение текущего блока по изображению восстановленного соседнего блока, предоставленного из модуля 215 суммирования, согласно определенному режиму внутреннего предсказания. H.264 определяет такой режим внутреннего предсказания, который включает в себя восемь режимов, имеющих направления, и один режим DC. Выбор одного режима среди них выполняется посредством выбора режима, который имеет наивысшую эффективность кодирования. Устройство 270 внутреннего предсказания предоставляет предсказанные блоки, сгенерированные согласно выбранному режиму внутреннего предсказания, модулю 205 суммирования.
Устройство 250 оценки движения выполняет оценку движения на текущем макроблоке входных видеокадров, базируясь на опорном кадре, и получает векторы движения. Алгоритм, который широко используется для оценки движения, является алгоритмом сопоставления блоков. Этот алгоритм сопоставления блоков оценивает вектор, который имеет минимальную ошибку в заданной области поиска опорного кадра, как вектор движения. Оценка движения может выполняться, используя блок движения фиксированного размера или используя блок движения, имеющий переменный размер, согласно иерархическому алгоритму сопоставления блоков переменных размеров (HVSBM). Устройство 250 оценки движения предоставляет данные движения, такие как векторы движения, полученные как результат оценки движения, режим блока движения, число опорных кадров и другие, устройству 240 энтропийного кодирования.
Устройство 260 компенсации движения выполняет компенсацию движения, используя вектор движения, вычисленный устройством 250 оценки движения, и опорный кадр, и генерирует межкадровым образом предсказанное изображение для текущего кадра.
Модуль 205 вычитания генерирует остаточный кадр посредством вычитания сигнала, выбранного устройством 280 выбора, из текущего входного сигнала кадра.
Устройство 220 пространственного преобразования выполняет пространственное преобразование остаточного кадра, сгенерированного модулем 205 вычитания. DCT (дискретное косинусное преобразование), вейвлет-преобразование и другие могут использоваться как способ пространственного преобразования. Коэффициенты преобразования получаются как результат пространственного преобразования. В случае использования DCT в качестве способа пространственного преобразования получаются коэффициенты DCT, и в случае использования способа вейвлет-преобразования получаются коэффициенты вейвлет.
Устройство 230 квантования генерирует коэффициенты квантования посредством квантования коэффициентов преобразования, полученных устройством 220 пространственного преобразования. Квантование означает представление коэффициентов преобразования, выраженных как вещественные величины, с помощью дискретных величин посредством деления величин преобразования в заданных интервалах. Такой способ квантования может быть скалярным квантованием, векторным квантованием или другими. Способ скалярного квантования выполняется посредством деления коэффициентов преобразования на соответствующие величины из таблицы квантования и округления результирующих величин до ближайшего целого числа.
В случае использования вейвлет-преобразования в качестве способа пространственного преобразования, как способ квантования главным образом используется способ встроенного квантования. Этот способ встроенного квантования выполняет эффективное квантование, используя пространственную избыточность, посредством предпочтительного кодирования компонентов коэффициентов преобразования, которые превосходят пороговое значение, посредством изменения порогового значения (до 1/2). Способ встроенного квантования может быть встроенным вейвлет алгоритмом деревьев нулей (EZW), множественным разбиением в иерархических деревьях (SPIHT) или встроенным кодированием блоков нулей (EZBC).
Процесс кодирования перед энтропийным кодированием, как описано выше, называется кодированием с потерями.
Устройство 240 энтропийного кодирования выполняет без потерь кодирование коэффициентов квантования и информации движения, предоставленной устройством 250 оценки движения, и генерирует выходной битовый поток. Арифметическое кодирование или кодирование переменной длины может использоваться как способ кодирования без потерь.
Фиг. 9 - это вид, показывающий пример структуры битового потока 50, сгенерированного согласно одному варианту осуществления настоящего изобретения. В H.264 битовый поток кодируется в единицах секции. Битовый поток 50 включает в себя заголовок 60 секции и данные 70 секции, и данные 70 секции компонуются из множества макроблоков (MB) 71 по 74. Данные макроблока, например, макроблок 73, компонуются из поля 80 mb_type, поля 85 mb_pred и поля 90 данных текстуры.
В поле 80 mb_type записывается значение, показывающее тип макроблока. То есть это поле показывает, является ли текущий макроблок внутренним макроблоком, межкадровым макроблоком или макроблоком внутреннего BL.
В поле 85 mb_pred записывается режим детального предсказания согласно типу макроблока. В случае внутреннего макроблока записывается выбранный режим внутреннего предсказания, и в случае межкадрового макроблока записываются число опорных кадров и вектор движения посредством разбиений макроблока.
В поле 90 данных текстуры записывается кодированный остаточный кадр, т.е. данные текстуры.
Ссылаясь на фиг. 8, кодировщик 2 расширенного слоя дополнительно включает в себя устройство 271 обратного квантования, устройство 272 обратного преобразования DCT и модуль 215 суммирования, которые используются, чтобы восстанавливать кодированный с потерями кадр посредством его обратного декодирования.
Устройство 271 обратного квантования обратным образом квантует коэффициенты, квантованные устройством 230 квантования. Этот процесс обратного квантования является обратным процессом для процесса квантования. Устройство 272 обратного пространственного преобразования выполняет обратное преобразование квантованных результатов и предоставляет обратным образом преобразованные результаты модулю 215 суммирования.
Модуль 215 суммирования восстанавливает видеокадр посредством добавления сигнала, предоставленного от устройства 272 обратного пространственного преобразования, к предсказанному сигналу, выбранному устройством 280 выбора и сохраненному в буфере кадров (не показан). Видеокадр, восстановленный модулем 215 суммирования, предоставляется фильтру 290 устранения блочности, и изображение соседнего блока восстановленного видеокадра предоставляется устройству 270 внутреннего предсказания.
Устройство 291 выбора силы фильтра выбирает силу фильтра по отношению к границе макроблока и границам блоков (например, 4×4 блоков) в одном макроблоке согласно способу выбора силы фильтра, как объясняется со ссылкой на фиг. 3 и 7. В случае составляющей яркости сигнала макроблок имеет размер 16×16 пикселей, как показано на фиг. 10, и в случае составляющей цветности сигнала макроблок имеет размер 8×8 пикселей, как показано на фиг. 11. На фиг. 10 и 11 'Bs' отмечено на границе блоков, которые принадлежат макроблоку. Однако 'Bs' не отмечено на линии правой границы и линии нижней границы макроблока. Если никакой макроблок не существует справа или ниже текущего макроблока, фильтр устранения блочности для соответствующей части является ненужным, в то время как, если существует макроблок справа или ниже текущего макроблока, сила фильтра линий границы выбирается в течение процесса фильтрации устранения блочности соответствующего макроблока.
Пример выбора силы фильтра по отношению к нескольким граничным линиям макроблока составляющей яркости, как показано на фиг. 10, показан на фиг. 12. Ссылаясь на фиг. 12, текущий макроблок и левый макроблок являются макроблоками внутреннего BL, и верхний макроблок является межкадровым макроблоком (или внутренним макроблоком).
На основе варианта осуществления из фиг. 3 сила фильтрации всех граничных линий 4×4 блоков в макроблоке может устанавливаться на 'B' и сила фильтрации граничных линий (т.е. линии левой границы текущего макроблока) между текущим макроблоком и левым внутренним макроблоком может устанавливаться на 'A'. Также сила фильтрации верхней границы текущего макроблока может устанавливаться на '4'.
На основе варианта осуществления из фиг. 7 сила фильтрации всех верхних граничных линий текущего макроблока может устанавливаться на 'C' в отличие от силы фильтрации, отмеченной на фиг. 12.
Фильтр 290 устранения блочности фактически выполняет фильтрацию устранения блочности по отношению к соответствующим граничным линиям согласно силе фильтра, выбранной устройством 291 выбора силы фильтра. Ссылаясь на фиг. 4 и 5, на обеих сторонах вертикальной границы или горизонтальной границы показаны четыре пикселя. Операция фильтрации может затрагивать три пикселя на каждой стороне границы, т.е. {p2, p1, p0, q0, q1, q2}, максимум. Это решается при учете силы Bs фильтра, параметра QP квантования соседнего блока и других параметров.
Однако в фильтрации устранения блочности очень важно отличать реальный край, существующий в изображении, от края, сгенерированного квантованием коэффициентов DCT. Чтобы сохранять различие изображения, реальный край должен оставаться без фильтрации настолько, насколько возможно, но искусственный край должен фильтроваться, чтобы быть незаметным. Соответственно, фильтрация выполняется, только когда все условия уравнения (1) удовлетворены.
Bs ≠ 0, |p0-q0|<α, |p1-p0|<β, |q1-q0|<β ...... (1)
Здесь α и β - это пороговые значения, определенные согласно параметру квантования, FilterOffsetA, FilterOffsetB и другим.
Если Bs - это '1', '2' или '3' и 4-элементный фильтр применяется к вводам p1, p0, q0 и q1, фильтрованные выводы будут P0 (что является результатом фильтрации p0) и Q0 (что является результатом фильтрации q0). По отношению к яркостной составляющей, если
|p2-p0|<β,
4-элементный фильтр применяется к вводам p2, p1, p0 и q0, и фильтрованный вывод - это P1 (что является результатом фильтрации p1). Таким же способом, если
|q2-q0|<β,
4-элементный фильтр применяется к вводам q2, q1, q0 и p0, и фильтрованный вывод - это Q1 (что является результатом фильтрации q1).
Между тем, если Bs - это '4', 3-элементный фильтр, 4-элементный фильтр или 5-элементный фильтр применяется к вводам и P0, P1 и P2 (которые являются результатами фильтрации p0, p1, p2) и Q0, Q1 и Q2 (которые являются результатами фильтрации q0, q1, q2) могут выводиться, базируясь на пороговых значениях α и β и восьми фактических пикселях.
Более подробная информация о процессе фильтрации при устранении блочности раскрывается в проекте рекомендации ITU-T и конечном проекте международного стандарта объединенной видеоспецификации 'Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 IISO/IEC 14496-10 AVC), Pattaya, Thailand, 7-14 March, 2003'.
Ссылаясь на фиг. 8, результирующий кадр D1, фильтрованный фильтром 290 устранения блочности, предоставляется устройству 250 оценки движения, чтобы использоваться для межкадрового предсказания других входных кадров. Также, если существует расширенный слой выше текущего расширенного слоя, кадр D1 может предоставляться как опорный кадр, когда предсказание режима внутреннего BL выполняется над верхним расширенным слоем.
Однако выходные данные D1 фильтра устранения блочности вводятся в устройство 250 оценки движения только в случае кодировщика видео типа замкнутого контура. В случае кодировщика видео типа открытого контура, такого как кодировщик видео, базирующийся на MCTF (временной фильтрации с компенсацией движения), исходный кадр используется как опорный кадр в течение межкадрового предсказания, и, таким образом, не требуется, чтобы выходные данные фильтра устранения блочности вводились в устройство 250 оценки движения снова.
Кодировщик 100 базового слоя может включать в себя устройство 120 пространственного преобразования, устройство 130 квантования, устройство 140 энтропийного кодирования, устройство 150 оценки движения, устройство 160 компенсации движения, устройство 170 внутреннего предсказания, устройство 180 выбора, устройство 171 обратного квантования, устройство 172 обратного пространственного преобразования, модуль 105 понижающей дискретизации, модуль повышающей дискретизации и фильтр 190 устранения блочности.
Модуль 105 понижающей дискретизации выполняет понижающую дискретизацию исходного входного кадра до разрешения базового слоя, и модуль 195 повышающей дискретизации выполняет повышающую дискретизацию на выходе фильтра 190 устранения блочности и предоставляет дискретизированный с повышением результат устройству 280 выбора расширенного слоя.
Так как кодировщик 100 базового слоя не может использовать информацию более нижнего слоя, устройство 180 выбора выбирает один из: внутренне предсказанный сигнал и межкадровым образом предсказанный сигнал, - и фильтр 190 устранения блочности выбирает силу фильтра таким же способом, как в стандартном H.264.
Так как операции других составляющих элементов являются такими же, как операции составляющих элементов, существующих в кодировщике 200 расширенного слоя, их подробное объяснение будет пропущено.
Фиг. 13 - это блок-схема, показывающая конструкцию декодера 3000 видео согласно одному варианту осуществления настоящего изобретения. Декодер 3000 видео включает в себя декодер 600 расширенного слоя и декодер 500 базового слоя.
Сначала будет объясняться конструкция декодера 600 расширенного слоя. Устройство 610 энтропийного декодирования выполняет декодирование без потерь входного битового потока расширенного слоя, в отличие от устройства энтропийного кодирования, и извлекает информацию типа макроблока (т.е. информацию, которая указывает тип макроблока), режим внутреннего предсказания, информацию о движении, данные текстуры и другую информацию.
Битовый поток может быть сконструирован, как в примере, показанном на фиг. 9. Здесь тип макроблока известен из поля 80 mb_type; детальный режим внутреннего предсказания и информация движения известны из поля 85 mb_pred; и данные текстуры известны посредством считывания поля 90 данных текстуры.
Устройство 610 энтропийного декодирования предоставляет данные текстуры устройству 620 обратного квантования, режим внутреннего предсказания устройству 640 внутреннего предсказания и информацию движения устройству 650 компенсации движения. Также устройство 610 энтропийного декодирования предоставляет упомянутый тип из информации о текущем макроблоке устройству 691 выбора силы фильтра.
Устройство 620 обратного квантования обратным образом квантует информацию текстуры, переданную от устройства 610 энтропийного декодирования. В это время используется такая же таблица квантования, как та, что использовалась на стороне кодировщика видео.
Затем устройство 630 обратного пространственного преобразования выполняет обратное пространственное преобразование над результатом обратного квантования. Это обратное пространственное преобразование соответствует пространственному преобразованию, выполненному в кодировщике видео. То есть, если преобразование DCT выполнялось в кодировщике, обратное DCT выполняется в декодере видео, и если вейвлет-преобразование выполнялось в кодировщике видео, обратное вейвлет-преобразование выполняется в декодере видео. Как результат обратного пространственного преобразования, восстанавливается остаточный кадр.
Устройство 640 внутреннего предсказания генерирует предсказанный блок для текущего внутреннего блока по восстановленному соседнему внутреннему блоку, выведенному из модуля 615 суммирования, согласно режиму внутреннего предсказания, переданному от устройства 610 энтропийного декодирования, чтобы предоставить сгенерированный предсказанный блок устройству 660 выбора.
Тем временем, устройство 650 компенсации движения выполняет компенсацию движения, используя информацию движения, предоставленную от устройства 610 энтропийного декодирования, и опорный кадр, предоставленный от фильтра 690 устранения блочности. Предсказанный кадр, сгенерированный как результат компенсации движения, предоставляется устройству 660 выбора.
Дополнительно, устройство 660 выбора выбирает один из: сигнал, переданный от модуля 590 повышающей дискретизации, сигнал, переданный от устройства 650 компенсации движения, и сигнал, переданный от устройства 640 внутреннего предсказания, - и передает выбранный сигнал модулю 615 суммирования. В это время устройство 660 выбора распознает информацию о типе текущего макроблока, предоставленную от устройства 610 энтропийного декодирования, и выбирает соответствующий сигнал среди трех типов сигналов согласно типу текущего макроблока.
Модуль 615 суммирования добавляет сигнал, выведенный из устройства 630 обратного пространственного преобразования, к сигналу, выбранному устройством 660 выбора, чтобы восстановить видеокадр расширенного слоя.
Устройство 691 выбора силы фильтра выбирает силу фильтра по отношению к границе макроблока и границам блоков в одном макроблоке согласно способу выбора силы фильтра, как описано со ссылкой на фиг. 3 и 7. В этом случае, чтобы выполнить фильтрацию, тип макроблока, как показано на фиг. 12, должен быть известен, и информация о типе макроблока предоставляется от устройства 610 энтропийного декодирования.
Результирующий кадр D3, фильтрованный фильтром 690 устранения блочности, как описано выше, предоставляется устройству 650 компенсации движения, чтобы сгенерировать кадр межкадрового предсказания для других входных кадров. Также, если существует расширенный слой выше текущего расширенного слоя, кадр D3 может предоставляться как опорный кадр, когда предсказание режима внутреннего BL выполняется для верхнего расширенного слоя.
Конструкция декодера 500 базового слоя является аналогичной конструкции декодера расширенного слоя. Однако, так как декодер 500 базового слоя не может использовать информацию более нижнего слоя, устройство 560 выбора выбирает один из: внутренне предсказанный сигнал и межкадровым образом предсказанный сигнал, - и фильтр 590 устранения блочности выбирает силу фильтра таким же способом, как в стандартном алгоритме H.264. Также модуль 595 повышающей дискретизации выполняет повышающую дискретизацию результата, фильтрованного фильтром 590 устранения блочности, и предоставляет дискретизированный с повышением сигнал устройству 660 выбора расширенного слоя.
Так как операции других составляющих элементов являются такими же, как операции составляющих элементов декодера 600 расширенного слоя, их подробное описание будет пропущено.
Как описано выше, в качестве примера дается, что кодировщик видео или декодер видео включает в себя два слоя, т.е. базовый слой и расширенный слой. Однако это всего лишь пример, и специалистам в данной области техники должно быть ясно, что может быть реализован видеокодер, имеющий три или более слоев.
До настоящего времени соответствующие составляющие элементы из фиг. 8 и 13 относятся к программному обеспечению или аппаратному обеспечению, такому как FPGA (программируемая пользователем вентильная матрица) или ASIC (специализированная интегральная схема). Однако соответствующие составляющие элементы могут быть сконструированы, чтобы находиться в адресуемом запоминающем носителе или исполняться одним или более процессорами. Функции, предоставленные в соответствующих составляющих элементах, могут разделяться в дополнительные детализованные составляющие элементы или комбинироваться в один составляющий элемент, все из которых выполняют заданные функции.
Фиг. 14 по 19 показывают экспериментальные результаты вариантов осуществления настоящего изобретения в сравнении с предшествующим уровнем техники. Здесь в качестве предшествующего уровня техники использовалась модель SVM 3.0 стандарта 'ISO/IEC 21000 Scalable Video Coding, N6716, Palma, Oct. 2004'.
Фиг. 14 - это график, показывающий яркостную составляющую PSNR (т.е. Y-PSNR) согласно изменению скорости передачи битов в последовательности, относящейся к группе людей, и фиг. 15 - это график, показывающий яркостную составляющую PSNR (т.е. Y-PSNR) согласно изменению скорости передачи битов в последовательности, относящейся к порту. В последовательности, относящейся к группе людей, может быть подтверждено, что качество изображения явно улучшено на приблизительно 0,1 до 0,2 дБ. Тем временем, в последовательности, относящейся к порту, улучшение качества изображения является незначительным. Однако во всех случаях никакого ухудшения качества изображения не произошло. Соответственно, способ согласно вариантам осуществления настоящего изобретения имеет большое влияние на последовательности быстрого движения, но имеет относительно маленькое влияние на последовательности медленного движения или последовательности, имеющие сильную временную корреляцию. Предполагается, что это из-за того, что варианты осуществления настоящего изобретения улучшают производительность в случае использования макроблока внутреннего BL, но количество макроблоков внутреннего BL является маленьким в случае последовательностей медленного движения или последовательностей, имеющих сильные временные корреляции.
Фиг. 16 и 17 - это графики, показывающие улучшение производительности вариантов осуществления настоящего изобретения по сравнению с предшествующим уровнем техники по отношению к последовательности, относящейся к футболу, CIF@1024kbps и по отношению к последовательности, относящейся к группе людей, 4CIF@3000kbps. Как показано на фиг. 14 и 15, среднее PSNR улучшение не является большим, но подтверждается, что значение PSNR улучшается вплоть до 0,7 дБ в некоторых кадрах. Также в последовательности, относящейся к группе людей, подтверждается, что значение PSNR нескольких кадров улучшается вплоть до 0,17 дБ. Согласно вариантам осуществления настоящего изобретения качество изображения в значительной степени улучшается в кадрах, имеющих быстрое движение, в то время как согласно предшествующему уровню техники качество изображения сильно ухудшается в кадрах, имеющих быстрое движение.
Фиг. 18 и 19 - это виды, показывающие один кадр последовательности, относящейся к футболу, восстановленный с помощью предшествующего уровня техники, и один кадр из фиг. 18, восстановленный согласно вариантам осуществления настоящего изобретения, соответственно. Здесь используется последовательность, относящаяся к футболу, CIF@1024kbps. Как показано на фиг. 18 и 19, способ согласно вариантам осуществления настоящего изобретения уменьшает сверх сглаживающий эффект, который генерируется в течение процесса устранения блочности, и, таким образом, может хорошо сохранять визуальные детали в сравнении со способом в предшествующем уровне техники.
Промышленная применимость
Согласно вариантам осуществления настоящего изобретения в кодировщике/декодере многослойного видео сила фильтра устранения блочности может должным образом устанавливаться согласно тому, является ли некоторый блок, к которому фильтр устранения блочности будет применяться, блоком режима внутреннего BL.
Дополнительно, посредством установки должной силы фильтра устранения блочности (как выше) качество изображения восстановленного видео может быть улучшено.
Варианты осуществления настоящего изобретения были описаны в иллюстративных целях, и специалисты в данной области техники должны принять во внимание, что возможны различные модификации, дополнения и замены без отхода от объема и сущности этого изобретения, как раскрывается в сопровождающей формуле изобретения.
Изобретение относится к системам сжатия видео и, в частности, к фильтру устранения блочности. Техническим результатом является обеспечение более точного выбора интенсивности фильтрации устранения блочности при учете режима внутреннего базового слоя (BL). Предложен видеокодер, базирующийся на множестве слоев, использующий фильтрацию для устранения блочности, содержащий: средство кодирования входного видеокадра; средство декодирования упомянутого закодированного кадра; средство для выбора интенсивности фильтрации устранения блочности согласно тому, был ли блок, включенный в декодированный кадр, кодирован с помощью режима внутреннего BL, причем если, по меньшей мере, один из: текущий блок и соседний блок кодирован с помощью режима, другого, нежели режим внутреннего BL, происходит выбор заданной интенсивности фильтрации по отношению к границе между текущим блоком и соседним блоком; а если как текущий блок, так и соседний блок были кодированы с помощью режима внутреннего BL, происходит выбор интенсивности фильтрации, которая ниже, чем интенсивность фильтрации, выбранная по отношению к границе; и средство выполнения фильтрации для устранения блочности по отношению к границе между блоком и соседним блоком согласно выбранной интенсивности фильтрации устранения блочности. 3 н. и 4 з.п. ф-лы, 19 ил.
Способ кодирования-декодирования изображений и устройство для его осуществления