СПОСОБ ФИЛЬТРАЦИИ ДЛЯ УМЕНЬШЕНИЯ БЛОЧНОСТИ, УЧИТЫВАЮЩИЙ РЕЖИМ intra-BL, И ИСПОЛЬЗУЮЩИЙ ЕГО МНОГОУРОВНЕВЫЙ ВИДЕОКОДЕР/ВИДЕОДЕКОДЕР
METHOD OF DEBLOCKING FILTRATION WITH ACCOUNT FOR intra-BL MODE AND UTILISING ITS MULTILAYER VIDEOCODER/VIDEODECODER

Область техники
Способы и устройства в соответствии с настоящим изобретением относятся к технологии сжатия видеоизображения, а конкретнее к фильтру уменьшения блочности, используемому в многоуровневом видеокодере/видеодекодере.
Предшествующий уровень техники
С развитием информационных технологий и техники связи увеличиваются мультимедийные коммуникации в дополнение к передаче речевых сообщений и передаче текстовой информации. Существующие системы связи, сосредоточенные на тексте, являются недостаточными для удовлетворения различных потребностей потребителей, и поэтому увеличиваются мультимедийные услуги, которые могут вмещать в себя различные формы информации, такие как текст, изображение, музыка и другие. Так как мультимедийные данные большие, соответственно требуются носитель большой емкости и широкие полосы пропускания для их хранения и передачи. Соответственно, требуются методики кодирования со сжатием для передачи мультимедийных данных.
Основным принципом сжатия данных является удаление избыточности. Данные могут сжиматься путем удаления пространственной избыточности, например повторения того же цвета или объекта в изображениях, временной избыточности, например похожие соседние кадры в движущихся изображениях или постоянное повторение звуков, и зрительной избыточности/избыточности восприятия, которая учитывает нечувствительность людей к высоким частотам. В обычном способе кодирования видеосигнала временная избыточность удаляется путем временной фильтрации, основанной на компенсации движения, а пространственная избыточность удаляется путем пространственного преобразования.
Чтобы передавать мультимедийные данные, требуются носители передачи, характеристики которых различаются. Используемый в настоящее время носитель передачи обладает различными скоростями передачи. Например, сеть связи с очень высокой скоростью может передавать несколько десятков мегабит данных в секунду, а сеть мобильной связи обладает скоростью передачи в 384 килобита в секунду. Чтобы поддерживать среду передачи в таких условиях передачи и чтобы передавать мультимедийные данные со скоростью передачи, подходящей для условий передачи, наиболее подходящим является способ масштабируемого кодирования данных.
Этот способ кодирования делает возможным выполнение неполного декодирования сжатого битового потока на стороне декодера или предварительного декодера в соответствии со скоростью передачи битов (битрейтам), частотой ошибок и условиями системных ресурсов. Декодер или предварительный декодер может восстанавливать мультимедийную последовательность, имеющую отличающиеся качество изображения, разрешение или частоту кадров, путем заимствования только части битового потока, кодированного способом масштабируемого кодирования.
Что касается такого масштабируемого кодирования видеосигнала, экспертная группа по киноизображению 21 (MPEG-21) PART-13 уже сделала успехи в своей работе по стандартизации. В частности, выполнен большой объем исследований для реализации масштабируемости в способе кодирования видеосигнала на основе множества уровней. В качестве примера такого многоуровневого кодирования видеосигнала многоуровневая структура состоит из базового уровня, первого уровня улучшения и второго уровня улучшения, и соответствующие уровни имеют разные разрешения, например четверть единого промежуточного формата (QCIF), единый промежуточный формат (CIF) и 2CIF, и разные частоты кадров.
Фиг. 1 иллюстрирует пример масштабируемого видеокодека, использующего многоуровневую структуру. В этом видеокодеке базовый уровень установлен в QCIF на 15 Гц (частота кадров), первый уровень улучшения установлен в CIF на 30 Гц и второй уровень улучшения установлен в стандартную четкость (SD) на 60 Гц.
При кодировании такого многоуровневого видеокадра может использоваться корреляция между уровнями. Например, определенная область 12 видеокадра из первого уровня улучшения эффективно кодируется посредством предсказания из соответствующей области 13 видеокадра из базового уровня. Таким же образом область 11 видеокадра из второго уровня улучшения может эффективно кодироваться посредством предсказания из области 12 первого уровня улучшения. Если соответствующие уровни из многоуровневого видеокадра имеют разные разрешения, то перед тем как выполнять предсказание, следует увеличить разрешение изображения базового уровня.
В находящемся в употреблении стандарте масштабируемого кодирования видеосигнала (в дальнейшем называется стандартом SVC), который был выпущен Joint Video Team (JVT), которая является группой экспертов по видео Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC) и Международного союза электросвязи (ITU), проводится исследование для реализации многоуровневого видеокодека, как в проиллюстрированном на фиг. 1 примере, на основе существующего стандарта H.264.
Однако H.264 использует дискретное косинусное преобразование (DCT) в качестве способа пространственного преобразования, и в основанном на DCT кодеке возникают нежелательные блочные искажения, когда увеличивается степень сжатия. Имеются две причины блочных искажений.
Первой причиной является целочисленное преобразование DCT на основе блока. Причина состоит в том, что возникает прерывность на границе блока вследствие квантования коэффициентов DCT, обусловленная преобразованием DCT. Так как H.264 использует преобразование DCT размера 4 × 4, которое относительно небольшое, проблема прерывности может быть отчасти уменьшена, но она не может быть полностью устранена.
Второй причиной является предсказание компенсации движения. Блок с компенсацией движения формируется путем копирования данных элемента изображения, интерполированных с другого положения другого опорного кадра. Так как эти наборы данных не точно совпадают друг с другом, возникает прерывность на границе скопированного блока. Также во время процесса копирования эта прерывность переносится в блок с компенсацией движения.
В последнее время разработаны несколько технологий для решения блочных искажений. Для уменьшения эффекта блочности H.264 и 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 в дополнение к существующему способу межблочного кодирования (т.е. межблочному режиму) и способу внутреннего кодирования (т.е. внутреннему режиму) принят способ кодирования intra-BL (т.е. режим intra-BL), который является способом предсказания кадра на текущем уровне путем использования кадра, созданного на более низком уровне, как показано на фиг. 3.
Фиг. 3 - изображение, схематически поясняющее три описанных выше режима кодирования. Выполняется первое (?) внутреннее кодирование определенного макроблока 4 из текущего кадра 1, выполняется второе (?) межблочное кодирование с использованием кадра 2, который является временным положением, отличным от положения текущего кадра 1, и выполняется третье (?) кодирование intra-BL с использованием изображения из области 6 кадра 3 базового уровня, который соответствует макроблоку 4.
Как описано выше, в стандарте масштабируемого кодирования видеосигнала выбирается один эффективный способ из трех способов предсказания в единице макроблока, и соответствующий макроблок кодируется соответственным образом. То есть, для одного макроблока выборочно используется один из способа межблочного предсказания, способа внутреннего предсказания и способа предсказания intra-BL.
Раскрытие изобретения
Техническая проблема
В ныне существующем стандарте SVC мощность фильтра уменьшения блочности фактически выбирается для следования общепринятому стандарту H.264, как показано на фиг. 2.
Тем не менее, поскольку фильтр уменьшения блочности применяется к уровням в многоуровневом видеокодере/видеодекодере, неоправданно строго применять фильтр уменьшения блочности снова к кадру, предоставленному с более низкого уровня, чтобы эффективно предсказывать кадр текущего уровня. Однако, поскольку в находящемся в употреблении стандарте SVC режим intra-BL рассматривается как тип внутреннего кодирования и способ выбора мощности фильтра в соответствии с H.264, как проиллюстрировано на фиг. 2, применяется как есть, и не представляется никакого соображения, кодирован ли текущий блок в режиме intra-BL, когда выбирают мощность фильтра.
Известно, что качество изображения восстановленного видеосигнала сильно повышается, когда мощность фильтра адекватна соответствующим условиям и фильтр уменьшения блочности применяется на адекватной мощности фильтра. Соответственно, необходимо исследовать методики, которые правильно выбирают мощность фильтра, принимая во внимание режим intra-BL во время операции кодирования/декодирования многоуровневого видеосигнала.
Техническое решение
Пояснительные, неограничивающие варианты осуществления настоящего изобретения преодолевают вышеуказанные недостатки и другие недостатки, не описанные выше. Также настоящему изобретению не требуется преодолевать описанные выше недостатки, и пояснительный неограничивающий вариант осуществления настоящего изобретения может не преодолеть ни одну из проблем, описанных выше.
Настоящее изобретение обеспечивает подходящую мощность фильтра уменьшения блочности в соответствии с тем, использует ли определенный блок, к которому будет применяться фильтр уменьшения блочности, режим intra-BL в видеокодере/видеодекодере на основе множества уровней.
Согласно аспекту настоящего изобретения предоставляется способ выбора мощности фильтра уменьшения блочности при выполнении фильтрации для уменьшения блочности по отношению к границе между текущим блоком, кодированным в режиме intra-BL, и его соседним блоком, согласно настоящему изобретению, который включает в себя определение, имеет ли коэффициенты текущий блок или соседний блок, выбор мощности фильтра в качестве первой мощности фильтра, если текущий блок или соседний блок имеет коэффициенты в результате оценки; и выбор мощности фильтра в качестве второй мощности фильтра, если текущий блок или соседний блок не имеет коэффициентов в результате оценки; где первая мощность фильтра больше второй мощности фильтра.
Согласно другому аспекту настоящего изобретения предоставляется способ выбора мощности фильтра уменьшения блочности при выполнении фильтрации для уменьшения блочности по отношению к границе между текущим блоком, кодированным в режиме intra-BL, и его соседним блоком, который включает в себя определение, соответствует ли текущий блок или соседний блок режиму intra-BL, в котором текущий блок и соседний блок имеют одинаковый базовый кадр; выбор мощности фильтра в качестве первой мощности фильтра, если текущий блок или соседний блок не соответствует режиму intra-BL в результате оценки; и выбор мощности фильтра в качестве второй мощности фильтра, если текущий блок или соседний блок соответствует режиму intra-BL в результате оценки; где первая мощность фильтра больше второй мощности фильтра.
Согласно еще одному аспекту настоящего изобретения предоставляется способ выбора мощности фильтра уменьшения блочности при выполнении фильтрации для уменьшения блочности по отношению к границе между текущим блоком, кодированным в режиме intra-BL, и его соседним блоком, который включает в себя определение, имеют ли коэффициенты текущий блок и соседний блок, определение, соответствуют ли текущий блок и соседний блок режиму intra-BL, в котором текущий блок и соседний блок имеют одинаковый базовый кадр, и допуская, что первым условием является то, что текущий блок и соседний блок имеют коэффициенты, а вторым условием является то, что текущий блок и соседний блок не соответствуют режиму intra-BL, в котором текущий блок и соседний блок имеют одинаковый базовый кадр, выбор мощности фильтра в качестве первой мощности фильтра, если удовлетворяются первое и второе условия, выбор мощности фильтра в качестве второй мощности фильтра, если удовлетворяется одно из первого и второго условий, и выбор мощности фильтра в качестве третьей мощности фильтра, если не удовлетворяется ни одно из первого и второго условий; где мощность фильтра постепенно снижается в порядке первой мощности фильтра, второй мощности фильтра и третьей мощности фильтра.
Согласно еще одному аспекту настоящего изобретения предоставляется способ кодирования видеосигнала на основе множества уровней с использованием фильтрации для уменьшения блочности, который включает в себя кодирование входного видеокадра; декодирование кодированного кадра; выбор мощности фильтра уменьшения блочности, которую необходимо применить по отношению к границе между текущим блоком и его соседним блоком, которые включаются в декодированный кадр; и выполнение фильтрации уменьшения блочности по отношению к границе в соответствии с выбранной мощностью фильтра уменьшения блочности; где выбор мощности фильтра уменьшения блочности выполняется, принимая во внимание то, соответствует ли текущий блок режиму intra-BL и имеет ли коэффициенты текущий блок или соседний блок.
Согласно еще одному аспекту настоящего изобретения предоставляется способ декодирования видеосигнала на основе множества уровней с использованием фильтрации для уменьшения блочности, который включает в себя восстановление видеокадра из входного битового потока; выбор мощности фильтра уменьшения блочности, которую необходимо применить по отношению к границе между текущим блоком и его соседним блоком, которые включаются в восстановленный кадр; и выполнение фильтрации для уменьшения блочности по отношению к границе в соответствии с выбранной мощностью фильтра уменьшения блочности; где выбор мощности фильтра уменьшения блочности выполняется, принимая во внимание то, соответствует ли текущий блок режиму intra-BL и имеет ли коэффициенты текущий блок или соседний блок.
Согласно еще одному аспекту настоящего изобретения предоставляется многоуровневый видеокодер, использующий фильтрацию для уменьшения блочности, который включает в себя первый модуль, кодирующий входной видеокадр; второй модуль, декодирующий кодированный кадр; третий модуль, выбирающий мощность фильтра уменьшения блочности, которую необходимо применить по отношению к границе между текущим блоком и его соседним блоком, которые включаются в декодированный кадр; и четвертый модуль, выполняющий фильтрацию для уменьшения блочности по отношению к границе в соответствии с выбранной мощностью фильтра уменьшения блочности; где третий модуль выбирает мощность фильтра, принимая во внимание то, соответствует ли текущий блок режиму intra-BL и имеет ли коэффициенты текущий блок или соседний блок.
Согласно еще одному аспекту настоящего изобретения предоставляется многоуровневый видеодекодер, использующий фильтрацию для уменьшения блочности, который включает в себя первый модуль, восстанавливающий видеокадр из входного битового потока; второй модуль, выбирающий мощность фильтра уменьшения блочности, которую необходимо применить по отношению к границе между текущим блоком и его соседним блоком, которые включаются в восстановленный кадр; и третий модуль, выполняющий фильтрацию для уменьшения блочности по отношению к границе в соответствии с выбранной мощностью фильтра уменьшения блочности; где второй модуль выбирает мощность фильтра, принимая во внимание то, соответствует ли текущий блок режиму intra-BL и имеет ли коэффициенты текущий блок или соседний блок.
Описание чертежей
Вышеупомянутые и другие аспекты настоящего изобретения станут более очевидными из последующего подробного описания типовых вариантов осуществления, воспринятого совместно с прилагаемыми чертежами, на которых:
Фиг. 1 - изображение, иллюстрирующее пример масштабируемого видеокодека, использующего многоуровневую структуру;
Фиг. 2 - блок-схема алгоритма, иллюстрирующая способ выбора мощности фильтра уменьшения блочности в соответствии с общепринятым стандартом H.264;
Фиг. 3 - схема, поясняющая три способа масштабируемого кодирования видеосигнала;
Фиг. 4 - изображение, иллюстрирующее пример режима intra-BL на основе того же базового кадра;
Фиг. 5 - блок-схема алгоритма, иллюстрирующая способ выбора мощности фильтра в многоуровневом видеокодере, согласно типовому варианту осуществления настоящего изобретения;
Фиг. 6 - изображение, иллюстрирующее вертикальную границу и целевые выборки блока;
Фиг. 7 - изображение, иллюстрирующее горизонтальную границу и целевые выборки блока;
a
b
Фиг. 8 - изображение, иллюстрирующее позиционную корреляцию текущего блока q с его соседними блоками p и p;
Фиг. 9 - блок-схема, иллюстрирующая конструкцию видеокодера разомкнутого цикла согласно типовому варианту осуществления настоящего изобретения;
Фиг. 10 - изображение, иллюстрирующее структуру битового потока, сформированного согласно типовому варианту осуществления настоящего изобретения;
Фиг. 11 - изображение, иллюстрирующее границы макроблока и блоков по отношению к сигналу яркости;
Фиг. 12 - изображение, иллюстрирующее границы макроблока и блоков по отношению к сигналу цветности;
Фиг. 13 - блок-схема, иллюстрирующая конструкцию видеокодера согласно типовому варианту осуществления настоящего изобретения.
Вариант осуществления для изобретения
Ниже будут подробно описываться типовые варианты осуществления настоящего изобретения со ссылкой на прилагаемые чертежи. Аспекты и признаки настоящего изобретения и способы для достижения аспектов и признаков станут очевидны путем обращения к типовым вариантам осуществления, которые необходимо описать подробно со ссылкой на прилагаемые чертежи. Однако настоящее изобретение не ограничивается раскрытыми ниже типовыми вариантами осуществления, а может быть реализовано в различных формах. Сущности, определенные в описании, например подробная конструкция и элементы, предоставляются для содействия обычным специалистам в данной области техники во всестороннем понимании изобретения, а настоящее изобретение определяется только объемом прилагаемой формулы изобретения. Во всем описании настоящего изобретения одинаковые номера позиций чертежа используются для одинаковых элементов по различным чертежам.
В настоящем изобретении общепринятый режим направленного внутреннего предсказания H.264 (в дальнейшем называется «направленный внутренний режим») и режим intra-BL, который обращается к кадрам другого уровня, строго отделены друг от друга, и режим intra-BL определяется как тип режима межблочного предсказания (в дальнейшем называется «межблочный режим»). Причина в том, что межблочный режим обращается к соседним кадрам на том же уровне при предсказании текущего кадра, и он похож на режим inter-BL, который обращается к кадрам другого уровня, т.е. базовым кадрам, при предсказании текущего кадра. То есть, единственным отличием между межблочным режимом и режимом intra-BL является то, к какому кадру обращаются во время предсказания.
В последующем описании, чтобы четко провести отличия между внутренним режимом H.264 и режимом intra-BL, внутренний режим будет определяться как направленный внутренний режим.
В настоящем изобретении применяется общепринятая мощность фильтра H.264, если текущий блок q не соответствует режиму intra-BL, в то время как новый алгоритм для выбора мощности фильтра применяется, если текущий блок соответствует режиму intra-BL. В соответствии с этим алгоритмом максимальная мощность фильтра (Bs = 4) применяется в случае, когда текущий блок q и соседний блок p соответствуют внутреннему режиму. Или же, текущий блок q может соответствовать режиму intra-BL или межблочному режиму, и в этом случае ставятся первое условие, что текущий блок q или соседний блок p имеет коэффициент, и второе условие, что текущий блок q и соседний блок p не соответствуют режиму intra-BL, в котором блоки p и q имеют одинаковый базовый кадр.
Первое условие полагает, что относительно большая мощность фильтра должна использоваться в случае, когда по меньшей мере один из текущего блока q и соседнего блока p имеет коэффициент. Обычно, если некоторое значение, которое должно кодироваться во время кодирования видеосигнала, меньше чем пороговая величина, оно просто меняется на «0», но не кодируется. Соответственно, включенный в блок коэффициент становится «0», и соответствующий блок может не иметь коэффициента. Фильтр высокой мощности обязан применяться по отношению к блоку, не имеющему коэффициента.
Второе условие полагает, что текущий блок q и соседний блок p не соответствуют режиму intra-BL, в котором блоки p и q имеют одинаковый базовый кадр. Соответственно, в случае когда текущий блок q или соседний блок p соответствует межблочному режиму, или текущий блок q и соседний блок p соответствуют режиму intra-BL, в котором блоки p и q имеют разные базовые кадры, второе условие не удовлетворяется.
Как проиллюстрировано на фиг. 4, допускается, что два блока p и q, которые соответствуют режиму intra-BL, имеют одинаковый базовый кадр 15. Два блока p и q принадлежат текущему кадру 20 и кодируются по отношению к соответствующим областям 11 и 12 в базовом кадре 15. Как описано выше, в случае взятия опорных изображений из одного и того же базового кадра имеется низкая вероятность того, что блочные искажения возникнут на границе между двумя блоками. Тем не менее, если опорные изображения берутся из разных базовых кадров, может быть высокая вероятность того, что возникнут блочные искажения. В межблочном режиме, хотя два блока p и q обращаются к одному и тому же кадру, имеется большая вероятность, что опорные изображения не граничат друг с другом в отличие от двух блоков p и q, и это вызывает высокую вероятность возникновения блочных искажений. Следовательно, в случае когда удовлетворяется второе условие, следует применять относительно высокую мощность фильтра по сравнению со случаем, когда второе условие не удовлетворяется.
В типовом варианте осуществления настоящего изобретения мощность фильтра соответственно устанавливается в «2», если удовлетворяются одновременно первое условие и второе условие, устанавливается в «1», если удовлетворяется одно из первого и второго условий, и устанавливается в «0», если ни одно из первого и второго условий не удовлетворяется. Хотя точные значения мощности фильтра («0», «1», «2» и «4») являются лишь типовыми, порядок мощностей фильтра должен сохраняться, как он есть.
С другой стороны, нет необходимости одновременно определять первое условие и второе условие. Мощность фильтра может выбираться путем определения только первого условия. В этом случае мощность фильтра, которая удовлетворяет первому условию, должна быть по меньшей мере выше, чем мощность фильтра, которая не удовлетворяет первому условию. Таким же образом мощность фильтра может выбираться путем определения только второго условия. В этом случае мощность фильтра, которая удовлетворяет второму условию, должна быть по меньшей мере выше, чем мощность фильтра, которая не удовлетворяет второму условию.
Фиг. 5 - блок-схема алгоритма, иллюстрирующая способ выбора мощности фильтра в многоуровневом видеокодере согласно типовому варианту осуществления настоящего изобретения. В последующем описании термин «видеокодер» используется как общее обозначение видеокодера и видеодекодера. Типовой вариант осуществления настоящего изобретения, который проиллюстрирован на фиг. 5, дополнительно включает в себя операции S110, S115, S125, S130 и S145 по сравнению с общепринятым способом, который проиллюстрирован на фиг. 2.
a
b
Сначала выбирается граница соседних блоков (например, блоки 4 х 4 пикселя), к которой необходимо применять фильтр уменьшения блочности (S10). Фильтр уменьшения блочности необходимо применять к части границы блока, в частности к целевым выборкам, которые граничат с границей блока. Целевые выборки означают множество выборок, упорядоченных вокруг границы между текущим блоком q и его соседним блоком p, как показано на фиг. 6 или фиг. 7. Как показано на фиг. 8, с учетом порядка формирования блоков, верхний блок и левый блок текущего блока q соответствуют соседним блокам p (p и p), и поэтому объектами, к которым применяется фильтр уменьшения блочности, являются верхняя граница и левая граница текущего блока q. Нижняя граница и правая граница текущего блока q фильтруются во время следующего процесса уменьшения блочности для нижнего блока и правого блока в текущем блоке.
В типовом варианте осуществления настоящего изобретения каждый блок имеет размер 4 × 4 пикселя, поскольку согласно стандарту H.264 минимальным размером переменного блока в предсказании движения является 4 × 4 пикселя. Однако для специалистов в данной области техники будет очевидно, что фильтрация также может применяться к границам блока у блоков 8 х 8 и блоков других размеров.
Ссылаясь на фиг. 6, увидим, что целевые выборки появляются вокруг левой границы текущего блока q в случае, если граница блока является вертикальной. Целевые выборки включают четыре выборки p0, p1, p2 и p3 на левой стороне вертикальной граничной линии, которая находится в соседнем блоке p, и четыре выборки q0, q1, q2 и q3 на правой стороне граничной линии, которая имеется в текущем блоке q. Хотя фильтрации подлежат всего четыре выборки, количество контрольных выборок и количество фильтрованных выборок может изменяться в соответствии с выбранной мощностью фильтра.
Ссылаясь на фиг. 7, увидим, что целевые выборки появляются вокруг верхней границы текущего блока q в случае, в котором граница блока является горизонтальной. Целевые выборки включают в себя четыре выборки p0, p1, p2 и p3, находящиеся в верхней половине горизонтальной граничной линии (соседний блок p), и четыре выборки q0, q1, q2 и q3, находящиеся в нижней половине горизонтальной граничной линии (текущий блок q).
Согласно существующему стандарту H.264 фильтр уменьшения блочности применяется к составляющей сигнала яркости и составляющей сигнала цветности соответственно, и фильтрация последовательно выполняется в порядке растрового сканирования на единице макроблока, которая составляет один кадр. По отношению к соответствующим макроблокам фильтрация в горизонтальном направлении (как показано на фиг. 7) может выполняться после того, как выполнится фильтрация в вертикальном направлении (как показано на фиг. 6), и наоборот.
Ссылаясь снова на фиг. 5, увидим, что после операции S10 определяется, соответствует ли текущий блок q режиму intra-BL (S110). Если в результате оценки текущий блок не соответствует режиму intra-BL («No» в операции S110), то следующим шагом выполняется общепринятый алгоритм выбора мощности фильтра H.264.
В особенности определяется, соответствует ли по меньшей мере один из блока p и блока q, к которым принадлежат целевые выборки, направленному внутреннему режиму (S15). Если по меньшей мере один из блока p и блока q соответствует направленному внутреннему режиму («Yes» в операции S15), то определяется, включается ли граница блока в границу макроблока (S20). Если да, то мощность Bs фильтра устанавливается в «4» (S25); если нет, то Bs устанавливается в «3» (S30). Оценка в операции S20 выполняется с учетом факта, что вероятность возникновения блочного искажения повышается в границе макроблока по сравнению с другими границами блока.
Если ни один из блока p и блока q не соответствует направленному внутреннему режиму («No» в операции S15), то определяется, имеет ли блок p или блок q коэффициенты (S35). Если кодируется по меньшей мере один из блока p и блока q («Yes» в операции S35), то Bs устанавливается в «2» (S40). Однако если опорные кадры блока p и блока q отличаются или количества опорных кадров отличаются («Yes» в операции S45) в состоянии, где ни один из блоков не закодирован («No» в операции S35), то Bs устанавливается в «1» (S50). Причина в том факте, что блоки p и q имеют разные опорные кадры, что означает относительно высокую вероятность того, что возникли блочные искажения.
Если опорные кадры блоков p и q не отличаются или количества опорных кадров между ними не отличаются («No» в операции S45) в результате оценки в операции S45, то определяется, отличаются ли вектора движения блока p и блока q (S55). Причина в том, что поскольку в случае, в котором вектора движения не совпадают друг с другом, хотя оба блока имеют одинаковые опорные кадры («No» в операции S45), вероятность того, что возникли блочные искажения, относительно высока по сравнению со случаем, в котором вектора движения совпадают друг с другом. Если вектора движения блока p и блока q отличаются в операции S55 («Yes» в операции S55), то Bs устанавливается в «1» (S50); если нет, то Bs устанавливается в «0» (S60).
С другой стороны, если блок q соответствует режиму intra-BL в результате оценки в операции S110 («Yes» в операции S110), то мощность фильтра выбирается с использованием первого условия и второго условия, которые предлагаются в соответствии с настоящим изобретением.
В частности, сначала определяется, соответствует ли соседний блок p направленному внутреннему режиму (S115). Если блок p соответствует направленному внутреннему режиму, то Bs устанавливается в «4» (S120). Причина в том, что внутреннее кодирование, которое использует внутрикадровое сходство, значительно усиливает блочные искажения по сравнению с межблочным кодированием, которое использует межкадровое сходство. Соответственно, мощность фильтра относительно повышается, если существует блок с внутренним кодированием по сравнению со случаем, когда блок с внутренним кодированием не существует.
Если блок p не соответствует направленному внутреннему режиму («No» в операции S115), то определяется, удовлетворяются ли первое условие и второе условие. Сначала определяется, удовлетворяется ли первое условие, т.е. имеет ли p или q коэффициенты (S125), и если да, то определяется, соответствуют ли p и q режиму intra-BL, в котором p и q имеют одинаковый базовый кадр (S130). Если p и q соответствуют режиму intra-BL («Yes» в операции S130), т.е. если второе условие не удовлетворяется, то Bs устанавливается в «1» (S140); если второе условие удовлетворяется, то Bs устанавливается в «2» (S135).
Если и p и q не имеют коэффициентов в результате оценки в операции S125 («No» в операции S125), то таким же образом определяется, соответствуют ли p и q режиму intra-BL, в котором p и q имеют одинаковый базовый кадр (S145). Если да («Yes» в операции S145), т.е. если второе условие не удовлетворяется, то Bs устанавливается в «0». Если нет («No» в операции S145), т.е. если второе условие удовлетворяется, то Bs устанавливается в «1».
Как описано выше, в операциях S120, S135, S140 и S150 соответствующие мощности Bs фильтра установлены в «4», «2», «1» и «0». Тем не менее это лишь иллюстративно, и они могут устанавливаться в другие значения при условии, что сохраняется их порядок мощности, без отклонения от объема настоящего изобретения.
В случае, когда текущий блок q соответствует режиму intra-BL («Yes» в операции S110) в отличие от случая, когда он не соответствует режиму intra-BL («No» в операции S110), то операция S20 определения, является ли граница блока границей макроблока, не включается. Причина в том, что может быть подтверждено, что на изменение мощности фильтра не может сильно повлиять тот факт, принадлежит ли граница блока границе макроблока в случае, когда текущий блок соответствует режиму intra-BL.
Фиг. 9 - блок-схема, иллюстрирующая конструкцию многоуровнего видеокодера, который включает в себя фильтр уменьшения блочности, использующий способ выбора мощности фильтра, который показан на фиг. 5. Многоуровневый видеокодер может реализовываться как тип замкнутого цикла или тип разомкнутого цикла. Здесь видеокодер замкнутого цикла выполняет предсказание по отношению к исходному кадру, а видеокодер разомкнутого цикла выполняет предсказание по отношению к восстановленному кадру.
Модуль 280 выбора выбирает и выводит один из сигнала, переданного от устройства 195 повышения дискретизации в кодере 100 базового уровня, переданного сигнала от модуля 260 компенсации движения и переданного сигнала от модуля 270 внутреннего предсказания. Этот выбор выполняется путем выбора из режима intra-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 оценки движения, и формирует выходной битовый поток. В качестве способа кодирования без потерь может использоваться арифметическое кодирование или кодирование переменной длины.
Фиг. 10 - изображение, иллюстрирующее пример структуры потока 50 двоичных сигналов, сформированного согласно типовому варианту осуществления настоящего изобретения. В фильтре стандарта H.264 битовый поток кодируется в единицах слоя. Битовый поток 50 включает в себя заголовок 60 слоя и данные 70 слоя, а данные 70 слоя состоят из множества микроблоков (MB) 71-74. Данные макроблока 73 состоят из поля 80 mb_type, поля 85 mb_pred и поля 90 данных текстуры.
В поле 80 mb_type записывается значение, которое указывает тип макроблока. То есть это поле указывает, является ли текущий макроблок макроблоком с внутренним кодированием, макроблоком с межблочным кодированием или макроблоком с кодированием intra-BL.
В поле 85 mb_pred записывается подробный режим предсказания в соответствии с типом макроблока. В случае макроблока с внутренним кодированием записывается выбранный режим внутреннего предсказания, а в случае макроблока с межблочным кодированием записываются номер опорного кадра и вектор движения по сегментам макроблока.
В поле 90 данных текстуры записывается кодированный остаточный кадр, т.е. данные текстуры.
Ссылаясь снова на фиг. 9, увидим, что кодер 200 уровня расширения дополнительно включает в себя модуль 271 обратного квантования, модуль 272 обратного преобразования DCT и сумматор 215, которые используются для восстановления кодированного с потерями кадра путем его обратного декодирования.
Модуль 271 обратного квантования обратно квантует коэффициенты, квантованные модулем 230 квантования. Этот процесс обратного квантования является обратным процессом процесса квантования. Модуль 272 обратного пространственного преобразования выполняет обратное преобразование квантованных результатов и предоставляет обратно преобразованные результаты сумматору 215.
Сумматор 215 восстанавливает видеокадр путем добавления сигнала, предоставленного модулем 272 обратного пространственного преобразования, к предсказанному сигналу, выбранному модулем 280 выбора и сохраненному в буфере кадра (не проиллюстрирован). Видеокадр, восстановленный сумматором 215, предоставляется фильтру 290 уменьшения блочности, а изображение соседнего блока восстановленного видеокадра предоставляется модулю 270 внутреннего предсказания.
Модуль 291 выбора мощности фильтра выбирает мощность фильтра по отношению к границе макроблока и границам блока (например, блока 4 х 4) в одном макроблоке в соответствии со способом выбора мощности фильтра, который объяснен со ссылкой на фиг. 5. В случае сигнала яркости макроблок имеет размер 16 х 16 пикселей, как проиллюстрировано на фиг. 11, а в случае сигнала цветности макроблок имеет размер 8 х 8 пикселей, как проиллюстрировано на фиг. 12. На фиг. 11 и 12 «Bs» нанесен на границу, на которой мощность фильтра должна быть указана в одном макроблоке. Однако «Bs» не нанесен на правой граничной линии и нижней граничной линии макроблока. Если не существует макроблока справа или ниже текущего макроблока, то фильтр уменьшения блочности для соответствующей части не нужен, хотя если справа или ниже текущего макроблока существует макроблок, то мощность фильтра граничных линий выбирается во время процесса фильтрации для уменьшения блочности в соответствующем макроблоке.
Фильтр 290 уменьшения блочности фактически выполняет фильтрацию для уменьшения блочности по отношению к соответствующим граничным линиям согласно мощности фильтра, выбранной модулем 291 выбора мощности фильтра. Ссылаясь на фиг. 6 и 7, увидим, что на обеих сторонах вертикальной границы или горизонтальной границы указываются четыре пикселя. Операция фильтрации может затрагивать максимально три пикселя на каждой стороне границы, т.е. {p2, p1, p0, q0, q1, q2}. Это выбирается с учетом мощности Bs фильтра, параметра QP квантования соседнего блока и других.
Однако в фильтрации для уменьшения блочности очень важно отличать настоящую границу, существующую в кадре, от границы, сформированной путем квантования коэффициентов DCT. Чтобы сохранить распознавание изображения, настоящая граница должна оставаться нефильтрованной насколько возможно, а искусственная граница должна фильтроваться, чтобы быть незаметной. Соответственно, фильтрация выполняется только когда удовлетворяются все условия Уравнения (1)
<img file="00000001.tif" he="6" wi="109" img-content="undefined" img-format="tif" />
(1)
Здесь a и b являются пороговыми величинами, определенными в соответствии с параметром квантования, FilterOffsetA, FilterOffsetB и другими.
Если Bs равно «1», «2» или «3» и к входным сигналам p1, p0, q0 и q1 применяется 4-выводный фильтр, то фильтрованными выходными сигналами будут P0 (который является результатом фильтрации p0) и Q0 (который является результатом фильтрации q0). В отношении сигнала яркости, если
,
то применяется 4-выводный фильтр к входным сигналам p2, p1, p0 и q0 и фильтрованным выходным сигналом является P1 (который является результатом фильтрации p1). Таким же образом, если
,
то применяется 4-выводный фильтр к входным сигналам q2, q1, q0 и p0 и фильтрованным выходным сигналом является Q1 (который является результатом фильтрации q1).
С другой стороны, если Bs равно «4», 3-выводный фильтр, 4-выводный фильтр или 5-выводный фильтр применяется к входным сигналам, и P0, P1 и P2 (которые являются результатами фильтрации p2), и Q0, Q1 и Q2 (которые являются результатами фильтрации q2) могут выводиться на основе пороговых величин a и b и восьми текущих пикселей.
Ссылаясь опять на фиг. 9, увидим, что результирующий кадр D1, фильтрованный фильтром 290 уменьшения блочности, предоставляется модулю 250 оценки движения для использования в межблочном предсказании других входных кадров. Также если существует уровень улучшения над текущим уровнем улучшения, то кадр D1 может предоставляться в качестве опорного кадра, когда выполняется предсказание режима intra-BL на верхнем уровне улучшения.
Тем не менее выходной сигнал D1 фильтра уменьшения блочности вводится в модуль 250 оценки движения только в случае видеокодера замкнутого цикла. В случае видеокодера разомкнутого цикла, например видеокодера на основе MCTF (временной фильтрации с компенсацией движения), исходный кадр используется в качестве опорного кадра во время межблочного предсказания, и поэтому не требуется, чтобы выходной сигнал фильтра уменьшения блочности снова вводился в модуль 250 оценки движения.
Кодер 100 базового уровня может включать в себя модуль 120 пространственного преобразования, модуль 130 квантования, модуль 140 энтропийного кодирования, модуль 150 оценки движения, модуль 160 компенсации движения, модуль 170 внутреннего предсказания, модуль 180 выбора, модуль 171 обратного квантования, модуль 172 обратного пространственного преобразования, устройство 105 понижения дискретизации, устройство 195 повышения дискретизации и фильтр 190 уменьшения блочности.
Устройство 105 понижения дискретизации выполняет понижающую дискретизацию исходного входного кадра до разрешения базового уровня, а устройство 195 повышения дискретизации выполняет повышающую дискретизацию фильтрованного выходного сигнала фильтра 190 уменьшения блочности и предоставляет результат с повышенной дискретизацией модулю 280 выбора уровня улучшения.
Так как кодер 100 базового уровня не может использовать информацию нижнего уровня, устройство 180 выбора выбирает один из сигнала с внутренним предсказанием и сигнала с межблочным предсказанием и фильтр 190 уменьшения блочности выбирает мощность фильтра таким же образом, что и в общепринятом H.264.
Поскольку операции остальных составляющих элементов те же, что и операции у составляющих элементов, существующих в кодере 200 уровня улучшения, то их подробное объяснение будет пропущено.
Фиг. 13 - блок-схема, иллюстрирующая конструкцию видеодекодера 3000 согласно типовому варианту осуществления настоящего изобретения. Вкратце видеодекодер 3000 включает в себя декодер 600 уровня улучшения и декодер 500 базового уровня.
Сначала будет объясняться конструкция декодера 600 уровня улучшения. Модуль 610 энтропийного декодирования выполняет декодирование без потерь входного битового потока уровня улучшения в отличие от модуля энтропийного кодирования и извлекает информацию о типе макроблока (т.е. информацию, которая указывает тип макроблока), режим внутреннего предсказания, информацию о движении, данные текстуры и др.
Здесь битовой поток может строиться как проиллюстрированный на фиг. 10 пример. Здесь тип макроблока известен из поля 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 выбора выбирает один из сигнала, переданного от устройства 595 повышения дискретизации, сигнала, переданного от модуля 650 компенсации движения, и сигнала, переданного от модуля 640 внутреннего предсказания, и передает выбранный сигнал сумматору 615. В то же время модуль 660 выбора распознает тип информации текущего макроблока, предоставленного от модуля 610 энтропийного декодирования, и выбирает соответствующий сигнал среди трех типов сигналов в соответствии с типом текущего макроблока.
Сумматор 615 добавляет сигнал, выведенный из модуля 630 обратного пространственного преобразования, к сигналу, выбранному модулем 660 выбора, для восстановления видеокадра уровня улучшения.
Модуль 691 выбора мощности фильтра выбирает мощность фильтра по отношению к границе макроблока и границам блока в одном макроблоке в соответствии со способом выбора мощности фильтра, который объяснен со ссылкой на фиг. 5. В этом случае, чтобы выполнить фильтрацию, должен быть известен тип текущего макроблока, т.е. является ли текущий макроблок макроблоком с внутренним кодированием, макроблоком с межблочным кодированием или макроблоком с кодированием intra-BL, и информация о типе макроблока, которая включается в заголовок битового потока, передается видеодекодеру 3000.
Фильтр 690 уменьшения блочности выполняет фильтрацию для уменьшения блочности соответствующих граничных линий в соответствии с модулем 691 выбора мощности фильтра. Результирующий кадр D3, фильтрованный фильтром 690 уменьшения блочности, предоставляется модулю 650 компенсации движения для формирования кадра с межблочным предсказанием для других входных кадров. Также если существует уровень улучшения над текущим уровнем улучшения, то кадр D3 может предоставляться в качестве опорного кадра, когда выполняется предсказание режима intra-BL для верхнего уровня улучшения.
Конструкция декодера 500 базового уровня аналогична конструкции декодера 600 уровня улучшения. Однако, поскольку декодер 500 базового уровня не может использовать информацию нижнего уровня, устройство 560 выбора выбирает один из сигнала с внутренним предсказанием и сигнала с межблочным предсказанием, и фильтр 590 уменьшения блочности выбирает мощность фильтра таким же образом, что и в общепринятом алгоритме H.264. Также устройство 595 повышения дискретизации выполняет повышающую дискретизацию результата, фильтрованного фильтром 590 уменьшения блочности, и предоставляет сигнал с повышенной дискретизацией модулю 660 выбора уровня улучшения.
Поскольку операции остальных составляющих элементов те же, что и операции у составляющих элементов декодера 600 уровня улучшения, то их подробное объяснение будет пропущено.
Как описано выше, приводится пример, что видеокодер или видеодекодер включает в себя два уровня, т.е. базовый уровень и уровень улучшения. Однако это лишь иллюстративно, и специалистам в данной области техники будет очевидно, что может быть реализован видеокодер, имеющий три или более уровней.
До сих пор соответствующие составляющие элементы фиг. 9 и фиг. 13 относятся к программному обеспечению или аппаратным средствам, например программируемой пользователем вентильной матрице (FPGA) или специализированной интегральной схеме (ASIC). Тем не менее соответствующие составляющие элементы могут создаваться для постоянного хранения в адресуемом носителе информации или для выполнения одним или несколькими процессорами. Функции, предоставленные в соответствующих составляющих элементах, могут разделяться на более детальные составляющие элементы или объединяться в один составляющий элемент, все из которых выполняют назначенные функции.
Промышленная применимость
Согласно настоящему изобретению в многоуровневом видеокодере/видеодекодере мощность фильтра уменьшения блочности может быть правильно задана в зависимости от того, является ли определенный блок, к которому будет применяться фильтр уменьшения блочности, блоком режима intra-BL.
Кроме того, путем установки подходящей мощности фильтра уменьшения блочности (как указано выше) может быть улучшено качество изображения восстановленного видеосигнала.
Типовые варианты осуществления настоящего изобретения описаны в пояснительных целях, и специалисты в данной области техники примут во внимание, что возможны различные модификации, дополнения и замены без отклонения от объема и сущности изобретения, как раскрыто в прилагаемой формуле изобретения. Поэтому объем настоящего изобретения должен определяться прилагаемой формулой изобретения и ее законными эквивалентами.