Деблокирующая фильтрация

Иллюстрации

Показать все

Изобретение относится к фильтрации для удаления блочности для уменьшения артефактов блокирования на границах блоков. Техническим результатом является обеспечение эффективного подавления артефактов блочности и улучшение низкочастотных характеристик фильтрации. Для уменьшения артефактов блочности на границе (1) блоков между блоком (10) множественных пикселей (11, 13, 15, 17) и соседним блоком (20) множественных пикселей (21, 23, 25, 27) в кадре видео артефакты блочности на границе блоков подавляются путем вычисления смещения на основании пиксельных значений пикселей (11, 13) на линии (12) пикселей (11, 13, 15, 17) в блоке (10) и на основании пиксельных значений пикселей (21, 23) на соответствующей линии (22) пикселей (21, 23, 25, 27) в соседнем блоке (20). Смещение прибавляется к пиксельному значению пикселя (11) ближайшего к границе (1) блоков на линии (12) пикселей (11, 13, 15, 17) и вычитается из пиксельного значения пикселя (21) ближайшего к границе (1) блоков на соответствующей линии (22) пикселей (21, 23, 25, 27). 7 н. и 17 з.п. ф-лы, 15 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

Настоящее описание относится к фильтрации для удаления блочности для уменьшения артефактов блокирования на границах блоков.

УРОВЕНЬ ТЕХНИКИ

Деблокирующие фильтры используются в стандартах кодирования видеосигнала для борьбы с артефактами блочности. Артефакты блочности возникают из-за того, что исходное видео делится на блоки, которые обрабатываются относительно независимо. Артефакты блочности могут возникать, например, вследствие разных внутренних предсказаний блоков, эффектов квантования и компенсации движения. Ниже описаны два конкретных варианта деблокирования (удаления блочности).

ДЕБЛОКИРОВАНИЕ H.264

При традиционном кодировании видеосигнала, например H.264, предусмотрен фильтр удаления блочности, также именуемый контурным фильтром, после предсказания и реконструкции остатка, но до сохранения реконструкции для дальнейшего обращения при кодировании или декодировании последующих кадров. Фильтрация для удаления блочности состоит из нескольких этапов, например, решений по фильтру, операций фильтрации, ограничивающей функции и изменений пиксельных значений. Решение, фильтровать или не фильтровать границу, принимается на основании оценивания нескольких условий. Решения по фильтрации зависят от типа макроблока (MB), разности векторов движения (MV) между соседними блоками, имеют ли соседние блоки кодированные остатки, и от локальной структуры текущего и/или соседних блоков.

Кроме того, степень фильтрации для пикселя зависит, помимо прочего, от позиции этого пикселя относительно границы блоков и от значения параметра квантования (QP), используемого для кодирования остатка.

Решение по фильтрации основано на сравнении трех пиксельных разностей с тремя порогами. Пороги адаптированы к параметру квантования (QP). Например, рассмотрим вертикальную границу блоков в виде

a b c d | e f g h,

где a, b c и d обозначают пиксельные значения пикселей строки пикселей в текущем блоке, при этом e, f, g и h обозначают соответствующие пиксельные значения пикселей соответствующей строки пикселей в соседнем блоке. Если следующие условия выполняются, принимается положительное решение по фильтрации, например abs(d-e)<thr1, abs(c-d)<thr2 и abs(e-f)<thr2, где thr1 и thr2 адаптированы на основании QP.

В H.264 предусмотрены два режима фильтрации. В первом режиме фильтрации, именуемом нормальной фильтрацией, фильтрацию можно описать значением дельта, с которым фильтрация изменяет текущее значение. Фильтрация для пикселей, ближайших к границе блоков, выражается как d'=d+ дельта и e'=e - дельта, где дельта ограничена порогом ±thr3 до значения, ограниченного QP. Таким образом, для высокого QP допустима большая фильтрация, чем для низкого QP. Ограничение можно описать как дельта_ограниченная = max(-thr3,min(thr3,дельта)), где thr3 управляет «силой» (степенью фильтрации) фильтра. Большее значение thr3 означает более сильную фильтрацию, а это, в свою очередь, означает, что будет иметь место эффект более сильной низкочастотной фильтрации.

Сила фильтра может возрастать, если любое из следующих двух условий также выполняется, например abs(b-d)<thr2 и abs(e-g)<thr2. Сила фильтра адаптируется за счет меньшего ограничения на дельту, например, увеличения возможности изменения.

Второй режим фильтрации, именуемый сильной фильтрацией, применяется только для внутренних границ макроблока, когда выполняется следующее условие abs(d-e)<thr1/4.

Дополнительную информацию о фильтрации для удаления блочности в H.264 можно найти у автора List и др., Adaptive Deblocking Filter, IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, July 2003.

ДЕБЛОКИРОВАНИЕ В ПРОЕКТЕ HEVC

В спецификации проекта HEVC (High Efficiency Video Coding, кодирование видео с высокой эффективностью) “Test Model under Consideration”, документ ITU-T SG16 WP3, JCTVC-B205, глава 6.5 In-loop filter process, фильтр удаления блочности работает иначе, чем в H.264. Фильтрация осуществляется, если, по меньшей мере, один из блоков на стороне границы является внутренним, или имеет ненулевые коэффициенты, или разность между компонентами вектора движения блоков больше или равна одному целому пикселю. Например, при фильтрации границы между блоками с вертикальной границей блоков в виде

p3i p2i p1i p0i|q0i q1i q2i q3i,

где pji обозначает пиксельное значение пикселя номер j строки номер i в текущем блоке, и qji обозначает пиксельное значение пикселя номер j строки номер i в соседнем блоке, i=0…7, j=0…3, должно также выполняться следующее условие:

d=|p22-2×p12+p02|+|q22-2×q12+q02|+|p25-2×p15+p05|+|q25-2×q15+q05|<β,

где β зависит от QP. В вышеупомянутой спецификации HEVC приведена таблица значений β, где β возрастает с QP.

Если условия выполняются, и производится фильтрация между текущим блоком и соседним блоком осуществляется, один из двух типов фильтрации, именуемых слабой и сильной фильтрацией, соответственно. Выбор между сильной и слабой фильтрацией производится по отдельности для каждой линии в зависимости от следующих условий. Для каждой линии i=0…7, сильная фильтрация осуществляется, если выполняются все следующие условия, в противном случае осуществляется слабая фильтрация:

d<(β>>2)

(|p3i-p0i|+|q0i-q3i|)<(β>>3)

|p0i-q0i|<((5×tC+1)>>1),

где tC и β зависят от QP, и >> обозначает оператор сдвига вправо.

СЛАБАЯ ФИЛЬТРАЦИЯ В ПРОЕКТЕ HEVC

Слабая фильтрация осуществляется на основании вышеописанных условий. Фактическая фильтрация действует путем вычисления смещения (Δ), прибавления его к исходному пиксельному значению и ограничения суммы фильтрованным выходным пиксельным значением в диапазоне 0-255:

Δ=Clip(-tC,tC,(13×(q0i-p0i)+4×(q1i-p1i)-5×(q2i-p2i)+16)>>5))

p0i=Clip0-255(p0i+Δ)

q0i=Clip0-255(q0i-Δ)

p1i=Clip0-255(p1i+Δ/2)

q1i=Clip0-255(q1i-Δ/2),

где ограничивающая функция Clip(A,B,x) определяется как Clip(A,B,x)=A, если x<A, Clip(A,B,x)=B, если x>B, и Clip(A,B,x)=x, если A≤x≤B и Clip0-255(x) определяется как Clip(0,255,x).

СИЛЬНАЯ ФИЛЬТРАЦИЯ В ПРОЕКТЕ HEVC

Режим сильной фильтрации осуществляется следующим набором операций:

p0i=Clip0-255((p2i+2×p1i+2×p0i+2×q0i+q1i+4)>>3)

q0i=Clip0-255((p1i+2×p0i+2×q0i+2×q1i+q2i+4)>>3)

p1i=Clip0-255((p2i+p1i+p0i+q0i+2)>>2)

q1i=Clip0-255((p0i+q0i+q1i+q2i+2)>>2)

p2i=Clip0-255((2×p3i+3×p2i+p1i+p0i+q0i+4)>>3)

q2i=Clip0-255((p0i+q0i+q1i+3×q2i+2×q3i+4)>>3)

