一种视频块划分方法及系统
技术领域
本发明涉及视频编解码技术领域,尤其涉及一种视频块划分方法及系统。
背景技术
新的视频压缩标准HEVC设计了三层划分结构:编码单元、预测单元、变换单元,同时支持64x64大尺寸块的划分。对块的这种扩展支持,提升了率失真性能,但另一方面,使得基于此标准的编码器,如果对编码单元、预测单元、变换单元进行遍历寻优操作,虽然可以达到率失真性能的优化实现,但随之带来的计算量也是巨大的。
发明内容
本发明实施例的目的在于提出一种视频块划分方法,旨在解决现有技术基于新的视频压缩标准HEVC的编码器进行遍历寻优操作,计算量巨大的问题。本发明实施例是这样实现的,一种视频块划分方法,所述方法包括以下步骤:
Step1:根据输入编码源的尺寸,初步确定编码单元的最大尺寸;
Step2:如果当前帧为第一帧或者当前帧为I帧,则进入步骤Step3;否则,进入步骤Step4;
Step3:进一步确定编码单元的最大尺寸、最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸;
Step4:对当前帧进行编码;
Step5:判断如果下一个帧不存在,则结束;
进一步地,步骤Step5还包括:如果下一个帧存在,则进入Step6;
Step6:统计当前帧的广义I基本块数量;
Step7:如果广义I基本块数量大于Thres5*K,则令note=1;否则令note=0;
Step8:将当前帧的下一个帧,设置为当前帧;
Step9:判断如果note=1,则进入Step3;否则,进入Step4;
其中,Thres5为第五判定阈值,K表示当前帧包括的基本块个数;note为帧标识参数。
本发明实施例的另一目的在于提出一种视频块划分系统,所述系统包括:
编码单元最大尺寸初步确认模块,用于根据输入编码源的尺寸,初步确定编码单元的最大尺寸;
第一判断模块,用于判断如果当前帧为第一帧或者当前帧为I帧时,则进入单元尺寸确认装置,否则进入编码模块;
单元尺寸确认装置,用于进一步确定编码单元的最大尺寸、最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸;
编码模块,用于对当前帧进行编码;
尾帧判断模块,用于判断如果下一个帧不存在,则,结束;
进一步地,
所述尾帧判断模块,还用于判断如果下一个帧存在,则进入广义I基本块数量统计模块;
广义I基本块数量统计模块,用于统计当前帧的广义I基本块数量;
阈值判断模块,用于判断是否广义I基本块数量大于Thres5*K,并将判断结果发送给帧标识参数设置模块;
帧标识参数设置模块,用于根据阈值判断模块的判断结果,当广义I基本块数量大于Thres5*K时,设置note=1;否则设置note=0;
下一帧帧设置模块,用于将当前帧的下一个帧,设置为当前帧;
帧标识参数判断模块,用于判断如果note=1,则进入单元尺寸确认装置;否则,进入编码模块;
其中,Thres5为第五判定阈值,K表示当前帧包括的基本块个数;note为帧标识参数。
本发明的有益效果
新的视频压缩标准HEVC设计了三层划分结构:编码单元、预测单元、变换单元,基于此标准的编码器,如果对编码单元、预测单元、变换单元进行遍历寻优操作,虽然可以达到率失真性能的优化实现,但随之带来的计算量也是巨大的。本发明提出一种视频块划分方法及系统,本发明方法通过对编码片源的分析,自适应确定编码单元、预测单元、变换单元的尺寸,使得该方法在保持率失真性能稳定性的同时,减少编码的计算量。
附图说明
图1是本发明优选实施例一种视频块划分方法流程图;
图2是图1中步骤Step3的方法流程图;
图3是本发明优选实施例一种视频块划分系统结构图;
图4是图3中单元尺寸确认装置的结构图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
新的视频压缩标准HEVC设计了三层划分结构:编码单元、预测单元、变换单元,基于此标准的编码器,如果对编码单元、预测单元、变换单元进行遍历寻优操作,虽然可以达到率失真性能的优化实现,但随之带来的计算量也是巨大的。本发明实施例提出一种视频块划分方法及系统,本发明实施例方法通过对编码片源的分析,自适应确定编码单元、预测单元、变换单元的尺寸,使得该方法在保持率失真性能稳定性的同时,减少编码的计算量。
实施例一
图1是本发明优选实施例一种视频块划分方法流程图;所述方法包括以下步骤:
Step1:根据输入编码源的尺寸,初步确定编码单元的最大尺寸。
其中,表示初步确定的编码单元的最大尺寸(文中所指尺寸是对应单元的一维尺寸,即如果表示此时最大编码单元即为64x64的块)。
Step2:如果当前帧为第一帧或者当前帧为I帧,则进入步骤Step3;否则,进入步骤Step4。
Step3:进一步确定编码单元的最大尺寸、最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸。
具体包括以下步骤(图2是图1中步骤Step3的方法流程图):
Step31:将当前帧划分为的基本块,然后计算每一个基本块的复杂度参数。
vark=std(y(i,j)|y(i,j)∈blockk)
其中,将的块称为基本块;std(变量|条件)表示对满足条件的所有变量求均方差;y(i,j)表示帧亮度信息第i行第j列的像素值;blockk表示当前帧的第k个基本块;k表示基本块在当前帧中的位置序号;vark表示第k个基本块的复杂度参数。
Step32:求取当前帧的第一参数和第二参数。
var1=mean(vark|1≤k≤K)
var2=std(vark|1≤k≤K)
其中,mean(变量|条件)表示对满足条件的所有变量求均值;K表示当前帧包含的基本块个数;var1、var2分别表示当前帧的第一参数和第二参数。
Step33:根据当前帧的第一参数及第二参数,修改编码单元的最大尺寸,确定编码单元的最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸。
PNmax=min(Nmax,max_PU),PNmin=max(Nmin,min_PU)
TNmax=min(Nmax,max_TU),TNmin=max(Nmin/2,min_TU)。
其中,Thres1、Thres2、Thres3、Thres4分别为第一、二、三、四判定阈值,通常 max_CU、max_PU、max_TU、min_CU、min_PU、min_TU分别表示当前编码器采用的压缩标准支持的编码单元最大尺寸、预测单元最大尺寸、变换单元最大尺寸、编码单元最小尺寸、预测单元最小尺寸、变换单元最小尺寸;Nmax、Nmin、PNmax、PNmin、TNmax、TNmin分别表示确定的编码单元最大尺寸、编码单元最小尺寸、预测单元最大尺寸、预测单元最小尺寸、变换单元最大尺寸、变换单元最小尺寸;max(数值1,数值2)、min(数值1,数值2)分别表示求数
值1与数值2两者中的最大值和最小值。
Step4:对当前帧进行编码。
Step5:如果下一个帧存在,则进入Step6;否则,结束。
Step6:统计当前帧的广义I基本块数量。
上述广义I基本块数量计算方法:
numberI=sum(sign(blockk,I))其中,
其中,sum(变量)表示对变量求和;基本子块表示尺寸小于基本块的块;numberI表示当前帧广义I基本块数量。
Step7:如果广义I基本块数量大于Thres5*K,则note=1;否则note=0。
其中,Thres5为第五判定阈值,通常0.8≤Thres5≤1;K表示当前帧包括的基本块个数;note为帧标识参数。
Step8:将当前帧的下一个帧,设置为当前帧。
Step9:如果note=1,则进入Step3;否则,进入Step4。
实施例二
图3是本发明优选实施例一种视频块划分系统结构图;所述系统包括:
编码单元最大尺寸初步确认模块,用于根据输入编码源的尺寸,初步确定编码单元的最大尺寸;
其中,表示初步确定的编码单元的最大尺寸(文中所指尺寸是对应单元的一维尺寸,即如果表示此时最大编码单元即为64x64的块)。
第一判断模块,用于判断如果当前帧为第一帧或者当前帧为I帧时,则进入单元尺寸确认装置,否则进入编码模块;
单元尺寸确认装置,用于进一步确定编码单元的最大尺寸、最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸;
编码模块,用于对当前帧进行编码;
尾帧判断模块,用于判断如果下一个帧存在,则进入广义I基本块数量统计模块;否则,结束。
广义I基本块数量统计模块,用于统计当前帧的广义I基本块数量;
上述广义I基本块数量计算方法:
numberI=sum(sign(blockk,I))其中,
其中,sum(变量)表示对变量求和;基本子块表示尺寸小于基本块的块;numberI表示当前帧广义I基本块数量。
阈值判断模块,用于判断是否广义I基本块数量大于Thres5*K,并将判断结果发送给帧标识参数设置模块;
帧标识参数设置模块,用于根据阈值判断模块的判断结果,当广义I基本块数量大于Thres5*K时,设置note=1;否则设置note=0;
其中,Thres5为第五判定阈值,通常0.8≤Thres5≤1;K表示当前帧包括的基本块个数;note为帧标识参数。
下一帧帧设置模块,用于将当前帧的下一个帧,设置为当前帧;
帧标识参数判断模块,用于判断如果note=1,则进入单元尺寸确认装置;否则,进入编码模块。
进一步地,所述单元尺寸确认装置还包括(图4是图3中单元尺寸确认装置的结构图):
基本块的复杂度参数计算模块,用于将当前帧划分为的基本块,然后计算每一个基本块的复杂度参数;
vark=std(y(i,j)|y(i,j)∈blockk)
其中,将的块称为基本块;std(变量|条件)表示对满足条件的所有变量求均方差;y(i,j)表示帧亮度信息第i行第j列的像素值;blockk表示当前帧的第k个基本块;k表示基本块在当前帧中的位置序号;vark表示第k个基本块的复杂度参数。
第一参数和第二参数计算模块,用于求取当前帧的第一参数和第二参数;
var1=mean(vark|1≤k≤K)
var2=std(vark|1≤k≤K)
其中,mean(变量|条件)表示对满足条件的所有变量求均值;K表示当前帧包含的基本块个数;var1、var2分别表示当前帧的第一参数和第二参数。
单元尺寸确认模块,用于根据当前帧的第一参数及第二参数,修改编码单元的最大尺寸,确定编码单元的最小尺寸,并确定预测单元及变换单元的最大尺寸、最小尺寸。
PNmax=min(Nmax,max_PU),PNmin=max(Nmin,min_PU)
TNmax=min(Nmax,max_TU),TNmin=max(Nmin/2,min_TU)。
其中,Thres1、Thres2、Thres3、Thres4分别为第一、二、三、四判定阈值,通常 max_CU、max_PU、max_TU、min_CU、min_PU、min_TU分别表示当前编码器采用的压缩标准支持的编码单元最大尺寸、预测单元最大尺寸、变换单元最大尺寸、编码单元最小尺寸、预测单元最小尺寸、变换单元最小尺寸;Nmax、Nmin、PNmax、PNmin、TNmax、TNmin分别表示确定的编码单元最大尺寸、编码单元最小尺寸、预测单元最大尺寸、预测单元最小尺寸、变换单元最大尺寸、变换单元最小尺寸;max(数值1,数值2)、min(数值1,数值2)分别表示求数值1与数值2两者中的最大值和最小值。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。