CN117812268A - 视频转码方法、装置、设备以及介质 - Google Patents
视频转码方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN117812268A CN117812268A CN202211163307.4A CN202211163307A CN117812268A CN 117812268 A CN117812268 A CN 117812268A CN 202211163307 A CN202211163307 A CN 202211163307A CN 117812268 A CN117812268 A CN 117812268A
- Authority
- CN
- China
- Prior art keywords
- video
- transcoded
- complexity
- code rate
- pixel
- 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 77
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- 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/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/182—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 pixel
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种视频转码方法、装置、设备以及介质,该方法包括:获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到视频关键帧;将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率;根据目标码率对待转码视频进行转码处理。采用本申请实施例,可以依据视频场景内容复杂度实现码率自适应转码,进而可以提高视频转码质量。
Description
技术领域
本申请涉及视频编解码技术领域,尤其涉及一种视频转码方法、装置、设备以及介质。
背景技术
目前,视频文件在不同设备间共享、交换或者播放时,需要对视频文件进行视频转码以适用不同场景。相关技术中,针对码率设定的视频转码方案,可以采用统一的固定码率进行视频转码,或者可以预先建立量化参数与峰值信噪比之间的线性关系,进而依据峰值信噪比的需求来动态确定量化参数,从而决策出转码码率等。
然而,若对于任意视频源和视频内容都采用固定码率进行转码,显然无法满足不同视频场景内容的视频转码质量;此外,峰值信噪比的反向计算会导致计算复杂度的极具增长,且仅依据源视频的分辨率和帧率等信息并不能有效地表征视频场景内容的复杂度,无法确保视频转码质量。
发明内容
本申请实施例提供一种视频转码方法、装置、设备以及介质,可以提高视频转码质量。
本申请实施例一方面提供了一种视频转码方法,包括:
获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到待转码视频中的视频关键帧;
将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;全局复杂度和局部区域复杂度用于表征待转码视频的视频场景内容复杂度;
获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率;
根据目标码率,对待转码视频进行转码处理。
本申请实施例一方面提供了一种视频转码装置,包括:
关键帧解码模块,用于获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到待转码视频中的视频关键帧;
宏块获取模块,用于将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
复杂度确定模块,用于根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;全局复杂度和局部区域复杂度用于表征待转码视频的视频场景内容复杂度;
码率确定模块,用于获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率;
视频转码模块,用于根据目标码率,对待转码视频进行转码处理。
其中,关键帧解码模块包括:
关键帧获取单元,用于根据待转码视频对应的帧位置索引信息,获取待转码视频所包含的N个待解码关键帧;N为正整数;
解码处理单元,用于获取N个待解码关键帧中的每个待解码关键帧对应的编码模式信息,基于编码模式信息对每个待解码关键帧进行解码处理,得到N个视频关键帧,以及待转码视频的视频码率和视频分辨率。
其中,视频关键帧的数量为N个,N为正整数;
宏块获取模块包括:
像素块确定单元,用于将N个视频关键帧中的视频关键帧Fx划分为M个区域,在M个区域的每个区域中确定候选像素块;M个区域中的候选像素块之间互不交叠,x为小于或等于N的正整数;
像素块划分单元,用于按照固定尺寸对每个区域中的候选像素块进行划分,得到每个区域中的候选像素块对应的D个像素宏块;D为正整数。
其中,复杂度确定模块包括:
方差均值获取单元,用于获取每个区域中的各个像素宏块对应的像素方差,根据每个区域中的各个像素宏块对应的像素方差,确定每个区域分别对应的方差均值;
全局复杂度确定单元,用于将M个区域对应的方差均值的平均值,确定为视频关键帧Fx对应的全局复杂度;
局部复杂度确定单元,用于在M个区域对应的方差均值中,将最大的方差均值确定为视频关键帧Fx对应局部区域复杂度。
其中,方差均值获取单元获取每个区域中的各个像素宏块对应的像素方差包括:
获取区域Zy中的第t个像素宏块对应的像素平均值;区域Zy属于M个区域,y为小于或等于M的正整数,t为小于或等于D的正整数;
根据第t个像素宏块中的每个像素值与像素平均值之间的差值,确定第t个像素宏块对应的像素方差。
其中,码率确定模块包括:
分辨率占比值确定单元,用于将视频分辨率的宽度和高度之和与分辨率参数之间的比值,确定为分辨率占比值;
加权参数获取单元,用于获取视频码率对应的第一加权参数,以及预置码率参数对应的第二加权参数;
初始码率参数确定单元,用于基于第一加权参数和视频码率之间的乘积,以及第二加权参数、预置码率参数、分辨率占比值之间的乘积,确定待转码视频对应的初始码率参数。
其中,视频关键帧的数量为N个,N为正整数;
码率确定模块包括:
第一均值确定单元,用于根据N个视频关键帧分别对应的全局复杂度,确定N个视频关键帧对应的全局复杂度均值;
第二均值确定单元,用于根据N个视频关键帧分别对应的局部区域复杂度,确定N个视频关键帧对应的局部复杂度均值;
候选码率确定单元,用于根据初始码率参数和全局复杂度均值,确定待转码视频对应的候选码率;
目标码率确定单元,用于根据局部复杂度均值,对候选码率进行调整,得到待转码视频对应的目标码率。
其中,候选码率确定单元具体用于:
将全局复杂度均值与全局复杂度参数之间的比值,确定为全局复杂度占比值;
根据初始码率参数和全局复杂度占比值,确定待转码视频对应的候选码率。
其中,目标码率确定单元具体用于:
若局部复杂度均值小于或等于局部复杂度参数,则将候选码率确定为待转码视频对应的目标码率;
若局部复杂度均值大于局部复杂度参数,则将最大码率阈值确定为待转码视频对应的目标码率。
其中,视频转码模块包括:
视频解码单元,用于获取待转码视频中的各个待解码视频帧对应的解码顺序,根据解码顺序对各个待解码视频帧进行解码处理,得到待转码视频中的各个视频帧;各个待解码视频帧包括待解码关键帧;
视频编码单元,用于根据目标码率,对待转码视频中的各个视频帧进行编码处理,得到目标视频。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例中,通过对待转码视频中的待解码关键帧进行解码处理,得到解码后的视频关键帧,对视频关键帧进行区域划分,从每个区域选取响应的像素宏块,通过计算像素宏块的像素方差可以确定视频关键帧的全局复杂度和局部区域复杂度,并根据全局复杂度和局部区域复杂度自适应调整待转码视频在转码时的目标码率,即可以同时兼顾视频整体和局部复杂度,可以避免视频帧局部位置因复杂度过高导致的转码不清晰问题,可以提高视频转码质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视频转码***的架构示意图;
图2是本申请实施例提供的一种视频转码原理流程示意图;
图3是本申请实施例提供的一种视频转码方法的流程示意图;
图4是本申请实施例提供的一种待转码视频的预分析示意图;
图5是本申请实施例提出的一种待转码视频的解码顺序示意图;
图6是本申请实施例提供的另一种视频转码方法的流程示意图;
图7是本申请实施例提供的一种视频关键帧的区域划分示意图;
图8是本申请实施例提供的一种基于全局与局部信息融合的码率自适应调整方法的流程示意图;
图9是本申请实施例提供的一种视频转码装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解本申请实施例提出的视频转码方案,下面首先对本申请实施例所涉及的基本概念进行简单介绍:
视频转码:可以是指将已经压缩编码的视频码流按照某一编码标准、码率等条件转换为另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求;视频转码在本质上可以认为是对一个视频文件先解码后编码的过程。
码率:视频数据传输时单位时间传输的数据量。
I帧(Intra coded frames,帧内编码帧,或者可以称为关键帧):I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码;视频序列中的第一个视频帧始终都是I帧。
P帧(Predictive-coded frames,前向预测编码帧):P帧采用帧间编码的方式,即同时利用了空间和时间上的相关性。P帧可以是指通过充分将源图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像。
B帧(Bi-directional predicted frames,双向预测编码帧):B帧采用双向时间预测方式,可以大大提高压缩倍数。B帧可以是指既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间别的时间冗余信息来压缩传输数据量的编码图像。
本申请实施例中,可以通过对待转码视频进行预分析,确定该待转码视频对应的目标码率,并以该目标码率对该待转码视频进行转码处理;其中,该预分析可以包括:通过快速解码重建待转码视频中的视频关键帧(I帧),对视频关键帧进行定向区域划分,不同区域中选取不交叠的像素块(为便于理解,此处的像素块可以称为候选像素块),通过对候选像素块中的子像素块(可以称为像素宏块)进行复杂度计算,并融合视频关键帧中的全局复杂度(可以为各个区域的复杂度平均值)和局部区域复杂度(可以为区域复杂度最大值)进行待转码视频的目标码率自适应调整;其中,该全局复杂度和局部区域复杂度可以统称为空域复杂度(可以表征一个视频关键帧的纹理复杂度),即全局复杂度和局部区域复杂度都可以用于表征待转码视频的视频场景内容复杂度。本申请实施例所涉及的视频转码方案可以同时兼顾视频整体和局部复杂度,可以避免视频帧局部位置因复杂度过高导致的转码不清晰问题,可以提高视频转码质量,且在对待转码视频的预分析中,仅对待转码视频中的视频关键帧进行解码重构,可以降低码率预分析过程中的计算复杂度。
请参见图1,图1是本申请实施例提供的一种视频转码***的架构示意图。如图1所示,该视频转码处理***可以包括服务设备10a和终端设备10b,服务设备10a和终端设备10b之间可以通过互联网进行连接,实现相互之间的通信。例如,该互联网可以包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或无线网络、专用网络或者虚拟专用网络的任意组合。
其中,终端设备10b可以包括但不限于:智能手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)、智能语音交互设备、智能家电(例如智能电视等)、车载设备、VR设备(如VR头盔、VR眼镜等)等。终端设备10b可以安装各种可以接收/发送视频或播放视频的应用客户端,如视频应用客户端、通讯应用客户端(包括即时通讯应用客户端、企业应用客户端)、游戏应用客户端、教育类应用客户端等。
服务设备10a可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请对此不做限定。可选地,服务设备10a可以为终端设备10b提供各种网络服务,当终端设备10b中安装了各种用于接收/发送视频或播放视频的应用客户端时,该服务设备10a可以认为是相应应用客户端的后台服务器。
需要说明的是,本申请实施例中,视频转码方案可以由视频转码***中的服务设备10a执行,也可以由终端设备10b执行,本申请对此不做限定。
例如,终端设备10b接收到一段视频数据后,可以将该段视频数据确定为待转码视频,通过快速解码重建待转码视频中的视频关键帧,对视频关键帧进行定向区域划分,通过对各个区域中的像素宏块进行复杂度计算,并融合视频关键帧对应的全局复杂度和局部区域复杂度进行待转码视频的目标码率自适应调整,进而根据确定后的目标码率对待转码视频进行转码处理,得到最终的目标视频,该目标视频可以在终端设备10b中进行播放。
又例如,视频文件在不同设备间共享、交换或者播放时,服务设备10a可以解码重构待转码视频中的视频关键帧,对视频关键帧进行定向区域划分,通过对各个区域中的像素宏块进行复杂度计算,融合视频关键帧对应的全局复杂度和局部区域复杂度确定目标码率,根据目标码率对待转码视频进行转码处理,得到最终的目标视频,进而可以将转码后的目标视频传输至终端设备10b,终端设备10b在接收到目标视频后,可以对其进行播放。
可以理解的是,视频转码过程可能需要考虑多方面因素,如码率、分辨率、清晰度、帧率等,而本申请实施例主要是针对视频转码中的码率设定,可以根据视频场景内容的复杂度自适应选择不同的码率,进而完成待转码视频的转码处理,可以提高待转码视频的转码质量。换言之,本申请实施例在不同设备间共享、交换或者播放视频,可以在网络情况对平均传输码率的限制约束下,自适应完成转码码率调整,可以有效提高视频转码质量。
此外,需要说明的是,本申请实施例描述的视频转码***是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
请参见图2,图2是本申请实施例提供的一种视频转码原理流程示意图;本申请实施例以图1所示的视频转码***中的终端设备10b为例,对视频转码原理进行简单介绍。如图2所示,终端设备10b在获取到待转码的输入文件后,可以对该输入文件进行解封装处理,该输入文件可以同时存储视频流(Video Stream)、音频流(Audio Stream)、字幕(Subtitle)、附件、数据等内容,通过对输入文件进行解封装处理,可以得到该输入文件中所包含的第一视频码流和第一音频码流,由于本申请实施例主要针对视频转码,因此下面仅以第一视频码流(可以理解为待转码视频)为例进行描述。其中,该第一视频码流可以为高级视频编码(Advanced Video Coding,AVC)/H.264或高效视频编码(High EfficiencyVideo Coding,HEVC)等编码方式所生成的,本申请对第一视频码流的格式不做限定。
终端设备10b可以根据第一视频码流的压缩格式确定相应的解码器,通过该解码器对第一视频码流进行解码处理,可以得到像素数据,该像素数据可以为YUV(一种颜色编码方法,Y表示明亮度,U和V表示色度)数据,或者可以为其他视频像素格式,本申请对此不做限定。其中,上述从第一视频码流到像素数据的过程可以称为视频转码中的解码处理。
进一步地,终端设备10b可以根据想要编码的格式选择特定的编码器,通过该编码器可以对前述解码得到的像素数据进行编码处理,得到第二视频码流,该第二视频码流可以由编码后的各个视频帧构成,该第二视频码流与第一视频码流可以遵循不同的视频编码标准,也可以遵循不同的视频编码标准。其中,上述从像素数据到第二视频码流的过程可以称为视频转码中的编码处理。
通过对第二视频码流进行封装,如可以将第二视频码流和重新编码后的第二音频流封装为输出文件(转码后的目标视频),进而可以在终端设备10b中播出该输出文件。本申请实施例主要是针对视频转码中的码率设定,在本质上主要针对视频转码中的编码处理,通过对待转码视频进行预分析,基于视频场景内容的复杂度自适应选择不同的码率,进而基于预分析确定的目标码率,完成待转码视频在转码过程中的编码处理,可以提高待转码视频的转码质量。
请参见图3,图3是本申请实施例提供的一种视频转码方法的流程示意图。可以理解的是,该视频转码方法可以由计算机设备执行,该计算机设备可以为图1所示的视频转码***中的服务设备10a,也可以为终端设备10b,本申请对此不做限定;如图3所示,该视频转码方法可以包括以下步骤S101至步骤S105:
步骤S101,获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到待转码视频中的视频关键帧。
具体的,在不同设备间共享、交换或者播放视频文件的场景中,计算机设备可以作为参与共享、交换或者播放视频的一个设备获取该视频文件,进而可以将该视频文件作为待转码视频。在对待转码视频进行转码处理之前,可以对该待转码视频进行预分析,以确定该待转码视频对应的目标码率,进而基于预分析确定的目标码率对待转码视频进行转码处理。下面将通过步骤S101至步骤S104,对待转码视频的预分析过程进行描述。
其中,计算机设备所获取到的待转码视频可以为AVC/H.264或HEVC等视频编码标准压缩而成的视频码流,该待转码视频可以包括多个图像组(Group of Pictures,GOP),每一个图像组都可以看成是一组连续的视频帧,一个图像组可以包括一个I帧和一个或多个B帧/P帧,且每个图像组中的I帧均为对应图像组中的第一个视频帧。由于待转码视频中的I帧可以包含待转码视频的主要内容信息,因此可以从待转码视频中读取各个图像组,并确定每个图像组中的I帧,进而可以将待转码视频中的所有I帧都确定为待解码关键帧。
计算机设备可以根据待转码视频的编码方式确定其对应的解码器,利用该解码器对待转码视频中的待解码关键帧进行解码重建,得到待解码关键帧对应的视频关键帧,即解码重建后的I帧,而对待转码视频中的P帧和B帧进行跳过处理,即在待转码视频的预分析过程中,暂时不对待转码视频中的B帧和P帧进行解码处理。通过仅对待转码视频中的待解码关键帧(I帧)进行解码重建,既可以避免对待转码视频中的所有视频帧进行解码所造成的复杂度极具增长,又能确保预分析过程中可以包含待转码视频中的主要内容信息。
步骤S102,将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;M为大于1的整数。
具体的,待转码视频所包含的视频帧中可能存在一部分静止画面,一部分运动场景画面,当视频帧中的复杂度分布不均时可能会造成在平均码率编码条件下复杂场景的编码质量较差,因此对于待转码视频中的任一个视频关键帧(例如,视频关键帧Fx),都可以将其划分为M个区域;其中,待转码视频中所包含的视频关键帧的数量可以记为N,N为正整数,如N可以取值为1,2,……;x可以为小于或等于N的正整数,x可以理解为视频关键帧的编号,M可以为大于1的整数,如M可以取值为1,2,……。
需要说明的是,待转码视频中的N个视频关键帧都可以按照相同的划分方式进行划分,进而可以得到每个视频关键帧所包含的M个区域,也就是说,通过对N个视频关键帧进行定向区域划分,得到单个视频关键帧的M个区域,即一个视频关键帧包括M个区域。
例如,对于N个视频关键帧中的任一视频关键帧Fx所包含的M个区域,在M个区域的每个区域中确定候选像素块(可以记为Bx)。其中,该视频关键帧Fx所包含的M个区域中的候选像素块之间互不重叠,每个区域中的候选像素块是随机选取的,候选像素块Bx的尺寸可以记为K*K;候选像素块Bx的尺寸K*K可以依据待转码视频的视频分辨率及应用场景进行选取,比如1080p(一种视频显示格式,p可以表示为逐行扫描,数字1080表示垂直方向有1080条水平扫描线,即1080个像素点)分辨率的待转码视频中,可以将K取值为256,540p(一种视频显示格式,表示垂直方向有540条水平扫描线,即540个像素点)分辨率的待转码视频中,可以将K取值为64等;又比如,若应用场景如后台转码等对实时性要求不高的场景,则K可以设置为较大值(例如,256),以便能够完成更为准确的复杂度估计,若应用场景如前端对转码实时性较高,则K可以设置为较小值(例如,64)等;在候选像素块Bx的尺寸不超过单个区域的尺寸的前提下,本申请对候选像素块的尺寸的数值设置方式不做限定。
通过在M个区域的每个区域中随机选取与其他区域不交叠的候选像素块,可以有效保证复杂度的估计鲁棒性,并且可以避免全局计算各个区域所带来的计算复杂度,进而可以提高待转码视频的预分析效率。
进一步地,可以按照固定尺寸对每个区域中的候选像素块进行划分,得到每个区域中的候选像素块对应的D个像素宏块,D为正整数。其中,该固定尺寸可以为预先设定的数值,如该固定尺寸可以设置为8*8,或者可以设置为其他数值(如18*16等),本申请对此不做限定。例如,每个尺寸为K*K的候选像素块都可以划分为多个8*8的像素宏块,如K取值为64时,一个64*64的候选像素块可以划分为64个8*8的像素宏块(此处的D取值为64,即D的数值与候选像素块的尺寸和像素宏块的尺寸来确定)。
步骤S103,根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;全局复杂度和局部区域复杂度用于表征待转码视频的视频场景内容复杂度。
具体的,计算机设备可以对每个区域中的像素宏块进行像素方差计算,获取单个区域中的每个像素宏块分别对应的像素方差,基于每个区域中的D个像素宏块分别对应的像素方差,可以确定单个视频关键帧(例如,视频关键帧Fx)对应的全局复杂度和局部区域复杂度,也就是说,可以利用像素宏块的像素方差来评估视频关键帧Fx的复杂度。上述全局复杂度和局部区域复杂度可以用于表征待转码视频的视频场景内容复杂度,该全局复杂度可以具体用于表征视频关键帧Fx的整体复杂度,该局部区域复杂度可以具体用于表征视频关键帧Fx中的局部复杂度。
在一个或多个实施例中,待转码视频中的任一(例如,视频关键帧Fx)可以包括M个区域,一个区域可以对应一个候选像素块,一个候选像素块可以包括D个像素宏块;针对视频关键帧Fx所包含的M个区域,在计算得到每个区域中的各个像素宏块分别对应的像素方差后,可以将每个区域中的D个像素宏块分别对应的像素方差的平均值,确定为该D个像素宏块所属区域的方差均值;进而可以计算视频关键帧Fx中的M个区域的方差均值之间的平均值,并将该平均值确定为视频关键帧Fx对应的全局复杂度;还可以从视频关键帧Fx所包含的M个区域的方差均值中,将最大的方差均值确定为视频关键帧Fx对应的局部区域复杂度,即局部区域复杂度可以为M个区域中的区域复杂度最大值。
需要说明的是,本申请实施例所涉及的全局复杂度可以由单个视频关键帧中的M个区域的区域复杂度(单个区域所包含的D个像素宏块的像素方差的平均值)所确定,并不限于前述描述的M个区域的区域复杂度的平均值,如全局复杂度可以为M个区域的区域复杂度的平均值的一种或多种变形(M个区域复杂度的平均值的开根号,或者加权系数和M个区域复杂度的平均值之间的加权值等),这些均为本申请实施例所提供的视频转码方案的保护范围。本申请实施例所涉及的局部区域复杂度可以由单个视频关键帧中的单个区域的区域复杂度所确定,如最大的区域复杂度、固定位置的区域复杂度等,本申请对此不做限定。
步骤S104,获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率。
具体的,计算机设备可以获取待转码视频对应的初始码率参数,该初始码率参数可以依据人为经验或者视频传输的基本需求进行设置,如可以根据待转码视频的视频分辨率和视频码率来确定,本申请对初始码率参数的设置不做限定;此处的视频分辨率和视频码率可以在计算机设备对待转码视频中的待解码关键帧进行解码处理是获取得到。
计算机设备可以根据初始码率参数、各个视频关键帧的全局复杂度和局部区域复杂度,可以对待转码视频的转码码率进行自适应调整,得到该待转码视频对应的目标码率,该目标码率可以作为待转码视频在视频转码时所采用的码率。例如,可以根据N个视频关键帧分别对应的全局复杂度,计算待转码视频对应的视频全局复杂度,根据N个视频关键帧分别对应的局部区域复杂度,计算待转码视频对应的视频局部复杂度;其中,视频全局复杂度可以为N个视频关键帧的全局复杂度的平均值,或者可以为N个视频关键帧的全局复杂度的中位数等;视频局部复杂度可以为N个视频关键帧的局部区域复杂度的平均值,或者可以为N个视频关键帧的局部区域复杂度中的局部区域复杂度最大值等,本申请对视频全局复杂度和视频局部复杂度的计算方式不做限定。
请参见图4,图4是本申请实施例提供的一种待转码视频的预分析示意图;如图4所示,计算机设备获取到待转码视频20a后,可以从待转码视频20a中获取所有I帧(待解码关键帧),如关键帧20b和关键帧20c等,并对所有I帧进行解码重建,得到解码后的I帧(视频关键帧),如对关键帧20b进行解码重建可以得到关键帧20d,对关键帧20c进行解码重建可以得到关键帧20e,进而可以计算每个解码后的I帧的全局复杂度和局部区域复杂度。待转码视频20a中每个解码后的I帧的复杂度计算方式是相同的,为便于理解,下面以关键帧20d为例进行说明。
如图4所示,可以将关键帧20d划分为6个区域(此处的M取值为6),分别标记为区域1、区域2、区域3、区域4、区域5、区域6,在每个区域中确定9个像素宏块(此处的D取值为9),即关键帧20d中的6个区域的每个区域都可以包括9个像素宏块,进而以像素宏块为基本单位,计算每个像素宏块分别对应的像素方差。如区域3中的9个像素宏块分别对应的像素方差可以分别记为方差1至方差9,进而可以通过计算方差1至方差9之间的平均值,确定区域3对应的方差均值;同理,可以计算得到关键帧20d中的6个区域分别对应的方差均值。
通过计算6个区域的方差均值的平均值,可以得到关键帧20d对应的全局复杂度,还可以将6个区域的方差均值中的最大值确定为关键帧20d对应的对应的局部区域复杂度;同理,可以计算得到每个解码后的I帧(例如,关键帧20e)对应的全局复杂度和局部区域复杂度。通过待转码视频中所有解码后的I帧的全局复杂度和局部区域复杂度,确定待转码视频20a对应的目标码率,该目标码率可以用于对待转码视频20a进行转码处理。
步骤S105,根据目标码率,对待转码视频进行转码处理。
具体的,在确定了目标码率后,可以根据该目标码率,并结合其它转码所需的参数,对待转码视频进行转码处理。
需要说明的是,待转码视频的转码处理包括对该待转码视频先解码再编码的过程,也就是说,需要对待转码视频中的所有视频帧(包括I帧、P帧以及B帧)进行解码处理,得到该待转码视频的解码结果(像素数据),进而对解码结果进行编码处理,得到目标视频,此时的目标视频即为转码后的视频。上述步骤S101中对待转码视频中的待解码关键帧(I帧)进行了解码,且I帧作为待转码视频的每个图像组中第一个解码的视频帧,在对待转码视频进行转码处理时,可以直接使用I帧的解码结果(视频关键帧);当然,也可以对待转码视频中的I帧进行重新解码,本申请对此不做限定。
在一个或多个实施例中,计算机设备可以获取待转码视频中的各个待解码视频帧对应的解码顺序,根据解码顺序对各个待解码视频帧进行解码处理,得到待转码视频中的各个视频帧;进而可以根据目标码率,对待转码视频中的各个视频帧进行编码处理,得到目标视频。其中,计算机设备所获取到的待转码视频可以包括各个视频帧的显示顺序和解码顺序,且显示顺序与解码顺序是不同的。
请参见图5,图5是本申请实施例提出的一种待转码视频的解码顺序示意图;如图5所示,假设计算机设备所获取到的待转码视频中的视频帧依次为I帧、B帧、B帧、P帧、B帧、B帧、P帧,那么上述排序即为待转码视频中的各个视频帧的显示顺序;在待转码视频的解码过程中,可以读取该待转码视频中的第一个图像组,并优先对该图像组中的I帧进行解码,I帧无需参考其他视频帧就可以直接进行独立解码,由此可以得到该I帧对应的解码结果。
进一步地,可以对该图像组中的第一个P帧(即待转码视频中显示顺序为4的P帧)进行解码,在对第一个P帧进行解码时,需要参考其前面已经解码的I帧,得到第一个P帧的解码结果;进而可以根据已解码的I帧和P帧,对图像组中的第一个B帧(即待转码视频中显示顺序为2的B帧)进行解码,得到第一个B帧的解码结果,进而可以根据已解码的I帧和P帧对图像组中的第二个B帧(即待转码视频中显示顺序为3的B帧),得到第二个B帧的解码结果;以此类推,得到待转码视频中各个视频帧的解码结果。需要说明的是,I帧可以进行独立解码,P帧的解码需要参考其前面已解码的I帧,B帧的解码需要参考其前面已解码的I帧或P帧,以及后面已解码的I帧或P帧。根据前述预分析确定的目标码率,结合其它编码所需的参数,对待转码视频的解码结果进行编码处理,可以得到目标视频,该目标视频可以认为是对待转码视频进行转码处理后所得到的最终视频,计算机设备可以对该目标视频进行播放或者将该目标视频传输至其它设备进行播放。
本申请实施例中,通过解码重建待转码视频中的视频关键帧,对视频关键帧进行区域划分,不同区域中选取不交叠的候选像素块,通过计算候选像素块中的像素宏块的像素方差,可以确定视频关键帧的全局复杂度和局部区域复杂度,并根据全局复杂度和局部区域复杂度可以自适应调整待转码视频在转码时的目标码率,可以提高视频转码质量,且在对待转码视频的预分析中,仅对待转码视频中的视频关键帧进行解码重构,可以降低码率预分析过程中的计算复杂度。
请参见图6,图6是本申请实施例提供的另一种视频转码方法的流程示意图。可以理解的是,该视频转码方法可以由计算机设备执行,该计算机设备可以为图1所示的视频转码***中的服务设备10a,也可以为终端设备10b,本申请对此不做限定;如图6所示,该视频转码方法可以包括以下步骤S201至步骤S211:
步骤S201,根据待转码视频对应的帧位置索引信息,获取待转码视频所包含的N个待解码关键帧;N为正整数。
具体的,计算机设备在获取到待转码视频后,可以获取该待转码视频对应的帧位置索引信息,该帧位置索引信息可以用于确定待解码关键帧(I帧)在待转码视频所指示的视频序列中的位置;基于该帧位置索引信息可以获取待转码视频所包含的N个待解码关键帧,N为正整数。其中,待转码视频所指示的视频序列可以由多个图像组(GOP)组成,每个图像组都只包含一个I帧,且该I帧为图像组的第一个视频帧,通过帧位置索引信息可以准确读取待转码视频中的各个图像组,进而获取各个图像组中的待解码关键帧(I帧),当待转码视频包括N个图像组时,可以从待转码视频中识别到N个待解码关键帧。
步骤S202,获取N个待解码关键帧中的每个待解码关键帧对应的编码模式信息,基于编码模式信息对每个待解码关键帧进行解码处理,得到N个视频关键帧,以及待转码视频的视频码率和视频分辨率。
具体的,计算机设备可以根据待转码视频对应的编码方式,确定其对应的解码器,通过该解码器可以得到待转码视频对应的编码模式信息,根据该编码模式信息依次对待转码视频中的各个待解码关键帧进行解码重建,可以得到N个视频关键帧,即本申请实施例可以将待转码视频中未解码的I帧称为待解码关键帧,将解码后的I帧称为视频关键帧;可以理解的是,在对待解码关键帧进行解码的过程中,计算机设备还可以获取待转码视频对应的视频码率(可以记为Brin)和视频分辨率(该视频分辨码率的宽度可以记为W,高度可以记为H)等信息。
步骤S203,将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块。
具体的,计算机设备在得到解码重建后的N个视频关键帧后,可以按照相同的划分方式,将每个视频关键帧都划分为M个区域,M为正整数,为便于理解,本申请实施例后续均以M=6为例进行具体描述。在每个区域中,可以随机选取与其他5个区域互不交叠的候选像素块,该候选像素块的尺寸为K*K;每个候选像素块可以按照固定尺寸(可以为预先设置的数值,为便于理解,本申请实施例均以8*8为例进行说明)划分为多个像素宏块,其具体实现过程可以参见前述图3所对应实施例的步骤S102中的相关描述,此处不再进行赘述。
请参见图7,图7是本申请实施例提供的一种视频关键帧的区域划分示意图;如图7所示,计算机设备可以将视频关键帧30a划分为6个区域(可以记为区域Zy,即视频关键帧30a中的第y个区域,y为小于或等于6的正整数,如图7所示,此时的y=1),进而可以在每个区域中随机选择一个尺寸为K*K的候选像素块,如区域Zy中随机选取的候选像素块可以记为By。如图7所示,视频关键帧30a的6个区域中所随机选取的候选像素块互不交叠,且每个候选像素块都可以划分为8*8的像素宏块,该像素宏块可以作为后续计算复杂度时基本单元。
步骤S204,获取每个区域中的各个像素宏块对应的像素方差,根据每个区域中的各个像素宏块对应的像素方差,确定每个区域分别对应的方差均值。
具体的,计算机设备可以对每个区域中的各个像素宏块进行像素方差计算,如可以获取区域Zy中的第t个像素宏块对应的像素平均值,根据第t个像素宏块中的每个像素值与像素平均值之间的差值,确定第t个像素宏块对应的像素方差;其中,区域Zy属于M个区域,y为小于或等于M的正整数,t为小于或等于D(单个候选像素块对应的像素宏块的数量)的正整数,每个像素宏块对应的像素方差可以通过下述公式(1)计算得到:
其中,表示为区域Zy中的任意一个像素宏块(例如,在该区域Zy的候选像素块中处于(p,q)位置的像素宏块,或者通过特定方式编号后的第t个像素宏块)的像素方差,P(i,j)表示为位置(i,j)对应的像素值,/>表示当前8*8像素宏块对应的像素平均值。/>
基于公式(1)计算得到区域Zy中各个像素宏块分别对应的像素方差后,可以根据区域Zy中各个像素宏块分别对应的像素方差,确定区域Zy对应的方差均值,如该区域Zy对应的方差均值可以通过下述公式(2)计算得到:
其中,Vy表示区域Zy对应的方差均值,表示区域Zy所包含的像素宏块的数量(等同于前述D)。通过公式(2),可以计算得到一个视频关键帧(例如,视频关键帧Fx)中的6个区域分别对应的方差均值。
步骤S205,将M个区域对应的方差均值的平均值,确定为视频关键帧Fx对应的全局复杂度。
具体的,计算机设备可以计算视频关键帧Fx所包含的M(M=6)个区域对应的方差均值的平均值,并将计算得到的平均值确定为该视频关键帧Fx对应的全局复杂度(也可以称为复杂度均值),该全局复杂度/>可以如下述公式(3)所示:
步骤S206,在M个区域对应的方差均值中,将最大的方差均值确定为视频关键帧Fx对应局部区域复杂度。
具体的,计算机设备可以从视频关键帧Fx所包含的6个区域的方差均值中,找到最大的方差均值(可以称为区域复杂度最大值)作为视频关键帧Fx对应局部区域复杂度局部区域复杂度/>可以如下述公式(4)所示:
步骤S207,获取待转码视频对应的初始码率参数,根据N个视频关键帧分别对应的全局复杂度,确定N个视频关键帧对应的全局复杂度均值。
具体的,计算机设备可以根据主观经验或者视频传输的基本需求,确定待转码视频对应的初始码率参数(可以记为Brinit)和最大码率阈值(可以认为是预先设置的目标码率的最大值,可以记为Brmax)。其中,若依据视频传输的基本需求设置初始码率参数,则可以根据待转码视频对应的视频码率Brin和视频分辨率来确定,例如:可以将视频分辨率的宽度和高度之和与分辨率参数之间的比值,确定为分辨率占比值;获取视频码率对应的第一加权参数,以及预置码率参数对应的第二加权参数;基于第一加权参数和视频码率之间的乘积,以及第二加权参数、预置码率参数、分辨率占比值之间的乘积,确定待转码视频对应的初始码率参数Brinit。其中,该初始码率参数Brinit可以如下述公式(5)所示:
Brinit=a1*Brin+a2*Brc*(W+H)/RES (5)
其中,a1、a2、RES均为常数参数,a1表示为上述第一加权参数,a2表示为上述第二加权参数,RES表示为上述分辨率参数,其中a1+a2=1.0,RES可以取值为3000,Brc可以依据对视频质量的需求或者主观经验进行确定,该Brc可以表示为上述预置码率参数;(W+H)/RES可以表示为上述分辨率占比值。
计算机设备可以计算所有视频关键帧的全局复杂度的平均值,并将该平均值确定为N个视频关键帧对应的全局复杂度均值Vavg,该全局复杂度均值Vavg可以如下述公式(6)所示:
步骤S208,根据N个视频关键帧分别对应的局部区域复杂度,确定N个视频关键帧对应的局部复杂度均值。
具体的,计算机设备可以计算所有视频关键帧的局部区域复杂度的平均值,并将该平均值确定为N个视频关键帧对应的局部复杂度均值/>该局部复杂度均值可以如下述公式(7)所示:
步骤S209,根据初始码率参数和全局复杂度均值,确定待转码视频对应的候选码率。
具体的,计算机设备可以将全局复杂度均值Vavg与全局复杂度参数(可以记为Tv)之间的比值,确定为全局复杂度占比值(可以记为Vavg/Tv),根据初始码率参数Brinit和全局复杂度占比值Vavg/Tv,确定待转码视频对应的候选码率Bro;换言之,可以基于初始码率参数Brinit和全局复杂度均值Vavg进行码率调整,以得到待转码视频对应的候选码率Bro,该候选码率Bro可以如下述公式(8)所示:
其中,a3,a4,Tv均为常数参数,其中a3+a4=1.0,Tv可以为依据经验设置的复杂度均值常数(即上述全局复杂度参数)。需要说明的是,此处的a3和a4可以与前述公式(5)中的a1和a2相同,也可以不相同,本申请对此不做限定。
步骤S210,根据局部复杂度均值,对候选码率进行调整,得到待转码视频对应的目标码率。
具体的,计算机设备还可以根据局部复杂度均值对候选码率Bro进行调整,得到待转码视频对应的目标码率Brfinal,如若局部复杂度均值/>小于或等于局部复杂度参数(可以记为/>该局部复杂度参数可以为依据经验设置的复杂度最大值常数),则将候选码率Bro确定为待转码视频对应的目标码率Brfinal;若局部复杂度均值/>大于局部复杂度参数/>则将最大码率阈值/>确定为待转码视频对应的目标码率Brfinal;该目标码率Brfinal可以如下述公式(9)所示:
步骤S211,根据目标码率,对待转码视频进行转码处理。
其中,步骤S211的具体实现过程可以参见图3所对应实施例的步骤S105中的相关描述,此处不再进行赘述。
请参见图8,图8是本申请实施例提供的一种基于全局与局部信息融合的码率自适应调整方法的流程示意图;如图8所示,该码率自适应调整方法的实现过程可以包括以下步骤S301至步骤S304:
步骤S301,视频关键帧解码与重建。
具体的,计算机设备在获取到待转码视频后,可以根据待转码视频对应的编码方式(例如,AVC/H.264或HEVC等编码方式),确定对应的解码器,并利用解码器进行待解码关键帧的解码与重建,即只对待转码视频中的I帧(待解码关键帧)进行解码,而对待转码视频中的P帧和B帧进行跳过处理,得到待转码视频中的N个视频关键帧。
步骤S302,视频关键帧区域划分与随机块选取。
具体的,计算机设备可以对每个视频关键帧进行定向区域划分,如可以将每个视频关键帧划分为6个区域,在每个区域内,随机选取与其他5个区域互不交叠的尺寸为K*K的候选像素块(即随机块),通过随机选取候选像素块,可以提高后续复杂度估计鲁棒性。
步骤S303,复杂度局部最大值与复杂度平均值计算。
具体的,计算机设备可以根据前述公式(1)至公式(4),计算各个视频关键帧对应的复杂度局部最大值(局部区域复杂度)和复杂度平均值(全局复杂度/>),具体实现过程可以参见前述相关描述,此处不再进行赘述。
步骤S304,基于复杂度局部最大值和复杂度平均值的目标码率自适应调整。
具体的,计算机设备可以依据前述公式(5)至公式(9),通过复杂度局部最大值和复杂度平均值自适应调整目标码率,具体实现过程可以参见前述相关描述,此处不再进行赘述。
本申请实施例中,通过解码重建待转码视频中的视频关键帧,对视频关键帧进行区域划分,不同区域中选取不交叠的候选像素块,通过计算候选像素块中的像素宏块的像素方差,可以确定视频关键帧的全局复杂度和局部区域复杂度,并根据全局复杂度和局部区域复杂度可以自适应调整待转码视频在转码时的目标码率,可以提高视频转码质量,且在对待转码视频的预分析中,仅对待转码视频中的视频关键帧进行解码重构,可以降低码率预分析过程中的计算复杂度。
请参见图9,图9是本申请实施例提供的一种视频转码装置的结构示意图。如图9所示,该视频转码装置1可以包括:关键帧解码模块11,宏块获取模块12,复杂度确定模块13,码率确定模块14,视频转码模块15;
关键帧解码模块11,用于获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到待转码视频中的视频关键帧;
宏块获取模块12,用于将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
复杂度确定模块13,用于根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;全局复杂度和局部区域复杂度用于表征待转码视频的视频场景内容复杂度;
码率确定模块14,用于获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率;
视频转码模块15,用于根据目标码率,对待转码视频进行转码处理。
其中,关键帧解码模块11,宏块获取模块12,复杂度确定模块13,码率确定模块14,视频转码模块15的具体功能实现方式可以参见前述图3所对应实施例中的步骤S101至步骤S105,此处不再进行赘述。
在一个或多个实施例中,关键帧解码模块11包括:关键帧获取单元111,解码处理单元112;
关键帧获取单元111,用于根据待转码视频对应的帧位置索引信息,获取待转码视频所包含的N个待解码关键帧;N为正整数;
解码处理单元112,用于获取N个待解码关键帧中的每个待解码关键帧对应的编码模式信息,基于编码模式信息对每个待解码关键帧进行解码处理,得到N个视频关键帧,以及待转码视频的视频码率和视频分辨率。
其中,关键帧获取单元111,解码处理单元112的具体功能实现方式可以参见前述图6所对应实施例中的步骤S201至步骤S202,此处不再进行赘述。
在一个或多个实施例中,视频关键帧的数量为N个,N为正整数;
宏块获取模块12包括:像素块确定单元121,像素块划分单元122;
像素块确定单元121,用于将N个视频关键帧中的视频关键帧Fx划分为M个区域,在M个区域的每个区域中确定候选像素块;M个区域中的候选像素块之间互不交叠,x为小于或等于N的正整数;
像素块划分单元122,用于按照固定尺寸对每个区域中的候选像素块进行划分,得到每个区域中的候选像素块对应的D个像素宏块;D为正整数。
其中,像素块确定单元121,像素块划分单元122的具体功能实现方式可以参见前述图3所对应实施例中的步骤S102,此处不再进行赘述。
在一个或多个实施例中,复杂度确定模块13包括:方差均值获取单元131,全局复杂度确定单元132,局部复杂度确定单元133;
方差均值获取单元131,用于获取每个区域中的各个像素宏块对应的像素方差,根据每个区域中的各个像素宏块对应的像素方差,确定每个区域分别对应的方差均值;
全局复杂度确定单元132,用于将M个区域对应的方差均值的平均值,确定为视频关键帧Fx对应的全局复杂度;
局部复杂度确定单元133,用于在M个区域对应的方差均值中,将最大的方差均值确定为视频关键帧Fx对应局部区域复杂度。
可选地,方差均值获取单元131获取每个区域中的各个像素宏块对应的像素方差包括:
获取区域Zy中的第t个像素宏块对应的像素平均值;区域Zy属于M个区域,y为小于或等于M的正整数,t为小于或等于D的正整数;
根据第t个像素宏块中的每个像素值与像素平均值之间的差值,确定第t个像素宏块对应的像素方差。
其中,方差均值获取单元131,全局复杂度确定单元132,局部复杂度确定单元133的具体功能实现方式可以参见前述图6所对应实施例中的步骤S204至步骤S206,此处不再进行赘述。
在一个或多个实施例中,码率确定模块14包括:分辨率占比值确定单元141,加权参数获取单元142,初始码率参数确定单元143,第一均值确定单元144,第二均值确定单元145,候选码率确定单元146,目标码率确定单元147;
分辨率占比值确定单元141,用于将视频分辨率的宽度和高度之和与分辨率参数之间的比值,确定为分辨率占比值;
加权参数获取单元142,用于获取视频码率对应的第一加权参数,以及预置码率参数对应的第二加权参数;
初始码率参数确定单元143,用于基于第一加权参数和视频码率之间的乘积,以及第二加权参数、预置码率参数、分辨率占比值之间的乘积,确定待转码视频对应的初始码率参数。
第一均值确定单元144,用于根据N个视频关键帧分别对应的全局复杂度,确定N个视频关键帧对应的全局复杂度均值;
第二均值确定单元145,用于根据N个视频关键帧分别对应的局部区域复杂度,确定N个视频关键帧对应的局部复杂度均值;
候选码率确定单元146,用于根据初始码率参数和全局复杂度均值,确定待转码视频对应的候选码率;
目标码率确定单元147,用于根据局部复杂度均值,对候选码率进行调整,得到待转码视频对应的目标码率。
可选地,候选码率确定单元146具体用于:
将全局复杂度均值与全局复杂度参数之间的比值,确定为全局复杂度占比值;
根据初始码率参数和全局复杂度占比值,确定待转码视频对应的候选码率。
可选地,目标码率确定单元147具体用于:
若局部复杂度均值小于或等于局部复杂度参数,则将候选码率确定为待转码视频对应的目标码率;
若局部复杂度均值大于局部复杂度参数,则将最大码率阈值确定为待转码视频对应的目标码率。
其中,分辨率占比值确定单元141,加权参数获取单元142,初始码率参数确定单元143,第一均值确定单元144,第二均值确定单元145,候选码率确定单元146,目标码率确定单元147的具体功能实现方式可以参见前述图6所对应实施例中的步骤S207至步骤S210,此处不再进行赘述。
在一个或多个实施例中,视频转码模块15包括:视频解码单元151,视频编码单元152;
视频解码单元151,用于获取待转码视频中的各个待解码视频帧对应的解码顺序,根据解码顺序对各个待解码视频帧进行解码处理,得到待转码视频中的各个视频帧;各个待解码视频帧包括待解码关键帧;
视频编码单元152,用于根据目标码率,对待转码视频中的各个视频帧进行编码处理,得到目标视频。
其中,视频解码单元151,视频编码单元152的具体功能实现方式可以参见前述图3所对应实施例中的步骤S105,此处不再进行赘述。
本申请实施例中,通过解码重建待转码视频中的视频关键帧,对视频关键帧进行区域划分,不同区域中选取不交叠的候选像素块,通过计算候选像素块中的像素宏块的像素方差,可以确定视频关键帧的全局复杂度和局部区域复杂度,并根据全局复杂度和局部区域复杂度可以自适应调整待转码视频在转码时的目标码率,可以提高视频转码质量,且在对待转码视频的预分析中,仅对待转码视频中的视频关键帧进行解码重构,可以降低码率预分析过程中的计算复杂度。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备1000可以为终端设备,例如,上述图1所示的视频转码***中的终端设备10b,还可以为服务器,例如,上述图1所示的视频转码***中的服务设备10a,这里将不对其进行限制。为便于理解,本申请以计算机设备为用户终端为例,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备1000中的网络接口1004还可以提供网络通讯功能,且可选用户接口1003还可以包括显示屏(Display)、键盘(Keyboard)。在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待转码视频,对待转码视频中的待解码关键帧进行解码处理,得到待转码视频中的视频关键帧;
将视频关键帧划分为M个区域,获取M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
根据每个区域中的像素宏块对应的像素方差,确定视频关键帧对应的全局复杂度和局部区域复杂度;全局复杂度和局部区域复杂度用于表征待转码视频的视频场景内容复杂度;
获取待转码视频对应的初始码率参数,根据初始码率参数、全局复杂度以及局部区域复杂度,确定待转码视频对应的目标码率;
根据目标码率,对待转码视频进行转码处理。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3、图6以及图8任一个所对应实施例中对视频转码方法的描述,也可执行前文图9所对应实施例中对视频转码装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的视频转码装置1所执行的计算机程序,且计算机程序包括计算机指令,当处理器执行计算机指令时,能够执行前文图3、图6以及图8任一个所对应实施例中对视频转码方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,计算机指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链***。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3、图6以及图8任一个所对应实施例中对视频转码方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种视频转码方法,其特征在于,包括:
获取待转码视频,对所述待转码视频中的待解码关键帧进行解码处理,得到所述待转码视频中的视频关键帧;
将所述视频关键帧划分为M个区域,获取所述M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
根据所述每个区域中的像素宏块对应的像素方差,确定所述视频关键帧对应的全局复杂度和局部区域复杂度;所述全局复杂度和所述局部区域复杂度用于表征所述待转码视频的视频场景内容复杂度;
获取所述待转码视频对应的初始码率参数,根据所述初始码率参数、所述全局复杂度以及所述局部区域复杂度,确定所述待转码视频对应的目标码率;
根据所述目标码率,对所述待转码视频进行转码处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述待转码视频中的待解码关键帧进行解码处理,得到所述待转码视频中的视频关键帧,包括:
根据所述待转码视频对应的帧位置索引信息,获取所述待转码视频所包含的N个待解码关键帧;N为正整数;
获取所述N个待解码关键帧中的每个待解码关键帧对应的编码模式信息,基于所述编码模式信息对所述每个待解码关键帧进行解码处理,得到N个视频关键帧,以及所述待转码视频的视频码率和视频分辨率。
3.根据权利要求1所述的方法,其特征在于,所述视频关键帧的数量为N个,N为正整数;
所述将所述视频关键帧划分为M个区域,获取所述M个区域所包含的每个区域中的像素宏块,包括:
将N个视频关键帧中的视频关键帧Fx划分为M个区域,在所述M个区域的每个区域中确定候选像素块;所述M个区域中的候选像素块之间互不交叠,x为小于或等于N的正整数;
按照固定尺寸对所述每个区域中的候选像素块进行划分,得到所述每个区域中的候选像素块对应的D个像素宏块;D为正整数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个区域中的像素宏块对应的像素方差,确定所述视频关键帧对应的全局复杂度和局部区域复杂度,包括:
获取所述每个区域中的各个像素宏块对应的像素方差,根据所述每个区域中的各个像素宏块对应的像素方差,确定所述每个区域分别对应的方差均值;
将所述M个区域对应的方差均值的平均值,确定为所述视频关键帧Fx对应的全局复杂度;
在所述M个区域对应的方差均值中,将最大的方差均值确定为所述视频关键帧Fx对应局部区域复杂度。
5.根据权利要求4所述的方法,其特征在于,所述获取所述每个区域中的各个像素宏块对应的像素方差,包括:
获取区域Zy中的第t个像素宏块对应的像素平均值;所述区域Zy属于所述M个区域,y为小于或等于M的正整数,t为小于或等于D的正整数;
根据所述第t个像素宏块中的每个像素值与所述像素平均值之间的差值,确定所述第t个像素宏块对应的像素方差。
6.根据权利要求2所述的方法,其特征在于,所述获取所述待转码视频对应的初始码率参数,包括:
将所述视频分辨率的宽度和高度之和与分辨率参数之间的比值,确定为分辨率占比值;
获取所述视频码率对应的第一加权参数,以及预置码率参数对应的第二加权参数;
基于所述第一加权参数和视频码率之间的乘积,以及所述第二加权参数、所述预置码率参数、所述分辨率占比值之间的乘积,确定所述待转码视频对应的初始码率参数。
7.根据权利要求1所述的方法,其特征在于,所述视频关键帧的数量为N个,N为正整数;
所述根据所述初始码率参数、所述全局复杂度以及所述局部区域复杂度,确定所述待转码视频对应的目标码率,包括:
根据N个视频关键帧分别对应的全局复杂度,确定所述N个视频关键帧对应的全局复杂度均值;
根据所述N个视频关键帧分别对应的局部区域复杂度,确定所述N个视频关键帧对应的局部复杂度均值;
根据所述初始码率参数和所述全局复杂度均值,确定所述待转码视频对应的候选码率;
根据所述局部复杂度均值,对所述候选码率进行调整,得到所述待转码视频对应的目标码率。
8.根据权利要求7所述的方法,其特征在于,所述根据所述初始码率参数和所述全局复杂度均值,确定所述待转码视频对应的候选码率,包括:
将所述全局复杂度均值与全局复杂度参数之间的比值,确定为全局复杂度占比值;
根据所述初始码率参数和所述全局复杂度占比值,确定所述待转码视频对应的候选码率。
9.根据权利要求7所述的方法,其特征在于,所述根据所述局部复杂度均值,对所述候选码率进行调整,得到所述待转码视频对应的目标码率,包括:
若所述局部复杂度均值小于或等于局部复杂度参数,则将所述候选码率确定为所述待转码视频对应的目标码率;
若所述局部复杂度均值大于所述局部复杂度参数,则将最大码率阈值确定为所述待转码视频对应的目标码率。
10.根据权利要求1所述的方法,其特征在于,所述根据所述目标码率,对所述待转码视频进行转码处理,包括:
获取所述待转码视频中的各个待解码视频帧对应的解码顺序,根据所述解码顺序对所述各个待解码视频帧进行解码处理,得到所述待转码视频中的各个视频帧;所述各个待解码视频帧包括所述待解码关键帧;
根据所述目标码率,对所述待转码视频中的各个视频帧进行编码处理,得到目标视频。
11.一种视频转码装置,其特征在于,包括:
关键帧解码模块,用于获取待转码视频,对所述待转码视频中的待解码关键帧进行解码处理,得到所述待转码视频中的视频关键帧;
宏块获取模块,用于将所述视频关键帧划分为M个区域,获取所述M个区域所包含的每个区域中的像素宏块;M为大于1的整数;
复杂度确定模块,用于根据所述每个区域中的像素宏块对应的像素方差,确定所述视频关键帧对应的全局复杂度和局部区域复杂度;所述全局复杂度和所述局部区域复杂度用于表征所述待转码视频的视频场景内容复杂度;
码率确定模块,用于获取所述待转码视频对应的初始码率参数,根据所述初始码率参数、所述全局复杂度以及所述局部区域复杂度,确定所述待转码视频对应的目标码率;
视频转码模块,用于根据所述目标码率,对所述待转码视频进行转码处理。
12.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至10任一项所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163307.4A CN117812268A (zh) | 2022-09-23 | 2022-09-23 | 视频转码方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163307.4A CN117812268A (zh) | 2022-09-23 | 2022-09-23 | 视频转码方法、装置、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117812268A true CN117812268A (zh) | 2024-04-02 |
Family
ID=90430640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211163307.4A Pending CN117812268A (zh) | 2022-09-23 | 2022-09-23 | 视频转码方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117812268A (zh) |
-
2022
- 2022-09-23 CN CN202211163307.4A patent/CN117812268A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11451787B2 (en) | Method and apparatus for video encoding and decoding | |
KR101859155B1 (ko) | 높은 프레임 레이트 및 가변 프레임 레이트 캡처를 위한 비디오 압축 튜닝 | |
US20200396460A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, computer device, and storage medium | |
US11558639B2 (en) | Selective resolution video encoding method, computer device, and readable storage medium | |
CN107005698B (zh) | 支持尽力服务解码的元数据提示 | |
US20220058775A1 (en) | Video denoising method and apparatus, and storage medium | |
US11743475B2 (en) | Advanced video coding method, system, apparatus, and storage medium | |
KR20070011225A (ko) | 인터-코딩에 사용된 기준 화상의 수를 최소화하기 위한방법 및 장치 | |
JP2006519565A (ja) | ビデオ符号化 | |
KR20110071231A (ko) | 부호화 방법, 복호화 방법 및 장치 | |
WO2012098845A1 (ja) | 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置 | |
CN106412611B (zh) | 一种高效视频编码的复杂度控制方法 | |
US9565404B2 (en) | Encoding techniques for banding reduction | |
CN115118976A (zh) | 一种图像编码方法、可读介质及其电子设备 | |
CN107409211B (zh) | 一种视频编解码方法及装置 | |
CN117616751A (zh) | 动态图像组的视频编解码 | |
CN117812268A (zh) | 视频转码方法、装置、设备以及介质 | |
CN113973202A (zh) | 视频编码方法、装置、设备及存储介质 | |
JP3690259B2 (ja) | 動画像高速符号化装置及び動画像高速符号化方法 | |
JP6735370B2 (ja) | 復号化方法 | |
JP5946980B1 (ja) | 画像復号化方法 | |
JP6181242B2 (ja) | 画像復号化方法 | |
JP5951915B2 (ja) | 画像復号化方法 | |
JP5911982B2 (ja) | 画像復号化方法 | |
CN117478881A (zh) | 视频信息处理方法、***、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |