CN105430415B - 一种3d‑hevc深度视频帧内快速编码方法 - Google Patents
一种3d‑hevc深度视频帧内快速编码方法 Download PDFInfo
- Publication number
- CN105430415B CN105430415B CN201510873417.3A CN201510873417A CN105430415B CN 105430415 B CN105430415 B CN 105430415B CN 201510873417 A CN201510873417 A CN 201510873417A CN 105430415 B CN105430415 B CN 105430415B
- Authority
- CN
- China
- Prior art keywords
- mrow
- coding unit
- clcu
- current
- frame
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种3D‑HEVC深度视频帧内快速编码方法,其在编码之前先对深度视频帧进行了平滑处理即预处理,降低了空域复杂度,提高了编码性能及虚拟视点质量;由于预处理后的深度视频帧更加平滑,更多的最大编码单元的最大划分深度集中在0和1,因此使用BP神经网络主动学习并预测最大编码单元的最大划分深度,再通过对应的彩色视频帧中的最大编码单元的最大划分深度及深度视频帧中的编码单元的边缘纹理信息赋值修正预测的最大划分深度,提前终止编码单元的划分,同时根据每层的编码单元的预测模式的统计结果及预测的最大编码单元的最大划分深度提前决定每层编码单元的预测模式的执行范围,最终在提高编码率失真性能的同时,大幅降低了编码复杂度。
Description
技术领域
本发明涉及一种多视点视频信号的编码技术,尤其是涉及一种3D-HEVC深度视频帧内快速编码方法。
背景技术
随着视频技术的不断进步,3D(Three-dimensional)视频技术已经在消费娱乐、视频会议及远程医疗等很多方面得到了广泛应用。目前,基于多视点彩色加深度(MultiviewVideo plus Depth,MVD)的自由视点视频(Free Viewpoint Video,FVV)系统是3D视频的主要实现方式。在FVV系统中,观众可以自由选择观看角度,更好地获取身临其境的视觉感受,而为了达到这种目的,需要得到足够多的视点。在MVD格式视频中,可以利用已有的真实视点,通过基于深度图的绘制(Depth Image Based Rendering,DIBR)技术得到足够多的虚拟视点,其中,深度视频表征距离信息,同一场景像素点的深度值之间差别很小,因此深度视频纹理较为简单,边缘信息较为重要。
深度视频的获取方式包括深度相机、深度估计软件及Kinect等,由于成本限制,因此目前的深度视频主要通过深度估计软件获得,但这种估计得到的深度视频很不准确,本应平坦的区域存在很多纹理,会降低虚拟视点质量,且帧内编码时会增加空间冗余,消耗更多的编码码率,因此在编码之前对估计的深度视频进行处理是必要的。当前编码MVD格式视频的最新标准是3D-HEVC,它是在新一代高效视频编码标准(High Efficiency VideoCoding,HEVC)基础上的扩展。3D-HEVC帧内编码的复杂度很高,主要有两方面原因:一方面,为了适应高清和超高清视频编码,采用了更大的编码单元(Coding Unit,CU),包括从64×64到8×8四个等级,分别用0到3四个CU深度表示,在CU递归划分过程中,需要遍历每个深度的CU;另一方面,为了提高帧内预测精度,HEVC采用了35种帧内预测模式,对每层CU进行编码时都需要遍历这35种预测模式,3D-HEVC为了适应深度视频的边缘信息较为重要的特点,在深度视频帧内编码时增加了4种深度模型模式(Depth Modeling Modes,DMMs)。统计表明,3D-HEVC深度视频的编码时间是彩色视频的编码时间的10倍左右,对于纹理更为简单的深度视频来说是不合理的。
目前,很多学者已经提出了降低3D-HEVC深度视频帧内编码复杂度的方法,但这些方法都集中在减少DMMs的执行或提出新的深度视频帧内预测模式代替DMMs,这些方法降低3D-HEVC深度视频帧内编码时间有限,主要是因为这些方法没有考虑深度视频较为简单,最优CU深度主要集中在0和1的特点。对于估计得到的深度视频,也没有在编码前提前处理,以提高编码和绘制性能。
发明内容
本发明所要解决的技术问题是提供一种3D-HEVC深度视频帧内快速编码方法,其在保证虚拟视点质量不下降的前提下,能够显著地降低3D-HEVC深度视频帧内编码复杂度。
本发明解决上述技术问题所采用的技术方案为:一种3D-HEVC深度视频帧内快速编码方法,其特征在于包括训练阶段和测试阶段两个过程,所述的训练阶段过程的具体步骤如下:
①-1、选取若干个深度视频,将选取的所有深度视频中的所有视频帧构成训练视频帧集合,将训练视频帧集合中当前待处理的视频帧定义为当前帧;
①-2、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对当前帧的预处理;
①-3a、按序处理预处理后的视频帧中的每个最大编码单元,将预处理后的视频帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU;
①-3b、如果CLCU为预处理后的视频帧中最左侧的所有最大编码单元中的一个或最上侧的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c;
如果CLCU不为预处理后的视频帧中最左侧的所有最大编码单元中的一个且不为最上侧的所有最大编码单元中的一个,则获取CLCU的特征向量,记为FCLCU,然后采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c,其中,FCLCU的维数为17,FCLCU中的17个特征按序分别为MSECLCU、xMSECLCU、yMSECLCU、SobCLCU、MSELLCU、xMSELLCU、yMSELLCU、SobLLCU、MSEULCU、xMSEULCU、yMSEULCU、SobULCU、SADC-LLCU、SADC-ULCU、LDmax、UDmax及TDmax,MSECLCU、xMSECLCU和yMSECLCU对应表示CLCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobCLCU表示CLCU中的所有像素点的像素值的Sobel梯度值之和,MSELLCU、xMSELLCU和yMSELLCU对应表示CLCU的左相邻最大编码单元LLCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobLLCU表示CLCU的左相邻最大编码单元LLCU中的所有像素点的像素值的Sobel梯度值之和,MSEULCU、xMSEULCU和yMSEULCU对应表示CLCU的上相邻最大编码单元ULCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobULCU表示CLCU的上相邻最大编码单元ULCU中的所有像素点的像素值的Sobel梯度值之和,SADC-LLCU表示CLCU与LLCU之间的绝对差和,SADC-ULCU表示CLCU与ULCU之间的绝对差和,LDmax表示LLCU的最大划分深度,UDmax表示ULCU的最大划分深度,TDmax表示当前帧相对应的彩色视频帧中与CLCU对应的最大编码单元TLCU的最大划分深度;
①-3c、将预处理后的视频帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU,然后返回步骤①-3b继续执行,直至预处理后的视频帧中的所有最大编码单元处理完毕;
①-4、将训练视频帧集合中下一帧待处理的视频帧作为当前帧,然后返回步骤①-2继续执行,直至训练视频帧集合中的所有视频帧处理完毕;
①-5、将训练视频帧集合中的所有视频帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,将训练视频帧集合中的所有视频帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自采用原始3D-HEVC编码平台编码时的最大划分深度作为输出参数,且所有最大编码单元各自的特征向量与最大划分深度一一对应输入到BP神经网络中进行训练,得到训练好的BP神经网络测试模型;
所述的测试阶段过程的具体步骤如下:
②-1、对于任意一帧待测试的深度视频帧,将其定义为测试帧;
②-2、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对测试帧的预处理;
②-3、按照步骤①-3a至步骤①-3c的过程,以相同的方式获取预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的每个最大编码单元的特征向量;
②-4、将预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,输入到训练好的BP神经网络测试模型中,预测得到预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的每个最大编码单元的最大划分深度的预测值;
②-5、对预处理后的测试帧中的每个最大编码单元进行编码,具体过程为:
②-5a、按序处理预处理后的测试帧中的每个最大编码单元,将预处理后的测试帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU’;
②-5b、如果CLCU’为预处理后的测试帧中最左侧的所有最大编码单元中的一个或最上侧的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU’进行编码,再执行步骤②-5c;
如果CLCU’不为预处理后的测试帧中最左侧的所有最大编码单元中的一个且不为最上侧的所有最大编码单元中的一个,则执行以下步骤:
b1、判断CLCU’的最大划分深度的预测值PD’与测试帧相对应的彩色视频帧中与CLCU’对应的最大编码单元TLCU’的最大划分深度TD’的大小关系,如果PD’的值大于TD’的值,则将PD’的值重置为TD’的值,然后执行步骤b2;如果PD’的值小于或等于TD’的值,则保持PD’的值不变,然后执行步骤b2;
b2、将CLCU’重新定义为当前编码单元,令CD’表示当前编码单元的划分深度,CD’的初始值为0,然后执行步骤b3;
b3、采用Canny边缘检测算法对当前编码单元进行边缘检测,得到当前编码单元的边缘信息,如果CD’大于或等于PD’,且满足下述条件之一:1)当前编码单元中不存在边缘信息,2)PD’的值已经被重置为TD’,3)CD’大于或等于TD’,则对当前编码单元不进行继续划分,至此已完成当前编码单元的编码,再执行步骤b4;如果CD’小于PD’,则对当前编码单元进行继续划分,执行步骤b5;
b4、如果CD’等于0,则执行步骤②-5c;
如果CD’等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,若已全部处理完毕,则执行步骤②-5c;若未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3;
如果CD’不等于0且不等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,如果已全部处理完毕,则将当前编码单元的上一层中下一个待处理的编码单元作为当前编码单元,再执行步骤b3;如果未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3;
b5、将当前编码单元的下一层四个编码单元中当前待处理的编码单元作为当前编码单元,并令CD’=CD’+1,然后返回步骤b3继续执行,其中,CD’=CD’+1中的“=”为赋值符号;
在上述编码单元的递归划分过程中,当CD’为0时,如果PD’为0、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者PD’大于0,则当前编码单元的预测方向从编号为0、1及从24到34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为1时,如果PD’为1、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者当PD’大于1,或者PD’小于1、当前编码单元中存在边缘信息且TD’大于1,则当前编码单元的预测方向从编号为0、1、9、10、11、37、38及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为2时,如果PD’为2、当前编码单元中不存在边缘信息、PD’的值未被重置为TD’,或者当PD’大于2,或者PD’小于2、当前编码单元中存在边缘信息且TD’大于2,则当前编码单元的预测方向从编号为0、1、37、38、8至12及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为3时,当前编码单元的预测方向从全部的预测方向中遍历得到;
②-5c、将预处理后的测试帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU’,然后返回步骤②-5b继续执行,直至预处理后的测试帧中的所有最大编码单元处理完毕。
所述的步骤①-2的具体过程为:
①-2a、检测出当前帧中属于边缘的所有像素点;
①-2b、对当前帧进行分互不重叠的子块处理;
①-2c、确定当前帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于当前帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点;
①-2d、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于当前帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
所述的步骤①-2a中采用Canny边缘检测算法检测出当前帧中属于边缘的所有像素点。
所述的步骤①-2b中假设当前帧的尺寸大小能够被8×8整除,则将当前帧划分成个互不重叠的尺寸大小为8×8的子块,其中,W表示训练视频帧集合中的视频帧的宽度,H表示训练视频帧集合中的视频帧的高度。
所述的步骤①-2d中对该像素点进行高斯滤波处理时,采用的滤波窗口的尺寸大小为5×5,高斯分布的标准差为1.1。
所述的步骤①-3b中的 其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,表示CLCU中的所有像素点的像素值的平均值,表示CLCU的第i行中的所有像素点的像素值的平均值,表示CLCU的第j列中的所有像素点的像素值的平均值,pLLCU(i,j)表示LLCU中坐标位置为(i,j)的像素点的像素值,表示LLCU中的所有像素点的像素值的平均值,表示LLCU的第i行中的所有像素点的像素值的平均值,表示LLCU的第j列中的所有像素点的像素值的平均值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素点的像素值,表示ULCU中的所有像素点的像素值的平均值,表示ULCU的第i行中的所有像素点的像素值的平均值,表示ULCU的第j列中的所有像素点的像素值的平均值。
所述的步骤①-3b中的 其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,pLLCU(i,j)表示LLCU中坐标位置为(i,j)的像素点的像素值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素点的像素值,符号“||”为取绝对值符号。
所述的步骤②-2的具体过程为:
②-2a、检测出测试帧中属于边缘的所有像素点;
②-2b、对测试帧进行分互不重叠的子块处理;
②-2c、确定测试帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于测试帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点;
②-2d、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于测试帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
与现有技术相比,本发明的优点在于:
1)针对估计的深度视频不够准确,不仅会增加空域复杂度,消耗更多编码码率,而且还会降低虚拟视点质量的问题,本发明方法在编码深度视频帧之前先对深度视频帧进行了平滑处理即预处理,这不仅降低了深度视频的空域复杂度,而且提高了编码性能及虚拟视点质量。
2)由于预处理后的深度视频帧更加平滑,更多的最大编码单元的最大划分深度集中在0和1,因此本发明方法使用BP神经网络主动学习并预测最大编码单元的最大划分深度的预测值,再通过对应的彩色视频帧中的最大编码单元的最大划分深度及深度视频帧中的编码单元的边缘纹理信息赋值修正BP神经网络预测的最大编码单元的最大划分深度的预测值,从而提前终止编码单元的划分,同时,根据每层的编码单元的预测模式的统计结果及预测的最大编码单元的最大划分深度的预测值提前决定每层编码单元的预测模式的执行范围,最终在提高编码率失真性能的同时,大幅降低了3D-HEVC深度视频帧内编码复杂度。
附图说明
图1为本发明方法的总体实现框图;
图2为对当前帧预处理的流程框图;
图3a为“Ballons”测试序列的第1视点的第1帧原始深度图;
图3b为“Ballons”测试序列的第1视点的第1帧原始深度图中的所有边缘像素点;
图3c为“Ballons”测试序列的第1视点的第1帧原始深度图经预处理后得到的深度图;
图4为在深度视频帧编码时,CLCU与空域已编码的LLCU、ULCU及对应彩色视频帧中与CLCU对应的TLCU的相关性示意图;
图5为BP神经网络的基本结构;
图6为预处理后的测试帧中的编码单元递归划分的流程框图;
图7a为“Newspaper”测试序列的第4视点的第1帧彩色图像;
图7b为“Newspaper”测试序列的第4视点的第1帧深度图;
图7c为“Newspaper”测试序列的第4视点的第1帧深度图中的编码单元的划分结果;
图8为“Poznan_Street”测试序列的深度图中的最大编码单元的划分深度的分布示意图;
图9a为“Poznan_Street”测试序列的深度图中的编码单元的划分深度为0时帧内预测模式的分布示意图;
图9b为“Poznan_Street”测试序列的深度图中的编码单元的划分深度为1时帧内预测模式的分布示意图;
图9c为“Poznan_Street”测试序列的深度图中的编码单元的划分深度为2时帧内预测模式的分布示意图;
图9d为“Poznan_Street”测试序列的深度图中的编码单元的划分深度为3时帧内预测模式的分布示意图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出了一种3D-HEVC深度视频帧内快速编码方法,其针对估计的深度视频不够准确,增加了空间冗余度,消耗了更多编码码率而提出,其采用基于边缘信息的处理方法预处理深度视频帧,以提高虚拟视点质量,降低空间冗余度,同时为了主动预测深度视频帧中的最大编码单元的最大划分深度,采用BP神经网络学习并预测深度视频帧中的最大编码单元的最大划分深度的预测值,并根据彩色视频帧中的最大编码单元的最大划分深度及深度视频帧中的编码单元的边缘信息提前决定帧内预测模式,终止编码单元的分割。
本发明的3D-HEVC深度视频帧内快速编码方法的总体实现框图如图1所示,其包括训练阶段和测试阶段两个过程,所述的训练阶段过程的具体步骤如下:
①-1、选取若干个深度视频,将选取的所有深度视频中的所有视频帧构成训练视频帧集合,将训练视频帧集合中当前待处理的视频帧定义为当前帧,其中,训练视频帧集合中包含的视频帧至少为20帧。
实际处理过程中,可选取若干个深度视频(如选取四个深度视频),提取出每个深度视频中的前N1帧视频帧,将提取出的共N1×M帧视频帧构成训练视频帧集合;提取出每个深度视频中的剩余的N2帧视频帧,将剩余的共N2×M帧视频帧构成测试视频帧集合,其中,N1≥20,如取N1=20,每个深度视频中包含N帧视频帧,N1<N,N2=N-N1,M表示选取的深度视频的总个数。
①-2、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对当前帧的预处理。
在此具体实施例中,如图2所示,步骤①-2的具体过程为:
①-2a、检测出当前帧中属于边缘的所有像素点。
在此,采用现有的Canny边缘检测算法检测出当前帧中属于边缘的所有像素点。
①-2b、对当前帧进行分互不重叠的子块处理。
在此,假设当前帧的尺寸大小能够被8×8整除,则将当前帧划分成个互不重叠的尺寸大小为8×8的子块,其中,W表示训练视频帧集合中的视频帧的宽度,H表示训练视频帧集合中的视频帧的高度。
①-2c、确定当前帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于当前帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点。
①-2d、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于当前帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
在此,对该像素点进行高斯滤波处理时,采用的滤波窗口的尺寸大小为5×5,高斯分布的标准差为1.1。
图3a给出了“Ballons”测试序列的第1视点的第1帧原始深度图;图3b给出了“Ballons”测试序列的第1视点的第1帧原始深度图中的所有边缘像素点;图3c给出了“Ballons”测试序列的第1视点的第1帧原始深度图经预处理后得到的深度图。对比图3a和图3c,可以看出预处理后得到的深度图更为平滑,边缘更加完整。
①-3a、按序处理预处理后的视频帧中的每个最大编码单元,将预处理后的视频帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU。
①-3b、如果CLCU为预处理后的视频帧中最左侧(第一列)的所有最大编码单元中的一个或最上侧(第一行)的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c。
如果CLCU不为预处理后的视频帧中最左侧(第一列)的所有最大编码单元中的一个且不为最上侧(第一行)的所有最大编码单元中的一个,则获取CLCU的特征向量,记为FCLCU,然后采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c,其中,FCLCU的维数为17,FCLCU中的17个特征按序分别为MSECLCU、xMSECLCU、yMSECLCU、SobCLCU、MSELLCU、xMSELLCU、yMSELLCU、SobLLCU、MSEULCU、xMSEULCU、yMSEULCU、SobULCU、SADC-LLCU、SADC-ULCU、LDmax、UDmax及TDmax,MSECLCU、xMSECLCU和yMSECLCU对应表示CLCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobCLCU表示CLCU中的所有像素点的像素值的Sobel梯度值之和,MSECLCU、xMSECLCU、yMSECLCU和SobCLCU用于衡量CLCU的纹理复杂度,MSELLCU、xMSELLCU和yMSELLCU对应表示CLCU的左相邻最大编码单元LLCU(即为位于CLCU的左侧且与CLCU相邻的最大编码单元)中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobLLCU表示CLCU的左相邻最大编码单元LLCU中的所有像素点的像素值的Sobel梯度值之和,MSELLCU、xMSELLCU、yMSELLCU和SobLLCU用于衡量LLCU的纹理复杂度,MSEULCU、xMSEULCU和yMSEULCU对应表示CLCU的上相邻最大编码单元ULCU(即为位于CLCU的上侧且与CLCU相邻的最大编码单元)中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobULCU表示CLCU的上相邻最大编码单元ULCU中的所有像素点的像素值的Sobel梯度值之和,MSEULCU、xMSEULCU、yMSEULCU和SobULCU用于衡量ULCU的纹理复杂度,SADC-LLCU表示CLCU与LLCU之间的绝对差和,已编码的LLCU与CLCU具有空域相关性,因此采用SADC-LLCU衡量CLCU与LLCU之间的相关程度,SADC-ULCU表示CLCU与ULCU之间的绝对差和,已编码的ULCU与CLCU具有空域相关性,因此采用SADC-ULCU衡量CLCU与ULCU之间的相关程度,LDmax表示LLCU的最大划分深度,UDmax表示ULCU的最大划分深度,TDmax表示当前帧相对应的彩色视频帧中与CLCU对应的最大编码单元TLCU的最大划分深度,由于编码CLCU时LLCU、ULCU和TLCU已编码,因此LDmax、UDmax和TDmax的值已知,且由于彩色视频帧比深度视频帧的纹理更为复杂,因此TLCU的最大划分深度必然不小于CLCU的最大划分深度,图4给出了在深度视频帧编码时,CLCU与空域已编码的LLCU、ULCU及对应彩色视频帧中与CLCU对应的TLCU的相关性示意图。
在此具体实施例中,步骤①-3b中的 其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,表示CLCU中的所有像素点的像素值的平均值,表示CLCU的第i行中的所有像素点的像素值的平均值,表示CLCU的第j列中的所有像素点的像素值的平均值,pLLCU(i,j)表示LLCU中坐标位置为(i,j)的像素点的像素值,表示LLCU中的所有像素点的像素值的平均值,表示LLCU的第i行中的所有像素点的像素值的平均值,表示LLCU的第j列中的所有像素点的像素值的平均值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素点的像素值,表示ULCU中的所有像素点的像素值的平均值,表示ULCU的第i行中的所有像素点的像素值的平均值,表示ULCU的第j列中的所有像素点的像素值的平均值。
在此具体实施例中,步骤①-3b中的 其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,pLLCU(i,j)表示LLCU中坐标位置为(i,j)的像素点的像素值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素点的像素值,符号“||”为取绝对值符号。
①-3c、将预处理后的视频帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU,然后返回步骤①-3b继续执行,直至预处理后的视频帧中的所有最大编码单元处理完毕。
①-4、将训练视频帧集合中下一帧待处理的视频帧作为当前帧,然后返回步骤①-2继续执行,直至训练视频帧集合中的所有视频帧处理完毕。
①-5、将训练视频帧集合中的所有视频帧中除最左侧(第一列)的所有最大编码单元和最上侧(第一行)的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,将训练视频帧集合中的所有视频帧中除最左侧(第一列)的所有最大编码单元和最上侧(第一行)的所有最大编码单元外的所有最大编码单元各自采用原始3D-HEVC编码平台编码时的最大划分深度作为输出参数,且所有最大编码单元各自的特征向量与最大划分深度一一对应输入到BP(Back Propagation)神经网络(BP神经网络的基本结构如图5所示)中进行训练,得到训练好的BP神经网络测试模型。
所述的测试阶段过程的具体步骤如下:
②-1、对于任意一帧待测试的深度视频帧,将其定义为测试帧。
在此,测试帧的尺寸大小可以与训练视频帧集合中的视频帧的尺寸大小一致,也可以不一致,但在本实施例中也需假设测试帧的尺寸大小能够被8×8整除,便于分子块处理。
②-2、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对测试帧的预处理。
在此具体实施例中,对测试帧的预处理的过程采用与步骤①-2中对当前帧的预处理相同的方式,即步骤②-2的具体过程为:
②-2a、检测出测试帧中属于边缘的所有像素点。
②-2b、对测试帧进行分互不重叠的子块处理。
②-2c、确定测试帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于测试帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点。
②-2d、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于测试帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
②-3、按照步骤①-3a至步骤①-3c的过程,以相同的方式获取预处理后的测试帧中除最左侧(第一列)的所有最大编码单元和最上侧(第一行)的所有最大编码单元外的每个最大编码单元的特征向量,即具体过程为:
②-3a、按序处理预处理后的测试帧中的每个最大编码单元,将预处理后的测试帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU’。
②-3b、如果CLCU’为预处理后的测试帧中最左侧的所有最大编码单元中的一个或最上侧的所有最大编码单元中的一个,则对CLCU’不作处理,再执行步骤②-3c。
如果CLCU’不为预处理后的测试帧中最左侧的所有最大编码单元中的一个且不为最上侧的所有最大编码单元中的一个,则获取CLCU’的特征向量,记为FCLCU',再执行步骤②-3c,其中,FCLCU'的维数为17,FCLCU'中的17个特征按序分别为MSECLCU'、xMSECLCU'、yMSECLCU'、SobCLCU'、MSELLCU'、xMSELLCU'、yMSELLCU'、SobLLCU'、MSEULCU'、xMSEULCU'、yMSEULCU'、SobULCU'、SADC -LLCU'、SADC-ULCU'、LD'max、UD'max及TD'max,MSECLCU'、xMSECLCU'和yMSECLCU'对应表示CLCU’中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobCLCU'表示CLCU’中的所有像素点的像素值的Sobel梯度值之和,MSELLCU'、xMSELLCU'和yMSELLCU'对应表示CLCU’的左相邻最大编码单元LLCU’中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobLLCU'表示CLCU’的左相邻最大编码单元LLCU’中的所有像素点的像素值的Sobel梯度值之和,MSEULCU'、xMSEULCU'和yMSEULCU'对应表示CLCU’的上相邻最大编码单元ULCU’中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobULCU'表示CLCU’的上相邻最大编码单元ULCU’中的所有像素点的像素值的Sobel梯度值之和,SADC-LLCU'表示CLCU’与LLCU’之间的绝对差和,SADC-ULCU'表示CLCU’与ULCU’之间的绝对差和,LD'max表示LLCU’的最大划分深度,UD'max表示ULCU’的最大划分深度,TD'max表示测试帧相对应的彩色测试帧中与CLCU’对应的最大编码单元TLCU’的最大划分深度。
②-3c、将预处理后的测试帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU’,然后返回步骤②-3b继续执行,直至预处理后的测试帧中的所有最大编码单元处理完毕。
②-4、将预处理后的测试帧中除最左侧(第一列)的所有最大编码单元和最上侧(第一行)的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,输入到训练好的BP神经网络测试模型中,预测得到预处理后的测试帧中除最左侧(第一列)的所有最大编码单元和最上侧(第一行)的所有最大编码单元外的每个最大编码单元的最大划分深度的预测值。
②-5、对预处理后的测试帧中的每个最大编码单元进行编码,具体过程为:
②-5a、按序处理预处理后的测试帧中的每个最大编码单元,将预处理后的测试帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU’。
②-5b、如果CLCU’为预处理后的测试帧中最左侧(第一列)的所有最大编码单元中的一个或最上侧(第一行)的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU’进行编码,再执行步骤②-5c。
如果CLCU’不为预处理后的测试帧中最左侧(第一列)的所有最大编码单元中的一个且不为最上侧(第一行)的所有最大编码单元中的一个,则执行以下步骤(流程框图如图6所示):
b1、判断CLCU’的最大划分深度的预测值PD’与测试帧相对应的彩色视频帧中与CLCU’对应的最大编码单元TLCU’的最大划分深度TD’的大小关系,如果PD’的值大于TD’的值,则将PD’的值重置为TD’的值,然后执行步骤b2;如果PD’的值小于或等于TD’的值,则保持PD’的值不变,然后执行步骤b2。
b2、将CLCU’重新定义为当前编码单元,令CD’表示当前编码单元的划分深度,CD’的初始值为0,然后执行步骤b3。
b3、采用现有的Canny边缘检测算法对当前编码单元进行边缘检测,得到当前编码单元的边缘信息,如果CD’大于或等于PD’,且满足下述条件之一:1)当前编码单元中不存在边缘信息,2)PD’的值已经被重置为TD’,3)CD’大于或等于TD’,则对当前编码单元不进行继续划分,至此已完成当前编码单元的编码,再执行步骤b4;如果CD’小于PD’,则对当前编码单元进行继续划分,执行步骤b5。
b4、如果CD’等于0,则执行步骤②-5c。
如果CD’等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,若已全部处理完毕,则执行步骤②-5c;若未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3。
如果CD’不等于0且不等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,如果已全部处理完毕,则将当前编码单元的上一层中下一个待处理的编码单元作为当前编码单元,再执行步骤b3;如果未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3。
b5、将当前编码单元的下一层四个编码单元中当前待处理的编码单元作为当前编码单元,并令CD’=CD’+1,然后返回步骤b3继续执行,其中,CD’=CD’+1中的“=”为赋值符号。
本发明在上述编码单元的递归划分过程中,即在对处于每一个划分深度的编码单元进行帧内预测时,每个划分深度的预测方向都限定在具体的选择范围内,具体为:当CD’为0时,如果PD’为0、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者PD’大于0,则当前编码单元的预测方向从编号为0、1及从24到34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到。
当CD’为1时,如果PD’为1、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者当PD’大于1,或者PD’小于1、当前编码单元中存在边缘信息且TD’大于1,则当前编码单元的预测方向从编号为0、1、9、10、11、37、38及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到。
当CD’为2时,如果PD’为2、当前编码单元中不存在边缘信息、PD’的值未被重置为TD’,或者当PD’大于2,或者PD’小于2、当前编码单元中存在边缘信息且TD’大于2,则当前编码单元的预测方向从编号为0、1、37、38、8至12及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到。
当CD’为3时,当前编码单元的预测方向从全部的预测方向中遍历得到。
图7a给出了“Newspaper”测试序列的第4视点的第1帧彩色图像;图7b给出了“Newspaper”测试序列的第4视点的第1帧深度图;图7c给出了“Newspaper”测试序列的第4视点的第1帧深度图中的编码单元的划分结果。
图8给出了“Poznan_Street”测试序列的深度图中的最大编码单元的划分深度的分布示意图;图9a给出了“Poznan_Street”测试序列的深度图中的编码单元的划分深度为0时帧内预测模式的分布示意图;图9b给出了“Poznan_Street”测试序列的深度图中的编码单元的划分深度为1时帧内预测模式的分布示意图;图9c给出了“Poznan_Street”测试序列的深度图中的编码单元的划分深度为2时帧内预测模式的分布示意图;图9d给出了“Poznan_Street”测试序列的深度图中的编码单元的划分深度为3时帧内预测模式的分布示意图。
②-5c、将预处理后的测试帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU’,然后返回步骤②-5b继续执行,直至预处理后的测试帧中的所有最大编码单元处理完毕。
以下为对本发明方法的编码性能进行测试,测试了如表1所列的4个3D-HEVC标准测试序列,测试平台选用HTM-10.0,每个3D-HEVC标准测试序列的总帧数为60帧,测试配置为baseCfg_2view+depth_AllIntra,测试是在Intel(R)Core(TM)i5-2500 CPU@3.30GHz,8.00GB内存,操作系统为Windows 7的计算机上进行的。
表2为表1中所列的4个3D-HEVC标准测试序列经本发明方法中的预处理方法预处理后得到的深度视频帧对虚拟视点质量的影响。在表2中,PSNRori表示使用原始深度图绘制的虚拟视点的PSNR,PSNRpro表示使用处理后的深度图绘制的虚拟视点的PSNR。从表2中可以看出,本发明方法对每个3D-HEVC标准测试序列的虚拟视点质量都有一定的提高,虽然部分3D-HEVC标准测试序列的虚拟视点质量提高不多,但图像得到了平滑,为利用BP神经网络提前终止编码单元的分割打下了基础。
本发明针对表1中所列的4个3D-HEVC标准测试序列(QP:(25,34)、(30,39)、(35,42)及(40,45))分别建立了如表3所示的四个BP神经网络。表3中QP一列中的第1个值为彩色视频帧的编码QP,第2个值为对应深度视频帧的编码QP。每个BP神经网络的预测精度如表4所示,从表4中可以看出平均的预测精度为92.8%,当把该BP神经网络用于提前终止编码单元的划分时,能够保证纹理较为简单的深度视频帧的质量。
表5给出了本发明方法的时间节省情况。表5中,TDori为利用原始3D-HEVC编码平台编码深度视频的编码时间,TSori为利用原始3D-HEVC编码平台编码彩色视频和深度视频的总编码时间,TDpro为利用加入本发明方法后的3D-HEVC编码平台编码深度视频的编码时间,TSpro为利用加入本发明方法后的3D-HEVC编码平台编码彩色视频和深度视频的总编码时间,从表5中可以看出,本发明方法能够使深度视频的编码时间平均节省54.76%,总编码时间平均节省49.15%,这主要有两方面原因:(1)编码前的深度视频处理使深度视频更为平滑,使得编码单元的划分等级更小;(2)BP神经网络主动预测出最大编码单元的最大划分深度的预测值,并根据彩色视频帧中的最大编码单元的最大划分深度提前选定预测模式,终止编码单元的分割。
表6给出了本发明方法的率失真性能,计算率失真性能时,编码码率采用的是深度视频和彩色视频编码的总码率,PSNR采用的是由编码后彩色视频和深度视频绘制的虚拟视点的PSNR。从表6中可以看出,本发明方法在相同PSNR下使码率平均下降了2.573%,在相同码率下使虚拟视点PSNR平均升高了0.017dB。这主要是因为本发明方法在深度视频编码之前对深度视频进行了平滑处理,不仅保证了虚拟视点质量,还降低了编码码率。
表1测试序列的详细信息
表2虚拟视点PSNR(dB)
表3训练参数设置
表4BP神经网络的预测精度
表5时间节省情况
表6率失真性能
Claims (8)
1.一种3D-HEVC深度视频帧内快速编码方法,其特征在于包括训练阶段和测试阶段两个过程,所述的训练阶段过程的具体步骤如下:
①-1、选取若干个深度视频,将选取的所有深度视频中的所有视频帧构成训练视频帧集合,将训练视频帧集合中当前待处理的视频帧定义为当前帧;
①-2、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对当前帧的预处理;
①-3a、按序处理预处理后的视频帧中的每个最大编码单元,将预处理后的视频帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU;
①-3b、如果CLCU为预处理后的视频帧中最左侧的所有最大编码单元中的一个或最上侧的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c;
如果CLCU不为预处理后的视频帧中最左侧的所有最大编码单元中的一个且不为最上侧的所有最大编码单元中的一个,则获取CLCU的特征向量,记为FCLCU,然后采用原始3D-HEVC编码平台对CLCU进行编码,再执行步骤①-3c,其中,FCLCU的维数为17,FCLCU中的17个特征按序分别为MSECLCU、xMSECLCU、yMSECLCU、SobCLCU、MSELLCU、xMSELLCU、yMSELLCU、SobLLCU、MSEULCU、xMSEULCU、yMSEULCU、SobULCU、SADC-LLCU、SADC-ULCU、LDmax、UDmax及TDmax,MSECLCU、xMSECLCU和yMSECLCU对应表示CLCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobCLCU表示CLCU中的所有像素点的像素值的Sobel梯度值之和,MSELLCU、xMSELLCU和yMSELLCU对应表示CLCU的左相邻最大编码单元LLCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobLLCU表示CLCU的左相邻最大编码单元LLCU中的所有像素点的像素值的Sobel梯度值之和,MSEULCU、xMSEULCU和yMSEULCU对应表示CLCU的上相邻最大编码单元ULCU中的所有像素点的像素值的均方误差、水平方向的均方误差和垂直方向的均方误差,SobULCU表示CLCU的上相邻最大编码单元ULCU中的所有像素点的像素值的Sobel梯度值之和,SADC-LLCU表示CLCU与LLCU之间的绝对差和,SADC-ULCU表示CLCU与ULCU之间的绝对差和,LDmax表示LLCU的最大划分深度,UDmax表示ULCU的最大划分深度,TDmax表示当前帧相对应的彩色视频帧中与CLCU对应的最大编码单元TLCU的最大划分深度;
①-3c、将预处理后的视频帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU,然后返回步骤①-3b继续执行,直至预处理后的视频帧中的所有最大编码单元处理完毕;
①-4、将训练视频帧集合中下一帧待处理的视频帧作为当前帧,然后返回步骤①-2继续执行,直至训练视频帧集合中的所有视频帧处理完毕;
①-5、将训练视频帧集合中的所有视频帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,将训练视频帧集合中的所有视频帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自采用原始3D-HEVC编码平台编码时的最大划分深度作为输出参数,且所有最大编码单元各自的特征向量与最大划分深度一一对应输入到BP神经网络中进行训练,得到训练好的BP神经网络测试模型;
所述的测试阶段过程的具体步骤如下:
②-1、对于任意一帧待测试的深度视频帧,将其定义为测试帧;
②-2、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理以完成对测试帧的预处理;
②-3、按照步骤①-3a至步骤①-3c的过程,以相同的方式获取预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的每个最大编码单元的特征向量;
②-4、将预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的所有最大编码单元各自的特征向量作为输入参数,输入到训练好的BP神经网络测试模型中,预测得到预处理后的测试帧中除最左侧的所有最大编码单元和最上侧的所有最大编码单元外的每个最大编码单元的最大划分深度的预测值;
②-5、对预处理后的测试帧中的每个最大编码单元进行编码,具体过程为:
②-5a、按序处理预处理后的测试帧中的每个最大编码单元,将预处理后的测试帧中当前待处理的最大编码单元定义为当前最大编码单元,并记为CLCU’;
②-5b、如果CLCU’为预处理后的测试帧中最左侧的所有最大编码单元中的一个或最上侧的所有最大编码单元中的一个,则采用原始3D-HEVC编码平台对CLCU’进行编码,再执行步骤②-5c;
如果CLCU’不为预处理后的测试帧中最左侧的所有最大编码单元中的一个且不为最上侧的所有最大编码单元中的一个,则执行以下步骤:
b1、判断CLCU’的最大划分深度的预测值PD’与测试帧相对应的彩色视频帧中与CLCU’对应的最大编码单元TLCU’的最大划分深度TD’的大小关系,如果PD’的值大于TD’的值,则将PD’的值重置为TD’的值,然后执行步骤b2;如果PD’的值小于或等于TD’的值,则保持PD’的值不变,然后执行步骤b2;
b2、将CLCU’重新定义为当前编码单元,令CD’表示当前编码单元的划分深度,CD’的初始值为0,然后执行步骤b3;
b3、采用Canny边缘检测算法对当前编码单元进行边缘检测,得到当前编码单元的边缘信息,如果CD’大于或等于PD’,且满足下述条件之一:1)当前编码单元中不存在边缘信息,2)PD’的值已经被重置为TD’,3)CD’大于或等于TD’,则对当前编码单元不进行继续划分,至此已完成当前编码单元的编码,再执行步骤b4;如果CD’小于PD’,则对当前编码单元进行继续划分,执行步骤b5;
b4、如果CD’等于0,则执行步骤②-5c;
如果CD’等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,若已全部处理完毕,则执行步骤②-5c;若未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3;
如果CD’不等于0且不等于1,则判断当前编码单元所在层的四个编码单元是否均已处理完毕,如果已全部处理完毕,则将当前编码单元的上一层中下一个待处理的编码单元作为当前编码单元,再执行步骤b3;如果未全部处理完毕,则将当前编码单元所在层的四个编码单元中的下一个待处理的编码单元作为当前编码单元,再执行步骤b3;
b5、将当前编码单元的下一层四个编码单元中当前待处理的编码单元作为当前编码单元,并令CD’=CD’+1,然后返回步骤b3继续执行,其中,CD’=CD’+1中的“=”为赋值符号;
在上述编码单元的递归划分过程中,当CD’为0时,如果PD’为0、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者PD’大于0,则当前编码单元的预测方向从编号为0、1及从24到34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为1时,如果PD’为1、当前编码单元中不存在边缘信息且PD’的值未被重置为TD’,或者当PD’大于1,或者PD’小于1、当前编码单元中存在边缘信息且TD’大于1,则当前编码单元的预测方向从编号为0、1、9、10、11、37、38及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为2时,如果PD’为2、当前编码单元中不存在边缘信息、PD’的值未被重置为TD’,或者当PD’大于2,或者PD’小于2、当前编码单元中存在边缘信息且TD’大于2,则当前编码单元的预测方向从编号为0、1、37、38、8至12及20至34的预测方向中遍历得到;如果为其余情况,则当前编码单元的预测方向从全部的预测方向中遍历得到;
当CD’为3时,当前编码单元的预测方向从全部的预测方向中遍历得到;
②-5c、将预处理后的测试帧中下一个待处理的最大编码单元作为当前最大编码单元,并记为CLCU’,然后返回步骤②-5b继续执行,直至预处理后的测试帧中的所有最大编码单元处理完毕。
2.根据权利要求1所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-2的具体过程为:
①-2a、检测出当前帧中属于边缘的所有像素点;
①-2b、对当前帧进行分块处理,分成多个互不重叠的子块;
①-2c、确定当前帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于当前帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点;
①-2d、对当前帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于当前帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
3.根据权利要求2所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-2a中采用Canny边缘检测算法检测出当前帧中属于边缘的所有像素点。
4.根据权利要求2所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-2b中假设当前帧的尺寸大小能够被8×8整除,则将当前帧划分成个互不重叠的尺寸大小为8×8的子块,其中,W表示训练视频帧集合中的视频帧的宽度,H表示训练视频帧集合中的视频帧的高度。
5.根据权利要求2所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-2d中对该像素点进行高斯滤波处理时,采用的滤波窗口的尺寸大小为5×5,高斯分布的标准差为1.1。
6.根据权利要求1至5中任一项所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-3b中的
<mrow>
<msup>
<mi>xMSE</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msubsup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mi>i</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msubsup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>yMSE</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msubsup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mi>j</mi>
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msubsup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>MSE</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>xMSE</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msubsup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mi>i</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msubsup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>yMSE</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msubsup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mi>j</mi>
<mrow>
<mi>L</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msubsup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>MSE</mi>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
<mrow>
<msup>
<mi>xMSE</mi>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>64</mn>
<mo>&times;</mo>
<mn>64</mn>
</mrow>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>64</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msup>
<mi>p</mi>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msup>
<mo>(</mo>
<mrow>
<mi>i</mi>
<mo>,</mo>
<mi>j</mi>
</mrow>
<mo>)</mo>
<mo>-</mo>
<msubsup>
<mover>
<mi>p</mi>
<mo>&OverBar;</mo>
</mover>
<mi>i</mi>
<mrow>
<mi>U</mi>
<mi>L</mi>
<mi>C</mi>
<mi>U</mi>
</mrow>
</msubsup>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>,</mo>
</mrow>
其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,表示CLCU中的所有像素点的像素值的平均值,表示CLCU的第i行中的所有像素
点的像素值的平均值,表示CLCU的第j列中的所有像素点的像素值的平均值,pLLCU(i,
j)表示LLCU中坐标位置为(i,j)的像素点的像素值,表示LLCU中的所有像素点的像素
值的平均值,表示LLCU的第i行中的所有像素点的像素值的平均值,表示LLCU的
第j列中的所有像素点的像素值的平均值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素
点的像素值,表示ULCU中的所有像素点的像素值的平均值,表示ULCU的第i行中
的所有像素点的像素值的平均值,表示ULCU的第j列中的所有像素点的像素值的平均
值。
7.根据权利要求6所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤①-3b中的 其中,1≤i≤64,1≤j≤64,pCLCU(i,j)表示CLCU中坐标位置为(i,j)的像素点的像素值,pLLCU(i,j)表示LLCU中坐标位置为(i,j)的像素点的像素值,pULCU(i,j)表示ULCU中坐标位置为(i,j)的像素点的像素值,符号“| |”为取绝对值符号。
8.根据权利要求1所述的一种3D-HEVC深度视频帧内快速编码方法,其特征在于所述的步骤②-2的具体过程为:
②-2a、检测出测试帧中属于边缘的所有像素点;
②-2b、对测试帧进行分块处理,分成多个互不重叠的子块;
②-2c、确定测试帧中的每个子块中的所有像素点为边缘像素点或为非边缘像素点,对于测试帧中的任一个子块,如果该子块中存在属于边缘的像素点,则将该子块中的所有像素点都确定为边缘像素点;如果该子块中不存在属于边缘的像素点,则将该子块中的所有像素点都确定为非边缘像素点;
②-2d、对测试帧中的所有边缘像素点和所有非边缘像素点进行不同的滤波处理,对于测试帧中的任一个像素点,如果该像素点为边缘像素点,则采用尺寸大小为5×5的窗口对该像素点进行中值滤波处理;如果该像素点为非边缘像素点,则对该像素点进行高斯滤波处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510873417.3A CN105430415B (zh) | 2015-12-02 | 2015-12-02 | 一种3d‑hevc深度视频帧内快速编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510873417.3A CN105430415B (zh) | 2015-12-02 | 2015-12-02 | 一种3d‑hevc深度视频帧内快速编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105430415A CN105430415A (zh) | 2016-03-23 |
CN105430415B true CN105430415B (zh) | 2018-02-27 |
Family
ID=55508300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510873417.3A Active CN105430415B (zh) | 2015-12-02 | 2015-12-02 | 一种3d‑hevc深度视频帧内快速编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105430415B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106791768B (zh) * | 2016-12-16 | 2019-01-04 | 浙江大学 | 一种基于图割优化的深度图帧率提升方法 |
CN107071418B (zh) * | 2017-05-05 | 2020-03-17 | 上海应用技术大学 | 一种基于决策树的hevc帧内编码单元快速划分方法 |
EP3451670A1 (en) * | 2017-08-28 | 2019-03-06 | Thomson Licensing | Method and apparatus for filtering with mode-aware deep learning |
CN107396124B (zh) * | 2017-08-29 | 2019-09-20 | 南京大学 | 基于深度神经网络的视频压缩方法 |
JP7210568B2 (ja) * | 2017-10-13 | 2023-01-23 | フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | ブロック単位の画像符号化のためのイントラ予測モード概念 |
CN109996083B (zh) * | 2017-12-29 | 2021-02-09 | 杭州海康威视数字技术股份有限公司 | 帧内预测方法及装置 |
CN108174225B (zh) * | 2018-01-11 | 2021-03-26 | 上海交通大学 | 基于对抗生成网络的视频编解码环路内滤波实现方法及系统 |
CN108174218B (zh) * | 2018-01-23 | 2020-02-07 | 中国科学技术大学 | 基于学习的视频编解码系统 |
CN110662040B (zh) * | 2019-10-30 | 2022-02-18 | 西安邮电大学 | 基于可重构阵列处理器的深度图cu快速划分方法 |
CN111191732B (zh) * | 2020-01-03 | 2021-05-14 | 天津大学 | 一种基于全自动学习的目标检测方法 |
CN113179403B (zh) * | 2021-03-31 | 2023-06-06 | 宁波大学 | 一种基于深度学习重建的水下视频对象编码方法 |
CN113784147B (zh) * | 2021-08-10 | 2023-06-09 | 浙江万里学院 | 一种基于卷积神经网络的高效视频编码方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035261A (zh) * | 2007-04-11 | 2007-09-12 | 宁波大学 | 一种交互式多视点视频系统的图像信号处理方法 |
CN102420990A (zh) * | 2011-12-15 | 2012-04-18 | 北京工业大学 | 一种面向多视点视频的快速编码方法 |
CN102769746A (zh) * | 2012-06-27 | 2012-11-07 | 宁波大学 | 一种多视点深度视频处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6090430B2 (ja) * | 2013-03-26 | 2017-03-08 | 富士通株式会社 | 符号化装置、方法、プログラム、コンピュータシステム、記録媒体 |
-
2015
- 2015-12-02 CN CN201510873417.3A patent/CN105430415B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035261A (zh) * | 2007-04-11 | 2007-09-12 | 宁波大学 | 一种交互式多视点视频系统的图像信号处理方法 |
CN102420990A (zh) * | 2011-12-15 | 2012-04-18 | 北京工业大学 | 一种面向多视点视频的快速编码方法 |
CN102769746A (zh) * | 2012-06-27 | 2012-11-07 | 宁波大学 | 一种多视点深度视频处理方法 |
Non-Patent Citations (2)
Title |
---|
低复杂度的多视点视频编码宏块模式决策算法;朱威,等;《光电子·激光》;20140531;第25卷(第5期);全文 * |
基于特征分析的深度视频处理算法;郭明松,等;《光电子·激光》;20150430;第26卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105430415A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105430415B (zh) | 一种3d‑hevc深度视频帧内快速编码方法 | |
CN101516040B (zh) | 视频匹配方法、装置及系统 | |
CN106507116B (zh) | 一种基于3d显著性信息和视点合成预测的3d-hevc编码方法 | |
US10349058B2 (en) | Method for predicting depth map coding distortion of two-dimensional free viewpoint video | |
CN105120290B (zh) | 一种深度视频快速编码方法 | |
CN101986716B (zh) | 一种快速深度视频编码方法 | |
CN108712648B (zh) | 一种深度视频快速帧内编码方法 | |
CN107465911B (zh) | 一种深度信息提取方法及装置 | |
US9883200B2 (en) | Method of acquiring neighboring disparity vectors for multi-texture and multi-depth video | |
KR101855980B1 (ko) | 홀 채우기 방법 및 장치 | |
CN104469336B (zh) | 多视点深度视频信号的编码方法 | |
WO2014063373A1 (zh) | 深度图提取、判断视频场景切换及深度图边缘优化方法 | |
CN110446052B (zh) | 一种3d-hevc帧内深度图快速cu深度选择方法 | |
CN109587503B (zh) | 一种基于边缘检测的3d-hevc深度图帧内编码模式快速决策方法 | |
CN110660131A (zh) | 一种基于深度背景建模的虚拟视点空洞填补方法 | |
CN109191511A (zh) | 一种基于卷积神经网络的双目立体匹配方法 | |
CN111246212A (zh) | 一种基于编解码端的几何划分模式预测方法、装置、存储介质及终端 | |
CN104333755B (zh) | HEVC中B帧的基于SKIP/Merge RD Cost的CU提前终止方法 | |
CN104270624A (zh) | 一种分区域的3d视频映射方法 | |
CN105915881B (zh) | 一种基于显著性检测的立体视频帧率提升方法 | |
RU2562414C1 (ru) | Способ быстрого выбора режима пространственного предсказания в системе кодирования hevc | |
CN111385585B (zh) | 一种基于机器学习的3d-hevc深度图编码单元划分方法 | |
US20140184739A1 (en) | Foreground extraction method for stereo video | |
CN104244008B (zh) | 一种深度视频编码方法 | |
CN113992911B (zh) | 全景视频h264编码的帧内预测模式确定方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |