发明内容
针对现有技术中存在的上述问题,本发明的目的在于提供一种配置视频编码质量和分级传输视频数据的方法,其能够在较小的码率和图像质量变化范围内配置网络视频的质量,使得用户体验更佳。
为了实现上述目的,本发明提供一种配置视频编码质量和分级传输视频数据的方法,视频图像包括多个图像,其特征在于:对于每一个图像在编码时包括如下步骤:
一、检测待编码图像的边缘。
边缘检测的目的是标识出数字图像中色彩变化明显的点,将反映图像边缘的像素点位置确定出来,通过一个与待编码图像尺寸大小一样的二值图像数组,记录确定出的边缘像素点位置,边缘检测采用Laplacian算子进行检测,算子如下式所示。
二、对处于图像边缘的像素进行平滑滤波得到平滑图像
确定好边缘像素点位置之后,需要根据检测出的图像边缘图像信息中的位置信息来对高清图像中对应位置的图像像素点进行平滑滤波,平滑滤波采用在图像边缘像素位置处的像素及其周围像素的窗口中进行平滑滤波,滤波算子可采用下式。
三、编码平滑图像并通过第一通信信道传送平滑图像
滤波后得到平滑图像,之后编码平滑图像并通过第一通信信道传送平滑图像,第一通信信道是可靠性高的传输信道。
四、决定是否传输高清图像与平滑图像之间的差分图像信息
之后,根据用户选择、或者网络传输状态决定是否传输高清图像与平滑图像之间的差分图像信息,以在用户端解码和显示更多细节的清晰图像。
五、如果决定不传输差分图像,则解码端直接对平滑图像进行图像解码,解码后的平滑图像在用户端进行显示。
六、如果决定传输差分图像信息,对高清图像和平滑滤波后的平滑图像进行求差得到差分图像,然后编码差分图像。
编码差分图像的过程采用一般的视频编码方法和行程编码方法中率失真较低者进行,率失真采用预编码的方式得到的码率和编码失真进行计算;
行程编码方法具体是:从图像左上角的像素到右下角的像素,先逐像素由左至右,再逐行由上至下的方式扫描整个图像,编码第一个非零像素值距左上角像素点的距离、和其非零值组成的数据对;然后,再编码下一个非零像素值距离上一个非零像素值的距离、以及该下一个非零像素值的数值组成的数据对;
七、编码得到的差分图像编码信息通过第二通信信道进行传输。
第二通信信道是此第一通信信道的可靠性低的传输信道;
八、解码端由第一信道获得平滑图像编码信息,第二信道获得差分图像的编码信息,分别对它们使用与编码端相应的解码,解码后得到的图像被组合,生成解码的高清图像,在解码端进行解码显示。
本发明通过考虑到用户需求和网络传输的状况,将高清图像的传输分成两部分,第一部分使用高可靠性信道传输平滑了图像边缘信息的平滑图像,第二部分使用较低可靠性信道传输带有细节信息的,高清原图像与平滑图像的差值图像,从而减轻网络视频传输的带宽,同时让用户终端的播放更加流畅,使得用户体验更佳。
具体实施方式
图像的边缘信息反映了图像中物体的显著变化,这些变化体现出图像中的物体在深度上的不连续、表面方向上的不连续、物质属性的变化和场景照明的变化,这些信息能够帮助于人眼掌握图像中的细节。然而正是由于存在这些边缘信息,增加了图像中的高频信息,使得图像的编码码流剧增,增加了网络传输的负担,有时会让用户无法流畅地观看网络视频。因此本发明考虑到用户需求和网络传输的状况,将高清图像的传输分成两部分,第一部分使用高可靠性信道传输平滑了图像边缘信息的平滑图像,第二部分使用较低可靠性信道传输带有细节信息的,高清原图像与平滑图像的差值图像。
为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进一步详细说明。应当理解所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明的视频图像编解码方法的总体流程示意图。为了能够分级编码和显示高清图像,本发明中,编码端首先检测出待编码的高清图像中的图像边缘信息,根据检测中的边缘信息从高清图像中分离出反映平滑了边缘信息的平滑图像成分和表示图像边缘信息的差分图像成分。编码端对分离出来的平滑图像信息和差分图像信息分别进行编码,编码后的两种编码信息被传送到解码端,解码端对这两种信息分别解码得到平滑图像信息和差分图像信息,然后通过与编码平滑图像信息和差分图像信息时相对应的方式来解码上述两种图像信息,最终组合出解码的高清图像,并进行播放显示。
图2示出了本发明中视频图像的编码数据分级编码和传输的流程示意图。
一、检测待编码图像的边缘。
边缘检测的目的是标识出数字图像中色彩变化明显的点,将反映图像边缘的像素点位置确定出来,通过一个与高清图像尺寸一样的二值图像数组记录下确定出的边缘像素点位置。边缘检测可采用如Laplacian算子进行检测,如,
二、对处于图像边缘的像素进行平滑滤波得到平滑图像。
确定好边缘像素点位置之后,需要根据检测出的图像边缘图像信息中的位置信息来对高清图像中相应位置的图像像素点进行平滑滤波,平滑滤波采用在边缘图像的边缘像素位置处的像素及其周围像素的窗口(如3*3、5*5窗口)进行平滑滤波,滤波算子可采用下式:
三、编码平滑图像并通过第一通信信道传送平滑图像。
滤波后得到平滑图像,之后编码平滑图像并通过第一通信信道传送平滑图像,第一通信信道可以是可靠性高的传输信道,编码可以采用MPEG2、MPEG4、H.263、H.264等编码方法。
四、决定是否传输高清图像与平滑图像之间的差分图像信息。
之后,根据用户选择、或者网络传输状态决定是否传输高清图像与平滑图像之间的差分图像信息,以在用户端解码和显示更多细节的清晰图像。
五、如果决定不传输差分图像,则解码端直接对平滑图像进行图像解码。
解码采用与编码相对应的MPEG2、MPEG4、H.263、H.264解码方法,解码后的平滑图像在用户端进行显示。
六、如果决定传输差分图像信息,对高清图像和平滑滤波后的平滑图像进行求差得到差分图像,然后编码差分图像。
编码差分图像的过程可采用常规视频编码方法(如MPEG2、MPEG4、H.263、H.264),更优的是,利用只对边缘像素进行平滑滤波后得到的平滑图像与高清图像的差分图像中,只有少量数据是非0的,因此,可以对这样的像素矩阵采用行程编码方式,从图像左上角的像素到右下角的像素,先逐像素由左至右,再逐行由上至下的方式扫描整个图像,编码第一个非零像素距左上角点的距离,和其非零值组成的数据对,然后,再编码下一个非零像素距离上一个非零像素值的距离、以及该下一个非零值的数值组成的数据对。非零像素值可以采用差分的形式,对前后两个非零像素值求差得到(第一个非零值与0求差得到第一个非零值的差分形式)。
如上所述编码时可采用基于DCT或小波变换的视频编码方法,也可采用行程编码方法,二种方式可任选,也可采用预先编码并此较二种方式编码的率失真情况,选择二种方式中率失真较小的编码方式进行编码。
在基于DCT或小波变换的视频编码方法和行程编码方法(无论是直接对数值进行编码还是对其差分形式进行编码)都需要进行量化,即将待编码值除以量化步长得到最终用于编码的值,因此编码中涉及确定量化步长的步骤,该步骤在后有详细说明。
编码得到的差分图像编码信息通过第二通信信道进行传输,第二通信信道可以是此第一通信信道的可靠性低的传输信道。解码端由第一信道获得平滑图像编码信息,第二信道获得差分图像的编码信息,分别对它们使用与编码端相应的解码,解码后得到的图像被组合,生成解码的高清图像,在解码端进行解码显示。
图3示出了本发明中对视频图像的差分图像进行编码时确定量化步长的方法流程示意图。基于DCT或小波变换的视频编码方法和行程编码方法中,确定量化步长的方法可以采用常规的视频编码中的量化步长确定方法,更优地可采用如下的确定量化步长的方法,具体步骤如下:
1、计算高清图像中边缘位置像素的梯度因子
根据人眼的视频特性,人眼对图像的边缘信息非常敏感,特别是边缘的位置信息。人眼容易感觉到边缘的位置变化,而对于边缘的灰度误差,人眼并不敏感。因此利用这个特征,对边缘比较明显的像素边缘信息采用更精细的量化步长,而对边缘不明显的像素边缘信息采用更精细的量化步长。其中依据图像中边缘位置像素与周边像素的梯度因子来确定边缘显著程度。梯度因子计算方法如下:
其中表示边缘像素位置(x,y)处的像素在水平方向的像素梯度值,表示(x+1,y)位置处的像素在水平方向的梯度值,其中表示边缘像素位置(x,y)处的像素在垂直方向的像素梯度值,表示(x,y+1)位置处的像素在垂直方向的梯度值;表示(x,y)位置的像素和(x+1,y+1)位置的像素在水平和垂直方向之间45度角斜线方向的梯度之积。
2、根据梯度因子决定边缘像素的量化步长
具体地确定量化步长的过程中,可以使梯度因子的值大于1000时采用量化步长16,而在大于500小于等于1000时采用32,小于等于500时采用64。
3、根据边缘位置像素的像素值的取值范围修正量化步长
根据人眼的视频特性,人眼对亮度的响应具有非线性性质,即在不同的色彩区域,对色阶的响应敏感程度不同,因此需要考虑色彩区域对量化步长的影响,如人眼对255阶的色彩分量中的37-218具有高敏感性,因此对高敏感区域适当减少量化步长,如对原有量化步长乘以5/4;而对0-36和219-255区间采用粗略的量化步长,适当增加量化步长,如对原有量化步长乘以3/4。
4、检测帧间亮度变化
人眼存在明适应和暗适应两种情况,明适应是指人眼由暗背景到亮背景时的视觉适应过程,当人眼由暗背景到亮背景时,人眼一时无法辨认清物体,需要一定时间的调整适应时间,暗适应是指人眼由亮背景到暗背景时的视觉适应过程,当人眼由亮背景到暗背景时,人眼一时无法辨认物体,需要一定时间的调整适应时,
为此,计算前一帧图像的所有像素的平均亮度,计算当前编码帧的所有像素的平均亮度,计算两帧图像之间的平均亮度值之差。
5、检测帧间亮度变化,计算量化步长的修正因子
一旦检测出两帧图像之间的平均亮度值之差大于阈值,具体为120,对后续的多个数据帧中启动量化修正因子的计算和量化步长的修正,所述多个帧具体依不同情况在20-30帧中选择,修正因子的计算如下式所示:
lumdif是平均亮度值之差,γ是量化步长修正因子;
6、根据量化步长修正因子修正量化步长,具体算式如下,
Q`step=Qstep×γ
其中,Q`step为修正后的量化步长,Qstep为修正前的量化步长。
上述计算量化步长的步骤可以是针对每一个图像边缘像素位置的点,即差分图像非零像素点上的像素进行的。其中6个步骤可以全部执行,也可以部分执行,如将步骤1和步骤2组成一个完整的量化计算过程,或者将步骤1、步骤2、步骤3组成一个完整的量化计算过程,或者将将步骤1、步骤2、步骤4、步骤5、步骤6组成一个完整的量化计算过程。
编码端在确定差分图像编码时的量化步长之后,需要将选择的量化步长进行编码传输,可在第二传输信道传输差分图像编码的量化步长。解码端在解码差分图像之前先解码差分图像的的量化步长以备将来解码使用。
本发明中所公开的方法可作为设备可读指令集或软件执行,也可以作为电路硬件来实现。而且,可以理解的是,在公开的方法中,特定的顺序或层次步骤均是示范性方法的实施方式。基于优先设计,可以理解的是,在属于公开主题的范围内,方法中特定的顺序或层次步骤可以重新安排。如实施方式中所示的顺序,所附方法权利要求呈现出各种步骤的组成,但不仅限于方法中所示的特定的顺序或层次。如实施方式中所示的顺序,所附装置权利要求呈现出各种模块的组成,但不仅限于装置中所示的特定的组成或层次。
可以认为,本发明和许多其呈现出的优势能够通过上述的说明书得以理解,在不偏离公开的主题或没有失去其所有物质优势的前提下,实现组件在形式上、结构上和排列上的各种变化是显而易见的。本发明的说明形式仅仅是示例性的,所附权利要求的目的包括保护这些变化。