CN103491369A - 一种帧间预测编码方法和编码器 - Google Patents

一种帧间预测编码方法和编码器 Download PDF

Info

Publication number
CN103491369A
CN103491369A CN201310430799.3A CN201310430799A CN103491369A CN 103491369 A CN103491369 A CN 103491369A CN 201310430799 A CN201310430799 A CN 201310430799A CN 103491369 A CN103491369 A CN 103491369A
Authority
CN
China
Prior art keywords
ctu
frame
prediction encoding
inter prediction
encoded
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
CN201310430799.3A
Other languages
English (en)
Other versions
CN103491369B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310430799.3A priority Critical patent/CN103491369B/zh
Publication of CN103491369A publication Critical patent/CN103491369A/zh
Priority to EP14846100.7A priority patent/EP2953352B1/en
Priority to PCT/CN2014/076378 priority patent/WO2015039440A1/zh
Priority to US14/861,267 priority patent/US9894388B2/en
Application granted granted Critical
Publication of CN103491369B publication Critical patent/CN103491369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种帧间预测编码方法和编码器,以图像组为单位,依次对多个图像组中的帧进行帧间预测编码,在针对任一图像组中的参考B帧进行帧间预测编码时,利用参考B帧与同一图像组中的GPB帧之间的相关性,对参考B帧中CTU的划分深度不超过GPB帧中同一位置的CTU的最大深度,在所述GPB帧中同一位置的CTU的最大深度较小时,参考B帧中的CTU的模式判决次数可较少,以此达到降低参考B帧的帧间预测编码过程复杂度的目的。

Description

一种帧间预测编码方法和编码器
技术领域
本发明涉及图像处理技术领域,尤其涉及一种帧间预测编码方法和编码器。
背景技术
高效视频编码(High Efficiency Video Coding,HEVC)是继H.264之后的新一代视频编码标准,HEVC依然沿用了H.264的混合编码框架,如帧内预测和帧间预测、残差的二维变换、环路滤波、熵编码等,但在此混合编码框架下,HEVC又进行了大量的技术创新,其中具有代表性的创新技术有:
1)、基于四叉树块的分割结构,使用编码树单元(Coding Tree Unit,CTU)、编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)来描述整个编码过程。其中,CTU是HEVC中的最大编码单元;CTU向下可划分出CU,所述CU类似于H.264中的宏块或子宏块,每个CU为2N×2N的像素块(N为2的幂次方);所述PU和TU的像素块大小为4×4。
2)、HEVC的官方标准测试模型(HM)中包含有高达35种帧内预测模式。
3)、先进的运动估计技术,如先进运动矢量预测(AMVP)技术和运动融合(merge)技术。
4)、自适应环路滤波技术,如采用样本自适应偏移滤波器(SAO)。
5)、基于语义的熵编码技术,如采用自适应二进制算术编码(CABAC)的熵编码技术。
由于HEVC相较于H.264有上述创新技术,因此,采用HEVC编码相较于采用H.264编码,压缩效率可提高1倍,即在保证相同视频图像质量的情况下,视频流的码率减少50%。
HEVC在提高编码效率的同时也不可避免地增加了编码的复杂度,为了降低HEVC编码的复杂度,一种可行的方式是对HEVC中帧间预测编码过程进行优化,但是目前的帧间预测编码的优化方式比较单一,还需要找到更多类型的优化方式。
发明内容
本发明提供了一种帧间预测编码方法和编码器,用以解决现有技术中存在的帧间预测编码的优化方式单一的问题。
第一方面,提供一种帧间预测编码方法,所述方法包括:
依次对每个图像组中的帧进行帧间预测编码,针对任一图像组中的帧进行帧间预测编码的过程如下:
针对当前图像组中待编码参考B帧中任一编码树单元CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度。
结合第一方面,在第一种可能的实现方式中,所述方法还包括:
若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算。
结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述方法还包括:
若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第一方面的第六种可能的实现方式或第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述方法还包括:
在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式,在第九种可能的实现方式中,所述方法还包括:
若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述方法还包括:
若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第一方面的第九种可能的实现方式或第一方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述方法还包括:
在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
第二方面,提供了一种编码器,所述编码器包括:
图像组读取模块,用于依次读取图像组;
编码模块,用于针对任一图像组中的帧进行如下帧间预测编码:
针对当前图像组中待编码参考B帧中任一CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度。
结合第二方面,在第一种可能的实现方式中,
所述编码模块,还用于若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述编码模块,还用于在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算。
结合第二方面、第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述编码模块,还用于针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述编码模块,还用于若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述编码模块,用于在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第六种可能的实现方式中,
所述编码模块,还用于若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,
所述编码模块,还用于若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第二方面的第六种可能的实现方式或第二方面的第七种可能的实现方式,在第八种可能的实现方式中,
所述编码模块,还用于在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第九种可能的实现方式中,
所述编码模块,还用于若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,
所述编码模块,还用于若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
结合第二方面的第九种可能的实现方式或第二方面的第十种可能的实现方式,在第十一种可能的实现方式中,
所述编码模块,还用于在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
第三方面,提供一种编码器,所述编码器包括:
接口,用于依次读取图像组;
处理器,用于针对任一图像组中的帧进行如下帧间预测编码:
针对当前图像组中待编码参考B帧中任一CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度;
存储器,用于存储图像组中已完成帧间预测编码的GPB帧或P帧中各CTU的最大深度。
结合第三方面,在第一种可能的实现方式中,
所述处理器,还用于若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程;
所述存储器,还用于存储所述预设的最大深度。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,
所述处理器,还用于在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算;
所述存储器,还用于存储多种模式运算信息。
结合第三方面、第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述处理器,还用于针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
所述存储器,还用于存储图像组中已完成帧间预测编码的参考B帧中各CTU的最大深度。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述处理器,还用于若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了非参考B帧的判决次数,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
结合第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述处理器,用于在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算,由于减少了非参考B帧的模式运算,因此,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式、第三方面的第三种可能的实现方式、第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式,在第六种可能的实现方式中,
所述处理器,还用于若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
结合第三方面的第六种可能的实现方式,在第七种可能的实现方式中,
所述处理器,还用于若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了GPB帧的判决次数,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
结合第三方面的第六种可能的实现方式或第三方面的第七种可能的实现方式,在第八种可能的实现方式中,
所述处理器,还用于在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了GPB帧的模式运算,因此,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实现方式、第三方面的第三种可能的实现方式、第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式,在第九种可能的实现方式中,
所述处理器,还用于若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
结合第三方面的第九种可能的实现方式,在第十种可能的实现方式中,
所述处理器,还用于若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。由于减少了P帧的判决次数,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
结合第三方面的第九种可能的实现方式或第三方面的第十种可能的实现方式,在第十一种可能的实现方式中,
所述处理器,还用于在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了P帧的模式运算,因此,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
通过本发明方案,以图像组为单位,依次对多个图像组中的帧进行帧间预测编码,在针对任一图像组中的参考B帧进行帧间预测编码时,利用参考B帧与同一图像组中的GPB帧之间的相关性,对参考B帧中CTU的划分深度不超过GPB帧中同一位置的CTU的最大深度,在所述GPB帧中同一位置的CTU的最大深度较小时,参考B帧中的CTU的模式判决次数可较少,以此达到降低参考B帧的帧间预测编码过程复杂度的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为像素块为64×64的CTU划分示意图;
图2为像素块为128×128的CTU划分示意图;
图3(a)、图3(b)和图3(c)为本发明实施例一中帧间预测编码方法的步骤示意图;
图4为本发明实施例三中编码器的结构示意图;
图5为本发明实施例四中编码器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在HM方式对帧进行的常规帧间预测编码过程中,可以以CTU为单位,对CTU进行划分,针对划分出的每一深度的CU进行模式判决。
例如,参见图1,以像素块为64×64的CTU为例,由于CTU也可视为一个特殊的CU,此时CTU没有划分,像素块为64×64的CTU(即CTU)对应的深度为0。对深度为0的CTU进行模式判决的过程如下:
首先,针对像素块为64×64的CTU进行8种模式的模式运算。
所述8种模式分别为:跳过预测模式(SKIP mode)、帧间2N×2N模式(此时为帧间64×64模式)、帧间N×N模式(此时为帧间32×32模式)、帧间N×2N模式(此时为帧间32×64模式)、帧间2N×N模式(此时为帧间64×32模式)、帧内2N×2N模式(此时为帧内64×64模式)、帧内N×N模式(此时为帧内32×32模式)以及帧内脉冲编码(Pulse Code Modulation,PCM)模式。
然后,对上述8种模式运算后得到的代价值进行比对,确定代价值最小的模式,完成模式判决。以上是以8种模式进行模式判决的方式,当然,也可以不完成使用上述8种模式,而是选择其他模式进行模式判决。
在模式判决结束后,可利用判决结果确定代价值最小的模式对64×64的CU进行帧间预测编码。
之后,将64×64的CTU划分为4个32×32的CU(32×32的CU对应的的深度为1),针对每个32×32的CU再次按照上述8种模式的模式运算结果,进行深度为1的模式判决过程和帧间预测编码过程,以此类推,直至划分至8×8的CU(8×8的CU对应的的深度为3),针对每个8×8的CU再次按照上述8种模式的模式运算结果,进行深度为3的模式判决过程和帧间预测编码过程,此时,完成对该CTU的帧间预测编码。
从图1中可以看出,CTU的最大深度为3,所述CTU的最大深度是指该CTU完成帧间预测编码后,最终所包含的最小CU对应的深度,图1中CTU是从64×64开始划分,划分到8×8的CU时,该CU对应的深度为3,因此,包含所述8×8的CU的CTU最大深度为3。
除了图1所示的CTU划分过程外,如果CTU不是64×64的像素块,而是其他大小的像素块,如128×128的像素块,若CTU完成帧间预测编码后,最终所包含的最小CU仍是8×8的CU,则该8×8的CU对应的深度为4,即该CTU的最大深度为4。
不论CTU的具体划分过程如何,该CTU的最大深度为该CTU完成帧间预测编码后,最终所包含的最小CU对应的深度。以图2所示的情况为例,首先,对128×128的CTU进行深度为0的模式判决过程和帧间预测编码过程;然后,将128×128的CTU划分为4个64×64的CU,假设对这4个64×64的CU分别进行深度为1的模式判决过程后,确定其中3个64×64的CU不再继续划分,而剩余一个CU需要继续划分,则将所述剩余的一个64×64的CU划分为4个32×32的CU;假设对这4个32×32的CU分别进行深度为2的模式判决过程后,确定其中3个32×32的CU不再继续划分,而剩余一个CU需要继续划分,则将所述剩余的一个32×32的CU划分为4个16×16的CU;假设对这4个16×16的CU分别进行深度为3的模式判决过程后,确定这4个16×16的CU都不再继续划分,完成对该CTU的帧间预测编码过程,此时,该CTU所包含的最小CU是16×16的CU,其对应的深度为3,则该CTU的最大深度也为3。
有鉴于上述常规的帧间预测编码过程,本发明实施例提出一种新的帧间预测编码方案来对上述帧间预测编码过程进行优化,以图像组(Group of Pictures,GOP)为单位,依次对多个图像组中的帧进行帧间预测编码,在针对任一图像组中的参考B帧进行帧间预测编码时,利用参考B帧与同一图像组中的GPB帧之间的相关性,对参考B帧中CTU的划分深度不超过GPB帧中同一位置的CTU的最大深度,在所述GPB帧中同一位置的CTU的最大深度较小时,参考B帧中的CTU的模式判决次数可较少,以此达到降低参考B帧的帧间预测编码过程复杂度的目的。
本发明各实施例所涉及的GOP可以是4帧GOP(即一个GOP中包含4帧)、8帧GOP(即一个GOP中包含8帧)或16帧GOP(即一个GOP中包含16帧)等,所述GOP中包含的帧的数量可根据需要自定义配置。
所述GOP中的帧包括有B帧,还包括有广义P/B(Generalized P and B,GPB)帧或P帧。
以GOP中包括GPB帧和B帧为例,GOP中包含的GPB帧的数量可通过配置文件进行配置,可以是一个,也可以是多个。在对GOP中的帧进行帧间预测编码时,首先对GPB帧进行帧间预测编码。若同一GOP中有多个GPB帧,可以首先对一个GPB帧进行帧间预测编码,紧接着可以对其他GPB帧进行帧间预测编码,也可以不立即对其他GPB帧进行帧间预测编码,而是对同一GOP中的B帧进行帧间预测编码,本发明实施例在对首个GPB帧进行帧间预测编码后,对其他帧的帧间预测编码顺序不做限定。
GOP中包括P帧和B帧的情况与包括GPB帧和B帧的情况相似,此处不再赘述。
在读取GOP之前,GOP中的多个B帧划分为参考B帧和非参考B帧,参考B帧是根据配置文件中的配置信息划分的,所述参考B帧可以作为非参考B帧的参考帧。在划分出参考B帧时,可将参考B帧中的Flag值设置为1,以便于编码器读取一个GOP后,根据B帧中的Flag值来区分B帧中的参考B帧和非参考B帧。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
由于GOP中可能包括GPB帧,也可能包括P帧,但不论GOP中包括GPB帧还是P帧,对GPB帧和P帧的帧间预测编码方式类似,因此,以下各实施例以GOP中包括GPB帧、参考B帧和非参考B帧为例进行说明。
实施例一:
如图3(a)所示,为本发明实施例一中帧间预测编码方法的步骤示意图,所述方法包括以下步骤:
步骤101:读取一个GOP。
步骤102:针对读取的GOP中待编码参考B帧中的任一CTU,依次执行以下步骤。
在本步骤102中,可通过对B帧中Flag值的识别来确定GOP中的参考B帧。
步骤103:判断待编码参考B帧中是否还有未进行帧间预测编码的CTU,若有,则执行步骤104,否则,执行步骤106。
步骤104:从当前GOP中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧中确定一CTU,以及确定的该CTU的第一最大深度。
从所述GPB帧确定的CTU与待编码参考B帧中的所述CTU在各自所在帧中的位置相同。
在本实施例一的方案中,若GOP中只包含一个GPB帧,需首先对该GPB帧进行帧间预测编码,因此,在本步骤103中,可从该GPB帧中确定CTU以及该CTU的第一最大深度。若GOP中包含多个GPB帧,在本步骤103中,同一GOP中有至少一个GPB帧已完成帧间预测编码,可从中确定与待编码参考B帧最接近GPB帧,再从确定的GPB帧中确定一个CTU以及该CTU的第一最大深度。
步骤105:对待编码参考B帧中的所述CTU进行帧间预测编码时,对其划分深度不超过所述第一最大深度,在完成对该CTU的帧间预测编码后,跳转至步骤103。
假设所述第一最大深度为2,待编码参考B帧中的所述CTU是64×64的像素块,在对待编码参考B帧中的所述CTU进行帧间预测编码时,首先对64×64的CTU进行模式判决,根据模式判决结果利用代价值最小的模式对64×64的CTU进行帧间预测编码,并判断是否需要对64×64的CTU继续进行划分。一种可选的判断方式为:在对64×64的CTU进行模式判决后,确定代价值最小的模式是否是SKIP模式,若是,则可以不再对64×64的CTU继续进行划分,完成对该CTU的帧间预测编码过程,此时该CTU的最大深度为0;若否,则需要将该CTU划分为4个32×32的CU,针对每个32×32的CU进行模式判决和帧间预测编码后,再按照上述判断方式判断是否继续划分,以此类推,但是,针对16×16的CU(此时,该CU对应的深度为2),在完成模式判决和帧间预测编码后,不必判断是否继续划分,直接结束对该CTU的划分。
可选地,在针对每一深度的CU(包括深度为0的CTU)进行模式判决时,在某些情况下可跳过若干个模式运算过程。例如:在对64×64的CTU进行模式判决时,首先进行SKIP模式的模式运算,若SKIP模式的模式运算后得到的代价值小于平均代价值的1.5倍时,则在对64×64的CTU继续进行模式运算时,可跳过帧间2N×2N模式、帧间N×N模式、帧内2N×2N模式和帧内N×N模式的模式运算(即在进行模式判决时,不进行帧间2N×2N模式、帧间N×N模式、帧内2N×2N模式和帧内N×N模式的模式运算),以此达到减少模式运算量的目的。所述平均代价值是指进行帧间预测编码的CTU所在的编码帧中,已完成帧间预测编码的CTU在深度为0进行模式判决时,若代价值最小的模式是SKIP模式,则这些最小的代价值的平均值。
通过以上步骤101至步骤105的方案,可以达到优化参考B帧的帧间预测编码的目的,降低参考B帧的帧间预测编码过程复杂度,也就是降低了整个HEVC编码过程的复杂度。
优选地,除了可以对参考B帧的帧间预测编码进行优化外,还可以对GOP中的非参考B帧进行帧间预测编码的优化,在对非参考B帧进行帧间预测编码的优化时,需参考与非参考B帧具有较高相关性的参考B的帧间预测编码结果,因此,在以上步骤103至步骤105完成对参考B帧的帧间预测编码后,还可以进一步包括以下对非参考B帧的帧间预测编码步骤。
步骤106:针对读取的GOP中待编码非参考B帧中的任一CTU,依次执行以下步骤。
步骤107:判断待编码非参考B帧中是否还有未进行帧间预测编码的CTU,若有,则执行步骤108,否则,在当前读取的GOP中所有帧完成帧间预测编码时,继续读取下一个GOP;在当前读取的GOP中还有未完成帧间预测编码的帧时,继续按照本实施例一的方案进行帧间预测编码。
步骤108:从当前GOP中最接近非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU,以及该CTU的第二最大深度。
从所述参考B帧确定的CTU与待编码非参考B帧中的所述CTU在各自所在帧中的位置相同。
步骤109:对待编码非参考B帧中的所述CTU进行帧间预测编码时,对其划分深度不超过所述第二最大深度,在完成对该CTU的帧间预测编码后,跳转至步骤107。
通过以上步骤106至步骤109的方案,可以达到优化非参考B帧的帧间预测编码的目的,降低非参考B帧的帧间预测编码过程复杂度,进一步降低了整个HEVC编码过程的复杂度。
优选地,本发明实施例一的方案还可以对GOP中的GPB帧的帧间预测编码进行优化。若GOP中只有一个GPB帧,则待编码GPB帧应当是首个进行帧间预测编码的帧,即在步骤101之后且步骤102之前进行帧间预测编码;若GOP中有多个GPB帧,则其中一个GPB帧应当是首个进行帧间预测编码的帧,其他GPB帧的帧间预测编码顺序可根据配置文件的配置确定。在本发明实施例一中,针对待编码GPB帧不是GOP中首个进行帧间预测编码的帧的情况和待编码GPB帧是GOP中首个进行帧间预测编码的帧的情况分别加以说明。
1、假设待编码GPB帧不是GOP中首个进行帧间预测编码的帧,即当前GOP中存在已完成帧间预测编码的GPB帧,对待编码GPB帧的帧间预测编码过程如图3(b)所示,包括以下步骤:
步骤A1:确定待编码GPB帧,判断待编码GPB帧中是否还有未进行帧间预测编码的CTU,若有,则执行步骤A2;否则,执行步骤102。
需要说明的是,由于待编码GPB帧不是GOP中首个GPB帧,所述待编码GPB帧的编码顺序可以是在首个GPB帧之后,也可以是在参考B帧或非参考B帧之后,本发明实施例一并不对非首个GPB帧的编码顺序做限定。
另外,当非首个GPB帧的帧间预测编码结束后,若当前GOP中还存在未进行帧间预测编码的帧,则可继续按照本发明实施例一的方案对其进行帧间预测编码。本步骤A1是以在非首个GPB帧的帧间预测编码结束后,再对参考B帧进行帧间预测编码为例来进行说明的。当非首个GPB帧的帧间预测编码结束后,若当前GOP中所有帧都完成帧间预测编码,则可继续读取下一个GOP。
步骤A2:从当前GOP中已完成帧间预测编码的GPB帧确定一CTU,以及该CTU的第三最大深度。
假设在待编码GPB帧进行帧间预测编码前,同一GOP中已有至少一个GPB帧完成了帧间预测编码,则本步骤A2中从其中任一GPB帧中确定一个CTU和该CTU的第三最大深度。可选地,可从已完成帧间预测编码的GPB帧中确定首个GPB帧的一个CTU以及该CTU的第三最大深度。
步骤A3:对待编码GPB帧中的所述CTU进行帧间预测编码时,对其划分深度不超过所述第三最大深度,在完成对该CTU的帧间预测编码后,跳转至步骤A1。
2、假设待编码GPB帧是GOP中首个编码的帧,即当前GOP中不存在已完成帧间预测编码的GPB帧,对待编码GPB帧的帧间预测编码过程如图3(c)所示,包括以下步骤:
步骤B1:确定待编码GPB帧,判断待编码GPB帧中是否还有未进行帧间预测编码的CTU,若有,则执行步骤B2;否则,执行步骤102。
需要说明的是,由于待编码GPB帧是GOP中首个进行帧间预测编码操作的帧,因此,当待编码GPB帧完成帧间预测编码后,可对参考B帧进行帧间预测编码;若GOP中还有未进行帧间预测编码的GPB帧,也可在待编码GPB帧完成帧间预测编码后,对GOP中的其他GPB帧进行帧间预测编码操作。本步骤B1是以对参考B帧进行帧间预测编码为例来进行说明的。
步骤B2:从前一GOP中的GPB帧中确定一CTU以及该CTU的第四最大深度。
优选地,若前一GOP中有多个GPB帧,则本步骤B2中确定的CTU是前一GOP中首个GPB帧中的CTU,这样做的原因是:编码器读取前一个GOP时,最后读取的一帧是GPB帧,但在进行帧间预测编码时,最后读取的GPB帧却是首个进行帧间预测编码的帧。在对当前读取的GOP中的待编码GPB帧进行帧间预测编码时,从帧在视频流中的顺序来看,前一GOP中与待编码GPB帧最接近的GPB帧为前一GOP中最后读取的GPB帧(即前一GOP中首个进行帧间预测编码的GPB帧),因此,待编码GPB帧中的CTU在进行帧间预测编码时,参考前一GOP中相关度最高的首个进行帧间预测编码的GPB帧中相同位置的CTU。
步骤B3:对待编码GPB帧中的所述CTU进行帧间预测编码时,对其划分深度不超过所述第四最大深度,在完成对该CTU的帧间预测编码后,跳转至步骤B1。
通过以上步骤A1至步骤A3、步骤B1至步骤B3的方案,可以达到优化GPB帧的帧间预测编码的目的,降低GPB帧的帧间预测编码过程复杂度,进一步降低了整个HEVC编码过程的复杂度。
另外,若GOP中包括的是P帧而非GPB帧,则对P帧的帧间预测编码的优化过程也如步骤A1至步骤A3、步骤B1至步骤B3的方案所示,具体为:
若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同;然后,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度。
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同;然后,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
需要说明的是,本发明实施例一中第一最大深度、第二最大深度、第三最大深度、第四最大深度、第五最大深度和第六最大深度之间并没有必然相同或不相同的关联关系,“第一”至“第六”用于区分不同CTU的最大深度。
本发明实施例一的方案在对GPB帧进行帧间预测编码时,利用了与同一GOP中首个GPB帧或前一GOP中的GPB帧之间的相关性;在对参考B帧进行帧间预测编码时,利用了与同一GOP中GPB帧之间的相关性;在对非参考B帧进行帧间预测编码时,利用了与同一GOP中参考B帧之间的相关性。利用本发明实施例一的方案对帧间预测编码的优化,相较于HEVC的HM方式对帧进行的常规帧间预测编码,基于以下仿真条件,可在整体性能损失0.3%的情况下,将编码时间减少57.36%。
所述仿真条件为:5个包含的帧的分辨率为1080p的GOP、4个包含的帧的分辨率为WVGA(800*480)的GOP、4个包含的帧的分辨率为WQVGA(480*272)的GOP、4个包含的帧的分辨率为720p的GOP、4个包含的帧的分辨率为4CIF(704*576)的GOP和4个包含的帧的分辨率为QVGA(240*320)的GOP,这25个GOP在本发明实施例一的帧间预测编码方法进行编码和HEVC的HM方式进行帧间预测编码。
下面通过一个具体实例对本发明实施例一的方案进行详细说明。
实施例二:
假设本发明实施例二中是对3个4帧GOP中的帧进行帧间预测编码,每个GOP中有一个GPB帧、一个参考B帧和2个非参考B帧,在进行帧间预测编码之前,首先对I帧进行编码,然后依次读取每个GOP,并对读取的GOP中的帧进行帧间预测编码,具体过程如下:
第一步:读取第一个GOP。
第二步:对第一个GOP中的GPB帧进行编码,具体编码方式为:
对GPB帧中的每个CTU依次进行帧间预测编码,以其中某一CTU(可称之为CTU_GPB帧_第一GOP)为例进行说明,GPB帧中的其他CTU的帧间预测编码方式与CTU_GPB帧_第一GOP的做法相同。
以CTU_GPB帧_第一GOP是64×64的像素块为例,首先针对像素块为64×64的CTU_GPB帧_第一GOP,采用较复杂的变换后再绝对值求和(Sum of AbsoluteTransformed Difference,SATD)算法进行8种模式的模式运算,利用模式运算结果的代价值进行模式判决,进而根据判决结果确定的模式对64×64的CTU_GPB帧_第一GOP进行帧间预测编码。然后将64×64的CTU_GPB帧_第一GOP划分为4个32×32的CU,再按照上述方式进行模式判决和帧间预测编码。以此类推,直至完成对CTU_GPB帧_第一GOP的帧间预测编码。
优选地,对CTU_GPB帧_第一GOP在深度为0~(预设的最大深度-1)的模式判决时,可跳过帧间N×2N模式和帧间2N×N模式的模式运算,利用剩余的模式进行模式判决;对CTU_GPB帧_第一GOP在深度为预设的最大深度的模式判决时,不跳过帧间N×2N模式和帧间2N×N模式的模式运算。这样做的目的是:对CTU_GPB帧_第一GOP在深度为0~(预设的最大深度-1)的模式判决时,即使跳过帧间N×2N模式和帧间2N×N模式的模式运算,对帧的性能损失并不大,但却可以有效降低CTU_GPB帧_第一GOP的帧间预测编码复杂度;而对CTU_GPB帧_第一GOP在深度为预设的最大深度的模式判决时,如果跳过帧间N×2N模式和帧间2N×N模式的模式运算会造成图像细节损失过多的问题,因此,不宜跳过。
所述预设的最大深度可以是由编码器配置,如配置预设的最大深度为3;也可以是编码器根据配置的CTU的大小计算出的最大深度,如:配置的CTU是64×64的像素块,当CTU划分出8×8的CU时,该CU对应的深度为3,此时,为CTU预设的最大深度为3;再如:配置的CTU是128×128的像素块,当CTU划分出8×8的CU时,该CU对应的深度为4,此时,为CTU预设的最大深度为4。
由于第二步中进行帧间预测编码的帧是第一GOP中首个GPB帧,前向没有可作为该GPB帧的参考帧,因此,第一GOP中的GPB帧可按照常规方式进行帧间预测编码。
第三步:对第一个GOP中的参考B帧进行编码,具体的编码方式为:
对参考B帧中的每个CTU进行帧间预测编码,以其中某一CTU(可称之为CTU_参考B帧)为例进行说明,参考B帧中的其他CTU的帧间预测编码方式与CTU_参考B帧的做法相同。
1)、根据CTU_参考B帧在参考B帧中的位置,从第一GOP中的GPB帧中确定一CTU,称之为CTU_GPB帧_第一GOP,其中,确定的所述CTU_GPB帧_第一GOP与所述CTU_参考B帧在各自所在帧中的位置相同。
2)、确定所述CTU_GPB帧_第一GOP的最大深度d1。
所述CTU_GPB帧_第一GOP的最大深度d1可根据所述第二步中对CTU_GPB帧_第一GOP进行帧间预测编码后确定。
3)、对所述CTU_参考B帧进行帧间预测编码时,在每个深度都采用较简单的绝对误差和(Sum of Absolute Difference,SAD)算法进行模式运算,利用模式运算结果的代价值进行模式判决,并进行帧间预测编码,其中:对CTU_参考B帧划分的深度不超过所述最大深度d1。
例如,若所述最大深度d1为2,CTU_参考B帧是64×64的像素块,则在对所述CTU_参考B帧进行帧间预测编码时,首先对64×64的CTU_参考B帧进行模式判决和帧间预测编码;之后对CTU_参考B帧进行划分得到4个32×32的CU,再分别对32×32的CU进行模式判决和帧间预测编码;再继续对32×32的CU进行划分,对划分得到的每个16×16的CU进行模式判决和帧间预测编码。此时,CTU_参考B帧中最小CU是16×16的CU,其对应的深度已达到2,等于所述最大深度d1,因此,不再对16×16的CU继续划分,完成对CTU_参考B帧的帧间预测编码过程。
当然,在以上每一步的模式判决过程中,若确定代价值最小的模式是SKIP模式,即使没有划分到16×16的CU也可不再继续划分,完成对CTU_参考B帧的帧间预测编码过程。
通过参考同一GOP中参考B帧与GPB帧之间的相关性,在对参考B帧中的CTU进行帧间预测编码时,可减少模式判决次数,降低帧间预测编码过程的复杂度。
优选地,若所述最大深度d1等于预设的最大深度,则在对CTU_参考B帧进行帧间预测编码时,可跳过深度为0的模式判决过程,即不对64×64的CTU_参考B帧进行模式判决和帧间预测编码,而是首先将64×64的CTU_参考B帧划分为4个32×32的CU。这样做的好处是:由于CTU_GPB帧_第一GOP划分的最大深度d1等于预设的最大深度,与CTU_GPB帧_第一GOP的相关性较高的CTU_参考B帧划分的最大深度也会比较深,如等于预设的最大深度,或等于(预设的最大深度-1),在此情况下,即使跳过深度为0的模式判决过程,对参考B帧的性能影响也不大,同时可以有效降低帧间预测编码过程的复杂度。
优选地,在对CTU_参考B帧进行帧间预测编码时,对于任意深度的CTU_参考B帧,在进行模式判决时,都可跳过帧间N×2N模式和帧间2N×N模式的模式运算,利用剩余的模式进行模式判决。这样做的好处是:对于B帧(包括参考B帧和非参考B帧)而言,对于性能损失的容忍度较高,因此,为了尽可能地降低帧间预测编码的复杂度,可以跳过帧间N×2N模式和帧间2N×N模式的模式运算。
第四步:对第一个GOP中的非参考B帧进行编码,具体的编码方式为:
对非参考B帧中的每个CTU进行帧间预测编码,以其中某一CTU(可称之为CTU_非参考B帧)为例进行说明,非参考B帧中的其他CU的帧间预测编码方式与CTU_非参考B帧的做法相同。
1)、根据CTU_非参考B帧在非参考B帧中的位置,确定第一GOP中参考B帧中与所述CTU_非参考B帧在同一位置的CTU,假设该CTU为CTU_参考B帧
2)、确定所述CTU_参考B帧的最大深度d2。
所述CTU_参考B帧的最大深度d2可根据所述第三步中对参考B帧进行帧间预测编码时确定。
3)、对所述CTU_非参考B帧进行帧间预测编码时,在每个深度都采用SAD算法进行模式运算,利用模式运算结果的代价值进行模式判决,并进行帧间预测编码,其中:对CTU_非参考B帧划分的深度不超过所述最大深度d2。
优选地,若所述最大深度d2等于预设的最大深度或等于(预设的最大深度-1),则在对CTU_非参考B帧进行帧间预测编码时,可跳过深度为0的模式判决过程,这样做的好处是:由于CTU_参考B帧的最大深度d2等于预设的最大深度或等于(预设的最大深度-1),与CTU_参考B帧的相关性较高的CTU_非参考B帧的最大深度也会比较深,如等于预设的最大深度或等于(预设的最大深度-1),在此情况下,即使跳过深度为0的模式判决,对非参考B帧的性能影响也不大,同时可以有效降低帧间预测编码过程的复杂度。
另外,在第三步中,在所述最大深度d1等于预设的最大深度时,CTU_参考B帧才跳过深度为0的模式判决过程,而在第四步中,在所述最大深度d2等于预设的最大深度或等于(预设的最大深度-1)时,CTU_非参考B帧就可跳过深度为0的模式判决过程,这是因为:CTU_参考B帧是同一GOP中CTU_非参考B帧的参考CTU,因此,对CTU_参考B帧的编码要求高于CTU_非参考B帧。在所述最大深度d1等于预设的最大深度时,CTU_参考B帧即使跳过深度为0的模式判决过程对参考B帧的性能影响不大,而在最大深度d1等于预设的最大深度-1时,如若CTU_参考B帧还跳过深度为0的模式判决,则对参考B帧的性能会有一定影响,进而会对之后的CTU_非参考B帧的帧间预测编码过程造成影响;而CTU_非参考B帧不会成为其他CTU的参考CTU,因此,即使在最大深度d2等于预设的最大深度-1时,也可以对CTU_非参考B帧的帧间预测编码过程跳过深度为0的模式判决。
第五步:完成对第一个GOP中各帧的编码后,读取第二个GOP。
第六步:对第二个GOP中的GPB帧进行编码,具体编码方式为:
1)、根据第二GOP中的GPB帧中的CTU(称之为CTU_GPB帧_第二GOP)在该GPB帧中的位置,确定第一GOP中GPB帧中与所述CTU_GPB帧_第二GOP在同一位置的CTU_GPB帧_第一GOP
2)、确定所述CTU_GPB帧_第一GOP的最大深度d3。
所述CTU_GPB帧_第一GOP的最大深度d3可根据所述第二步中对第一个GOP中的GPB帧进行帧间预测编码时确定。
需要说明的是,第二个GOP中的GPB帧进行帧间预测编码所参考的是第一个GOP中的GPB帧,而第一个GOP中的参考B帧进行帧间预测编码所参考的也是第一个GOP中的GPB帧,因此,本实施例中的最大深度d1和最大深度d3相同。
3)、对所述CTU_GPB帧_第二GOP进行帧间预测编码时,在每个深度都采用SATD算法进行模式运算,利用模式运算结果的代价值进行模式判决,并进行帧间预测编码,其中:CTU_GPB帧_第二GOP的最大深度不超过所述最大深度d3。
优选地,若所述最大深度d3等于预设的最大深度,则在对CTU_GPB帧_第二GOP进行帧间预测编码时,可跳过深度为0的模式判决过程,这样做的好处是:在CTU_GPB帧_第一GOP的最大深度d3等于预设的最大深度时,与CTU_GPB帧_第一GOP的相关性较高的CTU_GPB帧_第二GOP的最大深度也会比较深,如等于预设的最大深度或等于(预设的最大深度-1),在此情况下,即使跳过深度为0的模式判决过程,对第二GOP中的GPB帧的性能影响也不大,同时可以有效降低帧间预测编码过程的复杂度。
优选地,在对CTU_GPB帧_第二GOP进行帧间预测编码时,对CTU_GPB帧_第二GOP在深度为0~(预设的最大深度-1)的模式判决过程可跳过帧间N×2N模式和帧间2N×N模式的模式运算;对CTU_GPB帧_第二GOP在深度为预设的最大深度的模式判决过程不跳过帧间N×2N模式和帧间2N×N模式的模式运算。这样做的好处是:对预设的最大深度在深度为0~(预设的最大深度-1)模式判决过程中,即使跳过帧间N×2N模式和帧间2N×N模式的模式运算,对GPB帧的性能损失并不大,但却可以有效降低帧间预测编码的复杂度;而对CTU_GPB帧_第二GOP在深度为预设的最大深度的模式判决过程中,如果跳过帧间N×2N模式和帧间2N×N模式的模式运算会造成GPB帧的细节损失过多的问题,不宜跳过。
之后,继续对第二个GOP中的参考B帧和非参考B帧按照与上述第三步和第四步相同的方式进行帧间预测编码。再往后,可读取第三个GOP,按照对第二个GOP中各帧的帧间预测编码方式进行处理。
本实施例二以3个GOP为例来对本发明方案进行说明,对于有n(n大于3)个GOP的情况,与上述3个GOP的做法相同,此处不再赘述。
本发明实施例二的方案在实施例一的基础上做进一步优化:在对GPB帧进行帧间预测编码时,采用SATD算法,对GPB帧中CTU在深度为0~(预设的最大深度-1)的模式判决时跳过帧间N×2N模式和帧间2N×N模式的模式运算,对CTU在深度为预设的最大深度的模式判决时不跳过帧间N×2N模式和帧间2N×N模式的模式运算,以及在参考的GPB帧的CTU深度等于预设的最大深度时,跳过深度为0的模式判决过程;在对参考B帧进行帧间预测编码时,采用SAD算法,对参考B帧中CTU在各深度的模式判决都跳过帧间N×2N模式和帧间2N×N模式的模式运算,以及在参考的GPB帧的CTU深度等于预设的最大深度时,跳过深度为0的模式判决过程;在对非参考B帧进行帧间预测编码时,采用SAD算法,对非参考B帧中CTU在各深度的模式判决都跳过帧间N×2N模式和帧间2N×N模式的模式运算,以及在参考的参考B帧的CTU最大深度等于预设的最大深度或等于(预设的最大深度-1)时,跳过深度为0的模式判决过程。
利用本发明实施例二的方案对帧间预测编码的优化,相较于HEVC的HM方式对帧进行的常规帧间预测编码,基于实施例一中所涉及的仿真条件下,可在整体性能损失3.1%的情况下,将编码时间减少77.27%。
实施例三:
本发明实施例三描述了一种与实施例一和实施例二属于同一发明构思下的编码器,如图4所示,所述编码器包括图像组读取模块11和编码模块12,其中:
图像组读取模块11用于依次读取图像组;
编码模块12用于针对任一图像组中的帧进行如下帧间预测编码:
针对当前图像组中待编码参考B帧中任一CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度。
进一步地,所述编码模块12还用于若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了参考B帧的判决次数,可简化参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算,由于减少了参考B帧的模式运算,因此,可简化参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
进一步地,所述编码模块12还用于若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了非参考B帧的判决次数,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12用于在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算,由于减少了非参考B帧的模式运算,因此,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
进一步地,所述编码模块12还用于若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了GPB帧的判决次数,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了GPB帧的模式运算,因此,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
进一步地,所述编码模块12还用于若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。由于减少了P帧的判决次数,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述编码模块12还用于在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了P帧的模式运算,因此,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
实施例四:
本发明实施例四描述了另一种与实施例一和实施例二属于同一发明构思下的编码器,如图5所示,所述编码器包括接口21、存储器22和处理器23,其中:
接口21用于依次读取图像组;
处理器23用于针对任一图像组中的帧进行如下帧间预测编码:
针对当前图像组中待编码参考B帧中任一CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度;
存储器22用于存储图像组中已完成帧间预测编码的GPB帧或P帧中各CTU的最大深度。
进一步地,所述处理器23还用于若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程;
所述存储器22还用于存储所述预设的最大深度。
由于减少了参考B帧的判决次数,可简化参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算;
所述存储器22还用于存储多种模式运算信息。
由于减少了参考B帧的模式运算,因此,可简化参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
所述存储器22还用于存储图像组中已完成帧间预测编码的参考B帧中各CTU的最大深度。
进一步地,所述处理器23还用于若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了非参考B帧的判决次数,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23用于在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算,由于减少了非参考B帧的模式运算,因此,可简化非参考B帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
进一步地,所述处理器23还用于若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程,由于减少了GPB帧的判决次数,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了GPB帧的模式运算,因此,可简化GPB帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
进一步地,所述处理器23还用于若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。由于减少了P帧的判决次数,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
进一步地,所述处理器23还用于在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。由于减少了P帧的模式运算,因此,可简化P帧的帧间预测编码过程,缩短帧间预测编码时间。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (24)

1.一种帧间预测编码方法,其特征在于,所述方法包括:
依次对每个图像组中的帧进行帧间预测编码,针对任一图像组中的帧进行帧间预测编码的过程如下:
针对当前图像组中待编码参考B帧中任一编码树单元CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算。
4.如权利要求1~3任一所述的方法,其特征在于,所述方法还包括:
针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算。
7.如权利要求1~6任一所述的方法,其特征在于,所述方法还包括:
若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
9.如权利要求7或8所述的方法,其特征在于,所述方法还包括:
在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
10.如权利要求1~6任一所述的方法,其特征在于,所述方法还包括:
若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
12.如权利要求10或11所述的方法,其特征在于,所述方法还包括:
在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
13.一种编码器,其特征在于,所述编码器包括:
图像组读取模块,用于依次读取图像组;
编码模块,用于针对任一图像组中的帧进行如下帧间预测编码:
针对当前图像组中待编码参考B帧中任一CTU,从当前图像组中最接近所述待编码参考B帧且已完成帧间预测编码的GPB帧或P帧中确定一CTU的第一最大深度,其中,确定的该CTU与所述待编码参考B帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第一最大深度。
14.如权利要求13所述的编码器,其特征在于,
所述编码模块,还用于若所述第一最大深度等于预设的最大深度,则在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
15.如权利要求13或14所述的编码器,其特征在于,
所述编码模块,还用于在对所述待编码参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用绝对误差和SAD算法对其他模式进行模式运算。
16.如权利要求13~15任一所述的编码器,其特征在于,
所述编码模块,还用于针对当前图像组中待编码非参考B帧中任一CTU,从当前图像组中最接近所述待编码非参考B帧且已完成帧间预测编码的参考B帧中确定一CTU的第二最大深度,其中,确定的该CTU与所述待编码非参考B帧中的所述CTU在各自所在帧中的位置相同;
在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第二最大深度。
17.如权利要求16所述的编码器,其特征在于,
所述编码模块,还用于若所述第二最大深度等于预设的最大深度或预设的最大深度-1,则在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
18.如权利要求16或17所述的编码器,其特征在于,
所述编码模块,用于在对所述待编码非参考B帧中的所述CTU进行帧间预测编码时,对该CTU在任意深度的模式判决过程跳过帧间N×2N模式和帧间2N×N模式的模式运算,并采用SAD算法对其他模式进行模式运算。
19.如权利要求13~18任一所述的编码器,其特征在于,
所述编码模块,还用于若当前图像组中存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从所述已完成帧间预测编码的GPB帧中确定一CTU的第三最大深度,其中,确定的该CTU与待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第三最大深度;
若当前图像组中不存在已完成帧间预测编码的GPB帧,则针对当前图像组中待编码GPB帧中任一CTU,从前一图像组中的GPB帧中确定一CTU的第四最大深度,其中,确定的该CTU与当前图像组中所述待编码GPB帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第四最大深度。
20.如权利要求19所述的编码器,其特征在于,
所述编码模块,还用于若所述第三最大深度或第四最大深度等于预设的最大深度,则在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
21.如权利要求19或20所述的编码器,其特征在于,
所述编码模块,还用于在对所述待编码GPB帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用变换后再绝对值求和SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
22.如权利要求13~18任一所述的编码器,其特征在于,
所述编码模块,还用于若当前图像组中存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从所述已完成帧间预测编码的P帧中确定一CTU的第五最大深度,其中,确定的该CTU与待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第五最大深度;
若当前图像组中不存在已完成帧间预测编码的P帧,则针对当前图像组中待编码P帧中任一CTU,从前一图像组中的P帧中确定一CTU的第六最大深度,其中,确定的该CTU与当前图像组中所述待编码P帧中的所述CTU在各自所在帧中的位置相同,在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU的划分深度不超过所述第六最大深度。
23.如权利要求22所述的编码器,其特征在于,
所述编码模块,还用于若所述第五最大深度或第六最大深度等于预设的最大深度,则在对所述待编码P帧中的所述CTU进行帧间预测编码时,跳过深度为0的模式判决过程。
24.如权利要求22或23所述的编码器,其特征在于,
所述编码模块,还用于在对所述待编码P帧中的所述CTU进行帧间预测编码时,对该CTU在深度为0至预设的最大深度-1的模式判决跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算;
对该CTU在深度为预设的最大深度的模式判决不跳过帧间N×2N模式和帧间2N×N模式的模式运算,并对该CTU采用SATD算法进行模式运算。
CN201310430799.3A 2013-09-18 2013-09-18 一种帧间预测编码方法和编码器 Active CN103491369B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310430799.3A CN103491369B (zh) 2013-09-18 2013-09-18 一种帧间预测编码方法和编码器
EP14846100.7A EP2953352B1 (en) 2013-09-18 2014-04-28 Inter-frame prediction encoding method and encoder
PCT/CN2014/076378 WO2015039440A1 (zh) 2013-09-18 2014-04-28 一种帧间预测编码方法和编码器
US14/861,267 US9894388B2 (en) 2013-09-18 2015-09-22 Inter-frame predictive coding method and coder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310430799.3A CN103491369B (zh) 2013-09-18 2013-09-18 一种帧间预测编码方法和编码器

Publications (2)

Publication Number Publication Date
CN103491369A true CN103491369A (zh) 2014-01-01
CN103491369B CN103491369B (zh) 2016-09-28

Family

ID=49831290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310430799.3A Active CN103491369B (zh) 2013-09-18 2013-09-18 一种帧间预测编码方法和编码器

Country Status (4)

Country Link
US (1) US9894388B2 (zh)
EP (1) EP2953352B1 (zh)
CN (1) CN103491369B (zh)
WO (1) WO2015039440A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015039440A1 (zh) * 2013-09-18 2015-03-26 华为技术有限公司 一种帧间预测编码方法和编码器
CN104602000A (zh) * 2014-12-30 2015-05-06 北京奇艺世纪科技有限公司 一种编码单元的分割方法和装置
WO2015139615A1 (en) * 2014-03-18 2015-09-24 Mediatek Singapore Pte. Ltd. Method for depth lookup table signaling in 3d video coding based on high efficiency video coding standard
CN105530518A (zh) * 2014-09-30 2016-04-27 联想(北京)有限公司 一种视频编码、解码方法及装置
CN109618152A (zh) * 2018-12-14 2019-04-12 北京数码视讯软件技术发展有限公司 深度划分编码方法、装置和电子设备
CN114640849A (zh) * 2022-03-23 2022-06-17 广州方硅信息技术有限公司 直播视频编码方法、装置及计算机设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805635B1 (en) * 2016-03-22 2020-10-13 NGCodec Inc. Apparatus and method for coding tree unit bit size limit management
CN110198443B (zh) * 2018-05-10 2022-09-13 腾讯科技(深圳)有限公司 视频帧的编码单元划分方法、装置、存储介质及电子装置
CA3125904A1 (en) 2019-01-08 2020-07-16 Huawei Technologies Co., Ltd. Image prediction method, apparatus, system, device, and storage medium for processing performance and speed

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984521A (zh) * 2012-12-12 2013-03-20 四川大学 基于时域相关性的高性能视频编码帧间模式判决方法
US20130182760A1 (en) * 2010-09-30 2013-07-18 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
CN103281531A (zh) * 2013-05-10 2013-09-04 北方工业大学 面向hevc的质量可伸缩层间预测编码
CN103297774A (zh) * 2013-05-13 2013-09-11 清华大学深圳研究生院 一种视频编码中b帧的快速编码方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006052577A2 (en) 2004-11-04 2006-05-18 Thomson Licensing Method and apparatus for fast mode decision of b-frames in a video encoder
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
KR101624649B1 (ko) * 2009-08-14 2016-05-26 삼성전자주식회사 계층적인 부호화 블록 패턴 정보를 이용한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US9066102B2 (en) * 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
CN102186070B (zh) 2011-04-20 2013-06-05 北京工业大学 分层结构预判的快速视频编码方法
KR101943049B1 (ko) * 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
CN103491369B (zh) * 2013-09-18 2016-09-28 华为技术有限公司 一种帧间预测编码方法和编码器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130182760A1 (en) * 2010-09-30 2013-07-18 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
CN102984521A (zh) * 2012-12-12 2013-03-20 四川大学 基于时域相关性的高性能视频编码帧间模式判决方法
CN103281531A (zh) * 2013-05-10 2013-09-04 北方工业大学 面向hevc的质量可伸缩层间预测编码
CN103297774A (zh) * 2013-05-13 2013-09-11 清华大学深圳研究生院 一种视频编码中b帧的快速编码方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9894388B2 (en) 2013-09-18 2018-02-13 Huawei Technologies Co., Ltd. Inter-frame predictive coding method and coder
WO2015039440A1 (zh) * 2013-09-18 2015-03-26 华为技术有限公司 一种帧间预测编码方法和编码器
US10085041B2 (en) 2014-03-18 2018-09-25 Hfi Innovation Inc. Method for depth lookup table signaling
CN110278440B (zh) * 2014-03-18 2021-11-02 寰发股份有限公司 深度编码方法及其装置
WO2015139615A1 (en) * 2014-03-18 2015-09-24 Mediatek Singapore Pte. Ltd. Method for depth lookup table signaling in 3d video coding based on high efficiency video coding standard
CN110278440A (zh) * 2014-03-18 2019-09-24 寰发股份有限公司 深度编码方法及其装置
US9800896B2 (en) 2014-03-18 2017-10-24 Hfi Innovation Inc. Method for depth lookup table signaling
CN105530518B (zh) * 2014-09-30 2019-04-26 联想(北京)有限公司 一种视频编码、解码方法及装置
CN105530518A (zh) * 2014-09-30 2016-04-27 联想(北京)有限公司 一种视频编码、解码方法及装置
CN104602000B (zh) * 2014-12-30 2018-02-23 北京奇艺世纪科技有限公司 一种编码单元的分割方法和装置
CN104602000A (zh) * 2014-12-30 2015-05-06 北京奇艺世纪科技有限公司 一种编码单元的分割方法和装置
CN109618152A (zh) * 2018-12-14 2019-04-12 北京数码视讯软件技术发展有限公司 深度划分编码方法、装置和电子设备
CN109618152B (zh) * 2018-12-14 2020-09-08 北京数码视讯软件技术发展有限公司 深度划分编码方法、装置和电子设备
CN114640849A (zh) * 2022-03-23 2022-06-17 广州方硅信息技术有限公司 直播视频编码方法、装置及计算机设备
CN114640849B (zh) * 2022-03-23 2024-03-12 广州方硅信息技术有限公司 直播视频编码方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
US9894388B2 (en) 2018-02-13
US20160014434A1 (en) 2016-01-14
EP2953352A4 (en) 2016-02-24
EP2953352B1 (en) 2017-12-13
EP2953352A1 (en) 2015-12-09
CN103491369B (zh) 2016-09-28
WO2015039440A1 (zh) 2015-03-26

Similar Documents

Publication Publication Date Title
CN103491369A (zh) 一种帧间预测编码方法和编码器
CN104012089B (zh) 用于设置时间合并候选的参考画面索引的方法和设备
CN103650512B (zh) 基于亮度的色度帧内预测
CN103299632B (zh) 去块效应滤波方法及去块效应滤波器单元
CN102648631B (zh) 用于编码/解码高分辨率图像的方法和设备
CN108605137A (zh) 利用仿射运动补偿的视频编码方法与装置
CN103108177B (zh) 图像编码方法及图像编码装置
CN103338372A (zh) 一种视频处理方法及装置
CN102811346B (zh) 编码模式选择方法和***
WO2014173092A1 (zh) 一种图像预测编码方法及图像编码器
CN104539949B (zh) Hevc屏幕编码中基于边缘方向的快速分块的方法及装置
CN102143361B (zh) 一种视频编码方法和装置
CN101472176A (zh) 基于边界强度因子进行去块效应滤波的解码方法和装置
CN105812797B (zh) 一种编码单元选择方法及装置
CN101115207B (zh) 基于预测点间相关性的帧内预测实现的方法及装置
CN1589028B (zh) 基于像素流水的帧内预测装置及预测方法
CN112468821A (zh) 基于hevc核心模块的并行解码方法、装置及介质
CN103096060A (zh) 帧内图像预测编解码的自适应环路滤波方法及装置
CN103974069B (zh) 可重用的视频编码方法和编码器
CN102340663A (zh) 图像运动估计方法和装置
CN102843554A (zh) 帧间图像预测编解码方法及视频编解码器
CN1925616B (zh) 一种宏块对级帧场自适应编解码方法
CN113225555A (zh) 一种视频编解码中的几何划分模式预测方法及装置
CN104918047A (zh) 一种双向运动估计的排除方法和装置
CN103491371A (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