СМЕЩЕНИЕ QP ЦВЕТНОСТИ НА УРОВНЕ СЛАЙДОВ И УСТРАНЕНИЕ БЛОЧНОСТИ
QP CHROMINANCE SHIFT AT SLIDE LEVEL AND ELIMINATION OF BLOCKING

[0001] Данная заявка испрашивает приоритет по следующим предварительным заявкам США, все содержание каждой из которых включено в данное описание посредством ссылки:
предварительной патентной заявке США № 61/619,806, поданной 3 апреля 2012 г.;
предварительной патентной заявке США № 61/668,810, поданной 6 июля 2012 г.;
предварительной патентной заявке США № 61/704,941, поданной 24 сентября 2012 г.; и
предварительной патентной заявке США № 61/708,497, поданной 1 октября 2012 г.
Область техники
[0002] Это раскрытие относится к видеокодированию и, в частности, к методам устранения блочности кодированных блоков видеоданных.
Уровень техники
[0003] Возможности цифрового видео могут присутствовать в разнообразных устройствах, включая цифровые телевизоры, системы прямого цифрового вещания, беспроводные широковещательные системы, карманные персональные компьютеры (КПК), портативные или настольные компьютеры, цифровые камеры, цифровые устройства записи, цифровые медиапроигрыватели, устройства для видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, устройства видеоконференцсвязи и пр. В цифровых видеоустройствах реализованы методы сжатия видеосигнала, например, описанные в стандартах, заданных в MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Part 10 [часть 10], Advanced Video Coding [усовершенствованное кодирование видео] (AVC) и расширениях таких стандартов, для более эффективных передачи и приема цифровой видеоинформации. Другие методы сжатия видеосигнала описаны в стандарте High efficiency video coding [высокоэффективного кодирования видеосигнала] (HEVC), в настоящее время находящемся в разработке. Видеоустройства могут более эффективно передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию благодаря реализации таких методов видеокодирования.
[0004] Для видеокодирования на основе блоков, слайс видео (например, кадр видео или участок кадра видео) можно разбивать на видеоблоки, которые также могут именоваться блоками дерева, единицами кодирования (CU) и/или узлами кодирования. Видеоблоки в интра-кодированном (I) слайсе изображения кодируются с использованием пространственного предсказания в отношении опорных выборок в соседних блоках в одном и том же изображении. Видеоблоки в интер-кодированном (P или B) слайсе изображения может использовать пространственное предсказание в отношении опорных выборок в соседних блоках в одном и том же изображении или временное предсказание в отношении опорных выборок в других опорных изображениях. Изображения могут именоваться кадрами, и опорные изображения могут относиться к опорным изображениям.
[0005] Пространственное или временное предсказание дает предсказанный блок для блока, подлежащего кодированию. Остаточные данные представляют пиксельные разности между исходным блоком, подлежащим кодированию, и предсказанным блоком. Интер-кодированный блок кодируется согласно вектору движения, который указывает блок опорных выборок, образующих предсказанный блок, и остаточные данные, указывающие различие между кодированным блоком и предсказанным блоком. Интра-кодированный блок кодируется согласно режиму интра-кодирования и остаточным данным. Для дополнительного сжатия, остаточные данные можно преобразовывать из пиксельной области в преобразовательную область, что дает остаточные коэффициенты преобразования, которые затем можно квантовать. Квантованные коэффициенты преобразования, первоначально размещенные в виде двухмерного массива, можно сканировать для создания одномерного вектора коэффициентов преобразования, и энтропийное кодирование можно применять для достижения еще большего сжатия.
Сущность изобретения
[0006] В общем случае, в этом раскрытии описаны методы устранения блочности кодированных блоков видеоданных, например, единиц преобразования (TU), единиц кодирования (CU) или единиц предсказания (PU). Методы блочного видеокодирования иногда могут приводить к артефактам “блочности”, при которых границы или края между отдельно кодированными блоками могут восприниматься. Такие артефакты могут возникать, когда блоки кодируются на разных уровнях качества. Глубина квантования, применяемого к блоку (указывается, как параметр квантования (QP)) может непосредственно влиять на качество блока. Таким образом, методы устранения блочности обычно учитывают QP блока, например, при определении, устранять ли блочность края блока и как устранять блочность края.
[0007] Методы этого раскрытия могут улучшать функции устранения блочности, применяемые к таким краям (например, снижая заметность края) и, в частности, могут улучшать функции устранения блочности, применяемые к цветностным составляющим на общем краю, совместно используемом двумя блоками видеоданных. В частности, согласно методам этого раскрытия, видеокодер, например, видеокодер или видеодекодер, может вычислять параметр квантования цветности для края между двумя блоками видеоданных не только на основании параметров квантования яркости для двух блоков видеоданных, но и на основании значения смещения параметра квантования цветности. Видеокодер определяет интенсивность для фильтра устранения блочности для общего края на основании параметра квантования цветности. Поскольку видеодекодер определяет параметр квантования цветности для края на основании значения смещения параметра квантования цветности, интенсивность фильтра устранения блочности может быть более пригодна для уровней качества цветностных составляющих двух блоков видеоданных, которые совместно используют общий край.
[0008] В одном примере, способ обработки видеоданных содержит декодирование первого блока видеоданных и второго блока видеоданных, причем первый блок видеоданных и второй блок видеоданных совместно используют общий край, и определение первого параметра квантования яркости для первого блока видеоданных и второго параметра квантования яркости для второго блока видеоданных. Способ дополнительно содержит, для каждой из одной или более цветностных составляющих, определение значения смещения параметра квантования цветности и, для каждой из одной или более цветностных составляющих, вычисление параметра квантования цветности для края на основании первого параметра квантования яркости для первого блока видеоданных, второго параметра квантования яркости для второго блока видеоданных и значения смещения параметра квантования цветности для цветностной составляющей. Способ дополнительно содержит, для каждой из одной или более цветностных составляющих, определение интенсивности для фильтра устранения блочности для общего края на основании параметра квантования цветности для цветностной составляющей и, для каждой из одной или более цветностных составляющих, применение фильтра устранения блочности согласно определенной интенсивности для устранения блочности общего края.
[0009] В другом примере, устройство для обработки видеоданных содержит видеокодер, выполненный с возможностью декодирования первого блока видеоданных и второго блока видеоданных, причем первый блок видеоданных и второй блок видеоданных совместно используют общий край, и определения первого параметра квантования яркости для первого блока видеоданных и второго параметра квантования яркости для второго блока видеоданных. Видеокодер дополнительно выполнен с возможностью, для каждой из одной или более цветностных составляющих, определения значения смещения параметра квантования цветности и, для каждой из одной или более цветностных составляющих, вычисления параметра квантования цветности для края на основании первого параметра квантования яркости для первого блока видеоданных, второго параметра квантования яркости для второго блока видеоданных и значения смещения параметра квантования цветности для цветностной составляющей. Видеокодер дополнительно выполнен с возможностью, для каждой из одной или более цветностных составляющих, определения интенсивности для фильтра устранения блочности для общего края на основании параметра квантования цветности для цветностной составляющей и, для каждой из одной или более цветностных составляющих, применения фильтра устранения блочности согласно определенной интенсивности для устранения блочности общего края.
[0010] В другом примере, устройство для обработки видеоданных содержит средство для декодирования первого блока видеоданных и второго блока видеоданных, причем первый блок видеоданных и второй блок видеоданных совместно используют общий край, и средство для определения первого параметра квантования яркости для первого блока видеоданных и второго параметра квантования яркости для второго блока видеоданных. Устройство дополнительно содержит средство для определения, для каждой из одной или более цветностных составляющих, значения смещения параметра квантования цветности, и средство для вычисления, для каждой из одной или более цветностных составляющих, параметра квантования цветности для края на основании первого параметра квантования яркости для первого блока видеоданных, второго параметра квантования яркости для второго блока видеоданных и значения смещения параметра квантования цветности для цветностной составляющей. Устройство дополнительно содержит средство для определения, для каждой из одной или более цветностных составляющих, интенсивности для фильтра устранения блочности для общего края на основании параметра квантования цветности для цветностной составляющей, и средство для применения, для каждой из одной или более цветностных составляющих, фильтра устранения блочности согласно определенной интенсивности для устранения блочности общего края.
[0011] В другом примере, компьютерно-читаемый носитель данных содержит хранящиеся на нем инструкции, которые, при выполнении, предписывают процессору видеокодера декодировать первый блок видеоданных и второй блок видеоданных, причем первый блок видеоданных и второй блок видеоданных совместно используют общий край, и определения первого параметра квантования яркости для первого блока видеоданных и второго параметра квантования яркости для второго блока видеоданных. Инструкции дополнительно предписывают процессору, для каждой из одной или более цветностных составляющих, определять значение смещения параметра квантования цветности и, для каждой из одной или более цветностных составляющих, вычислять параметр квантования цветности для края на основании первого параметра квантования яркости для первого блока видеоданных, второго параметра квантования яркости для второго блока видеоданных и значения смещения параметра квантования цветности для цветностной составляющей. Инструкции дополнительно предписывают процессору, для каждой из одной или более цветностных составляющих, определять интенсивность для фильтра устранения блочности для общего края на основании параметра квантования цветности для цветностной составляющей и, для каждой из одной или более цветностных составляющих, применять фильтр устранения блочности согласно определенной интенсивности для устранения блочности общего края.
[0012] Детали одного или более примеров представлены в прилагаемых чертежах и нижеприведенном описании. Другие признаки, задачи и преимущества явствуют из описания и чертежей, а также их формулы изобретения.
Краткое описание чертежей
[0013] Фиг. 1 - блок-схема, демонстрирующая пример системы кодирования и декодирования видеосигнала которая может использовать методы устранения блочности краев между видеоблоками.
[0014] Фиг. 2 - блок-схема, демонстрирующая пример видеокодера, который может реализовать методы устранения блочности краев между видеоблоками.
[0015] Фиг. 3 - блок-схема, демонстрирующая пример видеодекодера, который может реализовать методы устранения блочности края между видеоблоками.
[0016] Фиг. 4 - блок-схема, демонстрирующая компоненты иллюстративного блока устранения блочности.
[0017] Фиг. 5 - схема, демонстрирующая край, образованный двумя соседними видеоблоками.
[0018] Фиг. 6 - блок-схема операций, демонстрирующая иллюстративный способ осуществления устранения блочности в ходе процесса видеокодирования в соответствии с методами этого раскрытия.
Подробное описание
[0019] Видеокодеры, например, видеокодеры и видеодекодеры, в общем случае, выполнены с возможностью кодирования отдельных изображений из последовательности изображений с использованием либо пространственного предсказания (или интра-предсказания), либо временного предсказания (или интер-предсказания). В частности, видеокодеры могут предсказывать блоки изображения с использованием интра-предсказания или интер-предсказания. Видеокодеры могут кодировать остаточные значения для блоков, где остаточные значения соответствуют попиксельным различиям между предсказанным блоком и исходным (то есть некодированным) блоком. Видеокодеры могут преобразовывать остаточный блок для преобразования значений остаточного блока из пиксельной области в частотную область. Кроме того, видеокодеры могут квантовать коэффициенты преобразования преобразованного остаточного блока с использованием конкретной степени квантования, указанной параметром квантования (QP).
[0020] В ряде случаев, кодирование на основе блоков таким образом может приводить к артефактам блочности между блоками изображения. То есть, после деления кадра на блоки, кодирования блоков и затем декодирования блоков, могут возникать воспринимаемые артефакты на краях между блоками. Поэтому, видеокодеры могут осуществлять различные процедуры устранения блочности для устранения артефактов блочности.
[0021] Например, видеокодеры могут кодировать видеоданные кадра, затем декодировать кодированные видеоданные, и затем применять фильтры устранения блочности к декодированным видеоданным для использования в качестве опорных видеоданных. Опорными данными могут быть данные из одного или более изображений, которые видеокодер может использовать, например, для интер-предсказания позднее кодированных видеоданных. Видеокодер может сохранять один или более кадров в хранилище опорных кадров для интер-предсказания.
[0022] Такая фильтрация с устранением блочности, осуществляемая устройством видеокодирования, например, видеокодером или видеодекодером, до сохранения декодированных видеоданных для использования в качестве опорных данных, в целом, именуется “внутрицикловой” фильтрацией. При “внутрицикловой” фильтрации, кодер или декодер видеосигнала может осуществлять устранение блочности внутри цикла видео. Видеокодеры могут начинать с приема первичных видеоданных, затем кодировать видеоданные, декодировать кодированные видеоданные, устранять блочность декодированных видеоданных и сохранять изображения, лишенные блочности, в памяти опорных изображений.
[0023] Видеодекодеры могут быть выполнены с возможностью декодирования принятых видеоданных, и последующего применения тех же фильтров устранения блочности, которые применялись кодером к декодированным видеоданным. Видеодекодеры могут устранять блочность декодированных видеоданных в целях отображения видеоданных, например, пользователю устройства, включающего в себя декодер, а также для использования в качестве опорных видеоданных для последующих видеоданных, подлежащих декодированию, например, для сохранения в памяти опорных изображений. Благодаря конфигурированию кодеров и декодеров для применения одних и тех же методов устранения блочности, кодеры и декодеры можно синхронизировать, чтобы устранение блочности не приводило к ошибке для позднее кодированных видеоданных с использованием видеоданных, лишенных блочности, в качестве опорных.
c
[0024] В общем случае, устранение блочности предусматривает два этапа: определение, следует ли подвергать конкретный край между двумя блоками устранению блочности, и затем устранение блочности краев, в отношении которых определено, что их следует подвергать устранению блочности. Процесс устранения блочности зависит от значения интенсивности фильтрации на границе, также именуемой в этом раскрытии интенсивностью устранения блочности. Значения бета (β) и t могут использоваться для определения интенсивности фильтрации и коэффициентов, используемых для принятия решения на устранение блочности, например, устранять ли блочность края, и, после определения необходимости устранения блочности края, выбирается тип фильтра, подлежащий использованию (например, сильный или слабый), и ширина фильтра, в случае слабого фильтра.
[0025] Процедура устранения блочности может учитывать значения QP для блоков при устранении блочности края между двумя блоками. Глубина квантования, применяемого к блоку (указанная QP), может непосредственно влиять на качество блока. Таким образом, методы устранения блочности обычно учитывают QP блока, например, при определении, устранять ли блочность края блока и как устранять блочность края.
[0026] В настоящее время предпринимаются усилия для разработки нового стандарта видеокодирования, в настоящее время именуемого High Efficiency Video Coding (HEVC). Перспективный стандарт также именуется H.265. Стандарт HEVC также может именоваться ISO/IEC 23008-HEVC, где указан номер стандарта для доставляемой версии HEVC. Работы по стандартизации опираются на модель устройства видеокодирования, именуемого HEVC Test Model [тестовая модель] (HM). HM предусматривает несколько возможностей устройств видеокодирования, которых лишены устройства, отвечающие предыдущим стандартам кодирования, например ITU-T H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с интра-предсказанием, HM обеспечивает целых тридцать пять режимов кодирования с интра-предсказанием.
[0027] Недавний рабочий проект (WD) HEVC, именуемый “HEVC Working Draft 6” или “WD6,” описан в документе JCTVC-H1003, Bross et al., “High-Efficiency Video Coding (HEVC) text specification draft 6,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 8th Meeting: San Jose, California, USA, Feb. 2012, который в полном объеме включен в настоящее описание изобретения посредством ссылки, и который, в редакции от 1 октября 2012 г., можно загрузить с:
http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip
[0028] Кроме того, другой недавний рабочий проект HEVC, рабочий проект 8, именуемый “HEVC Working Draft 8” или “WD8,” описан в документе HCTVC-J1003_d7, Bross et al., “High Efficiency Video Coding (HEVC) Text Specification draft 8,” JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, Sweden, July, 2012, который в полном объеме включен в настоящее описание изобретения посредством ссылки, и который, в редакции от 1 октября 2012 г., можно загрузить с:
http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip
th
[0029] Дополнительно, проект текстового описания HEVC приведен в документе JCTVC-LV1003_v28, Bross et al., “High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Consent),” JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12 Meeting: Geneva, Switzerland, January 14-23, 2013, который в полном объеме включен в настоящее описание изобретения посредством ссылки.
Cb
Cr
Y
[0030] Предложенный стандарт HEVC включает в себя сигнализацию соответствующих значений смещения для параметров квантования (QP), которые используются для кодирования цветностных составляющих Cr и Cb. В частности, предложенный стандарт HEVC задает элементы синтаксиса cb_qp_offset и cr_qp_offset, которые сигнализируются в наборе параметров изображения (PPS). Элементы синтаксиса cb_qp_offset и cr_qp_offset являются примерами значений смещения параметра квантования цветности, которые, для соответствующей цветностной составляющей, указывают смещение относительно QP яркости и могут использоваться видеокодером для определения соответствующего QP цветности (например, QP' и QP') для видеоблока из QP яркости (например, QP') для видеоблока.
C
C,Cr
C,Cb
C
C
[0031] Дополнительно, предложенный стандарт HEVC указывает, что видеокодеры могут обрабатывать цветностные составляющие с помощью фильтра устранения блочности. В частности, видеокодеры могут обрабатывать край между двумя видеоблоками, P и Q, когда, по меньшей мере, один из этих видеоблоков является интра-кодированным. Когда, по меньшей мере, один из двух видеоблоков, имеющих общий край, является интра-кодированным, можно говорить, что общий край имеет интенсивность границы Bs=2. Для конфигурирования фильтра устранения блочности для конкретной цветностной составляющей, видеокодер обычно ищет параметр t в таблице на основании QP цветности края для этой составляющей, например, QP или QP для составляющих Cr и Cb, соответственно. Параметр t может определять интенсивность фильтра устранения блочности, и видеокодер может применять параметр t в операции ограничения фильтра цветности.
C,Cr
C,Cb
Y,P
Y,Q
[0032] Однако, хотя предложенный стандарт HEVC задает значения смещения параметра квантования цветности и использование таких значений для определения параметров QP цветности для блоков видеоданных, смещение между QP яркости и цветности для блоков с общим краем можно не рассматривать при конфигурировании фильтра устранения блочности цветностной составляющей для края. Например, в HEVC WD 6, QP цветности для края, т.е. QP цветности, используемый для конфигурирования фильтра устранения блочности цветностной составляющей для края, можно определять только на основании QP яркости для видеоблоков, совместно использующих край, не учитывая значения смещения параметра квантования цветности. В частности, согласно HEVC WD6, значения QP и QP, используемые для конфигурирования соответствующих фильтров устранения блочности для сигналов цветности красного и синего одинаковы, и определяются следующим образом на основании значений QP и QP яркости блоков P и Q, соответственно:
C
C,Cr
C,Cb
Y,P
Y,Q
QP=QP=QP=QpUV ((QP+QP+1)/2), (1)
Y
Cr
Cb
где QpUV - функция или таблица, которая преобразует QP яркости в значения QP или QP цветности.
[0033] В уравнении (1), значения смещения QP цветности не учитываются. Поскольку значения смещения могут быть велики, видеокодер может применять к цветностным составляющим фильтры устранения блочности с интенсивностью устранения блочности, которая меньше идеальной.
C
[0034] Методы этого раскрытия могут улучшать функции устранения блочности, применяемые к таким краям, и, таким образом, могут снижать заметность края. В частности, методы этого раскрытия могут улучшать функции устранения блочности, применяемые к цветностным составляющим на общем краю, совместно используемом двумя блоками видеоданных. В частности, согласно методам этого раскрытия, видеокодер, например, видеокодер или видеодекодер, может вычислять QP цветности для края между двумя блоками видеоданных не только на основании QP яркости для двух блоков видеоданных, но и на основании значения смещения QP цветности. Поскольку видеодекодер может, согласно методам этого раскрытия, определять QP цветности для края на основании значения смещения QP цветности, интенсивность фильтра устранения блочности, например, значение параметра t, может быть более пригодна для уровней качества цветностных составляющих двух блоков видеоданных, которые совместно используют общий край.
[0035] На фиг. 1 показана блок-схема, демонстрирующая пример системы 10 кодирования и декодирования видеосигнала, которая может использовать методы устранения блочности края между видеоблоками. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое обеспечивает кодированные видеоданные, подлежащие декодированию в более позднее время устройством 14 назначения. В частности, устройство-источник 12 подает видеоданные на устройство 14 назначения через компьютерно-читаемый носитель 16. Устройство-источник 12 и устройство 14 назначения может содержать любое из разнообразных устройств, включая настольные компьютеры, компьютеры-ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, например, так называемые “смартфоны”, так называемые “смартпэды”, телевизоры, камеры, устройства отображения, цифровые медиапроигрыватели, консоли для видеоигр, устройство просмотра потокового видео и т.п. В ряде случаев, устройство-источник 12 и устройство 14 назначения могут быть приспособлены для беспроводной связи. В подобных случаях, компьютерно-читаемый носитель 16 может содержать канал беспроводной связи.
[0036] Устройство 14 назначения может принимать кодированные видеоданные, подлежащие декодированию, через компьютерно-читаемый носитель 16. Компьютерно-читаемый носитель 16 может содержать любой тип носителя или устройства, способного переносить кодированные видеоданные с устройства-источника 12 на устройство 14 назначения. В одном примере, компьютерно-читаемый носитель 16 может содержать среду связи, позволяющую устройству-источнику 12 передавать кодированные видеоданные непосредственно на устройство 14 назначения в реальном времени. Кодированные видеоданные можно модулировать согласно стандарту связи, например, протоколу беспроводной связи, и передавать на устройство 14 назначения. Среда связи может содержать любую беспроводную или проводную среду связи, например, радиочастотный (РЧ) спектр или одну или более физических линий передачи. Среда связи может составлять часть сети с коммутацией пакетов, например, локальной сети, крупномасштабной сети или глобальной сети, например, интернета. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для облегчения передачи с устройства-источника 12 на устройство 14 назначения.
[0037] В некоторых примерах, кодированные данные можно выводить через выходной интерфейс 22 на запоминающее устройство. Аналогично, кодированные данные можно считывать из запоминающего устройства через входной интерфейс 28. Запоминающее устройство может включать в себя любой из различных распределенных или локальных носителей данных, например, жесткий диск, диски Blu-ray, DVD, CD-ROM, флэш-память, энергозависимую или энергонезависимую память, или любые другие пригодные цифровые носители данных для хранения кодированных видеоданных. В дополнительном примере, запоминающее устройство может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может сохранять кодированный видеосигнал, генерируемый устройством-источником 12. Устройство 14 назначения может считывать сохраненные видеоданные из запоминающего устройства посредством потоковой передачи или загрузки. Файловый сервер может представлять собой сервер любого типа, способный хранить кодированные видеоданные и передавать эти кодированные видеоданные на устройство 14 назначения. Пример файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, устройства хранения данных, подключенные к сети (NAS), или локальный дисковод. Устройство 14 назначения может обращаться к кодированным видеоданным через любое стандартное соединение с возможностью передачи данных, в том числе интернет-соединение. Оно может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.) или их комбинацию, пригодную для осуществления доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных из запоминающего устройства может представлять собой потоковую передачу, загрузочную передачу, или их комбинацию.
[0038] Методы этого раскрытия, касающиеся устранения блочности краев между видеоблоками, не обязательно ограничиваются беспроводными применениями или установками. Методы можно применять к видеокодированию для поддержки любого из различных мультимедийных применений, например, эфирного телевизионного вещания, кабельных телевизионных передач, спутниковых телевизионных передач, потоковых передач видео через интернет, например, динамической адаптивной потоковой передачи по HTTP (DASH), цифрового видеосигнала, который кодируется на носитель данных, декодирования цифрового видеосигнала, хранящегося на носителе данных, или других применений. В некоторых примерах, система 10 может быть выполнена с возможностью поддержки односторонней или двусторонней передачи видеосигнала для поддержки таких применений, как потоковая передача видеосигнала, воспроизведение видео, вещание видео и/или видеотелефония.
[0039] В примере, показанном на фиг. 1, устройство-источник 12 включает в себя источник 18 видеосигнала, видеокодер 20 и выходной интерфейс 22. Устройство 14 назначения включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В других примерах, устройство-источник и устройство назначения может включать в себя другие компоненты или компоновки. Например, устройство-источник 12 может принимать видеоданные из внешнего источника 18 видеосигнала, например, внешней камеры. Аналогично, устройство 14 назначения может сопрягаться с внешним устройством отображения, вместо того, чтобы включать в себя интегрированное устройство отображения. Видеокодер 20 устройства-источника 12 и видеодекодер 30 устройства 14 назначения являются примерами видеокодеров, которые могут быть выполнены с возможностью применения методов этого раскрытия для устранения блочности краев между видеоблоками.
[0040] Система 10, проиллюстрированная на фиг. 1, является всего лишь одним примером. Методы устранения блочности краев между видеоблоками может осуществляться любым устройством кодирования и/или декодирования цифрового видеосигнала. Кроме того, методы этого раскрытия также может осуществляться посредством видеопрепроцессора. Устройство-источник 12 и устройство 14 назначения являются всего лишь примерами таких устройств кодирования, в которых устройство-источник 12 генерирует кодированные видеоданные для передачи на устройство 14 назначения. В некоторых примерах, устройства 12, 14 могут действовать, по существу, симметрично таким образом, что каждое из устройств 12, 14 включают в себя компоненты кодирования и декодирования видеосигнала. В результате, система 10 может поддерживать одностороннюю или двустороннюю передачу видеосигнала между видеоустройствами 12, 14, например, для потоковой передачи видеосигнала, воспроизведения видео, вещания видео или видеотелефонии.
[0041] Источник 18 видеосигнала устройства-источника 12 может включать в себя устройство захвата видео, например, видеокамеру, архив видеозаписей, содержащий ранее захваченное видео, и/или интерфейс подачи видео для приема видео от поставщика видеоконтента. В порядке дополнительной альтернативы, источник 18 видеосигнала может генерировать данные на основе компьютерной графики в качестве исходного видеосигнала или комбинацию прямой видеосъемки, архивной видеозаписи и видео, создаваемого на компьютере. В ряде случаев, если источником 18 видеосигнала является видеокамера, устройство-источник 12 и устройство 14 назначения могут образовывать так называемые камерофоны или видеофоны. Однако, как упомянуто выше, методы, описанные в этом раскрытии, можно, в общем случае, применять к видеокодированию и можно применять к беспроводным и/или проводным применениям. В каждом случае, захватываемое, ранее захваченное или видео, создаваемое на компьютере, можно кодировать с помощью видеокодера 20. Затем кодированная видеоинформация может выводиться выходным интерфейсом 22 на компьютерно-читаемый носитель 16.
[0042] Компьютерно-читаемый носитель 16 может включать в себя переходные среды, например, беспроводное широковещание или передачу по проводной сети, или носители данных (то есть, нетранзиторные (non-transitory, непереходные, некратковременные) носители данных), например, жесткий диск, флэш-носитель, компакт-диск, цифровой видеодиск, диск Blu-ray или другие компьютерно-читаемые носители. В некоторых примерах, сетевой сервер (не показан) может принимать кодированные видеоданные с устройства-источника 12 и выдавать кодированные видеоданные на устройство 14 назначения, например, передавая их через сеть. Аналогично, вычислительное устройство установки для производства носителей, например, установки для штамповки дисков, может принимать кодированные видеоданные с устройства-источника 12 и создавать диск, содержащий кодированные видеоданные. Таким образом, можно понять, что компьютерно-читаемый носитель 16 включает в себя один или более компьютерно-читаемых носителей различных типов, в различных примерах.
[0043] Входной интерфейс 28 устройства 14 назначения принимает информацию от компьютерно-читаемого носителя 16. Информация компьютерно-читаемого носителя 16 может включать в себя синтаксическую информацию, заданную видеокодером 20, которая также используется видеодекодером 30, которая включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например GOP. Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных устройств отображения, например, электронно-лучевую трубку (ЭЛТ), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или устройство отображения другого типа.
[0044] Видеокодер 20 и видеодекодер 30 может действовать согласно стандарту сжатия видеосигнала, например, перспективному стандарту ITU-T High Efficiency Video Coding (HEVC), также именуемому “H.265”. Видеокодер 20 и видеодекодер 30 могут согласовываться с High Efficiency Video Coding Test Model (HM). Однако методы этого раскрытия не ограничиваются никаким конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и ITU-T H.263, и ITU-T H.264/AVC (Advanced Video Coding). Хотя это не показано на фиг. 1, в некоторых аспектах, как видеокодер 20, так и видеодекодер 30 может быть объединен с кодером и декодером аудиосигнала, и может включать в себя надлежащие блоки мультиплексирования/демультиплексирования, или другое аппаратное обеспечение и программное обеспечение, для обработки кодирования аудиосигнала и видеосигнала в общем потоке данных или отдельных потоков данных. Если применимо, блоки мультиплексирования/демультиплексирования могут согласовываться с протоколом мультиплексора ITU H.223 или другими протоколами, например, протоколом пользовательских дейтаграмм (UDP).
[0045] Стандарт ITU-T H.264/MPEG-4 (AVC) был установлен ITU-T Video Coding Experts Group (VCEG) совместно с ISO/IEC Moving Picture Experts Group (MPEG) как продукт деятельности коллектива, известного как Joint Video Team (JVT). В некоторых аспектах, методы, описанные в этом раскрытии, можно применять к устройствам, которые в целом согласуются со стандартом H.264. Стандарт H.264 описан в ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services, выдвинутой исследовательской группой ITU-T, и датирован мартом 2005 г., который может именоваться здесь стандартом H.264 или спецификацией H.264, или стандартом или спецификацией H.264/AVC. Joint Video Team (JVT) продолжает работать над расширениями H.264/MPEG-4 AVC.
[0046] Как видеокодер 20, так и видеодекодер 30 может быть реализован в виде любой из различных пригодных кодирующих схем, например, одного или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), устройств беспроводной связи, которые включают в себя устройство видеокодирования, например, кодер или декодер, дискретную логику, программные средства, аппаратные средства, микропрограммные средства или любые их комбинации. Как видеокодер 20, так и видеодекодер 30, может быть включен в один или более кодеров или декодеров, любой из которых может входить в состав комбинированного кодера/декодера (кодека) в соответствующей(ем) камере, компьютере, мобильном устройстве, абонентском устройстве, широковещательном устройстве, телевизионной приставке, сервере и т.п.
[0047] В общем случае, рабочая модель HM описывает, что кадр видео или изображение можно делить на последовательность блоков дерева или наибольших единиц кодирования (LCU), которые включают в себя выборки, как яркости, так и цветности. Данные синтаксиса в битовом потоке могут задавать размер LCU, которая является наибольшей единицей кодирования в отношении количества пикселей. Слайс включает в себя некоторое количество последовательных блоков дерева в порядке кодирования. Кадр видео или изображение можно разбивать на один или более слайсов. Каждый блок дерева можно разбивать на единицы кодирования (CU) согласно квадродереву. В общем случае, структура данных квадродерева включает в себя один узел на CU, при том, что корневой узел соответствует блоку дерева. Если CU разбивается на четыре под-CU, узел, соответствующий CU, включает в себя четыре краевых узла, каждый из которых соответствует одной из под-CU.
[0048] Каждый узел структуры данных квадродерева может обеспечивать данные синтаксиса для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разбиения, указывающий, разбита ли CU, соответствующая узлу, на под-CU. Элементы синтаксиса для CU можно задавать рекурсивно, в зависимости от того, разбита ли CU на под-CU. Если CU не подлежит дальнейшему разбиению, она называется краевой CU. В этом раскрытии, четыре под-CU краевой CU также будут именоваться краевыми CU, даже в отсутствие явного разбиения исходной краевой CU. Например, если CU размером 16×16 не подлежит дальнейшему разбиению, четыре под-CU 8×8 также будут именоваться краевыми CU, хотя CU 16×16 никогда не подвергалась разбиению.
[0049] CU играет роль, аналогичную роли макроблока в стандарте H.264, за исключением того, что CU не имеет различия в размере. Например, блок дерева можно разбивать на четыре дочерних узла (также именуемые под-CU), и каждый дочерний узел, в свою очередь, может быть родительским узлом и разбиваться еще на четыре дочерних узла. Окончательный, неразбитый дочерний узел, именуемый краевым узлом квадродерева, содержит узел кодирования, также именуемый краевой CU. Данные синтаксиса, связанные с кодированным битовым потоком могут задавать максимальную глубину разбиения блока дерева, именуемую максимальной глубиной CU, и также могут задавать минимальный размер узлов кодирования. Соответственно, битовый поток также может задавать наименьшую единицу кодирования (SCU). В этом раскрытии используется термин “блок” для обозначения любой из CU, PU и TU в контексте HEVC, или аналогичных структур данных в контексте других стандартов (например, макроблоков и их подблоков в H.264/AVC).
[0050] CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), связанные с узлом кодирования. CU соответствует по размеру узлу кодирования и должна иметь квадратную форму. Размер CU может составлять от 8×8 пикселей до максимального размера блока дерева 64×64 пикселя или более. Каждая CU может содержать одну или более PU и одну или более TU. Данные синтаксиса, связанные с CU, могут описывать, например, разбиение CU на одну или более PU. Режимы разбиения могут отличаться тем, кодируется ли CU в режиме пропуска или прямом режиме, в режиме интра-предсказания или в режиме интер-предсказания. PU можно разбивать на участки неквадратной формы. Данные синтаксиса, связанные с CU, также могут описывать, например, разбиение CU на одну или более TU согласно квадродереву. TU может иметь квадратную или неквадратную (например, прямоугольную) форму.
[0051] Стандарт HEVC допускает преобразования согласно TU, которые могут различаться для разных CU. Размер TU обычно определяется размером PU в данной CU, заданной для разбитой LCU, хотя это не всегда так. TU обычно имеют такой же или меньший размер, как PU. В некоторых примерах, остаточные выборки, соответствующие CU, можно подразделять на меньшие единицы с использованием структуры квадродерева, известной как "остаточное квадродерево" (RQT). Краевые узлы RQT могут именоваться единицами преобразования (TU). Разностные значения пикселей, связанные с TU можно преобразовывать для создания коэффициентов преобразования, которые можно квантовать.
[0052] Краевая CU может включать в себя оду или более единиц предсказания (PU). В общем случае, PU представляет пространственную область, соответствующую всей или участку соответствующей CU, и может включать в себя данные для извлечения опорной выборки для PU. Кроме того, PU включает в себя данные, связанные с предсказанием. Например, когда PU кодируется в режиме интра-предсказания, данные для PU могут быть включены в остаточное квадродерево (RQT), которое может включать в себя данные, описывающие режим интра-предсказания для TU, соответствующей PU. В порядке другого примера, когда PU кодируется в режиме интер- предсказания, PU может включать в себя данные, задающие один или более векторов движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешение для вектора движения (например, точность в четверть пиксель или точность в одну восьмую пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список C) для вектора движения.
[0053] Краевая CU, имеющая одну или более PU, также может включать в себя одну или более единиц преобразования (TU). Единицы преобразования можно задавать с использованием RQT (также именуемой структурой квадродерева TU), как рассмотрено выше. Например, флаг разбиения может указывать, разбивается ли краевая CU на четыре единицы преобразования. Затем, каждую единица преобразования можно дополнительно разбивать на дополнительные под-TU. Когда TU не подлежит дальнейшему разбиению, она может именоваться краевой TU. В целом, для интра-кодирования, все краевые TU, принадлежащие краевой CU, совместно используют один и тот же режим интра-предсказания. Таким образом, один и тот же режим интра-предсказания, в целом, применяется для вычисления предсказываемых значений для всех TU краевой CU. Для интра-кодирования, видеокодер может вычислять остаточное значение для каждой краевой TU с использованием режима интра-предсказания, в качестве разности между участком CU, соответствующей TU, и исходным блоком. TU не обязана ограничиваться размером PU. Таким образом, TU может быть больше или меньше PU. Для интра-кодирования, PU может совпадать с соответствующей краевой TU для одной и той же CU. В некоторых примерах, максимальный размер краевой TU может соответствовать размеру соответствующей краевой CU.
[0054] Кроме того, TU краевых CU также могут быть связаны с соответствующими структурами данных квадродерева, именуемыми остаточными квадродеревьями (RQT). Таким образом, краевая CU может включать в себя квадродерево, указывающее, как краевая CU разбивается на TU. Корневой узел квадродерева TU, в целом, соответствует краевой CU, тогда как корневой узел квадродерева CU, в целом, соответствует блоку дерева (или LCU). TU RQT, не подвергнутые разбиению, именуются краевыми TU. В общем случае, в этом раскрытии используется термины CU и TU для обозначения краевой CU и краевой TU, соответственно, если не указано обратное.
[0055] Видеопоследовательность обычно включает в себя последовательность кадров видео или изображений. Группа изображений (GOP), в целом, содержит последовательность из одного или более видеоизображений. GOP может включать в себя данные синтаксиса в заголовке GOP, заголовке одного или более из изображений или в другом месте, которое описывает количество изображений, включенных в GOP. Каждый слайс изображения может включать в себя данные синтаксиса слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 обычно оперирует с видеоблоками в отдельных слайсах видео для кодирования видеоданных. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь фиксированные или изменяющиеся размеры и могут отличаться размером согласно указанному стандарту кодирования.
[0056] В порядке примера, HM поддерживает предсказание в различных размерах PU. Исходя из того, что размер конкретной CU равен 2N×2N, HM поддерживает интра-предсказание в размерах PU 2N×2N или N×N, и интер-предсказание в симметричных размерах PU 2N×2N, 2N×N, N×2N или N×N. HM также поддерживает асимметричное разбиение для интер-предсказания в размерах PU 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном разбиении, в одном направлении CU не подвергается разбиению, а в другом направлении разбивается на 25% и 75%. Участок CU, соответствующий разбиению 25% обозначен буквой “n”, сопровождаемой указанием “вверх”, “вниз”, “влево” или “вправо”. Таким образом, например, “2N×nU” означает CU 2N×2N, которая разделена по горизонтали на PU 2N×0,5N вверху и PU 2N×1,5N внизу.
[0057] В этом раскрытии, “N×N” и “N на N” может использоваться взаимозаменяемо для обозначения размеров видеоблока в пикселях по вертикали и горизонтали, например, 16×16 пикселей или 16 на 16 пикселей. В общем случае, блок 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок N×N, в целом, имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут располагаться строками и столбцами. Кроме того, блоки не обязаны иметь одинаковое количество пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки может содержать N×M пикселей, где M не обязательно равно N.
[0058] Выполнив кодирование с интра-предсказанием или с интер-предсказанием с использованием PU CU, видеокодер 20 может вычислять остаточные данные для TU CU. PU может содержать данные синтаксиса, описывающие способ или режим генерации предсказанных пиксельных данных в пространственной области (также именуемой пиксельной областью) и TU может содержать коэффициенты в преобразовательной области после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлетного преобразования, или принципиально аналогичного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселями некодированного изображения и значениями предсказания, соответствующими PU. Видеокодер 20 может формировать TU, включающие в себя остаточные данные для CU, и затем преобразовывать TU для создания коэффициентов преобразования для CU.
[0059] После любых преобразований для создания коэффициентов преобразования, видеокодер 20 может осуществлять квантование коэффициентов преобразования. Квантование, в целом, означает процесс, в котором коэффициенты преобразования квантуются для максимального сокращения объема данных, используемых для представления коэффициентов, обеспечивая дополнительное сжатие. Процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами. Например, n-битовое значение можно округлить в сторону уменьшения до m-битового значения в ходе квантование, где nбольше m.
[0060] После осуществления квантования, видеокодер может сканировать коэффициенты преобразования, создавая одномерный вектор из двухмерной матрицы, включающей в себя квантованные коэффициенты преобразования. Сканирование может быть организовано так, чтобы коэффициенты, соответствующие более высокой энергии (и, таким образом, более низкой частоте), располагались в начале массива, и коэффициенты, соответствующие более низкой энергии (и, таким образом, более высокой частоте), располагались в конце массива. В некоторых примерах, видеокодер 20 может использовать заранее заданный порядок сканирования для сканирования квантованных коэффициентов преобразования для создания вектора, приведенного к последовательному виду, который допускает энтропийное кодирование. В других примерах, видеокодер 20 может осуществлять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора, видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию с переменной длиной слова (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), контекстно-адаптивному двоичному арифметическому кодированию на основе синтаксиса (SBAC), энтропийному кодированию с разбиением интервала вероятности (PIPE) или другой методологии энтропийного кодирования. Видеокодер 20 также может энтропийно кодировать элементы синтаксиса, связанные с кодированными видеоданными, для использования видеодекодером 30 при декодировании видеоданных.
[0061] Для осуществления CABAC, видеокодер 20 может назначать контекст в контекстной модели символу, подлежащему передаче. Контекст может указывать, например, являются ли соседние значения символа ненулевыми. Для осуществления CAVLC, видеокодер 20 может выбирать код переменной длины для символа, подлежащего передаче. Кодовые слова в VLC можно строить таким образом, чтобы сравнительно более короткие коды соответствовали более вероятным символам, а более длинные коды соответствовали менее вероятным символам. Таким образом, использование VLC может обеспечивать лучшую экономию битов, чем, например, использование кодовых слов равной длины для каждого символа, подлежащего передаче. Определение вероятности может осуществляться на основании контекста, назначенного символу.
[0062] Видеокодер 20 может дополнительно отправлять данные синтаксиса, например, данные синтаксиса на основе блоков, данные синтаксиса на основе кадров и данные синтаксиса на основе GOP, на видеодекодер 30, например, в заголовке кадра, заголовке блока, заголовке слайса или заголовке GOP. Данные синтаксиса на основе GOP могут описывать количество кадров в соответствующей GOP, и данные синтаксиса на основе кадров могут указывать режим кодирования/предсказания, используемый для кодирования соответствующего кадра.
[0063] Кроме того, видеокодер 20 может декодировать кодированные изображения, например, посредством обратного квантования и обратного преобразование остаточных данных, и комбинировать остаточные данные с данными предсказания. Таким образом, видеокодер 20 может имитировать процесс декодирования, осуществляемый видеодекодером 30. Таким образом, видеокодер 20 и видеодекодер 30 будут иметь доступ к, по существу, одним и тем же декодированным изображениям для использования при предсказании между изображениями.
[0064] В общем случае, видеодекодер 30 может осуществлять процесс декодирования, обратный процессу кодирования, осуществляемому видеокодером. Например, видеодекодер 30 может осуществлять энтропийное декодирование с использованием методов, обратных энтропийному кодированию, используемому видеокодером для энтропийного кодирования квантованных видеоданных. Видеодекодер 30 может дополнительно осуществлять обратное квантование видеоданных с использованием методов, обратных квантованию, применяемому видеокодером 20, и может осуществлять преобразование, обратное используемому видеокодером 20 для создания коэффициентов преобразования, которые квантуются. Видеодекодер 30 затем может применять полученные остаточные блоки к соседним опорным блокам (интра-предсказание) или к опорным блокам из другого изображения (интер-предсказание) для создания видеоблока для окончательного отображения. Видеодекодер 30 может быть выполнен с возможностью осуществления, получая инструкции или предписания, различных процессов, обратных осуществляемым видеокодером 20, на основании элементов синтаксиса, обеспечиваемых видеокодером 20 с кодированными видеоданными в битовом потоке, поступающем на видеодекодер 30.
[0065] Устранение блочности, в целом, может осуществляться после обратного квантования и обратного преобразования видеоданных, либо осуществляемых “внутри цикла” видеокодером 20 или видеодекодером 30, либо для окончательного отображения блоков видеоданных видеодекодером 30. Процесс устранения блочности может осуществляться “внутри цикла” в том смысле, что изображения, фильтрованные для устранения блочности, могут использоваться как опорные изображения для кодируемых последствии изображений (например, изображений, кодируемых с использованием интер-предсказания).
[0066] Как рассмотрено выше, видеокодер 20 и видеодекодер 30 могут быть сконфигурированы согласно HEVC test model (HM). Кодер или декодер видеосигнала, сконфигурированные в соответствии с HM, могут, в целом, определять, для каждого края, разделяющего две PU или TU, применять ли фильтр устранения блочности для устранения блочности края. Кодер или декодер видеосигнала, сконфигурированный согласно методам HM, может быть выполнен с возможностью определения, устранять ли блочность края, на основании анализа одной или более линий пикселей, перпендикулярных краю, например, линии из 8 пикселей. Таким образом, например, для вертикального края, HM может определять, устранять ли блочность края, проверяя четыре пикселя влево и четыре пикселя вправо от края по общей линии. Количество выбранных пикселей, в целом, соответствует наименьшему блоку для устранения блочности, например, 8×8 пикселей. Таким образом, линия пикселей, используемая для анализа, может входить только в две PU или TU, а именно, PU или TU, находящиеся непосредственно влево и вправо от края. Линия пикселей, используемая для анализа, осуществлять ли устранение блочности для края, также именуется набором поддерживающих пикселей, или просто “поддержки”.
[0067] Видеокодер 20 и видеодекодер 30 являются примерами видеокодеров, которые могут осуществлять устранение блочности согласно методам этого раскрытия для устранения блочности цветностных составляющих на общем краю между первым и вторым декодированными блоками видеоданных. Например, видеокодер 20 и видеодекодер 30 могут быть выполнены с возможностью декодирования первого блока данных и второго блока видеоданных. Первый и второй блоки могут совместно использовать общий край. В случае видеокодера 20, видеокодер 20 может кодировать первый блок и второй блок, которые кодер 20 может позднее декодировать для генерации опорного изображения. Согласно методам этого раскрытия, видеокодер 20 и/или видеодекодер 30 может определять интенсивность фильтра устранения блочности для устранения блочности края и, в частности, для устранения блочности цветностных составляющих, по меньшей мере, частично на основании значения смещения параметра квантования цветности.
C,Cr
C,Cb
C
[0068] Например, видеокодер 20 или видеодекодер 30 может включать значения cr_qp_offset и cb_qp_offset в вычисление значений QP и QP, которые используются для поиска параметров t для фильтрации с устранением блочности цветностных составляющих Cb и Cr на краю между двумя блоками видеоданных, следующим образом:
C,Cr
Y,P
Y,Q
QP=QpUV ((QP+QP+1)/2+cr_qp_offset) (2)
C,Cb
Y,P
Y,Q
QP=QpUV ((QP+QP+1)/2+cb_qp_offset) (3)
Y
Cr
Cb
Y,P
Y,Q
Y,P
Y,Q
[0069] В вышеприведенных уравнениях, QpUV является функцией, таблицей и т.п., которая преобразует параметр QP квантования яркости для конкретного блока видеоданных в значения QP или QP параметров квантования цветности для видеоблока для Cb и Cr, соответственно. QP и QPявляются значениями параметра квантования яркости для первого и второго блоков видеоданных (обозначенных P и Q), соответственно. (QP+QP+1)/2 является средним значением значений параметра квантования яркости для первого и второго блоков видеоданных. Значения смещения параметра квантования цветности для Cr и Cb представляют собой cr_qp_offset и cb_qp_offset, соответственно. Значения смещения параметра квантования цветности могут применяться ко всем блокам видеоданных в изображении, и могут сигнализироваться, например, видеокодером 20, в наборе параметров изображения (PPS).
C,Cr
C,Cb
C
C,Cr
C,Cb
C
[0070] QP и QP являются примерами значений параметра квантования цветности (для Cr и Cb, соответственно) для общего края между двумя блоками видеоданных. Отдельные значения t для соответствующих фильтров устранения блочности для Cb и Cr можно искать в таблице на основании вычисленных QP и QP. Для поиска значений t, постоянная 2 может добавляться для Bs=2 и, потенциально, может рассматриваться также сигнализируемый параметр регулировки фильтра устранения блочности (tc_offset_div2), согласно предложенному в настоящее время стандарту HEVC. В приведенных здесь примерах, Cr и Cb может относиться к двум различным типам значений цветности, например, двум разным цветностным составляющим видеоданных. Одни и те же уравнения можно применять к обоим значениям цветности, что позволяет обобщать “Cr” и “Cb” и представлять значением “C.”
[0071] В некоторых примерах, методы этого раскрытия могут быть совместимы со способами сигнализации смещения QP цветности, предложенными в нижеследующем предложении JCT-VC:
th
J. Xu, A. Talabatabai, “Consideration on chroma QP range extension for HEVC version 1 and 2,” 10 JCT-VC Meeting, Stockholm, Sweden, July 2010, Doc. JCTVC-J0318.
Cr
Cb
[0072] Предложение Xu предусматривает следующие методы для сигнализации параметров QPи QP квантования цветности в порядке альтернативы методам, описанным в HEVC WD6:
Способ A:
Cb
Y
QP=Clip3(0, 51, QP+cb_qp_offset) (4)
Cr
Y
QP=Clip3(0, 51, QP+cr_qp_offset) (5)
Способ B:
Cb
Y
QP=Clip3(0, 51, QpUV (QP)+cb_qp_offset) (6)
Cr
Y
QP=Clip3(0, 51, QpUV (QP)+cr_qp_offset) (7)
Cr
Cb
[0073] В вышеприведенных уравнениях, значения QP и QP являются параметрами квантования цветности для Cr и Cb, соответственно, для конкретного блока видеоданных. Cb_QP_offset и Cr_QP_offset являются сигнализируемыми значениями смещения параметра квантования цветности для Cr и Cb, соответственно. Cb_QP_offset и Cr_QP_offset могут применяться к каждому блоку видеоданных в изображении и могут сигнализироваться в PPS.
Cr
Cb
C,Cr
C,Cb
C
[0074] Когда параметры QPи QP квантования сигнализируются согласно способам предложенным в работе Xu, значения QP и QP параметра квантования для общего края между двумя блоками, которые используются для поиска параметров t для фильтрации с устранением блочности составляющих Cb и Cr, можно вычислить согласно методам этого раскрытия следующим образом:
Способ A*:
C,Cr
Y,P
QP=(Clip3(0, 51, QP+cr_qp_offset)+ (8)
Y,Q
Clip3(0, 51, QP+cr_qp_offset)+1)/2
C,Cb
Y,P
QP=(Clip3(0, 51, QP+cb_qp_offset)+ (9)
Y,Q
Clip3(0, 51, QP+cb_qp_offset) + 1)/2
или:
C,Cr
Y,P
Y,Q
QP=Clip3(0, 51, (QP+QP+1)/2+cr_qp_offset)) (10)
C,Cb
Y,P
Y,Q
QP=Clip3(0, 51, (QP+QP+1)/2+cb_qp_offset)) (11)
Способ B*:
C,Cr
Y,P
QP=(Clip3(0, 51, QpUV (QP)+cr_qp_offset)+ (12)
Y,Q
Clip(0, 51, QpUV (QP)+cr_qp_offset)+1)/2
C,Cb
Y,P
QP=(Clip3(0, 51, QpUV (QP)+cb_qp_offset)+ (13)
Y,Q
Clip(0, 51, QpUV (QP)+cb_qp_offset)+1)/2
или:
C,Cr
Y,P
Y,Q
QP=Clip3(0, 51, QpUV ((QP+QP+1)/2)+cr_qp_offset) (14)
C,Cb
Y,P
Y,Q
QP=Clip3(0, 51, QpUV ((QP+QP+1)/2)+cb_qp_offset) (15)
[0075] в других примерах, методы этого раскрытия могут быть совместимы со способами сигнализации смещения QP цветности, предложенными в нижеследующем предложении JCT-VC:
G. J. Sullivan, S. Kanumuri, J.-Z. Xu, Y. Wu, “Chroma QP range extension,” 10th JCT-VC Meeting, Stockholm, Sweden, July 2012, Doc. JCTVC-J0342
Cbr
Cb
Cr
[0076] На 10-ой конференции JCT-VC, предложение Салливана было внесено в текст HEVC WD8. Модификация стандарта HEVC на основании предложения Салливана относится к таблице преобразования из QP яркости в QP цветности, которая является примером QpUV в приведенных здесь уравнениях. Согласно предложению Салливана, диапазон значений, поддерживаемый в отображении QP яркости в QP цветности, расширяется. Переменная QP указывает значение QP и QP и задается нижеприведенной таблицей 1 (QpUV).
Cbr
I.
I
Cb
Cr
r
Cb
Cr
[0077] Согласно таблице 1, переменная QP основана на индексе qP Индекс qP в таблице 1 соответствует qPI для цветностной составляющей Cb и qPI для цветностной составляющей C. В порядке примера, qPI и qPI можно вывести следующим образом:
ICb
Y
qP=Clip3(-QpBdOffsetC, 57, QP+cb_qp_offset) (16)
ICr
Y
qP=Clip3(-QpBdOffsetC, 57, QP+cr_qp_offset) (17)
[0078] В вышеприведенных примерах, QpBdOffsetC является значением смещения диапазона параметра квантования цветности. Значение QpBdOffsetC можно определять на основании битовой глубины цветностных составляющих.
Таблица 1QpUV(qP<sub>I</sub>)
qP<sub>I</sub>
<30
30
31
32
33
34
35
36
37
38
39
40
41
42
43
>43
QP<sub>Cbr</sub>
=qP<sub>I</sub>
29
30
31
32
33
33
34
34
35
35
36
36
37
37
=qP<sub>I</sub>-6
Cr
Cb
[0079] Кроме того, предложение Салливана предусматривает смещения QP цветности на уровне слайсов. В частности, предложение Салливана предусматривает slice_qp_delta_cb и slice_qp_delta_cr в качестве смещений QP цветности на уровне слайсов. В то время как cb_qp_offset и cr_qp_offset могут быть смещениями QP на уровне изображений, которые применяются ко всем видеоблокам в изображении, каждый из один или более слайсов в изображении может быть связан с соответствующими смещениями QP цветности на уровне слайсов, которые связаны со всеми видеоблоками в конкретном слайсе. Смещения QP цветности на уровне слайсов могут сигнализироваться, например, в заголовке слайса. Видеокодер может использовать смещения QP цветности на уровне слайсов и смещения QP цветности на уровне изображений для определения значений QP цветности (например, QPи QP) для видеоблока из значения QP яркости для видеоблока.
ICb
ICr
[0080] Согласно предложению Салливана, смещения QP цветности на уровне слайсов добавляются в аргумент функции ограничения, используемой для определения qP и qP, следующим образом:
ICb
qP=Clip3(-QpBdOffsetC, 57, QPY+cb_qp_offset+slice_qp_delta_cb) (18)
ICr
qP=Clip3(-QpBdOffsetC, 57, QPY+cr_qp_offset+slice_qp_delta_cr) (19)
C,Cr
C,Cb
C
[0081] Согласно методам этого раскрытия, видеокодер может использовать смещение QP цветности на уровне слайсов для определения значений параметра квантования цветности для края (например, QP и QP), которые используются для поиска параметров t для фильтрации с устранением блочности составляющих Cb и Cr, следующим образом:
C,Cr
Y,P
Y,Q
QP=QpUV ((QP+QP+1)/2+cr_qp_offset+slice_qp_delta_cr) (20)
C,Cb
Y,P
Y,Q
QP=QpUV ((QP+QP+1)/2+cb_qp_offset+slice_qp_delta_cb) (21)
Y
Cr
Cb
C
[0082] Опять же, QpUV является функцией или таблицей, используемой видеокодером для преобразования параметра QP квантования яркости в значения QP или QP параметра квантования цветности. QpUV можно также реализовать посредством математических уравнений и/или условий. В одном примере, ограничение можно применять до поиска параметров t в таблице QpUV.
[0083] Вышеприведенные уравнения 20 и 21 могут использоваться видеокодером для определения значений параметра квантования для края для определения интенсивности фильтра устранения блочности, когда первый и второй блоки (P и Q), имеющие общий край, находятся в одном и том же слайсе. В некоторых примерах, когда блоки P и Q принадлежат разным слайсам, видеокодер может брать значения slice_qp_delta_cr и slice_qp_delta_cb из одного из слайсов. Из какого слайса брать значения смещения параметра квантования цветности на уровне слайсов может быть заранее определено или сигнализироваться видеокодером 20. В одном примере, значения slice_qp_delta_cr и slice_qp_delta_cb можно брать из слайса, содержащего блок Q.
C,Cr
C,Cb
C
[0084] В других примерах, когда блоки P и Q принадлежат разным слайсам, видеокодер может определять значение смещения QP на уровне слайсов как среднее значение или другую математическую комбинацию соответствующих значений смещения QP на уровне слайсов для двух слайов. В некотором примере, видеокодер может вычислять значения QP и QP, которые используются для поиска параметров t для фильтрации с устранением блочности составляющих Cb и Cr, следующим образом:
C,Cr
Y,P
QP=QpUV((QP+slice_qp_delta_cr_P+ (22)
Y,Q
QP+slice_qp_delta_cr_Q+1)/2+cr_qp_offset)
C,Cb
Y,P
QP=QpUV((QP+slice_qp_delta_cb_P+ (23)
Y,Q
QP+slice_qp_delta_cb_Q+1)/2+cb_qp_offset)
[0085] В вышеприведенных иллюстративных уравнениях 21 и 22, slice_qp_delta_cr_P и slice_qp_delta_cr_Q являются смещениями QP составляющей Cr для слайсов, включающих в себя видеоблоки P и Q, соответственно. В вышеприведенных иллюстративных уравнениях 21 и 22, slice_qp_delta_cb_P и slice_qp_delta_cb_Q являются смещениями QP составляющей Cb для слайсов, включающих в себя P и Q, соответственно.
C,Cr
C,Cb
[0086] Аналогичным образом, смещения QP цветности на уровне слайсов можно ввести в восемь уравнений (иллюстративные уравнения 8-15) для вычисления QP и QP согласно методам этого раскрытия, описанным выше в отношении вышеописанных способа A* и способа B*.
[0087] Например, уравнение 8 можно модифицировать следующим образом:
C,Cr
Y,P
Y,Q
QP=Clip3(0, 51, (QP+QP+1)/2+(24)
cr_qp_offset+slice_qp_delta_cb))
[0088] Аналогичным образом, смещения QP цветности на уровне слайсов можно прибавлять к смещениям QP цветности на уровне изображений семи оставшихся уравнений, описанных выше в отношении способа A* и способа B*. Для краткости, каждое из уравнений здесь не воспроизведено.
Cr
Cb
C,Cr
C,Cb
C
[0089] В другом примере, когда параметры QPи QP квантования цветности сигнализируются с использованием смещений QP цветности на уровне слайсов, видеокодер может вычислять значения параметра квантования цветности для края, например, QP и QP, которые используются для поиска параметров t для фильтрации с устранением блочности составляющих Cb и Cr, следующим образом:
C,Cr
Y,P
QP=(QpUV (QP+cr_qp_offset+slice_qp_delta_cr_P) (25)
Y,Q
+QpUV (QP+cr_qp_offset+slice_qp_delta_cr_Q)+1)/2
C,Cb
Y,P
QP=(QpUV (QP+cb_qp_offset+slice_qp_delta_cb_p) (26)
Y,Q
+QpUV (QP+cb_qp_offset+slice_qp_delta_cb_Q)+1)/2
Y,P
Y,Q
[0090] В вышеприведенных иллюстративных уравнениях 25 и 26, QP и QP являются соответствующими значениями QP яркости первого и второго видеоблоков (обозначенных P и Q), которые совместно используют общий край.
C,Cr
C,Cb
C,Cr
C,Cb
C
C,Cr
C,Cb
[0091] Дополнительно, хотя главный профиль HEVC WD8 в настоящее время поддерживает цветовой формат 4:2:0, форматы 4:2:2 и 4:4:4 могут быть включены в предстоящие расширения HEVC. Как описано выше, элементы синтаксиса cb_qp_offset и cr_qp_offset в PPS и/или смещения QP цветности на уровне слайсов могут использоваться для определения значения QP и QP. QP и QP могут использоваться для поиска параметров t для фильтрации с устранением блочности составляющих Cb и Cr. Поскольку расширения HEVC может поддерживать дополнительные цветовые форматы, определение, включать ли смещения цветности на уровне PPS и/или слайсов при конфигурировании фильтра устранения блочности, может зависеть от цветового формата. Таким образом, QP и QP можно сделать зависящими от цветового формата. В некоторых примерах согласно методам этого раскрытия, смещения цветности на уровне PPS и/или слайсов можно включать при конфигурировании фильтрации с устранением блочности цветностных составляющих 4:2:2 и/или 4:4:4.
C,Cr
C,Cb
C,Cr
C,Cb
[0092] Высокоуровневый параметр синтаксиса HEVC chroma_format_idc включенный в набор параметров последовательности (SPS), определяет формат цветности. Таким образом, включение смещений QP цветности на уровне PPS и/или слайсов для определения значений QP и QP можно сделать зависящим от элемента синтаксиса chroma_format_idc. Кроме того, включение смещений QP цветности на уровне PPS и/или слайсов для определения значений QP и QP можно сделать зависящим от профиля и/или уровня для видеоданных, включенных в блоки видеоданных, которые совместно используют общий край.
c
[0093] Каждый из видеокодера 20 и видеодекодера 30 может реализовывать любой из описанных здесь методов для фильтрации с устранением блочности цветностных составляющих на общем краю между двумя блоками видеоданных. Например, каждый из видеокодера 20 и видеодекодера 30 может применять любое из рассмотренных выше иллюстративных уравнений для определения значения QP цветности для края, которое, в свою очередь, может использоваться для определения интенсивности фильтра устранения блочности, например, значения t, для цветностной составляющей.
[0094] Как видеокодер 20, так и видеодекодер 30 может быть реализован в виде любой из различных пригодных схем кодера или декодера, в зависимости от того, что применимо, например, одного или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), схем дискретной логики, программных средств, аппаратных средств, микропрограммных средств или любых их комбинаций. Как видеокодер 20, так и видеодекодер 30, может быть включен в один или более кодеров или декодеров, любой из которых может входить в состав комбинированного кодера/декодера видеосигнала (кодека). Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, например, сотовый телефон.
[0095] На фиг. 2 показана блок-схема, демонстрирующая пример видеокодера 20, который может реализовать методы устранения блочности краев между видеоблоками. Видеокодер 20 может осуществлять интра- и интер-кодирование блоков в кадрах видео, включающих в себя CU или под-CU CU. Интра-кодирование опирается на пространственное предсказание для сокращения или удаления пространственной избыточности видеосигнала в данном кадре видео. Интер-кодирование опирается на временное предсказание для сокращения или удаления временной избыточности видеосигнала в соседних кадрах видеопоследовательности. Режим интра-предсказания (I-режим) может относиться к любому из нескольких режимов пространственного сжатия, и режимы интер-предсказания, например, однонаправленного предсказания (P-режим) или двунаправленного предсказания (B-режим), могут относиться к любому из нескольких режимов временнного сжатия. Хотя компоненты для кодирования в режиме интер-предсказания представлены на фиг. 2, следует понимать, что видеокодер 20 может дополнительно включать в себя компоненты для кодирования в режиме интра-предсказания. Однако такие компоненты не показаны для краткости и наглядности.
[0096] Как показано на фиг. 2, видеокодер 20 принимает текущий видеоблок в кадре видео, подлежащем кодированию. В примере, показанном на фиг. 2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных изображений, сумматор 50, блок 52 обработки преобразования, блок 54 квантования, блок 56 энтропийного кодирования и блок 66 устранения блочности. Блок 40 выбора режима, в свою очередь, включает в себя блок 44 компенсации движения, блок 42 оценивания движения, блок 46 интра-предсказания и блок 48 разбиения. Для реконструкции видеоблока, видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62.
[0097] В соответствии с методами этого раскрытия, видеокодер 20 включает в себя блок 66 устранения блочности, который избирательно фильтрует выходной сигнал сумматора 62. В частности, блок 66 устранения блочности принимает от сумматора 62 реконструированные видеоданные, которые соответствуют предсказанным данным, принятым либо от блока 44 компенсации движения, либо от блока 46 интра-предсказания, прибавленным к обратно квантованным и обратно преобразованным остаточным данным. Таким образом, блок 66 устранения блочности принимает декодированные блоки видеоданных, например, CU LCU и/или нескольких LCU слайса или кадра. В общем случае, блок 66 устранения блочности избирательно фильтрует блоки видеоданных для устранения артефактов блочности. Блок 66 устранения блочности более подробно описан ниже.
[0098] В ходе процесса кодирования, видеокодер 20 принимает кадр видео или слайс, подлежащий кодированию. Кадр или слайс может делиться на несколько видеоблоков. Блок 42 оценивания движения и блок 44 компенсации движения осуществляют кодирование с интер-предсказанием принятого видеоблока относительно одного или более блоки в одном или более опорных кадрах для обеспечения временного сжатия. Блок интра-предсказания также может осуществлять кодирование с интра-предсказанием принятого видеоблока относительно одного или более соседних блоков в одном и том же кадре или слайсе в качестве блока, подлежащего кодированию, для обеспечения пространственного сжатия. Видеокодер 20 может осуществлять несколько проходов кодирования, например, для выбора надлежащего режима кодирования для каждого блока видеоданных.
[0099] Кроме того, блок 48 разбиения может разбивать блоки видеоданных на подблоки, на основании оценивания предыдущих схем разбиения в предыдущих проходах кодирования. Например, блок 48 разбиения может первоначально разбивать кадр или слайс на LCU и разбивать каждую из LCU на под-CU на основании анализа скорости-искажения (например, оптимизации скорости-искажения). Блок 40 выбора режима может дополнительно создавать структуру данных квадродерева, указывающую разбиение LCU на под-CU. CU-краевые узлы квадродерева могут включать в себя одну или более PU и одну или более TU.
[0100] Блок 40 выбора режима может выбирать один из режимов кодирования, интра- или интер-, например, на основании ошибочных результатов, и выдает полученный интра- или интер-кодированный блок на сумматор 50 для генерации данных остаточного блока и на сумматор 62 для реконструкции кодированного блока для использования в качестве опорного изображения. Блок 40 выбора режима также обеспечивает элементы синтаксиса, например, векторы движения, индикаторы режима интра-предсказания, информацию разбиения и другую подобную синтаксическую информацию, на блок 56 энтропийного кодирования.
[0101] Блок 42 оценивания движения и блок 44 компенсации движения могут быть в высокой степени интегрированы, но проиллюстрированы по отдельности по принципиальным соображениям. Оценивание движения, осуществляемое блоком 42 оценивания движения, является процессом генерации векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать перемещение PU видеоблока в текущем кадре видео или изображении относительно предсказанного блока в опорном изображении (или другой кодированной единицы) относительно текущего блока, кодируемого в текущем кадре (или другой кодированной единице). Предсказанный блок это блок, в отношении которого установлено, что он хорошо согласуется с блоком, подлежащим кодированию, в отношении пиксельной разности, которую можно определять по сумме абсолютных значений разности (SAD), сумме квадратов разностей (SSD) или другим разностным метрикам. В некоторых примерах, видеокодер 20 может вычислять значения для субцелых позиций пикселя опорных изображений, хранящихся в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать значения четвертьпиксельных позиций, позиций одной восьмой пикселя или других дробно-пиксельных позиций опорного изображения. Таким образом, блок 42 оценивания движения может осуществлять поиск движения относительно полнопиксельных позиций и дробно-пиксельных позиций и выводить вектор движения с дробно-пиксельной точностью.
[0102] Блок 42 оценивания движения вычисляет вектор движения для PU видеоблока в интер-кодированном слайсе, сравнивая позицию PU с позицией предсказанного блока опорного изображения. Опорное изображение можно выбирать из первого списка опорных изображений (списка 0) или второго списка опорных изображений (списка 1), каждый из которых идентифицирует одно или более опорных изображений, хранящихся в памяти 64 опорных изображений. Блок 42 оценивания движения отправляет вычисленный вектор движения на блок 56 энтропийного кодирования и блок 44 компенсации движения.
[0103] Компенсация движения, осуществляемая блоком 44 компенсации движения, могут предусматривать выборку или генерацию предсказанного блока на основании вектора движения, определенного блоком 42 оценивания движения. Опять же, блок 42 оценивания движения и блок 44 компенсации движения в некоторых примерах могут быть функционально объединены. Приняв вектор движения для PU текущего видеоблока, блок 44 компенсации движения может определять местоположение предсказанного блока, на который указывает вектор движения в одном из списков опорных изображений. Сумматор 50 формирует остаточный видеоблок вычитанием пиксельных значений предсказанного блока из пиксельных значений кодируемого на данный момент видеоблока с образованием разностных значений пикселей, как рассмотрено ниже. В общем случае, блок 42 оценивания движения осуществляет оценивание движения относительно яркостных составляющих, и блок 44 компенсации движения использует векторы движения, вычисленные на основании яркостных составляющих, как для цветностных составляющих, так и для яркостных составляющих. Блок 40 выбора режима также может генерировать элементы синтаксиса, связанные с видеоблоками, и слайс видео для использования видеодекодером 30 при декодировании видеоблоков слайса видео.
[0104] Блок 46 интра-предсказания может выполнять интра-предсказание текущего блока, в порядке альтернативы интер-предсказанию, осуществляемому блоком 42 оценивания движения и блоком 44 компенсации движения, как описано выше. В частности, блок 46 интра-предсказания может определять режим интра-предсказания, подлежащий использованию для кодирования текущего блока. В некоторых примерах, блок 46 интра-предсказания может кодировать текущий блок с использованием различных режимов интра-предсказания, например, в отдельных проходах кодирования, и блок 46 интра-предсказания (или, в некоторых примерах, блок 40 выбора режима) может выбирать надлежащий режим интра-предсказания для использования из тестируемых режимов.
[0105] Например, блок 46 интра-предсказания может вычислять значения скорости-искажения с использованием анализа скорости-искажения для различных тестируемых режимов интра-предсказания и выбирать режим интра-предсказания, имеющий наилучшие характеристики скоростиь-искажения из тестируемых режимов. Анализ скорости-искажения, в целом, определяет величину искажения (или ошибки) между кодированным блоком и исходным, некодированным, блоком, который кодировался для создания кодированного блока, а также битовой скорости (то есть количества битов), используемой для создания кодированного блока. Блок 46 интра-предсказания может вычислять отношения из искажений и скоростей для различных кодированных блоков для определения, какой режим интра-предсказания демонстрирует наилучшее значение скорости-искажения для блока.
[0106] Выбрав режим интра-предсказания для блока, блок 46 интра-предсказания может выдавать информацию, указывающую выбранный режим интра-предсказания для блока, на блок 56 энтропийного кодирования. Блок 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим интра-предсказания. Видеокодер 20 может включать в в данные конфигурации передаваемого битового потока, которые могут включать в себя множество таблиц индекса режимов интра-предсказания и множество модифицированных таблиц индекса режимов интра-предсказания (также именуемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и указатели наиболее вероятного режима интра-предсказания, таблицу индекса режимов интра-предсказания и модифицированную таблицу индекса режимов интра-предсказания, подлежащих использованию для каждого из контекстов.
[0107] Видеокодер 20 формирует остаточный видеоблок вычитанием данных предсказания от блока 40 выбора режима из кодируемого исходного видеоблока. Сумматор 50 представляет компонент или компоненты, который осуществляют эту операцию вычитания. Блок 52 обработки преобразования применяет преобразование, например, дискретное косинусное преобразование (DCT) или принципиально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения остаточного коэффициента преобразования. Блок 52 обработки преобразования может осуществлять другие преобразования, принципиально аналогичные DCT. Также можно использовать вейвлетные преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. В любом случае, блок 52 обработки преобразования применяет преобразование к остаточному блоку, создавая блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области пиксельных значений в преобразовательную область, например частотную область. Блок 52 обработки преобразования может отправлять полученные коэффициенты преобразования на блок 54 квантования. Блок 54 квантования квантует коэффициенты преобразования для дополнительного снижения битовой скорости. Процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования можно модифицировать путем регулировки параметра квантования. В некоторых примерах, блок 54 квантования может затем осуществлять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Альтернативно, блок 56 энтропийного кодирования может осуществлять сканирование.
[0108] После осуществления квантования, блок 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, блок 56 энтропийного кодирования может осуществлять контекстно-адаптивное кодирование с переменной длиной слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (SBAC), энтропийное кодирование с разбиением интервала вероятности (PIPE) или другой метод энтропийного кодирования. В случае энтропийного кодирования на контекстной основе, контекст может базироваться на соседних блоках. После осуществления энтропийного кодирования блоком 56 энтропийного кодирования, кодированный битовый поток может передаваться на другое устройство (например, видеодекодер 30) или архивироваться для дальнейшей передачи или извлечения.
[0109] Блок 58 обратного квантования и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для реконструкции остаточного блока в пиксельной области, например, для дальнейшего использования в качестве опорного блока. Блок 44 компенсации движения может вычислять опорный блок путем прибавления остаточного блока к предсказанному блоку одного из кадров памяти 64 опорных изображений. Блок 44 компенсации движения также может применять один или более интерполяционных фильтров к реконструированному остаточному блоку для вычисления субцелых пиксельных значений для использования при оценивании движения. Сумматор 62 прибавляет реконструированный остаточный блок к блоку предсказания, подвергнутому компенсации движения, созданному блоком 44 компенсации движения, для создания реконструированного видеоблока для сохранения в памяти 64 опорных изображений.
[0110] В соответствии с методами этого раскрытия, видеокодер 20 включает в себя блок 66 устранения блочности, который избирательно фильтрует выходной сигнал сумматора 62. Блок 66 устранения блочности осуществляет любой или все из методов этого раскрытия для устранения блочности выходного сигнала сумматора 62, то есть, реконструированных видеоблоков. Реконструированные видеоблоки, фильтруемые блоком 66 устранения блочности, могут использоваться блоком 42 оценивания движения и блоком 44 компенсации движения в качестве опорного блока для интер-кодирования блока в последующем кодированном изображении.
[0111] В частности, блок 66 устранения блочности принимает от сумматора 62 реконструированные видеоданные, которые соответствуют предсказанным данным, принятым либо от блока 44 компенсации движения, либо от блока 46 интра-предсказания, прибавленным к обратно квантованным и обратно преобразованным остаточным данным. Таким образом, блок 66 устранения блочности принимает декодированные блоки видеоданных, например, CU LCU, LCU слайса или кадра, PU CU, и/или TU CU. В общем случае, блок 66 устранения блочности избирательно фильтрует блоки видеоданных.
[0112] Блок 66 устранения блочности, в целом выполненный с возможностью анализа пикселей двух соседних блоков (например, два CU, PU или TU) вблизи границы между двумя блоками для определения, устранять ли блочность края. В частности, блок 66 устранения блочности может изменять значения пикселей вблизи границы при обнаружении высокочастотного изменения значений. Блок 66 устранения блочности также может быть выполненный с возможностью осуществления любого или всех из методов этого раскрытия.
[0113] Блок 66 устранения блочности может включать в себя заранее заданные адаптированные наборы поддержки, или динамически вычислять адаптированные наборы поддержки. Таким образом, блок 66 устранения блочности может избегать включения близлежащих краев в вычисление решений на устранение блочности или фильтрацию с устранением блочности, и избегать зависимостей результатов фильтрации между близлежащими краями. Блок 66 устранения блочности также может пропускать адаптацию поддержки, когда узкие блоки по одну или обе стороны края, блочность которого предполагается устранить, перпендикулярны краю. Когда, по меньшей мере, одно узкое неквадратное разбиение или преобразование параллельно краю, подлежащему устранению блочности, блок 66 устранения блочности может адаптировать функции решения на устранение блочности и/или фильтры устранения блочности во избежание взаимозависимостей между фильтрацией близлежащих краев и во избежание включения близлежащих краев в решения на устранение блочности и фильтрацию.
C,Cr
C,Cb
C
[0114] Блок 66 устранения блочности может, для каждой из одной или более цветностных составляющих видеоданных, вычислять значение QP цветности для общего края между двумя блоками видеоданных на основании соответствующих значений QP яркости для двух видеоблоков, а также значение смещения QP цветности для цветностной составляющей. Блок 66 устранения блочности может дополнительно определять интенсивность фильтра устранения блочности для общего края на основании значения QP цветности для цветностной составляющей и применять фильтр к цветностной составляющей для устранения блочности края. Например, блок 66 устранения блочности может вычислять значения QP и QP, которые используются для поиска, параметров t для фильтрации с устранением блочности согласно описанным здесь методам, например, согласно любому из вышеприведенных уравнений. В некоторых примерах, блок 66 устранения блочности может вычислять значение QP цветности для общего края между двумя блоками видеоданных путем вычисления среднего значения первого и второго значений QP яркости для двух видеоблоков и применения значения смещения QP цветности к среднему значению, что, например, представлено уравнениями 2, 3 и 8-15.
[0115] В некоторых примерах, значение смещения QP цветности для цветностной составляющей может быть значением смещения QP цветности на уровне изображений, которое может применяться ко всем видеоблокам изображения и может сигнализироваться в PPS. В некоторых примерах, блок 66 устранения блочности может дополнительно определять значение смещения QP цветности на уровне слайсов для цветностной составляющей, которое может применяться ко всем видеоблокам в данном слайсе и может сигнализироваться в заголовке слайса. Смещение QP цветности на уровне слайсов можно применять аналогично значению смещения QP цветности на уровне изображений, например, путем суммирования со значением смещения QP цветности на уровне изображений и средним значением значений QP яркости для двух блоков, что представлено уравнениями 20 и 21.
[0116] В некоторых примерах, два видеоблока, которые совместно используют общий край, располагаются в разных слайсах. В таких примерах, два видеоблока могут быть связаны с разными значениями смещения QP на уровне слайсов, например, разными значениями для slice_qp_delta_cr и slice_qp_delta_cb. В некоторых примерах, блок 66 устранения блочности может быть выполнен с возможностью выбора значений смещения QP на уровне слайсов для одного из блоков, применяемых для определения значений QP цветности для края согласно описанным здесь методам. В других примерах, блок 66 устранения блочности может быть выполнен с возможностью усреднения или иного комбинирования значений смещения QP на уровне слайсов для двух блоков для определения комбинированных значений смещения QP на уровне слайсов, и затем может применять комбинированные значения смещения QP на уровне слайсов для определения значений QP цветности для края согласно описанным здесь методам.
[0117] Таким образом, видеокодер 20, показанный на фиг. 2, представляет пример видеокодера, выполненного с возможностью, согласно методам этого раскрытия, определения значения QP цветности для общего края между двумя декодированными блоками видеоданных на основании значения смещения QP цветности, и определения интенсивности для фильтра устранения блочности на основании значения QP цветности для края.
[0118] На фиг. 3 показана блок-схема, демонстрирующая пример видеодекодера 30, который декодирует кодированную видеопоследовательность. В примере, показанном на фиг. 3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 интра-предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, хранилище 82 опорных кадров, сумматор 80 и блок 84 устранения блочности. Видеодекодер 30 может, в некоторых примерах, осуществлять проход декодирования, в целом, обратный проходу кодирования, описанному в отношении видеокодера 20 (фиг. 2). Блок 72 компенсации движения может генерировать данные предсказания на основании векторов движения, принятых от блока 70 энтропийного декодирования.
[0119] В ходе процесса декодирования, видеодекодер 30 принимает битовый поток кодированного видеосигнала, который представляет видеоблоки кодированного слайса видео и соответствующие элементы синтаксиса, от видеокодера 20. Блок 70 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для генерации квантованных коэффициентов, векторов движения или индикаторов режима интра-предсказания, и другие элементы синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения на и другие элементы синтаксиса на блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне слайсов видео и/или уровне видеоблоков.
[0120] Когда слайс видео кодируется как интра-кодированный (I) слайс, блок 74 интра-предсказания может генерировать данные предсказания для видеоблока текущего слайса видео на основании сигнализируемого режима интра-предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда кадр видео кодируется как интер-кодированный (т.е., B, P или GPB) слайс, блок 72 компенсации движения создает предсказанные блоки для видеоблока текущего слайса видео на основании векторов движения и других элементов синтаксиса, принятых от блока 70 энтропийного декодирования. Предсказанные блоки можно создавать из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может строить списки опорных изображений, список 0 и список 1, с использованием принятых по умолчанию методов построения на основании опорных изображений, хранящихся в памяти 92 опорных изображений.
[0121] Блок 72 компенсации движения определяет информацию предсказания для видеоблока текущего слайса видео, разлагая векторы движения и другие элементы синтаксиса, и использует информацию предсказания для создания предсказанных блоков для декодируемого в данный момент видеоблока. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, интра- или интер-предсказания), используемого для кодирования видеоблоков слайса видео, тип интер-предсказания слайса (например, B-слайс, P-слайс или GPB-слайс), информацию построения для одного или более из списков опорных изображений для слайса, векторы движения для каждого интер-кодированного видеоблока слайса, статус интер-предсказания для каждого интер-кодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем слайсе видео.
[0122] Блок 72 компенсации движения также может осуществлять интерполяцию с помощью интерполяционных фильтров. Блок 72 компенсации движения может использовать интерполяционные фильтры, используемые видеокодером 20 в ходе кодирования видеоблоков для вычисления интерполированных значений для субцелых пикселей опорных блоков. В этом случае, блок 72 компенсации движения может определять интерполяционные фильтры, используемые видеокодером 20, из принятых элементов синтаксиса и использовать интерполяционные фильтры для создания предсказанных блоков.
Y
[0123] Блок 76 обратного квантования осуществляет обратное квантование, т.е. деквантование, квантованных коэффициентов преобразования, обеспеченных в битовом потоке и декодированных блоком энтропийного декодирования 80. Процесс обратного квантования может включать в себя использование параметра QP квантования, вычисленного видеодекодером 30 для каждого видеоблока в слайсе видео, для определения степени квантования и, аналогично, степени обратного квантования, которую следует применять.
[0124] Блок 78 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или принципиально аналогичный процесс обратного преобразования, к коэффициентам преобразования для создания остаточных блоков в пиксельной области.
[0125] После того, как блок 82 компенсации движения генерирует предсказанный блок для текущего видеоблока на основании векторов движения и других элементов синтаксиса, видеодекодер 30 формирует декодированный видеоблок путем суммирования остаточных блоков из блока 78 обратного преобразования с соответствующими предсказанными блоками, генерируемыми блоком 82 компенсации движения. Сумматор 80 представляет компонент или компоненты, который осуществляют эту операцию суммирования.
[0126] Блок 84 устранения блочности может быть выполнен с возможностью осуществления любого или всех из методов этого раскрытия для устранения блочности выходного сигнала сумматора 80. Блок 84 устранения блочности может избирательно устранять блочность CU, включающих в себя TU и PU CU, принятых от сумматора 80, в соответствии с любым или всеми из методов этого раскрытия. Блок 84 устранения блочности может согласовываться, по существу, с блоком 66 устранения блочности (фиг. 2), в том, что блок 84 устранения блочности может быть выполнен с возможностью осуществления любого или всех из методов, описанных в отношении блока 66 устранения блочности. Затем декодированные видеоблоки в данном кадре или изображении, фильтруемые блоком 84 устранения блочности, сохраняются в памяти 92 опорных изображений, где хранятся опорные изображения, используемые для последующей компенсация движения. В памяти 92 опорных изображений также хранится декодированный видеосигнал для дальнейшего представления на устройстве отображения, например, устройстве 32 отображения, показанном на фиг. 1.
C,Cr
C,Cb
C
[0127] Например, блок 84 устранения блочности может вычислять значения QP и QP, которые используются для поиска параметров t для фильтрации с устранением блочности согласно описанным здесь методам, например, согласно любому из вышеприведенных уравнений. В некоторых примерах, блок 84 устранения блочности может вычислять значение QP цветности для общего края между двумя блоками видеоданных путем вычисления среднего значения первого и второго значений QP яркости для двух видеоблоков и применения значения смещения QP цветности к среднему значению, что, например, представлено уравнениями 2, 3 и 8-15.
[0128] В некоторых примерах, значение смещения QP цветности для цветностной составляющей может быть значением смещения QP цветности на уровне изображений, которое может применяться ко всем видеоблокам изображения и может сигнализироваться в PPS. В некоторых примерах, блок 84 устранения блочности может, дополнительно или альтернативно, определять значение смещения QP цветности на уровне слайсов для цветностной составляющей, которое может применяться ко всем видеоблокам в данном слайсе и может сигнализироваться в заголовке слайса. Смещение QP цветности на уровне слайсов можно применять аналогично значению смещения QP цветности на уровне изображений, например, путем суммирования со значением смещения QP цветности на уровне изображений и средним значением значений QP яркости для двух блоков, что представлено уравнениями 20 и 21.
[0129] В некоторых примерах, два видеоблока, которые совместно используют общий край, располагаются в разных слайсах. В таких примерах, два видеоблока могут быть связаны с разными значениями смещения QP на уровне слайсов, например, разными значениями для slice_qp_delta_cr и slice_qp_delta_cb. В некоторых примерах, блок 84 устранения блочности может быть выполнен с возможностью выбора значений смещения QP на уровне слайсов для одного из блоков, применяемых для определения значений QP цветности для края согласно описанным здесь методам. В других примерах, блок 84 устранения блочности может быть выполнен с возможностью усреднения или иного комбинирования значений смещения QP на уровне слайсов для двух блоков для определения комбинированных значений смещения QP на уровне слайсов, и затем может применять комбинированные значения смещения QP на уровне слайсов для определения значений QP цветности для края согласно описанным здесь методам.
[0130] Таким образом, видеодекодер 30, показанный на фиг. 3, представляет пример видеодекодера, выполненный с возможностью, согласно методам этого раскрытия, для определения значения QP цветности для общего края между двумя декодированными блоками видеоданных на основании значения смещения QP цветности, и определения интенсивности для фильтра устранения блочности на основании значения QP цветности для края.
[0131] На фиг. 4 показана блок-схема, демонстрирующая компоненты иллюстративного блока 90 устранения блочности. В общем случае, любой или оба из блока 66 устранения блочности (фиг. 2) и блока 84 устранения блочности (фиг. 3) может включать в себя компоненты, по существу, аналогичные компонентам блока 90 устранения блочности. Другие устройства видеокодирования, например видеокодеры, видеодекодеры, видеокодер/декодеры (кодеки), и пр. также могут включать в себя компоненты, по существу, аналогичные блоку 90 устранения блочности. Блок 90 устранения блочности может быть реализован аппаратными средствами, программными средствами или в виде программно-аппаратного обеспечения. В случае реализации в программном обеспечении или программно-аппаратном обеспечении, также можно обеспечить соответствующее оборудование (например, один или более процессоров или блоков обработки и память для хранения инструкций для программного обеспечения или программно-аппаратного обеспечения).
[0132] В примере, показанном на фиг. 4, блок 90 устранения блочности включает в себя блок 94 определения необходимости устранения блочности, определения 92 поддержки, блок 96 фильтрации с устранением блочности, определения 98 фильтра устранения блочности и структуру 95 данных местоположений края. Любые или все из компонентов блока 90 устранения блочности могут быть функционально объединены. Компоненты блока 90 устранения блочности проиллюстрированы по отдельности только в целях иллюстрации.
[0133] В общем случае, блок 90 устранения блочности принимает данные для декодированных блоков, например, от суммирующего компонента, например, блока 62 (фиг. 2) или блока 80 (фиг. 3), который объединяет данные предсказания с остаточными данными для блоков. Данные могут дополнительно включать в себя указание, как предсказывались блоки. В некоторых примерах, блок 90 устранения блочности выполнен с возможностью приема данных, включающих в себя декодированную LCU и квадродерево CU для LCU, где квадродерево CU описывает, как LCU разбивается на CU, и описывает режимы предсказания для CU-краевых узлов. Данные также могут включать в себя информацию, указывающую разбиение CU-краевых узлов на PU и TU, которая может дополнительно указывать, являются ли PU асимметричными разбиениями движения и/или являются ли TU разбиениями неквадратного преобразования квадродерева (NSQT). Квадродерево TU может указывать, являются ли TU разбиениями NSQT, и/или соответствуют ли TU PU асимметричного разбиения движения.
[0134] Блок 94 определения необходимости устранения блочности, в целом, определяет, следует ли, для двух соседних блоков (например, двух CU, PU или TU), подвергать край между двумя блоками устранению блочности. Блок 94 определения необходимости устранения блочности может определять местоположения краев с использованием структуры 95 данных местоположений края.
[0135] В общем случае, блок 94 определения необходимости устранения блочности выполнен с возможностью осуществления одной или более функций определения необходимости устранения блочности. Функция определения необходимости устранения блочности может определять, применять ли устранение блочности к конкретному краю на основании результата функции. Функции могут включать в себя множество коэффициентов, применяемых к линиям пикселей, которые пересекают край между блоками, например двумя CU. Например, функции можно применять к линии из восьми пикселей, которая перпендикулярна краю, где четыре пикселя находятся в одном из двух блоков, и другие четыре пикселя находятся в другом из двух блоков. В зависимости от формы и размера функций поддержки, функции можно адаптировать для использования с большим или меньшим количеством пикселей. Определения 92 поддержки задают поддержку для функций. В общем случае, “поддержка” соответствует пикселям, к которым применяются функции.
[0136] Блок 94 определения необходимости устранения блочности может быть выполнен с возможностью применения одной или более функций определения необходимости устранения блочности к одному или более наборам поддержки, которые задана определениями 92 поддержки, для определения, следует ли подвергать устранению блочности конкретный край между двумя блоками видеоданных. В некоторых примерах, однако, блок 94 определения необходимости устранения блочности выполнен с возможностью пропускать применение функций определения необходимости устранения блочности к конкретному краю или адаптировать функции решения на устранение блочности и/или фильтры устранения блочности для конкретного края.
[0137] Пунктирная линия, исходящая из блока 94 определения необходимости устранения блочности, представляет данные для блоков, выводимые без фильтрации. В случаях, когда блок 94 определения необходимости устранения блочности определяет, что край между двумя блоками не следует фильтровать, блок 90 устранения блочности может выводить данные для блоков без изменения данных. Таким образом, данные могут обходить блок 96 фильтрации с устранением блочности. В порядке примера, блок 90 устранения блочности может определять, что два блока не следует фильтровать, если они имеют перекрывающиеся наборы поддержки для функции устранения блочности и/или для функции устранения блочности. С другой стороны, когда блок 94 определения необходимости устранения блочности определяет, что край следует подвергать устранению блочности, блок 94 определения необходимости устранения блочности может предписывать блоку 96 фильтрации с устранением блочности фильтровать значения для пикселей вблизи границы, для устранения блочности края.
c
[0138] Блок 90 устранения блочности может быть выполнен с возможностью анализа линии пикселей, перпендикулярных соответствующим краевым сегментам и пересекающих их, для определения, устранять ли блочность каких-либо или всех краевых сегментов, применять ли слабый или сильный фильтр к краевым сегментам, подлежащим устранению блочности, и значения ширины слабых фильтров. В частности, блок 94 определения необходимости устранения блочности может быть выполнен с возможностью производить эти различные определения (т.е., устранять ли блочность краевого сегмента, применять ли сильный или слабый фильтр для устранения блочности краевого сегмента, и ширину слабого фильтра при выборе слабого фильтра), по меньшей мере, частично на основании параметров устранения блочности, например, β и t. Определения 92 поддержки включают в себя данные, задающие линии пикселей, подлежащие использованию для осуществления этих определений.
[0139] Блок 96 фильтрации с устранением блочности извлекает определения фильтров устранения блочности из определений 98 фильтра устранения блочности для краев, подлежащих устранению блочности, как указано блоком 94 определения необходимости устранения блочности. Для краев между неквадратными блоками, блок 96 фильтрации с устранением блочности может извлекать адаптированные фильтры устранения блочности из определений 98 фильтра устранения блочности, таким образом, чтобы фильтры не пересекали дополнительные границы. В общем случае, фильтрация края использует значения пикселей из окрестности текущего края, подлежащего устранению блочности. Таким образом, как функции решения на устранение блочности, так и фильтры устранения блочности могут иметь определенную область поддержки по обе стороны края. Применяя фильтр устранения блочности к пикселям в окрестности края, блок 96 фильтрации с устранением блочности может сглаживать значения пикселей таким образом, чтобы подавлять высокочастотные переходы вблизи границы. Таким образом, применение фильтров устранения блочности к пикселям вблизи границы может уменьшать артефакты блочности вблизи границы.
[0140] Определения 98 фильтра устранения блочности задают различные фильтры устранения блочности, например, сильные фильтры и слабые фильтры различной ширины. Значения ширины слабых фильтров могут задавать слабые фильтры, которые модифицируют по одному пикселю с каждой стороны границы, по два пикселя с каждой стороны границы, и один пиксель с одной стороны и два пикселя с другой стороны границы. Количество пикселей, модифицируемых фильтром устранения блочности, не обязательно равно количеству пикселей, используемых в качестве вводов в фильтр устранения блочности. Таким образом, определения 98 фильтра устранения блочности могут включать в себя данные, задающие количество вводов в фильтр устранения блочности, а также данные, задающие количество пикселей, подлежащих модификации с использованием вводов. В общем случае, фильтр устранения блочности задается входными пикселями и коэффициентами фильтрации, подлежащими математическому применению ко входным пикселям для создания модифицированных значений определенных пикселей.
[0141] В некоторых примерах согласно методам этого раскрытия, устройство декодирования видеосигнала, например, видеокодер 20 или видеодекодер 30, показанный на фиг. 1-3, может включать в себя блок устранения блочности, по существу, согласующийся с примером блока 90 устранения блочности. Видеокодер 20 или видеодекодер 30 может быть выполнен с возможностью применения фильтра или функции устранения блочности, когда функция решения указывает, что общий край между двумя блоками следует подвергать устранению блочности.
C,Cr
C,Cb
C
C
[0142] Например, блок 90 устранения блочности может вычислять значения QP и QP которые используются для поиска параметров t для фильтрации с устранением блочности согласно описанным здесь методам, например, согласно любому из вышеприведенных уравнений. Как рассмотрено выше, параметр t может влиять на интенсивность фильтра устранения блочности, применяемого блоком 90 устранения блочности. В некоторых примерах, блок 90 устранения блочности может вычислять значение QP цветности для общего края между двумя блоками видеоданных путем вычисления среднего значения первого и второго значений QP яркости для двух видеоблоков и применения значения смещения QP цветности к среднему значению, что, например, представлено уравнениями 2, 3 и 8-15.
[0143] В некоторых примерах, значение смещения QP цветности для цветностной составляющей может быть значением смещения QP цветности на уровне изображений, которое может применяться ко всем видеоблокам изображения и может сигнализироваться в PPS. В некоторых примерах, блок 90 устранения блочности может, дополнительно или альтернативно, определять значение смещения QP цветности на уровне слайсов для цветностной составляющей, которое может применяться ко всем видеоблокам в данном слайсе и может сигнализироваться в заголовке слайса. Смещение QP цветности на уровне слайсов можно применять аналогично значению смещения QP цветности на уровне изображений, например, путем суммирования со значением смещения QP цветности на уровне изображений и средним значением значений QP яркости для двух блоков, что представлено уравнениями 20 и 21.
[0144] В некоторых примерах, два видеоблока, которые совместно используют общий край, располагаются в разных слайсах. В таких примерах, два видеоблока могут быть связаны с разными значениями смещения QP на уровне слайсов, например, разными значениями для slice_qp_delta_cr и slice_qp_delta_cb. В некоторых примерах, блок 90 устранения блочности может быть выполнен с возможностью выбора значений смещения QP на уровне слайсов для одного из блоков, применяемых для определения значений QP цветности для края согласно описанным здесь методам. В других примерах, блок 90 устранения блочности может быть выполнен с возможностью усреднения или иного комбинирования значений смещения QP на уровне слайсов для двух блоков для определения комбинированных значений смещения QP на уровне слайсов, и затем может применять комбинированные значения смещения QP на уровне слайсов для определения значений QP цветности для края согласно описанным здесь методам.
[0145] На фиг. 5 показана принципиальная схема, демонстрирующая край 104 образованный двумя соседними блоками 100, 102. Блоки 100, 102 могут соответствовать вышеописанным блокам P и Q. Хотя пример, приведенный на фиг. 5, демонстрирует блоки 100, 102, расположенные рядом друг с другом по горизонтали, следует понимать, что блоки, расположенные рядом друг с другом по вертикали, также могут образовывать край, который можно подвергать устранению блочности в соответствии с методами этого раскрытия. Кроме того, хотя блоки 100, 102 показаны имеющими одинаковый размер, соседние блоки, образующие край, не обязаны иметь одинаковый размер.
[0146] Блоки 100, 102 могут представлять блоки преобразования соответствующих единиц преобразования (TU). Соответственно, блоки 100, 102 могут быть связаны с соответствующими значениями параметра квантования (QP). Дополнительно, каждый из блоков 100 и 102 может включать в себя яркостные составляющие, а также одну или более цветностных составляющих, например, Cr и Cb.
c
[0147] В соответствии с методами этого раскрытия, блок устранения блочности, например, блок 66 устранения блочности (фиг. 2), блок 84 устранения блочности (фиг. 3) или блок 90 устранения блочности (фиг. 4), может быть выполнен с возможностью определения значения QP цветности (для каждой из одной или более цветностных составляющих) для устранения блочности края 104 между блоками 100 и 102 на основании не только соответствующих QP яркости для блоков 100 и 102, но и значения смещения QP цветности. Например, блок устранения блочности может применять значение смещения QP цветности к среднему значению значений QP яркости блоков 100 и 102, например, согласно любому из уравнений 2, 3 и 8-15. Затем блок устранения блочности может использовать значение QP цветности для края 104 для конкретной цветностной составляющей для определения интенсивности фильтра устранения блочности для применения к краю для конкретной цветностной составляющей, например, для определения значения t.
[0148] В некоторых примерах, блоки 100 и 102 могут быть включены в разные слайсы. В таких примерах, блоки 100 и 102 могут быть связаны с разными значениями смещения QP на уровне слайсов, например, разными значениями для каждого из slice_qp_delta_cr и slice_qp_delta_cb. В некоторых примерах, блок устранения блочности может быть выполнен с возможностью выбора значений смещения QP на уровне слайсов, связанных с одним из блоков 100 и 102, для применения для определения значений QP цветности для края 104 согласно описанным здесь методам. В других примерах, блок устранения блочности может быть выполнен с возможностью усреднения или иного математического комбинирования значений смещения QP на уровне слайсов для двух блоков для определения комбинированных значений смещения QP на уровне слайсов, и затем может применять комбинированные значения смещения QP на уровне слайсов для определения значений QP цветности для края согласно описанным здесь методам.
[0149] На фиг. 6 показана блок-схема операций, демонстрирующая иллюстративный способ осуществления устранения блочности в ходе процесса видеокодирования в соответствии с методами этого раскрытия. Иллюстративный способ, представленный на фиг. 6, может осуществляться блоком устранения блочности, например, блоком 66 устранения блочности (фиг. 2), блоком 84 устранения блочности (фиг. 3) или блоком 90 устранения блочности (фиг. 4). Кроме того, иллюстративный способ, представленный на фиг. 6 может осуществляться видеокодером, который может представлять собой видеокодер или видеодекодер, например, видеокодер 20 или видеодекодер 30 (фиг. 1-3).
Y,P
Y,Q
[0150] Согласно иллюстративному способу, представленному на фиг. 6, видеокодер декодирует (110) первый и второй блоки видеоданных (например, вышеупомянутые блоки Q и P, или блоки 100 и 102, показанные на фиг. 5) имеющие общий край (например, край 104 на фиг. 5). Видеокодер, например, блок устранения блочности видеокодера, может определять (112) первый и второй QP яркости для первого и второго видеоблоков, соответственно, например, QP и QP. Видеокодер, например, блок устранения блочности, также может определять (114) значение смещения QP цветности для конкретного одного из одной или более цветностных составляющих видеоблоков, например, cr_qp_offset для составляющей Cr, или cb_qp_offset для составляющей Cb.
[0151] Для каждой из цветностных составляющих, видеокодер, например, блок устранения блочности, вычисляет (116) значение QP цветности для общего края между первым и вторым блоками на основании соответствующих QP яркости для первого и второго блоков, а также значения смещения QP цветности для цветностной составляющей. В некоторых примерах, видеокодер вычисляет значение QP цветности для общего края путем усреднения значений QP яркости для двух видеоблоков, и применения значения смещения QP цветности к среднему значению. В некоторых примерах, видеокодер вычисляет значение QP цветности для общего края с использованием любого из рассмотренных выше иллюстративных уравнений 2, 3 и 8-15.
C
[0152] Затем видеокодер, например, блок устранения блочности видеокодера, может определять (118) интенсивность фильтра устранения блочности, подлежащего применению к общему краю для цветностной составляющей, например, Cr или Cb, на основании значения QP цветности для края, вычисленного для конкретной цветностной составляющей. Согласно приведенному здесь рассмотрению, определение интенсивности фильтра устранения блочности может включать в себя определение значения параметра t на основании значения QP цветности для края, вычисленного для конкретной цветностной составляющей. Затем видеокодер, например, блок устранения блочности видеокодера, может применять (120) фильтр устранения блочности с определенной интенсивностью для устранения блочности общего края между первым и вторым блоками.
[0153] Таким образом, способ, показанный на фиг. 6 представляет пример способа, включающего в себя определение значения QP цветности для общего края между двумя декодированными блоками видеоданных на основании значения смещения QP цветности, и определение интенсивности для фильтра устранения блочности на основании значения QP цветности для края.
[0154] В одном или более примерах, описанные функции могут быть реализованы аппаратными средствами, программными средствами, микропрограммными средствами или любой их комбинацией. Будучи реализованы программными средствами, функции могут храниться или передаваться в виде одной или более инструкций или кода на компьютерно-читаемом носителе и выполняться аппаратным блоком обработки. Компьютерно-читаемые носители могут включать в себя компьютерно-читаемые носители данных, которые соответствует вещественному носителю, например, носителям данных или средам связи, включающим в себя любую среду, которая облегчает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, компьютерно-читаемые носители, в целом, могут соответствовать (1) вещественным компьютерно-читаемым носителям данных, которые являются нетранзиторными или (2) среде связи, например, сигналу или несущей волне. Носители данных могут быть любыми доступными носителями, к которым может осуществлять доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методов, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя компьютерно-читаемый носитель.
[0155] В порядке примера, но не ограничения, такие компьютерно-читаемые носители данных могут содержать ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другое хранилище на основе оптического диска, хранилище на основе магнитного диска, или другие магнитные запоминающие устройства, флэш-память, или любой другой носитель, который можно использовать для хранения нужного программного кода в форме инструкций или структур данных, и к которым может обращаться компьютер. Также, любое соединение уместно именовать машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL), или беспроводных технологий, например, инфракрасной, радио и микроволновой, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, например, инфракрасная, радио и микроволновая включаются в определение носителя. Однако следует понимать, что компьютерно-читаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие транзиторные носители, но, напротив, относятся к нетранзиторным, вещественным носителям данных. Используемый здесь термин диск включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи-диск и диск Blu-ray где диски обычно воспроизводят данные магнитными средствами, тогда как диски воспроизводят данные оптическими средствами с помощью лазеров. Комбинации вышеописанных устройств также подлежат включению в объем определения машиночитаемых носителей.
[0156] Инструкции могут выполняться одним или более процессорами, например, одним или более цифровыми сигнальными процессорами (DSP), микропроцессорами общего назначения, специализированными интегральными схемами (ASIC), логическими матрицами, программируемыми пользователем (FPGA) или другими эквивалентными интегральными или дискретными логическими схемами. Соответственно, используемый здесь термин “процессор” может относиться к любой из вышеописанных структур или любой другой структуре, пригодной для реализации описанных здесь методов. Кроме того, в некоторых аспектах, описанные здесь функциональные возможности могут быть обеспечены в специализированных аппаратных и/или программных модулях выполненных с возможностью кодирования и декодирования, или включенных в комбинированный кодек. Кроме того, методы можно полностью реализовать в одной или более схемах или логических элементах.
[0157] Методы этого раскрытия могут быть реализованы в разнообразных приспособлениях или устройствах, включающих в себя беспроводную телефонную трубку, интегральную схему (ИС) или набор ИС (например, чипсет). Различные компоненты, модули или блоки описаны в этом раскрытии, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью осуществления раскрытых методов, но не обязательно требуют реализация посредством разных аппаратных блоков. Напротив, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или обеспечены в виде совокупности взаимодействующих аппаратных блоков, включающих в себя один или более процессоров, как описано выше, совместно с пригодным программным обеспечением и/или программно-аппаратным обеспечением.
[0158] Были описаны различные примеры. Эти и другие примеры соответствуют объему нижеследующей формулы изобретения.