Область техники, к которой относится изобретение
Данный патентный документ относится к технологиям, устройствам и системам кодирования видео.
Уровень техники
Несмотря на достижения в области сжатия видео, на цифровое видео по-прежнему приходится наибольшая полоса пропускания в Интернете и других сетях цифровой связи. По мере увеличения количества подключенных пользовательских устройств, способных принимать и отображать видео, ожидается, что потребность в полосе пропускания для использования цифрового видео будет продолжать расти.
Раскрытие сущности изобретения
В данном документе описаны устройства, система и способы, которые относятся к цифровому кодированию видео, и, в частности, к способам внутрикадрового предсказания на основе матрицы для кодирования видео. Описанные способы могут быть применены как к существующим стандартам кодирования видео (например, к высокоэффективному кодированию видео (HEVC)), так и к будущим стандартам кодирования видео (например, к универсальному кодированию видео (VVC)) или кодекам.
Первый примерный способ обработки видео включает в себя этапы, на которых вырабатывают, для преобразования между текущим видеоблоком видео и кодированным представлением текущего видеоблока, первый список наиболее вероятных режимов (МРМ) с использованием первой процедуры на основе правила; и выполняют преобразование между текущим видеоблоком и кодированным представлением текущего видеоблока с использованием первого списка MPM, причем преобразование текущего видеоблока использует режим внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации, при этом правило определяет, что первая процедура, используемая для выработки первого списка MPM, аналогична второй процедуре, используемой для выработки второго списка MPM для преобразования других видеоблоков видео, которые кодированы с использованием внутрикадрового режима без использования MIP, который отличается от режима MIP, и по меньшей мере часть первого списка MPM вырабатывается на основе по меньшей мере части второго списка MPM.
Второй примерный способ обработки видео включает в себя этапы, на которых вырабатывают, для преобразования между текущим видеоблоком видео и кодированным представлением текущего видеоблока, список наиболее вероятных режимов (MPM) на основе правила, причем правило основано на том, кодирован ли соседний видеоблок текущего видеоблока с помощью режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания соседнего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и выборочно следует операция повышения дискретизации; и выполняют преобразование между текущим видеоблоком и кодированным представлением текущего видеоблока с использованием списка MPM, при этом преобразование применяет режим без использования MIP к текущему видеоблоку, причем режим без использования MIP отличается от режима MIP.
Третий примерный способ обработки видео включает в себя этапы, на которых декодируют текущий видеоблок видео, который кодирован в кодированном представлении текущего видеоблока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; и обновляют строковый буфер, ассоциированный с декодированием, без сохранения в строковом буфере информации, указывающей, закодирован ли текущий видеоблок с использованием режима MIP.
Четвертый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока, причем текущий видеоблок кодирован с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации, при этом в представлении битового потока кодирован флаг с использованием не более чем K контекстов при арифметическом кодировании или в процессе декодирования, где флаг указывает, кодирован ли текущий видеоблок с использованием режима MIP, причем K больше или равен нулю.
Пятый примерный способ обработки видео включает в себя этапы, на которых вырабатывают, для преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока, внутрикадровый режим предсказания для текущего видеоблока, кодированного с помощью режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; определяют правило для хранения информации, указывающей режим внутрикадрового предсказания на основе того, кодирован ли текущий видеоблок с помощью режима MIP; и выполняют преобразование в соответствии с правилом, где правило определяет, что синтаксический элемент для режима внутрикадрового предсказания хранится в представлении битового потока для текущего видеоблока, и правило определяет, что индекс режима для режима MIP для текущего видеоблок не хранится в представлении битового потока.
Шестой примерный способ обработки видео включает в себя этапы, на которых выполняют первое определение, что видеоблок яркости видео кодирован с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания видеоблока яркости определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; выполняют, на основе первого определения, второе определение относительно внутрикадрового режима цветности, подлежащего использованию для видеоблока цветности, ассоциированного с видеоблоком яркости; и выполняют, на основе второго определения, преобразование между видеоблоком цветности и представлением битового потока видеоблока цветности.
Седьмой примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и кодированным представлением текущего видеоблока, причем преобразование основано на определении, следует ли кодировать текущий видеоблок с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации.
Восьмой примерный способ обработки видео включает в себя этапы, на которых определяют, для кодирования текущего видеоблока видео в представление битового потока текущего видеоблока, в соответствии с правилом, следует ли использовать режим внутрикадрового предсказания (MIP) на основе матрицы и режим кодирования, который отличается от режима MIP, для кодирования текущего видеоблока, причем режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; и добавляют, на основе указанного определения, кодированное представление текущего видеоблока в представление битового потока.
Девятый примерный способ обработки видео включает в себя этап, на котором определяют, что текущий видеоблок видео кодирован в представление битового потока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы и режима кодирования, который отличается от режима MIP, причем режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; и вырабатывают декодированное представление текущего видеоблока путем синтаксического анализа и декодирования представления битового потока.
Десятый примерный способ обработки видео включает в себя этапы, на которых определяют применимость контурного фильтра к восстановленному блоку текущего видеоблока видео в преобразовании между видео и кодированным представлением текущего видеоблока, где текущий видеоблок кодирован с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; и обрабатывают текущий видеоблок согласно указанному определению.
Одиннадцатый примерный способ обработки видео включает в себя этапы, на которых определяют, для кодирования текущего видеоблока видео в представление битового потока текущего видеоблока, тип соседних отсчетов текущего видеоблока, подлежащих использованию в соответствии с правилом; и добавляют, на основе указанного определения, кодированное представление текущего видеоблока в представление битового потока, причем текущий видеоблок кодирован с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором определяется блок предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации.
Двенадцатый примерный способ обработки видео включает в себя этапы, на которых определяют, что текущий видеоблок видео кодирован в представлении битового потока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы и с использованием типа соседних отсчетов текущего видеоблока в соответствии с правилом, при этом режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации; и вырабатывают декодированное представление текущего видеоблока путем синтаксического анализа и декодирования представления битового потока.
Тринадцатый примерный способ обработки видео включает в себя этапы, на которых выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока, причем преобразование включает в себя выработку, с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, блока предсказания для текущего видеоблока путем выбора и применения матричного умножения с использованием матриц отсчетов и/или путем выбора и добавления смещения с использованием векторов смещения для текущего видеоблока, при этом отсчеты получаются в результате усреднения по строкам и столбцам ранее кодированных отсчетов видео, а выбор основан на информации о переформировании, ассоциированной с применением преобразования яркости с масштабированием цветности (LMCS) в отношении опорныго изображения текущего видеоблока.
Четырнадцатый примерный способ обработки видео включает в себя этапы, на которых определяют, что текущий видеоблок подлежит кодирования с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации; и выполняют, на основе указанного определения, преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока, причем выполнение преобразования основано на правиле совместного применения режима MIP и другого способа кодирования.
Пятнадцатый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, причем выполнение преобразования с использованием режима MIP включает в себя выработку блока предсказания путем применения матричного умножения с использованием матриц отсчетов, полученных в результате усреднения по строкам и столбцам ранее кодированных отсчетов видео, причем матрицы зависят от битовой глубины отсчета.
Шестнадцатый примерный способ обработки видео включает в себя этапы, на которых вырабатывают для текущего видеоблока видео промежуточное предсказание с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и выборочно следует операция повышения дискретизации; вырабатывают, на основе промежуточного сигнала предсказания, окончательный сигнал предсказания; и выполняют, на основе окончательного сигнала предсказания, преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока.
Семнадцатый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, причем выполнение преобразования включает в себя использование интерполяционного фильтра в процессе повышающей дискретизации для режима MIP, при этом в режиме MIP матричное умножение применяется к первому набору отсчетов, полученному в результате усреднения по строкам и столбцам ранее кодированных отсчетов видео, а интерполяционный фильтр применяется ко второму набору отсчетов, полученному в результате матричного умножения, причем интерполяционный фильтр исключает фильтр билинейной интерполяции.
Восемнадцатый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока в соответствии с правилом, где правило определяет взаимосвязь между применимостью режима внутрикадрового предсказания (MIP) на основе матрицы или режима преобразования во время преобразования, причем режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации, а режим преобразования определяет использование операции преобразования для определения блока предсказания для текущего видеоблока.
Девятнадцатый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации, причем выполнение преобразования включает в себя получение, в соответствии с правилом, граничных отсчетов путем применения операции сдвига битов влево или сдвига битов вправо к сумме по меньшей мере одного опорного граничного отсчета, причем правило определяет, применять ли операцию сдвига битов влево или операцию сдвига битов вправо.
Двадцатый примерный способ обработки видео включает в себя этап, на котором выполняют преобразование между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации, причем отсчеты predSamples[ xHor + dX ][ yHor ] предсказания определяются в соответствии со следующей формулой в операции повышающей дискретизации: predSamples[xHor + dX][yHor] = ((upHor - dX) * predSamples[xHor][yHor] + dX * predSamples[xHor + upHor][yHor] + offsetHor)/upHor, и predSamples[xVer][yVer + dY] = ((upVer - dY) * predSamples[xVer][yVer] + dY * predSamples[xVer][yVer + upVer] + offsetVer)/upVer, где offsetHor и offsetVer - целые числа, где upHor - зависимость ширины текущего видеоблока от заданного значения, основанного на размере текущего видеоблока, где upVer - зависимость высоты текущего видеоблока от заданного значения, основанного на размере текущего видеоблока; где dX равно 1… upHor-1, где dY равно 1… upVer-1, и где xHor - позиции, основанные на upHor, и yHor - позиции, основанные на upVer.
Двадцать первый примерный способ обработки видео включает в себя этапы, на которых вырабатывают, для преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока, внутрикадровый режим предсказания для текущего видеоблока, кодированного с помощью режима внутрикадрового предсказания (MIP) на основе матрицы, в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышения дискретизации; определяют правило для хранения информации, указывающей режим внутрикадрового предсказания на основе того, кодирован ли текущий видеоблок с помощью режима MIP; и выполняют преобразование в соответствии с указанным правилом, причем правило определяет, что представление битового потока исключает хранение информации, указывающей режим MIP, ассоциированный с текущим видеоблоком.
В еще одном характерном аспекте раскрытая технология может использоваться для предоставления способа обработки видео. Этот примерный способ включает в себя этапы, на которых определяют, что текущий видеоблок кодирован с использованием режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP), составляют, на основе указанного определения, по меньшей мере часть списка наиболее вероятных режимов (MPM) для режима ALWIP на основе по меньшей мере части списка MPM для внутрикадрового режима без использования ALWIP и выполняют, на основе списка MPM для режима ALWIP, преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока.
В еще одном характерном аспекте раскрытая технология может использоваться для предоставления способа обработки видео. Этот примерный способ включает в себя этапы, на которых определяют, что компонент яркости текущего видеоблока кодирован с использованием режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP), и делают вывод, на основе указанного определения, относительно внутрикадрового режима цветности и выполняют, на основе внутрикадрового режима цветности, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В еще одном характерном аспекте раскрытая технология может использоваться для предоставления способа обработки видео. Этот примерный способ включает в себя этапы, на которых определяют, что текущий видеоблок кодирован с использованием режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP), и выполняют, на основе указанного определения, преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока.
В еще одном характерном аспекте раскрытая технология может использоваться для предоставления способа обработки видео. Этот примерный способ включает в себя этап, на котором определяют, что текущий видеоблок кодирован с использованием режима кодирования, отличного от режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP), и выполняют, на основе указанного определения, преобразование между текущим видеоблоком и представлением битового потока текущего видеоблока.
В еще одном характерном аспекте вышеописанный способ воплощен в виде исполняемого процессором кода и хранится на машиночитаемом носителе программы.
В еще одном характерном аспекте раскрыто устройство, которое выполнено или функционирует с возможностью выполнения вышеописанного способа. Устройство может включать в себя процессор, который запрограммирован для реализации этого способа.
В еще одном характерном аспекте устройство видеодекодера может реализовывать способ, описанный в данном документе.
Вышеупомянутые и другие аспекты и особенности раскрытой технологии описаны более подробно на чертежах, в описании и формуле изобретения.
Краткое описание чертежей
Фиг.1 - пример 33 направлений внутрикадрового предсказания.
Фиг.2 - пример 67 режимов внутрикадрового предсказания.
Фиг.3 - пример местоположений отсчетов, используемых для получения весовых коэффициентов линейной модели.
Фиг.4 - пример четырех опорных линий, соседствующих с блоком предсказания.
Фиг.5A и фиг.5B - примеры подразделов в зависимости от размера блока.
Фиг.6 - пример ALWIP для блоков 4×4.
Фиг.7 - пример ALWIP для блоков 8×8.
Фиг.8 - пример ALWIP для блоков 8×4.
Фиг.9 - пример ALWIP для блоков 16×16.
Фиг.10 - пример соседних блоков, используемых при составлении списка MPM.
Фиг.11 - блок-схема последовательности операций примерного способа матричного внутрикадрового предсказания в соответствии с раскрытой технологией.
Фиг.12 - блок-схема другого примерного способа матричного внутрикадрового предсказания в соответствии с раскрытой технологией.
Фиг.13 - блок-схема еще одного примерного способа матричного внутрикадрового предсказания в соответствии с раскрытой технологией.
Фиг.14 - блок-схема еще одного примерного способа матричного внутрикадрового предсказания в соответствии с раскрытой технологией.
Фиг.15 - блок-схема примера аппаратной платформы для реализации способов кодирования визуальных медиаданных или декодирования визуальных медиаданных, описанных в данном документе.
Фиг.16 - блок-схема, показывающая примерную систему обработки видео, в которой могут быть реализованы различные способы, раскрытые в данном документе.
Фиг.17 - блок-схема, которая иллюстрирует примерную систему кодирования видео, в которой можно использовать способы настоящего раскрытия.
Фиг.18 - блок-схема, иллюстрирующая пример видеокодера.
Фиг.19 - блок-схема, иллюстрирующая пример видеодекодера.
Фиг.20-38 - примерная блок-схемы последовательности операций дополнительных примерных способов для матричного внутрикадрового предсказания в соответствии с раскрытой технологией.
Осуществление изобретения
В связи с растущим спросом на видео с более высоким разрешением в современной технологии повсеместно используются способы и технологии кодирования видео. Видеокодеки Typica LLY включают в себя электронную схему или программное обеспечение, которое сжимает или распаковывает цифровое видео, и они постоянно совершенствуется для повышения эффективности кодирования. Видеокодек преобразует несжатое видео в сжатый формат или наоборот. Существуют сложные взаимосвязи между качеством видео, количеством данных, используемых для представления видео (которое определяется скоростью передачи данных), сложностью алгоритмов кодирования и декодирования, чувствительностью к потерям и ошибкам данных, простотой редактирования, произвольным доступом и сквозной задержкой (запаздыванием). Сжатый формат обычно соответствует стандартной спецификации сжатия видео, например, стандарту высокоэффективного кодирования видео (HEVC) (также известному как H.265 или MPEG-H, часть 2), стандарту универсального кодирования видео (VVC), который будет доработан, или другим современным и/или будущим стандартам кодирования видео.
Варианты осуществления раскрытой технологии могут быть применены к существующим стандартам кодирования видео (например, HEVC, H.265) и будущим стандартам для улучшения рабочих характеристик. Заголовки разделов используются в данном документе для улучшения читаемости описания и никоим образом не ограничивают обсуждение или варианты осуществления (и/или реализации) только соответствующими разделами.
1. Краткий обзор HEVC
1.1. Внутрикадровое предсказание в HEVC/H.265
Внутрикадровое предсказание включает в себя создание отсчетов для данного TB (блока преобразования) с использованием отсчетов, ранее восстановленных в рассматриваемом цветовом канале. Режим внутрикадрового предсказания сигнализируется отдельно для каналов яркости и цветности, причем режим внутрикадрового предсказания канала цветности при необходимости зависит от режима внутрикадрового предсказания канала яркости при использовании режима «DM_CHROMA». Хотя режим внутрикадрового предсказания сигнализируется на уровне PB (блока предсказания), процесс внутрикадрового предсказания применяется на уровне TB в соответствии с иерархией квадродерева остатка для CU, тем самым позволяя кодированию одного TB иметь влияние на кодирование следующего TB в CU и, следовательно, уменьшая расстояние до отсчетов, используемых в качестве контрольных значений.
HEVC включает в себя 35 режимов внутрикадрового предсказания - режим DC, планарный режим и 33 режима направленного или "углового" внутрикадрового предсказания. 33 режима углового внутрикадрового предсказания показаны на фиг.1.
Для PB, ассоциированных с цветовыми каналами цветности, режим внутрикадрового предсказания определяется как планарный, DC, горизонтальный, вертикальный, режим «DM_CHROMA» или иногда диагональный режим "34".
Следует отметить, что для форматов цветности 4:2:2 и 4:2:0 PB цветности может перекрывать два или четыре (соответственно) PB яркости; в этом случае направление яркости для DM_CHROMA берется из верхнего левого угла этих PB яркости.
Режим DM_CHROMA указывает, что режим внутрикадрового предсказания цветового PB канала яркости применяется к каналам PB цветности. Так как это является относительно распространенным, схема кодирования наиболее вероятного режима intra_chroma_pred_mode смещена в пользу выбора этого режима.
2. Примеры внутрикадрового предсказания в VVC
2.1. Внутрикадровый режим кодирования с 67 внутрикадровыми режимами предсказания
Для захвата произвольных краевых направлений, представленных в естественном видео, количество направленных внутрикадровых режимов увеличено с 33, как это используется в HEVC, до 65. Дополнительные направленные режимы обозначены красными пунктирными стрелками на фиг.2, и планарный режим и режим DC остаются прежними. Эти более режимы более плотного направленного внутрикадрового предсказания применяются для всех размеров блоков и для внутрикадровый предсказаний как яркости, так и цветности.
2.2. Примеры межкомпонентного предсказания по линейной модели (CCLM)
В некоторых вариантах осуществления и для уменьшения межкомпонентной избыточности в JEM используется режим межкомпонентного предсказания по линейной модели (CCLM) (также называемый LM), для которого отсчеты цветности предсказываются на основе восстановленных отсчетов яркости одной той же CU с использованием линейной модели следующим образом:
(1)
где представляет собой предсказанные отсчеты цветности в CU и представляет восстановленные отсчеты яркости с пониженной дискретизацией одной и той же CU. Параметры α и β линейной модели получаются из соотношения между значениями яркости и значениями цветности из двух отсчетов, которые являются отсчетом яркости с минимальным значением отсчета и с максимальным отсчетом внутри набора соседних отсчетов яркости с пониженной дискретизацией и их соответствующих отсчетов цветности. На фиг.3 показан пример местоположения левого и верхнего отсчетов и отсчета текущего блока, задействованного в режиме CCLM.
Вычисление этого параметра выполняется как часть процесса декодирования, и не только как операция поиска кодера. В результате синтаксис не используется для передачи значений α и β в декодер.
Для кодирования во внутрикадровом режиме цветности разрешено всего 8 внутрикадровых режимов для кодирования во внутрикадровом режиме цветности. Эти режимы включают пять традиционных внутрикадровых режимов и три режима межкомпонентной линейной модели (CCLM, LM_A и LM_L). Кодирование в режиме цветности напрямую зависит от режима внутрикадрового предсказания соответствующего блока яркости. Так как в I-слайсах разрешена структура разделения на отдельные блоки для компонентов яркости и цветности, один блок цветности может соответствовать нескольким блокам яркости. Таким образом, для режима Chroma DM напрямую наследуется режим внутрикадрового предсказания соответствующего блока яркости, охватывающий центральную позицию текущего блока цветности.
2.3. Внутрикадровое предсказание с множеством опорных линий (MRL)
Для внутрикадрового предсказания с множеством опорных линий (MRL) используется большое количество опорных линий для внутрикадрового предсказания. На фиг.4 показан пример 4 опорных линий, где отсчеты сегментов A и F не извлекаются из восстановленных соседних отсчетов, и дополняются ближайшими отсчетами из сегментов B и E, соответственно. Для внутрикадрового предсказания изображения HEVC используется ближайшая опорная линия (то есть опорная линия 0). В MRL используются 2 дополнительные линии (опорная линия 1 и опорная линия 3). Индекс выбранной опорной линии (mrl_idx) сигнализируется и используется для выработки внутрикадрового предиктора. Для опорной линии индекс idx, который больше 0, включает в себя только дополнительные режимы опорных линий в списке MPM и только индекс mpm сигнала без оставшегося режима.
2.4. Внутрикадровые подразделы (ISP)
Инструмент внутрикадровых подразделов (ISP) делит блоки внутрикадрового предсказания яркости по вертикали или горизонтали на 2 или 4 подраздела в зависимости от размера блока. Например, минимальный размер блока для ISP составляет 4x8 (или 8x4). Если размер блока больше 4x8 (или 8x4), то соответствующий блок делится на 4 части. На фиг.5 показаны примеры двух возможных вариантов. Все подразделы удовлетворяют условию наличия не менее 16 отсчетов.
Для каждого подраздела восстановленные отсчеты получаются путем добавления сигнала остатка к сигналу предсказания. В данном документе сигнал остатка вырабатывается с помощью таких процессов, как энтропийное декодирование, обратное квантование и обратное преобразование. Таким образом, значения восстановленного отсчета каждого подраздела доступны для выработки предсказания следующего подраздела, и каждый подраздел обрабатывается повторно. Кроме того, первым обрабатываемым подразделом будет тот, который содержит верхнюю левый отсчет CU и затем продолжается вниз (горизонтальное разделение) или вправо (вертикальное разделение). В результате опорные отсчеты, используемые для выработки сигналов предсказания подразделов, расположены только слева и выше линий. Для всех подразделов используется один и тот же внутрикадровый режим.
2.5. Аффинное линейно-взвешенное внутрикадровое предсказание (ALWIP или матричное внутрикадровое предсказание)
Аффинное линейно-взвешенное внутрикадровое предсказание (ALWIP, также известное как матричное внутрикадровое предсказание (MIP)), предложено в JVET-N0217.
В JVET-N0217 проводятся два теста. В тесте 1 ALWIP разрабатывается с ограничением памяти 8-ю килобайтами и максимум 4 умножениями на отсчет. Тест 2 аналогичен тесту 1, но дополнительно упрощает разработку с точки зрения требований к памяти и архитектуры модели.
ο Единый набор матриц и векторов смещения для всех форм блоков.
ο Уменьшение количества режимов до 19 для всех форм блоков.
ο Снижение требований к памяти до 5760 10-битных значений, то есть до 7,20 килобайтов.
ο Линейная интерполяция предсказанных отсчетов выполняется за один шаг в каждом направлении, заменяя итеративную интерполяцию, как в первом тесте.
2.5.1. Тест 1 JVET-N0217
Для предсказания отсчетов прямоугольного блока с шириной и высотой аффинное линейно-взвешенное внутрикадровое предсказание (ALWIP) принимает в качестве входных данных одну линию восстановленных соседних граничных отсчетов слева от блока и одну линию восстановленных соседних граничных отсчетов выше блока. Если восстановленные отсчеты недоступны, они вырабатываются таким образом, как это делается в нормальном внутрикадровом предсказании.
Выработка сигнала предсказания основана на следующих трех шагах:
Четыре отсчета, если , и восемь отсчетов во всех других случаях извлекаются из граничных отсчетов посредством усреднения.
Матрично-векторное умножение с последующим прибавлением смещения выполняется с использованием усредненных отсчетов в качестве входных данных. Результатом является уменьшенный сигнал предсказания для субдискретизированного набора отсчетов в исходном блоке.
Сигнал предсказания в оставшихся позициях вырабатывается из сигнала предсказания в субдискретизированном наборе с помощью линейной интерполяции, которая представляет собой одношаговую линейную интерполяцию в каждом направлении.
Матрица и векторы смещения, необходимые для выработки сигнала предсказания, взяты из трех наборов , матриц. Набор состоит из 18 матриц , каждая из которых имеет 16 строк и 4 столбца и 18 векторов смещения, каждый из которых имеет размер 16. Матрицы и векторы смещения из этого набора используются для блоков размером 4×4. Набор состоит из 10 матриц , каждая из которых имеет 16 строк и 8 столбцов и 10 векторов смещения, каждый из которых имеет размер 16. Матрицы и векторы смещения этого набора используются для блоков размером 4×8, 8×4 и 8×8. Наконец, набор состоит из 6 матриц , каждая из которых имеет 64 строки и 8 столбцов и 6 векторов смещения размером 64. Матрицы и векторы смещения из этого набора или части этих матриц и векторов смещения используются для всех других форм блоков.
Общее количество умножений, необходимых для вычисления матрично-векторного умножения, всегда меньше или равно . Другими словами, для режимов ALWIP требуется не более четырех умножений на отсчет.
2.5.2 Усреднение границы
На первом этапе входные границы и уменьшаются до меньших границ и . Здесь обе границы и состоят из 2 отсчетов в случае блока размером 4×4, и во всех остальных случаях обе границы состоят из 4 отсчетов.
В случае блока размером 4×4 для , определяется
и аналогичным образом определяется .
В противном случае, если ширина блока задана как , для , определяется
и аналогичным образом определяется .
Две уменьшенных границы и связаны с уменьшенным граничным вектором , который имеет, таким образом, размер четыре для блоков формы 4×4 и размер восемь для блоков всех остальных форм. Если относится к режиму ALWIP, это объединение определяется следующим образом:
Наконец, для интерполяции субдискретизированного сигнала предсказания на больших блоках требуется вторая версия усредненной границы. А именно, если и , записать W, и для определяется
Если и , определяется аналогичным образом.
2.5.3. Выработка уменьшенного сигнала предсказания с использованием матрично-векторного умножения
Из уменьшенного входного вектора вырабатывается уменьшенный сигнал предсказания. Последний сигнал представляет собой сигнал субдискретизированного блока с шириной и высотой . Здесь и определяются как:
Уменьшенный сигнал предсказания вычисляется путем вычисления матрично-векторного умножения и добавления смещения:
Здесь - матрица, которая имеет строк и 4 столбца, если и 8 столбцов во всех остальных случаях. представляет собой вектор размером .
Матрица и вектор выбираются из одного из наборов , , следующим образом. Индекс определяется следующим образом:
Кроме того, полагаем, что определяется следующим образом:
Затем, если или , и , полагаем, что и . В случае, когда и , допустим является матрицей, которая получается при исключении каждой строки из , которая в случае соответствует нечетной координате x в блоке с пониженной дискретизацией, или, в случае , соответствует нечетной координате y в блоке с пониженной дискретизацией.
Наконец, уменьшенный сигнал предсказания заменяется его транспонированием в следующих случаях:
ο и
ο и
ο и
Количество операций умножения необходимых для вычисления, равно 4 в случае, так как в этом случае имеется 4 столбца и 16 строк. Во всех других случаях имеет 8 столбцов и строк, и сразу проверяется, что в этих случаях требуется операций умножения, то есть в этих случаях для вычисления требуется также не более 4 операций умножения на отсчет.
2.5.4. Иллюстрация всего процесса ALWIP
Весь процесс усреднения, матрично-векторного умножения и линейной интерполяции проиллюстрирован для различных форм на фиг.6-9. Следует отметить, что остальные формы рассматриваются как в одном из изображенных случаев.
1. При наличии блока размером 4×4 ALWIP имеет четыре средних значения по каждой оси границы. Результирующие четыре входных отсчета входят в матрично-векторное умножение. Матрицы берутся из набора . После добавления смещения получается 16 окончательных отсчетов предсказания. Линейная интерполяция не требуется для выработки сигнала предсказания. Таким образом, всего выполняется умножений на отсчет.
2. При наличии блока размером 8×4 ALWIP имеет четыре средних значения по каждой оси границы. Результирующие восемь входных отсчетов попадают в матрично-векторное умножение. Матрицы берутся из набора . Это дает 16 отсчетов на нечетных позициях блока предсказания. Таким образом, всего выполняется умножений на отсчет. После добавления смещения эти отсчеты интерполируются по вертикали с использованием уменьшенной верхней границы. Горизонтальная интерполяция выполняется с использованием исходной левой границы.
3. При наличии блока размером 8×4 ALWIP имеет четыре средних значения по горизонтальной оси границы и четыре исходных граничных значения на левой границе. Результирующие восемь входных отсчетов попадают в матрично-векторное умножение. Матрицы берутся из набора . Это дает 16 отсчетов по нечетным горизонтальным и каждой вертикальной позициям блока предсказания. Таким образом, всего выполняется ( умножений на отсчет. После добавления смещения эти отсчеты интерполируются по горизонтали с использованием исходной левой границы.
4. При наличии блока размером 16×16 ALWIP имеет четыре средних значения по каждой оси границы. Результирующие восемь входных отсчетов попадают в матрично-векторное умножение. Матрицы берутся из набора . Это дает 64 отсчета на нечетных позициях блока предсказания. Таким образом, всего выполняется ( умножений на отсчет. После добавления смещения эти отсчеты интерполируются по вертикали с использованием восьми средних значений верхней границы. Горизонтальная интерполяция следует за использованием исходной левой границы. В этом случае процесс интерполяции не добавляет никаких умножений. Таким образом, для расчета прогноза ALWIP требуется всего два умножения на отсчет.
Для больших форм процедура является по существу такой же, и легко проверить, что количество умножений на отсчет меньше четырех.
Для блоков W×8 ghb W>8 необходима только горизонтальная интерполяция, так как отсчеты даны в нечетных горизонтальных и каждой вертикальной позициях.
Наконец, для блоков W×4 с W>8, пусть A_k будет матрицей, которая получается при исключении каждой строки, которая соответствует нечетной записи по горизонтальной оси субдискретизированного блока. Таким образом, выходной размер равен 32, и снова остается выполнить только горизонтальную интерполяцию.
Транспонированные случаи обрабатываются соответствующим образом.
2.5.5. Одношаговая линейная интерполяция
Для блока размером при сигнал предсказания получается из уменьшенного сигнала предсказания на с помощью линейной интерполяции. В зависимости от формы блока линейная интерполяция выполняется в вертикальном, горизонтальном или обоих направлениях. Если линейная интерполяция должна применяться в обоих направлениях, она сначала применяется в горизонтальном направлении, если , и сначала применяется в вертикальном направлении, иначе.
Без ограничения общности рассмотрим блок размером при и . Затем выполняется одномерная линейная интерполяция следующим образом. Без ограничения общности достаточно описать линейную интерполяцию в вертикальном направлении. Сначала уменьшенный сигнал предсказания расширяется до верхней части с помощью граничного сигнала. Определим коэффициент вертикальной повышающей дискретизации, и запишем . Затем определим расширенный уменьшенный сигнал предсказания с помощью
Затем из этого расширенного уменьшенного сигнала предсказания вырабатывается сигнал вертикально-линейного интерполированного предсказания следующим образом
для , и .
2.5.6. Сигнализация предложенных режимов внутрикадрового предсказания
Для каждой единицы кодирования (CU) во внутрикадровом режиме в битовом потоке отправляется флаг, указывающий то, должен или нет применяться режим ALWIP к соответствующей единице предсказания (PU). Сигнализация последнего индекса гармонизирована с MRL так же, как в JVET-M0043. Если должен применяться режим ALWIP, индекс режима ALWIP сигнализируется с использованием списка MPM с 3 MPMS.
Здесь вывод MPM выполняется с использованием внутрикадрового режима верхней и левой PU следующим образом. Имеется три фиксированных таблицы , , которые назначают каждому традиционному режиму внутрикадрового предсказания режим ALWIP.
Для каждой PU с шириной и высотой определяется индекс
,
который указывает то, из какого из трех наборов следует выбирать параметры ALWIP, как в разделе 2.5.3.
Если вышеуказанная единица предсказания является доступной, принадлежит к той же CTU, что и текущая PU, и находится во внутрикадровом режиме, если , и если ALWIP применяется к с ALWIP-режимом , полагаем, что
Если верхняя PU является доступной, принадлежит к той же CTU, что и текущая PU, и находится во внутрикадровом режиме, и если к верхней PU применяется традиционный режим внутрикадрового предсказания, то полагаем, что
Во всех остальных случаях полагаем, что
,
что означает, что этот режим является недоступным. Таким же образом, но без ограничения, что левая PU должна принадлежать к той же CTU, что и текущая PU, получается режим .
Наконец, предоставляются три фиксированных списка , по умолчанию, каждый из которых содержит три различных режима ALWIP. Из списка по умолчанию и режимов и создаются три отдельных MPM путем замены -1 на значения по умолчанию, а также исключения повторения.
Левый соседний блок и верхний соседний блок, которые используются в составлении списка ALWIP MPM, представляют собой A1 и B1, как показано на фиг.10.
2.5.7. Получение адаптивного MPM-списка для традиционных режимов внутрикадрового предсказания яркости и цветности
Предлагаемые режимы ALWIP гармонизируются с кодированием на основе MPM традиционных режимов внутрикадрового предсказания следующим образом. Процессы получения МРМ-списка яркости и цветности для традиционных режимов внутрикадрового предсказания используют фиксированные таблицы , , которые обеспечивают сопоставление ALWIP-режима с заданной PU в одном из традиционных режимов внутрикадрового предсказания
Для получения MPM-списка яркости всякий раз, когда встречается соседний блок яркости, который использует ALWIP-режим , этот блок обрабатывается таким образом, как если бы он использовал традиционный режим внутрикадрового предсказания . Для получения MPM-списка цветности всякий раз, когда текущий блок яркости использует LWIP-режим, то же самое сопоставление используется для преобразования режима ALWIP в традиционный режим внутрикадрового предсказания.
2.5.8. Соответствующий модифицированный рабочий проект
В некоторых вариантах осуществления, как описано в этом разделе, части, относящиеся к intra_lwip_flag, intra_lwip_mpm_flag, intra_lwip_mpm_idx и intra_lwip_mpm_remainder, были добавлены в рабочий проект на основе вариантов осуществления раскрытой технологии.
В некоторых вариантах осуществления, как описано в этом разделе, теги <begin> и <end> используются для обозначения добавлений и модификаций к рабочему проекту на основе вариантов осуществления раскрытой технологии.
Таблицы синтаксиса
Синтаксис единицы кодирования
( tile_group_type != I && CuPredMode[ x0 ][ y0 ] != MODE_INTRA ) ) &&
sps_ibc_enabled_flag )
cbWidth >= MinIpcmCbSizeY && cbWidth <= MaxIpcmCbSizeY &&
cbHeight >= MinIpcmCbSizeY && cbHeight <= MaxIpcmCbSizeY )
( cbWidth <= MaxTbSizeY | | cbHeight <= MaxTbSizeY ) &&
( cbWidth * cbHeight > MinTbSizeY * MinTbSizeY ))
cbWidth <= MaxTbSizeY && cbHeight <= MaxTbSizeY )
intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 0 )
Семантика
<begin>intra_lwip_flag[x0][y0], равный 1, указывает, что тип внутрикадрового предсказания для отсчетов яркости является аффинным линейно взвешенным внутрикадровым предсказанием. intra_lwip_flag[x0][y0], равный 0, указывает, что тип внутрикадрового предсказания для отсчетов яркости не является аффинным линейным взвешенным внутрикадровым предсказанием.
Когда intra_lwip_flag[x0][y0] отсутствует, предполагается, что он равен 0.
Элементы синтаксиса intra_lwip_mpm_flag[x0][y0], intra_lwip_mpm_idx[x0][y0] и intra_lwip_mpm_remainder [x0][y0] определяют режим аффинного линейного взвешенного внутрикадрового предсказания для отсчетов яркости. Индексы x0, y0 массива определяют местоположение (x0, y0) верхней левой отсчеты яркости рассматриваемого блока кодирования по отношению к верхнему левому отсчету яркости изображения. Когда intra_lwip_mpm_flag[х0][у0] равен 1, то аффинный линейный взвешенный режим внутрикадрового предсказания получаются из соседних блок кодирования с внутрикадровым предсказанием согласно пунктом 8.4.X.
Когда intra_lwip_mpm_flag[x0][y0] отсутствует, предполагается, что он равен 1. <end>
intra_subpartitions_split_flag[x0][y0] указывает то, является ли тип разделения внутрикадровых подразделов горизонтальным или вертикальным. Когда intra_subpartitions_split_flag[x0][y0] отсутствует, он получается следующим образом:
- Если intra_lwip_flag[x0][y0] равен 1, intra_subpartitions_split_flag[x0][y0] предполагается равным 0.
- В противном случае применяется следующее:
- Если cbHeight больше MaxTbSizeY, intra_subpartitions_split_flag[x0][y0] предполагается равным 0.
- В противном случае (cbWidth больше, чем MaxTbSizeY), intra_subpartitions_split_flag[x0][y0] предполагается равным 1.
Процесс декодирования
8.4.1. Общий процесс декодирования для единиц кодирования, закодированных в режиме внутрикадрового предсказания
Входными данными этого процесса являются:
- местоположение (XCB, YCB) яркости с указанием верхнего левого отсчета текущего кодированием блока по отношению к верхнему левому отсчету яркости текущего изображения,
- переменная cbWidth, определяющая ширину текущего блока кодирования в отсчетах яркости,
- переменная cbHeight, определяющая высоту текущего блока кодирования в отсчетах яркости,
- переменная treeType, определяющая то, используется ли одинарное или двойное дерево, и если используется двойное дерево, она указывает то, соответствует ли текущее дерево компонентам яркости или цветности.
Результатом этого процесса является модифицированное восстановленное изображение перед внутриконтурной фильтрацией.
Процесс получения параметров квантования, как определено в пункте 8.7.1, связан с местоположением (xCb, yCb) яркости, шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего блока кодирования в отсчетах cbHeight яркости и переменной treeType в качестве входных данных.
Когда treeType равен SINGLE_TREE или treeType равен DUAL_TREE_LUMA, процесс декодирования для отсчетов яркости определяется следующим образом:
- Если pcm_flag[xCb][yCb] равен 1, восстановленное изображение модифицируется следующим образом:
- В противном случае применяется следующее:
1. В способ внутрикадрового предсказания яркости определяется следующим образом:
- Если intra_lwip_flag[xCb][yCb] равен 1, процесс получения для режима аффинного линейно-взвешенного внутрикадрового предсказания, как указано в пункте 8.4. X, связан с местоположением (xCb, yCb) яркости, шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего блока кодирования в отсчетах cbHeight яркости в качестве входных данных.
- В противном случае процесс получения для режима внутрикадрового предсказания яркости, как указано в пункте 8.4.2, связан с адресом (XCB, YCB) яркости, шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего кодирования блок в отсчетах cbHeight яркости в качестве входных данных.
2. Общий процесс декодирования для внутрикадровых блоков, как указано в пункте 8.4.4.1, связан с адресом (XCB, YCB) яркости, типом treeType дерева, переменной nTbW, установленной равной cbWidth, переменной nTbH, установленной равной cbHeight, переменной predModeIntra, установленной равной IntraPredModeY[xCb][yCb], и переменной cIdx, установленной равной 0 в качестве входных данных, и результатом является модифицированное восстановленное изображение перед внутриконтурной фильтрацией.
…<begin>
8.4.X. Процесс получения для режима аффинного линейно-взвешенного внутрикадрового предсказания
Входными данными этого процесса являются:
- местоположение (XCB, YCB) яркости, определяющее верхний левый отсчет текущего блока кодирования яркости по отношению к верхнему левому отсчету яркости текущего изображения,
- переменная cbWidth, определяющая ширину текущего блока кодирования в отсчетах яркости,
- переменная cbHeight, определяющая высоту текущего блока кодирования в отсчетах яркости.
В этом процессе получается режим аффинного линейно-взвешенного внутрикадрового предсказания IntraPredModeY[xCb][yCb].
IntraPredModeY[xCb][yCb] получается с помощью следующих упорядоченных шагов:
1 . В соседних местоположениях (xNbA, yNbA) и (xNbB, yNbB) устанавливается равными (XCB - 1, YCB) и (XCB, YCB - 1), соответственно.
2. Если X заменяется на A или B, переменные candLwipModeX получаются следующим образом:
- Процесс получения доступности для блока, как указано в пункте 6.4.X [Редакция (BB): процесс проверки доступности соседних блоков tbd] связан с местоположением (xCurr, yCurr), установленным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), установленным равным (xNbX, yNbX) в качестве входных данных, и выходные данные назначаются availableX.
- Режим candLwipModeX аффинного линейно-взвешенного внутрикадрового предсказания кандидата получается следующим образом:
- Если выполняется одно или несколько из следующих условий, candLwipModeX устанавливается равным -1.
- Переменная availableX равна значению "ложь".
- CuPredMode [xNbX][yNbX] не равен MODE_INTRA, и mh_intra_flag[xNbX][yNbX] не равен 1.
- pcm_flag[xNbX][yNbX] равен 1.
- X равен B, и yCb - 1 меньше, чем ((yCb >> CtbLog2SizeY) << CtbLog2SizeY).
- В противном случае применяется следующее:
- Процесс получения типа размера для блока, как указано в пункте 8.4.X.1, связан с шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего блока кодирования в отсчетах cbHeight яркости в качестве входных данных, и выходные данные назначаются переменной sizeId.
- Если intra_lwip_flag[xNbX][yNbX] равен 1, то процесс получения типа размера для блока, как указано в пункте 8.4.X.1, связан с шириной соседнего блока кодирования в отсчетах nbWidthX яркости и высотой соседний блок кодирования в отсчетах nbHeightX яркости в качестве входных данных, и выходные данные назначаются переменной sizeIdX.
- Если sizeId равен sizeIdX, candLwipModeX устанавливается равным IntraPredModeY[xNbX][yNbX].
- В противном случае candLwipModeX устанавливается равным -1.
- В противном случае candLwipModeX получается с использованием IntraPredModeY[xNbX][yNbX] и sizeId, как указано в таблице 8-X1.
3. CandLwipModeList[x] при x = 0..2 получается следующим образом с использованием lwipMpmCand[sizeId], как указано в таблице 8-X2:
- Если candLwipModeA и candLwipModeB оба равны -1, применяется следующее:
candLwipModeList[ 0 ] = lwipMpmCand[ sizeId ][ 0 ] (8-X1)
candLwipModeList[ 1 ] = lwipMpmCand[ sizeId ][ 1 ] (8-X2)
candLwipModeList[ 2 ] = lwipMpmCand[ sizeId ][ 2 ] (8-X3)
- В противном случае возможно следующее:
- Если candLwipModeA равен candLwipModeB или candLwipModeA или candLwipModeB равен -1, применяется следующее:
candLwipModeList[0] = (candLwipModeA ! = -1) ? candLwipModeA: candLwipModeB (8-X4)
- Если CandLwipModeList[0] равен lwipMpmCand[sizeId][0], применяется следующее:
candLwipModeList[ 1 ] = lwipMpmCand[ sizeId ][ 1 ] (8-X5)
candLwipModeList[ 2 ] = lwipMpmCand[ sizeId ][ 2 ] (8-X6)
- В противном случае применяется следующее:
candLwipModeList[1] = lwipMpmCand[sizeId][0] (8-X7)
candLwipModeList[2] = (candLwipModeList[0] ! = lwipMpmCand[sizeId][1]) ? lwipMpmCand[sizeId][1]: lwipMpmCand[sizeId][2] (8-X8) - В противном случае применяется следующее:
candLwipModeList[0] = candLwipModeA (8-X9)
candLwipModeList[1] = candLwipModeB (8-X10)
- Если candLwipModeA и candLwipModeB не равны lwipMpmCand[sizeId][0], применяется следующее:
candLwipModeList[2] = lwipMpmCand[sizeId][0] (8-X11)
- В противном случае применяется следующее:
- Если candLwipModeA и candLwipModeB не равны lwipMpmCand[sizeId][1], применяется следующее:
candLwipModeList[2] = lwipMpmCand[sizeId][1] (8-X12)
- В противном случае применяется следующее:
candLwipModeList[2] = lwipMpmCand[sizeId][2] (8-X13)
4. IntraPredModeY[xCb][yCb] получается путем применения следующей процедуры:
- Если intra_lwip_mpm_flag[xCb][yCb] равен 1, IntraPredModeY[xCb][yCb] устанавливается равным candLwipModeList[intra_lwip_mpm_idx[xCb][yCb]].
- В противном случае IntraPredModeY[xCb][yCb] получается путем выполнения следующих упорядоченных шагов:
1. Когда candLwipModeList[i] больше, чем candLwipModeList[j] для i = 0..1 и для каждого i, j = (i + 1)..2, оба значения меняются местами следующим образом:
(candLwipModeList[i], candLwipModeList[j]) = Swap (candLwipModeList[i], candLwipModeList[j]) (8-X14)
2. IntraPredModeY[xCb][yCb] получается с помощью следующих упорядоченных шагов:
(1) IntraPredModeY[xCb][yCb] устанавливается равным intra_lwip_mpm_ remainder[xCb][yCb].
(2) Для i, равного от 0 до 2 включительно, когда IntraPredModeY[xCb][yCb] больше или равно candLwipModeList[i], значение IntraPredModeY[xCb][yCb] увеличивается на единицу.
Переменная IntraPredModeY[x][y] при x = xCb..xCb + cbWidth - 1 и y = yCb..yCb + cbHeight - 1 устанавливается равной IntraPredModeY[xCb][yCb].
8.4.X.1 Процесс получения для типа размера блока предсказания
Входными данными этого процесса являются:
- переменная cbWidth, определяющая ширину текущего блока кодирования в отсчетах яркости,
- переменная cbHeight, определяющая высоту текущего блока кодирования в отсчетах яркости.
Результатом этого процесса является переменная sizeId.
Переменная sizeId получается следующим образом:
- Если и cbWidth, и cbHeight равны 4, sizeId устанавливается равным 0.
- В противном случае, если cbWidth и cbHeight меньше или равны 8, sizeId устанавливается равным 1.
- В противном случае sizeId устанавливается равным 2.
Таблица 8-X1. Спецификация сопоставления между режимами внутрикадрового предсказания и аффинным линейно-взвешенным внутрикадровым предсказанием
Таблица 8-X2. Спецификация возможных режимов аффинного линейно-взвешенного внутрикадрового предсказания
<end>
8.4.2. Процесс получения режима внутрикадрового предсказания яркости
Входными данными этого процесса являются:
- местоположение (XCB, YCB) яркости с указанием верхнего левого отсчета текущего блока кодирования яркости по отношению к верхнему левому отсчету яркости текущего изображения,
- переменная cbWidth, определяющая ширину текущего блока кодирования в отсчетах яркости,
- переменная cbHeight, определяющая высоту текущего блока кодирования в отсчетах яркости.
В этом процессе определяется режима внутрикадрового предсказания яркости IntraPredModeY[xCb][yCb].
В таблице 8-1 указано значение для режима внутрикадрового предсказания IntraPredModeY[xCb][yCb] и связанные с ним названия.
Примечание: Режимы внутрикадрового предсказания INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM применимы только к компонентам цветности.
IntraPredModeY[xCb][yCb] получается с помощью следующих упорядоченных шагов:
1. Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) устанавливаются равными (XCB - 1, YCB + cbHeight - 1) и (XCB + cbWidth - 1, YCB - 1), соответственно.
2. Если X заменяется на A или B, переменные candIntraPredModeX получаются следующим образом:
- Процесс получения доступности для блока, как указано в пункте <begin> 6.4.X [Редакция (BB): процесс проверки доступности соседних блоков tbd] <end> связан с местоположением (xCurr, yCurr), установленным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), установленным равным (xNbX, yNbX) в качестве входных данных, и выходные данные назначаются availableX.
- Режим-кандидат внутрикадрового предсказания яркости candIntraPredModeX получается следующим образом:
- Если выполняется одно или несколько из следующих условий, candIntraPredModeX устанавливается равным INTRA_PLANAR.
- Переменная availableX равна значению "ложь".
- CuPredMode [xNbX][yNbX] не равен MODE_INTRA, и ciip_flag[xNbX][yNbX] не равен 1.
- pcm_flag[xNbX][yNbX] равен 1.
- X равен B, и yCb - 1 меньше, чем ((yCb >> CtbLog2SizeY) << CtbLog2SizeY).
- В противном случае CandIntraPredModeX получается следующим образом:
- Если intra_lwip_flag[xCb][yCb] равен 1, CandIntraPredModeX получается с помощью следующих упорядоченных шагов:
(1) Процесс получения типа размера для блока, как указано в пункте 8.4.X.1, связан с шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего блока кодирования в отсчетах cbHeight яркости в качестве входных данных, и выходные данные назначаются переменной sizeId.
(2) CandIntraPredModeX получается с использованием IntraPredModeY[xNbX][yNbX] и sizeId, как указано в таблице 8-X3.
- В противном случае CandIntraPredModeX устанавливается равным IntraPredModeY[xNbX][yNbX].
3. Переменные ispDefaultMode1 и ispDefaultMode2 определяются следующим образом:
- Если IntraSubPartitionsSplitType равен ISP_HOR_SPLIT, ispDefaultMode1 устанавливается равным INTRA_ANGULAR18, и ispDefaultMode2 устанавливается равным INTRA_ANGULAR5.
- В противном случае ispDefaultMode1 устанавливается равным INTRA_ANGULAR50, и ispDefaultMode2 устанавливается равным INTRA_ANGULAR63.
…Таблица 8-X3. Спецификация сопоставления между аффинным линейно-взвешенным внутрикадровым предсказанием и режимами внутрикадрового предсказания
8.4.3 Процесс получения для режим внутрикадрового предсказания цветности
Входными данными этого процесса являются:
- местоположение (XCB, YCB) яркости, определяющее верхний левый отсчет текущего блока кодирования сигнала цветности по отношению к верхнему левому отсчету яркости текущего изображения,
- переменная cbWidth, определяющая ширину текущего блока кодирования в отсчетах яркости,
- переменная cbHeight, определяющая высоту текущего блока кодирования в отсчетах яркости.
В этом процессе получается режим внутрикадрового предсказания цветности IntraPredModeC [xCb][yCb].
Соответствующий режим внутрикадрового предсказания яркости lumaIntraPredMode получается следующим образом:
- Если intra_lwip_flag[xCb][yCb] равен 1, lumaIntraPredMode получается с помощью следующих упорядоченных шагов:
(1) Процесс получения типа размера для блока, как указано в пункте 8.4.X.1, связан с шириной текущего блока кодирования в отсчетах cbWidth яркости и высотой текущего блока кодирования в отсчетах cbHeight яркости в качестве входных данных, и выходные данные назначаются переменной sizeId.
(2) Режим внутрикадрового предсказания яркости получается с использованием IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight/2] и sizeId, как указано в таблице 8-X3, и значение CandIntraPredModeX назначается параметру lumaIntraPredMode.
- В противном случае lumaIntraPredMode устанавливается равным IntraPredModeY[xCb + cbWidth/2][yCb + cbHeight/2].
Режим внутрикадрового предсказания цветности IntraPredModeC [xCB][YCB] получается с помощью intra_chroma_pred_mode [xCB][YCB] и lumaIntraPredMode, как указано в таблице 8-2 и таблице 8-3.
…
ххх. Внутрикадровое предсказание отсчета
<begin>
Входными параметрами в этом процессе являются:
- местоположение (xTbCmp, yTbCmp) отсчета, определяющее верхний левый отсчет текущего блока преобразования по отношению к верхнему левому отсчету текущего изображения,
- переменная predModeIntra, определяющая режим внутрикадрового предсказания,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования,
- переменная nCbW, определяющая ширину блока кодирования,
- переменная nCbH, определяющая высоту блока кодирования,
- переменная cIdx, определяющая компонент цветности текущего блока.
Выходными данными этого процесса являются предсказанные отсчеты predSamples[x][y], при x = 0..nTbW - 1, y = 0..nTbH - 1.
Предсказанные отсчеты predSamples[x][y] получаются следующим образом:
- Если intra_lwip_flag[xTbCmp][yTbCmp] равен 1, и cIdx равен 0, процесс аффинного линейно-взвешенного внутрикадрового выборочного предсказания, как указано в пункте 8.4.4.2.X1, связан с местоположением (xTbCmp, yTbCmp), режимом внутрикадрового предсказания predModeIntra, шириной блока преобразования nTbW и высотой nTbH в качестве входных данных, и выходные данные представляют собой predSamples.
- В противном случае общий процесс внутрикадрового предсказания отсчета, как указано в пункте 8.4.4.2.X1. связан с местоположением (xTbCmp, yTbCmp), режимом внутрикадрового предсказания predModeIntra, шириной nTbW и высотой nTbH блока преобразования, шириной nCbW и высотой nCbH блока кодирования и переменной cIdx в качестве входных данных, и выходные данные представляют собой predSamples.
8.4.4.2.X1 Аффинное линейно-взвешенное выборочное внутрикадровое предсказание
Входными параметрами в этом процессе являются:
- местоположение (xTbCmp, yTbCmp) отсчета, определяющее верхний левый отсчет текущего блока преобразования по отношению к верхнему левому отсчету текущего изображения,
- переменная predModeIntra, определяющая режим внутрикадрового предсказания,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования.
Выходными данными этого процесса являются Предсказанные отсчеты predSamples[x][y], при x = 0..nTbW - 1, y = 0..nTbH - 1.
Процесс получения типа размера для блока, как указано в пункте 8.4.X.1, связан с шириной nTbW блока преобразования и высотой nTbH блока преобразования в качестве входных данных, и выходные данные назначаются sizeId.
Переменные numModes, BorderSize, predW, predH и predC получаются с использованием sizeId, как указано в таблице 8-X4.
Таблица 8-X4. Спецификация количества режимов, размера граничного отсчета и размеров предсказания в зависимости от sizeId
Флаг isTransposed получается следующим образом:
isTransposed = ( predModeIntra > ( numModes / 2 ) ) ? 1 : 0 (8-X15)
Флаги needUpsBdryHor и needUpsBdryVer получаются следующим образом:
needUpsBdryHor = ( nTbW > predW ) ? TRUE : FALSE (8-X16)
needUpsBdryVer = ( nTbH > predH ) ? TRUE : FALSE (8-X17)
Переменные upsBdryW и upsBdryH получаются следующим образом:
upsBdryW = (nTbH> nTbW)? nTbW: predW (8-X18)
upsBdryH = (nTbH> nTbW)? predH: nTbH (8-X19)
Переменные lwipW и lwipH получаются следующим образом:
lwipW = (isTransposed = = 1)? predH: predW (8-X20)
lwipH = (isTransposed = = 1)? predW: predH (8-X21)
Для выработки опорных отсчетов refT[x] при x = 0..nTbW - 1 и refL [y] при y = 0..nTbH - 1 процесс получения опорных отсчетов, как указано в пункте 8.4.4.2.X2, связан с местоположением (xTbCmp, yTbCmp) отсчета, шириной nTbW блока преобразования, высотой nTbH блока преобразования в качестве входных данных, и верхней и левой опорными отсчетами refT[x] при x = 0..nTbW - 1 и refL [y] при y = 0..nTbH - 1, соответственно, в качестве выходных данных.
Для выработки граничных отсчетов р[х] при х = 0..2 * boundarySize - 1, применяется следующее:
- Процесс уменьшения границы, как указано в пункте 8.4.4.2.X3, связан для верхних опорных отсчетов с размером nTbW блока, опорными отсчетами refT, размером borderSize границы, флагом границы повышающей дискретизации needUpsBdryVer и размером границы повышающей дискретизации upsBdryW в качестве входных данных и уменьшенными граничными отсчетами redT[x] при x = 0..boundarySize - 1 и граничными отсчетами upsBdryT[x] с повышающей дискретизацией при x = 0..upsBdryW - 1 в качестве выходных данных.
- Процесс уменьшения границы, как указано в пункте 8.4.4.2.X3, связан для левых опорных отсчетов с размером nTbH блока, опорных отсчетов refL, размером BorderSize границы, флагом границы повышающей дискретизации needUpsBdryHor и размером границы повышающей дискретизации upsBdryH в качестве входных данных и отсчетами уменьшенной границы redL[x] при x = 0..boundarySize - 1 и граничными отсчетами с повышенной дискретизацией upsBdryL[x] при x = 0..upsBdryH - 1 в качестве выходных данных.
- Уменьшенные верхний и левый граничные отсчеты redT и redL назначаются массиву граничных отсчетов p следующим образом:
- Если isTransposed равен 1, p[x] устанавливается равным redL[x] при x = 0..boundarySize - 1, и p[x + BorderSize] устанавливается равным redT[x] при x = 0.. borderSize - 1.
- В противном случае p[x] устанавливается равным redT[x] при x = 0..boundarySize - 1, и p[x + BorderSize] устанавливается равным redL[x] при x = 0..boundarySize - 1.
Для внутрикадрового процесса предсказания отсчета согласно predModeIntra применяются следующие упорядоченные шаги:
1. Аффинные линейно-взвешенные отсчеты predLwip[x][y] при x = 0..lwipW - 1, y = 0..lwipH - 1 получаются следующим образом:
- Переменная modeId получается следующим образом:
modeId = predModeIntra - ( isTransposed = = 1) ? ( numModes / 2 ) : 0 (8-X22)
- Весовая матрица mWeight[х][у] при x = 0..2 * boundarySize - 1, у = 0..predC * predC - 1 получается с помощью sizeId и modeId, как указано в таблице 8-XX[TBD: добавить весовые матрицы].
- Вектор смещения vBias[y] при y = 0..predC * predC - 1 получается с использованием sizeId и modeId, как указано в таблице 8-XX[TBD: добавить векторы смещения].
- Переменная sW получается с использованием sizeId и modeId, как указано в таблице 8-X5.
- Аффинные линейно-взвешенные отсчеты predLwip[x][y] при x = 0..lwipW - 1, y = 0..lwipH - 1 получаются следующим образом:
oW = 1 << ( sW - 1 ) (8-X23)
sB = BitDepthY - 1 (8-X24)
incW = ( predC > lwipW ) ? 2 : 1 (8-X25)
incH = ( predC > lwipH ) ? 2 : 1 (8-X26)
predLwip[ x ][ y ] = ( () +
( vBias[ y * incH * predC + x * incW ] << sB ) + oW ) >> sW (8-X27)
2. Предсказанные отсчеты predSamples[х][у] при х = 0..nTbW - 1, у = 0..nTbH - 1 получаются следующим образом:
- Когда isTransposed равен 1, predLwip[x][y], при x = 0..predW - 1, y = 0..predH - 1 устанавливается равным predLwip[y][x].
- Если needUpsBdryVer равен значению "истина" или needUpsBdryHor равен значению "истина", процесс повышения дискретизации предсказания, как указано в пункте 8.4.4.2.X4, связан с шириной predW входного блока, высотой predH входного блока, аффинными линейно-взвешенными отсчетами predLwip, шириной nTbW блока преобразования, высотой nTbH блока преобразования, шириной upsBdryW границы повышающей дискретизации, высотой upsBdryH границы повышающей дискретизации, верхними отсчетами upsBdryT границы повышающей дискретизации и левыми отсчетами upsBdryL границы повышающей дискретизации в качестве входных данных, и выходными данными является массив predSamples предсказанных отсчетов.
- В противном случае predSamples[x][y] при x = 0..nTbW - 1, y = 0..nTbH - 1 устанавливается равным predLwip[x][y].
Таблица 8-X5. Спецификация смещений sW весовых коэффициентов в зависимости от sizeId и modeId
8.4.4.2.X2 Процесс получения опорного отсчета
Входными параметрами в этом процессе являются:
- местоположение (xTbY, yTbY) отсчета, определяющее верхний левый отсчет яркости текущего блока преобразования по отношению к верхнему левому отсчету яркости текущего изображения,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования.
Выходными параметрами в этом процессе являются верхний и левый опорные отсчеты refT[x] при x = 0..nTbW - 1 и refL[y] при y = 0..nTbH - 1, соответственно.
Соседние отсчеты refT[x] при x = 0..nTbW - 1 и refL[y] при y = 0..nTbH - 1 являются отсчетами созданными перед процессом внутриконтурной фильтрации и получаются следующим образом:
- Верхнее и левое соседние местоположения (xNbT, yNbT) яркости и (xNbL, yNbL) задаются следующим образом:
(xNbT, yNbT) = (xTbY + x, yTbY - 1) (8-X28)
(xNbL, yNbL) = (xTbY - 1, yTbY + y) (8-X29)
- Процесс получения доступности для блока, как указано в пункте 6.4.X [Редакция (BB): процесс проверки доступности соседних блоков tbd] связан с текущим местоположением (xCurr, yCurr) яркости, установленным равным (xTbY, yTbY), и верхним соседним местоположением (xNbT, yNbT) яркости в качестве входных данных, и выходные данные назначаются availTop[x] при x = 0..nTbW - 1.
- Процесс получения доступности для блока, как указано в пункте 6.4.X [Редакция (BB): процесс проверки доступности соседних блоков tbd] связан с текущим местоположением (xCurr, yCurr) яркости, установленным равным (xTbY, yTbY), и левым соседним местоположением (xNbL, yNbL) яркости в качестве входных данных, и выходные данные назначаются availLeft[y] при y = 0..nTbH - 1.
- Верхние опорные отсчеты refT[x] при x = 0..nTbW - 1 получаются следующим образом:
- Если все availTop[x] при x = 0..nTbW - 1 равны значению "истина", отсчет в местоположении (xNbT, yNbT) назначается refT[x] при x = 0..nTbW - 1.
- В противном случае, если availTop[0] равно значению "ложь", все refT[x] при x = 0..nTbW - 1 устанавливаются равными 1 << (BitDepth Y - 1).
- В противном случае опорные отсчеты refT[x] при x = 0..nTbW - 1 получаются с помощью следующих упорядоченных шагов:
1. Переменная lastT устанавливается равной позиции x первого элемента в последовательности availTop[x] при x = 1..nTbW - 1, что равно значению "ложь".
2. Для каждого x = 0..lastT - 1 отсчету в местоположении (xNbT, yNbT) назначается refT[x].
3. Для каждого x = lastT..nTbW - 1 refT[x] устанавливается равным refT[lastT - 1].
- Левый опорный отсчет refL[y] при x = 0..nTbH - 1 получаются следующим образом:
- Если все availLeft[y] при y = 0..nTbH - 1 равны значению "истина", отсчет в местоположении (xNbL, yNbL) назначается refL[y] при y = 0..nTbH - 1.
- В противном случае, если availLeft[0] равно значению "ложь", все refL[y] при y = 0..nTbH - 1 устанавливаются равными 1 << (BitDepth Y - 1).
- В противном случае опорные отсчеты refL[y] при y = 0..nTbH - 1 получаются с помощью следующих упорядоченных шагов:
1. Переменная lastL устанавливается равной позиции y первого элемента в последовательности availLeft[y] при y = 1..nTbH - 1, что равно значению "ложь".
2. Для каждого y = 0..lastL - 1 отсчету в местоположении (xNbL, yNbL) назначается refL[y].
3. Для каждого y = lastL..nTbH - 1 refL[y] устанавливается равным refL[lastL - 1].
Спецификация процесса уменьшения границы
Входными параметрами в этом процессе являются:
- переменная nTbX, определяющая размер блока преобразования,
- опорные отсчеты refX[x] при x = 0..nTbX - 1,
- переменная BorderSize, определяющая размер границы понижающей дискретизации,
- флаг needUpsBdryX, указывающий, требуются ли промежуточные граничные отсчеты для повышающей дискретизации,
- переменная upsBdrySize, определяющая размер границы повышающей дискретизации.
Выходными данными этого процесса являются уменьшенные граничные отсчеты redX[x] при x = 0..boundarySize - 1 и граничные отсчетыupsBdryX[x] с повышенной дискретизацией при x = 0.. upsBdrySize - 1.
Граничные отсчетыupsBdryX[х] с повышенной дискретизацией при х = 0.. upsBdrySize - 1 получаются следующим образом:
- Если needUpsBdryX равен значению "истина", и upsBdrySize меньше nTbX, применяется следующее:
uDwn = nTbX / upsBdrySize (8-X30)
upsBdryX[ x ] = ( + ( 1 << ( Log2( uDwn ) - 1 ) )) >> Log2( uDwn ) (8-X31)
- В противном случае (upsBdrySize равен nTbX) upsBdryX[x] устанавливается равным refX[x].
Уменьшенные граничные отсчеты RedX[х] при х = 0..boundarySize - 1 получаются следующим образом:
- Если BorderSize меньше upsBdrySize, применяется следующее:
bDwn = upsBdrySize / boundarySize (8-X32)
redX[ x ] = ( + ( 1 << ( Log2( bDwn ) - 1 ) )) >> Log2( bDwn ) (8-X33)
- В противном случае (BorderSize равен upsBdrySize) redX[x] устанавливается равным upsBdryX[x].
8.4.4.2.X4 Спецификация процесса повышения дискретизации предсказания
Входными параметрами в этом процессе являются:
- переменная predW, определяющая ширину входного блока,
- переменная predH, определяющая высоту входного блока,
- аффинные линейно-взвешенные отсчеты predLwip[x][y], при x = 0..predW - 1, y = 0..predH - 1,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования,
- переменная upsBdryW, определяющая ширину границы повышающей дискретизации,
- переменная upsBdryH, определяющая высоту границы повышающей дискретизации,
- верхние граничные отсчеты upsBdryT[x] с повышенной дискретизацией при x = 0..upsBdryW - 1,
- левые граничные отсчеты upsBdryL[x] с повышенной дискретизацией при x = 0..upsBdryH - 1.
Выходными данными этого процесса являются Предсказанные отсчеты predSamples[x][y] при x = 0..nTbW - 1, y = 0..nTbH - 1.
Разреженные Предсказанные отсчеты predSamples[m][n] получаются из predLwip[x][y] при x = 0..predW - 1, y = 0..predH - 1 следующим образом:
upHor = nTbW / predW (8-X34)
upVer = nTbH / predH (8-X35)
predSamples[ ( x + 1 ) * upHor - 1 ][ ( y + 1 ) * upVer - 1 ] = predLwip[ x ][ y ] (8-X36)
Верхние граничные отсчеты upsBdryT[x] при x = 0..upsBdryW - 1 назначаются для predSamples[m][-1] следующим образом:
predSamples[ ( x + 1 ) * ( nTbW / upsBdryW ) - 1 ][ -1 ] = upsBdryT[ x ] (8-X37)
Левые граничные отсчеты upsBdryL[y] при y = 0..upsBdryH - 1 назначаются predSamples[-1][n] следующим образом:
predSamples[ -1 ][ ( y + 1 ) * ( nTbH / upsBdryH ) - 1 ] = upsBdryL[ y ] (8-X38)
Предсказанные отсчеты predSamples[х][у] при х = 0..nTbW - 1, у = 0..nTbH - 1 получаются следующим образом:
- Если nTbH больше, чем nTbW, применяются следующие упорядоченные шаги:
1. Когда upHor больше 1, горизонтальная повышающая дискретизация для всех разреженных позиций (xHor, yHor) = (m * upHor - 1, n * upVer - 1) применяется при m = 0..predW - 1, n = 1..predH с dX = 1..upHor - 1 следующим образом:
predSamples[ xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[ xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] ) / upHor (8-X39)
2. Вертикальная повышающая дискретизация для всех разреженных позиций (xVer, yVer) = (m, n * upVer - 1) при m = 0..nTbW - 1, n = 0..predH - 1 применяется при dY = 1..upVer - 1 следующим образом:
predSamples[ xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[ xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ] ) / upVer (8-X40)
- В противном случае применяются следующие шаги:
1. Когда upVer больше 1, применяется вертикальная повышающая дискретизация для всех разреженных позиций (xVer, yVer) = (m * upHor - 1, n * upVer - 1) при m = 1..predW, n = 0..predH - 1. с dY = 1..upVer - 1, как указано в (8-X40).
2. Горизонтальная повышающая дискретизация для всех разреженных позиций (xHor, yHor) = (m * upHor - 1, n) при m = 0..predW - 1, n = 0..nTbH - 1 применяется при dX = 1..upHor - 1, как указано в (8-X39).
<end>
3 : ( 0,1,2
(пункт 9.5.4.2.2) )
<end>
Краткое описание ALWIP
Для предсказания отсчетов прямоугольного блока с шириной и высотой аффинное линейно-взвешенное внутрикадровое предсказание (ALWIP) принимает одну строку из H восстановленных соседних граничных отсчетов слева от блока и одну строку восстановленных соседних граничных отсчетов над блоком в качестве входных данных. Если восстановленные отсчеты недоступны, они вырабатываются таким образом, как это делается в традиционном внутрикадровом предсказании. ALWIP применяется только к внутрикадровому блоку. Для внутрикадрового блока цветности применяются традиционные режимы внутрикадрового кодирования.
Выработка сигнала предсказания основана на следующих трех этапах:
1. Четыре отсчета в случае W=H=4 и восемь отсчетов во всех других случаях извлекаются из граничных отсчетов посредством усреднения.
2. Матрично-векторное умножение с последующим сложением смещения выполняется с усредненными отсчетами в качестве входных данных. Результатом является уменьшенный сигнал предсказания в отношении субдискретизированного набора отсчетов в исходном блоке.
3. Сигнал предсказания в оставшихся позициях вырабатывается из сигнала предсказания в отношении субдискретизированного набора с помощью линейной интерполяции, которая является одношаговой линейной интерполяцией в каждом направлении.
Если должен применяться режим ALWIP, то индекс режима ALWIP сигнализируется с использованием списка MPM с 3 MPMS. Здесь получение MPM выполняется с использованием внутрикадровых режимов верхней и левой PU следующим образом. Имеются три фиксированных таблицы , , которые назначают режим ALWIP каждому традиционному режиму внутрикадрового предсказания.
Для каждой PU с шириной и высотой определяется индекс
который указывает то, из какого из трех наборов должны быть взяты параметры ALWIP.
Если вышеуказанная единица предсказания является доступной, принадлежит к той же CTU, что и текущая PU, и находится во внутрикадровом режиме, если и если ALWIP применимо к с ALWIP-режимом , полагаем, что
Если вышеуказанная единица PU является доступной, принадлежит к той же CTU, что и текущая PU, и находится во внутрикадровом режиме, и если к вышеуказанной PU применяется традиционный режим внутрикадрового предсказания, то полагаем, что
Во всех остальных случаях полагаем, что
что означает, что этот режим является недоступным. Таким же образом, но без ограничения относительно того, что левая PU должна принадлежать к той же CTU, что и текущая PU, получается режим .
Наконец, предоставляются три фиксированных списка по умолчанию , , каждый из которых содержит три различных режима ALWIP. Из списка по умолчанию и режимов и создаются три отдельных MPM путем замены -1 на значения по умолчанию, а также исключения повторений.
Для получения MPM-списка яркости всякий раз, когда встречается соседний блок яркости, который использует ALWIP-режим , этот блок обрабатывается таким образом, как если бы он использовал традиционный режим внутрикадрового предсказания .
3. Преобразование в VVC
3.1
В дополнение к DCT-II, который использовался в HEVC, схема выбора множественного преобразования (MTS) используется для кодирования остатка как межкадровых, так и внутрикадровых кодированных блоков. Он использует несколько выбранных преобразований из DCT8/DST7. DST-VII и DCT-VIII представляют собой недавно введенные матрицы преобразования.
3.2. Уменьшенное вторичное преобразование (RST), предложенное в JVET-N0193
Уменьшенное вторичное преобразование (RST) применяет неразделимое преобразование 16x16 и 16x64 для блоков 4x4 и 8x8, соответственно. Первичное прямое и обратное преобразования по-прежнему выполняются так же, как два прохода одномерного горизонтального/вертикального преобразования. Вторичные прямые и обратные преобразования представляют собой отдельный этап обработки из этих первичных преобразований. Для кодера сначала выполняется первичное прямое преобразование, за которым следуют вторичное прямое преобразование и квантование и битовое кодирование CABAC. Для декодера сначала выполняется битовое декодирование CABAC и обратное квантование, затем вторичное обратное преобразование, за которым следует первичное обратное преобразование. RST применяется только к внутрикадровым кодированным TU как во внутрикадровых, так и в межкадровых слайсах.
3.3. Унифицированный список MPM для кодирования во внутрикадровом режиме в JVET-N0185
Унифицированный список 6-MPM предлагается для внутрикадровых блоков, независимо от того, применяются ли инструменты кодирования множественной справочной линии (MRL) и внутрикадрового подраздела (ISP). Список MPM составляется на основе внутрикадрового режима левого и верхнего соседнего блока, как в VTM4.0. Предполагая, что режим Left обозначен как Left, и режим верхнего блока обозначен как Above, унифицированный список MPM составляется следующим образом:
• Когда соседний блок является недоступным, его внутрикадровый режим по умолчанию установлен в режим Planar.
• Если оба режима Left и Above не являются угловыми:
a) список MPM → {Planar, DC, V, H, V-4, V + 4}
• Если один из режимов Left и Above является угловым, а другой неугловым:
a) установить режим Max как более крупный режим слева и сверху
b) список MPM → {Planar, Max, DC, Max -1, Max +1, Max -2}
• Если оба режима Left и Above являются угловыми и разными:
a) установить режим Max как более крупный режим слева и сверху
b) Если разница режимов Left и Above находится в диапазоне от 2 до 62 включительно
1) список MPM → {Planar, Left, Above, DC, Max -1, Max +1}
c) В противном случае
1) список MPM → {Planar, Left, Above, DC, Max -2, Max +2}
• Если Left и Above являются угловыми и одинаковыми:
a) список MPM → {Planar, Left, Left -1, Left +1, DC, Left -2}
Кроме того, первый бин кодового слова индекса MPM представляет собой контекстно-кодированное CABAC. Всего используются три контекста, соответствующие тому, включен ли текущий внутрикадровый блок MRL, включен ISP или нормальный внутрикадровый блок.
A2 и B2 представляют собой левый соседний блок и верхний соседний блок, которые используются в составлении унифицированного списка MPM, как показано на фиг.10.
Сначала кодируется один флаг MPM. Если блок закодирован с использованием одного из режимов в списке MPM, дополнительно кодируется индекс MPM. В противном случае кодируется указатель остальных режимов (исключая MPM).
4. Примеры недостатков в существующих реализациях
Дизайн ALWIP в JVET-N0217 имеет следующие проблемы:
1) На конференции JVET в марте 2019 года было принято унифицированное составление списка 6-MPM для режима MRL, режима ISP и нормального внутрикадрового режима. Но в режиме аффинного линейно-взвешенного предсказания используется другое составление списка 3-MPM, что усложняет составление списка MPM. Сложная конструкция списка MPM может поставить под угрозу пропускную способность декодера, особенно для небольших блоков, таких как отсчеты 4x4.
2) ALWIP применяется только к компоненту яркости блока. Для компонента цветности ALWP-кодированного блока индекс режима цветности кодируется и отправляется в декодер, что может привести к ненужной сигнализации.
3) Взаимодействия ALWIP следует рассматривать с другими инструментами кодирования.
4) При вычислении upsBdryX в upsBdryX[x] = (Log2( uDwn ) - 1))) >> Log2(uDwn) (8-X31), возможно, что Log2( uDwn ) - 1 равен -1, при этом сдвиг влево на -1 не определен.
5) При повышающей дискретизации отсчетов предсказания округление не применяется.
6) В процессе удаления блочности ALWIP-кодированные блоки обрабатываются как нормальные внутрикадровые блоки.
5. Примерные способы внутрикадрового кодирования матриц
Варианты осуществления технологии, раскрытой в данном документе, устраняют недостатки существующих реализаций, тем самым обеспечивая кодирование видео с более высокой эффективностью кодирования, но меньшей вычислительной сложностью. Способы матричного внутрикадрового предсказания для кодирования видео, описанные в данном документе, позволяют улучшить как существующие, так и будущие стандарты кодирования видео, которые поясняются в следующих примерах, описанных для различных реализаций. Примеры раскрытой технологии, представленные ниже, объясняют общие концепции и не предназначены для интерпретации как ограничивающие. В одном примере могут быть объединены различные функции, описанные в этих примерах, если явно не указано иное.
В последующем обсуждении режим внутрикадрового предсказания относится к режиму углового внутрикадрового предсказания (включая DC, планарный, CCLM и другие возможные режимы внутрикадрового предсказания); при этом внутрикадровый режим относится к нормальному внутрикадровому режиму, или MRL, или ISP, или ALWIP.
В нижеследующем обсуждении "другие внутрикадровые режимы" могут относиться к одному или нескольким внутрикадровым режимам, кроме ALWIP, например, к нормальному внутрикадровому режиму, или MRL или ISP.
В последующем обсуждении SatShift(x, n) определяется в виде
Shift(x, n) определяется в виде Shift(x, n) = (x + offset0) >> n.
В одном примере offset0 и/или offset1 установлены в (1 << n) >> 1 или (1 << (n-1)). В другом примере offset0 и/или offset1 установлены в 0.
В другом примере offset0=offset1= ((1<<n)>>1)-1 или ((1<<(n-1)))-1.
Clip3(min, max, x) определяется в виде
Составление списка MPM для ALWIP
1. Предлагается, что весь или частичный список MPM для ALWIP может быть составлен в соответствии с полной или частичной процедурой составления списка MPM для внутрикадрового режима без-ALWIP (например, нормальный внутрикадровый режим, MRL или ISP).
a) В одном примере размер списка MPM для ALWIP может быть таким же, как размер списка MPM для внутрикадрового режима без-ALWIP.
(1) Например, размер списка MPM равен 6 как для режима ALWIP, так и для внутрикадрового режима без-ALWIP.
b) В одном примере список MPM для ALWIP может быть получен из списка MPM для внутрикадрового режима без-ALWIP.
(1) В одном примере список MPM может быть сначала составлен для внутрикадрового режима без-ALWIP. Затем часть или все из него могут быть преобразованы в MPM, которые могут быть дополнительно добавлены в список MPM для ALWIP-кодированных блоков.
1) Кроме того, в качестве альтернативы, при добавлении преобразованного MPM в список MPM для ALWIP-кодированных блоков может применяться сокращение.
2) Режимы по умолчанию могут быть добавлены в список MPM для ALWIP-кодированных блоков.
a) В одном примере режимы по умолчанию могут быть добавлены перед тем, как они будут преобразованы из списка MPM внутрикадрового режима без-ALWIP.
b) В качестве альтернативы, режимы по умолчанию могут быть добавлены после того, как они будут преобразованы из списка MPM внутрикадрового режима без-ALWIP.
c) В качестве альтернативы, режимы по умолчанию могут быть добавлены чередующимся образом с теми, которые были преобразованы из списка MPM внутрикадрового режима без-ALWIP.
d) В одном примере режимы по умолчанию могут быть зафиксированы одинаковыми для всех типов блоков.
e) В качестве альтернативы, режимы по умолчанию могут быть определены в соответствии с кодированной информации, такой как доступность соседних блоков, информация о режиме соседних блоков, размер блока.
b) В одном примере один режим внутрикадрового предсказания в списке MPM для внутрикадрового режима без-ALWIP может быть преобразован в соответствующий ему режим внутрикадрового предсказания ALWIP, когда он помещен в список MPM для ALWIP.
1) В качестве альтернативы, все режимы внутрикадрового предсказания в списке MPM для внутрикадрового режима без-ALWIP могут быть преобразованы в соответствующие режимы внутрикадрового предсказания ALWIP перед использованием для составления списка MPM для ALWIP.
2) В качестве альтернативы, все режимы-кандидаты внутрикадрового предсказания (могут включать в себя режим внутрикадрового предсказания из соседних блоков и режимы внутрикадрового предсказания по умолчанию, такие как планарный (Planar) и DC) могут быть преобразованы в соответствующие режимы внутрикадрового предсказания ALWIP перед использованием для составления списка MPM для внутрикадрового режима без-ALWIP, если список MPM для внутрикадрового режима без-ALWIP может быть использован для получения списка MPM для ALWIP.
3) В одном примере можно сравнить два преобразованных режима внутрикадрового предсказания ALWIP.
a) В одном примере, если они являются одинаковыми, только один из них может быть помещен в список MPM для ALWIP.
b) В одном примере, если они являются одинаковыми, только один из них может быть помещен в список MPM для внутрикадровых режимов без-ALWIP.
(3) В одном примере K из S режимов внутрикадрового предсказания в списке MPM для внутрикадрового режима без-ALWIP могут быть выбраны в качестве списка MPM для режима ALWIP. Например, K равен 3, и S равен 6.
1) В одном примере первые K режимов внутрикадрового предсказания в списке MPM для внутрикадрового режима без-ALWIP могут быть выбраны в качестве списка MPM для режима ALWIP.
2. Предлагается, что один или несколько соседних блоков, используемых для получения списка MPM для ALWIP, можно также использовать для получения списка MPM для внутрикадрового режима без-ALWIP (например, для нормального внутрикадрового режима, MRL или ISP).
a) В одном примере, соседний блок слева от текущего блока, используемый для получения списка MPM для ALWIP, должен быть таким же, как и блок, используемый для получения списка MPM для внутрикадровых режимов без-ALWIP.
(1) Если предположить, что верхний левый угол текущего блока равен (xCb, yCb), W и H - ширина и высота текущего блока, то в одном примере левый соседний блок используется для получения списка MPM как для ALWIP, так и для внутрикадровых режимов без-ALWIP может покрывать позиции (xCb-1, yCb). В альтернативном примере левый соседний блок, используемый для получения списка MPM как для режима ALWIP, так и для внутрикадрового режима без-ALWIP, может покрывать позицию (xCb-1, yCb+H-1).
(2) Например, A2 и B2 - левый соседний блок и верхний соседний блок, используемые при составлении унифицированного списка MPM, как показано на фиг.10.
b) В одном примере блок, соседний с текущим блоком, который используется для получения списка MPM для ALWIP, должен быть таким же, как блок, используемый для получения списка MPM для внутрикадровых режимов без-ALWIP.
(1) Предположим, что верхний левый угол текущего блока имеет позицию (xCb, yCb), W и H - ширина и высота текущего блока, то в одном примере верхний соседний блок, используемый для получения списка MPM как для ALWIP, так и для внутрикадровых режимов без-ALWIP, может покрывать позиции (xCb, yCb-1). В альтернативном примере верхний соседний блок, используемый для получения списка MPM как для режима ALWIP, так и для внутрикадрового режима без-ALWIP, может покрывать позицию (xCb + W-1, yCb-1).
(2) Например, A1 и B1 - левый соседний блок и верхний соседний блок, используемые при составлении унифицированного списка MPM, как показано на фиг.10.
3. Предлагается, что список MPM для ALWIP может быть составлен по-разному в соответствии с шириной и/или высотой текущего блока.
a) В одном примере при разных размеров блока может быть получен доступ к разным соседним блокам.
4. Предлагается, что список MPM для ALWIP и список MPM для внутрикадровый режимов без-ALWIP может быть составлен с помощью одной и той же процедуры, но с разными параметрами.
a) В одном примере K из S режимов внутрикадрового предсказания в процедуре составления списка MPM для внутрикадровых режимов без-ALWIP может быть получен для списка MPM, используемого в режиме ALWIP. Например, K равен 3, и S равен 6.
(1) В одном примере первые K режимов внутрикадрового предсказания в процедуре составления списка MPM могут быть получены для списка MPM, используемого в режиме ALWIP.
b) В одном примере первый режим в списке MPM может быть другим.
(1) Например, первый режим в списке MPM для внутрикадрового режима без-ALWIP может быть режимом Planar, но он может быть режимом X0 в списке MPM для ALWIP.
1) В одном примере X0 может быть режимом внутрикадрового предсказания ALWIP, преобразованным из режима Planar.
c) В одном примере режимы заполнения в списке MPM могут быть разными.
(1) Например, первыми тремя режимами заполнения в списке MPM для внутрикадрового режима без-ALWIP могут быть режимы DC, Vertical и Horizontal, но они могут быть режимами Mode X1, X2, X3 в списке MPM для ALWIP.
1) В одном примере режимы X1, X2, X3 могут быть разными для разных sizeId.
(2) В одном примере количество режимов заполнения может быть другим.
d) В одном примере соседние режимы в списке MPM могут быть разными.
(1) Например, нормальные режимы внутрикадрового предсказания соседних блоков используются для составления списка MPM для внутрикадровых режимов без-ALWIP, и они преобразуются в режимы ALWIP внутрикадрового предсказания для составления списка MPM для режима ALWIP.
e) В одном примере смещенные режимы в списке MPM могут быть разными.
(1) Например, X+K0, где X - нормальный режим внутрикадрового предсказания, и K0 - целое число, может быть помещено в список MPM для внутрикадровых режимов без-ALWIP, и Y+K1, где Y - режим внутрикадрового предсказания ALWIP, и K1 - целое число, может быть помещено в список MPM для ALWIP, где K0 может отличаться от K1.
1) В одном примере K1 может зависеть от ширины и высоты.
5. Предлагается, что соседний блок обрабатывается как недоступный в том случае, если он закодирован с ALWIP при составлении списка MPM для текущего блока с внутрикадровыми режимами без-ALWIP.
a) В качестве альтернативы, соседний блок обрабатывается как закодированный с заданным режимом внутрикадрового предсказания (например, режимом Planar) в том случае, если он закодирован с ALWIP при составлении списка MPM для текущего блока с внутрикадровыми режимами без-ALWIP.
6. Предлагается, что соседний блок обрабатывается как недоступный в том случае, если он закодирован с внутрикадровыми режимами без-ALWIP при составлении списка MPM для текущего блока в режиме ALWIP.
a) В качестве альтернативы, соседний блок обрабатывается как закодированный с заданным режимом X внутрикадрового предсказания ALWIP, если он закодирован с внутрикадровым режимом без-ALWIP при составлении списка MPM для текущего блока в режиме ALWIP.
(1) В одном примере X может зависеть от размеров блока, таких как ширина и/или высота.
7. Предлагается удалить хранение флага ALWIP из строкового буфера.
a) В одном примере, когда 2-й блок, к которому необходимо получить доступ, расположен в другой строке/области LCU/CTU по сравнению с текущим блоком, условная проверка того, закодирован ли 2-й блок с ALWIP, пропускается.
b) В одном примере, когда 2-й блок, к которому нужно получить доступ, расположен в другой строке/области LCU/CTU по сравнению с текущим блоком, 2-й блок обрабатывается так же, как режим без-ALWIP, например, обрабатывается как нормальный внутрикадровый кодированный блок.
8. При кодировании флага ALWIP можно использовать не более K (K> = 0) контекстов.
a) В одном примере K = 1.
9. Предлагается сохранять преобразованный режим внутрикадрового предсказания кодированных блоков ALWIP вместо непосредственного хранения индекса режима, ассоциированного с режимом ALWIP.
a) В одном примере декодированный индекс режима, ассоциированный с одним кодированным блоком ALWIP, сопоставляется с нормальным внутрикадровым режимом, например, в соответствии с , как описано в разделе 2.5.7.
b) Кроме того, в качестве альтернативы, полностью удаляется хранение флага ALWIP.
c) Кроме того, в качестве альтернативы, полностью удаляется сохранение режима ALWIP.
d) Кроме того, в качестве альтернативы, может быть пропущена проверка состояния того, закодирован ли один соседний/текущий блок с флагом ALWIP.
e) Кроме того, в качестве альтернативы, может быть пропущено преобразование режимов, назначенных для ALWIP-кодированных блоков, и нормальных внутрикадровых предсказаний, ассоциированных с одним блоком, к которому осуществляется доступ.
ALWIP для разных цветовых компонентах
10. Предлагается, что предполагаемый внутрикадровый режим цветности (например, режим DM) мог всегда применяться в том случае, если соответствующий блок яркости закодирован в режиме ALWIP.
a) В одном примере внутрикадровый режим цветности получается как режим DM без сигнализации, если соответствующий блок яркости закодирован в режиме ALWIP.
b) В одном примере соответствующий блок яркости может быть блоком, покрывающим соответствующий отсчета отсчета цветности, расположенного в заданной позиции (например, в верхнем левом углу текущего блока цветности, в центре текущего блока цветности).
c) В одном примере режим DM может быть получен согласно режиму внутрикадрового предсказания соответствующего блока яркости, например, путем сопоставления режима (ALWIP) с одним из нормальных внутрикадровых режимов.
11. Когда соответствующий блок яркости блоков цветности кодируется в режиме ALWIP, можно получить несколько режимов DM.
12. Предлагается, что специальный режим назначается блокам цветности, если один соответствующий блок яркости закодирован в режиме ALWIP.
a) В одном примере специальный режим определяется как заданный нормальный режим внутрикадрового предсказания независимо от режима внутрикадрового предсказания, ассоциированного с блоками, кодированными ALWIP.
b) В одном примере этому специальному режиму могут быть назначены различные способы внутрикадрового предсказания.
13. Предполагается, что ALWIP может также применяться к компонентам цветности.
a) В одном примере матрица и/или вектор смещения могут быть разными для разных цветовых компонентов.
b) В одном примере матрица и/или вектор смещения могут быть заданы совместно для Cb и Cr.
(1) В одном примере компоненты Cb и Cr могут быть объединены.
(2) В одном примере компоненты Cb и Cr могут чередоваться.
c) В одном примере компонент цветности может совместно использовать тот же режим внутрикадрового предсказания ALWIP, что и соответствующий блок яркости.
(1) В одном примере один и тот же режим внутрикадрового предсказания ALWIP применяется к компоненту цветности, если в соответствующем блоке яркости применяется режим ALWIP, и блок цветности кодируется в режиме DM.
(2) В одном примере один и тот же режим внутрикадрового предсказания ALWIP применяется к компоненту цветности, и после этого можно пропустить линейную интерполяцию.
(3) В одном примере один и тот же режим внутрикадрового предсказания ALWIP применяется к компоненту цветности с субдискретизированной матрицей и/или вектором смещения.
d) В одном примере количество режимов внутрикадрового предсказания ALWIP для разных компонентов может быть различным.
(1) Например, количество режимов внутрикадрового предсказания ALWIP для компонентов цветности может быть меньше, чем для компонента яркости для одной и той же ширины и высоты блока.
Применимость ALWIP
14. Предлагается сигнализировать о возможности применения ALWIP.
a) Например, сигнализация может быть выполнена на уровне последовательности (например, в SPS), на уровне изображения (например, в PPS или заголовке изображения), на уровне слайса (например, в заголовке слайса), на уровне группы мозаичных элементов (например, в заголовке группы мозаичных элементов), на уровне мозаичного элемента, на уровне строки CTU или на уровне CTU.
b) Например, intra_lwip_flag не может сигнализироваться и получаться равным 0, если нельзя применить ALWIP.
15. Предполагается, что возможность применения ALWIP может зависеть от ширины (W) и/или высоты (H) блока.
c) Например, ALWIP может не применяться, если W>=T1 (или W>T1) и H>=T2 (или H>T2). Например, T1=T2=32;
(1) Например, ALWIP может не применяться, если W<=T1 (или W<T1) и H<=T2 (или H<T2). Например, T1=T2=32;
d) Например, ALWIP может не применяться, если W>=T1 (или W>T1) или H>=T2 (или H>T2). Например, T1=T2=32;
(1) Например, ALWIP может не применяться, если W<=T1 (или W<T1) или H<=T2 (или H<T2). Например, T1=T2=32 или T1=T2=8;
e) Например, ALWIP может не применяться, если W+H>=T (или W*H>T). Например, T = 256;
(1) Например, ALWIP может не применяться, если W+H<=T (или W+H<T). Например, T = 256;
f) Например, ALWIP может не применяться, если W*H>=T (или W*H>T). Например, T = 256;
(1) Например, ALWIP может не применяться, если W*H<=T (или W*H<T). Например, T = 256;
g) Например, intra_lwip_flag не может сигнализироваться и получаться равным 0, если нельзя примерить ALWIP.
Проблемы вычислений в ALWIP
16. Предполагается, что любая операция сдвига, задействованная в ALWIP, может выполнять только сдвиг влево или вправо на число S, где S должно быть больше или равно 0.
a) В одном примере операция сдвига вправо может отличаться, когда S равен 0 или больше 0.
(1) В одном примере upsBdryX[x] должен быть вычислен в виде
uDwn>1, and upsBdryX[ x ]= , когда uDwn равен 1.
b) В одном примере upsBdryX[x] должен быть вычислен в виде
upsBdryX[ x ]= ( + ( 1 << Log2( uDwn ) >>1 ) ) >> Log2( uDwn )
17. Предлагается, что результаты будут округляться в сторону нуля или от нуля в процессе повышающей дискретизации ALWIP.
a) В одном примере
predSamples[ xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[ xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] +offsetHor) / upHor (8-X39)
и
predSamples[ xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[ xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+offsetVer ) / upVer, (8-X40)
где offsetHor и offsetVer - целые числа. Например, offsetHor = upHor/2 и offsetVer=upVer/2.
Взаимодействие с другими инструментами кодирования
18. Предлагается, что ALWIP можно использовать для CIIP-кодированного блока.
a) В одном примере в CIIP-кодированном блоке может быть явно указано то, используется ли режим внутрикадрового предсказания ALWIP или нормальный режим внутрикадрового предсказания, такой как режим Planar, для выработки сигнала внутрикадрового предсказания.
b) В одном примере можно неявно сделать вывод о том, можно ли использовать режим внутрикадрового предсказания ALWIP или нормальный режим внутрикадрового предсказания, такой как режим Planar, для выработки сигнала внутрикадрового предсказания.
(1) В одном примере режим внутрикадрового предсказания ALWIP никогда не может использоваться в CIIP-кодированном блоке.
1) В качестве альтернативы, нормальное внутрикадровое предсказание никогда не может использоваться в CIIP-кодированном блоке.
(2) В одном примере из информации о соседних блоках можно сделать вывод о том, используется ли режим внутрикадрового предсказания ALWIP или нормальный режим внутрикадрового предсказания, такой как режим Planar, для выработки сигнала внутрикадрового предсказания.
19. Предлагается, что вся или часть процедуры, используемой для понижения дискретизации соседних отсчетов яркости в режиме CCLM, может использоваться для понижения дискретизации соседних отсчетов в режиме ALWIP.
a) В качестве альтернативы, вся или часть процедуры, используемой для понижения дискретизации соседних отсчетов яркости в режиме ALWIP, может использоваться для понижения дискретизации соседних отсчетов в режиме CCLM.
b) Процедура понижения дискретизации соседних отсчетов может быть использоваться с другими параметрами/аргументами, когда она используется в процессе CCLM и процессе ALWIP.
c) В одном примере способ понижаения дискретизации (такой как выбор соседних местоположений яркости, фильтры понижающей дискретизации) в процессе CCLM может использоваться в процессе ALWIP.
d) Процедура, используемая для понижения дискретизации соседних отсчетов яркости, по меньшей мере включает в себя выбор позиций понижающей дискретизации, фильтров понижающей дискретизации, операции округления и отбрасывания.
20. Предполагается, что блок, кодированный с использованием режима ALWIP, не может применять RST, или/и вторичное преобразование, или/и преобразование вращения, или/и неразделимое вторичное преобразование (NSST).
a) В одном примере то, может или нет такое усечение применяться, может зависеть от информации о размерах блока, например, таких же, как условия, описанные в (15).
b) В качестве альтернативы, режим ALWIP может быть запрещен, когда применяется RST, или/и вторичное преобразование, или/и преобразование вращения, или/и NSST.
c) В качестве альтернативы, блок, кодированный с использованием режима ALWIP, может применять RST, или/и вторичное преобразование, или/и преобразование вращения, или/и неразделимое вторичное преобразование (NSST).
(1) В одном примере выбор матрицы преобразования может зависеть от режима внутрикадрового предсказания ALWIP.
(2) В одном примере выбор матрицы преобразования может зависеть от нормального режима внутрикадрового предсказания, который преобразуется из режима внутрикадрового предсказания ALWIP.
(3) В одном примере выбор матрицы преобразования может зависеть от классификации нормального режима внутрикадрового предсказания, который преобразуется из режима внутрикадрового предсказания ALWIP.
21. Предполагается, что блок, кодированный с использованием режима ALWIP, не может применять DPCM на основе блоков (BDPCM) или RDPCM остатка.
a) В качестве альтернативы, режим ALWIP может быть запрещен при применении BDPCM или RDPCM.
22. Предлагается, что блок, кодированный с использованием режима ALWIP, может использовать только DCT-II в качестве преобразования.
a) В одном примере всегда пропускается сигнализация индексов матрицы преобразования.
b) В качестве альтернативы, предлагается, что преобразование, используемое для блока, кодированного с использованием режима ALWIP, может быть получено неявным образом вместо явной сигнализации. Например, преобразование может быть выбрано в соответствии со способом, предложенным в JVET-M0303.
c) В качестве альтернативы, предлагается, что блок, кодированный с использованием режима ALWIP, может использовать только пропуск преобразования.
(1) Кроме того, в качестве альтернативы, когда используется ALWIP, пропускается сигнализация указания использования пропуска преобразования.
d) В одном примере информация о режиме ALWIP (такая как включен/отключен, индекс режима предсказания) может быть условно сигнализирована после указаний матрицы преобразования.
(1) В одном примере для данной матрицы преобразования (такой как пропуск преобразования или DCT-II) могут сигнализироваться указания информации о режиме ALWIP.
(2) Кроме того, в качестве альтернативы, указания информации о режиме ALWIP могут быть пропущены для некоторых заданных матриц преобразования.
23. Предлагается, что блок, кодированный с использованием режима ALWIP, считается закодированным с нормальным внутрикадровым предсказанием, преобразованным из режима внутрикадрового предсказания ALWIP, когда выбранное преобразование зависит от режима.
24. Режим ALWIP может не использовать пропуск преобразования.
a) Например, в этом случае нет необходимости дополнительно сигнализировать об использовании пропуска преобразования.
b) В качестве альтернативы, режим ALWIP может быть запрещен, когда применяется пропуск преобразования.
(1) Например, нет необходимости сигнализировать информацию о режиме ALWIP, когда в этом случае применяется пропуск преобразования.
25. В процессе фильтрации, например, в котором используется фильтр удаления блочности, адаптивное смещение отсчетов (SAO), адаптивный контурный фильтр (ALF), то, как выбирать фильтры и/или фильтровать ли отсчеты, можно определить путем использования ALWIP.
26. Нефильтрованные соседние отсчеты могут использоваться в режиме ALWIP.
a) В качестве альтернативы, фильтрованные соседние отсчеты могут использоваться в режиме ALWIP.
b) В одном примере фильтрованные соседние отсчеты могут использоваться для понижения дискретизации, и нефильтрованные соседние отсчеты могут использоваться для повышения дискретизации.
c) В одном примере нефильтрованные соседние отсчеты могут использоваться для понижения дискретизации, и фильтрованные соседние отсчеты могут использоваться для повышения дискретизации.
d) В одном примере фильтрованные левые соседние отсчеты могут использоваться при повышающей дискретизации, и нефильтрованные верхние соседние отсчеты могут использоваться при повышающей дискретизации.
e) В одном примере нефильтрованные левые соседние отсчеты могут использоваться при повышающей дискретизации, и фильтрованные верхние соседние отсчеты могут использоваться при повышающей дискретизации.
f) В одном примере использование фильтра или нефильтрованных соседних отсчетов может зависеть от режима ALWIP.
(1) В одном примере режим ALWIP может быть преобразован в традиционный режим внутрикадрового предсказания, и то, будут ли использоваться фильтрованные или нефильтрованные соседние отсчеты, может зависеть от преобразованного традиционного режима внутрикадрового предсказания. Например, такое решение аналогично традиционным режимам внутрикадрового предсказания.
(2) В качестве альтернативы, можно сигнализировать то, используются ли фильтрованные или нефильтрованные соседние отсчеты для режима ALWIP.
g) В одном примере фильтрованные отсчеты могут вырабатываться так же, как в традиционных режимах внутрикадрового предсказания.
27. То, какие матрицы и/или векторы смещения используются, может зависеть от информации об восстанавлении первоначальной формы (также известной как LMCS, сопоставление яркости с масштабированием цветности).
a) В одном примере могут использоваться разные матрицы или/и векторы смещения, когда восстановление первоначальной формы включено и выключено.
b) В одном примере разные матрицы или/и векторы смещения могут использоваться для разных параметров восстанавления первоначальной формы.
c) В одном примере ALWIP всегда может выполняться в исходной области.
(1) Например, соседний отсчет сопоставляется с исходной областью (если применяется восстановление первоначальной формы) перед использованием в ALWIP.
28. Режим ALWIP может быть отключен в случае, когда применяется восстановление первоначальной формы.
a) В качестве альтернативы, восстановление первоначальной формы можно отключить, если включен режим ALWIP.
b) В одном примере ALWIP может быть отключен для содержания HDR (расширенный динамический диапазон), когда применяется восстановление первоначальной формы.
29. Матрицы, используемые в ALWIP, могут зависеть от битовой глубины отсчета.
30. Предполагается, что предсказание, выработанное ALWIP, может рассматриваться как промежуточный сигнал, который будет обрабатываться для получения сигнала предсказания, который будет использоваться в дальнейшем.
a) В одном примере комбинация позиционно-зависимого внутрикадрового предсказания (PDPC) может применяться к предсказанию, выработанному ALWIP, для выработки сигнала предсказания, который будет использоваться в дальнейшем.
b) В одном примере предсказание граничных отсчетов, выработанное ALWIP, может быть отфильтровано с помощью соседних отсчетов, чтобы выработать сигнал предсказания, который будет использоваться в дальнейшем.
31. Предлагается использовать интерполяционные фильтры, отличные от фильтра билинейной интерполяции, в процессе повышающей дискретизации ALWIP.
a) В одном примере 4-отводные интерполяционные фильтры могут использоваться в процессе повышающей дискретизации ALWIP.
(1) Например, 4-отводные интерполяционные фильтры в VVC, используемые для компенсации движения для компонентов цветности, могут использоваться в процессе повышающей дискретизации ALWIP.
(2) Например, 4-отводные интерполяционные фильтры в VVC, используемые для углового внутрикадрового предсказания, могут использоваться в процессе повышающей дискретизации ALWIP.
(3) Например, 8-отводные интерполяционные фильтры в VVC, используемые для компенсации движения для компонента яркости, могут использоваться в процессе повышающей дискретизации ALWIP.
Примеры, описанные выше, могут быть включены в контекст способов, описанных ниже, например, способов 1100-1400 и 2000-3800, которые могут быть реализованы в кодере и/или декодере видео.
На фиг.11 показана блок-схема последовательности операций примерного способа обработки видео. Способ 1100 включает в себя, на этапе 1102, определение того, что текущий видеоблок закодирован с использованием режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP).
Способ 1100 включает в себя, на этапе 1104, составление, на основе определения по меньшей мере части списка наиболее вероятных режимом (МРМ) для режима ALWIP на основе по меньшей мере части списка MPM для внутрикадрового режима без-ALWIP.
Способ 1100 включает в себя, на этапе 1106, выполнение, на основе списка MPM для режима ALWIP, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В некоторых вариантах осуществления размер списка MPM режима ALWIP идентичен размеру списка MPM для внутрикадрового режима без-ALWIP. В примере размер списка MPM режима ALWIP равен 6.
В некоторых вариантах осуществления способ 1100 дополнительно содержит этап вставки режимов по умолчанию в список MPM для режима ALWIP. В примере режимы по умолчанию вставляются перед частью списка MPM для режима ALWIP, который основан на списке MPM для внутрикадрового режима без-ALWIP. В другом примере режимы по умолчанию вставляются после части списка MPM для режима ALWIP, который основан на списке MPM для внутрикадрового режима без-ALWIP. В еще одном примере режимы по умолчанию вставляются с чередованием части списка MPM для режима ALWIP, который основан на списке MPM для внутрикадрового режима без-ALWIP.
В некоторых вариантах осуществления составление списка MPM для режима ALWIP и списка MPM для внутрикадрового режима без-ALWIP основано на одном или нескольких соседних блоках.
В некоторых вариантах осуществления, составление списка MPM для режима ALWIP и списка MPM для внутрикадрового режима без-ALWIP основано на высоте или ширине текущего видеоблока.
В некоторых вариантах осуществления составление списка MPM для режима ALWIP основано на первом наборе параметров, который отличается от второго набора параметров, используемых для составления списка MPM для внутрикадрового режима без-ALWIP.
В некоторых вариантах осуществления способ 1100 дополнительно включает в себя этап определения того, что соседний блок текущего видеоблока был закодирован с помощью режима ALWIP, и назначение, при составлении списка MPM для внутрикадрового режима без-ALWIP, соседнего блока как недоступного.
В некоторых вариантах осуществления способ 1100 дополнительно включает в себя этап определения того, что соседний блок текущего видеоблока был закодирован с помощью внутрикадрового режима без-ALWIP, и назначение, при составлении списка MPM для режима ALWIP, соседнего блока как недоступного.
В некоторых вариантах осуществления внутрикадровый режим без-ALWIP основан на нормальном внутрикадровом режиме, режиме внутрикадрового предсказания с множеством опорных линий (MRL) или инструменте внутрикадровых подразделов (ISP).
На фиг.12 показана блок-схема последовательности операций примерного способа обработки видео. Способ 1200 включает в себя, на этапе 1210, определение того, что компонент яркости текущего видеоблока закодирован с помощью режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP).
Способ 1200 включает в себя, на этапе 1220, вывод, на основе определения цветности, относительно внутрикадрового режима.
Способ 1200 включает в себя на этапе 1230 выполнение, на основе внутрикадрового режима цветности, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В некоторых вариантах осуществления компонент яркости охватывает заданный отсчет цветности компонента цветности. В примере заданный отсчет сигнала цветности представляет собой верхний левый отсчет или центральный отсчет компонента цветности.
В некоторых вариантах осуществления предполагаемым внутрикадровым режимом цветности является режим DM.
В некоторых вариантах осуществления предполагаемым внутрикадровым режимом цветности является режим ALWIP.
В некоторых вариантах осуществления режим ALWIP применяется к одному или нескольким цветовым компонентам текущего видеоблока.
В некоторых вариантах осуществления разные матрицы или векторы смещения режима ALWIP применяются к разным цветовым компонентам текущего видеоблока. В одном примере разные матрицы или векторы смещения совместно заданы для компонентов Cb и Cr. В другом примере компоненты Cb и Cr объединены. В еще одном примере компоненты Cb и Cr чередуются.
На фиг.13 показана блок-схема последовательности операций примерного способа обработки видео. Способ 1300 включает в себя, на этапе 1302, определение того, что текущий видеоблок закодирован с использованием режима аффинного линейно-взвешенного внутрикадрового предсказания (ALWIP).
Способ 1300 включает в себя, на этапе 1304, выполнение, на основе определения, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В некоторых вариантах осуществления определение основано на сигнализации в наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке слайса, заголовке группы мозаичных элементов, заголовке мозаичного элемента, строке единиц дерева кодирования (CTU) или области CTU.
В некоторых вариантах осуществления определение основывается на высоте (H) или ширине (W) текущего видеоблока. Например, W > T1 или H > T2. В другом примере W ≥ T1 или H ≥ T2. В еще одном примере W < T1 или H < T2. В еще одном примере W ≤ T1 или H ≤ T2. В еще одном примере T1 = 32 и T2 = 32.
В некоторых вариантах осуществления определение основывается на высоте (H) или ширине (W) текущего видеоблока. В одном примере W+H ≤ T. В другом примере W+H ≥ T. В еще одном примере W×H ≤ T. В еще одном примере W×H ≥ T. В еще одном примере T = 256.
На фиг.14 показана блок-схема последовательности операций примерного способа обработки видео. Способ 1400 включает в себя, на этапе 1402, определение того, что текущий видеоблок закодирован с использованием режима кодирования, который отличается от аффинного линейно-взвешенного внутрикадрового режима предсказания (ALWIP).
Способ 1400 включает в себя, на этапе 1404, выполнение, на основе определения, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В некоторых вариантах осуществления режим кодирования представляет собой режим объединенного внутрикадрового и межкадрового предсказания (CIIP), и способ 1400 дополнительно включает в себя этап выполнения выбора между режимом ALWIP и нормальным режимом внутрикадрового предсказания. В одном примере выполнение выбора основано на явной сигнализации в представлении битового потока текущего видеоблока. В другом примере выбор выполняется на основе заданного правила. В еще одном примере заданное правило всегда выбирает режим ALWIP, когда текущий видеоблок закодирован с использованием режима CIIP. В еще одном примере заданное правило всегда выбирает нормальный режим внутрикадрового предсказания, когда текущий видеоблок закодирован с использованием режима CIIP.
В некоторых вариантах осуществления режим кодирования представляет собой режим предсказания межкомпонентной линейной модели (CCLM). В одном примере процедура понижающей дискретизации для режима ALWIP основана на процедуре понижающей дискретизации для режима предсказания CCLM. В другом примере процедура понижающей дискретизации для режима ALWIP основана на первом наборе параметров, и где процедура понижающей дискретизации для режима предсказания CCLM основана на втором наборе параметров, отличном от первого набора параметров. В еще одном примере процедура понижающей дискретизации для режима ALWIP или режима предсказания CCLM содержит по меньшей мере одно из: выбора позиций субдискретизации, выбора фильтров понижающей дискретизации, операции округления или операции отбрасывания.
В некоторых вариантах осуществления способ 1400 дополнительно включает в себя этап применения одного или нескольких из: сокращенного вторичного преобразования (RST), вторичного преобразования, преобразования поворота или нераздельного вторичного преобразования (NSST).
В некоторых вариантах осуществления способ 1400 дополнительно включает в себя этап применения блочной дифференциальной импульсно-кодовой модуляции (DPCM) или DPCM остатка.
6. Примеры реализации раскрытой технологии
На фиг.15 показана блок-схема устройства 1500 обработки видео. Устройство 1500 может быть использовано для реализации одного или нескольких из способов, описанных в данном документе. Устройство 1500 может быть воплощено в виде смартфона, планшета, компьютера, приемника Интернета вещей (IoT) и т.д. Устройство 1500 может включать в себя один или несколько процессоров 1502, одно или несколько устройств памяти 1504 и аппаратные средства 1506 обработки видео. Процессор(ы) 1502 может (могут) быть выполнен(ы) с возможностью реализации одного или нескольких способов (включая, но не ограничиваясь ими, способы 1100-1400 и 2000-3800), описанные в данном документе. Память (блоки памяти) 1504 может (могут) использоваться для хранения данных и кода, используемых для реализации способов и технологий, описанных в данном документе. Аппаратные средства 1506 обработки видео могут использоваться для реализации, в виде схем аппаратных средств, некоторых технологий, описанных в данном документе.
В некоторых вариантах осуществления способы кодирования видео могут быть реализованы с использованием устройства, которое реализовано на аппаратной платформе, как описано со ссылкой на фиг.15.
На фиг.16 показана блок-схема, иллюстрирующая пример системы 1600 обработки видео, в которой могут быть реализованы различные технологии, раскрытые в данном документе. Различные реализации могут включать в себя некоторые или все компоненты системы 1600. Система 1600 может включать в себя вход 1602 для приема видеосодержания. Видеосодержание может приниматься в необработанном или несжатом формате, например, с 8- или 10-разрядными многокомпонентными пиксельными значениями, или может быть представлено в сжатом или кодированном формате. Вход 1602 может представлять сетевой интерфейс, интерфейс периферийной шины или интерфейс запоминающего устройства. Примеры сетевого интерфейса включают в себя проводные интерфейсы, такие как Ethernet, пассивная оптическая сеть (PON) и т.д., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.
Система 1600 может включать в себя компонент 1604 кодирования, который может реализовывать различные способы кодирования или шифрования, описанные в настоящем документе. Компонент 1604 кодирования позволяет уменьшить среднюю скорость передачи битов видео от входа 1602 до выхода компонента 1604 кодирования, чтобы создать кодированное представление видео. Поэтому технологии кодирования иногда называют технологиями сжатия видео или транскодирования видео. Выходной сигнал компонента 1604 кодирования может быть либо сохранен, либо передан через подключенную связь, как представлено компонентом 1606. Сохраненное или переданное битовое (или кодированное) представление видео, полученного на входе 1602, может использоваться компонентом 1608 для выработки пиксельных значений или отображаемого видео, которое отправляется в интерфейс 1610 дисплея. Процесс выработки доступного для просмотра пользователем видео из представления битового потока иногда называется распаковкой видео. Кроме того, хотя определенные операции обработки видео упоминаются как операции или инструменты "кодирования", следует понимать, что инструменты или операции кодирования используются в кодере, и соответствующие инструменты или операции декодирования, которые обращают результаты кодирования, будут выполняться посредством декодера.
Примеры интерфейса периферийной шины или интерфейса дисплея могут включать в себя универсальную последовательную шину (USB), мультимедийный интерфейс высокой четкости (HDMI) или порт дисплея (Displayport) и т.д. Примеры интерфейсов запоминающих устройств включают в себя SATA (последовательное подключение с использованием передовых технологий), PCI, интерфейс IDE и т.п. Технологии, описанные в настоящем документе, могут быть воплощены в различных электронных устройствах, таких как мобильные телефоны, ноутбуки, смартфоны или другие устройства, которые способны выполнять обработку цифровых данных и/или отображение видео.
Некоторые варианты осуществления раскрытой технологии включают в себя принятие решения или определение включения инструмента или режима обработки видео. В одном примере, когда инструмент или режим обработки видео включены, кодер будет использовать или реализовывать инструмент или режим при обработке видеоблока, но не обязательно может изменять результирующий битовый поток на основе использования инструмента или режима. То есть преобразование из видеоблока в представление битового потока видео будет использовать инструмент или режим обработки видео, когда он включен, на основе решения или определения. В другом примере, когда инструмент или режим обработки видео включены, декодер будет обрабатывать битовый поток, зная, что битовый поток был изменен, на основе инструмента или режима обработки видео. То есть преобразование из представления битового потока видео в видеоблок будет выполняться с использованием инструмента обработки видео или режима, который был включен на основе решения или определения.
Некоторые варианты осуществления раскрытой технологии включают в себя принятие решения или определение относительно того, отключить инструмент или режим обработки видео. В одном примере, когда инструмент или режим обработки видео отключены, кодер не будет использовать инструмент или режим при преобразовании видеоблока в представление битового потока видео. В другом примере, когда инструмент или режим обработки видео отключены, декодер будет обрабатывать битовый поток, зная, что битовый поток не был изменен, с использованием инструмента или режима обработки видео, которые были отключены на основе решения или определения.
На фиг.17 показана блок-схема, которая иллюстрирует примерную систему 100 кодирования видео, которая может использовать способы настоящего раскрытия. Как показано на фиг.17, система 100 кодирования видео может включать в себя устройство-источник 110 и устройство-получатель 120. Устройство-источник 110, которое может называться устройством кодирования видео, вырабатывает кодированные видеоданные. Устройство-получатель 120, которое может называться устройством декодирования видео, может декодировать кодированные видеоданные, выработанные устройством-источником 110. Устройство-источник 110 может включать в себя источник 112 видео, видеокодер 114 и интерфейс 116 ввода/вывода (I/O).
Источник 112 видео может включать в себя источник, такой как устройство захвата видео, интерфейс для приема видеоданных от поставщика содержания видео и/или систему компьютерной графики для выработки видеоданных или сочетание таких источников. Видеоданные могут содержать одно или несколько изображений. Видеокодер 114 кодирует видеоданные из источника 112 видео для выработки битового потока. Битовый поток может включать в себя последовательность битов, которые образуют кодированное представление видеоданных. Битовый поток может включать в себя кодированные изображения и ассоциированные данные. Кодированное изображение представляет собой кодированное представление изображения. Ассоциированные данные могут включать в себя наборы параметров последовательности, наборы параметров изображения и другие синтаксические структуры. Интерфейс 116 ввода/вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. Кодированные видеоданные могут быть переданы непосредственно в устройство-получатель 120 через интерфейс 116 ввода/вывода через сеть 130a. Кодированные видеоданные также могут быть сохранены на носителе информации/сервере 130b для доступа со стороны устройства-получателя 120.
Устройство-получатель 120 может включать в себя интерфейс 126 ввода/вывода, видеодекодер 124 и устройство 122 отображения.
Интерфейс 126 ввода/вывода может включать в себя приемник и/или модем. Интерфейс 126 ввода/вывода может получать кодированные видеоданные из устройства-источника 110 или носителя информации/сервера 130b. Видеодекодер 124 может декодировать кодированные видеоданные. Устройство 122 отображения может отображать декодированные видеоданные для пользователя. Устройство 122 отображения может быть интегрировано с целевым устройством 120 или может быть внешним по отношению к целевому устройству 120, которое конфигурируется для взаимодействия с внешним устройством отображения.
Видеокодер 114 и видеодекодер 124 могут работать в соответствии со стандартом сжатия видео, например, стандартом высокоэффективного кодирования видео (HEVC), стандартом универсального кодирования видео (VVM) и другими существующими и/или дополнительными стандартами.
На фиг.18 показана блок-схема, иллюстрирующая пример видеокодера 200, который может быть видеокодером 114 в системе 100, проиллюстрированной на фиг.17.
Видеокодер 200 может быть выполнен с возможностью выполнения любого или всех способов настоящего раскрытия. В примере, показанном на фиг.18, видеокодер 200 включает в себя множество функциональных компонентов. Способы, описанные в настоящем раскрытии, могут совместно использоваться различными компонентами видеокодера 200. В некоторых примерах процессор может быть выполнен с возможностью выполнения любого или всех способов, описанных в настоящем раскрытии.
Функциональные компоненты видеокодера 200 могут включать в себя блок 201 разделения, блок 202 предсказания, который может включать в себя блок 203 выбора режима, блок 204 оценки движения, блок 205 компенсации движения и блок 206 внутрикадрового предсказания, блок 207 выработки остатка, блок 208 преобразования, блок 209 квантования, блок 210 обратного квантования, блок 211 обратного преобразования, блок 212 восстановления, буфер 213 и блок 214 энтропийного кодирования.
В других примерах видеокодер 200 может включать в себя больше или меньше функциональных компонентов или различные функциональные компоненты. В примере блок 202 предсказания может включать в себя блок внутрикадрового блочного копирования (IBC). Блок IBC может выполнять предсказание в режиме IBC, в котором по меньшей мере одно опорное изображение является изображением, на котором расположен текущий видеоблок.
Кроме того, некоторые компоненты, такие как блок 204 оценки движения и блок 205 компенсации движения, могут быть выполнены с высокой степенью интеграции, но в примере, показанном на фиг.18, они представлены отдельно для упрощения объяснения.
Блок 201 разделения может разбивать изображение на один или несколько видеоблоков. Видеокодер 200 и видеодекодер 300 могут поддерживать различные размеры видеоблоков.
Блок 203 выбора режима может выбрать один из режимов кодирования, внутрикадровый или межкадровый, например, на основе результатов ошибок, и предоставить результирующий внутрикадровый или межкадровый кодированный блок в блок 207 выработки остатка для выработки данных блока остатка и в блок 212 восстановления для восстановления кодированного блока с целью использования в качестве опорного изображения. В некотором примере блок 203 выбора режима может выбрать комбинацию режима внутрикадрового и межкадрового предсказания (CIIP), в котором предсказание основано на сигнале межкадрового предсказания и сигнале внутрикадрового предсказания. Блок 203 выбора режима также может выбирать разрешение для вектора движения (например, с точностью подпикселей или целочисленных пикселей) для блока в случае межкадрового предсказания.
Чтобы выполнить межкадровое предсказание для текущего видеоблока, блок 204 оценки движения может выработать информацию движения для текущего видеоблока путем сравнения одного или нескольких опорных кадров из буфера 213 с текущим видеоблоком. Блок 205 компенсации движения может определять предсказанный видеоблок для текущего видеоблока на основе информации движения и декодированных отсчетов изображений из буфера 213, которые отличаются от изображения, ассоциированного с текущим видеоблоком.
Блок 204 оценки движения и блок 205 компенсации движения могут выполнять разные операции для текущего видеоблока, например, в зависимости от того, находится ли текущий видеоблок в I-слайсе, P-слайсе или B-слайсе.
В некоторых примерах блок 204 оценки движения может выполнять однонаправленное предсказание для текущего видеоблока, и блок 204 оценки движения может отыскивать опорные изображения из списка 0 или списка 1 для опорного видеоблока для текущего видеоблока. Затем блок 204 оценки движения может выработать опорный индекс, который указывает опорное изображение в списке 0 или списке 1, который содержит опорный видеоблок, и вектор движения, который указывает пространственное смещение между текущим видеоблоком и опорным видеоблоком. Блок 204 оценки движения может выводить опорный индекс, индикатор направления предсказания и вектор движения в качестве информации движения текущего видеоблока. Блок 205 компенсации движения может выработать предсказанный видеоблок текущего блока на основе опорного видеоблока, указанного в информации движения текущего видеоблока.
В других примерах блок 204 оценки движения может выполнять двунаправленное предсказание для текущего видеоблока, блок 204 оценки движения может отыскивать опорные изображения в списке 0 для опорного видеоблока для текущего видеоблока и может отыскивать опорные изображения в списке 1 для другого опорного видеоблока для текущего видеоблока. Затем блок 204 оценки движения может выработать опорные индексы, которые указывают опорные изображения в списке 0 и списке 1, содержащем опорные видеоблоки и векторы движения, которые указывают пространственные смещения между опорными видеоблоками и текущим видеоблоком. Блок 204 оценки движения может выводить опорные индексы и векторы движения текущего видеоблока в качестве информации движения текущего видеоблока. Блок 205 компенсации движения может выработать предсказанный видеоблок текущего видеоблока на основе опорных видеоблоков, указанных в информации движения текущего видеоблока.
В некоторых примерах блок 204 оценки движения может выводить полный набор информации движения для процесса декодирования декодера.
В некоторых примерах блок 204 оценки движения может не выводить полный набор информации движения для текущего видео. Скорее, блок 204 оценки движения может сигнализировать информацию движения текущего видеоблока со ссылкой на информацию движения другого видеоблока. Например, блок 204 оценки движения может определить, что информация движения текущего видеоблока достаточно похожа на информацию движения соседнего видеоблока.
В одном примере блок 204 оценки движения может указывать в структуре синтаксиса, ассоциированной с текущим видеоблоком, значение, которое указывает видеодекодеру 300, что текущий видеоблок имеет ту же информацию движения, что и другой видеоблок.
В другом примере блок 204 оценки движения может идентифицировать в структуре синтаксиса, ассоциированной с текущим видеоблоком, другой видеоблок и разность векторов движения (MVD). Разность векторов движения указывает разницу между вектором движения текущего видеоблока и вектором движения указанного видеоблока. Видеодекодер 300 может использовать вектор движения указанного видеоблока и разность векторов движения для определения вектора движения текущего видеоблока.
Как обсуждалось выше, видеокодер 200 может с предсказанием сигнализировать о векторе движения. Два примера способов сигнализации предсказания, которые могут быть реализованы видеокодером 200, включают в себя расширенное предсказание вектора движения (AMVP) и сигнализацию в режиме слияния.
Блок 206 внутрикадрового предсказания может выполнять внутрикадровое предсказание для текущего видеоблока. Когда внутрикадровый блок предсказания 206 выполняет внутрикадровое предсказание в текущем блоке видеосигнала, блок 206 внутрикадрового предсказания может выработать данные предсказания для текущего видеоблока на основе декодированных отсчетов других видеоблоков в одном том же кадре. Данные предсказания для текущего видеоблока могут включать в себя предсказанный видеоблок и различные синтаксические элементы.
Блок 207 выработки остатка может выработать данные остатка для текущего видеоблока путем вычитания (например, обозначенного знаком минус) предсказанного видеоблока(ов) текущего видеоблока из текущего видеоблока. Данные остатка текущего видеоблока могут включать в себя видеоблоки остатка, которые соответствуют различным компонентам отсчетов отсчетов в текущем видеоблоке.
В других примерах могут отсутствовать данные остатка для текущего видеоблока для текущего видеоблока, например, в режиме пропуска, и блок 207 выработки остатка может не выполнять операцию вычитания.
Блок 208 обработки преобразования может выработать один или несколько видеоблоков коэффициентов преобразования для текущего видеоблока путем применения одного или нескольких преобразований к видеоблоку остатка, ассоциированному с текущим видеоблоком.
После того, как блок 208 обработки преобразования выработает видеоблок коэффициента преобразования, ассоциированный с текущим видеоблоком, блок 209 квантования может квантовать видеоблок коэффициента преобразования, ассоциированный с текущим видеоблоком, на основе одного или нескольких значений параметра квантования (QP), ассоциированных с текущим видеоблоком.
Блок 210 обратного квантования и блок 211 обратного преобразования могут применять обратное квантование и обратное преобразование к видеоблоку коэффициентов преобразования, соответственно, для восстановления видеоблока остатка из видеоблока коэффициентов преобразования. Блок 212 восстаовления может добавить восстановленный видеоблок остатка к соответствующим отсчетам из одного или нескольких предсказанных видеоблоков, выработанных блоком 202 предсказания, чтобы получить восстановленный видеоблок, ассоциированный с текущим блоком, для хранения в буфере 213.
После того, как блок 212 восстаовления восстановит видеоблок, может выполняться операция контурной фильтрации для уменьшения артефактов видеоблока в видеоблоке.
Блок 214 энтропийного кодирования может принимать данные из других функциональных компонентов видеокодера 200. Когда блок 214 энтропийного кодирования принимает данные, блок 214 энтропийного кодирования может выполнять одну или несколько операций энтропийного кодирования для выработки энтропийно-кодированных данных и вывода битового потока, который включает в себя энтропийно-кодированные данные.
На фиг.19 показана блок-схема, иллюстрирующая пример видеодекодера 300, который может быть видеодекодером 114 в системе 100, проиллюстрированной на фиг.17.
Видеодекодер 300 может быть выполнен с возможностью выполнения любого или всех способов настоящего раскрытия. В примере, показанном на фиг.19, видеодекодер 300 включает в себя множество функциональных компонентов. Способы, описанные в настоящем раскрытии, могут совместно использоваться различными компонентами видеодекодера 300. В некоторых примерах процессор может быть выполнен с возможностью выполнения любых или всех способов, описанных в настоящем раскрытии.
В примере, показанном на фиг.19, видеодекодер 300 включает в себя блок 301 энтропийного декодирования, блок 302 компенсации движения, блок 303 внутрикадрового предсказания, блок 304 обратного квантования, блок 305 обратного преобразования, блок 306 восстановления и буфер 307. В некоторых примерах видеодекодер 300 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 200 (фиг.18).
Блок 301 энтропийного декодирования может извлекать закодированный битовый поток. Кодированный битовый поток может включать в себя энтропийно-кодированные видеоданные (например, кодированные блоки видеоданных). Блок 301 энтропийного декодирования может декодировать энтропийно-кодированные видеоданные, и из энтропийно-декодированных видеоданных блок 302 компенсации движения может определять информацию движения, включая векторы движения, точность вектора движения, индексы списка опорных изображений и другую информацию движения. Блок 302 компенсации движения может, например, определять такую информацию, выполняя AMVP и режим слияния.
Блок 302 компенсации движения может создавать блоки с компенсацией движения, возможно, выполняя интерполяцию на основе фильтров интерполяции. Идентификаторы для фильтров интерполяции, которые должны использоваться с точностью до подпикселя, могут быть включены в синтаксические элементы.
Блок 302 компенсации движения может использовать фильтры интерполяции, которые используются видеокодером 20 во время кодирования видеоблока, для вычисления интерполированных значений для субцелочисленных пикселей опорного блока. Блок 302 компенсации движения может определять фильтры интерполяции, используемые видеокодером 200, в соответствии с принятой синтаксической информацией и использовать фильтры интерполяции для создания блоков предсказания.
Блок 302 компенсации движения может использовать некоторую информацию синтаксиса для определения размеров блоков, используемых для кодирования кадра(ов) и/или слайса(ов) кодированной видеопоследовательности, информации о разделах, которая описывает то, как каждый макроблок изображения закодированной видеопоследовательности разбивается на разделы, режимов, указывающих то, как кодируется каждый раздел, одного или более опорных кадров (и списков опорных кадров) для каждого межкадрового кодированного блока и другой информации для декодирования кодированной видеопоследовательности.
Внутрикадровый блок 303 предсказания может использовать режимы внутрикадрового предсказания, например, принятые в битовом потоке, для формирования блока предсказания из пространственно смежных блоков. Блок 303 обратного квантования выполняет обратное квантование, то есть выполняет операцию, обратную квантованию, квантованных коэффициентов видеоблока, предоставленных в битовом потоке и декодированных блоком 301 энтропийного декодирования. Блок 303 обратного преобразования применяет обратное преобразование.
Блок 306 восстановления может суммировать блоки остатка с соответствующими блоками предсказания, выработанными блоком 202 компенсации движения или блоком 303 внутрикадрового предсказания, чтобы сформировать декодированные блоки. При необходимости фильтр удаления блочности также может применяться для фильтрации декодированных блоков с целью удаления артефактов блочности. Затем декодированные видеоблоки сохраняются в буфере 307, который предоставляет опорные блоки для последующей компенсации движения/внутрикадрового предсказания, а также создает декодированное видео для представления на экране устройства отображения.
В некоторых вариантах осуществления режим ALWIP или режим MIP используется для вычисления блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе (или операции усреднения), за которой следует операция матрично-векторного умножения и за которой выборочно (или при необходимости) следует операция повышающей дискретизации (или операция линейной интерполяции ). В некоторых вариантах осуществления режим ALWIP или режим MIP используется для вычисления блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе (или операции усреднения), за которой следует операция матрично-векторного умножения. В некоторых вариантах осуществления режим ALWIP или режим MIP может также выполнять операцию повышающей дискретизации (или линейную операцию интерполяции) после выполнения операции матрично-векторного умножения.
На фиг.20 показана примерная блок-схема последовательности операций примерного способа 2000 для матричного внутрикадрового предсказания. Операция 2002 включает в себя выработку, для преобразования между текущим видеоблоком видео и кодированным представлением текущего видеоблока, первого списка наиболее вероятных режимов (МРМ) с использованием первой процедуры на основе правила. Операция 2004 включает в себя выполнение преобразования между текущим видеоблоком и кодированным представлением текущего видеоблока с использованием первого списка MPM, где преобразование текущего видеоблока использует режим матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущий видеоблок определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации, где правило точно определяет то, что первая процедура, используемая для составления первого списка MPM, аналогична второй процедуре, используемой для выработки второго списка MPM для преобразования других видеоблоков видео, которые закодированы с использованием внутрикадрового режима без использования MIP, который отличается от режима MIP, и где по меньшей мере часть первого списка MPM составляется на основе по меньшей мере части второго списка MPM.
В некоторых вариантах осуществления способа 2000 размер первого списка MPM для режима MIP является таким же, как размер второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 размер первого списка MPM для режима MIP и второго списка MPM для внутрикадрового режима без использования MIP равен 6. В некоторых вариантах осуществления способа 2000 размер второго списка MPM для внутрикадрового режима без использования MIP составляется перед составлением первого списка MPM для режима MIP. В некоторых вариантах осуществления способа 2000 часть или весь второй список MPM для внутрикадрового режима без использования MIP преобразуется в MPM, которые добавляются к части первого списка MPM для режима MIP.
В некоторых вариантах осуществления способа 2000 поднабор MPM добавляется к части первого списка MPM для режима MIP путем сокращения MPM. В некоторых вариантах осуществления способ 2000 дополнительно включает в себя добавление режимов внутрикадрового предсказания по умолчанию в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию добавляются в первый список MPM для режима MIP перед частью первого списка MPM для режима MIP, который основан на части второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию добавляются в первый список MPM для режима MIP после части первого списка MPM для режима MIP, который основан на части второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию добавляются в первый список MPM для режима MIP с чередованием с частью первого списка MPM для режима MIP, который основан на части второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию являются одинаковыми для множества типов видеоблоков. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию определяются на основе кодированной информации текущего видеоблока. В некоторых вариантах осуществления способа 2000 кодированная информация включает в себя доступность соседних видеоблоков, информацию о режиме соседних видеоблоков или размер блока текущего видеоблока.
В некоторых вариантах осуществления способа 2000 один внутрикадровый режим предсказания во втором списке MPM для внутрикадрового режима без использования MIP преобразуется в соответствующий ему режим MIP для получения преобразованного режима MIP, который добавляется в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 все режимы внутрикадрового предсказания во втором списке MPM для внутрикадрового режима без использования MIP преобразуются в соответствующий ему режим MIP для получения множества преобразованных режимов MIP, которые добавляются в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 все режимы внутрикадрового предсказания преобразуются в соответствующий ему режим MIP для получения множества преобразованных режимов MIP, которые используются для составления второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 все режимы внутрикадрового предсказания включают в себя режимы внутрикадрового предсказания из соседних видеоблоков текущего видеоблока и режимы внутрикадрового предсказания по умолчанию. В некоторых вариантах осуществления способа 2000 режимы внутрикадрового предсказания по умолчанию включают в себя планарный режим и режим постоянного тока (DC).
В некоторых вариантах осуществления способа 2000 два режима внутрикадрового предсказания во втором списке MPM для внутрикадрового режима без использования MIP преобразуются в соответствующие ему режимы MIP для получения двух преобразованных режимов MIP, и один из двух преобразованных режимов MIP добавляется в первый список MPM для режима MIP в ответ на то, что эти два преобразованных режима MIP являются одинаковыми. В некоторых вариантах осуществления способа 2000 два режима внутрикадрового предсказания во втором списке MPM для внутрикадрового режима без использования MIP преобразуются в соответствующие ему режимы MIP для получения двух преобразованных режимов MIP, и один из двух преобразованных режимов MIP добавляется во второй список MPM для внутрикадрового режима без использования MIP в ответ на то, что эти два преобразованных режима MIP являются одинаковыми. В некоторых вариантах осуществления способа 2000 второй список MPM для внутрикадрового режима без использования MIP включает в себя S внутрикадровый режим предсказания, и где K из S внутрикадровый режим предсказания выбирается или выбирается для включения в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 K равно 3, и S равно 6. В некоторых вариантах осуществления способа 2000 первые K режимов внутрикадрового предсказания во втором списке MPM для внутрикадрового режима без использования MIP выбираются для включения в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP и второй список MPM для внутрикадрового режима без использования MIP выводятся или составляются на основе одного или нескольких соседних видеоблоков текущего видеоблока. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP и второй список MPM для внутрикадрового режима без использования MIP выводятся или составляются на основе одного и того же соседнего видеоблока, расположенного слева от текущего видеоблока.
В некоторых вариантах осуществления способа 2000 один и тот же соседний видеоблок, расположенный слева, находится непосредственно слева от текущего видеоблока и выровнен с текущим видеоблоком. В некоторых вариантах осуществления способа 2000 один и тот же соседний видеоблок расположен слева и ниже текущего видеоблока. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP и второй список MPM для внутрикадрового режима без использования MIP выводятся или составляются на основе одного и того же соседнего видеоблока, где один и тот же соседний видеоблок расположен слева от текущего видеоблока в крайней нижней позиции, или один и тот же соседний видеоблок расположен над текущим видеоблоком в крайней правой позиции. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP и второй список MPM для внутрикадрового режима без использования MIP выводятся или составляются на основе одного и того же соседнего видеоблока, расположенного над текущим видеоблоком.
В некоторых вариантах осуществления способа 2000 один и тот же соседний видеоблок, расположенный выше, находится непосредственно над текущим видеоблоком и выровнен с текущим видеоблоком. В некоторых вариантах осуществления способа 2000 один и тот же соседний видеоблок расположен слева и выше текущего видеоблока. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP и второй список MPM для внутрикадрового режима без использования MIP выводятся или составляются на основе одного и того же соседнего видеоблока, где один и тот же соседний видеоблок расположен над текущим видеоблоком в крайней левой позиции или один и тот же соседний видеоблок расположен слева от текущего видеоблока в крайней верхней позиции. В некоторых вариантах осуществления способа 2000 внутрикадровый режим без использования MIP основан на режиме внутрикадрового предсказания, режиме внутрикадрового предсказания с множеством опорных линий (MRL) или инструменте внутрикадровых подразделов (ISP). В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP дополнительно основан на высоте или ширине текущего видеоблока.
В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP дополнительно основан на высоте или ширине соседнего видеоблока текущего видеоблока. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP составляется на основе первого набора параметров, который отличается от второго набора параметров, используемых для составления второго списка MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 второй список MPM для внутрикадрового режима без использования MIP включает в себя S режимов внутрикадрового предсказания, и где K из S режимов внутрикадрового предсказания получаются таким образом, чтобы они были включены в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 K равно 3, и S равно 6.
В некоторых вариантах осуществления способа 2000 первые K режимов внутрикадрового предсказания во втором списке MPM для внутрикадрового режима без использования MIP получаются таким образом, чтобы они были включены в первый список MPM для режима MIP. В некоторых вариантах осуществления способа 2000 первый режим, указанный в первом списке MPM для режима MIP, отличается от первого режима, указанного во втором списке MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 первый режим, указанный в первом списке MPM для режима MIP, является первым режимом, и первый режим, указанный во втором списке MPM для внутрикадрового режима без использования MIP, является планарным режимом. В некоторых вариантах осуществления способа 2000 первый режим в первом списке MPM для режима MIP преобразуется из планарного режима во втором списке MPM во внутрикадровый режим без использования MIP.
В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP включает в себя первый набор режимов заполнения, которые отличаются от второго набора режимов заполнения, включенного во второй список MPM для внутрикадрового режима без использования MIP. В некоторых вариантах осуществления способа 2000 первый набор режимов заполнения включает в себя первый режим, второй режим и третий режим, и второй набор режимов заполнения включает в себя режим постоянного тока (DC), вертикальный режим и горизонтальный режим. В некоторых вариантах осуществления способа 2000 первый режим, второй режим и третий режим включены в первый набор режимов заполнения на основе размера текущего видеоблока. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP включает в себя первый набор режимов внутрикадрового предсказания соседних видеоблоков текущего видеоблока, второй список MPM для внутрикадрового режима без использования MIP включает в себя второй набор режимов внутрикадрового предсказания соседних видеоблоков текущего видеоблока, и первый набор режимов внутрикадрового предсказания отличается от второго набора режимов внутрикадрового предсказания.
В некоторых вариантах осуществления способа 2000 второй набор режимов внутрикадрового предсказания включает в себя режимы внутрикадрового предсказания, которые преобразуются в режимы MIP, которые включены в первый набор режимов внутрикадрового предсказания. В некоторых вариантах осуществления способа 2000 первый список MPM для режима MIP включает в себя первый набор сдвинутых режимов внутрикадрового предсказания, второй список MPM для внутрикадрового режима без использования MIP включает в себя второй набор сдвинутых режимов внутрикадрового предсказания и первый набор сдвинутых режимов предсказания. Режимы внутрикадрового предсказания отличаются от второго набора сдвинутых режимов внутрикадрового предсказания. В некоторых вариантах осуществления способа 2000 первый набор сдвинутых режимов внутрикадрового предсказания включает в себя режим (Y) MIP, сдвинутый на K1 согласно первой формуле Y+K1, второй набор сдвинутых режимов внутрикадрового предсказания включает в себя внутрикадровый режим (X) без использования MIP, сдвинутый на K0 согласно второй формуле X+K0, и K1 отличается от K0. В некоторых вариантах осуществления способа 2000 K1 зависит от ширины и высоты текущего видеоблока.
В некоторых вариантах осуществления способ 2000 дополнительно включает в себя выполнение первого определения того, что соседний видеоблок текущего видеоблока закодирован с помощью внутрикадрового режима без использования MIP; и выполнение второго определения, в ответ на то, что первое определение того, что соседний видеоблок недоступен для составления первого списка MPM для режима MIP.
В некоторых вариантах осуществления способ 2000 дополнительно включает в себя выполнение первого определения того, что соседний видеоблок текущего видеоблока закодирован с помощью внутрикадрового режима без использования MIP; и выполнение, в ответ на первое определение, второго определения того, что соседний видеоблок закодирован с помощью заданного режима внутрикадрового предсказания MIP, где первый список MPM для режима MIP составляется с использованием заданного режима внутрикадрового предсказания MIP. В некоторых вариантах осуществления способа 2000 заданный режим внутрикадрового предсказания MIP зависит от ширины и/или высоты текущего видеоблока.
На фиг.21 показана примерная блок-схема последовательности операций примерного способа 2100 для матричного внутрикадрового предсказания. Операция 2100 включает в себя выработку, для преобразования между текущим видеоблоком видео и кодированного представлением текущего видеоблока, списка наиболее вероятных режимов (MPM) на основе правила, когда правило основано на том, что видеоблок соседнего текущего видеоблока закодирован с помощью режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания соседнего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2104 включает в себя выполнение преобразования между текущим видеоблоком и кодированным представлением текущего видеоблока с использованием списка MPM, где преобразование применяет режим без использования MIP к текущему видеоблоку, и где режим без использования MIP отличается от режима MIP.
В некоторых вариантах осуществления способа 2100 правило точно определяет то, что соседний видеоблок, кодированный в режиме MIP, обрабатывается как недоступный для составления списка MPM для текущего кодированного видеоблока без- MIP. В некоторых вариантах осуществления способа 2100 правило точно определяет то, что соседний видеоблок, закодированный в режиме MIP, определяется как кодированный с помощью заданного режима внутрикадрового предсказания. В некоторых вариантах осуществления способа 2100 правило точно определяет то, что заданный режим внутрикадрового предсказания включает в себя планарный режим.
На фиг.22 показана примерная блок-схема последовательности операций примерного способа 2200 для матричного внутрикадрового предсказания. Операция 2202 включает в себя декодирование текущего видеоблока видео, который кодируется в кодированном представлении текущего видеоблока с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2204 включает в себя обновление строкового буфера, ассоциированного с декодированием, без сохранения в строковом буфере информации, указывающей то, закодирован ли текущий видеоблок с использованием режима MIP.
В некоторых вариантах осуществления способ 2200 дополнительно включает в себя доступ ко второму видеоблоку видео, где второй видеоблок декодируется перед декодированием текущего видеоблока, где второй видеоблок расположен в другой строке наибольших единиц кодирования (LCU) или единиц дерева кодирования (CTU) или области CTU по сравнению с таковой текущего видеоблока, и где текущий видеоблок декодируется без определения того, закодирован ли второй видеоблок с использованием режима MIP. В некоторых вариантах осуществления способ 2200 дополнительно включает в себя доступ ко второму видеоблоку путем определения того, что второй видеоблок закодирован с использованием внутрикадрового режима без использования MIP, без определения того, закодирован ли второй видеоблок с использованием режима MIP, где второй видеоблок расположен в другой строке наибольших единиц кодирования (LCU) или единиц дерева кодирования (CTU) или област CTU по сравнению с таковой текущего видеоблока; и декодирование текущего видеоблока на основе доступа ко второму видеоблоку.
На фиг.23 показана примерная блок-схема последовательности операций примерного способа 2300 для матричного внутрикадрового предсказания. Операция 2302 включает в себя выполнение преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока, где текущий видеоблок закодирован с использованием режима матричного внутрикадрового предсказания (MIP), в котором определяется блок предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации, где флаг кодируется в представлении битового потока с использованием не более K контекстов в процессе арифметического кодирования или в процессе декодирования, где флаг указывает, закодирован ли текущий видеоблок с использованием режима MIP, и где K больше или равен нулю. В некоторых вариантах осуществления способа 2300 K равно 1. В некоторых вариантах осуществления способа 2300 K равно 4.
На фиг.24 показана примерная блок-схема последовательности операций примерного способа 2400 для матричного внутрикадрового предсказания. Операция 2402 включает в себя выработку, для преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока, внутрикадрового режима предсказания для текущего видеоблока кодированного с помощью режима матричного внутрикадрового предсказания (MIP), в котором предсказание блок текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышения дискретизации. Операция 2404 включает в себя определение правила для хранения информации, указывающей режим внутрикадрового предсказания на основе того, закодирован ли текущий видеоблок с помощью режима MIP. Операция 2406 включает в себя выполнение преобразования в соответствии с правилом, где правило точно определяет то, что синтаксический элемент для режима внутрикадрового предсказания хранится в представлении битового потока для текущего видеоблока, и где правило точно определяет то, что индекс режима для режима MIP для текущего видеоблока не сохраняется в представлении битового потока.
В некоторых вариантах осуществления способа 2400 индекс режима для режима MIP ассоциирован с режимом внутрикадрового предсказания. В некоторых вариантах осуществления способа 2400 правило определяет то, что представление битового потока исключает флаг, который указывает то, что текущий видеоблок закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 2400 правило определяет то, что представление битового потока исключает хранение информации, указывающей режим MIP, ассоциированный с текущим видеоблоком. В некоторых вариантах осуществления способ 2400 дополнительно включает в себя выполнение, после преобразования, второго преобразования между вторым видеоблоком видео и представлением битового потока второго видеоблока, где второй видеоблок является соседним видеоблоком текущего видеоблока, и где второе преобразование выполняется без определения того, закодирован ли второй видеоблок с использованием режима MIP.
На фиг.25 показана примерная блок-схема последовательности операций примерного способа 2500 для матричного внутрикадрового предсказания. Операция 2502 включает в себя выполнение первого определения того, что видеоблок яркости видео закодирован с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания видеоблока яркости определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2504 включает в себя выполнение, на основе первого определения, второго определения относительно внутрикадрового режима цветности, который должен использоваться для видеоблока цветности, ассоциированного с видеоблоком яркости. Операция 2506 включает в себя выполнение, на основе второго определения, преобразования между видеоблоком цветности и представлением битового потока видеоблока цветности.
В некоторых вариантах осуществления способа 2500 выполнение второго определения включает в себя определение того, что внутрикадровый режим цветности является производным режимом (DM) вне зависимости от сигнализации. В некоторых вариантах осуществления способа 2500 видеоблок яркости покрывает заданную соответствующий отсчет цветности видеоблока цветности. В некоторых вариантах осуществления способа 2500 заданная соответствующий отсчет цветности является верхним левым отсчетом или центральным отсчетом видеоблока цветности. В некоторых вариантах осуществления способа 2500 внутрикадровый режим цветности включает в себя производный режим (DM). В некоторых вариантах осуществления способа 2500 DM используется для получения первого внутрикадрового режима предсказания для видеоблока цветности из второго режима внутрикадрового предсказания видеоблока яркости. В некоторых вариантах осуществления способа 2500 режим MIP, ассоциированный с видеоблоком яркости, отображается в заданный внутрикадровый режим.
В некоторых вариантах осуществления способа 2500 множество полученных режимов (DM) получаются в ответ на первое определение того, что видеоблок яркости закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 2500 внутрикадровый режим цветности включает в себя точно определенный внутрикадровый режим предсказания. В некоторых вариантах осуществления способа 2500 заданный внутрикадровый режим или указанный внутрикадровый режим является планарным режимом. В некоторых вариантах осуществления способа 2500 видеоблок цветности закодирован с использованием режима MIP. В некоторых вариантах осуществления способа 2500 видеоблок цветности закодирован с использованием первой матрицы или первого вектора смещения, которая/который отличается от второй матрицы или второго вектора смещения второго видеоблока цветности. В некоторых вариантах осуществления способа 2500 видеоблок цветности представляет собой компонент синего цвета, где первая матрица или первый вектор смещения задан для компонента синего цвета, где второй видеоблок цветности является компонентом красного цвета, где вторая матрица или второй вектор смещения задан для компонента красного цвета.
В некоторых вариантах осуществления способа 2500 компонент синего цвета и компонент красного цвета объединены. В некоторых вариантах осуществления способа 2500 компоненты синего цвета и красного цвета чередуются. В некоторых вариантах осуществления способа 2500 видеоблок цветности закодирован с использованием режима MIP, который является таким же, как режим MIP, используемый для видеоблока яркости. В некоторых вариантах осуществления способа 2500 видеоблок цветности закодирован с использованием полученного режима (DM). В некоторых вариантах осуществления способа 2500 операция повышающей дискретизации (или способ линейной интерполяции) пропускается после того, как видеоблок цветности закодирован с использованием режима MIP. В некоторых вариантах осуществления способа 2500 видеоблок цветности закодирован с использованием режима MIP с субдискретизированной матрицей и/или вектором смещения. В некоторых вариантах осуществления способа 2500 количество режимов MIP для видеоблока яркости и видеоблока цветности является разным. В некоторых вариантах осуществления способа 2500 видеоблок цветности ассоциирован с первым количеством режимов MIP, видеоблок яркости ассоциирован со вторым количеством режимов MIP, и первое количество режимов MIP меньше второго количества режимов MIP. В некоторых вариантах осуществления способа 2500 видеоблок цветности и видеоблок яркости имеют одинаковый размер.
На фиг.26 показана примерная блок-схема последовательности операций примерного способа 2600 для матричного внутрикадрового предсказания. Операция 2602 включает в себя выполнение преобразования между текущим видеоблоком видео и кодированным представлением текущего видеоблока, где преобразование основано на определении (или на основе определения) того, следует ли кодировать текущий видеоблок с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации.
В некоторых вариантах осуществления способа 2600 синтаксический элемент включается в кодированное представление в ответ на определение того, что текущий видеоблок должен быть закодирован в режиме MIP, и синтаксический элемент указывает использование режима MIP для кодирования текущего видеоблока. В некоторых вариантах осуществления способа 2600 кодированное представление включает в себя синтаксический элемент, который указывает, что режим MIP включен или отключен для текущего видеоблока, и где синтаксический элемент указывает, что режим MIP разрешен или запрещен для кодирования текущего видеоблока. В некоторых вариантах осуществления способа 2600 синтаксический элемент не включается в кодированное представление в ответ на определение того, что текущий видеоблок не должен кодироваться в режиме MIP, и синтаксический элемент указывает то, используется ли режим MIP для текущего видеоблока.
В некоторых вариантах осуществления способа 2600 второй синтаксический элемент, указывающий включение режима MIP, дополнительно включается в набор параметров последовательности (SPS), набор параметров изображения (PPS), заголовок слайса, заголовок группы мозаичных элементов, заголовок мозаичного элемента, строку единиц дерева кодирования (CTU) или область CTU. В некоторых вариантах осуществления способа 2600 определение того, использовать ли режим MIP для преобразования, основано на высоте (H) и/или ширине (W) текущего видеоблока. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W ≥ T1 и H ≥ T2. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W ≤ T1 и H ≤ T2. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W ≥ T1 или H ≥ T2. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W ≤ T1 или H ≤ T2. В некоторых вариантах осуществления способа 2600 T1 = 32 и T2 = 32. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W + H ≥ T. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W + H ≤ T. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W × H ≥ T. В некоторых вариантах осуществления способа 2600 определяется то, что текущий видеоблок не закодирован с использованием режима MIP в ответ на то, что W × H ≤ T. В некоторых вариантах осуществления способа 2600 T = 256.
На фиг.27А показана примерная блок-схема последовательности операций примерного способа 2700А кодирования видео для матричного внутрикадрового предсказания. Операция 2702A включает в себя определение, для кодирования текущего видеоблока видео в представление битового потока текущего видеоблока в соответствии с правилом, того, следует ли использовать режим матричного внутрикадрового предсказания (MIP) и режим кодирования, который отличается от режима MIP, для кодирования текущего видеоблока, где режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2704A включает в себя добавление на основе определения кодированного представления текущего видеоблока в представление битового потока.
На фиг.27B показана примерная блок-схема последовательности операций примерного способа 2700B декодирования видео для матричного внутрикадрового предсказания. Операция 2702B включает в себя определение того, что текущий видеоблок видео закодирован в представлении битового потока с использованием режима матричного внутрикадрового предсказания (MIP) и режима кодирования, который отличается от режима MIP, где режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2704B включает в себя выработку декодированного представления текущего видеоблока путем синтаксического анализа и декодирования представления битового потока.
В некоторых вариантах осуществления способов 2700A и/или 2700B режимом кодирования является режим объединенного внутрикадрового и межкадрового предсказания (CIIP), и где способ дополнительно содержит выработку сигнала внутрикадрового предсказания для текущего видеоблока путем выполнения выбора между режимом MIP и режимом внутрикадрового предсказания. В некоторых вариантах осуществления способов 2700A и/или 2700B выполнение выбора основано на сигнализации в представлении битового потока текущего видеоблока. В некоторых вариантах осуществления способов 2700A и/или 2700B выполнение выбора основано на заданном правиле. В некоторых вариантах осуществления способов 2700A и/или 2700B заданное правило выбирает режим MIP в ответ на кодирование текущего видеоблока с использованием режима CIIP. В некоторых вариантах осуществления способов 2700A и/или 2700B заданное правило выбирает режим внутрикадрового предсказания в ответ на кодирование текущего видеоблока с использованием режима CIIP. В некоторых вариантах осуществления способа 2700A и/или 2700B заданное правило выбирает планарный режим в ответ на кодирование текущего видеоблока с использованием режима CIIP. В некоторых вариантах осуществления способов 2700A и/или 2700B выполнение выбора основано на информации, ассоциированной с соседними видеоблоками текущего видеоблока.
В некоторых вариантах осуществления способов 2700A и/или 2700B режимом кодирования является режим предсказания на основе межкомпонентной линейной модели (CCLM). В некоторых вариантах осуществления способов 2700A и/или 2700B первая процедура понижающей дискретизации для понижающей дискретизации соседнего отсчета текущего видеоблока в режиме MIP использует по меньшей мере часть второй процедуры понижающей дискретизации для режима предсказания CCLM, в котором соседние отсчеты яркости текущего видеоблока подвергаются понижающей дискретизации. В некоторых вариантах осуществления способов 2700A и/или 2700B первая процедура понижающей дискретизации для понижающей дискретизации соседнего отсчета текущего видеоблока в режиме предсказания CCLM использует по меньшей мере часть второй процедуры понижающей дискретизации для режима предсказания MIP, в котором соседние отсчеты яркости текущий видеоблок подвергаются понижающей дискретизации. В некоторых вариантах осуществления способов 2700A и/или 2700B первая процедура понижающей дискретизации для режима MIP основана на первом наборе параметров, и первая процедура понижающей дискретизации для режима предсказания CCLM основана на втором наборе параметров, отличном от первого набора параметров.
В некоторых вариантах осуществления способов 2700A и/или 2700B первая процедура понижающей дискретизации для режима MIP и вторая процедура понижающей дискретизации для режима предсказания CCLM включают в себя выбор соседних местоположений яркости или выбор фильтра понижающей дискретизации. В некоторых вариантах осуществления способов 2700A и/или 2700B соседние отсчеты яркости подвергаются понижающей дискретизаци с использованием по меньшей мере одного из: выбора позиций понижающей дискретизаци, выбора фильтров понижающей дискретизации, операции округления или операции отбрасывания. В некоторых вариантах осуществления способов 2700A и/или 2700B правило определяет то, что блочная дифференциальная импульсная кодированная модуляция (BDPCM) или DPCM остатка не применяется к текущему видеоблоку, кодированному с помощью режима MIP. В некоторых вариантах осуществления способов 2700A и/или 2700B правило определяет то, что режим MIP запрещен для применения к текущему видеоблоку в ответ на применение блочной дифференциальной импульсно-кодированной модуляции (BDPCM) или DPCM остатка.
На фиг.28 показана примерная блок-схема последовательности операций примерного способа 2800 для матричного внутрикадрового предсказания. Операция 2802 включает в себя делает определение относительно применимости контурного фильтра к восстановленному блоку текущего видеоблока видео при преобразовании между видео и кодированным представлением текущего видеоблока, где текущий видеоблок закодирован с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2804 включает в себя обработку текущего видеоблока в соответствии с определением.
В некоторых вариантах осуществления способа 2800 контурный фильтр включает в себя фильтр удаления блочности. В некоторых вариантах осуществления способа 2800 контурный фильтр включает в себя адаптивное смещение выборки (SAO). В некоторых вариантах осуществления способа 2800 контурный фильтр включает в себя адаптивный контурный фильтр (ALF).
На фиг.29А показана примерная блок-схема последовательности операций примерного способа 2900А кодирования видео для матричного внутрикадрового предсказания. Операция 2902A включает в себя определение, для кодирования текущего видеоблока видео в представление битового потока текущего видеоблока, типа соседних отсчетов текущего видеоблока, которые будут использоваться в соответствии с правилом. Операция 2904A включает в себя добавление, на основе определения, кодированного представления текущего видеоблока в представление битового потока, где текущий видеоблок закодирован с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации.
На фиг.29B показана примерная блок-схема последовательности операций примерного способа 2900B декодирования видео для матричного внутрикадрового предсказания. Операция 2902B включает в себя определение того, что текущий видеоблок видео закодирован в представлении битового потока с использованием режима матричного внутрикадрового предсказания (MIP) и с использованием типа соседних отсчетов текущего видеоблока в соответствии с правилом, где режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетам видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 2904B включает в себя выработку декодированного представления текущего видеоблока путем синтаксического анализа и декодирования представления битового потока.
В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что типом соседних отсчетов являются нефильтрованные соседние отсчеты. В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные соседние отсчеты, используется для процесса повышающей дискретизации, правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные соседние отсчеты используется для процесса понижающей дискретизации, и правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные соседние отсчеты, используется для операции матрично-векторного умножения. В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что типом соседних отсчетов являются фильтрованные соседние отсчеты. В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные соседние отсчеты, используется для способа повышающей дискретизации, и правило определяет то, что тип соседних отсчетов, которые включают в себя фильтрованные соседние отсчеты, используется для способа понижающей дискретизации.
В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные соседние отсчеты, используется для способа понижающей дискретизации, и правило определяет то, что тип соседних отсчетов, которые включают в себя фильтрованные соседние отсчеты, используется для повышающей дискретизации. В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные верхние соседние отсчеты, используется для способа повышающей дискретизации, и правило определяет то, что тип соседних отсчетов, которые включают в себя фильтрованные левые соседние отсчеты, используется для способа повышающей дискретизации. В некоторых вариантах осуществления способов 2900A и/или 2900B правило определяет то, что тип соседних отсчетов, которые включают в себя нефильтрованные левые соседние отсчеты, используется для способа повышающей дискретизации, и правило определяет то, что тип соседних отсчетов, которые включают в себя фильтрованные выше соседние отсчеты, используется для способа повышающей дискретизации.
В некоторых вариантах осуществления способов 2900A и/или 2900B тип соседних отсчетов включает в себя нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты, и правило определяет то, используются ли нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты на основе режима MIP текущего видеоблока.
В некоторых вариантах осуществления способы 2900A и/или 2900B дополнительно содержат преобразование режима MIP в режим внутрикадрового предсказания, где тип соседних отсчетов включает в себя нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты, и где правило определяет то, будут ли использоваться нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты на основе режима внутрикадрового предсказания. В некоторых вариантах осуществления способов 2900A и/или 2900B тип соседних отсчетов включает в себя нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты, и правило определяет то, используются ли нефильтрованные соседние отсчеты или фильтрованные соседние отсчеты на основе синтаксического элемента или сигнализации. В некоторых вариантах осуществления способов 2900A и/или 2900B фильтрованные соседние отсчеты или фильтрованные левые соседние отсчеты или фильтрованные верхние соседние отсчеты вырабатываются с использованием режима внутрикадрового предсказания.
На фиг.30 показана примерная блок-схема последовательности операций примерного способа 3000 для матричного внутрикадрового предсказания. Операция 3002 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока, где преобразование включает в себя выработку, с использованием режима матричного внутрикадрового предсказания (MIP), блока предсказания для текущего видеоблока путем выбора и применения матричного умножения с использованием матриц отсчетов и/или путем выбора и добавления смещения с использованием векторов смещения для текущего видеоблока, где отсчеты получаются путем усреднения по строкам и столбцам ранее кодированных отсчетов видео, и где выбор основан на информации о восстановлении первоначальной формы, ассоциированной с сопоставлением преобразования яркости с помощью способа масштабирования цветности (LMCS) с опорным изображением текущего видеоблока. В некоторых вариантах осуществления способа 3000, когда способ изменения первоначальной формы включен для опорного изображения, информация изменения первоначальной формы ассоциирована с матрицами и/или векторами смещения, которые отличаются от тех, которые ассоциированы с информацией изменения первоначальной формы, когда способ изменения первоначальной формы отключен для опорного изображения. В некоторых вариантах осуществления способа 3000, разные матрицы и/или векторы смещения используются для различных параметров изменения первоначальной формы информации изменения первоначальной формы. В некоторых вариантах осуществления способа 3000 выполнение преобразования включает в себя выполнение внутрикадрового предсказания над текущим видеоблоком с использованием режима MIP в исходной области. В некоторых вариантах осуществления способа 3000, соседние отсчеты текущего видеоблока сопоставляются с исходной областью в ответ на применение информации изменения первоначальной формы, и где соседние отсчеты сопоставляются с исходной областью перед использованием в режиме MIP.
На фиг.31 показана примерная блок-схема последовательности операций примерного способа 3100 для матричного внутрикадрового предсказания. Операция 3102 включает в себя определение того, что текущий видеоблок должен быть закодирован с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, за которой выборочно следует операция повышающей дискретизации. Операция 3104 включает в себя выполнение, на основе определения, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока, где выполнение преобразования основано на правиле совместного применения режима MIP и другого способа кодирования.
В некоторых вариантах осуществления способа 3100 правило точно определяет то, что режим MIP и другой способ кодирования используются исключительно взаимно. В некоторых вариантах осуществления способа 3100 правило точно определяет то, что другой способ кодирования представляет собой способ расширенного динамического диапазона (HDR) или способ изменения первоначальной формы.
На фиг.32 показана примерная блок-схема последовательности операций примерного способа 3200 для матричного внутрикадрового предсказания. Операция 3202 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима матричного внутрикадрового предсказания (MIP), где выполнение преобразования с использованием режима MIP включает в себя выработку блока предсказания путем применения матричного умножения с использованием матриц отсчетов, полученных в результате усреднения по строкам и столбцам ранее кодированных отсчетов видео, и где матрицы зависят от битовой глубины отсчета.
На фиг.33 показана примерная блок-схема последовательности операций примерного способа 3300 для матричного внутрикадрового предсказания. Операция 3302 включает в себя выработку для текущего видеоблока видео промежуточного сигнала предсказания с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, за которой выборочно следует операция повышающей дискретизации. Операция 3304 включает в себя выработку, на основе промежуточного сигнала предсказания, окончательного сигнала предсказания. Операция 3306 включает в себя выполнение, на основе окончательного сигнала предсказания, преобразования между текущим видеоблоком и представлением битового потока текущего видеоблока.
В некоторых вариантах осуществления способа 3300 выработка окончательного сигнала предсказания выполняется путем применения позиционно-зависимой комбинации внутрикадрового предсказания (PDPC) к промежуточному сигналу предсказания. В некоторых вариантах осуществления способа 3300 выработка конечного сигнала предсказания выполняется путем выработки ранее кодированных отсчетов видео с использованием режима MIP и путем фильтрации ранее кодированных отсчетов с использованием соседних отсчетов текущего видеоблока.
На фиг.34 показана примерная блок-схема последовательности операций примерного способа 3400 для матричного внутрикадрового предсказания. Операция 3402 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима матричного внутрикадрового предсказания (MIP), где выполнение преобразования включает в себя использование интерполяционного фильтра в процессе повышающей дискретизации для режима MIP, где, в режиме MIP, матричное умножение применяется к первому набору отсчетов, полученному в результате усреднения по строкам и столбцам ранее кодированных отсчетов видео, и интерполяционный фильтр применяется ко второму набору отсчетов, полученных в результате матричного умножения, и где интерполяционный фильтр исключает фильтр билинейной интерполяции.
В некоторых вариантах осуществления способа 3400 интерполяционный фильтр включает в себя 4-отводный интерполяционный фильтр. В некоторых вариантах осуществления способа 3400 компенсация движения для компонентов цветности текущего видеоблока выполняется с использованием 4-отводного интерполяционного фильтра. В некоторых вариантах осуществления способа 3400 угловое внутрикадровое предсказание текущего видеоблока выполняется с использованием 4-отводного интерполяционного фильтра. В некоторых вариантах осуществления способа 3400 интерполяционный фильтр включает в себя 8-отводный интерполяционный фильтр, и компенсация движения для компонента яркости текущего видеоблока выполняется с использованием 8-отводного интерполяционного фильтра.
На фиг.35 показана примерная блок-схема последовательности операций примерного способа 3500 для матричного внутрикадрового предсказания. Операция 3502 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока в соответствии с правилом, когда правило точно определяет взаимосвязь между применимостью режима матричного внутрикадрового предсказания (MIP) или режима преобразования во время преобразования, где режим MIP включает в себя определение блока предсказания текущего видеоблока путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации, и где режим преобразования точно определяет использование операции преобразования для определения блока предсказания для текущего видеоблока.
В некоторых вариантах осуществления способа 3500 режим преобразования включает в себя сокращенное вторичное преобразование (RST), вторичное преобразование, преобразование поворота или неразделимое вторичное преобразование (NSST). В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не должна применяться в ответ на применение режима MIP к текущему видеоблоку. В некоторых вариантах осуществления способа 3500 правило указывает то, применять ли операцию преобразования, использующая режим преобразования, основанный на высоты (H) или ширине (W) текущего видеоблока. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W ≥ T1 и H ≥ T2. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W ≤ T1 и H ≤ T2. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W ≥ T1 или H ≥ T2. В некоторых вариантах осуществления способа 3500, правило указывает то, что операция преобразования, использующая режим преобразования не применяется к текущему видеоблоку в ответ на то, что W ≤ T1 или H ≤ T2. В некоторых вариантах осуществления способа 3500 T1 = 32, и T2 = 32. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W + H ≥ T. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием режим не применяется к текущему видеоблоку в ответ на то, что W + H ≤ T. В некоторых вариантах осуществления способа преобразования 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W × H ≥ T. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования, использующая режим преобразования, не применяется к текущему видеоблоку в ответ на то, что W × H ≤ T. В некоторых вариантах осуществления способа 3500 T = 256.
В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием режима преобразования должна применяться в ответ на то, что текущий видеоблок закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 3500, выбор преобразование матрицы или ядер для операции преобразования основан на текущем видеоблоке, закодированном с помощью режима MIP. В некоторых вариантах осуществления способ 3500 дополнительно включает в себя преобразование режима MIP во внутрикадровый режим предсказания; и выбор матрицы преобразования или ядра на основе преобразованного режима внутрикадрового предсказания. В некоторых вариантах осуществления способ 3500 дополнительно включает в себя преобразование режима MIP во внутрикадровый режим предсказания; и выбор матрицы преобразования или ядра на основе классификации преобразованного режима внутрикадрового предсказания. В некоторых вариантах осуществления способа 3500 преобразованный режим внутрикадрового предсказания включает в себя планарный режим.
В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием режима преобразования применяется к текущему видеоблоку тогда, когда запрещается применять режим MIP к текущему видеоблоку. В некоторых вариантах осуществления способа 3500 правило указывает то, что способ кодирования с преобразованием, а именно с дискретным косинусным преобразованием типа II (DCT-II), применяется к текущему видеоблоку, кодированному с использованием режима MIP. В некоторых вариантах осуществления способа 3500 представление битового потока текущего видеоблока исключает сигнализацию индексов матрицы преобразования для способа кодирования с преобразованием DCT-II. В некоторых вариантах осуществления способа 3500 выполнение преобразования включает в себя получение матрицы преобразования, которая будет использоваться в способе кодирования с преобразованием DCT-II. В некоторых вариантах осуществления способа 3500 представление битового потока включает в себя информацию, относящуюся к режиму MIP, которая сигнализируется после указания матрицы преобразования.
В некоторых вариантах осуществления способа 3500 представление битового потока включает в себя указание режима MIP для матрицы преобразования. В некоторых вариантах осуществления способа 3500 правило указывает то, что представление битового потока исключает указание режима MIP для заданных матриц преобразования. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием способа пропуска преобразования применяется к текущему видеоблоку в ответ на кодирование текущего видеоблока с помощью режима MIP. В некоторых вариантах осуществления способа 3500 представление битового потока текущего видеоблока исключает сигнализацию способа пропуска преобразования, когда текущий видеоблок закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 3500 правило указывает то, что для текущего видеоблока, закодированного с помощью режима MIP, режим MIP преобразуется в заданный режим внутрикадрового предсказания, когда операция преобразования выполняется путем выбора матрицы преобразования, зависящей от режима, или ядра. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием способа пропуска преобразования запрещена для текущего видеоблока, который закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 3500 представление битового потока исключает сигнализацию, которая указывает использовать способ пропуска преобразования. В некоторых вариантах осуществления способа 3500 правило указывает то, что операция преобразования с использованием способа пропуска преобразования разрешена для текущего видеоблока, который не закодирован с помощью режима MIP. В некоторых вариантах осуществления способа 3500 представление битового потока исключает сигнализацию, которая указывает использовать режим MIP.
На фиг.36 показана примерная блок-схема последовательности операций примерного способа 3600 для матричного внутрикадрового предсказания. Операция 3602 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, понижающей дискретизации на границе операции, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации, где выполнение преобразования включает в себя получение, в соответствии с правилом, граничных отсчетов путем применения операции сдвига битов влево или операции сдвига битов вправо к сумме по меньшей мере одного опорного граничного отсчета, и где правило определяет то, следует ли применить операцию сдвига битов влево или операцию сдвига битов вправо.
В некоторых вариантах осуществления способа 3600 правило точно определяет то, что операция сдвига битов вправо применяется в ответ на то, что количество сдвинутых битов больше или равно нулю. В некоторых вариантах осуществления способа 3600 правило точно определяет то, что операция сдвига битов вправо применяется с использованием первого способа в ответ на количество сдвинутых битов больше нуля, и где правило определяет то, что операция сдвига битов вправо применяется с использованием второй способ в ответ на то, что количество сдвинутых битов равно нулю, где первый способ отличается от второго способа.
В некоторых вариантах осуществления способа 3600 граничные отсчеты upsBdryX[ x ] вычисляются с использованием одного из следующих уравнений: upsBdryX[ x ] = ( + (1 << (Log2( uDwn ) - 1))) >> Log2( uDwn ), если uDwn> 1, или upsBdryX[ x ] = if uDwn = 1, где uDwn равно значению функции размера текущего видеоблока от размера границы, refX[x] указывает количество опорных отсчетов x, >> указывает операцию сдвига битов вправо, и << указывает операцию сдвига битов влево. В некоторых вариантах осуществления способа 3600 граничные отсчеты upsBdryX[ x ] вычисляются с использованием следующего уравнения: upsBdryX[ x ] = ( + (1 << Log2( uDwn ) >> 1 )) >> Log2( uDwn ), где uDwn - равно значению функции текущего видеоблока от размера границы, refX[x] указывает количество опорных отсчетов x, >> указывает операцию сдвига битов вправо, и << указывает операцию сдвига битов влево.
В некоторых вариантах осуществления способа 3600 размер границы предварительно определяется на основе размера текущего видеоблока. В некоторых вариантах осуществления способа 3600 uDwn вычисляется как uDwn = nTbs/BorderSize, где nTbs и BorderSize представляют текущий размер видеоблока и размер границы, соответственно. В некоторых вариантах осуществления способа 3600 граничные отсчеты upsBdryX[ x ] вычисляются с использованием одного из следующих уравнений: upsBdryX[ x ] = ( + (1 << (Log2( uDwn ) - 1))) >> Log2( uDwn ), если nTbs > BorderSize, или upsBdryX[ x ] = if nTbs = BorderSize.
На фиг.37 показана примерная блок-схема последовательности операций примерного способа 3700 для матричного внутрикадрового предсказания. Операция 3702 включает в себя выполнение преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока с использованием режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операции понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации, где отсчеты предсказания predSamples[ xHor + dX ][ yHor ] определяется в соответствии со следующей формулой в операции повышающей дискретизации: predSamples[ xHor + dX ][ yHor ] = ( ( upHor - dX ) * predSamples[ xHor ][ yHor ] + dX * predSamples[ xHor + upHor ][ yHor ] + offsetHor) / upHor, и predSamples[ xVer ][ yVer + dY ] = ( ( upVer - dY ) * predSamples[ xVer ][ yVer ] + dY * predSamples[ xVer ][ yVer + upVer ]+ offsetVer ) / upVer, где offsetHor и offsetVer - целые числа, где upHor - зависимость ширины текущего видеоблока от заданного значения, основанная на размере текущего видеоблока, где upVer - зависимость высоты текущего видеоблока от заданного значения, основанного на размера текущего видеоблока; где dX равно 1… upHor-1, где dY равно 1… upVer-1, и где xHor - позиции, основанные на upHor, и yHor - позиции, основанные на upVer. В некоторых вариантах осуществления способа 3700 offsetHor = upHor/2 и offsetVer = upVer/2.
На фиг.38 показана примерная блок-схема последовательности операций примерного способа 3800 для матричного внутрикадрового предсказания. Операция 3802 включает в себя выработку, для преобразования между текущим видеоблоком видео и представлением битового потока текущего видеоблока, внутрикадрового режима предсказания для текущего видеоблока кодированного с помощью режима матричного внутрикадрового предсказания (MIP), в котором блок предсказания текущего видеоблока определяется путем выполнения, над ранее кодированными отсчетами видео, операция понижающей дискретизации на границе, за которой следует операция матрично-векторного умножения, и за которой выборочно следует операция повышающей дискретизации. Операция 3804 включает в себя определение правила для хранения информации, указывающей режима внутрикадрового предсказания на основе того, закодирован ли текущий видеоблок с помощью режима MIP. Операция 3806 включает в себя выполнение преобразования в соответствии с правилом, где правило точно определяет то, что представление битового потока исключает хранение информации, указывающей режим MIP, ассоциированный с текущим видеоблоком.
Данный патентный документ может относиться к представлению битового потока как к кодированному представлению и наоборот. Из вышеизложенного будет понятно, что конкретные варианты осуществления раскрытой здесь технологии были описаны в данном документе в целях иллюстрации, но при этом различные модификации могут быть выполнены без отклонения от объема изобретения. Соответственно, раскрытая в данном документе технология не ограничивается, за исключением прилагаемой формулы изобретения.
В настоящем документе термин "обработка видео" может относиться к кодированию видео, декодированию видео, сжатию видео или распаковке видео. Например, алгоритмы сжатия видео могут быть применены в процессе преобразования из пиксельного представления видео в соответствующее представление битового потока или наоборот. Представление битового потока текущего видеоблока может, например, соответствуют битам, которые либо совмещены или распространение в различных местах в пределах битового потока, как это определено в синтаксисе. Например, макроблок может быть закодирован с учетом преобразованных и кодированных значений остатка ошибок, а также с использованием битов в заголовках и других полях в битовом потоке. Кроме того, во время преобразования, декодер может выполнять синтаксический анализ битового потока при наличии знаний относительно того, что могут присутствовать или отсутствовать некоторые поля, на основе определения, которое описано в приведенных выше решениях. Аналогичным образом, кодер может определить то, что некоторые синтаксические поля включены или не включены и вырабатывают кодированное представление соответствующим образом путем включения или исключения синтаксического поля из кодированного представления.
Реализации предмета изобретения и функциональные операции, описанные в данном патентном документе, могут быть реализованы в виде различных систем, цифровых электронных схем или компьютерного программного обеспечения, программно-аппаратных средств или аппаратных средств, включая структуры, раскрытые в настоящем описании, а также их структурные эквиваленты, или в виде комбинаций одного или нескольких из них. Реализации предмета изобретения, описанные в настоящем описании, могут быть реализованы в виде одного или нескольких программных продуктов, компьютерных, то есть одного или нескольких модулей инструкций компьютерной программы, закодированных на материальном и невременном машиночитаемом носителе информации, для исполнения или для управления работой из устройства обработки данных. Машиночитаемый носитель информации может представлять собой машиночитаемое запоминающее устройство, машиночитаемый носитель информации, устройство памяти, состав вещества, обеспечивающий распространяемый сигнал, считываемый машиной, или комбинацию одного или нескольких из них. Термин "блок обработки данных" или "устройство обработки данных" включает в себя все аппаратные устройства, устройства и машины для обработки данных, включая в качестве примера программируемый процессор, компьютер, или несколько процессоров или компьютеров. Устройство может включать в себя, в дополнение к аппаратным средствам, код, который создает среду исполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограмму процессора, стек протоколов, систему управления базами данных, операционную систему или комбинацию одного или нескольких из них.
Компьютерная программа (также известная как программа, программное обеспечение, приложение, программа-скрипт или код) можно записать в любой форме языка программирования, включая скомпилированные или интерпретируемые языкы, и она может быть развернута в любой форме, в том числе в виде автономной программы или модуля, компонента, подпрограммы или другого блока, пригодного для использования в вычислительной среде. Компьютерная программа не обязательно соответствует файлу в файловой системе. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько сценариев, хранящихся на языке разметки документов), в одном файле, выделенном рассматриваемой программе, или в нескольких согласованных файлах (например, в файлах, которые хранят один или несколько модулей, вложенных программ или части кода). Компьютерная программа может быть развернута для исполнения на одном компьютере или на нескольких компьютерах, которые расположены в одном месте или распределены по нескольким сайтам и соединены между собой сетью связи.
Процессы и логические потоки, описанные в настоящем описании, могут выполняться одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для выполнения функций, оперируя входными данными и вырабатывая выходные данные. Кроме того, могут также выполняться процессы и логические потоки, и устройство может быть также реализовано в виде логической схемы специального назначения, например, FPGA (программируемая пользователем вентильная матрица) или ASIC (специализированная интегральная схема).
Процессоры, подходящие для исполнения компьютерной программы включают в себя, в качестве примера, микропроцессоры как общего, так и специального назначения, и любой один или более процессоров любого типа цифрового компьютера. Как правило, процессор принимает инструкции и данные только для считывания памяти или оперативной памяти или обоих. Основными элементами компьютера являются процессор для исполнения инструкций и одного или более устройств памяти для хранения инструкций и данных. В общем, компьютер будет также включать в себя или функционально соединен с возможностью приема данных из или передачи данных в или и то, и другое, одно или более запоминающих устройства большой емкости для хранения данных, например, магнитных дисков, магнитооптических или оптических дисков. Однако компьютер необязательно должен иметь такие устройства. Считываемые компьютером носители информации, пригодные для хранения инструкций и данных компьютерной программы включают в себя все виды энергонезависимой памяти, устройства для хранения данных и запоминающие устройства, включая в качестве примера полупроводниковые запоминающих устройств, например, например, EPROM, EEPROM и устройства флэш-памяти. Процессор и память могут быть дополнены специализированной логической схемой или включены в нее.
Предполагается, что описание, вместе с чертежами, должно рассматриваться только в качестве примера, где термин "примерный" означает пример. Используемый в данном документе термин "или" предназначен для включения "и/или", если в контекст явно не указано иное.
Хотя данный патентный документ содержит много специфичных подробностей, их не следует рассматривать как ограничение объема изобретения или любого из того, что может быть заявлено, а скорее их следует рассматривать как описание функций, которые могут быть специфичными для конкретных вариантов осуществления конкретных изобретений. Некоторые признаки, описанные в настоящем патентном документе в контексте отдельных вариантов осуществления также могут быть реализованы в комбинации в одном варианте осуществления. И наоборот, различные признаки, которые описаны в контексте одного варианта осуществления также могут быть реализованы в нескольких вариантах по отдельности или в любой подходящей подкомбинации. Более того, хотя признаки были описаны выше как действующие в определенных комбинациях и даже изначально заявлены как таковые, один или несколько признаков из заявленной комбинации в некоторых случаях может быть исключен из комбинации, и заявленная комбинация может быть направлена на подкомбинацию или вариацию из подкомбинации.
Аналогичным образом, хотя операции изображены на чертежах в определенном порядке, это не следует понимать как требование того, чтобы такие операции выполнялись в конкретном указанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись для достижения желаемых результатов. Более того, разделение различных компонентов системы в вариантах осуществления, описанных в данном патентном документе, не следует понимать как требующее такого разделения во всех вариантах осуществления.
Выше было описано только несколько реализаций и примеров, и другие реализации, улучшения и изменения могут быть сделаны на основе того, что описано и проиллюстрировано в данном патентном документе.
название | год | авторы | номер документа |
---|---|---|---|
ОПРЕДЕЛЕНИЕ РЕЖИМА КОДИРОВАНИЯ ЦВЕТНОСТИ НА ОСНОВЕ ВНУТРИКАДРОВОГО ПРЕДСКАЗАНИЯ НА ОСНОВЕ МАТРИЦЫ | 2020 |
|
RU2815738C2 |
ОГРАНИЧЕНИЕ ПРЕДСТАВЛЕНИЯ ДИФФЕРЕНЦИАЛЬНОЙ ИМПУЛЬСНО-КОДОВОЙ МОДУЛЯЦИИ КВАНТОВОГО ОСТАТКА КОДИРОВАННОГО ВИДЕО | 2020 |
|
RU2807214C2 |
ОГРАНИЧЕНИЕ РАЗМЕРА НА ОСНОВЕ ВНУТРИКАДРОВОГО РЕЖИМА ЦВЕТНОСТИ | 2020 |
|
RU2807441C2 |
ОПРЕДЕЛЕНИЕ РЕЖИМА РАЗДЕЛЕНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ РАЗМЕРА БЛОКА | 2020 |
|
RU2815443C2 |
РАЗДЕЛЕНИЕ ВИДЕООБЛАСТИ НА ОСНОВЕ ЦВЕТОВОГО ФОРМАТА | 2020 |
|
RU2811644C2 |
СПОСОБЫ УМЕНЬШЕНИЯ МЕЖКОМПОНЕНТНОЙ ЗАВИСИМОСТИ | 2020 |
|
RU2815434C2 |
ПРОЦЕДУРА КВАНТОВАНИЯ ДЛЯ РЕЖИМА ПАЛИТРЫ | 2020 |
|
RU2803621C2 |
ОГРАНИЧЕНИЕ СОПОСТАВЛЕНИЯ ДЛЯ ВИРТУАЛЬНОГО БУФЕРА ВНУТРИБЛОЧНОГО КОПИРОВАНИЯ | 2020 |
|
RU2818521C2 |
СОВМЕСТНОЕ КОДИРОВАНИЕ ИНДИКАЦИИ ИСПОЛЬЗОВАНИЯ РЕЖИМА ПАЛИТРЫ | 2020 |
|
RU2810950C2 |
СИГНАЛИЗАЦИЯ, ЗАВИСИМАЯ ОТ ПОДИЗОБРАЖЕНИЯ, В БИТОВЫХ ПОТОКАХ ВИДЕО | 2020 |
|
RU2820844C2 |
Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Определяют пространственный соседний блок текущего видеоблока, причем текущий видеоблок является внутрикадровым блоком, а пространственный соседний блок применяется с первым режимом предсказания, в котором отсчеты предсказания пространственного соседнего блока получаются путем выполнения операции пограничной понижающей дискретизации над опорными отсчетами пространственного соседнего блока на основе размера пространственного соседнего блока, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации. Преобразуют первый режим предсказания во второй режим предсказания для пространственного соседнего блока, причем второй режим предсказания отличается от первого режима предсказания. Составляют, на основе второго режима предсказания, список кандидатов режима для текущего видеоблока. Определяют, на основе списка кандидатов режима, режим предсказания для текущего видеоблока, который отличается от первого режима предсказания. Выполняют преобразование на основе режима предсказания для текущего видеоблока. 4 н. и 12 з.п. ф-лы, 41 ил.
1. Способ обработки видео, содержащий этапы, на которых:
определяют, для преобразования между текущим видеоблоком видео и битовым потоком видео, пространственный соседний блок текущего видеоблока, причем текущий видеоблок является внутрикадровым блоком, а пространственный соседний блок применяется с первым режимом предсказания, в котором отсчеты предсказания пространственного соседнего блока получаются путем выполнения операции пограничной понижающей дискретизации над опорными отсчетами пространственного соседнего блока на основе размера пространственного соседнего блока, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации;
преобразуют первый режим предсказания во второй режим предсказания для пространственного соседнего блока, причем второй режим предсказания отличается от первого режима предсказания;
составляют, на основе второго режима предсказания, список кандидатов режима для текущего видеоблока;
определяют, на основе списка кандидатов режима, режим предсказания для текущего видеоблока, причем режим предсказания для текущего видеоблока отличается от первого режима предсказания; и
выполняют преобразование на основе режима предсказания для текущего видеоблока,
при этом необходимость применения первого режима предсказания определяется с помощью множества синтаксических элементов, содержащих второй синтаксический элемент,
по меньшей мере один бин второго синтаксического элемента кодируется на основе контекста, причем в ответ на то, что отношение ширины к высоте пространственного соседнего блока больше 2, для первого бина второго синтаксического элемента используется контекст с номером последовательности 3.
2. Способ по п.1, в котором множество синтаксических элементов дополнительно содержит первый синтаксический элемент, который включен в набор параметров последовательности, причем второй синтаксический элемент является синтаксическим элементом уровня единицы кодирования.
3. Способ по п.2, в котором в случае, когда второй синтаксический элемент не включен в битовый поток, первый режим предсказания не применяется.
4. Способ по п.1, в котором для второго синтаксического элемента используется не более K контекстов.
5. Способ по п.4, в котором K равно 4.
6. Способ по любому из пп.1-5, в котором в ответ на то, что отношение ширины к высоте пространственного соседнего блока меньше или равно 2, для первого бина второго синтаксического элемента используется один контекст, выбранный из контекстов с номерами последовательности 0, 1 или 2.
7. Способ по любому из пп.1-6, в котором первый режим предсказания включает в себя множество типов, и индекс типа для пространственного соседнего блока выводится без ссылки на индексы типов предыдущих видеоблоков.
8. Способ по п.7, в котором индекс типа для пространственного соседнего блока включен явным образом в битовый поток.
9. Способ по любому из пп.1-8, в котором коэффициент понижающей дискретизации, полученный в операции пограничной понижающей дискретизации на основе размера пространственного соседнего блока, больше или равен 1, при этом одномерный векторный массив дополнительно получается на основе конкатенации опорных отсчетов с пониженной дискретизацией, полученных в результате выполнения операции пограничной понижающей дискретизации, и указанный одномерный векторный массив используется в качестве входных данных для операции матрично-векторного умножения.
10. Способ по любому из пп.1-9, в котором во втором режиме предсказания применяют взвешенные вычисления на основе расстояния к опорным значениям в вертикальном и горизонтальном направлениях для получения значений предсказания.
11. Способ по любому из пп.1-10, в котором второй режим предсказания включает в себя планарный режим.
12. Способ по любому из пп.1-11, в котором на этапе преобразования кодируют текущий видеоблок в битовый поток.
13. Способ по любому из пп.1-11, в котором на этапе преобразования декодируют текущий видеоблок из битового потока.
14. Устройство обработки видеоданных, содержащее процессор и энергонезависимую память, на которой хранятся инструкции, причем инструкции при исполнении процессором вызывают выполнение процессором:
определения, для преобразования между текущим видеоблоком видео и битовым потоком видео, пространственного соседнего блока текущего видеоблока, причем текущий видеоблок является внутрикадровым блоком, а пространственный соседний блок применяется с первым режимом предсказания, в котором отсчеты предсказания пространственного соседнего блока получаются путем выполнения операции пограничной понижающей дискретизации над опорными отсчетами пространственного соседнего блока на основе размера пространственного соседнего блока, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации;
преобразования первого режима предсказания во второй режим предсказания для пространственного соседнего блока, причем второй режим предсказания отличается от первого режима предсказания;
составления, на основе второго режима предсказания, списка кандидатов режима для текущего видеоблока;
определения, на основе списка кандидатов режима, режима предсказания для текущего видеоблока, причем режим предсказания для текущего видеоблока отличается от первого режима предсказания; и
выполнения преобразования на основе режима предсказания для текущего видеоблока,
при этом необходимость применения первого режима предсказания определяется с помощью множества синтаксических элементов, содержащих второй синтаксический элемент,
по меньшей мере один бин второго синтаксического элемента кодируется на основе контекста, причем в ответ на то, что отношение ширины к высоте пространственного соседнего блока больше 2, для первого бина второго синтаксического элемента используется контекст с номером последовательности 3.
15. Энергонезависимый машиночитаемый носитель информации, на котором хранятся инструкции, которые вызывают выполнение процессором:
определения, для преобразования между текущим видеоблоком видео и битовым потоком видео, пространственного соседнего блока текущего видеоблока, причем текущий видеоблок является внутрикадровым блоком, а пространственный соседний блок применяется с первым режимом предсказания, в котором отсчеты предсказания пространственного соседнего блока получаются путем выполнения операции пограничной понижающей дискретизации над опорными отсчетами пространственного соседнего блока на основе размера пространственного соседнего блока, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации;
преобразования первого режима предсказания во второй режим предсказания для пространственного соседнего блока, причем второй режим предсказания отличается от первого режима предсказания;
составления, на основе второго режима предсказания, списка кандидатов режима для текущего видеоблока;
определения, на основе списка кандидатов режима, режима предсказания для текущего видеоблока, причем режим предсказания для текущего видеоблока отличается от первого режима предсказания; и
выполнения преобразования на основе режима предсказания для текущего видеоблока,
при этом необходимость применения первого режима предсказания определяется с помощью множества синтаксических элементов, содержащих второй синтаксический элемент,
по меньшей мере один бин второго синтаксического элемента кодируется на основе контекста, причем в ответ на то, что отношение ширины к высоте пространственного соседнего блока больше 2, для первого бина второго синтаксического элемента используется контекст с номером последовательности 3.
16. Способ сохранения битового потока видео, содержащий этапы, на которых:
определяют, для преобразования между текущим видеоблоком видео и битовым потоком видео, пространственный соседний блок текущего видеоблока, причем текущий видеоблок является внутрикадровым блоком, а пространственный соседний блок применяется с первым режимом предсказания, в котором отсчеты предсказания пространственного соседнего блока получаются путем выполнения операции пограничной понижающей дискретизации над опорными отсчетами пространственного соседнего блока на основе размера пространственного соседнего блока, за которой следует операция матрично-векторного умножения и за которой выборочно следует операция повышающей дискретизации;
преобразуют первый режим предсказания во второй режим предсказания для пространственного соседнего блока, причем второй режим предсказания отличается от первого режима предсказания;
составляют, на основе второго режима предсказания, список кандидатов режима для текущего видеоблока;
определяют, на основе списка кандидатов режима, режим предсказания для текущего видеоблока, причем режим предсказания для текущего видеоблока отличается от первого режима предсказания;
генерируют битовый поток из текущего видеоблока на основе режима предсказания для текущего видеоблока;
сохраняют битовый поток на энергонезависимом машиночитаемом носителе информации,
при этом необходимость применения первого режима предсказания определяется с помощью множества синтаксических элементов, содержащих второй синтаксический элемент,
по меньшей мере один бин второго синтаксического элемента кодируется на основе контекста, причем в ответ на то, что отношение ширины к высоте пространственного соседнего блока больше 2, для первого бина второго синтаксического элемента используется контекст с номером последовательности 3.
Jonathan Pfaff et al | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Philipp Helle et al | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Авторы
Даты
2024-03-12—Публикация
2020-04-13—Подача