CN109257048A - 解码数据值序列的方法、数据解码装置及视频接收机 - Google Patents
解码数据值序列的方法、数据解码装置及视频接收机 Download PDFInfo
- Publication number
- CN109257048A CN109257048A CN201811064517.1A CN201811064517A CN109257048A CN 109257048 A CN109257048 A CN 109257048A CN 201811064517 A CN201811064517 A CN 201811064517A CN 109257048 A CN109257048 A CN 109257048A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- bit
- cabac
- data values
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
- H03M7/4018—Context adapative binary arithmetic codes [CABAC]
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/117—Filters, e.g. for pre-processing or post-processing
-
- 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开提供了解码数据值序列的方法、数据解码装置及视频接收机。数据值序列包括基于上下文的自适应二进制算术编码(CABAC)编码的数据值和CABAC旁路数据值,方法包括:在解码数据值序列中的CABAC旁路数据值之前,将CABAC解码器的范围变量值设置为具有至少一个有效位等于零的预定值,以及将一部分数据值序列视为移位寄存器,并将CABAC旁路数据值作为连续的比特值输出到解码的数据流。
Description
本申请是申请日为2014年4月4日、申请号为201480020288.7、发明名称为“数据编码和解码”的专利申请的分案申请,其全部内容结合于此作为参考。
技术领域
本公开涉及数据编码和解码。
背景技术
此处提供的“背景技术”描述仅用于整体介绍本公开的背景的目的。在背景技术部分中描述的本发明人的工作以及提交时并不构成现有技术的描述的各方面既非明确地、亦非默认地承认为本公开的现有技术。
存在若干种视频数据压缩和解压系统,涉及将视频数据转换成频域表示,将频域系数量化,然后,将某一形式的熵编码应用于量化系数。
在本申请上下文中,熵被视为表示数据符号或者一系列符号的信息内容。熵编码的目的是使用(理想上)最小数目的编码数据位以无损方式对一系列数据符号进行编码,需要该最小数目的编码数据位表示该系列数据符号的信息内容。实际上,使用熵编码对量化系数进行编码,以使得编码数据小于(就其位数方面而言)原量化系数的数据大小。对于相同的输入数据大小,更为有效的熵编码过程给出了更小的输出数据大小。
用于熵编码视频数据的一种技术是所谓的CABAC(上下文自适应二进制算术编码)技术。
发明内容
本公开提供根据权利要求1所述的数据编码方法。
所附权利要求中限定了进一步的相应方面和特征。
应当理解的是,上述整体描述和下列细节描述均是示例性的,而非限制本公开。
附图说明
当结合所附附图考虑时,通过参考实施方式的下列细节描述可以更好地理解本公开及伴随的多种优点,因此,容易获得对本公开及伴随的多种优点的更为完整的认识,其中:
图1示意性地示出了使用视频数据压缩和解压的音频/视频(A/V)数据传输和接收系统;
图2示意性地示出了使用视频数据解压的视频显示系统;
图3示意性地示出了使用视频数据压缩和解压的音频/视频存储系统;
图4示意性地示出了使用视频数据压缩的视频摄像机;
图5提供视频数据压缩和解压装置的示意图;
图6示意性地示出了预测图像的生成;
图7示意性地示出了最大编码单元(LCU);
图8示意性地示出了一组四个编码单元(CU);
图9和图10示意性地示出了图8中的编码单元被细分成更小的编码单元;
图11示意性地示出了预测单元(PU)的阵列;
图12示意性地示出了变换单元(TU)的阵列;
图13示意性地示出了部分编码图像;
图14示意性地示出了一组可能的预测方向;
图15示意性地示出了一组预测模式;
图16示意性地示出了Z字形扫描;
图17示意性地示出了CABAC熵编码器;
图18A至图18D示意性地示出了CABAC编码和解码操作的各方面;
图19示意性地示出了CABAC编码器;
图20示意性地示出了CABAC解码器;
图21是示出了编码系统的概况的示意图;
图22是位速率对量化参数(QP)的图表;
图23是启用了变换跳过模式的针对六个测试位深度的位速率对绿色通道PSNR的图表;
图24是禁用了变换跳过模式的针对六个测试位深度的位速率对绿色通道PSNR的图表;
图25是具有14位变换矩阵的针对六个测试位深度的位速率对绿色通道PSNR的图表;
图26是针对一个测试序列的比较各种精度DCT矩阵的位速率对PSNR的图表;
图27是示出了使用旁路固定位编码的一个测试序列的位速率对PSNR的图表;
图28是提供编码配置文件(encoding profile)的实例的表格;
图29至图31是分别示出了CABAC过程的一部分的版本的示意性流程图;
图32A至图32F是示出了不同的CABAC对准方案的示意图;并且
图33至图35是分别示出了CABAC过程的终止阶段的版本的示意性流程图。
具体实施方式
现参考附图,提供的图1至图4给出了结合实施方式利用下面描述的压缩和/或解压装置的装置或者系统的示意性图示。
在硬件中、在诸如通用计算机等通用数据处理装置上运行的软件中、在诸如专用集成电路(ASIC)或者场可编程门阵列(FPGA)等可编程硬件中、或者这些的组合中可以实现下面描述的数据压缩和/或解压装置的全部。应当认识到,在通过软件和/或固件实现实施方式的情况下,软件和/或固件、存储或者另行提供该软件和/或固件的非易失性机器可读数据存储媒介被视为实施方式。
图1示意性地示出了使用视频数据压缩和解压的音频/视频数据传输和接收系统。
输入音频/视频信号10被供应至视频数据压缩装置20,视频数据压缩装置20至少对音频/视频信号10的视频分量进行压缩以用于沿着诸如线缆、光学纤维、无线链路等传输路线30传输。通过解压装置40处理压缩信号,从而提供输出音频/视频信号50。对于回程路径,压缩装置60对沿着传输路线30传输到解压装置70的音频/视频信号进行压缩。
因此,压缩装置20和解压装置70可形成传输链路的一个节点。解压装置40和压缩装置60可形成传输链路的另一节点。当然,在传输链路是单向的实例中,仅一个节点需要压缩装置并且另一节点仅需要解压装置。
图2示意性地示出了使用视频数据解压的视频显示系统。具体地,通过解压装置110处理压缩的音频/视频信号100,从而提供可在显示器120上显示的解压信号。解压装置110可被实现为显示器120的组成部分,例如,与显示设备设置在同一壳体内。可替代地,可将解压装置110设置成例如所谓的机顶盒(STB),应注意,表达式“机顶”并不默示为要求盒子相对于显示器120位于具体的方位或者位置处;“机顶”仅是本领域中用于指示作为外围设备连接至显示器的设备的术语。
图3示意性地示出了使用视频数据压缩和解压的音频/视频存储系统。输入音频/视频信号130被供应至压缩装置140,压缩装置140产生用于使存储设备150存储的压缩信号,存储设备为例如磁盘设备、光盘设备、磁带设备、诸如半导体存储器或其他存储设备等固态存储设备。为了重新播放,从存储设备150读取压缩数据并且将压缩数据传递至解压装置160进行解压,从而提供输出音频/视频信号170。
应当认识到,压缩信号或编码信号、以及存储该信号的存储介质或数据载体被视为实施方式。
图4示意性地示出了使用视频数据压缩的视频摄像机。在图4中,诸如电荷耦合器件(CCD)图像传感器及相关联的控制和读出电子装置等图像捕获设备180产生被传递至压缩装置190的视频信号。麦克风(或者多个麦克风)200产生被传递至压缩装置190的音频信号。压缩装置190产生被存储和/或被传输(总体作为示意性级220示出)的压缩音频/视频信号210。
下面描述的技术主要涉及视频数据压缩。应当认识到,可以结合视频数据压缩技术使用音频数据压缩的许多现有技术来产生压缩的音频/视频信号。因此,将不提供关于音频数据压缩的单独讨论。还应当认识到,在具体的广播质量视频数据中,与视频数据相关联的数据速率通常比与音频数据(无论压缩或者未压缩)相关联的数据速率高出很多。因此,应当认识到,未压缩的音频数据可能伴随有压缩的视频数据,从而形成压缩的音频/视频信号。还应当进一步认识到,尽管本实例(图1至图4中所示)涉及音频/视频数据,然而,可以在仅处理(即,压缩、解压、存储、显示、和/或传输)视频数据的系统中使用下面所述技术。即,实施方式可应用于视频数据压缩,而根据不必一定具有任何相关的音频数据。
图5提供了视频数据压缩和解压装置的示意图。
输入视频信号300的连续图像被供应至加法器310并且被供应至图像预测器320。下面将参考图6更为详细地描述图像预测器320。事实上,加法器310执行减法(负加法)操作,在于加法器310在“+”输入端接收输入视频信号300并且在“-”输入端接收图像预测器320的输出,以使得从输入图像中减去预测图像。结果是生成表示实际图像与投影图像之差的所谓余像(residual image,残差图像)信号330。
生成余像信号的原因之一如下。当被编码的图像中存在更少的“能量(energy)”时,所描述的数据编码技术(即,应用于余像信号的技术)趋于更有效地起作用。此处,术语“有效地”指产生少量的编码数据;对于特定的图像质量水平,希望(并且视为“有效”)实际上产生尽可能少的数据。提及的余像中的“能量”指余像中包含的信息量。如果预测图像与实际图像一致,则两者之差(即,余像)将包含零信息(零能量)并且将非常易于编码成少量的编码数据。总之,如果预测过程很合理地起作用,则期望余像数据包含比输入图像更少的信息(更少的能量),并且由此更易于编码成少量的编码数据。
余像数据330被供应至变换单元340,变换单元340生成余像数据的离散余弦变换(DCT)表示。DCT技术本身已广为人知并且此处将不进行详细描述。然而,本装置中使用的技术的各方面将在下文中更为详细地描述,尤其涉及对应用了DCT操作的不同数据块的选择。下面将参考图7至图12对此进行讨论。
应注意,在一些实施方式中,使用离散正弦变换(DST)而非DCT。在其他实施方式中,可能不使用任何变换。可以选择性地完成此操作,例如,实际上,在“变换跳过”命令或者模式的控制下,绕过变换阶段。
变换单元340的输出(即,图像数据的各个转换块的一组变换系数)被供应至量化器350。视频数据压缩领域中已知各种量化技术,包括从的简单乘以量化比例因子至在量化参数的控制下应用复杂查询表。整体目的是双重的。首先,量化过程减少了变换数据的可能值的数目。其次,量化过程可以增加变换数据的值为零的可能性。这两者可使得下面描述的熵编码过程在产生少量的压缩视频数据时更有效地起作用。
通过扫描单元360可应用数据扫描过程。扫描过程的目的是将量化变换数据重新排序,以将尽可能多的非零量化变换系数聚集在一起,当然,由此将尽可能多的零值系数聚集在一起。这些特征可允许有效地应用所谓的行程长度编码或类似技术。因此,扫描过程涉及从量化变换数据中选择系数,特别地,“扫描顺序”从与已被转换并量化的图像数据块对应的系数块中选择系数,以使得(a)所有的系数都被选择一次作为扫描的一部分,并且(b)扫描趋于提供希望的重新排序。下面将描述用于选择扫描顺序的技术。趋于给出可使用结果的一种示例性扫描顺序是所谓的Z字形扫描顺序。
然后,将扫描系数传递至熵编码器(EE)370。再次,可以使用各种类型的熵编码。下面描述的两各实例是所谓的CABAC(上下文自适应二进制算术编码)系统的变量和所谓的CAVLC(上下文自适应可变长编码)系统的变量。一般而言,CABAC被视为提供更高的效率,并且在一些研究中,已经表明与CAVLC相比较,对于相似的图像质量,提供编码输出数据的数量减少10%-20%。然而,认为CAVLC比CABAC的复杂度(就其实施而言)低很多。下面将参考图17讨论CABAC技术,并且下面将参考图18A-D和图19讨论CAVLC技术。
应注意,示出了作为独立过程的扫描过程和熵编码过程,但是,事实上,可以将扫描过程与熵编码过程组合或者一起处理。即,可以按照扫描顺序将数据读入到熵编码器中。对应的考虑因素应用于下面描述的相应逆过程。
熵编码器370的输出与例如限定预测器320生成预测图像的方式的额外数据(以上提及和/或下面讨论的)一起提供压缩的输出视频信号380。
然而,因为预测器320的操作本身取决于压缩输出数据的解压版,所以还提供回程路径。
该特征的原因如下。在解压过程(将在下面描述)的适当阶段生成残留数据的解压版。不得不将解压的残留数据添加到预测图像中,以生成输出图像(因为原残留数据是输入图像与预测图像之差)。为了使该过程在压缩侧与解压侧之间是可比较性的,在压缩过程中与解压过程中,通过预测器320产生的预测图像应相同。当然,在解压时,该装置并不需要访问原输入图像,而是仅访问解压图像。因此,在压缩时,预测器320基于其对压缩图像的解压版(至少对于图像间编码(inter-image encoding))的预测。
通过熵编码器370完成的熵编码过程被视为“无损耗”,即,可逆转至精确实现首次被供应至熵编码器370的相同数据。因此,在熵编码阶段之前,可以实现回程路径。实际上,通过扫描单元360完成的扫描过程也被视为无损耗,但是,在本实施方式中,回程路径390指从量化器350的输出至互补的逆量化器420的输入。
一般而言,熵解码器410、逆转扫描单元400、逆量化器420、以及逆变换单元430提供熵编码器370、扫描单元360、量化器350、以及变换单元340的相应反函数。现在,将继续对压缩过程进行讨论;下面将单独讨论对输入压缩视频信号进行解压的过程。
在压缩过程中,通过回程路径390将扫描系数从量化器350传递至逆量化器420,逆量化器420完成扫描单元360的逆操作。通过单元420完成逆量化并且通过单元430完成逆变换过程,从而生成压缩-解压余像信号440。
在加法器450中将图像信号440添加到预测器320的输出中,从而产生重构输出图像460。如下所述,这就形成到图像预测器320的一个输入。
现转向应用于接收压缩视频信号470的过程,在通过加法器450将信号加至图像预测器320的输出之前,将信号供应至熵解码器410并且将信号从熵解码器410供应至逆转扫描单元400、逆量化器420、以及逆变换单元430的链路(chain)。更直接地讲,加法器450的输出460形成输出的解压视频信号480。实际上,在输出信号之前,可以应用进一步的滤波。
图6示意性地示出了预测图像的生成,具体地,示出了图像预测器320的操作。
存在预测的两种基本模式:所谓的图像内预测,以及所谓的图像间预测、或者运动补偿(MC)预测。
图像内预测基于关于来自相同图像内的数据的图像块内容的预测。其对应于其他视频压缩技术中的所谓I帧编码。与I帧编码相比,其中,整个图像是内编码,尽管在其他实施方式中,仍逐个图像地进行选择,然而,在本实施方式中,可以逐块在内编码(intra-encoding)与间编码(inter-encoding)之间选择。
运动补偿预测利用尝试限定当前图像中被编码的图像细节的来源(另一邻近图像或者附近图像)的运动信息。因此,在理想实例中,在邻近图像中的相同或者略微不同位置处可以将预测图像中的图像数据的块的内容非常简单地编码成指向对应块的参考(运动矢量)。
返回图6,示出了两种图像预测配置(对应于图像内预测和图像间预测),在模式信号510的控制下,通过乘法器500选择两种图像预测配置的结果,从而提供用于供应至加法器310和加法器450的预测图像的块。根据给出最低“能量”(如上所述,可被认为是需要编码的信息内容)的选择做出抉择,并且将此抉择通过编码输出数据流通知给编码器。在此上下文中,例如,通过完成从输入图像中试减去(a trial subtraction)预测图像的两个版本的区域,通过使差分图像的每个像素值平方,通过求平方值的和,并且通过确认这两个版本中的哪一个可以使与该图像区域相关的差分图像的均方值更低,可以检测图像能量。
在内编码系统中,基于作为信号460的一部分接收的图像块做出实际预测,即,该预测基于编码-解码图像块,以使得在解压装置中可以获得完全相同的预测。然而,通过内模式选择器520可以从输入视频信号300导出数据,从而控制图像内预测器530的操作。
对于图像间预测,运动补偿(MC)预测器540使用诸如通过运动估算器550从输入视频信号300导出的运动矢量等运动信息。通过运动补偿预测器540将这些运动矢量应用于重构图像460的处理版本,从而生成图像间预测的块。
现将描述应用于信号460的处理。首先,通过滤波器单元560滤波信号。这涉及应用“去块”滤波器,从而除去或者至少趋于减少通过变换单元340完成的基于块处理及后续操作的效应。此外,使用通过处理重构信号460和输入视频信号300导出的系数应用自适应环路滤波器。自适应环路滤波器是使用已知技术将自适应滤波系数应用于被滤波的数据的滤波器类型。即,根据各种因素可以改变滤波器系数。限定使用哪个滤波器系数的数据被包括作为编码输出数据流的一部分。
事实上,滤波器单元560的滤波输出形成输出视频信号480。还在一个或者多个图像存储器570中缓冲输出视频信号480;存储连续的图像是运动补偿后的预测处理(尤其是生成运动矢量)的要求。为了满足存储要求,可以通过压缩形式保持图像存储器570中的存储图像,然后,解压以用于生成运动矢量。对于此具体目的,可以使用任何已知的压缩/解压系统。将存储图像传递给插值滤波器580,插值滤波器580生成更高清晰度版的存储图像;在此实例中,中间样本(子样本)被生成为使得通过插值滤波器580输出的插值图像的清晰度是存储在图像存储器570中的图像的清晰度的8倍(在各个维度上)。将插值图像作为输入传递至运动估算器550并且还传递至运动补偿预测器540。
在实施方式中,提供进一步可选阶段,该可选阶段使用乘法器600使输入视频信号的数据值乘以四(仅使数据值向左有效地移两位)以及使用除法器或右移位器610在装置的输出中应用对应的除法操作(右移两位)。因此,左移和右移改变了纯粹用于装置的内部操作的数据。因为减少了任何数据舍入误差的影响,所以这种措施可为装置提供更高的计算精确度(accuracy)。
现将描述对图像进行分割以进行压缩处理的方式。就基础层面(basic level)而言,待被压缩的图像被视为样本的块的阵列。出于本讨论之目的,考虑中的最大块是所谓的最大编码单元(LCU)700(图7),其表示正方形阵列的64x 64样本。此处的讨论涉及亮度样本。根据诸如4:4:4、4:2:2、4:2:0、或者4:4:4:4色度模式(GBR加关键数据),将存在对应于亮度块的不同数目的对应色度样本。
将描述三种基本类型的块:编码单元、预测单元、以及变换单元。概括地讲,LCU的递归式细分允许通过下列方式对输入图片进行分割:可以根据待编码的图像的具体特性设置块的大小和块编码参数(诸如,预测模式或者残差编码模式等)。
LCU可细分成所谓的编码单元(CU)。编码单元始终是正方形并且具有8x8样本与LCU 700的完整大小之间的大小。编码单元可布置成一种树结构,以使得可以如图8所示地进行第一次细分,得到32x32样本的编码单元710;然后,可基于选择进行后续细分,从而给出16x16样本的一些编码单元720(图9)以及潜在的8x8样本的一些编码单元730(图10)。总之,该过程可提供CU块的内容自适应编码树结构,每个CU块均可以与LCU一样大或者与8x8样本一样小。基于编码单元结构执行输出视频数据的编码。
图11示意性地示出了预测单元(PU)的阵列。预测单元是用于携带与图像预测过程有关的信息的基本单元,或者,换言之,预测单元是用于携带被添加到熵编码余像数据中的额外数据,从而形成图5的装置的输出视频信号。通常,预测单元的形状不局限于正方形。只要编码单元大于最小(8x8)大小,则预测单元的形状可以是其他形状,具体地,构成正方形编码单元中的一个的一半的矩形形状。目的是允许相邻预测单元的边界与图片中实际对象的边界(尽可能地)匹配,因此,可将不同的预测参数应用于不同的实际对象。每个编码单元均可包含一个或者多个预测单元。
图12示意性地示出了变换单元(TU)的阵列。变换单元是变换和量化过程的基本单元。变换单元始终是正方形并且可具有4x4样本至32x32样本的大小。每个编码单元均可包含一个或者多个变换单元。图12中的缩写SDIP-P表示所谓的短距离帧内预测分割。在此配置中,仅使用了一种维度变换,因此,通过利用输入数据的N种变换使4xN块经过基于之前解码的相邻块和当前SDIP-P内的之前解码相邻线的变换。
现将讨论内预测过程。概括地讲,内预测涉及从相同图像的之前的编码和解码样本生成对样本的当前块(预测单元)的预测。图13示意性地示出了局部编码图像800。此处,基于LCU从左上方至右下方对图像进行编码。通过处理整个图像的示例性LCU编码中途示出为块810。块810上方至左侧的阴影区域820已被编码。块810的内容的图像内预测可利用阴影区域820的任一部分,但是,不能利用阴影区域820下方的非阴影区域。
块810表示LCU;如上所述,出于图像内预测处理之目的,可将块810细分成一组更小的预测单元。示出了LCU 810内的预测单元830的实例。
图像内预测考虑了当前LCU 810上方和/或左侧的样本。源样本可相对于LCU 810内的当前预测单元位于不同的位置或者方向,从源样本预测所需样本。为了决定哪一方向适合于当前预测单元,将基于各个备选方向的试预测的结果相比较,以了解哪一备选方向给出最接近于输入图像的对应块的结果。选择给出最接近结果的备选方向作为该预测单元的预测方向。
还可基于“切片(slice,片段)”对图片进行编码。在一种实例中,切片是水平相邻组的LCU。但是,更广泛地讲,整个余像可形成切片,或者切片可以是单个LCU,或者切片可以是一行LCU等。因为切片被编码成独立单元,所以切片一定程度地容忍(resilience to)错误。在切片边界处完全重置编码器状态和解码器状态。例如,不跨切片边界执行内预测;出于此目的,切片边界被视为图像边界。
图14示意性地示出了一组可能的(备选)预测方向。全组34个备选方向可用于8x8样本、16x16样本、或者32x32样本的预测单元。4x4样本和64x64样本的预测单元的特殊情况具有可用它们的减小后的组的备选方向(分别为17个备选方向和5个备选方向)。通过相对于当前块位置的水平移位和垂直移位确定方向,但是,将方向编码成预测“模式”,图15中示出了一组预测模式。应注意,所谓的DC模式表示周围的上方和左手边的样本的简单算术平均值。
图16示意性地示出了Z字形扫描,Z字形扫描是通过扫描单元360应用的扫描图案。在图16中,示出了8x8变换系数的示例性块的图案,且DC系数位于该块的左上方位置840处,并且以向下并且至左上方位置840的右侧的递增距离的系数表示递增的水平和垂直空间频率。
应注意,在一些实施方式中,可按照逆转顺序(使用图16中的排序符号自右下方至左上方)扫描系数。此外,还应注意,在一些实施方式中,在完成剩余系数的Z字形之前,扫描可以跨几个(例如,一到三之间)最上方水平行从左至右通过。
图17示意性地示出了CABAC熵编码器的操作。
这种性质的上下文自适应编码中以及根据实施方式,可以针对概率模型或者表示数据位将是一或零的可能性的期望值或者预测的上下文对数据位进行编码。为此,输入数据位被分配了代码值范围内的选择的一个或者两个(或者更一般地,多个)互补子范围内的代码值,且通过上下文(通过与该输入值相关联或者在其他方面与该输入值相关的上下文变量限定该上下文)限定子范围的相应大小(在实施方式中,子范围相对于该组代码值的相应比例)。下一步骤是响应所分配的代码值和所选择的子范围的当前大小,修正整体范围,即,该组代码值(以关于下一输入数据位或值而使用)。然后,如果修正范围小于表示预定的最小大小的阈值(例如,原范围大小的一半),则例如,通过使修正范围加倍(左移)(如果需要,该加倍过程连续性地(不止一次)执行)使修正范围的大小增加,直至该范围至少具有预定的最小大小。此时,输出编码数据位被生成以指示发生了一次(各次,如果不止一次)加倍或者大小增加操作。进一步的步骤是修正上下文(即,在实施方式中,修正上下文变量),以与下一输入数据位或者值一起使用或者关于下一输入数据位或者值而使用(或者,在一些实施方式中,关于待编码的下一组数据位或者值而使用)。通过使用当前上下文以及当前“大概率符号(most probable symbol)”的标识(一或者零,任何一个通过上下文指示当前具有大于0.5的概率)作为新上下文值的查询表的索引或者作为可导出新上下文变量的适当数学公式的输入,从而可以完成此操作。在实施方式中,修正上下文变量可使该组代码值在被选择用于当前数据值的子范围内的比例增加。
CABAC编码器关于二进制数据操作,即,仅通过两个符号0和1表示数据。编码器利用基于之前的编码数据选择后续数据的“上下文”或者概率模型的所谓上下文建模过程。以确定性方式完成对上下文的选择,因此,编码器可以基于之前解码数据执行相同确定,而无需将进一步数据(指定上下文),该进一步数据将添加到被传递至解码器的编码数据流。
参考图17,如果还不是二进制形式,则可将被编码的输入数据传递至二进制转换器900;如果数据已经是二进制形式,则(通过示意性开关910)绕过转换器900。在本实施方式中,实际上,通过将量化变换系数数据表达成下面进一步描述的一系列二进制“映射”完成二进制形式的转换。
然后,通过“正规的”路径和“旁路”路径(示意性地示出了作为独立路径的“正规的”路径和“旁路”路径,但是,在下面所述实施方式中,事实上,通过相同处理阶段可以实现“正规的”路径和“旁路”路径,仅使用了略微不同的参数)两种处理路径中的一种可以处理二进制数据。旁路路径采用了所谓旁路编码器920,旁路编码器920并不一定必须利用与正规的路径相同的形式的上下文建模。在CABAC编码的一些实例中,如果需要特别快速地处理批量数据,则可以选择该旁路路径,但是,在本实施方式中,指出了所谓“旁路”数据的两种特征:首先,通过CABAC编码器(950,960)处理旁路数据,仅使用了代表50%概率的固定上下文模型;其次,旁路数据涉及某些类别的数据,一种具体的实例是系数符号数据。否则,通过示意性开关930、940选择正规路径(regular path)。这涉及编码引擎960之后通过上下文建模器950处理的数据。
如果块全部由零值数据构成,则图17中所示的熵编码器对作为单个值的数据的块进行编码(即,例如,对应于与余像的块有关的系数的块的数据)。对于未落入该分类的各个块,即,包含至少一些非零数据的块,准备“重要图(significance map)”。对于待编码的数据的块中的各个位置,重要图指示该块中的对应系数是否是非零。重要图数据是二进制形式且其自身为CABAC编码。对于重要图指示为零的量级(magnitude)的系数,因为不需要对任何数据进行编码,所以使用重要图有助于压缩。此外,重要图可包括指示块中的最终非零系数的特殊代码,因此,编码时可以省去全部的最终高频率/拖尾(trailing)零系数。在编码位流中,限定由重要图指定的非零系数的值的数据在重要图之后。
其他级的图数据(map data)也被准备并且被CABAC编码。一个实例是如下的图(map):其作为二进制值(1=是,0=否)限定在重要图指示为“非零”的图位置处的系数数据实际上是否具有值“一”。另一图指定重要图指示为“非零”的图位置处的系数数据实际上是否具有值“二”。对于重要图指示系数数据是“非零”的这些图位置,进一步的图指示数据是否具有“大于二”的值。再次,对于被识别为“非零”的数据,另一图指示数据值的符号(使用预定的二进制标注,例如1用于+、0用于-、或者当然也可以相反)。
在实施方式中,例如,通过扫描单元360从量化变换系数生成重要图和其他图,并且在经过CABAC编码之前,量化变换系数经过Z字形扫描过程(或者根据内预测模式从Z字形扫描、水平光栅扫描、以及垂直光栅扫描中选择的扫描过程)。
在一些实施方式中,HEVC CABAC熵编码器使用下列过程对语法元素进行编码:
将TU中的最后一个重要系数(the last significant coefficient)(按照扫描顺序)的位置编码。
对于各个4x4系数组(按照逆转扫描顺序处理各个组),对重要系数组标志进行编码,从而指示该组是否包含非零系数。对于包含最后一个重要系数的组这是不需要的,且假定左上方组(包含DC系数)为1。如果标志是1,则紧随其后编码对与该组有关的以下语法元素:
重要图:
对于该组中的每个系数,对标志进行编码,指示系数是否重要(具有非零值)。最后一个重要位置指示的系数不需要任何标志。
大于一图:
对于具有重要图值1的最多八个系数(从该组末端逆向(backward)计数),这指示量级是否大于1。
大于二标志:
对于具有大于一图值1的最多一个系数(最接近于该组末端处的一个),这指示量级是否大于2。
符号位:
对于所有非零系数,将符号位编码成等概率的CABAC二进制,且当使用符号位隐藏时,可能从奇偶性推断出最后的符号位(按照逆转扫描顺序)。
逸出码:
对于未通过之前句法元素完整描述其量级的任何系数,将余数(remainder)编码成逸出码。
一般而言,CABAC编码涉及基于其他之前的编码数据预测被编码的下一位的上下文或者概率模型。如果下一位与通过概率模型被识别为“最可能”的位相同,则“下一位同意概率模型”信息的编码可以高效率地编码。对“下一位不同意概率模型”进行编码的效率较低,因此,导出上下文数据对于编码器的良好操作比较重要。术语“自适应”指在编码过程中适配或者改变上下文模型或者概率模型,从而尝试提供与(尚未被编码的)下一数据的良好匹配。
使用简单类比,在书面英文语言中,字母“U”相对不常见。但是,在紧随字母“Q”之后的字母位置,确实非常常见。因此,概率模型可将“U”的概率设置成非常低的值,但是,如果当前字母是“Q”,则可将作为下一字母的“U”的概率模型设置成非常高的概率值。
在本配置中,至少对于重要图和指示非零值是否是一还是二的图,使用CABAC编码。至少对于符号数据和指示值是否大于2的图,使用旁路处理,在这些实施方式中,旁路处理与CABAC编码相同,但是,事实上,以1s与0s的等概率分布(0.5:0.5)固定概率模型。对于被识别为大于2的这些数据位置,可以使用单独的所谓转义数据编码对数据的实际值进行编码。这可包括哥伦布-莱斯(Golomb-Rice)编码技术。
在WD4:Working Draft 4 of High-Efficiency Video Coding,JCTVC-F803_d5,Draft ISO/IEC 23008-HEVC;201x(E)2011-10-28中更为详细地描述了CABAC上下文建模和编码过程。
现将稍微更详细地描述CABAC过程。
目前,至少所提议的HEVC系统中使用的CABAC涉及导出被编码的下一位的“上下文”或者概率模型。由上下文变量或者CV限定的上下文则影响如何对该位进行编码。一般而言,如果下一位与CV限定为期望的更可能值的值相同,则在减少限定该数据位所需的输出位数方面存在优点。
编码过程涉及将被编码的位映射至代码值范围内的位置。图18A中示意性地示出了作为从下限m_Low扩展至上限m_high的一系列相邻整数的代码值范围。这两个极限之差为m_range,其中,m_range=m_high–m_Low。通过下面所述的各种技术,在基本CABAC系统中,将m_range约束位于128与254之间;在使用更大位数表示m_range的另一实施方式中,m_range可位于256与510之间。m_Low可以是任意值。m_Low可以从(例如)零开始,但是,作为待描述的编码过程的一部分,m_Low可以改变。
通过相对于上下文变量限定的边界1100将代码值范围m_range划分成两个子范围,如下:
边界=m_Low+(CV*m_range)
因此,上下文变量将总范围划分成该组代码值的两个互补子范围或者子部分,通过变量CV确定分配给各个子范围的组的比例,一个子范围与(下一数据位)值零相关联,并且另一个与(下一数据位)值一相关联。范围的划分表示通过生成被编码的下一位的两个位值的CV而假定的概率。因此,如果与值零相关联的子范围小于总范围的一半,则表明作为下一符号,零被视为比一具有更小的概率。
关于限定围绕子范围适用于可能的数据位值的方式,存在各种不同的可能性。在一种实例中,通过转换将该范围的下限区域(即,自m_Low至边界)限定为与数据位值零相关联。
如果在单个操作对不止一个的位进行编码,则可以提供超过两个的子范围,从而给出对应于待编码的输入数据的各个可能值的子范围。
编码器和解码器保存哪一数据位值具有较低概率的记录(通常被定义为“小概率符号(least probable symbol)”或者LPS)。CV指LPS,因此,CV始终表示0与0.5之间的值。
现将下一位映射至范围m_range,如通过边界划分的。在编码器和解码器中使用下面更为详细描述的技术确定性的完成此操作。如果下一位是0,则将表示自m_Low至边界的子范围内的位置的具体代码值分配给该位。如果下一位是1,则将自边界1100至m_high的子范围内的具体代码值分配给该位。这代表了实施方式通过其根据当前输入数据位的值选择该组代码值中的多个子范围中的一个的技术的实例,并且还代表了实施方式通过其可将当前输入数据值分配给选择的子范围内的代码值的技术的实例。
然后,重新限定下限m_Low和范围m_range,从而根据分配的代码值(例如,被分配的代码值落入的子范围)与选择的子范围的大小修正该组代码值。如果刚刚被编码的位是零,则m_Low不变,但是,将m_range重新限定为等于m_range*CV。如果刚刚被编码的位是一,则将m_Low移至边界位置(m_Low+(CV*m_range))并且将m_range重新限定为边界与m_high之差(即,(1-CV)*m_range)。
在该修正之后,检测该组代码值是否小于预定的最小大小(例如,是m_range,至少128)。至此
图18B和图18C中示意性地示出了这些替代方案。
在图18B中,数据位是1并且因此将m_Low向上移至之前的边界位置。从而提供了下一位编码序列中使用的修改或者修正的组的代码值。应注意,在一些实施方式中,将CV的值改变用于下一位编码,至少部分关于刚刚被编码的位的值。这就是为什么此技术称之为“自适应”上下文的原因。使用CV的修改值生成新的边界1100’。
在图18C中,值0被编码,并且因此m_Low保持不变,但是,将m_high移至之前的边界位置。将值m_range重新限定或者修正为m_high–m_Low的新值。
在本实例中,导致m_range降至低于其最小允许值(例如128)。当检测出此结果时,使值m_range重新规范化或者大小增加,在本实施方式中,以加倍的m_range表示值m_range,即,左移一个位,根据需要多次左移,直至将m_range恢复至128至256的所需范围。其一个实例在图18D中示出,其表示图18C中的范围被加倍从而符合需要的约束条件。从CV的下一值和修改的m_range导出新的边界1100”。应注意,无论何时使m_range重新规范化,类似地使m_Low重新规范化或者大小增加。完成此操作,以保持m_Low与m_range之间的相同比率。
无论何时通过这种方式使该范围乘以两倍,在每个重新规范化阶段均生成一个输出编码数据位。
通过这种方式,根据CV值(在解码器中可被再现)的自适应性和编码位流连续性地修正并且重新规范化间距m_range和下限m_Low。在对一系列位进行编码之后,产生的间距和重新规范化阶段的数目唯一限定编码位流。知道该最终间距的解码器在原理上能够对编码数据进行重构。然而,基础数学表明,实际上,不需要限定解码器的间距,而仅需限定该间距内的一个位置。这就是分配的代码值的目的,分配的代码值在编码器中保持并且在数据编码终止时将其传递给解码器。
为了给出简化的实例,考虑将概率空间划分成100个间距。在这种情况下,m_Low将表示概率空间的底(bottom),并且0和m_Range将表示其大小,(100)。出于本实例之目的,假定将上下文变量设置为0.5(因为其与旁路路径有关),因此,将使用概率空间对具有50%固定概率的二进制位进行编码。然而,如果使用上下文变量的自适应值,则适用相同的原理,使得在编码器和解码器中发生相同的自适应过程。
对于第一位,每个符号(0或1)将具有符号范围50,且输入符号0被分配(例如)值0至49,并且输入符号1被分配(例如)值50至99。如果1是被编码的第一位,则该流的最终值必须在50至99的范围内,因此,m_Low变成50并且m_Range变成50。
为了对第二位进行编码,将该范围进一步细分成符号范围25,且输入符号0具有值50至74,并且输入符号1具有值75至99。由此可见,无论将哪一个符号编码成第二位,则最终值仍在50与99之间,从而保留第一位,但是,现在第二位已被编码成同一数。同样,如果第二位使用与第一位不同的概率模型,因为被细分的范围仍是50至99,所以则第二位仍不能影响第一位的编码。
例如,响应于m_Range降至低于50,对于每个输入位,在编码器端继续该过程,从而使m_Range和m_Low重新规范化(例如,加倍),视情况而定。在编码过程结束时(当终止该流时),最终值已被写入该流。
在解码器侧,从该流读入最终值(因此,名称m_Value),例如,值是68。解码器将相同符号范围划分应用于初始概率空间并且比较其值,从而找出其位于哪一个符号范围内。发现68位于50至99的范围内,解码器将1作为其第一位的符号进行解码。如同在编码器中一样,应用第二范围划分,发现68位于50至74的范围内并且将解码0作为第二位等等。
在实际的执行中,解码器通过从m_Value中减去各个解码符号范围的底值(在这种情况下,从m_Value中减去50,得到18)可避免如同编码器一样必须维持m_Low。然后,符号范围始终是0至(m_range–1)范围(因此,50至74的范围变成0至24)的细分。
重要的是,应注意,如果通过这种方式仅对两个位进行编码,则编码器可拾起50至74范围内的任一最终值并且将其全部解码成相同的两个位“10”(零在一之后)。如果进一步的位待编码,则仅需要更高的精度,实际上,HEVC编码器将始终拾起50,即,该范围的底。本申请中讨论的实施方式试图通过找出保证对最终值进行正确解码的特定位(如果设置适当)利用未使用的范围,无论其余位的值如何,从而释放用于携带其他信息的这些其余位。例如,在上面给出的简单编码中,如果将第一数字设置成6(或者5),则最终值将始终位于50至74的范围内,无论第二数字的值如何;因此,可以使用第二数字携带其他信息。
由此可见,通过重复细分而使用相同的概率范围(给定无限精度分数)可以对位的无端流进行编码。然而,实际上,无限精度是不可能的并且要避免非整数。出于此目的,使用重新规范化。如果使用50至74的范围对第三位进行编码,则符号范围通常将具有12.5的间距,但相反,m_Range和m_Low各自可被分别加倍(或者,不同的是乘以共同的因数)至50和100,并且符号范围现将是100至149的范围的细分,即,每个为间距25。该操作与使自100至200的初始概率空间的大小追溯加倍等同。因为解码器维持相同的m_Range,所以解码器可与编码器的相同时间应用重新规范化。
上下文变量CV被限定为具有(在示例性实施方式中)64种可能的状态,该64种可能的状态连续地指示自CV=63时的下限(诸如,1%)至CV=0时的50%概率的不同概率。
在自适应系统中,根据各个已知的因素将CV从一个位改变或修正至下一个位,根据被编码的数据的块大小,各个已知的因素可以不同。在一些实例中,可以考虑相邻的和之前的图像块的状态。因此,此处描述的技术是修正供下一输入数据值之用的上下文变量的实例,从而使针对当前数据值选择的子范围内的该组代码值的比例增加。
通过上下文建模器950和编码引擎960一起作用可全部完成下列功能:选择子范围;将当前位分配给代码值;修正该组代码值;检测该组是否小于最小大小;并且修正上下文变量。因此,尽管出于说明清晰起见,在图17中将上述功能绘制成独立的各项,然而,上述功能一起作用,从而提供上下文建模和编码功能。然而,出于进一步清晰起见,参考了更为详细示出这些操作和功能的图19。
从表格生成被分配的代码值,该表格对于CV的各个可能值和m_range内的位6和位7的各个可能值(注意,因为m_range的大小的约束,m_range内的位8始终是1),限定一个位置或者一组位置,在所述位置新编码位应该被分配相关子范围内的代码值。
图19示意性地示出了使用上述技术的CABAC编码器。
通过CV导出单元1120被发起(在第一CV的情况下)或者修正(在后续CV的情况下)CV。例如,使用上述表格,代码生成器1130根据CV对当前m_range进行划分、选择子范围、并且生成适当子范围内的分配的数据代码。如上所述,范围重置单元1140将m_range重置成所选择的子范围的m_range,从而修正该组代码值。规范器(normaliser)1150检测m_range的所得值是否低于最小允许值,并且如果需要,则一次或者多次地使m_range规范化,从而在每次重新规范化操作时输出输出编码数据位。如上所提及那样,在该过程结束时,还输出被分配的代码值。
在图20中示意性示出的解码器中,通过以编码器中的单元1120的相同方式操作的CV导出单元1220被发起(在第一CV的情况下)或者修正(在后续CV的情况下)CV。代码应用单元1230根据CV划分当前m_range并且检测数据代码位于哪一子范围内。范围重置单元1240将m_range重置成选择的子范围的m_range,从而根据分配的代码值和选择的子范围的大小修正该组代码值。如果需要,规范器1250则响应接收的数据位使m_range重新规范化。
实施方式提供使CABAC流终止的技术。在示例性系统的上下文中描述了各种实施方式,其中,代码值范围具有最大值512(而非上述所述128)并且因此被约束位于该范围的上半部分内,即,自256至510。
该技术可产生平均1.5个位的损耗(即,产生比之前的流终止技术小许多的损耗)。还提供了产生平均损耗为1个位的第二种替代方法。已建议这些技术的应用包括在发送IPCM(非频率分离的)数据之前终止CABAC流并且终止行每切片(row-per-slice)的流。该技术基于以下认识:CABAC变量可在终止时设置成校正范围内的任一值。因此,将CABAC变量设置成具有多个拖尾(最小有效位)零的值,使得当该值被清除(flush)至数据流时,可有效忽略该零。
在当前技术中,终止CABAC流致使8个位被清除至数据流(即,丢失或者浪费)。通过以下实例示出了该技术:在各个LCU或者图像切片之后(即,在对表示与具体相应的图像子区域有关的数据值的一组数据值进行编码之后)终止帧内,从而允许将系数旁路数据(符号位/逸出码)放入原格式的位流中。
在每个切片结束时并且在IPCM数据之前应用终止CABAC流的过程。在实施方式中,此过程假定(出于此讨论之目的)了将被终止的流的概率固定为平均0.54%。(当对数据值(1或0)进行编码时,将当前m_range细分成分别表示1或者0的概率的两个符号范围。对于特殊的“流结束标志”值,1的符号范围始终是2。因此,数据值为1的概率取决于当前m_range的值。如上所述,在一些实施方式中,m_range可以在256与510之间改变,因此,其终止概率在2/510=0.3922%与2/256=0.7813%之间改变)。
对于编码器,此过程如下:
如果该流将不终止,则CABAC范围m_range递减2,并且如果需要,通过1处重新规范化CABAC引擎(即,使m_Low和m_range重新规范化);对当前的CABAC流的处理继续。
如果该流将被终止,则使CABAC‘m_Low’递减‘范围小于2’,将该范围设置成2,并且通过7处规范化CABAC引擎,随后,输出进一步的二进制‘1’。此过程与8处的重新规范化等同,其中,迫使被重新规范化的值已被强制为奇数。
可能存在上述过程不理想的情况,即,该流的概率是变量、或者被固定在更高的百分比、或者甚至确定性的(概率为1)。
实施方式可提供一种方法,由此仅利用2次重新规范化可以立即终止CABAC流,且(平均)损耗为1.5个位并且对解码器和编码器复杂性的影响可以忽略。还指出了可将开销减少至仅1位的替代方法,但是,代价是使CABAC解码器的复杂性增加。因此,可以结合标准的自适应上下文变量(如果存在终止的变量概率)或者结合固定的百分比机制(类似于非自适应的上下文变量)使用两种方法。
应注意,如上所述,将m_Low和m_Range一起重新规范化。
1.算法
1.1方法
编码器的步骤如下:
m_Low=(m_Low+128)&~127
{或者m_Low=(m_Low+127)&~127}
强制执行m_Low的重新规范化的2个阶段,并且调用test_write_out()
[将该值写入流]
在对下一CABAC流进行编码之前,设置m_Range=510,m_Low=0。
注释:&是AND操作,并且~表示二进制倒数(binary inverse)(因此,~127指对应于十进制127的二进制值的二进制倒数,使得与诸如十进制127(具有等于1的多个最小有效位或者LSB)等数字的二进制倒数的AND操作等同于将所得值的LSB的该数目设置成零)。函数test_write_out()检查m_Low的顶部(MSB末端)的任何位是否适合发送至输出流,如果适合,则它们其写入。在上面所示的伪代码的上下文中,将通过此操作写入由“强制的重新规范化”创建的新位。
解码器的步骤如下:
重绕(rewind)输入流7个位(即,使读位置向后移7个位)。
在对下一CABAC流进行解码之前,设置m_Range=0,并且从位流中读取m_value。
此方法对解码器和编码器具有低处理影响。
关于m_Low,应注意,编码器通过重复性地添加至m_Low产生流。解码器通过从编码器的最终结果开始并且从其重复性的减少而读取该流。解码器调用从流“m_uiValue”(或者该描述中的注释中的m_value)中而非m_Low中读取的位并且应是从位流中读取的位。在其中一些实施方式要求解码器保存m_Low以及m_uiValue、以使解码器获知编码器正在执行的操作的情况下,其具有相关性。在这种情况下,解码器通过与编码器的m_Low的精确相同方式产生m_Low。
替代方法
因为这种方法要求解码器维持m_Low,所以这种方法使当前解码器的复杂性增加。如果其他提议要求m_Low的维持,则这种额外的复杂性再次变成最小化。
编码器的步骤如下:
使test256=(m_Low+255)&~255
如果(test256+256<m_Low+m_Range)
m_Low=m_test256
强制执行m_Low的重新规范化的1个阶段,并且调用test_write_out()。
否则(如上)
m_Low=(m_Low+128)&~127{或者,m_Low=(m_Low+127)&~127}
强制执行m_Low的重新规范化的2个阶段,并且调用test_write_out()。
在对下一CABAC流进行编码之前,设置m_Range=510,m_Low=0。
解码器的步骤如下:
使test256=(m_Low+255)&~255
如果(test256+256<m_Low+m_Range)
重绕流8个位
否则(如上)
重绕流7个位
在对下一CABAC流进行解码之前,设置m_Range=0,设置m_Low=0,并且从位流中读取m_value。
理论
对于CABAC编码器,被写入流中(或者缓冲)的数据与m_Low级联,m_Low是指示最低值(最终输出可是该最低值)的n位值low。最高值high是low和m_Range、以及通过编码器维持的位于范围256(包含)至511(不包含)内的变量的和。在流结束时,可以选择low(包含)与high(不包含)之间的任一值作为最终输出值,而不影响解码。如果在不取决于值的n个LSB的情况下进行解码,则可以使用下一次选择的位流的数据替代该n个LSB。
使v成为low与high之间的值,其中,n个LSB是0,并且其中,如果最后n个LSB是1,则所得值V仍将小于high。因为“high–low”为至少256,所以始终存在low与high之间的值v,值v具有为0的至少7个LSB。即,值v是low与high之间的第一值,该第一值可被128整除,没有余数。
实现此目的的最简单方式是标准的2的幂次方调整程序(alignment routine),即:
v=(low+127)&~127
然而,因为范围至少是256,于是:
v=(low+128)&~127
也是充分的(并且产生略微更小的编码器)。
对于位流的当前部分,编码器将输出值‘v’,但底7个位除外,通过使m_Low的2处重新规范化实现此目的。在位流结束时,解码器已经从位流的下一片段(next section)读取7个位,因此,需要使位流‘重绕’7个位。
存在其中底的8个位不需要使流全部解码的情况,且最简单的例证是其中“m_Low=0”,通过替代的算法探究这些情况。在替代算法中,计算low与high之间具有8个LSB为0的值v,然后,应用测试,以检查是否存在对应的值V。该决策过程要求对low与high进行测试,并且因为解码器也必须做出相同决策,所以解码器需要跟踪m_Low。
在编码器算法的两个版本中,存在用于7位路径的种选择,从而导致不同的位流,但是,可通过同一解码器进行解码。
参考上述图19,单元1120和单元1130代表选择器和数据分配单元的实施方式,选择器选择一组代码值的多个互补子范围中的一个,并且数据分配单元将当前输入值分配给代码值。单元1140代表数据修正单元的实施方式。单元1150代表检测器的实施方式,检测器用于检测该组代码值是否小于最小大小并且相应地完成该检测器的其他功能。单元1150还代表数据终止器的实施方式,数据终止器完成上述和下述的数据终止功能,特别是就何时终止该流做出决策。
参考上述图20,单元1220、单元1230、单元1240、以及单元1250全体代表指针控制器和设置单元的实施方式,因为它们可操作为完成与这些单元有关的上述功能。
应用
此技术的可能应用包括:
1.用于切片的最后编码的LCU的终止,尤其是‘行每切片’式配置,其中,概率可以明显高于0.54%;在此配置中,实施方式可提供一种用于对表示视频数据的连续输入数据值进行编码的数据编码方法,该方法包括下列步骤:根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个;通过与该输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例;将当前输入数据值分配给所选择的子范围内的代码值;根据分配的代码值和选择的子范围的大小修正该组代码值;检测该组代码值是否小于预定的最小大小,如果小于,则使该组代码值的大小连续增加,直至该组代码值的大小至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;修正上下文变量,以关于下一输入数据位或者值使用,从而使针对当前数据值选择的子范围内的该组代码值的比例增加;并且在对一组输入数据值(该组输入数据值对应于没有参考其他视频数据而编码的视频数据的切片内的一组视频数据块)进行编码之后,通过下列步骤使输出数据终止:将限定该组代码值的末端的值设置成具有等于零的多个最小有效位的值;使该组代码值的大小增加;并且将限定该组代码值的末端的值写入输出数据中。
2.用于切片的最后可能LCU的终止,作为切片的最后可能LCU具有确定性的终止;在此配置中,实施方式可提供一种用于对表示视频数据的连续输入数据值进行编码的数据编码方法,该方法包括下列步骤:根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个;通过与该输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例;并且将当前输入数据值分配给选择的子范围内的代码值;根据分配的代码值和选择的子范围的大小修正该组代码值;检测该组代码值是否小于预定的最小大小,如果小于,则使该组代码值的大小连续增加,直至该组代码值的大小至少具有预定的最小大小;并且响应每个大小增加操作,输出编码数据位;修正上下文变量,以关于下一输入数据位或者值而使用,从而使针对当前数据值选择的子范围内的该组代码值的比例增加;并且在对一组输入数据值进行编码之后,该组输入数据值表示没有参考其他视频数据而被编码的整个切片的视频数据,通过下列步骤使输出数据终止:将限定该组代码值的末端的值设置成具有等于零的多个最小有效位的值;使该组代码值的大小增加;并且将限定该组代码值的末端的值写入输出数据中。
3.在IPCM数据之前的终止,可能结合上下文变量;在此配置中,实施方式可提供一种用于对表示频率分离的视频数据的连续输入数据值进行编码的数据编码方法,该方法包括下列步骤:根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个;通过与该输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例;将当前输入数据值分配给选择的子范围内的代码值;根据分配的代码值和选择的子范围的大小修正该组代码值;检测该组代码值是否小于预定的最小大小,如果小于,则使该组代码值的大小连续增加,直至该组代码值的大小至少具有预定的最小大小;并且响应每个大小增加操作,输出编码数据位;修正上下文变量,以关于下一输入数据位或者值而使用,从而使针对当前数据值选择的子范围内的该组代码值的比例增加;并且在对一组输入数据值进行编码使得待编码的下一组的数据值表示非频率分离的视频数据之后,通过下列步骤使输出数据终止:将限定该组代码值的末端的值设置成具有等于零的多个最小有效位的值;使该组代码值的大小增加;并且将限定该组代码值的末端的值写入输出数据中。
4.防止“位突出”机制(“bits outstanding”mechanism)变得过长的流的终止;在此配置中,实施方式可提供一种用于对连续的输入数据值进行编码的数据编码方法,该方法包括下列步骤:根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个;通过与该输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例;将当前输入数据值分配给选择的子范围内的代码值;根据分配的代码值和选择的子范围的大小修正该组代码值;检测该组代码值是否小于预定的最小大小,如果小于,则使该组代码值的大小连续增加,直至该组代码值的大小至少具有预定的最小大小;并且响应每个大小增加操作,输出编码数据位;修正上下文变量,以关于下一输入数据位或者值而使用,从而使针对当前数据值选择的子范围内的该组代码值的比例增加;检测通过不同编码技术进行编码的一组数据值是否超过预定的大小,如果超过,则通过下列步骤使输出数据终止:将限定该组代码值的末端的值设置成具有等于零的多个最小有效位的值;使该组代码值的大小增加;并且将限定该组代码值的末端的值写入输出数据中。
下列描述部分关于将诸如上述编码器和解码器的操作延伸至具有更高视频清晰度和对应的低(包括负)QP的操作。如果编解码器实际上支持高位深度,则可需要低操作的QP。即将讨论编码器和解码器中存在诸如由HEVC限定的内部精确度限制引起的错误的可能来源。这些精确度的某些变化可减少错误并且由此扩展HEVC的操作范围。此外,提供熵编码的变化。
在提交本申请时,HEVC Version 1描述了8位和10位编解码器;Version 2包括12位和14位操作。尽管已经写入测试或者演示软件,以允许输入数据位深度高达至14,然而,编解码器对14位进行编码的能力并不一定对应于编解码器处理8位或者10位清晰度数据的方式。在一些实例中,内部处理可引入噪声,从而可导致清晰度的有效损耗。例如,如果14位输入数据的峰值信噪比(PSNR)低至使得最小有效两个位有效减少噪声,则编解码器仅以12位清晰度有效地操作。因此,适合于面向提供一种具有内部操作功能的系统,该内部操作功能允许使用更高清晰度的输入数据(例如,12位或者14位清晰度输入数据)而不引入太多噪声、错误、或者其他人工因素(artefact)以至于输出数据的有效(可使用)清晰度显著减小。
此处,使用术语“位深度(bit depth)”和变量bitDepth来指示在编解码器内完成的输入数据和/或(根据文本上下文)数据处理的清晰度(使用HEVC软件演示模型技术,后者也被称之为“内部位深度”)。例如,对于14位数据处理,bitDepth=14。
在8位和10位编解码器的上下文中,讨论了正范围(QP>0)内的量化参数(QP)。然而,对于输入数据的清晰度内的各个额外位(超过8位),最小允许QP(minQP)可以是低于0的6,或者,换言之:
minQP=-6*(bitDepth-8)
变量“PSNR”或者峰值SNR被定义成均方误差(MSE)和位深度的函数:
PSNR=10*log10(((2bitDepth)-1)2/MSE)
从下面讨论的图23中可以看出,无论示例性编解码器实现方式的内部处理位深度的值如何,整体趋势在于约90dB的PSNR曲线峰值;对于(比对应于PSNR曲线的峰值的QP)更负的QP,PSNR性能实际上发生退化;
使用关于PSNR的等式可以导出给定位深度和MSE下的PSNR的下表:
如果14位编解码器仅能够实现72.2dB的PSNR,则每个输出值仅在对应的原值的±4范围内是精确的。因此,该至少两个有效位是有效噪声,因此,该编解码器实际上等同于具有在输出处添加的两个额外随机位的12位编解码器。(重要的是,应注意,该分析基于平均值,并且实际上,在图片的某些部分中,可以实现比该平均值更好或者更坏的质量)。
就此论点进行延伸,当通过纯粹数字方式比较PSNR时,可以视为最佳系统事实上因此成为具有无损耗编码的8位系统,从而实现无限PSNR(MSE=0)。然而,这并未考虑最初舍入或者截去视频时而从n个位(其中,n最初高于8)降至8个位的损耗。根据下列实例可将该解决方案概括如下:
·如果可以使用无损耗的(n-1)位系统对n位数据进行编码,则在输出时,观察到的n位MSE将是(0+12)/2=0.5。
·如果可以使用无损耗的(n-2)位系统对n位数据进行编码,则在输出时,观察到的n位MSE将是(0+12+22+12)/4=1.5。
·如果可以使用无损耗的(n-3)位系统对n位数据进行编码,则在输出时,观察到的n位MSE将是(0+12+22+32+42+32+22+12)/8=5.5。
·如果可以使用无损耗的(n-4)位系统对n位数据进行编码,则在输出时,观察到的n位MSE将是:
(0+12+22+32+42+52+62+72+82+72+62+52+42+32+22+12)/16=21.5。
因此,返回具体实例,如果14位系统不能实现21.5或更低的MSE(等于71.0dB)并且如果无损耗的10位系统的位速率相似,则就数值而言,仅10个位是被有效地编码。
考虑损耗性,低位深度(n-r)位系统具有‘m’的MSE。如果使用该系统对更高位深度的n位数据进行编码,则将由此给出其MSE为(2r)2m。
例如,对于损耗性的(n-1)位系统,n位系统中的MSE将是4m;对于损耗型的(n-2)位系统,n位系统中的MSE将是16m;对于损耗性的(n-3)位系统,n位系统中的MSE将是64m;并且对于损耗性的(n-4)位系统,n位系统中的MSE将是256m。
因此,对于损耗性的更低位深度的系统对更高(n位)位深度数据进行编码的情况,其损耗通常是n位域中观察的MSE的主要贡献因素,因此,可以使用简单的PSNR图作为质量的直观比较。
HEVC编码器的实现方式(提交本申请时)的峰值为90dB(如图23所示);其可被视为适用于编码11位的数据,但是,在此操作点,下面将描述是否可以获得任何进一步的改善的事宜。
首先,将讨论误差的潜在来源。
核心HEVC系统(版本1)被设计成用于8位和10位操作。随着位数的增加,该系统的部分的内部精确度变得与导致整体清晰度的有效损耗的误差、噪声、或者人工因素的潜在来源相关。
图21中显示了示出通过诸如HEVC编码器等上述讨论类型的编码器的数据流的简单示意图。总结图21中所示的形式的过程的目的是指出该系统内的操作清晰度的潜在限制。出于此原因,应注意,图21中并未示出编码器的所有功能。
具有特定位深度的输入数据1300被供应至预测阶段1310,在该阶段,执行内预测或者间预测并且从实际输入图像中减去预测版本,从而生成特定位深度的残留数据1320。因此,阶段1300整体对应于图5中的项320和项310。
通过变换阶段1330频率变换残留数据1320,在变换阶段1330,涉及对应于2D变换等式中的左矩阵乘法和右矩阵乘法的变换过程的多个阶段(标记为阶段1和阶段2),并且根据具有特定清晰度的一组或者多组变换矩阵1340(通过矩阵乘法过程可以实现此变换)进行操作。变换过程的最大动态范围1350(被称之为MAX_TR_DYNAMIC_RANGE)应用于该过程中使用的计算。变换阶段的输出是根据MAX_TR_DYNAMIC_RANGE的一组变换系数1360。变换阶段1330整体对应于图5中的变换单元340。
然后,将系数1360传递至整体对应于图5中的量化器350的量化阶段1370。量化阶段可在量化系数和缩放列表1380的控制下使用相乘移位机制,其中包括剪切成最大动态范围ENTROPY_CODING_DYNAMIC_RANGE(在实施方式中,与MAX_TR_DYNAMIC_RANGE相同)。量化阶段的输出是根据ENTROPY_CODING_DYNAMIC_RANGE的一组量化系数1390,然后,(在此处未示出的全编码器中)将该组量化系数1390传递至诸如由图5中的扫描单元360和熵编码器370代表的熵编码阶段。
使用针对图21引入的注释,下面将讨论HEVC中的计算噪声的主要来源,从而(出于讨论之目的)忽略由各种预测以及RQT(残差四叉树)和RDOQ(比率失真优化量化)决策过程引起的噪声成形。
变换矩阵系数值
理想地上,应用变换系数的逆变换将再现原输入值。然而,其受计算的整数性质的限制。在HEVC中,变换矩阵系数具有6个小数位(即,具有固有的左移6)。
在变换的每个阶段之后MAX_TR_DYNAMIC_RANGE的移位结果
正变换将产生大小为bitDepth+log2(size)位的值。在变换的第一阶段之后,系数的位宽度应为至少bitDepth+log2(size)(尽管其他位也有助于保持更高的精确度)。然而,在HEVC中,在正(仅编码器)变换中使这些中间值移位,使得这些中间值永不超过MAX_TR_DYNAMIC_RANGE;同样适用于第二阶段。在逆变换中,将每个阶段的输出值剪切成MAX_TR_DYNAMIC RANGE。
如果MAX_TR_DYNAMIC_RANGE小于bitDepth+log2(size),则在量化阶段中使正变换之外的值实际上向左移(而非右移),然后,将值剪切成15位(ENTROPY_CODING_DYNAMIC_RANGE)。实际上,如果ENTROPY_CODING_DYNAMIC_RANGE小于bitDepth+log2(size)+1,则当QP小于(4-(6*(bitDepth-8)))时,进行剪切。
在HEVC中,当QP<-8时,尽管可以剪切32x32块中的系数,然而,MAX_TR_DYNAMIC_RANGE(和15的ENTROPY_CODING_DYNAMIC_RANGE)用于高至10位的操作。此外,对于低QP,内部精确度缺少余量时也可能引入错误。
量化过程中添加的噪声
尽管编码器和解码器的量化器和逆量化器在量化时添加噪声,然而,因为由阵列‘quantScales’和‘invQuantScales’限定的量化系数不一定是完美的互换,所以当应用缩放列表时,可能意外添加额外的噪声。
下面讨论变换矩阵精度和MAX_TR_DYNAMIC_RANGE的影响。
通过对所谓SVT测试组(16位时,1920x1080 50p,从4K视频缩放)中的五个视频序列的编码的分析(根据所谓的内编码资料)获得了经验性数据。在测试中,仅使用了这些序列中的前150个帧。在提交本申请时,通过适用于HEVC的标准范围延伸测试条件限定了被称之为Traffic_RGB(12位时,2560x1600 30p)的第六序列。
在经验性测试中,如果文件(输入数据)的位深度小于被测试的内部位深度(编解码器的输入位深度),则对样本进行填补(且将LSB设置成0);如果文件的位深度大于内部位深度,则对样本进行缩放和舍入。
在下列讨论中,使用bitDepth描述内部位深度而非输入数据的位深度。考虑了具有高至16的内部位深度(bitDepth)的系统。
图22是通过多个内部位深度示意性地示出了图21中的编码器系统的经验性性能的量化参数(QP)的位速率的图表。图23是针对QP的绿色通道的PSNR的图表(基于更易于获得一个通道的经验性数据,并且绿色是对观察者对输出视频的感知贡献最多的通道)。图22中的图表由用于16位(QP为-48至-26)、14位(QP为-24至-14)、12位(QP为-12至-2)、10位(QP为0至10)、以及8位(QP为12至22)处理的数据的合成式构成。垂直线1400示意性地指出了位深度变化的点。图22中的多条曲线对应于从不同的相应测试序列获得的结果。
图22示出了位速率随着QP整体单调地变化。
参考图23,bitDepth=8以及bitDepth=10的PSNR在QP是4和低于4时急剧增加(每条曲线的最右侧三个数据点)。在QP是4时,8位的量化除数是1(对于10位,QP是-8),从而使得DCT与IDCT之间不匹配并且使作为误差的唯一可能来源的量化与去量化系数之间不匹配。当系统趋于朝向无损耗处理时,MSE接近零并且SNR向上上升。图24是针对具有一系列不同的内部位深度(8,10,12,14,16)的一侧测试序列的PSNR对位速率的图表。对于其大部分的范围,五条曲线几乎正好位于彼此上方并且由此不能容易被区分。
位于同一操作点的10位系统主要在两个最小有效位产生误差,即,指当仅考虑8位精确度时,其也接近无损耗处理,但是,如该描述中其他地方指示的,还必须考虑将10位视频转换成8位视频的作用。从而添加考虑较低精确度时被隐藏(即,由于这些经验性的测试未明确示出,但是,仍导致产生更高的整体SNR)的1.5的MSE。
在不受内部精确度限制于峰值SNR的系统中,当QP下降至低于(4-(6*(bitDepth-8)))时,对于每个bitDepth,可以看出朝向无损耗处理增加。图25中示出了此操作,图25是针对位深度(8,10,12,14,16)的范围内的位速率的绿色通道PSNR对位速率的图表,且MAX_TR_DYNAMIC_RANGE=21,ENTROIPY_CODING_DYNAMIC_RANGE=21和14位变换矩阵,且禁用RDOQ并且禁用变换跳过。五条曲线位于彼此上方,但部分1420(8位曲线)、部分1430(10位曲线)、部分1440(12位曲线)、部分1450(14位曲线)、以及部分1460(16位曲线)除外。可以看出,对于相同的位数,可以获得比图24中所示的SNR明显更高的SNR。
经验性结果表明,在本公开的实施方式中,变换矩阵精度应至少为bitDepth-2。图26是与各种精度DCT矩阵相比较的针对一个测试序列的绿色通道的PSNR对位速率的图表,且bitDepth=10并且MAX_TR_DYNAMIC_RANGE=17。
在实施方式中,MAX_TR_DYNAMIC_RANGE应是大于bitDepth的至少5(即,log2(size)的最小值)。已经示出了额外的精确度,以进一步提高编码效率。
在实施方式中,ENTROPY_CODING_DYNAMIC_RANGE应是大于bitDepth的至少6(通过QP应用的小于(4-(6*(bitDepth-8)))的“量化因素”1加上log2(size)的最大值5)。在其他实施方式中,如果不考虑对最低QP值的剪切(clipping),则ENTROPY_CODING_DYNAMIC_RANGE应是大于bitDepth的至少5(log2(size)的最小值)。
对于16位系统,应将变换矩阵精度设置为14,应将MAX_TR_DYNAMIC_RANGE设置为21,并且应将ENTROPY_CODING_DYNAMIC_RANGE设置为22。因为具有更高的内部精确度很少被视为不利的,所以还在不同的bitDepth下对这些参数进行测试,从而产生下列结果:表明,对于相同的位数,可以实现明显更高的SNR,并且表明精确度提高的系统具有适用于高达至16的bitDepth的PSNR/MSE操作点。
如果旨在使范围扩展产生所有位深度的单一新配置文件,则上述系统适用。然而,如果描述不同最大bitDepth的不同配置文件,则在降低并不要求最高配置文件的系统的硬件复杂性方面,具有不用的参数值是有用的。在一些实施方式中,不同的配置文件可限定变换矩阵精度的不同值MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE。
在其他实施方式中,配置文件允许通过编码器从许可值列表中选择变换矩阵精度、MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE中的一些或者全部的值或者诸如bitDepth(位深度)等边信息的函数。然而,在仅限定配置文件的一个变换矩阵精度的进一步实施方式中,且该变换矩阵精度对应于指定配置文件的最大位深度的推荐值,出于此原因,如果改变变换矩阵精度,则需要多组变换矩阵。下面参考图28提议了一组可能的配置文件。
在下表中示出了变换矩阵精度、MAX_TR_DYNAMIC_RANGE、ENTROPY_CODING_DYNAMIC_RANGE、以及bitDepth的示例性值:
在该表中,根据HEVC的当前描述,将标记有‘*’的值剪贴成最小值15。标记有和的值比HEVC当前描述规定的那些值(分别为15和6)更大。
如果使用的不同的配置文件,则在本公开的实施方式中,可以使用这些规范作为极小值(注意,HEVC version 1的10位系统并不完全满足这些目标)。尽管对于更高的位速率(更低QP),这会使PSNR降级,然而,另一使用小于这些指定的极小值的值。
现转向CABAC系统,如上所述,在一些实施方式中,HEVC CABAC熵编码器使用下列过程对语法元素进行编码:
对TU中的最后一个重要系数(按照扫描顺序)的位置进行编码。
对于每个4x4系数组(按照相反扫描顺序处理各组),对重要系数组标志进行编码,从而指示该组是否包含非零系数。这对于包含最后一个重要系数的组是不需要的并且假定左上方的组为1(包含DC系数)。如果标志是1,则紧随其后编码与该组有关的下列语法元素:重要图、大于一图、大于二标志、符号位、以及逸出码。
图29示意性地示出了这种配置。在步骤1500,CABAC编码器检查当前组是否包含最后一个重要系数。如果包含,则该过程结束。如果不包含,则该过程前进至步骤1510,在步骤1510,编码器检查当前组是否是包含DC系数的左上方的组。如果是,控制则通过至步骤1530。如果否,在步骤1520,编码器则检测当前组是否包含非零系数。如果否,该过程则结束。如果是,在步骤1530,则生成重要图。在步骤1540,生成>1图,其表示,对于具有重要图值1的高达至8的系数,从该组结束时向后计数,无论量级是否大于1。在步骤1550,生成>2图。对于具有>1图的值1(最接近该组结束时的一个)的高至1的系数,这指示量级是否大于2。在步骤1560,生成符号位,并且在步骤1570,对于未通过之前语法元素完整描述其量级的任何系数(即,在步骤1530至步骤1560中的任一步骤中生成的数据),生成逸出码。
对于MSE小于1的操作点的16位、14位、或者甚至12位的系统(通常,QP分别为-34、-22、以及-10),系统通常产生非常小的压缩(对于16位,实际上,其使源数据膨胀)。系数通常是较大的数值,因此,几乎总是逸出编码。因此,已经对熵编码器做出两种提议改变,从而通过将固定数目的LSB、BF置入每个系数的位流中而支持更高的位深度。基本上,解决方案许可针对8位操作和10位操作开发的当前HEVC CABAC熵编码器以指定的原bitDepth进行操作,从而将诸如16位等更高位的系统有效地转换成诸如10位等更低位的系统,且因额外的精确度而具有可替代的路径。因为更低位系统值是更为显然可预测的,所以有助于所采用的划分方法的有效性,因此,更低位系统适用于对更为复杂的编码方案进行编码,其中,更高位系统要求的额外精确度是较为不可预测的并且由此更低的压缩性和复杂编码方案具有更低的有效性。例如,16位系统可将BF配置成8。
通过编码器在位流中指出了使用固定位方案,并且当使用方案时,编码器将向解码器指示确定固定位数的平均值。这些平均值是直接被编码的数字,或者指示如何从位流中已经被编码的位流(包括QP、位深度、和/或配置文件)中存在的参数导出值BF,或者其组合。编码器还具有使用相同平均值指示不同的图片、切片、以及CU的不同BF值的选项或者将△值指示给从序列、图片、切片、或者前一CU导出的BF值的选项。BF值还可被配置成因变换单元块大小的不同而不同、因预测类型(间/内)的不同而不同、以及因颜色通道的不同而不同,其中,在选择不同的参数时,源视频的性质指导编码器。
基于QP,BF的示例性推导如下:
BF=max(0,int(QP/-6))
基于位深度,BF的示例性推导如下:
BF=bitDepth–8
基于变换单元块大小和QP,BF的示例性推导如下:
BF=max(0,int(QP/-6)+2–log2(size))
BF的各个值可使用预编码器(试验)配置在编码器中确定,或者BF的各个值被配置成遵循下列预定规则。
熵编码实施方式1
为了允许以更高的位深度进行处理,对于小于bitDepth的多个固定位BF,将HEVC熵编码器的过程改变成如下:
对TU中的最后一个重要系数(按照扫描顺序)的位置进行编码。
对于每个4x4系数组(按照相反扫描顺序处理各组),将每个系数C划分成最高有效部分(most-significant part)CMSB和最低有效部分(least-significant part)CLSB,其中,
CMSB=abs(C)>>BF
CLSB=abs(C)–(CMSB<<BF)
并且,BF是要使用的固定位的数目(number),根据位流确定;
并且对重要系数组标志进行编码,从而指示该组是否包含CMSB的非零值。这对于包含最后一个重要系数的组是需要的并且假定左上方的组(包含DC系数)为1。如果标志是1,则紧随其后对与该组有关的下列语法元素进行编码:
重要图:
对于该组中的每个系数,对标志进行编码,从而指示CMSB的值是否是有效的(具有非零值)。对于通过最后重要位置(last-significant position)指示的系数,对标志进行编码。
大于一图:
对于具有重要图值1的高至8个的系数(从该组末端时向后计数),这指示CMSB是否大于1.
大于二标志:
对于大于一图值1的高至1个的系数(最接近该组末端的一个),这指示CMSB是否大于2。
固定位:
对于该组中的每个系数,使用等概率的CABAC二进制将CLSB的值编码为旁路数据。
符号位:
对于所有非零的系数,将符号位编码成等概率的CABAC二进制,且当使用符号位隐藏时,可从奇偶性替代推断的最后符号位(按照相反扫描顺序)。
逸出码:
对于未通过之前语法元素完整地描述其量级的任何系数,将余数编码成逸出码。
然而,如果重要系数组标志是0,则紧随其后编码与该组有关的下列语法元素;
固定位:
对于该组中的每个系数,将CLSB的值编码成等概率的CABAC二进制。
符号位:
对于所有的非零系数,将符号位编码成等概率的CABAC二进制,且当使用符号位隐藏时,可从奇偶性替代推断最后符号位(按照相反扫描顺序)。
本公开的实施方式改变了重要系数组标志的插值,从而指示任一系数是否为非零(不仅仅是其CMSB互补部分)。在这种情况下,不需要指出按照相反扫描顺序包含最后系数的系数组(由于其将会是1),并且当重要系数组标志是0时,不需要对额外的语法元素进行编码。
图30中示意性地示出了此后者配置,在许多方面,图30对应于图29。比较这两个附图,可以看出,图30没有与图29中的步骤1500等同的任何步骤,对应于下列事实:甚至对于包含最后一个重要系数的组,也发生该过程。步骤1610和步骤1620整体对应于图29中的步骤1510和步骤1520。如上所述,在新引进步骤1625,将系数划分成MSB部分和LSB部分。步骤1630、步骤1640、以及步骤1650整体对应于图29中的相应步骤1530、步骤1540、以及步骤1550,但步骤1630、步骤1640、以及步骤1650仅作用于划分系数的MSB部分。如上所述,新引进步骤1655涉及对作为固定位的划分系数的LSB部分进行编码。步骤1660和步骤1670整体对应于图29中的步骤1560和步骤1570。
此修正可有效地产生这样一种系统,即,CABAC熵编码器以指定的原bitDepth进行操作,通过选择BF而使得通过CABAC编码传递与编码器的设计位深度相等的MSB的数目,且更高位深度的LSB(其具有最低预测性并且因此具有最低可压缩性)是旁路编码。例如,如果编码器是8位或者10位深度编码器,则BF可以等于8或者10。
从图27中可以看出此提议的结果,图27是针对具有DCT矩阵精度的一个测试序列的QP的PSNR和根据位深度的MAX_TR_DYNAMIC_RANGE设置的图表,示出了与(曲线1680)等同的操作并且无需(曲线1690)旁路固定位编码。具有固定位的系统位速率(相对于没有固定位的系统)节约(saving)从QP 0时的5%到高至QP-48时的37%变化。BF的最佳值具有序列相关性。如上所述,BF的实例是8或者10。
熵编码实施方式2
其他实施方式的相似方案适用于许多相同的处理步骤,但保留了重要图的原功能,其中,标志值0表示系数值0(而不是如熵编码实施方式1一样,系数的MSB部分的值0)。当考虑(通常平滑的)计算机生成视频时(其中,预期零更为常见),这种功能更为有用。熵编码实施方式包括关于小于bitDepth的固定位BF的数目的下列处理步骤:
对TU中的最后一个重要系数(按照扫描顺序)的位置进行编码。
对于每个4x4系数组(按照相反扫描顺序处理各组),对重要系数组标志进行编码,从而指示该组是否包含非零系数。这并不要求该组包含最后一个重要系数并且假定左上方的组为1(包含DC系数)。如果标志是1,则将每个系数C划分成最高有效部分CMSB和最低有效部分CLSB,其中,
CMSB=(abs(C)–1)>>BF
并且
CLSB=(abs(C)–1)–(CMSB<<BF)
并且,紧随其后编码与该组有关的下列语法元素:
重要图:
对于该组中的每个系数,对标志进行编码,从而指示系数C是否是有效的(具有非零值)。由最后重要位置指示的系数不需要任何标志。
大于一图:
对于具有重要图值1的高至八的系数(从该组终端向后计算),这指示CMSB是否大于或等于1。
大于二标志:
对于大于一图值1的高至一的系数(最接近于该组终端的一个),这指示CMSB是否大于或等于2。
符号位:
对于所有的非零系数,将符号位编码成等概率的CABAC二进制,且当使用符号位隐藏时,可从奇偶性替代推断的最后符号位(按照相反扫描顺序)。
固定位:
对于该组中的每个非零系数,对CLSB的值进行编码。
逸出码:
对于未通过之前语法元素完整地描述其量级的任何系数,将余数编码成逸出码。
在图31的流程图中示意性地示出了此配置。此处,步骤1700…1770按照下列方式对应于图31和图32A-F中的相应步骤,除非标识了差异。应注意,步骤1755在图31中的步骤1760之后(相似步骤1655在图30中的步骤1660之前)。
步骤1700整体对应于图29中的步骤1500。如果这不是包含最后一个重要系数的组,则控制转至步骤1710。步骤1710和步骤1720对应于图30中的步骤1610和步骤1620。在对应于图30中的步骤1625的步骤1725,对系数进行划分。然而,在步骤1730,与之前讨论的步骤1630的配置相反,在重要图的推导中使用整个系数(自此之后,忽略步骤1725中执行的划分)。步骤1740和步骤1750仅是划分系数的MSB部分并且在功能上对应于步骤1640和步骤1650。除(通过实例)示出了图32A-F与图33之间的步骤的排序略微不同的事实之外,步骤1755、步骤1760、以及步骤1770对应于步骤1655、步骤1660、以及步骤1670的功能。
在图28中,可以看出比较这两种熵编码实施方式的结果。图28是示出了针对六个测试序列的相对于熵编码实施方式1实现的结果的熵编码实施方式2(其他方面具有相同的参数)的位速率百分比改善的图表。
对于负的QP,对于某种源材料,已经示出了熵编码实施方式2比熵编码实施方式1具有小于1%的平均效率,对于正的QP,上升至近似3%。然而,对于某种更软的源材料,由于系数中存在的零增加,所以观察到相反的结果。在实施方式中,编码器能够选择熵编码方法并且将该选择通知给解码器。
因为与负QP的节约相比较,正QP的节约较少,所以仅当QP是负时,可启用熵编码修正。考虑到对于负QP,熵编码实施方式1示出了高达至37%的位节约,所以当与不具有任何熵编码修正的系统相比较时,这两种熵编码实施方式在这些操作点处几乎不存在差异。
因为对于标准的HEVC版本1操作点,被编码的数据的数量稍微高于观察到的数据的数量,所以额外阶段适用于这两种提议的系统,实际上,现在将结合本公开的进一步实施方式讨论其中不能启用或者不启用之前提议的系统的系统。
额外的阶段致使在对每个系数组的旁路数据进行编码之前使CABAC流的位对准。从而允许旁路数据的快速(和并行)解码,因为从流中现在可直接读出值,从而在对旁路二进制进行解码时,除去长除法的要求。
实现此目的的一种机制是应用上面之前提供的CABAC终止方法。
然而,在现在描述的实施方式中,代替终止位流,使CABAC状态与位边界对准。
为了使该流位对准,在编码器和解码器中,将m_Range简单地设置成256。这明显地简化了编码和解码过程,从而允许从总原格式的m_Value直接读出二进制数据,并且因此,通过解码器可一次同时处理多个位。在一些实例中,值256可被视为范围变量m_Range的预定最小值的实例。
应注意,将m_Range设置成256的动作产生平均0.5个位的损耗(如果m_Range已经是256,则不存在任何损耗;如果m_Range是510,则将丢失约1个位;因此,m_Range的所有有效值的平均值为0.5个位)。
可以使用多种方法减少由这些技术产生的损失或者潜在成本。图33至图35是分别示出了通过CABAC编码器完成的CABAC过程的终止阶段的版本的示意性流程图。
根据图33,根据对旁路编码数据的期望数量的估算(例如,基于等于1的大于一标志的数目)可以选择是否位对准。如果期望较少的旁路编码数据,则位对准的成本昂贵(因为每次对准浪费平均0.5个位),并且因为位速率变得可能更低,所以也不需要位对准。因此,在图33中,步骤1800涉及通过对已经设置的>1标志的数目进行检测并且将此数目与阈值Thr相比较,而检测旁路编码数据的估算数量。如果估算超过阈值Thr,则控制转至选择非位对准模式的步骤1820。例如,对于每个TU中的每个子组,可以重复图34中的步骤。
参考图34,可以将关于TU的CABAC二进制数据之后的关于TU的所有旁路数据(而非每个系数组结束时的代码旁路数据)一起编码。因此,损耗为每个编码的TU 0.5位,而非每个系数组0.5位。因此,在图34中的步骤1830,应用测试,以检测当前组是否位于编码的TU的末端。如果否,则不应用位对准(在步骤1840中,示意性的指示),并且使控制返回至步骤1830。但是,如果是,则在步骤1850应用位对准。
在使用等概率机制进行编码的流中的其他或者全部数据之前,也可以使用对准机制,尽管可能使效率降低,然而,可简化流的编码。
作为替代对准,参考图35,可以将m_Range设置成数目为N的预定值中的一个(而非仅256(384,例如,与半位对准)。因为对准值必须小于或等于m_Range的初始值(因为除通过重新规范化之外不能使范围增加),所以每次对准的损耗(0.5/N)则用于规则的空间值。该方法仍要求对除256之外的值进行划分,但是,事先已经获知分母,因此,使用查询表可以估算该划分。因此,在步骤1860(适用于位对准情形),检测m_range的值,并且在步骤1870,根据位对准过程中使用的m_range选择对准值。
作为此替代对准方法的进一步细化,可以使用为二的幂次方的(不相等的)符号范围对对准之后的二进制(bin)(或者多个二进制)立即进行编码。同样,可以除去对后续二进制的划分的所有要求,而不对位效率(0.5/N)产生任何进一步的损耗。
例如,当对准至384时,对于符号范围[0,1],随后的二进制可以是[256,128];
如果对0进行译码,则将m_Range设置成256,从而使得编码二进制的成本为0.5个位。
如果对1进行编码,则将m_Range设置成128(并且将256添加到m_Range)并且使系统重新规范化(再次,m_Range变成256),从而使得编码二进制成本为1.5个位。
因为预期0和1具有相等的概率,所以在对准之后立即对二进制进行编码的平均成本仍是1个位。对于其中N=2并且两个对准点是256和384的情况,该方法将拾取小于或等于当前m_Range的最大对准点。如果对准点是256,则仅将m_Range设置成256,以与CABAC引擎对准;如果对准点是384,则需要要求对一个符号进行编码的上述过程。
图32A和图32B中示出了此操作,并且图32C至图32F中示出了N=4的进一步实例。
为了示出与CABAC引擎对准的优点,可将对等概率(EP)二进制进行解码(无对准阶段)的方法表达成如下:
如果(m_Value>=m_Range/2)
解码的EP值是1。使m_Value递减m_Range/2
否则,
解码的EP值是0。
然后,从位流中读取下一位:
m_Value=(m_Value*2)+next_bit_in_stream
其工作例则为;
使m_Range=458并且m_Value=303,并且位流中的下两个位是1
循环1:
m_Value>=229,因此,下一编码的EP值是1。m_Value=74
然后,从位流中读取下一位:m_Value=74*2+1=149
循环2:
m_Value<229,因此,EP值是0(m_Value不变)
然后,从位流中读取下一位:m_Value=149*2+1=299
解码的等概率二进制与长除法的一个阶段等同,并且算术要求测试不相等性。为了对两个二进制进行解码,则可以使用该示例性过程两次,从而实现两阶段的长除法过程。
然而,如果应用对准阶段,则导致m_Range为最大有效的2的幂次方(诸如,对于9位的HEVC CABAC熵编码器,m_Range为256),从而简化上述过程。
被编码的EP值是m_Value的最高有效位(most significant bit)。
更新m_Value,通过将m_Value视为移位寄存器,而将流中的下一位移至最低有效位置中。
因此,m_Value基本上变成移位寄存器,并且从最高有效位置读取EP二进制,同时,将位流移至最低有效位置中。因此,仅通过从m_Value的顶部移下多个位可读取多个EP位。
该对准情况的工作例为:
使m_Range=256,m_Value=189,并且位流中的下两个位是1
循环1:
下一编码的EP值是m_Value的位7,其是1。
通过移出位7,并且将位流中的1移至最低有效位置中而更新m_Value:m_Value变成123。
循环2:
下一编码的EP值是m_Value的位7,其是0。
通过移出位7,并且将位流中的1移至最低有效位置中而更新m_Value:m_Value变成247。
选择的对准点数N可被视为实现方式的复杂性与对准的位成本之间的权衡方案。对于其中每个对准点存在多个EP二进制的操作点,损耗量较不明显,并且具有更少点的对准系统足够。相反,对于其中每个对准点存在更少EP二进制的操作点,损耗量则较为明显,并且可优选具有更多点的对准系统;对于禁用的一些操作点,则可整体优选为对准算术。编码器以及由此位流可指示根据选择的数据流的操作点选择解码器所使用的对准点的个数。可替代地,从诸如配置文件或者等级等位流中存在的其他信息可推断出所指示的数目。
使用多个对准位置,在简单的情况中,对准位置仅是256和384:
为了对准,
如果m_Range<384,则仅设置m_Range=256,并且查看
关于解码的上述工作例。
否则,
设置m_Range=384,并且下列过程
被用于对下一EP二进制进行编码:
m_Range=384=256+128。
对于待被编码的下一EP二进制,将256的符号范围分配给值0并且将128的符号范围分配给值1。
如果m_Value>=256,则(MSB位测试操作)
下一EP值是1。
m_Value-=256(实际上是位清除操作)
m_Range=128。
重新规范化(因为m_Range<256);
m_Range=256
m_Value=(m_Value*2)+next_bit_in_stream
否则,
下一EP值是0。
m_Range=256。
然后,m_Range=256,并且上述简化过程可以用于所有后续EP二进制。
如图29所示,刚刚讨论了具有CABAC位对准机制的熵编码实施方式1的结果,图29是具有和不具有N=1的位对准机制的六个序列的QP的位速率差的图表。正的位速率差(垂直轴上)表示具有位对准的系统比不具有位对准机制的方案产生更高的位速率。每个序列的位速率差近似为每秒的上千个系数组的数目的0.5倍(流量为2560x1600 30p=11520,所有其他为1920x1080 50p=9720)。
提议图30中设定的选项作为配置文件。
如果仅需要高配置文件来支持高达至14的bitDepth,则提议将变换矩阵系数精度、MAX_TR_DYNAMIC_RANGE、以及ENTROPY_CODING_DYNAMIC_RANGE分别设置成12、19、以及20。
除这些配置文件之外,可以限定内部唯一的主/扩展配置文件,但是,因为内部唯一的解码器明显没有内/间解码器复杂,所以此处仅描述高内配置文件。
在相似情况中,可以限定用于对各种色度格式的静态图片进行编码的扩展/高配置文件。
较低配置文件需要使用与较高配置文件相同的矩阵精度、MAX_TR_DYNAMIC_RANGE、以及ENTROP_CODING_DYNAMIC_RANGE,否则,由这两种配置文件产生的位流不匹配。
现将讨论各个选项。
选项1
在该选项中,位深度表示变换矩阵精度、MAX_TR_DYNAMIC_RANGE、以及ENTROPY_CODING_DYNAMIC_RANGE。这意味着需要支持高达16的位深度的解码器将需要处理具有不同组的矩阵的13位数据,并且尽管解码器具有支持高达21的能力,然而,内部精确度将仅局限于18位的MAX_TR_DYNAMIC_RANGE。然而,通过符合较低配置文件的解码器可以对使用高配置文件编码的12位数据进行解码。
选项2
在该选项中,通过较低配置文件确定关于重叠的位深度的位参数,从而使用利用符合扩展配置文件的解码器可解码的高配置文件对编码的12位数据进行解码。此外,13位数据的内部精确度与16位数据的内部精确度相同。此外,与选项1相比较,需要支持较少的矩阵精度。
在本上下文中,可以存储单一组的变换矩阵值,并且可由此导出所有其他值。
应注意,如果变换矩阵具有14位的初始精度,则通常,可以推导出较低精度可被二整除并且舍入成整数。
使用该一般性规则从更高的精度矩阵导出更低精度的矩阵将导致:
实例1
选项1:高4:4:4限定变换矩阵精度=14
导出变换矩阵精度=13...从14
扩展4:4:4限定变换矩阵精度=14
导出变换矩阵精度=10...从14
即,以“高”精度存储。
实例2
选项1:高4:4:4限定变换矩阵精度=10
导出变换矩阵精度=14...从10
扩展4:4:4限定变换矩阵精度=10
导出变换矩阵精度=10...从14
即,以“扩展”精度存储。
为了获取更好的质量,优选“实例1”。然而,实例2可导致降低存储要求。
应注意,当然,替代方案是存储针对每个精度设置的变换矩阵。“实例1”和“实例2”规则也可用于“选项2”。
因为目的是提高质量并且还划分成配置文件,所以如果通过一个精度从单一组中导出每个变换矩阵组,则存在缩放误差。
在“实例1”的情况中,系统使变换矩阵从14位向下缩放,并且在“实例2”的情况中,系统使变换矩阵从10位向上缩放和向下缩放。
选项3
即,尽管仅高4:4:4解码器能够使用高4:4:4方案对编码流进行解码,然而,可将12位视频的位深度编码成“高4:4:4”或者“扩展4:4:4”。
选项4
即,“高4:4:4”配置文件必须支持更低的“扩展4:4:4配置文件”,且
在“选项4”中,仅存在关于如何对12位视频进行编码的仅一种选择。
选项5
在该选项中,矩阵精度局限于每个配置文件仅一个值,从而降低编码器的开销。此外,以位深度表示MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE,并且因此,仅需要对13位数据进行编码的编码器不需要包括使用额外内部计算精确度的实现方式开销。
选项6
选项6与选项5相似,但是,仅限定用于对12位数据进行编码的扩展配置文件。
总之,根据本公开的各种实施方式的提议变化如下:
使用至少一个额外的变换矩阵组,以获得更高的精确度。
优选为具有获得所有更高精确度的单一组,从而简化多配置文件的编码器/解码器。
提供针对变换矩阵精度7至14的提议变换矩阵,描述见下文。
建议使用14位精确度的变换矩阵,因为14位精确度的变换矩阵符合软件的16位数据类型并且提供允许进一步扩展16位视频的足够精确度。
通过输入数据的深度和配置文件可配置变换矩阵精度的选择,或者可替代地,通过序列、图片、或者切片级中指定的参数确定变换矩阵精度的选择。
可以改变MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE,以获得更高的精确度。
对于多配置文件的编码器/解码器,MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE的多个值不会产生问题。
建议推导MAX_TR_DYNAMIC_RANGE=bitDepth+5以及ENTROPY_CODING_DYNAMIC_RANGE=bitDepth+6。
如同变换矩阵精度,通过输入数据的位深度和配置文件可配置MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE的选择,或者可替代地,通过序列、图片、或者切片级中指定的参数确定MAX_TR_DYNAMIC_RANGE和ENTROPY_CODING_DYNAMIC_RANGE的选择(参数可能与选择DCT矩阵的参数相同)。
可将熵编码改变成包括某一固定位的处理(见熵编码实施方式1和熵编码实施方式2),从而增加低QP的压缩度。
可按照序列等级配置存在的固定位。
可按照序列、图片(尽管因为图片参数设置不能获知序列等级设置,所以这比较困难)、切片、或者CU级(可能通过从之前序列/图片/切片/CU的固定位的数目、父代实体、或者配置文件定义通知△)配置固定位BF的数目。
可将熵编码改变成包括CABAC位对准,从而允许在不使用长除法的情况下,从流中提取出旁路位(还可优选为应用上述位损耗消除法中的一种或者多种)。
因此,本公开的实施方式提供使得增加的内部精确度满足规定的范围扩展的要求,从而允许通过HEVC获得更高的位深度。已经研究了误差的各种来源并且已经执行重新规范化。此外,已经提供改善编码效率的变化并且还提供改善吞吐量的变化。
增加精度的变换矩阵
该描述的部分使得各个精度级别的变换矩阵详细化。
4x4DST
变换矩阵的形式如下:
其中,根据下表,通过矩阵系数精度限定格栅中的值(包括6位HEVC version 1的矩阵值用于比较):
| 6位 | 7位 | 8位 | 9位 | 10位 | 11位 | 12位 | 13位 | 14位 | |
| a | 29 | 58 | 117 | 233 | 467 | 934 | 1868 | 3736 | 7472 |
| b | 54 | 110 | 219 | 439 | 878 | 1755 | 3510 | 7021 | 14042 |
| c | 73 | 148 | 296 | 591 | 1182 | 2365 | 4730 | 9459 | 18919 |
| d | 83 | 168 | 336 | 672 | 1345 | 2689 | 5378 | 10757 | 21513 |
| e | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
合成的DCT矩阵
为易于实现,可以描述单一的32x32DCT矩阵M32,其中,根据下列式,通过子采样可以推导出每个较小的NxN DCT矩阵MN:
MN[x][y]=M32[x][(2(5–log2(N)))y]对于x,y=0..(N–1).
合成矩阵M32的形式如下:
根据下表,由矩阵系数精度限定格栅中的值(包括6位HEVC版本1矩阵值用于比较):
| 6位 | 7位 | 8位 | 9位 | 10位 | 11位 | 12位 | 13位 | 14位 | |
| a | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 |
| b | 83 | 167 | 334 | 669 | 1338 | 2676 | 5352 | 10703 | 21407 |
| c | 36 | 69 | 139 | 277 | 554 | 1108 | 2217 | 4433 | 8867 |
| d | 89 | 178 | 355 | 710 | 1420 | 2841 | 5681 | 11363 | 22725 |
| e | 75 | 151 | 301 | 602 | 1204 | 2408 | 4816 | 9633 | 19266 |
| f | 50 | 101 | 201 | 402 | 805 | 1609 | 3218 | 6436 | 12873 |
| g | 18 | 35 | 71 | 141 | 283 | 565 | 1130 | 2260 | 4520 |
| h | 90 | 180 | 360 | 721 | 1441 | 2882 | 5765 | 11529 | 23059 |
| i | 87 | 173 | 346 | 693 | 1386 | 2772 | 5543 | 11086 | 22173 |
| j | 80 | 160 | 319 | 639 | 1277 | 2554 | 5109 | 10217 | 20435 |
| k | 70 | 140 | 280 | 560 | 1119 | 2239 | 4478 | 8956 | 17911 |
| l | 57 | 115 | 230 | 459 | 919 | 1837 | 3675 | 7350 | 14699 |
| m | 43 | 85 | 171 | 341 | 683 | 1365 | 2731 | 5461 | 10922 |
| n | 25 | 53 | 105 | 210 | 420 | 841 | 1682 | 3363 | 6726 |
| o | 9 | 18 | 35 | 71 | 142 | 284 | 568 | 1136 | 2271 |
| p | 90 | 181 | 362 | 723 | 1446 | 2893 | 5786 | 11571 | 23143 |
| q | 90 | 179 | 358 | 716 | 1432 | 2865 | 5730 | 11460 | 22920 |
| r | 88 | 176 | 351 | 702 | 1405 | 2810 | 5619 | 11238 | 22476 |
| s | 85 | 170 | 341 | 682 | 1364 | 2727 | 5454 | 10908 | 21816 |
| t | 82 | 164 | 327 | 655 | 1309 | 2618 | 5236 | 10473 | 20946 |
| u | 78 | 155 | 311 | 621 | 1242 | 2484 | 4968 | 9937 | 19874 |
| v | 73 | 145 | 291 | 582 | 1163 | 2326 | 4653 | 9305 | 18611 |
| w | 67 | 134 | 268 | 537 | 1073 | 2146 | 4292 | 8584 | 17168 |
| x | 61 | 122 | 243 | 486 | 973 | 1945 | 3890 | 7780 | 15560 |
| y | 54 | 108 | 216 | 431 | 863 | 1725 | 3451 | 6901 | 13803 |
| z | 46 | 93 | 186 | 372 | 745 | 1489 | 2978 | 5956 | 11912 |
| A | 38 | 77 | 155 | 310 | 619 | 1238 | 2477 | 4953 | 9907 |
| B | 31 | 61 | 122 | 244 | 488 | 976 | 1951 | 3903 | 7806 |
| C | 22 | 44 | 88 | 176 | 352 | 704 | 1407 | 2815 | 5630 |
| D | 13 | 27 | 53 | 106 | 212 | 425 | 850 | 1700 | 3400 |
| E | 4 | 9 | 18 | 36 | 71 | 142 | 284 | 568 | 1137 |
此处提供了从32x32矩阵导出的更小的DCT矩阵,以获得信息。根据上表,通过矩阵系数精度限定各个格栅中的值。
4x4 DCT
矩阵M4被限定为合成矩阵M32中的每第8行的前4个系数。
8x8 DCT
矩阵M8被限定为合成矩阵M32中的每第4行的前8个系数。
16x16 DCT
矩阵M16被限定为合成矩阵M32中的每个偶数行的前16个系数。
通过下列编号条款限定上述实施方式:
1.一种用于对数据值的序列进行编码的数据编码方法,该方法包括下列步骤:
从输入数据值生成相应的互补的最高有效数据部分和最低有效数据部分,使得值的最高有效数据部分表示该值的多个最高有效位,并且相应的最低有效数据部分(least-significant data portion)表示该值的其余最低有效位;
生成指示预定量级的最高有效数据部分相对于值的阵列的位置的一个或者多个数据集;
使用二进制编码将数据集编码成输出数据流;并且
将限定较低有效部分(less-significant portion)的数据包括在输出数据流中。
2.根据条款1所述的方法,其中,数据集中的一个是指示非零的最高有效数据部分相对于数据值的阵列的位置的重要图。
3.根据条款2所述的方法,其中,重要图包括数据标志,数据标志根据值的阵列的预定排序指示具有非零值的最高有效数据部分中的最后一个的位置。
4.根据条款2或条款3所述的方法,其中,数据集包括:
大于一图,大于一图指示大于1的最高有效数据部分相对于值的阵列的位置;和
大于二图,大于二图指示大于2的最高有效数据部分相对于值的阵列的位置。
5.根据条款1所述的方法,其中,数据集包括:
大于一图,大于一图指示大于或等于1的最高有效数据部分相对于值的阵列的位置;和
大于二图,大于二图指示大于或等于2的最高有效数据部分相对于值的阵列的位置。
6.根据条款5所述的方法,包括下列步骤:生成进一步的数据集,该进一步数据集是指示非零值相对于值的阵列的位置的重要图。
7.根据条款6所述的方法,其中,重要图包括数据标志,数据标志根据值的阵列的预定排序指示具有非零值的值中的最后一个的位置。
8.根据之前条款中任一项所述的方法,其中,将限定较低有效数据部分的数据包括在输出数据流中的步骤包括:使用算术编码对最低有效数据部分进行编码,在算术编码中,根据编码值范围的相应比例对表示最低有效数据部分的符号进行编码,其中,对于描述最低有效数据部分的各个符号,编码值范围的相应比例具有相等大小。
9.根据条款1至7中任一项所述的方法,其中,将限定较低有效部分的数据包括在输出数据流中的步骤包括:将最低有效数据部分直接包括在输出数据流中作为原数据。
10.根据之前条款中任一项所述的方法,其中:
该序列的数据值表示具有图像数据位深度的图像数据;并且
该方法包括:将待用作各个最高有效数据部分中的多个最高有效位的位数设置成等于图像数据位深度。
11.根据之前条款中任一项所述的方法,其中,数据值的序列包括频率变换图像系数的序列。
12.根据条款11所述的方法,其中,根据从可用量化参数范围内选择的变量量化参数,频率变换输入图像系数是量化的频率变换输入图像系数,该方法包括:
对于使用可用量化参数范围的第一预定子范围内的量化参数产生的系数,根据最高有效数据部分和最低有效数据部分对频率变换输入图像系数的阵列进行编码;并且
对于使用不在可用量化参数范围的第一预定子范围内的量化参数产生的系数,将频率变换输入图像系数的阵列编码成使得每个最高有效数据部分的位数与该系数的位数相等并且相应的最低有效数据部分不包含位。
13.根据条款11或条款12所述的方法,包括下列步骤:
根据变换数据的最大动态范围并且使用具有数据精度的变换矩阵对输入图像数据进行频率变换,从而通过矩阵乘法过程生成频率变换后的输入图像系数的阵列;并且
根据输入图像数据的位深度选择变换矩阵的数据精度和最大动态范围。
14.根据条款13所述的方法,其中,选择步骤包括:
将变换矩阵的数据精度设置成小于输入图像数据的位深度的第一偏移位数(first offset number of bits);并且
将变换矩阵的最大动态范围设置成大于输入图像数据的位深度的第二偏移位数。
15.根据条款14所述的方法,其中,第一偏移位数等于2并且第二偏移位数等于5。
16.根据条款13至15中任一项所述的方法,包括下列步骤:
从具有不同数据精度的相应源变换矩阵导出具有所需数据精度的变换矩阵。
17.根据之前条款中任一项所述的方法,其中,编码步骤包括:
根据用于编码的数据集中的当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
将当前输入数据值分配给选择的子范围内的代码值;
根据分配的代码值和选择的子范围的大小修正该组代码值;
检测限定该组代码值的范围变量是否小于预定的最小大小,如果小于,则使范围变量连续增加使得该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;并且
在对一组输入数据值进行编码之后,将范围变量设置成从可用范围变量值的预定子集中选择的值,该子集中的每个值均具有等于零的至少一个最低有效位。
18.根据条款17所述的方法,其中:
通过与输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例。
19.根据条款18所述的方法,包括下列步骤:
在对数据值进行编码之后,修正上下文变量,以与下一输入数据值相关地使用,从而使针对当前数据值选择的子范围内的该组代码值的比例增加。
20.根据条款17至19中任一项所述的方法,其中:
该组代码值包括由范围变量限定的自0至上限值的值,上限值在256与510之间。
21.根据条款20所述的方法,其中:
范围变量的可用值的子集包括值256。
22.根据条款20所述的方法,其中:
可用值的子集包括由256和384构成的集合;
设置范围变量的步骤包括:根据范围变量的当前值从子集中选择值,使得如果范围变量的当前值在256与383之间,则将范围变量设置成256,并且如果范围变量的当前值在384与510之间,则将范围变量设置成384。
23.根据条款20所述的方法,其中:
可用值的子集包括由256、320、384以及448构成的集合;
设置范围变量的步骤包括:根据范围变量的当前值从子集中选择值,使得如果范围变量的当前值在256与319之间,则将范围变量设置成256,如果范围变量的当前值在320与383之间,则将范围变量设置成320,如果范围变量的当前值在384与447之间,则将范围变量设置成384,并且如果范围变量的当前值在448与510之间,则将范围变量设置成448。
24.根据条款17至23中任一项所述的方法,包括:
对表示值的数据进行编码作为旁路数据,该值不在数据集中表示;
检测与当前阵列相关联的旁路数据的数量;并且
如果旁路数据的数量超过阈值量,则应用设置步骤,否则,不应用设置步骤。
25.根据条款17至24中任一项所述的方法,其中,将数据编码成包括数据值的多个阵列的变换单元,该方法包括在变换单元编码结束时应用设置步骤。
26.一种对图像数据进行编码的方法,包括下列步骤:
根据变换数据的最大动态范围并且使用具有数据精度的变换矩阵对输入图像数据进行频率变换,从而通过矩阵乘法过程生成频率变换后的输入图像系数的阵列;并且
根据输入图像数据的位深度选择变换矩阵的数据精度和最大动态范围。
27.一种通过前述条款中任一项所述的编码方法进行编码的图像数据。
28.一种存储根据条款17所述的视频数据的数据载体。
29.一种用于对数据进行解码以提供数据值的阵列的数据解码方法,该方法包括下列步骤:
从输入数据流分离出数据值的最低有效数据部分和一个或者多个编码数据集;
使用二进制解码对数据集进行解码,以生成数据值的最高有效数据部分;并且
将最高有效数据部分与最低有效数据部分合成,从而形成数据值,使得对于数据值,相应的最高有效数据部分表示该数据值的多个最高有效位,并且相应的最低有效数据部分表示该数据值的其余最低有效位。
30.一种对图像数据进行解码的方法,包括下列步骤:
根据变换数据的最大动态范围并且使用具有数据精度的变换矩阵对输入频率变换的图像数据进行频率变换,从而通过矩阵乘法过程生成输出图像数据的阵列;并且
根据输出图像数据的位深度选择变换矩阵的数据精度和最大动态范围。
31.一种计算机软件,当计算机执行计算机软件时,计算机软件致使计算机完成之前条款中任一项所述的方法。
32.一种存储根据条款31所述的计算机软件的非易失性机器可读存储介质。
33.一种用于对数据值的序列进行编码的数据编码装置,该装置包括:
生成器,生成器被配置为从输入数据值生成相应互补的最高有效数据部分和最低有效数据部分,因此,值的最高有效数据部分表示该值的多个最高有效位,并且相应的最低有效数据部分表示该值的其余最低有效位,并且生成器被配置为生成一个或者多个数据集,该一个或者多个数据集指示预定量级的最高有效数据部分相对于值的阵列的位置;和
编码器,编码器被配置为使用二进制编码将数据集编码成输出数据流并且被配置为将限定较低有效部分的数据包括在输出数据流中。
34.一种用于对图像数据进行编码的数据编码装置,该装置包括:
频率变换器,频率变换器被配置为根据变换数据的最大动态范围并且使用具有数据精度的变换矩阵对输入图像数据进行频率变换,从而通过矩阵乘法过程生成频率变换后的输入图像系数的阵列;和
选择器,选择器被配置为根据输入图像数据的位深度选择变换矩阵的数据精度和最大动态范围。
35.一种用于对数据进行解码以提供数据值的阵列的数据解码装置,该装置包括下列步骤:
数据分离器,数据分离器被配置为从输入数据流中分离出数据值的最低有效数据部分和一个或者多个编码数据集;
解码器,解码器被配置为使用二进制解码对数据集进行解码,从而生成数据值的最高有效数据部分;以及
合成器,合成器被配置为将最高有效数据部分与最低有效数据部分合成以形成数据值,使得对于数据值,相应的最高有效数据部分表示该数据值的多个最高有效位,并且相应的最低有效数据部分表示该数据值的其余最低有效位。
36.一种图像数据解码装置,包括:
频率变换器,频率变换器被配置为根据变换数据的最大动态范围并且使用具有数据精度的变换矩阵对输入频率变换的图像数据进行频率变换,从而通过矩阵乘法过程生成输出图像数据的阵列;和
选择器,选择器被配置为根据输出图像数据的位深度选择变换矩阵的数据精度和最大动态范围。
37.一种包括根据条款33至36中任一项所述的装置的视频数据捕获、传输、显示、和/或存储装置。
通过下列编号条款限定进一步的实施方式:
1.一种用于对用于编码的数据集中的输入数据值进行编码的数据编码装置,该装置包括:
选择器,选择器被配置为根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,并且选择器被配置为将当前输入数据值分配给选择的子范围内的代码值;
修正器,修正器被配置为根据分配的代码值和选择的子范围的大小修正该组代码值;
检测器,检测器被配置为检测范围变量是否小于预定的最小大小,范围变量限定该组代码值,并且如果小于,则使范围变量连续增加以使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;以及
范围变量设置器,范围变量设置器被配置为:在对一组输入数据值进行编码之后,将范围变量设置成从可用范围变量值的预定子集中选择的值,子集中的每个值均具有等于零的至少一个最低有效位。
2.根据条款1所述的装置,其中,可用范围变量值的子集由值256构成。
3.根据条款1或条款2所述的装置,其中:
通过与输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例。
4.根据条款3所述的装置,包括下列步骤:
在对输入数据值进行编码之后,修正上下文变量,以与下一输入数据值相关地使用,从而使针对当前输入数据值选择的子范围内的该组代码值的比例增加。
5.根据之前条款中任一项所述的装置,其中:
该组代码值包括由范围变量限定的自0至上限值的值,上限值在预定的最小大小与第二预定值之间。
6.根据条款5所述的装置,其中,预定的最小大小是256并且第二预定值是510。
7.根据之前条款中任一项所述的装置,其中:
范围变量的可用值的子集包括预定的最小大小。
8.根据条款1所述的装置,其中,子集包括预定的最小大小与第二预定值之间的两个或者更多个值。
9.根据条款8所述的装置,其中,范围变量设置器被配置为根据范围变量的当前值从子集中选择值。
10.根据条款9所述的装置,其中,范围变量设置器被配置为:如果范围变量的当前值在子集中的特定值与小于下一更高值的一个之间,则从子集中选择该特定值。
11.根据之前条款中任一项所述的装置,包括:
旁路数据编码器,旁路数据编码器被配置为对表示系数的数据进行编码作为旁路数据,该系数不表示数据集;和
旁路数据数量检测器,旁路数据数量检测器被配置为检测与当前阵列相关联的旁路数据的数量;并且其中:
范围变量设置器被配置为:如果旁路数据的数量超过阈值量,则设置范围变量,否则,不设置范围变量。
12.根据之前条款中任一项所述的装置,其中:
输入数据值表示图像数据;并且
图像数据被编码成包括系数的多个阵列的变换单元;
其中,范围变量设置器被配置为在变换单元编码结束时设置范围变量。
13.一种对用于编码的数据集中的输入数据值进行数据编码的方法,该方法包括下列步骤:
根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
将当前输入数据值分配给选择的子范围内的代码值;
根据分配的代码值和选择的子范围的大小修正该组代码值;
检测限定该组代码值的范围变量是否小于预定的最小大小,并且如果小于,则使范围变量连续增加,从而使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;并且
在对一组输入数据值进行编码之后,将范围变量设置成从可用范围变量值的预定子集中选择的值,子集中的每个值均具有等于零的至少一个最低有效位。
14.根据条款13所述的方法,其中,可用范围变量值的子集由值256构成。
15.根据条款13或条款14所述的方法,其中:
通过与输入数据值相关联的上下文变量限定子范围相对于该组代码值的比例。
16.根据条款15所述的方法,包括下列步骤:
在对输入数据值进行编码之后,修正上下文变量,以关于下一输入数据值而使用,从而使针对当前输入数据值选择的子范围内的该组代码值的比例增加。
17.根据条款13至16中任一项所述的方法,其中:
该组代码值包括由范围变量限定的自0至上限值的值,上限值在预定的最小大小与第二预定值之间。
18.根据条款17所述的方法,其中,预定的最小大小是256并且第二预定值是510。
19.根据条款13至18中任一项所述的方法,其中:
范围变量的可用值的子集包括预定的最小大小。
20.根据条款13所述的方法,其中,子集包括预定的最小大小与第二预定值之间的两个或者更多个值。
21.根据条款20所述的方法,其中,设置步骤包括:根据范围变量的当前值从子集中选择值。
22.根据条款21所述的方法,其中,设置步骤包括:如果范围变量的当前值在子集中的特定值与小于下一更高值的一个之间,则从子集中选择该特定值。
23.根据条款13至22中任一项所述的方法,包括:
对表示系数的数据进行编码作为旁路数据,该系数不表示数据集;
检测与当前阵列相关联的旁路数据的数量;并且
如果旁路数据的数量超过阈值量,则应用设置步骤,否则,不应用设置步骤。
24.根据条款13至23中任一项所述的方法,其中:
输入数据值表示图像数据;
图像数据被编码成包括系数的多个阵列的变换单元,该方法包括在变换单元编码结束时应用设置步骤。
25.一种根据条款13至24中任一项所述的编码方法进行编码的数据。
26.一种存储根据条款25所述的视频数据的数据载体。
27.一种根据条款25所述的数据的分布的实例(instance of distribution)。
28.一种包括根据条款1至12中任一项所述的装置的视频数据捕获、传输、和/或存储装置。
29.一种用于对算术编码的数据值的序列进行解码的数据解码装置,该装置包括:
选择器,选择器被配置为选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
修正器,修正器被配置为根据选择的子范围的大小修正该组代码值;
检测器,检测器被配置为检测编码数据值,并且响应该检测,使该组代码值的大小增加,并且检测该序列的末端(termination),在末端处,将范围变量设置成从可用范围变量值的预定子集中选择的值,子集中的每个值均具有等于零的至少一个最低有效位;以及
范围变量设置器,范围变量设置器被配置为响应该检测,设置范围变量并且将该组代码值的大小设置成选择的值。
30.根据条款29所述的装置,其中,可用范围变量值的子集由值256构成。
31.根据条款29或条款30所述的装置,包括:
检测器,检测器被配置为从该序列的末端处的最终编码数据值中检测出一个或者多个等概率编码的数据值。
32.一种对算术编码数据值的序列进行解码的方法,该方法包括下列步骤:
选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
根据选择的子范围的大小修正该组代码值;
检测编码数据值,并且响应该检测,使该组代码值的大小增加;
检测该序列的末端,在该末端,将范围变量设置成从可用范围变量值的预定子集中选择的值,子集中的每个值均具有等于零的至少一个最低有效位;并且
响应该检测步骤,设置范围变量并且将该组代码值的大小设置成选择的值。
33.根据条款32所述的方法,其中,可用范围变量值的子集由值256构成。
34.根据条款32或条款33所述的方法,包括:
从该序列的末端处的最终编码数据值中检测出一个或者多个等概率编码的数据值。
35.一种计算机软件,当计算机执行计算机软件时,计算机软件致使计算机完成条款13至24与条款32至34中任一项所述的方法。
36.一种存储根据条款35所述的软件的非易失性机器可读存储介质。
37.一种包括根据条款29至31中任一项所述的装置的视频数据捕获、传输、显示、和/或存储装置。
通过下列编号条款限定进一步的相应特征:
1.一种用于对用于编码的数据集的输入数据值进行编码的数据编码装置,该装置包括:
选择器,选择器被配置为根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,并且选择器被配置为将当前输入数据值分配给选择的子范围内的代码值;
修正器,修正器被配置为根据分配的代码值和选择的子范围的大小修正该组代码值;
检测器,检测器被配置为检测限定该组代码值的范围变量是否小于预定的最小大小,并且如果小于,则使范围变量连续增加,从而使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;以及
范围变量设置器,范围变量设置器被配置为:在对一组输入数据值进行编码之后,将范围变量设置成预定的最小大小。
2.根据条款1所述的装置,其中,预定的最小大小是256。
3.一种用于对用于编码的数据集中的输入数据值进行编码的数据编码装置,该装置包括:
选择器,选择器被配置为根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,并且选择器被配置为将当前输入数据值分配给选择的子范围内的代码值;
修正器,修正器被配置为根据分配的代码值和选择的子范围的大小修正该组代码值;
检测器,检测器被配置为检测限定该组代码值的范围变量是否小于预定的最小大小,并且如果小于,则使范围变量连续增加,从而使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;以及
范围变量设置器,范围变量设置器被配置为:在对一组输入数据值进行编码之后,将范围变量设置成256。
4.一种数据解码装置,被配置为从使用二进制算术编码法编码的数据流解码数据位,在二进制算术编码法中,数据位被编码成一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,该装置包括:
范围变量设置器,范围变量设置器被配置为:在对一组数据位进行解码之后,将范围变量设置成预定的值;和
数据输出部,数据输出部被配置为将数据流的一个或者多个后续数据位视为解码数据位。
5.根据条款4所述的装置,其中,预定值是256。
6.一种对用于编码的数据集的输入数据值进行数据编码的方法,该方法包括下列步骤:
根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
将当前输入数据值分配给选择的子范围内的代码值;
根据分配的代码值和选择的子范围的大小修正(modify)该组代码值;
检测限定该组代码值的范围变量是否小于预定的最小大小,并且如果小于,则使范围变量连续增加,从而使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;并且
在对一组输入数据值进行编码之后,将范围变量设置成预定的最小大小。
7.根据条款6所述的方法,其中,预定的最小大小是256。
8.一种对用于编码的数据集中的输入数据值进行数据编码的方法,该方法包括下列步骤:
根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定;
将当前输入数据值分配给选择的子范围内的代码值;
根据分配的代码值和选择的子范围的大小修正该组代码值;
检测限定该组代码值的范围变量是否小于预定的最小大小,并且如果小于,则使范围变量连续增加,从而使该组代码值的大小增加,直至其至少具有预定的最小大小;并且响应每个这样的大小增加操作,输出编码数据位;并且
在对一组输入数据值进行编码之后,将范围变量设置成256。
9.一种使用二进制算术编码(binary arithmetic coding)对数据值进行编码和解码的方法,其中,根据当前输入数据值的值选择一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,该方法包括:在对一组输入数据值进行编码或解码之后,将范围变量设置成预定的值。
10.根据条款9所述的方法,其中,预定值是256。
11.根据条款9或条款10所述的方法,其中,预定值是范围变量的最小允许值。
12.一种对来自使用二进制算术编码进行编码的数据流的数据位进行数据解码的方法,其中,数据位被编码成一组代码值的多个互补子范围中的一个,该组代码值由范围变量限定,该方法包括:
在对一组数据位进行解码之后,将范围变量设置成预定的值;并且
将数据流的一个或者多个后续数据位视为解码的数据位。
13.根据条款12所述的方法,其中,预定值是256。
14.一种编码和解码装置,被配置为执行条款9至11中任一项所述的方法。
15.一种计算机软件,当计算机执行计算机软件时,计算机软件致使计算机完成条款6至13中任一项所述的方法。
16.一种存储根据条款15所述的软件的非易失性机器可读存储介质。
应认识到,除非技术情景中禁止,否则,可以将各组条款中限定的特征与其他组条款中限定的特征组合。
如上所述,应认识到,通过之前所述的编码器或解码器的相应特征可以实现上述条款的装置特征。
Claims (21)
1.解码数据值序列的方法,所述数据值序列包括基于上下文的自适应二进制算术编码(CABAC)编码的数据值和CABAC旁路数据值,所述方法包括:
在解码所述数据值序列中的CABAC旁路数据值之前,将CABAC解码器的范围变量值设置为具有至少一个有效位等于零的预定值,以及
将一部分所述数据值序列视为移位寄存器,并将CABAC旁路数据值作为连续的比特值输出到解码的数据流。
2.根据权利要求1所述的方法,其中所述预定值是两个值的最大有效幂,所述预定值为n比特CABAC熵解码创建子范围。
3.根据权利要求1或2所述的方法,其中所述预定值是256。
4.根据权利要求1所述的方法,进一步包括:同时解码CABAC编码的数据值并输出CABAC旁路数据值以形成所述解码的数据流。
5.根据权利要求1所述的方法,其中所述CABAC解码器的状态与所述数据值序列的所述CACBAC旁路数据值的比特边界对准。
6.根据权利要求5所述的方法,其中所述CABAC解码器的状态包括范围变量值和m_Value。
7.根据权利要求5所述的方法,包括选择性地将所述数据值序列视为比特对准的。
8.根据权利要求1所述的方法,其中所述数据值序列包括变换系数。
9.根据权利要求1所述的方法,其中所述数据值序列包括HEVC视频数据。
10.数据存储介质,其上存储有计算机可读指令,当所述计算机可读指令被执行时,使得计算机执行权利要求1所述的方法。
11.数据解码装置,被配置为解码包括基于上下文的自适应二进制算术编码(CABAC)编码的数据值和CABAC旁路数据值的数据值序列,所述数据解码装置包括处理器,所述处理器被配置为:
在解码所述数据值序列中的CABAC旁路数据值之前,将CABAC解码器的范围变量值设置为256,以及
将一部分所述数据值序列视为移位寄存器,并将CABAC旁路数据值作为连续的比特值输出到解码的数据流。
12.根据权利要求11所述的数据解码装置,进一步包括存储器,其中所述解码的数据流存储在所述存储器中。
13.根据权利要求11所述的数据解码装置,被配置为同时解码CABAC编码的数据值并输出CABAC旁路数据值以形成所述解码的数据流。
14.根据权利要求11所述的数据解码装置,其中所述CABAC解码器的状态值与所述数据值序列的比特边界对准。
15.根据权利要求14所述的数据解码装置,其中所述状态值包括范围变量值和m_value。
16.根据权利要求14所述的数据解码装置,包括选择性地将所述数据值序列视为比特对准的。
17.根据权利要求14所述的数据解码装置,被配置为以非比特对准模式选择性地解码CABAC编码的数据值和CABAC旁路数据值。
18.根据权利要求11所述的数据解码装置,其中所述数据值序列包括变换系数。
19.根据权利要求11所述的数据解码装置,其中所述数据值序列包括HEVC视频数据。
20.用于接收信号的视频接收机,所述接收机包括权利要求11所述的数据解码装置。
21.视频捕获装置,包括图像传感器、视频编码器和根据权利要求11所述的数据解码装置。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1306334.2A GB2513110A (en) | 2013-04-08 | 2013-04-08 | Data encoding and decoding |
| GB1306334.2 | 2013-04-08 | ||
| PCT/GB2014/051066 WO2014167299A1 (en) | 2013-04-08 | 2014-04-04 | Data encoding and decoding |
| CN201480020288.7A CN105103453B (zh) | 2013-04-08 | 2014-04-04 | 数据编码和解码 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201480020288.7A Division CN105103453B (zh) | 2013-04-08 | 2014-04-04 | 数据编码和解码 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109257048A true CN109257048A (zh) | 2019-01-22 |
| CN109257048B CN109257048B (zh) | 2023-03-14 |
Family
ID=48483537
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811064517.1A Active CN109257048B (zh) | 2013-04-08 | 2014-04-04 | 解码数据值序列的方法、数据解码装置及视频接收机 |
| CN201480020288.7A Active CN105103453B (zh) | 2013-04-08 | 2014-04-04 | 数据编码和解码 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201480020288.7A Active CN105103453B (zh) | 2013-04-08 | 2014-04-04 | 数据编码和解码 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US11290720B2 (zh) |
| EP (1) | EP2984761B1 (zh) |
| JP (2) | JP6078204B2 (zh) |
| CN (2) | CN109257048B (zh) |
| GB (1) | GB2513110A (zh) |
| WO (1) | WO2014167299A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111490984A (zh) * | 2020-04-03 | 2020-08-04 | 上海宽创国际文化科技股份有限公司 | 一种网络数据编码及其加密算法 |
| CN114009029A (zh) * | 2019-06-25 | 2022-02-01 | 索尼集团公司 | 图像数据编码和解码 |
| WO2023246514A1 (zh) * | 2022-06-22 | 2023-12-28 | 广州市百果园信息技术有限公司 | 一种视频解码方法、装置、设备及存储介质 |
| WO2024187388A1 (zh) * | 2023-03-14 | 2024-09-19 | Oppo广东移动通信有限公司 | 点云的编解码方法、码流、编码器、解码器以及存储介质 |
Families Citing this family (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9521423B2 (en) | 2014-06-26 | 2016-12-13 | Sony Corporation | Data encoding and decoding apparatus, method and storage medium |
| TWI684345B (zh) * | 2016-11-04 | 2020-02-01 | 美商新思科技股份有限公司 | 用於信號轉換最小化的相移編碼之裝置與方法 |
| US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
| US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
| US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
| US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
| US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
| US10547869B2 (en) | 2017-12-08 | 2020-01-28 | Google Llc | Template-based entropy coding of quantized transform coefficients |
| US10609421B2 (en) | 2018-07-12 | 2020-03-31 | Google Llc | Context derivation for coefficient coding |
| CN108234985B (zh) * | 2018-03-21 | 2021-09-03 | 南阳师范学院 | 用于反向深度图渲染处理的维度变换空间下的滤波方法 |
| US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
| US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
| US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
| US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
| US10867414B2 (en) | 2018-04-10 | 2020-12-15 | Apple Inc. | Point cloud attribute transfer algorithm |
| CN119520780A (zh) * | 2018-07-02 | 2025-02-25 | 交互数字Vc控股公司 | 基于上下文的二进制算术编码和解码的方法和装置 |
| US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
| US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
| US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
| US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
| US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
| US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
| US11711544B2 (en) | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
| KR20220044279A (ko) | 2019-08-15 | 2022-04-07 | 바이트댄스 아이엔씨 | 팔레트 이스케이프 심벌에 대한 엔트로피 코딩 |
| JP7494289B2 (ja) | 2019-08-15 | 2024-06-03 | バイトダンス インコーポレイテッド | 異なるパーティション構造をもつパレット・モード |
| WO2021040492A1 (ko) * | 2019-08-31 | 2021-03-04 | 엘지전자 주식회사 | 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치 |
| JP2022548737A (ja) * | 2019-09-19 | 2022-11-21 | バイトダンス インコーポレイテッド | パレット・モードのための量子化パラメータ導出 |
| US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
| US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
| US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
| US11398833B2 (en) | 2019-10-02 | 2022-07-26 | Apple Inc. | Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream |
| US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
| CN112866723B (zh) | 2019-11-28 | 2024-04-19 | 瑞昱半导体股份有限公司 | 图像数据处理方法与系统 |
| US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
| US11625866B2 (en) | 2020-01-09 | 2023-04-11 | Apple Inc. | Geometry encoding using octrees and predictive trees |
| WO2021182432A1 (ja) * | 2020-03-12 | 2021-09-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、および復号方法 |
| US10938411B1 (en) * | 2020-03-25 | 2021-03-02 | Arm Limited | Compression and/or decompression of activation data |
| US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
| US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
| US11722672B2 (en) | 2020-10-06 | 2023-08-08 | Qualcomm Incorporated | Adaptively deriving rice parameter values for high bit-depth video coding |
| CN112290953B (zh) * | 2020-10-19 | 2023-05-23 | 华南理工大学 | 多道数据流的阵列编码装置和方法、阵列解码装置和方法 |
| US12047575B2 (en) * | 2020-12-03 | 2024-07-23 | Intel Corporation | Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding |
| KR20220090887A (ko) | 2020-12-23 | 2022-06-30 | 삼성전자주식회사 | 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 |
| CN112865961B (zh) * | 2021-01-06 | 2022-04-29 | 湖南遥昇通信技术有限公司 | 一种基于加权概率模型的对称加密方法、系统和设备 |
| US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
| WO2023272533A1 (zh) * | 2021-06-29 | 2023-01-05 | Oppo广东移动通信有限公司 | 编解码方法、编码器、解码器以及存储介质 |
Citations (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1198613A (zh) * | 1997-04-02 | 1998-11-11 | 三星电子株式会社 | 数字数据编码/解码方法及设备 |
| CN1418014A (zh) * | 2001-10-30 | 2003-05-14 | 奥普兰约股份有限公司 | 编码方法和编码装置 |
| US20030103573A1 (en) * | 2001-11-27 | 2003-06-05 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data |
| WO2004028165A2 (en) * | 2002-09-20 | 2004-04-01 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for arithmetic coding and decoding |
| CN1642287A (zh) * | 2004-01-14 | 2005-07-20 | 三星电子株式会社 | 解码方法和解码设备 |
| US20050156762A1 (en) * | 2003-12-17 | 2005-07-21 | Daisuke Tsuru | Coding apparatus, program and data processing method |
| US20070171985A1 (en) * | 2005-07-21 | 2007-07-26 | Samsung Electronics Co., Ltd. | Method, medium, and system encoding/decoding video data using bitrate adaptive binary arithmetic coding |
| CN101076114A (zh) * | 2007-06-15 | 2007-11-21 | 上海富瀚微电子有限公司 | 一种上下文自适应二进制算术编码器及其方法 |
| US20080048893A1 (en) * | 2006-08-25 | 2008-02-28 | Sony Computer Entertainment Inc. | Entropy decoding methods and apparatus |
| US20090219183A1 (en) * | 2008-02-29 | 2009-09-03 | Hiroaki Sakaguchi | Arithmetic decoding apparatus |
| US20100329334A1 (en) * | 2008-02-05 | 2010-12-30 | Thomson Licensing | Methods and apparatus for implicit block segmentation in video encoding and decoding |
| CN102231830A (zh) * | 2010-11-23 | 2011-11-02 | 浙江大学 | 用于上下文算术编解码的运算单元 |
| US20110285557A1 (en) * | 2010-05-21 | 2011-11-24 | Research In Motion Limited | Methods and devices for reducing sources in binary entropy coding and decoding |
| TW201143459A (en) * | 2010-04-09 | 2011-12-01 | Mitsubishi Electric Corp | Apparatus for encoding dynamic image and apparatus for decoding dynamic image |
| US20130027230A1 (en) * | 2010-04-13 | 2013-01-31 | Detlev Marpe | Entropy coding |
| CN102939755A (zh) * | 2010-04-13 | 2013-02-20 | 弗兰霍菲尔运输应用研究公司 | 显著性图和变换系数块的编码 |
| CN103096075A (zh) * | 2011-11-07 | 2013-05-08 | 索尼公司 | 视频数据编码和解码 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6825782B2 (en) * | 2002-09-20 | 2004-11-30 | Ntt Docomo, Inc. | Method and apparatus for arithmetic coding and termination |
| US7221296B2 (en) | 2005-08-22 | 2007-05-22 | Streaming Networks (Pvt.) Ltd. | Method and system for fast context based adaptive binary arithmetic coding |
| WO2008065814A1 (en) * | 2006-11-30 | 2008-06-05 | Panasonic Corporation | Coder |
| JP4382840B2 (ja) * | 2007-08-20 | 2009-12-16 | Nttエレクトロニクス株式会社 | 2値算術符号化装置 |
| JP4915350B2 (ja) * | 2008-01-16 | 2012-04-11 | 日本電気株式会社 | エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム |
| JP5736032B2 (ja) * | 2010-04-09 | 2015-06-17 | 株式会社Nttドコモ | 算術符号化のための適応型2値化 |
| ES2944949T3 (es) * | 2011-06-24 | 2023-06-27 | Sun Patent Trust | Método y aparato de codificación de imágenes |
| GB2496201A (en) * | 2011-11-07 | 2013-05-08 | Sony Corp | Context adaptive data encoding and decoding |
| GB201119175D0 (en) * | 2011-11-07 | 2011-12-21 | Sony Corp | Context adaptive data encoding |
| GB201119180D0 (en) | 2011-11-07 | 2011-12-21 | Sony Corp | Data encoding and decoding |
| GB2501535A (en) | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
-
2013
- 2013-04-08 GB GB1306334.2A patent/GB2513110A/en not_active Withdrawn
-
2014
- 2014-04-04 CN CN201811064517.1A patent/CN109257048B/zh active Active
- 2014-04-04 EP EP14716393.5A patent/EP2984761B1/en active Active
- 2014-04-04 US US14/778,394 patent/US11290720B2/en active Active
- 2014-04-04 WO PCT/GB2014/051066 patent/WO2014167299A1/en not_active Ceased
- 2014-04-04 JP JP2016507051A patent/JP6078204B2/ja active Active
- 2014-04-04 CN CN201480020288.7A patent/CN105103453B/zh active Active
-
2017
- 2017-01-13 JP JP2017004139A patent/JP6465903B2/ja active Active
-
2022
- 2022-03-15 US US17/695,114 patent/US11671599B2/en active Active
Patent Citations (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1198613A (zh) * | 1997-04-02 | 1998-11-11 | 三星电子株式会社 | 数字数据编码/解码方法及设备 |
| CN1418014A (zh) * | 2001-10-30 | 2003-05-14 | 奥普兰约股份有限公司 | 编码方法和编码装置 |
| US20030103573A1 (en) * | 2001-11-27 | 2003-06-05 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data |
| WO2004028165A2 (en) * | 2002-09-20 | 2004-04-01 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for arithmetic coding and decoding |
| US20050156762A1 (en) * | 2003-12-17 | 2005-07-21 | Daisuke Tsuru | Coding apparatus, program and data processing method |
| CN1642287A (zh) * | 2004-01-14 | 2005-07-20 | 三星电子株式会社 | 解码方法和解码设备 |
| US20070171985A1 (en) * | 2005-07-21 | 2007-07-26 | Samsung Electronics Co., Ltd. | Method, medium, and system encoding/decoding video data using bitrate adaptive binary arithmetic coding |
| US20080048893A1 (en) * | 2006-08-25 | 2008-02-28 | Sony Computer Entertainment Inc. | Entropy decoding methods and apparatus |
| CN101076114A (zh) * | 2007-06-15 | 2007-11-21 | 上海富瀚微电子有限公司 | 一种上下文自适应二进制算术编码器及其方法 |
| US20100329334A1 (en) * | 2008-02-05 | 2010-12-30 | Thomson Licensing | Methods and apparatus for implicit block segmentation in video encoding and decoding |
| US20090219183A1 (en) * | 2008-02-29 | 2009-09-03 | Hiroaki Sakaguchi | Arithmetic decoding apparatus |
| TW201143459A (en) * | 2010-04-09 | 2011-12-01 | Mitsubishi Electric Corp | Apparatus for encoding dynamic image and apparatus for decoding dynamic image |
| US20130027230A1 (en) * | 2010-04-13 | 2013-01-31 | Detlev Marpe | Entropy coding |
| CN102939755A (zh) * | 2010-04-13 | 2013-02-20 | 弗兰霍菲尔运输应用研究公司 | 显著性图和变换系数块的编码 |
| US20110285557A1 (en) * | 2010-05-21 | 2011-11-24 | Research In Motion Limited | Methods and devices for reducing sources in binary entropy coding and decoding |
| CN102231830A (zh) * | 2010-11-23 | 2011-11-02 | 浙江大学 | 用于上下文算术编解码的运算单元 |
| CN103096075A (zh) * | 2011-11-07 | 2013-05-08 | 索尼公司 | 视频数据编码和解码 |
Non-Patent Citations (4)
| Title |
|---|
| D. MARPE: "Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
| YUAN-HSIN LIAO: "A Highly Efficient VLSI Architecture for H.264/AVC Level 5.1 CABAC Decoder", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
| 柳薇: "网络视频编码技术", 《通信学报》 * |
| 王娟: "遥感图像压缩编码器结构研究与重要电路模块实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114009029A (zh) * | 2019-06-25 | 2022-02-01 | 索尼集团公司 | 图像数据编码和解码 |
| US12170776B2 (en) | 2019-06-25 | 2024-12-17 | Sony Group Corporation | Image data encoding and decoding |
| US12200217B2 (en) | 2019-06-25 | 2025-01-14 | Sony Group Corporation | Image data encoding and decoding |
| CN111490984A (zh) * | 2020-04-03 | 2020-08-04 | 上海宽创国际文化科技股份有限公司 | 一种网络数据编码及其加密算法 |
| CN111490984B (zh) * | 2020-04-03 | 2022-03-29 | 上海宽创国际文化科技股份有限公司 | 一种网络数据编码及其加密算法 |
| WO2023246514A1 (zh) * | 2022-06-22 | 2023-12-28 | 广州市百果园信息技术有限公司 | 一种视频解码方法、装置、设备及存储介质 |
| WO2024187388A1 (zh) * | 2023-03-14 | 2024-09-19 | Oppo广东移动通信有限公司 | 点云的编解码方法、码流、编码器、解码器以及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2984761B1 (en) | 2021-08-18 |
| CN109257048B (zh) | 2023-03-14 |
| GB201306334D0 (en) | 2013-05-22 |
| US11290720B2 (en) | 2022-03-29 |
| US11671599B2 (en) | 2023-06-06 |
| US20160286215A1 (en) | 2016-09-29 |
| JP6465903B2 (ja) | 2019-02-06 |
| US20220217351A1 (en) | 2022-07-07 |
| JP2016519903A (ja) | 2016-07-07 |
| WO2014167299A1 (en) | 2014-10-16 |
| EP2984761A1 (en) | 2016-02-17 |
| JP6078204B2 (ja) | 2017-02-08 |
| CN105103453B (zh) | 2018-10-09 |
| JP2017118549A (ja) | 2017-06-29 |
| GB2513110A (en) | 2014-10-22 |
| CN105103453A (zh) | 2015-11-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109257048A (zh) | 解码数据值序列的方法、数据解码装置及视频接收机 | |
| CN105103548B (zh) | 一种编码、解码图像数据的方法及设备 | |
| CN105612744B (zh) | 视频数据编码和解码 | |
| JP6400092B2 (ja) | データ符号化及び復号化 | |
| RU2603548C2 (ru) | Получение режима внутреннего прогнозирования для цветоразностных значений | |
| TW202007169A (zh) | 適於相依純量量化之變換係數熵寫碼技術 | |
| KR102865723B1 (ko) | 데이터 인코딩 및 디코딩 | |
| CN107105248A (zh) | 视频数据的变换单位的子集的编解码的方法、设备和系统 | |
| US20230179776A1 (en) | Secondary transform designs for partitioned transform units in video coding | |
| AU2009303343B2 (en) | Reduced DC gain mismatch and DC leakage in overlap transform processing | |
| GB2564151A (en) | Image data encoding and decoding | |
| CN115769574A (zh) | 数据编码和解码 | |
| GB2564150A (en) | Image data encoding and decoding | |
| EP4364414A1 (en) | Data encoding and decoding | |
| WO2022073789A1 (en) | Data encoding and decoding |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |