本发明涉及视频编解码领域,尤其涉及一种低码率视频编码方法及系统。
背景技术:
低码率视频压缩由于总体码率不足,当其编码复杂片源时,图像质量急剧下降。其中,相对于人眼敏感区域,该类质量恶化问题,会带来视觉的极度不舒适感。
技术实现要素:
本发明的目的在于提出一种低码率视频编码方法及系统,旨在解决现有技术低码率压缩复杂片源时,图像视觉敏感区域质量低下的问题。
本发明的技术方案是这样实现的,
一种低码率视频编码方法,包括以下步骤:
步骤A:判断如果bpp<Thres1,则进入步骤B;否则,对当前片源进行常规编码;
步骤B:如果当前帧为I或者QPt<Thres2,则对当前帧进行常规编码,然后进入步骤D;否则,进入步骤C;
步骤C:对当前帧进行限定模式编码;
步骤D:如果下一个编码帧存在,则将下一个编码帧设置为当前帧,然后进入步骤B;否则,结束;
其中,T_bit表示目标比特率,width、height、fps分别表示片源图像的像素列数、像素行数、采样帧率;Thres1表示第一判定阈值,QPt表示当前帧量化参数;Thres2表示第二判定阈值。
优选地,
第一判定阈值的取值范围为:Thres1≤0.1;
第二判定阈值的取值范围为:Thres2<32。
优选地,
所述对当前帧进行限定模式编码包括以下步骤:
步骤C1:设置初始值k=1;
步骤C2:如果QPt,k>Thres3且size(QPt,k)=PUmax且Thres4<std_cuyt,k<Thres5,则进入步骤C3;否则,对当前编码块进行常规模式编码,然后进入步骤C7;
步骤C3:将当前编码块划分成最小编码块尺寸的块;
步骤C4:计算当前编码块的判定参数;
步骤C5:对当前编码块进行预测模式限定;
步骤C6:对当前编码块进行限定模式编码;
步骤C7:如果k<K,则令k=k+1,然后进入步骤C2;否则进入步骤C3;
其中,k表示帧中编码块的排列序号;K表示一帧图像包含的编码块个数;QPt,k表示当前帧第k个编码块的量化参数;Thres3表示第三判定阈值,size(QPt,k)表示当前帧第k个编码块的尺寸;PUmax表示最大预测块尺寸;std_cuyt,k表示当前编码块亮度像素的均方差;Thres4、Thres5分别表示第四、第五判定阈值,5<Thres4<30<Thres5。
进一步优选,第三判定阈值的范围如下:Thres3>35。
进一步优选,所述对当前编码块进行限定模式编码具体为:
对当前编码块进行预测时,在当前编码块所支持的所有预测备选模式删除包含在中的所有预测模式,然后进行率失真优化,获取最佳预测;接着进行常规的变换量化、熵编码;
其中,表示当前编码块帧间预测删除集;表示当前编码块帧内预测删除集。
进一步优选,所述计算当前编码块的判定参数包括以下步骤:
设置临时集合;
Ω1={blocklu,blockru}、Ω2={blocklu,blockld}、Ω3={blocklu,blockrd}、
Ω4={blockru,blockld}、Ω5={blockru,blockrd}、Ω6={blockld,blockrd}
其中,Ωi表示第i个临时集合,1≤i≤6;blocklu,blockru,blockld,blockrd分别表示将当前编码块划分成最小编码块尺寸后,位于当前编码块左上、右上、左下、右下块的亮度像素值;临时集合个数不小于3且集合覆盖所有的blocklu,blockru,blockld,blockrd;
计算临时变量lower;
lower=getnote(max(std(Ωi)|1≤i≤6)),
其中,getnote(max(std(Ωi)|1≤i≤6))表示求所有临时集合的均方差,然后获取这些均方差中的最大值,接着将该最大值对应的临时集合下角标赋值给临时变量lower;getnote、max、std分别表示获取对应数值变量的下角标、求最大值、求均方差。
进一步优选,所述对当前编码块进行预测模式限定包括以下步骤:
设置帧间预测删除集模式;
计算当前编码块帧内预测删除集;
其中,V、H、DDR、DDL、plane、DC均为业内公知的帧内预测模式方向。
一种低码率视频编码系统,包括第一判断处理模块、第一常规编码模块、第二判断处理模块、第二常规编码模块、下一个编码帧判断处理模块、下一个编码帧设置模块;
第一判断处理模块,用于判断如果bpp<Thres1,则进入第二判断处理模块;否则,进入第一常规编码模块;
其中,T_bit表示目标比特率,width、height、fps分别表示片源图像的像素列数、像素行数、采样帧率;Thres1表示第一判定阈值;
第一常规编码模块,用于对当前片源进行常规编码,结束;
第二判断处理模块,用于判断如果当前帧为I或者QPt<Thres2,则进入下一个编码帧判断处理模块;否则,进入限定模式编码装置;
其中,QPt表示当前帧量化参数;Thres2表示第二判定阈值;
限定模式编码装置,用于对当前帧进行限定模式编码;
第二常规编码模块,用于对当前帧进行常规编码,然后进入下一个编码帧判断处理模块;
下一个编码帧判断处理模块,用于判断如果下一个编码帧存在,则进入下一个编码帧设置模块;否则,结束;
下一个编码帧设置模块,用于将下一个编码帧设置为当前帧,然后进入 第二判断处理模块。
优选地,所述限定模式编码装置还包括:
编码块序号初始值设置模块,用于设置初始值k=1;
第三判断处理模块,用于判断如果QPt,k>Thres3且size(QPt,k)=PUmax且Thres4<std_cuyt,k<Thres5,则进入编码块划分模块;否则,进入第三常规编码模块;
其中,k表示帧中编码块的排列序号;QPt,k表示当前帧第k个编码块的量化参数;Thres3表示第三判定阈值,Thres3>35;size(QPt,k)表示当前帧第k个编码块的尺寸;PUmax表示最大预测块尺寸;std_cuyt,k表示当前编码块亮度像素的均方差;Thres4、Thres5分别表示第四、第五判定阈值,5<Thres4<30<Thres5;
编码块划分模块,用于将当前编码块划分成最小编码块尺寸的块;
第三常规编码模块,用于对当前编码块进行常规模式编码,然后进入编码模块序号判断模块;
判定参数计算装置,用于计算当前编码块的判定参数;
预测模式限定装置,用于对当前编码块进行预测模式限定;
限定模式编码模块,用于对当前编码块进行预测模式限定;
编码模块序号判断模块,用于判断如果k<K,则进入下一编码块设置模块;否则,进入下一个编码帧判断处理模块;
其中,K表示一帧图像包含的编码块个数;
下一编码块设置模块,用于设置k=k+1,然后进入第三判断处理模块。
优选地,所述判定参数计算装置还包括:
临时集合设置模块,用于设置临时集合;
Ω1={blocklu,blockru}、Ω2={blocklu,blockld}、Ω3={blocklu,blockrd}、
Ω4={blockru,blockld}、Ω5={blockru,blockrd}、Ω6={blockld,blockrd}
其中,Ωi表示第i个临时集合,1≤i≤6;blocklu,blockru,blockld,blockrd分别表示将当前编码块划分成最小编码块尺寸后,位于当前编码块左上、右上、左下、右下块的亮度像素值;临时集合个数不小于3且集合覆盖所有的blocklu,blockru,blockld,blockld;
临时变量计算模块,用于计算临时变量lower;
lower=getnote(max(std(Ωi)|1≤i≤6)),
其中,getnote(max(std(Ωi)|1≤i≤6))表示求所有临时集合的均方差,然后获取这些均方差中的最大值,接着将该最大值对应的临时集合下角标赋值给临时变量lower;getnote、max、std分别表示获取对应数值变量的下角标、求最大值、求均方差;
所述预测模式限定装置包括:
帧间预测删除集模式设置模块,用于设置
其中,表示当前编码块帧间预测删除集;
帧内预测删除集计算模块,用于计算当前编码块帧内预测删除集;
其中,表示当前编码块帧内预测删除集;V、H、DDR、DDL、plane、DC均为业内公知的帧内预测模式方向。
本发明的有益效果
本发明提出一种低码率视频编码方法及系统。本发明通过对片源图像视觉敏感区域的监控,适时调整、限制该区域的编码模式,从而达到在低码率下,提升视频压缩的主客观质量。
附图说明
图1是本发明优选实施例低码率视频编码方法流程图;
图2是图1中对当前帧进行限定模式编码方法流程图;
图3是图2中计算当前编码块的判定参数方法流程图;
图4是图2中对当前编码块进行预测模式限定方法流程图;
图5是本发明优选实施例低码率视频编码系统结构图;
图6是图5中限定模式编码装置结构图;
图7是图6中判定参数计算装置结构图;
图8是图6中预测模式限定装置结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明实施例提出一种低码率视频编码方法及系统。本发明实施例通过对片源图像视觉敏感区域的监控,适时调整、限制该区域的编码模式,从而达到在低码率下,提升视频压缩的主客观质量。
实施例一
图1是本发明优选实施例一种低码率视频编码方法流程图;所述方法包括以下步骤:
StepO:如果bpp<Thres1,则进入Step1;否则,对当前片源进行常规编码。
其中,T_bit表示目标比特率,width、height、fps分别表示片源图像的像素列数、像素行数、采样帧率;Thres1表示第一判定阈值,通常Thres1≤0.1。
Step1:如果当前帧为I或者QPt<Thres2,则对当前帧进行常规编码,然后进入Step3;否则,进入Step2。
其中,QPt表示当前帧量化参数;Thres2表示第二判定阈值,通常Thres2<32。
Step2:对当前帧进行限定模式编码。
图2是图1中对当前帧进行限定模式编码方法流程图;所述对当前帧进行限定模式编码包括以下步骤:(Step21-Step27):
Step21:设置初始值k=1。
Step22:如果QPt,k>Thres3且size(QPt,k)=PUmax且Thres4<std_cuyt,k<Thres5,则进入Step23;否则,对当前编码块进行常规模式编码,然后进入Step27。
其中,k表示帧中编码块的排列序号;QPt,k表示当前帧第k个编码块的量化参数;Thres3表示第三判定阈值,通常Thres3>35;size(QPt,k)表示当前帧第k个编码块的尺寸;PUmax表示最大预测块尺寸;std_cuyt,k表示当前编码块亮度像素的均方差;Thres4、Thres5分别表示第四、第五判定阈值,一般5<Thres4<30<Thres5。
Step23:将当前编码块划分成最小编码块尺寸的块。
Step24:计算当前编码块的判定参数。
图3是图2中计算当前编码块的判定参数方法流程图;所述计算当前编码块的判定参数包括以下步骤:
Step241:设置临时集合。
Ω1={blocklu,blockru}、Ω2={blocklu,blockld}、Ω3={blocklu,blockrd}、
Ω4={blockru,blockld}、Ω5={blockru,blockrd}、Ω6={blockld,blockrd}
其中,Ωi表示第i个临时集合,1≤i≤6;blocklu,blockru,blockld,blockrd分别表示将当前编码块划分成最小编码块尺寸后,位于当前编码块左上、右上、左下、右下块的亮度像素值;使用中临时集合个数可以选6个,也可以少选几个,但最少需要3个,且集合需覆盖所有的blocklu,blockru,blockld,blockrd。
Step242:计算lower=getnote(max(std(Ωi)|1≤i≤6))。
其中,getnote(max(std(Ωi)|1≤i≤6))表示求所有临时集合的均方差,然后获取这些均方差中的最大值,接着将该最大值对应的临时集合下角标赋值给临时变量lower;getnote、max、std分别表示获取对应数值变量的下角标、求最大值、求均方差。
Step25:对当前编码块进行预测模式限定。
图4是图2中对当前编码块进行预测模式限定方法流程图;所述对当前编码块进行预测模式限定方法包括以下步骤:
Step251:
其中,表示当前编码块帧间预测删除集。
Step252:
其中,表示当前编码块帧内预测删除集;V、H、DDR、DDL、plane、DC均为业内公知的帧内预测模式方向。
Step26:对当前编码块进行限定模式编码。具体如下:对当前编码块进行预测时,在当前编码块所支持的所有预测备选模式删除包含在中的所有预测模式,然后进行率失真优化,获取最佳预测;接着进行常规的变换量化、熵编码。
Step27:如果k<K,则,k=k+1,然后进入Step22;否则,进入Step3。
其中,K表示一帧图像包含的编码块个数。
Step3:如果下一个编码帧存在,则将下一个编码帧设置为当前帧,然后进入Step1;否则,结束。
实施例二
图5是本发明优选实施例一种低码率视频编码系统结构图;该系统包括第一判断处理模块、第一常规编码模块、第二判断处理模块、第二常规编码模块、下一个编码帧判断处理模块、下一个编码帧设置模块。
第一判断处理模块,用于判断如果bpp<Thres1,则进入第二判断处理模块;否则,进入第一常规编码模块。
其中,T_bit表示目标比特率,width、height、fps分别表示片源图像的像素列数、像素行数、采样帧率;Thres1表示第一判定阈值,通常Thres1≤0.1。
第一常规编码模块,用于对当前片源进行常规编码,结束;
第二判断处理模块,用于判断如果当前帧为I或者QPt<Thres2,则进入下一个编码帧判断处理模块;否则,进入限定模式编码装置。
其中,QPt表示当前帧量化参数;Thres2表示第二判定阈值,通常Thres2<32。
限定模式编码装置,用于对当前帧进行限定模式编码。
第二常规编码模块,用于对当前帧进行常规编码,然后进入下一个编码帧判断处理模块;
下一个编码帧判断处理模块,用于判断如果下一个编码帧存在,则进入下一个编码帧设置模块;否则,结束。
下一个编码帧设置模块,用于将下一个编码帧设置为当前帧,然后进入第二判断处理模块。
图6是图5中限定模式编码装置结构图;进一步地,所述限定模式编码装置还包括:
编码块序号初始值设置模块,用于设置初始值k=1。
第三判断处理模块,用于判断如果QPt,k>Thres3且size(QPt,k)=PUmax且 Thres4<std_cuyt,k<Thres5,则进入编码块划分模块;否则,进入第三常规编码模块;
其中,k表示帧中编码块的排列序号;QPt,k表示当前帧第k个编码块的量化参数;Thres3表示第三判定阈值,通常Thres3>35;size(QPt,k)表示当前帧第k个编码块的尺寸;PUmax表示最大预测块尺寸;std_cuyt,k表示当前编码块亮度像素的均方差;Thres4、Thres5分别表示第四、第五判定阈值,一般5<Thres4<30<Thres5。
编码块划分模块,用于将当前编码块划分成最小编码块尺寸的块。
第三常规编码模块,用于对当前编码块进行常规模式编码,然后进入编码模块序号判断模块。
判定参数计算装置,用于计算当前编码块的判定参数。
预测模式限定装置,用于对当前编码块进行预测模式限定。
限定模式编码模块,用于对当前编码块进行预测模式限定。
编码模块序号判断模块,用于判断如果k<K,则进入下一编码块设置模块;否则,进入下一个编码帧判断处理模块。
其中,K表示一帧图像包含的编码块个数。
下一编码块设置模块,用于设置k=k+1,然后进入第三判断处理模块。
图7是图6中判定参数计算装置结构图;进一步地,所述判定参数计算装置还包括:
临时集合设置模块,用于设置临时集合。
Ω1={blocklu,blockru}、Ω2={blocklu,blockld}、Ω3={blocklu,blockrd}、
Ω4={blockru,blockld}、Ω5={blockru,blockrd}、Ω6={blockld,blockrd}
其中,Ωi表示第i个临时集合,1≤i≤6;blocklu,blockru,blockld,blockrd分别表示将当前编码块划分成最小编码块尺寸后,位于当前编码块左上、右上、左下、右下块的亮度像素值;使用中临时集合个数可以选6个,也可以少选几个,但最少需要3个,且集合需覆盖所有的blocklu,blockru,blockld,blockrd。
临时变量计算模块,用于计算lower=getnote(max(std(Ωi)|1≤i≤6))。
其中,getnote(max(std(Ωi)|1≤i≤6))表示求所有临时集合的均方差,然后获取这些均方差中的最大值,接着将该最大值对应的临时集合下角标赋值给临时变量lower;getnote、max、std分别表示获取对应数值变量的下角标、求最大值、 求均方差。
图8是图6中预测模式限定装置结构图。所述预测模式限定装置包括:
帧间预测删除集模式设置模块,用于设置
其中,表示当前编码块帧间预测删除集。
帧内预测删除集计算模块,用于计算当前编码块帧内预测删除集;
其中,表示当前编码块帧内预测删除集;V、H、DDR、DDL、plane、DC均为业内公知的帧内预测模式方向。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。