CN114556927A - 用于视频编码和解码的熵编码 - Google Patents
用于视频编码和解码的熵编码 Download PDFInfo
- Publication number
- CN114556927A CN114556927A CN202080055455.7A CN202080055455A CN114556927A CN 114556927 A CN114556927 A CN 114556927A CN 202080055455 A CN202080055455 A CN 202080055455A CN 114556927 A CN114556927 A CN 114556927A
- Authority
- CN
- China
- Prior art keywords
- decoding
- binary
- entropy
- binary data
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 212
- 230000008569 process Effects 0.000 claims description 41
- 230000003044 adaptive effect Effects 0.000 claims description 33
- 238000005070 sampling Methods 0.000 claims description 8
- 230000006978 adaptation Effects 0.000 claims description 7
- 239000000872 buffer Substances 0.000 abstract description 22
- 239000013598 vector Substances 0.000 description 42
- 230000006870 function Effects 0.000 description 17
- 238000001914 filtration Methods 0.000 description 15
- 238000005192 partition Methods 0.000 description 15
- 238000013139 quantization Methods 0.000 description 15
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 14
- 238000000638 solvent extraction Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 239000011449 brick Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 108010063123 alfare Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本实施方案提供了用于有效地操作二进制数据缓冲区的方法,以在与比特流的生成和解析相关的熵编码和解码中限制二进制数据与比特的比率。此外,提供了这样一种方法,其用于构造包括各种熵编码/解码方法的列表并且针对每个基本的熵编码/解码单元自适应地利用熵编码/解码方法。
Description
技术领域
本发明涉及视频的编码和解码,更具体地,本发明涉及有效地操作二进制数据缓冲区(bin buffer)并且自适应地利用各种编码/解码方法以便有效地执行熵编码和解码的方法。
背景技术
本部分中的陈述仅提供与本发明有关的背景技术信息,并不会构成现有技术。
由于视频数据量大于语音数据量或静止影像数据量,因此在不进行压缩处理的情况下存储或传输视频数据需要大量的硬件资源(包括存储器)。
相应地,在存储或传输视频数据时,通常利用编码器来压缩视频数据,以便于进行存储或传输。然后,解码器接收压缩的视频数据,解压并再现视频数据。用于这种视频的压缩技术包括H.264/AVC和高效率视频编码(High Efficiency Video Coding,HEVC),所述高效率视频编码(HEVC)比H.264/AVC的编码效率提高了大约40%。
然而,视频大小、分辨率和帧速率逐渐增加,并且相应地,要编码的数据量也在增多。因此,需要一种与现有压缩技术相比具有更好的编码效率和更高的影像质量的新压缩技术。
在视频编码中,熵编码用于形成比特流,在所述比特流中压缩量化的变换系数、关于量化参数的信息、根据预测类型的帧内预测或帧间预测信息、关于块分割的信息等。另外,在视频解码中,熵解码用于从比特流中解析上述信息。
期望提供一种有效的熵编码/解码方法。
发明内容
技术问题
本发明提供通过在与比特流的生成和解析相关的熵编码和解码中限制二进制数据与比特的比率(bin-to-bit ratio)来有效地操作二进制数据缓冲区的方法。此外,本发明提供这样一种方法,其配置包括各种熵编码/解码方法的列表并且针对熵编码/解码的每个基本单元自适应地利用熵编码/解码方法。
技术方案
根据本发明的一个方面,由视频解码装置执行用于熵解码的方法,所述方法包括:接收通过对图像编码而形成的比特流;执行算术解码处理以通过解码比特流来生成至少一个二进制字符串(bin string),每个二进制字符串包括至少一个二进制数据(bin);以及通过对二进制字符串进行逆向二值化来生成语法元素,其中通过解码比特流而生成的二进制数据的数量满足该数量不超过阈值的约束,其中根据影像的层级或级别来可变地设置阈值。
根据本发明的另一个方面,提供用于对根据构成图像的每个块的预测性编码而生成的语法元素进行熵编码的方法,所述方法包括:对每个语法元素进行二值化并且生成至少一个二进制字符串,每个二进制字符串包括至少一个二进制数据;执行算术编码处理以从二进制字符串生成编码的数据;以及从编码的数据生成配置有一个或更多个网络抽象层(network abstraction layer,NAL)单元的比特流,其中二进制数据的数量相对于一个或更多个NAL单元的长度限制为不超过阈值,其中根据影像的层级或级别来可变地设置阈值。
根据本发明的另一个方面,提供了用于熵解码的装置,所述装置包括:算术解码器和逆向二值化器,所述算术解码器配置为接收通过对图像编码而形成的比特流,并且执行算术解码处理,以通过解码比特流来生成至少一个二进制字符串,每个二进制字符串包括至少一个二进制数据;所述逆向二值化器配置为通过对二进制字符串进行逆向二值化来生成语法元素,其中通过解码比特流而生成的二进制数据的数量满足该数量不超过阈值的约束,其中根据影像的层级或级别来可变地设置阈值。
有益效果
如上所述,根据本发明,在与比特流的生成和解析相关的熵编码和解码中,可以提供有效地操作二进制数据缓冲区的方法,从而使得能够限制二进制数据与比特的比率。
此外,根据本发明,在与比特流的生成和解析相关的熵编码和解码中,提供了这样一种方法,其配置包括各种熵编码/解码方法的列表并且针对熵编码/解码的每个基本单元自适应地利用熵编码/解码方法。相应地,可以根据应用和信号特性来执行熵编码/解码。
附图说明
图1是能够实现本发明技术的视频编码装置的示例性框图。
图2示例性地示出了利用QTBTTT结构的块分区结构。
图3示例性地示出了包括宽角度帧内预测模式的多个帧内预测模式。
图4示例性地示出了当前块周围的相邻块。
图5是能够实现本发明的技术的视频解码装置的示例性框图。
图6是根据本发明实施方案的用于熵解码的方法的流程图。
图7是根据本发明实施方案的自适应二进制算术解码处理的流程图。
图8是包括编码块的熵编码的基本单元的示例性图。
图9是根据本发明另一实施方案的用于熵解码的方法的流程图。
图10是根据本发明另一实施方案的二进制算术解码处理的流程图。
具体实施方式
在下文中,将参考所附附图对本发明的一些实施方案进行详细描述。应当注意,在将附图标记添加到各个附图中的组成元件时,尽管元件在不同的附图中示出,但是相同的附图标记也表示相同的元件。此外,在本发明实施方案的以下描述中,将省略并入本文中的已知功能和配置的详细描述,以避免模糊实施方案的主题。
图1是能够实现本发明技术的视频编码装置的示例性框图。在下文中,将参考图1描述视频编码装置以及该装置的元件。
视频编码装置包括:图像分割器110、预测器120、减法器130、变换器140、量化器145、重排单元150、熵编码器155、逆量化器160、逆变换器165、加法器170、环路滤波单元180和存储器190。
视频编码装置的每个元件可以以硬件或软件、或者硬件和软件的组合来实现。各个元件的功能可以实现为软件,并且微处理器可以实现为实施对应于各个元件的软件功能。
一个视频由包括多个图像的一个或更多个序列组成。每个图像分割为多个区域,并且对每个区域执行编码。例如,一个图像分割为一个或更多个瓦片(tile)或/和切片(slice)。一个或更多个瓦片可以被定义为瓦片组。每个瓦片或切片分割为一个或更多个编码树单元(coding tree unit,CTU)。每个CTU通过树结构分割为一个或更多个编码单元(coding unit,CU)。应用于每个CU的信息被编码为CU的语法,并且共同应用于包括在一个CTU中的CU的信息被编码为CTU的语法。另外,共同应用于一个切片中的所有块的信息被编码为切片头的语法,而应用于构成一个或更多个图像的所有块的信息被编码在图像参数集(Picture Parameter Set,PPS)或图像头中。另外,由一个或更多个SPS共同参考的信息被编码在视频参数集(Video Parameter Set,VPS)中。此外,由多个图像共同参考的信息被编码在序列参数集(Sequence Parameter Set,SPS)中。另外,共同应用于一个瓦片或瓦片组的信息可以被编码为瓦片头或瓦片组头的语法。包括在SPS、PPS、切片头以及瓦片头或瓦片组头中的语法可以被称为高级别语法。
图像分割器110确定编码树单元(CTU)的大小。关于CTU的大小(CTU尺寸)的信息被编码为SPS或PPS的语法,并且被传输至视频解码装置。
图像分割器110将构成视频的每个图像分割为具有预定大小的多个CTU,然后利用树结构来递归地分割CTU。在树结构中,叶节点用作编码单元(CU),所述编码单元(CU)是编码的基本单元。
树结构可以是四叉树(QuadTree,QT)、二叉树(BinaryTree,BT)、三叉树(TernaryTree,TT)或由两个或更多个QT结构、BT结构和TT结构的组合形成的结构,所述四叉树(QT)即节点(或父节点)被分割为相同大小的四个从节点(或子节点),所述二叉树(BT)即节点被分割为两个从节点,所述三叉树(TT)即节点以1:2:1的比率被分割为三个从节点。例如,可以利用四叉树加二叉树(QuadTree plus BinaryTree,QTBT)结构,或者可以利用四叉树加二叉树三叉树(QuadTree plus BinaryTree TernaryTree,QTBTTT)结构。BTTT可以统称为多类型树(multiple-type tree,MTT)。
图2是示出用于利用QTBTTT结构来分割块的方法的示意图。
如图2所示,CTU可以首先分割为QT结构。可以重复QT分割,直到分割块的大小达到QT中允许的叶节点的最小块大小MinQTSize。由熵编码器155对指示QT结构的每个节点是否被分割为下层的四个节点的第一标志(QT_split_flag)进行编码,并将其用信号通知视频解码装置。当QT的叶节点不大于BT中允许的根节点的最大块大小(MaxBTSize)时,可以进一步将其分割为一个或更多个BT结构或TT结构。BT结构和/或TT结构可以具有多个分割方向。例如,可以存在两个方向,即,水平地分割节点的块的方向和竖直地分割块的方向。如图2所示,当MTT分割开始时,通过熵编码器155对指示节点是否被分割的第二标志(mtt_split_flag)、指示分割情况下的分割方向(竖直或水平)的标志、和/或指示分割类型(二叉或三叉)的标志进行编码,并将其用信号通知视频解码装置。
替选地,在对指示每个节点是否被分割为下层的4个节点的第一标志(QT_split_flag)进行编码之前,可以对指示节点是否被分割的CU分割标志(split_cu_flag)进行编码。当CU分割标志(split_cu_flag)的值指示出没有执行分割时,节点的块成为分割树结构中的叶节点,并用作编码单元(CU),编码单元(CU)是编码的基本单元。当CU分割标志(split_cu_flag)的值指示出执行分割时,视频编码装置开始以上述方式从第一标志起对标志进行编码。
当利用QTBT作为树结构的另一个示例时,可以存在两种分割类型,即将块水平地分割为相同大小的两个块的类型(即,对称水平分割)和将块竖直地分割为相同大小的两个块的类型(即,对称竖直分割)。由熵编码器155对指示BT结构的每个节点是否被分割为下层的块的分割标志(split_flag)和指示分割类型的分割类型信息进行编码,并将其传输至视频解码装置。可以存在将节点的块分割为两个非对称块的额外类型。非对称分割类型可以包括以1:3的大小比率将块分割为两个矩形块的类型,或者对角线地分割节点的块的类型。
CU可以根据CTU的QTBT或QTBTTT分割而具有各种大小。在下文中,与要编码或解码的CU(即,QTBTTT的叶节点)相对应的块被称为“当前块”。在采用QTBTTT分割时,当前块的形状可以是正方形或矩形。
预测器120对当前块进行预测以生成预测块。预测器120包括帧内预测器122和帧间预测器124。
通常,图像中的每个当前块可以分别被预测性地编码。通常,可以利用帧内预测技术(其使用来自包括当前块的图像的数据)或帧间预测技术(其使用在包括当前块的图像之前编码的图像的数据)来执行当前块的预测。帧间预测包括单向预测和双向预测。
帧内预测器122利用在包括当前块的当前图像中位于当前块周围的像素(参考像素)来预测当前块中的像素。根据预测方向,存在多个帧内预测模式。例如,如图3a所示,多个帧内预测模式可以包括2种非方向模式和65种方向模式,所述2种非方向模式包括平面(planar)模式和DC模式。针对每种预测模式不同地定义要使用的相邻像素和等式。
为了对矩形形状的当前块进行有效的方向预测,可以另外使用由图3b中的虚线箭头指示的方向模式(帧内预测模式67至80和-1至-14)。这些模式可以称为“宽角度帧内预测模式(wide angle intra-prediction modes)”。在图3b中,箭头指示用于预测的相应参考样本,而非指示预测方向。预测方向与由箭头指示的方向相反。宽角度帧内预测模式是在当前块具有矩形形状时在与特定方向模式相反的方向上执行预测而无需额外的比特传输的模式。在这种情况下,在宽角度帧内预测模式中,可以基于矩形当前块的宽度与高度的比率来确定可用于当前块的一些宽角度帧内预测模式。例如,在当前块的矩形形状的高度小于宽度时,可以利用角度小于45度的宽角度帧内预测模式(帧内预测模式67至80)。在当前块的矩形形状的宽度大于高度时,可以利用角度大于-135度的宽角度帧内预测模式(帧内预测模式-1至-14)。
帧内预测器122可以确定对当前块进行编码时要使用的帧内预测模式。在一些示例中,帧内预测器122可以利用若干帧内预测模式来对当前块进行编码,并且从测试的模式中选择要使用的适当的帧内预测模式。例如,帧内预测器122可以利用若干测试的帧内预测模式的率失真(rate-distortion)分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。
帧内预测器122从多个帧内预测模式中选择一个帧内预测模式,并且利用根据选择的帧内预测模式确定的相邻像素(参考像素)和等式来预测当前块。由熵编码器155对关于选择的帧内预测模式的信息进行编码,并将其传输至视频解码装置。
帧间预测器124通过运动补偿来生成当前块的预测块。帧间预测器124在比当前图像更早已被编码和解码的参考图像中搜索与当前块最相似的块,并且利用搜索到的块来生成当前块的预测块。然后,帧间预测器生成与当前图像中的当前块和参考图像中的预测块之间的位移(displacement)相对应的运动矢量(motion vector,MV)。通常,对亮度(luma)分量执行运动估计,并且基于亮度分量计算的运动矢量用于亮度分量和色度分量两者。由熵编码器155对包括关于参考图像的信息和有关用于预测当前块的运动矢量的信息的运动信息进行编码,并将其传输至视频解码装置。
帧间预测器124可以在参考图像或参考块上执行插值,以增加预测准确性。也就是说,通过向包括两个整数样本的多个连续的整数样本应用滤波器系数来在两个连续的整数样本之间插值子样本。当对插值的参考图像执行搜索与当前块最相似的块的操作时,运动矢量可以以分数样本单位的精度级表示,而不是以整数样本单位的精度级表示。对要编码的每个目标区域,例如,诸如切片、瓦片、CTU或CU的每个单元,可以不同地设置运动矢量的精度或分辨率。当应用这样的自适应运动矢量分辨率(adaptive motion vectorresolution,AMVR)时,应当针对每个目标区域用信号通知关于要应用于每个目标区域的运动矢量分辨率的信息。例如,当目标区域是CU时,用信号通知关于应用于每个CU的运动矢量分辨率的信息。关于运动矢量分辨率的信息可以是指示运动矢量差的精度的信息,这将随后描述。
帧间预测器124可以利用双向预测来执行帧间预测。在双向预测中,帧间预测器124利用两个参考图像和表示各个参考图像中与当前块最相似的块位置的两个运动矢量。帧间预测器124分别从参考图像列表0(RefPicList0)和参考图像列表1(RefPicList1)选择第一参考图像和第二参考图像,在各个参考图像中搜索与当前块相似的块,并且生成第一参考块和第二参考块。然后,帧间预测器124通过对第一参考块和第二参考块进行平均或加权来生成用于当前块的预测块。然后,帧间预测器124向编码器150传送包括关于用于预测当前块的两个参考图像和两个运动矢量的信息的运动信息。RefPicList0可以由在重构的图像中按显示顺序在当前图像之前的图像组成,并且RefPicList1可以由在重构的图像中按显示顺序在当前图像之后的图像组成。然而,实施方案不限于此。按显示顺序在当前图像之后的预先重构的图像可以进一步包括在RefPicList0中,相反地,在当前图像之前的预先重构的图像可以进一步包括在RefPicList1中。
可以利用各种方法来使对运动信息进行编码所需的比特数最小化。
例如,在当前块的参考图像和运动矢量与相邻块的参考图像和运动矢量相同时,关于当前块的运动信息可以通过用于识别相邻块的编码信息传输至视频解码装置。这种方法称为“合并模式(merge mode)”。
在合并模式中,帧间预测器124从当前块的相邻块中选择预定数量的合并候选块(在下文中称为“合并候选”)。
如图4所示,与当前图像中的当前块相邻的左侧块L、上侧块A、右上侧块AR、左下侧块BL和左上侧块AL的全部或部分可以用作用于推导合并候选的相邻块。此外,除了当前块所在的当前图像之外,位于参考图像(其可以与用于预测当前块的参考图像相同或不同)内的块可以用作合并候选。例如,在参考图像中与当前块处于相同位置处的同位块(co-located block)或与该同位块相邻的块可以另外地用作合并候选。
帧间预测器124利用这样的相邻块来配置包括预定数量的合并候选的合并列表。帧间预测器124从合并列表中包括的合并候选之中选择要用作关于当前块的运动信息的合并候选,并且生成用于识别选择的候选的合并索引信息。生成的合并索引信息由编码器155编码并传输至视频解码装置。
对运动信息进行编码的另一种方法是高级运动矢量预测(advanced motionvector prediction,AMVP)模式。
在AMVP模式中,帧间预测器124利用当前块的相邻块来推导用于当前块的运动矢量的预测的运动矢量候选。在图2中的当前图像中,与当前块相邻的左侧块L、上侧块A、右上侧块AR、左下侧块BL和左上侧块AL的全部或部分可以用作用于推导预测的运动矢量候选的相邻块。此外,除了包括当前块的当前图像之外,位于参考图像(其可以与用于预测当前块的参考图像相同或不同)内的块可以用作用于推导预测的运动矢量候选的相邻块。例如,可以利用在参考图像中与当前块处于相同位置处的同位块或与该同位块相邻的块。
帧间预测器124利用相邻块的运动矢量来推导预测的运动矢量候选,并且利用预测的运动矢量候选来确定用于当前块的运动矢量的预测的运动矢量。然后,通过将当前块的运动矢量减去预测的运动矢量来计算运动矢量差。
可以通过将预定义函数(例如,用于计算中值、平均值等的函数)应用于预测的运动矢量候选来获得预测的运动矢量。在这种情况下,视频解码装置还知道预定义的功能。由于用于推导预测的运动矢量候选的相邻块已经被编码和解码,所以视频解码装置也已经知道相邻块的运动矢量。相应地,视频编码装置不需要对用于识别预测的运动矢量候选的信息进行编码。因此,在这种情况下,对关于运动矢量差的信息和关于用于预测当前块的参考图像的信息进行编码。
可以通过选择预测的运动矢量候选的任何一个来确定预测的运动矢量。在这种情况下,用于识别选择的预测的运动矢量候选的信息与要用于预测当前块的关于运动矢量差的信息以及关于参考图像的信息一起被进一步编码。
减法器130将当前块减去由帧内预测器122或帧间预测器124生成的预测块以生成残差块。
变换器140将空域中具有像素值的残差块中的残差信号变换为频域中的变换系数。变换器140可以利用残差块的整个大小作为变换单元来变换残差块中的残差信号。替选地,可以将残差块分割为多个子块,并且利用子块作为变换单元来执行变换。替选地,可以通过将块分为两个子块,即变换区域和非变换区域,并且仅利用变换区域子块作为变换单元来变换残差信号。变换区域子块可以是基于水平轴线(或竖直轴线)的具有大小比率为1:1的两个矩形块的一个。在这种情况下,由熵编码单元155对指示仅变换了子块的标志(cu_sbt_flag)、方向(竖直/水平)信息(cu_sbt_horizontal_flag)和/或位置信息(cu_sbt_pos_flag)进行编码,并且用信号通知视频解码装置。另外,变换区域子块的大小可以基于水平轴线(或竖直轴线)具有1:3的大小比率。在这种情况下,由熵编码器155对区分相应分割的标志(cu_sbt_quad_flag)额外地编码,并且用信号通知视频解码装置。
变换器140可以在水平方向和竖直方向上单独地变换残差块。对于变换,可以利用各种类型的变换函数或变换矩阵。例如,用于水平变换和竖直变换的成对变换函数可以被定义为多变换集(multiple transform set,MTS)。变换器140可以选择MTS中具有最佳变换效率的一对变换函数,并且分别在水平方向和竖直方向上变换残差块。由熵编码器155对关于在MTS中选择的变换函数对的信息(mts_idx)进行编码,并将其用信号通知视频解码装置。
量化器145利用量化参数对从变换器140输出的变换系数进行量化,并且将量化的变换系数输出到熵编码器155。对于一些块或帧,量化器145可以不经变换直接对相关残差块进行量化。量化器145可以根据变换块中的变换系数的位置来应用不同的量化系数(缩放值)。可以对应用于二维布置的量化的变换系数的量化的系数的矩阵进行编码并用信号通知视频解码装置。
重排单元150可以对量化的残差值的系数值进行重新分类。
重排单元150可以通过系数扫描(coefficient scanning)来将2维系数阵列改变为1维系数序列。例如,重排单元150可以利用锯齿形扫描(zig-zag scan)或对角线扫描(diagonal scan)从DC系数向高频区域中的系数对系数进行扫描,以输出1维系数序列。根据变换单元的大小和帧内预测模式,可以利用竖直扫描或水平扫描代替锯齿形扫描,所述竖直扫描即在列方向上对二维系数阵列进行扫描,所述水平扫描即在行方向上对二维块形状的系数进行扫描。也就是说,可以根据变换单元的大小和帧内预测模式在锯齿形扫描、对角线扫描、竖直扫描和水平扫描中确定要使用的扫描模式。
熵编码器155利用诸如基于上下文的自适应二进制算术编码(Context-basedAdaptive Binary Arithmetic Code,CABAC)和指数哥伦布(exponential Golomb)的各种编码技术来对从重排单元150输出的一维量化的变换系数进行编码,以生成比特流。
熵编码器155对与块分割相关的信息(例如,CTU大小、CU分割标志、QT分割标志、MTT分割类型和MTT分割方向)进行编码,使得视频解码装置可以以与视频编码装置相同的方式来分割块。另外,熵编码器155对关于指示当前块是由帧内预测编码还是由帧间预测编码的预测类型的信息进行编码,并且根据预测类型来对帧内预测信息(即,关于帧内预测模式的信息)或帧间预测信息(用于合并模式的合并索引,关于用于AMVP模式的参考图像索引和运动矢量差的信息)进行编码。此外,熵编码器155还对与量化有关的信息(也就是关于量化参数的信息和关于量化矩阵的信息)进行编码。
逆量化器160对从量化器145输出的量化的变换系数进行逆量化,以生成变换系数。逆变换器165将从逆量化器160输出的变换系数从频域变换到空域,并且重构残差块。
加法器170将重构的残差块和由预测器120生成的预测块相加,以重构当前块。重构的当前块中的像素在执行后续块的帧内预测时用作参考像素。
环路滤波单元180对重构的像素进行滤波,以减少由于基于块的预测和变换/量化而产生的块伪影(blocking artifacts)、振铃伪影(ringing artifacts)和模糊伪影(blurring artifacts)。环路滤波单元180可以包括去块滤波器182、样本自适应偏移(sample adaptive offset,SAO)滤波器184和自适应环路滤波器(adaptive loop filter,ALF)186的至少一个。
去块滤波器182对重构的块之间的边界进行滤波,以去除由逐块编码/解码引起的块伪影,并且SAO滤波器184对去块滤波的视频执行额外的滤波。SAO滤波器184是用于对由有损编码(lossy coding)引起的重构的样本与原始的样本之间的差进行补偿的滤波器,并且以将相对应的偏移和每个重构的样本相加的方式来执行滤波。ALF 186通过对目标样本和目标样本的相邻样本应用滤波器系数来对要滤波的目标样本执行滤波。ALF 186可以将包括在图像中的样本划分为预定的组,然后确定要应用于相应组的一个滤波器,以对每个组差分地执行滤波。可以对关于要用于ALF的滤波器系数的信息进行编码,并且将其用信号通知视频解码装置。
通过环路滤波单元180滤波的重构的块存储在存储器190中。一旦一个图像中的所有块被重构,则重构的图像可以用作对后续要被编码的图像中的块进行帧间预测的参考图像。
图5是能够实现本发明的技术的视频解码装置的示例性功能框图。在下文中,将参考图5来描述视频解码装置和该装置的元件。
视频解码装置可以包括:熵解码器510、重排单元515、逆量化器520、逆变换器530、预测器540、加法器550、环路滤波单元560和存储器570。
类似于图1的视频编码装置,视频解码装置的每个元件可以用硬件、软件或硬件和软件的组合来实现。此外,每个元件的功能可以用软件来实现,并且微处理器可以实现为执行与每个元件相对应的软件功能。
熵解码器510通过对由视频编码装置生成的比特流解码并提取与块分割相关的信息来确定要解码的当前块,并且提取重构当前块所需的预测信息和关于残差信号的信息等。
熵解码器510从序列参数集(SPS)或图像参数集(PPS)中提取关于CTU大小的信息,确定CTU的大小,并且将图像分割为确定大小的CTU。然后,解码器将CTU确定为树结构的最高层(即,根节点),并且提取关于CTU的分割信息,以利用树结构来分割CTU。
例如,当利用QTBTTT结构来分割CTU时,提取与QT的分割相关的第一标志(QT_split_flag),以将每个节点分割为子层的四个节点。对于与QT的叶节点相对应的节点,提取与MTT的分割有关的第二标志(MTT_split_flag)以及关于分割方向(竖直/水平)和/或分割类型(二叉/三叉)的信息,从而以MTT结构来分割对应的叶节点。由此,以BT或TT结构来递归地分割QT的叶节点下方的每个节点。
作为另一个示例,当利用QTBTTT结构来分割CTU时,可以提取指示是否分割CU的CU分割标志(split_cu_flag)。当分割对应块时,可以提取第一标志(QT_split_flag)。在分割操作中,在零个或更多个递归QT分割之后,每个节点都可能发生零个或更多个递归MTT分割。例如,CTU可以直接经历MTT分割而不经历QT分割,或者仅经历QT分割多次。
作为另一个示例,当利用QTBT结构来分割CTU时,提取与QT分割相关的第一标志(QT_split_flag),并且将每个节点分割为下层的四个节点。然后,提取指示是否以BT进一步分割与QT的叶节点相对应的节点的分割标志(split_flag)以及分割方向信息。
一旦通过树结构分割来确定要解码的当前块,熵解码器510就提取关于指示当前块是被帧内预测还是被帧间预测的预测类型的信息。当预测类型信息指示帧内预测时,熵解码器510提取当前块的帧内预测信息(帧内预测模式)的语法元素。当预测类型信息指示帧间预测时,熵解码器510提取用于帧间预测信息的语法元素,也就是说,指示运动矢量和由运动矢量参考的参考图像的信息。
熵解码器510还提取关于量化的当前块的变换系数的信息作为与量化有关的信息和关于残差信号的信息。
重排单元515可以以由视频编码装置执行的系数扫描的相反顺序,将由熵解码器510进行熵解码的一维量化的变换系数的序列改变为2维系数阵列(即,块)。
逆量化器520对量化的变换系数进行逆量化,并且利用量化参数对量化的变换系数进行逆量化。逆量化器520可以向布置为二维的量化的变换系数应用不同的量化系数(缩放值)。逆量化器520可以通过将来自视频编码装置的量化系数(缩放值)矩阵应用于2维量化的变换系数的阵列来执行逆量化。
逆变换器530将逆量化的变换系数从频域逆变换到空域,以重构残差信号,从而生成当前块的残差块。
另外,当逆变换器530仅对变换块的部分区域(子块)进行逆变换时,所述逆变换单元530提取指示仅变换块的子块已进行变换的标志(cu_sbt_flag)、关于子块的方向性(竖直/水平)信息(cu_sbt_horizontal_flag)和/或关于子块的位置信息(cu_sbt_pos_flag),并且将子块的变换系数从频域逆变换到空域。然后,重构残差信号,并且用“0”值填充未逆变换的区域作为残差块,从而生成最终的当前块的残差块。
另外,当应用MTS时,逆变换器530利用从视频编码装置用信号通知的MTS信息(mts_idx)来确定要分别在水平方向和竖直方向上应用的变换函数或变换矩阵,并且利用确定的变换函数在水平方向和竖直方向上对变换块中的变换系数进行逆变换。
预测器540可以包括帧内预测器542和帧间预测器544。在当前块的预测类型是帧内预测时,激活帧内预测器542,而在当前块的预测类型是帧间预测时,激活帧间预测器544。
帧内预测器542基于从熵解码器510提取的帧内预测模式的语法元素,在多个帧内预测模式中确定当前块的帧内预测模式,并且根据帧内预测模式,利用当前块周围的参考像素来预测当前块。
帧间预测器544利用从熵解码器510提取的帧内预测模式的语法元素来确定当前块的运动矢量和由运动矢量参考的参考图像,并且基于运动矢量和参考图像来预测当前块。
加法器550通过将从逆变换器530输出的残差块与从帧间预测器544或帧内预测器542输出的预测块相加来重构当前块。在对后续要被解码的块进行帧内预测时,重构的当前块中的像素用作参考像素。
环路滤波单元560可以包括去块滤波器562、SAO滤波器564和ALF 566。去块滤波器562对重构的块之间的边界进行去块滤波,以去除由逐块解码引起的块伪影。SAO滤波器564在去块滤波之后对重构的块执行额外滤波,以补偿由有损编码引起的重构的像素与原始的像素之间的差。ALF 566通过对目标样本和该目标样本的相邻样本应用滤波器系数来对要滤波的目标样本执行滤波。ALF 566可以将图像中的样本划分为预定的组,然后确定要应用于相应组的一个滤波器,以对每个组差分地执行滤波。基于关于从比特流解码的滤波器系数的信息来确定ALF的滤波器系数。
通过环路滤波单元560滤波的重构的块存储在存储器570中。当一个图像中的所有块被重构时,重构的图像用作对后续要被编码的图像中的块进行帧间预测的参考图像。
本发明致力于如上所述的视频的编码和解码。更具体地,本发明提供了通过在与比特流生成和解析相关的熵编码和解码中限制二进制数据与比特的比率来有效地操作二进制数据缓冲区的方法。此外,本发明提供了这样一种方法,其配置包括各种熵解码方法的列表并且针对熵编码/解码的每个基本单元自适应地利用熵编码/解码方法。
视频编码装置利用上述编码操作来生成由一个或多个连续的网络抽象层(NAL)单元组成的比特流。NAL单元包括NAL单元头和原始字节序列有效载荷(raw byte sequencepayload,RBSP),并且RBSP包括数据比特串(String Of Data Bits,SODB)。SODB对应于编码的视频数据或视频参数。
NAL单元可以分为视频编码层(video coding layer,VCL)NAL类型或非VCL类型。用于视频解码的参数可以被包括在编码状态下的非VCL类型的NAL单元。另外,与视频信号相关的数据可以被包括在编码状态下的VCL类型的NAL单元中。
NAL单元由视频编码装置中的熵编码器155生成。具体地,将使用基于上下文的自适应二进制算术编码(CABAC)算法用作算术解码处理,以生成包括在VCL类型的NAL单元中的编码的视频信号。CABAC算法是利用先前编码的/解码的统计信息对符号进行二进制算术编码的方法。符号是表示为具有0或1值的二进制数的值。由零或较大的数的二值化形成的二进制字符串中的一个二进制数据可以是符号。符号本身可以表示一个视频解码所需的语法元素。CABAC算法的上下文参考关于先前编码的/解码的符号的统计信息,并且用于改善对后面符号的预测性能。压缩率(其是CABAC算法的编码性能)取决于上下文建模方法。随着上下文模型的最大概率符号(most probable symbol,MPS)的概率增加,压缩率可以得到提高。
使用其他熵编码方案以生成包括在非VCL类型NAL单元或VCL类型NAL单元中的编码的参数,但是将省略其进一步的详细描述,这是因为其他的熵编码方案与本发明的范围无关。
在下文中,提出了各种方法来保持对二进制数据与比特的比率的约束,以便有效地管理二进制数据缓冲区。
图6是根据本发明实施方案的用于熵解码的方法的流程图。尽管在图6中顺序地示出用于保持对二进制数据与比特的比率的约束的各种方法S602、S604和S606,但本发明不一定限于此,并且可以使用一种或更多种方法来保持对二进制数据与比特的比率的约束。
根据本发明的视频解码装置的熵解码器510可以基于算术解码处理来解码VCL类型NAL单元。
熵解码器510检查来自比特流的NAL单元的类型(S600)。可以通过解析NAL单元头来识别NAL单元的类型,并且对于VCL类型的NAL单元继续以下处理。
熵解码器510检查零字(zero_word)的数量(S602)。
熵解码器510检查包括在VCL类型NAL单元中的zero_word的数量,以便有效地管理二进制数据缓冲区。二进制数据缓冲区可以包括用于存储二进制字符串的缓冲区和由熵解码器510在解码处理中使用的缓冲区。
为了使熵解码器510有效地管理二进制数据缓冲区以应对缓冲区溢出/欠载,视频编码装置的熵编码器155可以确定zero_word的数量并且在生成VCL类型NAL单元时添加预定义的长度的一个或更多个zero_word。可以根据NAL单元的长度、二进制字符串的长度、关于影像的水平和竖直大小信息、比特深度、颜色空间采样信息、时域标识符(temporalidentifier,TID)、量化参数(quantization parameter,QP)等的至少一个来自适应地确定zero_word的数量。也就是说,当二进制数据的数量(或长度)与生成的比特的数量(或长度)的比率超过阈值时,熵编码器155通过***预定义的长度的一个或更多个zero_word来生成NAL单元,以保持对二进制数据与比特的比率的约束。可以根据NAL单元的长度(比特数)、图像的水平和竖直尺寸信息、比特深度、颜色空间采样信息(亮度分量与色度分量之间的采样比率)、TID、QP等的至少一个来确定阈值。替选地,如下所述,可以根据影像的层级或级别来可变地确定阈值。
为了提高编码/解码处理的效率,熵编码器155可以利用省略zero_word的方法或自适应地确定zero_word的长度的方法的至少一种来执行视频编码。熵解码器510检查NAL单元中是否省略了zero_word以及zero_word的数量,并且通过从NAL单元移除zero_word来生成用于执行熵解码的比特流。此外,可以参考zero_word的数量来设置用于将算术解码处理应用于比特流的二进制数据缓冲区的大小。熵解码器510可以根据二进制数据缓冲区的设置大小来自适应地保持和管理缓冲区。熵解码器510通过将算术解码处理应用于比特流来生成二进制字符串,然后将其存储在二进制数据缓冲区中。由视频解码装置执行的算术解码处理可以包括基于上下文的自适应二进制算术解码(在下文中称为“自适应二进制算术解码”)处理,和/或作为旁路模式的基于均匀概率的二进制算术解码处理。
在一些实施方案中,可以利用选择性地跳过算术解码处理的方法来实现对二进制数据与比特的比率的约束。
熵解码器510基于skip_flag来确定是否跳过算术解码处理(S604)。
熵解码器510可以根据预设顺序来确定是对比特流执行自适应二进制算术解码还是二进制算术解码。为了做出确定,可以在高级别处用信号通知指示是否跳过算术解码处理的skip_flag。高级别可以是在当前单元的解码时间之前的SPS、PPS、CTU、VPDU、共享单元等。替选地,可以基于空间上、时间上或层次上与当前单元邻近的一个或更多个单元的skip_flag来确定高级别。替选地,可以基于在与当前单元相同位置处具有不同颜色空间的单元的skip_flag来确定高级别。替选地,可以基于先前获取的统计信息来确定用于跳过算术解码处理的应用的语法元素。替选地,根据视频编码装置与视频解码装置之间的协议,对于一些语法元素可以跳过算术解码处理的应用。作为参考,当用信号通知skip_flag时,视频解码装置可以直接从比特流生成二进制字符串,而不将算术解码处理应用于比特流。
在一些其它的实施方案中,可以通过在自适应二进制算术解码与基于均匀概率的二进制算术解码之间自适应地切换的方法来实现对二进制数据与比特的比率的约束。
熵解码器510通过先前解码的二进制字符串的长度与阈值之间的比较来确定是否跳过自适应二进制算术解码(S606)。
当解码的二进制字符串的长度超过预设阈值时,熵解码器510跳过自适应二进制算术解码并且执行二进制算术解码。
替选地,可以利用计数器来实现自适应二进制算术解码与基于均匀概率的二进制算术解码之间的自适应切换。例如,当二进制数据与比特的比率保持在N/M时,读取一个比特使计数器值增加N(其中,N是自然数),并且解码一个二进制数据使计数器值减少M(其中,M是自然数)。例如,当计数器的值变得大于N时,可以执行自适应二进制算术解码。在相反的情况下,可以执行作为旁路模式的二进制算术解码。可以基于影像/切片/瓦片/砖块/CTU大小、比特深度和颜色空间采样等的至少一个或多条信息来计算和初始化计数器。
可以通过SPS/PPS/切片/CTU/VPDU/CU单元的一个从视频编码装置传输阈值(或者,N和M)。替选地,可以根据视频编码装置与视频解码装置之间的协议,对每个层单元设置阈值(或者,N和M)。替选地,可以基于图像/切片/砖块/瓦片/CTU大小、比特深度、颜色空间采样、预测模式、变换模式、帧内预测模式、帧间预测模式等由视频解码装置来确定阈值(或者,N和M)。此外,可以考虑影像的层级和/或级别来确定阈值(或者,N和M)。也就是说,可以根据影像的层级和/或级别来可变地设置阈值(或者,M和N)。替选地,可以基于当前单元周围的一个或更多个单元的N和M或其比率来计算当前单元中的N与M之间的比率。替选地,用于一个或更多个先前单元的N和M可以在先进先出(first-in first-out,FIFO)型查找表中存储和管理,并且可以通过视频解码装置来使用与从视频编码装置传输的索引相对应的N和M。
在本发明的另一实施方案中,当阈值或计数器不可用时,熵解码器510可以针对每个层单元、语法元素或构成语法元素的二进制数据,根据视频编码装置与视频解码装置之间的协议来确定是否跳过自适应二进制算术解码。在这种情况下,可以以查找表的形式表达视频编码装置与视频解码装置之间的协议。
熵解码器510执行自适应二进制算术解码(S608)。
熵解码器510可以对应用自适应二进制算术解码的二进制数据进行解码。随后将参考图7描述自适应二进制算术解码处理的详情。
熵解码器510执行逆向二值化(S610)。
通过执行逆向二值化,熵解码器510可以从二进制字符串生成表示视频信号的语法元素的值。
图7是根据本发明实施方案的自适应二进制算术解码处理的流程图。
图7是由视频解码装置的熵解码器510执行的自适应二进制算术解码处理(操作S608)的详细流程图。
熵解码器510确定是否执行用于自适应二进制算术解码的初始化,并且在必要时执行初始化(S700)。
首先,当要解码的语法元素是切片/瓦片的第一语法元素时,可以执行用于自适应二进制算术解码的初始化操作。在这种情况下,可以执行以下两个操作,即对表示上下文模型的变量pStateIdx0和pStateIdx1进行初始化的操作,以及对表示解码状态的变量ivlCurrRange和ivlOffset进行初始化的操作。
此外,在当前CTU是包括在瓦片中的行的第一CTU,并且为了引用表示上下文模型的变量的值而存在空间相邻块时,只执行用于指示解码状态的变量的初始化操作。另一方面,当不存在这样的空间相邻块时,可以执行对上下文模型和指示解码状态的变量两者进行初始化的操作。
这里,用于每个语法元素的上下文模型pStateIdx0和pStateIdx1可以是用于最大概率符号(MPS)的概率模型,并且可以具有不同的准确性和自适应速率。可以基于用于当前单元的MPS和QP的概率的初始值来对用于每个语法元素的上下文模型进行初始化。可以根据当前单元的预测模式,利用ctxIdx从ctxTable(所述ctxTable是用于每个语法元素的查找表)获取用于MPS的概率的初始值。用于每个语法元素的ctxTable是根据视频编码装置与视频解码装置之间的协议而设置的查找表,并且根据ctxIdx以及在上下文模型更新操作中使用的shiftIdx,提供用于MPS的初始概率值。ctxIdx给定为ctxInc和ctxIdxOffset的和,其中ctxIdxOffset是取决于预测模式的值,并且可以基于诸如相邻块的语法、CU的深度和变换的大小的各种信息来计算ctxInc。
变量ivlCurrRange(其指示自适应二进制算术解码的状态)表示用于解码的当前部分,而ivlOffset是从压缩的比特流获取的预设长度的偏移并且表示ivlCurrRange内的位置。在指示解码的状态的变量的初始化操作中,可以将ivlCurrRange初始化为预设值(例如,510)。替选地,可以基于表示概率的动态范围的比特深度来计算ivlCurrRange。可以将ivlOffset初始化为从比特流获取的n个比特(n是自然数)的值。如这里所提供的,可以基于ivlCurrRange的长度来确定n,或者可以从视频编码装置用信号通知n。
在二进制算术解码中,可以通过重复将与ivlCurrRange的长度相对应的部分划分为两个部分的操作来执行解码。对于两个概率值p0和p1(其中,p1=1-p0),可以将ivlCurrRange的部分划分为长度为p0×ivlCurrRange和(1-p0)×ivlCurrRange的两个部分。可以根据由二进制算术解码产生的二进制数据值来选择两个部分的一个。
熵解码器510通过执行二进制算术解码来生成二进制字符串(S702)。
熵解码器510可以执行二进制算术解码处理作为自适应二进制算术解码处理的一部分。熵解码器510可以利用针对每个语法元素的上下文模型pStateIdx0和pStateIdx1来更新ivlCurrRange和ivlOffset,并且生成二进制数据。首先,如等式1到等式3所示更新ivlCurrRange。
[等式1]
qRangeIdx=ivlCurrRange>>a
pState=pStateIdx1+b*pStateIdx0
valMps=pState>>c
[等式2]
ivlLpsRange=(qRangeIdx*((valMps?(c+1)-pState:pState)
>>(c-a))>>1)+d
[等式3]
ivlCurrRange=ivlCurrRange-ivlLpsRange
这里,a、b、c和d都是自然数,并且c是大于a的自然数。qRangeIdx具有通过将ivlCurrRange(所述ivlCurrRange是当前部分)除以(1<<a)而获得的值,并且qRangeIdx可以表示用于具体部分的索引。如上所述,两个上下文模型pStateIdx0和pStateIdx1是用于MPS的概率模型,每个概率模型具有(c-b)比特和c比特的准确性。如等式1所示,利用两个概率模型的概率值,可以计算当前状态的概率值pState,并且可以根据当前状态的概率值确定MPS值。此外,如等式2所示,在计算出最小概率符号(least probable symbol,LPS)的部分长度ivlLpsRange之后,可以利用等式3来更新当前部分的长度。
可以基于更新后的ivlCurrRange和ivlOffset来确定二进制数据值。当ivlOffset大于或等于ivlCurrRange时,二进制数据值确定为LPS值(!(MPS值)),并且如等式4所示更新ivlOffset和ivlCurrRange。
[等式4]
ivlOffset=ivlOffset--iVlCurrRange
ivlCurrRange=ivlLpsRange
另一方面,当ivlOffset小于ivlCurrRange时,将二进制数据值确定为MPS值,并且跳过ivlOffset和ivlCurrRange的更新。确定出的二进制数据值可以形成二进制字符串。
熵解码器510将二进制字符串存储在二进制数据缓冲区中(S704)。如上所述,熵解码器510可以利用逆向二值化处理S610,根据存储在二进制数据缓冲区中的二进制数据值解码表示视频信号的语法元素的值。
熵解码器510更新上下文变量(S706)。
为了更新上下文变量,熵解码器510可以利用shiftIdx计算用于两个概率模型的自适应速率shift0和shift1,如等式5所示。
[等式5]
shift0=(shiftIdx>>e)+f
shift1=(shiftIdx&g)+h+shift0
这里,e、f、g和h都是自然数。
熵解码器510可以利用如等式6和等式7所示的自适应速率来更新两个概率模型pStateIdx0和pStateIdx1。
[等式6]
pStateIdx0=min(pStateIdx0-(pStateIdx0>>shift0)+
((1<<(c-b))*bin>>shift0),pMax0)
[等式7]
pStateIdx1=min(pStateIdx1-(pStateIdx1>>shift1)+
((1<<c)*bin>>Shift1),pMax1)
这里,min(x,y)函数是输出x和y的较小值的函数,并且pMax0和pMax1是概率模型可能具有的最大概率值。因此,与旁路模式相比,通过利用min(x,y)函数使得将每个概率模型的概率值截取为最大值,根据本实施方案的自适应二进制算术编码/解码处理有效地限制了二进制数据的数量并且操作二进制数据缓冲区。
可以从视频编码装置传输pMax0和pMax1。替选地,可以利用基于ShiftIdx的查找表来确定、计算或推导pMax0和pMax1。替选地,可以仅用信号通知pMax0和pMax1的一个,并且可以基于pMax0来计算pMax1,或者可以基于pMax1来计算pMax0。替选地,pMax0和pMax1可以是根据视频编码装置与视频解码装置之间的协议而预定的值。替选地,可以按照编码和解码的顺序,基于先前单元的pMax0和pMax1来计算当前单元的pMax0和pMax1。替选地,可以基于在一个或多个颜色空间中与当前单元相同位置处的单元的pMax0和pMax1来计算当前单元的pMax0和pMax1。
熵解码器510确定并执行重新归一化(S708)。
当更新的ivlCurrRange的长度小于预设阈值T时,熵解码器510可以执行重新归一化。可以从视频编码装置传输阈值T。替选地,可以利用高级别信息来推导阈值T。替选地,可以从一个或多个相邻单元推导阈值T。在执行重新归一化操作时,熵解码器510将ivlCurrRange的长度加倍,并且将从比特流获取的1比特附加到ivlOffset的最低有效位(least significant bit,LSB)。
当跳过自适应二进制算术解码时,熵解码器510可以执行二进制算术解码作为旁路模式。在二进制算术解码处理中,将用于MPS的概率值设置为0.5,并且相应地,可以将ivlOffset的最高有效位(most significant bit,MSB)确定为二进制数据值。
上面主要描述了熵解码。由于熵编码对应于熵解码的反向处理,因此将跳过对熵编码的详细描述。此外,上述保持对二进制数据与比特的比率的约束以便有效地操作二进制数据缓冲区的方法甚至可以应用于熵编码。
如上所述,根据本实施方案,通过提供在与比特流生成和解析相关的熵编码和解码中有效地操作二进制数据缓冲区的方法,可以限制二进制数据与比特的比率。
在本发明的一个方面中,视频编码/解码装置可以配置包括各种熵编码/解码方法的列表,并且针对熵编码/解码的每个基本单元自适应地使用熵编码/解码方法。
在用于熵编码的方法(在下文中称为“熵编码方法”)中,将用于表示视频信号的语法元素二值化并转换为二进制字符串。然后,对二进制字符串的每个二进制数据执行自适应二进制算术编码(在下文中称为“二进制算术编码”)以生成比特流。语法元素可以包括与当前块的分割和预测相关的信息、通过对当前块的残差信号进行变换/量化而生成的信号、差分信号以及与量化信号相关的信息。
为了对输入二进制字符串的每个二进制数据执行编码,可以基于编码信号的比特深度、关于根据比特深度的概率范围的分割的信息、以及关于分割概率范围内当前二进制算术编码处理的状态信息、语法元素、字符串的每个二进制数据的LPS(MPS)或关于每个二进制数据的LPS(MPS)的概率信息的至少一个来执行二进制算术编码。在二值化之后的二进制算术编码处理中,可以利用与基于上述信息编码的二进制数据的LPS(MPS)和LPS(MPS)有关的概率信息,在当前概率范围内确定包括要编码的二进制数据的概率范围。当确定了要编码的二进制数据的概率范围时,可以基于与相应的二进制数据有关的上下文信息,在分割概率范围内更新关于二进制算术编码处理的状态信息。也就是说,可以根据二进制算术编码方法来更新诸如关于要编码的二进制数据的LPS(MPS)的概率信息的上下文信息。可以基于根据视频编码装置与视频解码装置之间的协议在无需附加信息的情况下经过二进制算术编码的一个或更多个语法元素,以及通过将语法元素二值化而获得的关于二进制字符串中的每个二进制数据的索引信息,来执行要编码的二进制数据的上下文信息的更新。
在本发明的另一实施方案中,可以将固定值作为LPS(MPS)的概率和LPS(MPS)应用于上下文信息未更新的二进制数据。例如,可以将二进制字符串中上下文信息未更新的所有二进制数据的LPS固定为1,并且可以将LPS的概率值固定为1/2。可以将LPS的固定的概率值设置为1/2、1/4、3/8等,并且可以使用分母可以表达为2的幂的各种概率值。替选地,可以利用具有索引的表对LPS(MPS)的概率和LPS(MPS)进行编码,可以将表传输至视频解码装置,并且可以基于传输的信息执行二进制算术解码。
在执行二值化和二进制算术编码处理时,视频编码装置的熵编码器155可以利用由包括编码块的熵编码的基本单元(参见图8)所限制的熵编码方法来执行熵编码。熵编码器155利用高级别信息来传输熵编码方法的列表,并且传输熵编码的基本单元中列表的索引。此外,熵编码器155利用在熵编码的基本单元内的编码块中指定给相应索引的熵编码方法来执行熵编码。熵编码的基本单元可以包括一个或更多个编码块。熵编码方法可以是一个或更多个K(其中,K是自然数)。当K为2时,熵编码方法可以是1位标志。此外,当K为1时,提供一种熵编码方法,因此可以省略关于列表索引的信息,并且可以根据视频编码装置与视频解码装置之间的协议,将固定的方法用作熵编码方法。
在本发明的一个方面中,在熵编码方法中可以跳过二进制算术编码。在执行熵编码方法时,熵编码器155可以将相应的信息输出为比特流,而跳过对二值化结果的二进制算术编码。另外,跳过二进制算术编码的方法可以包括在上述熵编码方法的列表中。可以形成包括跳过作为熵编码的第一方法的二进制算术编码、作为第二方法的第一二进制算术编码和作为第三方法的第二二进制算术编码的列表。可以存在一个或更多个、J个二进制算术编码方法(其中J是自然数),并且根据J个二进制算术编码方法可以存在K个熵编码方法。K可以大于或等于J。此外,当K为2时,在熵编码方法中,可以利用1位标志来开启/关闭二进制算术编码方法。当K为1时,只存在一种熵编码方法,因此可以省略关于列表索引的信息,并且可以将根据视频编码装置与视频解码装置之间的协议的固定的方法用作熵编码方法。
在本发明中,一种熵编码方法可以配置为各种二值化方法和二进制算术编码方法的组合。在这种情况下,包括在熵编码方法的列表中的编码方法的数量K可以是二值化方法与二进制算术编码方法之间的组合的最大数量。另外,特定的二值化方法可以与特定的二进制算术编码方法相结合。在确定了列表的配置之后,可以将列表从视频编码装置传输至视频解码装置,或者可以根据视频编码装置与视频解码装置之间的协议来确定列表的配置。此外,二值化方法可以在跳过二进制算术编码的情况与执行二进制算术编码的情况之间不同。
可以在无需传输附加信息的情况下,根据视频编码装置与视频解码装置之间的协议,在视频解码装置处推导关于二值化方法的详细信息。此外,可以将索引信息的一部分传输至视频解码装置,然后可以推导关于二值化方法的全部信息。
在根据本发明的熵编码方法中,关于在高级别处传输的二进制算术编码方法的信息可以包括在对用于编码的每个语法元素进行二值化之后的关于二进制数据的上下文信息以及关于是否更新上下文信息的指示中的至少一个,所述上下文信息例如二进制数据的MPS和关于MPS的概率信息、用于更新概率范围的概率更新窗口的大小,以及二进制数据的LPS(MPS)的概率。二进制算术编码方法以在每个语法元素的二值化之后的关于二进制数据的上下文信息以及上下文信息的更新配置为特征,所述上下文信息例如二进制数据的MPS和关于MPS的概率信息、用于更新概率的概率更新窗口的大小,以及二进制数据的LPS(MPS)的概率。多个二进制算术编码方法构成列表。
相应地,根据由要编码的二进制数据使用的二进制算术编码方法,可以辨别是否更新上下文,所述上下文例如概率更新窗口大小、MPS和关于MPS的初始概率信息,以及关于二进制数据的LPS(MPS)的概率信息。例如,当指示为“0”的二进制数据的MPS为1、MPS的概率为3/4,并且不执行诸如关于二进制数据的LPS(MPS)的概率信息的上下文的更新时,相应的二进制数据为0且不为MPS,但MPS的概率可以保持为3/4,而无需诸如关于二进制数据的LPS(MPS)的概率信息的上下文的更新,然后可以执行编码。
此外,可以根据视频编码装置与视频解码装置之间的协议来确定是否更新二进制数据的上下文。相应地,当在视频编码装置与视频解码装置之间达成跳过特定语法元素或特定语法元素的特定二进制数据的上下文更新的协议时,可以无条件地为其余的二进制数据更新上下文。
对于编码效率,关于MPS的概率信息可以被指示为关于LPS的概率信息并被传输,并且可以由视频解码装置推导为“1-LPS的概率信息”。
在根据本发明的熵编码方法中,可以将在无需上下文更新的情况下在二值化之后对二进制数据执行二进制算术编码的方法设置为单独的二进制算术编码方法。在该方法中,仅利用在二值化之后的二进制数据的MPS和关于MPS的概率信息来执行二进制算术编码,并且可以重复执行而无需上下文更新。因此,这种二进制算术编码方法可以由用于每个语法元素的每个二进制数据的MPS和MPS概率信息来定义。也就是说,用于每个语法元素的每个二进制数据可以具有独立的MPS和MPS概率信息,或者可以具有相同的MPS和MPS概率信息。替选地,只有一个MPS和关于MPS的概率信息可以是相同的。
当用于每个语法元素的每个二进制数据的MPS和MPS概率信息两者均相同时,视频编码装置可以直接向视频解码装置传输MPS和MPS概率信息的一个组合,或者可以传输可推导信息以使得视频解码装置能够推导所述MPS和MPS概率信息的一个组合。此外,当每个语法元素的每个二进制数据具有独立的组合时,视频编码装置可以直接向视频解码装置传输每个组合,或者可以传输可推导信息以使得视频解码装置能够推导所述组合。此外,当MPS全部相同并且关于MPS的概率信息不相同时,视频编码装置可以直接向视频解码装置传输用于每个语法元素的每个二进制数据的一个MPS和概率信息,或者可以传输可推导信息以使得视频解码装置能够推导所述用于每个语法元素的每个二进制数据的一个MPS和概率信息。
在根据本发明的熵编码方法中,可以利用高级别语法元素从视频编码装置向视频解码装置传输关于二进制算术编码方法的列表分量的信息。在视频编码/解码结构中,高级别语法元素可以在具有高于熵编码单元的分割概念的级别处传输,或者在诸如VPS、SPS、PPS、APS或SEI消息的级别的一个处传输。较高分割概念可以意味着一个图像被分割成的单元,并且可以是诸如子图像、瓦片组、瓦片、切片、砖块等的一组块,以及诸如网格的一组像素。
在根据本发明的熵编码方法中,可以以k的指数形式表达初始MPS的概率值、概率范围更新窗口的大小以及用于将0与0.5之间的归一化值划分为概率范围的范围划分深度。如这里所提供的,k可以是大于或等于2的正整数,并且指数p、q和r可以是非零整数。可以从视频编码装置向视频解码装置用信号通知指数p、q和r的至少一个。视频编码/解码装置可以利用指数p、q、r和k来推导初始MPS的开始概率和更新窗口的值。例如,当k为2、MPS的概率指数p为3、窗口大小指数q为1,并且范围深度指数r为7时,将0与0.5之间的概率范围划分为对应于27的(0~127),MPS的初始概率位置为8,即23的位置,并且以21为单位更新概率范围。当表达为0与0.5之间的归一化值时,MPS的初始概率可以为1/16,并且可以以1/128为单位执行概率更新。
此外,可以以具有指数的表的形式传输分割部分的深度、更新窗口的大小,以及MPS和关于MPS的概率信息。可以通过传输与每个语法元素的二进制字符串中的每个二进制数据相对应的索引来指示关于根据本发明的二进制算术编码方法的信息。
在根据本发明的熵编码方法中,熵编码器155可以具有列表存储器,以存储关于二进制算术编码的状态信息。根据在包括编码块的熵编码的基本单元中应用的二进制算术编码方法(参见图8),熵编码器155在编码块的二值化之后执行二进制算术编码。当要编码的块的熵编码的基本单元的二进制算术编码方法在二值化之后执行二进制算术编码时,可以存储作为执行结果的概率信息。由于N个二进制算术编码方法构成列表,还根据二进制算术编码方法列表的索引执行存储器的存储和管理。当后面应用相同的二进制算术编码方法时,可以使用并更新存储的概率信息。相同的二进制算术编码方法的应用包括相同的熵编码的基本单元,并且可以包括单元不是相同的熵编码的基本单元的情况。相应地,即使在完成了熵编码的一个基本单元的编码之后,也可以存储和使用存储的概率信息。
另外,可以针对每个熵编码单元执行二进制算术编码的初始化。在这种情况下,在概率信息被存储并管理在一个熵编码单元中之后,当一个熵编码结束时,可以对存储的信息进行初始化。另外,当在每个熵编码单元中执行二进制算术编码的初始化时,可以利用熵编码的基本单元中的一个存储器来存储和管理概率信息。
在下文中,将描述用于由视频解码装置执行的熵解码的方法(在下文中,称为“熵解码方法”),该方法针对由视频编码装置根据如上所述的熵编码方法生成的比特流。
图9是根据本发明另一实施方案的用于熵解码的方法的流程图。
熵解码器510解析与包括在比特流的高级别中的熵解码方法有关的信息(S900)。解析的信息可以存储在相关的存储器中。
熵解码器510推导关于熵解码的基本单元的熵解码信息(S902)。
基于解析的高级别信息,熵解码器510可以推导关于二进制算术编码方法的信息、熵解码的基本单元的大小(参见图8)、熵解码的基本单元的二进制算术编码方法、根据索引的当前解码块的二进制算术解码方法等。此外,在以熵解码的基本单元推导上述信息之后,可以以解码块单元推导附加信息。
熵解码器510获取关于二进制算术解码的信息(S904)。可以从与二进制算术解码相关的存储内存获取关于相应索引的二进制算术解码方法的信息。
熵解码器510根据是否执行二进制算术解码来执行二进制算术解码(S906),并且执行逆向二值化(S908)。
当熵解码的基本单元的当前解码方法是跳过二进制算术解码的方法时,熵解码器510可以通过对比特流的值进行逆向二值化来执行熵解码。
在包括逆向二值化的熵解码的情况下,熵解码器510可以通过二进制字符串的逆向二值化来生成熵解码结果。在不包括逆向二值化的熵解码的情况下,熵解码器510可以输出二进制字符串作为熵解码结果。
在下文中,将参考图10给出当熵解码的基本单元的当前解码方法是执行二进制算术解码的方法时执行的比特流的每个二进制数据的二进制算术解码(操作S906)的详细描述。
图10是根据本发明另一实施方案的二进制算术解码处理的流程图。
熵解码器510基于概率范围信息和偏移信息来确定二进制数据(S1000)。基于概率范围信息和偏移信息,熵解码器510可以在LPS与MPS的概率范围之间决定包括解码的二进制数据的范围,并且确定适合于相应范围的二进制数据。
熵解码器510确定在二进制数据上的解码是执行上下文更新的二进制算术解码还是跳过更新的二进制算术解码(S1002),并且执行上下文更新(S1004)。
为了便于计算,可以利用改变表的索引并利用改变的表的索引映射的方法、利用等式直接更新要更新的概率的方法、利用移位操作执行更新的方法、或者乘以权重并执行移位操作的方法中的一个或更多个来执行上下文更新。
此外,可以利用以下方法的一个或更多个来执行上下文更新:根据视频编码/解码装置之间的协议或在高级别处传输的二进制算术解码信息应用于所有二进制数据的方法、根据视频编码/解码装置之间的协议选择性应用于一些二进制数据的方法、或者根据在高级别处传输的二进制算术解码信息选择性应用于每个二进制数据的方法。
在上下文更新中,可以利用以下方法的一个或更多个来改变关于LPS和MPS的概率信息:根据视频编码/解码装置之间的协议改变表的索引的方法、根据视频编码/解码装置之间的协议添加预设概率值或乘以预设值或移位预设值的方法、或者根据在高级别处传输的上下文信息自适应地向每个二进制数据添加概率值或乘以预设值或移位预设值的方法。
熵解码器510存储二进制算术解码的状态(S1006),并且输出确定的二进制数据(S1008)。
可以利用与上述熵编码方法相对应的方法来执行以上未描述的熵解码方法的详细执行处理。
在本实施方案中,当选择跳过二进制算术编码/解码的编码/解码方法时,可以根据关于当前编码/解码块的信息自适应地执行熵编码/解码。自适应执行意味着可以独立于在包括编码/解码块的熵编码/解码的基本单元中指定的信息,基于关于编码/解码块和相邻块的编码/解码信息,来推导二进制算术编码/解码方法。当熵编码列表的数量K为1,并且使用跳过在熵编码/解码的基本单元中应用的熵编码/解码方法的二进制算术编码/解码方法时,熵编码的基本单元的熵编码/解码方法可以全部相同。
此外,当根据当前正在解码的块的大小、块的预测模式、块的MV准确性、块的信号特性(亮度/色度)、块的分割状态、块的变换核的类型、块的第二变换的状态、块的量化系数值、块的量化矩阵值、块的变换的状态等,特定条件得到满足时,可以将熵编码/解码方法确定为跳过二进制算术编码/解码的方法。在这种情况下,特定跳过的方法可以是不包括在熵编码/解码方法的传输列表中的方法。该方法可以是根据视频编码/解码装置之间的协议的方法,视频编码/解码装置可以在无需传输的信息的情况下识别熵编码/解码方法。
例如,在当前解码块具有可以在无需分割的情况下进行编码/解码的最大大小时,块的熵编码/解码方法可以是具有跳过二进制算术编码/解码的方法。此外,在将当前解码块分割为最小大小的块时,块的熵编码/解码方法可以是具有跳过二进制算术编码/解码的方法。前述是特定条件的示例,并且根据可以推导这种特定条件的情况,各种实施方案可以是可能的。
如上所述,根据本发明,在与比特流的生成和解析相关的熵编码和解码中,提供这样一种方法,其配置包括各种熵编码/解码方法的列表并且针对熵编码/解码的每个基本单元自适应地利用熵编码/解码方法。相应地,可以根据应用和信号的特性来执行熵编码/解码。
虽然根据本实施方案在每个流程图中示出了顺序地执行各个操作,但是实施方案不限于此。换句话说,在一个或更多个操作的执行或并行执行中的操作的改变可以是适用的,因此流程图不限于时间序列顺序。
尽管已经出于说明的目的描述了示例性实施方案,但是本领域的技术人员将理解,在不脱离实施方案的思想和范围的情况下,各种修改和变化是可能的。为了简洁和清楚起见,已经描述了示例性实施方案。相应地,普通技术人员应当理解,实施方案的范围不受以上明确描述的实施方案限制,而是包括在权利要求及其等同形式内。
附图标记
155:熵编码器
510:熵解码器。
相关申请的交叉引用
本申请要求2019年8月6日提交的韩国专利申请No.10-2019-0095448、2019年8月9日提交的韩国专利申请No.10-2019-0097803以及2020年8月6日提交的韩国专利申请No.10-2020-0098311的优先权,其全部内容通过引用合并于本文中。
Claims (12)
1.一种用于由视频解码装置执行的熵解码的方法,所述方法包括:
接收通过对图像编码而生成的比特流;
执行算术解码处理以通过解码比特流来生成至少一个二进制字符串,每个二进制字符串包括至少一个二进制数据;以及
通过对二进制字符串进行逆向二值化来生成语法元素,
其中,通过解码比特流而生成的二进制数据的数量满足所述数量不超过阈值的约束,
其中,根据视频的层级或级别来能够变化地设置所述阈值。
2.根据权利要求1所述的方法,其中,所述阈值是基于图像的大小、亮度分量与色度分量之间的采样比率以及比特深度而计算的值。
3.根据权利要求1所述的方法,其中,为了满足二进制数据的数量不超过所述阈值的约束,执行算术解码处理包括:
每读取一比特使计数器增加N,并且根据一个二进制数据的出现使计数器递减M,其中M和N是自然数并基于所述阈值来确定;
根据计数器是否大于N,选择性地执行基于上下文的自适应二进制算术解码或基于均匀概率的二进制算术解码。
4.根据权利要求3所述的方法,其中,所述自适应二进制算术解码包括:
从用于解码的当前部分生成具体部分;
针对每个语法元素,利用第一上下文模型和第二上下文模型获得用于最大概率符号MPS的当前概率值,并且生成MPS值;
利用具体部分和MPS值来计算最小概率符号LPS的部分的长度,并且利用LPS的部分的长度来更新当前部分;
利用从比特流获取的预设长度的偏移和更新的当前部分来生成一个二进制数据,并且当将LPS的值确定为一个二进制数据时,重新调整偏移和当前部分,其中,所述LPS的值是从MPS的值生成的;
更新第一上下文模型和第二上下文模型;以及
当重新调整的当前部分小于预设阈值时,对当前部分和偏移进行重新归一化。
5.根据权利要求4所述的方法,其中,更新第一上下文模型和第二上下文模型包括:
针对每个语法元素,计算第一自适应速率和第二自适应速率;以及
利用第一自适应速率来更新第一上下文模型,并且利用第二自适应速率来更新第二上下文模型,
其中,将第一上下文模型裁剪为第一上下文模型能够具有的最大概率值,并且将第二上下文模型裁剪为第二上下文模型能够具有的最大概率值。
6.一种用于对语法元素进行熵编码的方法,所述语法元素是根据构成图像的每个块的预测编码而生成的,所述方法包括:
对每个语法元素进行二值化并且生成至少一个二进制字符串,每个二进制字符串包括至少一个二进制数据;
执行算术编码处理以从二进制字符串生成编码的数据;以及
从编码的数据生成由一个或更多个网络抽象层NAL单元组成的比特流,
其中,二进制数据的数量相对于一个或更多个NAL单元的长度被约束为不超过阈值,
其中,根据影像的层级或级别来能够变化地设置阈值。
7.根据权利要求6所述的方法,其中,当二进制数据的数量相对于一个或更多个NAL单元的长度超过阈值时,通过***预定义的长度的一个或更多个零字来配置一个或更多个NAL单元的每个。
8.根据权利要求6所述的方法,其中,所述阈值是基于图像的大小、亮度分量与色度分量之间的采样比率以及比特深度而计算的值。
9.根据权利要求6所述的方法,其中,为了满足二进制数据的数量不超过阈值的约束,执行算术编码处理包括:
使计数器每比特增加N,并且使计数器每二进制数据递减M,其中M和N是自然数并且基于所述阈值来确定;
根据计数器是否大于N,选择性地执行基于上下文的自适应二进制算术编码或基于均匀概率的二进制算术编码。
10.一种用于熵解码的装置,包括:
算术解码器,其配置为:
接收通过对图像编码而生成的比特流;以及
执行算术解码处理以通过解码比特流来生成至少一个二进制字符串,每个二进制字符串包括至少一个二进制数据;以及
逆向二值化器,其配置为通过对二进制字符串进行逆向二值化来生成语法元素,
其中,通过解码比特流而生成的二进制数据的数量满足所述数量不超过阈值的约束,
其中,根据影像的层级或级别来能够变化地设置所述阈值。
11.根据权利要求10所述的装置,其中,所述阈值是基于图像的大小、亮度分量与色度分量之间的采样比率以及比特深度而计算的值。
12.根据权利要求10所述的装置,其中,为了满足二进制数据的数量不超过阈值的约束,所述算术解码器配置为:
每读取一比特使计数器增加N,并且根据一个二进制数据的出现使计数器递减M;以及
根据计数器是否大于N,选择性地执行基于上下文的自适应二进制算术解码或基于均匀概率的二进制算术解码,
其中,M和N是自然数并且基于所述阈值来确定。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0095448 | 2019-08-06 | ||
KR20190095448 | 2019-08-06 | ||
KR10-2019-0097803 | 2019-08-09 | ||
KR20190097803 | 2019-08-09 | ||
PCT/KR2020/010401 WO2021025485A1 (ko) | 2019-08-06 | 2020-08-06 | 비디오 부호화 및 복호화를 위한 엔트로피 코딩 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114556927A true CN114556927A (zh) | 2022-05-27 |
Family
ID=74731989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080055455.7A Pending CN114556927A (zh) | 2019-08-06 | 2020-08-06 | 用于视频编码和解码的熵编码 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20210018140A (zh) |
CN (1) | CN114556927A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113905233B (zh) * | 2021-09-30 | 2024-04-30 | 安谋科技(中国)有限公司 | 基于音频视频编码标准的熵解码方法、可读介质及其电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021234A1 (en) * | 1998-03-25 | 2002-02-21 | Taichi Yanagiya | Encoding, decoding, and probability estimation method |
CN101031086A (zh) * | 2002-10-10 | 2007-09-05 | 索尼株式会社 | 视频信息编码方法和视频信息解码方法 |
US20120201294A1 (en) * | 2009-10-14 | 2012-08-09 | Segall Christopher A | Methods for parallel video encoding and decoding |
WO2014002445A1 (en) * | 2012-06-27 | 2014-01-03 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, and recording medium, and image decoding apparatus, image decoding method, and recording medium |
US20140362904A1 (en) * | 2012-01-18 | 2014-12-11 | Lg Electronics Inc. | Method and device for entropy coding/decoding |
CN107517383A (zh) * | 2011-06-16 | 2017-12-26 | Ge视频压缩有限责任公司 | 支持模式切换的熵编码 |
CN107787582A (zh) * | 2015-06-10 | 2018-03-09 | 三星电子株式会社 | 使用用于自适应加权预测的语法信令对图像进行编码或解码的方法和设备 |
US10127913B1 (en) * | 2017-07-07 | 2018-11-13 | Sif Codec Llc | Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods |
-
2020
- 2020-08-06 KR KR1020200098311A patent/KR20210018140A/ko active Search and Examination
- 2020-08-06 CN CN202080055455.7A patent/CN114556927A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021234A1 (en) * | 1998-03-25 | 2002-02-21 | Taichi Yanagiya | Encoding, decoding, and probability estimation method |
CN101031086A (zh) * | 2002-10-10 | 2007-09-05 | 索尼株式会社 | 视频信息编码方法和视频信息解码方法 |
US20120201294A1 (en) * | 2009-10-14 | 2012-08-09 | Segall Christopher A | Methods for parallel video encoding and decoding |
CN107517383A (zh) * | 2011-06-16 | 2017-12-26 | Ge视频压缩有限责任公司 | 支持模式切换的熵编码 |
US20140362904A1 (en) * | 2012-01-18 | 2014-12-11 | Lg Electronics Inc. | Method and device for entropy coding/decoding |
WO2014002445A1 (en) * | 2012-06-27 | 2014-01-03 | Canon Kabushiki Kaisha | Image coding apparatus, image coding method, and recording medium, and image decoding apparatus, image decoding method, and recording medium |
CN107787582A (zh) * | 2015-06-10 | 2018-03-09 | 三星电子株式会社 | 使用用于自适应加权预测的语法信令对图像进行编码或解码的方法和设备 |
US10127913B1 (en) * | 2017-07-07 | 2018-11-13 | Sif Codec Llc | Method of encoding of data stream, method of decoding of data stream, and devices for implementation of said methods |
Non-Patent Citations (2)
Title |
---|
TZU-DER CHUANG等: ""CE7-1: TB-level constraints on context-coded bins for coefficient coding"", 《JVET 15TH MEETING》, 12 July 2019 (2019-07-12), pages 2 - 2 * |
谢廷: ""基于DSP平台HEVC编码算法研究及优化"", 中国优秀硕士学位论文全文数据库, 15 April 2018 (2018-04-15) * |
Also Published As
Publication number | Publication date |
---|---|
KR20210018140A (ko) | 2021-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102515121B1 (ko) | 쿼드 트리를 이용한 블록 정보 부/복호화 방법 및 이러한 방법을 사용하는 장치 | |
AU2016271137B2 (en) | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design | |
US20200120338A1 (en) | Method and device for processing video signal | |
KR20190076918A (ko) | 비디오 신호 처리 방법 및 장치 | |
KR102661759B1 (ko) | 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에 적합한 변환 계수의 효율적인 코딩 | |
KR20190055113A (ko) | 비디오 코딩을 위한 가변 수의 인트라 모드들 | |
KR20190044629A (ko) | 비디오 코딩을 위한 트리-타입 코딩 | |
KR102539354B1 (ko) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
US12003786B2 (en) | Entropy-coding for video encoding and decoding | |
KR20210122797A (ko) | 인트라 예측 기반 비디오 신호 처리 방법 및 장치 | |
CN114009049A (zh) | 用于针对视频译码的低频不可分离变换信令的上下文建模 | |
KR20210018137A (ko) | 동영상 데이터의 인트라 예측 코딩을 위한 방법 및 장치 | |
KR20160009543A (ko) | 비디오 신호 처리 방법 및 장치 | |
KR20220118351A (ko) | 인트라 예측 신호와 인터 예측 신호의 가중 합을 이용한 예측 블록을 생성하는 방법 및 이를 이용한 장치 | |
CN113273204A (zh) | 帧间预测方法和使用该方法的图片解码装置 | |
KR20220071939A (ko) | 비디오 부호화 및 복호화를 위한 장치 및 방법 | |
CN114556927A (zh) | 用于视频编码和解码的熵编码 | |
KR20200110164A (ko) | 인트라 블록 복사를 이용하는 영상 부호화 및 복호화 | |
KR20210091208A (ko) | 현재 픽쳐 참조를 이용한 비디오 신호 처리 방법 및 장치 | |
KR20230105646A (ko) | 크로마 성분을 위한 템플릿 기반 인트라 모드 유도 방법 | |
KR20200095982A (ko) | 모션 벡터 차이를 사용하는 머지를 기반으로 한 모션 예측을 이용한 비디오 신호 처리 방법 및 장치 | |
CN116636211A (zh) | 利用块合并编码视频的方法和装置 | |
KR20210033858A (ko) | 비디오 코덱에서 인트라 예측에 따른 이차 변환 커널의 유도 및 매핑 방법 | |
US20230308662A1 (en) | Method and apparatus for video coding using block merging | |
US20240007636A1 (en) | Method and apparatus for video coding using versatile information-based context model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |