一种确定RDOQ过程中最优量化值的方法及装置与流程

文档序号:15533787发布日期:2018-09-28 17:58阅读:211来源:国知局

本发明涉及视频编码领域,特别是涉及一种确定率失真优化量化RDOQ过程中最优量化值的方法及装置。



背景技术:

在各种图像、视频的有损编码技术中,如联合图像专家小组(Joint Photographic Experts Group,JPEG),活动图像专家组(Moving Picture Experts Group,MPEG-2),H.264等,量化技术是去除图像和视频冗余的关键技术,通过该项技术能够达到压缩图像和视频的目的。但是,量化技术会带来编码失真,造成重建图像和视频的质量较低。因此,如何在提高编码的压缩效率的同时降低因量化带来的失真影响,是视频编码研究的核心问题。

率失真优化方法能够有效地权衡图像的失真和编码比特数两方面的因素,能够在获得尽可能好的视频质量的同时采用最少的编码码率。因此,在量化过程中结合率失真优化方法,能够实现有效地平衡码率与失真两方面因素,该方法具体描述为,通过标准量化过程,获得变换系数及其对应的最大量化值和候选量化值,针对存在多个不同的候选量化值的变换系数,选出编码代价最小的量化值作为最优的量化值,使得量化后的系数能够达到码率与失真的最佳平衡。这种技术就是率失真优化量化(Rate Distortion Optimized Quantization,RDOQ)技术。

进一步的,RQOD技术的具体实施步骤如下:

不论是编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)还是变换单元(Transform Unit,TU),在计算编码代价时都要经过RDOQ过程,下面以TU为例对RQOD的具体实施过程进行详细说明,参阅图1所示。

步骤101:将TU内的变换系数按照一定的扫描顺序组合成一维的变换系数序列。

具体的,TU支持的尺寸为32×32,16×16,8×8,4×4。当TU尺寸大于4×4时,将TU内所有系数划分成不重叠的4×4尺寸的系数组(Coefficient Group,CG)。因此,当TU尺寸为8×8,16×16,32×32时,划分的CG阵列为2×2,4×4,8×8阵列,对应TU内CG的扫描顺序如图2,图3,图4所示。

进一步地,当扫描到TU内某个CG时,由于每个CG为4×4的块,因此每个CG内的变换系数也需按照一定的扫描顺序进行处理,包括水平、垂直和对角三种扫描方式,如图5所示。一般地,帧间变换系数的扫描方式为对角扫描,帧内变换系数的扫描方式为水平或者垂直方式。

参阅图6所示,为TU尺寸为8×8,CG为帧间变换系数的变换系数完整扫描过程。

步骤102:按照扫描顺序为每个变换系数生成最大量化值Ama×,根据Ama×的值生成若干候选量化值。

步骤103:针对非零变换系数,计算当前变换系数的每个候选量化值的编码代价,将编码代价最小的量化值作为当前变换系数的最优量化值。

其中,编码代价至少包括估算编码失真和估算编码比特。

步骤104:按照上述的扫描顺序依次处理完系数组内所有系数;

步骤105:当处理完一个CG内所有系数,如果当前CG所在TU尺寸大于4×4,当前CG的编码代价J1包括当前CG内所有最优量化值计算的编码代价总和以及表示当前CG的其他信息的编码代价,当前CG的编码代价J2包括将当前CG内所有最优量化值设置为零计算的编码代价总和以及表示当前CG的其他信息的编码代价,比较两个代价的大小,如果J1小于J2,则保持此CG内所有最优量化值不变,否则将CG内所有非零量化值重置为零,并将CG相应的标志设置为全零的标志。

步骤106:按照以上的扫描顺序处理完一个TU内所有的变换系数为止。

现有技术中,在高效视频编码(High Efficiency Video Coding,HEVC)编码标准就采用了此种技术,它能够显著提高编码的性能。

HEVC编码标准作为最新的视频编码标准,是由运动图像专家组和视频编码专家组联合开发的。相比于目前比较先进的H.264编码标准,HEVC在相同的感知视频质量的情况下,能够节约近50%编码码率,而且,它更加符合目前高清视频编码的需求,提高了编码的并行化处理效率。但是,由于它采用了高效的编码技术,同时也带来了巨大的编码复杂度,因此将RDOQ应用于实际的高清视频编码技术中还存在重大挑战。



技术实现要素:

本发明实施例提供一种确定率失真优化量化RDOQ过程中最优量化值的方法及装置,用以解决现有技术中存在编码复杂度高,编码时间过长的问题。

本发明实施例提供的具体技术方案如下:

一种确定率失真优化量化RDOQ过程中最优量化值的方法,包括:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

因此,本发明的方法不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,包括:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,进一步包括:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,针对待编码单元中的每一个变换系数确定对应的最优量化值之后,进一步包括:

当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

或者,

当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

因此,本发明的方法不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,包括:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

一种确定率失真优化量化RDOQ过程中最优量化值的方法,包括:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,则计算相应的候选量化值集合中Amax和Amax-1的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

因此,本发明的方法不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,包括:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,进一步包括:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,针对待编码单元中的每一个变换系数确定对应的最优量化值之后,进一步包括:

当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

或者,

当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

因此,本发明的方法不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,包括:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

一种确定率失真优化量化RDOQ过程中最优量化值的装置,包括:

第一获取模块,用于按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

第一处理模块,用于按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

以及每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

因此,本发明的装置不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合时,第一获取模块具体用于:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax时,第一获取模块进一步用于:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,进一步包括:

第一判断模块,用于当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

或者,

用于当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

因此,本发明的装置不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程时,第一判断模块具体用于:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

一种确定率失真优化量化RDOQ过程中最优量化值的装置,包括:

第二获取模块,用于按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

第二处理模块,用于按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

以及每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,则计算相应的候选量化值集合中Amax和Amax-1的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

因此,本发明的装置不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合时,第二获取模块具体用于:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax时,第二获取模块进一步用于:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,进一步包括:

第二判断模块,用于当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

或者,

用于当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

因此,本发明的装置不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的,提高了实际应用的效率。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程时,第二判断模块具体用于:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m预设的正整数。

附图说明

图1为本发明背景技术中针对一个TU的标准的RDOQ过程;

图2为本发明背景技术中针对TU尺寸为8×8划分CG阵列为2×2的扫描顺序;

图3为本发明背景技术中针对TU尺寸为16×16划分CG阵列为4×4的扫描顺序;

图4为本发明背景技术中针对TU尺寸为32×32划分CG阵列为8×8的扫描顺序;

图5为本发明背景技术中CG中的三种扫描方式;

图6为本发明背景技术中TU尺寸为8×8的完整扫描顺序;

图7为本发明实施例中第一种确定RDOQ过程中最优量化值的概述流程图;

图8为本发明实施例中第二种确定RDOQ过程中最优量化值的概述流程图;

图9为本发明实施例中第一种确定RDOQ过程中最优量化值的具体流程图;

图10为本发明实施例中第二种确定RDOQ过程中最优量化值的具体流程图;

图11为本发明实施例中CG的RDOQ优化过程的具体流程图;

图12为本发明实施例中第一种确定RDOQ过程中最优量化值的结构示意图;

图13为本发明实施例中第二种确定RDOQ过程中最优量化值的结构示意图。

具体实施方式

为了解决现有RDOQ过程中编码复杂、编码时间过长的问题,本发明提供了一种确定RDOQ过程中最优量化值的方法,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合;按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

或者,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合;按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,则计算相应的候选量化值集合中Amax和Amax-1的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

下面结合附图对本发明优选的实施方式进行详细说明。

参阅图7所示,本发明实施例中,对确定RDOQ过程中最优量化值的流程具体如下:

步骤700:按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数。

具体的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

此外,若当前获取的变换系数的最大量化值Amax=0,则无需进行后面的编码代价计算比较,直接将0作为当前获取的变换系数的最优量化值。因此,当变换系数的最大量化值为零时,不会产生候选量化值集合。

步骤710:按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较,每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值。执行步骤720;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,执行步骤730。

步骤720:若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值。

步骤730:若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

此外,针对待编码单元中的每一个变换系数确定对应的最优量化值之后,还需针对待编码单元中包含的非零量化值的系数组CG是否需要进行RDOQ过程进行判断,具体分为两种情况:

其一,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

待编码单元的尺寸可能为4×4,8×8,16×16,32×32,64×64。

具体的,确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数,例如,m可以预设为小于或等于5的正整数。

其二,当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,N为预设的正整数,n为预设的正整数,例如,n可以预设为小于或等于10的正整数。

参阅图8所示,本发明实施例中,对确定RDOQ过程中最优量化值的流程具体如下:

步骤800:按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数。

具体的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

此外,若当前获取的变换系数的最大量化值Amax=0,则无需进行后面的编码代价计算比较,直接将0作为当前获取的变换系数的最优量化值。因此,当变换系数的最大量化值为零时,不会产生候选量化值集合。

步骤810:按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较,每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,执行步骤820;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,执行步骤830;若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,执行步骤840。

步骤820:若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值。

步骤830:若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,则计算相应的候选量化值集合中Amax和Amax-1的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值。

步骤840:若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

此外,针对待编码单元中的每一个变换系数确定对应的最优量化值之后,还需针对待编码单元中包含的非零量化值的系数组CG是否需要进行RDOQ过程进行判断,具体分为两种情况:

其一,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

具体的,确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

其二,当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

下面结合附图,对本发明优选的实施例进行详细说明。

参阅图9所示,以TU为例,确定RDOQ过程中最优量化值的具体流程如下:

步骤901:按照预设的扫描顺序依次获取TU内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合。

步骤902:按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值T1进行比较,针对当前选取的变换系数,若Amax<T1,执行步骤903;若Amax≥T1,执行步骤904。

步骤903:针对当前选取的变换系数,若Amax<T1,当前选取的变换系数执行标准的RDOQ过程。

步骤904:针对当前选取的变换系数,若Amax≥T1,当前选取的变换系数跳过标准的RDOQ过程,直接将最大量化值作为最优量化值。

具体的,下面的公式(1)为第一阈值的确定方法,也是各个变换系数的最大量化值Amax最后确定为最优量化值为0的概率计算方法:

其中公式(1)中i表示各个变换系数的最大量化值,Pi表示变换系数最终确定的最优量化值为零的概率。其中,α=-2.2×10-2,b=5.9×10-2,根据拟合公式和大量的实施例统计结果可知,在i=4时,即T1=3时,跳过标准的RDOQ过程,直接将当前变换系数的最大量化值作为最终的最优量化值。

参阅图10所示,以TU为例,确定RDOQ过程中最优量化值的具体流程如下:

步骤1001:按照预设的扫描顺序依次获取TU内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合。

步骤1002:按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值T1进行比较,针对当前选取的变换系数,若Amax<T1,执行步骤1003;否则,执行步骤1004。

步骤1003:针对当前选取的变换系数,若Amax<T1,当前选取的变换系数执行标准的RDOQ过程。

步骤1004:针对当前选取的变换系数,将当前变换系数的最大量化值Amax与预设的第一阈值T2进行比较,若T1≤Amax<T2,执行步骤1005;若Amax≥T2,执行步骤1006。

步骤1005:针对当前选取的变换系数,若T1≤Amax<T2,计算当前选取的变换系数相应的候选量化值集合中Amax和Amax-1的编码代价,不在计算候选量化值为0的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值。

步骤1006:针对当前选取的变换系数,若Amax≥T2,当前选取的变换系数跳过标准的RDOQ过程,直接将最大量化值作为最优量化值。

其中,第一阈值T1已经公式(1)确定,第二阈值T2可以根据拟合公式(2)确定,如下:

公式(2)中i表示对应于各个变换系数的最大量化值,pi表示变换系数的最终确定的最优量化值为i-1的概率。其中σ=0.3×10-3,β=6.4×10-3,γ=3.8×10-2,a=7.1×10-2。结合公式(1)和(2)和大量的实施例统计结果可知,若当前变换系数的最大量化值大于10时,即T2=10时,可将当前变换系数的最大量化值作为最优量化值,若当前变换系数的最大量化值大于等于3小于10时,当前变换系数的候选量化值将除去零这个候选量化值,例如,当前变换系数的最大量化值为Imax,并且3≤Imax<10,则只进行Imax和Imax-1的编码代价计算,代价最小的候选量化值作为最优的量化值。若当前变换系数的最大量化值大于等于10时,则直接将最大量化值作为当前变换系数的最优量化值。

参阅图11所示,以TU为例,在待编码单元确定在RDOQ过程中的最优量化值之后,可以根据CG内非零量化值的信息提前终止CG的RDOQ的具体步骤如下:

步骤1101:筛选出待编码单元中包含的非零量化值的CG。

步骤1102:判断TU尺寸是否大于16×16,若是,执行步骤1103;否则,执行步骤1105。

步骤1103:若TU尺寸大于16×16,进一步判断当前CG是否满足CG内非零量化值个数不超过m个,且所有非零量化值都为1,例如,m为4,若是,执行步骤1104,否则,执行步骤1107。

步骤1104:若当前CG满足CG内非零量化值个数不超过m个,且所有非零量化值都为1,将CG内非零量化值重置为0,并且将CG的非零标志设置为全零标志。

步骤1105:若TU尺寸小于等于16×16,进一步判断当前CG是否满足CG内非零量化值数目小于等于n个,且所有非零量化值均为1,若是,执行步骤1106;否则,执行步骤1107。

