RU2836841C2 - Encoding and decoding method, encoder and decoder - Google Patents
Encoding and decoding method, encoder and decoder Download PDFInfo
- Publication number
- RU2836841C2 RU2836841C2 RU2024100542A RU2024100542A RU2836841C2 RU 2836841 C2 RU2836841 C2 RU 2836841C2 RU 2024100542 A RU2024100542 A RU 2024100542A RU 2024100542 A RU2024100542 A RU 2024100542A RU 2836841 C2 RU2836841 C2 RU 2836841C2
- Authority
- RU
- Russia
- Prior art keywords
- significant coefficient
- identification information
- last significant
- last
- location
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 237
- 230000004044 response Effects 0.000 claims abstract description 101
- 230000008859 change Effects 0.000 claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 18
- 230000006835 compression Effects 0.000 claims description 52
- 238000007906 compression Methods 0.000 claims description 52
- 230000009466 transformation Effects 0.000 claims description 45
- 238000004458 analytical method Methods 0.000 claims description 33
- 230000002441 reversible effect Effects 0.000 claims description 13
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 97
- 230000008569 process Effects 0.000 description 43
- 238000013139 quantization Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 22
- 238000004590 computer program Methods 0.000 description 18
- 238000001914 filtration Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000005192 partition Methods 0.000 description 9
- 238000000638 solvent extraction Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[0001] Варианты осуществления настоящего изобретения относятся к области технологий кодирования и декодирования видео и, в частности, к способу кодирования, способу декодирования, битовому потоку, кодеру, декодеру и компьютерному носителю данных.[0001] Embodiments of the present invention relate to the field of video encoding and decoding technologies and, in particular, to an encoding method, a decoding method, a bitstream, an encoder, a decoder and a computer storage medium.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯPREREQUISITES FOR THE CREATION OF THE INVENTION
[0002] Область компьютерного зрения привлекает все большее внимание в связи с повышением требований к качеству отображения видео. В последнее время технология обработки изображений успешно применяется во всех сферах жизни. При кодировании и декодировании видеоизображения на стороне кодера данные изображения, подлежащие кодированию, подвергаются кодированию со сжатием с помощью узла энтропийного кодирования после подвергания обработке преобразованием и квантованием, и битовый поток, сгенерированный в результате энтропийного кодирования, передается на декодер; на стороне декодера битовый поток анализируется, а затем первоначально введенные данные изображения могут быть восстановлены путем выполнения обратного квантования и обратного преобразования.[0002] The field of computer vision has attracted increasing attention due to the increasing requirements for video display quality. Recently, image processing technology has been successfully applied in all walks of life. In video image encoding and decoding, on the encoder side, the image data to be encoded is subjected to compression encoding by an entropy encoding unit after being subjected to transformation and quantization processing, and the bit stream generated as a result of the entropy encoding is transmitted to the decoder; on the decoder side, the bit stream is analyzed, and then the originally input image data can be restored by performing inverse quantization and inverse transformation.
[0003] В настоящее время для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством и высокой битовой скоростью (сокращенно видео с тройной высокой четкостью) обычно требуется больше коэффициентов, которые подлежат кодированию и декодированию, причем коэффициенты также больше, чем для кодирования и декодирования видео с низкой битовой глубиной, низким качеством и низкой битовой скоростью (которое может называться обычным видео). Соответственно, для видео с тройной высокой четкостью существующее соответствующее решение может привести к большему потреблению ресурсов в битовом потоке, приводя к нерациональному использованию.[0003] At present, encoding and decoding of high bit depth, high quality and high bit rate video (abbreviated as triple high definition video) generally requires more coefficients to be encoded and decoded, and the coefficients are also larger than encoding and decoding of low bit depth, low quality and low bit rate video (which may be called normal video). Accordingly, for triple high definition video, the existing corresponding solution may result in greater resource consumption in the bitstream, resulting in wasteful use.
СУЩНОСТЬ ИЗОБРЕТЕНИЯESSENCE OF THE INVENTION
[0004] Варианты осуществления настоящего изобретения обеспечивают способ кодирования, способ декодирования, битовый поток, кодер, декодер и компьютерный носитель данных, которые могут быть применены к сценарию кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или сжатием без потерь, и могут повысить эффективность сжатия.[0004] Embodiments of the present invention provide an encoding method, a decoding method, a bitstream, an encoder, a decoder, and a computer storage medium that can be applied to a scenario of encoding and decoding video with high bit depth, high bit rate, high quality, or lossless compression, and can improve compression efficiency.
[0005] Технические решения согласно вариантам осуществления настоящего изобретения могут быть реализованы следующим образом.[0005] The technical solutions according to the embodiments of the present invention can be implemented as follows.
[0006] В первом аспекте в вариантах осуществления настоящего изобретения предоставлен способ декодирования, выполняемый декодером. Способ включает следующие операции.[0006] In a first aspect, embodiments of the present invention provide a decoding method performed by a decoder. The method includes the following operations.
[0007] Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока.[0007] Identification information about the component of the current slice and information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice are determined by analyzing the bitstream.
[0008] В ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента.[0008] In response to identification information about a component indicating that a reversal of the location of the last significant coefficient is applied to a component of the current slice, the location of the last significant coefficient of the current block is obtained by performing a calculation with respect to the coordinate information of the last significant coefficient.
[0009] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[0009] The coefficients of the current block are determined by decoding all coefficients located above the location of the last significant coefficient, in a given scan order.
[0010] Во втором аспекте в вариантах осуществления настоящего изобретения предоставлен способ кодирования, выполняемый кодером. Способ включает следующие операции.[0010] In a second aspect, embodiments of the present invention provide an encoding method performed by an encoder. The method includes the following operations.
[0011] Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[0011] Determine identification information about a component of the current slice and the location of the last significant coefficient of the current block corresponding to the component of the current slice.
[0012] Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.[0012] Determine coordinate information of the last significant coefficient of the current block according to identification information of the component and the location of the last significant coefficient.
[0013] Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования, и битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.[0013] All coefficients located above the location of the last significant coefficient are encoded in a given scanning order, and bit information obtained through the encoding, identification information about the component, and information about the coordinates of the last significant coefficient are provided to the bit stream.
[0014] В третьем аспекте в вариантах осуществления настоящего изобретения предоставлен битовый поток. Битовый поток генерируется путем выполнения битового кодирования в отношении информации, подлежащей кодированию. Информация, подлежащая кодированию, содержит по меньшей мере одну из первой идентификационной информации о синтаксическом элементе, второй идентификационной информации о синтаксическом элементе, третьей идентификационной информации о синтаксическом элементе, идентификационной информации о компоненте, идентификационной информации о разрешаемом последнем коэффициенте или идентификационной информации о кодируемом по умолчанию подблоке.[0014] In a third aspect, embodiments of the present invention provide a bit stream. The bit stream is generated by performing bit encoding on information to be encoded. The information to be encoded comprises at least one of first identification information about a syntax element, second identification information about a syntax element, third identification information about a syntax element, identification information about a component, identification information about a resolved last coefficient, or identification information about a default encoded sub-block.
[0015] Первая идентификационная информация о синтаксическом элементе указывает, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Вторая идентификационная информация о синтаксическом элементе указывает, применена ли к текущей последовательности версия расширения стандарта. Третья идентификационная информация о синтаксическом элементе указывает, применено ли расширение диапазона к текущей последовательности. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Идентификационная информация о разрешаемом последнем коэффициенте указывает, применено ли местоположение последнего коэффициента к текущему блоку. Идентификационная информация о кодируемом по умолчанию подблоке указывает, кодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке. Текущая последовательность содержит текущий слайс. Текущий слайс содержит текущий блок.[0015] The first identification information about the syntax element indicates whether the reversal of the last significant coefficient is allowed for the current sequence. The second identification information about the syntax element indicates whether a version of the standard extension is applied to the current sequence. The third identification information about the syntax element indicates whether a range extension is applied to the current sequence. The identification information about the component indicates whether the reversal of the last significant coefficient is applied to the component of the current slice. The identification information about the allowed last coefficient indicates whether the location of the last coefficient is applied to the current block. The identification information about the default coded sub-block indicates whether the sub-block to be coded is coded by default in the current block. The current sequence contains the current slice. The current slice contains the current block.
[0016] В четвертом аспекте в вариантах осуществления настоящего изобретения предоставлен кодер. Кодер содержит первый узел определения и узел кодирования.[0016] In a fourth aspect, in embodiments of the present invention, an encoder is provided. The encoder comprises a first determining unit and an encoding unit.
[0017] Первый узел определения выполнен с возможностью определения идентификационной информации о компоненте текущего слайса и определения местоположения последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[0017] The first determining unit is configured to determine identification information about a component of the current slice and to determine the location of the last significant coefficient of the current block corresponding to the component of the current slice.
[0018] Первый узел определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.[0018] The first determining unit is further configured to determine information about the coordinates of the last significant coefficient of the current block according to the identification information about the component and the location of the last significant coefficient.
[0019] Узел кодирования выполнен с возможностью кодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации о компоненте и информации о координатах последнего значимого коэффициента.[0019] The encoding unit is configured to encode all coefficients located above the location of the last significant coefficient in a given scanning order and to provide in the bit stream the bit information obtained by encoding, the identification information about the component and the information about the coordinates of the last significant coefficient.
[0020] В пятом аспекте в вариантах осуществления настоящего изобретения предоставлен кодер. Кодер содержит первое запоминающее устройство и первый процессор.[0020] In a fifth aspect, in embodiments of the present invention, an encoder is provided. The encoder comprises a first memory device and a first processor.
[0021] Первое запоминающее устройство выполнено с возможностью хранения на нем компьютерной программы, исполняемой первым процессором.[0021] The first storage device is configured to store thereon a computer program executed by the first processor.
[0022] Первый процессор выполнен с возможностью исполнения компьютерной программы для выполнения способа кодирования согласно второму аспекту.[0022] The first processor is configured to execute a computer program for performing the encoding method according to the second aspect.
[0023] В шестом аспекте в вариантах осуществления настоящего изобретения предоставлен декодер. Декодер содержит узел анализа и второй узел определения.[0023] In a sixth aspect, embodiments of the present invention provide a decoder. The decoder comprises an analysis unit and a second determination unit.
[0024] Узел анализа выполнен с возможностью определения путем анализа битового потока идентификационной информации о компоненте текущего слайса и информации о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[0024] The analysis unit is configured to determine, by analyzing the bit stream, identification information about the component of the current slice and information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice.
[0025] Второй узел определения выполнен с возможностью получения местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.[0025] The second determining unit is configured to obtain the location of the last significant coefficient of the current block by performing a calculation with respect to information about the coordinates of the last significant coefficient in response to identification information about the component indicating that a change in the location to the inverse of the last significant coefficient is applied to the component of the current slice.
[0026] Узел анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[0026] The analysis unit is further configured to determine the coefficients of the current block by decoding all coefficients located above the location of the last significant coefficient, in a given scanning order.
[0027] В седьмом аспекте в вариантах осуществления настоящего изобретения предоставлен декодер. Декодер содержит второе запоминающее устройство и второй процессор.[0027] In a seventh aspect, embodiments of the present invention provide a decoder. The decoder comprises a second memory device and a second processor.
[0028] Второе запоминающее устройство выполнено с возможностью хранения на нем компьютерной программы, исполняемой вторым процессором.[0028] The second storage device is configured to store thereon a computer program executed by the second processor.
[0029] Второй процессор выполнен с возможностью исполнения компьютерной программы для выполнения способа декодирования согласно первому аспекту.[0029] The second processor is configured to execute a computer program for performing the decoding method according to the first aspect.
[0030] В восьмом аспекте в вариантах осуществления настоящего изобретения предоставлен компьютерный носитель данных. Компьютерный носитель данных имеет сохраненную на нем компьютерную программу. При исполнении компьютерная программа реализует способ согласно первому аспекту или способ согласно второму аспекту.[0030] In an eighth aspect, in embodiments of the present invention, a computer storage medium is provided. The computer storage medium has a computer program stored thereon. When executed, the computer program implements the method according to the first aspect or the method according to the second aspect.
[0031] В вариантах осуществления настоящего изобретения предоставлены способ кодирования, способ декодирования, битовый поток, кодер, декодер и компьютерный носитель данных. Кодер определяет идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса; определяет информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента; и кодирует все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования, а также предоставляет битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента в битовый поток. Декодер определяет путем анализа битового потока идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса; в ответ на то, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, получает местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента; и определяет коэффициенты текущего блока путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что может сокращать потребление ресурсов, вызванное кодированием в битовом потоке, и, таким образом, повышать эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, соответствующая идентификационная информация о компоненте может использоваться для управления соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[0031] In embodiments of the present invention, an encoding method, a decoding method, a bit stream, an encoder, a decoder and a computer storage medium are provided. The encoder determines identification information about a component of a current slice and a location of the last significant coefficient of a current block corresponding to the component of the current slice; determines coordinate information of the last significant coefficient of the current block according to the identification information about the component and the location of the last significant coefficient; and codes all coefficients located above the location of the last significant coefficient in a given scanning order, and provides bit information obtained by encoding, the identification information about the component and the coordinate information of the last significant coefficient to a bit stream. The decoder determines, by analyzing the bit stream, the identification information about the component of the current slice and the coordinate information of the last significant coefficient of the current block corresponding to the component of the current slice; in response to the component identification information indicating that the reversal of the location of the last significant coefficient is applied to the component of the current slice, obtains the location of the last significant coefficient of the current block by performing a calculation with respect to the coordinate information of the last significant coefficient; and determines the coefficients of the current block by decoding all the coefficients located above the location of the last significant coefficient in a predetermined scanning order. In this way, in the scenario of encoding and decoding video with a high bit depth, high bit rate, high quality or lossless video, a reasonable acquisition mode of the last significant coefficient is set according to the distribution law of the significant coefficients, which can reduce the consumption of resources caused by encoding in a bitstream and thus improve the compression efficiency. In addition, since the corresponding color components may be different in the distribution of the significant coefficients, the corresponding component identification information can be used to control the corresponding acquisition mode of the last significant coefficient for each color component, i.e. separate control over whether to apply the last significant coefficient reversal technique to each color component, thereby further improving compression efficiency.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS
[0032] На фиг. 1 представлена схема применения системы кодирования в уровне техники.[0032] Fig. 1 shows a diagram of the application of the coding system in the prior art.
[0033] На фиг. 2 представлена схема соотношения между местоположением текущего коэффициента и местоположением соседнего коэффициента в уровне техники.[0033] Fig. 2 shows a diagram of the relationship between the location of the current coefficient and the location of the neighboring coefficient in the prior art.
[0034] На фиг. 3 представлена блок-схема процесса арифметического декодирования двоичного числа в уровне техники.[0034] Fig. 3 shows a block diagram of a process for arithmetic decoding of a binary number in the prior art.
[0035] На фиг. 4 представлена блок-схема процесса арифметического декодирования двоичного символа в уровне техники.[0035] Fig. 4 is a block diagram of a process for arithmetic decoding of a binary symbol in the prior art.
[0036] На фиг. 5 представлена блок-схема перенормировки механизма арифметического декодирования в уровне техники.[0036] Fig. 5 shows a block diagram of the renormalization of the arithmetic decoding mechanism in the prior art.
[0037] На фиг. 6 представлена блок-схема процесса обходного декодирования в уровне техники.[0037] Fig. 6 shows a flow chart of a bypass decoding process in the prior art.
[0038] На фиг. 7 представлена схема соотношения между местоположением области, содержащей возможный значимый коэффициент, и местоположением области нулевого вывода в уровне техники.[0038] Fig. 7 is a diagram showing the relationship between the location of the region containing the possible significant coefficient and the location of the zero output region in the prior art.
[0039] На фиг. 8A представлена схема структуры системы кодера согласно вариантам осуществления настоящего изобретения.[0039] Fig. 8A is a diagram of the structure of an encoder system according to embodiments of the present invention.
[0040] На фиг. 8B представлена схема структуры системы декодера согласно вариантам осуществления настоящего изобретения.[0040] Fig. 8B is a diagram of the structure of a decoder system according to embodiments of the present invention.
[0041] На фиг. 9 представлена блок-схема способа декодирования согласно вариантам осуществления настоящего изобретения.[0041] Fig. 9 is a flow chart of a decoding method according to embodiments of the present invention.
[0042] На фиг. 10A представлена схема местоположения последнего значимого коэффициента в соотношении с верхним левым углом текущего блока согласно вариантам осуществления настоящего изобретения.[0042] Fig. 10A is a diagram showing the location of the last significant coefficient in relation to the upper left corner of the current block according to embodiments of the present invention.
[0043] На фиг. 10B представлена схема местоположения последнего значимого коэффициента в соотношении с нижним правым углом текущего блока согласно вариантам осуществления настоящего изобретения.[0043] Fig. 10B is a diagram showing the location of the last significant coefficient in relation to the lower right corner of the current block according to embodiments of the present invention.
[0044] На фиг. 11 представлена блок-схема способа кодирования согласно вариантам осуществления настоящего изобретения.[0044] Fig. 11 is a flow chart of a coding method according to embodiments of the present invention.
[0045] На фиг. 12 представлена схема структуры кодера согласно вариантам осуществления настоящего изобретения.[0045] Fig. 12 is a diagram of the structure of an encoder according to embodiments of the present invention.
[0046] На фиг. 13 представлена схема аппаратной структуры кодера согласно вариантам осуществления настоящего изобретения.[0046] Fig. 13 is a diagram of a hardware structure of an encoder according to embodiments of the present invention.
[0047] На фиг. 14 представлена схема структуры декодера согласно вариантам осуществления настоящего изобретения.[0047] Fig. 14 is a diagram of the structure of a decoder according to embodiments of the present invention.
[0048] На фиг. 15 представлена схема аппаратной структуры декодера согласно вариантам осуществления настоящего изобретения.[0048] Fig. 15 is a diagram of a hardware structure of a decoder according to embodiments of the present invention.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0049] Варианты осуществления настоящего изобретения описаны далее в данном документе со ссылкой на графические материалы, чтобы обеспечить возможность более глубокого понимания особенностей и технического содержания каждого варианта осуществления здесь. Приведенные в данном документе графические материалы служат лишь для справки и пояснения и не предназначены для ограничения вариантов осуществления настоящего изобретения.[0049] Embodiments of the present invention are described hereinafter with reference to drawings in order to provide a deeper understanding of the features and technical content of each embodiment herein. The drawings provided herein are for reference and explanation only and are not intended to limit the embodiments of the present invention.
[0050] Если не определено иное, все технические и научные термины, используемые в данном документе, имеют те же значения, которые обычно понимаются специалистом в данной области техники настоящего изобретения. Термины, используемые в техническом описании настоящего изобретения, предназначены только для описания конкретного варианта осуществления и не предназначены для ограничения настоящего изобретения.[0050] Unless otherwise defined, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art of the present invention. The terms used in the technical description of the present invention are only intended to describe a particular embodiment and are not intended to limit the present invention.
[0051] В последующем описании «некоторый вариант (некоторые варианты) осуществления» описывает (описывают) подмножество всех возможных вариантов осуществления. Однако понятно, что «некоторый вариант (некоторые варианты) осуществления» может (могут) быть одним и тем же подмножеством всех возможных вариантов осуществления или разными подмножествами всех возможных вариантов осуществления, и может (могут) быть объединен (объединены) друг с другом, если в результате объединения не возникает противоречий. Также следует отметить, что в вариантах осуществления настоящего изобретения термины «первый/второй/третий» используются только для нахождения отличий похожих объектов и не обозначают конкретный порядок объектов. Понятно, что, когда это разрешено, «первый/второй/третий» в конкретном порядке является взаимозаменяемым, чтобы обеспечить возможность реализации вариантов настоящего изобретения, описанных здесь, в порядке, отличном от того, который изображен или описан здесь.[0051] In the following description, "some embodiment(s)" describes a subset of all possible embodiments. However, it is understood that "some embodiment(s)" may be the same subset of all possible embodiments or different subsets of all possible embodiments, and may be combined with each other if the combination does not result in a contradiction. It should also be noted that in the embodiments of the present invention, the terms "first/second/third" are used only to distinguish between similar objects and do not denote a specific order of objects. It is understood that, where permitted, "first/second/third" in a specific order is interchangeable to allow the embodiments of the present invention described herein to be implemented in an order different from that shown or described herein.
[0052] В видеоизображении блок кодирования (СВ) обычно обозначен первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета. Три компонента цвета могут представлять собой компонент яркости, синий компонент цветности и красный компонент цветности соответственно. В частности, компонент яркости обозначается в общем как Y. Синий компонент цветности может обозначаться в общем как Cb или U. Красный компонент цветности может обозначаться в общем как Cr или V. Таким образом, видеоизображение может быть выражено в формате YCbCr или в формате YUV.[0052] In a video image, a coding unit (CU) is usually designated by a first color component, a second color component, and a third color component. The three color components may be a luminance component, a blue chroma component, and a red chroma component, respectively. In particular, the luminance component is generally designated as Y. The blue chroma component may be generally designated as Cb or U. The red chroma component may be generally designated as Cr or V. Thus, a video image may be expressed in the YCbCr format or in the YUV format.
[0053] Перед дальнейшим описанием вариантов осуществления настоящего изобретения, названия и термины, используемые в вариантах осуществления настоящего изобретения, поясняются следующим образом:[0053] Before further describing the embodiments of the present invention, the names and terms used in the embodiments of the present invention are explained as follows:
[0054] экспертная группа по движущемуся изображению (MPEG),[0054] Moving Picture Experts Group (MPEG),
[0055] совместная команда по исследованию видео (JVET),[0055] Joint Video Engineering Team (JVET),
[0056] альянс открытых средств массовой информации (AOM),[0056] Alliance for Open Media (AOM),
[0057] стандарт кодирования видео следующего поколения H.266/универсальное кодирование видео (VVC),[0057] H.266 next-generation video coding standard/Versatile Video Coding (VVC),
[0058] тестовая платформа эталонного программного обеспечения для VVC (тестовая модель VVC, VTM),[0058] VVC reference software test platform (VVC test model, VTM),
[0059] стандарт по аудио- и видеоинформации (AVS),[0059] Audio and Video Standard (AVS),
[0060] высокопроизводительная тестовая модель AVS (высокопроизводительная модель, HPM),[0060] AVS High Performance Model (High Performance Model, HPM),
[0061] регулируемое двоичное арифметическое кодирование на основе контекста (CABAC),[0061] context-based adjustable binary arithmetic coding (CABAC),
[0062] полезная нагрузка необработанной последовательности байтов (RBSP),[0062] Raw Byte Sequence Payload (RBSP),
[0063] регулярное остаточное кодирование (RRC) и[0063] regular residual coding (RRC) and
[0064] пропуск преобразования остаточного кодирования (TSRC).[0064] skip residual coding transform (TSRC).
[0065] Понятно, что в настоящее время все универсальные стандарты кодирования видео (например, VVC) используют гибридную систему кодирования на основе блоков. Каждое видеоизображение может быть разбито на наибольшие единицы кодирования (LCU), которые представляют собой квадраты одинакового размера, например, 128×128, 64×64 и т.д. Каждая LCU может быть далее разбита на единицы кодирования (CU), которые представляют собой прямоугольники, согласно определенному правилу. Кроме того, CU может быть дополнительно разбит на более мелкие узлы предсказания (PU), узлы преобразования (TU) и т.д. В частности, как показано на фиг. 1, гибридная система кодирования может содержать такие модули, как предсказание, преобразование, квантование, энтропийное кодирование, контурный фильтр и т. д. Модуль предсказания может содержать внутреннее предсказание и промежуточное предсказание. Промежуточное предсказание может включать оценку движения (ME) и компенсацию движения (MC). Поскольку соседние пиксели в одном видеоизображении сильно коррелируют друг с другом, пространственная избыточность между соседними пикселями может быть устранена с помощью внутреннего предсказания в технологии кодирования видео. Однако, поскольку соседние видеоизображения очень похожи, временная избыточность между соседними изображениями может быть устранена с помощью промежуточного предсказания в технологии кодирования видео, что тем самым повышает эффективность кодирования и декодирования.[0065] It is understood that currently all universal video coding standards (e.g. VVC) use a hybrid block-based coding system. Each video image can be divided into largest coding units (LCU), which are squares of the same size, for example, 128×128, 64×64, etc. Each LCU can be further divided into coding units (CU), which are rectangles, according to a certain rule. In addition, the CU can be further divided into smaller prediction nodes (PU), transform nodes (TU), etc. In particular, as shown in FIG. 1, the hybrid coding system can include modules such as prediction, transform, quantization, entropy coding, loop filter, etc. The prediction module can include intra prediction and intermediate prediction. The intermediate prediction can include motion estimation (ME) and motion compensation (MC). Since adjacent pixels in a video image are highly correlated with each other, the spatial redundancy between adjacent pixels can be eliminated by intra prediction in video coding technology. However, since adjacent video images are very similar, the temporal redundancy between adjacent images can be eliminated by intermediate prediction in video coding technology, thereby improving the coding and decoding efficiency.
[0066] Основная схема работы видеокодека является следующей. В кодере изображение может быть разбито на блоки. Блок предсказания текущего блока может быть получен путем выполнения внутреннего предсказания или промежуточного предсказания в отношении текущего блока. Остаточный блок может быть получен путем вычитания блока предсказания из необработанного блока текущего блока. Матрица коэффициентов квантования может быть получена путем выполнения преобразования и квантования в отношении остаточного блока. Энтропийное кодирование может быть выполнено в отношении матрицы коэффициентов квантования, и результат, полученный в результате энтропийного кодирования, может быть предоставлен в битовый поток. В декодере блок предсказания текущего блока может быть получен путем выполнения внутреннего предсказания или промежуточного предсказания в отношении текущего блока. С другой стороны, матрица коэффициентов квантования может быть получена путем декодирования битового потока. Остаточный блок может быть получен путем выполнения обратного квантования и обратного преобразования в отношении матрицы коэффициентов квантования. Восстановленный блок может быть получен путем сложения блока предсказания и остаточного блока. Восстановленное изображение может состоять из восстановленных блоков. Декодированное изображение может быть получено путем выполнения контурной фильтрации на основе изображения или на основе блока в отношении восстановленного изображения. Кодеру также необходимо получить декодированное изображение с помощью операций, аналогичных декодеру. Декодированное изображение может быть взято в качестве опорного изображения для промежуточного предсказания для последующего изображения. Информацию о разбиении блоков, информацию о режиме или информацию о параметрах предсказания, преобразования, квантования, энтропийного кодирования, контурного фильтра и т.п., которые определяются кодером, необходимо предоставить в битовый поток, если это необходимо. Затем, анализируя битовый поток и анализируя имеющуюся информацию, декодер может определить информацию о разбиении блоков, а также информацию о режиме или информацию о параметрах предсказания, преобразования, квантования, энтропийного кодирования, контурного фильтра и т.п., которые аналогичны тем, что были определены кодером, гарантируя тем самым, что декодированное изображение, полученное кодером, является аналогичным декодированному изображению, полученному декодером. Декодированное изображение, полученное кодером, как правило, может также называться восстановленным изображением. При предсказании текущий блок может быть разбит на PU. При преобразовании текущий блок может быть разбит на TU. Разбитие PU и разбитие TU могут отличаться. Описанное выше является основной схемой работы видеокодека в гибридной системе кодирования на основе блоков. С развитием технологии некоторые модули или некоторые этапы системы или потока могут быть оптимизированы. Варианты осуществления настоящего изобретения применимы к основной схеме работы видеокодека в гибридной системе кодирования на основе блоков, но не ограничиваются этим.[0066] The basic operation scheme of the video codec is as follows. In the encoder, an image may be divided into blocks. A prediction block of the current block may be obtained by performing intra prediction or intermediate prediction on the current block. A residual block may be obtained by subtracting the prediction block from the raw block of the current block. A quantization coefficient matrix may be obtained by performing transform and quantization on the residual block. Entropy coding may be performed on the quantization coefficient matrix, and the result obtained as a result of the entropy coding may be provided to the bitstream. In the decoder, a prediction block of the current block may be obtained by performing intra prediction or intermediate prediction on the current block. On the other hand, the quantization coefficient matrix may be obtained by decoding the bitstream. The residual block may be obtained by performing inverse quantization and inverse transform on the quantization coefficient matrix. The reconstructed block may be obtained by adding the prediction block and the residual block. The reconstructed image may consist of the reconstructed blocks. The decoded image can be obtained by performing loop filtering on an image basis or on a block basis on the reconstructed image. The encoder also needs to obtain the decoded image by operations similar to the decoder. The decoded image can be taken as a reference image for intermediate prediction for a subsequent image. Information on block division, mode information or information on parameters of prediction, transformation, quantization, entropy coding, loop filter, etc., which are determined by the encoder, need to be provided in the bit stream, if necessary. Then, by analyzing the bit stream and analyzing the available information, the decoder can determine the information on block division as well as mode information or information on parameters of prediction, transformation, quantization, entropy coding, loop filter, etc., which are similar to those determined by the encoder, thereby ensuring that the decoded image obtained by the encoder is similar to the decoded image obtained by the decoder. The decoded image obtained by the encoder may also be generally referred to as a reconstructed image. In prediction, the current block may be divided into PU. In transformation, the current block may be divided into TU. The division of PU and the division of TU may be different. The above is the basic operation scheme of the video codec in the hybrid block-based coding system. With the development of technology, some modules or some stages of the system or flow may be optimized. Embodiments of the present invention are applicable to the basic operation scheme of the video codec in the hybrid block-based coding system, but are not limited thereto.
[0067] В вариантах осуществления настоящего изобретения текущий блок может быть текущим CU, текущим PU или текущим блоком преобразования (TU) и т.д. Информацию о разбиении блоков, информацию о режиме и параметрах предсказания, преобразования и квантования, а также коэффициенты и т.п. можно предоставить в битовый поток посредством энтропийного кодирования. Предположим, что вероятности разных элементов различны. Короткое кодовое слово может быть присвоено элементу, вероятность появления которого выше. Длинное кодовое слово может быть присвоено элементу, вероятность появления которого меньше. Это увеличивает эффективность кодирования по сравнению с кодированием с фиксированной длиной. Однако пространство для сжатия при энтропийном кодировании ограничено, если вероятности разных элементов близки или в принципе одинаковы. CABAC представляет собой обычно используемое энтропийное кодирование. В каждом из видов высокоэффективного кодирования видео (HEVC), VVC и т.д. энтропийное кодирование выполняется с помощью CABAC. В CABAC может использоваться контекстная модель, что повышает эффективность сжатия. Однако использование и обновление контекстного режима также усложняет работу. В CABAC может быть предусмотрен обходной режим. В обходном режиме нет необходимости использовать и обновлять контекстную модель, что обеспечивает более высокую пропускную способность. В вариантах осуществления настоящего изобретения режим, в котором контекстная модель должна использоваться и обновляться в CABAC, может называться контекстным режимом.[0067] In embodiments of the present invention, the current block may be the current CU, the current PU, or the current transform unit (TU), etc. Block partition information, prediction, transform, and quantization mode and parameter information, and coefficients, etc. may be provided in a bitstream by entropy coding. Assume that the probabilities of different elements are different. A short codeword may be assigned to an element whose occurrence probability is higher. A long codeword may be assigned to an element whose occurrence probability is lower. This increases the coding efficiency compared to fixed-length coding. However, the compression space in entropy coding is limited if the probabilities of different elements are close or essentially the same. CABAC is a commonly used entropy coding. In each of high efficiency video coding (HEVC), VVC, etc., entropy coding is performed by CABAC. In CABAC, a context model may be used, which increases the compression efficiency. However, using and updating the context mode also complicates the operation. A bypass mode may be provided in CABAC. In the bypass mode, there is no need to use and update the context model, which provides higher throughput. In embodiments of the present invention, the mode in which the context model must be used and updated in CABAC may be called the context mode.
[0068] Как правило, сначала необходимо определить контекстную модель согласно определенному способу. Параметр контекстной модели может быть взят в качестве входного при вызове определенного процесса арифметического декодирования двоичного символа. Выбор контекстной модели может также зависеть от соседних коэффициентов. Например, на фиг. 2 представлена схема соотношения между местоположением текущего коэффициента и местоположением соседнего коэффициента в уровне техники. На фиг. 2 блок, залитый черным цветом, обозначает текущий коэффициент. Блок, заполненный линиями сетки, обозначает соседний коэффициент. Как показано на фиг. 2, контекстная модель, выбранная для sig_coeff_flag текущего коэффициента, должна быть определена согласно информации о 5 соседних коэффициентах справа от текущего коэффициента, ниже текущего коэффициента и ниже справа от текущего коэффициента. Дополнительно можно увидеть на фиг. 2, что работа в контекстном режиме гораздо сложнее, чем в обходном режиме, и дополнительно зависит от соседних коэффициентов.[0068] Typically, it is necessary to determine a context model first according to a certain method. The parameter of the context model may be taken as an input when calling a certain process of arithmetic decoding of a binary symbol. The selection of the context model may also depend on the neighboring coefficients. For example, Fig. 2 shows a diagram of the relationship between the location of the current coefficient and the location of the neighboring coefficient in the prior art. In Fig. 2, a block filled with black color denotes the current coefficient. A block filled with grid lines denotes the neighboring coefficient. As shown in Fig. 2, the context model selected for sig_coeff_flag of the current coefficient must be determined according to the information of 5 neighboring coefficients to the right of the current coefficient, below the current coefficient, and below the right of the current coefficient. In addition, it can be seen from Fig. 2 that the operation in the context mode is much more complicated than in the bypass mode and additionally depends on the neighboring coefficients.
[0069] Для использования контекстного режима механизм арифметического кодирования CABAC должен вызвать определенный процесс арифметического декодирования двоичного символа. Процесс может включать процесс перехода состояния, т.е. обновление контекстной модели. В процессе арифметического декодирования двоичного символа может быть вызван процесс перенормировки механизма арифметического декодирования. При использовании обходного режима необходимо вызвать процесс обходного декодирования.[0069] To use the context mode, the CABAC arithmetic coding engine must call a certain process of arithmetic decoding of the binary symbol. The process may include a state transition process, i.e., updating the context model. During the arithmetic decoding process of the binary symbol, a renormalization process of the arithmetic decoding engine may be called. When using the bypass mode, it is necessary to call the bypass decoding process.
[0070] Применение CABAC в VVC представлено далее в качестве примера.[0070] The application of CABAC in VVC is presented below as an example.
[0071] Для механизма арифметического кодирования CABAC, ctxTable, ctxIdx, bypassFlag, а также переменные состояния ivlCurrRange и ivlOffset механизма арифметического декодирования могут быть введены в процесс арифметического декодирования. Процесс арифметического декодирования может вывести значение двоичного числа.[0071] For the CABAC arithmetic coding engine, ctxTable, ctxIdx, bypassFlag, and the ivlCurrRange and ivlOffset state variables of the arithmetic decoding engine may be input into the arithmetic decoding process. The arithmetic decoding process may output the value of the binary number.
[0072] В данном документе ctxTable может быть таблицей, используемой при выборе контекстного режима, а ctxIdx может быть индексом контекстной модели.[0072] In this document, ctxTable may be a table used in selecting a context mode, and ctxIdx may be an index of a context model.
[0073] На фиг. 3 представлена блок-схема процесса арифметического декодирования двоичного числа в уровне техники. Как показано на фиг. 3, чтобы получить значение двоичного числа посредством декодирования, таблица контекстных индексов ctxTable, индекс контекстной модели ctxIdx, разрешающий флаг обходного режима bypassFlag могут быть переданы и введены в процесс арифметического декодирования DecodeBin(ctxTable, ctxIdx, bypassFlag), в частности, следующим образом.[0073] Fig. 3 is a flow chart of a process of arithmetic decoding of a binary number in the prior art. As shown in Fig. 3, in order to obtain a value of a binary number through decoding, a context index table ctxTable, a context model index ctxIdx, a bypass mode enabling flag bypassFlag can be transmitted and input into the arithmetic decoding process DecodeBin(ctxTable, ctxIdx, bypassFlag), specifically, as follows.
[0074] Процесс обходного декодирования DecodeBypass() может быть вызван, если значение bypassFlag равно 1.[0074] The DecodeBypass() bypass decoding process can be called if the bypassFlag value is 1.
[0075] В противном случае, если значение bypassFlag равно 0, значение ctxTable равно 0, и значение ctxIdx равно 0, может быть вызван процесс завершения декодирования DecodeTerminate().[0075] Otherwise, if the bypassFlag value is 0, the ctxTable value is 0, and the ctxIdx value is 0, the DecodeTerminate() decoding termination process may be called.
[0076] В противном случае (если значение bypassFlag равно 0, а значение ctxTable не равно 0) может быть вызван определенный процесс DecodeDecision(ctxTable, ctxIdx) арифметического декодирования двоичного символа.[0076] Otherwise (if the bypassFlag value is 0 and the ctxTable value is not 0), a specific process, DecodeDecision(ctxTable, ctxIdx), of arithmetic decoding of the binary symbol may be called.
[0077] Дополнительно переменные ctxTable, ctxIdx, ivlCurrRange и ivlOffset могут быть введены в процесс арифметического декодирования двоичного символа. Процесс арифметического декодирования двоичного символа может вывести значение binVal, полученное посредством декодирования, а также обновленные переменные ivlCurrRange и ivlOffset.[0077] Additionally, the variables ctxTable, ctxIdx, ivlCurrRange, and ivlOffset may be input to the binary symbol arithmetic decoding process. The binary symbol arithmetic decoding process may output the binVal value obtained through decoding, as well as updated ivlCurrRange and ivlOffset variables.
[0078] На фиг. 4 представлена блок-схема процесса арифметического декодирования двоичного символа в уровне техники. Как показано на фиг. 4, таблица контекстных индексов ctxTable и индекс контекстной модели ctxIdx, а также переменные состояния ivlCurrRange и ivlOffset механизма арифметического декодирования могут быть введены через DecodeDecision(ctxTable, ctxIdx). В данном документе pStateIdx0 и pStateIdx1 могут быть двумя текущими состояниями контекстной модели.[0078] Fig. 4 is a flow chart of a process of arithmetic decoding of a binary symbol in the prior art. As shown in Fig. 4, the context index table ctxTable and the context model index ctxIdx, as well as the state variables ivlCurrRange and ivlOffset of the arithmetic decoding engine can be input through DecodeDecision(ctxTable, ctxIdx). In this document, pStateIdx0 and pStateIdx1 may be two current states of the context model.
[0079] (1) Значение переменной ivlLpsRange может быть получено следующим образом.[0079] (1) The value of the ivlLpsRange variable can be obtained as follows.
[0080] Переменная qRangeIdx может быть получена следующим образом, учитывая текущее значение ivlCurrRange.[0080] The qRangeIdx variable can be obtained as follows, given the current value of ivlCurrRange.
[0081] qRangeIdx=ivlCurrRange >>5[0081] qRangeIdx=ivlCurrRange >>5
[0082] valMps и ivlLpsRange могут быть получены следующим образом, учитывая qRangeIdx и pStateIdx0, а также pStateIdx1, соответствующие ctxTable и ctxIdx.[0082] valMps and ivlLpsRange can be obtained as follows, given qRangeIdx and pStateIdx0, as well as pStateIdx1, corresponding to ctxTable and ctxIdx.
[0083] pState=pStateIdx1+16×pStateIdx0;[0083] pState=pStateIdx1+16×pStateIdx0;
[0084] valMps=pState >>14;[0084] valMps=pState >>14;
[0085] ivlLpsRange=(qRangeIdx×((valMps ? 32767-pState: pState) >>9) >>1) +4.[0085] ivlLpsRange=(qRangeIdx×((valMps ? 32767-pState: pState) >>9) >>1) +4.
[0086] (2) Значение переменной ivlCurrRange может быть установлено как ivlCurrRange-ivlLpsRange. Можно выполнить следующие операции.[0086] (2) The value of the ivlCurrRange variable can be set as ivlCurrRange-ivlLpsRange. The following operations can be performed.
[0087] Если ivlOffset больше или равна ivlCurrRange, значение переменной binVal может быть 1-valMps, а переменные ivlOffset и ivlCurrRange могут быть обновлены. При этом значение ivlOffset может составлять ivlOffset минус ivlCurrRange, а значение ivlCurrRange может составлять ivlLpsRange.[0087] If ivlOffset is greater than or equal to ivlCurrRange, the value of the binVal variable may be 1-valMps, and the ivlOffset and ivlCurrRange variables may be updated. In this case, the value of ivlOffset may be ivlOffset minus ivlCurrRange, and the value of ivlCurrRange may be ivlLpsRange.
[0088] В противном случае (если ivlOffset < ivlCurrRange), значение переменной binVal может составлять valMps.[0088] Otherwise (if ivlOffset < ivlCurrRange), the value of the binVal variable may be valMps.
[0089] Учитывая значение binVal, может быть выполнен определенный переход состояния (statetransition). Определенная перенормировка может быть выполнена на основе текущего значения ivlCurrRange.[0089] Given the value of binVal, a certain statetransition may be performed. A certain renormalization may be performed based on the current value of ivlCurrRange.
[0090] Дополнительно настоящие pStateIdx0 и pStateIdx1, а также binVal, полученная посредством декодирования, могут быть введены в процесс перехода состояния. Процесс перехода состояния может выводить контекстные переменные pStateIdx0 и pStateIdx1, соответствующие обновленным ctxTable и ctxIdx. В данном документе переменные shift0 и shift1 могут быть получены из shiftIdx. В данном документе соответствие между shiftIdx и ctxTable, а также ctxIdx может быть определено следующим образом.[0090] Additionally, the present pStateIdx0 and pStateIdx1, as well as the binVal obtained by decoding, may be input into the state transition process. The state transition process may output context variables pStateIdx0 and pStateIdx1 corresponding to the updated ctxTable and ctxIdx. In this document, the variables shift0 and shift1 may be obtained from shiftIdx. In this document, the correspondence between shiftIdx and ctxTable, as well as ctxIdx, may be defined as follows.
[0091] shift0=(shiftIdx >>2) +2;[0091] shift0=(shiftIdx >>2) +2;
[0092] shift1=(shiftIdx& 3) +3+shift0.[0092] shift1=(shiftIdx& 3) +3+shift0.
[0093] На основе значения binVal, полученного посредством декодирования, две переменные pStateIdx0 и pStateIdx1, соответствующие ctxTable и ctxIdx, могут быть обновлены следующим образом.[0093] Based on the value of binVal obtained through decoding, two variables pStateIdx0 and pStateIdx1 corresponding to ctxTable and ctxIdx may be updated as follows.
[0094] pStateIdx0=pStateIdx0-(pStateIdx0 >>shift0) +(1023×binVal >>shift0);[0094] pStateIdx0=pStateIdx0-(pStateIdx0 >>shift0) +(1023×binVal >>shift0);
[0095] pStateIdx1=pStateIdx1-*(pStateIdx1>>shift1) +(16383×binVal >>shift1).[0095] pStateIdx1=pStateIdx1-*(pStateIdx1>>shift1) +(16383×binVal >>shift1).
[0096] Дополнительно переменные ivlCurrRange и ivlOffset, а также биты в данных слайса могут быть введены в процесс перенормировки механизма арифметического декодирования. Процесс перенормировки может вывести обновленные переменные ivlCurrRange и ivlOffset.[0096] Additionally, the ivlCurrRange and ivlOffset variables, as well as the bits in the slice data, may be input to the renormalization process of the arithmetic decoding engine. The renormalization process may output updated ivlCurrRange and ivlOffset variables.
[0097] На фиг. 5 представлена блок-схема перенормировки механизма арифметического декодирования в уровне техники. Как показано на фиг. 5, поток может войти в процесс ReNormD. Текущее значение ivlCurrRange можно предпочтительно сравнивать с 256. Последующие операции могут быть следующими.[0097] Fig. 5 shows a block diagram of the renormalization of the arithmetic decoding mechanism in the prior art. As shown in Fig. 5, a thread may enter the ReNormD process. The current value of ivlCurrRange may be preferably compared with 256. The subsequent operations may be as follows.
[0098] Если ivlCurrRange больше или равна 256, перенормировка не нужна, и процесс RenormD завершается.[0098] If ivlCurrRange is greater than or equal to 256, renormalization is not needed and the RenormD process terminates.
[0099] В противном случае (если ivlCurrRange меньше 256) поток может войти в цикл перенормировки. В цикле значение ivlCurrRange может быть умножено на 2, т.е. перемещено влево на один бит. Значение IvlOffset может быть умножено на 2, т.е. перемещено влево на один бит. Один бит, полученный с помощью read_bits(1), может быть перемещен в ivlOffset, в частности, следующим образом.[0099] Otherwise (if ivlCurrRange is less than 256), the flow may enter a renormalization loop. In the loop, the value of ivlCurrRange may be multiplied by 2, i.e. moved left by one bit. The value of IvlOffset may be multiplied by 2, i.e. moved left by one bit. One bit obtained with read_bits(1) may be moved into ivlOffset, specifically as follows.
[00100] ivlCurrRange=ivlCurrRange<<1;[00100] ivlCurrRange=ivlCurrRange<<1;
[00101] ivlOffset =ivlOffset <<1;[00101] ivlOffset =ivlOffset <<1;
[00102] ivlOffset =ivlOffset |read_bits(1).[00102] ivlOffset =ivlOffset |read_bits(1).
[00103] В течение всего процесса данные в битовом потоке не должны приводить к тому, чтобы ivlOffset была больше или равна ivlCurrRange.[00103] During the entire process, the data in the bitstream must not cause ivlOffset to be greater than or equal to ivlCurrRange.
[00104] Дополнительно переменные ivlCurrRange и ivlOffset, а также биты данных слайса вводятся в процесс обходного декодирования двоичного символа, а процесс обходного декодирования двоичного символа может выводить обновленную переменную ivlOffset и значение binVal, полученное посредством декодирования.[00104] Additionally, the ivlCurrRange and ivlOffset variables, as well as the slice data bits, are input into the binary symbol bypass decoding process, and the binary symbol bypass decoding process may output an updated ivlOffset variable and a binVal value obtained through decoding.
[00105] Если bypassFlag равен 1, может быть вызван процесс обходного декодирования. На фиг. 6 представлена блок-схема процесса обходного декодирования в уровне техники. Как показано на фиг. 6, сначала может быть обновлена переменная ivlOffset. То есть значение IvlOffset может быть умножено на 2, т.е. перемещено влево на один бит. Один бит, полученный с помощью read_bits(1), может быть перемещен в ivlOffset, в частности, следующим образом.[00105] If bypassFlag is equal to 1, the bypass decoding process may be called. Fig. 6 shows a flow chart of the bypass decoding process in the prior art. As shown in Fig. 6, the ivlOffset variable may first be updated. That is, the IvlOffset value may be multiplied by 2, i.e., moved to the left by one bit. One bit obtained using read_bits(1) may be moved to ivlOffset, in particular, as follows.
[00106] ivlOffset =ivlOffset <<1;[00106] ivlOffset =ivlOffset <<1;
[00107] ivlOffset =ivlOffset |read_bits(1).[00107] ivlOffset =ivlOffset |read_bits(1).
[00108] Затем значение ivlOffset можно сравнить со значением ivlCurrRange. Последующие операции могут быть следующими.[00108] The ivlOffset value can then be compared with the ivlCurrRange value. The subsequent operations can be as follows.
[00109] Если ivlOffset больше или равна ivlCurrRange, значение binVal может быть установлено как 1, а ivlOffset равна ivlOffset минус ivlCurrRange.[00109] If ivlOffset is greater than or equal to ivlCurrRange, binVal may be set to 1 and ivlOffset equals ivlOffset minus ivlCurrRange.
[00110] В противном случае (если ivlOffset меньше ivlCurrRange), значение binVal может быть установлено как 0.[00110] Otherwise (if ivlOffset is less than ivlCurrRange), binVal may be set to 0.
[00111] В течение всего процесса данные в битовом потоке не должны приводить к тому, чтобы ivlOffset была больше или равна ivlCurrRange.[00111] During the entire process, the data in the bitstream must not cause ivlOffset to be greater than or equal to ivlCurrRange.
[00112] Дополнительно следует отметить, что в существующих стандартах кодирования видео для остатков обычно поддерживается одно или более преобразований и пропусков преобразования. Преобразования могут включать дискретное косинусное преобразование (DCT) и т.д. Остаточный блок, подвергшийся преобразованию (и квантованию), обычно имеет определенные характеристики. Например, после некоторых преобразований (и квантований) большая часть энергии концентрируется в низкочастотной области, так что коэффициенты в области в верхнем левом углу могут быть большими; в то время как коэффициенты в области в нижнем правом углу могут быть маленькими и даже могут содержать много коэффициентов со значением 0. Как следует из названия, при пропуске преобразования преобразование не выполняют. Коэффициенты, пропущенные при преобразовании, и преобразованные коэффициенты могут быть разными при распределении и, следовательно, могут быть закодированы с использованием разных способов кодирования коэффициентов. Например, в VVC, RRC может применяться к преобразованному коэффициенту, и TSRC может применяться к коэффициенту, пропущенному при преобразовании.[00112] It should be further noted that in existing video coding standards, one or more transforms and skip transforms are usually supported for residuals. The transforms may include a discrete cosine transform (DCT), etc. A residual block that has undergone a transform (and quantization) usually has certain characteristics. For example, after some transforms (and quantizations), most of the energy is concentrated in the low-frequency region, so that the coefficients in the region in the upper left corner may be large; while the coefficients in the region in the lower right corner may be small and may even contain many coefficients with a value of 0. As the name suggests, in skip transform, no transform is performed. The skip transform coefficients and the transformed coefficients may be different in distribution and, therefore, may be coded using different coefficient coding methods. For example, in VVC, RRC may be applied to the transformed coefficient, and TSRC may be applied to the skip transform coefficient.
[00113] В блоке, подвергнутом общему преобразованию, такому как DCT, коэффициенты, расположенные в местоположениях слева направо, могут представлять возрастающие частоты, и коэффициенты, расположенные в местоположениях сверху вниз, могут представлять возрастающие частоты. Коэффициенты, расположенные в верхнем левом углу, обозначают низкие частоты. Коэффициенты, расположенные в нижнем правом углу, обозначают высокие частоты. Человеческие глаза более восприимчивы к низкочастотной информации и не особенно восприимчивы к высокочастотной информации. Используя такие характеристики, некоторая высокочастотная информация может быть подвергнута более тщательной обработке или может быть удалена с меньшим воздействием на зрение. В некоторых технологиях, таких как нулевой вывод, часть высокочастотной информации может быть принудительно установлена как 0. Например, в блоке 64×64 любой коэффициент с абсциссой, большей или равной 32, или ординатой, большей или равной 32, может быть принудительно установлен как 0. Это всего лишь простой пример. Диапазон нулевого вывода может быть получен с помощью более сложных способов, которые здесь не описываются. Как показано на фиг. 7, в части в верхнем левом углу (т.е. области, содержащей возможный значимый коэффициент) может быть значимый коэффициент (или ненулевой коэффициент), а все коэффициенты в части в нижнем правом углу (т.е. области нулевого вывода) могут быть установлены как ноль. Соответственно, последующее кодирование любого коэффициента в области нулевого вывода не требуется, так как этот коэффициент точно равен 0.[00113] In a block subjected to a general transform such as a DCT, the coefficients located in locations from left to right may represent increasing frequencies, and the coefficients located in locations from top to bottom may represent increasing frequencies. The coefficients located in the upper left corner represent low frequencies. The coefficients located in the lower right corner represent high frequencies. Human eyes are more sensitive to low frequency information and are not particularly sensitive to high frequency information. Using such characteristics, some high frequency information may be processed more carefully or may be removed with less impact on vision. In some technologies, such as zero output, some high frequency information may be forced to be 0. For example, in a 64x64 block, any coefficient with an abscissa greater than or equal to 32 or an ordinate greater than or equal to 32 may be forced to be 0. This is just a simple example. The zero output range can be obtained by more complex methods, which are not described here. As shown in Fig. 7, the part in the upper left corner (i.e., the region containing a possible significant coefficient) may contain a significant coefficient (or a non-zero coefficient), and all coefficients in the part in the lower right corner (i.e., the zero output region) may be set to zero. Accordingly, subsequent encoding of any coefficient in the zero output region is not required, since this coefficient is exactly equal to 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.[00114] In addition, after performing the transform (and quantization) on the residuals of a normal video, it is typical that large coefficients are distributed in the upper left corner, and many 0 coefficients are distributed in the lower right corner. Thus, when encoding coefficients, some methods are usually used, so that coefficients in a certain range in the upper left corner need to be encoded, and coefficients in a certain range in the lower right corner do not need to be encoded, i.e., they can be taken as 0 by default. In one method, when encoding coefficients of a block, the location of the last significant coefficient of the block in the scan order can be determined first. After the location is determined, all coefficients located below the location of the last significant coefficient in the scan order can be taken as 0, i.e., there is no need to encode them. Only the last significant coefficient and the coefficients located above the location of the last significant coefficient are subject to encoding. For example, in VVC, the location (LastSignificantCoeffX, LastSignificantCoeffY) of the last significant coefficient is determined based on last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix.
[00115] (a) last_sig_coeff_x_prefix задает префикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_x_prefix должны быть в диапазоне от 0 до (log2ZoTbWidth<<1)-1 включительно.[00115] (a) last_sig_coeff_x_prefix specifies the prefix of the horizontal coordinate (or column position) of the last significant coefficient in scan order in the current block. Values of last_sig_coeff_x_prefix must be in the range from 0 to (log2ZoTbWidth<<1)-1, inclusive.
[00116] Когда last_sig_coeff_x_prefix не присутствует, считается, что он равен 0.[00116] When last_sig_coeff_x_prefix is not present, it is assumed to be 0.
[00117] (b) last_sig_coeff_y_prefix задает префикс вертикальной координаты (или положения строки) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_y_prefix должны быть в диапазоне от 0 до (log2ZoTbHeight<<1) -1 включительно.[00117] (b) last_sig_coeff_y_prefix specifies the prefix of the vertical coordinate (or row position) of the last significant coefficient in scan order in the current block. Values of last_sig_coeff_y_prefix must be in the range from 0 to (log2ZoTbHeight<<1) -1, inclusive.
[00118] Когда last_sig_coeff_y_prefix не присутствует, считается, что он равен 0.[00118] When last_sig_coeff_y_prefix is not present, it is assumed to be 0.
[00119] (c) last_sig_coeff_x_suffix задает суффикс горизонтальной координаты (или положения столбца) последнего значимого коэффициента в порядке сканирования в текущем блоке. Значения last_sig_coeff_x_suffix должны быть в диапазоне от 0 до (1<< ( ( last_sig_coeff_x_prefix>>1)-1))-1 включительно.[00119] (c) last_sig_coeff_x_suffix specifies the suffix of the horizontal coordinate (or column position) of the last significant coefficient in scan order in the current block. last_sig_coeff_x_suffix values must be in the range 0 to (1<< ( ( last_sig_coeff_x_prefix>>1)-1))-1, inclusive.
[00120] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в порядке сканирования в текущем блоке преобразования может быть получена следующим образом.[00120] The horizontal coordinate (or column position) LastSignificantCoeffX of the last significant coefficient in the scan order in the current transform block can be obtained as follows.
[00121] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:[00121] If last_sig_coeff_x_suffix is not present, the following applies:
[00122] LastSignificantCoeffX = last_sig_coeff_x_prefix;[00122] LastSignificantCoeffX = last_sig_coeff_x_prefix;
[00123] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:[00123] Otherwise (last_sig_coeff_x_suffix is present) the following applies:
[00124] LastSignificantCoeffX=(1<< ((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1)) + 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 включительно.[00125] (b) last_sig_coeff_y_suffix specifies the suffix of the vertical coordinate (or row position) of the last significant coefficient in scan order in the current transform block. The values of last_sig_coeff_y_suffix must be in the range 0 to (1<< ((last_sig_coeff_y_prefix>>1)-1))-1, inclusive.
[00126] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке преобразования может быть получена следующим образом.[00126] The vertical coordinate (or row position) LastSignificantCoeffY of the last significant coefficient in the scan order in the current transform block can be obtained as follows.
[00127] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:[00127] If last_sig_coeff_y_suffix is not present, the following applies:
[00128] LastSignificantCoeffY = last_sig_coeff_y_prefix;[00128] LastSignificantCoeffY = last_sig_coeff_y_prefix;
[00129] В противном случае (last_sig_coeff_y_suffix присутствует) применимо следующее:[00129] Otherwise (last_sig_coeff_y_suffix is present) the following applies:
[00130] LastSignificantCoeffY = (1<< ((last_sig_coeff_y_prefix>>1)-1))*(2+(last_sig_coeff_y_prefix&1)) + 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.[00131] Additionally, all of the last significant coefficient and the coefficient(s) located above the location of the last significant coefficient are to be coded. However, in normal video, even among these coefficients, there is a certain proportion of coefficients that are 0. In VVC, the sb_coded_flag flag (indicating whether the current sub-block is coded) can be used to determine whether the coefficients in the current sub-block should be coded. All coefficients in the current sub-block are taken as 0 if there is no need to code the coefficients in the current sub-block. Here, a sub-block can typically be n×n, such as 4×4.
[00132] sb_coded_flag[xS][yS] указывает следующее для подблока в местоположении (xS, yS) в текущем блоке преобразования, где подблок представляет собой массив уровней коэффициента преобразования:[00132] sb_coded_flag[xS][yS] specifies the following for the subblock at location (xS, yS) in the current transform block, where the subblock is an array of transform coefficient levels:
[00133] Когда sb_coded_flag[xS][yS] равен 0, все уровни коэффициента преобразования подблока в местоположении (xS, yS) в текущем блоке преобразования считаются равными 0.[00133] When sb_coded_flag[xS][yS] is 0, all transform coefficient levels of the sub-block at location (xS, yS) in the current transform block are considered to be 0.
[00134] Когда sb_coded_flag[xS][yS] не присутствует, считается, что он равен 1.[00134] When sb_coded_flag[xS][yS] is not present, it is assumed to be 1.
[00135] Дополнительно при кодировании коэффициентов эффективность сжатия может быть улучшена с помощью характеристик коэффициентов. Например, для обычного видео определенная доля коэффициентов среди коэффициентов, подлежащих кодированию, равна 0. Таким образом, синтаксический элемент можно использовать для указания того, равен ли текущий коэффициент 0. Синтаксический элемент, как правило, может быть двоичным символом. Если текущий коэффициент равен 0, это означает, что кодирование текущего коэффициента завершено. В противном случае необходимо продолжить кодирование текущего коэффициента. В качестве другого примера, для обычного видео абсолютные значения определенной доли коэффициентов среди значимых коэффициентов (т.е. ненулевых коэффициентов) могут быть равны 1. Таким образом, синтаксический элемент можно использовать для указания того, превышает ли абсолютное значение текущего коэффициента 1. Синтаксический элемент, как правило, может быть двоичным символом. Если абсолютное значение текущего коэффициента не превышает 1, это означает, что кодирование текущего коэффициента завершено. В противном случае необходимо продолжить кодирование текущего коэффициента. Например, синтаксические элементы, задействованные в VVC, являются следующими.[00135] In addition, when encoding coefficients, the compression efficiency can be improved by using the characteristics of the coefficients. For example, for a normal video, a certain proportion of coefficients among the coefficients to be encoded is 0. Thus, a syntax element can be used to indicate whether the current coefficient is 0. The syntax element can typically be a binary symbol. If the current coefficient is 0, it means that the encoding of the current coefficient is complete. Otherwise, it is necessary to continue encoding the current coefficient. As another example, for a normal video, the absolute values of a certain proportion of coefficients among the significant coefficients (i.e., non-zero coefficients) can be 1. Thus, a syntax element can be used to indicate whether the absolute value of the current coefficient is greater than 1. The syntax element can typically be a binary symbol. If the absolute value of the current coefficient does not exceed 1, it means that the encoding of the current coefficient is complete. Otherwise, it is necessary to continue encoding the current coefficient. For example, the syntactic elements involved in VVC are as follows.
[00136] sig_coeff_flag[xC][yC] указывает для местоположения коэффициента преобразования (xC, yC) в текущем блоке преобразования, является ли соответствующий уровень коэффициента преобразования в местоположении (xC, yC) ненулевым, как показано ниже.[00136] sig_coeff_flag[xC][yC] indicates for the transform coefficient location (xC, yC) in the current transform block whether the corresponding transform coefficient level at the location (xC, yC) is non-zero, as shown below.
[00137] Если sig_coeff_flag[xC][yC] равен 0, уровень коэффициента преобразования в местоположении (xC, yC) устанавливают равным 0.[00137] If sig_coeff_flag[xC][yC] is 0, the transform coefficient level at location (xC, yC) is set to 0.
[00138] В противном случае (sig_coeff_flag[xC][yC] равен 1) уровень коэффициента преобразования в местоположении (xC, yC) имеет ненулевое значение.[00138] Otherwise (sig_coeff_flag[xC][yC] is 1), the transform coefficient level at location (xC, yC) has a non-zero value.
[00139] Когда sig_coeff_flag[xC][yC] не присутствует, он считается следующим образом.[00139] When sig_coeff_flag[xC][yC] is not present, it is calculated as follows.
[00140] Если transform_skip_flag[x0][y0][cIdx] равен 0 или sh_ts_residual_coding_disabled_flag равен 1, применимо следующее:[00140] If transform_skip_flag[x0][y0][cIdx] is 0 or sh_ts_residual_coding_disabled_flag is 1, the following applies:
Если (xC, yC) является последним значимым местоположением (LastSignificantCoeffX, LastSignificantCoeffY) в порядке сканирования или все следующие условия истинны, sig_coeff_flag[xC][yC] считается равным 1:If (xC, yC) is the last significant location (LastSignificantCoeffX, LastSignificantCoeffY) in scan order or all of the following conditions are true, sig_coeff_flag[xC][yC] is considered to be 1:
(xC&((1<<log2SbW)-1), yC& ((1<<log2SbH)-1)) равно (0, 0),(xC&((1<<log2SbW)-1), yC& ((1<<log2SbH)-1)) is equal to (0, 0),
inferSbDcSigCoeffFlag равен 1, иinferSbDcSigCoeffFlag is 1, and
sb_coded_flag[xS][yS] равен 1;sb_coded_flag[xS][yS] is 1;
В противном случае sig_coeff_flag[xC][yC] считается равным 0;Otherwise, sig_coeff_flag[xC][yC] is considered equal to 0;
[00141] В противном случае (transform_skip_flag[x0][y0][cIdx] равен 1 и sh_ts_residual_coding_disabled_flag равен 0), применимо следующее:[00141] Otherwise (transform_skip_flag[x0][y0][cIdx] is 1 and sh_ts_residual_coding_disabled_flag is 0), the following applies:
Если все следующие условия истинны, sig_coeff_flag[xC][yC] считается равным 1:If all the following conditions are true, sig_coeff_flag[xC][yC] is considered to be equal to 1:
(xC&((1<<log2SbW)-1), yC&((1<<log2SbH)-1)) равно ((1<<log2SbW)-1, (1<<log2SbH)-1),(xC&((1<<log2SbW)-1), yC&((1<<log2SbH)-1)) equals ((1<<log2SbW)-1, (1<<log2SbH)-1),
inferSbSigCoeffFlag равен 1, иinferSbSigCoeffFlag is 1, and
sb_coded_flag[xS][yS] равен 1;sb_coded_flag[xS][yS] is 1;
В противном случае sig_coeff_flag[xC][yC] считается равным 0.Otherwise, sig_coeff_flag[xC][yC] is considered equal to 0.
[00142] abs_level_gtx_flag[n][j] указывает, превышает ли абсолютное значение коэффициента преобразования (в положении сканирования n) (j<<1)+1. Когда abs_level_gtx_flag[n][j] не присутствует, считается, что он равен 0.[00142] abs_level_gtx_flag[n][j] indicates whether the absolute value of the conversion factor (at scan position n) is greater than (j<<1)+1. When abs_level_gtx_flag[n][j] is not present, it is considered to be 0.
[00143] Таким образом, если кодирование текущего коэффициента еще не выполнено после обработки вышеупомянутых флагов (также называемых синтаксическими элементами), то должно быть кодировано оставшееся значение, например, abs_remainder в VVC, абсолютного значения коэффициента.[00143] Thus, if the encoding of the current coefficient has not yet been performed after processing the above flags (also called syntax elements), then the remaining value, such as abs_remainder in VVC, of the absolute value of the coefficient must be encoded.
[00144] abs_remainder[n] представляет собой оставшееся абсолютное значение уровня коэффициента преобразования, которое кодируют кодом Голомба-Райса в положении сканирования n. Когда abs_remainder[n] не присутствует, то оно считается равным 0.[00144] abs_remainder[n] is the remaining absolute value of the transform coefficient level that is encoded by the Golomb-Rice code at scan position n. When abs_remainder[n] is not present, it is considered to be 0.
[00145] Дополнительно в VVC такие синтаксические элементы, как sig_coeff_flag, abs_level_gtx_flag и т.д., могут быть закодированы в контекстном режиме, а abs_remainder может быть закодирован в обходном режиме. Как упомянуто выше, контекстно-ориентированное кодирование сложнее, чем обходное кодирование, то есть, интуитивно говоря, требует больше времени на обработку. Использование слишком большого количества контекстно-ориентированного кодирования может повлиять на скорость декодирования, если необходимо закодировать большое количество коэффициентов. Таким образом, количество синтаксических элементов, подлежащих кодированию в контекстном режиме, может быть ограничено. Например, как только количество двоичных символов, подлежащих кодированию в контекстном режиме, превысит пороговое значение, последующие коэффициенты могут быть принудительно кодированы в обходном режиме, таком как dec_abs_level в VVC.[00145] Additionally, in VVC, syntax elements such as sig_coeff_flag, abs_level_gtx_flag, etc. may be encoded in the context mode, and abs_remainder may be encoded in the bypass mode. As mentioned above, context-oriented coding is more complex than bypass coding, that is, intuitively speaking, it requires more processing time. Using too much context-oriented coding may affect the decoding speed if a large number of coefficients need to be encoded. Therefore, the number of syntax elements to be encoded in the context mode may be limited. For example, once the number of binary symbols to be encoded in the context mode exceeds a threshold, subsequent coefficients may be forced to be encoded in the bypass mode, such as dec_abs_level in VVC.
[00146] dec_abs_level[n] представляет собой промежуточное значение, которое кодируется кодом Голомба-Райса в положении сканирования n. ZeroPos[n] получают в процессе анализа dec_abs_level[n]. Абсолютное значение AbsLevel[xC][yC] уровня коэффициента преобразования в местоположении (xC, yC) может быть получено следующим образом.[00146] dec_abs_level[n] is an intermediate value that is encoded by the Golomb-Rice code at scan position n. ZeroPos[n] is obtained in the process of analyzing dec_abs_level[n]. The absolute value AbsLevel[xC][yC] of the transformation coefficient level at location (xC, yC) can be obtained as follows.
[00147] Если dec_abs_level[n] не присутствует или равен ZeroPos[n], AbsLevel[xC][yC] устанавливают равным 0.[00147] If dec_abs_level[n] is not present or is equal to ZeroPos[n], AbsLevel[xC][yC] is set to 0.
[00148] В противном случае, если dec_abs_level[n] меньше ZeroPos[n], AbsLevel[xC][yC] устанавливают равным dec_abs_level[n]+1.[00148] Otherwise, if dec_abs_level[n] is less than ZeroPos[n], AbsLevel[xC][yC] is set to dec_abs_level[n]+1.
[00149] В противном случае (dec_abs_level[n] больше ZeroPos[n]), AbsLevel[xC][yC] устанавливают равным dec_abs_level[n].[00149] Otherwise (dec_abs_level[n] is greater than ZeroPos[n]), AbsLevel[xC][yC] is set equal to dec_abs_level[n].
[00150] Все вышесказанное относится к абсолютному значению коэффициента. Знак значимого коэффициента может быть определен с помощью флага знака коэффициента coeff_sign_flag или некоторых cgjcj,j gjkextybz знака. coeff_sign_flag[n] указывает знак уровня коэффициента преобразования для положения сканирования n следующим образом.[00150] All of the above refers to the absolute value of the coefficient. The sign of the significant coefficient can be determined using the coefficient sign flag coeff_sign_flag or some cgjcj,j gjkextybz sign flag. coeff_sign_flag[n] specifies the sign of the transform coefficient level for scan position n as follows.
[00151] Если coeff_sign_flag[n] равен 0, то соответствующий уровень коэффициента преобразования имеет положительное значение.[00151] If coeff_sign_flag[n] is 0, then the corresponding conversion coefficient level has a positive value.
[00152] В противном случае (coeff_sign_flag[n] равен 1) соответствующий уровень коэффициента преобразования имеет отрицательное значение.[00152] Otherwise (coeff_sign_flag[n] is 1), the corresponding conversion coefficient level has a negative value.
[00153] Когда coeff_sign_flag[n] не присутствует, считается, что он равен 0. В этом случае значение CoeffSignLevel[xC][yC] указывает знак уровня коэффициента преобразования в местоположении (xC, yC) следующим образом.[00153] When coeff_sign_flag[n] is not present, it is assumed to be 0. In this case, the value of CoeffSignLevel[xC][yC] specifies the sign of the transform coefficient level at location (xC, yC) as follows.
[00154] Если CoeffSignLevel[xC][yC] равен 0, то соответствующий уровень коэффициента преобразования равен нулю.[00154] If CoeffSignLevel[xC][yC] is 0, then the corresponding transformation coefficient level is zero.
[00155] В противном случае, если CoeffSignLevel[xC][yC] равен 1, соответствующий уровень коэффициента преобразования имеет положительное значение.[00155] Otherwise, if CoeffSignLevel[xC][yC] is 1, the corresponding transformation coefficient level has a positive value.
[00156] В противном случае (CoeffSignLevel[xC][yC] равен -1) соответствующий уровень коэффициента преобразования имеет отрицательное значение.[00156] Otherwise (CoeffSignLevel[xC][yC] is -1), the corresponding transformation coefficient level has a negative value.
[00157] Дополнительно следует отметить, что CoeffSignLevel[xC][yC] можно также получить другим способом, который здесь не описывается.[00157] It should be further noted that CoeffSignLevel[xC][yC] can also be obtained in another way, which is not described here.
[00158] Кроме того, в VVC может дополнительно использоваться par_level_flag четности уровня коэффициента. Согласно флагу можно узнать четность текущего уровня коэффициента, которая может быть использована при определении значения текущего уровня коэффициента и зависимого квантования.[00158] In addition, the par_level_flag of the coefficient level parity may be additionally used in VVC. According to the flag, the parity of the current coefficient level can be known, which can be used in determining the value of the current coefficient level and dependent quantization.
[00159] par_level_flag[n] указывает четность уровня коэффициента преобразования в положении сканирования n. Если par_level_flag[n] не присутствует, считается, что он равен 0.[00159] par_level_flag[n] specifies the parity of the transform gain level at scan position n. If par_level_flag[n] is not present, it is assumed to be 0.
[00160] Кроме того, чтобы определить четность уровня коэффициента преобразования, par_level_flag может дополнительно использоваться для определения, вместе с abs_level_gtx_flag и abs_remainder и т.п., величины коэффициента.[00160] In addition, to determine the parity of the level of the transform coefficient, par_level_flag may be further used to determine, together with abs_level_gtx_flag and abs_remainder etc., the magnitude of the coefficient.
[00161] Здесь, поскольку контекстный режим должен быть выбран, использован и обновлен при контекстно-ориентированном кодировании, и никакой контекстный режим не должен быть выбран, использован и обновлен при обходном кодировании, общая практика заключается в том, чтобы расположить вместе синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования, и расположить синтаксические элементы, подлежащие кодированию путем обходного кодирования, в определенном диапазоне. Это оказывается более удобным для конструкции аппаратного обеспечения. Например, сначала обрабатываются синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в одном блоке, а затем обрабатываются синтаксические элементы, подлежащие кодированию путем обходного кодирования. Синтаксические элементы, подлежащие кодированию путем контекстно-ориентированного кодирования в текущем блоке, могут быть дополнительно разделены на несколько групп. Синтаксические элементы, подлежащие кодированию путем обходного режима в одном блоке, могут быть дополнительно разделены на несколько групп.[00161] Here, since a context mode must be selected, used, and updated in context-oriented encoding, and no context mode must be selected, used, and updated in bypass encoding, a common practice is to arrange the syntax elements to be encoded by context-oriented encoding together and arrange the syntax elements to be encoded by bypass encoding in a certain range. This is more convenient for the hardware design. For example, the syntax elements to be encoded by context-oriented encoding in one block are first processed, and then the syntax elements to be encoded by bypass encoding are processed. The syntax elements to be encoded by context-oriented encoding in the current block may be further divided into multiple groups. The syntax elements to be encoded by bypass mode in one block may be further divided into multiple groups.
[00162] В конкретном примере конкретный синтаксис RRC является таким, как показано в таблице 1.[00162] In a specific example, the specific RRC syntax is as shown in Table 1.
Таблица 1Table 1
[00163] Массив AbsLevel[xC][yC] обозначает массив абсолютных значений коэффициентов преобразования текущего блока преобразования. Массив AbsLevelPass1[xC][yC] обозначает массив частично восстановленных абсолютных значений коэффициентов преобразования текущего блока преобразования. Индексы xC и yC массива обозначают местоположение (xC, yC) в текущем блоке преобразования.[00163] The AbsLevel[xC][yC] array denotes an array of absolute values of the transform coefficients of the current transform block. The AbsLevelPass1[xC][yC] array denotes an array of partially reconstructed absolute values of the transform coefficients of the current transform block. The array indices xC and yC denote the location of (xC, yC) in the current transform block.
[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.[00164] Some block size information, such as the logarithms log2ZoTbWidth and log2ZoTbHeight of the zero-output block size, must be determined after the stream enters the residual_coding(x0, y0, log2TbWidth, log2TbHeight, cIdx) function. A coefficient with an abscissa in the range [0, (1<<log2ZoTbWidth) - 1] and an ordinate in the range [0, (1<<log2ZoTbHeight) - 1] can be a significant coefficient. Here, (1<<log2ZoTbWidth) can denote the width of the zero-output transform block, and (1<< log2ZoTbHeight) can denote the height of the zero-output transform block. Then, the location of the last significant coefficient may be determined according to last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix and last_sig_coeff_y_suffix, etc. The coefficient located above the last significant coefficient in the scan order may be the significant coefficient. Then, the value of remBinsPass1 may be determined using the formula remBinsPass1=((1<<(log2TbWidth+log2TbHeight)) ×7) >>2. remBinsPass1 may indicate the number of syntax elements to be encoded by context-aware encoding (i.e., the number of syntax elements encoded based on the context mode) in the current block. It is understood that, in embodiments of the present invention, remBinsPass1 may refer to the remaining binaries of inpass1, i.e., the number of remaining binaries in the first round. The coefficients located above the last significant coefficient in the scan order need to be coded. For the sub-blocks containing these coefficients, it can in turn be determined whether each sub-block needs to be coded as the current sub-block. If the current sub-block needs to be coded, in RRC, the syntax elements to be coded by context-aware coding in the sub-block may be placed in the first round, and the syntax elements to be coded by bypass coding (i.e., the syntax elements coded based on the bypass mode) may be placed after the first round. For each coefficient, up to 4 syntax elements to be coded by context-aware coding may need to be processed, i.e., 1 sig_coeff_flag, 2 abs_level_gtx_flags, and 1 par_level_flag. In the first round, 1 can be subtracted from remBinsPass1 every time one syntactic element to be encoded by context-aware encoding is processed. If the coefficient is large enough, the remaining value, i.e. abs_remainder, needs to be further processed after several syntactic elements to be encoded by context-aware encoding have been processed in the first round. Otherwise, if remBinsPass1 is small enough (not corresponding to remBinsPass1>=4), the first round can terminate. The remaining coefficients can be processed directly using the bypass mode, i.e. dec_abs_level.
[00165] В другом конкретном примере конкретный синтаксис TSRC показан в таблице 2.[00165] In another specific example, the specific syntax of TSRC is shown in Table 2.
Таблица 2Table 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.[00166] Some information about the block size must be determined after the stream has entered the residual_ts_coding(x0, y0, log2TbWidth, log2TbHeight, cIdx) function. Then, the RemCcbs value can be determined using the formula RemCcbs=((1<<(log2TbWidth+log2TbHeight)) ×7) >>2. RemCcbs may indicate the number of syntax elements to be encoded by context-aware encoding in the current block. It is understood that in embodiments of the present invention, RemCcbs may refer to the remaining binaries with context-aware encoding, i.e., the number of remaining binary symbols to be encoded by context-aware encoding. For each sub-block, it may be determined whether the sub-block needs to be encoded as the current sub-block. If the current sub-block is to be coded, in TSRC (unlike RRC) the syntax elements to be coded by context-aware encoding in the sub-block may be placed in two rounds. For each coefficient, up to 4 syntax elements to be coded by context-aware encoding may need to be processed in each of the first round and the second round. The syntax elements to be coded by bypass encoding may be placed after two rounds. In the first round and in the second round, 1 may be subtracted from remBinsPass1 every time one syntax element to be coded by context-aware encoding is processed. If the coefficient is large enough, the remaining value, i.e., abs_remainder, needs to be further processed after several syntax elements to be coded by context-aware encoding have been processed in the first round and in the second round. Otherwise, if remBinsPass1 is small enough (not equal to remBinsPass1>=4), the first two rounds can terminate. The remaining odds can be processed directly using the bypass mode, where it is still abs_remainder.
[00167] Вкратце, в соответствующем уровне техники обычное видео в настоящее время, такое как потребительское видео, может быть сжато с превосходной эффективностью сжатия с использованием существующего способа кодирования коэффициентов. Обычно для потребительского видео может потребоваться битовая глубина 8 бит или 10 бит на пиксель. В целом битовая скорость потребительского видео не слишком высока и обычно составляет несколько мегабайт в секунду (МБ/с) или меньше. Однако видео, относящиеся к некоторым приложениям, требуют более высокой битовой глубины на пиксель, например, битовой глубины 12 бит, 14 бит, 16 бит или более на пиксель. Более высокая битовая глубина в целом может привести к большему коэффициенту и большему количеству значимых коэффициентов, что тем самым обеспечивает более высокую битовую скорость. Видео, относящиеся к некоторым приложениям, требуют более высокого качества. Более высокое качество в целом может также привести к большему коэффициенту и большему количеству значимых коэффициентов, что тем самым обеспечивает более высокую битовую скорость. Более высокая битовая скорость может предъявлять более высокие требования к вычислительной мощности, например, пропускной способности, декодера.[00167] In brief, in the related art, a conventional video at present, such as a consumer video, can be compressed with excellent compression efficiency using an existing coefficient coding method. Typically, a consumer video may require a bit depth of 8 bits or 10 bits per pixel. In general, the bit rate of a consumer video is not too high and is usually several megabytes per second (MB/s) or less. However, videos related to some applications require a higher bit depth per pixel, such as a bit depth of 12 bits, 14 bits, 16 bits or more per pixel. A higher bit depth can generally result in a larger coefficient and a larger number of significant coefficients, thereby providing a higher bit rate. Videos related to some applications require higher quality. Higher quality can generally also result in a larger coefficient and a larger number of significant coefficients, thereby providing a higher bit rate. A higher bit rate may place higher demands on computing power, such as bandwidth, of the decoder.
[00168] В целом, по сравнению со случаем видео с низкой битовой глубиной, низким качеством, низкой битовой скоростью (обычного видео), для видео с высокой битовой глубиной, высоким качеством и высокой битовой скоростью (видео с тройной высокой четкостью) требуется больше коэффициентов, подлежащих кодированию и декодированию, и эти коэффициенты больше. Например, имеется гораздо больше коэффициентов, подлежащих кодированию и декодированию, в блоке в видео с тройной высокой четкостью по сравнению с количеством коэффициентов, подлежащих кодированию и декодированию, в блоке того же размера в обычном видео. Это связано с тем, что многие коэффициенты в блоке обычного видео все становятся равными 0 после подвергания предсказанию, преобразованию и квантованию, в то время как многие коэффициенты в блоке видео с тройной высокой четкостью все еще могут быть ненулевыми после подвергания предсказанию, преобразованию и квантованию. Большая доля коэффициентов, подлежащих кодированию, среди коэффициентов, подвергнутых предсказанию, преобразованию и квантованию в блоке обычного видео, может быть равна 0. Следовательно, может быть очень эффективно определять, нужно ли кодировать область коэффициентов, используя местоположение (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента. Даже большая доля коэффициентов, расположенных выше местоположения последнего значимого коэффициента, все еще может быть равна 0. Следовательно, может быть очень эффективно дополнительно определять, нужно ли кодировать текущий подблок, используя флаг sb_coded_flag, указывающий, нужно ли кодировать подблок. Однако, когда в текущем блоке много значимых коэффициентов, или даже большинство или все из коэффициентов являются значимыми (т.е. ненулевыми), использование местоположения последнего значимого коэффициента и флага, указывающего, нужно ли кодировать подблок, не будет исключать слишком много значимых коэффициентов. Более того, предоставление местоположения значимого коэффициента и флага, указывающего, нужно ли кодировать подблок, и т.п. в битовый поток может потребовать определенной величины потребления ресурсов, что приводит к нерациональному использованию.[00168] In general, compared with the case of a low bit depth, low quality, low bit rate video (normal video), a high bit depth, high quality, high bit rate video (triple high definition video) requires more coefficients to be encoded and decoded, and these coefficients are larger. For example, there are many more coefficients to be encoded and decoded in a block in a triple high definition video compared to the number of coefficients to be encoded and decoded in a block of the same size in a normal video. This is because many coefficients in a block of a normal video all become 0 after being subjected to prediction, transformation, and quantization, while many coefficients in a block of a triple high definition video may still be non-zero after being subjected to prediction, transformation, and quantization. A large proportion of coefficients to be coded among the coefficients predicted, transformed, and quantized in a block of a normal video may be 0. Therefore, it may be very efficient to determine whether a region of coefficients needs to be coded using the location (LastSignificantCoeffX, LastSignificantCoeffY) of the last significant coefficient. Even a large proportion of coefficients located above the location of the last significant coefficient may still be 0. Therefore, it may be very efficient to further determine whether the current sub-block needs to be coded using the flag sb_coded_flag indicating whether the sub-block needs to be coded. However, when there are many significant coefficients in the current block, or even most or all of the coefficients are significant (i.e., non-zero), using the location of the last significant coefficient and the flag indicating whether the sub-block needs to be coded will not exclude too many significant coefficients. Moreover, providing the location of a significant coefficient and the flag indicating whether the sub-block needs to be coded, etc. into a bit stream may require a certain amount of resource consumption, which leads to irrational use.
[00169] В другом аспекте местоположение последнего значимого коэффициента и флаг, указывающий, нужно ли кодировать подблок, и т.п. могут все кодироваться в контекстном режиме. Контекстно-ориентированное кодирование сложнее, чем обходное кодирование, и обработка этой информации может дополнительно повлиять на пропускную способность и скорость кодирования и декодирования программного обеспечения и аппаратного обеспечения.[00169] In another aspect, the location of the last significant coefficient and the flag indicating whether the sub-block should be encoded, etc., may all be encoded in a context-oriented mode. Context-oriented coding is more complex than bypass coding, and processing this information may further impact the throughput and speed of encoding and decoding of software and hardware.
[00170] В еще одном аспекте в настоящее время способ кодирования местоположения (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента заключается в кодировании координат местоположения последнего значимого коэффициента. В обычном видео, поскольку большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0, значения LastSignificantCoeffX и LastSignificantCoeffY в целом могут быть малыми. В видео с тройной высокой четкостью много значимых коэффициентов также могут появиться в нижнем правом углу, что обычно приводит к большим значениям LastSignificantCoeffX и LastSignificantCoeffY, что тем самым приводит к большему потреблению ресурсов в битовом потоке за счет кодирования больших значений в битовом потоке. Кроме того, еще одна возможность заключается в том, чтобы применить способ в случае сжатия без потерь. Поскольку квантование не допускается при сжатии без потерь, в общем случае может быть много коэффициентов, и коэффициенты могут иметь большие значения. В этом случае использование существующего решения может привести к большему потреблению ресурсов, нерациональному использованию, снижению эффективности сжатия.[00170] In another aspect, at present, a method for encoding the location (LastSignificantCoeffX, LastSignificantCoeffY) of the last significant coefficient is to encode the coordinates of the location of the last significant coefficient. In a normal video, since most of the significant coefficients are concentrated in the upper left corner, and the coefficients in a large area in the lower right corner are 0, the values of LastSignificantCoeffX and LastSignificantCoeffY may generally be small. In a triple high definition video, many significant coefficients may also appear in the lower right corner, which generally results in large values of LastSignificantCoeffX and LastSignificantCoeffY, thereby resulting in greater resource consumption in the bitstream due to encoding large values in the bitstream. In addition, another possibility is to apply the method in the case of lossless compression. Since quantization is not allowed in lossless compression, there may generally be many coefficients, and the coefficients may have large values. In this case, using the existing solution may result in higher resource consumption, irrational use, and reduced compression efficiency.
[00171] В вариантах осуществления настоящего изобретения предоставлен способ декодирования. Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00171] In embodiments of the present invention, a decoding method is provided. Identification information about a component of a current slice and information about the coordinates of the last significant coefficient of a current block corresponding to the component of the current slice are determined by analyzing a bit stream. When the identification information about the component indicates that a reversal of the location of the last significant coefficient is applied to the component of the current slice, the location of the last significant coefficient of the current block is obtained by performing a calculation with respect to the information about the coordinates of the last significant coefficient. The coefficients of the current block are determined by decoding all coefficients located above the location of the last significant coefficient in a given scanning order.
[00172] В вариантах осуществления настоящего изобретения дополнительно предоставлен способ кодирования. Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.[00172] In embodiments of the present invention, an encoding method is further provided. Identification information about a component of a current slice and the location of the last significant coefficient of a current block corresponding to the component of the current slice are determined. Information about the coordinates of the last significant coefficient of the current block is determined according to the identification information about the component and the location of the last significant coefficient. All coefficients located above the location of the last significant coefficient are encoded in a given scanning order. The bit information obtained by encoding, the identification information about the component and the coordinate information of the last significant coefficient are provided in a bitstream.
[00173] Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку значимые коэффициенты соответствующих компонентов цвета могут различаться в законе распределения, можно использовать соответствующую идентификационную информацию о компоненте для управления соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00173] Thus, in the scenario of encoding and decoding video with a high bit depth, high bit rate, high quality or lossless, a reasonable acquisition mode of the last significant coefficient is set according to the distribution law of the significant coefficients, thereby reducing the resource consumption caused by coding in the bit stream and improving the compression efficiency. In addition, since the significant coefficients of the corresponding color components may differ in the distribution law, it is possible to use the corresponding component identification information to control the corresponding acquisition mode of the last significant coefficient for each color component, that is, to separately control whether to apply the reversal technology of the last significant coefficient to each color component, thereby further improving the compression efficiency.
[00174] Варианты осуществления настоящего изобретения описаны далее в данном документе со ссылкой на графические материалы.[00174] Embodiments of the present invention are described further herein with reference to the drawings.
[00175] На фиг. 8A представлена иллюстративная структурная схема состава системы кодера согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 8A, кодер 100 может содержать узел 101 разбиения, узел 102 предсказания, первый сумматор 107, узел 108 преобразования, узел 109 квантования, узел 110 обратного квантования, узел 111 обратного преобразования, второй сумматор 112, узел 113 фильтрации, узел 114 буфера для декодированного изображения (DPB) и узел 115 энтропийного кодирования. Здесь входными данными кодера 100 может быть видео, состоящее из последовательности изображений, или статическое изображение. Выходные данные кодера 100 могут представлять собой поток битов (также называемый битовым потоком), представляющий сжатую версию входного видео.[00175] Fig. 8A is an exemplary block diagram of the composition of an encoder system according to embodiments of the present invention. As shown in Fig. 8A, the encoder 100 may comprise a partitioning unit 101, a prediction unit 102, a first adder 107, a transform unit 108, a quantization unit 109, an inverse quantization unit 110, an inverse transform unit 111, a second adder 112, a filtering unit 113, a decoded picture buffer (DPB) unit 114, and an entropy encoding unit 115. Here, the input data of the encoder 100 may be a video consisting of a sequence of images or a static image. The output data of the encoder 100 may be a bitstream (also called a bitstream) representing a compressed version of the input video.
[00176] Узел 101 разбиения может разбивать изображение входного видео на один или более узлов кодового дерева (CTU). Узел 101 разбиения может разделить изображение на один или более блоков изображения (также называемых тайлами) и может дополнительно разделить тайл на один или более пакетов. Здесь тайл или пакет может содержать один или более полных и/или частичных CTU. Кроме того, узел 101 разбиения может образовывать один или более слайсов. Слайс может содержать один или более тайлов в изображении, расположенных в растровом порядке, или один или более тайлов, покрывающих прямоугольную область в изображении. Узел 101 разбиения может дополнительно образовывать один или более фрагментов изображения. Фрагмент изображения может содержать один или более слайсов, тайлов или пакетов.[00176] The partitioning node 101 may partition the input video image into one or more coding tree nodes (CTUs). The partitioning node 101 may partition the image into one or more image blocks (also called tiles) and may further partition the tile into one or more packets. Here, a tile or packet may contain one or more full and/or partial CTUs. In addition, the partitioning node 101 may form one or more slices. A slice may contain one or more tiles in an image arranged in raster order, or one or more tiles covering a rectangular region in an image. The partitioning node 101 may further form one or more image fragments. An image fragment may contain one or more slices, tiles or packets.
[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 внутреннего предсказания для получения блока внутреннего предсказания.[00177] During the encoding process by the encoder 100, the partitioning unit 101 may transmit the CTU to the prediction unit 102. In general, the prediction unit 102 may consist of a block partitioning unit 103, a motion estimation (ME) unit 104, a motion compensation (MC) unit 105, and an intra prediction unit 106. In particular, the block partitioning unit 103 further partitions the input CTU into smaller coding units (CUs) by iteratively using a quaternary tree-based partition, a binary tree-based partition, and a ternary tree-based partition. The prediction unit 102 may obtain an intermediate prediction block of the CU using the ME unit 104 and the MC unit 105. The intra prediction unit 106 may obtain the intra prediction block of the CU using various intra prediction modes, including a matrix-weighted intra prediction (MIP) mode. In an example, the motion estimation mode based on the optimization of the distortion level (RDO) can be called by the ME node 104 and the MC node 105 to obtain an intermediate prediction block. The method of determining the mode based on the RDO can be called by the intra prediction node 106 to obtain an intra prediction block.
[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.[00178] The prediction node 102 may output a prediction block of a CU. The first adder 107 may calculate the difference between the CU in the output of the partition node 101 and the prediction block of the CU, i.e., the residual CU. The transform node 108 may read the residual CU and perform one or more transforms on the residual CU to obtain coefficients. The quantization node 109 may quantize the coefficients and output quantization coefficients (i.e., levels). The inverse quantization node 110 may scale the quantization coefficients to output reconstructed coefficients. The inverse transform node 111 may perform one or more inverse transforms corresponding to the one or more transforms in the transform node 108 and output the reconstructed residual. The second adder 112 may calculate the reconstructed CU by adding the reconstructed residual and the prediction block of the CU from the prediction node 102. The second adder 112 may further send the output of the second adder to the prediction unit 102 as a reference for the intra prediction. After all the CUs in the image or the sub-image have been reconstructed, the filtering unit 113 may perform loop filtering with respect to the reconstructed image or the sub-image. In this case, the filtering unit 113 may comprise one or more filters, such as a deblocking filter, a discrete adaptive offset (SAO) filter, an adaptive loop filter (ALF), a luminance mapping filter with chroma scaling (LMCS), and a neural network-based filter, etc. Alternatively, when the filtering unit 113 determines that a CU should not be used as a reference for encoding another CU, the filtering unit 113 may perform loop filtering with respect to one or more target pixels in the CU.
[00179] Выходными данными узла 113 фильтрации может быть декодированное изображение или фрагмент изображения. Декодированное изображение или фрагмент изображения могут быть кэшированы в узле 114 DPB. Узел 114 DPB может выводить декодированное изображение или фрагмент изображения на основе информации о синхронизации и управлении. В данном случае изображение, хранящееся в узле 114 DPB, может быть дополнительно использовано в качестве эталона для промежуточного предсказания или внутреннего предсказания, выполняемого узлом 102 предсказания. Наконец, узел 115 энтропийного кодирования может преобразовывать параметр (такой как параметр управления, дополнительная информация и т.д.), требуемый для декодирования изображения из кодера 100, в двоичную форму и предоставлять двоичную форму в битовый поток согласно структуре синтаксиса каждого узла данных. То есть кодер 100 выводит конечный битовый поток.[00179] The output of the filtering unit 113 may be a decoded image or a sub-image. The decoded image or sub-image may be cached in the DPB unit 114. The DPB unit 114 may output the decoded image or sub-image based on the synchronization and control information. In this case, the image stored in the DPB unit 114 may be further used as a reference for the intermediate prediction or intra prediction performed by the prediction unit 102. Finally, the entropy encoding unit 115 may convert the parameter (such as a control parameter, additional information, etc.) required for decoding the image from the encoder 100 into a binary form and provide the binary form in a bit stream according to the syntax structure of each data node. That is, the encoder 100 outputs the final bit stream.
[00180] Дополнительно кодер 100 может иметь первый процессор и первое запоминающее устройство, которое записывает компьютерную программу. Когда первый процессор считывает и запускает компьютерную программу, кодер 100 может считывать входное видео и генерировать битовый поток, соответствующий входному видео. Кроме того, кодер 100 может дополнительно представлять собой вычислительное устройство, имеющее один или более чипов. Узлы, реализованные в виде интегральных микросхем на чипе, могут иметь функции подключения и обмена данными, аналогичные соответствующим узлам на фиг. 8A.[00180] Additionally, the encoder 100 may have a first processor and a first memory device that records a computer program. When the first processor reads and runs the computer program, the encoder 100 may read an input video and generate a bit stream corresponding to the input video. Additionally, the encoder 100 may further be a computing device that has one or more chips. The nodes implemented as integrated circuits on a chip may have connection and data exchange functions similar to the corresponding nodes in Fig. 8A.
[00181] На фиг. 8B представлена иллюстративная структурная схема состава системы декодера согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 8B, декодер 200 может содержать узел 201 анализа, узел 202 предсказания, узел 205 обратного квантования, узел 206 обратного преобразования, сумматор 207, узел 208 фильтрации и узел 209 DPB. Входными данными декодера 200 может являться битовый поток, представляющий сжатую версию видео или статического изображения. Выходными данными декодера 200 может быть декодированное видео, состоящее из последовательности изображений, или декодированное статическое изображение.[00181] Fig. 8B is an exemplary block diagram of the composition of a decoder system according to embodiments of the present invention. As shown in Fig. 8B, a decoder 200 may comprise an analysis unit 201, a prediction unit 202, an inverse quantization unit 205, an inverse transform unit 206, an adder 207, a filtering unit 208, and a DPB unit 209. The input of the decoder 200 may be a bitstream representing a compressed version of a video or a still image. The output of the decoder 200 may be decoded video consisting of a sequence of images or a decoded still image.
[00182] Входной битовый поток декодера 200 может быть битовым потоком, сгенерированным кодером 100. Узел 201 анализа может анализировать входной битовый поток и получать значение по меньшей мере одного синтаксического элемента из входного битового потока. Узел 201 анализа может преобразовывать двоичное представление синтаксического элемента в числовое значение и отправлять числовое значение в узел в декодере 200 для получения одного или более декодированных изображений. Узел 201 анализа может дополнительно анализировать входной битовый поток для получения одного или более синтаксических элементов для отображения декодированного изображения.[00182] The input bit stream of the decoder 200 may be a bit stream generated by the encoder 100. The analysis unit 201 may analyze the input bit stream and obtain a value of at least one syntax element from the input bit stream. The analysis unit 201 may convert a binary representation of the syntax element into a numeric value and send the numeric value to a node in the decoder 200 to obtain one or more decoded images. The analysis unit 201 may further analyze the input bit stream to obtain one or more syntax elements for displaying the decoded image.
[00183] В процессе декодирования декодером 200 узел 201 анализа может отправлять значение по меньшей мере одного синтаксического элемента и одной или более переменных в узел в декодере 200. Одна или более переменных могут быть установлены или определены согласно значению по меньшей мере одного синтаксического элемента и сконфигурированы для получения одного или более декодированных изображений.[00183] During the decoding process by the decoder 200, the analysis node 201 may send a value of at least one syntax element and one or more variables to a node in the decoder 200. The one or more variables may be set or determined according to the value of at least one syntax element and configured to obtain one or more decoded images.
[00184] Узел 202 предсказания может определять блок предсказания текущего блока кодирования (например, CU). Узел 202 предсказания может содержать узел 203 MC и узел 204 внутреннего предсказания. В частности, когда указано, что для декодирования текущего блока кодирования используется режим промежуточного предсказания, узел 202 предсказания может передавать соответствующие параметры, отправленные узлом 201 анализа, в узел 203 MC для получения блока промежуточного предсказания. Когда указано, что режим внутреннего предсказания (включая режим MIP, указанный индексом режима MIP) используется для декодирования текущего блока кодирования, узел 202 предсказания может передавать соответствующие параметры из узла 201 анализа в узел 204 внутреннего предсказания для получения блока внутреннего предсказания.[00184] The prediction unit 202 may determine a prediction block of the current coding block (e.g., CU). The prediction unit 202 may comprise an MC unit 203 and an intra prediction unit 204. In particular, when it is indicated that an intermediate prediction mode is used to decode the current coding block, the prediction unit 202 may transmit corresponding parameters sent by the analysis unit 201 to the MC unit 203 to obtain the intermediate prediction block. When it is indicated that an intra prediction mode (including the MIP mode indicated by the MIP mode index) is used to decode the current coding block, the prediction unit 202 may transmit corresponding parameters from the analysis unit 201 to the intra prediction unit 204 to obtain the intra prediction block.
[00185] Узел 205 обратного квантования может иметь такую же функцию, что и узел 110 обратного квантования в кодере 100. Узел 205 обратного квантования может масштабировать коэффициенты квантования (т.е. уровни) из узла 201 анализа для получения восстановленных коэффициентов.[00185] The inverse quantization node 205 may have the same function as the inverse quantization node 110 in the encoder 100. The inverse quantization node 205 may scale the quantization coefficients (i.e., levels) from the analysis node 201 to obtain reconstructed coefficients.
[00189] Узел 206 обратного преобразования может иметь такую же функцию, что и узел 111 обратного преобразования в кодере 100. Узел 206 обратного преобразования может выполнять одно или более преобразований (т.е. обратные операции одного или более преобразований, выполняемых узлом 111 обратного преобразования в кодере 100) для получения восстановленного остатка.[00189] The inverse transform node 206 may have the same function as the inverse transform node 111 in the encoder 100. The inverse transform node 206 may perform one or more transforms (i.e., the inverse operations of one or more transforms performed by the inverse transform node 111 in the encoder 100) to obtain a reconstructed residual.
[00187] Сумматор 207 может выполнять сложение своих входных данных (т.е. блока предсказания из узла 202 предсказания и восстановленного остатка из узла 206 обратного преобразования) для получения восстановленного блока текущего блока кодирования. Восстановленный блок может быть дополнительно отправлен на узел 202 предсказания в качестве эталона для другого блока, подлежащего кодированию, в режиме внутреннего предсказания.[00187] The adder 207 may perform addition of its input data (i.e., the prediction block from the prediction node 202 and the reconstructed residual from the inverse transform node 206) to obtain a reconstructed block of the current coding block. The reconstructed block may be further sent to the prediction node 202 as a reference for another block to be coded in the intra prediction mode.
[00188] После того как все CU в изображении или фрагменте изображения были восстановлены, узел 208 фильтрации может выполнять контурную фильтрацию в отношении восстановленного изображения или фрагмента изображения. Узел 208 фильтрации может содержать один или более фильтров, например, деблокирующий фильтр, фильтр SAO, ALF, фильтр LMCS и фильтр на основе нейронной сети и т.п. Альтернативно, когда узел 208 фильтрации определяет, что восстановленный блок не используется в качестве эталона для декодирования другого блока, узел 208 фильтрации может выполнять контурную фильтрацию в отношении одного или более целевых пикселей в восстановленном блоке. В данном случае выходными данными узла 208 фильтрации может быть декодированное изображение или фрагмент изображения. Декодированное изображение или фрагмент изображения могут быть кэшированы в узле 209 DPB. Узел 209 DPB может выводить декодированное изображение или фрагмент изображения согласно информации о синхронизации и управлении. Изображение, хранящееся в узле 209 DPB, может быть дополнительно использовано в качестве эталона для промежуточного предсказания или внутреннего предсказания, выполняемого узлом 202 предсказания.[00188] After all CUs in the image or sub-image have been reconstructed, the filtering unit 208 may perform loop filtering on the reconstructed image or sub-image. The filtering unit 208 may comprise one or more filters, such as a deblocking filter, an SAO filter, an ALF filter, an LMCS filter, and a neural network filter, etc. Alternatively, when the filtering unit 208 determines that the reconstructed block is not used as a reference for decoding another block, the filtering unit 208 may perform loop filtering on one or more target pixels in the reconstructed block. In this case, the output of the filtering unit 208 may be a decoded image or sub-image. The decoded image or sub-image may be cached in the DPB unit 209. The DPB unit 209 may output the decoded image or sub-image according to the timing and control information. The image stored in the DPB node 209 may be further used as a reference for intermediate prediction or intra prediction performed by the prediction node 202.
[00189] Дополнительно декодер 200 может иметь второй процессор и второе запоминающее устройство, которое записывает компьютерную программу. Когда третий процессор считывает и запускает компьютерную программу, декодер 200 может считывать входной битовый поток и генерировать декодированное видео, соответствующее входному битовому потоку. Кроме того, декодер 200 может дополнительно представлять собой вычислительное устройство, имеющее один или более чипов. Узел, реализованный в виде интегральных микросхем на чипе, может иметь функции подключения и обмена данными, аналогичные соответствующим узлам на фиг. 8B.[00189] Additionally, the decoder 200 may have a second processor and a second memory device that records a computer program. When the third processor reads and runs the computer program, the decoder 200 may read the input bit stream and generate decoded video corresponding to the input bit stream. Additionally, the decoder 200 may further be a computing device that has one or more chips. A node implemented as integrated circuits on a chip may have connection and data exchange functions similar to the corresponding nodes in Fig. 8B.
[00190] Дополнительно следует отметить, что, когда варианты осуществления настоящего изобретения применяют к кодеру 100, текущий блок конкретно относится к текущему блоку, подлежащему кодированию в видеоизображении (или сокращенно блоку кодирования). Когда варианты осуществления настоящего изобретения применяют к декодеру 200, текущий блок конкретно относится к текущему блоку, подлежащему декодированию в видеоизображении (или сокращенно блоку кодирования).[00190] It should be further noted that, when embodiments of the present invention are applied to the encoder 100, the current block specifically refers to the current block to be encoded in the video image (or, for short, the coding block). When embodiments of the present invention are applied to the decoder 200, the current block specifically refers to the current block to be decoded in the video image (or, for short, the coding block).
[00191] В варианте осуществления настоящего изобретения на фиг. 9 представлена блок-схема способа декодирования согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 9, способ может включать следующие операции с S901 по S903.[00191] In an embodiment of the present invention, Fig. 9 is a flow chart of a decoding method according to embodiments of the present invention. As shown in Fig. 9, the method may include the following operations S901 to S903.
[00192] В операции S901 идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока.[00192] In operation S901, identification information about a component of the current slice and information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice are determined by analyzing the bit stream.
[00193] Следует отметить, что способ декодирования согласно вариантам осуществления настоящего изобретения может конкретно относиться к способу декодирования коэффициента (коэффициентов), который может выполняться декодером. На основе структуры декодера 200, как показано на фиг. 8B, способ декодирования в основном выполняют с помощью узла 201 анализа в декодере 200. Узел 201 анализа может получать значение (значения) связанной идентификационной информации (или синтаксического элемента (синтаксических элементов)) путем выполнения декодирования с использованием режима адаптивного двоичного арифметического кодирования на основе контекстной модели или обходного режима, тем самым определяя коэффициенты текущего блока.[00193] It should be noted that the decoding method according to the embodiments of the present invention may specifically relate to a method for decoding a coefficient(s), which can be performed by a decoder. Based on the structure of the decoder 200, as shown in Fig. 8B, the decoding method is mainly performed by an analysis unit 201 in the decoder 200. The analysis unit 201 can obtain the value(s) of the associated identification information (or syntax element(s)) by performing decoding using the adaptive binary arithmetic coding mode based on the context model or the bypass mode, thereby determining the coefficients of the current block.
[00194] Дополнительно следует отметить, что в целом кодирование в стандарте видео может включать кодирование и декодирование. Следовательно, кодирование видео может включать способ кодирования, выполняемый на стороне кодера, и способ декодирования, выполняемый на стороне декодера. В вариантах осуществления настоящего изобретения описан способ декодирования, выполняемый на стороне декодера.[00194] It should be further noted that, in general, coding in a video standard may include coding and decoding. Therefore, video coding may include a coding method performed on the encoder side and a decoding method performed on the decoder side. In embodiments of the present invention, a decoding method performed on the decoder side is described.
[00195] В общем, например, для обычного видео способ декодирования коэффициента (коэффициентов) обычного видео является таким же, как существующий способ в уровне техники. Однако в некоторых случаях, таких как сценарий кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, в вариантах осуществления настоящего изобретения предоставляется способ, способный модифицировать режим получения местоположения последнего значимого коэффициента.[00195] In general, for example, for a normal video, a method for decoding a coefficient(s) of a normal video is the same as an existing method in the prior art. However, in some cases, such as a scenario of encoding and decoding a video with a high bit depth, high quality, high bit rate or lossless compression, the embodiments of the present invention provide a method capable of modifying the mode of obtaining the location of the last significant coefficient.
[00196] В вариантах осуществления настоящего изобретения идентификационная информация о компоненте текущего слайса представляет собой флаг уровня слайса. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса.[00196] In embodiments of the present invention, the identification information about the component of the current slice is a slice level flag. The identification information about the component indicates whether the reversal of the last significant coefficient is applied to the component of the current slice. If the reversal of the last significant coefficient is applied to the component of the current slice, this means that the reversal of the last significant coefficient is applied to the current block corresponding to the component of the current slice. If the reversal of the last significant coefficient is not applied to the component of the current slice, this means that the reversal of the last significant coefficient is not applied to the current block corresponding to the component of the current slice.
[00197] Понятно, что текущая последовательность может включать текущий слайс, а текущий слайс может включать текущий блок. В некоторых вариантах осуществления перед определением идентификационной информации о компоненте текущего слайса путем анализа битового потока способ может дополнительно включать следующие операции.[00197] It is understood that the current sequence may include the current slice, and the current slice may include the current block. In some embodiments, before determining the identification information about the component of the current slice by analyzing the bitstream, the method may further include the following operations.
[00198] Определяют первую идентификационную информацию о синтаксическом элементе путем анализа битового потока.[00198] First identification information about a syntax element is determined by analyzing a bitstream.
[00199] Операцию, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, выполняют, когда первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности.[00199] The operation in which identification information about a component of the current slice is determined by analyzing a bitstream is performed when the first identification information about the syntax element indicates that reversal of the last significant coefficient is permitted for the current sequence.
[00200] В вариантах осуществления настоящего изобретения способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о синтаксическом элементе является первым значением, определяют, что первая идентификационная информация о синтаксическом элементе указывает, что для текущей последовательности разрешено изменение местоположения на обратное последнего значимого коэффициента. Альтернативно, если значение первой идентификационной информации о синтаксическом элементе является вторым значением, определяют, что первая идентификационная информация о синтаксическом элементе указывает, что для текущей последовательности запрещено изменение местоположения на обратное последнего значимого коэффициента.[00200] In embodiments of the present invention, the method may further include the following step. If the value of the first identification information about the syntax element is a first value, it is determined that the first identification information about the syntax element indicates that reversal of the last significant coefficient is permitted for the current sequence. Alternatively, if the value of the first identification information about the syntax element is a second value, it is determined that the first identification information about the syntax element indicates that reversal of the last significant coefficient is prohibited for the current sequence.
[00201] Следует отметить, что первое значение отличается от второго значения. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00201] It should be noted that the first value is different from the second value. The first value and the second value may be parametric or may be numeric. In particular, the first identification information about the syntax element may be a parameter provided in the profile, or may be a flag value, which is in no way limited in the embodiments of the present invention.
[00202] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено в значение «ложь», а второе значение может быть установлено в значение «истина». Иллюстративно для флага, как правило, первое значение может быть значением 1, а второе значение может быть значением 0, что, однако, никоим образом не ограничено.[00202] For example, the first identification information about the syntax element is a flag. In this case, the first value may be set to 1, and the second value may be set to 0. Alternatively, the first value may be set to "true" and the second value may be set to "false". Alternatively, the first value may be set to 0 and the second value may be set to 1. Alternatively, the first value may be set to the value "false" and the second value may be set to the value "true". Illustratively, for a flag, as a rule, the first value may be the value 1, and the second value may be the value 0, which, however, is in no way limited.
[00203] Дополнительно следует отметить, что первая идентификационная информация о синтаксическом элементе может быть флагом уровня последовательности, обозначаемым как sps_reverse_last_sig_coeff_flag, для указания того, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Таким образом, при получении посредством декодирования того, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, идентификационная информация о компоненте на уровне слайса может быть дополнительно декодирована, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00203] It should be further noted that the first identification information about the syntax element may be a sequence level flag, denoted as sps_reverse_last_sig_coeff_flag, for indicating whether reversal of the last significant coefficient is allowed for the current sequence. Thus, when obtaining through decoding that reversal of the last significant coefficient is allowed for the current sequence, the identification information about the component at the slice level may be further decoded to determine whether reversal of the last significant coefficient is applied to the component of the current slice.
[00204] Дополнительно перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в возможном варианте осуществления способ может дополнительно включать следующие операции.[00204] Additionally, before obtaining the first identification information about the syntax element by decoding, in a possible embodiment, the method may further include the following operations.
[00205] Определяют вторую идентификационную информацию о синтаксическом элементе путем анализа битового потока.[00205] Determining second identification information about the syntax element by analyzing the bitstream.
[00206] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.[00206] The operation in which the first identification information about the syntax element is determined by analyzing the bit stream is performed when the second identification information about the syntax element indicates that the extension version of the standard is applied to the current sequence.
[00207] Перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в другом возможном варианте осуществления способ может дополнительно включать следующие операции.[00207] Before obtaining the first identification information about the syntax element by decoding, in another possible embodiment, the method may further include the following operations.
[00208] Определяют третью идентификационную информацию о синтаксическом элементе путем анализа битового потока.[00208] Third identification information about the syntax element is determined by analyzing the bitstream.
[00209] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.[00209] The operation in which the first identification information about the syntax element is determined by analyzing the bit stream is performed when the third identification information about the syntax element indicates that the range extension is applied to the current sequence.
[00210] Перед получением первой идентификационной информации о синтаксическом элементе посредством декодирования в еще одном возможном варианте осуществления способ может дополнительно включать следующие операции.[00210] Before obtaining the first identification information about the syntax element by decoding, in another possible embodiment, the method may further include the following operations.
[00211] Определяют вторую идентификационную информацию о синтаксическом элементе путем анализа битового потока.[00211] Determining second identification information about the syntax element by analyzing the bitstream.
[00212] Третью идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.[00212] The third identification information about the syntax element is determined by analyzing the bitstream when the second identification information about the syntax element indicates that the version of the extension of the standard is applied to the current sequence.
[00213] Операцию, при которой первую идентификационную информацию о синтаксическом элементе определяют путем анализа битового потока, выполняют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.[00213] The operation in which the first identification information about the syntax element is determined by analyzing the bit stream is performed when the third identification information about the syntax element indicates that the range extension is applied to the current sequence.
[00214] Следует отметить, что как вторая идентификационная информация о синтаксическом элементе, так и третья идентификационная информация о синтаксическом элементе являются флагами уровня последовательности. Вторая идентификационная информация о синтаксическом элементе обозначена как sps_extension_flag для указания, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе обозначена как sps_range_extension_flag для указания, применено ли расширение диапазона к текущей последовательности.[00214] It should be noted that both the second syntax element identification information and the third syntax element identification information are sequence-level flags. The second syntax element identification information is designated as sps_extension_flag to indicate whether a version of the standard extension is applied to the current sequence. The third syntax element identification information is designated as sps_range_extension_flag to indicate whether a range extension is applied to the current sequence.
[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 указывает, что расширение диапазона применено к текущей последовательности. Однако они никоим образом не ограничены в вариантах осуществления настоящего изобретения.[00215] That is, before obtaining the first identification information about the syntax element (sps_reverse_last_sig_coeff_flag) through decoding, the following operations may be performed. sps_extension_flag is obtained by analyzing the bitstream; and sps_reverse_last_sig_coeff_flag is obtained by decoding if sps_extension_flag indicates that the extension version of the standard is applied to the current sequence. Alternatively, sps_range_extension_flag is obtained by analyzing the bitstream; and sps_reverse_last_sig_coeff_flag is obtained by decoding if sps_range_extension_flag indicates that the range extension is applied to the current sequence. Alternatively, sps_extension_flag is obtained by analyzing the bitstream; sps_range_extension_flag is obtained by analyzing the bitstream if sps_extension_flag indicates that the extension version of the standard is applied to the current sequence; and sps_reverse_last_sig_coeff_flag is obtained by decoding if sps_range_extension_flag indicates that the range extension is applied to the current sequence. However, they are not limited in any way in the embodiments of the present invention.
[00216] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о синтаксическом элементе является первым значением, определяют, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности. Альтернативно, если значение второй идентификационной информации о синтаксическом элементе является вторым значением, определяют, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта не применена к текущей последовательности.[00216] Additionally, in some embodiments, the method may further include the following operation. If the value of the second identification information about the syntax element is the first value, it is determined that the second identification information about the syntax element indicates that the version of the extension of the standard is applied to the current sequence. Alternatively, if the value of the second identification information about the syntax element is the second value, it is determined that the second identification information about the syntax element indicates that the version of the extension of the standard is not applied to the current sequence.
[00217] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение третьей идентификационной информации о синтаксическом элементе является первым значением, определяют, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности. Альтернативно, если значение третьей идентификационной информации о синтаксическом элементе является вторым значением, определяют, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона не применено к текущей последовательности.[00217] Additionally, in some embodiments, the method may further include the following operation. If the value of the third identification information about the syntax element is the first value, it is determined that the third identification information about the syntax element indicates that the range extension is applied to the current sequence. Alternatively, if the value of the third identification information about the syntax element is the second value, it is determined that the third identification information about the syntax element indicates that the range extension is not applied to the current sequence.
[00218] Следует отметить, что первое значение отличается от второго значения. Первое значение и второе значение могут быть в параметрической форме или могут быть в числовой форме. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.[00218] It should be noted that the first value is different from the second value. The first value and the second value may be in parametric form or may be in numerical form. In a specific example, the first value may be set to 1 and the second value may be set to 0, which, however, is in no way limited.
[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, т.е. изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, идентификационную информацию о компоненте на уровне слайса необходимо дополнительно декодировать, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00219] It should be further noted that the second identification information about the syntax element is designated as sps_extension_flag. The third identification information about the syntax element is designated as sps_range_extension_flag. Accordingly, at the sequence level, if sps_extension_flag has the value 1, i.e., the extension version of the standard is applied to the current sequence, then sps_range_extension_flag must be decoded. If sps_range_extension_flag has the value 1, i.e., the range extension is applied to the current sequence, then sps_reverse_last_sig_coeff_flag must be decoded. If sps_reverse_last_sig_coeff_flag has the value 1, i.e., if reversal of the last significant coefficient is allowed for the current sequence, the slice-level component identification information must be further decoded to determine whether reversal of the last significant coefficient is applied to a component of the current slice.
[00220] В некоторых вариантах осуществления расширение диапазона применено к текущей последовательности, что может включать то, что текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.[00220] In some embodiments, range extension is applied to the current sequence, which may include the current sequence having at least one of the following: high bit depth, high quality, high bit rate, high frame rate, or lossless compression.
[00221] То есть, по сравнению с обычным видео, видео согласно вариантам осуществления настоящего изобретения имеет характеристики высокой битовой глубины, высокого качества, высокой битовой скорости, высокой кадровой частоты, сжатия без потерь и/или т.п.[00221] That is, compared with conventional video, video according to embodiments of the present invention has characteristics of high bit depth, high quality, high bit rate, high frame rate, lossless compression, and/or the like.
[00222] Дополнительно первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе и т.п. могут быть флагами уровня последовательности или даже флагами более высокого уровня, такими как информация об удобстве использования видео (VUI), информация для дополнительной оптимизации (SEI) и т.п.[00222] Additionally, the first identification information about the syntax element, the second identification information about the syntax element, the third identification information about the syntax element, etc. may be sequence-level flags or even higher-level flags such as video usability information (VUI), supplemental optimization information (SEI), etc.
[00223] В конкретном примере для текущей последовательности видео определяют, применена ли версия расширения стандарта к текущей последовательности, с использованием второй идентификационной информации о синтаксическом элементе (sps_extension_flag). Другими словами, определяют, может ли текущая последовательность быть открыта в версии расширения стандарта, такой как версия расширения в VVC, сформулированная для кодирования с высокой битовой глубиной и высокой битовой скоростью и т.п. Когда sps_extension_flag имеет значение 1, необходимо декодировать первую идентификационную информацию о синтаксическом элементе (sps_reverse_last_sig_coeff_flag). В противном случае нет необходимости декодировать первую идентификационную информацию о синтаксическом элементе (sps_reverse_last_sig_coeff_flag).[00223] In a specific example, for the current video sequence, it is determined whether an extension version of the standard is applied to the current sequence using the second identification information about the syntax element (sps_extension_flag). In other words, it is determined whether the current sequence can be opened in an extension version of the standard, such as an extension version in VVC formulated for coding with a high bit depth and a high bit rate, etc. When sps_extension_flag has a value of 1, it is necessary to decode the first identification information about the syntax element (sps_reverse_last_sig_coeff_flag). Otherwise, it is not necessary to decode the first identification information about the syntax element (sps_reverse_last_sig_coeff_flag).
[00224] В другом конкретном примере для текущей последовательности видео, когда sps_extension_flag имеет значение 1, необходимо дополнительно декодировать третью идентификационную информацию о синтаксическом элементе (sps_range_extension_flag) для определения того, применено ли расширение диапазона к текущей последовательности, например, флаг (флаги) с высокой битовой глубиной, высокой битовой скоростью, высокой кадровой частотой, сжатием без потерь и/или т.п. Например, ниже в данном документе описаны соответственно четыре случая.[00224] In another specific example, for the current video sequence, when sps_extension_flag has a value of 1, it is necessary to further decode a third identification information about the syntax element (sps_range_extension_flag) to determine whether a range extension is applied to the current sequence, such as a flag(s) with a high bit depth, high bit rate, high frame rate, lossless compression, and/or the like. For example, four cases are described respectively below in this document.
[00225] В возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой глубиной, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой глубиной указывает, что текущая последовательность имеет высокую битовую глубину, определяют, что расширение диапазона применено к текущей последовательности.[00225] In a possible implementation, when the third identification information about the syntax element is identification information with a high bit depth, the method may further include the following operation. If the identification information with a high bit depth indicates that the current sequence has a high bit depth, it is determined that range extension is applied to the current sequence.
[00226] В другой возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой скоростью, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой скоростью указывает, что текущая последовательность имеет высокую битовую скорость, определяют, что расширение диапазона применено к текущей последовательности.[00226] In another possible implementation, when the third identification information about the syntax element is identification information with a high bit rate, the method may further include the following operation. If the identification information with a high bit rate indicates that the current sequence has a high bit rate, it is determined that range extension is applied to the current sequence.
[00227] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высоким качеством, способ может дополнительно включать следующую операцию. Если идентификационная информация с высоким качеством указывает, что текущая последовательность имеет высокое качество, определяют, что расширение диапазона применено к текущей последовательности.[00227] In another possible implementation, when the third identification information about the syntax element is high-quality identification information, the method may further include the following operation. If the high-quality identification information indicates that the current sequence has high quality, it is determined that the range extension is applied to the current sequence.
[00228] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию со сжатием без потерь, способ может дополнительно включать следующую операцию. Если идентификационная информация со сжатием без потерь указывает, что текущая последовательность имеет сжатие без потерь (т.е. сжата без потерь), определяют, что расширение диапазона применено к текущей последовательности.[00228] In another possible implementation, when the third identification information about the syntax element is identification information with lossless compression, the method may further include the following operation. If the identification information with lossless compression indicates that the current sequence has lossless compression (i.e. is losslessly compressed), it is determined that range extension is applied to the current sequence.
[00229] Иллюстративно, если взять в качестве примера уровень последовательности, третья идентификационная информация о синтаксическом элементе может дополнительно представлять собой идентификационную информацию с высокой битовой глубиной (обозначенную как sps_high_bit_depth_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может представлять собой идентификационную информацию с высокой битовой скоростью (обозначенную как sps_high_bit_rate_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой скоростью; или альтернативно может представлять собой другую идентификационную информацию для указания высокой битовой глубины, высокой битовой скорости, высокого качества или сжатия без потерь, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00229] Illustratively, taking the sequence level as an example, the third identification information about the syntax element may further be high bit depth identification information (denoted as sps_high_bit_depth_flag) for indicating whether the current sequence is a high bit depth sequence; or alternatively may be high bit rate identification information (denoted as sps_high_bit_rate_flag) for indicating whether the current sequence is a high bit rate sequence; or alternatively may be other identification information for indicating high bit depth, high bit rate, high quality, or lossless compression, which is in no way limited in the embodiments of the present invention.
[00230] Дополнительно в некоторых вариантах осуществления в операции S901 операция, при которой информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока, может включать следующие операции.[00230] Additionally, in some embodiments, in operation S901, the operation in which information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice is determined by analyzing the bitstream may include the following operations.
[00231] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента получают путем анализа битового потока.[00231] Information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient are obtained by analyzing a bitstream.
[00232] Горизонтальную координату последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе горизонтальной координаты последнего значимого коэффициента.[00232] The horizontal coordinate of the last significant coefficient is determined according to the information about the prefix of the horizontal coordinate of the last significant coefficient and the information about the suffix of the horizontal coordinate of the last significant coefficient.
[00233] Вертикальную координату последнего значимого коэффициента определяют согласно информации о префиксе вертикальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.[00233] The vertical coordinate of the last significant coefficient is determined according to the information about the prefix of the vertical coordinate of the last significant coefficient and the information about the suffix of the vertical coordinate of the last significant coefficient.
[00234] Информация о координатах последнего значимого коэффициента текущего блока может быть определена согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00234] The information about the coordinates of the last significant coefficient of the current block may be determined according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[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.[00235] It should be noted that the information about the prefix of the horizontal coordinate of the last significant coefficient may be designated as last_sig_coeff_x_prefix, i.e., indicating the prefix of the horizontal coordinate (or column position) of the last significant coefficient in the given scan order in the current block. The information about the prefix of the vertical coordinate of the last significant coefficient may be designated as last_sig_coeff_y_prefix, i.e., indicating the prefix of the vertical coordinate (or row position) of the last significant coefficient in the given scan order in the current block. The information about the suffix of the horizontal coordinate of the last significant coefficient may be designated as last_sig_coeff_x_suffix, i.e., indicating the suffix of the horizontal coordinate (or column position) of the last significant coefficient in the given scan order in the current block. The vertical coordinate suffix information of the last significant coefficient can be denoted as last_sig_coeff_y_suffix, i.e., indicating the vertical coordinate suffix (or row position) of the last significant coefficient in the given scan order in the current block. That is, the coordinate information of the last significant coefficient can be determined based on last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix, and 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 могут определять ординату (т.е. вертикальную координату) последнего значимого коэффициента, благодаря чему получают информацию о координатах последнего значимого коэффициента.[00236] It should be further understood that last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may determine the abscissa (i.e., horizontal coordinate) of the last significant coefficient. last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may determine the ordinate (i.e., vertical coordinate) of the last significant coefficient, thereby obtaining information about the coordinates of the last significant coefficient.
[00237] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть обозначена как reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00237] In embodiments of the present invention, the identification information of the reversal of the last significant coefficient may be designated as reverse_last_sig_coeff_flag. The identification information of the reversal of the last significant coefficient may be at least one of sequence-level identification information, image-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited herein.
[00238] То есть reverse_last_sig_coeff_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00238] That is, reverse_last_sig_coeff_flag may be a sequence level flag or a higher level flag, or may be an image level flag or a slice level flag, or a block level flag, or another level flag. In addition, the block level flag may include an LCU level flag or a CTU level flag, or a CU level flag, or another block level flag, which is in no way limited in the embodiments of the present invention.
[00239] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне последовательности может быть обозначена как sps_reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может быть обозначена как sh_reverse_last_sig_coeff_flag.[00239] In embodiments of the present invention, the identification information of the reversal of the last significant coefficient at the sequence level may be designated as sps_reverse_last_sig_coeff_flag. The identification information of the reversal of the last significant coefficient at the slice level may be designated as sh_reverse_last_sig_coeff_flag.
[00240] Дополнительно следует отметить, что идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может дополнительно упоминаться как идентификационная информация о компоненте текущего слайса. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.[00240] It should be further noted that the identification information about the change of the location to the inverse of the last significant coefficient of the slice level may be further referred to as the identification information about the component of the current slice. In some embodiments, the method may further include the following operation.
[00241] Когда значение идентификационной информации о компоненте является первым значением, определяют, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.[00241] When the value of the component identification information is the first value, it is determined that the component identification information indicates that a reversal of the last significant coefficient is applied to the component of the current slice.
[00242] Альтернативно, когда значение идентификационной информации о компоненте является вторым значением, определяют, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.[00242] Alternatively, when the value of the component identification information is the second value, it is determined that the component identification information indicates that the reversal of the last significant coefficient is not applied to the component of the current slice.
[00243] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.[00243] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric or may be numeric. In a specific example, the first value may be set to 1 and the second value may be set to 0, which, however, is in no way limited.
[00244] В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если посредством декодирования получают, что значение идентификационной информации о компоненте равно 1, может быть определено, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса. Если посредством декодирования получают, что значение идентификационной информации о компоненте равно 0, может быть определено, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.[00244] As an example, a first value equal to 1 and a second value equal to 0 are taken. If it is obtained through decoding that the value of the component identification information is 1, it can be determined that the component identification information indicates that the reversal of the last significant coefficient is applied to the component of the current slice. If it is obtained through decoding that the value of the component identification information is 0, it can be determined that the component identification information indicates that the reversal of the last significant coefficient is not applied to the component of the current slice.
[00245] В операции S902 в ответ, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, получают местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента.[00245] In operation S902, in response to the identification information about the component indicating that a reversal of the location of the last significant coefficient is applied to the component of the current slice, the location of the last significant coefficient of the current block is obtained by performing a calculation with respect to the coordinate information of the last significant coefficient.
[00246] В операции S903 коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00246] In operation S903, the coefficients of the current block are determined by decoding all coefficients located above the location of the last significant coefficient in a specified scan order.
[00247] Следует отметить, что в вариантах осуществления настоящего изобретения, когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента также применено к текущему блоку, соответствующему компоненту текущего слайса. В этом случае информация о координатах последнего значимого коэффициента текущего блока может быть определена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока.[00247] It should be noted that in the embodiments of the present invention, when the identification information about the component indicates that the reversal of the location of the last significant coefficient is applied to the component of the current slice, this means that the reversal of the location of the last significant coefficient is also applied to the current block corresponding to the component of the current slice. In this case, the coordinate information of the last significant coefficient of the current block can be defined as the horizontal distance and the vertical distance between the location of the last significant coefficient and the lower right corner of the current block.
[00248] В некоторых вариантах осуществления операция, при которой получают местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента, может включать следующие операции.[00248] In some embodiments, the operation of obtaining the location of the last significant coefficient of the current block by performing a calculation with respect to coordinate information of the last significant coefficient may include the following operations.
[00249] Определяют ширину и высоту текущего блока.[00249] Defines the width and height of the current block.
[00250] Горизонтальную координату последнего значимого коэффициента получают путем вычитания расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из ширины текущего блока.[00250] The horizontal coordinate of the last significant coefficient is obtained by subtracting the horizontal distance between the location of the last significant coefficient and the lower right corner of the current block from the width of the current block.
[00251] Вертикальную координату последнего значимого коэффициента получают путем вычитания расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из высоты текущего блока.[00251] The vertical coordinate of the last significant coefficient is obtained by subtracting the vertical distance between the location of the last significant coefficient and the lower right corner of the current block from the height of the current block.
[00252] Местоположение последнего значимого коэффициента текущего блока определяют согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00252] The location of the last significant coefficient of the current block is determined according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[00253] Следует отметить, что информация о координатах последнего значимого коэффициента обычно является расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока. Для обычного видео большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0. Однако для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью много значимых коэффициентов могут также появляться в нижнем правом углу, так что информация о координатах последнего значимого коэффициента имеет большое значение. В этом случае для экономии потребления ресурсов преобразование координаты (в частности, изменение координаты на обратную, где после изменения координаты на обратную информацией о координатах последнего значимого коэффициента является расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока) необходимо выполнить во время кодирования коэффициентов. Соответственно, при декодировании коэффициента также необходимо выполнить изменение координаты на обратную. После повторного выполнения изменения координаты на обратную информация о координатах последнего значимого коэффициента может быть восстановлена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока с определением при этом местоположения последнего значимого коэффициента для кодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента в текущем блоке, в заданном порядке сканирования.[00253] It should be noted that the coordinate information of the last significant coefficient is usually the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block. For a normal video, most of the significant coefficients are concentrated in the upper left corner, and the coefficients in a large area in the lower right corner are 0. However, for coding and decoding high bit depth, high quality, high bit rate video, many significant coefficients may also appear in the lower right corner, so the coordinate information of the last significant coefficient is of great importance. In this case, in order to save resource consumption, coordinate transformation (in particular, coordinate reversal, where after coordinate reversal, the coordinate information of the last significant coefficient is the horizontal distance and the vertical distance between the location of the last significant coefficient and the lower right corner of the current block) must be performed during coefficient coding. Accordingly, coordinate reversal must also be performed when decoding a coefficient. After re-executing the coordinate change to the reverse, the information about the coordinates of the last significant coefficient can be restored as a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block, while determining the location of the last significant coefficient for encoding all coefficients located above the location of the last significant coefficient in the current block, in a given scanning order.
[00254] Дополнительно следует отметить, что текущий блок, соответствующий компоненту текущего слайса, может представлять собой блок, в отношении которого не было выполнено преобразование нулевого вывода, или блок, в отношении которого было выполнено преобразование нулевого вывода. Если взять блок, в отношении которого было выполнено преобразование нулевого вывода, в качестве примера, в этом случае ширина текущего блока может представлять собой 1 <<log2ZoTbWidth, и высота текущего блока может представлять собой 1<<log2ZoTbHeight. Затем, в случае когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса,[00254] It should be further noted that the current block corresponding to the component of the current slice may be a block to which the zero output transformation has not been performed or a block to which the zero output transformation has been performed. Taking the block to which the zero output transformation has been performed as an example, in this case, the width of the current block may be 1 << log2ZoTbWidth, and the height of the current block may be 1 << log2ZoTbHeight. Then, in the case where the identification information about the component indicates that the reversal of the location of the last significant coefficient is applied to the component of the current slice,
[00255] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;[00255] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;
[0056] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.[0056] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00257] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) в правой части формулы может обозначать информацию о координатах последнего значимого коэффициента, полученную посредством декодирования. (LastSignificantCoeffX, LastSignificantCoeffY) в левой части формулы может обозначать местоположение последнего значимого коэффициента (которое может также рассматриваться как целевая информация о координатах последнего значимого коэффициента).[00257] In this document, (LastSignificantCoeffX, LastSignificantCoeffY) on the right side of the formula may denote the coordinate information of the last significant coefficient obtained by decoding. (LastSignificantCoeffX, LastSignificantCoeffY) on the left side of the formula may denote the location of the last significant coefficient (which may also be regarded as the target coordinate information of the last significant coefficient).
[00258] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00258] Additionally, in some embodiments, the method may further include the following steps.
[00259] Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, информацию о координатах последнего значимого коэффициента текущего блока определяют как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.[00259] When the identification information about a component indicates that the reversal of the location of the last significant coefficient is not applied to the component of the current slice, the coordinate information of the last significant coefficient of the current block is determined as the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block.
[00260] Местоположение последнего значимого коэффициента текущего блока определяют согласно расстоянию по горизонтали и расстоянию по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.[00260] The location of the last significant coefficient of the current block is determined according to the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block.
[00261] Следует отметить, что если идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это также означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса. В этом случае информация о координатах последнего значимого коэффициента, полученная посредством декодирования, может рассматриваться как целевая информация о координатах последнего значимого коэффициента. В вариантах осуществления настоящего изобретения целевая информация о координатах последнего значимого коэффициента представляет собой расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.[00261] It should be noted that if the identification information about the component indicates that the reversal of the last significant coefficient is not applied to the component of the current slice, this also means that the reversal of the last significant coefficient is not applied to the current block corresponding to the component of the current slice. In this case, the coordinate information of the last significant coefficient obtained by decoding can be regarded as the target coordinate information of the last significant coefficient. In the embodiments of the present invention, the target coordinate information of the last significant coefficient is a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block.
[00262] Дополнительно в некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00262] Additionally, in some embodiments, the method may further include the following steps.
[00263] Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока определяют непосредственно согласно информации о координатах последнего значимого коэффициента.[00263] When the identification information about the component indicates that the reversal of the location of the last significant coefficient is not applied to the component of the current slice, the location of the last significant coefficient of the current block is determined directly according to the coordinate information of the last significant coefficient.
[00264] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00264] The coefficients of the current block are determined by decoding all coefficients located above the location of the last significant coefficient, in a given scan order.
[00265] Следует отметить, что заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00265] It should be noted that the specified scanning order may be a diagonal scanning order, a zigzag scanning order, a horizontal scanning order, a vertical scanning order, a 4×4 sub-block scanning order, etc., which is in no way limited in the embodiments of the present invention.
[00266] Дополнительно следует отметить, что после получения идентификационной информации о компоненте текущего слайса, если идентификационная информация о компоненте текущего слайса имеет значение 1, т.е. изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, то для текущего блока, соответствующего компоненту текущего слайса, после получения информации о координатах последнего значимого коэффициента посредством декодирования, местоположение последнего значимого коэффициента текущего блока определяют путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Затем коэффициенты текущего блока получают путем декодирования всех коэффициентов выше местоположения последнего значимого коэффициента в заданном порядке сканирования. Если идентификационная информация о компоненте текущего слайса имеет значение 0, т.е. изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, то для текущего блока, соответствующего компоненту текущего слайса, после получения информации о координатах последнего значимого коэффициента посредством декодирования, местоположение последнего значимого коэффициента текущего блока может быть определено непосредственно согласно информации о координатах последнего значимого коэффициента. Затем коэффициенты текущего блока получают путем декодирования всех коэффициентов выше местоположения последнего значимого коэффициента в заданном порядке сканирования.[00266] It should be further noted that, after obtaining the identification information of the component of the current slice, if the identification information of the component of the current slice has a value of 1, i.e., a reversal of the location of the last significant coefficient is applied to the component of the current slice, then for the current block corresponding to the component of the current slice, after obtaining the coordinate information of the last significant coefficient by decoding, the location of the last significant coefficient of the current block is determined by performing a calculation with respect to the coordinate information of the last significant coefficient. Then, the coefficients of the current block are obtained by decoding all the coefficients above the location of the last significant coefficient in a given scanning order. If the identification information of the component of the current slice has a value of 0, i.e., the reversal of the location of the last significant coefficient is not applied to the component of the current slice, then for the current block corresponding to the component of the current slice, after obtaining the coordinate information of the last significant coefficient through decoding, the location of the last significant coefficient of the current block can be determined directly according to the coordinate information of the last significant coefficient. Then, the coefficients of the current block are obtained by decoding all the coefficients above the location of the last significant coefficient in a given scan order.
[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) текущего блока.[00267] Thus, in some cases, such as encoding and decoding video with a high bit depth, high quality, high bit rate or lossless compression, during encoding coefficients, in the embodiments of the present invention, a method for modifying a mode of obtaining a location of the last significant coefficient is provided. That is, usually, the method of encoding and decoding coefficients is still the same as the existing method in the prior art. Usually, last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may be configured to encode the abscissa of the location of the last significant coefficient, i.e., the horizontal distance relative to the upper left corner of the current block; and last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be configured to encode the ordinate of the location of the last significant coefficient, i.e., the vertical distance relative to the upper left corner of the current block, as shown in Fig. 10A. When encoding and decoding video with high bit depth, high quality, high bit rate or lossless compression, the location of the last significant coefficient is usually close to the lower right corner of the region that includes all possible non-zero coefficients in the current block. In this case, last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may be configured to encode the horizontal distance between the location of the last significant coefficient and the lower right corner of the region that includes all possible non-zero coefficients in the current block, and last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be configured to encode the vertical distance between the location of the last significant coefficient and the lower right corner of the region that includes all possible non-zero coefficients in the current block, as shown in Fig. 10B. For example, if the region including all possible non-zero coefficients in the current block is a rectangular region defined by (0, 0) and ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1), last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may be configured to encode the horizontal distance between the location of the last significant coefficient and ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1) of the current block, and last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be configured to encode the vertical distance between the location of the last significant coefficient and ((1<<log2ZoTbWidth)-1, (1<<log2ZoTbHeight)-1) of the current block.
[00268] Модификация семантики заключается в следующем.[00268] The modification of semantics is as follows.
[00269] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в заданном порядке сканирования в текущем блоке может быть получена следующим образом.[00269] The horizontal coordinate (or column position) LastSignificantCoeffX of the last significant coefficient in a given scan order in the current block can be obtained as follows.
[00270] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:[00270] If last_sig_coeff_x_suffix is not present, the following applies:
[00271] LastSignificantCoeffX= last_sig_coeff_x_prefix.[00271] LastSignificantCoeffX= last_sig_coeff_x_prefix.
[00272] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:[00272] Otherwise (last_sig_coeff_x_suffix is present) the following applies:
[00273] LastSignificantCoeffX= (1<<((last_sig_coeff_x_prefix>>1)-1)) * (2+(last_sig_coeff_x_prefix&1)) + 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, применимо следующее:[00274] If reverse_last_sig_coeff_flag is 1, the following applies:
[00275] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.[00275] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.
[00276] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке может быть получена следующим образом.[00276] The vertical coordinate (or row position) LastSignificantCoeffY of the last significant coefficient in scan order in the current block can be obtained as follows.
[00277] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:[00277] If last_sig_coeff_y_suffix is not present, the following applies:
[00278] LastSignificantCoeffY= last_sig_coeff_y_prefix.[00278] LastSignificantCoeffY= last_sig_coeff_y_prefix.
[00279] В противном случае (last_sig_coeff_y_suffix присутствует):[00279] Otherwise (last_sig_coeff_y_suffix is present):
[00280] LastSignificantCoeffY= (1<<((last_sig_coeff_y_prefix>>1)-1)) * (2+(last_sig_coeff_y_prefix&1)) + 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, применимо следующее:[00281] If reverse_last_sig_coeff_flag is 1, the following applies:
[00282] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.[00282] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00283] В данном документе reverse_last_sig_coeff_flag представляет собой флаг изменения местоположения на обратное последнего значимого коэффициента, указывающий, нужно ли местоположение последнего значимого коэффициента изменить на обратное. Если reverse_last_sig_coeff_flag имеет значение 1, это указывает, что местоположение последнего значимого коэффициента нужно изменить на обратное. В противном случае флаг указывает, что местоположение последнего значимого коэффициента не должно быть изменено на обратное.[00283] In this document, reverse_last_sig_coeff_flag is a flag for reversing the location of the last significant coefficient, indicating whether the location of the last significant coefficient should be reversed. If reverse_last_sig_coeff_flag is set to 1, it indicates that the location of the last significant coefficient should be reversed. Otherwise, the flag indicates that the location of the last significant coefficient should not be reversed.
[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.[00284] It should be further noted that reverse_last_sig_coeff_flag may be a sequence-level flag or a higher-level flag, or may be a picture-level flag or a slice-level flag or a block-level flag or another level flag. The block-level flag may include an LCU-level flag or a CTU-level flag or a CU-level flag or another block-level flag. Illustratively, the sequence-level reverse_last_sig_coeff_flag may be denoted as sps_reverse_last_sig_coeff_flag, and the slice-level reverse_last_sig_coeff_flag may be denoted as 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.[00285] In addition, reverse_last_sig_coeff_flag may depend on some other flags such as high bit depth identification information, high bit rate identification information, or second identification information about a syntax element (sequence parameter set, SPS, extension flag sps_extension_flag), or the like. The SPS extension flag may be opened in an extension version of the standard, such as an extension version in VVC, formulated for high bit depth coding and high bit rate coding. That is, reverse_last_sig_coeff_flag needs to be decoded when the high bit depth identification information or the high bit rate identification information has a value of 1. Otherwise, reverse_last_sig_coeff_flag does not need to be decoded.
[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.[00286] In a specific example, sequence level identification information sps_extension_flag, sps_range_extension_flag, and sps_reverse_last_sig_coeff_flag are assumed to exist. At the sequence level, if sps_extension_flag has a value of 1, sps_range_extension_flag must be decoded. If sps_range_extension_flag has a value of 1, sps_reverse_last_sig_coeff_flag must be decoded. In this document, sps_reverse_last_sig_coeff_flag is a flag for reversing the location of the last significant coefficient for the current sequence. If sps_reverse_last_sig_coeff_flag has a value of 1, it is determined that reversing the location of the last significant coefficient has been applied to a block in the current sequence. Otherwise (i.e., if sps_reverse_last_sig_coeff_flag is 0), it is determined that the reversal of the last significant coefficient is not applied to the block in the current sequence. reverse_last_sig_coeff_flag in the existing syntax table is modified as sps_reverse_last_sig_coeff_flag.
[00287] Понятно, что sps_extension_flag может указывать, применена ли версия расширения стандарта к текущей последовательности. sps_range_extension_flag может указывать, применено ли расширение диапазона (такое как высокая битовая глубина, высокая битовая скорость и т.д.) к текущей последовательности.[00287] It is understood that sps_extension_flag can indicate whether a version of a standard extension is applied to the current sequence. sps_range_extension_flag can indicate whether a range extension (such as high bit depth, high bit rate, etc.) is applied to the current sequence.
[00288] В реализации таблица синтаксических элементов модифицируется следующим образом (полезная нагрузка необработанной последовательности байтов набора параметров последовательности, RBSP, синтаксис), как показано в таблице 3.[00288] In the implementation, the syntax element table is modified as follows (raw byte sequence payload of the sequence parameter set, RBSP, syntax), as shown in Table 3.
Таблица 3Table 3
[00289] В другой реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис расширения диапазона набора параметров последовательности), как показано в таблице 4.[00289] In another implementation, the syntax element table is modified as follows (sequence parameter set range extension syntax), as shown in Table 4.
Таблица 4Table 4
[00290] На основе синтаксических элементов в таблице 3 и таблице 4, когда значение sps_extension_flag равно 1, это означает, что синтаксические элементы sps_range_extension_flag и sps_extension_7bits присутствуют в структуре синтаксиса SPS RBSP; и когда значение sps_extension_flag равно 0, это означает, что эти синтаксические элементы не присутствуют в структуре синтаксиса SPS RBSP.[00290] Based on the syntax elements in Table 3 and Table 4, when the value of sps_extension_flag is 1, it means that the syntax elements sps_range_extension_flag and sps_extension_7bits are present in the SPS RBSP syntax structure; and when the value of sps_extension_flag is 0, it means that these syntax elements are not present in the SPS RBSP syntax structure.
[00291] В данном документе, если значение sps_range_extension_flag равно 1, это означает, что структура синтаксиса sps_range_extension() присутствует в структуре синтаксиса SPS RBSP. Если sps_range_extension_flag не присутствует, определяют, что значение sps_range_extension_flag равно 0.[00291] In this document, if the value of sps_range_extension_flag is 1, it means that the sps_range_extension() syntax structure is present in the SPS RBSP syntax structure. If sps_range_extension_flag is not present, the value of sps_range_extension_flag is determined to be 0.
[00292] Если значение sps_reverse_last_sig_coeff_flag равно 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к блоку в текущей последовательности. В противном случае (т.е., если значение sps_reverse_last_sig_coeff_flag равно 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к блоку в текущей последовательности.[00292] If the value of sps_reverse_last_sig_coeff_flag is 1, it means that the reversal of the last significant coefficient has been applied to the block in the current sequence. Otherwise (i.e., if the value of sps_reverse_last_sig_coeff_flag is 0), it means that the reversal of the last significant coefficient has not been applied to the block in the current sequence.
[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.[00293] In another specific example, sequence level identification information sps_extension_flag, sps_range_extension_flag, and sps_reverse_last_sig_coeff_enabled_flag are assumed to exist. At the sequence level, if sps_extension_flag has a value of 1, sps_range_extension_flag must be decoded. If sps_range_extension_flag has a value of 1, sps_reverse_last_sig_coeff_enabled_flag must be decoded. In this document, sps_reverse_last_sig_coeff_enabled_flag is the enabling flag (technology) for reversing the location of the last significant coefficient for the current sequence. If sps_reverse_last_sig_coeff_enabled_flag has a value of 1, this means that reversing the location of the last significant coefficient is enabled for a block in the current sequence. Otherwise (i.e., if sps_reverse_last_sig_coeff_enabled_flag is 0), it means that last significant coefficient reversal is disabled for the block in the current sequence. If sps_reverse_last_sig_coeff_enabled_flag is not present, sps_reverse_last_sig_coeff_enabled_flag is specified to be 0. At the slice level, if sps_reverse_last_sig_coeff_enabled_flag is 1, sh_reverse_last_sig_coeff_flag needs to be decoded. In this document, sh_reverse_last_sig_coeff_flag represents the last significant coefficient reversal flag for the current slice. If sh_reverse_last_sig_coeff_flag is 1, it means that last significant coefficient reversal is applied to the block in the current slice. Otherwise (i.e., if sh_reverse_last_sig_coeff_flag is 0), it means that reversal of the last significant coefficient location is not applied to the block in the current slice. If sh_reverse_last_sig_coeff_flag is not present, sh_reverse_last_sig_coeff_flag is defined to have the value 0. reverse_last_sig_coeff_flag in the existing syntax table is modified as sh_reverse_last_sig_coeff_flag.
[00294] Следует отметить, что на уровне последовательности флаг изменения местоположения на обратное последнего значимого коэффициента может означать «разрешено/обеспечено ли использование (чего-то)». На уровне слайса флаг изменения местоположения на обратное последнего значимого коэффициента может означать «определение, применяется/используется ли...».[00294] It should be noted that at the sequence level, the last significant coefficient reversal flag may mean "whether use of (something) is permitted/enabled". At the slice level, the last significant coefficient reversal flag may mean "determining whether... is applied/used".
[00295] В еще одной реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 5.[00295] In another implementation, the syntax element table is modified as follows (slice header syntax), as shown in Table 5.
Таблица 5Table 5
[00269] На основе синтаксического элемента в таблице 5, если значение sps_reverse_last_sig_coeff_enabled_flag равно 1, это означает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для блока в текущей последовательности. В противном случае (т.е., если значение sps_reverse_last_sig_coeff_enabled_flag равно 0) это означает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для блока в текущей последовательности.[00269] Based on the syntax element in Table 5, if the value of sps_reverse_last_sig_coeff_enabled_flag is 1, it means that reversing the location of the last significant coefficient is allowed for the block in the current sequence. Otherwise (i.e., if the value of sps_reverse_last_sig_coeff_enabled_flag is 0), it means that reversing the location of the last significant coefficient is prohibited for the block in the current sequence.
[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.[00297] If the value of sh_reverse_last_sig_coeff_flag is 1, it means that the reversal of the last significant coefficient has been applied to the block in the current slice. Otherwise (i.e., if the value of sh_reverse_last_sig_coeff_flag is 0), it means that the reversal of the last significant coefficient has not been applied to the block in the current slice. If sh_reverse_last_sig_coeff_flag is not present, the value of sh_reverse_last_sig_coeff_flag is determined to be 0.
[00298] Понятно, что для каждого из компонентов цвета текущего слайса идентификационная информация о компоненте (т.е. sh_reverse_last_sig_coeff_flag) текущего слайса может обеспечить возможность отдельного управления тем, применять ли изменение местоположения на обратное последнего значимого коэффициента к компоненту цвета.[00298] It is understood that for each of the color components of the current slice, the component identification information (i.e. sh_reverse_last_sig_coeff_flag) of the current slice may provide the ability to separately control whether to apply the reversal of the last significant coefficient to the color component.
[00299] В вариантах осуществления настоящего изобретения компонент может содержать первый компонент цвета, второй компонент цвета и третий компонент цвета.[00299] In embodiments of the present invention, the component may comprise a first color component, a second color component, and a third color component.
[00300] В конкретном примере первый компонент цвета представляет собой компонент яркости. Второй компонент цвета представляет собой первый компонент цветности. Третий компонент цвета представляет собой второй компонент цветности. Компонент яркости может быть обозначен как Y. Первый компонент цветности может быть обозначен как U(Cb). Второй компонент цветности может быть обозначен как V(Cr).[00300] In a particular example, the first color component is a luminance component. The second color component is the first chroma component. The third color component is the second chroma component. The luminance component may be denoted as Y. The first chroma component may be denoted as U(Cb). The second chroma component may be denoted as V(Cr).
[00301] В другом конкретном примере первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент. Красный компонент может быть обозначен как R. Зеленый компонент может быть обозначен как G. Синий компонент может быть обозначен как B.[00301] In another specific example, the first color component is a red component, the second color component is a green component, and the third color component is a blue component. The red component may be designated as R. The green component may be designated as G. The blue component may be designated as B.
[00302] Дополнительно в некоторых вариантах осуществления, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, способ может дополнительно включать следующие операции.[00302] Additionally, in some embodiments, when the component comprises a first color component, a second color component, and a third color component, the method may further include the following operations.
[00303] Определяют, используют ли совместно первый компонент цвета, второй компонент цвета и третий компонент цвета текущего слайса идентификационную информацию о компоненте на основе отношения между свойствами первого компонента цвета, второго компонента цвета и третьего компонента цвета.[00303] It is determined whether the first color component, the second color component, and the third color component of the current slice share identification information about the component based on the relationship between the properties of the first color component, the second color component, and the third color component.
[00304] Количество частей идентификационной информации о компоненте текущего слайса определяют согласно результату определения. В данном документе количество частей идентификационной информации о компоненте равно 1, 2 или 3.[00304] The number of parts of the component identification information of the current slice is determined according to the determination result. In this document, the number of parts of the component identification information is 1, 2, or 3.
[00305] В частности, операция, при которой определяют количество частей идентификационной информации о компоненте, может включать следующую операцию.[00305] In particular, the operation of determining the number of parts of the identification information about the component may include the following operation.
[00306] Количество частей идентификационной информации о компоненте текущего слайса определяют равным 1, если одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса.[00306] The number of parts of the component identification information of the current slice is determined to be 1 if one part of the component identification information is shared by the first color component, the second color component, and the third color component of the current slice.
[00307] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 2, если одна часть идентификационной информации о компоненте совместно используется двумя из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00307] Alternatively, the number of pieces of identification information about a component of the current slice is determined to be 2 if one piece of identification information about a component is shared by two of the first color component, the second color component, and the third color component of the current slice.
[00308] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 3, если каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.[00308] Alternatively, the number of parts of the component identification information of the current slice is determined to be 3 if each of the first color component, the second color component, and the third color component of the current slice has a separate part of the component identification information.
[00309] В вариантах осуществления настоящего изобретения, с одной стороны, свойства соответствующих компонентов цвета могут отличаться. Например, компоненты цвета представляют собой R, G, B видео формата RGB или Y, U, V (Y, Cb, Cr) видео формата YUV, или компоненты цвета видео другого возможного формата. Формат YUV может быть форматом, таким как YUV444, YUV422, YUV420. Человеческий глаз более чувствителен к изменению яркости, чем к изменению цветности. Следовательно, иногда понижающая дискретизация может выполняться в отношении цветности с использованием такого формата, как YUV422, YUV420 и/или т.п., и в целом шаг квантования для цветности может быть больше, чем для яркости, что снижает битовую скорость.[00309] In embodiments of the present invention, on the one hand, the properties of the corresponding color components may differ. For example, the color components are R, G, B of the RGB video format or Y, U, V (Y, Cb, Cr) of the YUV video format, or color components of the video of another possible format. The YUV format may be a format such as YUV444, YUV422, YUV420. The human eye is more sensitive to a change in brightness than to a change in chrominance. Therefore, sometimes downsampling may be performed with respect to chrominance using a format such as YUV422, YUV420 and/or the like, and in general, the quantization step for chrominance may be larger than for luminance, which reduces the bit rate.
[00310] С другой стороны, благодаря некоторым методам межкомпонентного кодирования эффективность кодирования повышается за счет корреляции между компонентами. Например, с помощью межкомпонентной линейной модели (CCLM) при межкомпонентном предсказании компонент цветности предсказывается с использованием восстановленного компонента яркости и линейной модели. С помощью CCLM точность предсказания компонента цветности может быть улучшена, что тем самым уменьшает остаточный компонент цветности. Кроме того, в некоторых других методах информация в отношении компонента яркости и одного компонента цветности дополнительно используется для предсказания другого компонента, что тем самым дополнительно улучшает эффективность сжатия. В контурном фильтре с межкомпонентным адаптивным контурным фильтром (CCALF) компонент цветности дополняется некоторой деталью компонента яркости для повышения эффективности сжатия. Деталь компонента цветности может быть дополнена компонентом яркости, что обеспечивает возможность большего искажения при остаточном кодировании.[00310] On the other hand, with some inter-component coding methods, the coding efficiency is improved due to the correlation between the components. For example, with the inter-component linear model (CCLM), in inter-component prediction, the chrominance component is predicted using the reconstructed luminance component and a linear model. With the CCLM, the prediction accuracy of the chrominance component can be improved, thereby reducing the residual chrominance component. In addition, in some other methods, information regarding the luminance component and one chrominance component is additionally used to predict the other component, thereby further improving the compression efficiency. In the inter-component adaptive loop filter (CCALF), the chrominance component is supplemented with some detail of the luminance component to improve the compression efficiency. The detail of the chrominance component can be supplemented with the luminance component, which allows for greater distortion in the residual coding.
[00311] Соответственно, поскольку свойства соответствующих компонентов цвета отличаются, и используются некоторые межкомпонентные методы, соответствующие компоненты цвета не всегда могут быть совместимыми при остаточном распределении. Например, при кодировании и декодировании видео с очень высокой битовой скоростью и очень высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть одинаковыми при распределении, например, все они расположены близко к нижнему правому углу области, включающей возможные значимые коэффициенты (т.е. ненулевые коэффициенты). Однако в некоторых случаях кодирования и декодирования видео с не особенно высокой битовой скоростью и не особенно высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть разными при распределении. Например, все значимые коэффициенты компонента Y находятся близко к нижнему правому углу области, включающей возможные значимые коэффициенты, а значимые коэффициенты компонента U/V распределяются только в верхнем левом углу. Альтернативно значимые коэффициенты компонента U также находятся близко к нижнему правому углу, а значимые коэффициенты компонента V распределяются только в верхнем левом углу.[00311] Accordingly, since the properties of the corresponding color components are different and some inter-component methods are used, the corresponding color components may not always be compatible in the residual distribution. For example, when encoding and decoding video with a very high bit rate and very high quality requirements, the significant coefficients of different components may be the same in the distribution, for example, they are all located close to the lower right corner of the region including possible significant coefficients (i.e., non-zero coefficients). However, in some cases of encoding and decoding video with a not particularly high bit rate and not particularly high quality requirements, the significant coefficients of different components may be different in the distribution. For example, all the significant coefficients of the Y component are close to the lower right corner of the region including possible significant coefficients, and the significant coefficients of the U/V component are distributed only in the upper left corner. Alternatively, the significant coefficients of the U component are also close to the lower right corner, and the significant coefficients of the V component are distributed only in the upper left corner.
[00312] Следовательно, в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация/флаг компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации компонента могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация/флаг компонента может управлять применением к компоненту яркости, а другая идентификация/флаг компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.[00312] Therefore, in embodiments of the present invention, one or more pieces of component identification information may be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification/flag may control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification/flag may control application to a luma component, and another component identification/flag may control application to two chroma components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. For example, the three color components are R, G, and B in RGB format, or Y, Cb, and Cr (or Y, U, and V) in YUV format.
[00313] В возможной реализации, когда количество частей идентификационной информации о компоненте равно 1, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение первой идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00313] In a possible implementation, when the number of parts of the component identification information is 1, the operation in which the component identification information of the current slice is determined by analyzing the bitstream may include determining a first component identification information of the current slice by analyzing the bitstream.
[00314] Соответственно, способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение первой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к любому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00314] Accordingly, the method may further include the following operation. If the value of the first component identification information is a first value, it is determined that the reversal of the last significant coefficient is applied to each of the first color component, the second color component, and the third color component of the current slice. Alternatively, if the value of the first component identification information is a second value, it is determined that the reversal of the last significant coefficient is not applied to any of the first color component, the second color component, and the third color component of the current slice.
[00315] В другой возможной реализации, когда количество частей идентификационной информации о компоненте равно 2, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00315] In another possible implementation, when the number of pieces of component identification information is 2, the operation of determining component identification information of the current slice by analyzing the bitstream may include determining a second component identification information and a third component identification information of the current slice by analyzing the bitstream.
[00316] Соответственно, способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение второй идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ни к одному из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00316] Accordingly, the method may further include the following operation. If the value of the second component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to each of the two color components of the first color component, the second color component, and the third color component of the current slice. Alternatively, if the value of the second component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to any of the two color components of the first color component, the second color component, and the third color component of the current slice.
[00317] Если значение третьей идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета (т.е., оставшемуся компоненту цвета) из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета. Альтернативно, если значение третьей идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета.[00317] If the value of the third component identification information is the first value, it is determined that the reversal of the location of the last significant coefficient is applied to another color component (i.e., the remaining color component) of the first color component, the second color component, and the third color component of the current slice, other than the two color components. Alternatively, if the value of the third component identification information is the second value, it is determined that the reversal of the location of the last significant coefficient is not applied to another color component of the first color component, the second color component, and the third color component of the current slice, other than the two color components.
[00318] В еще одной возможной реализации, когда количество частей идентификационной информации о компоненте равно 3, операция, при которой идентификационную информацию о компоненте текущего слайса определяют путем анализа битового потока, может включать определение четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00318] In another possible implementation, when the number of pieces of component identification information is 3, the operation of determining component identification information of the current slice by analyzing the bitstream may include determining a fourth component identification information, a fifth component identification information, and a sixth component identification information of the current slice by analyzing the bitstream.
[00319] Соответственно, способ может дополнительно включать следующую операцию. Если значение четвертой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса. Альтернативно, если значение четвертой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к первому компоненту цвета текущего слайса.[00319] Accordingly, the method may further include the following operation. If the value of the fourth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the first color component of the current slice. Alternatively, if the value of the fourth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the first color component of the current slice.
[00320] Если значение пятой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса. Альтернативно, если значение пятой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ко второму компоненту цвета текущего слайса.[00320] If the value of the fifth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the second color component of the current slice. Alternatively, if the value of the fifth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the second color component of the current slice.
[00321] Если значение шестой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса. Альтернативно, если значение шестой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к третьему компоненту цвета текущего слайса.[00321] If the value of the sixth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the third color component of the current slice. Alternatively, if the value of the sixth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the third color component of the current slice.
[00322] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.[00322] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric or may be numeric. In a specific example, the first value may be set to 1 and the second value may be set to 0, which, however, is in no way limited.
[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] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.[00323] It should be further noted that the component identification information in this case may be a slice level flag and may be designated as sh_reverse_last_sig_coeff_flag[cIdx]. In this document, cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may include sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1], and sh_reverse_last_sig_coeff_flag[2]. The fourth component identification information may be designated as sh_reverse_last_sig_coeff_flag[0] to indicate whether the reversal of the last significant coefficient location is applied to the current block corresponding to the first color component of the current slice. The fifth component identification information may be denoted as sh_reverse_last_sig_coeff_flag[1] to indicate whether the reversal of the last significant coefficient is applied to the current block corresponding to the second color component of the current slice. The sixth component identification information may be denoted as sh_reverse_last_sig_coeff_flag[2] to indicate whether the reversal of the last significant coefficient is applied to the current block corresponding to the third color component of the current slice.
[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.[00324] In a specific example, a separate piece of component identification information is set for each of the three Y, U, and V color components to control. Supposedly, there is sequence level identification information sps_extension_flag, sps_range_extension_flag, and sps_reverse_last_sig_coeff_enabled_flag. At the sequence level, sps_extension_flag can be obtained by decoding. sps_range_extension_flag must be obtained by decoding if sps_extension_flag has a value of 1. sps_reverse_last_sig_coeff_enabled_flag must be obtained by decoding if sps_range_extension_flag has a value of 1. In this document, sps_reverse_last_sig_coeff_enabled_flag is the enabling flag of the reversal technology of the last significant coefficient for the current sequence. If sps_reverse_last_sig_coeff_enabled_flag is 1, it means that reversing the last significant coefficient is allowed for a block in the current sequence. Otherwise (i.e., if sps_reverse_last_sig_coeff_enabled_flag is 0), it means that reversing the last significant coefficient is prohibited for a block in the current sequence. If sps_reverse_last_sig_coeff_enabled_flag is not present, sps_reverse_last_sig_coeff_enabled_flag has the value 0. At the slice level, the component identification information (sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1], and sh_reverse_last_sig_coeff_flag[2]) must additionally be obtained through decoding if sps_reverse_last_sig_coeff_enabled_flag has the value 1. In this document, sh_reverse_last_sig_coeff_flag[cIdx] (where cIdx can have the value 0, 1, or 2) represents the flag of reversing the location of the last significant coefficient for the cIdx-th component of the current slice. If sh_reverse_last_sig_coeff_flag[cIdx] is 1, it means that the reversal of the last significant coefficient is applied to the cIdx-th component block of the current slice. Otherwise (i.e., if sh_reverse_last_sig_coeff_flag[cIdx] is 0), it means that the reversal of the last significant coefficient is not applied to the cIdx-th component block of the current slice. If sh_reverse_last_sig_coeff_flag[cIdx] is not present, sh_reverse_last_sig_coeff_flag[cIdx] is 0.
[00325] В возможной реализации для формата YUV 0-й компонент соответствует компоненту Y, 1-й компонент соответствует компоненту U(Cb), и 2-й компонент соответствует компоненту V(Cr).[00325] In a possible implementation for the YUV format, the 0th component corresponds to the Y component, the 1st component corresponds to the U(Cb) component, and the 2nd component corresponds to the V(Cr) component.
[00326] В другой возможной реализации для формата RGB 0-й компонент соответствует компоненту R, 1-й компонент соответствует компоненту G, и 2-й компонент соответствует компоненту B.[00326] In another possible implementation for the RGB format, the 0th component corresponds to the R component, the 1st component corresponds to the G component, and the 2nd component corresponds to the B component.
[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).[00327] Illustratively, taking the YUV format as an example, if sh_reverse_last_sig_coeff_flag[0] has a value of 1, it may be determined that the reversal of the last significant coefficient is applied to the first color component of the current slice (such as the Y component). If sh_reverse_last_sig_coeff_flag[1] has a value of 1, it may be determined that the reversal of the last significant coefficient is applied to the second color component of the current slice (such as the U component). If sh_reverse_last_sig_coeff_flag[2] has a value of 1, it may be determined that the reversal of the last significant coefficient is applied to the third color component of the current slice (such as the V component).
[00328] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 6.[00328] In the implementation, the syntax element table is modified as follows (the RBSP syntax of the sequence parameter set), as shown in Table 6.
Таблица 6Table 6
[00329] В другой реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис расширения диапазона набора параметров последовательности), как показано в таблице 7.[00329] In another implementation, the syntax element table is modified as follows (sequence parameter set range extension syntax), as shown in Table 7.
Таблица 7Table 7
[00330] В еще одной реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 8.[00330] In another implementation, the syntax element table is modified as follows (slice header syntax), as shown in Table 8.
Таблица 8Table 8
[00331] В еще одной реализации может дополнительно существовать другая форма модификации для синтаксиса заголовка слайса. Таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 9.[00331] In yet another implementation, there may additionally be another form of modification to the slice header syntax. The syntax element table is modified as follows (slice header syntax), as shown in Table 9.
Таблица 9Table 9
[00332] В данном случае может быть предусмотрено, что startComp равен 0, и numComps равен 3.[00332] In this case, it may be envisaged that startComp is equal to 0 and numComps is equal to 3.
[00333] Модификация семантики заключается в следующем.[00333] The modification of semantics is as follows.
[00334] Горизонтальная координата (или положение столбца) LastSignificantCoeffX последнего значимого коэффициента в заданном порядке сканирования в текущем блоке может быть получена следующим образом.[00334] The horizontal coordinate (or column position) LastSignificantCoeffX of the last significant coefficient in a given scan order in the current block can be obtained as follows.
[00335] Если last_sig_coeff_x_suffix не присутствует, применимо следующее:[00335] If last_sig_coeff_x_suffix is not present, the following applies:
[00336] LastSignificantCoeffX= last_sig_coeff_x_prefix.[00336] LastSignificantCoeffX= last_sig_coeff_x_prefix.
[00337] В противном случае (last_sig_coeff_x_suffix присутствует) применимо следующее:[00337] Otherwise (last_sig_coeff_x_suffix is present) the following applies:
[00338] LastSignificantCoeffX= (1<<((last_sig_coeff_x_prefix>>1)-1)) * (2+(last_sig_coeff_x_prefix&1)) + 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, применимо следующее:[00339] If sh_reverse_last_sig_coeff_flag[cIdx] is 1, the following applies:
[00340] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.[00340] LastSignificantCoeffX = (1<<log2ZoTbWidth)-1-LastSignificantCoeffX.
[00341] Вертикальная координата (или положение строки) LastSignificantCoeffY последнего значимого коэффициента в порядке сканирования в текущем блоке может быть получена следующим образом.[00341] The vertical coordinate (or row position) LastSignificantCoeffY of the last significant coefficient in scan order in the current block can be obtained as follows.
[00342] Если last_sig_coeff_y_suffix не присутствует, применимо следующее:[00342] If last_sig_coeff_y_suffix is not present, the following applies:
[00343] LastSignificantCoeffY= last_sig_coeff_y_prefix.[00343] LastSignificantCoeffY= last_sig_coeff_y_prefix.
[00344] В противном случае (last_sig_coeff_y_suffix присутствует) применимо следующее:[00344] Otherwise (last_sig_coeff_y_suffix is present) the following applies:
[00345] LastSignificantCoeffY= (1<<((last_sig_coeff_y_prefix>>1)-1)) * (2+(last_sig_coeff_y_prefix&1)) + 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, применимо следующее:[00346] If sh_reverse_last_sig_coeff_flag[cIdx] is 1, the following applies:
[00347] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.[00347] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00348] В данном случае sh_reverse_last_sig_coeff_flag[cIdx] представляет флаг изменения местоположения на обратное последнего значимого коэффициента для cIdx-го компонента текущего слайса. cIdx может иметь значение 0, 1 или 2.[00348] In this case, sh_reverse_last_sig_coeff_flag[cIdx] represents the flag of reversing the location of the last significant coefficient for the cIdx-th component of the current slice. cIdx can have the value 0, 1, or 2.
[00349] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, все возможные коэффициенты, подлежащие кодированию, необходимо кодировать по умолчанию. То есть местоположение последнего значимого коэффициента больше не используется. Вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируют в заданном порядке сканирования. Следовательно, в вариантах осуществления настоящего изобретения может также вводиться идентификационная информация о разрешаемом последнем коэффициенте для определения, применено ли местоположение последнего коэффициента к текущему блоку.[00349] It should be further noted that when the third identification information about the syntax element indicates that the range extension is applied to the current sequence, all possible coefficients to be coded must be coded by default. That is, the location of the last significant coefficient is no longer used. Instead, all possible non-zero coefficients in the current block are scanned in a given scanning order. Therefore, in embodiments of the present invention, identification information about the resolved last coefficient may also be entered to determine whether the location of the last coefficient is applied to the current block.
[00350] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.[00350] In some embodiments, when the third identification information about the syntax element indicates that a range extension is applied to the current sequence, the method may further include the following operations.
[00351] Идентификационную информацию о разрешаемом последнем коэффициенте текущего блока определяют путем анализа битового потока.[00351] Identification information about the last resolved coefficient of the current block is determined by analyzing the bit stream.
[00352] Когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования.[00352] When the identification information about the last coefficient to be resolved indicates that the location of the last coefficient is applied to the current block, the coefficients of the current block are determined by decoding all coefficients located above the location of the last coefficient in a given scan order.
[00353] Следует отметить, что идентификационная информация о разрешаемом последнем коэффициенте может быть обозначена как default_last_coeff_enabled_flag. В вариантах осуществления настоящего изобретения идентификационная информация о разрешаемом последнем коэффициенте может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00353] It should be noted that the identification information about the last coefficient to be enabled may be designated as default_last_coeff_enabled_flag. In the embodiments of the present invention, the identification information about the last coefficient to be enabled may be at least one of sequence-level identification information, image-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited herein.
[00354] То есть default_last_coeff_enabled_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00354] That is, default_last_coeff_enabled_flag may be a sequence level flag or a higher level flag, or may be an image level flag or a slice level flag, or a block level flag, or another level flag. In addition, the block level flag may include an LCU level flag or a CTU level flag, or a CU level flag, or another block level flag, which is in no way limited in the embodiments of the present invention.
[00355] В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.[00355] In some embodiments, the method may further include the following step.
[00356] Если значение идентификационной информации о разрешаемом последнем коэффициенте является первым значением, определяют, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку.[00356] If the value of the identification information of the last coefficient to be resolved is the first value, it is determined that the identification information of the last coefficient to be resolved indicates that the location of the last coefficient is applied to the current block.
[00357] Альтернативно, если значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением, определяют, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку.[00357] Alternatively, if the value of the identification information of the last coefficient to be resolved is the second value, it is determined that the identification information of the last coefficient to be resolved indicates that the location of the last coefficient is not applied to the current block.
[00358] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими. Первое значение и второе значение могут быть числовыми. В конкретном примере первое значение может быть установлено как 1, а второе значение может быть установлено как 0, что, однако, никоим образом не ограничено.[00358] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric. The first value and the second value may be numeric. In a specific example, the first value may be set to 1 and the second value may be set to 0, which, however, is not limited in any way.
[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 указывает, что местоположение последнего коэффициента не применено к текущему блоку.[00359] Accordingly, the first value is 1 and the second value is 0 as an example. If default_last_coeff_enabled_flag has a value of 1, it can be determined that default_last_coeff_enabled_flag indicates that the location of the last coefficient is applied to the current block. Alternatively, if default_last_coeff_enabled_flag has a value of 0, it can be determined that default_last_coeff_enabled_flag indicates that the location of the last coefficient is not applied to the current block.
[00360] Когда местоположение последнего коэффициента применено к текущему блоку, коэффициенты текущего блока могут быть определены путем декодирования всех коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования.[00360] When the location of the last coefficient is applied to the current block, the coefficients of the current block may be determined by decoding all coefficients located above the location of the last coefficient in a given scan order.
[00361] Дополнительно, когда местоположение последнего коэффициента не применено к текущему блоку, т.е. значение идентификационной информации о разрешаемом последнем коэффициенте равно 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00361] Additionally, when the location of the last coefficient is not applied to the current block, i.e. the value of the identification information about the resolved last coefficient is 0, in some embodiments, the method may further include the following operations.
[00362] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента получают путем анализа битового потока.[00362] Information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient are obtained by analyzing a bitstream.
[00363] Местоположение последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.[00363] The location of the last significant coefficient is determined according to information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient.
[00364] Коэффициенты текущего блока определяют путем декодирования всех коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00364] The coefficients of the current block are determined by decoding all coefficients located above the location of the last significant coefficient, in a given scan order.
[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 посредством декодирования.[00365] It should be noted that if the location of the last coefficient is not applied to the current block, the location of the last significant coefficient needs to be obtained by decoding. Specifically, last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix, and last_sig_coeff_y_suffix are obtained by analyzing the bitstream. Then, the location of the last significant coefficient can be determined according to last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix, and last_sig_coeff_y_suffix. Otherwise, if the location of the last coefficient is applied to the current block, there is no longer a need to determine the location of the last significant coefficient, in which case there is no longer a need to obtain last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix, and last_sig_coeff_y_suffix through decoding.
[00366] Дополнительно следует отметить, если местоположение последнего коэффициента применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего коэффициента, могут быть декодированы в заданном порядке сканирования. Если местоположение последнего коэффициента не применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, могут быть декодированы в заданном порядке сканирования. В данном случае заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00366] It should be further noted that if the location of the last coefficient is applied to the current block, all coefficients located above the location of the last coefficient can be decoded in a given scan order. If the location of the last coefficient is not applied to the current block, all coefficients located above the location of the last significant coefficient can be decoded in a given scan order. In this case, the given scan order may be a diagonal scan order, a zigzag scan order, a horizontal scan order, a vertical scan order, a 4×4 sub-block scan order, etc., which is in no way limited in the embodiments of the present invention.
[00367] Дополнительно в некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00367] Additionally, in some embodiments, the location of the last coefficient is the lower right corner of a matrix formed by all possible non-zero coefficients in the current block. Alternatively, the location of the last coefficient is the last location of all possible non-zero coefficients in a given scan order in the current block.
[00368] Следует отметить, что в вариантах осуществления настоящего изобретения местоположение последнего коэффициента не представляет местоположение последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.[00368] It should be noted that in embodiments of the present invention, the location of the last coefficient does not represent the location of the last significant coefficient. This is because the coefficient at the location of the last coefficient may be equal to 0, while the coefficient at the location of the last significant coefficient is certainly not equal to 0.
[00369] В конкретном примере способ может дополнительно включать следующую операцию. Устанавливают местоположение последнего значимого коэффициента как местоположение последнего коэффициента.[00369] In a specific example, the method may further include the following operation. The location of the last significant coefficient is set as the location of the last coefficient.
[00370] То есть в вариантах осуществления настоящего изобретения все еще может использоваться местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента необходимо поместить в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00370] That is, in embodiments of the present invention, the location of the last significant coefficient may still be used. In this case, the location of the last significant coefficient must be placed at the last location of all possible non-zero coefficients in a given scan order in the current block.
[00371] Дополнительно местоположение последнего коэффициента может быть обозначено как (LastCoeffX, LastCoeffY), т.е. последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00371] Additionally, the location of the last coefficient may be designated as (LastCoeffX, LastCoeffY), i.e., the last location of all possible non-zero coefficients in a given scan order in the current block. In some embodiments, the method may further include the following operations.
[00372] Определяют ширину и высоту блока преобразования, полученные путем выполнения заданной операции в отношении текущего блока.[00372] Determine the width and height of the transformation block obtained by performing a specified operation on the current block.
[00373] Вычисляют информацию о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования.[00373] Calculates coordinate information of the lower right corner of the transformation block according to the width and height of the transformation block.
[00374] Определяют местоположение последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.[00374] The location of the last coefficient is determined according to the coordinate information of the lower right corner of the transformation block.
[00375] В данном случае заданная операция включает по меньшей мере операцию нулевого вывода.[00375] In this case, the specified operation includes at least a zero output operation.
[00376] Следует отметить, что (LastCoeffX, LastCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. (LastCoeffX, LastCoeffY) может быть получена следующим образом.[00376] It should be noted that (LastCoeffX, LastCoeffY) may denote the coordinate information of the lower right corner of the transformation block obtained after the zero output. (LastCoeffX, LastCoeffY) can be obtained as follows.
[00377] LastCoeffX= (1<<log2ZoTbWidth)-1.[00377] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00378] LastCoeffY= (1<<log2ZoTbHeight)-1.[00378] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00379] Соответственно, местоположение последнего коэффициента может быть определено согласно (LastCoeffX, LastCoeffY), если default_last_coeff_enabled_flag имеет значение 1.[00379] Accordingly, the location of the last coefficient can be determined according to (LastCoeffX, LastCoeffY) if default_last_coeff_enabled_flag is set to 1.
[00380] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.[00380] In a specific example, the location of the last significant coefficient is still used. In this case, the location of the last significant coefficient may be placed at the last location of all possible non-zero coefficients in a given scan order in the current block. In some embodiments, the method may further include the following operation.
[00381] Когда местоположение последнего значимого коэффициента установлено как местоположение последнего коэффициента, местоположение последнего значимого коэффициента определяют согласно информации о координатах нижнего правого угла блока преобразования.[00381] When the location of the last significant coefficient is set as the location of the last coefficient, the location of the last significant coefficient is determined according to coordinate information of the lower right corner of the transformation block.
[00382] То есть местоположение последнего значимого коэффициента может быть обозначено как (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) может быть получено следующим образом.[00382] That is, the location of the last significant coefficient can be denoted as (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) can be obtained as follows.
[00383] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.[00383] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.
[00384] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.[00384] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.
[00385] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. Местоположение последнего значимого коэффициента может быть определено согласно (LastSignificantCoeffX, LastSignificantCoeffY), если default_last_coeff_enabled_flag имеет значение 1.[00385] In this document, (LastSignificantCoeffX, LastSignificantCoeffY) may denote the coordinate information of the lower right corner of the transform block obtained after zero output. The location of the last significant coefficient may be determined according to (LastSignificantCoeffX, LastSignificantCoeffY) if default_last_coeff_enabled_flag is set to 1.
[00386] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию при кодировании коэффициентов. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию, то есть местоположение последнего значимого коэффициента больше не используется, вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируются в заданном порядке сканирования. Другими словами, местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. Это местоположение обычно относится к нижнему правому углу матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. В данном случае может использоваться местоположение последнего коэффициента, подлежащего кодированию, вместо местоположения последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента, подлежащего кодированию, может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.[00386] Thus, in some cases, such as encoding and decoding video with high bit depth, high quality, high bit rate or lossless compression, all possible coefficients to be encoded must be encoded by default when encoding the coefficients. Usually, the method of encoding and decoding the coefficients is still the same as the existing method in the prior art. All possible coefficients to be encoded must be encoded by default, that is, the location of the last significant coefficient is no longer used, instead, all possible non-zero coefficients in the current block are scanned in a given scan order. In other words, the location of the last coefficient to be encoded is placed in the last location of all possible non-zero coefficients in a given scan order in the current block. This location usually refers to the lower right corner of the matrix formed by all possible non-zero coefficients in the current block. In this case, the location of the last coefficient to be encoded may be used instead of the location of the last significant coefficient. This is because the coefficient at the location of the last coefficient to be encoded may be 0, whereas the coefficient at the location of the last significant coefficient is certainly not 0.
[00387] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00387] In a specific example, the location of the last significant coefficient is still used. In this case, the location of the last significant coefficient may be placed at the last location of all possible non-zero coefficients in a given scan order in the current block.
[00388] Кроме того, причиной того, почему речь идет обо всех возможных ненулевых коэффициентах в заданном порядке сканирования в текущем блоке, является то, что некоторые коэффициенты в блоке могут приниматься за 0 по умолчанию с использованием некоторых методов (таких как нулевой вывод, упомянутый в данном документе выше), кроме последнего значимого коэффициента.[00388] Furthermore, the reason why we are talking about all possible non-zero coefficients in a given scan order in the current block is that some coefficients in a block may be taken as 0 by default using some methods (such as the zero output mentioned above in this document), except for the last significant coefficient.
[00389] Модификация семантики является следующей в таблице 10.[00389] The semantic modification is as follows in Table 10.
Таблица 10Table 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).[00390] In embodiments of the present invention, the condition may need to be met before decoding the information required for the last significant coefficient. That is, syntax elements such as last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, etc. are obtained by decoding if default_last_coeff_enabled_flag is not true (i.e., default_last_coeff_enabled_flag is 0). Syntax elements such as last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix and last_sig_coeff_y_suffix and similar syntax elements do not need to be obtained through decoding if default_last_coeff_enabled_flag is true (i.e. default_last_coeff_enabled_flag is 1).
[00391] В данном случае default_last_coeff_enabled_flag может представлять собой разрешающий флаг последнего коэффициента по умолчанию для указания того, использовать/применять ли последний коэффициент по умолчанию. Если default_last_coeff_enabled_flag имеет значение 1, это означает, что местоположение последнего коэффициента по умолчанию используется/применяется. То есть местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В противном случае флаг указывает, что местоположение последнего коэффициента по умолчанию не используется/не применяется.[00391] In this case, default_last_coeff_enabled_flag may be a default last coefficient enable flag to indicate whether to use/apply the last coefficient by default. If default_last_coeff_enabled_flag has a value of 1, it means that the location of the default last coefficient is used/applied. That is, the location of the last coefficient to be coded is placed at the last location of all possible non-zero coefficients in the specified scan order in the current block. Otherwise, the flag indicates that the location of the default last coefficient is not used/applied.
[00392] Местоположение последнего коэффициента по умолчанию (LastCoeffX, LastCoeffY) представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке, если default_last_coeff_enabled_flag имеет значение 1. Все коэффициенты, расположенные выше (LastCoeffX, LastCoeffY), необходимо сканировать в заданном порядке сканирования. В вариантах осуществления настоящего изобретения (LastCoeffX, LastCoeffY) можно получить следующим образом.[00392] The location of the default last coefficient (LastCoeffX, LastCoeffY) is the last location of all possible non-zero coefficients in the specified scan order in the current block if default_last_coeff_enabled_flag has a value of 1. All coefficients located above (LastCoeffX, LastCoeffY) must be scanned in the specified scan order. In embodiments of the present invention, (LastCoeffX, LastCoeffY) can be obtained as follows.
[00393] LastCoeffX= (1<<log2ZoTbWidth)-1.[00393] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00394] LastCoeffY= (1<<log2ZoTbHeight)-1.[00394] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00395] В данном документе (LastCoeffX, LastCoeffY) представляет собой информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода.[00395] In this document, (LastCoeffX, LastCoeffY) represents the coordinate information of the lower right corner of the transformation block obtained after zero output.
[00396] В конкретном примере все еще используется местоположение последнего значимого коэффициента. Местоположение последнего значимого коэффициента помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В вариантах осуществления настоящего изобретения местоположение (LastSignificantCoeffX, LastSignificantCoeffY) последнего значимого коэффициента можно получить следующим образом.[00396] In a specific example, the location of the last significant coefficient is still used. The location of the last significant coefficient is placed at the last location of all possible non-zero coefficients in a given scan order in the current block. In embodiments of the present invention, the location (LastSignificantCoeffX, LastSignificantCoeffY) of the last significant coefficient can be obtained as follows.
[00397] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1.[00397] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1.
[00398] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1.[00398] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1.
[00399] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) представляет собой информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода.[00399] In this document, (LastSignificantCoeffX, LastSignificantCoeffY) represents the coordinate information of the lower right corner of the transformation block obtained after the zero output.
[00400] Дополнительно следует отметить, что default_last_coeff_enabled_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или флаг другого уровня блока.[00400] It should be further noted that default_last_coeff_enabled_flag may be a sequence-level flag or a higher-level flag, or may be a picture-level flag or a slice-level flag or a block-level flag or another level flag. The block-level flag may include an LCU-level flag or a CTU-level flag or a CU-level flag or another block-level flag.
[00401] Кроме того, default_last_coeff_enabled_flag может зависеть от некоторых других флагов, например, идентификационной информации с высокой битовой глубиной, идентификационной информации с высокой битовой скоростью и т.п. То есть default_last_coeff_enabled_flag необходимо декодировать, когда идентификационная информация с высокой битовой глубиной или идентификационная информация с высокой битовой скоростью имеет значение 1. В противном случае нет необходимости декодировать default_last_coeff_enabled_flag.[00401] In addition, default_last_coeff_enabled_flag may depend on some other flags, such as high bit depth identification information, high bit rate identification information, etc. That is, default_last_coeff_enabled_flag needs to be decoded when the high bit depth identification information or the high bit rate identification information has a value of 1. Otherwise, there is no need to decode 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.[00402] In a specific example, taking the sequence level as an example, the sequence level flag sps_high_bit_depth_flag is supposed to indicate whether the current video sequence is a high bit depth sequence. If sps_high_bit_depth_flag is 1, it means that the current video sequence is a high bit depth sequence. Otherwise, the flag indicates that the current video sequence is not a high bit depth sequence. At the sequence level, sps_default_last_coeff_enabled_flag needs to be obtained through decoding if sps_high_bit_depth_flag is 1. In this case, sps_default_last_coeff_enabled_flag may be an enabling flag of the last default coefficient of the current sequence. If sps_default_last_coeff_enabled_flag is 1, it means that the last default coefficient is used in the block in the current sequence. Otherwise (i.e. if sps_default_last_coeff_enabled_flag is 0) it means that the default last coefficient is not used in the block in the current sequence. default_last_coeff_enabled_flag in the syntax table above can be modified as sps_default_last_coeff_enabled_flag.
[00403] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 11.[00403] In the implementation, the syntax element table is modified as follows (the RBSP syntax of the sequence parameter set), as shown in Table 11.
Таблица 11Table 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.[00404] In another specific example, taking the slice level as an example, the sequence level flag sps_high_bit_depth_flag is supposed to indicate whether the current video sequence is a high bit depth sequence. If sps_high_bit_depth_flag is 1, it means that the current video sequence is a high bit depth sequence. Otherwise, the flag indicates that the current video sequence is not a high bit depth sequence. At the slice level, sh_default_last_coeff_enabled_flag needs to be obtained through decoding if sps_high_bit_depth_flag is 1. In this case, sh_default_last_coeff_enabled_flag may be the enabling flag of the default last coefficient of the current slice. If sh_default_last_coeff_enabled_flag is 1, it means that the default last coefficient is used in the block in the current slice. Otherwise (i.e. if sh_default_last_coeff_enabled_flag is 0) it means that the default last coefficient is not used in the block in the current slice. default_last_coeff_enabled_flag in the syntax table above can be modified as sh_default_last_coeff_enabled_flag.
[00405] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 12.[00405] In the implementation, the syntax element table is modified as follows (slice header syntax), as shown in Table 12.
Таблица 12Table 12
[00406] В вариантах осуществления настоящего изобретения для каждого компонента цвета текущего слайса идентификационная информация о разрешаемом последнем коэффициенте по умолчанию (т. е. sh_default_last_coeff_enabled_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли последний коэффициент по умолчанию к компоненту цвета.[00406] In embodiments of the present invention, for each color component of the current slice, the identification information about the default enabled last coefficient (i.e., sh_default_last_coeff_enabled_flag) of the current slice may provide the ability to separately control whether to apply the default last coefficient to the color component.
[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] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.[00407] In particular, the identification information about the default enabled last coefficient of the current slice may also be designated as sh_default_last_coeff_enabled_flag[cIdx]. In this document, cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may include sh_default_last_coeff_enabled_flag[0], sh_default_last_coeff_enabled_flag[1], and sh_default_last_coeff_enabled_flag[2]. sh_default_last_coeff_enabled_flag[0] may indicate whether the default last coefficient is applied to the current block corresponding to the first color component of the current slice. sh_default_last_coeff_enabled_flag[1] can specify whether the last default coefficient is applied to the current block corresponding to the second color component of the current slice. sh_default_last_coeff_enabled_flag[2] can specify whether the last default coefficient is applied to the current block corresponding to the third color component of the current slice.
[00408] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.[00408] In this case, in embodiments of the present invention, one or more pieces of component identification information may also be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control the application to the luminance component, and another component identification may control the application to two chroma components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. For example, the three color components are R, G, and B in RGB format, or Y, Cb, and Cr (or Y, U, and V) in YUV format.
[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).[00409] Illustratively, taking the YUV format as an example, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. If sh_default_last_coeff_enabled_flag[0] has a value of 1, it may be determined that the last default coefficient is applied to the block corresponding to the first color component of the current slice (such as the Y component). If sh_default_last_coeff_enabled_flag[1] has a value of 1, it may be determined that the last default coefficient is applied to the block corresponding to the second color component of the current slice (such as the U component). If sh_default_last_coeff_enabled_flag[2] is set to 1, it can be specified that the default last coefficient is applied to the block corresponding to the third color component of the current slice (such as the V component).
[00410] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, сканированные подблоки необходимо кодировать по умолчанию. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток, т.е. ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Следовательно, варианты осуществления настоящего изобретения могут дополнительно вводить идентификационную информацию о кодируемом по умолчанию подблоке для определения того, декодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке.[00410] It should be further noted that when the third identification information about the syntax element indicates that the range extension is applied to the current sequence, the scanned sub-blocks need to be coded by default. In this case, there is no need to provide sb_coded_flag in the bitstream, i.e., neither the encoder nor the decoder needs to process this flag, which thereby speeds up encoding and decoding. Therefore, embodiments of the present invention can further introduce identification information about the sub-block to be coded by default to determine whether the sub-block to be coded in the current block is decoded by default.
[00411] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.[00411] In some embodiments, when the third identification information about the syntax element indicates that a range extension is applied to the current sequence, the method may further include the following operations.
[00412] Идентификационную информацию о кодируемом по умолчанию подблоке текущего блока определяют путем анализа битового потока.[00412] Identification information about the default coded sub-block of the current block is determined by analyzing the bitstream.
[00413] Когда идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, все коэффициенты в подблоке, подлежащем декодированию, декодируют.[00413] When the identification information about the default coded sub-block indicates that the sub-block to be decoded in the current block is coded by default, all coefficients in the sub-block to be decoded are decoded.
[00414] Следует отметить, что, если идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, можно определить, что значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой первое значение, в этом случае все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать.[00414] It should be noted that, if the identification information about the default coded sub-block indicates that the sub-block to be decoded in the current block is coded by default, it can be determined that the value of the identification information about the default coded sub-block is the first value, in which case all coefficients in the sub-block to be decoded need to be decoded.
[00415] Дополнительно следует отметить, что идентификационная информация о кодируемом по умолчанию подблоке может быть обозначена как default_sb_coded_flag. В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом по умолчанию подблоке представляет собой по меньшей мере одну из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00415] It should be further noted that the identification information about the default coded sub-block may be designated as default_sb_coded_flag. In embodiments of the present invention, the identification information about the default coded sub-block is at least one of sequence-level identification information, picture-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited here.
[00416] То есть default_sb_coded_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00416] That is, default_sb_coded_flag may be a sequence level flag or a higher level flag, or may be an image level flag or a slice level flag, or a block level flag, or another level flag. In addition, the block level flag may include an LCU level flag or a CTU level flag, or a CU level flag, or another block level flag, which is in no way limited in the embodiments of the present invention.
[00417] В некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Если значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой первое значение, определяют, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию. Альтернативно, если значение идентификационной информации о кодируемом по умолчанию подблоке представляет собой второе значение, определяют, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию.[00417] In some embodiments, the method may further include the following operation. If the value of the identification information about the default-coded sub-block is a first value, it is determined that the identification information about the default-coded sub-block indicates that the sub-block to be decoded in the current block is coded by default. Alternatively, if the value of the identification information about the default-coded sub-block is a second value, it is determined that the identification information about the default-coded sub-block indicates that the sub-block to be decoded in the current block is not coded by default.
[00418] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими. Первое значение и второе значение могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00418] It should be noted that the first value and the second value may be different. The first value and the second value may be parametric. The first value and the second value may be numeric. In particular, the first identification information about the syntax element may be a parameter provided in the profile, or may be a flag value, which is in no way limited in embodiments of the present invention.
[00419] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено как «ложь», и второе значение может быть установлено как «истина», что никоим образом не ограничено здесь.[00419] For example, the first identification information about the syntax element is a flag. In this case, the first value may be set to 1, and the second value may be set to 0. Alternatively, the first value may be set to "true", and the second value may be set to "false". Alternatively, the first value may be set to 0, and the second value may be set to 1. Alternatively, the first value may be set to "false", and the second value may be set to "true", which is in no way limited here.
[00420] Таким образом, в качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если default_sb_coded_flag имеет значение 1, может быть определено, что default_sb_coded_flag указывает, что подблок, подлежащий декодированию, должен быть кодирован по умолчанию. Альтернативно, если default_sb_coded_flag имеет значение 0, может быть определено, что default_sb_coded_flag указывает, что подблок, подлежащий декодированию, не должен быть кодирован по умолчанию.[00420] Thus, the first value equal to 1 and the second value equal to 0 are taken as an example. If default_sb_coded_flag has a value of 1, it may be determined that default_sb_coded_flag indicates that the sub-block to be decoded should be coded by default. Alternatively, if default_sb_coded_flag has a value of 0, it may be determined that default_sb_coded_flag indicates that the sub-block to be decoded should not be coded by default.
[00421] Когда подблок, подлежащий декодированию, кодирован по умолчанию, default_sb_coded_flag имеет значение 1, что означает, что sb_coded_flag имеет значение 1, т.е. нет необходимости декодировать sb_coded_flag, в этом случае все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать по умолчанию.[00421] When the sub-block to be decoded is coded by default, default_sb_coded_flag has a value of 1, which means that sb_coded_flag has a value of 1, i.e. there is no need to decode sb_coded_flag, in this case, all coefficients in the sub-block to be decoded need to be decoded by default.
[00422] Дополнительно, когда подблок, подлежащий декодированию, не должен быть кодирован по умолчанию, т.е. default_sb_coded_flag имеет значение 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00422] Additionally, when the sub-block to be decoded is not to be coded by default, i.e. default_sb_coded_flag has a value of 0, in some embodiments the method may further include the following operations.
[00423] Идентификационную информацию о кодируемом подблоке для подблока, подлежащего декодированию, определяют путем анализа битового потока.[00423] Identification information about the coded sub-block for the sub-block to be decoded is determined by analyzing the bit stream.
[00424] Все коэффициенты в подблоке, подлежащем декодированию, декодируют, когда значение идентификационной информации о кодируемом подблоке представляет собой первое значение.[00424] All coefficients in a sub-block to be decoded are decoded when the value of the identification information about the sub-block to be coded is the first value.
[00425] Следует отметить, что, если подблок, подлежащий декодированию, не должен быть кодирован по умолчанию, идентификационную информацию о кодируемом подблоке необходимо получить посредством декодирования, и определяют согласно идентификационной информации о кодируемом подблоке, декодировать ли все коэффициенты в подблоке, подлежащем декодированию.[00425] It should be noted that, if a sub-block to be decoded is not to be coded by default, identification information about the sub-block to be coded needs to be obtained through decoding, and it is determined according to the identification information about the sub-block to be coded whether to decode all coefficients in the sub-block to be decoded.
[00426] Способ может дополнительно включать следующую операцию. Определяют, что все коэффициенты в подблоке, подлежащем декодированию, декодируют, если значение идентификационной информации о кодируемом подблоке представляет собой первое значение. Альтернативно определяют, что все коэффициенты в подблоке, подлежащем декодированию, равны нулю, если значение идентификационной информации о кодируемом подблоке представляет собой второе значение.[00426] The method may further include the following operation. It is determined that all coefficients in the sub-block to be decoded are decoded if the value of the identification information about the sub-block to be coded is the first value. Alternatively, it is determined that all coefficients in the sub-block to be decoded are equal to zero if the value of the identification information about the sub-block to be coded is the second value.
[00427] В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом подблоке может быть обозначена как sb_coded_flag. В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если sb_coded_flag имеет значение 1, может быть определено, что все коэффициенты в подблоке, подлежащем декодированию, необходимо декодировать. Альтернативно, если sb_coded_flag имеет значение 0, может быть определено, что нет необходимости декодировать никакой коэффициент в подблоке, подлежащем декодированию, в этом случае все коэффициенты в подблоке, подлежащем декодированию, равны нулю.[00427] In embodiments of the present invention, the identification information about the sub-block to be coded may be designated as sb_coded_flag. As an example, a first value of 1 and a second value of 0 are taken. If sb_coded_flag has a value of 1, it may be determined that all coefficients in the sub-block to be decoded need to be decoded. Alternatively, if sb_coded_flag has a value of 0, it may be determined that no coefficient in the sub-block to be decoded needs to be decoded, in which case all coefficients in the sub-block to be decoded are zero.
[00428] Таким образом, в определенной ситуации при кодировании коэффициентов сканируемые подблоки должны быть кодированы по умолчанию, или сканируемые подблоки содержат значимые коэффициенты по умолчанию. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Определенной ситуацией может быть, например, кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь. В этой ситуации имеется много значимых коэффициентов, и почти все сканируемые подблоки должны быть кодированы, или почти все сканируемые подблоки содержат значимые коэффициенты. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. Таким образом, ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Удаление почти несуществующего флага еще больше повышает эффективность сжатия.[00428] Thus, in a certain situation, when encoding coefficients, the scanned sub-blocks must be encoded by default, or the scanned sub-blocks contain significant coefficients by default. Usually, the method of encoding and decoding the coefficients is still the same as the existing method in the prior art. A certain situation may be, for example, encoding and decoding video with a high bit depth, high quality, high bit rate or lossless compression. In this situation, there are many significant coefficients, and almost all of the scanned sub-blocks must be encoded, or almost all of the scanned sub-blocks contain significant coefficients. In this case, there is no need to provide sb_coded_flag in the bitstream. Thus, neither the encoder nor the decoder needs to process this flag, which thereby speeds up encoding and decoding. Removing the almost non-existent flag further improves the compression efficiency.
[00429] Модификация семантики является следующей в таблице 13.[00429] The semantic modification is as follows in Table 13.
Таблица 13Table 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] дополнительно необходимо декодировать из битового потока.[00430] In this document, default_sb_coded_flag is a flag of the default coded sub-block. If default_sb_coded_flag has a value of 1, it may be determined that the value of sb_coded_flag[xS][yS] is 1, in which case there is no need to decode from the bitstream. Otherwise (if default_sb_coded_flag has a value of 0), sb_coded_flag[xS][yS] additionally needs to be decoded from the bitstream.
[00431] Дополнительно следует отметить, что default_sb_coded_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или флаг другого уровня блока.[00431] It should be further noted that default_sb_coded_flag may be a sequence level flag or a higher level flag, or may be a picture level flag or a slice level flag or a block level flag or another level flag. The block level flag may include an LCU level flag or a CTU level flag or a CU level flag or another block level flag.
[00432] Кроме того, default_sb_coded_flag может зависеть от некоторых других флагов, например, идентификационной информации с высокой битовой глубиной, идентификационной информации с высокой битовой скоростью и т.п. То есть default_sb_coded_flag необходимо декодировать, когда идентификационная информация с высокой битовой глубиной или идентификационная информация с высокой битовой скоростью имеет значение 1. В противном случае нет необходимости декодировать default_sb_coded_flag.[00432] In addition, default_sb_coded_flag may depend on some other flags, such as high bit depth identification information, high bit rate identification information, etc. That is, default_sb_coded_flag needs to be decoded when the high bit depth identification information or the high bit rate identification information has a value of 1. Otherwise, there is no need to decode 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.[00433] In a specific example, taking the sequence level as an example, the sequence level flag sps_high_bit_depth_flag is supposed to indicate whether the current video sequence is a high bit depth sequence. If sps_high_bit_depth_flag is 1, it means that the current video sequence is a high bit depth sequence. Otherwise, the flag indicates that the current video sequence is not a high bit depth sequence. At the sequence level, sps_default_sb_coded_flag is to be obtained by decoding if sps_high_bit_depth_flag is 1. In this case, sps_default_sb_coded_flag is a flag of the default coded sub-block for the current sequence. If sps_default_sb_coded_flag is 1, it means that the sub-block of the block in the current sequence is coded by default. Otherwise (i.e., if sps_default_sb_coded_flag is 0), it means that the subblock of the block in the current sequence is not coded by default. default_sb_coded_flag in the syntax table above can be modified as sps_default_sb_coded_flag.
[00434] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис RBSP набора параметров последовательности), как показано в таблице 14.[00434] In the implementation, the syntax element table is modified as follows (the RBSP syntax of the sequence parameter set), as shown in Table 14.
Таблица 14Table 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.[00435] In another specific example, taking the slice level as an example, the sequence level flag sps_high_bit_depth_flag is supposed to indicate whether the current video sequence is a high bit depth sequence. If sps_high_bit_depth_flag has a value of 1, it means that the current video sequence is a high bit depth sequence. Otherwise, the flag indicates that the current video sequence is not a high bit depth sequence. At the slice level, sh_default_sb_coded_flag shall be obtained through decoding if sps_high_bit_depth_flag has a value of 1. In this case, sh_default_sb_coded_flag is a flag of the default coded sub-block for the current slice. If sh_default_sb_coded_flag has a value of 1, it means that the sub-block of the block in the current slice is coded by default. Otherwise (i.e., if sh_default_sb_coded_flag is 0), it means that the subblock of the block in the current slice is not encoded by default. default_sb_coded_flag in the syntax table above can be modified as sh_default_sb_coded_flag.
[00436] В реализации таблица синтаксических элементов модифицируется следующим образом (синтаксис заголовка слайса), как показано в таблице 15.[00436] In the implementation, the syntax element table is modified as follows (slice header syntax), as shown in Table 15.
Таблица 15Table 15
[00437] Следует отметить, что флаг уровня последовательности sps_high_bit_depth_flag может быть флагом, указывающим, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может быть заменен sps_high_bit_rate_flag, указывающим, является ли текущая последовательность последовательностью с высокой битовой скоростью, или даже может быть заменен другим флагом, указывающим на кодирование с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь и т.д., что никоим образом не ограничено здесь.[00437] It should be noted that the sequence level flag sps_high_bit_depth_flag may be a flag indicating whether the current sequence is a high bit depth sequence; or alternatively, may be replaced by sps_high_bit_rate_flag indicating whether the current sequence is a high bit rate sequence, or may even be replaced by another flag indicating high bit depth, high bit rate, high quality, or lossless encoding, etc., which is in no way limited here.
[00438] В вариантах осуществления настоящего изобретения для каждого компонента цвета текущего слайса идентификационная информация о кодируемом по умолчанию подблоке (т.е. sh_default_sb_coded_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли кодируемый по умолчанию подблок к компоненту цвета.[00438] In embodiments of the present invention, for each color component of the current slice, the identification information about the default coded sub-block (i.e., sh_default_sb_coded_flag) of the current slice may provide the ability to separately control whether to apply the default coded sub-block to the color component.
[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] может указывать, кодирован ли по умолчанию подблок текущего блока, соответствующий третьему компоненту цвета текущего слайса.[00439] In particular, the identification information about the default coded sub-block of the current slice may also be designated as sh_default_sb_coded_flag[cIdx]. cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may contain sh_default_sb_coded_flag[0], sh_default_sb_coded_flag[1], and sh_default_sb_coded_flag[2]. sh_default_sb_coded_flag[0] may indicate whether the sub-block of the current block corresponding to the first color component of the current slice is coded by default. sh_default_sb_coded_flag[1] may indicate whether the sub-block of the current block corresponding to the second color component of the current slice is coded by default. sh_default_sb_coded_flag[2] can specify whether the subblock of the current block corresponding to the third color component of the current slice is encoded by default.
[00440] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.[00440] In this case, in embodiments of the present invention, one or more pieces of component identification information may also be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control the application to the luminance component, and another component identification may control the application to two chroma components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. For example, the three color components are R, G, and B in RGB format, or Y, Cb, and Cr (or Y, U, and V) in YUV format.
[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), кодирован по умолчанию.[00441] Illustratively, taking the YUV format as an example, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. If sh_default_sb_coded_flag[0] has a value of 1, it may be determined that the sub-block of the block that corresponds to the first color component of the current slice (such as the Y component) is coded by default. If sh_default_sb_coded_flag[1] has a value of 1, it may be determined that the sub-block of the block that corresponds to the second color component of the current slice (such as the U component) is coded by default. If sh_default_sb_coded_flag[2] has a value of 1, it may be determined that the sub-block of the block that corresponds to the third color component of the current slice (such as the V component) is coded by default.
[00442] Вкратце, для всех компонентов цвета в видео одна часть идентификационной информации может быть применена для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно разные части идентификационной информации могут быть применены для отдельного управления соответствующими компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно две части идентификационной информации могут быть применены для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Иными словами, более одной части идентификационной информации можно применять для управления разными компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. В настоящем документе все компоненты цвета могут представлять собой R, G и B видео формата RGB или Y, U и V (Y, Cb и Cr) видео формата YUV, или т.п.[00442] In short, for all color components in a video, one piece of identification information may be used to control all color components for using the method according to the embodiments of the present invention. Alternatively, different pieces of identification information may be used to separately control corresponding color components for using the method according to the embodiments of the present invention. Alternatively, two pieces of identification information may be used to control all color components for using the method according to the embodiments of the present invention. In other words, more than one piece of identification information may be used to control different color components for using the method according to the embodiments of the present invention. Herein, all color components may be R, G, and B of RGB video format, or Y, U, and V (Y, Cb, and Cr) of YUV video format, or the like.
[00443] В варианте осуществления предоставляется способ декодирования, выполняемый декодером. В способе идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Коэффициенты текущего блока определяют путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь, разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, также можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00443] In an embodiment, a decoding method performed by a decoder is provided. In the method, identification information about a component of a current slice and coordinate information of the last significant coefficient of a current block corresponding to the component of the current slice are determined by analyzing a bitstream. When the identification information about the component indicates that a reversal of the last significant coefficient is applied to the component of the current slice, the location of the last significant coefficient of the current block is obtained by performing a calculation with respect to the coordinate information of the last significant coefficient. The coefficients of the current block are determined by decoding the coefficients located above the location of the last significant coefficient in a given scanning order. Thus, in a scenario of encoding and decoding video with a high bit depth, a high bit rate, high quality or lossless, a reasonable acquisition mode of the last significant coefficient is set according to a distribution law of significant coefficients, which thereby reduces resource consumption caused by encoding in a bitstream and improves compression efficiency. In addition, since the corresponding color components may be different in the distribution of significant coefficients, it is also possible to precisely control the corresponding mode of obtaining the last significant coefficient for each color component, i.e., separately controlling whether to apply the last significant coefficient reversal technology to each color component, thereby further improving the compression efficiency.
[00444] В другом варианте осуществления настоящего изобретения фиг. 11 представлена блок-схема способа кодирования согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 11, способ включает следующие операции с S1101 по S1103.[00444] In another embodiment of the present invention, Fig. 11 is a flow chart of a coding method according to embodiments of the present invention. As shown in Fig. 11, the method includes the following steps S1101 to S1103.
[00445] В операции S1101 определяется идентификационная информация о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[00445] In operation S1101, identification information about a component of the current slice and the location of the last significant coefficient of the current block corresponding to the component of the current slice are determined.
[00446] В операции S1102 определяется информация о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.[00446] In operation S1102, information about the coordinates of the last significant coefficient of the current block is determined according to the identification information about the component and the location of the last significant coefficient.
[00447] В S1103 все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток.[00447] In S1103, all coefficients located above the location of the last significant coefficient are encoded in a predetermined scanning order. Bit information obtained by encoding, identification information about a component, and information about the coordinates of the last significant coefficient are provided to a bit stream.
[0048] Следует отметить, что способ кодирования согласно вариантам осуществления настоящего изобретения может конкретно относиться к способу кодирования коэффициента (коэффициентов), который может выполняться кодером. На основе структуры кодера 100, как показано на фиг. 8A, способ кодирования в основном выполняют с помощью узла 115 энтропийного кодирования кодере 100. Узел 115 энтропийного кодирования может выполнять энтропийное кодирование в отношении связанной идентификационной информации (или элемента (элементов) синтаксиса) с использованием режима адаптивного двоичного арифметического кодирования на основе контекстной модели или обходного режима и может предоставлять результат энтропийного кодирования в битовый поток.[0048] It should be noted that the encoding method according to the embodiments of the present invention may specifically relate to a method for encoding a coefficient(s), which may be performed by an encoder. Based on the structure of the encoder 100, as shown in Fig. 8A, the encoding method is mainly performed by an entropy encoding unit 115 of the encoder 100. The entropy encoding unit 115 may perform entropy encoding on the associated identification information (or syntax element(s)) using an adaptive binary arithmetic encoding mode based on a context model or a bypass mode, and may provide the entropy encoding result to a bitstream.
[00449] Дополнительно следует отметить, что в целом кодирование в стандарте видео может включать кодирование и декодирование. Следовательно, кодирование видео может включать способ кодирования, выполняемый на стороне кодера, и способ декодирования, выполняемый на стороне декодера. В вариантах осуществления настоящего изобретения описан способ кодирования, выполняемый на стороне кодера.[00449] It should be further noted that, in general, coding in a video standard may include coding and decoding. Therefore, video coding may include a coding method performed on the encoder side and a decoding method performed on the decoder side. In embodiments of the present invention, a coding method performed on the encoder side is described.
[00450] В общем, например, для обычного видео способ кодирования коэффициента (коэффициентов) обычного видео является таким же, как существующий способ в уровне техники. Однако в некоторых случаях, таких как кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, в вариантах осуществления настоящего изобретения предоставляется способ, способный модифицировать режим получения местоположения последнего значимого коэффициента. В этом случае варианты осуществления настоящего изобретения вводят идентификационную информацию о компоненте для определения того, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00450] In general, for example, for a normal video, a method for encoding a coefficient(s) of a normal video is the same as an existing method in the prior art. However, in some cases, such as encoding and decoding video with a high bit depth, high quality, high bit rate, or lossless compression, embodiments of the present invention provide a method capable of modifying a mode for obtaining the location of the last significant coefficient. In this case, embodiments of the present invention introduce identification information about a component for determining whether a change in the location of the last significant coefficient is applied to a component of the current slice.
[00451] В вариантах осуществления настоящего изобретения идентификационная информация о компоненте может представлять собой флаг уровня слайса. Идентификационная информация о компоненте может указывать, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, это означает, что изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса.[00451] In embodiments of the present invention, the component identification information may be a slice level flag. The component identification information may indicate whether the reversal of the last significant coefficient is applied to the component of the current slice. If the reversal of the last significant coefficient is applied to the component of the current slice, this means that the reversal of the last significant coefficient is applied to the current block corresponding to the component of the current slice. If the reversal of the last significant coefficient is not applied to the component of the current slice, this means that the reversal of the last significant coefficient is not applied to the current block corresponding to the component of the current slice.
[00452] Понятно, что текущая последовательность может включать текущий слайс, а текущий слайс может включать текущий блок. В некоторых вариантах осуществления, перед определением идентификационной информации о компоненте текущего слайса, способ может дополнительно включать следующие операции.[00452] It is understood that the current sequence may include the current slice, and the current slice may include the current block. In some embodiments, before determining the identification information about the component of the current slice, the method may further include the following operations.
[00453] Определяют первую идентификационную информацию о синтаксическом элементе.[00453] Determine first identification information about a syntax element.
[00454] Операция, при которой определяют идентификацию компонента текущего слайса, выполняется, когда первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности.[00454] The operation of determining the identification of a component of the current slice is performed when the first identification information about the syntax element indicates that reversal of the location of the last significant coefficient is permitted for the current sequence.
[00455] В вариантах осуществления настоящего изобретения операция, при которой определяют первую идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, значение первой идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если изменение местоположения на обратное последнего значимого коэффициента запрещено для текущей последовательности, значение первой идентификационной информации о синтаксическом элементе определяют как второе значение.[00455] In embodiments of the present invention, the operation of determining first identification information about a syntax element may include the following operation. If reversal of the last significant coefficient is permitted for the current sequence, the value of the first identification information about the syntax element is determined as a first value. Alternatively, if reversal of the last significant coefficient is prohibited for the current sequence, the value of the first identification information about the syntax element is determined as a second value.
[00456] Способ может дополнительно включать следующую операцию. Первая идентификационная информация о синтаксическом элементе предоставляют в битовый поток.[00456] The method may further include the following operation. The first identification information about the syntax element is provided in the bitstream.
[00457] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В частности, первая идентификационная информация о синтаксическом элементе может быть параметром, предоставляемым в профиле, или может быть значением флага, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00457] It should be noted that the first value and the second value may be different. The first value and the second value may be parametric or may be numeric. In particular, the first identification information about the syntax element may be a parameter provided in the profile, or may be a flag value, which is in no way limited in embodiments of the present invention.
[00458] Например, первая идентификационная информация о синтаксическом элементе представляет собой флаг. В этом случае первое значение может быть установлено как 1, а второе значение может быть установлено как 0. Альтернативно первое значение может быть установлено как «истина», а второе значение может быть установлено как «ложь». Альтернативно первое значение может быть установлено как 0, а второе значение может быть установлено как 1. Альтернативно первое значение может быть установлено в значение «ложь», а второе значение может быть установлено в значение «истина». Иллюстративно для флага, как правило, первое значение может быть значением 1, а второе значение может быть значением 0, что, однако, никоим образом не ограничено.[00458] For example, the first identification information about the syntax element is a flag. In this case, the first value can be set to 1, and the second value can be set to 0. Alternatively, the first value can be set to "true" and the second value can be set to "false". Alternatively, the first value can be set to 0, and the second value can be set to 1. Alternatively, the first value can be set to the value "false" and the second value can be set to the value "true". Illustratively, for a flag, as a rule, the first value can be the value 1, and the second value can be the value 0, which, however, is in no way limited.
[00459] Дополнительно следует отметить, что первая идентификационная информация о ситаксическом элементе может быть флагом уровня последовательности, обозначаемым как sps_reverse_last_sig_coeff_flag, для указания того, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Соответственно, когда определено, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, может быть дополнительно определена идентификационная информация о компоненте на уровне слайса, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00459] It should be further noted that the first identification information about the syntax element may be a sequence level flag, denoted as sps_reverse_last_sig_coeff_flag, for indicating whether reversal of the last significant coefficient is allowed for the current sequence. Accordingly, when it is determined that reversal of the last significant coefficient is allowed for the current sequence, identification information about the component at the slice level may be further determined to determine whether reversal of the last significant coefficient is applied to a component of the current slice.
[001] Дополнительно перед определением первой идентификационной информации о синтаксическом элементе в возможном варианте осуществления способ может дополнительно включать следующие операции.[001] Additionally, prior to determining the first identification information about the syntax element, in a possible embodiment, the method may further include the following operations.
[002] Определяют вторую идентификационную информацию о синтаксическом элементе.[002] Define second identification information about the syntax element.
[003] Первую идентификационную информацию о синтаксическом элементе определяют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.[003] The first identification information about the syntax element is determined when the second identification information about the syntax element indicates that the extension version of the standard is applied to the current sequence.
[004] Перед определением первой идентификационной информации о синтаксическом элементе в другом возможном варианте осуществления способ может дополнительно включать следующие операции.[004] Before determining the first identification information about the syntax element, in another possible embodiment, the method may further include the following operations.
[005] Определяют третью идентификационную информацию о синтаксическом элементе.[005] Define third identification information about the syntax element.
[006] Первую идентификационную информацию о синтаксическом элементе определяют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.[006] The first identification information about the syntax element is determined when the third identification information about the syntax element indicates that a range extension is applied to the current sequence.
[007] Перед определением первой идентификации синтаксического элемента в еще одном возможном варианте осуществления способ может дополнительно включать следующие операции.[007] Before determining the first identification of the syntax element, in another possible embodiment, the method may further include the following operations.
[008] [00467] Определяют вторую идентификационную информацию о синтаксическом элементе.[008] [00467] Specify second identification information about the syntax element.
[00468] Третью идентификационную информацию о синтаксическом элементе определяют, когда вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности.[00468] A third identification information about a syntax element is determined when the second identification information about a syntax element indicates that a version of an extension of the standard is applied to the current sequence.
[00469] Первую идентификационную информацию о синтаксическом элементе определяют, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности.[00469] The first identification information about the syntax element is determined when the third identification information about the syntax element indicates that a range extension is applied to the current sequence.
[00470] Следует отметить, что как вторая идентификационная информация о синтаксическом элементе, так и третья идентификационная информация о синтаксическом элементе являются флагами уровня последовательности. Вторая идентификационная информация о синтаксическом элементе может быть обозначена как sps_extension_flag для указания того, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе может быть обозначена как sps_range_extension_flag для указания того, применено ли расширение диапазона к текущей последовательности.[00470] It should be noted that both the second syntax element identification information and the third syntax element identification information are sequence-level flags. The second syntax element identification information may be designated as sps_extension_flag to indicate whether an extension version of the standard is applied to the current sequence. The third syntax element identification information may be designated as sps_range_extension_flag to indicate whether a range extension is applied to the current sequence.
[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 указывает, что расширение диапазона применено к текущей последовательности, что, однако, никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00471] That is, before determining the first syntax element identification information (sps_reverse_last_sig_coeff_flag), the following operations may be performed. Define sps_extension_flag; and define sps_reverse_last_sig_coeff_flag if sps_extension_flag indicates that the standard extension version is applied to the current sequence. Alternatively, define sps_range_extension_flag; and define sps_reverse_last_sig_coeff_flag if sps_range_extension_flag indicates that the range extension is applied to the current sequence. Alternatively, define sps_extension_flag; define sps_range_extension_flag if sps_extension_flag indicates that the standard extension version is applied to the current sequence; and sps_reverse_last_sig_coeff_flag is determined if sps_range_extension_flag indicates that range extension is applied to the current sequence, which, however, is in no way limited in the embodiments of the present invention.
[00472] В вариантах осуществления настоящего изобретения операция, при которой определяют вторую идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если версия расширения стандарта применяют к текущей последовательности, значение второй идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если версию расширения стандарта не применяют к текущей последовательности, значение второй идентификационной информации о синтаксическом элементе может быть определено как второе значение.[00472] In embodiments of the present invention, the operation of determining the second identification information about the syntax element may include the following operation. If the extension version of the standard is applied to the current sequence, the value of the second identification information about the syntax element is determined as the first value. Alternatively, if the extension version of the standard is not applied to the current sequence, the value of the second identification information about the syntax element may be determined as the second value.
[00473] Способ может дополнительно включать следующую операцию. Вторую идентификационную информацию о синтаксическом элементе предоставляют в битовый поток.[00473] The method may further include the following operation. The second identification information about the syntax element is provided in the bitstream.
[00474] В вариантах осуществления настоящего изобретения операция, при которой определяют третью идентификационную информацию о синтаксическом элементе, может включать следующую операцию. Если расширение диапазона применено к текущей последовательности, значение третьей идентификационной информации о синтаксическом элементе определяют как первое значение. Альтернативно, если расширение диапазона не применено к текущей последовательности, значение третьей идентификационной информации о синтаксическом элементе определяют как второе значение.[00474] In embodiments of the present invention, the operation of determining the third identification information about the syntax element may include the following operation. If the range extension is applied to the current sequence, the value of the third identification information about the syntax element is determined as a first value. Alternatively, if the range extension is not applied to the current sequence, the value of the third identification information about the syntax element is determined as a second value.
[00475] Способ может дополнительно включать следующую операцию. Третью идентификационную информацию о синтаксическом элементе предоставляют в битовый поток.[00475] The method may further include the following operation. Third identification information about the syntax element is provided in the bitstream.
[00476] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.[00476] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric or may be numeric. In a specific example, the first value is set to 1 and the second value is set to 0, which, however, is not limited in any way.
[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, то есть изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, необходимо дополнительно определить идентификационную информацию о компоненте на уровне слайса, чтобы определить, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00477] It should be further noted that the second identification information about the syntax element may be designated as sps_extension_flag. The third identification information about the syntax element may be designated as sps_range_extension_flag. Accordingly, at the sequence level, if sps_extension_flag has a value of 1, i.e., the extension version of the standard is applied to the current sequence, then sps_range_extension_flag must be defined. If sps_range_extension_flag has a value of 1, i.e., the range extension is applied to the current sequence, then sps_reverse_last_sig_coeff_flag must be defined. If sps_reverse_last_sig_coeff_flag is set to 1, meaning that reversal of the last significant coefficient is allowed for the current sequence, it is necessary to additionally define the component identification information at the slice level to determine whether reversal of the last significant coefficient is applied to a component of the current slice.
[00478] В некоторых вариантах осуществления расширение диапазона применяется к текущей последовательности, что может включать то, что текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь. Например, ниже в данном документе описаны соответственно четыре случая.[00478] In some embodiments, range extension is applied to the current sequence, which may include that the current sequence has at least one of the following: high bit depth, high quality, high bit rate, high frame rate, or lossless compression. For example, four cases are described below in this document, respectively.
[00479] В возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой глубиной, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой глубиной указывает, что текущая последовательность имеет высокую битовую глубину, определяют, что расширение диапазона применено к текущей последовательности.[00479] In a possible implementation, when the third identification information about the syntax element is identification information with a high bit depth, the method may further include the following operation. If the identification information with a high bit depth indicates that the current sequence has a high bit depth, it is determined that range extension is applied to the current sequence.
[00480] В другой возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высокой битовой скоростью, способ может дополнительно включать следующую операцию. Если идентификационная информация с высокой битовой скоростью указывает, что текущая последовательность имеет высокую битовую скорость, определяют, что расширение диапазона применено к текущей последовательности.[00480] In another possible implementation, when the third identification information about the syntax element is identification information with a high bit rate, the method may further include the following operation. If the identification information with a high bit rate indicates that the current sequence has a high bit rate, it is determined that range extension is applied to the current sequence.
[00481] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию с высоким качеством, способ может дополнительно включать следующую операцию. Если идентификационная информация с высоким качеством указывает, что текущая последовательность имеет высокое качество, определяют, что расширение диапазона применено к текущей последовательности.[00481] In another possible implementation, when the third identification information about the syntax element is high-quality identification information, the method may further include the following operation. If the high-quality identification information indicates that the current sequence has high quality, it is determined that the range extension is applied to the current sequence.
[00482] В еще одной возможной реализации, когда третья идентификационная информация о синтаксическом элементе представляет собой идентификационную информацию со сжатием без потерь, способ может дополнительно включать следующую операцию. Если идентификационная информация со сжатием без потерь указывает, что текущая последовательность сжата без потерь, определяют, что расширение диапазона применено к текущей последовательности.[00482] In another possible implementation, when the third identification information about the syntax element is identification information with lossless compression, the method may further include the following operation. If the identification information with lossless compression indicates that the current sequence is losslessly compressed, it is determined that range extension is applied to the current sequence.
[00483] Иллюстративно, если взять в качестве примера уровень последовательности, третья идентификационная информация о синтаксическом элементе может дополнительно представлять собой идентификационную информацию с высокой битовой глубиной (обозначенную как sps_high_bit_depth_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой глубиной; или альтернативно может представлять собой идентификационную информацию с высокой битовой скоростью (обозначенную как sps_high_bit_rate_flag) для указания, является ли текущая последовательность последовательностью с высокой битовой скоростью; или альтернативно может представлять собой другую идентификационную информацию для указания высокой битовой глубины, высокой битовой скорости, высокого качества или сжатия без потерь, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00483] Illustratively, taking the sequence level as an example, the third identification information about the syntax element may further be high bit depth identification information (denoted as sps_high_bit_depth_flag) for indicating whether the current sequence is a high bit depth sequence; or alternatively may be high bit rate identification information (denoted as sps_high_bit_rate_flag) for indicating whether the current sequence is a high bit rate sequence; or alternatively may be other identification information for indicating high bit depth, high bit rate, high quality, or lossless compression, which is in no way limited in the embodiments of the present invention.
[00484] В вариантах осуществления настоящего изобретения первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе и т.п. могут быть флагами уровня последовательности или даже флагами более высокого уровня, такими как информация об удобстве использования видео (VUI), информация для дополнительной оптимизации (SEI) и т.п.[00484] In embodiments of the present invention, the first identification information about the syntax element, the second identification information about the syntax element, the third identification information about the syntax element, and the like may be sequence-level flags or even higher-level flags such as video usability information (VUI), supplemental optimization information (SEI), and the like.
[00485] Дополнительно идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть обозначена как reverse_last_sig_coeff_flag. Идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информацией более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00485] Additionally, the identification information about the reversal of the last significant coefficient may be designated as reverse_last_sig_coeff_flag. The identification information about the reversal of the last significant coefficient may be at least one of sequence-level identification information, image-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited here.
[00486] То есть reverse_last_sig_coeff_flag может быть флагом уровня последовательности или флагом более высокого уровня или может быть флагом уровня изображения или флагом уровня слайса, или флагом уровня блока, или флагом другого уровня. Кроме того, флаг уровня блока может включать флаг уровня LCU или флаг уровня CTU, или флаг уровня CU, или другой флаг уровня блока, что никоим образом не ограничено в вариантах осуществления настоящего изобретения.[00486] That is, reverse_last_sig_coeff_flag may be a sequence level flag or a higher level flag, or may be an image level flag or a slice level flag, or a block level flag, or another level flag. In addition, the block level flag may include an LCU level flag or a CTU level flag, or a CU level flag, or another block level flag, which is in no way limited in the embodiments of the present invention.
[00487] В вариантах осуществления настоящего изобретения идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне последовательности может обозначаться как sps_reverse_last_sig_coeff_flag, а идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента на уровне слайса может обозначаться как sh_reverse_last_sig_coeff_flag.[00487] In embodiments of the present invention, the identification information of the reversal of the last significant coefficient at the sequence level may be denoted as sps_reverse_last_sig_coeff_flag, and the identification information of the reversal of the last significant coefficient at the slice level may be denoted as sh_reverse_last_sig_coeff_flag.
[00488] Дополнительно следует отметить, что идентификационная информация об изменении местоположения на обратное последнего значимого коэффициента уровня слайса может дополнительно упоминаться как идентификационная информация о компоненте текущего слайса. В некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать следующие операции.[00488] It should be further noted that the identification information about the change of the location to the inverse of the last significant coefficient of the slice level may be further referred to as the identification information about the component of the current slice. In some embodiments, the operation of determining the identification information about the component of the current slice may include the following operations.
[00489] Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, значение идентификационной информации о компоненте определяют как первое значение.[00489] If a reversal of the last significant coefficient is applied to a component of the current slice, the value of the identification information of the component is determined as the first value.
[00490] Альтернативно, если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, значение идентификационной информации о компоненте определяют как второе значение.[00490] Alternatively, if the reversal of the last significant coefficient is not applied to the component of the current slice, the value of the identification information about the component is determined as the second value.
[00491] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.[00491] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric or may be numeric. In a specific example, the first value is set to 1 and the second value is set to 0, which, however, is in no way limited.
[00492] В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, т.е. изменение местоположения на обратное последнего значимого коэффициента применено к текущему блоку, соответствующему компоненту текущего слайса, может быть определено, что значение идентификационной информации о компоненте равно 1. Если изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, т.е. изменение местоположения на обратное последнего значимого коэффициента не применено к текущему блоку, соответствующему компоненту текущего слайса, также может быть определено, что значение идентификационной информации о компоненте равно 0.[00492] As an example, a first value of 1 and a second value of 0 are taken. If the reversal of the last significant coefficient is applied to a component of the current slice, i.e. the reversal of the last significant coefficient is applied to the current block corresponding to the component of the current slice, it may be determined that the value of the identification information about the component is 1. If the reversal of the last significant coefficient is not applied to a component of the current slice, i.e. the reversal of the last significant coefficient is not applied to the current block corresponding to the component of the current slice, it may also be determined that the value of the identification information about the component is 0.
[00493] Дополнительно местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, включает начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента. Когда начальная горизонтальная координата и начальная вертикальная координата представляют собой горизонтальное расстояние и вертикальное расстояние между местоположением последнего значимого коэффициента и верхним левым углом текущего блока, соответственно, операция, при которой информацию о координатах последнего значимого коэффициента текущего блока определяют согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента, может включать следующую операцию.[00493] Additionally, the location of the last significant coefficient of the current block corresponding to the component of the current slice includes a starting horizontal coordinate and a starting vertical coordinate of the last significant coefficient. When the starting horizontal coordinate and the starting vertical coordinate are a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block, respectively, the operation in which the coordinate information of the last significant coefficient of the current block is determined according to the identification information of the component and the location of the last significant coefficient may include the following operation.
[00494] Если значение идентификации компонента является первым значением, информацию о координатах последнего значимого коэффициента определяют путем выполнения вычисления в отношении начальной горизонтальной координаты и начальной вертикальной координаты последнего значимого коэффициента.[00494] If the component identification value is the first value, the coordinate information of the last significant coefficient is determined by performing a calculation with respect to the initial horizontal coordinate and the initial vertical coordinate of the last significant coefficient.
[00495] Альтернативно, если значение идентификации компонента является вторым значением, информация о координатах последнего значимого коэффициента определяется непосредственно согласно начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента.[00495] Alternatively, if the component identification value is the second value, the coordinate information of the last significant coefficient is determined directly according to the initial horizontal coordinate and the initial vertical coordinate of the last significant coefficient.
[00496] Другими словами, в некоторых вариантах осуществления способ может дополнительно включать следующую операцию.[00496] In other words, in some embodiments, the method may further include the following step.
[00497] Если значение идентификации компонента является первым значением, информацию о координатах последнего значимого коэффициента определяют как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока.[00497] If the component identification value is the first value, the coordinate information of the last significant coefficient is determined as the horizontal distance and the vertical distance between the location of the last significant coefficient and the lower right corner of the current block.
[00498] Альтернативно, если значение идентификации компонента является вторым значением, информация о координатах последнего значимого коэффициента определяется как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.[00498] Alternatively, if the component identification value is the second value, the coordinate information of the last significant coefficient is determined as the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block.
[00499] То есть информация о координатах последнего значимого коэффициента обычно является расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока. Для обычного видео большинство из значимых коэффициентов сосредоточено в верхнем левом углу, и коэффициенты в большой области в нижнем правом углу равны 0. Однако для кодирования и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью много значимых коэффициентов могут также появляться в нижнем правом углу, так что информация о координатах последнего значимого коэффициента имеет большое значение. В этом случае для экономии потребления ресурсов преобразование координаты (в частности, изменение координаты на обратную, где после изменения координаты на обратную информацией о координатах последнего значимого коэффициента является расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока) необходимо выполнить во время кодирования коэффициентов. Соответственно, при последующем декодировании коэффициентов в декодере также необходимо выполнить изменение координаты на обратную. После повторного выполнения изменения координат на обратное информация о координатах последнего значимого коэффициента может быть восстановлена как расстояние по горизонтали и расстояние по вертикали между местоположением последнего значимого коэффициента и левым верхним углом текущего блока, тем самым определяя местоположение последнего значимого коэффициента.[00499] That is, the coordinate information of the last significant coefficient is usually the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block. For a normal video, most of the significant coefficients are concentrated in the upper left corner, and the coefficients in a large area in the lower right corner are 0. However, for coding and decoding videos with a high bit depth, high quality, high bit rate, many significant coefficients may also appear in the lower right corner, so the coordinate information of the last significant coefficient is of great importance. In this case, in order to save resource consumption, coordinate transformation (in particular, coordinate reversal, where after coordinate reversal, the coordinate information of the last significant coefficient is the horizontal distance and the vertical distance between the location of the last significant coefficient and the lower right corner of the current block) must be performed during coefficient encoding. Accordingly, during subsequent decoding of the coefficients, coordinate reversal must also be performed in the decoder. After re-executing the coordinate reversal, the coordinate information of the last significant coefficient can be reconstructed as the horizontal distance and vertical distance between the location of the last significant coefficient and the upper-left corner of the current block, thereby determining the location of the last significant coefficient.
[00500] Дополнительно в некоторых вариантах осуществления операция, при которой определяют информацию о координатах последнего значимого коэффициента путем выполнения вычисления в отношении начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента, может включать следующие операции.[00500] Additionally, in some embodiments, the operation of determining coordinate information of the last significant coefficient by performing a calculation with respect to an initial horizontal coordinate and an initial vertical coordinate of the last significant coefficient may include the following operations.
[00501] Определяют ширину и высоту текущего блока.[00501] Defines the width and height of the current block.
[00502] Горизонтальную координату последнего значимого коэффициента получают путем вычитания начальной горизонтальной координаты последнего значимого коэффициента из ширины текущего блока;[00502] The horizontal coordinate of the last significant coefficient is obtained by subtracting the initial horizontal coordinate of the last significant coefficient from the width of the current block;
[00503] Вертикальную координату последнего значимого коэффициента получают путем вычитания начальной вертикальной координаты последнего значимого коэффициента из высоты текущего блока.[00503] The vertical coordinate of the last significant coefficient is obtained by subtracting the initial vertical coordinate of the last significant coefficient from the height of the current block.
[00504] Информацию о координатах последнего значимого коэффициента определяют согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00504] Information about the coordinates of the last significant coefficient is determined according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[00505] Следует отметить, что текущий блок, соответствующий компоненту текущего слайса, может представлять собой блок, в отношении которого не было выполнено преобразование нулевого вывода, или блок, в отношении которого было выполнено преобразование нулевого вывода. Если взять блок, в отношении которого было выполнено преобразование нулевого вывода, в качестве примера, в этом случае ширина текущего блока может представлять собой 1 <<log2ZoTbWidth, и высота текущего блока может представлять собой 1<<log2ZoTbHeight. Затем в случае, если идентификационная информация о компоненте указывает, что применено изменение местоположения на обратное последнего значимого коэффициента,[00505] It should be noted that the current block corresponding to the component of the current slice may be a block on which the zero output transformation has not been performed or a block on which the zero output transformation has been performed. Taking the block on which the zero output transformation has been performed as an example, in this case, the width of the current block may be 1 << log2ZoTbWidth, and the height of the current block may be 1 << log2ZoTbHeight. Then, in the case where the identification information about the component indicates that the reversal of the last significant coefficient is applied,
[00506] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;[00506] LastSignificantCoeffX= (1<<log2ZoTbWidth)-1-LastSignificantCoeffX;
[00507] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.[00507] LastSignificantCoeffY= (1<<log2ZoTbHeight)-1-LastSignificantCoeffY.
[00508] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) в правой части формулы может обозначать информацию о координатах последнего значимого коэффициента, определенного непосредственно (т.е. начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента). (LastSignificantCoeffX, LastSignificantCoeffY) в левой части формулы может обозначать информацию о координатах последнего значимого коэффициента, полученную путем изменения координаты на обратную (т.е. информацию о координатах последнего значимого коэффициента, предоставленную в битовый поток в случае применения изменения местоположения на обратное последнего значимого коэффициента к текущему блоку).[00508] In this document, (LastSignificantCoeffX, LastSignificantCoeffY) on the right side of the formula may denote information about the coordinates of the last significant coefficient determined directly (i.e., the starting horizontal coordinate and the starting vertical coordinate of the last significant coefficient). (LastSignificantCoeffX, LastSignificantCoeffY) on the left side of the formula may denote information about the coordinates of the last significant coefficient obtained by coordinate reversal (i.e., information about the coordinates of the last significant coefficient provided to the bitstream in the case of applying the reversal of the location of the last significant coefficient to the current block).
[00509] В некоторых вариантах осуществления операция, при которой информацию о координатах последнего значимого коэффициента предоставляют в битовый поток, может включать следующие операции.[00509] In some embodiments, the operation of providing information about the coordinates of the last significant coefficient to the bitstream may include the following operations.
[00510] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента определяют согласно информации о координате последнего значимого коэффициента.[00510] Information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient are determined according to the information about the coordinate of the last significant coefficient.
[00511] Информацию о префиксе горизонтальной координаты последнего значимого коэффициента, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента предоставляют в битовый поток.[00511] Information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient are provided in a bitstream.
[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 могут быть предоставлены в битовый поток, так что декодер определяет информацию о координатах последнего значимого коэффициента путем анализа битового потока.[00512] It should be noted that the information about the prefix of the horizontal coordinate of the last significant coefficient may be designated as last_sig_coeff_x_prefix. The information about the prefix of the vertical coordinate of the last significant coefficient may be designated as last_sig_coeff_y_prefix. The information about the suffix of the horizontal coordinate of the last significant coefficient may be designated as last_sig_coeff_x_suffix. The information about the suffix of the vertical coordinate of the last significant coefficient may be designated as last_sig_coeff_y_suffix. Then, last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be provided to the bitstream, so that the decoder determines the coordinate information of the last significant coefficient by analyzing the bitstream.
[00513] В вариантах осуществления настоящего изобретения заданный порядок сканирования может быть диагональным порядком сканирования, зигзагообразным порядком сканирования, горизонтальным порядком сканирования, вертикальным порядком сканирования, порядком сканирования подблоков 4×4 и т.д., что никоим образом не ограничено здесь.[00513] In embodiments of the present invention, the given scanning order may be a diagonal scanning order, a zigzag scanning order, a horizontal scanning order, a vertical scanning order, a 4×4 sub-block scanning order, etc., which is in no way limited herein.
[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, что тем самым решает проблему увеличенного потребления ресурсов, вызванного кодированием больших значений в битовом потоке.[00514] Thus, in some cases such as encoding and decoding video with high bit depth, high quality, high bit rate or lossless compression, embodiments of the present invention provide a method for modifying a mode for obtaining the location of the last significant coefficient. That is, usually, the method for encoding and decoding coefficients is the same as the existing method in the prior art. Usually, last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may be configured to encode the abscissa of the location of the last significant coefficient, i.e., the horizontal distance relative to the upper left corner of the current block; and last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be configured to encode the ordinate of the location of the last significant coefficient, i.e., the vertical distance relative to the upper left corner of the current block, as shown in Fig. 10A. When encoding and decoding video with high bit depth, high quality, high bit rate or lossless compression, the location of the last significant coefficient is usually close to the lower right corner of the region that includes all possible non-zero coefficients in the current block. In this case, last_sig_coeff_x_prefix and last_sig_coeff_x_suffix may be configured to encode the horizontal distance between the location of the last significant coefficient and the lower right corner of the region that includes all possible non-zero coefficients in the current block, and last_sig_coeff_y_prefix and last_sig_coeff_y_suffix may be configured to encode the vertical distance between the location of the last significant coefficient and the lower right corner of the region that includes all possible non-zero coefficients in the current block, as shown in Fig. 10B. Therefore, in the embodiments of the present invention, reverse_last_sig_coeff_flag is introduced, thereby solving the problem of increased resource consumption caused by encoding large values in a bitstream.
[00515] Дополнительно для каждого из компонентов цвета текущего слайса reverse_last_sig_coeff_flag уровня слайса (т.е. идентификационная информация о компоненте sh_reverse_last_sig_coeff_flag текущего слайса) может обеспечивать возможность отдельного управления тем, применять ли изменение местоположения на обратное последнего значимого коэффициента к компоненту цвета.[00515] Additionally, for each of the color components of the current slice, the slice-level reverse_last_sig_coeff_flag (i.e., the identification information about the sh_reverse_last_sig_coeff_flag component of the current slice) may provide the ability to separately control whether to apply the reversal of the last significant coefficient to the color component.
[00516] В вариантах осуществления настоящего изобретения компонент может содержать первый компонент цвета, второй компонент цвета и третий компонент цвета.[00516] In embodiments of the present invention, the component may comprise a first color component, a second color component, and a third color component.
[00517] В конкретном примере первый компонент цвета представляет собой компонент яркости. Второй компонент цвета представляет собой первый компонент цветности. Третий компонент цвета представляет собой второй компонент цветности. Компонент яркости может быть обозначен как Y. Первый компонент цветности может быть обозначен как U(Cb). Второй компонент цветности может быть обозначен как V(Cr).[00517] In a particular example, the first color component is a luminance component. The second color component is a first chroma component. The third color component is a second chroma component. The luminance component may be denoted as Y. The first chroma component may be denoted as U(Cb). The second chroma component may be denoted as V(Cr).
[00518] В другом конкретном примере первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент. Красный компонент может быть обозначен как R. Зеленый компонент может быть обозначен как G. Синий компонент может быть обозначен как B.[00518] In another specific example, the first color component is a red component, the second color component is a green component, and the third color component is a blue component. The red component may be designated as R. The green component may be designated as G. The blue component may be designated as B.
[00519] Дополнительно в некоторых вариантах осуществления, когда компонент включает первый компонент цвета, второй компонент цвета и третий компонент цвета, способ может дополнительно включать следующие операции.[00519] Additionally, in some embodiments, when the component includes a first color component, a second color component, and a third color component, the method may further include the following operations.
[00520] Определяют, используют ли совместно первый компонент цвета, второй компонент цвета и третий компонент цвета текущего слайса идентификационную информацию о компоненте на основе отношения между свойствами первого компонента цвета, второго компонента цвета и третьего компонента цвета.[00520] It is determined whether the first color component, the second color component, and the third color component of the current slice share identification information about the component based on the relationship between the properties of the first color component, the second color component, and the third color component.
[00521] Количество частей идентификационной информации о компоненте текущего слайса определяют согласно определению. Количество частей идентификационной информации о компоненте может быть равно 1, 2 или 3.[00521] The number of parts of the component identification information of the current slice is determined according to the definition. The number of parts of the component identification information may be 1, 2, or 3.
[00522] В частности, операция, при которой определяют количество частей идентификационной информации о компоненте, может включать следующую операцию.[00522] In particular, the operation of determining the number of parts of the identification information about the component may include the following operation.
[00523] Количество частей идентификационной информации о компоненте текущего слайса определяют равным 1, если одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса.[00523] The number of parts of the component identification information of the current slice is determined to be 1 if one part of the component identification information is shared by the first color component, the second color component, and the third color component of the current slice.
[00524] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 2, если одна часть идентификационной информации о компоненте совместно используется двумя из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00524] Alternatively, the number of pieces of identification information about a component of the current slice is determined to be 2 if one piece of identification information about a component is shared by two of the first color component, the second color component, and the third color component of the current slice.
[00525] Альтернативно количество частей идентификационной информации о компоненте текущего слайса определяют равным 3, если каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.[00525] Alternatively, the number of parts of the component identification information of the current slice is determined to be 3 if each of the first color component, the second color component, and the third color component of the current slice has a separate part of the component identification information.
[00526] В вариантах осуществления настоящего изобретения, поскольку свойства соответствующих компонентов цвета могут отличаться, и используются некоторые межкомпонентные методы, соответствующие компоненты цвета не всегда могут быть совместимыми при остаточном распределении. Например, при кодировании и декодировании видео с очень высокой битовой скоростью и очень высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть одинаковыми при распределении, например, все они расположены близко к нижнему правому углу области, включающей возможные значимые коэффициенты. Однако в некоторых случаях кодирования и декодирования видео с не особенно высокой битовой скоростью и не особенно высокими требованиями к качеству значимые коэффициенты разных компонентов могут быть разными при распределении. Например, все значимые коэффициенты компонента Y находятся близко к нижнему правому углу области, включающей возможные значимые коэффициенты, а значимые коэффициенты компонента U/V распределяются только в верхнем левом углу. Альтернативно значимые коэффициенты компонента U также находятся близко к нижнему правому углу, а значимые коэффициенты компонента V распределяются только в верхнем левом углу.[00526] In embodiments of the present invention, since the properties of the corresponding color components may differ and some inter-component techniques are used, the corresponding color components may not always be compatible in the residual distribution. For example, when encoding and decoding video with a very high bit rate and very high quality requirements, the significant coefficients of different components may be the same in the distribution, for example, they are all located close to the lower right corner of the region including possible significant coefficients. However, in some cases of encoding and decoding video with a not particularly high bit rate and not particularly high quality requirements, the significant coefficients of different components may be different in the distribution. For example, all the significant coefficients of the Y component are close to the lower right corner of the region including possible significant coefficients, and the significant coefficients of the U/V component are distributed only in the upper left corner. Alternatively, the significant coefficients of the U component are also close to the lower right corner, and the significant coefficients of the V component are distributed only in the upper left corner.
[00527] Следовательно, в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Например, одна идентификация компонента может управлять применением к компоненту яркости, а другая идентификация компонента может управлять применением к двум компонентам цветности. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета. Например, три компонента цвета представляют собой R, G и B в формате RGB или Y, Cb и Cr (или Y, U и V) в формате YUV.[00527] Therefore, in embodiments of the present invention, one or more pieces of component identification information may be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. For example, one component identification may control the application to the luma component, and another component identification may control the application to two chroma components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. For example, the three color components are R, G, and B in RGB format, or Y, Cb, and Cr (or Y, U, and V) in YUV format.
[00528] В возможной реализации, когда количество частей идентификационной информации о компоненте равно 1, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение первой идентификационной информации о компоненте текущего слайса.[00528] In a possible implementation, when the number of pieces of identification information about a component is 1, the operation of determining identification information about a component of the current slice may include determining a first identification information about a component of the current slice.
[00529] Соответственно, способ может дополнительно включать следующую операцию. Если значение первой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение первой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к любому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00529] Accordingly, the method may further include the following operation. If the value of the first component identification information is a first value, it is determined that the reversal of the last significant coefficient is applied to each of the first color component, the second color component, and the third color component of the current slice. Alternatively, if the value of the first component identification information is a second value, it is determined that the reversal of the last significant coefficient is not applied to any of the first color component, the second color component, and the third color component of the current slice.
[00530] В другой возможной реализации, когда количество частей идентификационной информации о компоненте равно 2, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса.[00530] In another possible implementation, when the number of pieces of component identification information is 2, the operation of determining component identification information of the current slice may include determining a second component identification information and a third component identification information of the current slice.
[00531] Соответственно, способ может дополнительно включать следующую операцию. Если значение второй идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса. Альтернативно, если значение второй идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ни к одному из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00531] Accordingly, the method may further include the following operation. If the value of the second component identification information is the first value, it is determined that the reversal of the location of the last significant coefficient is applied to each of the two color components of the first color component, the second color component, and the third color component of the current slice. Alternatively, if the value of the second component identification information is the second value, it is determined that the reversal of the location of the last significant coefficient is not applied to any of the two color components of the first color component, the second color component, and the third color component of the current slice.
[00532] Если значение третьей идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета. Альтернативно, если значение третьей идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к другому компоненту цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, отличному от двух компонентов цвета.[00532] If the value of the third component identification information is the first value, it is determined that the reversal of the location of the last significant coefficient is applied to another color component of the first color component, the second color component, and the third color component of the current slice, other than the two color components. Alternatively, if the value of the third component identification information is the second value, it is determined that the reversal of the location of the last significant coefficient is not applied to another color component of the first color component, the second color component, and the third color component of the current slice, other than the two color components.
[00533] В еще одной возможной реализации, когда количество частей идентификационной информации о компоненте равно 3, операция, при которой определяют идентификационную информацию о компоненте текущего слайса, может включать определение четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса.[00533] In another possible implementation, when the number of pieces of component identification information is 3, the operation of determining component identification information of the current slice may include determining a fourth component identification information, a fifth component identification information, and a sixth component identification information of the current slice.
[00534] Соответственно, способ может дополнительно включать следующую операцию. Если значение четвертой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса. Альтернативно, если значение четвертой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к первому компоненту цвета текущего слайса.[00534] Accordingly, the method may further include the following operation. If the value of the fourth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the first color component of the current slice. Alternatively, if the value of the fourth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the first color component of the current slice.
[00535] Если значение пятой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса. Альтернативно, если значение пятой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено ко второму компоненту цвета текущего слайса.[00535] If the value of the fifth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the second color component of the current slice. Alternatively, if the value of the fifth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the second color component of the current slice.
[00536] Если значение шестой идентификационной информации о компоненте представляет собой первое значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса. Альтернативно, если значение шестой идентификационной информации о компоненте представляет собой второе значение, определяют, что изменение местоположения на обратное последнего значимого коэффициента не применено к третьему компоненту цвета текущего слайса.[00536] If the value of the sixth component identification information is the first value, it is determined that the reversal of the last significant coefficient is applied to the third color component of the current slice. Alternatively, if the value of the sixth component identification information is the second value, it is determined that the reversal of the last significant coefficient is not applied to the third color component of the current slice.
[00537] Следует отметить, что первое значение и второе значение могут отличаться. Первое значение и второе значение могут быть параметрическими или могут быть числовыми. В конкретном примере первое значение установлено как 1, а второе значение установлено как 0, что, однако, никоим образом не ограничено.[00537] It should be noted that the first value and the second value may differ. The first value and the second value may be parametric or may be numeric. In a specific example, the first value is set to 1 and the second value is set to 0, which, however, is not limited in any way.
[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] для указания, применено ли изменение местоположения на обратное последнего значимого коэффициента к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.[00538] It should be further noted that the component identification information in this case may be a slice level flag and may be designated as sh_reverse_last_sig_coeff_flag[cIdx]. cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may include sh_reverse_last_sig_coeff_flag[0], sh_reverse_last_sig_coeff_flag[1], and sh_reverse_last_sig_coeff_flag[2]. The fourth component identification information may be designated as sh_reverse_last_sig_coeff_flag[0] to indicate whether the reversal of the last significant coefficient location is applied to the current block corresponding to the first color component of the current slice. The fifth component identification information may be denoted as sh_reverse_last_sig_coeff_flag[1] to indicate whether the reversal of the last significant coefficient is applied to the current block corresponding to the second color component of the current slice. The sixth component identification information may be denoted as sh_reverse_last_sig_coeff_flag[2] to indicate whether the reversal of the last significant coefficient is applied to the current block corresponding to the third color component of the current slice.
[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).[00539] Illustratively, taking the YUV format as an example, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. If sh_reverse_last_sig_coeff_flag[0] has a value of 1, it may be determined that the reversal of the last significant coefficient is applied to the block corresponding to the first color component of the current slice (such as the Y component). If sh_reverse_last_sig_coeff_flag[1] has a value of 1, it may be determined that the reversal of the last significant coefficient is applied to the block corresponding to the second color component of the current slice (such as the U component). If sh_reverse_last_sig_coeff_flag[2] is set to 1, it can be specified that the reversal of the last significant coefficient is applied to the block corresponding to the third color component of the current slice (such as the V component).
[00540] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, все возможные коэффициенты, подлежащие кодированию, необходимо кодировать по умолчанию. То есть местоположение последнего значимого коэффициента больше не используется. Вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируют в заданном порядке сканирования. Следовательно, в вариантах осуществления настоящего изобретения может также вводиться идентификационная информация о разрешаемом последнем коэффициенте для определения, применено ли местоположение последнего коэффициента к текущему блоку.[00540] It should be further noted that when the third identification information about the syntax element indicates that the range extension is applied to the current sequence, all possible coefficients to be coded must be coded by default. That is, the location of the last significant coefficient is no longer used. Instead, all possible non-zero coefficients in the current block are scanned in a given scanning order. Therefore, in embodiments of the present invention, identification information about the resolved last coefficient may also be entered to determine whether the location of the last coefficient is applied to the current block.
[00541] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.[00541] In some embodiments, when the third identification information about the syntax element indicates that a range extension is applied to the current sequence, the method may further include the following operations.
[00542] Определяют идентификационную информацию о разрешаемом последнем коэффициенте текущего блока.[00542] Determine identification information about the last resolved coefficient of the current block.
[00543] Когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, все коэффициенты, расположенные выше местоположения последнего коэффициента, кодируют в заданном порядке сканирования. Идентификационную информацию о разрешаемом последнем коэффициенте, идентификационную информацию о видео и битовую информацию, полученную посредством кодирования, предоставляют в битовый поток.[00543] When the identification information about the resolved last coefficient indicates that the location of the last coefficient is applied to the current block, all coefficients located above the location of the last coefficient are encoded in a specified scanning order. The identification information about the resolved last coefficient, the identification information about the video, and the bit information obtained by encoding are provided in the bitstream.
[00544] Следует отметить, что идентификационная информация о разрешаемом последнем коэффициенте может быть обозначена как default_last_coeff_enabled_flag. В вариантах осуществления настоящего изобретения идентификационная информация о разрешаемом последнем коэффициенте может быть по меньшей мере одной из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00544] It should be noted that the identification information about the last coefficient to be enabled may be designated as default_last_coeff_enabled_flag. In the embodiments of the present invention, the identification information about the last coefficient to be enabled may be at least one of sequence-level identification information, image-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited herein.
[00545] Дополнительно следует отметить, что в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о разрешаемом последнем коэффициенте текущего блока, может включать следующую операцию.[00545] It should further be noted that in some embodiments, the operation of determining identification information about the resolved last coefficient of the current block may include the following operation.
[00546] Значение идентификационной информации о разрешаемом последнем коэффициенте определяют как первое значение, если местоположение последнего коэффициента применено к текущему блоку.[00546] The value of the identification information about the last coefficient to be resolved is determined as the first value if the location of the last coefficient is applied to the current block.
[00547] Альтернативно значение идентификационной информации о разрешаемом последнем коэффициенте определяют как второе значение, если местоположение последнего коэффициента не применено к текущему блоку.[00547] Alternatively, the value of the identification information about the last coefficient to be resolved is determined as the second value if the location of the last coefficient is not applied to the current block.
[00548] То есть в качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если определяют, что местоположение последнего коэффициента применено к текущему блоку, default_last_coeff_enabled_flag имеет значение, равное 1. Альтернативно, если определяют, что местоположение последнего коэффициента не применено к текущему блоку, default_last_coeff_enabled_flag имеет значение, равное 0.[00548] That is, the first value is 1 and the second value is 0 as an example. If it is determined that the location of the last coefficient is applied to the current block, default_last_coeff_enabled_flag has a value of 1. Alternatively, if it is determined that the location of the last coefficient is not applied to the current block, default_last_coeff_enabled_flag has a value of 0.
[00549] Дополнительно в некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, образованной всеми возможными ненулевыми коэффициентами в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00549] Additionally, in some embodiments, the location of the last coefficient is the lower right corner of a matrix formed by all possible non-zero coefficients in the current block. Alternatively, the location of the last coefficient is the last location of all possible non-zero coefficients in a given scan order in the current block.
[00550] Следует отметить, что в вариантах осуществления настоящего изобретения местоположение последнего коэффициента не представляет местоположение последнего значимого коэффициента. Это связано с тем, что коэффициент в местоположении последнего коэффициента может быть равен 0, тогда как коэффициент в местоположении последнего значимого коэффициента наверняка не равен 0.[00550] It should be noted that in embodiments of the present invention, the location of the last coefficient does not represent the location of the last significant coefficient. This is because the coefficient at the location of the last coefficient may be equal to 0, while the coefficient at the location of the last significant coefficient is certainly not equal to 0.
[00551] В конкретном примере способ может дополнительно включать следующую операцию. Устанавливают местоположение последнего значимого коэффициента как местоположение последнего коэффициента.[00551] In a specific example, the method may further include the following operation. The location of the last significant coefficient is set as the location of the last coefficient.
[00552] То есть в вариантах осуществления настоящего изобретения все еще может использоваться местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента необходимо поместить в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00552] That is, in embodiments of the present invention, the location of the last significant coefficient may still be used. In this case, the location of the last significant coefficient must be placed at the last location of all possible non-zero coefficients in a given scan order in the current block.
[00553] Дополнительно местоположение последнего коэффициента может быть обозначено как (LastCoeffX, LastCoeffY), т.е. последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00553] Additionally, the location of the last coefficient may be designated as (LastCoeffX, LastCoeffY), i.e., the last location of all possible non-zero coefficients in a given scan order in the current block. In some embodiments, the method may further include the following operations.
[00554] Определяют ширину и высоту блока преобразования, полученные путем выполнения заданной операции в отношении текущего блока.[00554] Determine the width and height of the transformation block obtained by performing a specified operation on the current block.
[00555] Вычисляют информацию о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования.[00555] Calculates coordinate information of the lower right corner of the transformation block according to the width and height of the transformation block.
[00556] Определяют местоположение последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.[00556] The location of the last coefficient is determined according to the coordinate information of the lower right corner of the transformation block.
[00557] В данном случае заданная операция включает по меньшей мере операцию нулевого вывода.[00557] In this case, the specified operation includes at least a zero output operation.
[00558] Следует отметить, что (LastCoeffX, LastCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. (LastCoeffX, LastCoeffY) может быть получена следующим образом.[00558] It should be noted that (LastCoeffX, LastCoeffY) may denote the coordinate information of the lower right corner of the transformation block obtained after the zero output. (LastCoeffX, LastCoeffY) can be obtained as follows.
[00559] LastCoeffX= (1<<log2ZoTbWidth)-1.[00559] LastCoeffX= (1<<log2ZoTbWidth)-1.
[00560] LastCoeffY= (1<<log2ZoTbHeight)-1.[00560] LastCoeffY= (1<<log2ZoTbHeight)-1.
[00561] Соответственно, местоположение последнего коэффициента может быть определено согласно (LastCoeffX, LastCoeffY), если default_last_coeff_enabled_flag имеет значение 1.[00561] Accordingly, the location of the last coefficient can be determined according to (LastCoeffX, LastCoeffY) if default_last_coeff_enabled_flag is set to 1.
[00562] В конкретном примере все еще используется местоположение последнего значимого коэффициента. В этом случае местоположение последнего значимого коэффициента может быть помещено в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. В некоторых вариантах осуществления способ может дополнительно включать следующую операцию.[00562] In a specific example, the location of the last significant coefficient is still used. In this case, the location of the last significant coefficient may be placed at the last location of all possible non-zero coefficients in a given scan order in the current block. In some embodiments, the method may further include the following operation.
[00563] Когда местоположение последнего значимого коэффициента установлено как местоположение последнего коэффициента, местоположение последнего значимого коэффициента определяют согласно информации о координатах нижнего правого угла блока преобразования.[00563] When the location of the last significant coefficient is set as the location of the last coefficient, the location of the last significant coefficient is determined according to coordinate information of the lower right corner of the transformation block.
[00564] То есть местоположение последнего значимого коэффициента может быть обозначено как (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) может быть получено следующим образом.[00564] That is, the location of the last significant coefficient can be denoted as (LastSignificantCoeffX, LastSignificantCoeffY). (LastSignificantCoeffX, LastSignificantCoeffY) can be obtained as follows.
[00565] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.[00565] LastSignificantCoeffX= (1 <<log2ZoTbWidth)-1.
[00566] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.[00566] LastSignificantCoeffY= (1 <<log2ZoTbHeight)-1.
[00567] В данном документе (LastSignificantCoeffX, LastSignificantCoeffY) может обозначать информацию о координатах нижнего правого угла блока преобразования, полученного после нулевого вывода. Местоположение последнего значимого коэффициента может быть определено согласно (LastSignificantCoeffX, LastSignificantCoeffY), если default_last_coeff_enabled_flag имеет значение 1.[00567] In this document, (LastSignificantCoeffX, LastSignificantCoeffY) may denote the coordinate information of the lower right corner of the transform block obtained after zero output. The location of the last significant coefficient may be determined according to (LastSignificantCoeffX, LastSignificantCoeffY) if default_last_coeff_enabled_flag is set to 1.
[00568] Дополнительно, когда идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку, т.е. идентификационная информация о разрешаемом последнем коэффициенте имеет значение 0, в некоторых вариантах осуществления способ может дополнительно включать следующие операции.[00568] Additionally, when the identification information about the last coefficient to be resolved indicates that the location of the last coefficient is not applied to the current block, i.e., the identification information about the last coefficient to be resolved has a value of 0, in some embodiments, the method may further include the following operations.
[00569] Определяют информацию о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента.[00569] Information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient are determined.
[00570] Местоположение последнего значимого коэффициента определяют согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.[00570] The location of the last significant coefficient is determined according to information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient.
[00571] Все коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Информацию о префиксе горизонтальной координаты последнего значимого коэффициента, информацию о префиксе вертикальной координаты последнего значимого коэффициента, информацию о суффиксе горизонтальной координаты последнего значимого коэффициента и информацию о суффиксе вертикальной координаты последнего значимого коэффициента предоставляют в битовый поток.[00571] All coefficients located above the location of the last significant coefficient are coded in a given scanning order. Information about a prefix of the horizontal coordinate of the last significant coefficient, information about a prefix of the vertical coordinate of the last significant coefficient, information about a suffix of the horizontal coordinate of the last significant coefficient, and information about a suffix of the vertical coordinate of the last significant coefficient are provided in the bitstream.
[00572] Следует отметить, что, если местоположение последнего коэффициента не применено к текущему блоку, необходимо определить местоположение последнего значимого коэффициента. В частности, нет необходимости определения и предоставления в битовый поток last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix и last_sig_coeff_y_suffix.[00572] It should be noted that if the location of the last coefficient is not applied to the current block, it is necessary to determine the location of the last significant coefficient. In particular, there is no need to determine and provide in the bitstream last_sig_coeff_x_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_prefix and last_sig_coeff_y_suffix.
[00573] Таким образом, в некоторых случаях, таких как кодирование и декодирование видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь, все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию при кодировании коэффициентов. Обычно способ кодирования и декодирования коэффициентов является все таким же, как существующий способ в уровне техники. Все возможные коэффициенты, подлежащие кодированию, должны быть кодированы по умолчанию, то есть местоположение последнего значимого коэффициента больше не используется, вместо этого все возможные ненулевые коэффициенты в текущем блоке сканируются в заданном порядке сканирования. Другими словами, местоположение последнего коэффициента, подлежащего кодированию, помещают в последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке. Это местоположение обычно может относиться к нижнему правому углу матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Следовательно, в вариантах осуществления настоящего изобретения вводится default_last_coeff_enabled_flag, что тем самым уменьшает или даже исключает синтаксические элементы, связанные с местоположением последнего значимого коэффициента, обеспечивает экономию потребления ресурсов и предотвращает нерациональное использование.[00573] Thus, in some cases, such as encoding and decoding video with high bit depth, high quality, high bit rate or lossless compression, all possible coefficients to be encoded must be encoded by default when encoding the coefficients. Usually, the method of encoding and decoding the coefficients is still the same as the existing method in the prior art. All possible coefficients to be encoded must be encoded by default, that is, the location of the last significant coefficient is no longer used, instead, all possible non-zero coefficients in the current block are scanned in a given scan order. In other words, the location of the last coefficient to be encoded is placed in the last location of all possible non-zero coefficients in a given scan order in the current block. This location can usually refer to the lower right corner of the matrix consisting of all possible non-zero coefficients in the current block. Therefore, in embodiments of the present invention, default_last_coeff_enabled_flag is introduced, which thereby reduces or even eliminates syntax elements associated with the location of the last significant coefficient, provides resource savings and prevents waste.
[00574] Дополнительно для каждого компонента цвета текущего слайса идентификационная информация о разрешаемом последнем коэффициенте по умолчанию (т.е. sh_default_last_coeff_enabled_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли последний коэффициент по умолчанию к компоненту цвета.[00574] Additionally, for each color component of the current slice, the identification information about the default last coefficient enabled (i.e., sh_default_last_coeff_enabled_flag) of the current slice may provide the ability to separately control whether to apply the default last coefficient to the color component.
[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] может указывать, применен ли последний коэффициент по умолчанию к текущему блоку, соответствующему третьему компоненту цвета текущего слайса.[00575] In particular, the identification information about the default enabled last coefficient of the current slice may also be designated as sh_default_last_coeff_enabled_flag[cIdx]. cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may include sh_default_last_coeff_enabled_flag[0], sh_default_last_coeff_enabled_flag[1], and sh_default_last_coeff_enabled_flag[2]. sh_default_last_coeff_enabled_flag[0] may indicate whether the default last coefficient is applied to the current block corresponding to the first color component of the current slice. sh_default_last_coeff_enabled_flag[1] can specify whether the last default coefficient is applied to the current block corresponding to the second color component of the current slice. sh_default_last_coeff_enabled_flag[2] can specify whether the last default coefficient is applied to the current block corresponding to the third color component of the current slice.
[00576] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета.[00576] In this case, in embodiments of the present invention, one or more pieces of component identification information may also be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components.
[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).[00577] Illustratively, taking the YUV format as an example, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. If sh_default_last_coeff_enabled_flag[0] has a value of 1, it may be determined that the last default coefficient is applied to the block corresponding to the first color component of the current slice (such as the Y component). If sh_default_last_coeff_enabled_flag[1] has a value of 1, it may be determined that the last default coefficient is applied to the block corresponding to the second color component of the current slice (such as the U component). If sh_default_last_coeff_enabled_flag[2] is set to 1, it can be specified that the default last coefficient is applied to the block corresponding to the third color component of the current slice (such as the V component).
[00578] Дополнительно следует отметить, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, сканированные подблоки необходимо кодировать по умолчанию. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. То есть ни кодеру, ни декодеру не нужно обрабатывать этот флаг, что тем самым ускоряет кодирование и декодирование. Следовательно, варианты осуществления настоящего изобретения могут дополнительно вводить идентификационную информацию о кодируемом по умолчанию подблоке для определения, кодирован ли по умолчанию подблок, подлежащий кодированию в текущем блоке.[00578] It should be further noted that when the third identification information about the syntax element indicates that the range extension is applied to the current sequence, the scanned sub-blocks need to be coded by default. In this case, there is no need to provide sb_coded_flag in the bitstream. That is, neither the encoder nor the decoder needs to process this flag, which thereby speeds up encoding and decoding. Therefore, embodiments of the present invention can further introduce identification information about the sub-block to be coded by default to determine whether the sub-block to be coded in the current block is coded by default.
[00579] В некоторых вариантах осуществления, когда третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, способ может дополнительно включать следующие операции.[00579] In some embodiments, when the third identification information about the syntax element indicates that a range extension is applied to the current sequence, the method may further include the following operations.
[00580] Определяют идентификационную информацию о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию в текущем блоке.[00580] Determine identification information about a default coded sub-block for a sub-block to be coded in the current block.
[00581] Когда идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий кодированию, кодирован по умолчанию, кодируют все коэффициенты в подблоке, подлежащем кодированию. Идентификационную информацию о кодируемом по умолчанию подблоке и битовую информацию, полученную посредством кодирования, предоставляют в битовый поток.[00581] When the identification information about the default coded sub-block indicates that the sub-block to be coded is coded by default, all coefficients in the sub-block to be coded are coded. The identification information about the default coded sub-block and the bit information obtained by encoding are provided in the bitstream.
[00582] Следует отметить, что идентификационная информация о кодируемом по умолчанию подблоке может быть обозначена как default_sb_coded_flag. В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом по умолчанию подблоке представляет собой по меньшей мере одну из идентификационной информации уровня последовательности, идентификационной информации уровня изображения, идентификационной информации уровня слайса или идентификационной информации уровня блока, или даже идентификационной информации более высокого уровня (например, VUI, SEI и т.д.), что никоим образом не ограничено здесь.[00582] It should be noted that the identification information about the default coded sub-block may be designated as default_sb_coded_flag. In the embodiments of the present invention, the identification information about the default coded sub-block is at least one of sequence-level identification information, picture-level identification information, slice-level identification information, or block-level identification information, or even higher-level identification information (e.g., VUI, SEI, etc.), which is in no way limited here.
[00583] Дополнительно следует отметить, что в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию, может включать следующую операцию. Значение идентификационной информации о кодируемом по умолчанию подблоке определяют как первое значение, если подблок, подлежащий кодированию, кодирован по умолчанию. Альтернативно значение идентификационной информации о кодируемом по умолчанию подблоке определяют как второе значение, если подблок, подлежащий кодированию, не кодирован по умолчанию.[00583] It should be further noted that in some embodiments, the operation of determining identification information about a default coded sub-block for a sub-block to be coded may include the following operation. A value of the identification information about the default coded sub-block is determined as a first value if the sub-block to be coded is coded by default. Alternatively, a value of the identification information about the default coded sub-block is determined as a second value if the sub-block to be coded is not coded by default.
[00584] Соответственно, если взять первое значение, равное 1, и второе значение, равное 0, в качестве примера, default_sb_coded_flag имеет значение 1, если определено, что подблок, подлежащий кодированию, должен быть кодирован по умолчанию. Альтернативно default_sb_coded_flag имеет значение 0, если определено, что подблок, подлежащий кодированию, не должен быть кодирован по умолчанию.[00584] Accordingly, taking the first value equal to 1 and the second value equal to 0 as an example, default_sb_coded_flag has a value of 1 if it is determined that the sub-block to be coded should be coded by default. Alternatively, default_sb_coded_flag has a value of 0 if it is determined that the sub-block to be coded should not be coded by default.
[00585] Когда подблок, подлежащий кодированию, должен быть кодирован по умолчанию, default_sb_coded_flag имеет значение 1, что означает, что sb_coded_flag имеет значение 1, т.е. нет необходимости кодировать sb_coded_flag. Однако, когда подблок, подлежащий кодированию, не должен быть кодирован по умолчанию, т.е. идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий кодированию, не должен быть кодирован по умолчанию, в некоторых вариантах осуществления способ может дополнительно включать следующую операцию. Определяют идентификационную информацию о кодируемом подблоке для подблока, подлежащего кодированию, и предоставляют идентификационную информацию о кодируемом подблоке в битовый поток.[00585] When the sub-block to be coded is to be coded by default, default_sb_coded_flag has a value of 1, which means that sb_coded_flag has a value of 1, i.e., there is no need to code sb_coded_flag. However, when the sub-block to be coded is not to be coded by default, i.e., the identification information about the default coded sub-block indicates that the sub-block to be coded is not to be coded by default, in some embodiments, the method may further include the following operation. Identification information about the coded sub-block is determined for the sub-block to be coded, and the identification information about the coded sub-block is provided to the bitstream.
[00586] Дополнительно в некоторых вариантах осуществления операция, при которой определяют идентификационную информацию о кодируемом подблоке для подблока, подлежащего кодированию, может включать следующую операцию. Значение идентификационной информации о кодируемом подблоке определяют как первое значение, если требуется кодирование для подблока, подлежащего кодированию. Альтернативно значение идентификационной информации о кодируемом подблоке определяют как второе значение, если все коэффициенты в подблоке, подлежащем кодированию, равны нулю.[00586] Additionally, in some embodiments, the operation of determining identification information about a coded sub-block for a sub-block to be coded may include the following operation. The value of the identification information about the coded sub-block is determined as a first value if encoding is required for the sub-block to be coded. Alternatively, the value of the identification information about the coded sub-block is determined as a second value if all coefficients in the sub-block to be coded are zero.
[00587] В вариантах осуществления настоящего изобретения идентификационная информация о кодируемом подблоке может быть обозначена как sb_coded_flag. В качестве примера берутся первое значение, равное 1, и второе значение, равное 0. Если определено, что подблок, подлежащий кодированию, должен быть кодирован, это означает, что подблок, подлежащий кодированию, содержит значимые коэффициенты, подлежащие кодированию. В этом случае sb_coded_flag имеет значение 1. Альтернативно, если определено, что нет необходимости кодировать подблок, подлежащий кодированию, это означает, что все коэффициенты в подблоке, подлежащем кодированию, равны нулю. В этом случае sb_coded_flag имеет значение 0.[00587] In embodiments of the present invention, the identification information about the sub-block to be coded may be designated as sb_coded_flag. A first value of 1 and a second value of 0 are taken as an example. If it is determined that the sub-block to be coded is to be coded, this means that the sub-block to be coded contains significant coefficients to be coded. In this case, sb_coded_flag has a value of 1. Alternatively, if it is determined that it is not necessary to code the sub-block to be coded, this means that all coefficients in the sub-block to be coded are zero. In this case, sb_coded_flag has a value of 0.
[00588] Таким образом, в определенной ситуации при кодировании коэффициентов сканируемые подблоки должны быть кодированы по умолчанию, или сканируемые подблоки содержат значимые коэффициенты по умолчанию. Обычно способ кодирования коэффициентов является все таким же, как существующий способ в уровне техники. Определенной ситуацией может быть, например, кодирование и декодирования видео с высокой битовой глубиной, высоким качеством, высокой битовой скоростью или сжатием без потерь. В этой ситуации имеется много значимых коэффициентов, и почти все сканируемые подблоки должны быть кодированы, или почти все сканируемые подблоки содержат значимые коэффициенты. В этом случае нет необходимости предоставлять sb_coded_flag в битовый поток. Таким образом, нет необходимости обрабатывать кодером этот флаг, что тем самым ускоряет кодирование и декодирование. Удаление почти несуществующего флага еще больше повышает эффективность сжатия.[00588] Thus, in a certain situation, when encoding coefficients, the scanned sub-blocks must be encoded by default, or the scanned sub-blocks contain significant coefficients by default. Usually, the method for encoding the coefficients is still the same as the existing method in the prior art. A certain situation may be, for example, encoding and decoding of video with a high bit depth, high quality, high bit rate, or lossless compression. In this situation, there are many significant coefficients, and almost all of the scanned sub-blocks must be encoded, or almost all of the scanned sub-blocks contain significant coefficients. In this case, there is no need to provide sb_coded_flag in the bitstream. Thus, there is no need for the encoder to process this flag, which thereby speeds up encoding and decoding. Removing the almost non-existent flag further improves the compression efficiency.
[00589] Дополнительно для каждого компонента цвета текущего слайса идентификационная информация о кодируемом по умолчанию подблоке (т.е. sh_default_sb_coded_flag) текущего слайса может обеспечивать возможность отдельного управления тем, применять ли кодированный по умолчанию подблок к компоненту цвета.[00589] Additionally, for each color component of the current slice, the identification information about the default coded sub-block (i.e., sh_default_sb_coded_flag) of the current slice may provide the ability to separately control whether to apply the default coded sub-block to the color component.
[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] может указывать, кодирован ли по умолчанию подблок текущего блока, который соответствует третьему компоненту цвета текущего слайса.[00590] In particular, the identification information about the default coded sub-block of the current slice may also be designated as sh_default_sb_coded_flag[cIdx]. cIdx may have a value of 0, 1, or 2. In particular, when the three pieces of component identification information are configured to control the three color components respectively, the three pieces of component identification information may include sh_default_sb_coded_flag[0], sh_default_sb_coded_flag[1], and sh_default_sb_coded_flag[2]. sh_default_sb_coded_flag[0] may indicate whether the sub-block of the current block that corresponds to the first color component of the current slice is coded by default. sh_default_sb_coded_flag[1] may indicate whether the sub-block of the current block that corresponds to the second color component of the current slice is coded by default. sh_default_sb_coded_flag[2] can specify whether the subblock of the current block that corresponds to the third color component of the current slice is encoded by default.
[00591] В данном случае в вариантах осуществления настоящего изобретения одна или более частей идентификационной информации о компоненте также могут быть сконфигурированы для управления применением вариантов осуществления настоящего изобретения к разным компонентам цвета. Иллюстративно одна часть идентификационной информации о компоненте может быть сконфигурирована для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно две части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к трем компонентам цвета. Альтернативно три части идентификационной информации о компоненте могут быть сконфигурированы для управления тем, применять ли способ согласно вариантам осуществления настоящего изобретения к каждому из трех компонентов цвета.[00591] In this case, in embodiments of the present invention, one or more pieces of component identification information may also be configured to control the application of embodiments of the present invention to different color components. Illustratively, one piece of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, two pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to three color components. Alternatively, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components.
[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), кодирован по умолчанию.[00592] In a specific example, taking the YUV format as an example, three pieces of component identification information may be configured to control whether to apply the method according to embodiments of the present invention to each of the three color components. If sh_default_sb_coded_flag[0] has a value of 1, it may be determined that the sub-block of the block that corresponds to the first color component of the current slice (such as the Y component) is coded by default. If sh_default_sb_coded_flag[1] has a value of 1, it may be determined that the sub-block of the block that corresponds to the second color component of the current slice (such as the U component) is coded by default. If sh_default_sb_coded_flag[2] has a value of 1, it may be determined that the sub-block of the block that corresponds to the third color component of the current slice (such as the V component) is coded by default.
[00593] Вкратце, для всех компонентов цвета в видео одна часть идентификационной информации может быть применена для всех компонентов цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно разные части идентификационной информации могут быть применены для отдельного управления соответствующими компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Альтернативно две части идентификационной информации могут быть применены для управления всеми компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. Иными словами, более одной части идентификационной информации можно применять для управления разными компонентами цвета для использования способа согласно вариантам осуществления настоящего изобретения. В настоящем документе все компоненты цвета могут представлять собой R, G и B видео формата RGB или Y, U и V (Y, Cb и Cr) видео формата YUV, или т.п.[00593] In short, for all color components in a video, one piece of identification information may be applied to all color components for using the method according to the embodiments of the present invention. Alternatively, different pieces of identification information may be applied to separately control the corresponding color components for using the method according to the embodiments of the present invention. Alternatively, two pieces of identification information may be applied to control all color components for using the method according to the embodiments of the present invention. In other words, more than one piece of identification information may be applied to control different color components for using the method according to the embodiments of the present invention. Herein, all color components may be R, G, and B of RGB video format, or Y, U, and V (Y, Cb, and Cr) of YUV video format, or the like.
[00594] В настоящем изобретении дополнительно предоставлен способ кодирования, выполняемый кодером. В способе определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Коэффициенты, расположенные выше местоположения последнего значимого коэффициента, кодируют в заданном порядке сканирования. Битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента предоставляют в битовый поток. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь, разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, также можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00594] The present invention further provides a coding method performed by an encoder. The method determines identification information about a component of a current slice and a location of the last significant coefficient of a current block corresponding to the component of the current slice. Information about the coordinates of the last significant coefficient of the current block is determined according to the identification information about the component and the location of the last significant coefficient. Coefficients located above the location of the last significant coefficient are encoded in a predetermined scanning order. Bit information obtained by encoding, identification information about the component and coordinate information of the last significant coefficient are provided in a bitstream. Thus, in a scenario of encoding and decoding video with a high bit depth, high bit rate, high quality or lossless, a reasonable mode of obtaining the last significant coefficient is set according to the distribution law of significant coefficients, which thereby reduces resource consumption caused by encoding in a bitstream and improves compression efficiency. In addition, since the corresponding color components may be different in the distribution of significant coefficients, it is also possible to precisely control the corresponding mode of obtaining the last significant coefficient for each color component, i.e., separately controlling whether to apply the last significant coefficient reversal technology to each color component, thereby further improving the compression efficiency.
[00595] В еще одном варианте осуществления настоящего изобретения варианты осуществления настоящего изобретения предоставляют битовый поток. Битовый поток может быть сгенерирован путем выполнения битового кодирования в отношении информации, подлежащей кодированию. Информация, подлежащая кодированию, содержит по меньшей мере одну из первой идентификационной информации о синтаксическом элементе, второй идентификационной информации о синтаксическом элементе, третьей идентификационной информации о синтаксическом элементе, идентификационной информации о компоненте, идентификационной информации о разрешаемом последнем коэффициенте или идентификационной информации о кодируемом по умолчанию подблоке.[00595] In another embodiment of the present invention, embodiments of the present invention provide a bitstream. The bitstream may be generated by performing bit encoding on information to be encoded. The information to be encoded comprises at least one of first identification information about a syntax element, second identification information about a syntax element, third identification information about a syntax element, identification information about a component, identification information about a resolved last coefficient, or identification information about a default coded sub-block.
[00596] Первая идентификационная информация о синтаксическом элементе указывает, разрешено ли изменение местоположения на обратное последнего значимого коэффициента для текущей последовательности. Вторая идентификационная информация о синтаксическом элементе указывает, применена ли версия расширения стандарта к текущей последовательности. Третья идентификационная информация о синтаксическом элементе указывает, применено ли расширение диапазона к текущей последовательности. Идентификационная информация о компоненте указывает, применено ли изменение местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса. Идентификационная информация о разрешаемом последнем коэффициенте указывает, применено ли местоположение последнего коэффициента к текущему блоку. Идентификационная информация о кодируемом по умолчанию подблоке указывает, кодирован ли по умолчанию подблок, подлежащий кодированию, в текущем блоке. Текущая последовательность содержит текущий слайс. Текущий слайс содержит текущий блок.[00596] The first identification information about the syntax element indicates whether the reversal of the location of the last significant coefficient is allowed for the current sequence. The second identification information about the syntax element indicates whether the version of the standard extension is applied to the current sequence. The third identification information about the syntax element indicates whether the range extension is applied to the current sequence. The identification information about the component indicates whether the reversal of the location of the last significant coefficient is applied to the component of the current slice. The identification information about the allowed last coefficient indicates whether the location of the last coefficient is applied to the current block. The identification information about the default coded sub-block indicates whether the sub-block to be coded is coded by default in the current block. The current sequence contains the current slice. The current slice contains the current block.
[00597] В вариантах осуществления настоящего изобретения дополнительно предоставлена система кодирования. Система кодирования может содержать кодер и декодер. Кодер генерирует битовый поток и передает битовый поток на декодер, так что декодер анализирует битовый поток для получения соответствующей декодированной информации, такой как первая идентификационная информация о синтаксическом элементе, вторая идентификационная информация о синтаксическом элементе, третья идентификационная информация о синтаксическом элементе, идентификационная информация о компоненте, идентификационная информация о разрешаемом последнем коэффициенте, идентификационная информация о кодируемом по умолчанию подблоке, информация о координатах последнего значимого коэффициента текущего блока и т.п.[00597] In embodiments of the present invention, an encoding system is further provided. The encoding system may comprise an encoder and a decoder. The encoder generates a bit stream and transmits the bit stream to the decoder, so that the decoder analyzes the bit stream to obtain corresponding decoded information, such as first identification information about a syntax element, a second identification information about a syntax element, a third identification information about a syntax element, identification information about a component, identification information about a resolved last coefficient, identification information about a default coded sub-block, information about the coordinates of the last significant coefficient of the current block, and the like.
[00598] В еще одном варианте осуществления настоящего изобретения на основе тех же концепций настоящего изобретения, что и в предыдущих вариантах осуществления, на фиг. 12 представлена схема структуры кодера 120 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 12, кодер 120 содержит первый узел 1201 определения и узел 1202 кодирования.[00598] In another embodiment of the present invention, based on the same concepts of the present invention as in the previous embodiments, Fig. 12 shows a diagram of the structure of an encoder 120 according to embodiments of the present invention. As shown in Fig. 12, the encoder 120 includes a first determining unit 1201 and an encoding unit 1202.
[00599] Первый узел 1201 определения выполнен с возможностью определения идентификационной информации о компоненте текущего слайса и местоположения последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[00599] The first determining unit 1201 is configured to determine identification information about a component of the current slice and a location of the last significant coefficient of the current block corresponding to the component of the current slice.
[00600] Первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.[00600] The first determining unit 1201 is further configured to determine information about the coordinates of the last significant coefficient of the current block according to the identification information about the component and the location of the last significant coefficient.
[00601] Узел 1202 кодирования выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления в битовый поток битовой информации, полученной посредством кодирования, идентификационной информации о компоненте и информации о координатах последнего значимого коэффициента.[00601] The encoding unit 1202 is configured to encode the coefficients located above the location of the last significant coefficient in a given scanning order and provide in a bitstream the bit information obtained by encoding, the identification information about the component and the information about the coordinates of the last significant coefficient.
[00602] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения первой идентификационной информации о синтаксическом элементе и определения идентификационной информации о компоненте текущего слайса в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности. Текущая последовательность содержит текущий слайс.[00602] In some embodiments, the first determining unit 1201 is further configured to determine first identification information about a syntax element and determine identification information about a component of a current slice in response to the first identification information about a syntax element indicating that reversal of the last significant coefficient is permitted for the current sequence. The current sequence comprises the current slice.
[00603] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения второй идентификационной информации о синтаксическом элементе, определения третьей идентификационной информации о синтаксическом элементе в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности, и определения первой идентификационной информации о синтаксическом элементе в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.[00603] In some embodiments, the first determining unit 1201 is further configured to determine a second identification information about a syntax element, determine a third identification information about a syntax element in response to the second identification information about a syntax element indicating that a version of an extension of the standard is applied to the current sequence, and determine a first identification information about a syntax element in response to a third identification information about a syntax element indicating that a range extension is applied to the current sequence.
[00604] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения второй идентификационной информации о синтаксическом элементе как первого значения в ответ на применение версии расширения стандарта к текущей последовательности; или определения значения второй идентификационной информации о синтаксическом элементе как второго значения в ответ на отсутствие применения версии расширения стандарта к текущей последовательности.[00604] In some embodiments, the first determining unit 1201 is further configured to determine the value of the second identification information about the syntax element as a first value in response to applying the extension version of the standard to the current sequence; or to determine the value of the second identification information about the syntax element as a second value in response to not applying the extension version of the standard to the current sequence.
[00605] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления второй идентификационной информации о синтаксическом элементе в битовый поток.[00605] In some embodiments, encoding unit 1202 is further configured to provide second identification information about the syntax element in the bitstream.
[00606] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения третьей идентификационной информации о синтаксическом элементе как первого значения в ответ на применение расширения диапазона к текущей последовательности; или определения значения третьей идентификационной информации о синтаксическом элементе как второго значения в ответ на отсутствие применения расширения диапазона к текущей последовательности.[00606] In some embodiments, the first determining unit 1201 is further configured to determine the value of the third identification information about the syntax element as a first value in response to applying a range extension to the current sequence; or to determine the value of the third identification information about the syntax element as a second value in response to not applying a range extension to the current sequence.
[00607] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления третьей идентификационной информации о синтаксическом элементе в битовый поток.[00607] In some embodiments, encoding unit 1202 is further configured to provide third identification information about the syntax element in the bitstream.
[00608] В некоторых вариантах осуществления применение расширения диапазона к текущей последовательности включает следующее: текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.[00608] In some embodiments, applying range extension to a current sequence includes the following: the current sequence has at least one of the following: high bit depth, high quality, high bit rate, high frame rate, or lossless compression.
[00609] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения первой идентификационной информации о синтаксическом элементе как первого значения в ответ на разрешение изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности; или определения значения первой идентификационной информации о синтаксическом элементе как второго значения в ответ на запрещение изменения местоположения на обратное последнего значимого коэффициента для текущей последовательности.[00609] In some embodiments, the first determining unit 1201 is further configured to determine the value of the first identification information about the syntax element as a first value in response to allowing a reversal of the last significant coefficient for the current sequence; or to determine the value of the first identification information about the syntax element as a second value in response to prohibiting a reversal of the last significant coefficient for the current sequence.
[00610] В некоторых вариантах осуществления узел 1202 кодирования дополнительно выполнен с возможностью предоставления первой идентификационной информации о синтаксическом элементе в битовый поток.[00610] In some embodiments, encoding unit 1202 is further configured to provide first identification information about the syntax element in the bitstream.
[00611] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о компоненте как первого значения в ответ на применение изменения местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса; или определения значения идентификационной информации о компоненте как второго значения в ответ на отсутствие применения изменения местоположения на обратное последнего значимого коэффициента к компоненту текущего слайса.[00611] In some embodiments, the first determining unit 1201 is further configured to determine a value of the identification information about the component as a first value in response to applying a reversal of the last significant coefficient to the component of the current slice; or to determine a value of the identification information about the component as a second value in response to not applying a reversal of the last significant coefficient to the component of the current slice.
[00612] В некоторых вариантах осуществления компонент содержит по меньшей мере один из первого компонента цвета, второго компонента цвета или третьего компонента цвета.[00612] In some embodiments, the component comprises at least one of a first color component, a second color component, or a third color component.
[00613] Первый компонент цвета представляет собой компонент яркости, второй компонент цвета представляет собой первый компонент цветности, и третий компонент цвета представляет собой второй компонент цветности.[00613] The first color component is a luminance component, the second color component is a first chroma component, and the third color component is a second chroma component.
[00614] Альтернативно первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент.[00614] Alternatively, the first color component is a red component, the second color component is a green component, and the third color component is a blue component.
[00615] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, определения количества частей идентификационной информации о компоненте текущего слайса равным 1 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 2 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется двумя компонентами цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 3 в ответ на то, что каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.[00615] In some embodiments, the first determining unit 1201 is further configured to, when the component comprises a first color component, a second color component and a third color component, determine the number of parts of the identification information about the component of the current slice to be 1 in response to the fact that one part of the identification information about the component is shared by the first color component, the second color component and the third color component of the current slice; or determine the number of parts of the identification information about the component of the current slice to be 2 in response to the fact that one part of the identification information about the component is shared by two color components of the first color component, the second color component and the third color component of the current slice; or determine the number of parts of the identification information about the component of the current slice to be 3 in response to the fact that each of the first color component, the second color component and the third color component of the current slice has a separate part of the identification information about the component.
[00616] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения первой идентификационной информации о компоненте текущего слайса.[00616] In some embodiments, the first determining node 1201 is further configured to determine first identification information about a component of the current slice.
[00617] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения первой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00617] Accordingly, the first determining unit 1201 is further configured to determine a value of the first identification information about the component as a first value in response to the fact that a reversal of the location of the last significant coefficient is applied to each of the first color component, the second color component and the third color component of the current slice.
[00618] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса.[00618] In some embodiments, the first determining node 1201 is further configured to determine the second identification information about the component and the third identification information about the component of the current slice.
[00619] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения второй идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; и определения значения третьей идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета, отличному от двух компонентов цвета, из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса.[00619] Accordingly, the first determining unit 1201 is further configured to determine a value of the second component identification information as a first value in response to the fact that a reversal of the last significant coefficient is applied to each of the two color components of the first color component, the second color component, and the third color component of the current slice; and to determine a value of the third component identification information as a first value in response to the fact that a reversal of the last significant coefficient is applied to another color component other than the two color components of the first color component, the second color component, and the third color component of the current slice.
[00620] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса.[00620] In some embodiments, the first determining unit 1201 is further configured to determine a fourth component identification information, a fifth component identification information, and a sixth component identification information of the current slice.
[00621] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения значения четвертой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса; определения значения пятой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса; и определения значения шестой идентификационной информации о компоненте как первого значения в ответ на то, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса.[00621] Accordingly, the first determining unit 1201 is further configured to determine a value of the fourth component identification information as a first value in response to the fact that the reversal of the last significant coefficient is applied to the first color component of the current slice; determine a value of the fifth component identification information as a first value in response to the fact that the reversal of the last significant coefficient is applied to the second color component of the current slice; and determine a value of the sixth component identification information as a first value in response to the fact that the reversal of the last significant coefficient is applied to the third color component of the current slice.
[00622] В некоторых вариантах осуществления местоположение последнего значимого коэффициента включает начальную горизонтальную координату и начальную вертикальную координату последнего значимого коэффициента. Начальная горизонтальная координата и начальная вертикальная координата являются расстоянием по горизонтали и расстоянием по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока соответственно.[00622] In some embodiments, the location of the last significant coefficient includes a starting horizontal coordinate and a starting vertical coordinate of the last significant coefficient. The starting horizontal coordinate and the starting vertical coordinate are a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block, respectively.
[00623] Соответственно, первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента путем выполнения вычисления в отношении начальной горизонтальной координаты и начальной вертикальной координаты последнего значимого коэффициента в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения информации о координатах последнего значимого коэффициента непосредственно согласно начальной горизонтальной координате и начальной вертикальной координате последнего значимого коэффициента в ответ на то, что значение идентификационной информации о компоненте является вторым значением.[00623] Accordingly, the first determining unit 1201 is further configured to determine the coordinate information of the last significant coefficient by performing a calculation with respect to the initial horizontal coordinate and the initial vertical coordinate of the last significant coefficient in response to the fact that the value of the component identification information is a first value; or determine the coordinate information of the last significant coefficient directly according to the initial horizontal coordinate and the initial vertical coordinate of the last significant coefficient in response to the fact that the value of the component identification information is a second value.
[00624] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения ширины и высоты текущего блока; получения горизонтальной координаты последнего значимого коэффициента путем вычитания начальной горизонтальной координаты последнего значимого коэффициента из ширины текущего блока; получения вертикальной координаты последнего значимого коэффициента путем вычитания начальной вертикальной координаты последнего значимого коэффициента из высоты текущего блока; и определения информации о координатах последнего значимого коэффициента согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00624] In some embodiments, the first determining unit 1201 is further configured to determine the width and the height of the current block; obtain a horizontal coordinate of the last significant coefficient by subtracting an initial horizontal coordinate of the last significant coefficient from the width of the current block; obtain a vertical coordinate of the last significant coefficient by subtracting an initial vertical coordinate of the last significant coefficient from the height of the current block; and determine information about the coordinates of the last significant coefficient according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[00625] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения информации о координатах последнего значимого коэффициента как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока в ответ на то, что значение идентификационной информации о компоненте является вторым значением.[00625] In some embodiments, the first determining unit 1201 is further configured to determine the coordinate information of the last significant coefficient as a horizontal distance and a vertical distance between the location of the last significant coefficient and the lower right corner of the current block in response to the fact that the value of the component identification information is a first value; or determine the coordinate information of the last significant coefficient as a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block in response to the fact that the value of the component identification information is a second value.
[00626] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента согласно информации о координатах последнего значимого коэффициента.[00626] In some embodiments, the first determining unit 1201 is further configured to determine information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient according to the coordinate information of the last significant coefficient.
[00627] Узел 1202 кодирования дополнительно выполнен с возможностью предоставления информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в битовый поток.[00627] The encoding unit 1202 is further configured to provide information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient to the bitstream.
[00628] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о разрешаемом последнем коэффициенте текущего блока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.[00628] In some embodiments, the first determining unit 1201 is further configured to determine identification information about a resolvable last coefficient of the current block in response to a third identification information about a syntax element indicating that range extension is applied to the current sequence.
[00629] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования в ответ на идентификационную информацию о разрешаемом последнем коэффициенте, указывающую, что местоположение последнего коэффициента применено к текущему блоку, и предоставления битовой информации, полученной посредством кодирования, и идентификационной информации о разрешаемом последнем коэффициенте в битовый поток.[00629] The encoding unit 1202 is further configured to encode coefficients located above the location of the last coefficient in a given scanning order in response to identification information about the resolved last coefficient indicating that the location of the last coefficient is applied to the current block, and to provide bit information obtained by encoding and the identification information about the resolved last coefficient in a bitstream.
[00630] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о разрешаемом последнем коэффициенте как первого значения в ответ на то, что местоположение последнего коэффициента применено к текущему блоку; или определения значения идентификационной информации о разрешаемом последнем коэффициенте как второго значения в ответ на то, что местоположение последнего коэффициента не применено к текущему блоку.[00630] In some embodiments, the first determining unit 1201 is further configured to determine the value of the identification information about the resolved last coefficient as a first value in response to the fact that the location of the last coefficient is applied to the current block; or determine the value of the identification information about the resolved last coefficient as a second value in response to the fact that the location of the last coefficient is not applied to the current block.
[00631] В некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00631] In some embodiments, the location of the last coefficient is the lower right corner of a matrix consisting of all possible non-zero coefficients in the current block. Alternatively, the location of the last coefficient is the last location of all possible non-zero coefficients in a given scan order in the current block.
[00632] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью установки местоположения последнего значимого коэффициента как местоположения последнего коэффициента.[00632] In some embodiments, the first determining unit 1201 is further configured to set the location of the last significant coefficient as the location of the last coefficient.
[00633] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения ширины и высоты блока преобразования, полученных путем выполнения заданной операции в отношении текущего блока; вычисления информации о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования; и определения местоположения последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.[00633] In some embodiments, the first determining unit 1201 is further configured to determine the width and the height of the transformation block obtained by performing a predetermined operation with respect to the current block; calculate information about the coordinates of the lower right corner of the transformation block according to the width and the height of the transformation block; and determine the location of the last coefficient according to the information about the coordinates of the lower right corner of the transformation block.
[00634] В некоторых вариантах осуществления заданная операция включает по меньшей мере операцию нулевого вывода.[00634] In some embodiments, the specified operation includes at least a zero output operation.
[00635] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о координатах нижнего правого угла блока преобразования в ответ на установку местоположения последнего значимого коэффициента как местоположения последнего коэффициента.[00635] In some embodiments, the first determining unit 1201 is further configured to determine the location of the last significant coefficient according to the coordinate information of the lower right corner of the transform block in response to setting the location of the last significant coefficient as the location of the last coefficient.
[00636] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в ответ на то, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку; и определения местоположения последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.[00636] In some embodiments, the first determining unit 1201 is further configured to determine information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient in response to the fact that the identification information about the resolved last coefficient indicates that the location of the last coefficient is not applied to the current block; and determine the location of the last significant coefficient according to the information about the prefix of a horizontal coordinate of the last significant coefficient, the prefix of a vertical coordinate of the last significant coefficient, the suffix of a horizontal coordinate of the last significant coefficient, and the suffix of a vertical coordinate of the last significant coefficient.
[00637] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования и предоставления информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента в битовый поток.[00637] The encoding unit 1202 is further configured to encode the coefficients located above the location of the last significant coefficient in a given scanning order and provide information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient to the bitstream.
[00638] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о кодируемом по умолчанию подблоке для подблока, подлежащего кодированию, в текущем блоке в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.[00638] In some embodiments, the first determining unit 1201 is further configured to determine identification information about a default coded sub-block for a sub-block to be coded in the current block in response to a third identification information about a syntax element indicating that a range extension has been applied to the current sequence.
[00639] Узел 1202 кодирования дополнительно выполнен с возможностью кодирования коэффициентов в подблоке, подлежащем кодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий кодированию, кодирован по умолчанию, и предоставления идентификационной информации о кодируемом по умолчанию подблоке и битовой информации, полученной посредством кодирования, в битовый поток.[00639] The encoding unit 1202 is further configured to encode coefficients in a sub-block to be encoded in response to identification information about a default-encoded sub-block indicating that the sub-block to be encoded is default-encoded, and to provide the identification information about the default-encoded sub-block and bit information obtained by encoding to a bitstream.
[00640] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения идентификационной информации о кодируемом подблоке для подблока, подлежащего кодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий кодированию, не кодирован по умолчанию.[00640] In some embodiments, the first determining unit 1201 is further configured to determine identification information about a coded sub-block for a sub-block to be coded in response to identification information about a default coded sub-block indicating that the sub-block to be coded is not coded by default.
[00641] Узел 1202 кодирования дополнительно выполнен с возможностью предоставления идентификационной информации о кодируемом подблоке в битовый поток.[00641] The encoding unit 1202 is further configured to provide identification information about the sub-block being encoded into the bitstream.
[00642] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о кодируемом по умолчанию подблоке как первого значения в ответ на то, что подблок, подлежащий кодированию, кодирован по умолчанию, или определения значения идентификационной информации о кодируемом по умолчанию подблоке как второго значения в ответ на то, что подблок, подлежащий кодированию, не кодирован по умолчанию.[00642] In some embodiments, the first determining unit 1201 is further configured to determine a value of the identification information about the default-coded sub-block as a first value in response to the fact that the sub-block to be coded is coded by default, or to determine a value of the identification information about the default-coded sub-block as a second value in response to the fact that the sub-block to be coded is not coded by default.
[00643] В некоторых вариантах осуществления первый узел 1201 определения дополнительно выполнен с возможностью определения значения идентификационной информации о кодируемом подблоке как первого значения в ответ на то, что подблок, подлежащий кодированию, должен быть кодирован, или определения значения идентификационной информации о кодируемом подблоке как второго значения в ответ на то, что все коэффициенты в подблоке, подлежащем кодированию, равны нулю.[00643] In some embodiments, the first determining unit 1201 is further configured to determine the value of the identification information about the sub-block to be coded as a first value in response to the fact that the sub-block to be coded is to be coded, or to determine the value of the identification information about the sub-block to be coded as a second value in response to the fact that all coefficients in the sub-block to be coded are equal to zero.
[00644] В некоторых вариантах осуществления первое значение равно 1, а второе значение равно 0.[00644] In some embodiments, the first value is 1 and the second value is 0.
[00645] Понятно, что в вариантах осуществления настоящего изобретения «узел» может быть частью схемы, частью процессора, частью программы или программного обеспечения и/или т.п. Конечно, «узел» может быть модулем или может быть немодульным. Кроме того, компоненты в вариантах осуществления могут быть интегрированы в одну обрабатывающую часть или существовать как отдельные физические узлы соответственно. Альтернативно два или более узлов могут быть интегрированы в один узел. Интегрированный узел может быть реализован в форме аппаратного или программного функционального узла (аппаратных или программных функциональных узлов).[00645] It is understood that in embodiments of the present invention, a "node" may be a part of a circuit, a part of a processor, a part of a program or software, and/or the like. Of course, a "node" may be a module or may be non-modular. Furthermore, components in embodiments may be integrated into a single processing part or exist as separate physical nodes, respectively. Alternatively, two or more nodes may be integrated into a single node. The integrated node may be implemented in the form of a hardware or software functional node(s).
[00646] При реализации в форме программного функционального модуля и продаже или использовании в качестве самостоятельного продукта интегрированный модуль в данном случае также может храниться на машиночитаемом носителе данных. Основываясь на таком понимании, существенная часть или часть, способствующая известному уровню техники, технического решения варианта осуществления настоящего изобретения, или все техническое решение или его часть могут быть в форме программного продукта, причем этот программный продукт хранится на носителе данных и содержит ряд инструкций, позволяющих компьютерному устройству (такому как персональный компьютер, сервер, сетевое устройство и/или т.п.) или процессору исполнять весь способ или его часть в вариантах осуществления настоящего изобретения. Носители данных содержат различные носители, способные хранить программные коды, такие как U-диск, мобильный жесткий диск, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), магнитный диск, CD и/или т.п.[00646] When implemented in the form of a software functional module and sold or used as a stand-alone product, the integrated module in this case can also be stored on a machine-readable storage medium. Based on this understanding, an essential part or a part contributing to the prior art of the technical solution of the embodiment of the present invention, or the entire technical solution or a part thereof can be in the form of a software product, wherein this software product is stored on a storage medium and contains a number of instructions allowing a computer device (such as a personal computer, a server, a network device and/or the like) or a processor to execute the entire method or a part thereof in the embodiments of the present invention. Storage media include various media capable of storing program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, a CD and/or the like.
[00647] Следовательно, в вариантах осуществления настоящего изобретения предоставлен компьютерный носитель данных, реализованный в кодере 120. Компьютерный носитель данных хранит в себе компьютерную программу, которая при исполнении первым процессором реализует способ согласно любому вышеописанному варианту осуществления.[00647] Accordingly, in embodiments of the present invention, a computer storage medium is provided, implemented in the encoder 120. The computer storage medium stores therein a computer program, which, when executed by the first processor, implements the method according to any of the above-described embodiments.
[00648] На основании состава кодера 120 и компьютерного носителя данных на фиг. 13 представлена схема аппаратной структуры кодера 120 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 13, кодер может содержать первый интерфейс 1301 связи, первое запоминающее устройство 1302 и первый процессор 1303. Различные компоненты могут быть взаимосвязаны посредством первого оборудования 1304 в виде шин. Понятно, что первое оборудование 1304 в виде шин выполнено с возможностью реализации соединения и связи между этими компонентами. В дополнение к шине данных, первое оборудование 1304 в виде шин может дополнительно содержать шину питания, шину управления и шину сигнала статуса. Однако для ясности описания различные шины обозначены как первое оборудование 1304 в виде шин на фиг. 13.[00648] Based on the composition of the encoder 120 and the computer storage medium, Fig. 13 shows a diagram of the hardware structure of the encoder 120 according to embodiments of the present invention. As shown in Fig. 13, the encoder may include a first communication interface 1301, a first memory 1302 and a first processor 1303. Various components may be interconnected via a first equipment 1304 in the form of buses. It is understood that the first equipment 1304 in the form of buses is configured to implement a connection and communication between these components. In addition to the data bus, the first equipment 1304 in the form of buses may further include a power bus, a control bus and a status signal bus. However, for clarity of description, various buses are designated as the first equipment 1304 in the form of buses in Fig. 13.
[00649] Первый интерфейс 1301 связи может быть выполнен с возможностью выполнения отправки и приема сигнала при выполнении отправки и приема информации с помощью другого внешнего сетевого элемента.[00649] The first communication interface 1301 may be configured to perform sending and receiving a signal when performing sending and receiving information using another external network element.
[00650] Первое запоминающее устройство 1302 выполнено с возможностью хранения в нем компьютерной программы, исполняемой первым процессором 1303.[00650] The first memory device 1302 is configured to store therein a computer program executed by the first processor 1303.
[00651] Первый процессор 1303 выполнен с возможностью исполнения компьютерной программы для выполнения следующих операций.[00651] The first processor 1303 is configured to execute a computer program for performing the following operations.
[00652] Определяют идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[00652] Determine identification information about a component of the current slice and the location of the last significant coefficient of the current block corresponding to the component of the current slice.
[00653] Определяют информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента.[00653] Determine coordinate information of the last significant coefficient of the current block according to identification information of the component and the location of the last significant coefficient.
[00654] Кодируют коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования; и предоставляют в битовый поток битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента.[00654] Coefficients located above the location of the last significant coefficient are encoded in a given scanning order; and bit information obtained by encoding, identification information about the component, and information about the coordinates of the last significant coefficient are provided to the bit stream.
[00655] Понятно, что первое запоминающее устройство 1302 согласно вариантам осуществления настоящего изобретения может быть энергозависимым и/или энергонезависимым запоминающим устройством. Энергонезависимое запоминающее устройство может представлять собой постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) или флеш-память. Энергозависимое запоминающее устройство может представлять собой оперативное запоминающее устройство (RAM), которое выполняет функцию внешнего кэша. В качестве иллюстративного, а не ограничивающего описания могут быть доступны множество форм RAM, таких как статическое оперативное запоминающее устройство (SRAM), динамическое оперативное запоминающее устройство (DRAM), синхронное динамическое оперативное запоминающее устройство (SDRAM), синхронное динамическое оперативное запоминающее устройство с двукратной скоростью передачи данных (DDRSDRAM), улучшенное синхронное динамическое оперативное запоминающее устройство (ESDRAM), динамическое оперативное запоминающее устройства с синхронным каналом (DRAM с синхронным каналом, SLDRAM), оперативное запоминающее устройство с шиной прямого резидентного доступа (DRRAM) и т.п. Первое запоминающее устройство 1302, используемое в системах и способах согласно настоящему изобретению, предназначено для включения, но без ограничения, этих и любых других подходящих типов запоминающего устройства.[00655] It is understood that the first memory device 1302 according to embodiments of the present invention may be a volatile and/or non-volatile memory device. The non-volatile memory device may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory device may be a random access memory (RAM), which performs the function of an external cache. By way of illustration and not limitation, a variety of RAM forms may be available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous channel dynamic random access memory (synchronous channel DRAM, SLDRAM), direct resident random access memory (DRRAM), and the like. The first memory 1302 used in the systems and methods of the present invention is intended to include, but is not limited to, these and any other suitable types of memory.
[00656] Первый процессор 1303 может представлять собой кристалл c интегральными схемами, способный обрабатывать сигнал. В реализации операции варианта осуществления способа в данном документе могут выполняться посредством интегральной логической схемы аппаратного обеспечения в первом процессоре 1303 или инструкций в форме программного обеспечения. Первый процессор 1303 может представлять собой процессор общего назначения, процессор цифровой обработки сигналов (DSP), интегральную схему специального применения (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другое программируемое логическое устройство, дискретный логический элемент, или транзисторное логическое устройство, дискретный аппаратный компонент и т.п. Первый процессор может реализовывать или исполнять различные способы, операции и логические блок-схемы согласно вариантам осуществления настоящего изобретения. Процессор общего назначения может представлять собой микропроцессор или любой традиционный процессор. Операции способа, описанного в вариантах осуществления настоящего изобретения, могут быть непосредственно воплощены как выполняемые кодирующим процессором аппаратного обеспечения или комбинацией аппаратных и программных модулей в кодирующем процессоре. Программный модуль может быть расположен в устоявшемся в уровне техники носителе данных, таком как оперативное запоминающее устройство (RAM), флеш-память, постоянное запоминающее устройство (ROM), программируемое постоянное запоминающее устройство (PROM), электрически перезаписываемое программируемое запоминающее устройство, регистр и т.п. Носитель данных может быть расположен в первом запоминающем устройстве 1302. Первый процессор 1303 может считывать информацию в первом запоминающем устройстве 1302 и выполнять операцию способа в данном случае посредством аппаратного обеспечения процессора.[00656] The first processor 1303 may be an integrated circuit chip capable of processing a signal. In an implementation, the operations of an embodiment of the method herein may be performed by an integrated logic circuit of hardware in the first processor 1303 or instructions in the form of software. The first processor 1303 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a discrete logic element, or a transistor logic device, a discrete hardware component, and the like. The first processor may implement or execute various methods, operations, and logical flow charts according to embodiments of the present invention. The general-purpose processor may be a microprocessor or any conventional processor. The operations of the method described in the embodiments of the present invention may be directly implemented as performed by a hardware encoding processor or a combination of hardware and software modules in a encoding processor. The software module may be located in a data carrier established in the prior art, such as a random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), electrically rewritable programmable memory, a register, etc. The data carrier may be located in the first memory 1302. The first processor 1303 may read information in the first memory 1302 and perform the method operation in this case by means of the processor hardware.
[00657] Понятно, что варианты осуществления согласно настоящему изобретению могут быть реализованы посредством аппаратного обеспечения, программного обеспечения, программно-аппаратного обеспечения, межплатформенного программного обеспечения, микрокода или комбинации перечисленных элементов. Для аппаратной реализации обрабатывающий узел может быть реализован в одной или более интегральных схемах специального применения (ASIC), DSP, устройствах цифровой обработки сигналов (DSPD), программируемых логических устройствах (PLD), программируемых пользователем вентильных матрицах (FPGA), процессорах общего назначения, контроллерах, узлах микроконтроллеров (MCU), микропроцессорах и других электронных узлах для реализации функции настоящего изобретения или их комбинациях. Для аппаратной реализации технология согласно настоящему изобретению может быть реализована посредством модуля, такого как процесс, функция и т.д., который реализует функцию настоящего изобретения. Программный код может храниться в запоминающем устройстве и исполняться процессором. Запоминающее устройство может быть реализовано внутри или снаружи процессора.[00657] It is understood that embodiments according to the present invention can be implemented by means of hardware, software, firmware, middleware, microcode, or a combination of the listed elements. For a hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontroller units (MCUs), microprocessors, and other electronic units for implementing the function of the present invention, or combinations thereof. For a hardware implementation, the technology according to the present invention can be implemented by means of a module, such as a process, a function, etc., that implements the function of the present invention. The software code can be stored in a memory and executed by the processor. The memory can be implemented inside or outside the processor.
[00658] Альтернативно в качестве другого варианта осуществления первый процессор 1303 дополнительно может быть выполнен с возможностью исполнения способа согласно вышеописанному варианту осуществления при исполнении компьютерной программы.[00658] Alternatively, as another embodiment, the first processor 1303 may further be configured to execute the method according to the above-described embodiment when executing a computer program.
[00659] В варианте осуществления предоставлен кодер. Кодер может содержать первый узел определения и узел кодирования. Соответственно, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00659] In an embodiment, an encoder is provided. The encoder may comprise a first determining unit and an encoding unit. Accordingly, in a scenario of encoding and decoding a video with a high bit depth, a high bit rate, a high quality, or a lossless video, a reasonable mode of acquiring the last significant coefficient is set according to a distribution law of the significant coefficients, thereby reducing the resource consumption caused by encoding in a bit stream and improving the compression efficiency. In addition, since the corresponding color components may be different in the distribution of the significant coefficients, it is possible to accurately control the corresponding mode of acquiring the last significant coefficient for each color component, i.e., by separately controlling whether to apply the reversal technology of the last significant coefficient to each color component, thereby further improving the compression efficiency.
[00660] В еще одном варианте осуществления настоящего изобретения на основе тех же концепций настоящего изобретения, что и в предыдущих вариантах осуществления, на фиг. 14 представлена схема структуры декодера 140 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 14, декодер 140 может содержать узел 1401 анализа и второй узел 1402 определения.[00660] In another embodiment of the present invention, based on the same concepts of the present invention as in the previous embodiments, Fig. 14 shows a diagram of the structure of a decoder 140 according to embodiments of the present invention. As shown in Fig. 14, the decoder 140 may include an analysis unit 1401 and a second determination unit 1402.
[00661] Узел 1401 анализа выполнен с возможностью определения путем анализа битового потока идентификационной информации о компоненте текущего слайса и информации о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса.[00661] The analysis unit 1401 is configured to determine, by analyzing the bit stream, identification information about a component of the current slice and information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice.
[00662] Второй узел 1402 определения выполнен с возможностью получения местоположения последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.[00662] The second determining unit 1402 is configured to obtain a location of the last significant coefficient of the current block by performing a calculation with respect to information about the coordinates of the last significant coefficient in response to identification information about the component indicating that a change in the location to the inverse of the last significant coefficient is applied to the component of the current slice.
[00663] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00663] The analysis unit 1401 is further configured to determine the coefficients of the current block by decoding the coefficients located above the location of the last significant coefficient, in a given scanning order.
[00664] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения первой идентификационной информации о синтаксическом элементе путем анализа битового потока.[00664] In some embodiments, the analysis unit 1401 is further configured to determine the first identification information about the syntax element by analyzing the bitstream.
[00665] Второй узел 1402 определения дополнительно выполнен с возможностью определения идентификационной информации о компоненте текущего слайса путем анализа битового потока в ответ на первую идентификационную информацию о синтаксическом элементе, указывающую, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности. Текущая последовательность может включать текущий слайс.[00665] The second determining unit 1402 is further configured to determine identification information about a component of the current slice by analyzing a bitstream in response to the first identification information about a syntax element indicating that reversal of the last significant coefficient is permitted for the current sequence. The current sequence may include the current slice.
[00666] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения второй идентификационной информации о синтаксическом элементе путем анализа битового потока; определения третьей идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на вторую идентификационную информацию о синтаксическом элементе, указывающую, что версия расширения стандарта применена к текущей последовательности; и определения первой идентификационной информации о синтаксическом элементе путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности.[00666] In some embodiments, the analysis unit 1401 is further configured to determine a second identification information about a syntax element by analyzing a bitstream; determine a third identification information about a syntax element by analyzing a bitstream in response to the second identification information about a syntax element indicating that a version of an extension of the standard is applied to the current sequence; and determine a first identification information about a syntax element by analyzing a bitstream in response to a third identification information about a syntax element indicating that a range extension is applied to the current sequence.
[00667] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта применена к текущей последовательности, в ответ на то, что значение второй идентификационной информации о синтаксическом элементе является первым значением; или определения того, что вторая идентификационная информация о синтаксическом элементе указывает, что версия расширения стандарта не применена к текущей последовательности, в ответ на то, что значение второй идентификационной информации о синтаксическом элементе является вторым значением.[00667] In some embodiments, the second determination unit 1402 is further configured to determine that the second identification information about the syntax element indicates that the version of the extension of the standard is applied to the current sequence, in response to the fact that the value of the second identification information about the syntax element is a first value; or determine that the second identification information about the syntax element indicates that the version of the extension of the standard is not applied to the current sequence, in response to the fact that the value of the second identification information about the syntax element is a second value.
[00668] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона применено к текущей последовательности, в ответ на то, что значение третьей идентификационной информации о синтаксическом элементе является первым значением; или определения того, что третья идентификационная информация о синтаксическом элементе указывает, что расширение диапазона не применено к текущей последовательности, в ответ на то, что значение третьей идентификационной информации о синтаксическом элементе является вторым значением.[00668] In some embodiments, the second determining unit 1402 is further configured to determine that the third identification information about the syntax element indicates that the range extension is applied to the current sequence in response to the fact that the value of the third identification information about the syntax element is a first value; or determine that the third identification information about the syntax element indicates that the range extension is not applied to the current sequence in response to the fact that the value of the third identification information about the syntax element is a second value.
[00669] В некоторых вариантах осуществления применение расширения диапазона к текущей последовательности может включать следующее: текущая последовательность имеет по меньшей мере одно из следующего: высокую битовую глубину, высокое качество, высокую битовую скорость, высокую кадровую частоту или сжатие без потерь.[00669] In some embodiments, applying range extension to a current sequence may include the following: the current sequence has at least one of the following: high bit depth, high quality, high bit rate, high frame rate, or lossless compression.
[00670] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента разрешено для текущей последовательности, в ответ на то, что значение первой идентификационной информации о синтаксическом элементе является первым значением; или определения того, что первая идентификационная информация о синтаксическом элементе указывает, что изменение местоположения на обратное последнего значимого коэффициента запрещено для текущей последовательности, в ответ на то, что значение первой идентификационной информации о синтаксическом элементе является вторым значением.[00670] In some embodiments, the second determining unit 1402 is further configured to determine that the first identification information about the syntax element indicates that reversal of the last significant coefficient is permitted for the current sequence, in response to the fact that the value of the first identification information about the syntax element is a first value; or determine that the first identification information about the syntax element indicates that reversal of the last significant coefficient is prohibited for the current sequence, in response to the fact that the value of the first identification information about the syntax element is a second value.
[00671] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, в ответ на то, что значение идентификационной информации о компоненте является первым значением; или определения того, что идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса, в ответ на то, что значение идентификационной информации о компоненте является вторым значением.[00671] In some embodiments, the second determining unit 1402 is further configured to determine that the identification information about the component indicates that a reversal of the last significant coefficient is applied to the component of the current slice, in response to the fact that the value of the identification information about the component is a first value; or determine that the identification information about the component indicates that a reversal of the last significant coefficient is not applied to the component of the current slice, in response to the fact that the value of the identification information about the component is a second value.
[00672] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента текущего блока непосредственно согласно информации о координатах последнего значимого коэффициента в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса.[00672] In some embodiments, the second determining unit 1402 is further configured to determine the location of the last significant coefficient of the current block directly according to the information about the coordinates of the last significant coefficient in response to the identification information about the component indicating that a change in the location to the inverse of the last significant coefficient is not applied to the component of the current slice.
[00673] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00673] The analysis unit 1401 is further configured to determine the coefficients of the current block by decoding the coefficients located above the location of the last significant coefficient, in a given scanning order.
[00674] В некоторых вариантах осуществления компонент содержит по меньшей мере один из первого компонента цвета, второго компонента цвета или третьего компонента цвета.[00674] In some embodiments, the component comprises at least one of a first color component, a second color component, or a third color component.
[00675] Первый компонент цвета представляет собой компонент яркости, второй компонент цвета представляет собой первый компонент цветности, и третий компонент цвета представляет собой второй компонент цветности.[00675] The first color component is a luminance component, the second color component is a first chroma component, and the third color component is a second chroma component.
[00676] Альтернативно первый компонент цвета представляет собой красный компонент, второй компонент цвета представляет собой зеленый компонент, и третий компонент цвета представляет собой синий компонент.[00676] Alternatively, the first color component is a red component, the second color component is a green component, and the third color component is a blue component.
[00677] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью, когда компонент содержит первый компонент цвета, второй компонент цвета и третий компонент цвета, определения количества частей идентификационной информации о компоненте текущего слайса равным 1 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется первым компонентом цвета, вторым компонентом цвета и третьим компонентом цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 2 в ответ на то, что одна часть идентификационной информации о компоненте совместно используется двумя компонентами цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса; или определения количества частей идентификационной информации о компоненте текущего слайса равным 3 в ответ на то, что каждый из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса имеет отдельную часть идентификационной информации о компоненте.[00677] In some embodiments, the second determining unit 1402 is further configured to, when the component comprises a first color component, a second color component and a third color component, determine the number of parts of the identification information about the component of the current slice to be 1 in response to the fact that one part of the identification information about the component is shared by the first color component, the second color component and the third color component of the current slice; or determine the number of parts of the identification information about the component of the current slice to be 2 in response to the fact that one part of the identification information about the component is shared by two color components of the first color component, the second color component and the third color component of the current slice; or determine the number of parts of the identification information about the component of the current slice to be 3 in response to the fact that each of the first color component, the second color component and the third color component of the current slice has a separate part of the identification information about the component.
[00678] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения первой идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00678] In some embodiments, the analysis unit 1401 is further configured to determine first identification information about a component of the current slice by analyzing the bitstream.
[00679] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение первой идентификационной информации о компоненте является первым значением.[00679] Accordingly, the second determining unit 1402 is further configured to determine that the reversal of the location of the last significant coefficient is applied to each of the first color component, the second color component, and the third color component of the current slice, in response to the fact that the value of the first identification information about the component is the first value.
[00680] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения второй идентификационной информации о компоненте и третьей идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00680] In some embodiments, the analysis unit 1401 is further configured to determine the second component identification information and the third component identification information of the current slice by analyzing the bitstream.
[00681] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к каждому из двух компонентов цвета из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение второй идентификационной информации о компоненте является первым значением; и определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к другому компоненту цвета, отличному от двух компонентов цвета, из первого компонента цвета, второго компонента цвета и третьего компонента цвета текущего слайса, в ответ на то, что значение третьей идентификационной информации о компоненте является первым значением.[00681] Accordingly, the second determining unit 1402 is further configured to determine that the reversal of the location of the last significant coefficient is applied to each of the two color components of the first color component, the second color component, and the third color component of the current slice, in response to the fact that the value of the second identification information about the component is the first value; and to determine that the reversal of the location of the last significant coefficient is applied to another color component, different from the two color components, of the first color component, the second color component, and the third color component of the current slice, in response to the fact that the value of the third identification information about the component is the first value.
[00682] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения четвертой идентификационной информации о компоненте, пятой идентификационной информации о компоненте и шестой идентификационной информации о компоненте текущего слайса путем анализа битового потока.[00682] In some embodiments, the analysis unit 1401 is further configured to determine a fourth component identification information, a fifth component identification information, and a sixth component identification information of the current slice by analyzing the bitstream.
[00686] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к первому компоненту цвета текущего слайса, в ответ на то, что значение четвертой идентификационной информации о компоненте является первым значением; определения того, что изменение местоположения на обратное последнего значимого коэффициента применено ко второму компоненту цвета текущего слайса, в ответ на то, что значение пятой идентификационной информации о компоненте является первым значением; и определения того, что изменение местоположения на обратное последнего значимого коэффициента применено к третьему компоненту цвета текущего слайса, в ответ на то, что значение шестой идентификационной информации о компоненте является первым значением.[00686] Accordingly, the second determining unit 1402 is further configured to determine that the reversal of the last significant coefficient is applied to the first color component of the current slice, in response to the fact that the value of the fourth component identification information is the first value; determine that the reversal of the last significant coefficient is applied to the second color component of the current slice, in response to the fact that the value of the fifth component identification information is the first value; and determine that the reversal of the last significant coefficient is applied to the third color component of the current slice, in response to the fact that the value of the sixth component identification information is the first value.
[00684] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью получения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента путем анализа битового потока.[00684] In some embodiments, the analysis unit 1401 is further configured to obtain information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient by analyzing the bitstream.
[00685] Второй узел 1402 определения дополнительно выполнен с возможностью определения горизонтальной координаты последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе горизонтальной координаты последнего значимого коэффициента; определения вертикальной координаты последнего значимого коэффициента согласно информации о префиксе вертикальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента; и определения информации о координатах последнего значимого коэффициента текущего блока согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00685] The second determining unit 1402 is further configured to determine a horizontal coordinate of the last significant coefficient according to information about a prefix of the horizontal coordinate of the last significant coefficient and information about a suffix of the horizontal coordinate of the last significant coefficient; determine a vertical coordinate of the last significant coefficient according to information about a prefix of the vertical coordinate of the last significant coefficient and information about a suffix of the vertical coordinate of the last significant coefficient; and determine information about the coordinates of the last significant coefficient of the current block according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[00686] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса.[00686] In some embodiments, the second determining unit 1402 is further configured to determine information about the coordinates of the last significant coefficient of the current block as a horizontal distance and a vertical distance between the location of the last significant coefficient and the lower right corner of the current block in response to identification information about the component indicating that a reversal of the location of the last significant coefficient has been applied to the component of the current slice.
[00687] Соответственно, второй узел 1402 определения дополнительно выполнен с возможностью определения ширины и высоты текущего блока; получения горизонтальной координаты последнего значимого коэффициента путем вычитания расстояния по горизонтали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из ширины текущего блока; получения вертикальной координаты последнего значимого коэффициента путем вычитания расстояния по вертикали между местоположением последнего значимого коэффициента и нижним правым углом текущего блока из высоты текущего блока; и определения местоположения последнего значимого коэффициента текущего блока согласно горизонтальной координате последнего значимого коэффициента и вертикальной координате последнего значимого коэффициента.[00687] Accordingly, the second determining unit 1402 is further configured to determine the width and the height of the current block; obtain a horizontal coordinate of the last significant coefficient by subtracting a horizontal distance between the location of the last significant coefficient and the lower right corner of the current block from the width of the current block; obtain a vertical coordinate of the last significant coefficient by subtracting a vertical distance between the location of the last significant coefficient and the lower right corner of the current block from the height of the current block; and determine the location of the last significant coefficient of the current block according to the horizontal coordinate of the last significant coefficient and the vertical coordinate of the last significant coefficient.
[00688] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения информации о координатах последнего значимого коэффициента текущего блока как расстояния по горизонтали и расстояния по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента не применено к компоненту текущего слайса; и определения местоположения последнего значимого коэффициента текущего блока согласно расстоянию по горизонтали и расстоянию по вертикали между местоположением последнего значимого коэффициента и верхним левым углом текущего блока.[00688] In some embodiments, the second determining unit 1402 is further configured to determine information about the coordinates of the last significant coefficient of the current block as a horizontal distance and a vertical distance between the location of the last significant coefficient and the upper left corner of the current block in response to identification information about the component indicating that a change in the location to the inverse of the last significant coefficient is not applied to the component of the current slice; and determine the location of the last significant coefficient of the current block according to the horizontal distance and the vertical distance between the location of the last significant coefficient and the upper left corner of the current block.
[00689] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о разрешаемом последнем коэффициенте текущего блока путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности; и определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего коэффициента, в заданном порядке сканирования в ответ на идентификационную информацию о разрешаемом последнем коэффициенте, указывающую, что местоположение последнего коэффициента применено к текущему блоку.[00689] In some embodiments, the analysis unit 1401 is further configured to determine identification information about the resolved last coefficient of the current block by analyzing the bitstream in response to a third identification information about a syntax element indicating that range extension is applied to the current sequence; and to determine coefficients of the current block by decoding coefficients located above the location of the last coefficient, in a given scan order, in response to identification information about the resolved last coefficient indicating that the location of the last coefficient is applied to the current block.
[00690] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента применено к текущему блоку, в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является первым значением; или определения того, что идентификационная информация о разрешаемом последнем коэффициенте указывает, что местоположение последнего коэффициента не применено к текущему блоку, в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением.[00690] In some embodiments, the second determining unit 1402 is further configured to determine that the identification information about the last coefficient to be resolved indicates that the location of the last coefficient is applied to the current block in response to the fact that the value of the identification information about the last coefficient to be resolved is a first value; or determine that the identification information about the last coefficient to be resolved indicates that the location of the last coefficient is not applied to the current block in response to the fact that the value of the identification information about the last coefficient to be resolved is a second value.
[00691] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью получения информации о префиксе горизонтальной координаты последнего значимого коэффициента текущего блока, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента путем анализа битового потока в ответ на то, что значение идентификационной информации о разрешаемом последнем коэффициенте является вторым значением.[00691] In some embodiments, the analysis unit 1401 is further configured to obtain information about a prefix of a horizontal coordinate of the last significant coefficient of the current block, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient by analyzing the bitstream in response to the fact that the value of the identification information about the resolved last coefficient is the second value.
[00692] Второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о префиксе горизонтальной координаты последнего значимого коэффициента, информации о префиксе вертикальной координаты последнего значимого коэффициента, информации о суффиксе горизонтальной координаты последнего значимого коэффициента и информации о суффиксе вертикальной координаты последнего значимого коэффициента.[00692] The second determining unit 1402 is further configured to determine the location of the last significant coefficient according to information about a prefix of a horizontal coordinate of the last significant coefficient, information about a prefix of a vertical coordinate of the last significant coefficient, information about a suffix of a horizontal coordinate of the last significant coefficient, and information about a suffix of a vertical coordinate of the last significant coefficient.
[00693] Узел 1401 анализа дополнительно выполнен с возможностью определения коэффициентов текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00693] The analysis unit 1401 is further configured to determine the coefficients of the current block by decoding the coefficients located above the location of the last significant coefficient, in a given scanning order.
[00694] В некоторых вариантах осуществления местоположение последнего коэффициента представляет собой нижний правый угол матрицы, состоящей из всех возможных ненулевых коэффициентов в текущем блоке. Альтернативно местоположение последнего коэффициента представляет собой последнее местоположение всех возможных ненулевых коэффициентов в заданном порядке сканирования в текущем блоке.[00694] In some embodiments, the location of the last coefficient is the lower right corner of a matrix consisting of all possible non-zero coefficients in the current block. Alternatively, the location of the last coefficient is the last location of all possible non-zero coefficients in a given scan order in the current block.
[00695] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью установки местоположения последнего значимого коэффициента как местоположения последнего коэффициента.[00695] In some embodiments, the second determining unit 1402 is further configured to set the location of the last significant coefficient as the location of the last coefficient.
[00696] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения ширины и высоты блока преобразования, полученных путем выполнения заданной операции в отношении текущего блока; вычисления информации о координатах нижнего правого угла блока преобразования согласно ширине и высоте блока преобразования; и определения местоположения последнего коэффициента согласно информации о координатах нижнего правого угла блока преобразования.[00696] In some embodiments, the second determining unit 1402 is further configured to determine the width and the height of the transformation block obtained by performing a predetermined operation with respect to the current block; calculate information about the coordinates of the lower right corner of the transformation block according to the width and the height of the transformation block; and determine the location of the last coefficient according to the information about the coordinates of the lower right corner of the transformation block.
[00697] В некоторых вариантах осуществления заданная операция включает по меньшей мере операцию нулевого вывода.[00697] In some embodiments, the specified operation includes at least a zero output operation.
[00698] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения местоположения последнего значимого коэффициента согласно информации о координатах нижнего правого угла блока преобразования в ответ на установку местоположения последнего значимого коэффициента как местоположения последнего коэффициента.[00698] In some embodiments, the second determining unit 1402 is further configured to determine the location of the last significant coefficient according to the information about the coordinates of the lower right corner of the transform block in response to setting the location of the last significant coefficient as the location of the last coefficient.
[00699] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о кодируемом по умолчанию подблоке текущего блока путем анализа битового потока в ответ на третью идентификационную информацию о синтаксическом элементе, указывающую, что расширение диапазона применено к текущей последовательности; и декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию.[00699] In some embodiments, the analysis unit 1401 is further configured to determine identification information about a default-coded sub-block of the current block by analyzing a bitstream in response to a third identification information about a syntax element indicating that range extension is applied to the current sequence; and decoding coefficients in a sub-block to be decoded in response to the identification information about the default-coded sub-block indicating that the sub-block to be decoded in the current block is default-coded.
[00700] В некоторых вариантах осуществления узел 1401 анализа дополнительно выполнен с возможностью определения идентификационной информации о кодируемом подблоке для подблока, подлежащего декодированию, путем анализа битового потока в ответ на идентификационную информацию о кодируемом по умолчанию подблоке, указывающую, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию; и декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на то, что значение идентификационной информации о кодируемом подблоке является первым значением.[00700] In some embodiments, the analysis unit 1401 is further configured to determine identification information about a coded sub-block for a sub-block to be decoded by analyzing a bitstream in response to identification information about a default coded sub-block indicating that the sub-block to be decoded in the current block is not coded by default; and decoding coefficients in the sub-block to be decoded in response to the fact that the value of the identification information about the coded sub-block is a first value.
[00701] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения того, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке кодирован по умолчанию, в ответ на то, что значение идентификационной информации о кодируемом по умолчанию подблоке является первым значением; или определения того, что идентификационная информация о кодируемом по умолчанию подблоке указывает, что подблок, подлежащий декодированию, в текущем блоке не кодирован по умолчанию, в ответ на то, что значение идентификационной информации о кодируемом по умолчанию подблоке является вторым значением.[00701] In some embodiments, the second determining unit 1402 is further configured to determine that the identification information about the default-coded sub-block indicates that the sub-block to be decoded in the current block is coded by default, in response to the fact that the value of the identification information about the default-coded sub-block is a first value; or determine that the identification information about the default-coded sub-block indicates that the sub-block to be decoded in the current block is not coded by default, in response to the fact that the value of the identification information about the default-coded sub-block is a second value.
[00702] В некоторых вариантах осуществления второй узел 1402 определения дополнительно выполнен с возможностью определения необходимости декодирования коэффициентов в подблоке, подлежащем декодированию, в ответ на то, что значение идентификационной информации о кодируемом подблоке является первым значением; или определения коэффициентов в подблоке, подлежащем декодированию, как нулевых в ответ на то, что значение идентификационной информации о кодируемом подблоке является вторым значением.[00702] In some embodiments, the second determining unit 1402 is further configured to determine whether to decode coefficients in a sub-block to be decoded in response to the fact that the value of the identification information about the sub-block to be coded is a first value; or to determine the coefficients in the sub-block to be decoded as zero in response to the fact that the value of the identification information about the sub-block to be coded is a second value.
[00703] В некоторых вариантах осуществления первое значение равно 1, а второе значение равно 0.[00703] In some embodiments, the first value is 1 and the second value is 0.
[00704] Понятно, что в варианте осуществления «узел» может быть частью схемы, частью процессора, частью программы или программного обеспечения и/или т.п. Конечно, «узел» может быть модулем или может быть немодульным. Кроме того, компоненты в вариантах осуществления могут быть интегрированы в одну обрабатывающую часть или существовать как отдельные физические узлы соответственно. Альтернативно два или более узлов могут быть интегрированы в один узел. Интегрированный узел может быть реализован в форме аппаратного или программного функционального узла (аппаратных или программных функциональных узлов).[00704] It is understood that in an embodiment, a "node" may be a part of a circuit, a part of a processor, a part of a program or software, and/or the like. Of course, a "node" may be a module or may be non-modular. Furthermore, the components in the embodiments may be integrated into one processing part or exist as separate physical nodes, respectively. Alternatively, two or more nodes may be integrated into one node. The integrated node may be implemented in the form of a hardware or software functional node(s).
[00705] При реализации в форме программного функционального модуля и продаже или использовании в качестве самостоятельного продукта интегрированный модуль в данном случае также может храниться на машиночитаемом носителе данных. Основываясь на таком понимании, вариант осуществления предоставляет компьютерный носитель данных, реализованный в декодере 140. Компьютерный носитель данных хранит в себе компьютерную программу, которая при исполнении вторым процессором реализует способ согласно любому вышеописанному варианту осуществления.[00705] When implemented in the form of a software functional module and sold or used as a stand-alone product, the integrated module in this case can also be stored on a computer-readable storage medium. Based on this understanding, the embodiment provides a computer storage medium implemented in the decoder 140. The computer storage medium stores a computer program that, when executed by the second processor, implements the method according to any of the above-described embodiments.
[00706] На основании состава декодера 140 и компьютерного носителя данных на фиг. 15 представлена схема аппаратной структуры декодера 140 согласно вариантам осуществления настоящего изобретения. Как показано на фиг. 15, декодер может содержать второй интерфейс 1501 связи, второе запоминающее устройство 1502 и второй процессор 1503. Различные компоненты могут быть взаимосвязаны посредством второго оборудования 1504 в виде шин. Понятно, что второе оборудование 1504 в виде шин выполнено с возможностью реализации соединения и связи между этими компонентами. В дополнение к шине данных, второе оборудование 1504 в виде шин дополнительно может содержать шину питания, шину управления и шину сигнала статуса. Однако для ясности описания различные шины обозначены как второе оборудование 1504 в виде шин на фиг. 15.[00706] Based on the composition of the decoder 140 and the computer storage medium, Fig. 15 shows a diagram of the hardware structure of the decoder 140 according to embodiments of the present invention. As shown in Fig. 15, the decoder may include a second communication interface 1501, a second memory 1502 and a second processor 1503. Various components may be interconnected via a second equipment 1504 in the form of buses. It is understood that the second equipment 1504 in the form of buses is configured to implement a connection and communication between these components. In addition to the data bus, the second equipment 1504 in the form of buses may further include a power bus, a control bus and a status signal bus. However, for clarity of description, various buses are designated as the second equipment 1504 in the form of buses in Fig. 15.
[00707] Второй интерфейс 1501 связи может быть выполнен с возможностью выполнения отправки и приема сигнала при выполнении отправки и приема информации с помощью другого внешнего сетевого элемента.[00707] The second communication interface 1501 may be configured to perform sending and receiving a signal when performing sending and receiving information using another external network element.
[00708] Второе запоминающее устройство 1502 выполнено с возможностью хранения в нем компьютерной программы, исполняемой вторым процессором 1503.[00708] The second memory device 1502 is configured to store therein a computer program executed by the second processor 1503.
[00709] Второй процессор 1503 выполнен с возможностью исполнения компьютерной программы для выполнения следующих операций.[00709] The second processor 1503 is configured to execute a computer program for performing the following operations.
[00710] Идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, определяют путем анализа битового потока;[00710] Identification information about a component of the current slice and information about the coordinates of the last significant coefficient of the current block corresponding to the component of the current slice are determined by analyzing the bitstream;
[00711] в ответ на идентификационную информацию о компоненте, указывающую, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, местоположение последнего значимого коэффициента текущего блока получают путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента; и[00711] in response to identification information about a component indicating that a reversal of the location of the last significant coefficient is applied to a component of the current slice, the location of the last significant coefficient of the current block is obtained by performing a calculation with respect to the coordinate information of the last significant coefficient; and
[00712] коэффициенты текущего блока определяют путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования.[00712] the coefficients of the current block are determined by decoding the coefficients located above the location of the last significant coefficient, in a given scan order.
[00713] Альтернативно в качестве другого варианта осуществления второй процессор 1503 дополнительно может быть выполнен с возможностью исполнения компьютерной программы для реализации способа согласно любому из вышеописанных вариантов осуществления.[00713] Alternatively, as another embodiment, the second processor 1503 may further be configured to execute a computer program for implementing the method according to any of the above-described embodiments.
[00714] Понятно, что второе запоминающее устройство 1502 подобно первому запоминающему устройству 1302 с точки зрения аппаратной функции, и второй процессор 1503 подобен первому процессору 1303 с точки зрения аппаратной функции, что не описано подробно в данном документе.[00714] It is understood that the second memory device 1502 is similar to the first memory device 1302 in terms of hardware function, and the second processor 1503 is similar to the first processor 1303 in terms of hardware function, which is not described in detail in this document.
[00715] В варианте осуществления предоставлен декодер. Декодер может содержать узел анализа и второй узел определения. Таким образом, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, можно точно управлять соответствующим режимом получения последнего значимого коэффициента для каждого компонента цвета, т.е. отдельно управляя тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00715] In an embodiment, a decoder is provided. The decoder may comprise an analysis unit and a second determination unit. Thus, in a scenario of encoding and decoding a video with a high bit depth, a high bit rate, a high quality, or a lossless video, a reasonable mode of obtaining the last significant coefficient is set according to a distribution law of the significant coefficients, thereby reducing the resource consumption caused by encoding in a bit stream and improving the compression efficiency. In addition, since the corresponding color components may be different in the distribution of the significant coefficients, it is possible to accurately control the corresponding mode of obtaining the last significant coefficient for each color component, i.e., by separately controlling whether to apply the reversal technology of the last significant coefficient to each color component, thereby further improving the compression efficiency.
[00716] Следует отметить, что в настоящем изобретении такой термин, как «включать/содержать», «содержащий» или любой другой вариант этого термина, предназначен для охвата неисключительного включения, так что процесс, способ, изделие или устройство, содержащие ряд элементов, не только содержит элементы, но также содержит другой элемент (другие элементы), который не указан (которые не указаны) в явном виде, или элемент (элементы), присущий (присущие) такому процессу, способу, изделию или устройству. При отсутствии дополнительных ограничений элемент, определенный фразой «содержащий…», не исключает существования другого идентичного элемента в процессе, способе, изделии или устройстве, которое содержит элемент.[00716] It should be noted that in the present invention, a term such as "include/comprise", "comprising" or any other variation of this term is intended to cover a non-exclusive inclusion, such that a process, method, article or device comprising a number of elements not only comprises the elements, but also comprises other element(s) that are not explicitly stated or element(s) inherent in such process, method, article or device. Unless further limited, an element defined by the phrase "comprising..." does not exclude the existence of another identical element in a process, method, article or device that comprises the element.
[00717] Нумерация вариантов осуществления настоящего изобретения приведена просто для иллюстрации и не указывает на преимущество одного варианта осуществления над другим.[00717] The numbering of the embodiments of the present invention is merely for illustration and does not indicate the advantage of one embodiment over another.
[00718] Способы, раскрытые в вариантах осуществления способа согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления способа, при условии что в результате комбинации не возникает противоречия.[00718] The methods disclosed in the embodiments of the method according to the present invention may be combined with each other as necessary to obtain a new embodiment of the method, provided that the combination does not result in a contradiction.
[00719] Признаки, раскрытые в вариантах осуществления продукта согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления продукта, при условии что в результате комбинации не возникает противоречия.[00719] The features disclosed in the embodiments of the product according to the present invention may be combined with each other as necessary to obtain a new embodiment of the product, provided that the combination does not result in a contradiction.
[00720] Признаки, раскрытые в вариантах осуществления способа или устройства согласно настоящему изобретению, могут быть объединены друг с другом по мере необходимости для получения нового варианта осуществления способа или устройства, при условии что в результате комбинации не возникает противоречия.[00720] The features disclosed in the embodiments of the method or device according to the present invention may be combined with each other as necessary to obtain a new embodiment of the method or device, provided that the combination does not result in a contradiction.
[00721] Описанное является лишь вариантами осуществления настоящего изобретения и не предназначено для ограничения объема настоящего изобретения. Любая модификация, эквивалентная замена и/или т.п., выполненные в пределах технического объема настоящего изобретения, которые могут быть очевидны специалисту в данной области техники, должны быть включены в объем настоящего изобретения. Поэтому объем настоящего изобретения следует определять по формуле изобретения.[00721] The described are only embodiments of the present invention and are not intended to limit the scope of the present invention. Any modification, equivalent replacement and/or the like made within the technical scope of the present invention that may be obvious to a person skilled in the art should be included in the scope of the present invention. Therefore, the scope of the present invention should be determined by the claims.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬINDUSTRIAL APPLICABILITY
[00722] В вариантах осуществления настоящего изобретения кодер определяет идентификационную информацию о компоненте текущего слайса и местоположение последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса. Кодер определяет информацию о координатах последнего значимого коэффициента текущего блока согласно идентификационной информации о компоненте и местоположению последнего значимого коэффициента. Кодер кодирует коэффициенты, расположенные выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Кодер предоставляет битовую информацию, полученную посредством кодирования, идентификационную информацию о компоненте и информацию о координатах последнего значимого коэффициента в битовый поток. Декодер определяет идентификационную информацию о компоненте текущего слайса и информацию о координатах последнего значимого коэффициента текущего блока, соответствующего компоненту текущего слайса, путем анализа битового потока. Когда идентификационная информация о компоненте указывает, что изменение местоположения на обратное последнего значимого коэффициента применено к компоненту текущего слайса, декодер получает местоположение последнего значимого коэффициента текущего блока путем выполнения вычисления в отношении информации о координатах последнего значимого коэффициента. Декодер определяет коэффициенты текущего блока путем декодирования коэффициентов, расположенных выше местоположения последнего значимого коэффициента, в заданном порядке сканирования. Соответственно, в сценарии кодирования и декодирования видео с высокой битовой глубиной, высокой битовой скоростью, высоким качеством или без потерь разумный режим получения последнего значимого коэффициента устанавливают согласно закону распределения значимых коэффициентов, что тем самым сокращает потребление ресурсов, вызванное кодированием в битовом потоке, и повышает эффективность сжатия. Кроме того, поскольку соответствующие компоненты цвета могут быть разными при распределении значимых коэффициентов, идентификационная информация о компоненте может использоваться для отдельного управления тем, применять ли технологию изменения местоположения на обратное последнего значимого коэффициента к каждому компоненту цвета, что тем самым дополнительно повышает эффективность сжатия.[00722] In embodiments of the present invention, an encoder determines identification information about a component of a current slice and a location of the last significant coefficient of a current block corresponding to the component of the current slice. The encoder determines information about the coordinates of the last significant coefficient of the current block according to the identification information about the component and the location of the last significant coefficient. The encoder codes the coefficients located above the location of the last significant coefficient in a given scanning order. The encoder provides bit information obtained by encoding, the identification information about the component and the coordinate information of the last significant coefficient to a bitstream. The decoder determines the identification information about the component of the current slice and the coordinate information of the last significant coefficient of the current block corresponding to the component of the current slice by analyzing the bitstream. When the component identification information indicates that the reversal of the last significant coefficient is applied to the component of the current slice, the decoder obtains the location of the last significant coefficient of the current block by performing a calculation with respect to the coordinate information of the last significant coefficient. The decoder determines the coefficients of the current block by decoding the coefficients located above the location of the last significant coefficient in a specified scanning order. Accordingly, in the scenario of encoding and decoding video with a high bit depth, high bit rate, high quality or lossless, a reasonable mode of obtaining the last significant coefficient is set according to the distribution law of significant coefficients, thereby reducing the resource consumption caused by encoding in a bitstream and improving the compression efficiency. In addition, since the corresponding color components may be different in the distribution of significant coefficients, the component identification information can be used to separately control whether to apply the reversal of the last significant coefficient technology to each color component, thereby further improving the compression efficiency.
Claims (66)
Publications (2)
Publication Number | Publication Date |
---|---|
RU2024100542A RU2024100542A (en) | 2024-02-02 |
RU2836841C2 true RU2836841C2 (en) | 2025-03-24 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752592A (en) * | 2012-06-20 | 2012-10-24 | 深圳广晟信源技术有限公司 | Entropy coding method of video transformation coefficient |
US20150078432A1 (en) * | 2013-09-19 | 2015-03-19 | Blackberry Limited | Coding position data for the last non-zero transform coefficient in a coefficient group |
CN108353179A (en) * | 2015-09-10 | 2018-07-31 | 三星电子株式会社 | Encoding device, decoding device, encoding method and decoding method thereof |
US10405000B2 (en) * | 2014-11-21 | 2019-09-03 | Vid Scale, Inc. | One-dimensional transform modes and coefficient scan order |
RU2714108C1 (en) * | 2012-01-19 | 2020-02-11 | Кэнон Кабусики Кайся | Method, apparatus and system for encoding and decoding a significance map for transformation unit residual coefficients |
CN112543338A (en) * | 2020-10-16 | 2021-03-23 | 腾讯科技(深圳)有限公司 | Video decoding method and device, computer readable medium and electronic equipment |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2714108C1 (en) * | 2012-01-19 | 2020-02-11 | Кэнон Кабусики Кайся | Method, apparatus and system for encoding and decoding a significance map for transformation unit residual coefficients |
CN102752592A (en) * | 2012-06-20 | 2012-10-24 | 深圳广晟信源技术有限公司 | Entropy coding method of video transformation coefficient |
US20150078432A1 (en) * | 2013-09-19 | 2015-03-19 | Blackberry Limited | Coding position data for the last non-zero transform coefficient in a coefficient group |
US10405000B2 (en) * | 2014-11-21 | 2019-09-03 | Vid Scale, Inc. | One-dimensional transform modes and coefficient scan order |
CN108353179A (en) * | 2015-09-10 | 2018-07-31 | 三星电子株式会社 | Encoding device, decoding device, encoding method and decoding method thereof |
CN112543338A (en) * | 2020-10-16 | 2021-03-23 | 腾讯科技(深圳)有限公司 | Video decoding method and device, computer readable medium and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028932B (en) | Palette prediction initialization and merging for video coding | |
CN113115047B (en) | Video encoding and decoding method and device | |
KR102082548B1 (en) | Maximum palette parameters in palette-based video coding | |
CA2933395C (en) | Data encoding and decoding | |
US20160234494A1 (en) | Restriction on palette block size in video coding | |
US20240129512A1 (en) | Encoding and decoding method, encoder, decoder, and storage medium | |
US20240187628A1 (en) | Coefficient coding method, encoder, and decoder | |
RU2836841C2 (en) | Encoding and decoding method, encoder and decoder | |
JP2024529313A (en) | Sequence-level and slice-level syntax representation in video codecs | |
CN116982317A (en) | Encoding and decoding method for coefficient, encoder, decoder and computer storage medium | |
US12120318B2 (en) | Encoding and decoding method, bitstream, encoder, decoder, and computer storage medium | |
RU2831992C2 (en) | Method of encoding coefficients, encoder, decoder and computer data medium | |
CN117157979A (en) | Encoding/decoding method, encoder, decoder, and storage medium | |
WO2022188239A1 (en) | Coefficient coding/decoding method, encoder, decoder, and computer storage medium |