Одна проблема с удалением блочности в HEVC состоит в том, что слабый фильтр не обладает хорошими низкочастотными характеристиками. Можно видеть, что первый и второй пиксели от границы блоков изменяются путем прибавления или вычитания Δ и Δ/2 соответственно. Такой фильтр не может удалять высокие частоты, которые могут возникать вблизи границы блоков и не может удалять звон. Кроме того, частотные характеристики фильтра в HEVC демонстрируют небольшое усиление более высоких частот при фильтрации второго пикселя (p1i и q1i) от границы блоков, что может приводить к ухудшению характеристики частота следования (битов) -искажение (RD) кодера. Кроме того, смещение для пикселя p1i равно по величине смещению пикселя q1i, хотя структура сигнала может различаться на разных сторонах границы блоков. Таким образом, фильтр HEVC не обладает хорошей адаптируемостью к локальной структуре стороны границы блоков.

Следовательно, существует потребность в эффективном фильтре удаления блочности, который можно использовать для уменьшения артефактов блочности на границах блоков и который не имеет вышеупомянутых недостатков.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Общей задачей является борьба с артефактами блочности на границах блоков между блоками пикселей в кадре видео.

Эта и другие цели достигаются раскрытыми здесь вариантами осуществления.

Аспект вариантов осуществления задает способ уменьшения артефактов блочности на границе блоков между блоком пикселей и соседним блоком пикселей в кадре видео. Способ вычисляет первое смещение на основании (9×(q0-p0)-3×(q1-p1))/16, где p0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей в блоке, p1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на линии пикселей, q0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на соответствующей линии пикселей в соседнем блоке, и q1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей. Линия пикселей и соответствующая линия пикселей перпендикулярны к границе блоков. Пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей, изменяется путем прибавления первого смещения к пиксельному значению этого пикселя для формирования измененного пиксельного значения. Соответственно, пиксельное значение пикселя, ближайшего к границе блоков, но на соответствующей линии пикселей изменяется путем вычитания первого смещения из пиксельного значения этого пикселя для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, первое смещение вычисляется равным (9×(q0-p0)-3×(q1-p1)+8)>>4, где >> обозначает операцию сдвига вправо.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит ограничение первого смещения, чтобы было в интервале от -tC до tC путем задания первого смещения равным -tC, если первое смещение меньше -tC, и путем задания первого смещения равным tC, если первое смещение больше tC, где tC - пороговое значение, которое зависит от значения параметра квантования, присвоенного блоку.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит ограничение измененного пиксельного значения пикселя, ближайшего к упомянутой границе блоков на линии пикселей, чтобы было в интервале от нуля до заданного максимального значения и ограничение измененного пиксельного значения пикселя, ближайшего к границе блоков на соответствующей линии пикселей, чтобы было в интервале от нуля до заданного максимального значения. Это необязательное ограничение достигается путем задания измененного пиксельного значения равным нулю, если измененное пиксельное значение меньше нуля, и путем задания измененного пиксельного значения равным заданному максимальному значению, если измененное пиксельное значение больше заданного максимального значения.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит вычисление второго смещения на основании (p2+p0-2×p1+2×Δ)/4, где p2 обозначает пиксельное значение пикселя, второго следующего ближайшего к границе блоков на линии пикселей, и Δ обозначает первое смещение. Способ также содержит, в этом необязательном варианте осуществления, вычисление третьего смещения на основании (q2+q0-2×q1-2×Δ)/4, где q2 обозначает пиксельное значение пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей. Затем пиксельное значение пикселя, следующего ближайшего к границе блоков на линии пикселей изменяется путем прибавления второго смещения к пиксельному значению пикселя, следующего ближайшего к границе блоков на линии пикселей, для формирования измененного пиксельного значения. Соответственно, способ также содержит, в этом необязательном варианте осуществления, изменение пиксельного значения пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, путем прибавления третьего смещения к пиксельному значению пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, второе смещение вычисляется равным (((p2+p0+1)>>1)-p1+Δ)>>1, где >> обозначает операцию сдвига вправо, и третье смещение вычисляется равным (((q2+q0+1)>>1)-q1-Δ)>>1.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит ограничение второго смещения интервалом от -tC2 до tC2 и ограничение третьего смещения интервалом от -tC2 до tC2, где tC2 - пороговое значение, которое зависит от значения параметра квантования, присвоенного блоку. Это необязательное ограничение достигается путем задания второго или третьего смещения равным -tC2, если второе или третье смещение меньше -tC2, и путем задания второго или третьего смещения равным tC2, если второе или третье смещение больше tC2.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит ограничение измененного пиксельного значения пикселя, следующего ближайшего к границе блоков на линии пикселей, интервалом от нуля до заданного максимального значения и ограничение измененного пиксельного значения пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, интервалом от нуля до заданного максимального значения. Это необязательное ограничение достигается путем задания измененного пиксельного значения равным нулю, если измененное пиксельное значение меньше нуля, и путем задания измененного пиксельного значения равным заданному максимальному значению, если измененное пиксельное значение больше заданного максимального значения.

В необязательном варианте осуществления этого аспекта, способ дополнительно содержит вычисление четвертого смещения на основании (p3+p1-2×p2+2×Δp1)/4, где p3 обозначает пиксельное значение пикселя, третьего следующего ближайшего к границе блоков на линии пикселей, и Δp1 обозначает второе смещение. Способ также содержит, в этом необязательном варианте осуществления, вычисление пятого смещения на основании (q3+q1-2×q2+2×Δq1)/4, где q3 обозначает пиксельное значение пикселя, третьего следующего ближайшего к границе блоков на соответствующей линии пикселей, и Δq1 обозначает третье смещение. Пиксельное значение пикселя, второго следующего ближайшего к границе блоков на линии пикселей, изменяется путем прибавления четвертого смещения к пиксельному значению пикселя, второго следующего ближайшего к границе блоков на линии пикселей, для формирования измененного пиксельного значения. Способ также содержит, в этом необязательном варианте осуществления, изменение пиксельного значения пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей, путем прибавления пятого смещения к пиксельному значению пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей, для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, четвертое смещение вычисляется равным (((p3+p1+1)>>1)-p2+Δp1)>>1, где >> обозначает операцию сдвига вправо, и пятое смещение вычисляется равным (((q3+q1+1)>>1)-q2+Δq1)>>1.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности вычисляет первое смещение на основании (9×(q0-p0)-3×(q1-p1))/16. Узел фильтрации для удаления блочности изменяет пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей, путем прибавления первого смещения к пиксельному значению пикселя, ближайшего к границе блоков на линии пикселей, для формирования измененного пиксельного значения. Узел фильтрации для удаления блочности также изменяет пиксельное значение пикселя, ближайшего к границе блоков на соответствующей линии пикселей, путем вычитания первого смещения из пиксельного значения пикселя, ближайшего к границе блоков на соответствующей линии пикселей, для формирования измененного пиксельного значения.

Другой аспект вариантов осуществления задает узел фильтрации для удаления блочности для уменьшения артефактов блочности на границе блоков между блоком пикселей и соседним блоком пикселей в кадре видео. Узел фильтрации для удаления блочности содержит вычислитель первого смещения, сконфигурированный с возможностью вычисления первого смещения на основании (9×(q0-p0)-3×(q1-p1))/16, где p0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей в блоке, p1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на линии пикселей, q0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на соответствующей линии пикселей в соседнем блоке, и q1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей. Линия пикселей и соответствующая линия пикселей перпендикулярны к границе блоков. Узел фильтрации для удаления блочности также содержит модификатор пиксельного значения, сконфигурированный с возможностью изменения пиксельного значения пикселя, ближайшего к границе блоков на линии пикселей, путем прибавления первого смещения к пиксельному значению этого пикселя для формирования измененного пиксельного значения. Модификатор пиксельного значения также сконфигурирован с возможностью изменения пиксельного значения пикселя, ближайшего к границе блоков, но на соответствующей линии пикселей, путем вычитания первого смещения из пиксельного значения этого пикселя для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, вычислитель первого смещения сконфигурирован с возможностью вычисления первого смещения равным (9×(q0-p0)-3×(q1-p1)+8)>>4, где >> обозначает операцию сдвига вправо.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит первый узел ограничения, сконфигурированный с возможностью ограничения первого смещения, чтобы было в интервале от -tC до tC путем задания первого смещения равным -tC, если первое смещение меньше -tC, и путем задания первого смещения равным tC, если первое смещение больше tC, где tC - пороговое значение, которое зависит от значения параметра квантования, присвоенного блоку.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит второй узел ограничения, сконфигурированный с возможностью ограничения измененного пиксельного значения пикселя, ближайшего к границе блоков на линии пикселей интервалом от нуля до заданного максимального значения, и ограничения измененного пиксельного значения пикселя, ближайшего к границе блоков на соответствующей линии пикселей, интервалом от нуля до заданного максимального значения. Это необязательное ограничение необязательным вторым узлом ограничения достигается путем задания измененного пиксельного значения равным нулю, если измененное пиксельное значение меньше нуля, и путем задания измененного пиксельного значения равным заданному максимальному значению, если измененное пиксельное значение больше заданного максимального значения.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит вычислитель второго смещения, сконфигурированный с возможностью вычисления второго смещения на основании (p2+p0-2×p1+2×Δ)/4, где p2 обозначает пиксельное значение пикселя, второго следующего ближайшего к границе блоков на линии пикселей, и Δ обозначает первое смещение. Узел фильтрации для удаления блочности также содержит, в этом необязательном варианте осуществления, вычислитель третьего смещения, сконфигурированный с возможностью вычисления третьего смещения на основании (q2+q0-2×q1-2×Δ)/4, где q2 обозначает пиксельное значение пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей. В этом необязательном варианте осуществления, модификатор пиксельного значения сконфигурирован с возможностью изменения пиксельного значения пикселя, следующего ближайшего к границе блоков на линии пикселей, путем прибавления второго смещения к пиксельному значению пикселя, следующего ближайшего к границе блоков на линии пикселей, для формирования измененного пиксельного значения, и для изменения пиксельного значения пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, путем прибавления третьего смещения к пиксельному значению пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, вычислитель второго смещения сконфигурирован с возможностью вычисления второго смещения равным (((p2+p0+1)>>1)-p1+Δ)>>1, где >> обозначает операцию сдвига вправо, и вычислитель третьего смещения сконфигурирован с возможностью вычисления третьего смещения равным (((q2+q0+1)>>1)-q1-Δ)>>1.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит третий узел ограничения, сконфигурированный с возможностью ограничения второго смещения интервалом от -tC2 до tC2, и ограничения третьего смещения интервалом от -tC2 до tC2, где tC2 - пороговое значение, которое зависит от значения параметра квантования, присвоенного блоку. Это необязательное ограничение необязательным третьим узлом ограничения достигается путем задания второго или третьего смещения равным -tC2, если второе или третье смещение меньше -tC2, и путем задания второго или третьего смещения равным tC2, если второе или третье смещение больше tC2.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит второй узел ограничения, сконфигурированный с возможностью ограничения измененного пиксельного значения пикселя, следующего ближайшего к границе блоков на линии пикселей, интервалом от нуля до заданного максимального значения, и ограничения измененного пиксельного значения пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей, интервалом от нуля до заданного максимального значения. Это необязательное ограничение необязательным вторым узлом ограничения достигается путем задания измененного пиксельного значения равным нулю, если измененное пиксельное значение меньше нуля, и путем задания измененного пиксельного значения равным заданному максимальному значению, если измененное пиксельное значение больше заданного максимального значения.

В необязательном варианте осуществления этого аспекта, узел фильтрации для удаления блочности содержит вычислитель четвертого смещения, сконфигурированный с возможностью вычисления четвертого смещения на основании (p3+p1-2×p2+2×Δp1)/4, где p3 обозначает пиксельное значение пикселя, третьего следующего ближайшего к границе блоков на линии пикселей, и Δp1 обозначает второе смещение. Узел фильтрации для удаления блочности также содержит, в этом необязательном варианте осуществления, вычислитель пятого смещения, сконфигурированный с возможностью вычисления пятого смещения на основании (q3+q1-2×q2+2×Δq1)/4, где q3 обозначает пиксельное значение пикселя, третьего следующего ближайшего к границе блоков на соответствующей линии пикселей, и Δq1 обозначает третье смещение. В этом необязательном варианте осуществления, модификатор пиксельного значения сконфигурирован с возможностью изменения пиксельного значения пикселя, второго следующего ближайшего к границе блоков на линии пикселей, путем прибавления четвертого смещения к пиксельному значению пикселя, второго следующего ближайшего к границе блоков на линии пикселей, для формирования измененного пиксельного значения, и изменения пиксельного значения пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей, путем прибавления пятого смещения к пиксельному значению пикселя, второго следующего ближайшего к границе блоков на соответствующей линии пикселей, для формирования измененного пиксельного значения.

В необязательном варианте осуществления этого аспекта, вычислитель четвертого смещения сконфигурирован с возможностью вычисления четвертого смещения равным (((p3+p1+1)>>1)-p2+Δp1)>>1, где >> обозначает операцию сдвига вправо, и вычислитель пятого смещения сконфигурирован с возможностью вычисления пятого смещения равным (((q3+q1+1)>>1)-q2+Δq1)>>1.

Дополнительные аспекты вариантов осуществления задают кодер и декодер, соответственно, содержащий заданный выше узел фильтрации для удаления блочности.

Кроме того, аспект вариантов осуществления задает пользовательское оборудование, содержащее память, сконфигурированную для хранения кодированных кадров видео, заданный выше декодер, сконфигурированный с возможностью декодирования кодированных кадров видео в декодированные кадры видео и медиаплеер, сконфигурированный с возможностью представления декодированных кадров видео в видеоданных, отображаемых на дисплее.

Другой аспект задает сетевое устройство, являющееся или принадлежащее узлу сети в сети связи между передающим узлом и принимающим пользовательским оборудованием. Сетевое устройство содержит заданный выше кодер и/или декодер.

Дополнительный аспект вариантов осуществления задает компьютерную программу для подавления артефактов блочности на границе блоков между блоком пикселей и соседним блоком пикселей в кадре видео. Компьютерная программа содержит кодовое средство, которое, при выполнении на компьютере, предписывает компьютеру вычислять смещение на основании (9×(q0-p0)-3×(q1-p1))/16, где p0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей в блоке, p1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на линии пикселей, q0 обозначает пиксельное значение пикселя, ближайшего к границе блоков на соответствующей линии пикселей в соседнем блоке, и q1 обозначает пиксельное значение пикселя, следующего ближайшего к границе блоков на соответствующей линии пикселей. Линия пикселей и соответствующая линия пикселей перпендикулярны к границе блоков. Компьютеру также предписывается изменять пиксельное значение пикселя, ближайшего к границе блоков на линии пикселей, путем прибавления смещения к пиксельному значению этого пикселя. Кодовое средство дополнительно предписывает компьютеру изменять пиксельное значение пикселя, ближайшего к границе блоков на соответствующей линии пикселей, путем вычитания смещения из пиксельного значения этого пикселя.

Еще один аспект вариантов осуществления задает компьютерный программный продукт, содержащий машиночитаемое кодовое средство и заданную выше компьютерную программу, хранящуюся на машиночитаемом средстве.

Настоящие варианты осуществления позволяют эффективно подавлять артефакты блочности и также обеспечивают хорошие низкочастотные характеристики.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Изобретение, совместно с его дополнительными задачами и преимуществами, можно наилучшим образом понять, обратившись к нижеследующему описанию, приведенному совместно с прилагаемыми чертежами, в которых:

Фиг. 1 - блок-схема операций, демонстрирующая способ подавления артефактов блочности согласно варианту осуществления;

Фиг. 2A и 2B иллюстрируют два варианта осуществления соседних блоков и границы блоков, к которой можно применять фильтрацию для удаления блочности;

Фиг. 3 - блок-схема операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на Фиг. 1 согласно варианту осуществления;

Фиг. 4 - блок-схема операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на Фиг. 1 и 5, согласно варианту осуществления;

Фиг. 5 - блок-схема операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на Фиг. 1, согласно другому варианту осуществления;

Фиг. 6 - блок-схема операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на Фиг. 5, согласно варианту осуществления;

Фиг. 7 - блок-схема операций, демонстрирующая дополнительные, необязательные этапы способа, показанного на Фиг. 5, согласно другому варианту осуществления;

Фиг. 8 - упрощенная блок-схема узла фильтрации для удаления блочности согласно варианту осуществления;

Фиг. 9 - упрощенная блок-схема узла фильтрации для удаления блочности согласно другому варианту осуществления;

Фиг. 10 - упрощенная блок-схема программной реализация модуля фильтрации для удаления блочности в компьютере согласно варианту осуществления;

Фиг. 11 - упрощенная блок-схема кодера согласно варианту осуществления;

Фиг. 12 - упрощенная блок-схема декодера согласно варианту осуществления;

Фиг. 13 - упрощенная блок-схема пользовательского оборудования согласно варианту осуществления; и

Фиг. 14 - схематический обзор участка сети связи, содержащей сетевое устройство согласно варианту осуществления.

ПОДРОБНОЕ ОПИСАНИЕ

В чертежах, одинаковые ссылочные позиции используются для аналогичных или соответствующих элементов.

Варианты осуществления, в целом, относятся к фильтрации для удаления блочности для борьбы с артефактами блочности по границам блоков в кадре видео. Варианты осуществления используют фильтр удаления блочности, обладающий хорошими частотными характеристиками. Настоящий фильтр удаления блочности сконфигурирован не для изменения пиксельных значений по границе блоков, если эти пиксельные значения формируют линейное изменение, а для сглаживания пиксельных значений, если они, напротив, имеют форму ступени. Это подразумевает, что фильтр удаления блочности будет иметь хорошие низкочастотные характеристики и может удалять высокие частоты, которые могут возникать вблизи границы блоков.

На Фиг. 1 показана блок-схема операций способа уменьшения артефактов блочности на границе блоков между блоком множественных пикселей и соседним блоком множественных пикселей в кадре видео согласно варианту осуществления. Как хорошо известно в технике, кадр видео делится на неперекрывающиеся блоки пикселей, которые кодируются и декодируются согласно различным доступным режимам внутреннего и внешнего кодирования. В целом, кадр видео делится на неперекрывающиеся макроблоки 16×16 пикселей. Такой макроблок, в свою очередь, может делиться на меньшие блоки разных размеров, например, 4×4 или 8×8 пикселей. Однако, согласно вариантам осуществления, возможны и прямоугольные блоки, например, 4×8, 8×4, 8×16 или 16×8. Варианты осуществления можно применять к любому такому блоку пикселей, включая макроблоки или даже более крупные блоки пикселей.

В выходящем стандарте кодирования видео с высокой эффективностью (HEVC) используются единицы кодирования (CU), единицы предсказания (PU) и единицы преобразования (TU). Единицы предсказания задаются в блоке кодирования и содержат режимы внутреннего или внешнего предсказания. Единицы преобразования задаются в узле кодирования, и наибольший размер преобразования равен 32×32 пикселям, и наименьший размер равен 4×4 пикселям. Размер CU в настоящее время варьируется от 64×64 пикселя (наибольшего) до 4×4 пикселя (наименьшего). Таким образом, наибольшую CU можно разбить на меньшие CU, “уровень гранулярности” которых зависит от локальных характеристик кадра. Это означает, что наибольшую CU можно разбить на меньшие CU разных размеров. Варианты осуществления также можно использовать в связи с такими единиц единицами кодирования, которые рассматриваются как охватываемые используемым здесь выражением “блок пикселей”.

Каждый пиксель в блоке имеет соответствующее пиксельное значение. Кадры видео, в целом, имеют значения цвета, присвоенные пикселям, где значения цвета представлены в заданных форматах цвета. Один из общих форматов цвета использует одну компоненту яркости и две компоненты цветности для каждого пикселя, хотя существуют другие форматы, например, использующие красную, зеленую и синюю компоненты для каждого пикселя.

Традиционно, фильтрация компоненты яркости и фильтрация компоненты цветности производятся по отдельности, возможно, с использованием разных решений по фильтрации и разных фильтров удаления блочности. Однако возможно, что решения по фильтрации яркости используются в фильтрации цветности, как в HEVC. Варианты осуществления можно применять для фильтрации компоненты яркости, фильтрации компоненты цветности или фильтрации как компоненты яркости, так и компоненты цветности. В конкретном варианте осуществления, варианты осуществления применяются для достижения фильтрации яркости. Затем решения по фильтрации, или части решений по фильтрации для одной компоненты, например, яркости, можно использовать при принятии решений по фильтрации для других компонент, например, цветности.

Фильтрация для удаления блочности производится по границе или рубежу между соседними блоками. В результате, такими границами могут быть вертикальные границы 1, см. Фиг. 2A, между двумя соседними блоками 10, 20, располагающимися рядом в кадре видео. Альтернативно, границы являются горизонтальными границами 1, см. Фиг. 2B, между двумя соседними блоками 10, 20, где один блок 10 располагается над другим блоком 20 в кадре видео. В конкретном варианте осуществления, вертикальные границы фильтруются, начиная с самой левой границы и переходя через границы к правой стороне в их геометрическом порядке. Затем, горизонтальные границы фильтруются, начиная с границы вверху и переходя через границы вниз в их геометрическом порядке. Однако варианты осуществления не ограничиваются этим конкретным порядком фильтрации и фактически могут применяться к любому заранее заданному порядку фильтрации. В конкретном варианте осуществления, границы на краю кадра видео, предпочтительно, не фильтруются и, таким образом, исключаются из фильтрации для удаления блочности.

Способ этого варианта осуществления начинается на этапе S1, где первое смещение или дельта вычисляется для линии 12 пикселей 11, 13, 15, 17 в блоке 10. Согласно вариантам осуществления, это первое смещение вычисляется на основании (9×(q0-p0)-3×(q1-p1))/16, где p0 обозначает пиксельное значение пикселя 11, ближайшего к границе 1 блоков на линии 12 пикселей 11, 13, 15, 17 в блоке 10, p1 обозначает пиксельное значение пикселя 13, следующего ближайшего к границе 1 блоков на линии 12 пикселей 11, 13, 15, 17, q0 обозначает пиксельное значение пикселя 21, ближайшего к границе 1 блоков на соответствующей или противоположной линии 22 пикселей 21, 23, 25, 27 в соседнем блоке 20, и q1 обозначает пиксельное значение пикселя 23, следующего ближайшего к границе 1 блоков на соответствующей линии 22 пикселей 21, 23, 25, 27.

Линия 12 пикселей 11, 13, 15, 17 в блоке 10 и соответствующая линия 22 пикселей 21, 23, 25, 27 в соседнем блоке 20 принадлежат одной и той же горизонтальной линии пикселей, т.е. строке пикселей, проходящей по вертикальной границе 1, см. Фиг. 2A, или принадлежат одной и той же вертикальной линии пикселей, т.е. столбцу пикселей, проходящему по горизонтальной границе 1, см. Фиг. 2B. Следовательно, линия 12 пикселей 11, 13, 15, 17 и соответствующая линия 22 пикселей 21, 23, 25, 27 перпендикулярны к границе 1 блоков между блоком 10 и соседним блоком 20. Кроме того, линия 12 пикселей 11, 13, 15, 17 в блоке 10 и соответствующая линия 22 пикселей 21, 23, 25, 27 в соседнем блоке 20 имеют один и тот же номер линии. Например, если блок 10 и соседний блок 20 содержит каждый N, например, восемь, строк или столбцов пикселей, имеющих номера строки или столбца i=0…N-1, то линия 10 пикселей 11, 13, 15, 17 имеет номер линии i в блоке 10, и соответствующая линия 20 пикселей 21, 23, 25, 27 также имеет номер линии i, но в соседнем блоке 20. Таким образом, линия 12 пикселей 11, 13, 15, 17 в блоке и соответствующая линия 22 пикселей 21, 23, 25, 27 в соседнем блоке 20 являются противоположными линиями по отношению к границе 1 блоков.

Согласно вариантам осуществления, “линия пикселей” и “соответствующая линия пикселей” используются для обозначения “строки пикселей” и “соответствующей строки пикселей” в случае вертикальной границы блоков, показанной на Фиг. 2A, и обозначают “столбец пикселей” и “соответствующий столбец пикселей” в случае горизонтальной границы блоков, показанной на Фиг. 2B.

На следующем этапе S2 происходит изм