ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Варианты осуществления настоящего изобретения относятся к области технологий кодирования и декодирования видео и, в частности, к способу кодирования, способу декодирования, битовому потоку, кодеру, декодеру и компьютерному носителю данных.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0002] Область компьютерного зрения привлекает все большее внимание в связи с повышением требований к качеству отображения видео. В последнее время технология обработки изображений успешно применяется во всех сферах жизни. При кодировании и декодировании видеоизображения на стороне кодера данные изображения, подлежащие кодированию, подвергаются кодированию со сжатием с помощью узла энтропийного кодирования после подвергания обработке преобразованием и квантованием, и битовый поток, сгенерированный в результате энтропийного кодирования, передается на декодер; на стороне декодера битовый поток анализируется, а затем первоначально введенные данные изображения могут быть восстановлены путем выполнения обратного квантования и обратного преобразования.
[0003] В настоящее время для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством и высокой битовой скоростью (сокращенно видео с тройной высокой четкостью) обычно требуется больше коэффициентов, которые подлежат кодированию и декодированию, причем коэффициенты также больше, чем для кодирования и декодирования видео с низкой битовой глубиной, низким качеством и низкой битовой скоростью (которое может называться обычным видео). Соответственно, для видео с тройной высокой четкостью существующее соответствующее решение может привести к большему потреблению ресурсов в битовом потоке, приводя к нерациональному использованию.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Варианты осуществления настоящего изобретения обеспечивают способ кодирования, способ декодирования, битовый поток, кодер, декодер и компьютерный носитель данных, которые могут быть применены к сценарию кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или сжатием без потерь, и могут повысить эффективность сжатия.
[0005] Технические решения согласно вариантам осуществления настоящего изобретения могут быть реализованы следующим образом.
[0006] В первом аспекте в вариантах осуществления настоящего изобретения предоставлен способ декодирования, выполняемый декодером. Способ включает следующие операции.
[0007] Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока.
[0008] В ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента.
[0009] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[0010] Во втором аспекте в вариантах осуществления настоящего изобретения предоставлен способ кодирования, выполняемый кодером. Способ включает следующие операции.
[0011] Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[0012] Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.
[0013] Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования, и битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.
[0014] В третьем аспекте в вариантах осуществления настоящего изобретения предоставлен битовый поток. Битовый поток генерируется путем выполнения битового кодирования в отношении информации, подлежащей кодированию. Информация, подлежащая кодированию, содержит по меньшей мере одну из первой идентификационной информации о синтаксическом элементе, второй идентификационной информации о синтаксическом элементе, третьей идентификационной информации о синтаксическом элементе, идентификационной информации о компоненте, идентификационной информации о разрешаемом последнем коэффициенте или идентификационной информации о кодируемом по умолчанию подблоке.
[0015] Первая идентификационная информация о синтаксическом элементе указывает, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Вторая идентификационная информация о синтаксическом элементе указывает, применена ли к текущей последовательности версия расширения стандарта. Третья идентификационная информация о синтаксическом элементе указывает, применено ли расширение диапазона к текущей последовательности. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Идентификационная информация о разрешаемом последнем коэффициенте указывает, применено ли местоположение последнего коэффициента к текущему блоку. Идентификационная информация о кодируемом по умолчанию подблоке указывает, кодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке. Текущая последовательность содержит текущий слайс. Текущий слайс содержит текущий блок.
[0016] В четвертом аспекте в вариантах осуществления настоящего изобретения предоставлен кодер. Кодер содержит первый узел определения и узел кодирования.
[0017] Первый узел определения выполнен с возможностью определения идентификационной информации о компоненте текущего слайса и определения местоположения последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[0018] Первый узел определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.
[0019] Узел кодирования выполнен с возможностью кодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации о компоненте и информации о координатах последнего значимого коэффициента.
[0020] В пятом аспекте в вариантах осуществления настоящего изобретения предоставлен кодер. Кодер содержит первое запоминающее устройство и первый процессор.
[0021] Первое запоминающее устройство выполнено с возможностью хранения на нем компьютерной программы, исполняемой первым процессором.
[0022] Первый процессор выполнен с возможностью исполнения компьютерной программы для выполнения способа кодирования согласно второму аспекту.
[0023] В шестом аспекте в вариантах осуществления настоящего изобретения предоставлен декодер. Декодер содержит узел анализа и второй узел определения.
[0024] Узел анализа выполнен с возможностью определения путем анализа битового потока идентификационной информации о компоненте текущего слайса и информации о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[0025] Второй узел определения выполнен с возможностью получения местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.
[0026] Узел анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[0027] В седьмом аспекте в вариантах осуществления настоящего изобретения предоставлен декодер. Декодер содержит второе запоминающее устройство и второй процессор.
[0028] Второе запоминающее устройство выполнено с возможностью хранения на нем компьютерной программы, исполняемой вторым процессором.
[0029] Второй процессор выполнен с возможностью исполнения компьютерной программы для выполнения способа декодирования согласно первому аспекту.
[0030] В восьмом аспекте в вариантах осуществления настоящего изобретения предоставлен компьютерный носитель данных. Компьютерный носитель данных имеет сохраненную на нем компьютерную программу. При исполнении компьютерная программа реализует способ согласно первому аспекту или способ согласно второму аспекту.
[0031] В вариантах осуществления настоящего изобретения предоставлены способ кодирования, способ декодирования, битовый поток, кодер, декодер и компьютерный носитель данных. Кодер определяет идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса; определяет информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента; и кодирует все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования, а также предоставляет битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента в битовый поток. Декодер определяет путем анализа битового потока идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса; в ответ на то, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, получает местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента; и определяет коэффициенты текущего блока путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что может сокращать потребление ресурсов, вызванное кодированием в битовом потоке, и, таким образом, повышать эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, соответствующая идентификационная информация о компоненте может использоваться для управления соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0032] На фиг. 1 представлена схема применения системы кодирования в уровне техники.
[0033] На фиг. 2 представлена схема соотношения между местоположением текущего коэффициента и местоположением соседнего коэффициента в уровне техники.
[0034] На фиг. 3 представлена блок-схема процесса арифметического декодирования двоичного числа в уровне техники.
[0035] На фиг. 4 представлена блок-схема процесса арифметического декодирования двоичного символа в уровне техники.
[0036] На фиг. 5 представлена блок-схема перенормировки механизма арифметического декодирования в уровне техники.
[0037] На фиг. 6 представлена блок-схема процесса обходного декодирования в уровне техники.
[0038] На фиг. 7 представлена схема соотношения между местоположением области, содержащей возможный значимый коэффициент, и местоположением области нулевого вывода в уровне техники.
[0039] На фиг. 8A представлена схема структуры системы кодера согласно вариантам осуществления настоящего изобретения.
[0040] На фиг. 8B представлена схема структуры системы декодера согласно вариантам осуществления настоящего изобретения.
[0041] На фиг. 9 представлена блок-схема способа декодирования согласно вариантам осуществления настоящего изобретения.
[0042] На фиг. 10A представлена схема местоположения последнего значимого коэффициента в соотношении с верхним левым углом текущего блока согласно вариантам осуществления настоящего изобретения.
[0043] На фиг. 10B представлена схема местоположения последнего значимого коэффициента в соотношении с нижним правым углом текущего блока согласно вариантам осуществления настоящего изобретения.
[0044] На фиг. 11 представлена блок-схема способа кодирования согласно вариантам осуществления настоящего изобретения.
[0045] На фиг. 12 представлена схема структуры кодера согласно вариантам осуществления настоящего изобретения.
[0046] На фиг. 13 представлена схема аппаратной структуры кодера согласно вариантам осуществления настоящего изобретения.
[0047] На фиг. 14 представлена схема структуры декодера согласно вариантам осуществления настоящего изобретения.
[0048] На фиг. 15 представлена схема аппаратной структуры декодера согласно вариантам осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0049] Варианты осуществления настоящего изобретения описаны далее в данном документе со ссылкой на графические материалы, чтобы обеспечить возможность более глубокого понимания особенностей и технического содержания каждого варианта осуществления здесь. Приведенные в данном документе графические материалы служат лишь для справки и пояснения и не предназначены для ограничения вариантов осуществления настоящего изобретения.
[0050] Если не определено иное, все технические и научные термины, используемые в данном документе, имеют те же значения, которые обычно понимаются специалистом в данной области техники настоящего изобретения. Термины, используемые в техническом описании настоящего изобретения, предназначены только для описания конкретного варианта осуществления и не предназначены для ограничения настоящего изобретения.
[0051] В последующем описании «некоторый вариант (некоторые варианты) осуществления» описывает (описывают) подмножество всех возможных вариантов осуществления. Однако понятно, что «некоторый вариант (некоторые варианты) осуществления» может (могут) быть одним и тем же подмножеством всех возможных вариантов осуществления или разными подмножествами всех возможных вариантов осуществления, и может (могут) быть объединен (объединены) друг с другом, если в результате объединения не возникает противоречий. Также следует отметить, что в вариантах осуществления настоящего изобретения термины «первый/второй/третий» используются только для нахождения отличий похожих объектов и не обозначают конкретный порядок объектов. Понятно, что, когда это разрешено, «первый/второй/третий» в конкретном порядке является взаимозаменяемым, чтобы обеспечить возможность реализации вариантов настоящего изобретения, описанных здесь, в порядке, отличном от того, который изображен или описан здесь.
[0052] В видеоизображении блок кодирования (СВ) обычно обозначен первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета. Три компонента цвета могут представлять собой компонент яркости, синий компонент цветности и красный компонент цветности соответственно. В частности, компонент яркости обозначается в общем как Y. Синий компонент цветности может обозначаться в общем как Cb или U. Красный компонент цветности может обозначаться в общем как Cr или V. Таким образом, видеоизображение может быть выражено в формате YCbCr или в формате YUV.
[0053] Перед дальнейшим описанием вариантов осуществления настоящего изобретения, названия и термины, используемые в вариантах осуществления настоящего изобретения, поясняются следующим образом:
[0054] экспертная группа по движущемуся изображению (MPEG),
[0055] совместная команда по исследованию видео (JVET),
[0056] альянс открытых средств массовой информации (AOM),
[0057] стандарт кодирования видео следующего поколения H.266/универсальное кодирование видео (VVC),
[0058] тестовая платформа эталонного программного обеспечения для VVC (тестовая модель VVC, VTM),
[0059] стандарт по аудио- и видеоинформации (AVS),
[0060] высокопроизводительная тестовая модель AVS (высокопроизводительная модель, HPM),
[0061] регулируемое двоичное арифметическое кодирование на основе контекста (CABAC),
[0062] полезная нагрузка необработанной последовательности байтов (RBSP),
[0063] регулярное остаточное кодирование (RRC) и
[0064] пропуск преобразования остаточного кодирования (TSRC).
[0065] Понятно, что в настоящее время все универсальные стандарты кодирования видео (например, VVC) используют гибридную систему кодирования на основе блоков. Каждое видеоизображение может быть разбито на наибольшие единицы кодирования (LCU), которые представляют собой квадраты одинакового размера, например, 128×128, 64×64 и т.д. Каждая LCU может быть далее разбита на единицы кодирования (CU), которые представляют собой прямоугольники, согласно определенному правилу. Кроме того, CU может быть дополнительно разбит на более мелкие узлы предсказания (PU), узлы преобразования (TU) и т.д. В частности, как показано на фиг. 1, гибридная система кодирования может содержать такие модули, как предсказание, преобразование, квантование, энтропийное кодирование, контурный фильтр и т. д. Модуль предсказания может содержать внутреннее предсказание и промежуточное предсказание. Промежуточное предсказание может включать оценку движения (ME) и компенсацию движения (MC). Поскольку соседние пиксели в одном видеоизображении сильно коррелируют друг с другом, пространственная избыточность между соседними пикселями может быть устранена с помощью внутреннего предсказания в технологии кодирования видео. Однако, поскольку соседние видеоизображения очень похожи, временная избыточность между соседними изображениями может быть устранена с помощью промежуточного предсказания в технологии кодирования видео, что тем самым повышает эффективность кодирования и декодирования.
[0066] Основная схема работы видеокодека является следующей. В кодере изображение может быть разбито на блоки. Блок предсказания текущего блока может быть получен путем выполнения внутреннего предсказания или промежуточного предсказания в отношении текущего блока. Остаточный блок может быть получен путем вычитания блока предсказания из необработанного блока текущего блока. Матрица коэффициентов квантования может быть получена путем выполнения преобразования и квантования в отношении остаточного блока. Энтропийное кодирование может быть выполнено в отношении матрицы коэффициентов квантования, и результат, полученный в результате энтропийного кодирования, может быть предоставлен в битовый поток. В декодере блок предсказания текущего блока может быть получен путем выполнения внутреннего предсказания или промежуточного предсказания в отношении текущего блока. С другой стороны, матрица коэффициентов квантования может быть получена путем декодирования битового потока. Остаточный блок может быть получен путем выполнения обратного квантования и обратного преобразования в отношении матрицы коэффициентов квантования. Восстановленный блок может быть получен путем сложения блока предсказания и остаточного блока. Восстановленное изображение может состоять из восстановленных блоков. Декодированное изображение может быть получено путем выполнения контурной фильтрации на основе изображения или на основе блока в отношении восстановленного изображения. Кодеру также необходимо получить декодированное изображение с помощью операций, аналогичных декодеру. Декодированное изображение может быть взято в качестве опорного изображения для промежуточного предсказания для последующего изображения. Информацию о разбиении блоков, информацию о режиме или информацию о параметрах предсказания, преобразования, квантования, энтропийного кодирования, контурного фильтра и т.п., которые определяются кодером, необходимо предоставить в битовый поток, если это необходимо. Затем, анализируя битовый поток и анализируя имеющуюся информацию, декодер может определить информацию о разбиении блоков, а также информацию о режиме или информацию о параметрах предсказания, преобразования, квантования, энтропийного кодирования, контурного фильтра и т.п., которые аналогичны тем, что были определены кодером, гарантируя тем самым, что декодированное изображение, полученное кодером, является аналогичным декодированному изображению, полученному декодером. Декодированное изображение, полученное кодером, как правило, может также называться восстановленным изображением. При предсказании текущий блок может быть разбит на PU. При преобразовании текущий блок может быть разбит на TU. Разбитие PU и разбитие TU могут отличаться. Описанное выше является основной схемой работы видеокодека в гибридной системе кодирования на основе блоков. С развитием технологии некоторые модули или некоторые этапы системы или потока могут быть оптимизированы. Варианты осуществления настоящего изобретения применимы к основной схеме работы видеокодека в гибридной системе кодирования на основе блоков, но не ограничиваются этим.
[0067] В вариантах осуществления настоящего изобретения текущий блок может быть текущим CU, текущим PU или текущим блоком преобразования (TU) и т.д. Информацию о разбиении блоков, информацию о режиме и параметрах предсказания, преобразования и квантования, а также коэффициенты и т.п. можно предоставить в битовый поток посредством энтропийного кодирования. Предположим, что вероятности разных элементов различны. Короткое кодовое слово может быть присвоено элементу, вероятность появления которого выше. Длинное кодовое слово может быть присвоено элементу, вероятность появления которого меньше. Это увеличивает эффективность кодирования по сравнению с кодированием с фиксированной длиной. Однако пространство для сжатия при энтропийном кодировании ограничено, если вероятности разных элементов близки или в принципе одинаковы. CABAC представляет собой обычно используемое энтропийное кодирование. В каждом из видов высокоэффективного кодирования видео (HEVC), VVC и т.д. энтропийное кодирование выполняется с помощью CABAC. В CABAC может использоваться контекстная модель, что повышает эффективность сжатия. Однако использование и обновление контекстного режима также усложняет работу. В CABAC может быть предусмотрен обходной режим. В обходном режиме нет необходимости использовать и обновлять контекстную модель, что обеспечивает более высокую пропускную способность. В вариантах осуществления настоящего изобретения режим, в котором контекстная модель должна использоваться и обновляться в CABAC, может называться контекстным режимом.
[0068] Как правило, сначала необходимо определить контекстную модель согласно определенному способу. Параметр контекстной модели может быть взят в качестве входного при вызове определенного процесса арифметического декодирования двоичного символа. Выбор контекстной модели может также зависеть от соседних коэффициентов. Например, на фиг. 2 представлена схема соотношения между местоположением текущего коэффициента и местоположением соседнего коэффициента в уровне техники. На фиг. 2 блок, залитый черным цветом, обозначает текущий коэффициент. Блок, заполненный линиями сетки, обозначает соседний коэффициент. Как показано на фиг. 2, контекстная модель, выбранная для sig_coeff_flag текущего коэффициента, должна быть определена согласно информации о 5 соседних коэффициентах справа от текущего коэффициента, ниже текущего коэффициента и ниже справа от текущего коэффициента. Дополнительно можно увидеть на фиг. 2, что работа в контекстном режиме гораздо сложнее, чем в обходном режиме, и дополнительно зависит от соседних коэффициентов.
[0069] Для использования контекстного режима механизм арифметического кодирования CABAC должен вызвать определенный процесс арифметического декодирования двоичного символа. Процесс может включать процесс перехода состояния, т.е. обновление контекстной модели. В процессе арифметического декодирования двоичного символа может быть вызван процесс перенормировки механизма арифметического декодирования. При использовании обходного режима необходимо вызвать процесс обходного декодирования.
[0070] Применение CABAC в VVC представлено далее в качестве примера.
[0071] Для механизма арифметического кодирования CABAC, ctxTable, ctxIdx, bypassFlag, а также переменные состояния ivlCurrRange и ivlOffset механизма арифметического декодирования могут быть введены в процесс арифметического декодирования. Процесс арифметического декодирования может вывести значение двоичного числа.
[0072] В данном документе ctxTable может быть таблицей, используемой при выборе контекстного режима, а ctxIdx может быть индексом контекстной модели.
[0073] На фиг. 3 представлена блок-схема процесса арифметического декодирования двоичного числа в уровне техники. Как показано на фиг. 3, чтобы получить значение двоичного числа посредством декодирования, таблица контекстных индексов ctxTable, индекс контекстной модели ctxIdx, разрешающий флаг обходного режима bypassFlag могут быть переданы и введены в процесс арифметического декодирования DecodeBin(ctxTable, ctxIdx, bypassFlag), в частности, следующим образом.
[0074] Процесс обходного декодирования DecodeBypass() может быть вызван, если значение bypassFlag равно 1.
[0075] В противном случае, если значение bypassFlag равно 0, значение ctxTable равно 0, и значение ctxIdx равно 0, может быть вызван процесс завершения декодирования DecodeTerminate().
[0076] В противном случае (если значение bypassFlag равно 0, а значение ctxTable не равно 0) может быть вызван определенный процесс DecodeDecision(ctxTable, ctxIdx) арифметического декодирования двоичного символа.
[0077] Дополнительно переменные ctxTable, ctxIdx, ivlCurrRange и ivlOffset могут быть введены в процесс арифметического декодирования двоичного символа. Процесс арифметического декодирования двоичного символа может вывести значение binVal, полученное посредством декодирования, а также обновленные переменные ivlCurrRange и ivlOffset.
[0078] На фиг. 4 представлена блок-схема процесса арифметического декодирования двоичного символа в уровне техники. Как показано на фиг. 4, таблица контекстных индексов ctxTable и индекс контекстной модели ctxIdx, а также переменные состояния ivlCurrRange и ivlOffset механизма арифметического декодирования могут быть введены через DecodeDecision(ctxTable, ctxIdx). В данном документе pStateIdx0 и pStateIdx1 могут быть двумя текущими состояниями контекстной модели.
[0079] (1) Значение переменной ivlLpsRange может быть получено следующим образом.
[0080] Переменная qRangeIdx может быть получена следующим образом, учитывая текущее значение ivlCurrRange.
[0081] qRangeIdx=ivlCurrRange >>5
[0082] valMps и ivlLpsRange могут быть получены следующим образом, учитывая qRangeIdx и pStateIdx0, а также pStateIdx1, соответствующие ctxTable и ctxIdx.
[0083] pState=pStateIdx1+16×pStateIdx0;
[0084] valMps=pState >>14;
[0085] ivlLpsRange=(qRangeIdx×((valMps ? 32767-pState: pState) >>9) >>1) +4.
[0086] (2) Значение переменной ivlCurrRange может быть установлено как ivlCurrRange-ivlLpsRange. Можно выполнить следующие операции.
[0087] Если ivlOffset больше или равна ivlCurrRange, значение переменной binVal может быть 1-valMps, а переменные ivlOffset и ivlCurrRange могут быть обновлены. При этом значение ivlOffset может составлять ivlOffset минус ivlCurrRange, а значение ivlCurrRange может составлять ivlLpsRange.
[0088] В противном случае (если ivlOffset < ivlCurrRange), значение переменной binVal может составлять valMps.
[0089] Учитывая значение binVal, может быть выполнен определенный переход состояния (statetransition). Определенная перенормировка может быть выполнена на основе текущего значения ivlCurrRange.
[0090] Дополнительно настоящие pStateIdx0 и pStateIdx1, а также binVal, полученная посредством декодирования, могут быть введены в процесс перехода состояния. Процесс перехода состояния может выводить контекстные переменные pStateIdx0 и pStateIdx1, соответствующие обновленным ctxTable и ctxIdx. В данном документе переменные shift0 и shift1 могут быть получены из shiftIdx. В данном документе соответствие между shiftIdx и ctxTable, а также ctxIdx может быть определено следующим образом.
[0091] shift0=(shiftIdx >>2) +2;
[0092] shift1=(shiftIdx& 3) +3+shift0.
[0093] На основе значения binVal, полученного посредством декодирования, две переменные pStateIdx0 и pStateIdx1, соответствующие ctxTable и ctxIdx, могут быть обновлены следующим образом.
[0094] pStateIdx0=pStateIdx0-(pStateIdx0 >>shift0) +(1023×binVal >>shift0);
[0095] pStateIdx1=pStateIdx1-*(pStateIdx1>>shift1) +(16383×binVal >>shift1).
[0096] Дополнительно переменные ivlCurrRange и ivlOffset, а также биты в данных слайса могут быть введены в процесс перенормировки механизма арифметического декодирования. Процесс перенормировки может вывести обновленные переменные ivlCurrRange и ivlOffset.
[0097] На фиг. 5 представлена блок-схема перенормировки механизма арифметического декодирования в уровне техники. Как показано на фиг. 5, поток может войти в процесс ReNormD. Текущее значение ivlCurrRange можно предпочтительно сравнивать с 256. Последующие операции могут быть следующими.
[0098] Если ivlCurrRange больше или равна 256, перенормировка не нужна, и процесс RenormD завершается.
[0099] В противном случае (если ivlCurrRange меньше 256) поток может войти в цикл перенормировки. В цикле значение ivlCurrRange может быть умножено на 2, т.е. перемещено влево на один бит. Значение IvlOffset может быть умножено на 2, т.е. перемещено влево на один бит. Один бит, полученный с помощью read_bits(1), может быть перемещен в ivlOffset, в частности, следующим образом.
[00100] ivlCurrRange=ivlCurrRange<<1;
[00101] ivlOffset =ivlOffset <<1;
[00102] ivlOffset =ivlOffset |read_bits(1).
[00103] В течение всего процесса данные в битовом потоке не должны приводить к тому, чтобы ivlOffset была больше или равна ivlCurrRange.
[00104] Дополнительно переменные ivlCurrRange и ivlOffset, а также биты данных слайса вводятся в процесс обходного декодирования двоичного символа, а процесс обходного декодирования двоичного символа может выводить обновленную переменную ivlOffset и значение binVal, полученное посредством декодирования.
[00105] Если bypassFlag равен 1, может быть вызван процесс обходного декодирования. На фиг. 6 представлена блок-схема процесса обходного декодирования в уровне техники. Как показано на фиг. 6, сначала может быть обновлена переменная ivlOffset. То есть значение IvlOffset может быть умножено на 2, т.е. перемещено влево на один бит. Один бит, полученный с помощью read_bits(1), может быть перемещен в ivlOffset, в частности, следующим образом.
[00106] ivlOffset =ivlOffset <<1;
[00107] ivlOffset =ivlOffset |read_bits(1).
[00108] Затем значение ivlOffset можно сравнить со значением ivlCurrRange. Последующие операции могут быть следующими.
[00109] Если ivlOffset больше или равна ivlCurrRange, значение binVal может быть установлено как 1, а ivlOffset равна ivlOffset минус ivlCurrRange.
[00110] В противном случае (если ivlOffset меньше ivlCurrRange), значение binVal может быть установлено как 0.
[00111] В течение всего процесса данные в битовом потоке не должны приводить к тому, чтобы ivlOffset была больше или равна ivlCurrRange.
[00112] Дополнительно следует отметить, что в существующих стандартах кодирования видео для остатков обычно поддерживается одно или более преобразований и пропусков преобразования. Преобразования могут включать дискретное косинусное преобразование (DCT) и т.д. Остаточный блок, подвергшийся преобразованию (и квантованию), обычно имеет определенные характеристики. Например, после некоторых преобразований (и квантований) большая часть энергии концентрируется в низкочастотной области, так что коэффициенты в области в верхнем левом углу могут быть большими; в то время как коэффициенты в области в нижнем правом углу могут быть маленькими и даже могут содержать много коэффициентов со значением 0. Как следует из названия, при пропуске преобразования преобразование не выполняют. Коэффициенты, пропущенные при преобразовании, и преобразованные коэффициенты могут быть разными при распределении и, следовательно, могут быть закодированы с использованием разных способов кодирования коэффициентов. Например, в VVC, RRC может применяться к преобразованному коэффициенту, и TSRC может применяться к коэффициенту, пропущенному при преобразовании.
[00113] В блоке, подвергнутом общему преобразованию, такому как DCT, коэффициенты, расположенные в местоположениях слева направо, могут представлять возрастающие частоты, и коэффициенты, расположенные в местоположениях сверху вниз, могут представлять возрастающие частоты. Коэффициенты, расположенные в верхнем левом углу, обозначают низкие частоты. Коэффициенты, расположенные в нижнем правом углу, обозначают высокие частоты. Человеческие глаза более восприимчивы к низкочастотной информации и не особенно восприимчивы к высокочастотной информации. Используя такие характеристики, некоторая высокочастотная информация может быть подвергнута более тщательной обработке или может быть удалена с меньшим воздействием на зрение. В некоторых технологиях, таких как нулевой вывод, часть высокочастотной информации может быть принудительно установлена как 0. Например, в блоке 64×64 любой коэффициент с абсциссой, большей или равной 32, или ординатой, большей или равной 32, может быть принудительно установлен как 0. Это всего лишь простой пример. Диапазон нулевого вывода может быть получен с помощью более сложных способов, которые здесь не описываются. Как показано на фиг. 7, в части в верхнем левом углу (т.е. области, содержащей возможный значимый коэффициент) может быть значимый коэффициент (или ненулевой коэффициент), а все коэффициенты в части в нижнем правом углу (т.е. области нулевого вывода) могут быть установлены как ноль. Соответственно, последующее кодирование любого коэффициента в области нулевого вывода не требуется, так как этот коэффициент точно равен 0.
[00114] Дополнительно, после выполнения преобразования (и квантования) в отношении остатков обычного видео, характерно, что большие коэффициенты распределены в верхнем левом углу, а многие коэффициенты 0 распределены в нижнем правом углу. Таким образом, при кодировании коэффициентов обычно используются некоторые способы, следовательно, коэффициенты в определенном диапазоне в верхнем левом углу должны быть закодированы, а коэффициенты в определенном диапазоне в нижнем правом углу нет необходимости кодировать, т.е. они могут быть приняты за 0 по умолчанию. В одном способе при кодировании коэффициентов блока сначала может быть определено местоположение последнего значимого коэффициента блока в порядке сканирования. После определения местоположения все коэффициенты, расположенные ниже местоположения последнего значимого коэффициента в порядке сканирования, могут быть приняты за 0, т.е. нет необходимости их кодировать. Кодированию подлежит только последний значимый коэффициент и коэффициенты, расположенные выше местоположения последнего значимого коэффициента. Например, в VVC местоположение (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента определяется на основе last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix и last_sig_coeff_y_suffix.
[00115] (a) last_sig_coeff_x_prefix задает префикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_x_prefix должны быть в диапазоне от 0 до (log2ZoTbWidth<<1)-1 включительно.
[00116] Когда last_sig_coeff_x_prefix не присутствует, считается, что он равен 0.
[00117] (b) last_sig_coeff_y_prefix задает префикс вертикальной координаты (или положения строки) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_y_prefix должны быть в диапазоне от 0 до (log2ZoTbHeight<<1) -1 включительно.
[00118] Когда last_sig_coeff_y_prefix не присутствует, считается, что он равен 0.
[00119] (c) last_sig_coeff_x_suffix задает суффикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_x_suffix должны быть в диапазоне от 0 до (1<< ( ( last_sig_coeff_x_prefix>>1)-1))-1 включительно.
[00120] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в порядке сканирования в текущем блоке преобразования может быть получена следующим образом.
[00121] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:
[00122] LastSignificantCoeffX = last_sig_coeff_x_prefix;
[00123] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:
[00124] LastSignificantCoeffX=(1<< ((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1)) + last_sig_coeff_x_suffix.
[00125] (b) last_sig_coeff_y_suffix задает суффикс вертикальной координаты (или положения строки) последнего значимого коэффициента в порядке сканирования в текущем блоке преобразования. Значения last_sig_coeff_y_suffix должны быть в диапазоне от 0 до (1<< ((last_sig_coeff_y_prefix>>1)-1))-1 включительно.
[00126] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке преобразования может быть получена следующим образом.
[00127] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:
[00128] LastSignificantCoeffY = last_sig_coeff_y_prefix;
[00129] В противном случае (last_sig_coeff_y_suffix присутствует) применимо следующее:
[00130] LastSignificantCoeffY = (1<< ((last_sig_coeff_y_prefix>>1)-1))*(2+(last_sig_coeff_y_prefix&1)) + last_sig_coeff_y_suffix.
[00131] Дополнительно все из последнего значимого коэффициента и коэффициента (коэффициентов), расположенного (расположенных) выше местоположения последнего значимого коэффициентом, подлежат кодированию. Однако в обычном видео даже среди этих коэффициентов есть определенная доля коэффициентов, которые равны 0. В VVC флаг sb_coded_flag (указывающий, закодирован ли текущий подблок) может использоваться для определения того, должны ли быть закодированы коэффициенты в текущем подблоке. Все коэффициенты в текущем подблоке принимаются за 0, если нет необходимости кодировать коэффициенты в текущем подблоке. Здесь подблок, как правило, может составлять n×n, например, 4×4.
[00132] sb_coded_flag[xS][yS] указывает следующее для подблока в местоположении (xS, yS) в текущем блоке преобразования, где подблок представляет собой массив уровней коэффициента преобразования:
[00133] Когда sb_coded_flag[xS][yS] равен 0, все уровни коэффициента преобразования подблока в местоположении (xS, yS) в текущем блоке преобразования считаются равными 0.
[00134] Когда sb_coded_flag[xS][yS] не присутствует, считается, что он равен 1.
[00135] Дополнительно при кодировании коэффициентов эффективность сжатия может быть улучшена с помощью характеристик коэффициентов. Например, для обычного видео определенная доля коэффициентов среди коэффициентов, подлежащих кодированию, равна 0. Таким образом, синтаксический элемент можно использовать для указания того, равен ли текущий коэффициент 0. Синтаксический элемент, как правило, может быть двоичным символом. Если текущий коэффициент равен 0, это означает, что кодирование текущего коэффициента завершено. В противном случае необходимо продолжить кодирование текущего коэффициента. В качестве другого примера, для обычного видео абсолютные значения определенной доли коэффициентов среди значимых коэффициентов (т.е. ненулевых коэффициентов) могут быть равны 1. Таким образом, синтаксический элемент можно использовать для указания того, превышает ли абсолютное значение текущего коэффициента 1. Синтаксический элемент, как правило, может быть двоичным символом. Если абсолютное значение текущего коэффициента не превышает 1, это означает, что кодирование текущего коэффициента завершено. В противном случае необходимо продолжить кодирование текущего коэффициента. Например, синтаксические элементы, задействованные в VVC, являются следующими.
[00136] sig_coeff_flag[xC][yC] указывает для местоположения коэффициента преобразования (xC, yC) в текущем блоке преобразования, является ли соответствующий уровень коэффициента преобразования в местоположении (xC, yC) ненулевым, как показано ниже.
[00137] Если sig_coeff_flag[xC][yC] равен 0, уровень коэффициента преобразования в местоположении (xC, yC) устанавливают равным 0.
[00138] В противном случае (sig_coeff_flag[xC][yC] равен 1) уровень коэффициента преобразования в местоположении (xC, yC) имеет ненулевое значение.
[00139] Когда sig_coeff_flag[xC][yC] не присутствует, он считается следующим образом.
[00140] Если transform_skip_flag[x0][y0][cIdx] равен 0 или sh_ts_residual_coding_disabled_flag равен 1, применимо следующее:
Если (xC, yC) является последним значимым местоположением (LastSignificantCoeffX, LastSignificantCoeffY) в порядке сканирования или все следующие условия истинны, sig_coeff_flag[xC][yC] считается равным 1:
(xC&((1<<log2SbW)-1), yC& ((1<<log2SbH)-1)) равно (0, 0),
inferSbDcSigCoeffFlag равен 1, и
sb_coded_flag[xS][yS] равен 1;
В противном случае sig_coeff_flag[xC][yC] считается равным 0;
[00141] В противном случае (transform_skip_flag[x0][y0][cIdx] равен 1 и sh_ts_residual_coding_disabled_flag равен 0), применимо следующее:
Если все следующие условия истинны, sig_coeff_flag[xC][yC] считается равным 1:
(xC&((1<<log2SbW)-1), yC&((1<<log2SbH)-1)) равно ((1<<log2SbW)-1, (1<<log2SbH)-1),
inferSbSigCoeffFlag равен 1, и
sb_coded_flag[xS][yS] равен 1;
В противном случае sig_coeff_flag[xC][yC] считается равным 0.
[00142] abs_level_gtx_flag[n][j] указывает, превышает ли абсолютное значение коэффициента преобразования (в положении сканирования n) (j<<1)+1. Когда abs_level_gtx_flag[n][j] не присутствует, считается, что он равен 0.
[00143] Таким образом, если кодирование текущего коэффициента еще не выполнено после обработки вышеупомянутых флагов (также называемых синтаксическими элементами), то должно быть кодировано оставшееся значение, например, abs_remainder в VVC, абсолютного значения коэффициента.
[00144] abs_remainder[n] представляет собой оставшееся абсолютное значение уровня коэффициента преобразования, которое кодируют кодом Голомба-Райса в положении сканирования n. Когда abs_remainder[n] не присутствует, то оно считается равным 0.
[00145] Дополнительно в VVC такие синтаксические элементы, как sig_coeff_flag, abs_level_gtx_flag и т.д., могут быть закодированы в контекстном режиме, а abs_remainder может быть закодирован в обходном режиме. Как упомянуто выше, контекстно-ориентированное кодирование сложнее, чем обходное кодирование, то есть, интуитивно говоря, требует больше времени на обработку. Использование слишком большого количества контекстно-ориентированного кодирования может повлиять на скорость декодирования, если необходимо закодировать большое количество коэффициентов. Таким образом, количество синтаксических элементов, подлежащих кодированию в контекстном режиме, может быть ограничено. Например, как только количество двоичных символов, подлежащих кодированию в контекстном режиме, превысит пороговое значение, последующие коэффициенты могут быть принудительно кодированы в обходном режиме, таком как dec_abs_level в VVC.
[00146] dec_abs_level[n] представляет собой промежуточное значение, которое кодируется кодом Голомба-Райса в положении сканирования n. ZeroPos[n] получают в процессе анализа dec_abs_level[n]. Абсолютное значение AbsLevel[xC][yC] уровня коэффициента преобразования в местоположении (xC, yC) может быть получено следующим образом.
[00147] Если dec_abs_level[n] не присутствует или равен ZeroPos[n], AbsLevel[xC][yC] устанавливают равным 0.
[00148] В противном случае, если dec_abs_level[n] меньше ZeroPos[n], AbsLevel[xC][yC] устанавливают равным dec_abs_level[n]+1.
[00149] В противном случае (dec_abs_level[n] больше ZeroPos[n]), AbsLevel[xC][yC] устанавливают равным dec_abs_level[n].
[00150] Все вышесказанное относится к абсолютному значению коэффициента. Знак значимого коэффициента может быть определен с помощью флага знака коэффициента coeff_sign_flag или некоторых cgjcj,j gjkextybz знака. coeff_sign_flag[n] указывает знак уровня коэффициента преобразования для положения сканирования n следующим образом.
[00151] Если coeff_sign_flag[n] равен 0, то соответствующий уровень коэффициента преобразования имеет положительное значение.
[00152] В противном случае (coeff_sign_flag[n] равен 1) соответствующий уровень коэффициента преобразования имеет отрицательное значение.
[00153] Когда coeff_sign_flag[n] не присутствует, считается, что он равен 0. В этом случае значение CoeffSignLevel[xC][yC] указывает знак уровня коэффициента преобразования в местоположении (xC, yC) следующим образом.
[00154] Если CoeffSignLevel[xC][yC] равен 0, то соответствующий уровень коэффициента преобразования равен нулю.
[00155] В противном случае, если CoeffSignLevel[xC][yC] равен 1, соответствующий уровень коэффициента преобразования имеет положительное значение.
[00156] В противном случае (CoeffSignLevel[xC][yC] равен -1) соответствующий уровень коэффициента преобразования имеет отрицательное значение.
[00157] Дополнительно следует отметить, что CoeffSignLevel[xC][yC] можно также получить другим способом, который здесь не описывается.
[00158] Кроме того, в VVC может дополнительно использоваться par_level_flag четности уровня коэффициента. Согласно флагу можно узнать четность текущего уровня коэффициента, которая может быть использована при определении значения текущего уровня коэффициента и зависимого квантования.
[00159] par_level_flag[n] указывает четность уровня коэффициента преобразования в положении сканирования n. Если par_level_flag[n] не присутствует, считается, что он равен 0.
[00160] Кроме того, чтобы определить четность уровня коэффициента преобразования, par_level_flag может дополнительно использоваться для определения, вместе с abs_level_gtx_flag и abs_remainder и т.п., величины коэффициента.
[00161] Здесь, поскольку контекстный режим должен быть выбран, использован и обновлен при контекстно-ориентированном кодировании, и никакой контекстный режим не должен быть выбран, использован и обновлен при обходном кодировании, общая практика заключается в том, чтобы расположить вместе синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования, и расположить синтаксические элементы, подлежащие кодированию путем обходного кодирования, в определенном диапазоне. Это оказывается более удобным для конструкции аппаратного обеспечения. Например, сначала обрабатываются синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в одном блоке, а затем обрабатываются синтаксические элементы, подлежащие кодированию путем обходного кодирования. Синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в текущем блоке, могут быть дополнительно разделены на несколько групп. Синтаксические элементы, подлежащие кодированию путем обходного режима в одном блоке, могут быть дополнительно разделены на несколько групп.
[00162] В конкретном примере конкретный синтаксис RRC является таким, как показано в таблице 1.
Таблица 1
[00163] Массив AbsLevel[xC][yC] обозначает массив абсолютных значений коэффициентов преобразования текущего блока преобразования. Массив AbsLevelPass1[xC][yC] обозначает массив частично восстановленных абсолютных значений коэффициентов преобразования текущего блока преобразования. Индексы xC и yC массива обозначают местоположение (xC, yC) в текущем блоке преобразования.
[00164] Некоторая информация о размере блока, такая как логарифмы log2ZoTbWidth и log2ZoTbHeight размера блока нулевого вывода, должна быть определена после того, как поток вошел в функцию residual_coding(x0, y0, log2TbWidth, log2TbHeight, cIdx). Коэффициент с абсциссой в диапазоне [0, (1<<log2ZoTbWidth) -1] и ординатой в диапазоне [0, (1<<log2ZoTbHeight) -1] может быть значимым коэффициентом. Здесь (1<<log2ZoTbWidth) может обозначать ширину блока преобразования нулевого вывода, а (1<< log2ZoTbHeight) может обозначать высоту блока преобразования нулевого вывода. Затем местоположение последнего значимого коэффициента может быть определено согласно last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix и last_sig_coeff_y_suffix и т.д. Коэффициент, расположенный выше последнего значимого коэффициента в порядке сканирования, может быть значимым коэффициентом. Затем значение remBinsPass1 может быть определено с использованием формулы remBinsPass1=((1<<(log2TbWidth+log2TbHeight)) ×7) >>2. remBinsPass1 может указывать количество синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования (т.е. количество синтаксических элементов, кодированных на основе контекстного режима) в текущем блоке. Понятно, что в вариантах осуществления настоящего изобретения remBinsPass1 может относиться к оставшимся двоичным файлам inpass1, т.е. количеству оставшихся двоичных символов в первом раунде. Коэффициенты, расположенные выше последнего значимого коэффициента в порядке сканирования, необходимо кодировать. Для подблоков, содержащих эти коэффициенты, можно, в свою очередь, определить, необходимо ли кодировать каждый подблок в качестве текущего подблока. Если текущий подблок должен быть кодирован, в RRC синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в подблоке, могут быть помещены в первый раунд, а синтаксические элементы, подлежащие кодированию путем обходного кодирования (т.е. синтаксические элементы, кодированные на основе обходного режима), могут быть помещены после первого раунда. Для каждого коэффициента может быть необходима обработка вплоть до 4 синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования, т.е. 1 sig_coeff_flag, 2 abs_level_gtx_flags и 1 par_level_flag. В первом раунде из remBinsPass1 можно вычитать 1 каждый раз, когда обрабатывается один синтаксический элемент, подлежащий кодированию путем контекстно-ориентированного кодирования. Если коэффициент достаточно велик, оставшееся значение, т.е. abs_remainder, необходимо дополнительно обработать после того, как несколько синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования, были обработаны в первом раунде. В противном случае, если remBinsPass1 достаточно мал (не соответствует remBinsPass1>=4), первый раунд может завершиться. Остальные коэффициенты могут обрабатываться непосредственно с использованием обходного режима, т.е. dec_abs_level.
[00165] В другом конкретном примере конкретный синтаксис TSRC показан в таблице 2.
Таблица 2
[00166] Некоторая информация о размере блока должна быть определена после того, как поток вошел в функцию residual_ts_coding(x0, y0, log2TbWidth, log2TbHeight, cIdx). Затем значение RemCcbs может быть определено с использованием формулы RemCcbs=((1<<(log2TbWidth+log2TbHeight)) ×7) >>2. RemCcbs может указывать количество синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования в текущем блоке. Понятно, что в вариантах осуществления настоящего изобретения RemCcbs может относиться к оставшимся двоичным файлам с контекстным кодированием, т.е. количеству оставшихся двоичных символов, подлежащих кодированию путем контекстно-ориентированного кодирования. Для каждого подблока может быть определено, нужно ли кодировать подблок в качестве текущего подблока. Если текущий подблок должен быть кодирован, в TSRC (в отличие от RRC) синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в подблоке, могут быть помещены в два раунда. Для каждого коэффициента может быть необходима обработка вплоть до 4 синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования, в каждом из первого раунда и второго раунда. Синтаксические элементы, подлежащие кодированию путем обходного кодирования, могут быть помещены после двух раундов. В первом раунде и во втором раунде из remBinsPass1 можно вычитать 1 каждый раз, когда обрабатывается один синтаксический элемент, подлежащий кодированию путем контекстно-ориентированного кодирования. Если коэффициент достаточно велик, оставшееся значение, т.е. abs_remainder, необходимо дополнительно обработать после того, как несколько синтаксических элементов, подлежащих кодированию путем контекстно-ориентированного кодирования, были обработаны в первом раунде и во втором раунде. В противном случае, если remBinsPass1 достаточно мал (не соответствует remBinsPass1>=4), первые два раунда могут завершиться. Остальные коэффициенты могут обрабатываться непосредственно с использованием обходного режима, где это по-прежнему abs_remainder.
[00167] Вкратце, в соответствующем уровне техники обычное видео в настоящее время, такое как потребительское видео, может быть сжато с превосходной эффективностью сжатия с использованием существующего способа кодирования коэффициентов. Обычно для потребительского видео может потребоваться битовая глубина 8 бит или 10 бит на пиксель. В целом битовая скорость потребительского видео не слишком высока и обычно составляет несколько мегабайт в секунду (МБ/с) или меньше. Однако видео, относящиеся к некоторым приложениям, требуют более высокой битовой глубины на пиксель, например, битовой глубины 12 бит, 14 бит, 16 бит или более на пиксель. Более высокая битовая глубина в целом может привести к большему коэффициенту и большему количеству значимых коэффициентов, что тем самым обеспечивает более высокую битовую скорость. Видео, относящиеся к некоторым приложениям, требуют более высокого качества. Более высокое качество в целом может также привести к большему коэффициенту и большему количеству значимых коэффициентов, что тем самым обеспечивает более высокую битовую скорость. Более высокая битовая скорость может предъявлять более высокие требования к вычислительной мощности, например, пропускной способности, декодера.
[00168] В целом, по сравнению со случаем видео с низкой битовой глубиной, низким качеством, низкой битовой скоростью (обычного видео), для видео с высокой битовой глубиной, высоким качеством и высокой битовой скоростью (видео с тройной высокой четкостью) требуется больше коэффициентов, подлежащих кодированию и декодированию, и эти коэффициенты больше. Например, имеется гораздо больше коэффициентов, подлежащих кодированию и декодированию, в блоке в видео с тройной высокой четкостью по сравнению с количеством коэффициентов, подлежащих кодированию и декодированию, в блоке того же размера в обычном видео. Это связано с тем, что многие коэффициенты в блоке обычного видео все становятся равными 0 после подвергания предсказанию, преобразованию и квантованию, в то время как многие коэффициенты в блоке видео с тройной высокой четкостью все еще могут быть ненулевыми после подвергания предсказанию, преобразованию и квантованию. Большая доля коэффициентов, подлежащих кодированию, среди коэффициентов, подвергнутых предсказанию, преобразованию и квантованию в блоке обычного видео, может быть равна 0. Следовательно, может быть очень эффективно определять, нужно ли кодировать область коэффициентов, используя местоположение (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента. Даже большая доля коэффициентов, расположенных выше местоположения последнего значимого коэффициента, все еще может быть равна 0. Следовательно, может быть очень эффективно дополнительно определять, нужно ли кодировать текущий подблок, используя флаг sb_coded_flag, указывающий, нужно ли кодировать подблок. Однако, когда в текущем блоке много значимых коэффициентов, или даже большинство или все из коэффициентов являются значимыми (т.е. ненулевыми), использование местоположения последнего значимого коэффициента и флага, указывающего, нужно ли кодировать подблок, не будет исключать слишком много значимых коэффициентов. Более того, предоставление местоположения значимого коэффициента и флага, указывающего, нужно ли кодировать подблок, и т.п. в битовый поток может потребовать определенной величины потребления ресурсов, что приводит к нерациональному использованию.
[00169] В другом аспекте местоположение последнего значимого коэффициента и флаг, указывающий, нужно ли кодировать подблок, и т.п. могут все кодироваться в контекстном режиме. Контекстно-ориентированное кодирование сложнее, чем обходное кодирование, и обработка этой информации может дополнительно повлиять на пропускную способность и скорость кодирования и декодирования программного обеспечения и аппаратного обеспечения.
[00170] В еще одном аспекте в настоящее время способ кодирования местоположения (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента заключается в кодировании координат местоположения последнего значимого коэффициента. В обычном видео, поскольку большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0, значения LastSignificantCoeffX и LastSignificantCoeffY в целом могут быть малыми. В видео с тройной высокой четкостью много значимых коэффициентов также могут появиться в нижнем правом углу, что обычно приводит к большим значениям LastSignificantCoeffX и LastSignificantCoeffY, что тем самым приводит к большему потреблению ресурсов в битовом потоке за счет кодирования больших значений в битовом потоке. Кроме того, еще одна возможность заключается в том, чтобы применить способ в случае сжатия без потерь. Поскольку квантование не допускается при сжатии без потерь, в общем случае может быть много коэффициентов, и коэффициенты могут иметь большие значения. В этом случае использование существующего решения может привести к большему потреблению ресурсов, нерациональному использованию, снижению эффективности сжатия.
[00171] В вариантах осуществления настоящего изобретения предоставлен способ декодирования. Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00172] В вариантах осуществления настоящего изобретения дополнительно предоставлен способ кодирования. Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.
[00173] Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку значимые коэффициенты соответствующих компонентов цвета могут различаться в законе распределения, можно использовать соответствующую идентификационную информацию о компоненте для управления соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
[00174] Варианты осуществления настоящего изобретения описаны далее в данном документе со ссылкой на графические материалы.
[00175] На фиг. 8A представлена иллюстративная структурная схема состава системы кодера согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 8A, кодер 100 может содержать узел 101 разбиения, узел 102 предсказания, первый сумматор 107, узел 108 преобразования, узел 109 квантования, узел 110 обратного квантования, узел 111 обратного преобразования, второй сумматор 112, узел 113 фильтрации, узел 114 буфера для декодированного изображения (DPB) и узел 115 энтропийного кодирования. Здесь входными данными кодера 100 может быть видео, состоящее из последовательности изображений, или статическое изображение. Выходные данные кодера 100 могут представлять собой поток битов (также называемый битовым потоком), представляющий сжатую версию входного видео.
[00176] Узел 101 разбиения может разбивать изображение входного видео на один или более узлов кодового дерева (CTU). Узел 101 разбиения может разделить изображение на один или более блоков изображения (также называемых тайлами) и может дополнительно разделить тайл на один или более пакетов. Здесь тайл или пакет может содержать один или более полных и/или частичных CTU. Кроме того, узел 101 разбиения может образовывать один или более слайсов. Слайс может содержать один или более тайлов в изображении, расположенных в растровом порядке, или один или более тайлов, покрывающих прямоугольную область в изображении. Узел 101 разбиения может дополнительно образовывать один или более фрагментов изображения. Фрагмент изображения может содержать один или более слайсов, тайлов или пакетов.
[00177] В процессе кодирования кодером 100 узел 101 разбиения может передавать CTU в узел 102 предсказания. В общем, узел 102 предсказания может состоять из узла 103 разбиения блоков, узла 104 оценки движения (ME), узла 105 компенсации движения (MC) и узла 106 внутреннего предсказания. В частности, узел 103 разбиения блоков дополнительно разбивает входной CTU на меньшие узлы кодирования (CU) путем итеративного использования разбиения на основе четверичного дерева, разбиения на основе двоичного дерева и разбиения на основе троичного дерева. Узел 102 предсказания может получить блок промежуточного предсказания CU с использованием узла 104 ME и узла 105 MC. Узел 106 внутреннего предсказания может получить блок внутреннего предсказания CU с использованием различных режимов внутреннего предсказания, включая режим матрично-взвешенного внутреннего предсказания (MIP). В примере режим оценки движения на основе оптимизации уровня искажения (RDO) может быть вызван узлом 104 ME и узлом 105 MC для получения блока промежуточного предсказания. Способ определения режима на основе RDO может быть вызван узлом 106 внутреннего предсказания для получения блока внутреннего предсказания.
[00178] Узел 102 предсказания может выводить блок предсказания CU. Первый сумматор 107 может вычислять разницу между CU в выходных данных узла 101 разбиения и блоком предсказания CU, т.е. остаточным CU. Узел 108 преобразования может считывать остаточный CU и выполнять одно или более преобразований в отношении остаточного CU для получения коэффициентов. Узел 109 квантования может квантовать коэффициенты и выводить коэффициенты квантования (т.е. уровни). Узел 110 обратного квантования может масштабировать коэффициенты квантования для вывода восстановленных коэффициентов. Узел 111 обратного преобразования может выполнять одно или более обратных преобразований, соответствующих одному или более преобразованиям в узле 108 преобразования, и выводить восстановленный остаток. Второй сумматор 112 может вычислить восстановленный CU путем сложения восстановленного остатка и блока предсказания CU из узла 102 предсказания. Второй сумматор 112 может дополнительно отправлять выходные данные второго сумматора в узел 102 предсказания в качестве эталона для внутреннего предсказания. После того как все CU в изображении или фрагменте изображения были восстановлены, узел 113 фильтрации может выполнять контурную фильтрацию в отношении восстановленного изображения или фрагмента изображения. В данном случае узел 113 фильтрации может содержать один или более фильтров, например, деблокирующий фильтр, фильтр адаптивного смещения дискретного значения (SAO), адаптивный контурный фильтр (ALF), фильтр отображения яркости с масштабированием цветности (LMCS) и фильтр на основе нейронной сети и т.п. Альтернативно, когда узел 113 фильтрации определяет, что CU не должен быть использован в качестве эталона для кодирования другого CU, узел 113 фильтрации может выполнять контурную фильтрацию в отношении одного или более целевых пикселей в CU.
[00179] Выходными данными узла 113 фильтрации может быть декодированное изображение или фрагмент изображения. Декодированное изображение или фрагмент изображения могут быть кэшированы в узле 114 DPB. Узел 114 DPB может выводить декодированное изображение или фрагмент изображения на основе информации о синхронизации и управлении. В данном случае изображение, хранящееся в узле 114 DPB, может быть дополнительно использовано в качестве эталона для промежуточного предсказания или внутреннего предсказания, выполняемого узлом 102 предсказания. Наконец, узел 115 энтропийного кодирования может преобразовывать параметр (такой как параметр управления, дополнительная информация и т.д.), требуемый для декодирования изображения из кодера 100, в двоичную форму и предоставлять двоичную форму в битовый поток согласно структуре синтаксиса каждого узла данных. То есть кодер 100 выводит конечный битовый поток.
[00180] Дополнительно кодер 100 может иметь первый процессор и первое запоминающее устройство, которое записывает компьютерную программу. Когда первый процессор считывает и запускает компьютерную программу, кодер 100 может считывать входное видео и генерировать битовый поток, соответствующий входному видео. Кроме того, кодер 100 может дополнительно представлять собой вычислительное устройство, имеющее один или более чипов. Узлы, реализованные в виде интегральных микросхем на чипе, могут иметь функции подключения и обмена данными, аналогичные соответствующим узлам на фиг. 8A.
[00181] На фиг. 8B представлена иллюстративная структурная схема состава системы декодера согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 8B, декодер 200 может содержать узел 201 анализа, узел 202 предсказания, узел 205 обратного квантования, узел 206 обратного преобразования, сумматор 207, узел 208 фильтрации и узел 209 DPB. Входными данными декодера 200 может являться битовый поток, представляющий сжатую версию видео или статического изображения. Выходными данными декодера 200 может быть декодированное видео, состоящее из последовательности изображений, или декодированное статическое изображение.
[00182] Входной битовый поток декодера 200 может быть битовым потоком, сгенерированным кодером 100. Узел 201 анализа может анализировать входной битовый поток и получать значение по меньшей мере одного синтаксического элемента из входного битового потока. Узел 201 анализа может преобразовывать двоичное представление синтаксического элемента в числовое значение и отправлять числовое значение в узел в декодере 200 для получения одного или более декодированных изображений. Узел 201 анализа может дополнительно анализировать входной битовый поток для получения одного или более синтаксических элементов для отображения декодированного изображения.
[00183] В процессе декодирования декодером 200 узел 201 анализа может отправлять значение по меньшей мере одного синтаксического элемента и одной или более переменных в узел в декодере 200. Одна или более переменных могут быть установлены или определены согласно значению по меньшей мере одного синтаксического элемента и сконфигурированы для получения одного или более декодированных изображений.
[00184] Узел 202 предсказания может определять блок предсказания текущего блока кодирования (например, CU). Узел 202 предсказания может содержать узел 203 MC и узел 204 внутреннего предсказания. В частности, когда указано, что для декодирования текущего блока кодирования используется режим промежуточного предсказания, узел 202 предсказания может передавать соответствующие параметры, отправленные узлом 201 анализа, в узел 203 MC для получения блока промежуточного предсказания. Когда указано, что режим внутреннего предсказания (включая режим MIP, указанный индексом режима MIP) используется для декодирования текущего блока кодирования, узел 202 предсказания может передавать соответствующие параметры из узла 201 анализа в узел 204 внутреннего предсказания для получения блока внутреннего предсказания.
[00185] Узел 205 обратного квантования может иметь такую же функцию, что и узел 110 обратного квантования в кодере 100. Узел 205 обратного квантования может масштабировать коэффициенты квантования (т.е. уровни) из узла 201 анализа для получения восстановленных коэффициентов.
[00189] Узел 206 обратного преобразования может иметь такую же функцию, что и узел 111 обратного преобразования в кодере 100. Узел 206 обратного преобразования может выполнять одно или более преобразований (т.е. обратные операции одного или более преобразований, выполняемых узлом 111 обратного преобразования в кодере 100) для получения восстановленного остатка.
[00187] Сумматор 207 может выполнять сложение своих входных данных (т.е. блока предсказания из узла 202 предсказания и восстановленного остатка из узла 206 обратного преобразования) для получения восстановленного блока текущего блока кодирования. Восстановленный блок может быть дополнительно отправлен на узел 202 предсказания в качестве эталона для другого блока, подлежащего кодированию, в режиме внутреннего предсказания.
[00188] После того как все CU в изображении или фрагменте изображения были восстановлены, узел 208 фильтрации может выполнять контурную фильтрацию в отношении восстановленного изображения или фрагмента изображения. Узел 208 фильтрации может содержать один или более фильтров, например, деблокирующий фильтр, фильтр SAO, ALF, фильтр LMCS и фильтр на основе нейронной сети и т.п. Альтернативно, когда узел 208 фильтрации определяет, что восстановленный блок не используется в качестве эталона для декодирования другого блока, узел 208 фильтрации может выполнять контурную фильтрацию в отношении одного или более целевых пикселей в восстановленном блоке. В данном случае выходными данными узла 208 фильтрации может быть декодированное изображение или фрагмент изображения. Декодированное изображение или фрагмент изображения могут быть кэшированы в узле 209 DPB. Узел 209 DPB может выводить декодированное изображение или фрагмент изображения согласно информации о синхронизации и управлении. Изображение, хранящееся в узле 209 DPB, может быть дополнительно использовано в качестве эталона для промежуточного предсказания или внутреннего предсказания, выполняемого узлом 202 предсказания.
[00189] Дополнительно декодер 200 может иметь второй процессор и второе запоминающее устройство, которое записывает компьютерную программу. Когда третий процессор считывает и запускает компьютерную программу, декодер 200 может считывать входной битовый поток и генерировать декодированное видео, соответствующее входному битовому потоку. Кроме того, декодер 200 может дополнительно представлять собой вычислительное устройство, имеющее один или более чипов. Узел, реализованный в виде интегральных микросхем на чипе, может иметь функции подключения и обмена данными, аналогичные соответствующим узлам на фиг. 8B.
[00190] Дополнительно следует отметить, что, когда варианты осуществления настоящего изобретения применяют к кодеру 100, текущий блок конкретно относится к текущему блоку, подлежащему кодированию в видеоизображении (или сокращенно блоку кодирования). Когда варианты осуществления настоящего изобретения применяют к декодеру 200, текущий блок конкретно относится к текущему блоку, подлежащему декодированию в видеоизображении (или сокращенно блоку кодирования).
[00191] В варианте осуществления настоящего изобретения на фиг. 9 представлена блок-схема способа декодирования согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 9, способ может включать следующие операции с S901 по S903.
[00192] В операции S901 идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока.
[00193] Следует отметить, что способ декодирования согласно вариантам осуществления настоящего изобретения может конкретно относиться к способу декодирования коэффициента (коэффициентов), который может выполняться декодером. На основе структуры декодера 200, как показано на фиг. 8B, способ декодирования в основном выполняют с помощью узла 201 анализа в декодере 200. Узел 201 анализа может получать значение (значения) связанной идентификационной информации (или синтаксического элемента (синтаксических элементов)) путем выполнения декодирования с использованием режима адаптивного двоичного арифметического кодирования на основе контекстной модели или обходного режима, тем самым определяя коэффициенты текущего блока.
[00194] Дополнительно следует отметить, что в целом кодирование в стандарте видео может включать кодирование и декодирование. Следовательно, кодирование видео может включать способ кодирования, выполняемый на стороне кодера, и способ декодирования, выполняемый на стороне декодера. В вариантах осуществления настоящего изобретения описан способ декодирования, выполняемый на стороне декодера.
[00195] В общем, например, для обычного видео способ декодирования коэффициента (коэффициентов) обычного видео является таким же, как существующий способ в уровне техники. Однако в некоторых случаях, таких как сценарий кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, в вариантах осуществления настоящего изобретения предоставляется способ, способный модифицировать режим получения местоположения последнего значимого коэффициента.
[00196] В вариантах осуществления настоящего изобретения идентификационная информация о компоненте текущего слайса представляет собой флаг уровня слайса. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса.
[00197] Понятно, что текущая последовательность может включать текущий слайс, а текущий слайс может включать текущий блок. В некоторых вариантах осуществления перед определением идентификационной информации о компоненте текущего слайса путем анализа битового потока способ может дополнительно включать следующие операции.
[00198] Определяют первую идентификационную информацию о синтаксическом элементе путем анализа битового потока.
[00199] Операцию, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, выполняют, когда первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности.
[00200] В вариантах осуществления настоящего изобретения способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о синтаксическом элементе является первым значением, определяют, что первая идентификационная информация о синтаксическом элементе указывает, что для текущей последовательности разрешено изменение местоположения на обратное последнего значимого коэффициента. Альтернативно, если значение первой идентификационной информации о синтаксическом элементе является вторым значением, определяют, что первая идентификационная информация о синтаксическом элементе указывает, что для текущей последовательности запрещено изменение местоположения на обратное последнего значимого коэффициента.
[00201] Следует отметить, что первое значение отличается от второго значения. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00202] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено в значение «ложь», а второе значение может быть установлено в значение «истина». Иллюстративно для флага, как правило, первое значение может быть значением 1, а второе значение может быть значением 0, что, однако, никоим образом не ограничено.
[00203] Дополнительно следует отметить, что первая идентификационная информация о синтаксическом элементе может быть флагом уровня последовательности, обозначаемым как sps_reverse_last_sig_coeff_flag, для указания того, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Таким образом, при получении посредством декодирования того, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, идентификационная информация о компоненте на уровне слайса может быть дополнительно декодирована, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[00204] Дополнительно перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в возможном варианте осуществления способ может дополнительно включать следующие операции.
[00205] Определяют вторую идентификационную информацию о синтаксическом элементе путем анализа битового потока.
[00206] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.
[00207] Перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в другом возможном варианте осуществления способ может дополнительно включать следующие операции.
[00208] Определяют третью идентификационную информацию о синтаксическом элементе путем анализа битового потока.
[00209] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.
[00210] Перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в еще одном возможном варианте осуществления способ может дополнительно включать следующие операции.
[00211] Определяют вторую идентификационную информацию о синтаксическом элементе путем анализа битового потока.
[00212] Третью идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.
[00213] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.
[00214] Следует отметить, что как вторая идентификационная информация о синтаксическом элементе, так и третья идентификационная информация о синтаксическом элементе являются флагами уровня последовательности. Вторая идентификационная информация о синтаксическом элементе обозначена как sps_extension_flag для указания, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе обозначена как sps_range_extension_flag для указания, применено ли расширение диапазона к текущей последовательности.
[00215] То есть перед получением первой идентификационной информации о синтаксическом элементе (sps_reverse_last_sig_coeff_flag) посредством декодирования могут быть выполнены следующие операции. sps_extension_flag получают путем анализа битового потока; и sps_reverse_last_sig_coeff_flag получают посредством декодирования, если sps_extension_flag указывает, что версия расширения стандарта применена к текущей последовательности. Альтернативно sps_range_extension_flag получают путем анализа битового потока; и sps_reverse_last_sig_coeff_flag получают посредством декодирования, если sps_range_extension_flag указывает, что расширение диапазона применено к текущей последовательности. Альтернативно sps_extension_flag получают путем анализа битового потока; sps_range_extension_flag получают путем анализа битового потока, если sps_extension_flag указывает, что версия расширения стандарта применена к текущей последовательности; и sps_reverse_last_sig_coeff_flag получают посредством декодирования, если sps_range_extension_flag указывает, что расширение диапазона применено к текущей последовательности. Однако они никоим образом не ограничены в вариантах осуществления настоящего изобретения.
[00216] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о синтаксическом элементе является первым значением, определяют, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности. Альтернативно, если значение второй идентификационной информации о синтаксическом элементе является вторым значением, определяют, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта не применена к текущей последовательности.
[00217] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение третьей идентификационной информации о синтаксическом элементе является первым значением, определяют, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности. Альтернативно, если значение третьей идентификационной информации о синтаксическом элементе является вторым значением, определяют, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона не применено к текущей последовательности.
[00218] Следует отметить, что первое значение отличается от второго значения. Первое значение и второе значение могут быть в параметрической форме или могут быть в числовой форме. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.
[00219] Дополнительно следует отметить, что вторая идентификационная информация о синтаксическом элементе обозначена как sps_extension_flag. Третья идентификационная информация о синтаксическом элементе обозначена как sps_range_extension_flag. Соответственно, на уровне последовательности, если sps_extension_flag имеет значение 1, т.е. версия расширения стандарта применена к текущей последовательности, то необходимо декодировать sps_range_extension_flag. Если sps_range_extension_flag имеет значение 1, т.е. расширение диапазона применено к текущей последовательности, то необходимо декодировать sps_reverse_last_sig_coeff_flag. Если sps_reverse_last_sig_coeff_flag имеет значение 1, т.е. изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, идентификационную информацию о компоненте на уровне слайса необходимо дополнительно декодировать, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[00220] В некоторых вариантах осуществления расширение диапазона применено к текущей последовательности, что может включать то, что текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.
[00221] То есть, по сравнению с обычным видео, видео согласно вариантам осуществления настоящего изобретения имеет характеристики высокой битовой глубины, высокого качества, высокой битовой скорости, высокой кадровой частоты, сжатия без потерь и/или т.п.
[00222] Дополнительно первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе и т.п. могут быть флагами уровня последовательности или даже флагами более высокого уровня, такими как информация об удобстве использования видео (VUI), информация для дополнительной оптимизации (SEI) и т.п.
[00223] В конкретном примере для текущей последовательности видео определяют, применена ли версия расширения стандарта к текущей последовательности, с использованием второй идентификационной информации о синтаксическом элементе (sps_extension_flag). Другими словами, определяют, может ли текущая последовательность быть открыта в версии расширения стандарта, такой как версия расширения в VVC, сформулированная для кодирования с высокой битовой глубиной и высокой битовой скоростью и т.п. Когда sps_extension_flag имеет значение 1, необходимо декодировать первую идентификационную информацию о синтаксическом элементе (sps_reverse_last_sig_coeff_flag). В противном случае нет необходимости декодировать первую идентификационную информацию о синтаксическом элементе (sps_reverse_last_sig_coeff_flag).
[00224] В другом конкретном примере для текущей последовательности видео, когда sps_extension_flag имеет значение 1, необходимо дополнительно декодировать третью идентификационную информацию о синтаксическом элементе (sps_range_extension_flag) для определения того, применено ли расширение диапазона к текущей последовательности, например, флаг (флаги) с высокой битовой глубиной, высокой битовой скоростью, высокой кадровой частотой, сжатием без потерь и/или т.п. Например, ниже в данном документе описаны соответственно четыре случая.
[00225] В возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой глубиной, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой глубиной указывает, что текущая последовательность имеет высокую битовую глубину, определяют, что расширение диапазона применено к текущей последовательности.
[00226] В другой возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой скоростью, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой скоростью указывает, что текущая последовательность имеет высокую битовую скорость, определяют, что расширение диапазона применено к текущей последовательности.
[00227] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высоким качеством, способ может дополнительно включать следующую операцию. Если идентификационная информация с высоким качеством указывает, что текущая последовательность имеет высокое качество, определяют, что расширение диапазона применено к текущей последовательности.
[00228] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию со сжатием без потерь, способ может дополнительно включать следующую операцию. Если идентификационная информация со сжатием без потерь указывает, что текущая последовательность имеет сжатие без потерь (т.е. сжата без потерь), определяют, что расширение диапазона применено к текущей последовательности.
[00229] Иллюстративно, если взять в качестве примера уровень последовательности, третья идентификационная информация о синтаксическом элементе может дополнительно представлять собой идентификационную информацию с высокой битовой глубиной (обозначенную как sps_high_bit_depth_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может представлять собой идентификационную информацию с высокой битовой скоростью (обозначенную как sps_high_bit_rate_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой скоростью; или альтернативно может представлять собой другую идентификационную информацию для указания высокой битовой глубины, высокой битовой скорости, высокого качества или сжатия без потерь, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00230] Дополнительно в некоторых вариантах осуществления в операции S901 операция, при которой информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока, может включать следующие операции.
[00231] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента получают путем анализа битового потока.
[00232] Горизонтальную координату последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе горизонтальной координаты последнего значимого коэффициента.
[00233] Вертикальную координату последнего значимого коэффициента определяют согласно информации о префиксе вертикальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.
[00234] Информация о координатах последнего значимого коэффициента текущего блока может быть определена согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00235] Следует отметить, что информация о префиксе горизонтальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_x_prefix, т.е. указывая префикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в заданном порядке сканирования в текущем блоке. Информация о префиксе вертикальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_y_prefix, т.е. указывая префикс вертикальной координаты (или положения строки) последнего значимого коэффициента в заданном порядке сканирования в текущем блоке. Информация о суффиксе горизонтальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_x_suffix, т.е. указывая суффикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в заданном порядке сканирования в текущем блоке. Информация о суффиксе вертикальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_y_suffix, т.е. указывая суффикс вертикальной координаты (или положения строки) последнего значимого коэффициента в заданном порядке сканирования в текущем блоке. То есть информация о координатах последнего значимого коэффициента может быть определена на основе last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix.
[00236] Дополнительно следует понимать, что last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут определять абсциссу (т.е. горизонтальную координату) последнего значимого коэффициента. last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут определять ординату (т.е. вертикальную координату) последнего значимого коэффициента, благодаря чему получают информацию о координатах последнего значимого коэффициента.
[00237] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть обозначена как reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00238] То есть reverse_last_sig_coeff_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00239] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне последовательности может быть обозначена как sps_reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может быть обозначена как sh_reverse_last_sig_coeff_flag.
[00240] Дополнительно следует отметить, что идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может дополнительно упоминаться как идентификационная информация о компоненте текущего слайса. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.
[00241] Когда значение идентификационной информации о компоненте является первым значением, определяют, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.
[00242] Альтернативно, когда значение идентификационной информации о компоненте является вторым значением, определяют, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.
[00243] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.
[00244] В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если посредством декодирования получают, что значение идентификационной информации о компоненте равно 1, может быть определено, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса. Если посредством декодирования получают, что значение идентификационной информации о компоненте равно 0, может быть определено, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.
[00245] В операции S902 в ответ, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, получают местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента.
[00246] В операции S903 коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00247] Следует отметить, что в вариантах осуществления настоящего изобретения, когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента также применено к текущему блоку, соответствующему компоненту текущего слайса. В этом случае информация о координатах последнего значимого коэффициента текущего блока может быть определена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока.
[00248] В некоторых вариантах осуществления операция, при которой получают местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента, может включать следующие операции.
[00249] Определяют ширину и высоту текущего блока.
[00250] Горизонтальную координату последнего значимого коэффициента получают путем вычитания расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из ширины текущего блока.
[00251] Вертикальную координату последнего значимого коэффициента получают путем вычитания расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из высоты текущего блока.
[00252] Местоположение последнего значимого коэффициента текущего блока определяют согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00253] Следует отметить, что информация о координатах последнего значимого коэффициента обычно является расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока. Для обычного видео большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0. Однако для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью много значимых коэффициентов могут также появляться в нижнем правом углу, так что информация о координатах последнего значимого коэффициента имеет большое значение. В этом случае для экономии потребления ресурсов преобразование координаты (в частности, изменение координаты на обратную, где после изменения координаты на обратную информацией о координатах последнего значимого коэффициента является расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока) необходимо выполнить во время кодирования коэффициентов. Соответственно, при декодировании коэффициента также необходимо выполнить изменение координаты на обратную. После повторного выполнения изменения координаты на обратную информация о координатах последнего значимого коэффициента может быть восстановлена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока с определением при этом местоположения последнего значимого коэффициента для кодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента в текущем блоке, в заданном порядке сканирования.
[00254] Дополнительно следует отметить, что текущий блок, соответствующий компоненту текущего слайса, может представлять собой блок, в отношении которого не было выполнено преобразование нулевого вывода, или блок, в отношении которого было выполнено преобразование нулевого вывода. Если взять блок, в отношении которого было выполнено преобразование нулевого вывода, в качестве примера, в этом случае ширина текущего блока может представлять собой 1 <<log2ZoTbWidth, и высота текущего блока может представлять собой 1<<log2ZoTbHeight. Затем, в случае когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса,
[00255] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;
[0056] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00257] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) в правой части формулы может обозначать информацию о координатах последнего значимого коэффициента, полученную посредством декодирования. (LastSignificantCoeffX, LastSignificantCoeffY) в левой части формулы может обозначать местоположение последнего значимого коэффициента (которое может также рассматриваться как целевая информация о координатах последнего значимого коэффициента).
[00258] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00259] Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, информацию о координатах последнего значимого коэффициента текущего блока определяют как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.
[00260] Местоположение последнего значимого коэффициента текущего блока определяют согласно расстоянию по горизонтали и расстоянию по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.
[00261] Следует отметить, что если идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это также означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса. В этом случае информация о координатах последнего значимого коэффициента, полученная посредством декодирования, может рассматриваться как целевая информация о координатах последнего значимого коэффициента. В вариантах осуществления настоящего изобретения целевая информация о координатах последнего значимого коэффициента представляет собой расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.
[00262] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00263] Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока определяют непосредственно согласно информации о координатах последнего значимого коэффициента.
[00264] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00265] Следует отметить, что заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00266] Дополнительно следует отметить, что после получения идентификационной информации о компоненте текущего слайса, если идентификационная информация о компоненте текущего слайса имеет значение 1, т.е. изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, то для текущего блока, соответствующего компоненту текущего слайса, после получения информации о координатах последнего значимого коэффициента посредством декодирования, местоположение последнего значимого коэффициента текущего блока определяют путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Затем коэффициенты текущего блока получают путем декодирования всех коэффициентов выше местоположения последнего значимого коэффициента в заданном порядке сканирования. Если идентификационная информация о компоненте текущего слайса имеет значение 0, т.е. изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, то для текущего блока, соответствующего компоненту текущего слайса, после получения информации о координатах последнего значимого коэффициента посредством декодирования, местоположение последнего значимого коэффициента текущего блока может быть определено непосредственно согласно информации о координатах последнего значимого коэффициента. Затем коэффициенты текущего блока получают путем декодирования всех коэффициентов выше местоположения последнего значимого коэффициента в заданном порядке сканирования.
[00267] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, во время кодирования коэффициентов, в вариантах осуществления настоящего изобретения предоставляется способ модифицирования режима получения местоположения последнего значимого коэффициента. То есть обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Обычно last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут быть сконфигурированы для кодирования абсциссы местоположения последнего значимого коэффициента, т.е. расстояния по горизонтали относительно верхнего левого угла текущего блока; и last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть сконфигурированы для кодирования ординаты местоположения последнего значимого коэффициента, т.е. расстояния по вертикали относительно верхнего левого угла текущего блока, как показано на фиг. 10A. При кодировании и декодировании видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатии без потерь местоположение последнего значимого коэффициента обычно находится близко к нижнему правому углу области, включающей все возможные ненулевые коэффициенты в текущем блоке. В этом случае last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут быть сконфигурированы для кодирования расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом области, которая включает все возможные ненулевые коэффициенты в текущем блоке, и last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть сконфигурированы для кодирования расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом области, которая включает все возможные ненулевые коэффициенты в текущем блоке, как показано на фиг. 10B. Например, если область, включающая все возможные ненулевые коэффициенты в текущем блоке, представляет собой прямоугольную область, определенную (0, 0) и ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1), last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут быть сконфигурированы для кодирования расстояния по горизонтали между местоположением последнего значимого коэффициента и ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1) текущего блока, и last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть сконфигурированы для кодирования расстояния по вертикали между местоположением последнего значимого коэффициента и ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1) текущего блока.
[00268] Модификация семантики заключается в следующем.
[00269] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в заданном порядке сканирования в текущем блоке может быть получена следующим образом.
[00270] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:
[00271] LastSignificantCoeffX= last_sig_coeff_x_prefix.
[00272] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:
[00273] LastSignificantCoeffX= (1<<((last_sig_coeff_x_prefix>>1)-1)) * (2+(last_sig_coeff_x_prefix&1)) + last_sig_coeff_x_suffix.
[00274] Если reverse_last_sig_coeff_flag равен 1, применимо следующее:
[00275] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.
[00276] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке может быть получена следующим образом.
[00277] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:
[00278] LastSignificantCoeffY= last_sig_coeff_y_prefix.
[00279] В противном случае (last_sig_coeff_y_suffix присутствует):
[00280] LastSignificantCoeffY= (1<<((last_sig_coeff_y_prefix>>1)-1)) * (2+(last_sig_coeff_y_prefix&1)) + last_sig_coeff_y_suffix.
[00281] Если reverse_last_sig_coeff_flag равен 1, применимо следующее:
[00282] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00283] В данном документе reverse_last_sig_coeff_flag представляет собой флаг изменения местоположения на обратное последнего значимого коэффициента, указывающий, нужно ли местоположение последнего значимого коэффициента изменить на обратное. Если reverse_last_sig_coeff_flag имеет значение 1, это указывает, что местоположение последнего значимого коэффициента нужно изменить на обратное. В противном случае флаг указывает, что местоположение последнего значимого коэффициента не должно быть изменено на обратное.
[00284] Дополнительно следует отметить, что reverse_last_sig_coeff_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или флаг другого уровня блока. Иллюстративно reverse_last_sig_coeff_flag уровня последовательности может обозначаться как sps_reverse_last_sig_coeff_flag, и reverse_last_sig_coeff_flag уровня слайса может обозначаться как sh_reverse_last_sig_coeff_flag.
[00285] Кроме того, reverse_last_sig_coeff_flag может зависеть от некоторых других флагов, таких как идентификационная информация с высокой битовой глубиной, идентификационная информация с высокой битовой скоростью или вторая идентификационная информация о синтаксическом элементе (набор параметров последовательности, SPS, флаг расширения sps_extension_flag) или т.п. Флаг расширения SPS может быть открыт в версии расширения стандарта, такой как версия расширения в VVC, сформулированная для кодирования с высокой битовой глубиной и кодирования с высокой битовой скоростью. То есть reverse_last_sig_coeff_flag необходимо декодировать, когда идентификационная информация с высокой битовой глубиной или идентификационная информация с высокой битовой скоростью имеет значение 1. В противном случае не нужно декодировать reverse_last_sig_coeff_flag.
[00286] В конкретном примере предположительно существует идентификационная информация уровня последовательности sps_extension_flag, sps_range_extension_flag и sps_reverse_last_sig_coeff_flag. На уровне последовательности, если sps_extension_flag имеет значение 1, sps_range_extension_flag необходимо декодировать. Если sps_range_extension_flag имеет значение 1, sps_reverse_last_sig_coeff_flag необходимо декодировать. В данном документе sps_reverse_last_sig_coeff_flag представляет собой флаг изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности. Если sps_reverse_last_sig_coeff_flag имеет значение 1, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку в текущей последовательности. В противном случае (т.е, если sps_reverse_last_sig_coeff_flag имеет значение 0) определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку в текущей последовательности. reverse_last_sig_coeff_flag в существующей таблице синтаксиса модифицируется как sps_reverse_last_sig_coeff_flag.
[00287] Понятно, что sps_extension_flag может указывать, применена ли версия расширения стандарта к текущей последовательности. sps_range_extension_flag может указывать, применено ли расширение диапазона (такое как высокая битовая глубина, высокая битовая скорость и т.д.) к текущей последовательности.
[00288] В реализации таблица синтаксических элементов модифицируется следующим образом (полезная нагрузка необработанной последовательности байтов набора параметров последовательности, RBSP, синтаксис), как показано в таблице 3.
Таблица 3
[00289] В другой реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис расширения диапазона набора параметров последовательности), как показано в таблице 4.
Таблица 4
[00290] На основе синтаксических элементов в таблице 3 и таблице 4, когда значение sps_extension_flag равно 1, это означает, что синтаксические элементы sps_range_extension_flag и sps_extension_7bits присутствуют в структуре синтаксиса SPS RBSP; и когда значение sps_extension_flag равно 0, это означает, что эти синтаксические элементы не присутствуют в структуре синтаксиса SPS RBSP.
[00291] В данном документе, если значение sps_range_extension_flag равно 1, это означает, что структура синтаксиса sps_range_extension() присутствует в структуре синтаксиса SPS RBSP. Если sps_range_extension_flag не присутствует, определяют, что значение sps_range_extension_flag равно 0.
[00292] Если значение sps_reverse_last_sig_coeff_flag равно 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку в текущей последовательности. В противном случае (т.е., если значение sps_reverse_last_sig_coeff_flag равно 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку в текущей последовательности.
[00293] В другом конкретном примере предположительно существует идентификационная информация уровня последовательности sps_extension_flag, sps_range_extension_flag и sps_reverse_last_sig_coeff_enabled_flag. На уровне последовательности, если sps_extension_flag имеет значение 1, sps_range_extension_flag необходимо декодировать. Если sps_range_extension_flag имеет значение 1, sps_reverse_last_sig_coeff_enabled_flag необходимо декодировать. В данном документе sps_reverse_last_sig_coeff_enabled_flag представляет собой разрешающий флаг (технологии) изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности. Если sps_reverse_last_sig_coeff_enabled_flag имеет значение 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для блока в текущей последовательности. В противном случае (т.е., если sps_reverse_last_sig_coeff_enabled_flag имеет значение 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для блока в текущей последовательности. Если sps_reverse_last_sig_coeff_enabled_flag не присутствует, определяют, что sps_reverse_last_sig_coeff_enabled_flag имеет значение 0. На уровне слайса, если sps_reverse_last_sig_coeff_enabled_flag имеет значение 1, sh_reverse_last_sig_coeff_flag необходимо декодировать. В данном документе sh_reverse_last_sig_coeff_flag представляет собой флаг изменения местоположения на обратное последнего значимого коэффициента для текущего слайса. Если sh_reverse_last_sig_coeff_flag имеет значение 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку в текущем слайсе. В противном случае (т.е., если sh_reverse_last_sig_coeff_flag имеет значение 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку в текущем слайсе. Если sh_reverse_last_sig_coeff_flag не присутствует, определяют, что sh_reverse_last_sig_coeff_flag имеет значение 0. reverse_last_sig_coeff_flag в существующей таблице синтаксиса модифицируется как sh_reverse_last_sig_coeff_flag.
[00294] Следует отметить, что на уровне последовательности флаг изменения местоположения на обратное последнего значимого коэффициента может означать «разрешено/обеспечено ли использование (чего-то)». На уровне слайса флаг изменения местоположения на обратное последнего значимого коэффициента может означать «определение, применяется/используется ли...».
[00295] В еще одной реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 5.
Таблица 5
[00269] На основе синтаксического элемента в таблице 5, если значение sps_reverse_last_sig_coeff_enabled_flag равно 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для блока в текущей последовательности. В противном случае (т.е., если значение sps_reverse_last_sig_coeff_enabled_flag равно 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для блока в текущей последовательности.
[00297] Если значение sh_reverse_last_sig_coeff_flag равно 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку в текущем слайсе. В противном случае (т.е., если значение sh_reverse_last_sig_coeff_flag равно 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку в текущем слайсе. Если sh_reverse_last_sig_coeff_flag не присутствует, определяют, что значение sh_reverse_last_sig_coeff_flag равно 0.
[00298] Понятно, что для каждого из компонентов цвета текущего слайса идентификационная информация о компоненте (т.е. sh_reverse_last_sig_coeff_flag) текущего слайса может обеспечить возможность отдельного управления тем, применять ли изменение местоположения на обратное последнего значимого коэффициента к компоненту цвета.
[00299] В вариантах осуществления настоящего изобретения компонент может содержать первый компонент цвета, второй компонент цвета и третий компонент цвета.
[00300] В конкретном примере первый компонент цвета представляет собой компонент яркости. Второй компонент цвета представляет собой первый компонент цветности. Третий компонент цвета представляет собой второй компонент цветности. Компонент яркости может быть обозначен как Y. Первый компонент цветности может быть обозначен как U(Cb). Второй компонент цветности может быть обозначен как V(Cr).
[00301] В другом конкретном примере первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент. Красный компонент может быть обозначен как R. Зеленый компонент может быть обозначен как G. Синий компонент может быть обозначен как B.
[00302] Дополнительно в некоторых вариантах осуществления, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, способ может дополнительно включать следующие операции.
[00303] Определяют, используют ли совместно первый компонент цвета, второй компонент цвета и третий компонент цвета текущего слайса идентификационную информацию о компоненте на основе отношения между свойствами первого компонента цвета, второго компонента цвета и третьего компонента цвета.
[00304] Количество частей идентификационной информации о компоненте текущего слайса определяют согласно результату определения. В данном документе количество частей идентификационной информации о компоненте равно 1, 2 или 3.
[00305] В частности, операция, при которой определяют количество частей идентификационной информации о компоненте, может включать следующую операцию.
[00306] Количество частей идентификационной информации о компоненте текущего слайса определяют равным 1, если одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса.
[00307] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 2, если одна часть идентификационной информации о компоненте совместно используется двумя из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00308] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 3, если каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.
[00309] В вариантах осуществления настоящего изобретения, с одной стороны, свойства соответствующих компонентов цвета могут отличаться. Например, компоненты цвета представляют собой R, G, B видео формата RGB или Y, U, V (Y, Cb, Cr) видео формата YUV, или компоненты цвета видео другого возможного формата. Формат YUV может быть форматом, таким как YUV444, YUV422, YUV420. Человеческий глаз более чувствителен к изменению яркости, чем к изменению цветности. Следовательно, иногда понижающая дискретизация может выполняться в отношении цветности с использованием такого формата, как YUV422, YUV420 и/или т.п., и в целом шаг квантования для цветности может быть больше, чем для яркости, что снижает битовую скорость.
[00310] С другой стороны, благодаря некоторым методам межкомпонентного кодирования эффективность кодирования повышается за счет корреляции между компонентами. Например, с помощью межкомпонентной линейной модели (CCLM) при межкомпонентном предсказании компонент цветности предсказывается с использованием восстановленного компонента яркости и линейной модели. С помощью CCLM точность предсказания компонента цветности может быть улучшена, что тем самым уменьшает остаточный компонент цветности. Кроме того, в некоторых других методах информация в отношении компонента яркости и одного компонента цветности дополнительно используется для предсказания другого компонента, что тем самым дополнительно улучшает эффективность сжатия. В контурном фильтре с межкомпонентным адаптивным контурным фильтром (CCALF) компонент цветности дополняется некоторой деталью компонента яркости для повышения эффективности сжатия. Деталь компонента цветности может быть дополнена компонентом яркости, что обеспечивает возможность большего искажения при остаточном кодировании.
[00311] Соответственно, поскольку свойства соответствующих компонентов цвета отличаются, и используются некоторые межкомпонентные методы, соответствующие компоненты цвета не всегда могут быть совместимыми при остаточном распределении. Например, при кодировании и декодировании видео с очень высокой битовой скоростью и очень высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть одинаковыми при распределении, например, все они расположены близко к нижнему правому углу области, включающей возможные значимые коэффициенты (т.е. ненулевые коэффициенты). Однако в некоторых случаях кодирования и декодирования видео с не особенно высокой битовой скоростью и не особенно высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть разными при распределении. Например, все значимые коэффициенты компонента Y находятся близко к нижнему правому углу области, включающей возможные значимые коэффициенты, а значимые коэффициенты компонента U/V распределяются только в верхнем левом углу. Альтернативно значимые коэффициенты компонента U также находятся близко к нижнему правому углу, а значимые коэффициенты компонента V распределяются только в верхнем левом углу.
[00312] Следовательно, в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация/флаг компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации компонента могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация/флаг компонента может управлять применением к компоненту яркости, а другая идентификация/флаг компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.
[00313] В возможной реализации, когда количество частей идентификационной информации о компоненте равно 1, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение первой идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00314] Соответственно, способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение первой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к любому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00315] В другой возможной реализации, когда количество частей идентификационной информации о компоненте равно 2, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00316] Соответственно, способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение второй идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ни к одному из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00317] Если значение третьей идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета (т.е., оставшемуся компоненту цвета) из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета. Альтернативно, если значение третьей идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета.
[00318] В еще одной возможной реализации, когда количество частей идентификационной информации о компоненте равно 3, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00319] Соответственно, способ может дополнительно включать следующую операцию. Если значение четвертой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса. Альтернативно, если значение четвертой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к первому компоненту цвета текущего слайса.
[00320] Если значение пятой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса. Альтернативно, если значение пятой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ко второму компоненту цвета текущего слайса.
[00321] Если значение шестой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса. Альтернативно, если значение шестой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к третьему компоненту цвета текущего слайса.
[00322] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.
[00323] Дополнительно следует отметить, что идентификационная информация о компоненте в данном случае может представлять собой флаг уровня слайса и может быть обозначена как sh_reverse_last_sig_coeff_flag[cIdx]. В данном документе cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут включать sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1] и sh_reverse_last_sig_coeff_flag[2]. Четвертая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[0] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему первому компоненту цвета текущего слайса. Пятая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[1] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему второму компоненту цвета текущего слайса. Шестая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[2] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.
[00324] В конкретном примере отдельная часть идентификационной информации о компоненте устанавливается для каждого из трех компонентов Y, U и V цвета для управления. Предположительно существует идентификационная информация уровня последовательности sps_extension_flag, sps_range_extension_flag и sps_reverse_last_sig_coeff_enabled_flag. На уровне последовательности sps_extension_flag может быть получена посредством декодирования. sps_range_extension_flag необходимо получить посредством декодирования, если sps_extension_flag имеет значение 1. sps_reverse_last_sig_coeff_enabled_flag необходимо получить посредством декодирования, если sps_range_extension_flag имеет значение 1. В данном документе sps_reverse_last_sig_coeff_enabled_flag представляет собой разрешающий флаг технологии изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности. Если sps_reverse_last_sig_coeff_enabled_flag имеет значение 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для блока в текущей последовательности. В противном случае (т.е., если sps_reverse_last_sig_coeff_enabled_flag имеет значение 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для блока в текущей последовательности. Если sps_reverse_last_sig_coeff_enabled_flag не присутствует, sps_reverse_last_sig_coeff_enabled_flag имеет значение 0. На уровне слайса идентификационную информацию о компоненте (sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1] и sh_reverse_last_sig_coeff_flag[2]) необходимо дополнительно получить посредством декодирования, если sps_reverse_last_sig_coeff_enabled_flag имеет значение 1. В данном документе sh_reverse_last_sig_coeff_flag[cIdx] (где cIdx может иметь значение 0, 1 или 2) представляет флаг изменения местоположения на обратное последнего значимого коэффициента для cIdx-го компонента текущего слайса. Если sh_reverse_last_sig_coeff_flag[cIdx] имеет значение 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку cIdx-го компонента текущего слайса. В противном случае (т.е., если sh_reverse_last_sig_coeff_flag[cIdx] имеет значение 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку cIdx-го компонента текущего слайса. Если sh_reverse_last_sig_coeff_flag[cIdx] не присутствует, sh_reverse_last_sig_coeff_flag[cIdx] имеет значение 0.
[00325] В возможной реализации для формата YUV 0-й компонент соответствует компоненту Y, 1-й компонент соответствует компоненту U(Cb), и 2-й компонент соответствует компоненту V(Cr).
[00326] В другой возможной реализации для формата RGB 0-й компонент соответствует компоненту R, 1-й компонент соответствует компоненту G, и 2-й компонент соответствует компоненту B.
[00327] Иллюстративно, если взять формат YUV в качестве примера, если sh_reverse_last_sig_coeff_flag[0] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса (такому как компонент Y). Если sh_reverse_last_sig_coeff_flag[1] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса (такому как компонент U). Если sh_reverse_last_sig_coeff_flag[2] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса (такому как компонент V).
[00328] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 6.
Таблица 6
[00329] В другой реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис расширения диапазона набора параметров последовательности), как показано в таблице 7.
Таблица 7
[00330] В еще одной реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 8.
Таблица 8
[00331] В еще одной реализации может дополнительно существовать другая форма модификации для синтаксиса заголовка слайса. Таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 9.
Таблица 9
[00332] В данном случае может быть предусмотрено, что startComp равен 0, и numComps равен 3.
[00333] Модификация семантики заключается в следующем.
[00334] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в заданном порядке сканирования в текущем блоке может быть получена следующим образом.
[00335] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:
[00336] LastSignificantCoeffX= last_sig_coeff_x_prefix.
[00337] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:
[00338] LastSignificantCoeffX= (1<<((last_sig_coeff_x_prefix>>1)-1)) * (2+(last_sig_coeff_x_prefix&1)) + last_sig_coeff_x_suffix.
[00339] Если sh_reverse_last_sig_coeff_flag[cIdx] равно 1, применимо следующее:
[00340] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.
[00341] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке может быть получена следующим образом.
[00342] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:
[00343] LastSignificantCoeffY= last_sig_coeff_y_prefix.
[00344] В противном случае (last_sig_coeff_y_suffix присутствует) применимо следующее:
[00345] LastSignificantCoeffY= (1<<((last_sig_coeff_y_prefix>>1)-1)) * (2+(last_sig_coeff_y_prefix&1)) + last_sig_coeff_y_suffix.
[00346] Если sh_reverse_last_sig_coeff_flag[cIdx] равно 1, применимо следующее:
[00347] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00348] В данном случае sh_reverse_last_sig_coeff_flag[cIdx] представляет флаг изменения местоположения на обратное последнего значимого коэффициента для cIdx-го компонента текущего слайса. cIdx может иметь значение 0, 1 или 2.
[00349] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, все возможные коэффициенты, подлежащие кодированию, необходимо кодировать по умолчанию. То есть местоположение последнего значимого коэффициента больше не используется. Вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируют в заданном порядке сканирования. Следовательно, в вариантах осуществления настоящего изобретения может также вводиться идентификационная информация о разрешаемом последнем коэффициенте для определения, применено ли местоположение последнего коэффициента к текущему блоку.
[00350] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.
[00351] Идентификационную информацию о разрешаемом последнем коэффициенте текущего блока определяют путем анализа битового потока.
[00352] Когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования.
[00353] Следует отметить, что идентификационная информация о разрешаемом последнем коэффициенте может быть обозначена как default_last_coeff_enabled_flag. В вариантах осуществления настоящего изобретения идентификационная информация о разрешаемом последнем коэффициенте может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00354] То есть default_last_coeff_enabled_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00355] В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.
[00356] Если значение идентификационной информации о разрешаемом последнем коэффициенте является первым значением, определяют, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку.
[00357] Альтернативно, если значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением, определяют, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку.
[00358] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими. Первое значение и второе значение могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.
[00359] Соответственно, в качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если default_last_coeff_enabled_flag имеет значение 1, можно определить, что default_last_coeff_enabled_flag указывает, что местоположение последнего коэффициента применено к текущему блоку. Альтернативно, если default_last_coeff_enabled_flag имеет значение 0, можно определить, что default_last_coeff_enabled_flag указывает, что местоположение последнего коэффициента не применено к текущему блоку.
[00360] Когда местоположение последнего коэффициента применено к текущему блоку, коэффициенты текущего блока могут быть определены путем декодирования всех коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования.
[00361] Дополнительно, когда местоположение последнего коэффициента не применено к текущему блоку, т.е. значение идентификационной информации о разрешаемом последнем коэффициенте равно 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00362] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента получают путем анализа битового потока.
[00363] Местоположение последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.
[00364] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00365] Следует отметить, что, если местоположение последнего коэффициента не применено к текущему блоку, местоположение последнего значимого коэффициента необходимо получить посредством декодирования. В частности, last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix получают путем анализа битового потока. Затем местоположение последнего значимого коэффициента может быть определено согласно last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix. В противном случае, если местоположение последнего коэффициента применено к текущему блоку, нет больше необходимости определять местоположение последнего значимого коэффициента, в этом случае нет больше необходимости получать last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix посредством декодирования.
[00366] Дополнительно следует отметить, если местоположение последнего коэффициента применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего коэффициента, могут быть декодированы в заданном порядке сканирования. Если местоположение последнего коэффициента не применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, могут быть декодированы в заданном порядке сканирования. В данном случае заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00367] Дополнительно в некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00368] Следует отметить, что в вариантах осуществления настоящего изобретения местоположение последнего коэффициента не представляет местоположение последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.
[00369] В конкретном примере способ может дополнительно включать следующую операцию. Устанавливают местоположение последнего значимого коэффициента как местоположение последнего коэффициента.
[00370] То есть в вариантах осуществления настоящего изобретения все еще может использоваться местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента необходимо поместить в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00371] Дополнительно местоположение последнего коэффициента может быть обозначено как (LastCoeffX, LastCoeffY), т.е. последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00372] Определяют ширину и высоту блока преобразования, полученные путем выполнения заданной операции в отношении текущего блока.
[00373] Вычисляют информацию о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования.
[00374] Определяют местоположение последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.
[00375] В данном случае заданная операция включает по меньшей мере операцию нулевого вывода.
[00376] Следует отметить, что (LastCoeffX, LastCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. (LastCoeffX, LastCoeffY) может быть получена следующим образом.
[00377] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00378] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00379] Соответственно, местоположение последнего коэффициента может быть определено согласно (LastCoeffX, LastCoeffY), если default_last_coeff_enabled_flag имеет значение 1.
[00380] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.
[00381] Когда местоположение последнего значимого коэффициента установлено как местоположение последнего коэффициента, местоположение последнего значимого коэффициента определяют согласно информации о координатах нижнего правого угла блока преобразования.
[00382] То есть местоположение последнего значимого коэффициента может быть обозначено как (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) может быть получено следующим образом.
[00383] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.
[00384] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.
[00385] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. Местоположение последнего значимого коэффициента может быть определено согласно (LastSignificantCoeffX, LastSignificantCoeffY), если default_last_coeff_enabled_flag имеет значение 1.
[00386] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию при кодировании коэффициентов. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию, то есть местоположение последнего значимого коэффициента больше не используется, вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируются в заданном порядке сканирования. Другими словами, местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. Это местоположение обычно относится к нижнему правому углу матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. В данном случае может использоваться местоположение последнего коэффициента, подлежащего кодированию, вместо местоположения последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента, подлежащего кодированию, может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.
[00387] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00388] Кроме того, причиной того, почему речь идет обо всех возможных ненулевых коэффициентах в заданном порядке сканирования в текущем блоке, является то, что некоторые коэффициенты в блоке могут приниматься за 0 по умолчанию с использованием некоторых методов (таких как нулевой вывод, упомянутый в данном документе выше), кроме последнего значимого коэффициента.
[00389] Модификация семантики является следующей в таблице 10.
Таблица 10
[00390] В вариантах осуществления настоящего изобретения условие может быть необходимо соблюдать перед декодированием информации, требуемой для последнего значимого коэффициента. То есть синтаксические элементы, такие как last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix и т.д., получают посредством декодирования, если default_last_coeff_enabled_flag не является истинным (т.е. default_last_coeff_enabled_flag равен 0). Синтаксические элементы, такие как last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix и last_sig_coeff_y_suffix и подобные синтаксические элементы, нет необходимости получать посредством декодирования, если default_last_coeff_enabled_flag является истинным (т.е. default_last_coeff_enabled_flag равен 1).
[00391] В данном случае default_last_coeff_enabled_flag может представлять собой разрешающий флаг последнего коэффициента по умолчанию для указания того, использовать/применять ли последний коэффициент по умолчанию. Если default_last_coeff_enabled_flag имеет значение 1, это означает, что местоположение последнего коэффициента по умолчанию используется/применяется. То есть местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В противном случае флаг указывает, что местоположение последнего коэффициента по умолчанию не используется/не применяется.
[00392] Местоположение последнего коэффициента по умолчанию (LastCoeffX, LastCoeffY) представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке, если default_last_coeff_enabled_flag имеет значение 1. Все коэффициенты, расположенные выше (LastCoeffX, LastCoeffY), необходимо сканировать в заданном порядке сканирования. В вариантах осуществления настоящего изобретения (LastCoeffX, LastCoeffY) можно получить следующим образом.
[00393] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00394] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00395] В данном документе (LastCoeffX, LastCoeffY) представляет собой информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода.
[00396] В конкретном примере все еще используется местоположение последнего значимого коэффициента. Местоположение последнего значимого коэффициента помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В вариантах осуществления настоящего изобретения местоположение (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента можно получить следующим образом.
[00397] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1.
[00398] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1.
[00399] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) представляет собой информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода.
[00400] Дополнительно следует отметить, что default_last_coeff_enabled_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или флаг другого уровня блока.
[00401] Кроме того, default_last_coeff_enabled_flag может зависеть от некоторых других флагов, например, идентификационной информации с высокой битовой глубиной, идентификационной информации с высокой битовой скоростью и т.п. То есть default_last_coeff_enabled_flag необходимо декодировать, когда идентификационная информация с высокой битовой глубиной или идентификационная информация с высокой битовой скоростью имеет значение 1. В противном случае нет необходимости декодировать default_last_coeff_enabled_flag.
[00402] В конкретном примере, если взять уровень последовательности в качестве примера, предположительно флаг уровня последовательности sps_high_bit_depth_flag указывает, является ли текущая видеопоследовательность последовательностью с высокой битовой глубиной. Если sps_high_bit_depth_flag имеет значение 1, это означает, что текущая видеопоследовательность является последовательностью с высокой битовой глубиной. В противном случае флаг указывает, что текущая видеопоследовательность не является последовательностью с высокой битовой глубиной. На уровне последовательности sps_default_last_coeff_enabled_flag необходимо получить посредством декодирования, если sps_high_bit_depth_flag имеет значение 1. В данном случае sps_default_last_coeff_enabled_flag может представлять собой разрешающий флаг последнего коэффициента по умолчанию текущей последовательности. Если sps_default_last_coeff_enabled_flag имеет значение 1, это означает, что последний коэффициент по умолчанию используется в блоке в текущей последовательности. В противном случае (т.е., если sps_default_last_coeff_enabled_flag имеет значение 0) это означает, что последний коэффициент по умолчанию не используется в блоке в текущей последовательности. default_last_coeff_enabled_flag в таблице синтаксиса выше можно модифицировать как sps_default_last_coeff_enabled_flag.
[00403] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 11.
Таблица 11
[00404] В другом конкретном примере, если взять уровень слайса в качестве примера, предположительно флаг уровня последовательности sps_high_bit_depth_flag указывает, является ли текущая видеопоследовательность последовательностью с высокой битовой глубиной. Если sps_high_bit_depth_flag имеет значение 1, это означает, что текущая видеопоследовательность является последовательностью с высокой битовой глубиной. В противном случае флаг указывает, что текущая видеопоследовательность не является последовательностью с высокой битовой глубиной. На уровне слайса sh_default_last_coeff_enabled_flag необходимо получить посредством декодирования, если sps_high_bit_depth_flag имеет значение 1. В данном случае sh_default_last_coeff_enabled_flag может представлять собой разрешающий флаг последнего коэффициента по умолчанию текущего слайса. Если sh_default_last_coeff_enabled_flag имеет значение 1, это означает, что последний коэффициент по умолчанию используется в блоке в текущем слайсе. В противном случае (т.е, если sh_default_last_coeff_enabled_flag имеет значение 0) это означает, что последний коэффициент по умолчанию не используется в блоке в текущем слайсе. default_last_coeff_enabled_flag в таблице синтаксиса выше можно модифицировать как sh_default_last_coeff_enabled_flag.
[00405] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 12.
Таблица 12
[00406] В вариантах осуществления настоящего изобретения для каждого компонента цвета текущего слайса идентификационная информация о разрешаемом последнем коэффициенте по умолчанию (т. е. sh_default_last_coeff_enabled_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли последний коэффициент по умолчанию к компоненту цвета.
[00407] В частности, идентификационная информация о разрешаемом последнем коэффициенте по умолчанию текущего слайса может также быть обозначена как sh_default_last_coeff_enabled_flag[cIdx]. В данном документе cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут включать sh_default_last_coeff_enabled_flag[0], sh_default_last_coeff_enabled_flag[1] и sh_default_last_coeff_enabled_flag[2]. sh_default_last_coeff_enabled_flag[0] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему первому компоненту цвета текущего слайса. sh_default_last_coeff_enabled_flag[1] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему второму компоненту цвета текущего слайса. sh_default_last_coeff_enabled_flag[2] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.
[00408] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.
[00409] Иллюстративно, если взять формат YUV в качестве примера, три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Если sh_default_last_coeff_enabled_flag[0] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему первому компоненту цвета текущего слайса (такому как компонент Y). Если sh_default_last_coeff_enabled_flag[1] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему второму компоненту цвета текущего слайса (такому как компонент U). Если sh_default_last_coeff_enabled_flag[2] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему третьему компоненту цвета текущего слайса (такому как компонент V).
[00410] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, сканированные подблоки необходимо кодировать по умолчанию. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток, т.е. ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Следовательно, варианты осуществления настоящего изобретения могут дополнительно вводить идентификационную информацию о кодируемом по умолчанию подблоке для определения того, декодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке.
[00411] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.
[00412] Идентификационную информацию о кодируемом по умолчанию подблоке текущего блока определяют путем анализа битового потока.
[00413] Когда идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, все коэффициенты в подблоке, подлежащем декодированию, декодируют.
[00414] Следует отметить, что, если идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, можно определить, что значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой первое значение, в этом случае все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать.
[00415] Дополнительно следует отметить, что идентификационная информация о кодируемом по умолчанию подблоке может быть обозначена как default_sb_coded_flag. В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом по умолчанию подблоке представляет собой по меньшей мере одну из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00416] То есть default_sb_coded_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00417] В некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой первое значение, определяют, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию. Альтернативно, если значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой второе значение, определяют, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию.
[00418] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими. Первое значение и второе значение могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00419] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено как «ложь», и второе значение может быть установлено как «истина», что никоим образом не ограничено здесь.
[00420] Таким образом, в качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если default_sb_coded_flag имеет значение 1, может быть определено, что default_sb_coded_flag указывает, что подблок, подлежащий декодированию, должен быть кодирован по умолчанию. Альтернативно, если default_sb_coded_flag имеет значение 0, может быть определено, что default_sb_coded_flag указывает, что подблок, подлежащий декодированию, не должен быть кодирован по умолчанию.
[00421] Когда подблок, подлежащий декодированию, кодирован по умолчанию, default_sb_coded_flag имеет значение 1, что означает, что sb_coded_flag имеет значение 1, т.е. нет необходимости декодировать sb_coded_flag, в этом случае все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать по умолчанию.
[00422] Дополнительно, когда подблок, подлежащий декодированию, не должен быть кодирован по умолчанию, т.е. default_sb_coded_flag имеет значение 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00423] Идентификационную информацию о кодируемом подблоке для подблока, подлежащего декодированию, определяют путем анализа битового потока.
[00424] Все коэффициенты в подблоке, подлежащем декодированию, декодируют, когда значение идентификационной информации о кодируемом подблоке представляет собой первое значение.
[00425] Следует отметить, что, если подблок, подлежащий декодированию, не должен быть кодирован по умолчанию, идентификационную информацию о кодируемом подблоке необходимо получить посредством декодирования, и определяют согласно идентификационной информации о кодируемом подблоке, декодировать ли все коэффициенты в подблоке, подлежащем декодированию.
[00426] Способ может дополнительно включать следующую операцию. Определяют, что все коэффициенты в подблоке, подлежащем декодированию, декодируют, если значение идентификационной информации о кодируемом подблоке представляет собой первое значение. Альтернативно определяют, что все коэффициенты в подблоке, подлежащем декодированию, равны нулю, если значение идентификационной информации о кодируемом подблоке представляет собой второе значение.
[00427] В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом подблоке может быть обозначена как sb_coded_flag. В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если sb_coded_flag имеет значение 1, может быть определено, что все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать. Альтернативно, если sb_coded_flag имеет значение 0, может быть определено, что нет необходимости декодировать никакой коэффициент в подблоке, подлежащем декодированию, в этом случае все коэффициенты в подблоке, подлежащем декодированию, равны нулю.
[00428] Таким образом, в определенной ситуации при кодировании коэффициентов сканируемые подблоки должны быть кодированы по умолчанию, или сканируемые подблоки содержат значимые коэффициенты по умолчанию. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Определенной ситуацией может быть, например, кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь. В этой ситуации имеется много значимых коэффициентов, и почти все сканируемые подблоки должны быть кодированы, или почти все сканируемые подблоки содержат значимые коэффициенты. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. Таким образом, ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Удаление почти несуществующего флага еще больше повышает эффективность сжатия.
[00429] Модификация семантики является следующей в таблице 13.
Таблица 13
[00430] В данном документе default_sb_coded_flag представляет собой флаг кодируемого по умолчанию подблока. Если default_sb_coded_flag имеет значение 1, может быть определено, что значение sb_coded_flag[xS][yS] равно 1, в таком случае нет необходимости декодировать из битового потока. В противном случае (если default_sb_coded_flag имеет значение 0) sb_coded_flag[xS][yS] дополнительно необходимо декодировать из битового потока.
[00431] Дополнительно следует отметить, что default_sb_coded_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или флаг другого уровня блока.
[00432] Кроме того, default_sb_coded_flag может зависеть от некоторых других флагов, например, идентификационной информации с высокой битовой глубиной, идентификационной информации с высокой битовой скоростью и т.п. То есть default_sb_coded_flag необходимо декодировать, когда идентификационная информация с высокой битовой глубиной или идентификационная информация с высокой битовой скоростью имеет значение 1. В противном случае нет необходимости декодировать default_sb_coded_flag.
[00433] В конкретном примере, если взять уровень последовательности в качестве примера, предположительно флаг уровня последовательности sps_high_bit_depth_flag указывает, является ли текущая видеопоследовательность последовательностью с высокой битовой глубиной. Если sps_high_bit_depth_flag имеет значение 1, это означает, что текущая видеопоследовательность является последовательностью с высокой битовой глубиной. В противном случае флаг указывает, что текущая видеопоследовательность не является последовательностью с высокой битовой глубиной. На уровне последовательности sps_default_sb_coded_flag должен быть получен посредством декодирования, если sps_high_bit_depth_flag имеет значение 1. В данном случае sps_default_sb_coded_flag представляет собой флаг кодируемого по умолчанию подблока для текущей последовательности. Если sps_default_sb_coded_flag имеет значение 1, это означает, что подблок блока в текущей последовательности кодирован по умолчанию. В противном случае (т. е., если sps_default_sb_coded_flag имеет значение 0), это означает, что подблок блока в текущей последовательности не кодируется по умолчанию. default_sb_coded_flag в таблице синтаксиса выше может быть модифицирован как sps_default_sb_coded_flag.
[00434] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 14.
Таблица 14
[00435] В другом конкретном примере, если взять уровень слайса в качестве примера, предположительно флаг уровня последовательности sps_high_bit_depth_flag указывает, является ли текущая видеопоследовательность последовательностью с высокой битовой глубиной. Если sps_high_bit_depth_flag имеет значение 1, это означает, что текущая видеопоследовательность является последовательностью с высокой битовой глубиной. В противном случае флаг указывает, что текущая видеопоследовательность не является последовательностью с высокой битовой глубиной. На уровне слайса sh_default_sb_coded_flag должен быть получен посредством декодирования, если sps_high_bit_depth_flag имеет значение 1. В данном случае sh_default_sb_coded_flag представляет собой флаг кодируемого по умолчанию подблока для текущего слайса. Если sh_default_sb_coded_flag имеет значение 1, это означает, что подблок блока в текущем слайсе кодирован по умолчанию. В противном случае (т.е., если sh_default_sb_coded_flag имеет значение 0), это означает, что подблок блока в текущем слайсе не кодируется по умолчанию. default_sb_coded_flag в таблице синтаксиса выше может быть модифицирован как sh_default_sb_coded_flag.
[00436] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 15.
Таблица 15
[00437] Следует отметить, что флаг уровня последовательности sps_high_bit_depth_flag может быть флагом, указывающим, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может быть заменен sps_high_bit_rate_flag, указывающим, является ли текущая последовательность последовательностью с высокой битовой скоростью, или даже может быть заменен другим флагом, указывающим на кодирование с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь и т.д., что никоим образом не ограничено здесь.
[00438] В вариантах осуществления настоящего изобретения для каждого компонента цвета текущего слайса идентификационная информация о кодируемом по умолчанию подблоке (т.е. sh_default_sb_coded_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли кодируемый по умолчанию подблок к компоненту цвета.
[00439] В частности, идентификационная информация о кодируемом по умолчанию подблоке текущего слайса может также быть обозначена как sh_default_sb_coded_flag[cIdx]. cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут содержать sh_default_sb_coded_flag[0], sh_default_sb_coded_flag[1] и sh_default_sb_coded_flag[2]. sh_default_sb_coded_flag[0] может указывать, кодирован ли по умолчанию подблок текущего блока, соответствующий первому компоненту цвета текущего слайса. sh_default_sb_coded_flag[1] может указывать, кодирован ли по умолчанию подблок текущего блока, соответствующий второму компоненту цвета текущего слайса. sh_default_sb_coded_flag[2] может указывать, кодирован ли по умолчанию подблок текущего блока, соответствующий третьему компоненту цвета текущего слайса.
[00440] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.
[00441] Иллюстративно, если взять в качестве примера формат YUV, три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Если sh_default_sb_coded_flag[0] имеет значение 1, может быть определено, что подблок блока, который соответствует первому компоненту цвета текущего слайса (такому как компонент Y), кодирован по умолчанию. Если sh_default_sb_coded_flag[1] имеет значение 1, может быть определено, что подблок блока, который соответствует второму компоненту цвета текущего слайса (такому как компонент U), кодирован по умолчанию. Если sh_default_sb_coded_flag[2] имеет значение 1, может быть определено, что подблок блока, который соответствует третьему компоненту цвета текущего слайса (такому как компонент V), кодирован по умолчанию.
[00442] Вкратце, для всех компонентов цвета в видео одна часть идентификационной информации может быть применена для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно разные части идентификационной информации могут быть применены для отдельного управления соответствующими компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно две части идентификационной информации могут быть применены для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Иными словами, более одной части идентификационной информации можно применять для управления разными компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. В настоящем документе все компоненты цвета могут представлять собой R, G и B видео формата RGB или Y, U и V (Y, Cb и Cr) видео формата YUV, или т.п.
[00443] В варианте осуществления предоставляется способ декодирования, выполняемый декодером. В способе идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Коэффициенты текущего блока определяют путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь, разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, также можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
[00444] В другом варианте осуществления настоящего изобретения фиг. 11 представлена блок-схема способа кодирования согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 11, способ включает следующие операции с S1101 по S1103.
[00445] В операции S1101 определяется идентификационная информация о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[00446] В операции S1102 определяется информация о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.
[00447] В S1103 все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.
[0048] Следует отметить, что способ кодирования согласно вариантам осуществления настоящего изобретения может конкретно относиться к способу кодирования коэффициента (коэффициентов), который может выполняться кодером. На основе структуры кодера 100, как показано на фиг. 8A, способ кодирования в основном выполняют с помощью узла 115 энтропийного кодирования кодере 100. Узел 115 энтропийного кодирования может выполнять энтропийное кодирование в отношении связанной идентификационной информации (или элемента (элементов) синтаксиса) с использованием режима адаптивного двоичного арифметического кодирования на основе контекстной модели или обходного режима и может предоставлять результат энтропийного кодирования в битовый поток.
[00449] Дополнительно следует отметить, что в целом кодирование в стандарте видео может включать кодирование и декодирование. Следовательно, кодирование видео может включать способ кодирования, выполняемый на стороне кодера, и способ декодирования, выполняемый на стороне декодера. В вариантах осуществления настоящего изобретения описан способ кодирования, выполняемый на стороне кодера.
[00450] В общем, например, для обычного видео способ кодирования коэффициента (коэффициентов) обычного видео является таким же, как существующий способ в уровне техники. Однако в некоторых случаях, таких как кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, в вариантах осуществления настоящего изобретения предоставляется способ, способный модифицировать режим получения местоположения последнего значимого коэффициента. В этом случае варианты осуществления настоящего изобретения вводят идентификационную информацию о компоненте для определения того, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[00451] В вариантах осуществления настоящего изобретения идентификационная информация о компоненте может представлять собой флаг уровня слайса. Идентификационная информация о компоненте может указывать, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса.
[00452] Понятно, что текущая последовательность может включать текущий слайс, а текущий слайс может включать текущий блок. В некоторых вариантах осуществления, перед определением идентификационной информации о компоненте текущего слайса, способ может дополнительно включать следующие операции.
[00453] Определяют первую идентификационную информацию о синтаксическом элементе.
[00454] Операция, при которой определяют идентификацию компонента текущего слайса, выполняется, когда первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности.
[00455] В вариантах осуществления настоящего изобретения операция, при которой определяют первую идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, значение первой идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если изменение местоположения на обратное последнего значимого коэффициента запрещено для текущей последовательности, значение первой идентификационной информации о синтаксическом элементе определяют как второе значение.
[00456] Способ может дополнительно включать следующую операцию. Первая идентификационная информация о синтаксическом элементе предоставляют в битовый поток.
[00457] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00458] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено в значение «ложь», а второе значение может быть установлено в значение «истина». Иллюстративно для флага, как правило, первое значение может быть значением 1, а второе значение может быть значением 0, что, однако, никоим образом не ограничено.
[00459] Дополнительно следует отметить, что первая идентификационная информация о ситаксическом элементе может быть флагом уровня последовательности, обозначаемым как sps_reverse_last_sig_coeff_flag, для указания того, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Соответственно, когда определено, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, может быть дополнительно определена идентификационная информация о компоненте на уровне слайса, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[001] Дополнительно перед определением первой идентификационной информации о синтаксическом элементе в возможном варианте осуществления способ может дополнительно включать следующие операции.
[002] Определяют вторую идентификационную информацию о синтаксическом элементе.
[003] Первую идентификационную информацию о синтаксическом элементе определяют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.
[004] Перед определением первой идентификационной информации о синтаксическом элементе в другом возможном варианте осуществления способ может дополнительно включать следующие операции.
[005] Определяют третью идентификационную информацию о синтаксическом элементе.
[006] Первую идентификационную информацию о синтаксическом элементе определяют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.
[007] Перед определением первой идентификации синтаксического элемента в еще одном возможном варианте осуществления способ может дополнительно включать следующие операции.
[008] [00467] Определяют вторую идентификационную информацию о синтаксическом элементе.
[00468] Третью идентификационную информацию о синтаксическом элементе определяют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.
[00469] Первую идентификационную информацию о синтаксическом элементе определяют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.
[00470] Следует отметить, что как вторая идентификационная информация о синтаксическом элементе, так и третья идентификационная информация о синтаксическом элементе являются флагами уровня последовательности. Вторая идентификационная информация о синтаксическом элементе может быть обозначена как sps_extension_flag для указания того, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе может быть обозначена как sps_range_extension_flag для указания того, применено ли расширение диапазона к текущей последовательности.
[00471] То есть перед определением первой идентификационной информации о синтаксическом элементе (sps_reverse_last_sig_coeff_flag) могут быть выполнены следующие операции. Определяют sps_extension_flag; и определяют sps_reverse_last_sig_coeff_flag, если sps_extension_flag указывает, что версия расширения стандарта применена к текущей последовательности. Альтернативно определяют sps_range_extension_flag; и определяют sps_reverse_last_sig_coeff_flag, если sps_range_extension_flag указывает, что расширение диапазона применено к текущей последовательности. Альтернативно определяют sps_extension_flag; определяют sps_range_extension_flag, если sps_extension_flag указывает, что версия расширения стандарта применена к текущей последовательности; и определяют sps_reverse_last_sig_coeff_flag, если sps_range_extension_flag указывает, что расширение диапазона применено к текущей последовательности, что, однако, никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00472] В вариантах осуществления настоящего изобретения операция, при которой определяют вторую идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если версия расширения стандарта применяют к текущей последовательности, значение второй идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если версию расширения стандарта не применяют к текущей последовательности, значение второй идентификационной информации о синтаксическом элементе может быть определено как второе значение.
[00473] Способ может дополнительно включать следующую операцию. Вторую идентификационную информацию о синтаксическом элементе предоставляют в битовый поток.
[00474] В вариантах осуществления настоящего изобретения операция, при которой определяют третью идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если расширение диапазона применено к текущей последовательности, значение третьей идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если расширение диапазона не применено к текущей последовательности, значение третьей идентификационной информации о синтаксическом элементе определяют как второе значение.
[00475] Способ может дополнительно включать следующую операцию. Третью идентификационную информацию о синтаксическом элементе предоставляют в битовый поток.
[00476] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.
[00477] Дополнительно следует отметить, что вторая идентификационная информация о синтаксическом элементе может быть обозначена как sps_extension_flag. Третья идентификационная информация о синтаксическом элементе может быть обозначена как sps_range_extension_flag. Соответственно, на уровне последовательности, если sps_extension_flag имеет значение 1, т.е. версия расширения стандарта применена к текущей последовательности, то необходимо определить sps_range_extension_flag. Если sps_range_extension_flag имеет значение 1, то есть расширение диапазона применено к текущей последовательности, то необходимо определить sps_reverse_last_sig_coeff_flag. Если sps_reverse_last_sig_coeff_flag имеет значение 1, то есть изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, необходимо дополнительно определить идентификационную информацию о компоненте на уровне слайса, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[00478] В некоторых вариантах осуществления расширение диапазона применяется к текущей последовательности, что может включать то, что текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь. Например, ниже в данном документе описаны соответственно четыре случая.
[00479] В возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой глубиной, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой глубиной указывает, что текущая последовательность имеет высокую битовую глубину, определяют, что расширение диапазона применено к текущей последовательности.
[00480] В другой возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой скоростью, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой скоростью указывает, что текущая последовательность имеет высокую битовую скорость, определяют, что расширение диапазона применено к текущей последовательности.
[00481] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высоким качеством, способ может дополнительно включать следующую операцию. Если идентификационная информация с высоким качеством указывает, что текущая последовательность имеет высокое качество, определяют, что расширение диапазона применено к текущей последовательности.
[00482] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию со сжатием без потерь, способ может дополнительно включать следующую операцию. Если идентификационная информация со сжатием без потерь указывает, что текущая последовательность сжата без потерь, определяют, что расширение диапазона применено к текущей последовательности.
[00483] Иллюстративно, если взять в качестве примера уровень последовательности, третья идентификационная информация о синтаксическом элементе может дополнительно представлять собой идентификационную информацию с высокой битовой глубиной (обозначенную как sps_high_bit_depth_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может представлять собой идентификационную информацию с высокой битовой скоростью (обозначенную как sps_high_bit_rate_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой скоростью; или альтернативно может представлять собой другую идентификационную информацию для указания высокой битовой глубины, высокой битовой скорости, высокого качества или сжатия без потерь, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00484] В вариантах осуществления настоящего изобретения первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе и т.п. могут быть флагами уровня последовательности или даже флагами более высокого уровня, такими как информация об удобстве использования видео (VUI), информация для дополнительной оптимизации (SEI) и т.п.
[00485] Дополнительно идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть обозначена как reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информацией более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00486] То есть reverse_last_sig_coeff_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.
[00487] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне последовательности может обозначаться как sps_reverse_last_sig_coeff_flag, а идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне слайса может обозначаться как sh_reverse_last_sig_coeff_flag.
[00488] Дополнительно следует отметить, что идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может дополнительно упоминаться как идентификационная информация о компоненте текущего слайса. В некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать следующие операции.
[00489] Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, значение идентификационной информации о компоненте определяют как первое значение.
[00490] Альтернативно, если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, значение идентификационной информации о компоненте определяют как второе значение.
[00491] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.
[00492] В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, т.е. изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса, может быть определено, что значение идентификационной информации о компоненте равно 1. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, т.е. изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса, также может быть определено, что значение идентификационной информации о компоненте равно 0.
[00493] Дополнительно местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, включает начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента. Когда начальная горизонтальная координата и начальная вертикальная координата представляют собой горизонтальное расстояние и вертикальное расстояние между местоположением последнего значимого коэффициента и верхним левым углом текущего блока, соответственно, операция, при которой информацию о координатах последнего значимого коэффициента текущего блока определяют согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента, может включать следующую операцию.
[00494] Если значение идентификации компонента является первым значением, информацию о координатах последнего значимого коэффициента определяют путем выполнения вычисления в отношении начальной горизонтальной координаты и начальной вертикальной координаты последнего значимого коэффициента.
[00495] Альтернативно, если значение идентификации компонента является вторым значением, информация о координатах последнего значимого коэффициента определяется непосредственно согласно начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента.
[00496] Другими словами, в некоторых вариантах осуществления способ может дополнительно включать следующую операцию.
[00497] Если значение идентификации компонента является первым значением, информацию о координатах последнего значимого коэффициента определяют как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока.
[00498] Альтернативно, если значение идентификации компонента является вторым значением, информация о координатах последнего значимого коэффициента определяется как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.
[00499] То есть информация о координатах последнего значимого коэффициента обычно является расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока. Для обычного видео большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0. Однако для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью много значимых коэффициентов могут также появляться в нижнем правом углу, так что информация о координатах последнего значимого коэффициента имеет большое значение. В этом случае для экономии потребления ресурсов преобразование координаты (в частности, изменение координаты на обратную, где после изменения координаты на обратную информацией о координатах последнего значимого коэффициента является расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока) необходимо выполнить во время кодирования коэффициентов. Соответственно, при последующем декодировании коэффициентов в декодере также необходимо выполнить изменение координаты на обратную. После повторного выполнения изменения координат на обратное информация о координатах последнего значимого коэффициента может быть восстановлена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и левым верхним углом текущего блока, тем самым определяя местоположение последнего значимого коэффициента.
[00500] Дополнительно в некоторых вариантах осуществления операция, при которой определяют информацию о координатах последнего значимого коэффициента путем выполнения вычисления в отношении начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента, может включать следующие операции.
[00501] Определяют ширину и высоту текущего блока.
[00502] Горизонтальную координату последнего значимого коэффициента получают путем вычитания начальной горизонтальной координаты последнего значимого коэффициента из ширины текущего блока;
[00503] Вертикальную координату последнего значимого коэффициента получают путем вычитания начальной вертикальной координаты последнего значимого коэффициента из высоты текущего блока.
[00504] Информацию о координатах последнего значимого коэффициента определяют согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00505] Следует отметить, что текущий блок, соответствующий компоненту текущего слайса, может представлять собой блок, в отношении которого не было выполнено преобразование нулевого вывода, или блок, в отношении которого было выполнено преобразование нулевого вывода. Если взять блок, в отношении которого было выполнено преобразование нулевого вывода, в качестве примера, в этом случае ширина текущего блока может представлять собой 1 <<log2ZoTbWidth, и высота текущего блока может представлять собой 1<<log2ZoTbHeight. Затем в случае, если идентификационная информация о компоненте указывает, что применено изменение местоположения на обратное последнего значимого коэффициента,
[00506] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;
[00507] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00508] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) в правой части формулы может обозначать информацию о координатах последнего значимого коэффициента, определенного непосредственно (т.е. начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента). (LastSignificantCoeffX, LastSignificantCoeffY) в левой части формулы может обозначать информацию о координатах последнего значимого коэффициента, полученную путем изменения координаты на обратную (т.е. информацию о координатах последнего значимого коэффициента, предоставленную в битовый поток в случае применения изменения местоположения на обратное последнего значимого коэффициента к текущему блоку).
[00509] В некоторых вариантах осуществления операция, при которой информацию о координатах последнего значимого коэффициента предоставляют в битовый поток, может включать следующие операции.
[00510] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента определяют согласно информации о координате последнего значимого коэффициента.
[00511] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента предоставляют в битовый поток.
[00512] Следует отметить, что информация о префиксе горизонтальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_x_prefix. Информация о префиксе вертикальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_y_prefix. Информация о суффиксе горизонтальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_x_suffix. Информация о суффиксе вертикальной координаты последнего значимого коэффициента может быть обозначена как last_sig_coeff_y_suffix. Затем last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть предоставлены в битовый поток, так что декодер определяет информацию о координатах последнего значимого коэффициента путем анализа битового потока.
[00513] В вариантах осуществления настоящего изобретения заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено здесь.
[00514] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, в вариантах осуществления настоящего изобретения предоставляется способ модифицирования режима получения местоположения последнего значимого коэффициента. То есть обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Обычно last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут быть сконфигурированы для кодирования абсциссы местоположения последнего значимого коэффициента, т.е. расстояния по горизонтали относительно верхнего левого угла текущего блока; и last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть сконфигурированы для кодирования ординаты местоположения последнего значимого коэффициента, т.е. расстояния по вертикали относительно верхнего левого угла текущего блока, как показано на фиг. 10A. При кодировании и декодировании видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатии без потерь местоположение последнего значимого коэффициента обычно находится близко к нижнему правому углу области, включающей все возможные ненулевые коэффициенты в текущем блоке. В этом случае last_sig_coeff_x_prefix и last_sig_coeff_x_suffix могут быть сконфигурированы для кодирования расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом области, которая включает все возможные ненулевые коэффициенты в текущем блоке, и last_sig_coeff_y_prefix и last_sig_coeff_y_suffix могут быть сконфигурированы для кодирования расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом области, которая включает все возможные ненулевые коэффициенты в текущем блоке, как показано на фиг. 10B. Следовательно, в вариантах осуществления настоящего изобретения вводится reverse_last_sig_coeff_flag, что тем самым решает проблему увеличенного потребления ресурсов, вызванного кодированием больших значений в битовом потоке.
[00515] Дополнительно для каждого из компонентов цвета текущего слайса reverse_last_sig_coeff_flag уровня слайса (т.е. идентификационная информация о компоненте sh_reverse_last_sig_coeff_flag текущего слайса) может обеспечивать возможность отдельного управления тем, применять ли изменение местоположения на обратное последнего значимого коэффициента к компоненту цвета.
[00516] В вариантах осуществления настоящего изобретения компонент может содержать первый компонент цвета, второй компонент цвета и третий компонент цвета.
[00517] В конкретном примере первый компонент цвета представляет собой компонент яркости. Второй компонент цвета представляет собой первый компонент цветности. Третий компонент цвета представляет собой второй компонент цветности. Компонент яркости может быть обозначен как Y. Первый компонент цветности может быть обозначен как U(Cb). Второй компонент цветности может быть обозначен как V(Cr).
[00518] В другом конкретном примере первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент. Красный компонент может быть обозначен как R. Зеленый компонент может быть обозначен как G. Синий компонент может быть обозначен как B.
[00519] Дополнительно в некоторых вариантах осуществления, когда компонент включает первый компонент цвета, второй компонент цвета и третий компонент цвета, способ может дополнительно включать следующие операции.
[00520] Определяют, используют ли совместно первый компонент цвета, второй компонент цвета и третий компонент цвета текущего слайса идентификационную информацию о компоненте на основе отношения между свойствами первого компонента цвета, второго компонента цвета и третьего компонента цвета.
[00521] Количество частей идентификационной информации о компоненте текущего слайса определяют согласно определению. Количество частей идентификационной информации о компоненте может быть равно 1, 2 или 3.
[00522] В частности, операция, при которой определяют количество частей идентификационной информации о компоненте, может включать следующую операцию.
[00523] Количество частей идентификационной информации о компоненте текущего слайса определяют равным 1, если одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса.
[00524] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 2, если одна часть идентификационной информации о компоненте совместно используется двумя из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00525] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 3, если каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.
[00526] В вариантах осуществления настоящего изобретения, поскольку свойства соответствующих компонентов цвета могут отличаться, и используются некоторые межкомпонентные методы, соответствующие компоненты цвета не всегда могут быть совместимыми при остаточном распределении. Например, при кодировании и декодировании видео с очень высокой битовой скоростью и очень высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть одинаковыми при распределении, например, все они расположены близко к нижнему правому углу области, включающей возможные значимые коэффициенты. Однако в некоторых случаях кодирования и декодирования видео с не особенно высокой битовой скоростью и не особенно высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть разными при распределении. Например, все значимые коэффициенты компонента Y находятся близко к нижнему правому углу области, включающей возможные значимые коэффициенты, а значимые коэффициенты компонента U/V распределяются только в верхнем левом углу. Альтернативно значимые коэффициенты компонента U также находятся близко к нижнему правому углу, а значимые коэффициенты компонента V распределяются только в верхнем левом углу.
[00527] Следовательно, в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.
[00528] В возможной реализации, когда количество частей идентификационной информации о компоненте равно 1, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение первой идентификационной информации о компоненте текущего слайса.
[00529] Соответственно, способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение первой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к любому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00530] В другой возможной реализации, когда количество частей идентификационной информации о компоненте равно 2, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса.
[00531] Соответственно, способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение второй идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ни к одному из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00532] Если значение третьей идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета. Альтернативно, если значение третьей идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета.
[00533] В еще одной возможной реализации, когда количество частей идентификационной информации о компоненте равно 3, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса.
[00534] Соответственно, способ может дополнительно включать следующую операцию. Если значение четвертой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса. Альтернативно, если значение четвертой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к первому компоненту цвета текущего слайса.
[00535] Если значение пятой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса. Альтернативно, если значение пятой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ко второму компоненту цвета текущего слайса.
[00536] Если значение шестой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса. Альтернативно, если значение шестой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к третьему компоненту цвета текущего слайса.
[00537] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.
[00538] Дополнительно следует отметить, что идентификационная информация о компоненте в данном случае может представлять собой флаг уровня слайса и может быть обозначена как sh_reverse_last_sig_coeff_flag[cIdx]. cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут включать sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1] и sh_reverse_last_sig_coeff_flag[2]. Четвертая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[0] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему первому компоненту цвета текущего слайса. Пятая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[1] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему второму компоненту цвета текущего слайса. Шестая идентификационная информация о компоненте может быть обозначена как sh_reverse_last_sig_coeff_flag[2] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.
[00539] Иллюстративно, если взять формат YUV в качестве примера, три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Если sh_reverse_last_sig_coeff_flag[0] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку, соответствующему первому компоненту цвета текущего слайса (такому как компонент Y). Если sh_reverse_last_sig_coeff_flag[1] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку, соответствующему второму компоненту цвета текущего слайса (такому как компонент U). Если sh_reverse_last_sig_coeff_flag[2] имеет значение 1, может быть определено, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку, соответствующему третьему компоненту цвета текущего слайса (такому как компонент V).
[00540] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, все возможные коэффициенты, подлежащие кодированию, необходимо кодировать по умолчанию. То есть местоположение последнего значимого коэффициента больше не используется. Вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируют в заданном порядке сканирования. Следовательно, в вариантах осуществления настоящего изобретения может также вводиться идентификационная информация о разрешаемом последнем коэффициенте для определения, применено ли местоположение последнего коэффициента к текущему блоку.
[00541] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.
[00542] Определяют идентификационную информацию о разрешаемом последнем коэффициенте текущего блока.
[00543] Когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего коэффициента, кодируют в заданном порядке сканирования. Идентификационную информацию о разрешаемом последнем коэффициенте, идентификационную информацию о видео и битовую информацию, полученную посредством кодирования, предоставляют в битовый поток.
[00544] Следует отметить, что идентификационная информация о разрешаемом последнем коэффициенте может быть обозначена как default_last_coeff_enabled_flag. В вариантах осуществления настоящего изобретения идентификационная информация о разрешаемом последнем коэффициенте может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00545] Дополнительно следует отметить, что в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о разрешаемом последнем коэффициенте текущего блока, может включать следующую операцию.
[00546] Значение идентификационной информации о разрешаемом последнем коэффициенте определяют как первое значение, если местоположение последнего коэффициента применено к текущему блоку.
[00547] Альтернативно значение идентификационной информации о разрешаемом последнем коэффициенте определяют как второе значение, если местоположение последнего коэффициента не применено к текущему блоку.
[00548] То есть в качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если определяют, что местоположение последнего коэффициента применено к текущему блоку, default_last_coeff_enabled_flag имеет значение, равное 1. Альтернативно, если определяют, что местоположение последнего коэффициента не применено к текущему блоку, default_last_coeff_enabled_flag имеет значение, равное 0.
[00549] Дополнительно в некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00550] Следует отметить, что в вариантах осуществления настоящего изобретения местоположение последнего коэффициента не представляет местоположение последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.
[00551] В конкретном примере способ может дополнительно включать следующую операцию. Устанавливают местоположение последнего значимого коэффициента как местоположение последнего коэффициента.
[00552] То есть в вариантах осуществления настоящего изобретения все еще может использоваться местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента необходимо поместить в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00553] Дополнительно местоположение последнего коэффициента может быть обозначено как (LastCoeffX, LastCoeffY), т.е. последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00554] Определяют ширину и высоту блока преобразования, полученные путем выполнения заданной операции в отношении текущего блока.
[00555] Вычисляют информацию о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования.
[00556] Определяют местоположение последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.
[00557] В данном случае заданная операция включает по меньшей мере операцию нулевого вывода.
[00558] Следует отметить, что (LastCoeffX, LastCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. (LastCoeffX, LastCoeffY) может быть получена следующим образом.
[00559] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00560] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00561] Соответственно, местоположение последнего коэффициента может быть определено согласно (LastCoeffX, LastCoeffY), если default_last_coeff_enabled_flag имеет значение 1.
[00562] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.
[00563] Когда местоположение последнего значимого коэффициента установлено как местоположение последнего коэффициента, местоположение последнего значимого коэффициента определяют согласно информации о координатах нижнего правого угла блока преобразования.
[00564] То есть местоположение последнего значимого коэффициента может быть обозначено как (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) может быть получено следующим образом.
[00565] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.
[00566] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.
[00567] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. Местоположение последнего значимого коэффициента может быть определено согласно (LastSignificantCoeffX, LastSignificantCoeffY), если default_last_coeff_enabled_flag имеет значение 1.
[00568] Дополнительно, когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку, т.е. идентификационная информация о разрешаемом последнем коэффициенте имеет значение 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.
[00569] Определяют информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента.
[00570] Местоположение последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.
[00571] Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Информацию о префиксе горизонтальной координаты последнего значимого коэффициента, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента предоставляют в битовый поток.
[00572] Следует отметить, что, если местоположение последнего коэффициента не применено к текущему блоку, необходимо определить местоположение последнего значимого коэффициента. В частности, нет необходимости определения и предоставления в битовый поток last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix.
[00573] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию при кодировании коэффициентов. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию, то есть местоположение последнего значимого коэффициента больше не используется, вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируются в заданном порядке сканирования. Другими словами, местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. Это местоположение обычно может относиться к нижнему правому углу матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Следовательно, в вариантах осуществления настоящего изобретения вводится default_last_coeff_enabled_flag, что тем самым уменьшает или даже исключает синтаксические элементы, связанные с местоположением последнего значимого коэффициента, обеспечивает экономию потребления ресурсов и предотвращает нерациональное использование.
[00574] Дополнительно для каждого компонента цвета текущего слайса идентификационная информация о разрешаемом последнем коэффициенте по умолчанию (т.е. sh_default_last_coeff_enabled_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли последний коэффициент по умолчанию к компоненту цвета.
[00575] В частности, идентификационная информация о разрешаемом последнем коэффициенте по умолчанию текущего слайса также может быть обозначена как sh_default_last_coeff_enabled_flag[cIdx]. cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут включать sh_default_last_coeff_enabled_flag[0], sh_default_last_coeff_enabled_flag[1] и sh_default_last_coeff_enabled_flag[2]. sh_default_last_coeff_enabled_flag[0] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему первому компоненту цвета текущего слайса. sh_default_last_coeff_enabled_flag[1] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему второму компоненту цвета текущего слайса. sh_default_last_coeff_enabled_flag[2] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.
[00576] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета.
[00577] Иллюстративно, если взять формат YUV в качестве примера, три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Если sh_default_last_coeff_enabled_flag[0] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему первому компоненту цвета текущего слайса (такому как компонент Y). Если sh_default_last_coeff_enabled_flag[1] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему второму компоненту цвета текущего слайса (такому как компонент U). Если sh_default_last_coeff_enabled_flag[2] имеет значение 1, может быть определено, что последний коэффициент по умолчанию применен к блоку, соответствующему третьему компоненту цвета текущего слайса (такому как компонент V).
[00578] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, сканированные подблоки необходимо кодировать по умолчанию. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. То есть ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Следовательно, варианты осуществления настоящего изобретения могут дополнительно вводить идентификационную информацию о кодируемом по умолчанию подблоке для определения, кодирован ли по умолчанию подблок, подлежащий кодированию в текущем блоке.
[00579] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.
[00580] Определяют идентификационную информацию о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию в текущем блоке.
[00581] Когда идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий кодированию, кодирован по умолчанию, кодируют все коэффициенты в подблоке, подлежащем кодированию. Идентификационную информацию о кодируемом по умолчанию подблоке и битовую информацию, полученную посредством кодирования, предоставляют в битовый поток.
[00582] Следует отметить, что идентификационная информация о кодируемом по умолчанию подблоке может быть обозначена как default_sb_coded_flag. В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом по умолчанию подблоке представляет собой по меньшей мере одну из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.
[00583] Дополнительно следует отметить, что в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию, может включать следующую операцию. Значение идентификационной информации о кодируемом по умолчанию подблоке определяют как первое значение, если подблок, подлежащий кодированию, кодирован по умолчанию. Альтернативно значение идентификационной информации о кодируемом по умолчанию подблоке определяют как второе значение, если подблок, подлежащий кодированию, не кодирован по умолчанию.
[00584] Соответственно, если взять первое значение, равное 1, и второе значение, равное 0, в качестве примера, default_sb_coded_flag имеет значение 1, если определено, что подблок, подлежащий кодированию, должен быть кодирован по умолчанию. Альтернативно default_sb_coded_flag имеет значение 0, если определено, что подблок, подлежащий кодированию, не должен быть кодирован по умолчанию.
[00585] Когда подблок, подлежащий кодированию, должен быть кодирован по умолчанию, default_sb_coded_flag имеет значение 1, что означает, что sb_coded_flag имеет значение 1, т.е. нет необходимости кодировать sb_coded_flag. Однако, когда подблок, подлежащий кодированию, не должен быть кодирован по умолчанию, т.е. идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий кодированию, не должен быть кодирован по умолчанию, в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Определяют идентификационную информацию о кодируемом подблоке для подблока, подлежащего кодированию, и предоставляют идентификационную информацию о кодируемом подблоке в битовый поток.
[00586] Дополнительно в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о кодируемом подблоке для подблока, подлежащего кодированию, может включать следующую операцию. Значение идентификационной информации о кодируемом подблоке определяют как первое значение, если требуется кодирование для подблока, подлежащего кодированию. Альтернативно значение идентификационной информации о кодируемом подблоке определяют как второе значение, если все коэффициенты в подблоке, подлежащем кодированию, равны нулю.
[00587] В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом подблоке может быть обозначена как sb_coded_flag. В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если определено, что подблок, подлежащий кодированию, должен быть кодирован, это означает, что подблок, подлежащий кодированию, содержит значимые коэффициенты, подлежащие кодированию. В этом случае sb_coded_flag имеет значение 1. Альтернативно, если определено, что нет необходимости кодировать подблок, подлежащий кодированию, это означает, что все коэффициенты в подблоке, подлежащем кодированию, равны нулю. В этом случае sb_coded_flag имеет значение 0.
[00588] Таким образом, в определенной ситуации при кодировании коэффициентов сканируемые подблоки должны быть кодированы по умолчанию, или сканируемые подблоки содержат значимые коэффициенты по умолчанию. Обычно способ кодирования коэффициентов является все таким же, как существующий способ в уровне техники. Определенной ситуацией может быть, например, кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь. В этой ситуации имеется много значимых коэффициентов, и почти все сканируемые подблоки должны быть кодированы, или почти все сканируемые подблоки содержат значимые коэффициенты. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. Таким образом, нет необходимости обрабатывать кодером этот флаг, что тем самым ускоряет кодирование и декодирование. Удаление почти несуществующего флага еще больше повышает эффективность сжатия.
[00589] Дополнительно для каждого компонента цвета текущего слайса идентификационная информация о кодируемом по умолчанию подблоке (т.е. sh_default_sb_coded_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли кодированный по умолчанию подблок к компоненту цвета.
[00590] В частности, идентификационная информация о кодируемом по умолчанию подблоке текущего слайса может также быть обозначена как sh_default_sb_coded_flag[cIdx]. cIdx может иметь значение 0, 1 или 2. В частности, когда три части идентификационной информации о компоненте сконфигурированы для управления тремя компонентами цвета соответственно, три части идентификационной информации о компоненте могут включать sh_default_sb_coded_flag[0], sh_default_sb_coded_flag[1] и sh_default_sb_coded_flag[2]. sh_default_sb_coded_flag[0] может указывать, кодирован ли по умолчанию подблок текущего блока, который соответствует первому компоненту цвета текущего слайса. sh_default_sb_coded_flag[1] может указывать, кодирован ли по умолчанию подблок текущего блока, который соответствует второму компоненту цвета текущего слайса. sh_default_sb_coded_flag[2] может указывать, кодирован ли по умолчанию подблок текущего блока, который соответствует третьему компоненту цвета текущего слайса.
[00591] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета.
[00592] В конкретном примере, если взять в качестве примера формат YUV, три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Если sh_default_sb_coded_flag[0] имеет значение 1, может быть определено, что подблок блока, который соответствует первому компоненту цвета текущего слайса (такому как компонент Y), кодирован по умолчанию. Если sh_default_sb_coded_flag[1] имеет значение 1, может быть определено, что подблок блока, который соответствует второму компоненту цвета текущего слайса (такому как компонент U), кодирован по умолчанию. Если sh_default_sb_coded_flag[2] имеет значение 1, может быть определено, что подблок блока, который соответствует третьему компоненту цвета текущего слайса (такому как компонент V), кодирован по умолчанию.
[00593] Вкратце, для всех компонентов цвета в видео одна часть идентификационной информации может быть применена для всех компонентов цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно разные части идентификационной информации могут быть применены для отдельного управления соответствующими компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно две части идентификационной информации могут быть применены для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Иными словами, более одной части идентификационной информации можно применять для управления разными компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. В настоящем документе все компоненты цвета могут представлять собой R, G и B видео формата RGB или Y, U и V (Y, Cb и Cr) видео формата YUV, или т.п.
[00594] В настоящем изобретении дополнительно предоставлен способ кодирования, выполняемый кодером. В способе определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь, разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, также можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
[00595] В еще одном варианте осуществления настоящего изобретения варианты осуществления настоящего изобретения предоставляют битовый поток. Битовый поток может быть сгенерирован путем выполнения битового кодирования в отношении информации, подлежащей кодированию. Информация, подлежащая кодированию, содержит по меньшей мере одну из первой идентификационной информации о синтаксическом элементе, второй идентификационной информации о синтаксическом элементе, третьей идентификационной информации о синтаксическом элементе, идентификационной информации о компоненте, идентификационной информации о разрешаемом последнем коэффициенте или идентификационной информации о кодируемом по умолчанию подблоке.
[00596] Первая идентификационная информация о синтаксическом элементе указывает, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Вторая идентификационная информация о синтаксическом элементе указывает, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе указывает, применено ли расширение диапазона к текущей последовательности. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Идентификационная информация о разрешаемом последнем коэффициенте указывает, применено ли местоположение последнего коэффициента к текущему блоку. Идентификационная информация о кодируемом по умолчанию подблоке указывает, кодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке. Текущая последовательность содержит текущий слайс. Текущий слайс содержит текущий блок.
[00597] В вариантах осуществления настоящего изобретения дополнительно предоставлена система кодирования. Система кодирования может содержать кодер и декодер. Кодер генерирует битовый поток и передает битовый поток на декодер, так что декодер анализирует битовый поток для получения соответствующей декодированной информации, такой как первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе, идентификационная информация о компоненте, идентификационная информация о разрешаемом последнем коэффициенте, идентификационная информация о кодируемом по умолчанию подблоке, информация о координатах последнего значимого коэффициента текущего блока и т.п.
[00598] В еще одном варианте осуществления настоящего изобретения на основе тех же концепций настоящего изобретения, что и в предыдущих вариантах осуществления, на фиг. 12 представлена схема структуры кодера 120 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 12, кодер 120 содержит первый узел 1201 определения и узел 1202 кодирования.
[00599] Первый узел 1201 определения выполнен с возможностью определения идентификационной информации о компоненте текущего слайса и местоположения последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[00600] Первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.
[00601] Узел 1202 кодирования выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации о компоненте и информации о координатах последнего значимого коэффициента.
[00602] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения первой идентификационной информации о синтаксическом элементе и определения идентификационной информации о компоненте текущего слайса в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности. Текущая последовательность содержит текущий слайс.
[00603] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения второй идентификационной информации о синтаксическом элементе, определения третьей идентификационной информации о синтаксическом элементе в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности, и определения первой идентификационной информации о синтаксическом элементе в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
[00604] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения второй идентификационной информации о синтаксическом элементе как первого значения в ответ на применение версии расширения стандарта к текущей последовательности; или определения значения второй идентификационной информации о синтаксическом элементе как второго значения в ответ на отсутствие применения версии расширения стандарта к текущей последовательности.
[00605] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления второй идентификационной информации о синтаксическом элементе в битовый поток.
[00606] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения третьей идентификационной информации о синтаксическом элементе как первого значения в ответ на применение расширения диапазона к текущей последовательности; или определения значения третьей идентификационной информации о синтаксическом элементе как второго значения в ответ на отсутствие применения расширения диапазона к текущей последовательности.
[00607] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления третьей идентификационной информации о синтаксическом элементе в битовый поток.
[00608] В некоторых вариантах осуществления применение расширения диапазона к текущей последовательности включает следующее: текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.
[00609] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения первой идентификационной информации о синтаксическом элементе как первого значения в ответ на разрешение изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности; или определения значения первой идентификационной информации о синтаксическом элементе как второго значения в ответ на запрещение изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности.
[00610] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления первой идентификационной информации о синтаксическом элементе в битовый поток.
[00611] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о компоненте как первого значения в ответ на применение изменения местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса; или определения значения идентификационной информации о компоненте как второго значения в ответ на отсутствие применения изменения местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.
[00612] В некоторых вариантах осуществления компонент содержит по меньшей мере один из первого компонента цвета, второго компонента цвета или третьего компонента цвета.
[00613] Первый компонент цвета представляет собой компонент яркости, второй компонент цвета представляет собой первый компонент цветности, и третий компонент цвета представляет собой второй компонент цветности.
[00614] Альтернативно первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент.
[00615] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, определения количества частей идентификационной информации о компоненте текущего слайса равным 1 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 2 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется двумя компонентами цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 3 в ответ на то, что каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.
[00616] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения первой идентификационной информации о компоненте текущего слайса.
[00617] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения первой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00618] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса.
[00619] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения второй идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; и определения значения третьей идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета, отличному от двух компонентов цвета, из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.
[00620] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса.
[00621] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения четвертой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса; определения значения пятой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса; и определения значения шестой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса.
[00622] В некоторых вариантах осуществления местоположение последнего значимого коэффициента включает начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента. Начальная горизонтальная координата и начальная вертикальная координата являются расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока соответственно.
[00623] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента путем выполнения вычисления в отношении начальной горизонтальной координаты и начальной вертикальной координаты последнего значимого коэффициента в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения информации о координатах последнего значимого коэффициента непосредственно согласно начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента в ответ на то, что значение идентификационной информации о компоненте является вторым значением.
[00624] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения ширины и высоты текущего блока; получения горизонтальной координаты последнего значимого коэффициента путем вычитания начальной горизонтальной координаты последнего значимого коэффициента из ширины текущего блока; получения вертикальной координаты последнего значимого коэффициента путем вычитания начальной вертикальной координаты последнего значимого коэффициента из высоты текущего блока; и определения информации о координатах последнего значимого коэффициента согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00625] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения информации о координатах последнего значимого коэффициента как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока в ответ на то, что значение идентификационной информации о компоненте является вторым значением.
[00626] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента согласно информации о координатах последнего значимого коэффициента.
[00627] Узел 1202 кодирования дополнительно выполнен с возможностью предоставления информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в битовый поток.
[00628] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о разрешаемом последнем коэффициенте текущего блока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
[00629] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования в ответ на идентификационную информацию о разрешаемом последнем коэффициенте, указывающую, что местоположение последнего коэффициента применено к текущему блоку, и предоставления битовой информации, полученной посредством кодирования, и идентификационной информации о разрешаемом последнем коэффициенте в битовый поток.
[00630] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о разрешаемом последнем коэффициенте как первого значения в ответ на то, что местоположение последнего коэффициента применено к текущему блоку; или определения значения идентификационной информации о разрешаемом последнем коэффициенте как второго значения в ответ на то, что местоположение последнего коэффициента не применено к текущему блоку.
[00631] В некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00632] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью установки местоположения последнего значимого коэффициента как местоположения последнего коэффициента.
[00633] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения ширины и высоты блока преобразования, полученных путем выполнения заданной операции в отношении текущего блока; вычисления информации о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования; и определения местоположения последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.
[00634] В некоторых вариантах осуществления заданная операция включает по меньшей мере операцию нулевого вывода.
[00635] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о координатах нижнего правого угла блока преобразования в ответ на установку местоположения последнего значимого коэффициента как местоположения последнего коэффициента.
[00636] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в ответ на то, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку; и определения местоположения последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.
[00637] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в битовый поток.
[00638] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию, в текущем блоке в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
[00639] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов в подблоке, подлежащем кодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий кодированию, кодирован по умолчанию, и предоставления идентификационной информации о кодируемом по умолчанию подблоке и битовой информации, полученной посредством кодирования, в битовый поток.
[00640] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о кодируемом подблоке для подблока, подлежащего кодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий кодированию, не кодирован по умолчанию.
[00641] Узел 1202 кодирования дополнительно выполнен с возможностью предоставления идентификационной информации о кодируемом подблоке в битовый поток.
[00642] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о кодируемом по умолчанию подблоке как первого значения в ответ на то, что подблок, подлежащий кодированию, кодирован по умолчанию, или определения значения идентификационной информации о кодируемом по умолчанию подблоке как второго значения в ответ на то, что подблок, подлежащий кодированию, не кодирован по умолчанию.
[00643] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о кодируемом подблоке как первого значения в ответ на то, что подблок, подлежащий кодированию, должен быть кодирован, или определения значения идентификационной информации о кодируемом подблоке как второго значения в ответ на то, что все коэффициенты в подблоке, подлежащем кодированию, равны нулю.
[00644] В некоторых вариантах осуществления первое значение равно 1, а второе значение равно 0.
[00645] Понятно, что в вариантах осуществления настоящего изобретения «узел» может быть частью схемы, частью процессора, частью программы или программного обеспечения и/или т.п. Конечно, «узел» может быть модулем или может быть немодульным. Кроме того, компоненты в вариантах осуществления могут быть интегрированы в одну обрабатывающую часть или существовать как отдельные физические узлы соответственно. Альтернативно два или более узлов могут быть интегрированы в один узел. Интегрированный узел может быть реализован в форме аппаратного или программного функционального узла (аппаратных или программных функциональных узлов).
[00646] При реализации в форме программного функционального модуля и продаже или использовании в качестве самостоятельного продукта интегрированный модуль в данном случае также может храниться на машиночитаемом носителе данных. Основываясь на таком понимании, существенная часть или часть, способствующая известному уровню техники, технического решения варианта осуществления настоящего изобретения, или все техническое решение или его часть могут быть в форме программного продукта, причем этот программный продукт хранится на носителе данных и содержит ряд инструкций, позволяющих компьютерному устройству (такому как персональный компьютер, сервер, сетевое устройство и/или т.п.) или процессору исполнять весь способ или его часть в вариантах осуществления настоящего изобретения. Носители данных содержат различные носители, способные хранить программные коды, такие как U-диск, мобильный жесткий диск, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), магнитный диск, CD и/или т.п.
[00647] Следовательно, в вариантах осуществления настоящего изобретения предоставлен компьютерный носитель данных, реализованный в кодере 120. Компьютерный носитель данных хранит в себе компьютерную программу, которая при исполнении первым процессором реализует способ согласно любому вышеописанному варианту осуществления.
[00648] На основании состава кодера 120 и компьютерного носителя данных на фиг. 13 представлена схема аппаратной структуры кодера 120 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 13, кодер может содержать первый интерфейс 1301 связи, первое запоминающее устройство 1302 и первый процессор 1303. Различные компоненты могут быть взаимосвязаны посредством первого оборудования 1304 в виде шин. Понятно, что первое оборудование 1304 в виде шин выполнено с возможностью реализации соединения и связи между этими компонентами. В дополнение к шине данных, первое оборудование 1304 в виде шин может дополнительно содержать шину питания, шину управления и шину сигнала статуса. Однако для ясности описания различные шины обозначены как первое оборудование 1304 в виде шин на фиг. 13.
[00649] Первый интерфейс 1301 связи может быть выполнен с возможностью выполнения отправки и приема сигнала при выполнении отправки и приема информации с помощью другого внешнего сетевого элемента.
[00650] Первое запоминающее устройство 1302 выполнено с возможностью хранения в нем компьютерной программы, исполняемой первым процессором 1303.
[00651] Первый процессор 1303 выполнен с возможностью исполнения компьютерной программы для выполнения следующих операций.
[00652] Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[00653] Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.
[00654] Кодируют коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования; и предоставляют в битовый поток битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента.
[00655] Понятно, что первое запоминающее устройство 1302 согласно вариантам осуществления настоящего изобретения может быть энергозависимым и/или энергонезависимым запоминающим устройством. Энергонезависимое запоминающее устройство может представлять собой постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) или флеш-память. Энергозависимое запоминающее устройство может представлять собой оперативное запоминающее устройство (RAM), которое выполняет функцию внешнего кэша. В качестве иллюстративного, а не ограничивающего описания могут быть доступны множество форм RAM, таких как статическое оперативное запоминающее устройство (SRAM), динамическое оперативное запоминающее устройство (DRAM), синхронное динамическое оперативное запоминающее устройство (SDRAM), синхронное динамическое оперативное запоминающее устройство с двукратной скоростью передачи данных (DDRSDRAM), улучшенное синхронное динамическое оперативное запоминающее устройство (ESDRAM), динамическое оперативное запоминающее устройства с синхронным каналом (DRAM с синхронным каналом, SLDRAM), оперативное запоминающее устройство с шиной прямого резидентного доступа (DRRAM) и т.п. Первое запоминающее устройство 1302, используемое в системах и способах согласно настоящему изобретению, предназначено для включения, но без ограничения, этих и любых других подходящих типов запоминающего устройства.
[00656] Первый процессор 1303 может представлять собой кристалл c интегральными схемами, способный обрабатывать сигнал. В реализации операции варианта осуществления способа в данном документе могут выполняться посредством интегральной логической схемы аппаратного обеспечения в первом процессоре 1303 или инструкций в форме программного обеспечения. Первый процессор 1303 может представлять собой процессор общего назначения, процессор цифровой обработки сигналов (DSP), интегральную схему специального применения (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другое программируемое логическое устройство, дискретный логический элемент, или транзисторное логическое устройство, дискретный аппаратный компонент и т.п. Первый процессор может реализовывать или исполнять различные способы, операции и логические блок-схемы согласно вариантам осуществления настоящего изобретения. Процессор общего назначения может представлять собой микропроцессор или любой традиционный процессор. Операции способа, описанного в вариантах осуществления настоящего изобретения, могут быть непосредственно воплощены как выполняемые кодирующим процессором аппаратного обеспечения или комбинацией аппаратных и программных модулей в кодирующем процессоре. Программный модуль может быть расположен в устоявшемся в уровне техники носителе данных, таком как оперативное запоминающее устройство (RAM), флеш-память, постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), электрически перезаписываемое программируемое запоминающее устройство, регистр и т.п. Носитель данных может быть расположен в первом запоминающем устройстве 1302. Первый процессор 1303 может считывать информацию в первом запоминающем устройстве 1302 и выполнять операцию способа в данном случае посредством аппаратного обеспечения процессора.
[00657] Понятно, что варианты осуществления согласно настоящему изобретению могут быть реализованы посредством аппаратного обеспечения, программного обеспечения, программно-аппаратного обеспечения, межплатформенного программного обеспечения, микрокода или комбинации перечисленных элементов. Для аппаратной реализации обрабатывающий узел может быть реализован в одной или более интегральных схемах специального применения (ASIC), DSP, устройствах цифровой обработки сигналов (DSPD), программируемых логических устройствах (PLD), программируемых пользователем вентильных матрицах (FPGA), процессорах общего назначения, контроллерах, узлах микроконтроллеров (MCU), микропроцессорах и других электронных узлах для реализации функции настоящего изобретения или их комбинациях. Для аппаратной реализации технология согласно настоящему изобретению может быть реализована посредством модуля, такого как процесс, функция и т.д., который реализует функцию настоящего изобретения. Программный код может храниться в запоминающем устройстве и исполняться процессором. Запоминающее устройство может быть реализовано внутри или снаружи процессора.
[00658] Альтернативно в качестве другого варианта осуществления первый процессор 1303 дополнительно может быть выполнен с возможностью исполнения способа согласно вышеописанному варианту осуществления при исполнении компьютерной программы.
[00659] В варианте осуществления предоставлен кодер. Кодер может содержать первый узел определения и узел кодирования. Соответственно, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
[00660] В еще одном варианте осуществления настоящего изобретения на основе тех же концепций настоящего изобретения, что и в предыдущих вариантах осуществления, на фиг. 14 представлена схема структуры декодера 140 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 14, декодер 140 может содержать узел 1401 анализа и второй узел 1402 определения.
[00661] Узел 1401 анализа выполнен с возможностью определения путем анализа битового потока идентификационной информации о компоненте текущего слайса и информации о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.
[00662] Второй узел 1402 определения выполнен с возможностью получения местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.
[00663] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00664] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения первой идентификационной информации о синтаксическом элементе путем анализа битового потока.
[00665] Второй узел 1402 определения дополнительно выполнен с возможностью определения идентификационной информации о компоненте текущего слайса путем анализа битового потока в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности. Текущая последовательность может включать текущий слайс.
[00666] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения второй идентификационной информации о синтаксическом элементе путем анализа битового потока; определения третьей идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности; и определения первой идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
[00667] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности, в ответ на то, что значение второй идентификационной информации о синтаксическом элементе является первым значением; или определения того, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта не применена к текущей последовательности, в ответ на то, что значение второй идентификационной информации о синтаксическом элементе является вторым значением.
[00668] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, в ответ на то, что значение третьей идентификационной информации о синтаксическом элементе является первым значением; или определения того, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона не применено к текущей последовательности, в ответ на то, что значение третьей идентификационной информации о синтаксическом элементе является вторым значением.
[00669] В некоторых вариантах осуществления применение расширения диапазона к текущей последовательности может включать следующее: текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.
[00670] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, в ответ на то, что значение первой идентификационной информации о синтаксическом элементе является первым значением; или определения того, что первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для текущей последовательности, в ответ на то, что значение первой идентификационной информации о синтаксическом элементе является вторым значением.
[00671] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения того, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, в ответ на то, что значение идентификационной информации о компоненте является вторым значением.
[00672] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента текущего блока непосредственно согласно информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.
[00673] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00674] В некоторых вариантах осуществления компонент содержит по меньшей мере один из первого компонента цвета, второго компонента цвета или третьего компонента цвета.
[00675] Первый компонент цвета представляет собой компонент яркости, второй компонент цвета представляет собой первый компонент цветности, и третий компонент цвета представляет собой второй компонент цветности.
[00676] Альтернативно первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент.
[00677] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, определения количества частей идентификационной информации о компоненте текущего слайса равным 1 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 2 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется двумя компонентами цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 3 в ответ на то, что каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.
[00678] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения первой идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00679] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение первой идентификационной информации о компоненте является первым значением.
[00680] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00681] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение второй идентификационной информации о компоненте является первым значением; и определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета, отличному от двух компонентов цвета, из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение третьей идентификационной информации о компоненте является первым значением.
[00682] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса путем анализа битового потока.
[00686] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса, в ответ на то, что значение четвертой идентификационной информации о компоненте является первым значением; определения того, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса, в ответ на то, что значение пятой идентификационной информации о компоненте является первым значением; и определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса, в ответ на то, что значение шестой идентификационной информации о компоненте является первым значением.
[00684] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью получения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента путем анализа битового потока.
[00685] Второй узел 1402 определения дополнительно выполнен с возможностью определения горизонтальной координаты последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе горизонтальной координаты последнего значимого коэффициента; определения вертикальной координаты последнего значимого коэффициента согласно информации о префиксе вертикальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента; и определения информации о координатах последнего значимого коэффициента текущего блока согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00686] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.
[00687] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения ширины и высоты текущего блока; получения горизонтальной координаты последнего значимого коэффициента путем вычитания расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из ширины текущего блока; получения вертикальной координаты последнего значимого коэффициента путем вычитания расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из высоты текущего блока; и определения местоположения последнего значимого коэффициента текущего блока согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
[00688] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса; и определения местоположения последнего значимого коэффициента текущего блока согласно расстоянию по горизонтали и расстоянию по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.
[00689] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о разрешаемом последнем коэффициенте текущего блока путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности; и определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования в ответ на идентификационную информацию о разрешаемом последнем коэффициенте, указывающую, что местоположение последнего коэффициента применено к текущему блоку.
[00690] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является первым значением; или определения того, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку, в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением.
[00691] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью получения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента путем анализа битового потока в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением.
[00692] Второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.
[00693] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00694] В некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.
[00695] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью установки местоположения последнего значимого коэффициента как местоположения последнего коэффициента.
[00696] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения ширины и высоты блока преобразования, полученных путем выполнения заданной операции в отношении текущего блока; вычисления информации о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования; и определения местоположения последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.
[00697] В некоторых вариантах осуществления заданная операция включает по меньшей мере операцию нулевого вывода.
[00698] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о координатах нижнего правого угла блока преобразования в ответ на установку местоположения последнего значимого коэффициента как местоположения последнего коэффициента.
[00699] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о кодируемом по умолчанию подблоке текущего блока путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности; и декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию.
[00700] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о кодируемом подблоке для подблока, подлежащего декодированию, путем анализа битового потока в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию; и декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на то, что значение идентификационной информации о кодируемом подблоке является первым значением.
[00701] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, в ответ на то, что значение идентификационной информации о кодируемом по умолчанию подблоке является первым значением; или определения того, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию, в ответ на то, что значение идентификационной информации о кодируемом по умолчанию подблоке является вторым значением.
[00702] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения необходимости декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на то, что значение идентификационной информации о кодируемом подблоке является первым значением; или определения коэффициентов в подблоке, подлежащем декодированию, как нулевых в ответ на то, что значение идентификационной информации о кодируемом подблоке является вторым значением.
[00703] В некоторых вариантах осуществления первое значение равно 1, а второе значение равно 0.
[00704] Понятно, что в варианте осуществления «узел» может быть частью схемы, частью процессора, частью программы или программного обеспечения и/или т.п. Конечно, «узел» может быть модулем или может быть немодульным. Кроме того, компоненты в вариантах осуществления могут быть интегрированы в одну обрабатывающую часть или существовать как отдельные физические узлы соответственно. Альтернативно два или более узлов могут быть интегрированы в один узел. Интегрированный узел может быть реализован в форме аппаратного или программного функционального узла (аппаратных или программных функциональных узлов).
[00705] При реализации в форме программного функционального модуля и продаже или использовании в качестве самостоятельного продукта интегрированный модуль в данном случае также может храниться на машиночитаемом носителе данных. Основываясь на таком понимании, вариант осуществления предоставляет компьютерный носитель данных, реализованный в декодере 140. Компьютерный носитель данных хранит в себе компьютерную программу, которая при исполнении вторым процессором реализует способ согласно любому вышеописанному варианту осуществления.
[00706] На основании состава декодера 140 и компьютерного носителя данных на фиг. 15 представлена схема аппаратной структуры декодера 140 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 15, декодер может содержать второй интерфейс 1501 связи, второе запоминающее устройство 1502 и второй процессор 1503. Различные компоненты могут быть взаимосвязаны посредством второго оборудования 1504 в виде шин. Понятно, что второе оборудование 1504 в виде шин выполнено с возможностью реализации соединения и связи между этими компонентами. В дополнение к шине данных, второе оборудование 1504 в виде шин дополнительно может содержать шину питания, шину управления и шину сигнала статуса. Однако для ясности описания различные шины обозначены как второе оборудование 1504 в виде шин на фиг. 15.
[00707] Второй интерфейс 1501 связи может быть выполнен с возможностью выполнения отправки и приема сигнала при выполнении отправки и приема информации с помощью другого внешнего сетевого элемента.
[00708] Второе запоминающее устройство 1502 выполнено с возможностью хранения в нем компьютерной программы, исполняемой вторым процессором 1503.
[00709] Второй процессор 1503 выполнен с возможностью исполнения компьютерной программы для выполнения следующих операций.
[00710] Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока;
[00711] в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента; и
[00712] коэффициенты текущего блока определяют путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.
[00713] Альтернативно в качестве другого варианта осуществления второй процессор 1503 дополнительно может быть выполнен с возможностью исполнения компьютерной программы для реализации способа согласно любому из вышеописанных вариантов осуществления.
[00714] Понятно, что второе запоминающее устройство 1502 подобно первому запоминающему устройству 1302 с точки зрения аппаратной функции, и второй процессор 1503 подобен первому процессору 1303 с точки зрения аппаратной функции, что не описано подробно в данном документе.
[00715] В варианте осуществления предоставлен декодер. Декодер может содержать узел анализа и второй узел определения. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
[00716] Следует отметить, что в настоящем изобретении такой термин, как «включать/содержать», «содержащий» или любой другой вариант этого термина, предназначен для охвата неисключительного включения, так что процесс, способ, изделие или устройство, содержащие ряд элементов, не только содержит элементы, но также содержит другой элемент (другие элементы), который не указан (которые не указаны) в явном виде, или элемент (элементы), присущий (присущие) такому процессу, способу, изделию или устройству. При отсутствии дополнительных ограничений элемент, определенный фразой «содержащий…», не исключает существования другого идентичного элемента в процессе, способе, изделии или устройстве, которое содержит элемент.
[00717] Нумерация вариантов осуществления настоящего изобретения приведена просто для иллюстрации и не указывает на преимущество одного варианта осуществления над другим.
[00718] Способы, раскрытые в вариантах осуществления способа согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления способа, при условии что в результате комбинации не возникает противоречия.
[00719] Признаки, раскрытые в вариантах осуществления продукта согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления продукта, при условии что в результате комбинации не возникает противоречия.
[00720] Признаки, раскрытые в вариантах осуществления способа или устройства согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления способа или устройства, при условии что в результате комбинации не возникает противоречия.
[00721] Описанное является лишь вариантами осуществления настоящего изобретения и не предназначено для ограничения объема настоящего изобретения. Любая модификация, эквивалентная замена и/или т.п., выполненные в пределах технического объема настоящего изобретения, которые могут быть очевидны специалисту в данной области техники, должны быть включены в объем настоящего изобретения. Поэтому объем настоящего изобретения следует определять по формуле изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[00722] В вариантах осуществления настоящего изобретения кодер определяет идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Кодер определяет информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Кодер кодирует коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Кодер предоставляет битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента в битовый поток. Декодер определяет идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, декодер получает местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Декодер определяет коэффициенты текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Соответственно, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, идентификационная информация о компоненте может использоваться для отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.
Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Определяют идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока из блоков в текущем слайсе. В ответ на идентификационную информацию, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к блокам текущего слайса, получают местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Определяют коэффициенты текущего блока путем декодирования коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования. В ответ на то, что значение первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента является первым значением, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из компонента яркости, первого компонента цветности и второго компонента цветности текущего слайса. 4 н. и 9 з.п. ф-лы, 17 ил.
1. Способ декодирования, выполняемый декодером, причем способ включает:
определение путем анализа битового потока идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и информации о координатах последнего значимого коэффициента текущего блока из блоков в текущем слайсе;
в ответ на идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к блокам текущего слайса, получение местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента; и
определение коэффициентов текущего блока путем декодирования коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования,
при этом текущий слайс содержит компонент яркости, первый компонент цветности и второй компонент цветности,
при этом определение идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса путем анализа битового потока включает: определение первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса путем анализа битового потока, при этом способ дополнительно включает:
в ответ на то, что значение первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента является первым значением, определение того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из компонента яркости, первого компонента цветности и второго компонента цветности текущего слайса.
2. Способ по п. 1, отличающийся тем, что дополнительно включает:
определение первой идентификационной информации о синтаксическом элементе путем анализа битового потока; и
выполнение операции определения идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса путем анализа битового потока в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, при этом текущая последовательность содержит текущий слайс.
3. Способ по п. 2, отличающийся тем, что дополнительно включает:
определение второй идентификационной информации о синтаксическом элементе путем анализа битового потока;
определение третьей идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности; и
выполнение операции определения первой идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
4. Способ по п. 3, отличающийся тем, что дополнительно включает:
в ответ на то, что значение третьей идентификационной информации о синтаксическом элементе является первым значением, определение того, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности;
при этом расширение диапазона применяют к текущей последовательности, что предусматривает следующее: текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.
5. Способ по п. 1, отличающийся тем, что дополнительно включает:
в ответ на то, что значение идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента является вторым значением, определение того, что идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блокам в текущем слайсе,
в ответ на идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к блокам в текущем слайсе, определение местоположения последнего значимого коэффициента текущего блока как равного информации о координатах последнего значимого коэффициента; и
определение коэффициентов текущего блока путем декодирования коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования.
6. Способ по п. 1, отличающийся тем, что дополнительно включает:
в ответ на идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к блокам в текущем слайсе, определение информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и местоположением нижнего правого дискретного значения текущего блока,
при этом получение местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента включает:
определение ширины и высоты текущего блока;
получение горизонтальной координаты последнего значимого коэффициента путем вычитания расстояния по горизонтали между местоположением последнего значимого коэффициента и местоположением нижнего правого дискретного значения текущего блока из ширины текущего блока;
получение вертикальной координаты последнего значимого коэффициента путем вычитания расстояния по вертикали между местоположением последнего значимого коэффициента и местоположением нижнего правого дискретного значения текущего блока из высоты текущего блока; и
определение местоположения последнего значимого коэффициента текущего блока согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.
7. Способ по п. 1, отличающийся тем, что дополнительно включает:
в ответ на идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к блокам в текущем слайсе, определение информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и местоположением верхнего левого дискретного значения текущего блока; и
определение местоположения последнего значимого коэффициента текущего блока согласно расстоянию по горизонтали и расстоянию по вертикали между местоположением последнего значимого коэффициента и местоположением верхнего левого дискретного значения текущего блока.
8. Способ по любому из пп. 3-4, отличающийся тем, что дополнительно включает: в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности,
определение идентификационной информации о разрешаемом последнем коэффициенте текущего блока путем анализа битового потока; и
в ответ на идентификационную информацию о разрешаемом последнем коэффициенте, указывающую, что местоположение последнего коэффициента применено к текущему блоку, определение коэффициентов текущего блока путем декодирования коэффициентов, расположенных перед местоположением последнего коэффициента, в заданном порядке сканирования,
причем способ дополнительно включает:
определение ширины и высоты блока преобразования, полученных путем выполнения заданной операции в отношении текущего блока, при этом заданная операция включает по меньшей мере операцию нулевого вывода;
вычисление информации о координатах нижнего правого дискретного значения блока преобразования согласно ширине и высоте блока преобразования; и
определение местоположения последнего коэффициента согласно информации о координатах нижнего правого дискретного значения блока преобразования.
9. Способ кодирования, выполняемый кодером, причем способ включает:
определение идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и местоположения последнего значимого коэффициента текущего блока из блоков в текущем слайсе;
определение информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента и местоположению последнего значимого коэффициента; и
кодирование коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования и предоставление в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента и информации о координатах последнего значимого коэффициента,
при этом текущий слайс содержит компонент яркости, первый компонент цветности и второй компонент цветности,
при этом определение идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса включает: определение первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса,
при этом способ дополнительно включает:
определение значения первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применяют к каждому из первого компонента цветности, второго компонента цветности и третьего компонента цветности текущего слайса.
10. Способ по п. 9, отличающийся тем, что дополнительно включает: перед определением идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса
определение первой идентификационной информации о синтаксическом элементе; и
выполнение операции определения идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, при этом текущая последовательность содержит текущий слайс.
11. Способ по п. 10, отличающийся тем, что дополнительно включает: перед определением первой идентификационной информации о синтаксическом элементе
определение второй идентификационной информации о синтаксическом элементе;
определение третьей идентификационной информации о синтаксическом элементе в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности; и
выполнение операции определения первой идентификационной информации о синтаксическом элементе в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.
12. Кодер, содержащий первый узел определения и узел кодирования, при этом
первый узел определения выполнен с возможностью определения идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и местоположения последнего значимого коэффициента текущего блока из блоков в текущем слайсе,
первый узел определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента и местоположению последнего значимого коэффициента; и
узел кодирования выполнен с возможностью кодирования коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования и предоставления в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента и информации о координатах последнего значимого коэффициента,
при этом текущий слайс содержит компонент яркости, первый компонент цветности и второй компонент цветности,
первый узел определения дополнительно выполнен с возможностью определения идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и определения значения первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цветности, второго компонента цветности и третьего компонента цветности текущего слайса.
13. Декодер, содержащий узел анализа и второй узел определения, при этом
узел анализа выполнен с возможностью определения путем анализа битового потока идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса и информации о координатах последнего значимого коэффициента текущего блока из блоков в текущем слайсе;
второй узел определения выполнен с возможностью получения местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию об изменении местоположения на обратное последнего значимого коэффициента, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к блокам в текущем слайсе; и
узел анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных перед местоположением последнего значимого коэффициента, в заданном порядке сканирования,
при этом текущий слайс содержит компонент яркости, первый компонент цветности и второй компонент цветности,
узел анализа дополнительно выполнен с возможностью определения идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента текущего слайса путем анализа битового потока,
второй узел определения дополнительно выполнен с возможностью определения, в ответ на то, что значение первой идентификационной информации об изменении местоположения на обратное последнего значимого коэффициента является первым значением, того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из компонента яркости, первого компонента цветности и второго компонента цветности текущего слайса.
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
CN 108353179 A, 31.07.2018 | |||
US 10405000 B2, 03.09.2019 | |||
CN 112543338 A, 23.03.2021 | |||
CN 102752592 A, 24.10.2012 | |||
СПОСОБ, УСТРОЙСТВО И СИСТЕМА ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ КАРТЫ ЗНАЧИМОСТИ ДЛЯ ОСТАТОЧНЫХ КОЭФФИЦИЕНТОВ ЕДИНИЦЫ ПРЕОБРАЗОВАНИЯ | 2019 |
|
RU2714108C1 |
Авторы
Даты
2025-03-24—Публикация
2021-06-29—Подача