ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к управлению фильтрацией и, в частности, к управлению деблочной фильтрацией на границах блоков в видеокадре.
УРОВЕНЬ ТЕХНИКИ
Кодирование видеокадров может привнести блочные артефакты в кодированные данные. Подобные блочные артефакты в основном возникают из-за дискретных косинусных преобразований в кодировании ошибки межкадрового (интра-) и внутрикадрового (интер-) предсказания. Вследствие этого для зрителя во время восстановления могут стать видимыми неоднородности на границах между блоками. Другим известным источником блочных артефактов является предсказание с компенсацией движения.
Традиционным подходом для борьбы с подобными блочными артефактами является использование деблочной фильтрации. В уровне техники для видео кодирования, например, в H.264, цикличная фильтрация с адаптивным деблочным фильтром осуществляется после предсказания и остаточного кодирования, но перед сохранением восстановленного кадра для использования его в дальнейшем при кодировании последующих кадров, см. List et al., Adaptive Deblocking Filter, IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(7): 614-619. Цикличная фильтрация состоит из решения о фильтрации, операции фильтрации, функции отсечения и изменения значений пикселей. Решение о том, осуществлять или нет фильтрацию границы, принимается на основе оценки нескольких условий. Решение о фильтрации зависит от типа макроблока, разности вектора движения (MV) между соседними блоками, если один из соседних блоков имеет закодированный остаток, и от локальной структуры текущего блока или соседних блоков.
Далее, объем фильтрации зависит от положения пикселя по отношению к границе блока и от параметра квантования, используемого для остаточного кодирования для текущего блока.
В H.264 решение о фильтрации принимается на основе значений пикселей между границей блоков двух соседних блоков. Это применяется как к вертикальной границе блока, так и к горизонтальной границе блока. Граница может представляться пикселями a, b, c и d в одном блоке и e, f, g и h в другом блоке, где граница блока находится между d и e, см. ниже:
abcd|efgh
Решение о фильтрации основывается на сравнении трех разностей пикселей с различными пороговыми значениями. Пороговые значения адаптируются к параметру квантования (QP). Если следующие условия выполняются, то решение о фильтрации является положительным |d-e|<T1, |c-d|<T2 и |e-f|<T2, где T1 и T2 подбираются на основе QP.
В H.264 имеется два режима фильтрации. В первом режиме фильтрации (нормальной фильтрации) фильтрация может описываться дельта-значением (Δ), на которое фильтрация изменяет текущее значение. Фильтрация для ближайших к границе блока пикселей представляет собой:
d' =d+Δc и e' =e-Δc
где Δc было отсечено до порогового значения ±T3 и ограничено QP. Для высоких QP разрешается большая фильтрация, чем для низких QP. Отсечка может описываться как:
Δc=Max(-T3, Min(T3, Δ))
Сила фильтрации может увеличиваться, если соблюдается любое из следующих условий |b-d|< T2 и |e-g|< T2. Сила фильтрации также корректируется путем отсечки менее чем дельта-значения, например, для обеспечения большей вариации.
Второй (сильный) режим фильтрации применяется только для границы интра-макроблока, когда выполняется следующее условие |d-e|<T1/4.
Существенным ограничением, связанным с адаптивным деблочным фильтром, используемым в H.264, является то, что второй, сильный режим фильтрации может применяться только для границ макроблоков, если, по меньшей мере, один из блоков является интра-блоком. Вычисление решений о фильтрации в H.264, таким образом, представляет собой дополнительную вычислительную сложность, поскольку несколько решений о фильтрации должны проверяться для каждой строки или столбца в блоке для того, чтобы определить, нужно ли применять деблочную фильтрацию или нет.
В US 2006/0078048 раскрывается упрощение, применяемое к деблочной фильтрации в H.264, которое снижает вычислительную сложность по сравнению со стандартными решениями о фильтрации H.264. Проверка решения для проведения нормальной фильтрации или не проведения фильтрации осуществляется на основе одной строки или столбца или подгруппы строк или столбцов, пересекающих границу между двумя макроблоками. Это решение затем применяется ко всем строкам или столбцам, пересекающим эту границу. Как следствие, единственное решение о фильтрации вычисляется для каждой границы макроблока, и это единственное решение о фильтрации применяется ко всем линиям, пересекающим границу макроблока. Существенным ограничением, связанным с адаптивной деблочной фильтрацией, раскрытой в US 2006/0078048, является то, что выполняется только нормальная фильтрация, которая может приводить к видимым артефактам на границах блоков, поскольку более сильная фильтрация не является возможной.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Общей целью является обеспечение эффективной деблочной фильтрации для устранения или уменьшения блочных артефактов.
Эта и другие цели достигаются вариантами осуществления, раскрытыми в данном документе.
Аспект вариантов осуществления определяет способ управления фильтрацией, применяемый к блоку множества пикселей в видео кадре. Способ предусматривает вычисление специфического для блока значения решения о фильтрации для данного блока на основе значений пикселей в предварительно определенной подгруппе линий пикселей в блоке и значений пикселей предварительно определенной соответствующей подгруппы соответствующих линий пикселей в соседнем блоке множества пикселей в видео кадре. Это специфическое для блока значение решения о фильтрации применяется для определения, нужно ли применять какую-либо деблочную фильтрацию к текущему блоку и на границе с соседним блоком, или что никакая деблочная фильтрация не требуется. Если деблочная фильтрация должна применяться к текущему блоку, что определяется на основе сравнения специфического для блока значения решения о фильтрации и специфического для блока порогового значения, то соответствующее специфическое для линии значение решения о фильтрации вычисляется для каждой линии пикселей в блоке по отношению к границе. Такое специфическое для линии значение решения о фильтрации, вычисляется на основе, по меньшей мере, одного значения пикселя в текущей линии и, по меньшей мере, одного значения пикселя в соответствующей текущей линии соседнего блока. Специфическое для линии решение о фильтрации сравнивается со специфическим для линии пороговым значением и применяется для того, чтобы определить, выбирать ли сильный деблочный фильтр или слабый деблочный фильтр для деблочной фильтрации текущей линии. Слабый деблочный фильтр имеет сравнительно более низкую силу фильтрации по сравнению с сильным деблочным фильтром.
Другой аспект вариантов осуществления относится к устройству управления фильтрацией, включающему в себя вычислитель специфического для блока значения решения о фильтрации, выполненный с возможностью вычислять специфическое для блока значение решения о фильтрации для блока множества пикселей в видео кадре. Специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей в предварительно определенной подгруппе линий пикселей в блоке и значений пикселей в предварительно определенной соответствующей подгруппе линий пикселей в соседнем блоке множества пикселей в видео кадре. Если вычисленное специфическое для блока значение решения о фильтрации ниже специфического для блока порогового значения, то вычислитель специфического для линии значения решения о фильтрации, вычисляет соответствующее специфическое для линии значение решения о фильтрации для каждой линии пикселей в блоке. Специфическое для линии значение решения о фильтрации для линии вычисляется на основе, по меньшей мере, одного значения пикселя в линии и, по меньшей мере, одного значения пикселя в соответствующей линии пикселей в соседнем блоке. Компаратор пороговых значений выполнен с возможностью сравнивать специфическое для линии значение решения о фильтрации со специфическим для линии пороговым значением. Если специфическое для линии значение решения о фильтрации ниже специфического для линии порогового значения, то селектор фильтра выбирает сильный деблочный фильтр для применения к текущей линии, в противном случае селектор фильтра вместо этого выбирает слабый деблочный фильтр.
Дополнительные аспекты вариантов осуществления относятся к кодеру и декодеру, включающим в себя устройства управления фильтрацией, и мультимедиа терминалу, включающему в себя декодер.
Аспекты вариантов осуществления используют специфическое для блока решение о фильтрации, чтобы выбирать, нужно ли применять деблочную фильтрацию к границе текущего блока или нет. Это означает, что требуется только единственное подобное значение решения о фильтрации, чтобы осуществить решение относительно фильтрации или отсутствии фильтрации. Затем специфическое для блока решение о фильтрации дополняется соответствующими специфическими для линий решениями для каждой линии в блоке, чтобы осуществить выбор между сильной и слабой деблочной фильтрацией. Это приводит к более эффективной и улучшенной деблочной фильтрации.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Изобретение вместе с его дальнейшими целями и преимуществами поясняется в нижеследующем описании со ссылками на чертежи, на которых представлено следующее:
Фиг. 1 - схематичная иллюстрация решения о фильтрации на основе блока и на основе строки, в соответствии с вариантом осуществления;
Фиг. 2 - блок-схема последовательности действий, иллюстрирующая способ управления фильтрацией в соответствии с вариантом осуществления;
Фиг. 3A и 3B - два варианта осуществления соседних блоков и границы блока, для которых может быть применена деблочная фильтрация;
Фиг. 4 - блок-схема последовательности действий, иллюстрирующая дополнительный этап способа Фиг. 2 в соответствии с вариантом осуществления;
Фиг. 5 - блок-схема последовательности действий, иллюстрирующая дополнительный этап способа Фиг. 2 в соответствии с вариантом осуществления;
Фиг. 6 - блок-схема варианта осуществления устройства управления фильтрацией;
Фиг. 7 - реализация устройства управления фильтрацией в соответствии с вариантом осуществления;
Фиг. 8 - блок-схема кодера в соответствии с вариантом осуществления;
Фиг. 9 - блок-схема декодера в соответствии с вариантом осуществления; и
Фиг. 10 - блок-схема мультимедиа терминала в соответствии с вариантом осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
На всех чертежах одинаковые ссылочные позиции используются для обозначения аналогичных или соответствующих элементов.
Варианты осуществления в основном относятся к адаптивной деблочной фильтрации или адаптивной цикличной фильтрации, как она иногда называется, для того, чтобы устранять блочные артефакты по границам блока в видео кадре. Варианты осуществления предлагают специальные решения о фильтрации, которые применяются для того, чтобы определять, нужно ли вообще применять какую-либо деблочную фильтрацию, и применять ли сильную фильтрацию или слабую фильтрацию к соответствующим линиям пикселей в блоке. Конкретные решения о фильтрации вместе с возможностью использования сильной или слабой фильтрации обеспечивают возможность эффективного уменьшения блочных артефактов, но без увеличения вычислительной сложности.
Фиг. 1 схематично представляет вариант осуществления деблочной фильтрации. Вариант осуществления определяет два различных типа значений решения о фильтрации для блока множества пикселей в видео кадре. Первое значение решения о фильтрации представляет собой значение решения о фильтрации, являющееся специфическим для блока или основанным на блоке значением, которое вычисляется единожды для текущего блока и текущей границы с соседним блоком множества пикселей в видео кадре. Это специфическое для блока значение решения о фильтрации применяется, чтобы определить, нужно ли вообще применять какую-либо деблочную фильтрацию к текущему блоку по отношению к границе с соседним блоком. Если на основе специфического для блока значения решения о фильтрации сделано заключение о том, что деблочную фильтрацию необходимо применять, то вычисляется второй тип значения решения о фильтрации для каждой линии пикселей в блоке пикселей. Таким образом, второй тип решения о фильтрации представляет собой основанное на линии или специфическое для линии решение о фильтрации, используемое для выбора, следует ли применить сильную деблочную фильтрацию или слабую деблочную фильтрацию к текущей линии пикселей в блоке пикселей. Таким образом, специфическое для блока значение решения о фильтрации вычисляется единожды и применяется ко всем линиям в блоке по отношению к границе с соседним блоком. Если деблочную фильтрацию необходимо применять, что определяется на основе специфического для блока значения решения о фильтрации, то соответствующее специфическое для линии значение решения о фильтрации вычисляется для каждой линии, чтобы осуществить выбор между сильной и слабой деблочной фильтрацией. Это означает возможность того, что сильная деблочная фильтрация будет выбрана для всех линий в блоке, что слабая деблочная фильтрация будет выбрана для всех линий, или что некоторые линии будут использовать сильную деблочную фильтрацию, тогда как другие будут использовать слабую деблочную фильтрацию.
Далее варианты осуществления описаны более подробно со ссылкой на Фиг. 2, которая иллюстрирует блок-схему последовательности операций способа управления фильтрацией в соответствии с вариантом осуществления, применимым к блоку множества пикселей в видео кадре. Как хорошо известно в данной области техники, видео кадр разделяется на неперекрывающиеся блоки пикселей, которые кодируются и декодируются в соответствии с различными доступными режимами интер- и интра-кодирования. Обычно, видео кадр разделяется на неперекрывающиеся макроблоки из 16×16 пикселей. Такой макроблок, в свою очередь, может разделяться на меньшие блоки различных размеров, например, 4×4 или 8×8 пикселей. Однако в соответствии с вариантами осуществления также возможны прямоугольные блоки, такие как 4×8, 8×4, 8×16 или 16×8. Варианты осуществления изобретения могут применяться к любым подобным блокам пикселей, включая макроблоки или даже более крупные блоки пикселей. В конкретном варианте осуществления способ управления фильтрацией применим ко всем блокам множества пикселей, имеющим, по меньшей мере, 8 пикселей в вертикальном направлении и/или горизонтальном направлении. В данной области техники часто применяются разделение на единицы предсказания и единицы преобразования, чтобы обозначить такой блок из множества пикселей.
В новом стандарте высокоэффективного видео кодирования (HEVC) используются единицы кодирования (CU). Размер CU в настоящее время варьируется от 64×64 пикселей (наибольший) до 4×4 пикселей (наименьший). Таким образом, наибольший CU может быть разделен на меньшие CU c «уровнем гранулярности», зависящим от локальных характеристик кадра. Это означает, что наибольший CU может разделяться на меньшие CU различных размеров. Варианты осуществления также могут использоваться в связи с такими единицами кодирования, которые могут рассматриваться как подпадающие по определение «блок пикселей», используемый в данном документе.
Каждый пиксель в блоке имеет соответствующее значение пикселя. Видеокадры, в целом, имеют цветовые значения, назначенные для пикселей, где эти цветовые значения представляются в различных цветовых форматах. Один из известных цветовых форматов использует одну составляющую яркости и две составляющих цветности для каждого пикселя, хотя существуют другие форматы, такие как использующие красную, зеленую и синюю составляющие для каждого пикселя.
Традиционно, фильтрация составляющей яркости и фильтрация составляющей цветности осуществляются раздельно, возможно, с применением различных решений о фильтрации и различных деблочных фильтров. Варианты осуществления могут применяться, чтобы фильтровать составляющую яркости, фильтровать составляющую(ие) цветности или фильтровать как составляющую яркости, так и составляющую(ие) цветности. В конкретном варианте осуществления, варианты осуществления применяются для реализации фильтрации яркости или яркостного сигнала.
Адаптивная деблочная фильтрация проводится вдоль границы, края или раздела между соседними блоками. Как следствие, такие границы могут являться вертикальными границами 1, см. Фиг. 3A, между двумя соседними блоками 10, 20, находящимися бок о бок в видео кадре. Альтернативно, границы являются горизонтальными границами 1, см. Фиг. 3B, между двумя соседними 10, 20, где один блок 10 располагается над другим блоком 20 в видео кадре. В конкретном варианте осуществления, сначала фильтруются вертикальные границы, начиная с самой левой границы и продолжая по границам по направлению к правой стороне в их геометрическом порядке. Затем фильтруются горизонтальные границы, начиная с границы наверху и продолжая по границам по направлению к низу в их геометрическом порядке. Однако варианты осуществления не ограничиваются этим конкретным порядком фильтрации, и по существу могут применяться с любым предварительно определенным порядком. В конкретном варианте осуществления границы на краю видео кадра предпочтительно не фильтруются и, вследствие этого, исключаются из деблочной фильтрации.
Способ этого варианта осуществления начинается на этапе S1, где специфическое для блока значение решения о фильтрации вычисляется для данного блока. Специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей в предварительно определенной подгруппе линий пикселей в блоке и на основе значений пикселей в предварительно определенной соответствующей подгруппе соответствующих линий пикселей в соседнем блоке. Линия пикселей в текущем блоке и соответствующая линия пикселей в соседнем блоке принадлежат к одной и той же горизонтальной линии, т.е. строке, продолжающейся через вертикальную границу, или принадлежат к одной и той же вертикальной линии, т.е. столбцу, продолжающемуся через горизонтальную границу.
Каждая из предварительно определенной подгруппы и предварительно определенной соответствующей подгруппы включает в себя, по меньшей мере, одну линию на предварительно определенной позиции в блоке и в соседнем блоке, соответственно. Например, если специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей в предварительно определенной линии в блоке и соответствующей предварительно определенной линии в соседнем блоке, то эти предварительно определенные линии имеют определенные номер строки и номер столбца. Например, предварительно определенная линия может соответствовать номеру j строки или номеру j столбца в блоке, а соответствующая предварительно определенная линия тогда будет иметь номер j строки или номер j столбца в соседнем блоке. Это будет означать, что предварительно определенная линия другого блока, которую необходимо последовательно фильтровать, также будет соответствовать номеру j строки или номеру j столбца в этом другом блоке. Соответственно, если специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей во множестве предварительно определенных линий пикселей и во множестве соответствующих предварительно определенных линий пикселей, то предварительно определенные линии могут иметь номера j,j+k строки или номера j,j+k столбца, где k является заданным положительным целым числом.
В соответствии с вариантами осуществления специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей в предварительно определенной подгруппе линий в блоке и значений пикселей в соответствующей предварительно определенной подгруппе соответствующих линий в соседнем блоке. Это означает, что если блок и соседний блок, например, содержит восемь строк или столбцов, то не все из этих восьми строк или столбцов применяются в вычислении специфического для блока значения решения о фильтрации, а скорее, подгруппа из них. В конкретных вариантах осуществления предварительно определенная подгруппа содержит единственную предварительно определенную линию пикселей или первую предварительно определенную линию пикселей и вторую предварительно определенную линию пикселей. Тогда специфическое для блока значение решения о фильтрации вычисляется на основе значения пикселя у, по меньшей мере, одного, предпочтительно, множества пикселей в предварительно определенной(ных) линии(ях) пикселей, и значения пикселя у, по меньшей мере, одного, предпочтительно, множества пикселей в соответствующей(их) предварительно определенной(ных) линии(ях) пикселей.
Следующий этап S2 сравнивает специфическое для блока значение решения о фильтрации (BS FDV) со специфическим для блока пороговым значением (TBS). Если специфическое для блока значение решения о фильтрации ниже специфического для блока порогового значения, способ продолжается этапом S3. Однако если специфическое для блока значение решения о фильтрации не ниже специфического для блока решающего значения, то деблочная фильтрация не должна применяться к блоку по отношению к соответствующей границе. Это означает, что способ заканчивается или возвращается на этап S1, на котором обрабатывается следующий блок множества пикселей в видеокадре, что схематично иллюстрируется строкой L2.
Если специфическое для блока значение решения о фильтрации ниже специфического для блока порогового значения, что определяется на этапе S2, то деблочная фильтрация должна применяться к блоку и соответствующей границе. Тогда способ продолжается на этапе S3. Этап S3 формирует, вместе с этапами S4-S6, цикл, который выполняется для каждой линии пикселей в блоке, т.е. строки или столбца, в зависимости от того, является ли граница вертикальной или горизонтальной. На этапе S3 вычисляется специфическое для линии значение решения о фильтрации для текущей линии в блоке. Специфическое для линии значение решения о фильтрации вычисляется на основе, по меньшей мере, одного значения пикселя в текущей линии и, по меньшей мере, одного значения пикселя в соответствующей линии в соседнем блоке. В варианте осуществления, только единственное значение пикселя в линии и единственное значение пикселя в соответствующей линии применяются в вычислении. В других вариантах осуществления применяется множество, т.е., по меньшей мере, два значения пикселей в линии и множество значений пикселей в соответствующей линии. По меньшей мере, одно значение пикселя в линии представляет собой значение пикселя для, по меньшей мере, одного пикселя в предварительно определенной(ых) позиции(ях) в линии, по отношению к границе. Например, если применяется единственное значение пикселя, то оно может соответствовать значению пикселя для пикселя в ближайшей к границе линии. Не ограничивающие примеры применения множества значений пикселей включают в себя использование значений пикселей для двух пикселей в ближайшей к границе линии, трех пикселей в ближайшей к границе линии или ближайшего к линии пикселя и третьего ближайшего к линии пикселя.
Вычисленное специфическое для линии значение решения о фильтрации (LS FDV) сравнивается со специфическим для линии пороговым значением (TLS) на этапе S4. Если специфическое для линии значение решения о фильтрации ниже специфического для линии порогового значения, способ продолжается на этапе S5, где выбирается второй или сильный деблочный фильтр для применения к пикселям в текущей линии пикселей, чтобы подвергнуть фильтрации и изменить значение, по меньшей мере, одного значения пикселя в текущей линии. Однако если специфическое для линии значение решения о фильтрации не ниже специфического для линии порогового значения на этапе S4, то вместо этого способ продолжается на этапе S6, где выбирается первый, нормальный или слабый деблочный фильтр. Затем слабый деблочный фильтр применяется к пикселям в текущей линии пикселей, чтобы подвергнуть фильтрации и изменить значение, по меньшей мере, одного значения пикселя в текущей линии. Сильный деблочный фильтр, выбираемый на этапе S6, в этом случае имеет сравнительно более высокую силу фильтрации по сравнению со слабым деблочным фильтром, выбираемом на этапе S6.
Цикл этапов с S3 по S5/S6 повторяется для каждой линии в блоке, что схематично проиллюстрировано строкой L1. Это означает, что для данного блока имеется возможность того, что сильный деблочный фильтр выбирается для всех линий, что слабый деблочный фильтр выбирается для всех линий, или что сильный деблочный фильтр выбирается для некоторых линий, тогда как слабый деблочный фильтр выбирается для других линий в этом блоке. Различные строки пикселей или столбцы пикселей могут обрабатываться последовательно, начиная, например, с верхней строки или самого левого столбца и затем продолжая по направлению к нижней строке или самому правому столбцу в блоке. Альтернативно, различные линии пикселей в блоке могут обрабатываться параллельно, чтобы ускорить способ управления фильтрацией.
Как только все линии блока будут обработаны циклом этапов S3-S5/S6, способ заканчивается или возвращается на этап S1, чтобы начаться заново для другого блока пикселей в видеокадре.
Таким образом, варианты осуществления изобретения обеспечивают несложное и эффективное с вычислительной точки зрения принятие решения, применять ли деблочную фильтрацию или нет для данного блока и границы. Оно комбинируется со специфическими для линий решениями о выборе между сильной и слабой деблочной фильтрацией для этих блоков, когда специфическое для блока решение о фильтрации привело к заключению, что деблочная фильтрация должна применяться.
Различные варианты осуществления решений о фильтрации далее описываются более подробно.
Таким образом, специфическое для блока значение решения о фильтрации преимущественно показывает, насколько плавными являются значения пикселей в первой предварительно определенной линии пикселей в блоке и в соответствующей предварительно определенной первой линии пикселей в соседнем блоке в видеокадре в направлении, параллельном направлению фильтрации, и насколько плавными являются значения пикселей во второй предварительно определенной линии пикселей в блоке и в соответствующей предварительно определенной второй линии пикселей в соседнем блоке в видеокадре в направлении, параллельном направлению фильтрации.
Таким образом, специфическое для блока решение о фильтрации преимущественно представляет плавность значений пикселей в направлении, параллельном фильтрации. Другими словами, специфическое для блока решение о фильтрации получает сведения о том, являются ли значения пикселей в первой/второй предварительно определенных строках в блоке и значения пикселей в соответствующих первой/второй строках соседнего блока плавными, т.е. варьируются ли они в малой степени или, по меньшей мере, не более чем на определенную максимальную величину, от направления, параллельного направлению фильтрации по границе блока. Такие плавные значения пикселей дадут нулевое или низкое специфическое для блока значение решения о фильтрации и, следовательно, будут подвергаться деблочной фильтрации, поскольку значения пикселей являются плавными с отсутствующими или очень малыми структурами.
В конкретном варианте осуществления специфическое для блока значение решения о фильтрации вычисляется на основе значений пикселей в первой предварительно определенной линии 14 в блоке 10 и соответствующей первой предварительно определенной линии 24 в соседнем блоке 20 и во второй предварительно определенной линии 16 в блоке 10 и соответствующей второй предварительно определенной линии 26 в соседнем блоке 20. Первая и вторая предварительно определенные линии 14, 16 преимущественно соответствуют предварительно определенным номерам строк в блоке 10 (Фиг. 3A) или предварительно определенным номерам столбцов (Фиг. 3B), и соответствующие первая и вторая предварительно определенные линии 24, 26 представляют собой соответствующие предварительно определенные номера строк или номера столбцов в соседнем блоке 20.
Две предварительно определенные линии предпочтительно являются разнесенными. Следовательно, первое значение решения о фильтрации может вычисляться как |p22-2p12+p02|+|q22-2q12+q02|+ |p25-2p15+p05|+|q25-2q15+q05|. В этой формуле и далее здесь pki обозначает значение пикселя для пикселя с номером i строки и номером k столбца в блоке 10, см. Фиг. 3A, или значение пикселя для пикселя с номером i строки и номером k столбца в блоке 10, см. Фиг. 3B. qki соответственно обозначает значение пикселя для пикселя в соседнем блоке 20. В конкретном варианте осуществления блока, проиллюстрированного на Фиг. 3A и 3B, k=0, 1, 2, 3, i=0, 1, 2, 3, 4, 5, 6, 7. Это означает, что абсолютное значение вычисляется для строки/столбца с номером два 14 и строки/столбца с номером пять 16 в блоке 10 и для строки/столбца с номером два 24 и строки/столбца с номером пять 26 в соседнем блоке 20. Каждое абсолютное значение определяется как абсолютное значение значения пикселя для пикселя, ближайшего к границе 1 блока в соответствующих строке/столбце 14, 16, 24, 26, плюс значение пикселя для второго ближайшего пикселя к границе 1 блока в соответствующих строке/столбце 14, 16, 24, 26, за вычетом удвоенного значения пикселя для следующего ближайшего пикселя к границе 1 блока в соответствующих строке/столбце 14, 16, 24, 26.
Альтернативные варианты осуществления для вычисления специфического для блока значения решения о фильтрации включают в себя |p22-2p13+p04|+|q22-2q13+q04|+|p25-2p14+p03|+|q25-2q14+q03| или |p22-2p13+p04+p25-2p14+p03|+|q22-2q13+q04+q25-2q14+q03|. В этих двух вариантах осуществления линии в блоке 10 и соответствующие линии в соседнем блоке 20 представляют собой диагональные линии множества пикселей.
В вариантах осуществления предполагается, что в некоторых вариантах применения для каждого блока вычисляется более одного специфического для блока значения решения о фильтрации. В подобном случае деблочная фильтрация будет применяться к блоку и границе, только если удовлетворяются все такие специфические для блока решения о фильтрации, т.е. когда каждое вычисленное специфическое для блока значение решения о фильтрации ниже своего соответствующего специфического для блока порогового значения.
Дополнительной альтернативой является вычисление специфического для блока значения решения о фильтрации на основе значений пикселей не в двух предварительно определенных строках и соответствующих предварительно определенных строках, как это описывается выше, а на основе значений пикселей в четырех предварительно определенных строках в блоке и четырех соответствующих предварительно определенных строках в соседнем блоке:
Варианты этого варианта осуществления включают в себя использование номеров строки/столбца ноль, три, пять и семь, номеров строки/столбца один, два, пять и шесть, номеров строки/столбца ноль, три, пять и шесть или номеров строки/столбца один, два, четыре и семь. Эти варианты осуществления могут также применяться в случае использования только двух предварительно определенных линий и двух соответствующих им предварительно определенных линий, таких как строки/столбцы номер два и пять.
Способ управления фильтрацией может применяться к различным вариантам осуществления вычисления специфического для линии значения решения о фильтрации. Например, специфическое для линии значение решения о фильтрации может вычисляться на основе значения пикселя для пикселя 11, ближайшего к границе 1 в линии 12 из пикселей 11, 13, 15, 17, и значения пикселя для пикселя 21, ближайшего к границе 1 в соответствующей линии 22 из пикселей 21, 23, 25, 27 в соседнем блоке 20: |p0i-q0i|. Альтернативное специфическое для линии значение решения о фильтрации, которое может использоваться в соответствии с вариантами осуществления изобретения, представляет собой |p3i-p0i|+|q0i-q3i|, т.е. равняется сумме абсолютной разности между значениями пикселей для пикселя 11, ближайшего к границе, и пикселя 17, четвертого ближайшего к границе 1 в линии 12, и абсолютной разности между значениями пикселей для пикселя 21, ближайшего к границе, и пикселя 27, четвертого ближайшего к границе 1 в соответствующей линии 22 соседнего блока 20. Дополнительный пример специфического для линии решения о фильтрации представляет собой |2p3i-p2i-2p1i|+|q0i-2q1i-q2i-2q3i|.
Специфическое для линии значение решения о фильтрации, вычисленное на этапе S3, может являться одним из, по меньшей мере, двух специфических для линии значений решения о фильтрации, которые рассчитываются для всех линий в блоке на этапе S3. Например, решение о том, применять ли сильную деблочную фильтрацию, может основываться на одном, двух или трех различных специфических для линии значениях решения о фильтрации.
Первое подобное специфическое для линии значение решения о фильтрации может указывать, насколько близко значения пикселей в текущей линии пикселей аппроксимируют прямую линию и насколько близко значения пикселей в соответствующей линии пикселей в соседнем блоке аппроксимируют прямую линию. В конкретном варианте осуществления первое специфическое для линии решение о фильтрации вычисляется как |p3i-p0i|+|q0i-q3i|. Это специфическое для линии решение о фильтрации затем может дополняться, по меньшей мере, одним дополнительным специфическим для линии решением о фильтрации. Причиной для этого является то, что любые изменения в значениях пикселей, вызванные сильной фильтрацией (этап S5 на Фиг. 2) не являются ограниченными. Например, если, по меньшей мере, значения пикселей в текущей линии блока и значения пикселей в соответствующей текущей линии соседнего блока являются практически равными, то первое специфическое для линии значение решения о фильтрации будет равным или близким нулю. Однако возможно, что значения пикселей в текущей линии, хотя и будучи примерно равными, довольно сильно отличаются от значений пикселей в соответствующей текущей линии. Такая ситуация может произойти, если имеется реальная структура или край, совпадающий с границей блока. Это означает, что край возникает не по причине блочного артефакта, но является изначальной принадлежностью конкретного видеокадра, и поэтому его не нужно отфильтровывать. Вследствие этого может являться преимущественным добавление второго специфического для линии решения о фильтрации, чтобы обнаруживать такие края, совпадающие с границей блока.
Второе специфическое для линии значение решения о фильтрации преимущественно показывает абсолютную разницу между значением пикселя для пикселя, ближайшего к границе блока в текущей линии, и значения пикселя для пикселя, ближайшего к границе блока в соответствующей текущей линии в соседнем блоке. Другими словами, второе специфическое для линии значение решения о фильтрации преимущественно равняется |p0i-q0i|. Затем этап S4 сравнивает первое специфическое для линии значение решения о фильтрации с первым специфическим для линии пороговым значением и сравнивает второе специфическое для линии значение решения о фильтрации со вторым специфическим для линии пороговым значением. Если оба специфических для линии значения решения о фильтрации находятся ниже их соответствующий ассоциированных специфических для линии пороговых значений, то способ продолжается на этапе S5 по Фиг. 2, где сильный деблочный фильтр выбирается для применения к пикселям в текущей линии. В противном случае, способ продолжается на этапе S6 по Фиг. 2, на котором вместо этого выбирается слабый деблочный фильтр.
Варианты осуществления также включают в себя использование другого второго специфического для линии значения решения о фильтрации, которое может применяться совместно с первым специфическим для линии значением решения о фильтрации, обсужденным выше. Альтернативно, это другое второе специфическое для линии значение решения о фильтрации может применяться в качестве третьего специфического для линии значения решения о фильтрации совместно с вышеописанными первым и вторым специфическими для линии значениями решения о фильтрации. Это дополнительное специфическое для линии значение решения о фильтрации преимущественно показывает, насколько плавными являются значения пикселей, по меньшей мере, в одной, преимущественно в двух, предварительно определенных строках пикселей в блоке и, по меньшей мере, в одной, преимущественно в двух, соответствующих предварительно определенных строках пикселей в соседнем блоке в направлении, параллельном направлению фильтрации. В предпочтительном варианте осуществления это специфическое для линии значение решения о фильтрации вычисляется как |p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05|. Этот пример специфического для линии значения решения о фильтрации фактически подобен варианту осуществления специфического для блока значения решения о фильтрации, рассчитанного на этапе S1. Однако даже если эти значения решения о фильтрации равны, специфическое для блока пороговое значение, применяемое на этапе S2, и специфическое для линии пороговое значение, применяемое на этапе S4, для этого примера специфического для линии значения решения о фильтрации преимущественно являются различными.
Фиг. 4 представляет собой блок-схему последовательности операций, иллюстрирующую дополнительный этап способа управления фильтрацией. Способ начинается на этапе S10, где специфическое для блока пороговое значение и специфическое(ие) для линии пороговое(ые) значение(я) фильтрации определяются на основе параметра квантования, выбранного для блока. Параметр квантования выбирается для остаточного кодирования блока и управляет качеством сжатия видео, которое хорошо известно в данной области техники и поэтому далее здесь не описывается.
В конкретном варианте осуществления специфическое для блока пороговое значение определяется как TBS=β, где параметр β определяется на основе параметра квантования (QR) блока. Таблица 1 ниже определяет возможные значения β для различных возможных значений параметра квантования.
Отношение между QP, tc и β
Конкретные(е) специфическое(ие) для линии пороговое(ые) значение(я), определенные на этапе S10 на основе параметра квантования зависит(ят) от конкретного(ых) решения(ий) о фильтрации, применяемых в способе управления фильтрацией. Например, если специфическое для линии значение решения о фильтрации представляет собой |p3i-p0i|+|q0i-q3i|, то TBS=β>>3, где X>>Y означает правый сдвиг X на 2Y, т.е. X/2Y.
Если специфическое для линии значение решения о фильтрации вычисляется как |p0i-q0i|, то специфическое для линии пороговое значение преимущественно определяется как TBS=a1×tc. Параметр tc представляет собой порог отсечки, выбранный для блока на основе параметра квантования в соответствии с приведенной выше Таблицей 1. Параметр a1 представляет собой множитель, выбранный для предотвращения выбора сильного деблочного фильтра, если сильная фильтрация с сильным деблочным фильтром модифицирует значение пикселя для пикселя, ближайшего к границе блока в текущей линии, на величину, которая больше величины, на которую слабая фильтрация со слабым деблочным фильтром и порогом отсечки модифицируют это значение пикселя. Были проведены экспериментальные испытания, которые подтвердили, что a1=2,5 работает хорошо. Дополнительно, значение 2,5 подразумевает, что специфическое для линии пороговое значение может вычисляться без каких-либо операций деления, как TBS=(tc×5+1)>>1. Если специфическое для линии значение решения о фильтрации вычисляется как |p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05|, то специфическое для линии пороговое значение преимущественно является TBS=β>>2.
Следовательно, простая справочная таблица, подобная Таблице 1, может использоваться, чтобы извлекать все пороговые значения, применяемые для специфических для блоков или специфических для линий пороговых значений для вариантов осуществления, представленных выше.
В варианте осуществления дополнительные условия или критерии могут использоваться в дополнение к специфическому для блока решению о фильтрации, чтобы решить, нужно ли фильтровать границу блока между текущим блоком A и соседним блоком B. Примеры таких дополнительных условий включают в себя:
i) блок А или блок В имеет режим предсказания (PredMode) равный интра (MODE_INTRA);
ii) блок А или блок В имеет ненулевые коэффициенты преобразования;
iii) блок А или блок В используют различные опорные кадры или различное число векторов движения;
iv) один вектор движения используется для предсказания блока А, и один вектор движения используется для предсказания блока В, и используемая абсолютная разность между горизонтальной и вертикальной составляющей вектора движения является большей или равной четырем в единицах четвертных отсчетов сигнала яркости кадра;
v) два вектора движения и два различных опорных изображения используются для предсказания блока А, и два вектора движения для тех же опорных изображений используются для предсказания блока В, и используемая в предсказании двух блоков для того же опорного изображения абсолютная разность между горизонтальной и вертикальной составляющей двух векторов движения является большей или равной четырем в единицах четвертных отсчетов сигнала яркости кадра;
vi) два вектора движения для того же опорного изображения используются для предсказания блока А, и два вектора движения для того же опорного изображения используются для предсказания блока В, и используемая в предсказании двух частей абсолютная разность между горизонтальной и вертикальной составляющей двух векторов движения является большей или равной четырем в единицах четвертных отсчетов сигнала яркости кадра;
Представленные выше условия с i) по vi) предпочтительно являются альтернативными. Это означает, что если любое из условий с i) по vi) выполняется для текущего блока А, и если специфическое для блока решение о фильтрации положительно, то деблочная фильтрация должна применяться на границе блока, и сильный или слабый деблочный фильтр должен выбираться для каждой линии пикселей в блоке. Это также подразумевает, что если ни одно из условий с i) по vi) не выполняется для текущего блока А, то преимущественно никакой фильтрации не осуществляется для блока А и соответствующей границы.
Фиг. 5 представляет собой блок-схему, иллюстрирующую дополнительный этап способа, проиллюстрированного на Фиг. 2. Способ продолжается с этапа S5 или S6 на Фиг. 2. Следующий этап S20 осуществляет фильтрацию для значений пикселей в текущих строках пикселей выбранным деблочным фильтром. Это означает, что если способ продолжается с этапа S5 на Фиг. 2, то на этапе S20 значения пикселей фильтруются сильным деблочным фильтром.
Варианты осуществления могут применяться в связи с любым сильным деблочным фильтром, применяемым в данной области техники для борьбы с блочными артефактами. В конкретном варианте осуществления сильная деблочная фильтрация выполняется со следующим набором операций:
где i представляет собой текущую линию в блоке. Следовательно, как показано на Фиг. 3A и 3B, i=0,…,7. В приведенных выше уравнениях pki', qki', k=0…2 представляют собой модифицированные значения пикселей в блоке и в соседнем блоке соответственно после фильтрации.
Модифицированные значения пикселей преимущественно также подвергаются отсечке, чтобы обязательно находиться в пределах разрешенного диапазона значений пикселей. В конкретных вариантах осуществления операция отсечки вынуждает модифицированные значения пикселей находиться в пределах диапазона [0, 255], делая возможным 256 различных значений пикселей. Это означает, что если модифицированное значение пикселя после фильтрации является меньшим, чем 0 или большим, чем 255, то оно замещается 0 или 255, соответственно.
Если же сравнение на этапе S4 на Фиг. 2 приводит к тому, что способ продолжается на этапе S6 по Фиг. 2, то на этапе S20 значения пикселей фильтруются слабым деблочным фильтром.
Варианты осуществления могут применяться в связи с любым слабым деблочным фильтром, применяемым в данной области техники для борьбы с блочными артефактами. В конкретном варианте осуществления слабая деблочная фильтрация выполняется со следующим набором операций:
p0i'= p0i+Δ0
q0i'= q0i-Δ0
Значение Δ0 вычисляется в двухэтапном процессе с вычислением начального Δ0i значения и последующим выполнением отсечки для этого значения перед тем, как оно применяется в приведенных выше уравнениях. В конкретном варианте осуществления Δ0i=(p1i-4p0i+4q0i-qi+4)>>3. Импульсная характеристика слабого деблочного фильтра представляет собой (1, 4, 4-1)/8. Диапазон отсечки Δ0i определяется на основе параметра квантования блока.
В этом варианте осуществления значения p1i, q1i модифицируются, если удовлетворяются дополнительные условия фильтрации, в противном случае значения пикселей не модифицируются. В варианте осуществления p1i модифицируется, если |p2i-p0i|<T, где T представляет собой пороговое значение и преимущественно определяется на основе параметра квантования блока. Если это условие выполняется, то p1i'=p1i+Δp1. Значение Δp1 также вычисляется в двухэтапном процессе, начинающемся с вычисления исходного значения Δp1i=(p2i+((p0i+q0i+1)>>1)-2p1i)>>1. Соответствующая импульсная характеристика представляет собой (1, 0, 0,5)/2. Затем Δp1 определяется как Δp1=(Min(Max(-tC, Δp1i),tC), где tC определяется на основе параметра квантования блока и может определяться по справочной таблице, такой как вышеупомянутая Таблица 1.
Соответственно, q1i модифицируются, если |q2i-q0i|<T. Если условие выполняется, то q1i'=q1i+Δq1. Значение Δq1 также вычисляется в двухэтапном процессе, начинающемся с вычисления исходного значения Δq1i=(q2i+((q0i+p0i+1)>>1)-2q1i)>>1 с импульсной характеристикой (0,5, 0,5, 0, 1)/2. Затем Δq1 определяется как Δq1=(Min(Max(-tC, Δq1i),tC).
В варианте осуществления, диапазон отсечки для Δ0i определяется на основе значения tC и анализа условий |p2i-p0i|<T и |q2i-q0i|<T. Затем, значение отсечки tC' сначала устанавливается равным tC и затем увеличивается на единицу для каждого из условий |p2i-p0i|<T и |q2i-q0i|<T, которые удовлетворяются. В варианте осуществления Δ0=(Min(Max(-tC', Δ0i),tC').
В альтернативном варианте осуществления Δp1i=(((((p0i+q0i+1)>>1)+p2i+1)>>1)-p1i)>>1 и Δq1i=(((((p0i+q0i+1)>> 1)+q2i+1)>>1)-q1i)>>1. Импульсные характеристики представляют собой (2, 4, 1, 1)/8 и (1, 1, 4, 2)/8. Эта фильтрация обеспечивает лучшие интерполяционные свойства для значений пикселей p2i, q2i по сравнению с использованием фильтра с коэффициентами фильтра (1, 0, 0,5, 0,5)/2. Это также снижает риск непреднамеренного добавления фальшивых граней.
В другом варианте осуществления слабая деблочная фильтрация выполняется в соответствии со следующими операциями:
Где Clip(a,b,X)=Min(Max(a,X),b).
Фиг. 6 представляет собой схематичную блок-схему устройства 100 управления фильтрацией в соответствии с вариантом осуществления. Устройство 100 управления фильтрацией включает в себя вычислитель 110 специфического для блока значения решения о фильтрации, выполненный с возможностью вычислять специфическое для блока значение решения о фильтрации для блока множества пикселей в видеокадре. Вычислитель 110 специфического для блока значения решения о фильтрации рассчитывает специфическое для блока значение решения о фильтрации на основе значений пикселей в предварительно определенной подгруппе линий пикселей в блоке и на основе значений пикселей в предварительно определенной соответствующей подгруппе соответствующих линий пикселей в соседнем блоке множества пикселей в видеокадре. В варианте осуществления вычислитель 110 специфического для блока значения решения о фильтрации рассчитывает специфическое для блока значение решения о фильтрации, которое показывает, насколько плавными являются значения пикселей в первой предварительно определенной линии пикселей в блоке и в соответствующей первой предварительно определенной линии пикселей в соседнем блоке в направлении, параллельном направлению фильтрации, и насколько плавными являются значения пикселей во второй предварительно определенной линии пикселей в блоке и в соответствующей второй предварительно определенной линии пикселей в соседнем блоке в направлении, параллельном направлению фильтрации, например, как |p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05|.
Компаратор 130 пороговых значений выполнен с возможностью сравнивать специфическое для блока значение решения о фильтрации, вычисленное вычислителем 110 специфического для блока значения решения о фильтрации, со специфическим для блока пороговым значением. Если специфическое для блока значение решения о фильтрации ниже специфического для блока порогового значения, что определяется компаратором 130 пороговых значений, то вычислитель 120 специфического для линии значения решения о фильтрации устройства 100 управления фильтрацией рассчитывает соответствующее специфическое для линии значение решения о фильтрации для каждой линии пикселей в блоке. Специфическое для линии значение решения о фильтрации вычисляется на основе, по меньшей мере, одного значения пикселя в линии в блоке и, по меньшей мере, одного значения пикселя в соответствующей линии в соседнем блоке. Вычислитель 120 специфического для линии значения решения о фильтрации может вычислять специфическое для линии значение решения о фильтрации в соответствии с любым из предыдущих описанных вариантов осуществления. Вычислитель 120 специфического для линии значения решения о фильтрации также может вычислять два или более, например, три, различных специфических для линии значений решения о фильтрации для каждой линии, как это раскрыто в данном документе.
Специфические для линии значения решения о фильтрации, рассчитанные вычислителем 120 специфического для линии значения решения о фильтрации, сравниваются, компаратором 130 пороговых значений, со специфическим для линии пороговым значением. Если вычислитель 120 специфического для линии значения решения о фильтрации рассчитывает множество различных специфических для линии значений решения о фильтрации для каждой линии, то компаратор 130 пороговых значений использует различные специфические для линии пороговые значения для различных специфических для линии значений решения о фильтрации, как это описано выше.
Устройство 100 управления фильтрацией включает в себя селектор 140 фильтра, выполненный с возможностью выбирать деблочный фильтр, чтобы фильтровать, по меньшей мере, одно значение пикселя в текущей линии пикселей, если специфическое для блока значение решения о фильтрации ниже специфического для блока порогового значения, что определяется компаратором 130 пороговых значений. Селектор 140 фильтра затем выбирает деблочный фильтр, между сильным деблочным фильтром и слабым деблочным фильтром, на основе сравнения между специфического(их) для линии значения(ий) решения о фильтрации для текущей линии и специфического(их) для линии порогового(ых) значения(ий). Следовательно, если специфическое(ие) для линии значение(я) решения о фильтрации находится(ятся) ниже своего(своих) ассоциированного специфического для линий порогового значения, то селектор 140 фильтра выбирает сильный деблочный фильтр для текущей линии. В противном случае селектор 140 фильтра выполнен с возможностью выбирать слабый деблочный фильтр, чтобы осуществлять фильтрацию, по меньшей мере, одного значения пикселя в текущей линии пикселей.
В необязательном варианте осуществления устройство 100 управления фильтрацией включает в себя определитель 150 порогового значения, выполненный с возможностью определять специфические для блоков и специфические для линий пороговые значения. В конкретном варианте осуществления определитель 150 порогового значения определяет пороговые значения для блока на основе параметра квантования, выбранного для остаточного кодирования блока. Определитель 150 порогового значения затем преимущественно определяет пороговые значения так, как это обсуждалось выше со ссылкой на Таблицу 1.
Устройство 100 управления фильтрацией может быть реализовано, по меньшей мере, частично программными средствами. Фиг. 7 представляет блок-схему устройства 100 управления фильтрацией, реализованного в виде компьютерного программного продукта, сохраненного в памяти 30, загруженного и запущенного на компьютере общего назначения или специально адаптированном компьютере, процессоре или микропроцессоре, представленном центральным процессором (CPU) 32 на данной фигуре.
Программные средства включают в себя элементы кода компьютерной программы или части программных кодов, которые приводят в исполнение операции, по меньшей мере, вычислителя 110 специфического для блока значения решения о фильтрации, вычислителя 120 специфического для линии значения решения о фильтрации, компаратора 130 пороговых значений, селектора 140 фильтра и необязательного определителя порогового значения. Программа может храниться полностью или частично, на одном или нескольких энергонезависимой машиночитаемых носителях или средствах хранения данных, таких как магнитные диски, CD-ROM, DVD, жесткие диски, в ROM или флэш-памяти. Средства хранения данных могут представлять собой локальные средства хранения данных или предоставляться удаленным способом, например, на сервере данных. Таким образом, программные средства могут загружаться в оперативную память компьютера или эквивалентной системы обработки для выполнения процессором. Компьютер/устройство обработки не должен обязательно быть предназначенным только для выполнения вышеописанных функций, но может также выполнять другие программные задачи. Не ограничивающий пример программного кода, использованного для определения устройства 100 управления фильтрацией, включает в себя код с одним потоком команд и множеством потоком данных (SIMD).
Альтернативно, устройство управления фильтрацией может быть реализовано аппаратными средствами. Имеются многочисленные варианты элементов электронных схем, которые могут использоваться и комбинироваться для успешного выполнения функций модулей устройства управления фильтрацией. Такие варианты охватываются вариантами осуществления изобретения. Конкретные примеры реализации устройства управления фильтрацией аппаратными средствами представляют собой реализацию в аппаратных средствах процессора цифрового сигнала (DSP) и технологии интегральных схем, включающей в себя электронные схемы общего назначения и схемы прикладной ориентации.
Фиг. 8 представляет блок-схему кодера 40 для кодирования блока пикселей в видеокадре видеопоследовательности в соответствии с вариантом осуществления.
Текущий блок пикселей предсказывается путем проведения оценки движения устройством 50 оценки движения по уже обеспеченному блоку пикселей в том же кадре или в предыдущем кадре. Результат оценки движения представляет собой вектор движения или перемещения, ассоциированный с опорным блоком, в случае интер-предсказания. Вектор движения используется компенсатором 50 движения для выдачи интер-предсказания блока пикселей.
Устройство 49 интра-предсказания рассчитывает интра-предсказание текущего блока пикселей. Выходные данные устройства оценки/компенсатора 50 движения и устройства 49 интра-предсказания являются входными данными для селектора 51, который выбирает или интра-предсказание или интер-предсказание текущего блока пикселей. Выходные данные селектора 51 являются входными данными для вычислителя ошибок, выполненного в форме сумматора 41, который также получает значения пикселей текущего блока пикселей. Сумматор 41 рассчитывает и выдает остаточную ошибку как разность значений пикселей между блоком пикселей и его предсказанием.
Ошибка преобразуется в преобразователе 42, например, путем дискретного косинусного преобразования и квантуется квантователем 43 с последующим кодированием в кодере 44, таком как энтропийный кодер. В интер-кодировании предсказанный вектор движения также подается в кодер 44 для генерирования кодированного представления текущего блока пикселей.
Преобразованная и квантованная остаточная ошибка для текущего блока пикселей также предоставляется обратному квантователю 45 и обратному преобразователю 46 для предсказания исходной остаточной ошибки. Эта ошибка добавляется сумматором 47 к предсказанию блока, выводимому из компенсатора 50 движения или устройства 49 интра-предсказания, чтобы создать опорный блок пикселей, который может использоваться в предсказании и кодировании следующего блока пикселей. Этот новый опорный блок сначала обрабатывается устройством 100 управления фильтрацией в соответствии с вариантами осуществления, чтобы определить, должна ли применяться деблочная фильтрация, и в таком случае - какой тип деблочного фильтра использовать. Обработанный новый опорный блок затем временно сохраняется в буфере 48 кадров, где он доступен для устройства 49 интра-предсказания и устройства оценки/компенсатора 50 движения.
Фиг. 9 представляет соответствующую блок-схему декодера 60, включающего в себя устройство 100 управления фильтрацией в соответствии с вариантами осуществления. Декодер 60 включает в себя декодер 61, такой как энтропийный декодер, для декодирования закодированного представления блока пикселей, чтобы получить набор квантованных и преобразованных остаточных ошибок. Эти остаточные ошибки деквантуются в обратном квантователе 62 и обратно преобразуются обратным преобразователем 63 для получения остаточных ошибок.
Эти остаточные ошибки добавляются в сумматоре 64 к значениям пикселей опорного блока пикселей. Опорный блок определяется устройством оценки/компенсатором 67 движения или устройством 66 интра-предсказания в зависимости от того, осуществляется ли интер- или интра-предсказание. В связи с этим, селектор 68 связан с сумматором 64 и устройством оценки/компенсатором 67 движения и устройством 66 интра-предсказания. Полученные в результате выходные данные декодированного блока пикселей являются входными данными для устройства 100 управления фильтрацией в соответствии с вариантами осуществления для того, чтобы деблочно фильтровать любые блочные артефакты. Отфильтрованный блок пикселей является выходными данными из декодера 60, и дополнительно, преимущественно временно предоставляется в буфер 65 кадров и может использоваться в качестве опорного блока пикселей для последующего блока пикселей, который нужно декодировать. В связи с этим буфер 65 кадров соединен с устройством оценки/компенсатором 67 движения для того, чтобы сделать доступными сохраненные блоки пикселей для устройства оценки/компенсатора 67 движения.
Выходные данные из сумматора 64 преимущественно являются входными данными для устройства 66 интра-предсказания, подлежащими к использованию в качестве не фильтрованного опорного блока пикселей.
Фиг. 10 представляет собой блок-схему мультимедиа терминала 70, в котором располагается декодер 60 с устройством управления фильтрацией. Мультимедиа терминал 70 может представлять собой любое устройство, имеющее функции декодирования мультимедиа, которое работает с закодированным видео потоком закодированных видеокадров, чтобы таким образом декодировать видеокадры и сделать доступными видео данные. Не ограничивающие примеры таких устройств включают в себя мобильные телефоны и другие переносные мультимедиа проигрыватели, компьютеры, декодеры, игровые приставки и т.д. Мультимедиа терминал 70 включает в себя память 72, выполненную с возможностью хранения закодированных видеокадров. Эти закодированные видеокадры могут генерироваться самим мультимедиа терминалом 70. В таком случае мультимедиа терминал 70 преимущественно включает в себя мультимедиа процессор или записывающее устройство вместе с подключенным кодером, таким как кодер на Фиг. 8. Альтернативно, закодированные видеокадры генерируются каким-либо другим устройством и передаются беспроводным способом или по проводам мультимедиа терминалу 70. Мультимедиа терминал 70 также включает в себя приемопередатчик (передатчик и приемник) или входной и выходной порт для осуществления передачи данных.
Закодированные видеокадры переносятся из памяти 72 в декодер 60, такой как декодер, проиллюстрированный на Фиг. 9. Затем декодер 60 декодирует закодированные видеокадры в декодированные видеокадры. Декодированные видеокадры предоставляются мультимедиа проигрывателю 74, который выполнен с возможностью воспроизводить декодированные видеокадры в видео данные, отображаемые на дисплее или экране 76 мультимедиа терминала 70 или присоединенные к нему.
На Фиг. 10 мультимедиа терминал был проиллюстрирован включающим в себя и декодер 60 и мультимедиа проигрыватель 74 с декодером 60, реализованным как часть мультимедиа проигрывателя 74. Однако это должно рассматриваться просто как пояснительный, но не ограничивающий пример реализации варианта осуществления для мультимедиа терминала 70. Также возможны распределенные реализации, где декодер 60 и мультимедиа проигрыватель 74 представляются на двух физически разделенных устройствах, а возможно и внутри мультимедиа терминала 70, как это используется здесь. Дисплей 76 также может предоставляться как отдельное устройство, подключенное к мультимедиа терминалу 70, где происходит фактическая обработка данных.
Вышеописанные варианты осуществления должны пониматься как немногие пояснительные примеры настоящего изобретения. Специалистам в данной области техники должно быть понятно, что различные модификации, комбинации и изменения могут производиться с вариантами осуществления без выхода из объема настоящего изобретения. В частности, различные части решения в различных вариантах осуществления могут комбинироваться в другие конфигурации, где это технически возможно. Однако объем настоящего изобретения определяется прилагаемой формулой изобретения.
Изобретение относится к управлению фильтрацией и, в частности, к управлению деблочной фильтрацией на границах блоков в видеокадре. Техническим результатом является обеспечение устранения или уменьшения блочных артефактов. В способе управления фильтрацией вычисляют для блока из множества пикселей первое значение решения о фильтрации, показывающее, насколько плавными являются значения пикселей в первых и вторых линиях пикселей в данном блоке и в соседнем блоке в направлении, параллельном направлению фильтрации. Сравнивают первое значение решения с первым пороговым значением, и если оно ниже порогового, вычисляют второе значение решения, показывающее, насколько близко значения пикселей в текущих линиях данного и соседнего блоков аппроксимируют прямую линию. Вычисляют третье значение решения, показывающее абсолютную разность между значением пикселя, который в текущей линии является ближайшим к границе с соседним блоком, и значением пикселя в соседнем блоке, который в текущей линии является ближайшим к границе блока. Сравнивают второе и третье значения решения соответственно со вторым и третьим пороговыми значениями. Выбирают слабый деблочный фильтр для значения пикселя в текущей линии, если второе или третье значение решения превосходит соответствующее ему пороговое значение. 5 н. и 18 з.п. ф-лы, 11 ил., 1 табл.
1. Способ управления фильтрацией, применяемый к блоку из множества пикселей в видеокадре, причем каждый пиксель имеет соответствующее значение пикселя, при этом способ содержит этапы, на которых:
вычисляют для упомянутого блока первое значение решения о фильтрации, показывающее, насколько плавными являются значения пикселей в первой и второй линии пикселей в этом блоке и в соответствующей первой и второй линии пикселей в соседнем блоке из множества пикселей в упомянутом видеокадре в направлении, параллельном направлению фильтрации;
сравнивают первое значение решения о фильтрации с первым пороговым значением;
если первое значение решения о фильтрации ниже первого порогового значения, вычисляют для упомянутого блока второе значение решения о фильтрации, показывающее, насколько близко значения пикселей в текущей линии пикселей в этом блоке аппроксимируют прямую линию и насколько близко значения пикселей в соответствующей текущей линии пикселей в упомянутом соседнем блоке аппроксимируют прямую линию;
вычисляют для упомянутого блока третье значение решения о фильтрации, показывающее абсолютную разность между значением пикселя того пикселя, который в упомянутой текущей линии пикселей является ближайшим к границе блока с упомянутым соседним блоком и значением пикселя того пикселя в данном соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является ближайшим к упомянутой границе блока;
сравнивают второе значение решения о фильтрации со вторым пороговым значением и третье значение решения о фильтрации с третьим пороговым значением; и
выбирают слабый деблочный фильтр для фильтрации по меньшей мере одного значения пикселя в упомянутой текущей линии пикселей, если по меньшей мере одно из второго значения решения о фильтрации и третьего значения решения о фильтрации превосходит соответствующее ему пороговое значение.
2. Способ по п. 1, дополнительно содержащий этап, на котором вычисляют для упомянутого блока четвертое значение решения о фильтрации, показывающее, насколько плавными являются значения пикселей в по меньшей мере одной заранее заданной линии пикселей в этом блоке и в по меньшей мере одной соответствующей заранее заданной линии пикселей в упомянутом соседнем блоке в направлении, параллельном направлению фильтрации.
3. Способ по п. 2, дополнительно содержащий этапы, на которых:
сравнивают второе значение решения о фильтрации со вторым пороговым значением, третье значение решения о фильтрации с третьим пороговым значением и четвертое значение решения о фильтрации с четвертым пороговым значением; и
выбирают сильный деблочный фильтр, если все эти значения решения о фильтрации ниже соответствующих им ассоциированных пороговых значений, в противном случае, выбирают слабый деблочный фильтр, чтобы выполнять фильтрацию по меньшей мере одного значения пикселя в упомянутой текущей линии пикселей.
4. Способ по п. 3, в котором слабый деблочный фильтр
обладает относительно низкой силой фильтрации по сравнению с сильным деблочным фильтром.
5. Способ по п. 1, в котором при упомянутом вычислении первого значения решения о фильтрации первое значение решения о фильтрации вычисляют на основе следующего соотношения
|p2j-2p1j+p0j|+|q2j-2q1j+q0j|+|p2j+3-2p1j+3+p0j+3|+|q2j+3-2q1j+3+q0j+3|,
где p0j обозначает значение пикселя того пикселя, который в j-й линии пикселей в упомянутом блоке является ближайшим к границе блока с упомянутым соседним блоком, p1j обозначает значение пикселя того пикселя, который в упомянутой линии пикселей является следующим по близости к упомянутой границе блока, p2j обозначает значение пикселя того пикселя, который в упомянутой линии пикселей является вторым следующим по близости к упомянутой границе блока, q0j обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в соответствующей j-й линии пикселей в этом соседнем блоке является ближайшим к упомянутой границе блока, q1j обозначает значение пикселя того пикселя упомянутого соседнего блока, который в упомянутой соответствующей j-й линии пикселей является следующим по близости к упомянутой границе блока, и q2j обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей j-й линии пикселей является вторым следующим по близости к упомянутой границе блока.
6. Способ по п. 1, в котором при упомянутом вычислении второго значения решения о фильтрации второе значение решения о фильтрации вычисляют как
|p3i-p0i|+|q0i-q3i|,
где p0i обозначает значение пикселя того пикселя, который в упомянутой текущей линии пикселей является ближайшим к границе блока с упомянутым соседним блоком, p3i обозначает значение пикселя того пикселя, который в упомянутой текущей линии пикселей является третьим следующим по близости к упомянутой границе блока, q0i обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является ближайшим к упомянутой границе блока, и q3i обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является третьим следующим по близости к упомянутой границе блока.
7. Способ по п. 1, дополнительно содержащий этап, на котором определяют третье пороговое значение на основе параметра квантования, выбранного для остаточного кодирования упомянутого блока.
8. Способ по п. 7, в котором при упомянутом определении третьего порогового значения третье пороговое значение определяют как (tc×5+1)>>1, где tc - порог отсечки, выбранный для упомянутого блока на основе упомянутого параметра квантования, и X>>Y обозначает правый сдвиг X на 2Y, т.е. X/2Y.
9. Способ по п. 1, дополнительно содержащий этап, на котором определяют первое пороговое значение и второе пороговое значение на основе параметра квантования, выбранного для остаточного кодирования упомянутого блока.
10. Способ по п. 9, в котором при упомянутом определении второе пороговое значение определяют как β>>3, где параметр β определяется на основе упомянутого параметра квантования, и X>>Y обозначает правый сдвиг X на 2Y, т.е. X/2Y.
11. Устройство управления фильтрацией для осуществления управления фильтрацией в отношении блока из множества пикселей в видеокадре, причем каждый пиксель имеет соответствующее значение пикселя, при этом устройство содержит:
один или более процессоров; и
память, в которой хранится исполняемый код, который при его исполнении одним или более процессорами предписывает одному или более процессорам:
вычислять для упомянутого блока первое значение решения о фильтрации, показывающее, насколько плавными являются значения пикселей в первой и второй линии пикселей в этом блоке и в соответствующей первой и второй линии пикселей в соседнем блоке из множества пикселей в упомянутом видеокадре в направлении, параллельном направлению фильтрации;
сравнивать первое значение решения о фильтрации с первым пороговым значением;
если первое значение решения о фильтрации ниже первого порогового значения, вычислять для упомянутого блока второе значение решения о фильтрации, показывающее, насколько близко значения пикселей в текущей линии пикселей в этом блоке аппроксимируют прямую линию и насколько близко значения пикселей в соответствующей текущей линии пикселей в упомянутом соседнем блоке аппроксимируют прямую линию;
вычислять для упомянутого блока третье значение решения о фильтрации, показывающее абсолютную разность между значением пикселя того пикселя, который в упомянутой текущей линии пикселей является ближайшим к границе блока с упомянутым соседним блоком и значением пикселя того пикселя в данном соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является ближайшим к упомянутой границе блока;
сравнивать второе значение решения о фильтрации со вторым пороговым значением и третье значение решения о фильтрации с третьим пороговым значением; и
выбирать слабый деблочный фильтр для фильтрации по меньшей мере одного значения пикселя в упомянутой текущей линии пикселей, если по меньшей мере одно из второго значения решения о фильтрации и третьего значения решения о фильтрации превосходит соответствующее ему пороговое значение.
12. Устройство по п. 11, в котором исполняемый код при его исполнении одним или более процессорами дополнительно предписывает одному или более процессорам вычислять для упомянутого блока четвертое значение решения о фильтрации, показывающее, насколько плавными являются значения пикселей в по меньшей мере одной заранее заданной линии пикселей в этом блоке и в по меньшей мере одной соответствующей заранее заданной линии пикселей в упомянутом соседнем блоке в направлении, параллельном направлению фильтрации.
13. Устройство по п. 12, в котором исполняемый код при его исполнении одним или более процессорами дополнительно предписывает одному или более процессорам:
сравнивать второе значение решения о фильтрации со вторым пороговым значением, третье значение решения о фильтрации с третьим пороговым значением и четвертое значение решения о фильтрации с четвертым пороговым значением; и
выбирать сильный деблочный фильтр, если все эти значения решения о фильтрации ниже соответствующих им ассоциированных пороговых значений, в противном случае, выбирать слабый деблочный фильтр, чтобы выполнять фильтрацию по меньшей мере одного значения пикселя в упомянутой текущей линии пикселей.
14. Устройство по п. 13, при этом слабый деблочный фильтр обладает относительно низкой силой фильтрации по сравнению с сильным деблочным фильтром.
15. Устройство по п. 11, в котором при упомянутом вычислении первого значения решения о фильтрации первое значение решения о фильтрации вычисляется на основе следующего соотношения
|p2j-2p1j+p0j|+|q2j-2q1j+q0j|+|p2j+3-2p1j+3+p0j+3|+|q2j+3-2q1j+3+q0j+3|,
где p0j обозначает значение пикселя того пикселя, который в j-й линии пикселей в упомянутом блоке является ближайшим к границе блока с упомянутым соседним блоком, p1j обозначает значение пикселя того пикселя, который в упомянутой линии пикселей является следующим по близости к упомянутой границе блока, p2j обозначает значение пикселя того пикселя, который в упомянутой линии пикселей является вторым следующим по близости к упомянутой границе блока, q0j обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в соответствующей j-й линии пикселей в этом соседнем блоке является ближайшим к упомянутой границе блока, q1j обозначает значение пикселя того пикселя упомянутого соседнего блока, который в упомянутой соответствующей j-й линии пикселей является следующим по близости к упомянутой границе блока, и q2j обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей j-й линии пикселей является вторым следующим по близости к упомянутой границе блока.
16. Устройство по п. 11, в котором при упомянутом вычислении второго значения решения о фильтрации второе значение решения о фильтрации вычисляется как
|p3i-p0i|+|q0i-q3i|,
где p0i обозначает значение пикселя того пикселя, который в упомянутой текущей линии пикселей является ближайшим к границе блока с упомянутым соседним блоком, p3i обозначает значение пикселя того пикселя, который в упомянутой текущей линии пикселей является третьим следующим по близости к упомянутой границе блока, q0i обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является ближайшим к упомянутой границе блока, и q3i обозначает значение пикселя того пикселя в упомянутом соседнем блоке, который в упомянутой соответствующей текущей линии пикселей является третьим следующим по близости к упомянутой границе блока.
17. Устройство по п. 11, в котором исполняемый код при его исполнении одним или более процессорами дополнительно предписывает одному или более процессорам определять третье пороговое значение на основе параметра квантования, выбранного для остаточного кодирования упомянутого блока.
18. Устройство по п. 17, в котором при упомянутом определении третьего порогового значения третье пороговое значение определяется как (tc×5+1)>>1, где tc - порог отсечки, выбранный для упомянутого блока на основе упомянутого параметра квантования, и X>>Y обозначает правый сдвиг X на 2Y, т.е. X/2Y.
19. Устройство по п. 11, в котором исполняемый код при его исполнении одним или более процессорами дополнительно предписывает одному или более процессорам определять первое пороговое значение и второе пороговое значение на основе параметра квантования, выбранного для остаточного кодирования упомянутого блока.
20. Устройство по п. 19, в котором при упомянутом определении второе пороговое значение определяется как β>>3, где параметр β определяется на основе упомянутого параметра квантования, и X>>Y обозначает правый сдвиг X на 2Y, т.е. X/2Y.
21. Кодер, включающий в себя устройство управления фильтрацией по любому из пп. 11-20.
22. Декодер, включающий в себя устройство управления фильтрацией по любому из пп. 11-20.
23. Мультимедиа терминал, включающий в себя:
память, приспособленную для хранения закодированных видеокадров;
декодер по п. 22, выполненный с возможностью декодировать закодированные видеокадры в декодированные видеокадры; и
мультимедиа проигрыватель, выполненный с возможностью воспроизводить декодированные видеокадры в видеоданных, отображаемых на дисплее.
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
US 6922492 B2, 26.07.2005 | |||
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
RU 2370816 C1, 20.10.2009. |
Авторы
Даты
2018-05-07—Публикация
2011-02-01—Подача