步骤1106:若当前CG是否满足CG内非零量化值个数小于等于n个,且所有非零量化值均为1时,例如n为5,当前CG执行RDOQ过程。

步骤1107:当前CG直接跳过RDOQ过程。

参阅图12所示,确定率失真优化量化RDOQ过程中最优量化值的装置,包括:

第一获取模块1200,用于按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

第一处理模块1210,用于按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

以及每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合时,第一获取模块1200具体用于:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax时,第一获取模块进一步用于:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,进一步包括:

第一判断模块1220,用于当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,其中,N为预设的正整数;

或者,

用于当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程时,第一判断模块1220具体用于:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

参阅图13所示,确定率失真优化量化RDOQ过程中最优量化值的装置,包括:

第二获取模块1300,用于按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合,其中,最大量化值Amax为0或正整数;

第二处理模块1310,用于按照扫描顺序依次将每一个变换系数的最大量化值Amax与预设的第一阈值进行比较;

以及每比较一次,若确定当前选取的变换系数的最大量化值Ama×小于预设的第一阈值,则计算相应的候选量化值集合中每一个候选量化值的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第一阈值且小于预设的第二阈值,则计算相应的候选量化值集合中Amax和Amax-1的编码代价,并将编码代价最小的候选量化值作为当前选取的变换系数的最优量化值;

若确定当前选取的变换系数的最大量化值Amax大于等于预设的第二阈值,则直接确定当前选取的变换系数的最大量化值Amax为当前选取的变换系数的最优量化值。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax,并基于获得的各个最大量化值Amax分别生成相应的候选量化值集合时,第二获取模块1300具体用于:

按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax;

若当前获取的变换系数的最大量化值Amax=1,则基于最大量化值Amax生成的相应的候选量化值集合包含0和Amax;

若当前获取的变换系数的最大量化值Amax>1,则基于最大量化值Amax生成的相应的候选量化值集合包含0、Amax-1和Amax。

较佳的,按照预设的扫描顺序依次获取待编码单元内每一个变换系数的最大量化值Amax时,第二获取模块进一步用于:

若当前获取的变换系数的最大量化值Amax=0,则直接将0作为当前获取的变换系数的最优量化值。

较佳的,进一步包括:

第二判断模块1320,用于当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数;

或者,

用于当确定待编码单元的尺寸小于等于N×N且待编码单元中存在包含非零量化值的至少一个系数组CG时,进一步判断至少一个CG内非零量化值的数目是否小于或等于n且非零量化值均为1,若是,则针对至少一个CG执行RDOQ过程,否则,针对至少一个CG跳过RDOQ过程,其中,CG中包含有设定数目的变换系数,N为预设的正整数,n为预设的正整数。

较佳的,当确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,针对至少一个CG跳过RDOQ过程中的编码代价计算过程时,第二判断模块1320具体用于:

确定待编码单元的尺寸大于N×N且待编码单元中存在包含非零量化值的至少一个CG时,进一步判断至少一个CG内的非零量化值的数目是否小于或等于m个且非零量化值均为1,若是,则将至少一个CG内的非零量化值重置为0,并针对至少一个CG跳过RDOQ过程中的编码代价计算过程;否则,直接针对至少一个CG跳过RDOQ过程,其中,m为预设的正整数。

综上所述,本发明中,提出了两种确定RDOQ过程中最优量化值的方法,包括每个变换系数的RDOQ优化和TU内每个CG的RDOQ优化,以达到降低编码复杂度的目的,具体的,给出提前终止变换系数的率失真优化量化过程的阈值或者根据当前变换系数的最大量化值有选择地减少候选量化值数目,并且在最大量化值大于某个阈值时完全跳过率失真优化量化过程,直接将当前变换系数的最大量化值作为最优的量化值。

在此基础上,针对不同的变换单元尺寸,通过统计分析变换单元内系数组的率失真优化过程,获取提前终止变换单元内系数组的率失真优化量化的约束条件,根据此约束条件自适应地提前终止不同尺寸变换单元内的系数组率失真优化量化过程。

本发明不会增加编码过程的计算量或者修改解码端,在几乎不影响视频质量的同时降低编码码率和复杂度,达到节约编码时间的目的。

此外,本发明涉及到的阈值是根据统计分析获取,几乎不会受到视频本身特性以及周围坏境等因素的影响,稳定性更好。本方案中某些变换系数可以完整跳过率失真优化过程来获取最优的量化值,因此能够更好地降低编码的复杂度,提高实际应用效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1