CN116980608A - 一种帧类型确定方法、装置及计算机设备、介质、产品 - Google Patents
一种帧类型确定方法、装置及计算机设备、介质、产品 Download PDFInfo
- Publication number
- CN116980608A CN116980608A CN202311050489.9A CN202311050489A CN116980608A CN 116980608 A CN116980608 A CN 116980608A CN 202311050489 A CN202311050489 A CN 202311050489A CN 116980608 A CN116980608 A CN 116980608A
- Authority
- CN
- China
- Prior art keywords
- frame
- coding
- current
- cost
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000003780 insertion Methods 0.000 claims abstract description 126
- 230000037431 insertion Effects 0.000 claims abstract description 126
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 85
- 230000033001 locomotion Effects 0.000 claims description 82
- 238000003860 storage Methods 0.000 claims description 49
- 230000008859 change Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 17
- 230000000694 effects Effects 0.000 abstract description 16
- 238000005516 engineering process Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 16
- 230000006835 compression Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000004438 eyesight Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
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/169—Methods 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/177—Methods 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]
-
- 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
-
- 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/169—Methods 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/17—Methods 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/176—Methods 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
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种帧类型确定方法、装置及计算机设备、介质、产品,方法包括:确定将当前编码帧编码成双向预测帧的第一编码代价、编码成前向预测帧的第二编码代价;根据当前编码帧和当前编码帧的前一帧确定前向差异参数,根据当前编码帧和当前编码帧的后一帧确定后向差异参数;若前向差异参数满足第一插入倾向值调整条件,且后向差异参数满足第二插入倾向值调整条件,则对双向预测帧插入倾向值进行调整,并利用调整后的双向预测帧插入倾向值确定调整后的第一编码代价;根据第二编码代价和调整后的第一编码代价确定当前编码帧的帧类型。通过当前编码帧的前后帧来确定当前编码帧的帧类型,从而提升前后差异不大的视频的视频编码效果。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种帧类型确定方法、一种帧类型确定装置、一种计算机设备、一种计算机可读存储介质以及一种计算机程序产品。
背景技术
视频编码就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。在这个过程中,编码器将多张图像进行编码后生产成一段一段的图像组(Groupof Pictures,GOP),解码器在播放时则是读取一段一段的GOP进行解码后读取画面再渲染显示。其中,GOP是一组连续的画面,由一张关键帧(I帧)和数张双向预测帧(B帧)/前向预测帧(P帧)组成,是视频图像编码器和解码器存取的基本单位,因此,GOP的构造过程尤为重要。
目前,一个GOP通常是由一个I帧和数张B/P帧组成,其中,连续B帧的最大个数是固定的,编码器自主抉择连续B帧的个数,但是无法兼顾在动态场景和静态场景均抉择出最佳的连续B帧个数。因此,这样的构成方式对于一些前后差距比较大或前后差距极小的场景并不适用,可能会导致视频编码后的效果较差。因此,如何提高视频编码效果成为亟待解决的技术问题。
发明内容
本申请实施例提供了一种帧类型确定方法、装置及计算机设备、介质、产品,通过当前帧编码帧的前后帧来确定当前帧的帧类型,可以增加前后差异不大的视频在编码过程中的双向预测帧的数量,从而提升视频编码的整体效果。
本申请实施例一方面公开了一种帧类型确定方法,该方法包括:
确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
本申请实施例一方面公开了一种帧类型确定装置,该装置包括:
确定单元,用于确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
所述确定单元,还用于根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
处理单元,用于若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
所述确定单元,还用于根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
本申请实施例一方面公开了一种计算机设备,该计算机设备包括处理器,适于实现一条或多条计算机程序;以及,计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行以上述的帧类型确定方法。
本申请实施一方面公开了一种计算机可读存储介质,该计算机可读存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行上述的帧类型确定方法。
本申请实施例一方面公开了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述的帧类型确定方法。
本申请实施例中,通过当前编码帧与当前编码帧的前一帧和当前编码帧的后一帧之间的差异参数,来确定是否需要对当前编码帧的双向预测帧插入倾向值进行调整。若是需要调整,则根据调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价(将当前编码帧编码成双向预测帧的代价)进行调整,最后再根据调整后的第一编码代价和当前编码帧的第二编码代价(将当前编码帧编码成前向预测帧的代价)确定当前编码帧的帧类型。由此,通过对帧类型判断来确定各类帧的数量,可以增加前后差异不大的视频在编码过程中的双向预测帧的数量,双向预测帧越多,可以使得压缩效率提高,从而使得视频编码后的视频的效果更好。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例公开的一种帧类型确定系统的网络架构示意图;
图2是本申请实施例公开的一种帧类型确定方法的流程示意图;
图3是本申请实施例公开的另一种帧类型确定方法的流程示意图;
图4是本申请实施例公开的一种视频帧序列的示意图;
图5是本申请实施例公开的一种帧类型确定装置的结构示意图;
图6是本申请实施例公开的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚地理解本申请实施例所提供的技术方案,在此先对本申请实施例涉及的一些关键术语进行介绍:
一、人工智能
人工智能(Artificial Intelligence,AI)是指利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。AI技术是一门综合学科,其涉及的领域较为广泛。其中,人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。而本申请实施例提供的帧类型确定方法主要涉及AI技术中的计算机视觉技术(Computer Vision,CV)中的视频处理技术。
二、云技术
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。数据库(Data base),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
三、区块链
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
四、视频编码
视频编码就是指通过压缩技术,是在减少视频数据体积或码率的同时而不对其质量产生不良影响(在人类的视觉感知下)的技术。可以理解成视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。
其中,H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大大降低了人们使用H264的成本。H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括:
1、帧内预测压缩,解决的是空域数据冗余问题;
2、帧间预测压缩(运动估计与补偿),解决的是时域数据冗余问题。
3、离散余弦变换(DCT),将空间上的相关性变为频域的数据然后进行量化;
4、CABAC压缩(自适应二进制算术编码)。
经过压缩后的帧分为I帧、P帧以及B帧:
I帧:翻译为Intra-coded frame,即关键帧,采用帧内压缩技术。解码时只需要本帧数据就可以完成,不需要参考其他画面,I帧是P帧和B帧的参考帧,其质量直接影响到GOP中以后各帧的质量,在一个GOP中只有一个I帧;
P帧:翻译为Predicted frame,前向预测帧,在压缩时,只参考前面已经处理的帧。采用帧间压缩技术,表示的是这一帧跟前面参考帧的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终的画面(也就是差别帧,P帧没有完整的画面数据,只有与前一帧的画面差别的数据);
B帧:翻译为Bidirectional frame,双向预测帧,也就是本帧与前后帧的差别,在压缩时,它既参考前而的帧,又参考它后面的帧。采用帧间压缩技术。要解码B帧,不仅要取得之前的缓存画面,而且要通过前后的画面与本帧数据的叠加取得最终的画面。
除了I/P/B帧外,还有图像组(Group of Pictures,GOP)。GOP:两个I帧之间是一个图像组,在一个图像组中只有一个I帧。也就是说,GOP是一组连续的画面,由一张I帧和数张B/P帧组成,是视频图像编码器和解码器存取的基本单位,因此,GOP的构造过程尤为重要。本申请实施例主要阐述的是如何确定帧类型,进而进行GOP的构造。
五、B帧自适应
当设置P帧间隔后,例如bframes=7,也即两个P之间最多有7个B帧。若关闭B帧自适应,则每两个P帧之间的B帧个数固定为7,当开启B帧自适应后,会根据视频内容动态的调整B帧的个数,但最多不会超过7。
六、b-bias
B帧插入倾向值,在开启B帧自适应时,编码器对一帧进行P帧和B帧的决策时,如果调大该值,则该帧将有更大的几率被判定为B帧。该倾向值一般是固定的。
七、编码效果的指标
BD-rate(Bjontegaard-Delta rate):用于评价不同的视频编码器RD(率失真)性能。BD-rate值为负时,表示视频指标一致条件下,码率减少,性能提高。BD-rate值为正时,码率增加,性能下降。视频指标包括PSNR、SSIM以及VMAF。例如,PSNR BD-rate表示PSNR对齐时的码率变动情况。下面对几个视频指标进行阐述:
PSNR(Peak Signal-to-Noise Ratio,峰值信噪比):是衡量图像质量的指标之一,PSNR的物理含义就是信号的峰值与平均误差的比值,如果误差越小,那么PSNR值越高。如果完全没有误差,那么PSNR值就是无穷大。对于图像数据来说,通常有Y、U、V三个分量,可以对三个分量各自计算PSNR。也可以把三个分量的PSNR值以一定的权重加起来作为总的PSNR值。对于整个视频来说,可以计算单帧的PSNR值,然后平均。
SSIM(Structural Similarity,结构相似性):是一种衡量两幅图像相似度的指标。SSIM使用的两张图像中,一张为未经压缩的无失真图像,另一张为失真后的图像。
VMAF(Visual Multimethod Assessment Fusion,视频质量多方法评价融合):是一种视频质量指标,将人类视觉建模与机器学习相结合。
针对上述技术,我们可以得知,在现在的视频编码技术中,设置了P帧间隔以及开启B帧自适应后,会根据B帧插入倾向值的对P帧和B帧的编码代价进行计算,但由于B帧插入倾向值是固定的,因此,对于一些比较简单的视频来说,可能会导致编码效果较差。因此本申请实施例提供了一种帧类型确定方法,该方法包括:①确定当前编码帧的第一编码代价和第二编码代价,第一编码代价为将当前编码帧编码成双向预测帧的代价,第二编码代价为将当前编码帧编码成前向预测帧的代价。②根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,以及根据当前编码帧和当前编码帧的后一帧确定当前编码帧的后向差异参数。③若前向差异参数满足第一插入倾向值调整条件,且后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。根据当前编码帧的和前后编码帧之间的差异来确定当前编码帧的双向预测帧插入倾向值是否需要调整,进而通过调整后的双向预测帧插入倾向值来确定当前编码帧编码成双向编码帧的代价。④根据第二编码代价和调整后的第一编码代价确定当前编码帧的帧类型。最后根据调整后的代价来确定当前编码帧的帧类型,通过这样的方法实现对双向预测帧插入倾向值的动态调整,增加前后差异不大的视频在编码过程中的双向预测帧的数量,从而提升视频编码的效果。
在一种可能的实现方式中,本申请提供的帧类型确定方法可以基于人工智能技术实现。具体可以涉及人工智能技术中的计算机视觉技术中的视频处理技术。可将视频处理技术应用于同步定位与地图构建、自动驾驶、智慧交通等技术中。
在一种可能的实现方式中,本申请提供的帧类型确定方法可以基于云技术实现。具体可以涉及云技术中的云存储(Cloud storage)、云数据库(Cloud Database)、大数据(Big data)中的一种或者多种。例如,从云数据库中获取执行该帧类型确定方法所需要的数据(例如当前编码帧、当前编码帧的前一帧以及当前编码帧的后一帧等)。
在一种可能的实现方式中,本申请提供的帧类型确定方法还可以基于区块链技术实现。例如,执行该帧类型确定方法所需要的数据可以是以区块的形式存储在区块链上;也可以将执行该帧类型确定方法所产生的数据(例如当前编码帧的前向差异参数、后面差异数据以及调整后的双向预测帧插入倾向值等)以区块的形式存储到区块链上;另外,执行该帧类型确定方法的帧类型确定设备可以是区块链网络中的节点设备。
请参见图1,为本申请实施例公开的一种帧类型确定系统的架构示意图,该帧类型确定系统中可以包括第一终端设备101、多个第二终端设备102以及服务器103。第一终端设备101和多个第二终端设备102对应不同的用户,例如,在直播场景中,第一终端设备101对应的用户可以是主播,主播在第一终端设备101进行视频的实时录制;第二终端设备102对应的用户可以是观众,如图1所示,观众A通过其中一个第二终端设备102进行视频的观看,观众B通过另一个第二终端设备102进行视频的观看。服务器103主要用于对第一终端设备101录制的视频进行编解码处理,从而得到压缩后的视频,并将压缩后的视频发送到多个第二终端设备102,以使得第二终端设备102的观众可以观看该视频。
在一种实施方式中,第一终端设备101和第二终端设备102包括但不限于:智能手机、平板电脑、智能可穿戴设备、智能语音交互设备、智能家电、个人电脑、车载终端、智能摄像头、虚拟现实设备(如AR(Augmented Reality,增强现实)设备)等等设备,本申请对此不作限制。服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不进行限定。第一终端设备101和第二终端设备102都可以与服务器103通过有线通信的方式建立直接地通信连接,或者可以通过无线通信的方式建立间接地通信连接,本申请实施例对此不进行限定。
在本申请实施例中,结合该帧类型确定系统,帧类型确定方法可以包括:服务器103从第一终端设备101获取待编码视频,针对待编码视频中的当前编码帧,服务器103先确定将当前编码帧编码成双向预测帧的第一编码代价,以及将当前编码帧编码成前向预测帧的第二编码代价;然后根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,以及根据当前编码帧和当前编码帧的后一帧确定当前编码帧的后向差异参数。若是前向差异参数满足第一插入倾向值调整条件,且后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。最后在根据第二编码代价和调整后的第一编码代价确定当前编码帧的帧类型。按照该步骤将待编码视频中的每个视频帧进行帧类型的判断,从而确定编码图像组我,完成对视频的编码,最后将编码后的视频发送到第二终端设备102,以使得第二终端设备102的用户观看该视频。通过上述方法在编码过程中,通过当前编码帧的前后帧之前的差异,动态地对双向预测帧插入倾向值进行调整,可以增加视频编码中双向预测帧的数量,从而使得编码后得到的视频的效果更好。
在一种实现方式中,可以将该帧类型确定方法应用于以下内容前后差距不大的视频的应用场景,例如视频直播场景以及视频点播场景等。基于该帧类型确定方法对视频进行编码后,可以使得编码效果更好。如表1所示,是本申请实施例在采用本申请的帧类型确定方法后,在视频直播场景和视频点播场景化直观地效果展示,主要展示的是测试序列的PSNR、SSIM以及VMAF对应的BD-rate提升情况。
表1
从表1可以看出,可以看出采用本申请的帧类型确定方法后的编码后的PSNR,SSIM,VMAF对应的码率都有一定的提升,如第三行数据,在测试类别为“点播性能测试”、码控方式为“vbv+crf”、测试集为“living(19)”时,若psnr一致,采用本申请实施例提供的方法后,码率节约了2.56%;若ssim一致,采用本申请实施例提供的方法后,码率节约了3.58%;若vmaf一致,采用本申请实施例提供的方法后,码率节约了1.86%。其他测试类别数据就不再一一解释了,从表1可以看出,采用本申请实施例提供的方法后,对不同的测试类别进行了测试,编码效果都得到了一定的提升。
需要特别说明的是,在本申请中,涉及到的帧类型确定过程中的相关数据,例如当前编码帧、当前编码帧的前一帧、当前编码帧的后一帧、第一插入倾向值调整条件以及第二插入倾向值调整条件等。在本申请以上实施例运用到具体产品或技术中时,需获得用户许可或同意,且相关数据收集、使用和处理过程需遵守相关法律法规和标准,符合合法、正当、必要的原则,不涉及获取法律法规禁止或限制的数据类型。在一些可选的实施例中,本申请实施例中所涉及的相关数据是经过对象单独授权后获取的,另外,在获取对象单独授权时,向对象表明所涉及的相关数据的用途。
下面将对本申请实施例提出的帧类型确定方法进行详细介绍。
请参见图2,为本申请实施例公开的一种帧类型确定方法的流程示意图,该帧类型确定方法可以由计算机设备执行,计算机设备可以是图1示出的服务器103,该帧类型确定方法具体可以包括但不仅限于以下步骤:
S201:确定当前编码帧的第一编码代价和第二编码代价,第一编码代价为将当前编码帧编码成双向预测帧的代价,第二编码代价为将当前编码帧编码成前向预测帧的代价。
编码器在接收到待编码视频后,先将待编码视频划分成视频帧序列,根据视频帧序列来构建GOP。在使用H264协议进行编码时,为获得更大的压缩比,一般会允许编码成B帧,并且会开启B帧自适应,由编码器判定当前编码帧作为B帧合适,还是P帧合适。因此,在每个GOP中,除了第一帧是I帧外,GOP中的其他视频帧都需要进行判断,判定当前编码帧作为B帧合适,还是P帧合适。
以当前编码帧为例,先分别计算将当前编码帧编码成双向预测帧(B帧)的第一编码代价,将当前编码帧编码成前向预测帧(P帧)的第二编码代价。第一编码代价和第二编码代价的计算过程包括:先对当前编码帧进行降采样处理;然后对降采样处理后的编码帧进行运动搜索和运动补偿,得到每个宏块的残差;将每个宏块的残差进行哈达玛变换,得到每个宏块的哈达玛值;再通过每个宏块的哈达玛值和每个宏块的整体误差确定每个宏块的编码代价;最后将所有宏块的编码代价进行相加,得到当前编码帧的编码代价。其中,编码成B帧和P帧的参考帧不同,因此对应的运动搜索方向不同,所以得到的宏块的残差也是不同的。在本申请实施例中,可以令第一编码代价为cost_B,令第二编码代价为cost_P。
当前编码帧的帧类型取决于cost_B和cost_P的大小关系。若cost_P<cost_B,则判定当前编码帧为P帧,若cost_P>cost_B,则判定当前编码帧为B帧。若是采用现有技术,则可以直接确定出当前编码帧的帧类型,但本申请不仅开启了B帧自适应,还开启了自适应调整B帧插入倾向值。因此,在确定出cost_B后,还会根据当前编码帧的运动情况和变化程度对B帧插入倾向值进行调整,从而通过调整后的B帧插入倾向值对cost_B进行调整。当前编码帧相对于前后帧的运动情况和变化程度具体参见步骤S202。
S202:根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,以及根据当前编码帧和当前编码帧的后一帧确定当前编码帧的后向差异参数。
在一种可能的实现方式中,根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,若前向差异参数包括前向变化程度,此时,根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,包括:确定将当前编码帧预编码为关键帧的第一参考编码代价,也就是,将当前编码帧编码成I帧所耗费的代价,其计算过程可以参见第一编码代价和第二编码代价。在本申请中,可以令第一参考编码代价cost_I_current。对于当前编码帧,以当前编码帧的前一帧为参考帧,计算将当前编码帧编码成P的编码代价,即第二编码代价cost_P。然后基于第一参考编码代价与第二编码代价来确定当前编码帧相对于前一帧的变化情况,即前向变化程度,先确定第二编码代价和第一参考编码代价之间的第一比值,可以用公式(1)表示:
ratio_current=cost_P/cost_I_current (1)
其中,ratio_current表示第一比值,反映的是前一帧到当前编码帧的变化情况。该值越大,即cost_P越大,表示前一帧到当前编码帧变化越剧烈;反之,如果该值越小,即编码成p帧的cost_P很小,说明编码的残差和耗费的mv等都很小,说明前一帧和当前编码帧之间的差异很小,即一段时间内帧内容基本无变化。最后,根据第一比值和第一变化程度阈值确定当前编码帧的前向变化程度。
进一步的,若前向变化程度指示第一比值小于第一变化程度阈值,则确定前向差异参数满足第一插入倾向值调整条件。若前向变化程度指示第一比值大于或者等于第一变化程度阈值,则说明前向差异参数不满足第一插入倾向值调整条件,进一步,需要再确定另一个前向差异参数——前向运动数据。其中,第一变化程度阈值是自定义在设置的,在本申请实施例中,可将第一变化程度阈值设置成0.3。
在另一种可能的实现方式中,若前向差异参数为前向运动数据,此时,根据当前编码帧和当前编码帧的前一帧确定当前编码帧的前向差异参数,包括:根据当前编码帧包括的编码块与当前编码帧的前一帧包括的编码块之间的运动矢量,确定当前编码帧的前向运动数据,前向运动数据为当前编码帧中运动矢量小于矢量阈值的编码块的第一数量。在实际的编码过程中,一个编码帧是被划分成多个编码块(也称宏块)的,运动数据也是根据每个宏块的运动情况来确定的。在本申请中,可以假设当前编码帧和前一帧均有N个宏块,当前编码帧中运动矢量是相对于前一帧而言的,第一数量指的是在N个宏块中运动矢量小于矢量阈值的宏块的数量,运动矢量小于矢量阈值包括该宏块在x和y两个方向均小于矢量阈值。再根据前向运动数据和当前编码帧包括的编码块的总数量确定当前编码帧的前向差异参数是否满足第一插入倾向值调整条件。
进一步的,若前向数据大于第一数量阈值,则确定前向差异参数满足第一插入倾向值调整条件,若前向数据小于或者等于第一数量阈值,则确定前向差异参数不满足第一插入倾向值调整条件,则不需要对双向预测帧插入倾向值进行调整。其中,第一数量阈值是根据当前编码帧包括的编码块的总数量以及第一预设系数确定的,例如,当前编码帧包括的编码块的总数量为N,第一预设系数为2/5,则第一数量阈值为2/5*N。第一预设系数不做限定,可以根据实际情况进行设定。
根据上述可知,当前编码帧的前向差异参数虽然包括了前向变化程度和前向运动数据,但在具体的运用场景中,先确定前向变化程度,若是前向变化程度满足第一插入倾向值调整条件,则不需要确定前向运动数据;若是前向变化程度不满足第一插入倾向值调整条件,则需要进一步确定前向运动数据。同样的,当前编码帧的后向差异参数同样包括了后向变化程度和后向运动数据,先确定后向变化程度,若是后向变化程度满足第二插入倾向值调整条件,则不需要确定后向运动数据;若是后向变化程度不满足第二插入倾向值调整条件,则需要进一步确定后向运动数据。
下面针对后向差异参数进行阐述。
在一种可能的实现方式中,当后向差异参数为后向变化程度时,根据当前编码帧和当前编码帧的后一帧确定当前编码帧的后向差异参数,包括:确定将当前编码帧的后一帧预编码为关键帧的第二参考编码代价,也就是,将当前编码帧的后一帧编码成I帧所耗费的代价,可以令第二参考编码代价cost_I_next;以当前编码帧为参考帧,确定当前编码帧的后一帧预编码为前向预测帧的第三编码代价,可以令第三编码代价为cost_P_next;然后基于第三编码代价和第二参考编码代价确定当前编码帧后一帧相对于当前编码帧的的变化情况,也即当前编码帧的后向变化程度。先确定第三编码代价和第二参考编码代价之间的第二比值,可以用公式(2)表示:
ratio_next=cost_P_next/cost_I_next (2)
其中,ratio_next表示第二比值,反映的是当前编码帧到当前编码帧的后一帧的变化情况。该值越大,即cost_P_next越大,当前编码帧到当前编码帧的后一帧的变化越剧烈;反之,如果该值越小,说明编码的残差和耗费的mv等都很小,说明当前编码帧到当前编码帧的后一帧之间的差异很小,即一段时间内帧内容基本无变化。最后,根据第二比值和第二变化程度阈值确定当前编码帧的后向变化程度。
进一步的,若后向变化程度指示第二比值小于第二变化程度阈值,则确定后向差异参数满足第二插入倾向值调整条件。若后向变化程度指示第二比值大于或者等于第二变化程度阈值,则说明后向差异参数不满足第二插入倾向值调整条件,进一步,需要再确定另一个后向差异参数——后向运动数据。其中,第二变化程度阈值和第一变化程度阈值可以相同。在本申请实施例中,也可将第二变化程度阈值设置成0.3。
在另一种可能的实现方式中,若后向差异参数为后向运动数据,此时,根据当前编码帧和当前编码帧的后一帧确定当前编码帧的后向差异参数,包括:根据当前编码帧包括的编码块与当前编码帧的后一帧包括的编码块之间的运动矢量,确定当前编码帧的后向运动数据,后向运动数据为当前编码帧的后一帧中运动矢量小于矢量阈值的编码块的第二数量。在本申请中,可以假设当前编码帧的后一帧有N个宏块,当前编码帧的后一帧中宏块的运动矢量是相对于当前编码帧而言的,第二数量指的是在N个宏块中运动矢量小于矢量阈值的宏块的数量,运动矢量小于矢量阈值包括该宏块在x和y两个方向均小于矢量阈值。最后,再根据后向运动数据和当前编码帧的后一帧包括的编码块的总数量确定当前编码帧的后向差异参数是否满足第二插入倾向值调整条件。
进一步的,若后向数据大于第二数量阈值,则确定后向差异参数满足第二插入倾向值调整条件,若后向数据小于或者等于第二数量阈值,则确定后向差异参数不满足第二插入倾向值调整条件,则不需要对双向预测帧插入倾向值进行调整。其中,第二数量阈值是根据当前编码帧的后一帧包括的编码块的总数量以及第二预设系数确定的,第一预设系数和第二预设系数可以相同,也可以不同。例如,若当前编码帧的后一帧包括的编码块的总数量为N,第二预设系数为2/5,则第二数量阈值为2/5*N。
步骤S203主要阐述的是以当前编码帧为例,如何分析当前编码帧和前后帧之间的运动情况以及变化情况的。根据不同的运动情况以及变化情况可以确定当前编码帧是否满足插入倾向值调整条件。对于视频帧序列中的每一个视频帧,我们都可以按照该过程进行分析。其中,当前编码帧的前后帧的运动情况和变化情况可以是同时进行分析的,不存在先后顺序。
S203:若前向差异参数满足第一插入倾向值调整条件,且后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。
根据步骤S202的阐述,可以知道在什么情况下前向差异参数是满足第一插入倾向值调整条件的,在什么情况下后向差异参数是满足第二插入倾向值调整条件的。若前向差异参数满足第一插入倾向值调整条件,且后向差异参数同时满足第二插入倾向值调整条件,则可以对双向预测帧插入倾向值进行调整。若是前向差异参数和后向差异数据中其中一个不满足,都不需要对双向预测帧插入倾向值进行调整。调整双向预测帧插入倾向值时先获取当前编码帧的初始双向预测帧插入倾向值,这个值可以是人为设定的,例如,该值可以是0;然后利用预设双向预测帧增量对初始双向预测帧插入倾向值进行调整,得到调整后的双向预测帧插入倾向值。预设双向预测帧增量可以是自定义的,例如可设置成20,对应的,调整后的双向预测帧插入倾向值等于预设双向预测帧增量和初始双向预测帧插入倾向值之和。
进一步的,在确定出调整后的双向预测帧插入倾向值后,利用调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。这个过程可以包括:先根据调整后的双向预测帧插入倾向值和设定参数确定目标缩放系数,然后利用目标缩放系数对当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。
在一种可能的实现方式中,第一编码代价的调整过程可以如公式(3):
cost_B′=cost_B*100/(120+i_b_bias) (3)
其中,cost_B′为调整后的第一编码代价,cost_B为第一编码代价,i_b_bias为调整后的双向预测帧插入倾向值,100/(120+i_b_bias)为目标缩放系数。
S204:根据第二编码代价和调整后的第一编码代价确定当前编码帧的帧类型。
在一种可能的实现方式中,调整后的第一编码代价小于第二编码代价,则确定当前编码帧的帧类型为双向预测帧类型,即B帧,若调整后的第一编码代价大于第二编码代价,则确定当前编码帧的帧类型为前向预测帧类型,即P帧。按照上述的处理过程,对每一个视频帧都进行对应的帧类型确定,确定每一帧的帧类型,从而构建出待编码视频的GOP,最后对GOP进行编码处理得到编码后的视频。
在本申请实施例中,通过当前编码帧与当前编码帧的前一帧和当前编码帧的后一帧之间的差异参数,来确定是否需要对当前编码帧的双向预测帧插入倾向值进行调整。若是需要调整,则根据调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价(将当前编码帧编码成双向预测帧的代价)进行调整,最后再根据调整后的第一编码代价和当前编码帧的第二编码代价(将当前编码帧编码成前向预测帧的代价)确定当前编码帧的帧类型。由此,通过对帧类型判断来确定各类帧的数量,可以在一定程度上增加前后差异不大的视频在编码过程中的双向预测帧的数量,双向预测帧数量越多,可以使得视频编码后的视频的效果更好。
请参见图3,是本申请实施例公开的另一种帧类型确定方法的流程示意图,该帧类型确定方法以视频帧序列中的任意连续三帧为例进行阐述的,如图4所示,是一种视频帧序列的示意图,任意三帧分别为当前帧、前一帧、后一帧,以此对种帧类型确定方法进行阐述。基于此,帧类型确定方法包括以下步骤:
S301:获取将当前帧编码成P帧的编码代价cost_P_current,以及将当前帧编码成I帧的编码代价cost_I_current。
S302:获取将后一帧编码成P帧的编码代价cost_P_next,以及将后一帧编码成I帧的编码代价cost_I_next。
如图4所示,cost_P_current计算的是将当前帧编码成P帧的编码代价,是以前一帧为参考确定的;cost_P_next计算的是将后一帧编码成P帧的编码代价,是当前帧为参考确定的。
S303:判断cost_P_current与cost_I_current的第一比值是否小于第一变化程度阈值。
若是,则确定当前编码帧的前向差异参数满足第一插入倾向值调整条件;若否,则执行步骤S305。
S304:判断cost_P_next与cost_I_next的第二比值是否小于第二变化程度阈值。
若是,则确定当前编码帧的后向差异参数满足第二插入倾向值调整条件;若否,则执行步骤S306。
若根据步骤S303和步骤S304确定出当前编码帧的前向差异参数满足第一插入倾向值调整条件,且当前编码帧的后向差异参数也满足第二插入倾向值调整条件,则执行步骤S309。
S305:确定当前帧包括的编码块相较于前一帧包括的编码块的运动矢量,并将当前帧中运动矢量小于矢量阈值的编码块的第一数量作为前向运动数据。
S306:确定后一帧包括的编码块相较于当前帧包括的编码块的运动矢量,并将后一帧中运动矢量小于矢量阈值的编码块的第二数量作为后向运动数据。
S307:判断前向运动数据是否大于第一数量阈值。
若是,则确定当前编码帧的前向差异参数满足第一插入倾向值调整条件;若否,直接执行步骤S310,也就是不对当前帧的B帧编码代价进行调整,直接进行比较即可。其中,第一数量阈值是根据当前帧包括的编码块的总数量和第一预设系数确定的。
S308:判断后向运动数据是否大于第二数量阈值。
若是,则确定当前编码帧的后向差异参数满足第二插入倾向值调整条件;若否,直接执行步骤S310,也就是不对当前帧的B帧编码代价进行调整,直接进行比较即可。其中,第二数量阈值是根据后一帧包括的编码块的总数量和第二预设系数确定的。
若根据步骤S307和步骤S308确定出当前编码帧的前向差异参数满足第一插入倾向值调整条件,且当前编码帧的后向差异参数也满足第二插入倾向值调整条件,则执行步骤S309。
S309:确定调整后的双向预测帧插入倾向值,并利用调整后的双向预测帧插入倾向值对当前帧的B帧编码代价进行调整,得到最终的cost_B。
先根据初始预测帧插入倾向值和预设双向预测帧增量确定出双向预测帧插入倾向值,再确定将当前帧编码成B帧编的码代,最后再根据双向预测帧插入倾向值对该值进行调整,得到最终的cost_B。
S310:将当前帧编码成B帧的编码代价cost_B和编码成P帧的编码代价cost_P进行比较,确定当前帧的帧类型。
上述步骤S301-S310在图2的实施例进行了详细的阐述,一些详细的过程这里就不再赘述了。图3是为了表明,在确定帧类型的过程中,当前帧与前一帧的差异参数以及当前帧和后一帧的差异参数可以同时来确定,只有前向和后向同时满足插入倾向值调整条件时,才对初始预测帧插入倾向值进行调整,从而实现对cost_B的调整。在构建GOP的过程中,基于该调整策略,可以使得B帧的数量增加,从而使得编码的整体效果变好。
基于上述的方法实施例,本申请实施例还提供了一种帧类型确定装置的结构示意图。参见图5,为本申请实施例提供的一种帧类型确定装置的结构示意图。图5所示的帧类型确定装置500可运行如下单元:
确定单元501,用于确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
确定单元501,还用于根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
处理单元502,用于若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
确定单元501,还用于根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
在一种可能的实现方式中,前向差异参数包括前向变化程度,确定单元501根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数时,具体用于:
确定将所述当前编码帧预编码为关键帧的第一参考编码代价;
确定所述第一参考编码代价与所述第二编码代价之间的第一比值;
根据所述第一比值和第一变化程度阈值确定所述当前编码帧的前向变化程度。
在一种可能的实现方式中,确定单元501,还用于执行如下步骤:
若所述前向变化程度指示所述第一比值小于所述第一变化程度阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件。
在一种可能的实现方式中,前向差异参数还包括前向运动数据,确定单元501还用于执行如下步骤:
若所述前向变化程度指示所述第一比值大于或等于所述第一变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的前一帧包括的编码块之间的运动矢量,确定所述当前编码帧的前向运动数据,所述前向运动数据为所述当前编码帧中运动矢量小于矢量阈值的编码块的第一数量;
若所述前向运动数据大于第一数量阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件,所述第一数量阈值是根据所述当前编码帧包括的编码块的总数量以及第一预设系数确定的。
在一种可能的实现方式中,后向差异参数包括后向变化程度;确定单元501根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数时,具体用于执行如下步骤:
确定将所述当前编码帧的后一帧预编码为关键帧的第二参考编码代价;
以所述当前编码帧为参考帧,确定所述当前编码帧的后一帧预编码为前向预测帧的第三编码代价;
确定所述第三编码代价和所述第二参考编码代价之间的第二比值;
根据所述第二比值和第二变化程度阈值确定所述当前编码帧的后向变化程度。
在一种可能的实现方式中,确定单元501,还用于执行如下步骤:若所述后向变化程度指示所述第二比值小于所述第二变化程度阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件。
在一种可能的实现方式中,后向差异参数还包括后向运动数据,确定单元501还用于执行如下步骤:
若所述后向变化程度指示所述第二比值大于或等于所述第二变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的后一帧包括的编码块之间的运动矢量,确定所述当前编码帧的后向运动数据,所述后向运动数据为所述当前编码帧的后一帧中运动矢量小于矢量阈值的编码块的第二数量;
若所述后向运动数据大于第二数量阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件,所述第二数量阈值是根据所述当前编码帧的后一帧包括的编码块的总数量以及第二预设系数确定的。
在一种可能的实现方式中,确定单元501确定调整后的双向预测帧插入倾向值时,具体用于:
获取所述当前编码帧的初始双向预测帧插入倾向值;
利用预设双向预测帧增量对所述初始双向预测帧插入倾向值进行调整,得到调整后的双向预测帧插入倾向值。
在一种可能的实现方式中,处理单元502利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价时,具体用于执行如下步骤:
根据所述调整后的双向预测帧插入倾向值和设定参数确定目标缩放系数;
利用所述目标缩放系数对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。
可以理解的是,本申请实施例提供的帧类型确定装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例中的相关描述,此处不再赘述。
在可行的实施例中,本申请实施例提供的帧类型确定装置可以采用软件方式实现,帧类型确定装置可以存储在存储器中,其可以是程序和插件等形式的软件,并包括一系列的单元,包括确定单元以及处理单元;其中,确定单元以及处理单元用于实现本申请实施例提供的帧类型确定方法。
在其它可行的实施例中,本申请实施例提供的帧类型确定装置也可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的帧类型确定装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的帧类型确定方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例,确定单元501通过当前编码帧与当前编码帧的前一帧和当前编码帧的后一帧之间的差异参数,来确定是否需要对当前编码帧的双向预测帧插入倾向值进行调整。若是需要调整,则处理单元502根据调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价(将当前编码帧编码成双向预测帧的代价)进行调整,最后再根据调整后的第一编码代价和当前编码帧的第二编码代价(将当前编码帧编码成前向预测帧的代价)确定当前编码帧的帧类型。由此,通过对帧类型判断来确定各类帧的数量,可以增加前后差异不大的视频在编码过程中的双向预测帧的数量,双向预测帧越多,可以使得视频编码后的视频的效果更好。
基于上述方法以及装置实施例,本申请实施例提供了一种计算机设备。请参见图6,图6是本申请实施例提供的一种计算机设备的结构示意图,计算机设备可以是图1示出的服务器103。图6所示的计算机设备至少包括处理器601、输入接口602、输出接口603以及计算机可读存储介质604。其中,处理器601、输入接口602、输出接口603以及计算机可读存储介质604可通过总线或其他方式连接。
计算机可读存储介质604可以存储在计算机设备的存储器中,计算机可读存储介质604用于存储计算机程序,计算机程序包括计算机指令,处理器601用于执行计算机可读存储介质604存储的程序指令。处理器601(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一些实施例中,可由处理器601加载并执行计算机可读存储介质604中存放的一条或多条计算机指令,以实现上述有关图2以及图3所示的帧类型确定方法的相应步骤。具体实现中,计算机可读存储介质604中的计算机指令由处理器601加载并执行如下步骤:
确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
在一种可能的实现方式中,前向差异参数包括前向变化程度,计算机可读存储介质604中的计算机指令由处理器601加载并执行根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数时,具体用于:
确定将所述当前编码帧预编码为关键帧的第一参考编码代价;
确定所述第一参考编码代价与所述第二编码代价之间的第一比值;
根据所述第一比值和第一变化程度阈值确定所述当前编码帧的前向变化程度。
在一种可能的实现方式中,计算机可读存储介质604中的计算机指令由处理器601还用于加载并执行如下步骤:
若所述前向变化程度指示所述第一比值小于所述第一变化程度阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件。
在一种可能的实现方式中,前向差异参数还包括前向运动数据,计算机可读存储介质604中的计算机指令由处理器601还用于加载并执行如下步骤:
若所述前向变化程度指示所述第一比值大于或等于所述第一变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的前一帧包括的编码块之间的运动矢量,确定所述当前编码帧的前向运动数据,所述前向运动数据为所述当前编码帧中运动矢量小于矢量阈值的编码块的第一数量;
若所述前向运动数据大于第一数量阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件,所述第一数量阈值是根据所述当前编码帧包括的编码块的总数量以及第一预设系数确定的。
在一种可能的实现方式中,后向差异参数包括后向变化程度;计算机可读存储介质604中的计算机指令由处理器601加载并执行根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数时,具体用于执行如下步骤:
确定将所述当前编码帧的后一帧预编码为关键帧的第二参考编码代价;
以所述当前编码帧为参考帧,确定所述当前编码帧的后一帧预编码为前向预测帧的第三编码代价;
确定所述第三编码代价和所述第二参考编码代价之间的第二比值;
根据所述第二比值和第二变化程度阈值确定所述当前编码帧的后向变化程度。
在一种可能的实现方式中,计算机可读存储介质604中的计算机指令由处理器601还用于加载并执行如下步骤:
若所述后向变化程度指示所述第二比值小于所述第二变化程度阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件。
在一种可能的实现方式中,后向差异参数还包括后向运动数据,计算机可读存储介质604中的计算机指令由处理器601还用于加载并执行如下步骤:
若所述后向变化程度指示所述第二比值大于或等于所述第二变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的后一帧包括的编码块之间的运动矢量,确定所述当前编码帧的后向运动数据,所述后向运动数据为所述当前编码帧的后一帧中运动矢量小于矢量阈值的编码块的第二数量;
若所述后向运动数据大于第二数量阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件,所述第二数量阈值是根据所述当前编码帧的后一帧包括的编码块的总数量以及第二预设系数确定的。
在一种可能的实现方式中,计算机可读存储介质604中的计算机指令由处理器601加载并执行确定调整后的双向预测帧插入倾向值时,具体用于:
获取所述当前编码帧的初始双向预测帧插入倾向值;
利用预设双向预测帧增量对所述初始双向预测帧插入倾向值进行调整,得到调整后的双向预测帧插入倾向值。
在一种可能的实现方式中,计算机可读存储介质604中的计算机指令由处理器601还用于加载并执行利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价时,具体用于执行如下步骤:
根据所述调整后的双向预测帧插入倾向值和设定参数确定目标缩放系数;
利用所述目标缩放系数对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。
本申请实施例中,通过当前编码帧与当前编码帧的前一帧和当前编码帧的后一帧之间的差异参数,来确定是否需要对当前编码帧的双向预测帧插入倾向值进行调整。若是需要调整,则根据调整后的双向预测帧插入倾向值对当前编码帧的第一编码代价(将当前编码帧编码成双向预测帧的代价)进行调整,最后再根据调整后的第一编码代价和当前编码帧的第二编码代价(将当前编码帧编码成前向预测帧的代价)确定当前编码帧的帧类型。由此,通过对帧类型判断来确定各类帧的数量,可以增加前后差异不大的视频在编码过程中的双向预测帧的数量,双向预测帧越多,可以使得视频编码后的视频的效果更好。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的帧类型确定方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种帧类型确定方法,其特征在于,所述方法包括:
确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
2.根据权利要求1所述的方法,其特征在于,所述前向差异参数包括前向变化程度;所述根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,包括:
确定将所述当前编码帧预编码为关键帧的第一参考编码代价;
确定所述第一参考编码代价与所述第二编码代价之间的第一比值;
根据所述第一比值和第一变化程度阈值确定所述当前编码帧的前向变化程度。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述前向变化程度指示所述第一比值小于所述第一变化程度阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件。
4.根据权利要求2或3所述的方法,其特征在于,所述前向差异参数还包括前向运动数据,所述方法还包括:
若所述前向变化程度指示所述第一比值大于或等于所述第一变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的前一帧包括的编码块之间的运动矢量,确定所述当前编码帧的前向运动数据,所述前向运动数据为所述当前编码帧中运动矢量小于矢量阈值的编码块的第一数量;
若所述前向运动数据大于第一数量阈值,则确定所述前向差异参数满足所述第一插入倾向值调整条件,所述第一数量阈值是根据所述当前编码帧包括的编码块的总数量以及第一预设系数确定的。
5.根据权利要求1所述的方法,其特征在于,所述后向差异参数包括后向变化程度;所述根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数,包括:
确定将所述当前编码帧的后一帧预编码为关键帧的第二参考编码代价;
以所述当前编码帧为参考帧,确定所述当前编码帧的后一帧预编码为前向预测帧的第三编码代价;
确定所述第三编码代价和所述第二参考编码代价之间的第二比值;
根据所述第二比值和第二变化程度阈值确定所述当前编码帧的后向变化程度。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述后向变化程度指示所述第二比值小于所述第二变化程度阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件。
7.根据权利要求5或6所述的方法,其特征在于,所述后向差异参数还包括后向运动数据,所述方法还包括:
若所述后向变化程度指示所述第二比值大于或等于所述第二变化程度阈值,则根据所述当前编码帧包括的编码块与所述当前编码帧的后一帧包括的编码块之间的运动矢量,确定所述当前编码帧的后向运动数据,所述后向运动数据为所述当前编码帧的后一帧中运动矢量小于矢量阈值的编码块的第二数量;
若所述后向运动数据大于第二数量阈值,则确定所述后向差异参数满足所述第二插入倾向值调整条件,所述第二数量阈值是根据所述当前编码帧的后一帧包括的编码块的总数量以及第二预设系数确定的。
8.根据权利要求1所述的方法,其特征在于,所述确定调整后的双向预测帧插入倾向值,包括:
获取所述当前编码帧的初始双向预测帧插入倾向值;
利用预设双向预测帧增量对所述初始双向预测帧插入倾向值进行调整,得到调整后的双向预测帧插入倾向值。
9.根据权利要求1或8所述的方法,其特征在于,所述利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价,包括:
根据所述调整后的双向预测帧插入倾向值和设定参数确定目标缩放系数;
利用所述目标缩放系数对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价。
10.一种帧类型确定装置,其特征在于,所述装置包括:
确定单元,用于确定当前编码帧的第一编码代价和第二编码代价;所述第一编码代价为将所述当前编码帧编码成双向预测帧的代价,所述第二编码代价为将所述当前编码帧编码成前向预测帧的代价;
所述确定单元,还用于根据所述当前编码帧和所述当前编码帧的前一帧确定所述当前编码帧的前向差异参数,以及根据所述当前编码帧和所述当前编码帧的后一帧确定所述当前编码帧的后向差异参数;
处理单元,用于若所述前向差异参数满足第一插入倾向值调整条件,且所述后向差异参数满足第二插入倾向值调整条件,则确定调整后的双向预测帧插入倾向值,并利用所述调整后的双向预测帧插入倾向值对所述当前编码帧的第一编码代价进行调整,得到调整后的第一编码代价;
所述确定单元,还用于根据所述第二编码代价和所述调整后的第一编码代价确定所述当前编码帧的帧类型。
11.一种计算机设备,其特征在于,所述计算机设备包括:
处理器,适于实现一条或多条计算机程序;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如权利要求1-9任一项所述的帧类型确定方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行如权利要求1-9任一项所述的帧类型确定方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机程序,处理器执行所述计算机程序,使得计算机设备执行如权利要求1-9任一项所述的帧类型确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050489.9A CN116980608A (zh) | 2023-08-18 | 2023-08-18 | 一种帧类型确定方法、装置及计算机设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050489.9A CN116980608A (zh) | 2023-08-18 | 2023-08-18 | 一种帧类型确定方法、装置及计算机设备、介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980608A true CN116980608A (zh) | 2023-10-31 |
Family
ID=88471372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311050489.9A Pending CN116980608A (zh) | 2023-08-18 | 2023-08-18 | 一种帧类型确定方法、装置及计算机设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980608A (zh) |
-
2023
- 2023-08-18 CN CN202311050489.9A patent/CN116980608A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9414086B2 (en) | Partial frame utilization in video codecs | |
CN110944185B (zh) | 视频解码的方法和装置、计算机设备及存储介质 | |
US11736707B2 (en) | Method and apparatus for processing video signal using affine prediction | |
US11743475B2 (en) | Advanced video coding method, system, apparatus, and storage medium | |
JP2022515031A (ja) | ビデオコーディングのための方法、機器及びコンピュータ・プログラム | |
CN111919443B (zh) | 用于视频解码的方法和装置 | |
KR20200125733A (ko) | 비디오 코딩을 위한 방법 및 장치 | |
CN111182308B (zh) | 视频解码方法、装置、计算机设备及存储介质 | |
WO2021238546A1 (zh) | 视频编码方法、视频播放方法、相关设备及介质 | |
KR101008525B1 (ko) | 디지털 비디오 시퀀스 인코딩 방법, 인코더용 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체, 컴퓨터용 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체, 디지털 비디오 시퀀스를 인코딩하는 인코더 및 비디오 통신 시스템 | |
CN113259671B (zh) | 视频编解码中的环路滤波方法、装置、设备及存储介质 | |
CN114222127A (zh) | 一种视频编码方法、视频解码方法及装置 | |
US20160182911A1 (en) | De-juddering techniques for coded video | |
CN115118976A (zh) | 一种图像编码方法、可读介质及其电子设备 | |
CN116076074A (zh) | 用于视频编码中的时域滤波的方法和设备 | |
WO2023061129A1 (zh) | 视频编码方法、装置、设备及存储介质 | |
US20090245386A1 (en) | Method and apparatus for encoding a flash picture occurring in a video sequence, and for decoding corresponding data for a flash picture | |
CN116980608A (zh) | 一种帧类型确定方法、装置及计算机设备、介质、产品 | |
CN117616751A (zh) | 动态图像组的视频编解码 | |
US11647228B2 (en) | Method and apparatus for encoding and decoding video signal using transform domain prediction for prediction unit partition | |
KR20090078114A (ko) | 가변적 화면 그룹 예측 구조를 이용한 다시점 영상 부호화방법 및 장치, 영상 복호화 장치 그리고 상기 방법을수행하는 프로그램이 기록된 기록 매체 | |
CN118678078A (zh) | 视频编码方法、装置、设备、存储介质及程序产品 | |
CN116527928A (zh) | 图像编码方法及装置、电子设备、存储介质、程序产品 | |
WO2016193949A1 (en) | Advanced video coding method, system, apparatus and storage medium | |
KR20060063604A (ko) | 영상 신호의 인코딩 및 디코딩 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |