СПОСОБ И УСТРОЙСТВО ДЛЯ НЕЛИНЕЙНОЙ АДАПТИВНОЙ КОНТУРНОЙ ФИЛЬТРАЦИИ ПРИ КОДИРОВАНИИ ВИДЕО
METHOD AND APPARATUS FOR NONLINEAR ADAPTIVE CONTOUR FILTERING IN VIDEO ENCODING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящее изобретение испрашивает приоритет предварительной заявки на патент США с серийным номером 62/796608, поданной 25 января 2019 г., и 62/832349, поданной 11 апреля 2019 г. Предварительные заявки на патент США настоящим полностью включены посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее изобретение относится к обработке с адаптивным контурным фильтром (ALF) в системе кодирования видео. В частности, настоящее изобретение относится к нелинейной обработке ALF в видео кодере или декодере.
УРОВЕНЬ ТЕХНИКИ
[0003] Оценка движения - это эффективный метод межкадрового кодирования для использования временной избыточности в видеопоследовательностях. Межкадровое кодирование с компенсацией движения широко используется в различных международных стандартах кодирования видео. Оценка движения, принятая в различных стандартах кодирования, часто является блочной техникой, в которой информация о движении, такая как режим кодирования и вектор движения, определяется для каждого макроблока или подобного, блочная конфигурация. Кроме того, внутреннее кодирование также применяется адаптивно, когда изображение обрабатывается без привязки к любому другому изображению. Остатки, предсказанные с помощью внешнего или внутреннего предсказания, обычно дополнительно обрабатываются преобразованием, квантованием и энтропийным кодированием для генерации сжатого потока битов видео. Во время процесса кодирования вводятся артефакты кодирования, особенно в процессе квантования. Чтобы уменьшить артефакты кодирования, к восстановленному видео была применена дополнительная обработка для повышения качества изображения в более новых системах кодирования. Дополнительная обработка часто конфигурируется в рамках цикла, так что кодер и декодер могут получать одни и те же опорные изображения для достижения улучшенных характеристик системы.
[0004] Фиг. 1A иллюстрирует примерную систему адаптивного кодирования видео Inter/Intra, включающую внутрицикловую обработку. Для внешнего предсказания оценка движения (ME)/компенсация движения (МС) 112 используется для предоставления данных предсказания на основе видеоданных из другого изображения или изображений. Переключатель 114 выбирает внутреннее прогнозирование ПО или данные внешнего прогнозирования, и выбранные данные прогнозирования передаются сумматору 116 для формирования ошибок прогнозирования, также называемых остатками. Ошибка предсказания затем обрабатывается преобразованием (Т) 118 с последующим квантованием (Q) 120. Преобразованные и квантованные остатки затем кодируются энтропийным кодером 122 для формирования потока видеобитов, соответствующего сжатым видеоданным. Битовый поток, связанный с коэффициентами преобразования, затем наполняется дополнительной информацией, такой как движение, режим и другой информацией, связанной с областью изображения. Дополнительная информация также может подвергаться энтропийному кодированию для уменьшения требуемой полосы пропускания. Соответственно, данные, связанные с дополнительной информацией, предоставляются энтропийному кодеру 122, как показано на фиг. 1А. Когда используется режим внешнего предсказания, опорное изображение или изображения также должны быть восстановлены на стороне кодера. Следовательно, преобразованные и квантованные остатки обрабатываются посредством обратного квантования (IQ) 124 и обратного преобразования (IT) 126 для восстановления остатков. Затем остатки добавляются обратно к данным 136 прогнозирования на этапе восстановления (REC) 128 для восстановления видеоданных. Восстановленные видеоданные могут храниться в буфере 134 опорных изображений и использоваться для предсказания других кадров, данные, связанные с дополнительной информацией, предоставляются энтропийному кодеру 122, как показано на фиг. 1А. Когда используется режим внешнего предсказания, опорное изображение или изображения также должны быть восстановлены на стороне кодера. Следовательно, преобразованные и квантованные остатки обрабатываются посредством обратного квантования (IQ) 124 и обратного преобразования (IT) 126 для восстановления остатков. Затем остатки добавляются обратно к данным 136 предсказания на этапе восстановления (REC) 128 для восстановления видеоданных. Восстановленные видеоданные могут храниться в буфере 134 опорных изображений и использоваться для предсказания других кадров, данные, связанные с дополнительной информацией, предоставляются энтропийному кодеру 122, как показано на фиг. 1А. Когда используется режим внешнего предсказания, опорное изображение или изображения также должны быть восстановлены на стороне кодера. Следовательно, преобразованные и квантованные остатки обрабатываются с помощью обратного квантования (IQ) 124 и обратного преобразования (IT) 126 для восстановления остатков. Затем остатки добавляются обратно к данным 136 предсказания на этапе восстановления (REC) 128 для восстановления видеоданных. Восстановленные видеоданные могут храниться в буфере 134 опорных изображений и использоваться для предсказания других кадров, преобразованные и квантованные остатки обрабатываются с помощью обратного квантования (IQ) 124 и обратного преобразования (IT) 126 для восстановления остатков. Затем остатки добавляются обратно к данным 136 прогнозирования на этапе восстановления (REC) 128 для восстановления видеоданных. Восстановленные видеоданные могут храниться в буфере 134 опорных изображений и использоваться для предсказания других кадров, преобразованные и квантованные остатки обрабатываются с помощью обратного квантования (IQ) 124 и обратного преобразования (IT) 126 для восстановления остатков. Затем остатки добавляются обратно к данным 136 прогнозирования на этапе восстановления (REC) 128 для восстановления видеоданных. Восстановленные видеоданные могут храниться в буфере 134 опорных изображений и использоваться для предсказания других кадров.
[0005] Как показано на фиг. 1А, входящие видеоданные проходят серию обработки в системе кодирования. Восстановленные видеоданные из этапа REC 128 могут подвергаться различным искажениям из-за серии обработки. Соответственно, к восстановленным видеоданным перед сохранением восстановленных видеоданных в буфере 134 опорного изображения применяется различная внутрицикловая обработка, чтобы улучшить качество видео. В разрабатываемом стандарте высокоэффективного видеокодирования (HEVC) были разработаны деблокирующий фильтр (DF) 130, адаптивное смещение выборки (SAO) 131 и адаптивный контурный фильтр (ALF) 132 для улучшения качества изображения. Информация внутриконтурного фильтра может быть включена в поток битов, чтобы декодер мог должным образом восстановить требуемую информацию. Следовательно, информация внутриконтурного фильтра от SAO и ALF предоставляется энтропийному кодеру 122 для включения в поток битов. На фиг. 1А DF 130 сначала применяется к восстановленному видео. Затем SAO 131 применяется к видео, обработанному DF; и ALF 132 применяется к видео, обработанному SAO. Однако порядок обработки между DF, SAO и ALF может быть изменен.
[0006] Соответствующий декодер для кодера фиг. 1А показан на фиг. 1В. Поток видеобитов декодируется видеодекодером 142 для восстановления преобразованных и квантованных остатков, информации SAO/ALF и другой системной информации. На стороне декодера вместо ME/МС выполняется только компенсация движения (МС) 113. Процесс декодирования аналогичен циклу восстановления на стороне кодера. Восстановленные преобразованные и квантованные остатки, информация SAO/ALF и другая системная информация используются для восстановления видеоданных. Восстановленное видео далее обрабатывается DF 130, SAO 131 и ALF 132 для создания окончательного улучшенного декодированного видео.
[0007] Процесс кодирования в HEVC применяется в соответствии с наибольшей единицей кодирования (LCU). LCU адаптивно разбивается на блоки кодирования с помощью квадродерева. В каждом листовом CU DF выполняется для каждого блока 8×8, а в тестовой модели HEVC версии 4.0 (НМ-4.0) DF применяется к границам блоков 8x8. Для каждого блока 8×8 сначала применяется горизонтальная фильтрация по вертикальным границам блоков, а затем применяется вертикальная фильтрация по горизонтальным границам блоков. Во время обработки границы блока яркости четыре пикселя с каждой стороны участвуют в выводе параметров фильтра, и до трех пикселей на каждой стороне могут быть изменены после фильтрации. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели (то есть пиксели до DF) используются для вывода параметров фильтра, а также используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков нефильтрованные восстановленные пиксели (то есть пиксели до DF) используются для вывода параметров фильтра, а промежуточные пиксели DF (то есть пиксели после горизонтальной фильтрации) используются для фильтрации. Для обработки DF границы блока цветности два пикселя с каждой стороны участвуют в выводе параметра фильтра, и после фильтрации изменяется не более одного пикселя на каждой стороне. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации, нефильтрованные восстановленные пиксели (то есть пиксели до DF) используются для вывода параметров фильтра, а промежуточные пиксели DF (то есть пиксели после горизонтальной фильтрации) используются для фильтрации. Для DF-обработки границы блока цветности два пикселя с каждой стороны участвуют в выводе параметра фильтра, и после фильтрации изменяется не более одного пикселя на каждой стороне. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации. нефильтрованные восстановленные пиксели (то есть пиксели до DF) используются для вывода параметров фильтра, а промежуточные пиксели DF (то есть пиксели после горизонтальной фильтрации) используются для фильтрации. Для DF-обработки границы блока цветности два пикселя с каждой стороны участвуют в выводе параметра фильтра, и после фильтрации изменяется не более одного пикселя на каждой стороне. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации, и промежуточные пиксели DF (то есть пиксели после горизонтальной фильтрации) используются для фильтрации. Для обработки DF границы блока цветности два пикселя с каждой стороны участвуют в выводе параметра фильтра, и после фильтрации изменяется не более одного пикселя на каждой стороне. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации, и промежуточные пиксели DF (то есть пиксели после горизонтальной фильтрации) используются для фильтрации. Для обработки DF границы блока цветности два пикселя с каждой стороны участвуют в выводе параметра фильтра, и после фильтрации изменяется не более одного пикселя на каждой стороне. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации, два пикселя с каждой стороны участвуют в выводе параметров фильтра, и не более одного пикселя с каждой стороны изменяется после фильтрации. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации, два пикселя с каждой стороны участвуют в выводе параметров фильтра, и не более одного пикселя с каждой стороны изменяется после фильтрации. Для горизонтальной фильтрации через вертикальные границы блоков нефильтрованные восстановленные пиксели используются для вывода параметров фильтра и используются в качестве исходных пикселей для фильтрации. Для вертикальной фильтрации через горизонтальные границы блоков промежуточные пиксели, обработанные DF (то есть пиксели после горизонтальной фильтрации), используются для вывода параметров фильтра, а также используются в качестве исходного пикселя для фильтрации.
[0008] Адаптивное смещение отчетов (SAO) 131 также принято в НМ-4.0, как показано на фиг. 1А. SAO можно рассматривать как частный случай фильтрации, когда обработка применяется только к одному пикселю. В SAO классификация пикселей сначала выполняется для классификации пикселей по различным группам (также называемым категориями или классами). Классификация пикселей для каждого пикселя основана на окне 3×3. После классификации всех пикселей в изображении или области одно смещение выводится и передается для каждой группы пикселей. ALF не поддерживается HEVC (высокоэффективное кодирование видео). Тем не менее, ALF рассматривается в качестве нового стандарта кодирования видео под названием VVC (Универсальное кодирование видео). Коэффициенты фильтра ALF выводятся путем минимизации суммы искажений между отфильтрованными отсчетами и исходными отсчетами. Более того, полученные коэффициенты фильтра сообщаются в потоке битов с помощью флагов управления включением/выключением. В одном срезе можно использовать несколько фильтров, и выбор фильтра включает неявный выбор с помощью классификации на основе блоков и явный выбор с помощью сигнального синтаксиса.
0
3
0
3
0
2
0
2
0
1
0
1
0
0
[0009] В протоколе НМ-4.0 DF применяется к границам блоков 8×8, чтобы уменьшить видимость артефактов на границах блоков. На фиг. 2 показана вертикальная граница 212 в блоке 210 и горизонтальная граница 222 в блоке 220, где частично показаны блоки 8×8 (4×8 или 8×4). На одном изображении все вертикальные границы могут быть отфильтрованы по горизонтали параллельно, а затем все горизонтальные границы могут быть отфильтрованы по вертикали параллельно. Во время обработки границы яркости четыре пикселя с каждой стороны (р-р, q-q) участвуют в выводе параметра фильтра, и не более трех пикселей каждой стороны (р-р, q-q) могут быть изменены после фильтрации. Для горизонтального DF яркости пиксели до DF (то есть пиксели перед горизонтальным DF) используются для получения параметров фильтра и фильтрации. Для вертикального DF яркости пиксели pre-DF используются для получения параметров фильтра, а пиксели H-DF (то есть пикселей после горизонтального DF) используются для фильтрации. Во время обработки границы цветности два пикселя с каждой стороны (p-p, q-q) участвуют в выводе параметра фильтра, и не более одного пикселя каждой стороны (р, q) изменяется после фильтрации. Для горизонтального DF цветности пиксели pre-DF используются для получения параметров фильтра и фильтрации. Для вертикального DF цветности пиксели H-DF используются для определения параметров фильтра и фильтрации.
[0010] В протоколе НМ-4.0 SAO применяется к компонентам яркости и цветности, и каждый из компонентов яркости обрабатывается независимо. SAO может разделить одно изображение на несколько областей, выровненных по LCU, и каждая область может выбрать один тип SAO из двух типов смещения полосы (ВО), четырех типов смещения края (ЕО) и без обработки (OFF). Для каждого пикселя, который должен быть обработан (также называемый подлежащим фильтрации) пиксель, ВО использует интенсивность пикселя, чтобы классифицировать пиксель в полосу. Диапазон интенсивности пикселей равномерно разделен на 32 полосы, как показано на фиг. 3. После классификации пикселей выводится одно смещение для всех пикселей каждой полосы, и смещения центральных 16 полос или внешних 16 полос выбираются и кодируются. Что касается ЕО, он использует два соседних пикселя, который должны быть обработаны, для классификации пикселя в категорию. Четыре типа ЕО соответствуют 0°, 90°, 135°, и 45° как показано на фиг. 4. Подобно ВО, одно смещение выводится для всех пикселей каждой категории, кроме категории 0, где Категория 0 принудительно использует нулевое смещение. В таблице 1 показана классификация пикселей ЕО, где «С» обозначает пиксель, который необходимо классифицировать.
[0011] В НМ-4.0 ALF имеет два варианта формы фильтра, cross11×5 (510) и snowflake5×5 (520), для яркости и цветности, как показано на фиг. 5. На каждом изображении компонент яркости может выбирать одну форму, а компоненты цветности можно выбрать одну форму. К каждому изображению можно применить до 16 фильтров яркости и не более одного фильтра цветности. Чтобы разрешить локализацию ALF, есть два режима для пикселей яркости для выбора фильтров. Один из них - это режим адаптации на основе области (RA), а другой - режим адаптации на основе блоков (ВА). В режиме RA одно изображение яркости делится на 16 областей. Как только размер изображения известен, определяются и фиксируются 16 областей. Регионы можно объединять, и после объединения для каждого региона используется один фильтр. Режим ВА использует активность кромки и направление как свойство для каждого блока 4×4. Для вычисления свойства блока 4×4 (610) требуется 5×5 пикселей (612), как показано на фиг. 6. После вычисления свойств блоков 4×4 они классифицируются по 15 категориям. Категории можно объединять, и после объединения для каждой категории используется один фильтр. Что касается компонентов цветности, поскольку они относительно плоские, локальная адаптация не используется, и два компонента изображения совместно используют один фильтр.
[0012] В развивающемся стандарте VVC (универсальное кодирование видео) был раскрыт более гибкий ALF для повышения производительности. Для классификации на основе блоков одно изображение разделяется на несколько блоков яркости 4×4, и для каждого блока яркости 4×4 выводится один индекс группы. Индекс группы используется для выбора фильтра яркости из набора фильтров. Чтобы уменьшить требуемые данные для коэффициентов фильтра, коэффициенты фильтра могут быть повернуты на основе характеристик одного блока 4×4, так что некоторые коэффициенты не нужно передавать. В VVC до 25 групп могут использоваться для ALF одного набора фильтров яркости, который связан с 5 уровнями активности на основе величины градиентов и 5 направлений на основе направления градиентов. Разные группы могут использовать один фильтр, причем несколько групп могут быть объединены в одну объединенную группу, и одна объединенная группа имеет один фильтр.
[0013] Когда обработка на основе LCU используется для DF, SAO и ALF, весь процесс декодирования может выполняться LCU за LCU в растровом сканировании с конвейерной обработкой LCU для параллельной обработки нескольких LCU. В этом случае строковые буферы требуются для DF, SAO и ALF, поскольку для обработки одной строки LCU требуются пиксели из указанной выше строки. Если используются внешние линейные буферы (например, DRAM), пропускная способность внешней памяти и энергопотребление увеличиваются; если используются линейные буферы на кристалле (например, SRAM), площадь кристалла будет увеличена. Следовательно, хотя строчные буферы уже намного меньше буферов изображения, все же желательно уменьшить строчные буферы.
[0014] На фиг. 7 поясняется количество буферов линии яркости, необходимых для DF, SAO и ALF с декодированием на основе LCU. Учитывая текущую LCU (нижняя граница 710 H. LCU и левая граница 712 V. LCU), строки AJ сначала обрабатываются горизонтальным DF, а затем вертикальным DF. Затем предлагается отложить горизонтальный DF для строк KN до тех пор, пока не станет доступным нижний LCU, чтобы избежать строковых буферов пикселей H-DF для вертикального DF для строк KN, которые не могут быть обработаны в этот момент, потому что нижний LCU еще не доступен, и для DF требуется четыре пикселя до DF и четыре пикселя H-DF на каждой стороне горизонтальной границы для получения параметров фильтра и фильтрации, соответственно, как показано 4-пиксельной полосой (720). Следовательно, четыре строки (KN) пикселей до DF должны быть сохранены для DF. Затем SAO будет применен к пикселям выходного сигнала DF. Поскольку вертикальный DF для линий KN не изменяет линию K, горизонтальный DF может быть дополнительно применен к линии K для SAO для технологической линии J, как показано квадратом 3×3 (730). Обратите внимание, что пиксели H-DF строки K не будут храниться в строковом буфере и должны быть сгенерированы снова, когда приходит нижний LCU, что не является проблемой для оборудования. После того, как SAO обработает строки AJ, можно вычислить свойство блока 4×4, как показано квадратом 4×4 (740). Обозначена опорная площадка 5×5 (742). В этот момент ALF может обрабатывать строки АН. После этого дальнейшая обработка текущей LCU невозможна до тех пор, пока не появится нижняя LCU. Когда приходит нижняя LCU, строки KP сначала обрабатываются DF, а затем строки KP обрабатываются SAO. Когда SAO применяется к линии K, требуется линия J. Следовательно, одна строка (J) пикселей выходного сигнала DF должна быть сохранена для SAO. Далее рассчитываются свойства блока 4×4 для линий IP. Наконец, строки IP могут быть отфильтрованы с помощью ALF. Когда линия I фильтруется с помощью ALF, для нее требуются линии GK, как показано формой (750) фильтра и указанием центра фильтра (752). Однако для вычисления блочных свойств линий IJ по-прежнему нужны линии FJ. Следовательно, пять строк (FJ) выходных пикселей SAO должны быть сохранены для ALF. В общей сложности для всей внутриконтурной фильтрации требуется 10 буферов линии яркости. Когда рассматривается вся система декодирования, поскольку прогнозирование внутренней яркости уже хранит одну строку (N) пикселей до DF, этот буфер строк яркости может использоваться совместно. Более того, если буфер строки индекса фильтра может использоваться для хранения выбранных фильтров режима ВА для строк GJ, нет необходимости повторно вычислять свойства блока во время фильтрации строк IJ. Таким образом, одна строка (F) выходных пикселей SAO может быть сохранена для ALF. Буфер строки индекса фильтра требует только 4 бита на блок 4×4, что составляет всего около 10% по сравнению с буфером строки пикселей.
[0015] На фиг. 8 поясняется количество буферов линии цветности, необходимых для DF, SAO и ALF с декодированием на основе LCU. Учитывая текущую LCU (границу 810 Н. LCU и границу 812 V. LCU), строки AM сначала обрабатываются горизонтальным DF, а затем строки AL обрабатываются вертикальным DF. Затем предлагается задержать горизонтальный DF для строк N до прихода нижнего LCU, чтобы совместно использовать строковый буфер пикселей до DF строки N с внутренним предсказанием цветности. Что касается вертикального DF для линий MN, он должен ждать нижнего LCU. Напоминаем, что функция цветности DF считывает два пикселя H-DF и может записывать по одному пикселю с каждой стороны границы, как показано двухпиксельной полосой. Следовательно, одна строка (М) пикселей H-DF и одна строка (N) пикселей до DF должна быть сохранена для DF. Затем SAO будет применен к пикселям выходного сигнала DF. Поскольку вертикальный DF для строк MN не изменяет линию М, пиксели H-DF строки М также являются пикселями выходного сигнала DF строки М, и SAO может обрабатывать строку L, как показано квадратом 3×3 (820). После того, как SAO обработает строки AL, ALF может обработать строки AJ. После этого дальнейшая обработка текущей LCU невозможна до тех пор, пока не появится нижняя LCU. Когда приходит нижняя LCU, строки NP сначала обрабатываются горизонтальным DF, а затем строки MP обрабатываются вертикальным DF и SAO. Когда SAO обрабатывает строку М, требуется строка L. Следовательно, одна строка (L) выходных пикселей DF должна быть сохранена для SAO. Наконец, строки KP могут быть отфильтрованы с помощью ALF. Когда линия К фильтруется, для нее требуются линии IM, как показано формой фильтра (820) с центром фильтра (822). Следовательно, четыре строки (IL) выходных пикселей SAO должны быть сохранены для ALF. В общей сложности для всей циклической фильтрации требуется семь буферов линий цветности
[0016] Виртуальные границы для уменьшения использования строкового буфера.
[0017] Чтобы устранить требования к строковому буферу SAO и ALF, мы вводим концепцию виртуальной границы (VB). Как показано на фиг. 9А, VB представляют собой смещенные вверх горизонтальные границы LCU на N пикселей. На фиг. 9В VB - это смещенные влево вертикальные границы LCU на N пикселей. Для каждого LCU, SAO и ALF могут обрабатывать пиксели выше VB до прихода нижнего LCU, но не могут обрабатывать пиксели ниже VB до прихода нижнего LCU, что вызвано DF. С учетом DF в НМ-4.0 пространство между предложенным VB и горизонтальной границей LCU установлено как три пикселя для яркости (т.е. N=3 на фиг. 9А и 9В) и один пиксель для цветности (то есть. N=1 на фиг. 9А и 9В).
[0018] На 11-м заседании JVET ALF с адаптацией на основе блоков 4×4 принимается в проекте стандарта кодирования видео следующего поколения, универсального кодирования видео (VVC). Для одного блока 4×4 требуется одно окно 8×8 для вычисления свойства блока, и след фильтра составляет один алмазный фильтр 7×7 для яркости и один алмазный фильтр 5×5 для цветности. Следовательно, требуемый строковый буфер без виртуальных границ - это дополнительный буфер строк яркости 7 и буфер строк сигнала цветности 3 поверх буфера строк DF с 4 яркостью и буфера строк DF с двумя сигналами цветности. Концепция виртуальных границ все еще может применяться в VVC для уменьшения использования строчного буфера. В приведенном выше описании наибольшая единица кодирования (LCU) переименована в единицу дерева кодирования (CTU) в VVC. Тем не менее, предлагаются некоторые модификации, чтобы соответствовать особенностям существующей конструкции ALF.
[0019] Нелинейный ALF.
[0020] В VTM3.0 (VVC (Versatile Video Coding) Test Model Ver. 3.0) процесс фильтрации адаптивного контурного фильтра выполняется следующим образом:
[0021] В приведенном выше уравнении выборки являются входными выборками, являются отфильтрованными выходными выборками (т. Е. Результатом фильтрации) и обозначают коэффициенты фильтра. Поскольку ALF применяется к восстановленным выборкам, выборки соответствуют восстановленным выборкам. Центральный восстановленный пиксель в центральном месте обработки ALF соответствует (i, j)=(0, 0), то есть I (i, j). На практике в VTM3.0 это реализовано с использованием целочисленной арифметики для вычисления точности с фиксированной точкой: I(x+i, y+j) O(x, y) w(i, j) I(x+i, y+j).
[0022] В приведенном выше уравнении L обозначает длину фильтра, а где - коэффициенты фильтра с точностью до фиксированной точки. w(i, j)
[0023] Уравнение (1) можно переформулировать без влияния на эффективность кодирования в следующем выражении:
(i, j)≠(0, 0)
[0024] В приведенном выше уравнении используются те же коэффициенты фильтра, что и в уравнении (w(i, j)1), за исключением которого в уравнении (w(0, 0),3), в то время как он равен) в уравнении ((1-∑w(i, j)1).
[0025] Используя приведенную выше формулу фильтра уравнения (3), мы можем легко ввести нелинейность, чтобы сделать ALF более эффективным, используя простую функцию отсечения, чтобы уменьшить влияние значений соседних выборок I(х+i, y+j), когда они сильно отличаются от фильтруемого текущего значения выборки I(х, у).
[0026] В JVET-M0385 (J. Taquet и др., «Нелинейный адаптивный контурный фильтр», в Объединенной группе исследования видео (JVET) ИК 16 WP 3 МСЭ-Т и JTC 1/SC 29/WG ISO/IEC) 11, 13-е собрание: Марракеш, Массачусетс, 9-18 января 2019 г.,), раскрыт нелинейный ALF. Он вводит адаптивную операцию ограничения значений входных выборок адаптивного контурного фильтра в тестовой программе VTM3.0. Целью этого адаптивного ограничения является введение некоторых нелинейностей для ограничения разницы между значением входной выборки, подлежащей фильтрации, и значениями других соседних входных выборок фильтра.
[0027] Согласно документу JVET-M0385, работа фильтра ALF изменена следующим образом:
(i, j)≠(0, 0)
[0028] В приведенном выше уравнении О'(х, у) соответствует выходу модифицированного фильтра ALF, I (х, у) соответствует отсчету перед ALF, является функцией отсечения и параметрами отсечения, которые зависят от коэффициента фильтра (i, j). Кодировщик выполняет оптимизацию, чтобы найти лучшее k(i, j). Как показано в уравнении (4), функция отсечения применяется к разности, которая соответствует разнице между нецентральным восстановленным пикселем (то есть I(х+i, у+j), (i, j)≠(0, 0)) И центральным восстановленным пикселем ALF (то есть I(х, у)). Согласно уравнению (4) разность ограничивается функцией ограничения с параметрами ограничения. В этом раскрытии термин обозначается как сокращенное различие. Другими словами, модифицированный выходной сигнал ALF включает взвешенную сумму ограниченных разностей (то есть ∑ w(i, j). K(I(х+i, y+j)-I(x, y), k(i, j)). Как показано в уравнении (4), взвешенные суммы разницы между нецентральным местоположением фильтра и центральным восстановленным пикселем, модифицируются на новый член, K(I(x+i, y+j)-I(x, y), k(i, j)). Термин (I(х+i, y+j)-I(х, у)) упоминается как исходная разность между нецентральным местоположением фильтра и центральным восстановленным пикселем.
[0029] В реализации в соответствии с JVET-M0385 параметры ограничения задаются для каждого фильтра ALF, при этом одно значение ограничения передается на каждый коэффициент фильтра. Это означает, что 12 значений ограничения передаются в потоке битов для каждого фильтра яркости и 6 значений ограничения для фильтра цветности.
[0030] Чтобы ограничить стоимость сигнализации и сложность кодера, значения ограничения ограничены небольшим набором возможных значений в JVET-M0385. Кроме того, для промежуточных срезов используются только 4 возможных значения, а для внутренних срезов - 3 возможных значения.
[0031] Поскольку дисперсия локальных разностей часто выше для яркости, чем для цветности, для фильтров яркости и цветности используются два разных набора. Кроме того, в каждый набор включено максимальное значение выборки, поэтому отсечение можно отключить, если в этом нет необходимости.
[0032] Предлагаемые наборы значений ограничения в соответствии с JVET-M0385 представлены в таблице 2.
[0033] Значения ограничения кодируются в заголовке слайса с использованием кодирования Golomba, соответствующего индексу значения ограничения в наборе.
[0034] Значения ограничения кодируются в заголовке слайса с использованием k-го экспоненциального кода Golomba, соответствующего индексу значения ограничения в наборе.
[0035] Более того, только когда нецентральный коэффициент отличен от нуля, передаются соответствующие значения ограничения. Другими словами, перед декодированием значения ограничения сначала должны быть восстановлены коэффициенты фильтра. Таблица синтаксиса представлена далее.
[0036] Уменьшение требований к буферу для ALF с использованием виртуальной границы
[0037] В JVET-M0301 ((источник информации A. Kotra, et al., "Non-CE: Loop filter line buffer reduction", in Joint Video Exploration Team (JVET) в ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, Document: JVET-M0301)) раскрывается механизм уменьшения требований к буферу линии ALF (адаптивный контурный фильтр). В статье используется концепция виртуальных границ (VB), которые представляют собой смещенные вверх горизонтальные границы CTU на «N» выборок. Модифицированная классификация блоков ALF и модифицированная фильтрация ALF применяются к выборкам, которые находятся рядом с виртуальной границей, чтобы уменьшить количество требуемых строковых буферов. Модифицированная классификация блоков ALF использует только выборки, которые находятся выше VB, для классификации данного блока 4×4, который выше VB. Аналогично для классификации блока 4×4 ниже VB, используются образцы, принадлежащие строкам ниже VB. Модифицированная фильтрация ALF использует комбинацию условного отключения и усеченных версий исходного фильтра ALF.
[0038] Усеченная фильтрация ALF на виртуальных границах.
[0039] Усеченная версия фильтров используется для фильтрации отсчетов яркости, принадлежащих линиям, близким к виртуальным границам. Эти усеченные версии фильтров могут использоваться как для N=4, так и для N=6 случаев. Точно так же усеченная версия фильтров также используется для фильтрации ALF цветности.
[0040] В дополнение к усеченной версии фильтрации ALF также рассматривается условное отключение фильтрации ALF.
[0041] Если абсолютная сумма дополненных коэффициентов больше порогового значения (Т), умноженного на абсолютную сумму незаполненных коэффициентов, то фильтр отключается для этих соответствующих строк. Фиг. 10A-10F иллюстрируют примеры обработки модифицированного фильтра ALF яркости на виртуальной границе. Фиг. 10А иллюстрирует модифицированный ALF для фильтрации линии М. Фиг. 10В иллюстрирует модифицированный ALF для фильтрации линии Н. На фиг. 10С показан модифицированный ALF для фильтрации линии L. Фиг. 10D иллюстрирует модифицированный ALF для фильтрации линии I. Фиг. 10Е иллюстрирует модифицированный ALF для фильтрации линии J. Фиг. 10F иллюстрирует модифицированный ALF для фильтрации линии K.
[0042] Например, для строк М и Н, фильтрация ALF отключена для строк М и Н, если (2*abs(с0)>(T*(2*(abs(c1)+abs(с2)+abs(c3)+abs(c4)+abs(c5)+abs(c6)+abs(c7)+abs(c8)+abs(c9)+abs(c10)+abs(c11))+abs(c12))),, то фильтрация ALF отключается для строк М и Н.
[0043] Аналогично, для строк L и I, фильтрация ALF отключена для строк L и I если (2*(abs(с0)+abs(c1)+abs(с2)+abs(с3))>(Т*(2*(abs(c4)+abs(c5)+abs(c6)+abs(c7)+abs(c8)+abs(c9)+abs(c10)+abs(c11))+abs(c12))), то фильтрация ALF отключается для строк L и I.
[0044] Аналогично, для строк J и K, фильтрация ALF отключена для строк J и K, если (2*(abs(с0)+abs(c1)+abs(с2)+abs(с3))>(Т*(2*(abs(c4)+abs(c5)+abs(c6)+abs(c7)+abs(c8)+abs(c9)+abs(c10)+abs(c11))+abs(c12)), то фильтрация ALF отключается для строк J и K.
[0045] В приведенном выше примере Т обычно является порогом, который может принимать дробные значения в диапазоне от 0 до 1. Например, значение Т может быть 0,5, 0,6 или 0,7.
[0046] Фиг. 11A-11D иллюстрируют примеры обработки модифицированного фильтра ALF цветности на виртуальной границе. Фиг. 11А иллюстрирует модифицированный ALF для фильтрации строки N. На фиг. 11В показан модифицированный ALF для фильтрации линии K. Фиг. 11С иллюстрирует модифицированный ALF для фильтрации линии М и фиг. 11D иллюстрирует модифицированный ALF для фильтрации линии L.
[0047] Для строк N и K фильтрация ALF отключена для строк N и K, если (2*abs(с0)>(Т*(2*(abs(c1)+abs(с2)+abs(c3)+abs(c4)+abs(c5))+abs(c6)))), то фильтрация ALF отключается для строк N и K.
[0048] Для строк М и L,: если ((2*(abs(с0)+abs(c1)+abs(с2)+abs(с3))>(Т*(2*(abs(c4)+abs(c5))+abs(c6)))), то фильтрация ALF отключается для строк М и L, где функция abs(х) определяется следующим образом
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ.
[0049] Предлагаются способ и устройство для обработки восстановленного видео с помощью адаптивного контурного фильтра (ALF). Согласно этому способу принимаются восстановленные пиксели, где восстановленные пиксели составляют текущий блок. Одно или несколько значений ограничения для обработки ALF определяются в зависимости от битовой глубины центрального восстановленного пикселя в центральном местоположении обработки ALF. Текущий выходной сигнал ALF выводится для текущего блока, где текущий вывод ALF содержит взвешенную сумму ограниченных разностей исходных разностей, и каждое из исходных разностей вычисляется между первым восстановленным пикселем в нецентральном месте фильтра и восстановленным центром пикселя, и каждое из исходных разностей обрезается согласно соответствующему значению ограничения, чтобы сформировать одну ограниченную разность.
[0050] В одном варианте осуществления изобретения разные наборы значений ограничения используются для разной битовой глубины. В другом варианте осуществления изобретения разные наборы значений ограничения используются для режимов внутреннего и внешнего кодирования. В еще одном варианте осуществления изобретения разные наборы значений ограничения используются для восстановленных пикселей яркости и восстановленных пикселей цветности. В одном варианте осуществления восстановленные пиксели соответствуют пикселям яркости. В другом варианте осуществления восстановленные пиксели соответствуют пикселям цветности. Значения ограничения могут передаваться в срезе, фрагменте или группе фрагментов.
[0051] В одном варианте осуществления первые значения ограничения для первой битовой глубины выводятся из вторых значений ограничения для второй битовой глубины с помощью по меньшей мере одной операции, соответствующей сдвигу влево или вправо первых значений ограничения на N бит, а N - положительное целое число.
[0052] В одном варианте осуществления обработка ALF применяется к восстановленным пикселям на стороне кодера. В другом варианте осуществления обработка ALF применяется к восстановленным пикселям на стороне декодера.
[0053] Предлагаются другой способ и устройство для обработки восстановленного видео с помощью адаптивного контурного фильтра (ALF). Согласно этому способу одно или несколько значений ограничения определяются для обработки ALF, при этом целевое значение ограничения всегда передается на стороне кодера или анализируется на стороне декодера, даже если целевое значение ограничения равно нулю.
[0054] Предлагается еще один способ и устройство для обработки восстановленного видео с помощью адаптивного контурного фильтра (ALF). Согласно этому способу одно или несколько значений ограничения определяются для обработки ALF, где упомянутое одно или несколько значений ограничения кодируются на стороне кодера или декодируются на стороне декодера с использованием кода фиксированной длины. В одном варианте осуществления код фиксированной длины соответствует двух-битовым кодам. В другом варианте осуществления код фиксированной длины соответствует усеченным унарным кодам.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0055] Фиг. 1А иллюстрирует примерную систему адаптивного кодирования видео с внутренним/внешним кодированием, включающую внутрицикловую обработку DF, SAO HALF.
[0056] Фиг. 1В иллюстрирует примерную систему адаптивного декодирования видео с внутренним/внешним декодированием, включающую внутрицикловую обработку DF, SAO и ALF.
[0057] Фиг. 2 иллюстрирует пример процесса фильтра удаления блочности, применяемого к границам блоков 8×8 для уменьшения видимости артефактов на границах блоков, где показаны вертикальная граница и горизонтальная граница.
[0058] Фиг. 3 иллюстрирует пример смещения полосы (ВО), где диапазон интенсивности пикселей равномерно разделен на 32 полосы и значение смещения определяется для каждой полосы.
[0059] На фиг. 4 показаны окна смещения края (ЕО), соответствующие 0°, 90°, 135°, и 45° которые используется в стандарте HEVC (высокоэффективное кодирование видео) для определения категории текущего пикселя для применения адаптивного смещения образца (SAO).
[0060] Фиг. 5 иллюстрирует пример адаптивного контурного фильтра (ALF), где ALF имеет два варианта формы фильтра, соответствующие cross11×5 и snowflake5×5, для яркости и цветности.
[0061] Фиг. 6 иллюстрирует пример вычисления краевых свойств блока 4×4 в режиме адаптации блока (ВА) для адаптивного контурного фильтра (ALF).
[0062] Фиг. 7 иллюстрирует пример количества буферов линии яркости, необходимых для DF, SAO и ALF с декодированием на основе LCU.
[0063] Фиг. 8 иллюстрирует пример количества буферов строки цветности, необходимых для DF, SAO и ALF с декодированием на основе LCU.
[0064] Фиг. 9А иллюстрирует пример VB посредством сдвига вверх горизонтальных границ LCU на N пикселей.
[0065] Фиг. 9В иллюстрирует пример VB посредством сдвига влево вертикальных границ LCU на N пикселей.
[0066] Фиг. 10A-10F иллюстрируют примеры обработки модифицированного фильтра ALF яркости на виртуальной границе, где фиг. 10А иллюстрирует модифицированный ALF для фильтрации линии М. Фиг. 10В иллюстрирует модифицированный ALF для фильтрации линии Н. На фиг. 10С показан модифицированный ALF для фильтрации линии L; Фиг. 10D иллюстрирует модифицированный ALF для фильтрации линии I. Фиг. 10Е иллюстрирует модифицированный ALF для фильтрации линии J, и фиг. 10F иллюстрирует модифицированный ALF для фильтрации линии K.
[0067] Фиг. 11A-11D иллюстрируют примеры обработки модифицированного фильтра ALF цветности на виртуальной границе, где фиг. 11А иллюстрирует модифицированный ALF для фильтрации линии N. На фиг. 11В показан модифицированный ALF для фильтрации линии K; Фиг. 11С иллюстрирует модифицированный ALF для фильтрации линии М, и фиг. 11D иллюстрирует модифицированный ALF для фильтрации линии L.
[0068] На фиг. 12 показаны примеры того, что образцы с одинаковым цветом используют одинаковые значения ограничения для фильтра 7×7 для компонента яркости и фильтра 5x5 для компонента цветности.
[0069] Фиг. 13 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где значения ограничения для обработки ALF зависят от глубины в битах центрального восстановленного пикселя, который подвергается фильтрации.
[0070] Фиг. 14 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где целевое значение ограничения всегда передается на стороне кодера или анализируется на стороне декодера, даже если целевое значение ограничения равно нулю.
[0071] Фиг. 15 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где значения ограничения кодируются на стороне кодера или декодируются на стороне декодера с использованием кода фиксированной длины.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0072] Следующее описание представляет собой наиболее предпочтительный вариант осуществления изобретения. Это описание сделано с целью иллюстрации общих принципов изобретения и не должно восприниматься в ограничительном смысле. Объем изобретения лучше всего определяется со ссылкой на прилагаемую формулу изобретения.
[0073] Способ 1.
[0074] В JVET-M0385 предлагается нелинейный ALF. Он вводит адаптивную операцию ограничения в процессе фильтрации адаптивного контурного фильтра в VTM3.0. Предлагаются четыре различных набора значений ограничения, и значения ограничения кодируются в заголовке среза с использованием индекса значения ограничения в наборе. Все значения ограничения четырех наборов предварительно определены, и выбор набора значений ограничения основан на текущем кодированном режиме (то есть Intra или Inter) и текущем кодированном цветовом компоненте (то есть яркости или цветности). Согласно этому способу предлагается набор значений адаптивного ограничения на основе битовой глубины текущих значений выборки, при этом такие текущие значения выборки соответствуют центрам восстановленных пикселей в центральных точках обработки ALF. Например, существует четыре различных набора значений ограничения, и выбор каждого набора может быть основан на текущем кодированном режиме и текущем кодированном компоненте. Например, когда битовая глубина текущей выборки равна 10 битам, четыре значения набора ограничения устанавливаются как {10, 102, 1024}, {6, 32, 181, 1024}, {4, 24, 1024} и {4, 25, 161, 1024}. Когда битовая глубина текущего отсчета равна 8 битам, все значения набора отсечения будут сдвинуты вправо на 2, то есть {10>>2, 102>>2, 1024>>2}, {6>>2, 32>>2, 181>>2, 1024>>2}, {4>>2, 24>>2, 1024>>2} и {4>>2, 25>>2, 161>>2, 1024>>2}. Когда битовая глубина текущего отсчета равна 12 битам, все значения набора отсечения будут сдвинуты влево на 2, то есть {10<<2, 102<<2, 1024<<2}, {6<<2, 32<<2, 181<<2, 1024<<2}, {4<<2, 24<<2, 1024<<2}, и {4<<2, 25<<2, 161<<2, 1024<<2}.
[0075] В другом варианте осуществления доступное количество значений ограничения может отличаться в зависимости от битовой глубины текущей выборки. Например, если битовая глубина текущего отсчета равна 10 битам, четыре набора значений отсечения разработаны как {10, 102, 1024}, {6, 32, 181, 1024}, {4, 24, 1024} и {4, 25, 161, 1024}. Однако, если битовая глубина текущего отсчета равна 12 битам, можно использовать только значение отсечения, превышающее 100. Если битовая глубина текущего отсчета равна 8 битам, можно использовать только значение отсечения меньше 100. О выборе индекса можно сигнализировать с помощью коэффициентов фильтра ALF в заголовке слайса, заголовке группы элементов мозаичного изображения или наборе параметров адаптации.
[0076] Способ 2.
[0077] В JVET-M0385, чтобы сигнализировать о значениях ограничения, будут дополнительные 12 параметров для компонента яркости и 6 параметров для компонентов цветности в срезе, тайле или группе тайлов, потому что след фильтра представляет собой симметричный ромбовидный фильтр 7×7 для компонента яркости и симметричный алмазный фильтр 5×5 для компонентов цветности.
[0078] Согласно этому способу количество сигнализируемых значений ограничения уменьшается. В одном варианте осуществления, чтобы дополнительно уменьшить количество сигнализируемых значений ограничения, выборки в фильтре ALF с одинаковым расстоянием от центрального положения могут совместно использовать одни и те же значения ограничения. Таким образом, необходимо сигнализировать только 3 дополнительных параметра для компонента яркости и 2 дополнительных параметра для компонентов цветности. Например, как показано на фиг. 12, образцы с одинаковым цветом используют одинаковые значения ограничения для фильтра 1210 7×7 для компонента яркости и фильтра 1220 5×5 для компонента цветности. В другом варианте осуществления необходимо сигнализировать только одно значение ограничения, а другие значения ограничения с разными расстояниями могут быть получены путем добавления смещения или умножения соотношения, где смещение или соотношение определяется путем сравнения значения ограничения на другом расстоянии с сообщенным значением ограничения. Смещение или соотношение могут быть предопределенным ненулевым значением, и значение зависит от QP, разрешения изображения, разрядности выборки, или смещение или соотношение могут быть переданы в сигнале среза, фрагмента, группы фрагментов или набора параметров адаптации.
[0079] Вышеупомянутые способы также могут применяться для получения значения ограничения фильтра ALF цветности. В другом варианте осуществления для компонента цветности набор значений ограничения может быть получен на основе значения ограничения компонента яркости. Набор ограничения цветности может напрямую повторно использовать набор ограничения компонента яркости или вносить некоторые изменения после повторного использования. Например, предварительно определенное ненулевое смещение или соотношение можно использовать для уточнения значения ограничения, установленного для цветности. Значения ограничения цветности могут зависеть от QP, разрешения изображения или разрядности выборки для определения смещения или со отношения. Кроме того, о смещении или соотношении можно напрямую сигнализировать в срезе, мозаичном элементе, группе мозаичного изображения или наборе параметров адаптации.
[0080] В другом варианте осуществления технология отсечения также может использоваться на выходе ALF-фильтрации и текущей выборке. Фильтр ALF модифицируется следующим образом:
[0081] В приведенном выше уравнении - функция ограничения и параметры ограничения, которые зависят от коэффициента фильтра. Кодер выполняет оптимизацию, чтобы найти лучшее значение M(d, b)=min(b, max(-b, d))m(i, j)m(i, j).
[0082] В параметрах ограничения m(i, j)могут применяться все изменения значения ограничения k(i, j), как описано выше.
[0083] В другом варианте осуществления технология ограничения может использоваться только на выходе ALF-фильтра и текущей выборке. Фильтр ALF модифицируется следующим образом:
[0084] В параметрах ограничения m(i, j) могут применяться все изменения значения ограничения k(i, j), как описано выше.
[0085] Способ 3.
[0086] В JVET-M0385, соответствующие значения ограничения передаются только когда нецентральный коэффициент отличен от нуля. Другими словами, перед декодированием значения ограничения сначала должны быть восстановлены коэффициенты фильтра. Однако это вызовет некоторую задержку или проблему с пропускной способностью синтаксического анализа. Для решения этой проблемы предлагается следующий способ. В одном варианте осуществления всегда передаются соответствующие значения ограничения, даже если нецентральный коэффициент равен нулю. В другом варианте осуществления соответствующие значения ограничения (то есть alf_luma_clip_idx [] []) всегда передаются, когда прогнозирование коэффициента фильтра, как указано alf_luma_coeff_delta_ptrediction_flag, используется, как показано в примерной таблице синтаксиса в таблице 4. Однако, если прогнозирование коэффициента фильтрации не разрешено, тогда условно сигнализируются соответствующие значения ограничения.
[0087] Когда разрешены фиксированные наборы фильтров, то коэффициенты фильтра, определенные в фиксированных фильтрах, также можно использовать для прогнозирования коэффициентов фильтра. Следовательно, критерии значений ограничения сигнализации также должны учитывать этот фактор. Примерная таблица синтаксиса, включающая вариант осуществления, показана в таблице 5. Соответственно, когда включено предсказание коэффициента фильтра (то есть предсказатель является одним фиксированным фильтром, как указано (alf_luma_use_fixed_filter_flag && alf_luma_fixed_filter_usage [filtidx])) или предыдущим сигнальным фильтром, как указано alf_luma_coeff_delta_ptrediction_flag), значения ограничения всегда сигнализируются. Если предсказание коэффициента фильтра отключено, то значения ограничения передаются, когда коэффициент фильтра не равен нулю.
[0088] В другом варианте осуществления упрощается синтаксис значений ограничения сигнализации. Экспоненциальные коды Golomba k-го порядка заменяются одним кодом фиксированной длины, например двумя битами (т.е. alf_luma_clip_idx [] [] и alf_chroma_clip_idx [] с использованием u(2) в таблице 6, где u(u) означает целое число без знака с использованием 2 битов) или усеченные унарные коды (например, alf_luma_clip_idx [] [] и alf_chroma_clip_idx [] с использованием tu(v) в таблице 7, где tu(v) означает усеченный унарный код с использованием до maxVal битов с maxVal, определенным в семантике элемента синтаксиса), как показано в примерной таблице синтаксиса в таблицах 6 и 7, где тексты в серой области соответствуют удаленным текстам.
[0089] Любой из предложенных выше способов может быть реализован в кодерах и/или декодерах. Например, любой из предложенных способов может быть реализован в модуле внутриконтурной фильтрации кодера и/или декодера. В качестве альтернативы, любой из предложенных способов может быть реализован в виде схемы, подключенной к модулю внутриконтурной фильтрации кодера и/или декодера.
[0090] Фиг. 13 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где значения ограничения для обработки ALF зависят от глубины в битах центрального восстановленного пикселя, который подвергается фильтрации. Этапы, показанные на блок-схеме, могут быть реализованы как программные коды, исполняемые на одном или нескольких процессорах (например, одном или нескольких ЦП) на стороне кодера. Этапы, показанные в блок-схеме, также могут быть реализованы на основе аппаратного обеспечения, такого как одно или несколько электронных устройств или процессоров, предназначенных для выполнения этапов в блок-схеме. Согласно этому способу восстановленные пиксели принимаются на этапе 1310, на котором восстановленные пиксели составляют текущий блок. Одно или несколько значений ограничения определяются для обработки ALF в зависимости от битовой глубины центрального восстановленного пикселя в центральном местоположении обработки ALF на этапе 1320. Текущий выходной сигнал ALF выводится для текущего блока на этапе 1330, при этом текущие выходные данные ALF содержат взвешенную сумму ограниченных разностей исходных разностей, и каждое из исходных разностей вычисляется между первым восстановленным пикселем в нецентральном месте фильтра и центральным восстановленным пикселем, при этом каждое из исходных разностей ограничиваются в соответствии с соответствующим значением ограничения, чтобы сформировать одну ограниченную разность. Отфильтрованные-восстановленные пиксели предоставляются на этапе 1340, на котором отфильтрованные восстановленные пиксели составляют текущий выходной сигнал ALF..
[0091] Фиг. 14 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где целевое значение ограничения всегда передается на стороне кодера или анализируется на стороне декодера, даже если целевое значение ограничения равно нулю. Согласно этому способу восстановленные пиксели принимаются на этапе 1410, на котором восстановленные пиксели составляют текущий блок. Одно или несколько значений ограничения определяются для обработки ALF на этапе 1420, при этом целевое значение ограничения всегда передается на стороне кодера или анализируется на стороне декодера, даже если целевое значение ограничения равно нулю. Текущий выходной сигнал ALF выводится для текущего блока на этапе 1430, при этом текущий выходной сигнал ALF содержит взвешенную сумму ограниченных разностей исходных разностей, и каждое из исходных разностей вычисляется между первым восстановленным пикселем в нецентральном месте фильтра и центральным восстановленным пикселем, и при этом каждое из исходных разностей отсекается согласно соответствующему значению отсечения, чтобы сформировать одну ограниченную разность. Отфильтрованные-восстановленные пиксели предоставляются на этапе 1440, на котором отфильтрованные-восстановленные пиксели составляют текущий выходной сигнал ALF.
[0092] Фиг. 15 иллюстрирует блок-схему примерной обработки ALF восстановленного видео согласно варианту осуществления настоящего изобретения, где значения ограничения кодируются на стороне кодера или декодируются на стороне декодера с использованием кода фиксированной длины. Согласно этому способу восстановленные пиксели принимаются на этапе 1510, на котором восстановленные пиксели составляют текущий блок. Одно или несколько значений ограничения определяются для обработки ALF на этапе 1520, при этом упомянутое одно или несколько значений ограничения кодируются на стороне кодера или декодируются на стороне декодера с использованием кода фиксированной длины. Текущий выходной сигнал ALF выводится для текущего блока на этапе 1530, при этом текущий выходной сигнал ALF содержит взвешенную сумму ограниченных разностей исходных разностей, и каждое из исходных разностей вычисляется между первым восстановленным пикселем в нецентральном месте фильтра и центральным восстановленным пикселем, и при этом каждая из исходных разностей ограничивается согласно соответствующему значению ограничения, чтобы сформировать одну ограниченную разность. Отфильтрованные-восстановленные пиксели предоставляются на этапе 1540, на котором отфильтрованные-восстановленные пиксели составляют текущий выходной сигнал ALF.
[0093] Показанные блок-схемы предназначены для иллюстрации примера кодирования видео согласно настоящему изобретению. Специалист в данной области техники может модифицировать каждый этап, переупорядочивать этапы, разбивать этап или комбинировать этапы для практического применения настоящего изобретения, не выходя за рамки сущности настоящего изобретения. В раскрытии конкретный синтаксис и семантика были использованы для иллюстрации примеров для реализации вариантов осуществления настоящего изобретения. Квалифицированный специалист может применить настоящее изобретение на практике, заменив синтаксис и семантику эквивалентными синтаксисом и семантикой, не выходя за рамки сущности настоящего изобретения.
[0094] Вышеприведенное описание представлено для того, чтобы дать возможность специалисту с обычной квалификацией в данной области техники применить настоящее изобретение на практике в контексте конкретного приложения и его требований. Различные модификации описанных вариантов осуществления будут очевидны специалистам в данной области техники, и общие принципы, определенные в данном документе, могут быть применены к другим вариантам осуществления. Следовательно, настоящее изобретение не предназначено для ограничения конкретными показанными и описанными вариантами осуществления, но должно соответствовать самому широкому объему, согласующемуся с принципами и новыми признаками, раскрытыми здесь. В приведенном выше подробном описании проиллюстрированы различные конкретные детали, чтобы обеспечить полное понимание настоящего изобретения. Тем не менее, специалистам в данной области техники будет понятно, что настоящее изобретение может быть реализовано на практике.
[0095] Варианты осуществления настоящего изобретения, как описано выше, могут быть реализованы с помощью различных аппаратных средств, программных кодов или их комбинаций. Например, вариант осуществления настоящего изобретения может представлять собой одну или несколько схем, интегрированных в микросхему сжатия видео, или программный код, интегрированный в программное обеспечение сжатия видео, для выполнения описанной здесь обработки видео. Вариант осуществления настоящего изобретения также может представлять собой программный код, который должен выполняться на цифровом сигнальном процессоре (DSP) для выполнения описанной здесь обработки. Изобретение также может включать в себя ряд функций, которые должны выполняться процессором компьютера, процессором цифровых сигналов, микропроцессором или программируемой вентильной матрицей (FPGA). Эти процессоры могут быть сконфигурированы для выполнения определенных задач в соответствии с изобретением, путем выполнения машиночитаемого программного кода или кода встроенного программного обеспечения, который определяет конкретные способы, воплощенные в изобретении. Код программного обеспечения или микропрограммного обеспечения может быть разработан на разных языках программирования и в разных форматах или стилях. Программный код также может быть скомпилирован для различных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и другие средства конфигурирования кода для выполнения задач в соответствии с изобретением не будут отклоняться от сущности и объема изобретения.
Изобретение может быть воплощено в других конкретных формах без отступления от его сущности или основных признаков. Описанные примеры следует рассматривать во всех отношениях только как иллюстративные, а не как ограничительные. Таким образом, объем изобретения определяется прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые являются эквивалентными признакам формулы изобретения, должны быть включены в объем охраны этой формулы.