具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明公开一种亮度色度均衡编解码方法和系统,本发明方法在编码端通过对色度信息的预压缩,将色度中节约的码流分配到对视觉效果影响最大的亮度上,从而提升亮度率失真性能;在解码端通过色度信息后还原,将色度率失真性能下降幅度控制在不会影响视觉效果的范围内,或通过色度信息后增强,提升主观效果;从而最终达到编解码技术主客观性能的提升。
实施例一
图1为本发明一种亮度色度均衡编码方法流程图;本发明实施例中编码图像是n位图(n位图是指图像的每一个像素用n个比特无符号整数表示);编码图像所有像素的亮度值构成编码图像的亮度信息,所有像素的U色度值构成编码图像的U色度信息,所有像素的V色度值构成编码图像的V色度信息;
所述方法包括以下步骤:
S100:初始化:t=1,noteu=0,notev=0。
其中,t表示当前编码帧framet的编码序号;
noteu表示当前编码帧U色度信息预压缩标志,
notev表示当前编码帧V色度信息预压缩标志。
S101,计算当前编码帧的U色度信息的强度及V色度信息的强度;
具体计算方法如下:
其中,
其中,k=0,1,2,...,2n-1,n为自然数;1≤i≤heightuv&&1≤j≤widthuv。
max(变量|条件)表示对所有满足条件的变量求最大值。
min(变量|条件)表示对所有满足条件的变量求最小值。
abs(变量)表示对变量求绝对值。
表示frame
t中U色度信息的像素值等于k的像素点个数;
表示frame
t中V色度信息的像素值等于k的像素点个数;
sum(变量|条件)表示对所有满足条件的变量求和
sign(x,k)表示x等于k及不等于k时相应的取值;
&&:表示并且
t表示当前编码帧的编码序号;
framet表示当前编码帧;
表示当前编码帧V色度信息的强度;
heightuv表示当前编码帧的U色度及V色度信息的行数;
widthuv表示当前编码帧的U色度及V色度信息的列数;
S102,根据所述U色度信息的强度及V色度信息的强度分别更新当前编码帧的U色度信息预压缩标志及V色度信息预压缩标志;
具体方法如下:
设定第一判定阈值Thres1,Thres1的取值范围为4≤Thres1≤32;
判断如果当前编码帧的U色度信息的强度大于第一判定阈值,则令noteu=1;否则,noteu保持不变。
判断如果当前编码帧的V色度信息的强度大于第一判定阈值,则令notev=1;否则,noteu保持不变。
S103,根据所述U色度信息预压缩标志和V色度信息预压缩标志对当前编码帧的U色度信息和/或V色度信息进行预压缩;
步骤S103具体步骤可选择以下4种方法中的任意一种;
方法1:
S103-A1:判断当前编码帧中值为1的预压缩标志(包括U色度信息预压缩标志和V色度信息预压缩标志)的数量是否不少于1,是则进入S103-A2;
否则,则进入S104。
S103-A2:判断当前编码帧的U色度信息预压缩标志是否等于1,若是,则计算当前编码帧的U色度信息预压缩参数ku;若否,则执行S103-A4。
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-A3:对当前编码帧framet的U色度信息进行预压缩。
U色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值。
S103-A4:判断是否当前编码帧的V色度信息预压缩标志等于1,若是,则计算当前编码帧的V色度信息预压缩参数kv;若否,则执行S104。
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-A5:对当前编码帧framet的V色度信息进行预压缩。
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
方法2:
S103-B1:判断当前编码帧中值为1的预压缩标志(包括U色度信息预压缩标志和V色度信息预压缩标志)的数量是否不少于1,是则进入S103-B2;否则,则进入S104。
S103-B2:判断是否当前编码帧的V色度信息预压缩标志等于1,若是,则计算当前编码帧的V色度信息预压缩参数kv;若否,则执行S103-B4。
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-B3:对当前编码帧framet的V色度信息进行预压缩。
V色度信息预压缩方法如下:
1≤i ≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
S103-B4:判断当前编码帧的U色度信息预压缩标志是否等于1,若是,则计算当前编码帧的U色度信息预压缩参数ku;若否,则执行S104。
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-B5:对当前编码帧framet的U色度信息进行预压缩。
U色度信息预压缩方法如下:
1≤i ≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值。
方法3:
S103-C1:判断当前编码帧的U色度信息预压缩标志是否等于1,若是,则计算当前编码帧的U色度信息预压缩参数ku;若否,则执行S103-C3。
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-C2:对当前编码帧framet的U色度信息进行预压缩。
U色度信息预压缩方法如下:
1≤i ≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值。
S103-C3:判断是否当前编码帧的V色度信息预压缩标志等于1,若是,则计算当前编码帧的V色度信息预压缩参数kv;若否,则执行S104。
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-C4:对当前编码帧framet的V色度信息进行预压缩。
色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
方法4:
S103-D1:判断是否当前编码帧的V色度信息预压缩标志等于1,若是,则计算当前编码帧的V色度信息预压缩参数kv;若否,则执行S103-D3。
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-D2:对当前编码帧framet的V色度信息进行预压缩。
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
S103-D3:判断当前编码帧的U色度信息预压缩标志是否等于1,若是,则计算当前编码帧的U色度信息预压缩参数ku;若否,则执行S104。
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
S103-D4:对当前编码帧framet的U色度信息进行预压缩。
U色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值。
S104,根据当前编码帧的类型对当前编码帧进行编码处理。
具体为:
判断当前编码帧是否为非I帧,是则首先对当前编码帧进行编码,然后计算当前编码帧中的广义I宏块数量;否则首先设置广义I宏块数量等于Mb_number(Mb_number表示当前编码帧的宏块个数),然后对当前编码帧进行编码。
所述广义I宏块数量计算方法为:
其中,
sum(变量|条件)表示对所有满足条件的变量求和;
m表示宏块在当前编码帧中的位置序号;
进一步地,步骤S104后还可以包括步骤S105;
S105,设置下一帧为当前编码帧,判断是否发生场景切换,若是则进入S101,若否则进入步骤S103;
在步骤S105中,若未发生场景切换,则当前编码帧(即步骤S105中的当前编码帧)的U色度信息的强度及V色度信息的强度与前一帧相同,不用重新计算当前编码帧的U色度信息的强度及V色度信息的强度,即跳过步骤S101直接进入步骤S103;
步骤S105具体包括以下步骤:
S1051:判断下一个编码帧是否存在,是则进入步骤S1052,否则结束;
S1052:设置所述下一个编码帧作为当前编码帧;
S1053:判断所述广义宏块数量是否大于第二判定阈值Thres2,是则初始化当前编码帧中的U色度信息预压缩标志和V色度信息预压缩标志为0(即初始化noteu=0且notev=0),然后进入步骤S101;否则进入步骤S103;
其中,第二判定阈值记为Thres2,其取值范围为0.5≤Thres2≤1。
当所述广义宏块数量大于第二判定阈值Thres2时,表示发生场景切换,当所述广义宏块数量不大于第二判定阈值Thres2时,表示未发生场景切换。
实施例二
图3为本发明实施例一种亮度色度均衡编码系统结构图;所述系统包括:
初始化模块、预压缩装置、编码处理模块,
初始化模块:与预压缩装置相连,用于初始化当前编码帧的编码序号、当前编码帧U色度信息预压缩标志、当前编码帧V色度信息预压缩标志;
预压缩装置:与初始化模块、编码处理模块和场景判断处理模块相连,用于根当前编码帧色度信息的强度、色度信息预压缩标志对当前编码帧的U色度信息和/或V色度信息进行预压缩;
编码处理模块:与预压缩装置和当前帧设置模块相连,用于根据当前编码帧的类型对当前编码帧进行编码处理;
进一步地,所述系统还包括当前帧设置模块、场景判断处理模块,
当前帧设置模块:与编码处理模块和场景判断处理模块相连,用于查找并设置下一编码帧为当前编码帧;
场景判断处理模块:与当前帧设置模块和预压缩装置相连,用于判断是否发生场景切换,并根据判断结果进行处理并发送执行指令给预压缩装置。
进一步地,所述预压缩装置还包括:色度信息强度计算模块、预压缩标志更新模块、预压缩模块;
色度信息强度计算模块,与初始化模块、预压缩标志更新模块、场景判断处理模块相连,用于计算当前编码帧的U色度信息的强度及V色度信息的强度;
色度信息的强度具体计算方法如下:
其中,
其中,k=0,1,2,...,2n-1,n为自然数;1≤i≤heightuv&&1≤j≤widthuv。
max(变量|条件)表示对所有满足条件的变量求最大值。
min(变量|条件)表示对所有满足条件的变量求最小值。
abs(变量)表示对变量求绝对值。
表示frame
t中U色度信息的像素值等于k的像素点个数;
表示frame
t中V色度信息的像素值等于k的像素点个数;
sum(变量|条件)表示对所有满足条件的变量求和
sign(x,k)表示x等于k及不等于k时相应的取值;
&&:表示并且
t表示当前编码帧的编码序号;
framet表示当前编码帧;
表示framet的U色度信息;
表示framet的V色度信息;
heightuv表示当前编码帧的U色度及V色度信息的行数;
widthuv表示当前编码帧的U色度及V色度信息的列数;
预压缩标志更新模块,与色度信息强度计算模块和预压缩模块相连,用于根据所述U色度信息的强度及V色度信息的强度分别更新当前编码帧的U色度信息预压缩标志及V色度信息预压缩标志;
色度信息预压缩标志更新具体方法如下:
设定第一判定阈值Thres1,Thres1的取值范围为4≤Thres1≤32;
判断如果当前编码帧的U色度信息的强度大于第一判定阈值,则令noteu=1;否则,noteu保持不变。
判断如果当前编码帧的V色度信息的强度大于第一判定阈值,则令notev=1;否则,noteu保持不变。
预压缩模块,与预压缩标志更新模块、编码处理模块、场景判断处理模块相连,用于根据所述U色度信息预压缩标志和V色度信息预压缩标志对当前编码帧的U色度信息和/或V色度信息进行预压缩;
预压缩模块具体可选择以下4种结构中的任意一种;
结构1:(如图3所示是图2系统中预压缩模块的第一种具体结构图)
预压缩模块包括第一预压缩标志数量判断模块、第一U色度信息预压缩标志判断模块、U色度信息预压缩参数计算模块、U色度信息预压缩模块、第一V色度信息预压缩标志判断模块、V色度信息预压缩参数计算模块、V色度信息预压缩模块;
第一预压缩标志数量判断模块,与预压缩标志更新模块、编码处理模块、第一U色度信息预压缩标志判断模块相连,用于判断当前编码帧中值为1的预压缩标志的数量是否不少于1,是则发送执行指令给第一U色度信息预压缩标志判断模块,否则发送执行指令给编码处理模块;
第一U色度信息预压缩标志判断模块,与第一预压缩标志数量判断模块、U色度信息预压缩参数计算模块、第一V色度信息预压缩标志判断模块相连,用于判断当前编码帧的U色度信息预压缩标志是否等于1,是则发送执行指令给U色度信息预压缩参数计算模块,否则发送执行指令给第一V色度信息预压缩标志判断模块;
U色度信息预压缩参数计算模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块相连,用于计算当前编码帧的U色度信息预压缩参数ku,然后发送指令给U色度信息预压缩模块;
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
U色度信息预压缩模块,与U色度信息预压缩参数计算模块和第一V色度信息预压缩标志判断模块相连,用于对当前编码帧framet的U色度信息进行预压缩,然后发送执行指令给第一V色度信息预压缩标志判断模块,
U色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值;
第一V色度信息预压缩标志判断模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块、V色度信息预压缩参数计算模块、编码处理模块相连,用于判断当前编码帧的V色度信息预压缩标志是否等于1,若是则发送执行指令给V色度信息预压缩参数计算模块,否则发送执行指令给编码处理模块;
V色度信息预压缩参数计算模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块相连,用于计算当前编码帧的V色度信息预压缩参数kv,然后发送指令给V色度信息预压缩模块;
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
V色度信息预压缩模块,与V色度信息预压缩参数计算模块、编码处理模块相连,用于对当前编码帧framet的V色度信息进行预压缩,然后发送执行指令给编码处理模块,
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
结构2:(图4是图2系统中预压缩模块的第二种具体结构图)
预压缩模块包括第一预压缩标志数量判断模块、第一U色度信息预压缩标志判断模块、U色度信息预压缩参数计算模块、U色度信息预压缩模块、第一V色度信息预压缩标志判断模块、V色度信息预压缩参数计算模块、V色度信息预压缩模块;
第一预压缩标志数量判断模块,与预压缩标志更新模块、编码处理模块、第一V色度信息预压缩标志判断模块相连,用于判断当前编码帧中值为1的预压缩标志的数量是否不少于1,是则发送执行指令给第一V色度信息预压缩标志判断模块,否则发送执行指令给编码处理模块;
第一V色度信息预压缩标志判断模块,与第一预压缩标志数量判断模块、V色度信息预压缩参数计算模块、第一U色度信息预压缩标志判断模块相连,用于判断当前编码帧的V色度信息预压缩标志是否等于1,是则发送执行指令给V色度信息预压缩参数计算模块,否则发送执行指令给第一U色度信息预压缩标志判断模块;
V色度信息预压缩参数计算模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块相连,用于计算当前编码帧的V色度信息预压缩参数kv,然后发送执行指令给V色度信息预压缩模块;
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
V色度信息预压缩模块,与V色度信息预压缩参数计算模块和第一U色度信息预压缩标志判断模块相连,用于对当前编码帧framet的V色度信息进行预压缩,然后发送执行指令第一U色度信息预压缩标志判断模块,
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
第一U色度信息预压缩标志判断模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块、U色度信息预压缩参数计算模块、编码处理模块相连,用于判断当前编码帧的U色度信息预压缩标志是否等于1,若是则发送执行指令给U色度信息预压缩参数计算模块,否则发送执行指令给编码处理模块;
U色度信息预压缩参数计算模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块相连,用于计算当前编码帧的U色度信息预压缩参数ku,然后发送执行指令给U色度信息预压缩模块;
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
U色度信息预压缩模块,与U色度信息预压缩参数计算模块、编码处理模块相连,用于对当前编码帧framet的U色度信息进行预压缩,然后发送执行指令给编码处理模块,
U色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)UU色度信息在第i行第j列的像素值;
结构3:(图5是图2系统中预压缩模块的第三种具体结构图)
预压缩模块包括第一U色度信息预压缩标志判断模块、U色度信息预压缩参数计算模块、U色度信息预压缩模块、第一V色度信息预压缩标志判断模块、V色度信息预压缩参数计算模块、V色度信息预压缩模块;
第一U色度信息预压缩标志判断模块,与预压缩标志更新模块、U色度信息预压缩参数计算模块、第一V色度信息预压缩标志判断模块相连,用于判断当前编码帧的U色度信息预压缩标志是否等于1,是则发送执行指令给U色度信息预压缩参数计算模块,否则发送执行指令给第一V色度信息预压缩标志判断模块;
U色度信息预压缩参数计算模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块相连,用于计算当前编码帧的U色度信息预压缩参数ku,然后发送执行指令给U色度信息预压缩模块;
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
U色度信息预压缩模块,与U色度信息预压缩参数计算模块和第一V色度信息预压缩标志判断模块相连,用于对当前编码帧frame1的U色度信息进行预压缩,然后发送执行指令给第一V色度信息预压缩标志判断模块,
U色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值;
第一V色度信息预压缩标志判断模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块、V色度信息预压缩参数计算模块、编码处理模块相连,用于判断当前编码帧的V色度信息预压缩标志是否等于1,若是则发送执行指令给V色度信息预压缩参数计算模块,否则发送执行指令给编码处理模块;
V色度信息预压缩参数计算模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块相连,用于计算当前编码帧的V色度信息预压缩参数kv,然后发送执行指令给V色度信息预压缩模块;
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
V色度信息预压缩模块,与V色度信息预压缩参数计算模块、编码处理模块相连,用于对当前编码帧framet的V色度信息进行预压缩,然后发送执行指令给编码处理模块,
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
结构4:(图6是图2系统中预压缩模块的第四种具体结构图)
预压缩模块包括第一U色度信息预压缩标志判断模块、U色度信息预压缩参数计算模块、U色度信息预压缩模块、第一V色度信息预压缩标志判断模块、V色度信息预压缩参数计算模块、V色度信息预压缩模块;
第一V色度信息预压缩标志判断模块,与预压缩标志更新模块、V色度信息预压缩参数计算模块、第一U色度信息预压缩标志判断模块相连,用于判断当前编码帧的V色度信息预压缩标志是否等于1,是则发送执行指令给V色度信息预压缩参数计算模块,否则发送执行指令给第一U色度信息预压缩标志判断模块;
V色度信息预压缩参数计算模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块相连,用于计算当前编码帧的V色度信息预压缩参数kv,然后发送执行指令给V色度信息预压缩模块;
其中,kv表示当前编码帧V色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
V色度信息预压缩模块,与V色度信息预压缩参数计算模块和第一U色度信息预压缩标志判断模块相连,用于对当前编码帧framet的V色度信息进行预压缩,然后发送执行指令给第一U色度信息预压缩标志判断模块,
V色度信息预压缩方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)V色度信息在第i行第j列的像素值。
第一U色度信息预压缩标志判断模块,与第一V色度信息预压缩标志判断模块、V色度信息预压缩模块、U色度信息预压缩参数计算模块、编码处理模块相连,用于判断当前编码帧的U色度信息预压缩标志是否等于1,若是则发送执行指令给U色度信息预压缩参数计算模块,否则发送执行指令给编码处理模块;
U色度信息预压缩参数计算模块,与第一U色度信息预压缩标志判断模块、U色度信息预压缩模块相连,用于计算当前编码帧的U色度信息预压缩参数ku,然后发送执行指令给U色度信息预压缩模块
其中,ku表示当前编码帧U色度信息预压缩参数;
const1为算法强度控制量,其取值范围为16≤const1≤192;
U色度信息预压缩模块,与U色度信息预压缩参数计算模块、编码处理模块相连,用于对当前编码帧framet的U色度信息进行预压缩,然后发送执行指令给编码处理模块,
U色度信息预压缩方法如下:
1≤i ≤heightuv&&1≤j≤widthuv
其中,
表示预压缩后当前编码帧(即第t帧)U色度信息在第i行第j列的像素值;
进一步地,所述编码处理模块,与预压缩装置和当前帧设置模块相连,用于判定当前编码帧为非I帧时,首先对当前编码帧进行编码,然后计算广义I宏块数量;当前编码帧不为非I帧时,设置广义I宏块数量等于Mb_number(Mb_number表示当前编码帧的宏块个数),然后对当前编码帧进行编码;
所述广义I宏块数量计算方法为:
其中,
sum(变量|条件)表示对所有满足条件的变量求和;
表示当前编码帧的第m个宏块;m表示宏块在当前编码帧中的位置序号;
表示当前编码帧广义I宏块数量。
进一步地,所述场景判断处理模块与当前帧设置模块、色度信息强度计算模块、预压缩模块相连,用于判断当发生场景切换时,初始化U色度信息预压缩标志、V色度信息预压缩标志,发送执行指令给色度信息强度计算模块;当未发生场景切换时,发送执行指令给预压缩模块。
当所述广义宏块数量大于第二判定阈值Thres2时,表示发生场景切换,当所述广义宏块数量不大于第二判定阈值Thres2时,表示未发生场景切换。
其中,第二判定阈值记为Thres2,其取值范围为0.5≤Thres2≤1。
实施例三
图7为本发明实施例一种亮度色度均衡解码方法流程图;所述方法包括以下步骤:
S701:初始化t=1。
t表示当前解码帧的解码序号。
S702:对当前解码帧的流数据
进行解码,获取当前解码帧
S703:根据解码帧流数据中的U色度信息预压缩标志和V色度信息预压缩标志对当前解码帧的U色度信息和/或V色度信息进行后还原处理或后增强处理;
进一步地,所述的亮度色度均衡解码方法还可包括以下步骤,
S704:判断下一个待解码帧的流数据是否存在,是则将下一个待解码帧的流数据设为当前解码帧的流数据,重新进入S702;否则结束流程。
步骤S703具体步骤可选择以下4种方法中的任意一种;
方法1:
S703-A1:判断当前解码帧的U色度信息预压缩标志和V色度信息预压缩标志是否均为零(即判断是否满足noteu并且notev),是则进入步骤S704,否则进入步骤S703-A2;
noteu表示当前解码帧U色度信息预压缩标志,
notev表示当前解码帧V色度信息预压缩标志。
因为解码帧中的U色度信息预压缩标志和V色度信息预压缩标志的值分别与编码帧中的U色度信息预压缩标志和V色度信息预压缩标志的值相对应并且相同,故此处当前解码帧的U色度信息预压缩标志和V色度信息预压缩标志还是分别用与编码帧中相同的符号noteu和notev表示。
S703-A2:判断当前解码帧U色度信息预压缩标志是否等于1,若是,则进入步骤S703-A3,若否,进入步骤S703-A4。
S703-A3:对
的U色度信息进行后还原处理或后增强处理;U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
因常用的编码图像格式色度信息通常具有相同的空间采样率,故U色度及V色度信息的行数用同一符号heightuv表示,U色度及V色度信息的列数也用同一符号widthuv表示。
因为解码帧中的U色度及V色度信息的行数和列数分别与编码帧中的U色度及V色度信息的行数和列数相对应并且相同,故此处当前解码帧的U色度及V色度信息的行数和列数还是分别用与编码帧中相同的符号heightuv和widthuv表示。
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;
const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
S703-A4:判断当前解码帧V色度信息预压缩标志是否等于1,若是,则进入步骤S703-A5,若否,进入步骤S704。
S703-A5:对的V色度信息进行后还原处理或后增强处理;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示当前解码帧V色度信息后增强参数;
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
方法2:
S703-B1:判断当前解码帧的U色度信息预压缩标志和V色度信息预压缩标志是否均为零(即判断是否满足noteu并且notev),是则进入步骤S704。,否则进入步骤S703-B2;
noteu表示当前解码帧U色度信息预压缩标志,
notev表示当前解码帧V色度信息预压缩标志。
S703-B2:判断当前解码帧V色度信息预压缩标志是否等于1,若是,则进入步骤S703-B3,若否,进入步骤S703-B4。
S703-B3:对
的V色度信息进行后还原处理或后增强处理;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
S703-B4:判断当前解码帧U色度信息预压缩标志是否等于1,若是,则进入步骤S703-B5,若否,进入步骤S704。
S703-B5:对
的U色度信息进行后还原处理或后增强处理;
U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
方法3:
S703-C1:判断当前解码帧U色度信息预压缩标志是否等于1,若是,则进入步骤S703-C2,若否,进入步骤S703-C3。
S703-C2:对
的U色度信息进行后还原处理或后增强处理;U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
S703-C3:判断当前解码帧V色度信息预压缩标志是否等于1,若是,则进入步骤S703-C4,若否,进入步骤S704。
S703-C4:对
的V色度信息进行后还原处理或后增强处理;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
方法4:
S703-D1:判断当前解码帧V色度信息预压缩标志是否等于1,若是,则进入步骤S703-D2,若否,进入步骤S703-D3。
S703-D2:对
的V色度信息进行后还原处理或后增强处理;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示当前解码帧V色度信息在第i行第j列的像素值;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
S703-D3:判断当前解码帧U色度信息预压缩标志是否等于1,若是,则进入步骤S703-D4,若否,进入步骤S704。
S703-D4:对
的U色度信息进行后还原处理或后增强处理;U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
实施例四
图4为本发明实施例一种亮度色度均衡解码系统结构图,所述系统包括:第二初始化模块、解码模块、后还原模块;
第二初始化模块:与解码模块相连,用于初始化当前解码帧的解码序号t=1;
解码模块,与第二初始化模和后还原模块相连,用于对当前解码帧的流数据进行解码,获取当前解码帧;
后还原模块,与解码模块相连,用于根据解码帧流数据中的U色度信息预压缩标志和V色度信息预压缩标志对当前解码帧的U色度信息和/或V色度信息进行后还原处理;
进一步地,所述后还原模块可以替换为后增强模块,
后增强模块:与解码模块相连,用于根据解码帧流数据中的U色度信息预压缩标志和V色度信息预压缩标志对当前解码帧的U色度信息和/或V色度信息进行后增强处理;
进一步地,所述系统还可包括下一解码帧判断模块、当前解码帧设置模块。
下一解码帧判断模块:与后还原模块和当前解码帧设置模块相连,用于判断下一个待解码帧的流数据是否存在,若是,则发送执行指令给当前解码帧设置模块,若否则结束。
当前解码帧设置模块,与下一解码帧判断模块、解码模块相连,用于将下一个待解码帧的流数据设为当前解码帧的流数据,发送执行指令给解码模块。
进一步地,所述后还原模块具体可选择以下4种结构中的任意一种;
结构1:(如图9所示是图8系统中后还原模块的第一种具体结构图)
所述后还原模块包括第二预压缩标志数量判断模块、第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块,
第二预压缩标志数量判断模块:与解码模块、第二U色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于断当前解码帧的U色度信息预压缩标志和V色度信息预压缩标志是否均为零,否则发送执行指令给第二U色度信息预压缩标志判断模块,是则发送执行指令给下一解码帧判断模块;
第二U色度信息预压缩标志判断模块:与第二预压缩标志数量判断模块、U色度信息后还原处理模块、第二V色度信息预压缩标志判断模块相连,用于判断当前解码帧U色度信息预压缩标志是否等于1,若是,则发送执行指令给U色度信息后还原处理模块;若否,发送执行指令给第二V色度信息预压缩标志判断模块;
U色度信息后还原处理模块:与第二U色度信息预压缩标志判断模块、第二V色度信息预压缩标志判断模块相连,用于对
的U色度信息进行后还原处理,然后发送执行指令给第二V色度信息预压缩标志判断模块;
U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
第二V色度信息预压缩标志判断模块:与第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、下一解码帧判断模块、V色度信息后还原处理模块相连,用于判断当前解码帧V色度信息预压缩标志是否等于1,若是,则发送执行指令给V色度信息后还原处理模块,若否,发送执行指令给下一解码帧判断模块;
V色度信息后还原处理模块:与第二V色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对的V色度信息进行后还原处理;然后发送执行指令给下一解码帧判断模块;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示当前解码帧V色度信息在第i行第j列的像素值;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
进一步地,所述U色度信息后还原处理模块可替换为U色度信息后增强处理模块;所述V色度信息后还原处理模块可替换为V色度信息后增强处理模块;
U色度信息后增强处理模块:与第二U色度信息预压缩标志判断模块、第二V色度信息预压缩标志判断模块相连,用于对
的U色度信息进行后增强处理,然后发送执行指令给第二V色度信息预压缩标志判断模块;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;
const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
V色度信息后增强处理模块:与第二V色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的V色度信息进行后增强处理;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
结构2:(如图9所示是图8系统中后还原模块的第二种具体结构图)
所述后还原模块包括第二预压缩标志数量判断模块、第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块,
第二预压缩标志数量判断模块:与解码模块、第二V色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于断当前解码帧的U色度信息预压缩标志和V色度信息预压缩标志是否均为零,否则发送执行指令给第二V色度信息预压缩标志判断模块,是则发送执行指令给下一解码帧判断模块;
第二V色度信息预压缩标志判断模块:与第二预压缩标志数量判断模块、V色度信息后还原处理模块、第二U色度信息预压缩标志判断模块相连,用于判断当前解码帧V色度信息预压缩标志是否等于1,若是,则发送执行指令给V色度信息后还原处理模块;若否,执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后还原处理模块:与第二V色度信息预压缩标志判断模块、第二U色度信息预压缩标志判断模块相连,用于对
的V色度信息进行后还原处理,然后发送执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
第二U色度信息预压缩标志判断模块:与第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块、下一解码帧判断模块、U色度信息后还原处理模块相连,用于判断当前解码帧U色度信息预压缩标志是否等于1,若是,则发送执行指令给U色度信息后还原处理模块,若否,发送执行指令给下一解码帧判断模块;
U色度信息后还原处理模块:与第二U色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的U色度信息进行后还原处理,然后发送执行指令给下一解码帧判断模块。
U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
进一步地,所述V色度信息后还原处理模块可替换为V色度信息后增强处理模块;所述U色度信息后还原处理模块可替换为U色度信息后增强处理模块;
V色度信息后增强处理模块:与第二V色度信息预压缩标志判断模块、第二U色度信息预压缩标志判断模块相连,用于对
的V色度信息进行后增强处理,然后发送执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
U色度信息后增强处理模块:与第二U色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的U色度信息进行后增强处理;
U色度信息后增强方法如下:
1≤i ≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;
const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
结构3:(如图9所示是图8系统中后还原模块的第三种具体结构图)
所述后还原模块包括第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块,
第二U色度信息预压缩标志判断模块:与解码模块、第二V色度信息预压缩标志判断模块、U色度信息后还原处理模块相连,用于判断当前解码帧U色度信息预压缩标志是否等于1,若是,则发送执行指令给U色度信息后还原处理模块;若否,执行指令给第二V色度信息预压缩标志判断模块、;
U色度信息后还原处理模块:与第二U色度信息预压缩标志判断模块、下第二V色度信息预压缩标志判断模块相连,用于对的U色度信息进行后还原处理,然后发送执行指令给第二V色度信息预压缩标志判断模块;
U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示当前解码帧U色度信息在第i行第j列的像素值;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
第二V色度信息预压缩标志判断模块:与第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、下一解码帧判断模块、V色度信息后还原处理模块相连,用于判断当前解码帧V色度信息预压缩标志是否等于1,若是,则发送执行指令给V色度信息后还原处理模块,若否,发送执行指令给下一解码帧判断模块;
V色度信息后还原处理模块:与第二V色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的V色度信息进行后还原处理;然后发送执行指令给下一解码帧判断模块。
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
进一步地,所述U色度信息后还原处理模块可替换为U色度信息后增强处理模块;所述V色度信息后还原处理模块可替换为V色度信息后增强处理模块;
U色度信息后增强处理模块:与第二U色度信息预压缩标志判断模块、第二V色度信息预压缩标志判断模块相连,用于对
的U色度信息进行后增强处理,然后发送执行指令给第二V色度信息预压缩标志判断模块;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;
const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
V色度信息后增强处理模块:与第二V色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对的V色度信息进行后增强处理;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;co1st
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
结构4:(如图9所示是图8系统中后还原模块的第四种具体结构图)
所述后还原模块包括第二U色度信息预压缩标志判断模块、U色度信息后还原处理模块、第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块,
第二V色度信息预压缩标志判断模块:与解码模块、第二预压缩标志数量判断模块、V色度信息后还原处理模块相连,用于判断当前解码帧V色度信息预压缩标志是否等于1,若是,则发送执行指令给V色度信息后还原处理模块;若否,执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后还原处理模块:与第二V色度信息预压缩标志判断模块、第二U色度信息预压缩标志判断模块相连,用于对
的V色度信息进行后还原处理,然后发送执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
kv表示编码端传递过来的与当前解码帧相对应的编码帧的V色度信息预压缩参数;
表示后还原后当前解码帧V色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
第二U色度信息预压缩标志判断模块:与第二V色度信息预压缩标志判断模块、V色度信息后还原处理模块、下一解码帧判断模块、U色度信息后还原处理模块相连,用于判断当前解码帧U色度信息预压缩标志是否等于1,若是,则发送执行指令给U色度信息后还原处理模块,若否,发送执行指令给下一解码帧判断模块;
U色度信息后还原处理模块:与第二U色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的U色度信息进行后还原处理,然后发送执行指令给下一解码帧判断模块。
U色度信息后还原方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
ku表示编码端传递过来的与当前解码帧相对应的编码帧的U色度信息预压缩参数;
表示后还原后当前解码帧U色度信息在第i行第j列的像素值;
heightuv表示当前解码帧的U色度及V色度信息的行数;
widthuv表示当前解码帧的U色度及V色度信息的列数;
进一步地,所述V色度信息后还原处理模块可替换为V色度信息后增强处理模块;所述U色度信息后还原处理模块可替换为U色度信息后增强处理模块;
V色度信息后增强处理模块:与第二V色度信息预压缩标志判断模块、第二U色度信息预压缩标志判断模块相连,用于对
的V色度信息进行后增强处理,然后发送执行指令给第二U色度信息预压缩标志判断模块;
V色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
表示后增强后当前解码帧V色度信息在第i行第j列的像素值;
表示当前解码帧V色度信息后增强参数;const
2为色度信息增强调节参数,其取值范围为0.1<const
2<1。
U色度信息后增强处理模块:与第二U色度信息预压缩标志判断模块、下一解码帧判断模块相连,用于对
的U色度信息进行后增强处理,然后发送执行指令给下一解码帧判断模块;
U色度信息后增强方法如下:
1≤i≤heightuv&&1≤j≤widthuv
其中,
表示后增强后当前解码帧U色度信息在第i行第j列的像素值;
const2为色度信息增强调节参数,其取值范围为0.1<const2<1。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。