CN106101701B - 基于h.264的帧间编码模式选择方法及装置 - Google Patents
基于h.264的帧间编码模式选择方法及装置 Download PDFInfo
- Publication number
- CN106101701B CN106101701B CN201610642532.4A CN201610642532A CN106101701B CN 106101701 B CN106101701 B CN 106101701B CN 201610642532 A CN201610642532 A CN 201610642532A CN 106101701 B CN106101701 B CN 106101701B
- Authority
- CN
- China
- Prior art keywords
- sub
- macroblocks
- macroblock
- value
- cost
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种基于H.264的帧间编码模式选择方法及装置。所述方法包括:在当前宏块集合及其之前的宏块集合中的各宏块的最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;在当前宏块集合为最后一个宏块集合,且该最小代价值大于当前宏块集合的相应阈值的情况下,如果当前子宏块集合不是最后一个子宏块集合,则在当前子宏块集合及其之前的子宏块集合中的各子宏块的最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式,如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式。
Description
技术领域
本发明涉及数字视频技术领域,尤其涉及一种基于H.264的帧间编码模式选择方法及装置。
背景技术
H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。H.264是ITU-T以H.26x系列为名称命名的标准之一。它在视频压缩方面有显著的效果,与之前的其它压缩方法相比,它在同等视频质量的情况下能够节省50%比特率。它的压缩性能的改进主要在可变尺寸的块1/4像素运动补偿、多参考帧运动补偿、先进的帧内预测模式、去方块滤波效应以及自适应熵编码等特性。H.264中提供了16x16像素的宏块以及16x8、8x16以及8x8的块划分,每个8x8块(子宏块)可划分为8x4、4x8以及4x4,在帧间编码时用作运动补偿。
H.264视频编码中,在帧间编码时,对运动估计及宏块和子宏块的模式选择通常采用自适应熵编码,然而这会造成视频编码的运算复杂性很高,增加了视频的编码时间,降低了视频编码效率。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是如何降低H.264视频编码的运算复杂性,提高视频编码效率。
解决方案
一方面,提出了一种基于H.264的帧间编码模式选择方法,其特征在于,所述方法包括:依次针对当前帧对应的各宏块集合进行以下操作,包括:计算当前宏块集合中的各宏块的代价函数的代价值;取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值,在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:计算当前子宏块集合中的各子宏块的代价函数的代价值;取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值,如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式,如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式。
另一方面,提出了一种基于H.264的帧间编码模式选择装置,其特征在于,所述装置包括:宏块集合处理部件,用于依次针对当前帧对应的各宏块集合进行以下操作,包括:计算当前宏块集合中的各宏块的代价函数的代价值;取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值,在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;子宏块集合处理部件,用于在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:计算当前子宏块集合中的各子宏块的代价函数的代价值;取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值,如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式,如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式。
有益效果
通过计算待编码的帧中各种宏块和子宏块的函数的代价值,分别逐步将部分宏块或部分子宏块的最小代价值与不同阈值进行比较,从而从各种宏块和子宏块中选择出当前帧间编码模式,根据本发明实施例的帧间编码模式选择方法及装置能够采用较少的运算就可选择出当前帧间编码模式,减少了视频编码时间,提高了编码效率。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的基于H.264的帧间编码模式选择方法的流程图。
图2示出根据本发明一实施例的一个示例的基于H.264的帧间编码模式选择方法的流程图。
图3示出根据本发明一实施例的针对B帧一个示例的基于H.264的帧间编码模式选择方法的流程图。
图4示出根据本发明一实施例的针对P帧一个示例的基于H.264的帧间编码模式选择方法的流程图。
图5示出根据本发明一实施例的一个示例的基于H.264的帧间编码模式选择方法的流程图。
图6示出根据本发明一实施例的基于H.264的帧间编码模式选择装置的结构图。
图7示出了本发明的另一个实施例的一种基于H.264的帧间编码模式选择设备的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
图1示出根据本发明一实施例的基于H.264的帧间编码模式选择方法的流程图。如图1所示,该帧间编码模式选择方法主要包括:
依次针对当前帧对应的各宏块集合进行以下操作,包括:
步骤101,计算当前宏块集合中的各宏块的代价函数的代价值;
步骤102,取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值;
步骤103,在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;
在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:
步骤104,计算当前子宏块集合中的各子宏块的代价函数的代价值;
步骤105,取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值;
步骤106,如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式;
步骤107,如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式。
本实施例通过计算待编码的帧中各种宏块和子宏块的函数的代价值,分别逐步将部分宏块或部分子宏块的最小代价值与不同阈值进行比较,从而从各种宏块和子宏块中选择出当前帧间编码模式,根据本发明实施例的帧间编码模式选择方法及装置能够采用较少的运算就可选择出当前帧间编码模式,减少了视频编码时间,提高了编码效率。
图2示出根据本发明一实施例的示例的基于H.264的帧间编码模式选择方法的流程图。其中,在一个示例中,依次针对当前帧对应的各宏块集合进行以下操作,还可包括:在所述最小代价值(即步骤102中的最小代价值)大于当前宏块集合的相应阈值的情况下,如果当前宏块集合不是所述各宏块集合中的最后一个宏块集合,则将下一宏块集合作为当前宏块集合,并重复进行计算当前宏块集合中的各宏块的代价函数的代价值的操作。在另一个示例中,依次针对当前帧对应的各子宏块集合进行以下操作,还可包括:如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值(即步骤105中的最小代价值)大于当前子宏块集合的相应阈值的情况下,将下一子宏块集合作为当前子宏块集合,并重复进行计算当前子宏块集合中的各子宏块的代价函数的代价值的操作。
本领域技术人员应理解,采用以上两个示例的这种循环判断的方式只是一种示例性的实现方式,本实施例也可以通过其他方式实现,例如可以针对所有宏块集合/子宏块集合,先计算出各宏块/子宏块的代价函数的代价值,再进行后续的比较和判断。
本领域技术人员应该理解,目前在H.264协议里定义了三种帧,分别为I帧、B帧和P帧。I帧是一个全帧压缩编码帧,它可将全帧原始图像信息进行JPEG压缩编码及传输,解码时仅用I帧的数据就可重建完整图像。P帧可以以I帧为参考帧,在I帧中可找出P帧“某点”的预测值和运动矢量,可取预测差值和运动矢量一起传送,在解码端可根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。B帧可以以前面的I或P帧和后面的P帧为参考帧,可找出B帧“某点”的预测值和两个运动矢量,并可取预测差值和运动矢量传送,解码端可根据运动矢量找出在两个参考帧中的预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。由于I帧不存在帧间模式选择,所以本实施例中的帧间编码模式选择方法可只针对B帧和P帧。其中,B帧帧间编码模式可包含有如下宏块和子宏块类型:Direct 16×16宏块(也称为直接16×16宏块)、16×16宏块、16×8宏块、8×16宏块、Direct 8×8子宏块(也称为直接8×8子宏块)、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块;P帧帧间编码模式可包含有如下宏块和子宏块类型:16×16宏块、16×8宏块、8×16宏块、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块。
举例来说,可以将当前帧对应的各宏块和各子宏块划分为多个集合,以B帧为例,可以将B帧对应的宏块划分成包含Direct 16×16宏块的第一宏块集合和包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,将B帧对应的子宏块划分为包含Direct 8×8子宏块的第一子宏块集合、包含8×8子宏块的第二子宏块集合、以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合。相应地,第一宏块集合的相应阈值为第一阈值Th1,第二宏块集合的相应阈值为第二阈值Th2,第一子宏块集合的相应阈值为第三阈值Th3,第二子宏块集合的相应阈值为第四阈值Th4。
再以P帧为例,由于P帧没有Direct 16×16宏块和Direct 8×8子宏块,因此对于P帧,宏块集合可包括包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第二宏块集合的相应阈值为第二阈值Th2;子宏块集合可包括包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第二子宏块集合的相应阈值为第四阈值Th4。
在本实施例中,划分宏块集合和子宏块集合是为了实现“逐级判断”,即在当前及其以前的宏块集合/子宏块集合中寻找合适的当前帧间编码模式,在寻找不到的情况下,再到下一宏块集合/子宏块集合中寻找。宏块集合/子宏块集合的划分方式不限于以上示例,本领域技术人员可以根据需要以任意方式进行划分。
在一个示例中,可根据预计的运算时间由低到高的顺序排列各宏块集合/子宏块集合,依次进行计算和判断。例如,针对B帧,如果选择Direct 16×16宏块作为当前帧间编码模式,则预计编码过程的运算时间较短,因此可最先选择包含Direct 16×16宏块的第一宏块集合作为当前宏块集合,依次类推,由此来降低运算时间,提高编码效率。对于P帧也可基于类似的方式进行处理。以上述宏块集合和子宏块集合的划分方式作为例子,图3示出了根据本发明实施例的针对B帧的一个示例的流程图,如图3所示,该示例包括:
依次针对当前帧对应的各宏块集合进行以下操作,包括:
步骤301,计算Direct 16×16宏块的代价函数的代价值,如果Direct 16×16宏块的代价函数的代价值小于或等于第一阈值Th1,则选择Direct 16×16宏块作为当前帧间编码模式(即首先选择第一宏块集合作为当前宏块集合,执行步骤101-103,由于第一宏块集合之前没有宏块集合,因此Direct 16×16宏块的代价函数的代价值就是“当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的代价函数的代价值中的最小代价值”);
步骤302,如果Direct 16×16宏块的代价函数的代价值大于第一阈值Th1,则分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式(即取第二宏块集合作为当前宏块集合,重复步骤101~103);
如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2(即当前宏块集合(第二宏块集合)为各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值,即第二阈值Th2),则依次针对当前帧对应的各子宏块集合进行以下操作,包括:
步骤303,计算Direct 8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块的代价函数的代价值小于或等于第三阈值Th3,则选择Direct 8×8子宏块作为当前帧间编码模式(即首先选择第一子宏块集合作为当前子宏块集合,执行步骤104-107,由于第一子宏块集合之前没有子宏块集合,因此Direct8×8子宏块的代价函数的代价值就是“当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的代价函数的代价值中的最小代价值”);
步骤304,如果Direct 8×8子宏块的代价函数的代价值大于第三阈值Th3,则计算8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值小于或等于第四阈值Th4,则选择与Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式(即选择第二子宏块集合作为当前子宏块集合,重复执行步骤104-107);
步骤305,如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与Direct 8×8子宏块、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式(即选择第三子宏块集合作为当前子宏块集合,重复执行步骤104-107,其中第三子宏块集合是最后一个子宏块集合)。
针对P帧的具体实施方式与B帧类似,只是不进行针对Direct 16×16宏块和Direct 8×8子宏块的代价值的计算和判断,例如,没有上述第一宏块集合和第一子宏块集合,只针对第二宏块集合和第二、第三子宏块集合执行图3中的步骤302、304、305,一个具体示例如图4所示。
图4示出了根据本发明实施例的针对P帧的一个示例的流程图,如图4所示,该示例包括:
依次针对当前帧对应的各宏块集合进行以下操作,包括:
步骤401,分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;
其中,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则依次针对当前帧对应的各子宏块集合进行以下操作,包括:
步骤402,计算8×8子宏块的代价函数的代价值,如果8×8子宏块的代价函数的代价值小于或等于第四阈值Th4,则选择8×8子宏块作为当前帧间编码模式;
步骤403,如果8×8子宏块的代价函数的代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
本领域技术人员应理解,“代价函数”是H.264标准中的概念,其可以是各种具体形式的代价函数,本领域技术人员可以根据实际需要进行选择。在一个示例中,代价函数Jmotion(RD)可定义如下,
Jmotion(RD)=D+λmotion×R (1)
D为原始图像像素值与重建图像像素值之差的绝对值之和,λmotion为与量化参数QP相关的值,R为评估得到的R值。
代价函数Jmotion(RD)可以采用本领域技术人员已知的代价函数,其代价值(即Jmotion(RD)的值)可以通过本领域技术人员已知的方式进行计算。
在一个示例中,λmotion与量化参数QP的关系可用如下公式表示:
λmotion=0.85×2(QP-12)/3。
其中QP是本领域技术人员所知的H.264标准中的量化参数。
D在H.264中也称为“绝对误差和”,表示的是原始图像经过编码和复原之后的失真度。
图5示出根据本发明一实施例的一个示例的基于H.264的帧间编码模式选择方法的流程图。在该示例中,可先判断待编码帧是B帧还是P帧(S501),如果待编码帧是P帧,则可分别计算16×16宏块、16×8宏块、8×16宏块的代价函数Jmotion(RD)的代价值J(16×16)、J(16×8)、J(8×16)(S504),如果待编码帧是B帧,则可计算Direct 16×16宏块的代价函数Jmotion(RD)的代价值J(Direct 16×16)(S502),如果Direct 16×16宏块的代价函数Jmotion(RD)的代价值小于或等于第一阈值Th1(S503,否),则可选择Direct 16×16宏块作为当前帧间编码模式(S515);如果Direct 16×16宏块的代价函数Jmotion(RD)的代价值大于第一阈值Th1(S503,是),则可分别计算16×16宏块、16×8宏块、8×16宏块的代价函数Jmotion(RD)的代价值(S504),可取代价值Jmin为Direct 16×16宏块(只针对B帧)、16×16宏块、16×8宏块、8×16宏块的代价函数Jmotion(RD)的代价值中的最小代价值(S505),如果该代价值Jmin小于或等于第二阈值Th2(S506,否),则可选择与Direct 16×16宏块(只针对B帧)、16×16宏块、16×8宏块、8×16宏块的代价函数Jmotion(RD)的代价值中的最小代价值对应的宏块作为当前帧间编码模式(S515);如果Direct 16×16宏块(只针对B帧)、16×16宏块、16×8宏块、8×16宏块的代价函数Jmotion(RD)的代价值中的最小代价值大于第二阈值Th2(S506,是),则可再一次判断待编码帧是B帧还是P帧(S507),如果待编码帧是P帧,则计算8×8子宏块的代价函数Jmotion(RD)的代价值J(8×8)(S510),如果待编码帧是B帧,则可计算Direct8×8子宏块的Jmotion(RD)的代价值J(Direct 8×8)(S508),如果Direct 8×8子宏块的代价函数Jmotion(RD)的代价值小于或等于第三阈值Th3(S509,否),则可选择Direct 8×8子宏块作为当前帧间编码模式(S515);如果Direct 8×8子宏块的代价函数Jmotion(RD)的代价值大于第三阈值Th3(S509,是),则可计算8×8子宏块的代价函数Jmotion(RD)的代价值J(8×8)(S510),可取代价值Jmin为Direct 8×8子宏块(只针对B帧)、8×8子宏块的Jmotion(RD)的代价值中的最小代价值(S511),如果该代价值Jmin小于或等于第四阈值Th4(S512,否),则可选择与Direct 8×8子宏块(只针对B帧)、8×8子宏块的代价函数Jmotion(RD)的代价值中的最小代价值对应的子宏块作为当前帧间编码模式(S515);如果Direct 8×8子宏块(只针对B帧)、8×8子宏块的代价函数Jmotion(RD)的代价值中的最小代价值大于第四阈值Th4(S512,是),则可分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数Jmotion(RD)的代价值J(8×4)、J(4×8)、J(8×8)(S513),可取代价值Jmin为Direct 8×8子宏块(只针对B帧)、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数Jmotion(RD)的代价值中的最小代价值(S514),选择与Direct 8×8子宏块(只针对B帧)、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数Jmotion(RD)的代价值中的最小代价值对应的子宏块作为当前帧间编码模式(S515)。
以上示例能够减少运动估计时间,进而减少编码时间,可在转码过程中高效率利用服务器资源,提高系统的资源优化,同时可在跨平台、低配置系统中实现H.264编码,对系统配置要求低,可支持H.264多平台下的硬件开发。
第一至第四阈值可以根据本领域技术人员的经验进行设置。以下给出根据本发明的示例的第一至第四阈值设置方式。
在一个示例中,所述第一阈值Th1可以为:
Th1=EMB-α1σMB 2 (2)
所述第二阈值Th2可以为:
Th2=EMB-α2σMB 2 (3)
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择(作为当前帧间编码模式)的次数(这里的“次数”例如是针对当前编码的帧、或当前编码的帧及其附近预定数量的帧进行统计的结果),代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α1、α2根据运算时间和视频失真度确定。
第一阈值Th1和第二阈值Th2可以是针对宏块的阈值,其中,第一阈值Th1可以是针对B帧的阈值,第二阈值Th2可以是针对B帧和P帧的阈值。在该示例中,为了有效的平衡运算复杂度和图像失真,采用了一种统计代价更新的自适应的阈值选取确定方法,例如在选取B帧或P帧中的某一个宏块作为当前帧间编码模式后,可将该宏块纳入阈值更新的统计范畴之内,进行阈值更新。例如,如果被选择为当前帧间编码模式的宏块的代价函数Jmotion(RD)的代价值比此前阈值统计范畴之内的所有宏块的最小代价值JMB(i)还小,则该宏块被纳入阈值更新的统计范畴之内后,会取代旧的最小代价值JMB(i),成为新的最小代价值JMB(i+1),从而实现阈值的自适应统计更新。
可基于对运算时间和视频失真度的不同要求,对参数α1、α2根据实际的统计经验进行适当调整。举例来说,如果要求运算时间较短,或者要求视频失真度可以较高,则可以适当减小α1、α2,以提高第一、第二阈值,使得判断过程尽快收敛,即尽量选择Dirct16×16等在判断流程中靠前的模式作为当前帧间编码模式,以视频失真度较高为代价,缩短运算时间,反之亦然。
在一个示例中,所述第三阈值Th3为:
Th3=EsubMB-α3σsubMB 2 (5)
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2 (6)
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择(作为当前帧间编码模式)的次数(这里的“次数”例如是针对当前编码的帧、或当前编码的帧及其附近预定数量的帧进行统计的结果),代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α3、α4根据运算时间和视频失真度确定。
第三阈值Th3和第四阈值Th4可以是针对子宏块的阈值,其中第三阈值Th3可以是针对B帧的阈值,第四阈值Th4可以是针对B帧和P帧的阈值。在该示例中,为了有效的平衡运算复杂度和图像失真,采用了一种统计代价更新的自适应的阈值选取确定方法,该阈值选取确定方法的原理与上一示例相似,为了简明起见,这里不再重复描述。
可以基于对运算时间和视频失真度的不同要求,对参数α3、α4根据实际的统计经验进行适当调整。举例来说,如果要求运算时间较短,或者要求视频失真度可以较高,则可以适当减小α3、α4,以提高第三、第四阈值,使得判断过程尽快收敛,即尽量选择Dirct8×8等在判断流程中靠前的模式作为当前帧间编码模式,以视频失真度较高为代价,缩短运算时间,反之亦然。
在一个示例中,如图5所示,所述的帧间编码模式选择方法还可包括:确定所述当前帧间编码模式后,可更新所述第一阈值Th1、所述第二阈值Th2、所述第三阈值Th3和所述第四阈值Th4(S516)。如上面示例所述,为了有效的平衡运算复杂度和图像失真,采用了一种统计代价更新的自适应的阈值选取确定方法,当选择某一个宏块或者子宏块作为当前帧间编码模式后,可将该宏块或者子宏块纳入阈值更新的统计范畴之内,进行阈值更新。
实施例2
图6示出根据本发明一实施例的基于H.264的帧间编码模式选择装置的结构图。该实施例的装置600可用于实现实施例1中方法中各步骤的操作,其中各种具体示例及其有益效果可参见实施例1,为简明起见这里不再重复描述。
如图6所示,该实施例的装置600主要包括:宏块集合处理部件601,用于依次针对当前帧对应的各宏块集合进行以下操作,包括:计算当前宏块集合中的各宏块的代价函数的代价值;取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值,在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;子宏块集合处理部件602,用于在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:计算当前子宏块集合中的各子宏块的代价函数的代价值;取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值,如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式,如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式。
在一个示例中,所述宏块集合处理部件还可用于:在所述最小代价值大于当前宏块集合的相应阈值的情况下,如果当前宏块集合不是所述各宏块集合中的最后一个宏块集合,将下一宏块集合作为当前宏块集合,并重复进行计算当前宏块集合中的各宏块的代价函数的代价值的操作。
在一个示例中,所述子宏块集合处理部件还可用于:如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值大于当前子宏块集合的相应阈值的情况下,将下一子宏块集合作为当前子宏块集合,并重复进行计算当前子宏块集合中的各子宏块的代价函数的代价值的操作。
在一个示例中,所述当前帧为B帧,所述宏块集合可包括包含Direct 16×16宏块的第一宏块集合和包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第一宏块集合的相应阈值为第一阈值Th1,第二宏块集合的相应阈值为第二阈值Th2,所述子宏块集合可包括包含Direct 8×8子宏块的第一子宏块集合,包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第一子宏块集合的相应阈值为第三阈值Th3,第二子宏块集合的相应阈值为第四阈值Th4;其中,所述宏块集合处理部件具体可用于:计算Direct 16×16宏块的代价函数的代价值,如果Direct 16×16宏块的代价函数的代价值小于或等于第一阈值Th1,则选择Direct 16×16宏块作为当前帧间编码模式;如果Direct 16×16宏块的代价函数的代价值大于第一阈值Th1,则分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;其中,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则所述子宏块集合处理部件具体可用于:计算Direct 8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块的代价函数的代价值小于或等于第三阈值Th3,则选择Direct 8×8子宏块作为当前帧间编码模式;如果Direct 8×8子宏块的代价函数的代价值大于第三阈值Th3,则计算8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值小于或等于第四阈值Th4,则选择与Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式;如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与Direct 8×8子宏块、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
在一个示例中,所述当前帧是P帧,所述宏块集合可包括包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第二宏块集合的相应阈值为第二阈值Th2;所述子宏块集合可包括包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第二子宏块集合的相应阈值为第四阈值Th4;其中,所述宏块集合处理部件具体可用于:分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;其中,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则所述子宏块集合处理部件具体可用于:计算8×8子宏块的代价函数的代价值,如果8×8子宏块的代价函数的代价值小于或等于第四阈值Th4,则选择8×8子宏块作为当前帧间编码模式;如果8×8子宏块的代价函数的代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
在一个示例中,所述第一阈值Th1为:
Th1=EMB-α1σMB 2
所述第二阈值Th2为:
Th2=EMB-α2σMB 2
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择的次数,代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α1、α2根据运算时间和视频失真度确定;
所述第三阈值Th3为:
Th3=EsubMB-α3σsubMB 2
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数,代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α3、α4根据运算时间和视频失真度确定。
在一个示例中,所述代价函数Jmotion(RD)的定义如下,
Jmotion(RD)=D+λmotion×R
D为原始图像像素值与重建图像像素值之差的绝对值之和,λmotion为与量化参数QP相关的值,R为评估得到的R值。
在一个示例中,所述装置600还可包括:阈值更新部件,可用于确定所述当前帧间编码模式后,更新所述第一阈值Th1、所述第二阈值Th2、所述第三阈值Th3和所述第四阈值Th4。
实施例3
图7示出了本发明的另一个实施例的一种基于H.264的帧间编码模式选择设备的结构框图。所述帧间编码模式选择设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述帧间编码模式选择设备1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于实现实施例1所述的方法。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种基于H.264的帧间编码模式选择方法,其特征在于,所述方法包括:
依次针对当前帧对应的各宏块集合进行以下操作,包括:
计算当前宏块集合中的各宏块的代价函数的代价值;
取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值;
在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;
在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:
计算当前子宏块集合中的各子宏块的代价函数的代价值;
取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值;
如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式;
如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式;
其中,若所述当前帧为B帧,则所述子宏块集合包括包含Direct 8×8子宏块的第一子宏块集合,包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第一子宏块集合的相应阈值为第三阈值Th3,第二子宏块集合的相应阈值为第四阈值Th4;
若所述当前帧为B帧,则在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:
计算Direct 8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块的代价函数的代价值小于或等于第三阈值Th3,则选择Direct 8×8子宏块作为当前帧间编码模式;
如果Direct 8×8子宏块的代价函数的代价值大于第三阈值Th3,则计算8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值小于或等于第四阈值Th4,则选择与Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式;
如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与Direct 8×8子宏块、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
2.根据权利要求1所述的帧间编码模式选择方法,其特征在于,依次针对当前帧对应的各宏块集合进行以下操作,还包括:
在所述最小代价值大于当前宏块集合的相应阈值的情况下,如果当前宏块集合不是所述各宏块集合中的最后一个宏块集合,则将下一宏块集合作为当前宏块集合,并重复进行计算当前宏块集合中的各宏块的代价函数的代价值的操作。
3.根据权利要求1所述的帧间编码模式选择方法,其特征在于,依次针对当前帧对应的各子宏块集合进行以下操作,还包括:
如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值大于当前子宏块集合的相应阈值的情况下,将下一子宏块集合作为当前子宏块集合,并重复进行计算当前子宏块集合中的各子宏块的代价函数的代价值的操作。
4.根据权利要求1所述的帧间编码模式选择方法,其特征在于:
所述当前帧为B帧,所述宏块集合包括包含Direct 16×16宏块的第一宏块集合和包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第一宏块集合的相应阈值为第一阈值Th1,第二宏块集合的相应阈值为第二阈值Th2;
其中,依次针对当前帧对应的各宏块集合进行以下操作,包括:
计算Direct 16×16宏块的代价函数的代价值,如果Direct 16×16宏块的代价函数的代价值小于或等于第一阈值Th1,则选择Direct 16×16宏块作为当前帧间编码模式;
如果Direct 16×16宏块的代价函数的代价值大于第一阈值Th1,则分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;
其中,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则依次针对当前帧对应的各子宏块集合进行操作。
5.根据权利要求1所述的帧间编码模式选择方法,其特征在于,
所述当前帧是P帧,所述宏块集合包括包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第二宏块集合的相应阈值为第二阈值Th2;所述子宏块集合包括包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第二子宏块集合的相应阈值为第四阈值Th4;
其中,依次针对当前帧对应的各宏块集合进行以下操作,包括:
分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;
其中,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则依次针对当前帧对应的各子宏块集合进行以下操作,包括:
计算8×8子宏块的代价函数的代价值,如果8×8子宏块的代价函数的代价值小于或等于第四阈值Th4,则选择8×8子宏块作为当前帧间编码模式;
如果8×8子宏块的代价函数的代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
6.根据权利要求4所述的帧间编码模式选择方法,其特征在于,
所述第一阈值Th1为:
Th1=EMB-α1σMB 2
所述第二阈值Th2为:
Th2=EMB-α2σMB 2
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择的次数,代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α1、α2根据运算时间和视频失真度确定;
所述第三阈值Th3为:
Th3=EsubMB-α3σsubMB 2
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数,代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α3、α4根据运算时间和视频失真度确定。
7.根据权利要求5所述的帧间编码模式选择方法,其特征在于,
所述第二阈值Th2为:
Th2=EMB-α2σMB 2
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择的次数,代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α2根据运算时间和视频失真度确定;
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数,代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α4根据运算时间和视频失真度确定。
8.根据权利要求1至7中任意一项所述的帧间编码模式选择方法,其特征在于,所述代价函数的定义如下,
Jmotion(RD)=D+λmotion×R
Jmotion(RD)为代价函数,D为原始图像像素值与重建图像像素值之差的绝对值之和,λmotion为与量化参数QP相关的值,R为评估得到的R值。
9.一种基于H.264的帧间编码模式选择装置,其特征在于,所述装置包括:
宏块集合处理部件,用于依次针对当前帧对应的各宏块集合进行以下操作,包括:
计算当前宏块集合中的各宏块的代价函数的代价值;
取当前宏块集合以及该当前宏块集合之前的宏块集合中的各宏块的上述代价值中的最小代价值;
在所述最小代价值小于或等于当前宏块集合的相应阈值的情况下,选择与该最小代价值相对应的宏块作为当前帧间编码模式;
子宏块集合处理部件,用于在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,针对当前帧对应的各子宏块集合进行以下操作,包括:
计算当前子宏块集合中的各子宏块的代价函数的代价值;
取当前子宏块集合以及该当前子宏块集合之前的子宏块集合中的各子宏块的上述代价值中的最小代价值;
如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值小于或等于当前子宏块集合的相应阈值的情况下,选择与该最小代价值相对应的子宏块作为当前帧间编码模式;
如果当前子宏块集合是最后一个子宏块集合,则选择与该最小代价值相对应的子宏块作为当前帧间编码模式;
其中,若所述当前帧为B帧,则所述子宏块集合包括包含Direct 8×8子宏块的第一子宏块集合,包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第一子宏块集合的相应阈值为第三阈值Th3,第二子宏块集合的相应阈值为第四阈值Th4;
若所述当前帧为B帧,则在当前宏块集合为所述各宏块集合中的最后一个宏块集合,且所述最小代价值大于当前宏块集合的相应阈值的情况下,所述子宏块集合处理部件,具体用于:
计算Direct 8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块的代价函数的代价值小于或等于第三阈值Th3,则选择Direct 8×8子宏块作为当前帧间编码模式;
如果Direct 8×8子宏块的代价函数的代价值大于第三阈值Th3,则计算8×8子宏块的代价函数的代价值,如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值小于或等于第四阈值Th4,则选择与Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式;
如果Direct 8×8子宏块、8×8子宏块的代价函数的代价值中的最小代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与Direct 8×8子宏块、8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
10.根据权利要求9所述的帧间编码模式选择装置,其特征在于,所述宏块集合处理部件还用于:
在所述最小代价值大于当前宏块集合的相应阈值的情况下,如果当前宏块集合不是所述各宏块集合中的最后一个宏块集合,将下一宏块集合作为当前宏块集合,并重复进行计算当前宏块集合中的各宏块的代价函数的代价值的操作。
11.根据权利要求9所述的帧间编码模式选择装置,其特征在于,所述子宏块集合处理部件还用于:
如果当前子宏块集合不是最后一个子宏块集合,则在所述最小代价值大于当前子宏块集合的相应阈值的情况下,将下一子宏块集合作为当前子宏块集合,并重复进行计算当前子宏块集合中的各子宏块的代价函数的代价值的操作。
12.根据权利要求9所述的帧间编码模式选择装置,其特征在于:
所述当前帧为B帧,所述宏块集合包括包含Direct 16×16宏块的第一宏块集合和包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第一宏块集合的相应阈值为第一阈值Th1,第二宏块集合的相应阈值为第二阈值Th2;
其中,所述宏块集合处理部件具体用于:
计算Direct 16×16宏块的代价函数的代价值,如果Direct 16×16宏块的代价函数的代价值小于或等于第一阈值Th1,则选择Direct 16×16宏块作为当前帧间编码模式;
如果Direct 16×16宏块的代价函数的代价值大于第一阈值Th1,则分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;
其中,如果Direct 16×16宏块、16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则所述子宏块集合处理部件执行操作。
13.根据权利要求9所述的帧间编码模式选择装置,其特征在于,
所述当前帧是P帧,所述宏块集合包括包含16×16宏块、16×8宏块、8×16宏块的第二宏块集合,第二宏块集合的相应阈值为第二阈值Th2;所述子宏块集合包括包含8×8子宏块的第二子宏块集合,以及包含8×4子宏块、4×8子宏块、4×4子宏块的第三子宏块集合;第二子宏块集合的相应阈值为第四阈值Th4;
其中,所述宏块集合处理部件具体用于:
分别计算16×16宏块、16×8宏块、8×16宏块的代价函数的代价值,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值小于或等于第二阈值Th2,则选择与16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值对应的宏块作为当前帧间编码模式;
其中,如果16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值大于第二阈值Th2,则所述子宏块集合处理部件具体用于:
计算8×8子宏块的代价函数的代价值,如果8×8子宏块的代价函数的代价值小于或等于第四阈值Th4,则选择8×8子宏块作为当前帧间编码模式;
如果8×8子宏块的代价函数的代价值大于第四阈值Th4,则分别计算8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值,选择与8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值对应的子宏块作为当前帧间编码模式。
14.根据权利要求12所述的帧间编码模式选择装置,其特征在于,
所述第一阈值Th1为:
Th1=EMB-α1σMB 2
所述第二阈值Th2为:
Th2=EMB-α2σMB 2
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择的次数,代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α1、α2根据运算时间和视频失真度确定;
所述第三阈值Th3为:
Th3=EsubMB-α3σsubMB 2
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数,代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α3、α4根据运算时间和视频失真度确定。
15.根据权利要求13所述的帧间编码模式选择装置,其特征在于,
所述第二阈值Th2为:
Th2=EMB-α2σMB 2
其中,
nMB是16×16宏块、16×8宏块、8×16宏块被选择的次数,代价值JMB(i)是16×16宏块、16×8宏块、8×16宏块被选择的次数为i时,被选择的16×16宏块、16×8宏块、8×16宏块的代价函数的代价值中的最小代价值,α2根据运算时间和视频失真度确定;
所述第四阈值Th4为:
Th4=EsubMB-α4σsubMB 2
其中,
nsubMB是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数,代价值JsubMB(i)是8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块被选择的次数为i时,被选择的8×8子宏块、8×4子宏块、4×8子宏块、4×4子宏块的代价函数的代价值中的最小代价值,α4根据运算时间和视频失真度确定。
16.根据权利要求9至15中任意一项所述的帧间编码模式选择装置,其特征在于,所述代价函数的定义如下,
Jmotion(RD)=D+λmotion×R
Jmotion(RD)为代价函数,D为原始图像像素值与重建图像像素值之差的绝对值之和,λmotion为与量化参数QP相关的值,R为评估得到的R值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610642532.4A CN106101701B (zh) | 2016-08-08 | 2016-08-08 | 基于h.264的帧间编码模式选择方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610642532.4A CN106101701B (zh) | 2016-08-08 | 2016-08-08 | 基于h.264的帧间编码模式选择方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101701A CN106101701A (zh) | 2016-11-09 |
CN106101701B true CN106101701B (zh) | 2019-05-14 |
Family
ID=57454607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610642532.4A Expired - Fee Related CN106101701B (zh) | 2016-08-08 | 2016-08-08 | 基于h.264的帧间编码模式选择方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101701B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179728A (zh) * | 2007-12-13 | 2008-05-14 | 北京中星微电子有限公司 | 帧间编码模式确定方法及装置 |
CN101207810A (zh) * | 2006-12-21 | 2008-06-25 | 联想(北京)有限公司 | 一种h264视频编码快速模式选择方法和装置 |
CN101480056A (zh) * | 2006-06-30 | 2009-07-08 | 诺基亚公司 | 为资源受限设备中的视频编码提供快速帧间模式决策的方法、装置和计算机程序产品 |
EP1610561A3 (en) * | 2004-06-27 | 2010-07-21 | Apple Inc. | Encoding and decoding images |
CN104980737A (zh) * | 2014-04-01 | 2015-10-14 | 扬智科技股份有限公司 | 帧间模式选择方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9100656B2 (en) * | 2009-05-21 | 2015-08-04 | Ecole De Technologie Superieure | Method and system for efficient video transcoding using coding modes, motion vectors and residual information |
-
2016
- 2016-08-08 CN CN201610642532.4A patent/CN106101701B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1610561A3 (en) * | 2004-06-27 | 2010-07-21 | Apple Inc. | Encoding and decoding images |
CN101480056A (zh) * | 2006-06-30 | 2009-07-08 | 诺基亚公司 | 为资源受限设备中的视频编码提供快速帧间模式决策的方法、装置和计算机程序产品 |
CN101207810A (zh) * | 2006-12-21 | 2008-06-25 | 联想(北京)有限公司 | 一种h264视频编码快速模式选择方法和装置 |
CN101179728A (zh) * | 2007-12-13 | 2008-05-14 | 北京中星微电子有限公司 | 帧间编码模式确定方法及装置 |
CN104980737A (zh) * | 2014-04-01 | 2015-10-14 | 扬智科技股份有限公司 | 帧间模式选择方法 |
Non-Patent Citations (4)
Title |
---|
Fast Inter-Mode Selection in the H.264/AVC Standard Using a Hierarchical Decision Process;Andy Chia et al;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》;20080215;第18卷;全文 |
低复杂度的H.264 帧间宏块编码模式选择算法;董海燕;《计算机工程》;20060630;第32卷(第12期);第221-222页 |
基于 H.264 的多视点视频编码快速算法研究;黄君婷;《中国优秀硕士论文全文数据库—信息科技辑》;20140815;第5.1节 |
基于AVS-M的帧间预测算法研究;李翠苹;《中国优秀硕士论文全文数据库—信息科技辑》;20090215;第3.5.5节 |
Also Published As
Publication number | Publication date |
---|---|
CN106101701A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104768011B (zh) | 图像编解码方法和相关装置 | |
CN103096071B (zh) | 导出运动信息的方法 | |
TWI538521B (zh) | 用於減少區塊邊界處之區塊效應假影之方法、解塊濾波器單元、編碼器、解碼器、使用者設備、網路器件、電腦程式及電腦程式產品 | |
CN104469365B (zh) | 一种视频编码装置和方法 | |
CN104581159B (zh) | 视频编解码中的块分割方式确定方法及相关装置 | |
CN103957341B (zh) | 图片传输的方法及其相关设备 | |
CN108848387A (zh) | 推导参考预测模式值的方法 | |
CN104168480B (zh) | 基于hevc标准的帧内预测编码模式快速选择方法 | |
CN108111853A (zh) | 合并模式下的图像重构方法 | |
CN106170092A (zh) | 用于无损编码的快速编码方法 | |
KR102214937B1 (ko) | 디블로킹 필터 방법 및 장치 | |
CN104823446B (zh) | 图像处理装置、图像处理方法 | |
CN107005698A (zh) | 支持尽力服务解码的元数据提示 | |
CN106331700B (zh) | 参考图像编码和解码的方法、编码设备和解码设备 | |
CN108777794A (zh) | 图像的编码方法和装置、存储介质、电子装置 | |
CN108353175A (zh) | 使用系数引起的预测处理视频信号的方法和装置 | |
CN110419215A (zh) | 支援离线cabac的视频编码工序的基于比特预测的比特率控制方法及其装置 | |
CN109963151A (zh) | 编码单元划分确定方法及装置、终端设备及可读存储介质 | |
CN104954787B (zh) | Hevc帧间预测模式选择方法及装置 | |
CN112738511A (zh) | 一种结合视频分析的快速模式决策方法及装置 | |
CN104883566A (zh) | 一种适用于hevc标准的帧内预测块大小划分的快速算法 | |
CN108347602A (zh) | 用于无损压缩视频数据的方法和装置 | |
CN109302616A (zh) | 一种基于rc预测的hevc帧间预测快速算法 | |
TW201127066A (en) | Image-processing device and method | |
WO2019214373A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200514 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 200241, room 2, floor 02, building 555, Dongchuan Road, Minhang District, Shanghai Patentee before: Transmission network technology (Shanghai) Co., Ltd |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190514 Termination date: 20200808 |
|
CF01 | Termination of patent right due to non-payment of annual fee |