CN103731673A - 一种视频编码的方法及装置 - Google Patents

一种视频编码的方法及装置 Download PDF

Info

Publication number
CN103731673A
CN103731673A CN201210383248.1A CN201210383248A CN103731673A CN 103731673 A CN103731673 A CN 103731673A CN 201210383248 A CN201210383248 A CN 201210383248A CN 103731673 A CN103731673 A CN 103731673A
Authority
CN
China
Prior art keywords
macro block
same position
sad
former frame
threshold value
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.)
Granted
Application number
CN201210383248.1A
Other languages
English (en)
Other versions
CN103731673B (zh
Inventor
尤冬
江澈
张兴明
傅利泉
朱江明
吴军
吴坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201210383248.1A priority Critical patent/CN103731673B/zh
Publication of CN103731673A publication Critical patent/CN103731673A/zh
Application granted granted Critical
Publication of CN103731673B publication Critical patent/CN103731673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例提供一种视频编码的方法及装置,涉及图像处理技术,在I帧进行编码时,对I帧图像的每一个宏块,根据前一帧相同位置宏块的QP确定出各宏块SAD的阈值,再根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP,各宏块的QP的确定综合考虑了当前帧的码率、码流变化以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,根据各宏块的QP进行编码,实现了在增加很少计算量的情况下,使得解码后的图像在保障清晰度的同时与前一帧解码后的图像误差值较小,从而简单有效的解决了I帧闪烁的问题。

Description

一种视频编码的方法及装置
技术领域
本发明涉及图像处理技术,尤其涉及一种视频编码的方法及装置。
背景技术
在对视频进行H.264编码过程中,对I帧编码时,由于I帧是节点编码图像,相当于一个固定图像,且独立于其他帧的图像,因此对I帧的宏块编码时不以其他帧的宏块作为参考,只进行Intra(内部)编码,与I帧之前帧的编码过程没有联系。对P帧编码时,由于P帧是预测编码图像,对P帧的宏块进行编码时,是以它前面的某些I帧或P帧的不同位置的宏块作为参考数据进行编码的,编码后的信息会有一个较小的连续性的失真。在H.264编码技术中,有这样几个数:
为了去掉一系列P帧编码累积下来的与源图像的误差,在编码过程中每隔若干帧设置一个I帧。因此,在连续若干个P帧图像之后的I帧图像,肉眼上看会和前面的P帧图像差别较大,在低码率的情况下,这种现象尤为明显,就会出现I帧闪烁。
针对I帧闪烁的问题,目前主要有以下几种解决方案:
1)在编码前进行相关滤波,来降低视频中的噪声,从而减小P帧累积误差,以避免I帧闪烁。
这种方法有一定的效果,但是在H.264低码率编码的情况下,改善的效果很有限。
2)在对I帧编码时,加入一次时域上的滤波进行编码,缩小I帧图像与I帧之前图像的差别,以避免I帧闪烁。
这种方法虽然收集了I帧之前时域上的信息,并改变了I帧编码前的图像,但是,对I帧编码过程中的编码策略,并没有进行相关调整,导致I帧解码后的图像与源图像的差别较大,也不能实现通过I帧编码去掉由前面一系列P帧编码累积下来的与源图像的误差的目的,与设置I帧的目的相悖。
3)解码端对I帧图像进行后处理,以避免I帧闪烁。
这种方案只能在特定解码端实现,灵活和通用性没有保证。
综上所述,对于I帧闪烁的问题,目前的解决方案在有效性和通用性等方面都存在一定的问题,并没有简单有效的解决I帧闪烁的技术方案。
发明内容
本发明实施例提供一种简单有效解决I帧闪烁问题的视频编码的方法及装置。
一种视频编码方法,包括:
当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD阈值;
根据码率控制算法计算出的QP,以及根据前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及各宏块的SAD阈值确定各宏块的QP;
根据各宏块的QP,对各宏块进行编码。
一种视频编码装置,包括:
第一确定单元,用于当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD阈值;
第二确定单元,用于根据码率控制算法计算出的QP,以及根据前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及各宏块的SAD阈值确定各宏块的QP;
编码单元,用于根据各宏块的QP,对各宏块进行编码。
本发明实施例提供一种视频编码的方法及装置,在对I帧进行编码时,对I帧图像的每一个宏块,根据前一帧相同位置宏块的QP确定出各宏块SAD的阈值,再根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP,各宏块的QP的确定综合考虑了当前帧的码率、码流变化以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,根据各宏块的QP进行编码,实现了在增加很少计算量的情况下,使得解码后的图像在保障清晰度的同时与前一帧解码后的图像误差值较小,从而简单有效的解决了I帧闪烁的问题。
附图说明
图1为本发明实施例提供的视频编码的方法流程图之一;
图2为本发明实施例提供的当前帧每个宏块的最大SAD与前一帧相同位置宏块的QP关系曲线图;
图3为本发明实施例提供的一种确定各宏块的QP的方法流程图;
图4为本发明实施例提供的一种各宏块的QP的取值范围的方法流程图;
图5为本发明实施例提供的一种当前帧每个宏块的QP增量与前一帧相同位置宏块的QP的关系曲线图;
图6为本发明实施例提供的一种确定第一QP的方法流程图;
图7为本发明实施例提供的视频编码的方法流程图之二;
图8为本发明实施例提供的视频编码的方法流程图之三;
图9为本发明实施例提供的一种视频编码的装置示意图。
具体实施方式
本发明实施例提供一种视频编码的方法及装置,在对I帧进行编码时,对I帧图像的每一个宏块,根据前一帧相同位置宏块的QP确定出各宏块SAD的阈值,再根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP,各宏块的QP的确定综合考虑了当前帧的码率、码流变化以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,根据各宏块的QP进行编码,实现了在增加很少计算量的情况下,使得解码后的图像在保障清晰度的同时与前一帧解码后的图像误差值较小,从而简单有效的解决了I帧闪烁的问题。
在此介绍本发明实施例涉及到的一些现有技术:
QP:QP为量化参数,在编码过程中,以QP为量化标准进行编码,QP越小,解码后的图像越清晰,然而编码的码流也会越大,在实际应用中,需要综合考虑图像的清晰度及码流来设定QP。
SAD:SAD为绝对差值和,可以反映当前帧解码后的图像与源图像的时域差异,SAD越大,表示当前帧解码后的图像与源图像差异越大,通常,在对同一帧图像进行编码时,选取的QP值越大,图像越模糊,导致与源图像的差异越大,SAD值越大。
最小SAD:实际应用中,可以通过QP推算出一个根据该QP进行编码,解码得到的图像的SAD的最小值,以判断通过该QP编码,解码后的图像与源图像的差异。
码率控制算法:码率控制算法是根据码率推算QP的算法的统称,码率控制算法的具体实施方式有很多。
如图1所示,本发明实施例提供一种视频编码方法,包括:
S101、当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的QP,确定各宏块的SAD阈值;
S102、根据码率控制算法计算出的QP,以及根据前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及各宏块的SAD阈值确定各宏块的QP;
S103、根据各宏块的QP,对各宏块进行编码。
各宏块的QP的确定综合考虑了当前帧的码率、码流以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,可以在保证有较佳的码率、码流及清晰度的情况下,使各宏块编码后的图像与前一帧相同位置宏块编码后的图像误差值较小,不会产生I帧闪烁。
下面对S101、S102及S103进行具体的说明:
S101中的阈值,可以为一个能够将各宏块的SAD限定在能保证不出现I帧闪烁范围内的阈值。
较佳的,由于SAD越大,解码后的图像与源图像差别越大,可以根据前一帧的QP,考虑前一帧图像的SAD值,将阈值设定为一个能保证不出现I帧闪烁的各宏块SAD的最大值,则确定一个QP值,保证通过这个QP值计算出的最小SAD小于设定的阈值,再通过这个QP值进行编码,可以保证不出现I帧闪烁。
具体的,S101中根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD的阈值,具体为:
确定各宏块的SAD的阈值为SADmax(n)=(QP(n-1)*(β1-α1)/X)+α1,QP(n-1)为前一帧相同位置宏块的QP,X为前一帧相同位置宏块的QP的理论最大值,α1为QP(n-1)为零时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值,β1为QP(n-1)为X时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值。
例如,当X为51时,各宏块的最大SAD与前一帧相同位置宏块的QP的关系曲线如图2所示,当前一帧相同位置宏块的QP为0时,各宏块的最大SAD为α1,当前一帧相同位置宏块的QP为51时,各宏块的最大SAD为β1,其中α1与β1的值可以在实际计算中自行设定,保证各宏块解码后的图像与前一帧相同位置宏块的误差较小,在肉眼可接受的范围内,不会出现I帧闪烁即可。实际应用中,可以先为α1与β1设定一系列参量值,根据每一个参量值对个宏块进行编码解码,将计算后结果最佳的参量值确定为α1与β1的值。较佳的,可以将α1的误差范围设定为1024,将β1的误差范围设定为2048
当然,本领域的技术人员也可以采用其他可行方式根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值,在此不再一一叙述。
当将S101中的阈值设定为能保证不出现I帧闪烁的各宏块SAD的最大值时,如图3所示,S102具体包括:
S1021、根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,所述第一QP位于所述取值范围内,并根据所述第一QP确定各宏块的最小SAD;
S1022、当所述各宏块的最小SAD大于所述阈值时,根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,直至根据调小后第一QP确定出的各宏块的最小SAD不大于所述阈值为止,并将最后一次调小后的第一QP的值确定为各宏块的QP,否则,直接确定第一QP的值为各宏块的QP。
其中,各宏块QP的取值范围的确定可以有很多种方法,较佳的,可以综合考虑各宏块的清晰度及码流,设定各宏块的QP增量,再根据这个增量设定各宏块QP的取值范围。
具体的,如图4所示,确定各宏块QP的取值范围具体包括:
S401、根据前一帧相同位置宏块的QP确定各宏块的QP增量;
S402、确定各宏块的QP的取值范围为QP(n-1)-ΔQP≤QP(n)≤QP(n-1)+ΔQP,QP(n-1)为前一帧相同位置宏块的QP,ΔQP为各宏块的QP增量。
较佳的,S401具体包括:
将各宏块的QP增量确定为:
&Delta;QP = QP ( n - 1 ) * &gamma; / &alpha; , QP ( n - 1 ) < &alpha; &Delta;QP = &gamma; , &alpha; &le; QP ( n - 1 ) < &beta; &Delta;QP = ( X - QP ( n - 1 ) ) * &gamma; / ( X - &beta; ) , &beta; &le; QP ( n - 1 ) &le; X
QP(n-1)为前一帧相同位置宏块的QP,γ为各宏块的QP相对于前一帧相同位置宏块的QP最大增量,X为前一帧相同位置宏块的QP的理论最大值,α为大于0小于X的整数,β为大于α小于X的整数。
当X为51时,各宏块的QP增量与前一帧相同位置宏块的QP的关系曲线如图5所示,其中α、β及γ的值在实际计算中可以自行设定,能够保证各宏块的解码后图像的清晰度即可。
当然,本领域的技术人员可以采用其他可行方式根据前一帧相同位置宏块的QP确定各宏块的QP增量;当然,本领域的技术人员也可以采用其他可行方式确定各宏块的QP的取值范围,在此不再一一叙述。
S1021中,根据各宏块的QP的取值范围及码率控制算法确定各宏块的QP值,即综合考虑码率、码流及清晰度的情况下,选择一个最佳的QP值,其实现方式可以有很多种。
较佳的,如图6所示,S1021中,根据各宏块的QP的取值范围及码率控制算法确定各宏块的QP值,作为第一QP,具体包括:
S601、根据码率控制算法确定各宏块的QP值,作为第二QP;
S602、当第二QP在各宏块的QP的取值范围内时,将第二QP的值确定为第一QP,当第二QP大于各宏块的QP的取值范围的最大值时,将该最大值确定为第一QP,当第二QP小于各宏块的QP的取值范围的最小值时,将该最小值确定为第一QP。
其中,S601中,码率控制算法是常用的计算QP值的算法,其计算方式十分灵活,也比较复杂,实际应用中可以自行选择要使用的码率控制算法,例如,可以选择JVT-G012中记载的码率控制算法,此处不做赘述。
当然,本领域的技术人员可以采用其他可行方式根据各宏块的QP的取值范围及码率控制算法确定第一QP的值。
S1022中,根据第一QP确定各宏块的最小SAD,可以通过冒泡排序等方法进行确定,由于本领域的技术人员对根据QP推算出各宏块的最小SAD的计算方法都熟悉,在此不作赘述。
具体的,S1022中,根据阈值及各宏块的最小SAD调小第一QP。
较佳的,当阈值设定为能保证不出现I帧闪烁的各宏块SAD的最大值时,S1022中,根据阈值及各宏块的最小SAD调小第一QP,具体为:
当各宏块的最小SAD大于阈值时,将第一QP减去设定步长的差作为新的第一QP,并根据新的第一QP确定各宏块的最小SAD,直至各宏块的最小SAD小于或等于阈值。
通过阈值调整第一QP,可以保证最终确定的第一QP的值在能够满足不产生I帧闪烁的要求。
当然,本领域的技术人员可以采用其他可行方式根据各宏块的各宏块的最小SAD的取值范围调整各宏块的第一QP。
当然,本领域的技术人员可以采用其他可行方式来通过阈值及各宏块的最小SAD调整第一QP,在此不再一一叙述。
较佳的,如图7所示,本发明实施例提供一种具体的视频编码的方法,包括:
S701、获取当前帧的原始图像;
S702、确定当前帧是否为I帧,若是,进行S703,若不是,执行S705;
S703、对当前帧的每个宏块,根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值;
S704、对当前帧的每个宏块,根据阈值以及前一帧相同位置宏块的QP,确定各宏块的QP,并根据各宏块的QP对各宏块进行编码,并执行S706;
S705、对当前帧进行编码;
S706、保存编码后的重建图像及编码过程中产生的参数,并执行S701
如图8所示,S704具体包括:
S7041、对当前帧的每个宏块,通过码率控制算法确定第二QP,并根据前一帧相同位置宏块的QP确定各宏块的QP的取值范围;
S7042、判断第二QP与各宏块的QP的取值范围的关系,若第二QP在各宏块的QP的取值范围内时,执行S7043,当第二QP大于各宏块的QP的取值范围的最大值时,执行S7044,当第二QP小于各宏块的QP的取值范围的最小值时,执行S7045;
S7043、将第二QP的值确定为第一QP并执行S7046;
S7044、将各宏块的QP的取值范围的最大值确定为第一QP并执行S7046;
S7045、将各宏块的QP的取值范围的最小值确定为第一QP并执行S7046;
S7046、确定第一QP对应的各宏块的最小SAD;
S7047、确定各宏块的最小SAD是否大于阈值,若是,执行S7048,若否,执行S7049;
S7048、将减去设定值的第一QP设为新的第一QP,并执行S7046;
S7049、对各宏块进行编码。
以上的实施例都是针对I帧进行编码,如果确定当前帧为P帧,则只需要按照原来的编码方式进行编码即可,例如,使用H.264进行编码时,对于I帧,按照上述方法确定QP后,进行H.264编码,对于P帧,进行普通的H.264的P帧编码操作即可。
进行编码后,保存对该帧编码产生的重建图像,以及编码过程中产生的参数,以便进行后面的编码。
如图9所示,本发明实施例提供一种视频编码装置,包括:
第一确定单元901,用于当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值;
第二确定单元902,用于根据码率控制算法计算出的QP,以及根据前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及各宏块的SAD阈值确定各宏块的QP;
编码单元903,用于根据各宏块的QP,对各宏块进行编码。
各宏块的QP的确定综合考虑了当前帧的码率、码流以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,可以在保证有较佳的码率、码流及清晰度的情况下,使各宏块编码后的图像与前一帧相同位置宏块编码后的图像误差值较小,不会产生I帧闪烁。
下面对第一确定单元901、第二确定单元902及编码单元903进行具体的说明:
第一确定单元901中的阈值,可以为一个能够将各宏块的SAD限定在能保证不出现I帧闪烁范围内的阈值。
较佳的,由于SAD越大,解码后的图像与源图像差别越大,可以根据前一帧的QP,考虑前一帧图像的SAD值,将阈值设定为一个能保证不出现I帧闪烁的各宏块SAD的最大值,则确定一个QP值,保证通过这个QP值计算出的最小SAD小于设定的阈值,再通过这个QP值进行编码,可以保证不出现I帧闪烁。
具体的,第一确定单元901中根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD的阈值,具体为:
确定各宏块的SAD的阈值为SADmax(n)=(QP(n-1)*(β1-α1)/X)+α1,QP(n-1)为前一帧相同位置宏块的QP,X为前一帧相同位置宏块的QP的理论最大值,α1为QP(n-1)为零时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值,β1为QP(n-1)为X时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值。
例如,当X为51时,各宏块的最大SAD与前一帧相同位置宏块的QP的关系曲线如图2所示,当前一帧相同位置宏块的QP为0时,各宏块的最大SAD为α1,当前一帧相同位置宏块的QP为51时,各宏块的最大SAD为β1,其中α1与β1的值可以在实际计算中自行设定,保证各宏块解码后的图像与前一帧相同位置宏块的误差较小,在肉眼可接受的范围内,不会出现I帧闪烁即可。实际应用中,可以先为α1与β1设定一系列参量值,根据每一个参量值对个宏块进行编码解码,将计算后结果最佳的参量值确定为α1与β1的值。较佳的,可以将α1的误差范围设定为1024,将β1的误差范围设定为2048。
当然,本领域的技术人员也可以采用其他可行方式根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值,在此不再一一叙述。
当将第一确定单元901中的阈值设定为能保证不出现I帧闪烁的各宏块SAD的最大值时,第二确定单元902具体用于:
根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,所述第一QP位于所述取值范围内,并根据所述第一QP确定各宏块的最小SAD;
当所述各宏块的最小SAD大于所述阈值时,根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,直至根据调小后第一QP确定出的各宏块的最小SAD不大于所述阈值为止,并将最后一次调小后的第一QP的值确定为各宏块的QP,否则,直接确定第一QP的值为各宏块的QP。
其中,第二确定单元902确定各宏块QP的取值范围可以有很多种方式,较佳的,可以综合考虑各宏块的清晰度及码流,设定各宏块的QP增量,再根据这个增量设定各宏块QP的取值范围。
具体的,第二确定单元902根据前一帧相同位置宏块的QP,确定各宏块的QP的取值范围,具体包括:
根据前一帧相同位置宏块的QP确定各宏块的QP增量;
确定各宏块的QP的取值范围为QP(n-1)-ΔQP≤QP(n)≤QP(n-1)+ΔQP,QP(n-1)为前一帧相同位置宏块的QP,ΔQP为各宏块的QP增量。
较佳的,第二确定单元902根据前一帧相同位置宏块的QP确定各宏块的QP增量,具体包括:
将各宏块的QP增量确定为:
&Delta;QP = QP ( n - 1 ) * &gamma; / &alpha; , QP ( n - 1 ) < &alpha; &Delta;QP = &gamma; , &alpha; &le; QP ( n - 1 ) < &beta; &Delta;QP = ( X - QP ( n - 1 ) ) * &gamma; / ( X - &beta; ) , &beta; &le; QP ( n - 1 ) &le; X
QP(n-1)为前一帧相同位置宏块的QP,γ为各宏块的QP相对于前一帧相同位置宏块的QP最大增量,X为前一帧相同位置宏块的QP的理论最大值,α为大于0小于X的整数,β为大于α小于X的整数。
当X为51时,各宏块的QP增量与前一帧相同位置宏块的QP的关系曲线如图5所示,其中α、β及γ的值在实际计算中可以自行设定,能够保证各宏块的解码后图像的清晰度即可。
当然,本领域的技术人员可以采用其他可行方式根据前一帧相同位置宏块的QP确定各宏块的QP增量;当然,本领域的技术人员也可以采用其他可行方式确定各宏块的QP的取值范围,在此不再一一叙述。
第二确定单元902根据各宏块的QP的取值范围及码率控制算法确定各宏块的QP值,即综合考虑码率、码流及清晰度的情况下,选择一个最佳的QP值,其实现方式可以有很多种。
较佳的,第二确定单元902根据各宏块的QP的取值范围及码率控制算法确定各宏块的QP值,作为第一QP,具体包括:
根据码率控制算法确定一个当前帧的QP值,作为第二QP;
当第二QP在各宏块的QP的取值范围内时,将第二QP的值确定为第一QP,当第二QP大于各宏块的QP的取值范围的最大值时,将该最大值确定为第一QP,当第二QP小于各宏块的QP的取值范围的最小值时,将该最小值确定为第一QP。
其中,码率控制算法是常用的计算QP值的算法,其计算方式也有很多,实际应用中可以自行选择要使用的码率控制算法。
当然,本领域的技术人员可以采用其他可行方式根据各宏块的QP的取值范围及码率控制算法确定第一QP的值。
第二确定单元902根据第一QP确定各宏块的最小SAD,由于根据QP推算各宏块的最小SAD的算法有很多种,实际应用中自行选择合适的算法进行计算,在此不再一一叙述。
具体的,第二确定单元902根据阈值及各宏块的最小SAD调整第一QP,根据阈值确定的不产生I帧闪烁的第一QP值的调整方式有很多,另外,阈值的设定方式不同必定会对应不同的调整方式。
较佳的,当阈值设定为能保证不出现I帧闪烁的各宏块SAD的最大值时,第二确定单元902根据阈值及各宏块的最小SAD调整第一QP,具体为:
当各宏块的最小SAD大于阈值时,将第一QP减去设定步长的差作为新的第一QP,并根据新的第一QP确定各宏块的最小SAD,直至各宏块的最小SAD小于或等于阈值。
通过阈值调整第一QP,可以保证最终确定的第一QP的值在能够满足不产生I帧闪烁的要求。
当然,本领域的技术人员可以采用其他可行方式根据各宏块的最大SAD及各宏块的最小SAD调整各宏块的第一QP。
当然,本领域的技术人员可以采用其他可行方式来阈值及各宏块的最小SAD调整第一QP,在此不再一一叙述。
本发明实施例提供一种视频编码的方法及装置,在对I帧进行编码时,对I帧图像的每一个宏块,根据前一帧相同位置宏块的QP确定出各宏块SAD的阈值,再根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP,各宏块的QP的确定综合考虑了当前帧的码率、码流以及解码后图像的清晰度及与前一帧图像的误差值这些因素对各宏块的QP的影响,根据各宏块的QP进行编码,解码后的图像在保障清晰度的情况下与前一帧解码后的图像误差值较小,从而简单有效的解决了I帧闪烁的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种视频编码方法,其特征在于,包括:
当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD阈值;
根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP;
根据各宏块的QP,对各宏块进行编码。
2.如权利要求1所述的方法,其特征在于,所述根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值,具体包括:
确定各宏块的SAD的阈值为SADmax(n)=(QP(n-1)*(β1-α1)/X)+α1,所述QP(n-1)为所述前一帧相同位置宏块的QP,所述X为所述前一帧相同位置宏块的QP的理论最大值,所述α1为所述QP(n-1)为零时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值,所述β1为所述QP(n-1)为X时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值。
3.如权利要求1所述的方法,其特征在于,所述根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的每个宏块的QP的取值范围,以及所述每个宏块的SAD阈值确定各宏块的QP,具体包括:
根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,所述第一QP位于所述取值范围内,并根据所述第一QP确定各宏块的最小SAD;
当所述各宏块的最小SAD大于所述阈值时,根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,直至根据调小后第一QP确定出的各宏块的最小SAD不大于所述阈值为止,并将最后一次调小后的第一QP的值确定为各宏块的QP,否则,直接确定第一QP的值为各宏块的QP。
4.如权利要求3所述的方法,其特征在于,所述根据所述前一帧相同位置宏块的QP确定出的每个宏块的QP的取值范围,具体为:
根据所述前一帧相同位置宏块的QP确定各宏块的QP增量;
各宏块的QP的取值范围为QP(n-1)-ΔQP≤QP(n)≤QP(n-1)+ΔQP,所述QP(n-1)为所述前一帧相同位置宏块的QP,所述ΔQP为所述各宏块的QP增量。
5.如权利要求4所述的方法,其特征在于,所述根据所述前一帧相同位置宏块的QP确定各宏块的QP增量,具体包括:
将各宏块的QP增量确定为:
&Delta;QP = QP ( n - 1 ) * &gamma; / &alpha; , QP ( n - 1 ) < &alpha; &Delta;QP = &gamma; , &alpha; &le; QP ( n - 1 ) < &beta; &Delta;QP = ( X - QP ( n - 1 ) ) * &gamma; / ( X - &beta; ) , &beta; &le; QP ( n - 1 ) &le; X , 所述QP(n-1)为所述前一帧相同位置宏块的QP,所述γ为各宏块的QP相对于前一帧相同位置宏块的QP最大增量,所述X为所述前一帧相同位置宏块的QP的理论最大值,所述α为大于0小于X的整数,所述β为大于α小于X的整数。
6.如权利要求3所述的方法,其特征在于,所述根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,具体包括:
根据码率控制算法确定各宏块的QP值,作为第二QP;
当所述第二QP在所述取值范围内时,将所述第二QP的值确定为第一QP,当第二QP大于所述取值范围的最大值时,将该最大值确定为第一QP,当所述第二QP小于所述取值范围的最小值时,将该最小值确定为第一QP。
7.如权利要求3所述的方法,其特征在于,所述根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,具体为:
当各宏块的最小SAD大于所述阈值时,将所述第一QP减去设定步长的差作为新的第一QP,并根据新的第一QP确定各宏块的最小SAD,直至各宏块的最小SAD小于或等于阈值。
8.一种视频编码装置,其特征在于,包括:
第一确定单元,用于当对当前I帧进行编码时,对I帧的每个宏块,根据前一帧相同位置宏块的量化参数QP,确定各宏块的绝对差值和SAD阈值;
第二确定单元,用于根据码率控制算法计算出的QP,以及根据所述前一帧相同位置宏块的QP确定出的各宏块的QP的取值范围,以及所述各宏块的SAD阈值确定各宏块的QP;
编码单元,用于根据各宏块的QP,对各宏块进行编码。
9.如权利要求8所述的装置,其特征在于,所述第一确定单元根据前一帧相同位置宏块的QP,确定各宏块的SAD的阈值,具体包括:
确定各宏块的SAD的阈值为SADmax(n)=(QP(n-1)*(β1-α1)/X)+α1,所述QP(n-1)为所述前一帧相同位置宏块的QP,所述X为所述前一帧相同位置宏块的QP的理论最大值,所述α1为所述QP(n-1)为零时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值,所述β1为所述QP(n-1)为X时,保障各宏块解码后的图像与前一帧相同位置宏块解码后的图像在肉眼观察下误差值在设定范围内的各宏块的SAD的最大值。
10.如权利要求8所述的装置,其特征在于,所述第二确定单元,具体用于:
根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,所述第一QP位于所述取值范围内,并根据所述第一QP确定各宏块的最小SAD;
当所述各宏块的最小SAD大于所述阈值时,根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,直至根据调小后第一QP确定出的各宏块的最小SAD不大于所述阈值为止,并将最后一次调小后的第一QP的值确定为各宏块的QP,否则,直接确定第一QP的值为各宏块的QP。
11.如权利要求10所述的装置,其特征在于,所述根据所述前一帧相同位置宏块的QP确定出的每个宏块的QP的取值范围,具体为:
根据所述前一帧相同位置宏块的QP确定各宏块的QP增量;
各宏块的QP的取值范围为QP(n-1)-ΔQP≤QP(n)≤QP(n-1)+ΔQP,所述QP(n-1)为所述前一帧相同位置宏块的QP,所述ΔQP为所述各宏块的QP增量。
12.如权利要求11所述的装置,其特征在于,所述第二确定单元根据所述前一帧相同位置宏块的QP确定各宏块的QP增量,具体包括:
将各宏块的QP增量确定为:
&Delta;QP = QP ( n - 1 ) * &gamma; / &alpha; , QP ( n - 1 ) < &alpha; &Delta;QP = &gamma; , &alpha; &le; QP ( n - 1 ) < &beta; &Delta;QP = ( X - QP ( n - 1 ) ) * &gamma; / ( X - &beta; ) , &beta; &le; QP ( n - 1 ) &le; X , 所述QP(n-1)为所述前一帧相同位置宏块的QP,所述γ为各宏块的QP相对于前一帧相同位置宏块的QP最大增量,所述X为所述前一帧相同位置宏块的QP的理论最大值,所述α为大于0小于X的整数,所述β为大于α小于X的整数。
13.如权利要求10所述的装置,其特征在于,所述第二确定单元根据所述取值范围,以及根据码率控制算法计算出的QP确定各宏块的QP值,作为第一QP,具体包括:
根据码率控制算法确定各宏块的QP值,作为第二QP;
当所述第二QP在所述取值范围内时,将所述第二QP的值确定为第一QP,当第二QP大于所述取值范围的最大值时,将该最大值确定为第一QP,当所述第二QP小于所述取值范围的最小值时,将该最小值确定为第一QP。
14.如权利要求10所述的装置,其特征在于,所述第二确定单元根据所述阈值及各宏块的最小SAD按设定步长调小所述第一QP,具体为:
当各宏块的最小SAD大于所述阈值时,将所述第一QP减去设定步长的差作为新的第一QP,并根据新的第一QP确定各宏块的最小SAD,直至各宏块的最小SAD小于或等于阈值。
CN201210383248.1A 2012-10-10 2012-10-10 一种视频编码的方法及装置 Active CN103731673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210383248.1A CN103731673B (zh) 2012-10-10 2012-10-10 一种视频编码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210383248.1A CN103731673B (zh) 2012-10-10 2012-10-10 一种视频编码的方法及装置

Publications (2)

Publication Number Publication Date
CN103731673A true CN103731673A (zh) 2014-04-16
CN103731673B CN103731673B (zh) 2017-02-22

Family

ID=50455575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210383248.1A Active CN103731673B (zh) 2012-10-10 2012-10-10 一种视频编码的方法及装置

Country Status (1)

Country Link
CN (1) CN103731673B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111654699A (zh) * 2020-05-29 2020-09-11 西安万像电子科技有限公司 图像传输方法及装置
CN114584834A (zh) * 2022-01-27 2022-06-03 百果园技术(新加坡)有限公司 视频质量优化方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101091393A (zh) * 2004-12-28 2007-12-19 日本电气株式会社 运动图像编码方法以及利用其的装置、计算机程序
US20100315557A1 (en) * 2009-06-11 2010-12-16 Texas Instruments Incorporated Reducing flicker in the display of video streams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101091393A (zh) * 2004-12-28 2007-12-19 日本电气株式会社 运动图像编码方法以及利用其的装置、计算机程序
US20100315557A1 (en) * 2009-06-11 2010-12-16 Texas Instruments Incorporated Reducing flicker in the display of video streams

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HUA YANG,JILL M.BOYCE,ET AL.: "Effective flicker removal periodic intra frames and accurate flicker measurement", 《15TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *
XIAOPENG FAN,WEN GAO,ET AL.: "Flicking reduction in all intra frame coding", 《JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q.6)5TH MEETING:GENEVA,SWITZERLAND,9-17 OCTOBER,2002》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111654699A (zh) * 2020-05-29 2020-09-11 西安万像电子科技有限公司 图像传输方法及装置
CN111654699B (zh) * 2020-05-29 2024-05-17 西安万像电子科技有限公司 图像传输方法及装置
CN114584834A (zh) * 2022-01-27 2022-06-03 百果园技术(新加坡)有限公司 视频质量优化方法、装置、设备和存储介质
CN114584834B (zh) * 2022-01-27 2024-02-13 百果园技术(新加坡)有限公司 视频质量优化方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN103731673B (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
US20160044329A1 (en) Image Predictive Coding Method and Image Encoder
CN111066327A (zh) 用于优化失真和比特率的编码技术
CN103339959B (zh) 动态编解码器分配方法和设备
CN104539949B (zh) Hevc屏幕编码中基于边缘方向的快速分块的方法及装置
EP3297286A1 (en) Video encoding and decoding method and device
JP2012170042A5 (zh)
JP2011109618A5 (zh)
RU2013108103A (ru) Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений
CN104902275B (zh) 一种控制视频通信质量甜点的方法
CN103686165A (zh) 深度图像帧内编解码方法及视频编解码器
CN109788285A (zh) 一种量化系数结束标志位的上下文模型选取方法及装置
CN106572352B (zh) 一种关键帧大小控制方法及装置
ES2703005T3 (es) Método de control de codificación de imágenes animadas, aparato de codificación de imágenes animadas y programa de codificación de imágenes animadas
CN105812797B (zh) 一种编码单元选择方法及装置
CN105898296A (zh) 视频编码帧选择方法及装置
CN109889853A (zh) 一种去块效应滤波方法、系统、设备及计算机可读介质
CN108353175A (zh) 使用系数引起的预测处理视频信号的方法和装置
CN103763559A (zh) 一种视频文件转码方法
CN103458239A (zh) 图像处理装置、图像处理方法和程序
CN104469488A (zh) 视频解码方法及系统
CN106303544A (zh) 一种视频编解码方法、编码器和解码器
CN103731673A (zh) 一种视频编码的方法及装置
CN104052992B (zh) 一种图像处理方法及电子设备
CN103609114B (zh) 编码装置、解码装置、编解码系统、编码方法以及解码方法
CN104113761A (zh) 一种视频编码中的码率控制方法及编码器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant