СПОСОБЫ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ, КОДЕР И ДЕКОДЕР, И НОСИТЕЛЬ ДАННЫХ
METHODS FOR ENCODING AND DECODING, ENCODER AND DECODER, AND DATA CARRIER

[0001] Настоящая заявка является выделенной заявкой из заявки RU №2021125967, поданной 2 сентября 2021, согласно которой испрашивается приоритет заявки на патент Китая №201910177580.4, поданной 9 марта 2019 г. под названием «METHODS FOR PERFORMING ENCODING AND DECODING, DECODING END AND ENCODING END», раскрытия которой включены в настоящий документ посредством ссылки во всей своей полноте.
Область техники, к которой относится настоящее изобретение
[0002] Настоящее изобретение относится к области аудио- и видеотехнологий и, в частности, относится к способам кодирования и декодирования, кодеру и декодеру, и носителю данных.
Предшествующий уровень техники настоящего изобретения
[0003] С развитием Интернет-технологий и компьютерных технологий разрабатывается все больше и больше видеоприложений, и требования пользователей к видео высокой четкости в видеоприложениях растут. Однако, поскольку видео высокой четкости обычно содержит большой объем данных, перед передачей в условиях ограниченной пропускной способности сети видео высокой четкости необходимо кодировать. Кодирование данных обычно предусматривает: внутрикадровое предсказание (или межкадровое предсказание), преобразование, квантование, энтропийное кодирование, фильтрацию внутри петли и т.п. Во время кодирования остаточный блок, который может называться единицей преобразования (TU) или остаточным сигналом текущего блока, получается путем внутрикадрового предсказания, а коэффициент преобразования получается путем преобразования TU (преобразование относится к преобразованию изображения, изображенного в виде пикселей в пространственной области, в изображение, выраженное в виде коэффициента преобразования в области преобразования). После этого кодированные данные получают путем выполнения квантования и энтропийного кодирования коэффициента преобразования.
Краткое раскрытие настоящего изобретения
[0004] Согласно вариантам осуществления настоящего изобретения предлагаются способы кодирования и декодирования, кодер и декодер, и носитель данных. Технические решения заключаются в следующем.
[0005] Согласно одному аспекту вариантов осуществления настоящего изобретения предлагается способ декодирования. Способ декодирования предусматривает:
[0006] получение кодированных данных текущего блока;
[0007] определение того, что высота и ширина текущего блока меньше или равны заданному порогу, и текущий блок является блоком яркости;
[0008] получение индекса пары преобразований, соответствующего текущему блоку, из кодированных данных, причем, в случае если индекс пары преобразований предусматривает пять значений индекса, пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT2, DCT2), в случае если значение индекса пары преобразований является первым значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DST7, DST7), в случае если значение индекса пары преобразований является вторым значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT8, DST7), в случае если значение индекса пары преобразований является третьим значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DST7, DCT8), в случае если значение индекса пары преобразований является четвертым значением индекса; и пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT8, DCT8), в случае если значение индекса пары преобразований является пятым значением индекса; причем бинаризованное кодовое слово, соответствующее индексу пары преобразований, занимает не более четырех битов, и первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для указания того, выбрана ли пара преобразований, отмеченная первым значением индекса, причем пару преобразований (DCT2, DCT2), отмеченную первым значением индекса, выбирают, в случае если значение первого бита является первым значением, и пару преобразований, отмеченную одним из оставшихся значений индекса, выбирают, в случае если значение первого бита является вторым значением; и причем первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, декодируют посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели; и
[0009] определение пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[0010] Согласно некоторым вариантам осуществления определение пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований предусматривает: определение пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований, соответствующего текущему блоку, и предварительно установленного соответствующего отношения между индексом пары преобразований и парой преобразований, причем соответствующее отношение предусматривает отношение соответствия между пятью значениями индекса пары преобразований и пятью парами преобразований.
[0011] Согласно некоторым вариантам осуществления, в случае если значение первого бита является вторым значением, первый бит предназначен для указания того, что выбрана пара преобразований, отмеченная одним из оставшихся значений индекса, причем пара преобразований, отмеченная одним из оставшихся значений индекса, является одной из четырех пар преобразований (DST7, DST7), (DCT8, DST7), (DST7, DCT8) и (DCT8, DCT8); причем
[0012] значение второго бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DST7, DST7) или одной из (DCT8, DST7), (DST7, DCT8) и (DCT8 DCT8);
[0013] значение третьего бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DCT8, DST7) или одной из (DST7, DCT8) и (DCT8, DCT8); и
[0014] значение четвертого бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DST7, DCT8) или (DCT8, DCT8).
[0015] Согласно некоторым вариантам осуществления определение пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований предусматривает:
[0016] определение того, что пара преобразований, соответствующая текущему блоку, представляет собой (DCT2, DCT2), в случае если первый бит равен 0;
[0017] определение того, что пара преобразований, соответствующая текущему блоку, представляет собой (DST7, DST7), в случае если первый бит равен 1, а второй бит равен 0;
[0018] определение того, что пара преобразований, соответствующая текущему блоку, представляет собой (DCT8, DST7), в случае если первый бит равен 1, второй бит равен 1, а третий бит равен 0;
[0019] определение того, что пара преобразований, соответствующая текущему блоку, представляет собой (DST7, DCT8), в случае если первый бит равен 1, второй бит равен 1, третий бит равен 1, а четвертый бит равен 0; и
[0020] определение того, что пара преобразований, соответствующая текущему блоку, представляет собой (DCT8, DCT8), в случае если первый бит равен 1, второй бит равен 1, третий бит равен 1, а четвертый бит равен 1.
[0021] Согласно некоторым вариантам осуществления перед получением индекса пары преобразований, соответствующего текущему блоку, из кодированных данных способ декодирования дополнительно предусматривает: идентификацию того, несут ли кодированные данные от устройства кодирования целевой флаг, причем целевой флаг предназначен для указания того, что активировано явное многоядерное преобразование.
[0022] Согласно некоторым вариантам осуществления получение индекса пары преобразований, соответствующего текущему блоку, из кодированных данных предусматривает: получение индекса пары преобразований, соответствующего текущему блоку, из кодированных данных в ответ на определение того, что текущий блок является блоком яркости, а высота и ширина текущего блока меньше или равны 32.
[0023] Согласно некоторым вариантам осуществления способ декодирования дополнительно предусматривает: непосредственное определение, вместо декодирования индекса пары преобразований, соответствующего текущему блоку, (DCT2, DCT2) в качестве пары преобразований, выбранной текущим блоком, в ответ на определение того, что текущий блок не является блоком яркости или высота или ширина текущего блока больше 32.
[0024] Согласно некоторым вариантам осуществления первое значение первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, равно 0, а второе значение первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, равно 1.
[0025] Согласно некоторым вариантам осуществления бинаризованное кодовое слово первого значения индекса равно 0; бинаризованное кодовое слово второго значения индекса равно 10; бинаризованное кодовое слово третьего значения индекса равно 110; бинаризованное кодовое слово четвертого значения индекса равно 1110; и бинаризованное кодовое слово пятого значения индекса равно 1111.
[0026] Согласно некоторым вариантам осуществления способ декодирования дополнительно предусматривает: декодирование других битов посредством контекстно-адаптивного двоичного арифметического кодирования (САВАС), в случае если бинаризованное кодовое слово, соответствующее индексу пары преобразований, дополнительно содержит другие биты в дополнение к первому биту.
[0027] Согласно некоторым вариантам осуществления получение кодированных данных текущего блока предусматривает: получение подвергнутых обратному квантованию данных текущего блока путем выполнения энтропийного декодирования кодированных данных и выполнение обратного квантования результата энтропийного декодирования.
[0028] Согласно некоторым вариантам осуществления в ответ на определение пары преобразований, соответствующей текущему блоку, способ декодирования дополнительно предусматривает: получение остаточного сигнала, соответствующего текущему блоку, посредством выполнения обработки с обратным преобразованием подвергнутых обратному квантованию данных текущего блока посредством пары преобразований, а затем получение информации о восстановлении, соответствующей текущему блоку, путем сложения остаточного сигнала и сигнала предсказания.
[0029] Согласно некоторым вариантам осуществления текущий блок представляет собой единицу преобразования, а текущий блок представляет собой единицу кодирования, полученный путем разбиения единицы дерева кодирования с использованием одного или нескольких из разбиения методом квадродерева, горизонтального разбиения методом двоичного дерева, вертикального разбиения методом двоичного дерева, горизонтального разбиения методом троичного дерева и вертикального разбиения методом троичного дерева.
[0030] Согласно некоторым вариантам осуществления текущий блок представляет собой единицу преобразования, ширина которой больше ее высоты, или текущий блок представляет собой единицу преобразования, ширина которой равна ее высоте, или текущий блок представляет собой единицу преобразования, ширина которой меньше ее высоты.
[0031] Согласно другому аспекту вариантов осуществления настоящего изобретения предлагается способ кодирования. Способ кодирования предусматривает:
[0032] определение того, что высота и ширина текущего блока меньше или равны заданному порогу, и текущий блок является блоком яркости;
[0033] определение пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку, причем, в случае если индекс пары преобразований предусматривает пять значений индекса, пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT2, DCT2), в случае если значение индекса пары преобразований является первым значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DST7, DST7), в случае если значение индекса пары преобразований является вторым значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT8, DST7), в случае если значение индекса пары преобразований является третьим значением индекса; пара преобразований, отмеченная индексом пары преобразований, представляет собой (DST7, DCT8), в случае если значение индекса пары преобразований является четвертым значением индекса; и пара преобразований, отмеченная индексом пары преобразований, представляет собой (DCT8, DCT8), в случае если значение индекса пары преобразований является пятым значением индекса; и причем бинаризованное кодовое слово, соответствующее индексу пары преобразований, занимает не более четырех битов, и первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для указания того, выбрана ли пара преобразований, отмеченная первым значением индекса, причем пару преобразований (DCT2, DCT2), отмеченную первым значением индекса, выбирают, в случае если значение первого бита является первым значением, и пару преобразований, отмеченную одним из оставшихся значений индекса, выбирают, в случае если значение первого бита является вторым значением; и
[0034] кодирование индекса пары преобразований путем подвергания первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, контекстно-адаптивному двоичному арифметическому кодированию на основе одной контекстной модели и добавление кодированного индекса пары преобразований к кодированным данным текущего блока.
[0035] Согласно некоторым вариантам осуществления определение пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку, предусматривает: определение пары преобразований, соответствующей текущему блоку; и определение индекса пары преобразований, соответствующего текущему блоку, на основе пары преобразований и предварительно установленного соответствующего отношения между индексом пары преобразований и парой преобразований, причем соответствующее отношение предусматривает отношение соответствия между пятью значениями индекса пары преобразований и пятью парами преобразований.
[0036] Согласно некоторым вариантам осуществления, в случае если значение первого бита является вторым значением, первый бит предназначен для указания того, что выбрана пара преобразований, отмеченная одним из оставшихся значений индекса, причем пара преобразований, отмеченная одним из оставшихся значений индекса, является одной из четырех пар преобразований (DST7, DST7), (DCT8, DST7), (DST7, DCT8) и (DCT8, DCT8); причем
[0037] значение второго бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DST7, DST7) или одной из (DCT8, DST7), (DST7, DCT8) и (DCT8 DCT8);
[0038] значение третьего бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DCT8, DST7) или одной из (DST7, DCT8) и (DCT8, DCT8); и
[0039] значение четвертого бита бинаризованного кодового слова предназначено для идентификации того, является ли пара преобразований, выбранная текущим блоком, (DST7, DCT8) или (DCT8, DCT8).
[0040] Согласно некоторым вариантам осуществления первый бит бинаризованного кодового слова равен 0, в случае если пара преобразований, соответствующая текущему блоку, представляет собой (DCT2, DCT2); первый бит бинаризованного кодового слова равен 1, а второй бит равен 0, в случае если пара преобразований, соответствующая текущему блоку, представляет собой (DST7, DST7); первый бит бинаризованного кодового слова равен 1, второй бит равен 1, а третий бит равен 0, в случае если пара преобразований, соответствующая текущему блоку, представляет собой (DCT8, DST7); первый бит бинаризованного кодового слова равен 1, второй бит равен 1, третий бит равен 1, а четвертый бит равен 0, в случае если пара преобразований, соответствующая текущему блоку, представляет собой (DST7, DCT8); и первый бит бинаризованного кодового слова равен 1, второй бит равен 1, третий бит равен 1, а четвертый бит равен 1, в случае если пара преобразований, соответствующая текущему блоку, представляет собой (DCT8, DCT8).
[0041] Согласно некоторым вариантам осуществления способ кодирования дополнительно предусматривает: добавление целевого флага к кодированным данным, причем целевой флаг предназначен для указания того, что активировано явное многоядерное преобразование.
[0042] Согласно некоторым вариантам осуществления определение пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку, предусматривает: определение пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку, в ответ на определение того, что текущий блок является блоком яркости, а высота и ширина текущего блока меньше или равны 32.
[0043] Согласно некоторым вариантам осуществления способ кодирования дополнительно предусматривает: непосредственное определение, вместо кодирования индекса пары преобразований, соответствующего текущему блоку, (DCT2, DCT2) в качестве пары преобразований, выбранной текущим блоком, в ответ на определение того, что текущий блок не является блоком яркости или высота или ширина текущего блока больше 32.
[0044] Согласно некоторым вариантам осуществления первое значение первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, равно 0, а второе значение первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, равно 1.
[0045] Согласно некоторым вариантам осуществления бинаризованное кодовое слово первого значения индекса равно 0; бинаризованное кодовое слово второго значения индекса равно 10; бинаризованное кодовое слово третьего значения индекса равно 110; бинаризованное кодовое слово четвертого значения индекса равно 1110; и бинаризованное кодовое слово пятого значения индекса равно 1111.
[0046] Согласно некоторым вариантам осуществления способ кодирования дополнительно предусматривает: кодирование других битов посредством контекстно-адаптивного двоичного арифметического кодирования (САВАС), в случае если бинаризованное кодовое слово, соответствующее индексу пары преобразований, дополнительно содержит другие биты в дополнение к первому биту.
[0047] Согласно некоторым вариантам осуществления способ кодирования дополнительно предусматривает: получение коэффициента преобразования путем преобразования текущего блока на основе пары преобразований, получение коэффициента квантования путем квантования коэффициента преобразования и получение кодированных данных, соответствующих текущему блоку, путем выполнения энтропийного кодирования коэффициента квантования.
[0048] Согласно некоторым вариантам осуществления в ответ на определение пары преобразований, соответствующей текущему блоку: способ кодирования дополнительно предусматривает: получение коэффициента преобразования путем преобразования остаточного сигнала текущего блока на основе пары преобразований, получение коэффициента квантования путем квантования коэффициента преобразования, и получение кодированных данных, соответствующих текущему блоку, путем выполнения энтропийного кодирования коэффициента квантования; и добавление кодированного индекса пары преобразований к кодированным данным.
[0049] Согласно некоторым вариантам осуществления текущий блок представляет собой единицу преобразования, а текущий блок представляет собой единицу кодирования, полученный путем разбиения единицы дерева кодирования с использованием одного или нескольких из разбиения методом квадродерева, горизонтального разбиения методом двоичного дерева, вертикального разбиения методом двоичного дерева, горизонтального разбиения методом троичного дерева и вертикального разбиения методом троичного дерева.
[0050] Согласно некоторым вариантам осуществления текущий блок представляет собой единицу преобразования, ширина которой больше ее высоты, или текущий блок представляет собой единицу преобразования, ширина которой равна ее высоте, или текущий блок представляет собой единицу преобразования, ширина которой меньше ее высоты.
[0051] Согласно другому аспекту вариантов осуществления настоящего изобретения предлагается декодер. Декодер содержит: процессор и запоминающее устройство, хранящую по меньшей мере одну инструкцию, исполняемую процессором; при этом процессор при загрузке и исполнении по меньшей мере одной инструкции вынужден выполнять способ декодирования согласно любому из вышеупомянутых вариантов осуществления.
[0052] Согласно другому аспекту вариантов осуществления настоящего изобретения предлагается кодер. Кодер содержит: процессор и запоминающее устройство, хранящую по меньшей мере одну инструкцию, исполняемую процессором; при этом процессор при загрузке и исполнении по меньшей мере одной инструкции вынужден выполнять способ кодирования согласно любому из вышеупомянутых вариантов осуществления.
[0053] Согласно другому аспекту вариантов осуществления настоящего изобретения предлагается устройство декодирования. Устройство декодирования выполнено с возможностью выполнения способа декодирования согласно любому из вышеупомянутых вариантов осуществления.
[0054] Согласно другому аспекту вариантов осуществления настоящего изобретения предлагается устройство кодирования. Устройство кодирования выполнено с возможностью выполнения способа кодирования согласно любому из вышеупомянутых вариантов осуществления.
[0055] Согласно другому аспекту вариантов осуществления настоящего изобретения постоянный машиночитаемый носитель данных, хранящий по меньшей мере одну инструкцию, исполняемую процессором; при этом по меньшей мере одна инструкция при загрузке и исполнении процессором вынуждает процессор выполнять способ декодирования согласно любому из вышеупомянутых вариантов осуществления или способ кодирования согласно любому из вышеупомянутых вариантов осуществления.
Краткое описание фигур
[0056] На фиг. 1 представлена схема, показывающая типы разбиения блока согласно одному варианту осуществления настоящего изобретения;
[0057] на фиг. 2 представлена схема, показывающая, что CTU разбивается на CU согласно одному варианту осуществления настоящего изобретения;
[0058] на фиг. 3 представлена схема, показывающая три обычно используемых блока согласно одному варианту осуществления настоящего изобретения;
[0059] на фиг. 4 представлена схема направления при выполнении внутрикадрового предсказания согласно одному варианту осуществления настоящего изобретения;
[0060] на фиг. 5 представлена схема кодирования согласно одному варианту осуществления настоящего изобретения;
[0061] на фиг. 6 представлена схема распределенного сигнала согласно одному варианту осуществления настоящего изобретения;
[0062] на фиг. 7 представлена схема распределения остаточного сигнала согласно одному варианту осуществления настоящего изобретения;
[0063] на фиг. 8 представлена блок-схема способа кодирования согласно одному варианту осуществления настоящего изобретения;
[0064] на фиг. 9 представлена блок-схема способа декодирования согласно одному варианту осуществления настоящего изобретения;
[0065] на фиг. 10 представлена блок-схема другого способа кодирования согласно одному варианту осуществления настоящего изобретения;
[0066] на фиг. 11 представлена блок-схема другого способа декодирования согласно одному варианту осуществления настоящего изобретения;
[0067] на фиг. 12 представлена блок-схема еще одного способа кодирования согласно одному варианту осуществления настоящего изобретения;
[0068] на фиг. 13 представлена блок-схема еще одного способа декодирования согласно одному варианту осуществления настоящего изобретения;
[0069] на фиг. 14 представлена структурная схема устройства декодирования согласно одному варианту осуществления настоящего изобретения;
[0070] на фиг. 15 представлена структурная схема устройства кодирования согласно одному варианту осуществления настоящего изобретения;
[0071] на фиг. 16 представлена структурная схема другого устройства декодирования согласно одному варианту осуществления настоящего изобретения;
[0072] на фиг. 17 представлена структурная схема другого устройства кодирования согласно одному варианту осуществления настоящего изобретения;
[0073] на фиг. 18 представлена структурная схема еще одного устройства декодирования согласно одному варианту осуществления настоящего изобретения;
[0074] на фиг. 19 представлена структурная схема еще одного устройства кодирования согласно одному варианту осуществления настоящего изобретения;
[0075] на фиг. 20 представлена структурная схема еще одного устройства кодирования согласно одному варианту осуществления настоящего изобретения; и
[0076] на фиг. 21 представлена структурная схема еще одного устройства декодирования согласно одному варианту осуществления настоящего изобретения.
Подробное раскрытие настоящего изобретения
[0077] Для более четкого описания целей, технических решений и преимуществ настоящего изобретения варианты осуществления настоящего изобретения описаны более подробно далее со ссылкой на прилагаемые фигуры.
[0078] В уровне техники во время преобразования коэффициент преобразования обычно получают путем преобразования TU с использованием заданной пары преобразований (пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования). Соответственно, во время декодирования остаточный сигнал получается путем обратного преобразования TU с использованием заданной пары преобразований, использованной во время кодирования.
[0079] Таким образом, поскольку при преобразовании одной и той же TU с использованием различных пар преобразований достигаются совершенно разные эффекты сжатия, то при преобразовании всех TU с использованием одной и той же заданной пары преобразований может быть получена неудовлетворительная производительность кодирования и декодирования.
[0080] В настоящем изобретении предлагается способ кодирования и способ декодирования. Способ кодирования может быть выполнен устройством кодирования. Способ декодирования может быть выполнен устройством декодирования. Кроме того, устройство кодирования или устройство декодирования могут быть устройством, способным кодировать и/или декодировать видеоданные, таким как сервер, компьютер или мобильный телефон.
[0081] Процессор, запоминающее устройство, приемопередатчик и т.п. могут быть размещены в устройстве кодирования или устройстве декодирования. Процессор может быть выполнен с возможностью кодирования и/или декодирования данных. Запоминающее устройство может быть выполнено с возможностью хранения данных, необходимых для процесса кодирования и/или декодирования, и данных, генерируемых в этих процессах. Приемопередатчик может быть выполнен с возможностью приема и передачи данных, например, для получения видеоданных.
[0082] Концепции, которые могут быть задействованы согласно вариантам осуществления настоящего изобретения, сначала объясняются перед описанием вариантов осуществления.
[0083] Ядро преобразования
[0084] В видеокодировании преобразование является необходимой стадией для сжатия видеоданных и позволяет сконцентрировать энергию сигналов. Кроме того, метод преобразования на основе дискретного косинусного преобразования (ВСТ)/дискретного синусного преобразования (DST) был основным методом преобразования при кодировании видео. Каждое из DCT и DST, в частности, предусматривает множество ядер преобразования, основанных на различных базисных функциях. Базисные функции трех обычно используемых ядер преобразования приведены в таблице 1.
[0085] Прямое преобразование и обратное преобразование
[0086] При кодировании видео процесс преобразования предусматривает прямое преобразование и обратное преобразование, которые также называются прямым преобразованием и обратным преобразованием. Прямое преобразование означает, что двумерный остаточный сигнал (остаточный коэффициент) преобразуется в двумерный сигнал спектра (коэффициент преобразования) с более концентрированной энергией, а затем коэффициент преобразования квантуется, так что высокочастотный компонент эффективно удаляется, а промежуточные и низкочастотные компоненты сохраняются, вследствие чего достигается эффект сжатия. Это выражается в матрице в виде формулы (1):
[0087] где М представляет ширину остаточного блока, N представляет высоту остаточного блока, f представляет исходный остаточный сигнал размером N*M, и F представляет сигнал частотной области размером N*M. А и В представляют собой М*М-мерную матрицу преобразования и N*N-мерную матрицу преобразования соответственно, обе из которых удовлетворяют ортогональности.
[0088] Обратное преобразование, также называемое обратным преобразованием, является процессом, обратным прямому преобразованию. То есть, сигнал частотной области F преобразуется в остаточный сигнал временной области f с помощью ортогональных матриц преобразования А и В. Это выражается в матрице в виде формулы (2):
[0089] Горизонтальное преобразование и вертикальное преобразование:
T
T
[0090] На стадии преобразования видеокодирования двумерный остаточный сигнал является входной величиной. Как показано в формуле (3), если X=A⋅ƒ, F=B⋅X.
[0091] Таким образом, прямое преобразование одного двумерного остаточного сигнала осуществляется посредством выполнения двумерного прямого преобразования дважды. При первом прямом преобразовании получается M*N сигнал X, и корреляция между пикселями в горизонтальном направлении двумерного остаточного сигнала отменяется. Поэтому первое прямое преобразование называется горизонтальным преобразованием, а А матрицей горизонтального преобразования. При втором прямом преобразовании корреляция между пикселями в вертикальном направлении двумерного остаточного сигнала отменяется. Поэтому второе прямое преобразование называется вертикальным преобразованием, а В матрицей вертикального преобразования.
[0092] Пара преобразований
[0093] В стандарте кодирования видео следующего поколения единица преобразования (TU) может представлять собой прямоугольный блок. Поэтому М не обязательно равно N, и, следовательно, размеры А и В не обязательно равны. Кроме того, стандарт кодирования видео следующего поколения поддерживает, что А и В не являются матрицами преобразования, создаваемыми одним и тем же ядром преобразования. Таким образом, существует пара преобразований {Н, V}, состоящая из ядер преобразования, соответствующих А и В соответственно в преобразовании, причем Н называется ядром горизонтального преобразования, а V - ядром вертикального преобразования.
[0094] Разбиение блока
[0095] При высокоэффективном видеокодировании (HEVC) единица дерева кодирования (CTU) размером 64*64 рекурсивно разбивается на единицы кодирования (CU) с помощью квадродерева. Использование внутрикадрового или межкадрового кодирования определяется на уровне CU листового узла. Далее CU разбивается на две или четыре единицы предсказания (PU), и одна и та же информация предсказания используется в одной и той же PU. После получения остаточного сигнала по завершении предсказания одна CU далее разбивается на множество TU с помощью квадродерева.
[0096] Однако в недавно предложенном универсальном кодировании видео (VVC) технология разбиения блока сильно изменилась. Исходный режим разбиения заменен на гибридную структуру разбиения методом двоичного дерева/троичного дерева/квадродерева (BT/TT/QT), исходные концепции CU, PU и TU отменены, и поддерживается более гибкий режим разбиения CU. CU подвергается квадратному или прямоугольному разбиению. CTU сначала подвергается разбиению методом квадродерева, а затем каждый из листовых узлов, полученных при разбиении методом квадродерева, дополнительно подвергается разбиению методом двоичного дерева и троичного дерева. Таким образом, доступны пять схем разбиения: разбиение методом квадродерева, горизонтальное разбиение методом двоичного дерева, вертикальное разбиение методом двоичного дерева, горизонтальное разбиение методом троичного дерева и вертикальное разбиение методом троичного дерева, как показано на фиг. 1, где показаны пять схем разбиения. На фиг. 1 (а) представляет отсутствие разбиения, (b) представляет разбиение методом квадродерева, (с) представляет горизонтальное разбиение методом двоичного дерева, (d) представляет вертикальное разбиение методом двоичного дерева, (е) представляет горизонтальное разбиение методом троичного дерева и (f) представляет вертикальное разбиение методом троичного дерева. На фиг. 2 представлена иллюстративная схема, показывающая, что одна CTU разбита на несколько CU.
[0097] Поэтому, исходя из схем разбиения, блок обычно имеет три формы, как показано на фиг. 3. На фиг. 3 (а) представляет блок, ширина которого больше его высоты, (b) представляет блок, ширина которого равна его высоте, и (с) представляет блок, ширина которого меньше его высоты.
[0098] Внутрикадровое предсказание
[0099] Внутрикадровое предсказание означает, что, учитывая выраженную корреляцию в пространственной области между соседними блоками в изображении, текущий некодированный блок предсказывается с использованием окружающих пикселей, которые были восстановлены, в качестве опорных пикселей. Таким образом, только остаточный сигнал (исходный сигнал сигнал предсказания) должен быть подвергнут последующему кодированию, вместо кодирования исходного сигнала. Таким образом, избыточность пространственной области эффективно удаляется, и эффективность сжатия видеосигнала значительно повышается. Кроме того, при внутрикадровом предсказании более плотно расположенные углы обеспечивают лучший эффект предсказания. На фиг. 4 показана схема угловых направлений при выполнении внутрикадрового предсказания в 67 режимах внутрикадрового предсказания, заданных VVC, причем количество режимов внутрикадрового предсказания увеличено до 65 с 33 в HEVC. Номер режима 0 означает плоский режим; номер режима 1 означает режим DC (режим DC означает, что предсказанные пиксели текущего блока являются средним значением опорных пикселей), черные сплошные линии представляют угловые направления (2, 4, 6, 8, …, 64, 66) исходного HEVC, а пунктирные линии представляют добавленные угловые направления (3, 5, 7, 9, …, 63, 65). С более плотными угловыми направлениями границы любого направления в естественном видео могут быть более эффективно захвачены, и больше справочной информации может быть использовано для выбора стоимости скорости-искажения, так что более подходящий режим внутрикадрового предсказания будет найден для более точного предсказания текущего блока. Таким образом, блок предсказания становится ближе к исходному блоку, и для кодирования текущего блока необходимо передавать меньше битов, что позволяет достичь более высокой производительности кодирования. Когда выполняется кодирование с внутрикадровым предсказанием, эти 67 внутрикадровых режимов применяются к кодированным блокам всех размеров, включая компонент яркости и компонент цветности.
[00100] Как показано на фиг. 4, если номер режима внутрикадрового предсказания представляет от 2 до 34, угол между угловым направлением и горизонтальным направлением вправо составляет от -45 градусов до 45 градусов; и если номер режима внутрикадрового предсказания представляет от 35 до 66, угол между угловым направлением и горизонтальным направлением вправо составляет от -135 градусов до 45 градусов.
[00101] Следует отметить, что в плоской прямоугольной системе координат горизонтальное направление вправо является положительным направлением оси х, а вертикальное направление вверх является положительным направлением оси у. Таким образом, угол, образованный лучом с началом координат в качестве вершины (луч находится в направлении, удаленном от начала координат) в каждом из первого квадранта и второго квадранта и положительным направлением оси х, является положительным, а угол, образованный лучом с началом координат в качестве вершины (луч находится в направлении, удаленном от начала координат) в каждом из третьего квадранта и четвертого квадранта и положительным направлением оси х, является отрицательным. Например, угол между горизонтальным направлением вправо и осью симметрии (в направлении, удаленном от начала координат) в четвертом квадранте составляет -45 градусов.
[00102] Согласно одному варианту осуществления настоящего изобретения предлагается общий кадр кодирования. Как показано на фиг. 5, полный способ кодирования видео обычно предусматривает предсказание, преобразование, квантование, энтропийное кодирование, фильтрацию внутри петли и т.п. Предсказание, в частности, предусматривает внутрикадровое предсказание и межкадровое предсказание. Внутрикадровое предсказание означает, что, учитывая выраженную корреляцию в пространственной области между соседними блоками в изображении, текущий некодированный блок предсказывается с использованием окружающих пикселей, которые были восстановлены, в качестве опорных пикселей. Таким образом, только остаточный сигнал (исходный сигнал сигнал предсказания) должен быть подвергнут последующему кодированию, вместо кодирования исходного сигнала. В результате избыточность пространственной области эффективно удаляется, и эффективность сжатия видеосигнала значительно повышается. Межкадровое предсказание означает, что с помощью корреляции видеосигналов во временной области пиксели текущего изображения предсказываются с использованием пикселей смежного кодированного изображения для достижения цели удаления избыточности видеосигнала во временной области. При межкадровом предсказании из-за сильной корреляции видеосигналов во временной области, т.е. два кадра изображений, смежных во временной области, имеют много похожих блоков изображения, блоки изображения текущего кадра часто подвергаются поиску движения в смежном опорном изображении, чтобы найти блок, который лучше всего соответствует текущему блоку в качестве опорного блока. Благодаря высокому сходству и очень маленькому значению разницы между опорным блоком и текущим блоком, верхний порог скорости передачи данных при кодировании значения разницы обычно намного меньше, чем верхний порог скорости передачи данных при прямом кодировании значения пикселя текущего блока.
[00103] В процессе преобразования для одной и той же TU (которая также может называться остаточным блоком или текущим блоком), когда для сжатия остаточного блока используются различные пары преобразований, эффекты сжатия сильно отличаются. Это определяется базисной функцией самого ядра преобразования. Как показано на фиг. 6, соответствующие базисным функциям трех ядер преобразования, т.е. DCT2, DST7 и DCT8, биты входного сигнала составляют 64 точки. Из базисной функции нулевого порядка на фигуре видно, что DCT2 имеет относительно более сильный эффект концентрации энергии на равномерно распределенных сигналах, а сформированный компонент постоянного значения кратен среднему значению входных сигналов. DST7 имеет относительно более сильный эффект концентрации энергии для входных сигналов с возрастающими амплитудами. DCT8 имеет относительно более сильный эффект концентрации энергии для входных сигналов с нисходящими амплитудами.
[00104] Для более интуитивного восприятия взаимосвязи между различными ядрами преобразования и остаточными свойствами, как показано на фиг. 7, пять различных горизонтальных и вертикальных пар преобразований представляют различные типы распределения остатков. Тип ядра преобразования {DCT2, DCT2} обозначает, что остаток TU распределен равномерно, а тип ядра преобразования {DST7, DST7} обозначает, что распределение остатка TU увеличивается последовательно слева направо и сверху вниз, и что остаток TU в основном распределен в правом нижнем углу TU. Аналогично, {DCT8, DST7} обозначает, что остаток в основном распределен в левом нижнем углу TU, {DST7, DCT8} обозначает, что остаток в основном распределен в правом верхнем углу TU, и {DCT8, DCT8} обозначает, что остаток в основном распределен в левом верхнем углу TU.
[00105] Контекстная модель относится к процессу обновления вероятности символа на основе контекста в видеокодировании.
[00106] Согласно одному варианту осуществления настоящего изобретения предлагается способ кодирования. Схема этого способа может быть такой, как показано на фиг. 8.
[00107] На стадии 801 устройство кодирования получает остаточный сигнал текущего блока.
[00108] На практике при кодировании видеоданных устройство кодирования сначала выполняет внутрикадровое предсказание для получения остаточного сигнала (метод получения остаточного блока идентичен методу, описанному в существующем стандарте кодирования видео, и не описывается здесь повторно), а затем рассматривает остаточный сигнал как остаточный сигнал текущего блока, который должен быть обработан в данный момент.
[00109] Метод, согласно которому выбирается режим внутрикадрового предсказания, может быть следующим.
[00110] Как правило, для оценки эффективности кодирования существуют два основных показателя: скорость передачи данных и пиковое отношение сигнала к шуму (PSNR). Как правило, чем меньше битовый поток, тем выше степень сжатия, а чем выше PSNR, тем лучше качество восстановленного изображения. При выборе режима дискриминантная формула по сути является комплексной оценкой этих двух показателей.
[00111] Стоимость скорости-искажения, соответствующая режиму, представляет J (режим) = D+λ*R, где D представляет искажение, которое обычно измеряется индексом суммы квадратов ошибок (SSE), причем SSE относится к средней сумме квадратов разности между восстановленным блоком и исходным изображением, λ - множитель Лагранжа, a R - фактическое количество битов, необходимое для кодирования блока изображения в режиме внутрикадрового предсказания, включая сумму битов, необходимых для кодирования информации о режиме, информации о движении, остаточного сигнала и т.п.
[00112] Устройство кодирования может получить явную таблицу синтаксиса многоядерного преобразования. Как показано в таблице 2, пока выбран один режим внутрикадрового предсказания, каждая пара преобразований в таблице 2 выбирается для обработки с преобразованием, квантования, энтропийного кодирования и декодирования. Таким образом, рассматриваются все режимы внутрикадрового предсказания, затем выбирается режим внутрикадрового предсказания и пара преобразований, которые достигают наименьшей стоимости скорости-искажения, и этот режим внутрикадрового предсказания определяется как режим внутрикадрового предсказания, соответствующий текущему блоку. Таким образом, могут быть определены режим внутрикадрового предсказания и пара преобразований, соответствующие текущему блоку. Например, доступно 67 режимов внутрикадрового предсказания, и для каждого из этих режимов внутрикадрового предсказания доступно пять пар преобразований. Таким образом, доступно 67*5 комбинаций, и каждая комбинация предусматривает один режим внутрикадрового предсказания и одну пару преобразований. Комбинация с наименьшей стоимостью скорости-искажения выбирается для окончательного внутрикадрового предсказания и преобразования.
[00113] Следует отметить, что в таблице 2, в качестве альтернативы, DCT8 заменяется на DCT4, a DST7 заменяется на DST4, или DCT8 и DST7 заменяются другими ядрами преобразования.
[00114] Кроме того, как показано в таблице 3, для сокращения времени кодирования пара преобразований (DCT8, DCT8) удаляется на основании таблицы 2, то есть решение RDO для (DCT8, DCT8) не выполняется. Таким образом, количество комбинаций сокращается с 67*5 до 67*4, а количество решений RDO уменьшается. Таким образом, время кодирования сокращается. Кроме того, поскольку пара преобразований (DCT8, DCT8) отсутствует, количество битов бинаризованного кодового слова, соответствующего индексу пары преобразований, также сокращается с 4 до 3. Таким образом, верхний порог скорости передачи данных при кодировании также уменьшается.
[00115] Следует отметить, что в таблице 3, в качестве альтернативы, DCT8 заменяется на DCT2, или DCT8 заменяется на DCT2, когда удовлетворяется заданное условие ограничения формы.
[00116] Кроме того, как показано в таблице 4, для сокращения времени кодирования пара преобразований (DST7, DCT8) удаляется на основании таблицы 3, то есть решение RDO для (DST7, DCT8) не выполняется. Таким образом, количество комбинаций сокращается с 67*4 до 67*3, а количество решений RDO уменьшается. Таким образом, время кодирования сокращается. Кроме того, поскольку пары преобразований (DCT8, DCT8) и (DST7, DCT8) недоступны, количество битов бинаризованного кодового слова, соответствующего индексу пары преобразований, также сокращается с 3 до 2. Таким образом, верхний порог скорости передачи данных при кодировании также уменьшается.
[00117] Кроме того, как показано в таблице 5, для сокращения времени кодирования пара преобразований (DCT8, DST7) удаляется на основании таблицы 3, то есть решение RDO для (DCT8, DST7) не принимается. Таким образом, количество комбинаций сокращается с 67*4 до 67*3, а количество решений RDO уменьшается. Таким образом, время кодирования сокращается. Кроме того, поскольку пары преобразований (DCT8, DCT8) и (DCT8, DST7) недоступны, количество битов бинаризованного кодового слова, соответствующего индексу пары преобразований, также сокращается с 3 до 2. Таким образом, скорость передачи данных при кодировании также уменьшается.
[00118] Кроме того, как показано в таблице 6, для сокращения времени кодирования пары преобразований (DCT8, DCT8), (DCT8, DST7) и (DST7, DCT8) удаляются на основании таблицы 2, то есть решения RDO для (DCT8, DCT8), (DCT8, DST7) и (DST7, DCT8) не принимаются. Таким образом, количество комбинаций сокращается с 67*5 до 67*2, а количество решений RDO уменьшается. Таким образом, время кодирования сокращается. Кроме того, поскольку пары преобразований (DCT8, DCT8), (DCT8, DST7) и (DST7, DCT8) недоступны, количество битов бинаризованного кодового слова, соответствующего индексу пары преобразований, также уменьшается с 3 до 1. Таким образом, скорость передачи данных при кодировании также уменьшается.
[00119] Следует отметить, что в таблицах 4 и 5, в качестве альтернативы, DCT8 заменяется на DCT2, или DCT8 заменяется на DCT2, когда удовлетворяется заданное условие ограничения формы.
[00120] Следует отметить, что при использовании таблицы 4, хотя количество решений RDO уменьшается, производительность кодирования снижается.
[00121] Кроме того, также следует отметить, что в таблице 2 первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 1, или пару преобразований, соответствующую любому из индексов пар преобразований от 2 до 5; второй бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 2, или пару преобразований, соответствующую любому из индексов пар преобразований с 3 по 5; третий бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 3 или пару преобразований, соответствующую любому из индексов пар преобразований 4 и 5; и четвертый бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 4, или пару преобразований, соответствующую индексу пары преобразований 5. То есть, если первый бит равен 0, то используется пара преобразований (DCT2, DCT2); если первый бит равен 1, а второй бит равен 0, то используется пара преобразований (DST7, DST7); если первый бит равен 1, второй бит равен 1, а третий бит равен 0, то используется пара преобразований (DCT8, DST7); если первый бит равен 1, второй бит равен 1, третий бит равен 1, а четвертый бит равен 0, то используется пара преобразований (DST7, DCT8); и если первый бит равен 1, второй бит равен 1, третий бит равен 1, и четвертый бит равен 1, то используется пара преобразований (DCT8, DCT8).
[00122] Кроме того, следует также отметить, что в таблице 3 первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 1, или пару преобразований, соответствующую любому из индексов пар преобразований со 2 по 4; второй бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 2 или пару преобразований, соответствующую любому из индексов пар преобразований 3 и 4; и третий бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 3 или пару преобразований, соответствующую индексу пары преобразований 4. То есть, если первый бит равен 0, то используется пара преобразований (DCT2, DCT2); если первый бит равен 1, а второй бит равен 0, то используется пара преобразований (DST7, DST7); если первый бит равен 1, второй бит равен 1, а третий бит равен 0, то используется пара преобразований (DCT8, DST7); и если первый бит равен 1, второй бит равен 1, и третий бит равен 1, то используется пара преобразований (DST7, DCT8).
[00123] Кроме того, следует также отметить, что в таблице 4 первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 1, или пару преобразований, соответствующую любому из индексов пар преобразований 2 и 3; второй бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 2, или пару преобразований, соответствующую индексу пары преобразований 3. То есть, если первый бит равен 0, то используется пара преобразований (DCT2, DCT2); если первый бит равен 1, а второй бит равен 0, то используется пара преобразований (DST7, DST7); а если первый бит равен 1, и второй бит равен 1, то используется пара преобразований (DCT8, DST7).
[00124] Кроме того, следует также отметить, что в таблице 5 первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 1, или пару преобразований, соответствующую любому из индексов пар преобразований 2 и 3; и второй бит кодируется для идентификации того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 2, или пару преобразований, соответствующую индексу пары преобразований 3. То есть, если первый бит равен 0, то используется пара преобразований (DCT2, DCT2); если первый бит равен 1, а второй бит равен 0, то используется пара преобразований (DST7, DST7); а если первый бит равен 1, и второй бит равен 1, то используется пара преобразований (DST7, DCT8).
[00125] Кроме того, следует также отметить, что в таблице 6 первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, предназначен для определения того, использует ли текущий блок пару преобразований, соответствующую индексу пары преобразований 1, или пару преобразований, соответствующую индексу пары преобразований 2. То есть, если первый бит равен 0, то используется пара преобразований (DCT2, DCT2); а если первый бит равен 1, то используется пара преобразований (DST7, DST7).
[00126] На стадии 802 устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и индекс пары преобразований, соответствующий текущему блоку.
[00127] Пара преобразований содержит ядро вертикального преобразования и ядро горизонтального преобразования.
[00128] На практике устройство кодирования получает окончательно выбранную пару преобразований и затем выбирает индекс пары преобразований, соответствующий этой паре преобразований, на основе соответствующей взаимосвязи между парой преобразований и индексом пары преобразований, которая описана в любой из таблиц 2-6.
[00129] Следует также отметить, что во время кодирования, как правило, определено, какая из таблиц 2-6 используется, и, таким образом, получается только одна из таблиц 2-6.
[00130] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения перед стадией 802 также может быть выполнено следующее определение.
[00131] Устройство кодирования определяет, что высота и ширина текущего блока меньше или равны заданному порогу, и текущий блок является блоком яркости.
[00132] Заданный порог заранее определен и сохранен в устройстве кодирования и обычно равен N (N может составлять 32).
[00133] На практике после выполнения стадии 801 устройство кодирования определяет количество пикселей текущего блока в направлении высоты, т.е. высоту текущего блока, и определяет количество пикселей текущего блока в направлении ширины, т.е. ширину текущего блока. Кроме того, устройство кодирования определяет, является ли текущий блок блоком яркости. Если текущий блок является блоком яркости, а высота и ширина текущего блока меньше или равны заданному порогу, выполняется стадия 802.
[00134] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения индекс пары преобразований также определяется на основе режима внутрикадрового предсказания или информации о форме текущего блока, как показано ниже.
[00135] Метод I: Устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и определяет индекс пары преобразований, соответствующий текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований.
[00136] На практике устройство кодирования определяет пару преобразований и режим внутрикадрового предсказания текущего блока вышеупомянутым методом, затем получает заданную синтаксическую таблицу явной многоядерной пары преобразований, и определяет на основе режима внутрикадрового предсказания и пары преобразований в этой синтаксической таблице индекс пары преобразований, соответствующий текущему блоку.
[00137] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения индекс пары преобразований определяется на основе режима внутрикадрового предсказания следующим методом, и соответствующая обработка выполняется следующим образом.
[00138] Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00139] На практике заданная синтаксическая таблица явной многоядерной пары преобразований выглядит так, как показано в таблице 7.
[00140] В таблице 7, если первой парой преобразований является (DST7, DCT8) и номер режима внутрикадрового предсказания меньше или равен заданному значению (заданное значение равно 34), определяется, что индекс пары преобразований равен 3 и, таким образом, соответствующее бинаризованное кодовое слово содержит три бита, которые последовательно равны 1, 1 и 0. Если второй парой преобразований является (DCT8, DST7) и номер режима внутрикадрового предсказания больше 34, определяется, что индекс соответствующей пары преобразований равен 3 и, таким образом, соответствующее бинаризованное кодовое слово содержит три бита, которые последовательно равны 1, 1 и 0. Если второй парой преобразований является (DCT8, DST7) и номер режима внутрикадрового предсказания меньше или равен 34, определяется, что индекс соответствующей пары преобразований равен 4 и, таким образом, соответствующее бинаризованное кодовое слово содержит четыре бита, которые последовательно равны 1, 1, 1 и 0. Если первой парой преобразований является (DST7, DCT8) и номер режима внутрикадрового предсказания больше 34, то определяется, что индекс пары преобразований равен 4 и, таким образом, соответствующее бинаризованное кодовое слово содержит четыре бита, которые последовательно равны 1, 1, 1 и 0.
[00141] Следует также отметить, что поскольку индекс пары преобразований определяется непосредственно на основе некоторых пар преобразований, условие, которое удовлетворяется при использовании метода I, заключается в том, что определенная пара преобразований не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8).
[00142] Следует также отметить, что в таблице 7, где индекс пары преобразований равен 3, режим = 0~34? DST7: DCT8 означает, что если верно, что номер режима внутрикадрового предсказания составляет от 0 до 34, то ядром горизонтального преобразования является DST7, а в противном случае ядром горизонтального преобразования является DCT8, и режим = 0~34? DCT8: DST7 означает, что если верно, что номер режима внутрикадрового предсказания составляет от 0 до 34, то ядром вертикального преобразования является DCT8, в противном случае ядром вертикального преобразования является DST7. Если индекс пары преобразований равен 4, то режим = 0~34? DCT8: DST7 означает, что если верно, что номер режима внутрикадрового предсказания составляет от 0 до 34, то ядром горизонтального преобразования является DCT8, а в противном случае ядром горизонтального преобразования является DST7, и режим = 0~34? DST7: DCT8 означает, что если верно, что номер режима внутрикадрового предсказания составляет от 0 до 34, то ядром вертикального преобразования является DST7, в противном случае ядром вертикального преобразования является DCT8.
[00143] Метод II: Устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и определяет индекс пары преобразований, соответствующий текущему блоку, на основе информации о форме текущего блока и пары преобразований.
[00144] На практике устройство кодирования определяет пару преобразований и информацию о форме текущего блока вышеупомянутым методом, затем получает заданную синтаксическую таблицу явной многоядерной пары преобразований, и определяет на основе пары преобразований и информации о форме текущего блока в этой таблице индекс пары преобразований, соответствующий текущему блоку.
[00145] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения обработка для определения индекса пары преобразований со ссылкой на информацию о форме текущего блока может быть следующей.
[00146] Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы.
[00147] Заданное условие ограничения формы может быть задано и сохранено в устройстве кодирования. Заданное условие ограничения формы заключается в том, что ширина больше или равна высоте.
[00148] На практике заданная синтаксическая таблица явной многоядерной пары преобразований выглядит так, как показано в таблице 8.
[00149] В таблице 8, если первой парой преобразований является (DST7, DCT8) и информация о форме текущего блока заключается в том, что ширина больше или равна высоте, определяется, что индекс пары преобразований равен 3 и, таким образом, соответствующее бинаризованное кодовое слово содержит три бита, которые последовательно равны 1, 1 и 0. Если второй парой преобразований является (DCT8, DST7) и информация о форме текущего блока заключается в том, что ширина меньше высоты, определяется, что индекс соответствующей пары преобразований равен 3 и, таким образом, соответствующее бинаризованное кодовое слово содержит три бита, которые последовательно равны 1, 1 и 0. Если второй парой преобразований является (DCT8, DST7) и информация о форме текущего блока заключается в том, что ширина больше или равна высоте, определяется, что индекс соответствующей пары преобразований равен 4 и, таким образом, соответствующее бинаризованное кодовое слово содержит четыре бита, которые последовательно равны 1, 1, 1 и 0. Если первой парой преобразований является (DST7, DCT8) и информация о форме текущего блока заключается в том, что ширина меньше высоты, определяется, что индекс пары преобразований равен 4 и, таким образом, соответствующее бинаризованное кодовое слово содержит четыре бита, которые последовательно равны 1, 1, 1 и 0.
[00150] На основании таблицы 8 в методе II, где информация о форме текущего блока указывает, что ширина больше или равна высоте и первой парой преобразований является (DST7, DCT8), первый индекс равен 3; причем информация о форме текущего блока указывает, что ширина меньше высоты и второй парой преобразований является (DCT8, DST7), первый индекс равен 3; если информация о форме текущего блока указывает, что ширина меньше высоты, и первой парой преобразований является (DST7, DCT8), второй индекс равен 4; и если информация о форме текущего блока указывает, что ширина больше или равна высоте, и второй парой преобразований является (DCT8, DST7), второй индекс равен 4.
[00151] Следует отметить, что поскольку индекс пары преобразований может быть непосредственно определен на основе некоторых пар преобразований, условие, которое удовлетворяется при использовании метода II, заключается в том, что определенная пара преобразований не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8).
[00152] Следует также отметить, что в таблице 8, где индекс пары преобразований равен 3, W≥Н? DST7: DCT8 означает, что если верно, что ширина текущего блока больше или равна его высоте, то ядром горизонтального преобразования является DST7, а в противном случае ядром горизонтального преобразования является DCT8; и W≥Н? DCT8: DST7 означает, что если верно, что ширина текущего блока больше или равна его высоте, то ядром вертикального преобразования является DCT8, а в противном случае ядром вертикального преобразования является DST7. Если индекс пары преобразований равен 4, то W≥Н? DCT8: DST7 означает, что если верно, что ширина текущего блока больше или равна его высоте, то ядром горизонтального преобразования является DCT8, а в противном случае ядром горизонтального преобразования является DST7; и W≥Н? DST7: DCT8 означает, что если верно, что ширина текущего блока больше или равна его высоте, то ядром вертикального преобразования является DST7, а в противном случае ядром вертикального преобразования является DCT8.
[00153] Следует также отметить, что в таблице 7 режим представляет собой номер режима. В таблице 8 W представляет собой ширину, а Н - высоту.
[00154] Таким образом, благодаря адаптивной регулировке приоритета пары преобразований на основе информации о форме и режиме внутрикадрового предсказания текущего блока, чем выше вероятность пары преобразований, тем короче бинаризованное кодовое слово, соответствующее индексу пары преобразований, которое необходимо закодировать.
[00155] Кроме того, в ответ на получение текущего блока устройство кодирования определяет, являются ли высота и ширина текущего блока меньше или равными N (N может быть 32), и определяет, является ли текущий блок блоком яркости. Если высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, устройство кодирования продолжает выполнять стадию 802. Если по меньшей мере одно из условий, что высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, не удовлетворяется, устройство кодирования непосредственно получает заданную пару преобразований, т.е. (DCT2, DCT2).
[00156] На стадии 803 устройство кодирования получает кодированные данные, соответствующие текущему блоку, путем кодирования остаточного сигнала текущего блока на основе пары преобразований.
[00157] На практике, в ответ на получение пары преобразований, соответствующей текущему блоку, устройство кодирования преобразует остаточный сигнал текущего блока на основе пары преобразований для получения коэффициента преобразования, затем квантует коэффициент преобразования для получения коэффициента квантования и выполняет энтропийное кодирование коэффициента квантования для получения кодированных данных, соответствующих текущему блоку.
[00158] На стадии 804 устройство кодирования кодирует индекс пары преобразований путем подвергания первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, контекстно-адаптивному двоичному арифметическому кодированию на основе одной контекстной модели и добавляет кодированный индекс пары преобразований к кодированным данным текущего блока.
[00159] На практике индекс пары преобразований добавляется к кодированным данным таким образом, что устройство декодирования подтверждает пару преобразований, используемую устройством кодирования.
[00160] Устройство кодирования выполняет контекстно-адаптивное двоичное арифметическое кодирование на основе одной контекстной модели первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований. Если бинаризованное кодовое слово дополнительно содержит другие биты, эти биты могут быть закодированы посредством контекстно-адаптивного двоичного арифметического кодирования (САВАС) или закодированы посредством обходного двоичного арифметического кодирования. Затем устройство кодирования добавляет кодированный индекс пары преобразований к кодированным данным текущего блока.
[00161] Таким образом, кодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 8, вследствие чего кодируется весь сегмент видеоданных.
[00162] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения остальные биты кодируются посредством обходного двоичного арифметического кодирования, и соответствующая обработка происходит следующим образом.
[00163] Если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, первый бит кодируется посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели, а по меньшей мере один из битов, за исключением первого бита, среди множества битов кодируется посредством обходного двоичного арифметического кодирования, и затем закодированный индекс пары преобразований добавляется к кодированным данным текущего блока.
[00164] На практике, когда бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, выполняется адаптивное двоичное арифметическое кодирование первого бита на основе одной контекстной модели, и по меньшей мере один из битов, за исключением первого бита, среди множества битов кодируется посредством обходного двоичного арифметического кодирования, а затем индекс кодированной пары преобразований добавляется к кодированным данным текущего блока.
[00165] Например, если используемая пара преобразований представляет собой (DCT8, DCT8) и есть четыре бита соответственно, которые последовательно равны 1, 1, 1 и 1, первый бит кодируется на основе одной контекстной модели, а следующие три бита кодируются посредством обходного двоичного арифметического кодирования. Таким образом, нет необходимости хранить контекстные модели следующих нескольких битов, что позволяет экономить место в запоминающем устройстве и снижает сложность кодирования и декодирования.
[00166] Кроме того, к кодированным данным добавляется целевой флаг, чтобы устройство декодирования использовало явный режим многоядерного преобразования, причем целевой флаг указывает, что активирован явный режим многоядерного преобразования.
[00167] Для режима кодирования, показанного на фиг. 8, согласно варианту осуществления настоящего изобретения дополнительно предусмотрен соответствующий режим декодирования. Как показано на фиг. 9, процесс обработки происходит следующим образом.
[00168] На стадии 901 устройство декодирования получает кодированные данные текущего блока.
[00169] На практике, когда есть кодированные данные, подлежащие декодированию, устройство декодирования получает кодированные данные, затем получает кодированные данные текущего блока путем выполнения энтропийного декодирования кодированных данных и выполнения обратного квантования результата энтропийного декодирования.
[00170] На стадии 902 устройство декодирования получает индекс пары преобразований текущего блока из кодированных данных, причем первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, декодируется посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели.
[00171] На практике устройство декодирования получает индекс пары преобразований, соответствующий текущему блоку, из кодированных данных текущего блока. Когда устройство кодирования кодирует индекс пары преобразований текущего блока, выполняется адаптивное двоичное арифметическое кодирование на основе одной контекстной модели первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований. Таким образом, при декодировании первого бита устройство декодирования также выполняет адаптивное двоичное арифметическое кодирование на основе одной контекстной модели первого бита.
[00172] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения перед стадией 902 также может быть выполнено следующее определение.
[00173] Устройство декодирования определяет, что высота и ширина текущего блока меньше или равны заданному порогу, и текущий блок является блоком яркости.
[00174] Заданный порог заранее определен и сохранен в устройстве декодирования и обычно равен N (N может составлять 32).
[00175] На практике после выполнения стадии 901 устройство декодирования определяет количество пикселей текущего блока в направлении высоты, т.е. высоту текущего блока, и количество пикселей текущего блока в направлении ширины, т.е. ширину текущего блока. Кроме того, устройство декодирования определяет, является ли текущий блок блоком яркости. Если текущий блок является блоком яркости, и высота и ширина текущего блока меньше или равны заданному порогу, выполняется стадия 902.
[00176] Кроме того, перед выполнением стадии 902 также определяется, переносится ли в кодированных данных целевой флаг, и целевой флаг указывает, что выполняется явная обработка с многоядерным преобразованием. Если кодированные данные содержат целевой флаг, то активируется явная обработка с многоядерным преобразованием, и тогда может быть выполнена стадия 902.
[00177] На стадии 903 устройство декодирования определяет пару преобразований, соответствующую текущему блоку, на основе индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00178] На практике, в ответ на определение индекса пары преобразований текущего блока, устройство декодирования определяет пару преобразований, соответствующую текущему блоку, на основе соответствующей взаимосвязи между индексом пары преобразований и парой преобразований.
[00179] На стадии 904 устройство декодирования получает информацию о восстановлении, соответствующую текущему блоку, путем декодирования текущего блока на основе пары преобразований.
[00180] На практике, в ответ на определение пары преобразований, соответствующей текущему блоку, устройство декодирования получает остаточный сигнал, соответствующий текущему блоку, посредством выполнения обработки с обратным преобразованием подвергнутых обратному квантованию данных текущего блока посредством пары преобразований, а затем получает информацию о восстановлении, соответствующую текущему блоку, путем сложения остаточного сигнала и сигнала предсказания текущего блока.
[00181] Таким образом, декодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 9, вследствие чего декодируется весь сегмент видеоданных.
[00182] На стадии 903 пара преобразований текущего блока может быть определена различными методами, и разнообразие возможных методов представлено далее.
[00183] Метод I: Как показано в таблице 2, когда индекс ядра преобразования равен 1, используемая пара преобразований представляет собой (DCT2, DCT2); когда индекс ядра преобразования равен 2, используемая пара преобразований представляет собой (DST7, DST7); когда индекс ядра преобразования равен 3, используемая пара преобразований представляет собой (DCT8, DST7); когда индекс ядра преобразования равен 4, используемая пара преобразований представляет собой (DST7, DCT8); и когда индекс ядра преобразования равен 5, используемая пара преобразований представляет собой (DCT8, DCT8).
[00184] Метод II: Пара преобразований текущего блока определяется на основе соответствующей взаимосвязи между индексом пары преобразований и списком пар преобразований в таблице 3 и индексом пары преобразований текущего блока.
[00185] Метод III: Пара преобразований текущего блока определяется на основе соответствующей взаимосвязи между индексом пары преобразований и списком пар преобразований в таблице 4 и индексом пары преобразований текущего блока.
[00186] Метод IIII: Пара преобразований текущего блока определяется на основе соответствующей взаимосвязи между индексом пары преобразований и списком пар преобразований в таблице 5 и индексом пары преобразований текущего блока.
[00187] Метод V: Пара преобразований текущего блока определяется на основе соответствующей взаимосвязи между индексом пары преобразований и списком пар преобразований в таблице 6 и индексом пары преобразований текущего блока.
[00188] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения пара преобразований также определяется на основе информации о внутрикадровом режиме текущего блока или информации о форме текущего блока, и соответствующая обработка может быть следующей.
[00189] Устройство декодирования определяет на основе режима внутрикадрового предсказания и индекса пары преобразований текущего блока пару преобразований, соответствующую текущему блоку; или устройство декодирования определяет на основе индекса пары преобразований, а также ширины и высоты текущего блока, пару преобразований, соответствующую текущему блоку.
[00190] На практике определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения; определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; и определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00191] Альтернативно определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы; определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; и определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы (этот процесс соответствует процессу стадии 803 и не описывается здесь повторно).
[00192] В таблице 7 заданное значение равно 34, первый индекс равен 3, первая пара преобразований представляет собой (DST7, DCT8), второй индекс равен 4, а вторая пара преобразований представляет собой (DCT8, DST7).
[00193] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения для экономии места в запоминающем устройстве устройства кодирования, когда устройство кодирования кодирует бинаризованное кодовое слово, соответствующее индексу пары преобразований, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, по меньшей мере один из битов, за исключением первого бита, среди множества битов кодируется посредством обходного двоичного арифметического кодирования. Таким образом, если бит кодируется в режиме обходного двоичного арифметического кодирования, нет необходимости хранить контекстный режим. Таким образом, место в запоминающем устройстве может быть сэкономлено. Аналогично, при выполнении декодирования, устройство декодирования выполняет декодирование соответствующим образом.
[00194] Согласно варианту осуществления настоящего изобретения при кодировании текущего блока устройство кодирования получает пару преобразований, соответствующую текущему блоку для кодирования, а не напрямую получает заданную пару преобразований, что позволяет улучшить производительность кодирования и декодирования. При кодировании бинаризованного кодового слова, соответствующего индексу пары преобразований, устройство кодирования кодирует первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, посредством одной контекстной модели, а не множества контекстных моделей, что позволяет сэкономить место в запоминающем устройстве. Кроме того, поскольку множество контекстных моделей не требуется, контекст не нужно обновлять, что снижает сложность кодирования и декодирования.
[00195] Учитывая экономию места в запоминающем устройстве, когда бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, согласно другому варианту осуществления настоящего изобретения предлагается следующий процесс кодирования и декодирования, как показано на фиг. 10.
[00196] На стадии 1001 устройство кодирования получает остаточный сигнал текущего блока.
[00197] На практике при кодировании видеоданных устройство кодирования сначала получает остаточный сигнал посредством выполнения внутрикадрового предсказания (метод получения остаточного сигнала идентичен методу, описанному в существующем стандарте кодирования видео, и не описывается здесь повторно), а затем рассматривает остаточный сигнал как остаточный сигнал текущего блока, который должен быть обработан в данный момент.
[00198] Метод, согласно которому выбирается режим внутрикадрового предсказания, такой же, как метод, согласно которому режим внутрикадрового предсказания выбирается на стадии 801. Этот метод описан более подробно со ссылкой на стадию 801, которая здесь повторно не описывается.
[00199] На стадии 1002 устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и индекс пары преобразований, соответствующий текущему блоку.
[00200] Пара преобразований содержит ядро вертикального преобразования и ядро горизонтального преобразования.
[00201] На практике устройство кодирования получает окончательно выбранную пару преобразований, а затем выбирает индекс пары преобразований, соответствующий этой паре преобразований, на основе любой из таблиц 2-6 (этот процесс более подробно описан со ссылкой на стадию 802).
[00202] Следует отметить, что во время кодирования, как правило, определено, какая из таблиц 2-6 используется, и, таким образом, получается только одна из таблиц 2-6.
[00203] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения индекс пары преобразований может быть определен различными методами, и два возможных варианта метода приведены ниже.
[00204] Метод I: Устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и определяет индекс пары преобразований, соответствующий текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований.
[00205] Этот процесс идентичен методу I, показанному в таблице 7 на стадии 802, и не описывается здесь повторно.
[00206] Метод II: Устройство кодирования определяет пару преобразований, соответствующую текущему блоку, и определяет индекс пары преобразований, соответствующий текущему блоку, на основе информации о форме текущего блока и пары преобразований.
[00207] Этот процесс идентичен методу II, показанному в таблице 8 на стадии 802, и не описывается здесь повторно.
[00208] Кроме того, в ответ на получение текущего блока устройство кодирования сначала определяет, являются ли высота и ширина текущего блока меньше или равными N (N может быть 32), и определяет, является ли текущий блок блоком яркости. Если высота и ширина текущего блока меньше или равны 32 и текущий блок является блоком яркости, устройство кодирования продолжает исполнять стадию 1002. Если по меньшей мере одно из условий, что высота и ширина текущего блока меньше или равны 32 и текущий блок является блоком яркости, не удовлетворяется, устройство кодирования непосредственно получает заданную пару преобразований (DCT2, DCT2).
[00209] На стадии 1003 устройство кодирования получает кодированные данные, соответствующие текущему блоку, путем кодирования остаточного сигнала текущего блока на основе пары преобразований.
[00210] На практике, в ответ на получение пары преобразований, соответствующей текущему блоку, устройство кодирования получает коэффициент преобразования путем преобразования остаточного сигнала текущего блока на основе пары преобразований, затем получает коэффициент квантования путем квантования коэффициента преобразования, и получает кодированные данные, соответствующие текущему блоку, путем выполнения энтропийного кодирования коэффициента квантования для получения кодированных данных, соответствующих текущему блоку.
[00211] На стадии 1004, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, устройство кодирования кодирует по меньшей мере один из битов, за исключением первого бита, среди множества битов посредством обходного двоичного арифметического кодирования, и добавляет кодированный индекс пары преобразований к кодированным данным текущего блока.
[00212] На практике индекс пары преобразований добавляется к кодированным данным таким образом, что устройство декодирования подтверждает пару преобразований, используемую устройством кодирования.
[00213] Если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, устройство кодирования кодирует первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, посредством CABAC. Если бинаризованное кодовое слово дополнительно содержит другие биты, то по меньшей мере один из других битов кодируется посредством обходного двоичного арифметического кодирования, а затем кодированный индекс пары преобразований добавляется к кодированным данным. Таким образом, поскольку контекстную модель не нужно хранить для режима обходного двоичного арифметического кодирования, когда этот бит кодируется посредством обходного двоичного арифметического кодирования, контекстную модель для этого бита хранить не нужно.
[00214] Таким образом, кодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 10, вследствие чего может быть закодирован весь сегмент видеоданных.
[00215] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения первый бит кодируется посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели.
[00216] На практике, когда первый бит кодируется посредством САВАС, адаптивное двоичное арифметическое кодирование выполняется на основе одной контекстной модели, а не множества контекстных моделей, так что нет необходимости хранить множество контекстных моделей. Таким образом, можно также сэкономить место в запоминающем устройстве.
[00217] Кроме того, к кодированным данным добавляется целевой флаг, чтобы устройство декодирования использовало явный режим многоядерного преобразования, причем целевой флаг указывает, что активирован явный режим многоядерного преобразования.
[00218] На основе режима кодирования, показанного на фиг. 10, как показано на фиг. 11, согласно варианту осуществления настоящего изобретения дополнительно предусмотрен соответствующий режим декодирования.
[00219] На стадии 1101 устройство декодирования получает кодированные данные текущего блока.
[00220] На практике, когда кодированные данные должны быть декодированы, устройство декодирования получает кодированные данные, затем получает результат энтропийного декодирования путем выполнения энтропийного декодирования кодированных данных и получает кодированные данные текущего блока путем выполнения обратного квантования результата энтропийного декодирования.
[00221] На стадии 1102 устройство декодирования получает индекс пары преобразований из кодированных данных, причем по меньшей мере один из битов, за исключением первого бита, среди множества битов декодируется посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов.
[00222] На практике устройство декодирования получает индекс пары преобразований, соответствующий текущему блоку, из кодированных данных. При кодировании индекса пары преобразований текущего блока устройство кодирования кодирует по меньшей мере один из битов, за исключением первого бита, среди множества битов посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов. Таким образом, при декодировании битов, кодированных посредством обходного двоичного арифметического кодирования, устройство декодирования также декодирует биты посредством обходного двоичного арифметического кодирования. Таким образом, можно также сэкономить место в запоминающем устройстве декодирующего устройства.
[00223] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения для экономии места в запоминающем устройстве, первый бит из множества битов кодируется посредством одной контекстной модели.
[00224] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения перед выполнением стадии 1102 определяется, что высота и ширина текущего блока меньше или равны целевому значению, и текущий блок является блоком яркости.
[00225] На практике целевое значение задано и сохранено в устройстве декодирования и обычно равно N (N может быть 32). Если высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, выполняется только стадия 1102. В противном случае определяется, что пара преобразований, соответствующая текущему блоку, представляет собой (DCT2, DCT2), и впоследствии эта пара преобразований используется непосредственно для декодирования.
[00226] Кроме того, перед выполнением стадии 1102 может быть определено, переносится ли в кодированных данных целевой флаг, и целевой флаг указывает, что выполняется явная обработка с многоядерным преобразованием. Если целевой флаг переносится в кодированных данных, то активируется явная обработка с многоядерным преобразованием, и тогда выполняется стадия 1102.
[00227] На стадии 1103 устройство декодирования определяет пару преобразований, соответствующую текущему блоку, на основе индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00228] Этот процесс идентичен процессу обработки на стадии 903. Этот процесс описан более подробно со ссылкой на стадию 903, которая здесь повторно не описывается.
[00229] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения пара преобразований также определяется на основе высоты и ширины текущего блока или режима внутрикадрового предсказания текущего блока, и соответствующая обработка может быть следующей.
[00230] Пара преобразований, соответствующая текущему блоку, определяется на основе режима внутрикадрового предсказания текущего блока и индекса пары преобразований; или пара преобразований, соответствующая текущему блоку, определяется на основе информации о форме текущего блока и индекса пары преобразований. Пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00231] На практике этот процесс такой же, как и метод, согласно которому пара преобразований определяется на основе высоты и ширины текущего блока или режима внутрикадрового предсказания текущего блока на стадии 903. Этот процесс описан более подробно со ссылкой на стадию 903, которая здесь повторно не описывается.
[00232] На стадии 1104 устройство декодирования получает информацию о восстановлении, соответствующую текущему блоку, путем декодирования текущего блока на основе пары преобразований.
[00233] На практике, в ответ на определение пары преобразований, соответствующей текущему блоку, устройство декодирования получает остаточный сигнал, соответствующий текущему блоку, путем выполнения обработки с обратным преобразованием коэффициента квантования, соответствующего текущему блоку, посредством пары преобразований. После этого устройство декодирования создает сигнал предсказания в используемом режиме внутрикадрового предсказания со значениями пикселей в области, которая была восстановлена вокруг текущего блока, а затем получает информацию восстановления, соответствующую текущему блоку, путем сложения остаточного сигнала и сигнала предсказания.
[00234] Таким образом, декодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 11, вследствие чего декодируется весь сегмент видеоданных.
[00235] Согласно варианту осуществления настоящего изобретения при кодировании текущего блока устройство кодирования получает пару преобразований, соответствующую текущему блоку для кодирования, а не напрямую получает заданную пару преобразований, что позволяет улучшить производительность кодирования и декодирования. При кодировании индекса пары преобразований устройство кодирования кодирует по меньшей мере один из битов, за исключением первого бита, в бинаризованном кодовом слове, соответствующем индексу пары преобразований, посредством обходного двоичного арифметического кодирования, и для по меньшей мере одного бита нет необходимости хранить контекстную модель. Таким образом, место в запоминающем устройстве может быть сэкономлено. Кроме того, для по меньшей мере одного бита применяется обходное двоичное арифметическое кодирование, а не САВАС, так что нет необходимости обновлять контекстную модель. Таким образом, сложность кодирования и синтаксического анализа также может быть снижена.
[00236] Согласно другому варианту осуществления настоящего изобретения, как показано на фиг. 12, также предусмотрена обработка для определения пары преобразований на основе информации о форме текущего блока или режима внутрикадрового предсказания текущего блока.
[00237] На стадии 1201 устройство кодирования получает остаточный сигнал текущего блока.
[00238] На практике при кодировании видеоданных устройство кодирования сначала получает остаточный сигнал посредством выполнения внутрикадрового предсказания (метод получения остаточного сигнала идентичен методу, описанному в существующем стандарте кодирования видео, и не описывается здесь повторно), а затем рассматривает остаточный сигнал как остаточный сигнал текущего блока, который должен быть обработан в данный момент.
[00239] Следует отметить, что TU согласно варианту осуществления настоящего изобретения является такой же, как и CU, упомянутая выше.
[00240] Метод, согласно которому выбирается режим внутрикадрового предсказания, такой же, как метод, согласно которому режим внутрикадрового предсказания выбирается на стадии 801. Этот метод описан более подробно со ссылкой на стадию 801, которая здесь повторно не описывается.
[00241] На стадии 1202 устройство кодирования получает режим внутрикадрового предсказания текущего блока и пару преобразований, соответствующую текущему блоку, или получает информацию о форме текущего блока и пару преобразований, соответствующую текущему блоку.
[00242] Пара преобразований содержит ядро вертикального преобразования и ядро горизонтального преобразования.
[00243] На практике устройство кодирования получает режим внутрикадрового предсказания (то есть режим внутрикадрового предсказания, соответствующий текущему блоку), окончательно используемый во внутреннем предсказании на стадии 1201, и пару преобразований (то есть пару преобразований, соответствующую текущему блоку), соответствующую режиму внутрикадрового предсказания, когда стоимость скорости-искажения наименьшая.
[00244] Альтернативно устройство кодирования определяет высоту и ширину текущего блока (то есть количество пикселей текущего блока в направлении высоты и количество пикселей текущего блока в направлении ширины). Таким образом, устройство кодирования получает информацию о форме текущего блока и получает пару преобразований, используемую при наименьшей стоимости скорости-искажения (то есть пару преобразований, соответствующую текущему блоку).
[00245] Кроме того, в ответ на получение текущего блока устройство кодирования определяет, являются ли высота и ширина текущего блока меньше или равными N (N может быть 32), и определяет, является ли текущий блок блоком яркости. Если высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, устройство кодирования продолжает выполнять стадию 1202. Если по меньшей мере одно из условий, что высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, не удовлетворяется, устройство кодирования непосредственно получает заданную пару преобразований, т.е. (DCT2, DCT2).
[00246] На стадии 1203 устройство кодирования определяет индекс пары преобразований, соответствующий текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований, соответствующей текущему блоку; альтернативно устройство кодирования определяет индекс пары преобразований, соответствующий текущему блоку, на основе информации о форме текущего блока и пары преобразований, соответствующей текущему блоку.
[00247] На практике, когда пара преобразований, определенная на стадии 1202, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 7), и режим внутрикадрового предсказания текущего блока и индекс пары преобразований, соответствующий паре преобразований, т.е. индекс пары преобразований, соответствующий текущему блоку, определяют из таблицы 7. Например, если пара преобразований представляет собой (DST7, DCT8), а номер режима внутрикадрового предсказания текущего блока равен 32, соответствующий индекс пары преобразований равен 3.
[00248] Альтернативно, если пара преобразований, определенная на стадии 1202, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 8), и из таблицы 8 определяют информацию о форме текущего блока и индекс пары преобразований, соответствующий паре преобразований, т.е. индекс пары преобразований, соответствующий текущему блоку. Например, если пара преобразований представляет собой (DST7, DCT8), а ширина текущего блока больше его высоты, то соответствующий индекс пары преобразований равен 3.
[00249] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения устройство кодирования определяет индекс ядра преобразования на основе режима внутрикадрового предсказания и пары преобразований следующим методом.
[00250] Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00251] На практике этот процесс идентичен методу I, показанному в таблице 7 на стадии 802, и не описывается здесь повторно.
[00252] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения устройство кодирования определяет индекс ядра преобразования на основе информации о форме текущего блока и пары преобразований следующим методом.
[00253] Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы.
[00254] На практике этот процесс идентичен методу II, показанному в таблице 8 на стадии 802, и не описывается здесь повторно.
[00255] На стадии 1204 устройство кодирования получает кодированные данные, соответствующие текущему блоку, путем кодирования остаточного сигнала текущего блока на основе пары преобразований.
[00256] На практике, в ответ на получение пары преобразований, соответствующей текущему блоку, устройство кодирования получает коэффициент преобразования путем преобразования остаточного сигнала текущего блока на основе пары преобразований, затем получает коэффициент квантования путем квантования коэффициента преобразования и получает кодированные данные, соответствующие текущему блоку, путем выполнения энтропийного кодирования коэффициента квантования.
[00257] На стадии 1205 устройство кодирования кодирует индекс пары преобразований и добавляет кодированный индекс пары преобразований к кодированным данным текущего блока.
[00258] На практике бинаризованное кодовое слово индекса пары преобразований добавляется к кодированным данным таким образом, что устройство декодирования подтверждает пару преобразований, используемую устройством кодирования.
[00259] Устройство кодирования кодирует индекс пары преобразований и затем добавляет кодированный индекс пары преобразований к кодированным данным.
[00260] Таким образом, кодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 12, вследствие чего кодируется весь сегмент видеоданных.
[00261] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения для экономии места в запоминающем устройстве индекс пары преобразований кодируется следующим методом, и соответствующая обработка на стадии 1205 выглядит следующим образом.
[00262] Если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, первый бит кодируется посредством САВАС, и по меньшей мере один из битов, за исключением первого бита, среди множества битов кодируется посредством обходного двоичного арифметического кодирования.
[00263] На практике, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит только один бит, этот бит кодируется непосредственно посредством САВАС. Если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, первый бит кодируется посредством САВАС, и по меньшей мере один из битов, за исключением первого бита, кодируется посредством обходного двоичного арифметического кодирования. Затем устройство кодирования добавляет кодированный индекс пары преобразований к кодированным данным текущего блока. Таким образом, поскольку некоторые биты кодируются посредством обходного двоичного арифметического кодирования, когда бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, и нет необходимости хранить контекстный режим, может быть сэкономлено место в запоминающем устройстве.
[00264] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения устройство кодирования выполняет контекстно-адаптивное двоичное арифметическое кодирование на основе одной контекстной модели первого бита в бинаризованном кодовом слове, соответствующем индексу пары преобразований.
[00265] На практике устройство кодирования кодирует на основе одной контекстной модели первый бит в бинаризованном кодовом слове, соответствующем индексу пары преобразований. Таким образом, поскольку активирована только одна контекстная модель, хранится только одна контекстная модель, а занимаемый объем запоминающего устройства относительно мал, что позволяет экономить место в запоминающем устройстве устройства кодирования.
[00266] Кроме того, к кодированным данным добавляется целевой флаг, чтобы устройство декодирования использовало явный режим многоядерного преобразования, причем целевой флаг указывает, что активирован явный режим многоядерного преобразования.
[00267] На основе процесса кодирования, показанного на фиг. 12, согласно варианту осуществления настоящего изобретения дополнительно предусмотрен процесс декодирования, как показано на фиг. 13.
[00268] На стадии 1301 устройство декодирования получает кодированные данные текущего блока.
[00269] На практике, когда есть кодированные данные, подлежащие декодированию, устройство декодирования получает кодированные данные, затем выполняет энтропийное декодирование кодированных данных и выполняет обратное квантование результата энтропийного декодирования для получения кодированных данных текущего блока.
[00270] На стадии 1302 устройство декодирования получает индекс пары преобразований из кодированных данных и получает режим внутрикадрового предсказания текущего блока или информацию о форме текущего блока.
[00271] На практике устройство декодирования получает индекс пары преобразований, соответствующий текущему блоку, из кодированных данных, определяет количество пикселей, включенных в текущий блок в направлении высоты (т.е. высоту), и определяет количество пикселей, включенных в текущий блок в направлении ширины (т.е. ширину). Затем устройство декодирования определяет размеры по высоте и ширине текущего блока, то есть получает информацию о форме текущего блока.
[00272] Альтернативно устройство декодирования получает индекс пары преобразований, соответствующий текущему блоку, из кодированных данных и получает номер режима внутрикадрового предсказания путем синтаксического анализа идентификационного бита режима внутрикадрового предсказания в кодированных данных.
[00273] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, причем первый бит декодируется посредством САВАС, и по меньшей мере один из битов, за исключением первого бита, среди множества битов декодируется посредством обходного двоичного арифметического кодирования. Таким образом, поскольку в устройстве кодирования некоторые биты декодируются посредством режима обходного двоичного арифметического кодирования, когда индекс пары преобразований содержит множество битов, и нет необходимости хранить контекстный режим. Таким образом, экономится место в запоминающем устройстве. Таким образом, устройство декодирования должно декодировать биты, закодированные посредством обходного двоичного арифметического кодирования, посредством обходного двоичного арифметического кодирования, и также нет необходимости хранить контекстную модель. Таким образом, можно также сэкономить место в запоминающем устройстве.
[00274] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения первый бит индекса пары преобразований декодируется на основе одной контекстной модели. Таким образом, поскольку устройство декодирования применяет только одну контекстную модель, хранится только одна контекстная модель, и занимаемый объем запоминающего устройства относительно мал.
[00275] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения перед выполнением стадии 1302 определяется, что высота и ширина текущего блока меньше или равны целевому значению, и текущий блок является блоком яркости.
[00276] На практике целевое значение задано и сохранено в устройстве декодирования и обычно равно N (N равно 32). Если высота и ширина текущего блока меньше или равны N и текущий блок является блоком яркости, выполняется только стадия 1302. В противном случае определяется, что пара преобразований, соответствующая текущему блоку, представляет собой (DCT2, DCT2), и впоследствии эта пара преобразований используется непосредственно для декодирования.
[00277] Кроме того, перед выполнением стадии 1302 может быть определено, переносится ли в кодированных данных целевой флаг, и целевой флаг указывает, что выполняется явная обработка с многоядерным преобразованием. Если целевой флаг переносится в кодированных данных, то активируется явная обработка с многоядерным преобразованием, и выполняется стадия 1302.
[00278] На стадии 1303 устройство декодирования определяет на основе режима внутрикадрового предсказания текущего блока и индекса пары преобразований пару преобразований, соответствующую текущему блоку; альтернативно устройство декодирования определяет на основе информации о форме текущего блока и индекса пары преобразований пару преобразований, соответствующую текущему блоку, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00279] На практике пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования. Когда пара преобразований, определенная на стадии 1302, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 7), и из таблицы 7 определяют режим внутрикадрового предсказания текущего блока и пару преобразований, соответствующую индексу пары преобразований, т.е. пару преобразований, соответствующую текущему блоку. Например, если номер режима внутрикадрового предсказания, соответствующего текущему блоку равен 32, а индекс пары преобразований равен 3, пара преобразований представляет собой (DST7, DCT8).
[00280] Альтернативно, если пара преобразований, определенная на стадии 1302, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 8), и из таблицы 8 определяю высоту и ширину текущего блока и пару преобразований, соответствующую индексу пары преобразований, т.е. пару преобразований, соответствующую текущему блоку. Например, если ширина текущего блока больше его высоты, а индекс пары преобразований равен 3, пара преобразований представляет собой (DST7, DCT8).
[00281] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения пара преобразований определяется на основе режима внутрикадрового предсказания и индекса пары преобразований следующим методом.
[00282] Определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения. Определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению. Определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00283] На практике, если пара преобразований, определенная на стадии 1302, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 7), и пару преобразований, соответствующую текущему блоку, определяют из таблицы 7.
[00284] Первый индекс равен 3, заданное значение равно 34, первая пара преобразований представляет собой (DST7, DCT8), второй индекс равен 4, заданное значение равно 34, вторая пара преобразований представляет собой (DCT8, DST7).
[00285] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения пара преобразований определяется на основе высоты и ширины текущего блока и индекса пары преобразований следующим методом.
[00286] Определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы. Определяется, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы. Определяется, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы.
[00287] На практике, если пара преобразований, определенная на стадии 1302, не является ни одной из (DCT2, DCT2), (DST7, DST7) и (DCT8, DCT8), получают заданную синтаксическую таблицу явной многоядерной пары преобразований (как показано в таблице 8), и пару преобразований, соответствующую текущему блоку, определяют из таблицы 8.
[00288] Первый индекс равен 3, W≥H, первая пара преобразований представляет собой (DST7, DCT8), второй индекс равен 4, W≥H, вторая пара преобразований представляет собой (DCT8, DST7).
[00289] На стадии 1304 устройство декодирования получает информацию о восстановлении, соответствующую текущему блоку, путем декодирования текущего блока на основе пары преобразований.
[00290] На практике, в ответ на определение целевой пары преобразований, соответствующей текущему блоку, устройство декодирования получает остаточный сигнал, соответствующий текущему блоку, путем выполнения обработки с обратным преобразованием коэффициента квантования, соответствующего текущему блоку, посредством целевой пары преобразований. После этого устройство декодирования создает сигнал предсказания в используемом режиме внутрикадрового предсказания со значениями пикселей в области, которая была восстановлена вокруг текущего блока, а затем получает информацию восстановления, соответствующую текущему блоку, путем сложения остаточного сигнала и сигнала предсказания.
[00291] Таким образом, декодирование текущего блока завершается. Каждый текущий блок обрабатывается в соответствии с блок-схемой, показанной на фиг. 13, вследствие чего декодируется весь сегмент видеоданных.
[00292] Следует отметить, что согласно варианту осуществления настоящего изобретения, благодаря адаптивной регулировке приоритета пары преобразований на основе режима внутрикадрового предсказания или информации о форме текущего блока, насколько это возможно, чем выше вероятность пары преобразований, тем короче бинаризованное кодовое слово, которое необходимо закодировать.
[00293] Согласно варианту осуществления настоящего изобретения при выполнении кодирования устройство кодирования выбирает пару преобразований на основе режима внутрикадрового предсказания текущего блока или информации о форме текущего блока, а не заданной пары преобразований, и, соответственно, при выполнении декодирования применяется режим внутрикадрового предсказания текущего блока или информация о форме текущего блока, а не заданная пара преобразований. Таким образом, производительность кодирования и декодирования может быть повышена.
[00294] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство декодирования. Как показано на фиг. 14, устройство декодирования содержит: модуль 1410 получения, выполненный с возможностью получения кодированных данных текущего блока и получения индекса пары преобразований, соответствующего текущему блоку, из кодированных данных, причем первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, декодируется посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели; и модуль 1420 определения, выполненный с возможностью определения пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00295] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, причем по меньшей мере один из битов, за исключением первого бита, среди множества битов декодируется посредством обходного двоичного арифметического кодирования.
[00296] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1420 определения выполнен с возможностью: определения пары преобразований, соответствующей текущему блоку, на основе режима внутрикадрового предсказания текущего блока и индекса пары преобразований; или определения пары преобразований, соответствующей текущему блоку, на основе информации о форме текущего блока и индекса пары преобразований.
[00297] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство кодирования. Как показано на фиг. 15, устройство кодирования содержит: модуль 1510 определения, выполненный с возможностью определения пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку; и модуль 1520 кодирования, выполненный с возможностью кодирования индекса пары преобразований путем подвергания первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, контекстно-адаптивному двоичному арифметическому кодированию на основе одной контекстной модели, и добавления кодированного индекса пары преобразований к кодированным данным текущего блока.
[00298] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1520 кодирования выполнен с возможностью: кодирования первого бита посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели и кодирования по меньшей мере одного из битов, за исключением первого бита, среди множества битов посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов; и добавления индекса кодированной пары преобразований к кодированным данным.
[00299] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1510 определения выполнен с возможностью: определения пары преобразований, соответствующей текущему блоку, и определения индекса пары преобразований, соответствующего текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований; или определения пары преобразований, соответствующей текущему блоку, и определения индекса пары преобразований, соответствующего текущему блоку, на основе информации о форме текущего блока и пары преобразований.
[00300] Согласно варианту осуществления настоящего изобретения при кодировании текущего блока устройство кодирования получает пару преобразований, соответствующую текущему блоку для кодирования, а не напрямую получает заданную пару преобразований, что позволяет улучшить производительность кодирования и декодирования. При кодировании бинаризованного кодового слова, соответствующего индексу пары преобразований, устройство кодирования кодирует первый бит в бинаризованном кодовом слове, соответствующем индексу пары преобразований, посредством одной контекстной модели, а не множества контекстных моделей, что позволяет сэкономить место в запоминающем устройстве. Кроме того, поскольку множество контекстных моделей не требуется, контекст не нужно обновлять, что снижает сложность кодирования и декодирования.
[00301] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство декодирования. Как показано на фиг. 16, устройство декодирования содержит: модуль 1610 получения, выполненный с возможностью получения кодированных данных текущего блока и получения индекса пары преобразований из кодированных данных, причем по меньшей мере один из битов, за исключением первого бита, среди множества битов декодируется посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов; и модуль 1620 определения, выполненный с возможностью определения пары преобразований, соответствующей текущему блоку, на основе индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00302] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, декодируют посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели.
[00303] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1620 определения выполнен с возможностью: определения пары преобразований, соответствующей текущему блоку, на основе режима внутрикадрового предсказания текущего блока и индекса пары преобразований; или определения пары преобразований, соответствующей текущему блоку, на основе информации о форме текущего блока и индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00304] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство кодирования. Как показано на фиг. 17, устройство кодирования содержит: модуль 1710 определения, выполненный с возможностью определения пары преобразований, соответствующей текущему блоку, и индекса пары преобразований, соответствующего текущему блоку; и модуль 1720 кодирования, выполненный с возможностью кодирования по меньшей мере одного из битов, за исключением первого бита, среди множества битов посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, и добавления кодированного индекса пары преобразований к кодированным данным текущего блока.
[00305] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1720 кодирования дополнительно выполнен с возможностью: кодирования первого бита посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели.
[00306] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1710 определения выполнен с возможностью: определения пары преобразований, соответствующей текущему блоку, и определения индекса пары преобразований, соответствующего текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований; или определения пары преобразований, соответствующей текущему блоку, и определения индекса пары преобразований, соответствующего текущему блоку, на основе информации о форме текущего блока и пары преобразований.
[00307] Согласно варианту осуществления настоящего изобретения при кодировании текущего блока устройство кодирования получает пару преобразований, соответствующую текущему блоку для кодирования, а не напрямую получает заданную пару преобразований, что позволяет улучшить производительность кодирования и декодирования. При кодировании индекса пары преобразований устройство кодирования кодирует по меньшей мере один из битов, за исключением первого бита, в бинаризованном кодовом слове, соответствующем индексу пары преобразований, посредством обходного двоичного арифметического кодирования, и для по меньшей мере одного бита нет необходимости хранить контекстную модель. Таким образом, место в запоминающем устройстве может быть сэкономлено. Кроме того, для по меньшей мере одного бита применяется обходное двоичное арифметическое кодирование, а не САВАС, что также снижает сложность кодирования и декодирования.
[00308] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство декодирования. Как показано на фиг. 18, устройство декодирования содержит: модуль 1810 получения, выполненный с возможностью: получения кодированных данных текущего блока, получения индекса пары преобразований из кодированных данных, и получения режима внутрикадрового предсказания текущего блока или информации о форме текущего блока; и модуль 1820 определения, выполненный с возможностью определения пары преобразований, соответствующей текущему блоку, на основе режима внутрикадрового предсказания текущего блока и индекса пары преобразований или определения пары преобразований, соответствующей текущему блоку, на основе информации о форме текущего блока и индекса пары преобразований, причем пара преобразований содержит ядро горизонтального преобразования и ядро вертикального преобразования.
[00309] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1820 определения выполнен с возможностью: определения того, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; определения того, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения; определения того, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; или определения того, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00310] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1820 определения выполнен с возможностью: определения того, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; определения того, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является первым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы; определения того, что пара преобразований, соответствующая текущему блоку, является второй парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; или определения того, что пара преобразований, соответствующая текущему блоку, является первой парой преобразований, если индекс пары преобразований является вторым индексом и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы.
[00311] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения первый бит бинаризованного кодового слова, соответствующего индексу пары преобразований, декодируют посредством контекстно-адаптивного двоичного арифметического кодирования на основе одной контекстной модели.
[00312] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов, причем по меньшей мере один из битов, за исключением первого бита, среди множества битов декодируется посредством обходного двоичного арифметического кодирования.
[00313] На основе той же технической концепции согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство кодирования. Как показано на фиг. 19, устройство кодирования содержит: модуль 1910 получения, выполненный с возможностью получения режима внутрикадрового предсказания текущего блока и пары преобразований, соответствующей текущему блоку, или получения информации о форме текущего блока и пары преобразований, соответствующей текущему блоку; модуль 1920 определения, выполненный с возможностью определения индекса пары преобразований, соответствующего текущему блоку, на основе режима внутрикадрового предсказания текущего блока и пары преобразований, соответствующей текущему блоку, или определения индекса пары преобразований, соответствующего текущему блоку, на основе информации о форме текущего блока и пары преобразований, соответствующей текущему блоку; и модуль 1930 кодирования, выполненный с возможностью кодирования индекса пары преобразований и добавления кодированного индекса пары преобразований к кодированным данным текущего блока.
[00314] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1920 определения выполнен с возможностью: определения того, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; определения того, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения; определения того, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и номер режима внутрикадрового предсказания текущего блока меньше или равен заданному значению; или определения того, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и номер режима внутрикадрового предсказания текущего блока больше заданного значения.
[00315] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1920 определения выполнен с возможностью: определения того, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; определения того, что индекс пары преобразований, соответствующий текущему блоку, является первым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы; определения того, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является второй парой преобразований и информация о форме текущего блока удовлетворяет заданному условию ограничения формы; или определения того, что индекс пары преобразований, соответствующий текущему блоку, является вторым индексом, если пара преобразований является первой парой преобразований и информация о форме текущего блока не удовлетворяет заданному условию ограничения формы.
[00316] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1930 кодирования выполнен с возможностью: кодирования индекса пары преобразований путем подвергания первого бита бинаризованного кодового слова, соответствующего индексу пары преобразований, контекстно-адаптивному двоичному арифметическому кодированию на основе одной контекстной модели.
[00317] Согласно одному приведенному в качестве примера варианту осуществления настоящего изобретения модуль 1930 кодирования выполнен с возможностью: кодирования по меньшей мере одного из битов, за исключением первого бита, среди множества битов посредством обходного двоичного арифметического кодирования, если бинаризованное кодовое слово, соответствующее индексу пары преобразований, содержит множество битов.
[00318] Согласно варианту осуществления настоящего изобретения при выполнении кодирования устройство кодирования выбирает ядро преобразования на основе режима внутрикадрового предсказания текущего блока или информации о форме текущего блока, а не заданной пары преобразований, и, соответственно, при выполнении декодирования также применяется режим внутрикадрового предсказания текущего блока или информация о форме текущего блока, а не заданная пара преобразований. Таким образом, производительность кодирования и декодирования может быть повышена.
[00319] Следует отметить, что в устройстве декодирования в соответствии с приведенным выше вариантом осуществления разделение всех функциональных модулей взято только в качестве примера для пояснения при выполнении декодирования. На практике функции могут быть реализованы различными функциональными модулями по мере необходимости. То есть, устройство декодирования содержит различные функциональные модули для реализации всех или части функций, описанных выше. Кроме того, устройство декодирования в соответствии с приведенным выше вариантом осуществления и способ декодирования основаны на одной и той же концепции, а конкретный процесс реализации устройства декодирования подробно описан в варианте осуществления способа и здесь повторно не описывается.
[00320] Следует отметить, что в устройстве кодирования согласно вышеуказанному варианту осуществления разделение всех функциональных модулей взято только в качестве примера для пояснения при выполнении кодирования. На практике функции могут быть реализованы различными функциональными модулями по мере необходимости. То есть, устройство кодирования содержит различные функциональные модули для реализации всех или части функций, описанных выше. Кроме того, устройство кодирования в соответствии с приведенным выше вариантом осуществления и способ кодирования основаны на одной и той же концепции, а конкретный процесс реализации устройства кодирования подробно описан в варианте осуществления способа и здесь повторно не описывается.
[00321] На фиг. 20 представлена структурная схема еще одного устройства кодирования согласно одному варианту осуществления настоящего изобретения. Устройство 2000 кодирования может иметь относительно большие различия из-за различных конфигураций или характеристик, и может содержать по меньшей мере один процессор 2001 и по меньшей мере одно запоминающее устройство 2002. Запоминающее устройство 2002 хранит в себе по меньшей мере одну инструкцию. Процессор 2001 при загрузке и исполнении по меньшей мере одной инструкции вынужден выполнять описанные выше стадии способа кодирования.
[00322] На фиг. 21 представлена структурная схема еще одного устройства декодирования согласно одному варианту осуществления настоящего изобретения. Устройство 2100 декодирования может иметь относительно большие различия из-за различных конфигураций или характеристик, и может содержать по меньшей мере один процессор 2101 и по меньшей мере одно запоминающее устройство 2102. Запоминающее устройство 2102 хранит в себе по меньшей мере одну инструкцию. Процессор 2101 при загрузке и исполнении по меньшей мере одной инструкции вынужден выполнять описанные выше стадии способа декодирования.
[00323] Согласно варианту осуществления настоящего изобретения дополнительно предлагается машиночитаемый носитель данных. На носителе данных хранится компьютерная программа. Компьютерная программа, выполняемая процессором, вынуждает процессор выполнять описанные выше стадии способа кодирования и способа декодирования.
[00324] Согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство кодирования. Устройство кодирования содержит процессор и запоминающее устройство. Запоминающее устройство выполнено с возможностью хранения компьютерной программы. Процессор при выполнении программы вынужден выполнять описанные выше стадии способа кодирования.
[00325] Согласно одному варианту осуществления настоящего изобретения дополнительно предлагается устройство декодирования. Устройство декодирования содержит процессор и запоминающее устройство. Запоминающее устройство выполнено с возможностью хранения компьютерной программы. Процессор при выполнении хранящейся программы вынужден выполнять описанные выше стадии способа кодирования.
[00326] Согласно одному варианту осуществления настоящего изобретения дополнительно предлагается система кодирования и декодирования. Система содержит устройство кодирования и устройство декодирования.
[00327] Устройство кодирования представляет собой устройство кодирования, описанное выше.
[00328] Устройство декодирования представляет собой устройство декодирования, описанное выше.
[00329] Специалисту в данной области техники будет понятно, что все или часть стадий в описанных выше вариантах осуществления могут быть выполнены аппаратным обеспечением или соответствующим аппаратным обеспечением, инструкции которому отдает программа, и программа может храниться на машиночитаемом носителе данных, таком как постоянное запоминающее устройство, диск или оптический диск.
[00330] Выше описаны только предпочтительные варианты осуществления настоящего изобретения, но они не предназначены для ограничения настоящего изобретения. Любые модификации, эквивалентные замены, улучшения и тому подобное, сделанные в пределах сути и принципов настоящего изобретения, должны быть включены в объем правовой охраны настоящего изобретения.