Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. CN111225277 - 转码方法、转码装置和计算机可读存储介质

Note: Texte fondé sur des processus automatiques de reconnaissance optique de caractères. Seule la version PDF a une valeur juridique

[ ZH ]
转码方法、转码装置和计算机可读存储介质


技术领域
本申请属于计算机软件应用领域,尤其是转码方法、转码装置和计算机可读存储介质。
背景技术
在视频直播和点播应用中,为了满足各种用户需求,需要对原视频流做转码处理,转码是对原压缩视频流先解码后编码的一个过程。目前,用户有一个广泛需求是在已编码视频的某一区域(相对于显示屏固定或变化的区域)添加图文信息,例如有:水印图片、字幕、画中画、以及现在直播里的魔法表情和贴纸等等。
相关技术中,在对媒体文件进行转码时候,首先将被压缩的原视频流解码为原始视频格式的视频文件,之后,叠加图文信息等到视频中的特定区域,之后,进行再次编码。该转码方法实际上是一种完全解码再完全编码的方法。相关技术中的全解全编的转码方式,主要存在如下缺点:
第一、全解全编的方式,具有较大的计算量,使得处理器需要处理更大的工作量,并且编码耗费的时间更长;
第二,视频初次编码和再次编码两个过程,初次编码和再次编码使用的编码器可能不同,或者,初次编码和再次编码所采用的编码参数不同,导致原视频和转码后的新视频的分辨率、码率等参数不一致,从而,导致转码后的新视频图像清晰度相比原视频有所下降,或者导致编码后的新视频再播放时的流畅性能减弱,存在视频质量受损的问题。
发明内容
针对相关技术中存在的问题,本申请公开一种转码方法、转码装置和计算机可读存储介质。
第一方面,本发明实施例提供了一种转码方法,包括:
通过解码器对原视频进行解码,获得所述原视频的视频帧序列及所述原视频的编码信息,其中,所述原视频是需要添加图文信息的视频;
给所述视频帧序列添加所述图文信息,得到添加图文信息后的视频帧序列;
通过编码器,使用所述编码信息对所述添加图文信息后的视频帧序列进行编码,得到新视频。
可选地,所述原视频的编码信息包括:所述原视频的帧信息、片信息和编码单元信息,其中,所述帧信息为所述原视频的每个图像帧的视频特征数据,所述片信息为原视频的每个片的编码参数,所述编码单元信息为组成所述原视频的每个图像帧的第一基础编码单元的编码参数。
可选地,所述通过编码器,使用所述编码信息对所述添加图文信息后的视频帧序列进行编码,包括:
使用所述帧信息,将所述编码器初始化;
将所述添加图文信息后的视频帧序列划分为第二基础编码单元;
通过初始化后的所述编码器,根据所述片信息和所述编码单元信息,对所述第二基础编码单元进行编码。
可选地,所述根据所述片信息和所述编码单元信息,对所述第二编码单元进行编码包括:
获取各个所述第二基础编码单元的位置信息;
依次基于所述位置信息,判断当前所述第二基础编码单元是否与所述图文信息的覆盖区域有关,得到判断结果;
根据所述判断结果,确定是否使用所述片信息和所述编码单元信息对所述第二编码树单元进行编码。
可选地,所述依次基于所述位置信息,判断当前所述第二编码单元是否与所述图文信息的覆盖区域有关,包括:
判断当前所述第二基础编码单元是否满足第一条件和第二条件中的任一条件,其中,
所述第一条件为当前所述第二基础编码单元位于所述图文信息覆盖的区域;
所述第二条件为当前所述第二基础编码单元为帧间模式且满足以下任一条件:参考了所述图文信息覆盖的区域的图像,视频运动矢量预测受到目标编码树单元的影响,其中,所述目标编码数单元为当前所述第二基础编码单元相邻的已被判为与所述覆盖区域有关的所述第二基础编码单元。
可选地,所述根据所述判断结果,确定是否使用所述片信息和所述编码单元信息对所述第二编码单元进行编码,包括:
在所述判断结果为当前所述第二基础编码单元与所述图文信息覆盖的区域无关的情况下,使用所述片信息和所编码单元信息对所述第二编码单元进行编码。
可选地,所述原视频的编码标准为HECV,所述帧信息存储在所述原视频的头部信息中,所述第一基础编码单元为编码树单元。
可选地,所述原视频的头部信息还包括视频参数集、序列参数集和图像参数集。
可选地,所述原视频的编码标准为VP9,所述原视频的帧信息包含在每个图像帧的头部信息中,所述第一基础编码单元为超级块。
可选地,所述图文信息包括图片水印、音频水印、字幕、弹幕、画中画、贴纸和魔法表情中的至少一种。
第二方面,本发明实施例提供一种转码装置,包括:
获取模块,用于通过解码器对原视频进行解码,获得所述原视频的视频帧序列及所述原视频的编码信息,其中,所述原视频是需要添加图文信息的视频;
添加模块,用于给所述视频帧序列添加所述图文信息,得到添加图文信息后的视频帧序列;
编码模块,用于通过编码器,使用所述编码信息对所述添加图文信息后的视频帧序列进行编码,得到新视频。
可选地,所述原视频的编码信息包括:所述原视频的帧信息、片信息和编码单元信息,其中,所述视频头信息为所述原视频的帧图像的视频特征数据,所述片信息为原视频的片的编码参数,所述编码单元信息为组成所述原视频的每帧图像的第一基础编码单元的编码参数。
可选地,所述编码模块包括:
第二获取单元,用于从原视频的编码信息获取所述原视频的帧信息、片信息和编码单元信息,并获取所述添加图文信息后的视频帧序列;
初始化单元,用于使用所述帧信息,将所述编码器初始化;
划分单元,用于将所述添加图文信息后的视频帧序列划分为第二基础编码单元;
编码单元,用于通过初始化后的所述编码器,根据所述片信息和所述编码单元信息,对所述第二基础编码单元进行编码。
可选地,所述编码单元包括:
获取子单元,用于获取各个所述第二基础编码单元的位置信息;
判断子单元,用于依次基于所述位置信息,判断当前所述第二基础编码单元是否与所述图文信息的覆盖区域有关,得到判断结果;
确定子单元,用于根据所述判断结果,确定是否使用所述片信息和所述编码单元信息对所述第二基础编码单元进行编码。
可选地,所述判断子单元用于:
判断当前所述第二基础编码单元是否满足第一条件和第二条件中的任一条件,其中,
所述第一条件为当前所述第二基础编码单元位于所述图文信息覆盖的区域;
所述第二条件为当前所述第二基础编码单元为帧间模式且满足以下任一条件:参考了所述覆盖区域的图像,视频运动矢量预测受到目标编码树单元的影响,其中,所述目标编码数单元为当前所述第二编码树单元相邻的已被判为与所述覆盖区域有关的所述第二编码树单元。
可选地,所述确定子单元用于:
在所述判断结果为当前所述第二基础编码单元与所述图文信息的覆盖区域无关的情况下,使用所述片信息和所述编码单元信息对所述第二基础编码单元进行编码。
可选地,所述图文信息包括图片水印、音频水印、字幕、弹幕、画中画、贴纸和魔法表情中的至少一种。
第三方面,本发明实施例提供一种转码装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任意一项所述的转码方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现第一方面所述的转码方法。
第五方面,本发明实施例提供了提供计算机程序产品,包括计算机程序产品,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行上述任意一项的转码方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的转码方法,通过解码器对原视频进行解码,获得原视频的视频帧序列及原视频的编码信息,其中,原视频是需要添加图文信息的视频;给视频帧序列添加图文信息,得到添加图文信息后的视频帧序列;通过编码器,使用编码信息对添加图文信息后的视频帧序列进行编码,得到新视频。
该转码方法,解码器解码过程中获得编码信息,编码信息的获取方便快捷;编码器基于编码信息对添加图文信息后的视频帧序列进行编码,减少了计算编码决策所耗费的时间,且保证了新视频和原视频在分辨率、码率和帧率等信息上的一致性,大幅改善新视频的画质,从而缓解了传统转码方法耗时长且质量易受损的技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1所示为常规转码方式的原理图;
图2所示为实施例一提供的一种转码方法的流程图;
图3所示为实施例一提供的一种使用编码信息对添加图文信息后的视频帧序列进行编码的方法流程图;
图4所示为实施例一提供的一种使用片信息和编码单元信息,对第二基础编码单元进行编码的方法流程图;
图5所示为一示例性实施例中编码信息的映射关系;
图6所示为实施例二提供的一种转码装置的结构框图;
图7所示为实施例三提供的一种转码装置的结构框图;
图8所示为实施例三提供的另一种转码装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
目前,为了满足用户在已编码的视频中加图文信息的需求,相关技术中的转码方法是把基于原视频的源流解码为原始视频格式的视频,例如,YUV(Luminance、Chrominance、Chroma)格式;叠加图文信息到视频中的某个特定区域,然后进行再次编码。图1所示为常规转码方式的原理图,参照图1,常规转码的流程具体如下:
首先,解码器将需要加图文信息的源流解码为YUV格式的视频帧序列;
然后,在需要添加图文信息的每个YUV格式的视频帧上叠加图文信息,生成加图文信息后的YUV视频帧序列;
最后,加图文信息的YUV视频帧序列进入编码器,被再次编码,生成转码流,以形成新视频。
该转码方式需要全解全编,较为耗时。
此外,全解全编的转码方式存在以下问题:
(1)视频画面组(Group of Pictures,简称GOP)结构的改变可能导致视频的图象帧延时等部分特性被改变。例如,由于视频编码器不同或者编码器采用的参数不同,不同视频流的GOP结构不尽相同。在转码端,源流的GOP结构是难以在程序里判断的,由于GOP存在变长和变短等不同情况,对不同的视频流做差异化处理存在较大的困难,而统一用相同的编码参数做转码则破坏了源流的GOP结构。
在很多实际应用里(如直播和点播的场景),GOP的长短决定了图像帧延时的大小,因而,GOP结构改变会导致图像帧延时的改变。
此外,编码器在编码时考虑到不同帧类型的重要性不同,为了提高视频流的整体质量,通常会给I帧分配较小的量化宽度(QP参数),以保留较高的图像质量,P帧次之,B帧分配较大的QP参数而拥有相对最差的图像质量。视频GOP结构的改变,使得新视频和原视频的同一帧可能使用不同的帧类型。例如,源流的I帧可能变为P帧甚至B帧,原来的P/B帧可能被转码流用作I帧,从而损害视频流的整体质量。
(2)转码流与源流无法时刻码率保持一致。例如,码率信息在HEVC标准里不会在视频的header包头中声明,是一个非标准的数据。实际应用中,mp4格式的metadata元数据中可能会存有码率数据,然而很多码流中的metadata没有视频码率的数据,或者视频码率数值错误,因而,metadata无法提供一个可靠的码率。而且,由于目前很多码流编码时大多数都采用ABR(可用比特率,availablebit-rate)的码率控制方式,码率是在实时变化的,这种情况下监控源流码率并通知编码器实时作出改变也是非常困难的。同时,由于GOP结构会被改变,新视频和原视频的同一帧可能使用不同的帧类型,使得转码流与源流的码率时刻保持一致也是不可能的。
综上,全编全解的转码方式会导致原视频和新视频的分辨率、码率等不一致,使得新视频图像清晰度有所下降,或者视频流畅性能有所减弱,存在视频质量受损的问题。
基于此,本发明实施例提供的一种转码方法、转码装置和计算机可读存储介质,解决全解全编的转码方法耗时长且质量易受损的技术问题。
为便于对本实施例进行理解,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明实施例一提供了一种转码方法,如图2所示,包括:
步骤S102,通过解码器对原视频进行解码,获得原视频的视频帧序列及原视频的编码信息,其中,原视频是需要添加图文信息的视频;
步骤S104,给视频帧序列添加图文信息,得到添加图文信息后的视频帧序列;
步骤S106,通过编码器,使用编码信息对添加图文信息后的视频帧序列进行编码,得到新视频。
需要说明的是,编码器和解码器为两个不同的功能模块,其中,编码器用于对视频帧序列进行编码,解码器用于对原视频进行解码。编码器和解码器可以是分离的两个器件,也可以是集成在一个设备外壳中的两个功能模块,本发明实施例对编码器和解码器不作限定。
本发明实施例中,解码器解码过程中获得原视频的编码信息,编码信息的获取方便快捷;编码器基于解码器获得的编码信息对添加图文信息后的视频帧序列进行编码,减少了计算编码决策所耗费的时间,且利用原视频的编码信息保证了新视频和原视频在分辨率、码率和帧率等信息上的一致性,大幅改善新视频的画质,从而缓解了传统转码方法耗时长且质量易受损的技术问题。
需要说明的是,在本发明的实施方式中,需要向原视频的视频帧序列中添加的图文信息包括但不限于图片水印、音频水印、字幕、弹幕、画中画、贴纸、魔法表情。
其中,步骤S102通过解码器对原视频进行解码,获取原视频的视频帧序列和编码信息。视频帧序列和编码信息可以存储在原视频的不同位置,解码器可以基于一次或多次的解析过程获得原视频的视频帧序列和编码信息。
进一步地,原视频的编码信息包括原视频的帧信息、片信息和编码单元信息,其中,帧信息为所述原视频的图像帧的视频特征数据,例如视频宽高等基本特征数据,所述片信息为原视频的每个片的编码参数,编码单元信息为组成原视频的每个图像帧的第一基础编码单元的编码参数。每个图像帧可以分成多个片,每个片可以分成多个基础编码单元。在不同的编码标准中,帧信息、片信息和编码单元信息的存储结构和在原视频中的存储位置可能不同,用于表示基础编码单元的术语可能不同。
下面分别HECV标准和VP9标准对上述实施例进行说明。
HECV标准的帧信息为图像帧的特征数据,基础编码单元为编码树单元。对于HECV标准,帧信息存储在原视频的视频头信息中。片信息为组成原视频的图像帧的片的信息,可以采用第一图像帧的第一片的编码参数。编码单元信息为组成原视频的图像帧的编码树单元的编码参数,可以采用第一片中的第一编码树单元的编码参数。
需要说明的是:
(1)视频头信息作为原视频的视频特征数据,是最重要的视频信息,包含原视频宽高等基本特征数据,通常在编码器初始化时使用这些数据;
(2)片信息是片的头信息。片(slice)是高效率视讯编码(High Efficiency VideoCoding,HEVC)的图像划分单位,一帧图像可以划分为多个slice,也可以作为一个slice,很多情况下为了简化编解码,一帧图像作为一个slice编码。片的头信息包含slice所用到的一些用于对编码实现配置的编码参数。
(3)编码树单元(Coding Tree Unit,简称CTU)是HEVC视频编码的基本单位,CTU大小可以从8x8到64x64,一个slice可以包括一个或多个CTU。编码树单元信息,是编码树单元所用到的编码参数。
视频头信息、片信息和编码树单元信息构成HECV标准的原视频的编码信息,在对原视频解析过程中较方便地获得这些信息。并且,视频头信息、片信息和编码树单元信息较全面地描述了HECV标准的原视频被编码器编码过程中的参数,从而使得步骤S106中,编码器在使用编码信息对添加图文信息后的视频帧序列进行编码后,得到的新视频和原视频保持较好的一致性,保证新视频质量不会受损。
对于HECV标准的原视频,视频头信息可以包括:视频参数集(Video ParamaterSet,简称VPS)、序列参数集Sequence Parameter Set,简称SPS)和图像参数集(PictureParamater Set,简称PPS)。
也就是说,在将原视频解码为视频帧序列的过程中,对原视频进行解析,获取到的帧信息包含在视频参数集、序列参数集和图像参数集中。从而,再次对增加图文信息后的视频序帧列进行编码时,编码器还能够参考视频参数集、序列参数集和图像参数集等数据,能够更好地复原原视频的视频特征。
在一种可能的实施方式中,PPS包含每一帧图像具有不同的设置信息,设置信息主要包括:自引信息、初始图像控制信息(如初始QP)、分块信息。在解码开始的时候,所有的PPS全部是非活动状态,而且在解码的任意时刻,最多只能有一个PPS处于激活状态。当某部分码流引用了某个PPS的时候,这个PPS便被激活,称为活动PPS,一直到另一个PPS被激活。
SPS提供视频序列中所有slice需要的信息,SPS的内容可以包括:解码相关信息,如档次级别、分辨率、子层数等;某档次中的功能开关标识及该功能的参数;对结构和变换系数编码灵活性的限制信息;时域可分级信息。
VPS用于解释编码过的视频序列的整体结构,包括时域子层依赖关系等。HEVC中加入该结构的主要目的是兼容标准在系统的多子层方面的扩展。对于给定视频序列的某一个子层,无论其SPS相不相同,都共享一个VPS。VPS其主要包含的信息有:多个子层或操作点共享的语法元素;档次和级别等会话关键信息;其他不属于SPS的操作点特定信息。
与HEVC不同的是,vp9没有VSP/SPS/PPS之类的视频头信息,只有图像帧级别的头部信息,每个图像帧都会有uncompressed header和compressed header的头部信息。因此,相应的帧信息存储在uncompressed header中。另外,uncompressed header还包含一些其他信息,例如sps、pps中的一些信息和片的信息。compressed header则是当前帧各语法元素熵编码所用的概率表。因此对于VP9能够从图像帧的头部信息中得到的编码信息包括帧信息和片信息。所述帧信息即为视频图像的基础特征信息。
另外,vp9标准采用图像帧/片/超级块/块的编码层次结构,图像帧之下可以划分为64x64大小的超级块,而片的划分是以超级块的边界进行划分的,其划分方式在uncompressed header中已经声明。超级块,英文名称为super block,简称SB,是vp9视频编码的基本编码单元,每个SB可以以四叉树的形式递归地划分为块(block)。在本申请中,超级块的编码参数,如SB的划分方式,块的编码模式,运动矢量mv,quantizer等等,作为编码单元信息。
本发明的另一个可选实施方式中,如图3所示,步骤S106,使用编码信息对添加图文信息后的视频帧序列进行编码,包括:
步骤S301,从解码器获取帧信息、片信息和编码单元信息,并获取添加图文信息后的视频帧序列。
步骤S302,使用帧信息,将编码器初始化。
帧信息表示原视频的基本特征信息。使用帧信息,将编码器初始化,使得新视频和原视频在所使用编码器的配置参数方面保持了一致性。
步骤S303,将添加图文信息后的视频帧序列划分为第二基础编码单元。
在HEVC标准中,基础编码单元为编码树单元,在VP9中基础编码单元为超级块。第一基础编码单元和第二基础编码单元仅用于区分两个不同的基础编码单元。在本步骤中,将添加图文信息后的视频帧序列中的每个帧,按照光栅扫描顺序(从左到右,然后从上到下)划分成一个个固定大小的基础编码单元。
步骤S304,通过初始化后的编码器,根据片信息和所述编码单元信息,对第二基础编码单元进行编码。
HEVC标准中,将图像帧划分为编码树单元后,每个编码树单元可以以四叉树的形式递归地被划分为多层次的编码单元(Coding Unit,简称CU)。VP9标准中,将图像帧划分为超级块之后,每个超级块可以以四叉树的形式递归地被划分为多层次的块(block)。
对于HECV标准,编码单元信息包括CU深度、将CTU划分为CU过程中的划分方式。使用编码单元信息将第二编码树单元划分为编码单元,使得编码单元的划分和原视频编码过程中编码单元划分一致。在将CTU划分为CU后,以CU为单位进行帧内、帧间预测,离散余弦变换(Discrete Cosine Transform,简称DCT)和量化,然后对变换和量化后的残差系数进行游程扫描,最后进行熵编码,以完成编码过程。片信息包括有帧显示顺序、参考帧数和参考数据集信息等,编码树单元信息包括有、CU深度和划分方式、编码模式、量化参数QP,样点自适应补偿(Sample Adaptive Offset,简称SAO)参数等。使用片信息和编码树单元信息对第二编码树单元进行编码,保证了新视频和原视频在对编码单元编码方面保持了一致性。
对于VP9标准,编码单元信息包括block深度、将超级块划分为block过程中的划分方式。使用编码单元信息将第二超级块划分为多个块,使得块的划分和原视频编码过程中块的划分一致。在将超级块划分为块后,以块为单位进行帧内、帧间预测,离散余弦变换(Discrete Cosine Transform,简称DCT)和量化,然后对变换和量化后的残差系数进行游程扫描,最后进行熵编码,以完成编码过程。片信息包括有帧显示顺序、参考帧数和参考数据集信息等,编码树单元信息包括有、CU深度和划分方式、编码模式、量化参数QP,样点自适应补偿(Sample Adaptive Offset,简称SAO)参数等。使用片信息和编码树单元信息对第二编码树单元进行编码,保证了新视频和原视频在对编码单元编码方面保持了一致性。
本发明实施例中,新视频和原视频在所使用编码器的配置参数方面保持了一致性,编码单元的划分保持了一致性,对编码单元的编码保持了一致性,从而使得新视频和原视频在视频质量方面保持一致,缓解视频质量受损的技术问题。
本发明的另一个可选实施方式中,如图4所示,步骤S304,根据片信息和编码树单元信息,对第二编码树单元进行编码,可以包括:
步骤S401,获取各个第二基础编码单元的位置信息;
步骤S402,依次基于位置信息,判断当前第二基础编码单元是否与图文信息的覆盖区域有关,得到判断结果;
该步骤的判断结果为:当前第二基础编码单元与图文信息的覆盖区域有关,或者,当前第二基础编码单元不与图文信息的覆盖区域有关。
步骤S403,根据判断结果,确定是否使用片信息和编码单元信息对第二基础编码单元进行编码。
当前第二编码树单元与图文信息的覆盖区域无关时,说明添加图文信息并没有改变当前第二基础编码单元,因而当前第二基础编码单元保持不变,此情况下当前第二基础编码单元的编码决策不变易保持和原视频质量的一致性。
本发明实施例中,由第二基础编码单元与图文信息的覆盖区域的关系来确定是否使用片信息和编码单元信息对第二基础编码单元进行编码,充分考虑了覆盖区域对第二基础编码单元的影响,使得第二基础编码单元的编码决策更加合理科学。
本发明的另一个可选实施方式中,步骤S402,依次基于位置信息,判断当前第二编码树单元是否与图文信息的覆盖区域有关,可以包括:
判断当前第二基础编码单元是否满足第一条件和第二条件中的任一条件,其中,
第一条件为当前第二基础编码单元位于图文信息覆盖的区域;
第二条件为当前第二基础编码单元为帧间模式且满足以下任一条件:参考了覆盖区域的图像,视频运动矢量预测受到目标编码树单元的影响,其中,目标编码数单元为当前第二基础编码单元相邻的已被判为与覆盖区域有关的第二基础编码单元。
在当前第二基础编码单元满足第一条件和第二条件中的任一条件时,则步骤S402的判断结果为:当前第二基础编码单元与图文信息的覆盖区域有关;在当前第二基础编码单元既不满足第一条件也不满足第二条件时,则步骤S402的判断结果为:当前第二基础编码单元与图文信息的覆盖区域无关。
本发明实施例中,判断当前第二基础编码单元是否与图文信息的覆盖区域有关,不仅考虑了第一条件,还考虑了第二条件,较全面地考虑了与图文信息的覆盖区域有关的情形,全面且精确地确定了覆盖区域对当前第二编码树单元的影响。
在步骤S403中,根据判断结果,确定是否使用片信息和编码单元信息对第二基础编码单元进行编码,可以进一步包括:
在判断结果为当前第二基础编码单元与图文信息的覆盖区域无关的情况下,使用片信息和编码单元信息对第二基础编码单元进行编码。
具体地,在判断结果为当前第二基础编码单元与图文信息的覆盖区域有关的情况下,则重新确定对第二基础编码单元进行编码所使用的编码决策,具体包括确定CU或块深度和划分方式、编码方式等。
本发明实施例中,在当前第二基础编码单元与图文信息的覆盖区域无关的情况下,使用片信息和编码单元信息对第二基础编码单元进行编码,即无需对当前第二编码单元进行编码决策的计算。由于一般情况下与覆盖区域无关的第二基础编码单元占据较大比例,因而很大程度上减少了编码器编码过程中的计算量,减轻了处理器的负载,加快了转码,缓解了传统转码方法耗时长的技术问题。
本发明的另一个可选实施方式中,编码器和解码器通信连接,以便编码器从解码器获取编码信息,其中,
解码器以第一数据结构和第一数据排列方式向编码器传送编码信息;
编码器以第二数据结构和第二数据排列方式接收来自解码器的编码信息,其中,
第二数据结构和第一数据结构相同,第二数据排列方式和第一数据排列方式相同。
本发明实施例中,编码器和解码器通信连接,编码器和解码器之间以相同的数据结构和相同的数据排列方式实现编码信息的传递,保证了编码信息在编码器和解码器之间快速且准确的传递。
本发明的另一个可选实施方式中,编码器和解码器通信连接,以便编码器从解码器获取编码信息,其中,
解码器以第三数据结构和第三数据排列方式向编码器传送编码信息;
编码器接收到编码信息后,根据映射关系将编码信息按照第四数据结构和第四数据排列方式进行存储,其中,
第四数据结构和第三数据结构不同,和/或,第四数据排列方式和第三数据排列方式不同;
映射关系为第一位置和第二位置之间的对应关系,第一位置为编码信息在第三数据结构和第三数据排列方式中的位置,第二位置为编码信息在第四数据结构和第四数据排列方式中的位置。
具体地,假设编码信息包括A、B、C,上述编码信息在第三数据结构和第三数据排列方式中的排列顺序为ACB,在第四数据结构和第四数据排列方式中的排列顺序为ABC,则映射关系如图5中的箭头所示。
例如,编码器和解码器在保存量化参数这个编码信息时:可能由于计算方法的问题,一个以图像水平方向的编码单元个数为数据的单位行宽,另一个以图像水平方向的编码单元个数加1为数据的单位行宽,即,编码器和解码器在数据结构方面不同,它们在进行数据通信时,编码器则根据映射关系逐行的把第三数据结构中的量化参数数组映射到第四数据结构的量化参数数组并存储。
又比如,编码器和解码器在保存运动矢量信息这个编码信息时:一个是以最小预测单元为存储单位,在整个图像上按照光栅扫描顺序存放运动矢量信息;另一个是先在一个编码树单元内部以最小预测单元为存储单位,按照光栅扫描顺序存放运动矢量信息,形成多个编码树单元,然后在整个图像上按照光栅扫描顺序存放各个编码树单元,即,编码器和解码器在数据排列方式方面不同,它们在进行数据通信时,编码器则根据映射关系将某个最小预测单元在第三数据排列中的坐标转换成在第四数据排列中的坐标,完成解码器到编码器之间数据的通信和获取。
需要说明的是,本发明实施例的编码信息可能为多个,多个编码信息可能同时包括以下三种情形:(1)第四数据结构和第三数据结构不同,且第四数据排列方式和第三数据排列方式不同;(2)第四数据结构和第三数据结构不同,且第四数据排列方式和第三数据排列方式相同;(3)第四数据结构和第三数据结构相同,且第四数据排列方式和第三数据排列方式不同,多个编码信息也可能包括上述三种情形中的任一种或者任两种。无论多个编码信息包括上述三种情形中的几种,多个编码信息中的每个编码信息都有一个对应的映射关系,编码器根据编码信息对应的映射关系,将编码信息按照第四数据结构和第四数据排列方式进行存储。
本发明实施例中,在解码器和编码器之间数据结构和/或数据排列方式不同情形下,编码器通过映射关系实现了从解码器有序获取编码信息的目的,尤其适应于解码器和编码器开发者不同的情况。
本发明实施例二提供一种转码装置,如图6所示,包括:
获取模块100,用于通过解码器对原视频进行解码,获得所述原视频的视频帧序列及所述原视频的编码信息,其中,所述原视频是需要添加图文信息的视频;
添加模块200,用于给所述视频帧序列添加所述图文信息,得到添加图文信息后的视频帧序列;
编码模块300,用于通过编码器,使用所述编码信息对所述添加图文信息后的视频帧序列进行编码,得到新视频。
本发明实施例提供转码装置,解码器解码过程中获得编码信息,编码信息的获取方便快捷;基于编码信息对添加图文信息后的视频帧序列进行编码,减少了计算编码决策所耗费的时间,且保证了新视频和原视频在分辨率、码率和帧率等信息上的一致性,大幅改善新视频的画质,从而缓解了传统转码方法耗时长且质量易受损的技术问题。
其中,获取模块100通过解码器对原视频进行解码,获取原视频的视频帧序列和编码信息。视频帧序列和编码信息可以存储在原视频的不同位置,解码器可以基于一次或多次的解析过程获得原视频的视频帧序列和编码信息。
进一步地,原视频的编码信息包括原视频的帧信息、片信息和编码单元信息,其中,帧信息为所述原视频的图像帧的视频特征数据,例如视频宽高等基本特征数据,所述片信息为原视频的每个片的编码参数,编码单元信息为组成原视频的每个图像帧的第一基础编码单元的编码参数。每个图像帧可以分成多个片,每个片可以分成多个基础编码单元。在不同的编码标准中,帧信息、片信息和编码单元信息的存储结构和在原视频中的存储位置可能不同,用于表示基础编码单元的术语可能不同。
本发明实施例的一个可选实施方式中,获取模块包括:
解码单元,用于将原视频解码为视频帧序列;
第一获取单元,用于在将所述原视频解码为所述视频帧序列的过程中,对原视频进行解析,获取原视频的编码信息。
本发明实施例的一个可选实施方式中,原视频的编码信息包括:原视频的视频头信息、片信息和编码树单元信息,其中,视频头信息为原视频的视频特征数据,片信息为第一片的编码参数,编码树单元信息为第一编码树单元的编码参数,且第一片和第一编码树单元属于原视频。
本发明实施例的另一个可选实施方式中,视频头信息包括:视频参数集、序列参数集和图像参数集。
本发明实施例的另一个可选实施方式中,编码模块包括:
第二获取单元,用于从原视频的编码信息获取所述原视频的帧信息、片信息和编码单元信息,并获取所述添加图文信息后的视频帧序列;
初始化单元,用于使用所述帧信息,将所述编码器初始化;
划分单元,用于将所述添加图文信息后的视频帧序列划分为第二基础编码单元;
编码单元,用于通过初始化后的所述编码器,根据所述片信息和所述编码单元信息,对所述第二基础编码单元进行编码。
本发明实施例的另一个可选实施方式中,编码单元包括:
获取子单元,用于获取各个第二基础编码单元的位置信息;
判断子单元,用于依次基于位置信息,判断当前第二基础编码单元是否与所述图文信息的覆盖区域有关,得到判断结果;
确定子单元,用于根据判断结果,确定是否使用片信息和编码单元信息对第二基础编码单元进行编码。
本发明实施例的另一个可选实施方式中,判断子单元用于:
判断当前第二基础编码单元是否满足第一条件和第二条件中的任一条件,其中,
所述第一条件为当前第二基础编码单元位于图文信息覆盖的区域;
所述第二条件为当前第二基础编码单元为帧间模式且满足以下任一条件:参考了所述覆盖区域的图像,视频运动矢量预测受到目标编码树单元的影响,其中,所述目标编码数单元为当前所述第二编码树单元相邻的已被判为与所述覆盖区域有关的所述第二编码树单元。
本发明实施例的另一个可选实施方式中,确定子单元用于:
在所述判断结果为当前所述第二基础编码单元与所述图文信息的覆盖区域无关的情况下,使用所述片信息和所述编码单元信息对所述第二基础编码单元进行编码。
本发明实施例的另一个可选实施方式中,编码器和解码器通信连接,以便编码器从解码器获取编码信息,其中,
解码器以第一数据结构和第一数据排列方式向编码器传送编码信息;
编码器以第二数据结构和第二数据排列方式接收来自解码器的编码信息,其中,
第二数据结构和第一数据结构相同,第二数据排列方式和第一数据排列方式相同。
本发明的另一个可选实施方式中,编码器和解码器通信连接,以便编码器从解码器获取编码信息,其中,
解码器以第三数据结构和第三数据排列方式向编码器传送编码信息;
编码器接收到编码信息后,根据映射关系将编码信息按照第四数据结构和第四数据排列方式进行存储,其中,
第四数据结构和第三数据结构不同,和/或,第四数据排列方式和第三数据排列方式不同;
映射关系为第一位置和第二位置之间的对应关系,第一位置为编码信息在第三数据结构和第三数据排列方式中的位置,第二位置为编码信息在第四数据结构和第四数据排列方式中的位置。
关于上述实施例中的交互装置,由于其中各个模块的功能已经在上述交互方法的实施例中进行了详细描述,由此进行了相对简略的描述。
本发明实施例三提供了一种转码装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行实施例一的转码方法。
本发明实施例中,处理器被配置为执行实施例一的转码方法,即,通过解码器对原视频进行解码,获得原视频的视频帧序列及原视频的编码信息,其中,原视频是需要添加图文信息的视频;给视频帧序列添加图文信息,得到添加图文信息后的视频帧序列;通过编码器,使用编码信息对添加图文信息后的视频帧序列进行编码,得到新视频。其中,解码器解码过程中获得编码信息,编码信息的获取方便快捷;基于编码信息对添加图文信息后的视频帧序列进行编码,减少了计算编码决策所耗费的时间,且保证了新视频和原视频在分辨率、码率和帧率等信息上的一致性,大幅改善新视频的画质,从而缓解了传统转码方法耗时长且质量易受损的技术问题。
图7所示为一种转码装置600的结构框图。参照图7,转码装置600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)接口612,传感器组件614,以及通信组件616。
处理组件602通常控制转码装置600的整体操作,诸如与显示,数据通信,和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在转码装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为转码装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当转码装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如组件为转码装置600的显示器和小键盘,传感器组件614还可以检测转码装置600或转码装置600一个组件的位置改变,用户与转码装置600接触的存在或不存在,转码装置600方位或加速/减速和转码装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于转码装置600和其他设备之间有线或无线方式的通信。转码装置600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,转码装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
图8所示为另一种转码装置700的结构框图。例如,转码装置700可以被提供为一服务器。参照图8,转码装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述信息列表显示方法。
转码装置700还可以包括一个电源组件726被配置为执行转码装置700的电源管理,一个有线或无线网络接口750被配置为将转码装置700连接到网络,和一个输入输出(I/O)接口758。转码装置700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本发明实施例四提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被执行时实现实施例一的转码方法。
具体地,计算机可读存储介质,例如包括指令的存储器604,上述指令可由转码装置600的处理器620执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明实施例中,计算机指令被执行时实现实施例一的转码方法,即,通过解码器对原视频进行解码,获得原视频的视频帧序列及原视频的编码信息,其中,原视频是需要添加图文信息的视频;给视频帧序列添加图文信息,得到添加图文信息后的视频帧序列;通过编码器,使用编码信息对添加图文信息后的视频帧序列进行编码,得到新视频。其中,解码器解码过程中获得编码信息,编码信息的获取方便快捷;基于编码信息对添加图文信息后的视频帧序列进行编码,减少了计算编码决策所耗费的时间,且保证了新视频和原视频在分辨率、码率和帧率等信息上的一致性,大幅改善新视频的画质,从而缓解了传统转码方法耗时长且质量易受损的技术问题。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。