一种视频编码方法、视频解码方法和相关设备与流程

文档序号:15625706发布日期:2018-10-09 22:55阅读:201来源:国知局

本发明涉及视频帧处理领域,尤其涉及一种视频编码方法、视频解码方法、视频编码设备和视频解码设备、以及视频编解码设备。



背景技术:

随着互联网及流媒体等技术的不断发展,数字视频已大量应用于各种终端设备中,如传统pc、智能手机、平板电脑、网络互动电视(iptv)等。另一方面,人们感官需求也在不断提升,对高清视频、超高清视频的需求也在不断增加。这些视频制式、分辨率不断提高的要求势必会带来十分巨大的传输码率(bitrate)。因此,在大视频背景下,需要对视频进行高质量压缩,以降低网络传输负担,提升存储容量。

对于要独立编码的视频帧,现有技术往往是对该帧进行独立的编码,从而导致该需要独立编码的帧冗余信息较大,不利于数据存取和传输。

例如,hevc(highefficiencyvideocoding)预测编码使用了帧内压缩和帧间压缩两种方式。编码之前首先设定gop(groupofpictures;帧组)步长,即gop中所包含帧的个数。其中,帧组即多个帧构成的群组。为防止运动变化,帧数不宜设置过多。在具体预测编码环节,hevc将所有帧划分i,p,b三种类型帧,如图1所示。图中各帧上方数字表明相应帧在原有视频序列中的编号。编码时以gop为单位,先后对i帧、p帧及b帧进行编码。其中,i帧(intra-frame)又称为帧内编码帧,是一种自带全部信息的独立帧,无需参考其它图像便可独立进行编码及解码。现有hevc标准的对该i帧,只采用了当前i帧的图像帧内信息进行编码和解码,且是按照视频时间轴采用固定策略选取。从而,在hevc标准中,独立编码的i帧压缩数据量占比高且存在大量信息冗余。



技术实现要素:

本发明实施例提供了一种视频编码方法、视频解码方法、视频编码设备、视频解码设备和视频编解码设备,用于提高视频帧的压缩效率。

本发明实施例的第一方面提供一种视频编码方法,该方法包括:获取多个视频帧,其中,该多个视频帧中的每一视频帧间在画面内容上包括冗余数据。然后,对该多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,该场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值,这样,通过重构减少了该多个视频帧的冗余数据。后续,对场景信息进行预测编码,得到场景特征预测编码数据,以及,对重构残差进行预测编码,得到残差预测编码数据。

这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

结合本申请实施例的第一方面,在本申请实施例的第一方面的第一种实现方式中,该多个视频帧中的每一视频帧间包括相同的画面内容,这些相同的画面内容即为该多个视频帧的冗余数据。对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的步骤,包括:对多个视频帧进行重构,得到场景特征和每一视频帧的重构残差,场景特征用于表示每一视频帧间的相同的画面内容,重构残差用于表示视频帧和场景特征间的差值。该场景特征为场景信息的其中一种具体形式。通过重构操作,将多个视频帧间的多个相同的画面内容中的其中一个,在一个场景特征中进行保存,从而减少了对相同画面内容的重复记录,减少了冗余数据的冗余度。相应的,对场景信息进行预测编码,得到场景特征预测编码数据,包括:对场景特征进行预测编码,得到场景特征预测编码数据。

这样,通过重构,将该相同的画面内容去重后由场景特征进行表示,可减少该多个视频帧的冗余信息的冗余度。从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

结合本申请实施例的第一方面的第一种实现方式,在本申请实施例的第一方面的第二种实现方式中,对多个视频帧进行重构,得到场景特征和每一视频帧的重构残差,包括:将多个视频帧转换成观测矩阵,观测矩阵用于以矩阵形式对多个视频帧进行表示。然后,根据第一约束条件对观测矩阵进行重构,得到场景特征矩阵和重构残差矩阵,场景特征矩阵用于以矩阵形式对场景特征进行表示,重构残差矩阵用于以矩阵形式对多个视频帧的重构残差进行表示,第一约束条件用于限定场景特征矩阵低秩以及重构残差矩阵稀疏。这样,通过矩阵的形式执行对多个视频帧的重构操作,并且在第一约束条件的限定下,使得重构残差和场景特征符合预设的要求,利于后续编码操作时减少编码量和提高压缩率。

结合本申请实施例的第一方面的第二种实现方式,在本申请实施例的第一方面的第三种实现方式中,根据第一约束条件对观测矩阵进行重构,得到场景特征矩阵和重构残差矩阵,包括:根据第一预设公式,计算得到场景特征矩阵和重构残差矩阵,得到的场景特征矩阵为低秩矩阵,而重构残差矩阵为稀疏矩阵。

其中,第一预设公式为:

或者,

这两组公式都包括两个公式:目标约束函数和重构公式。前一组公式因属于np难题,对其进行松弛操作,得到后一组公式,后一组公式方便求解。

其中,d为观测矩阵,f为场景特征矩阵,e为重构残差矩阵,λ为权重参数,λ用来平衡场景特征矩阵f与重构残差矩阵e之间的关系,表示求f和e的最优值,即使得目标公式rank(f)+λ||e||1或者||f||*+λ||e||1值最小时f和e的取值,rank(·)为矩阵求秩函数,||·||1为矩阵l1范数,||·||*为矩阵核范数。

结合本申请实施例的第一方面的第一种至第三种中的任意一种实现方式,在本申请实施例的第一方面的第四种实现方式中,对所述多个视频帧进行重构,得到场景特征和所述每一视频帧的重构残差之前,本实现方式的方法还包括:提取所述多个视频帧中的每一视频帧的画面特征信息;然后,根据画面特征信息,计算得到内容度量信息,该内容度量信息用于度量所述多个视频帧的画面内容的差异性。从而,当所述内容度量信息不大于预设度量阈值时,执行所述对所述多个视频帧进行重构,得到场景特征和所述每一视频帧的重构残差的步骤。通过该判断检测,可以使得符合要求的多个视频帧才使用第一方面的第一种至第三种实现方式的重构操作,保证了该重构操作的正常执行。

结合本申请实施例的第一方面的第四种实现方式,在本申请实施例的第一方面的第五种实现方式中,该画面特征信息为全局gist特征,该预设度量阈值为预设方差阈值,该根据所述画面特征信息,计算得到内容度量信息,包括:根据全局gist特征,计算得到场景gist特征方差。通过计算多个视频帧的场景gist特征方差以实现度量多个视频帧的内容一致性,从而判断是否执行本申请第一方面的第一种至第三种实现方式的重构操作。结合本申请实施例的第一方面的第一种至第三种中的任意一种实现方式,在本申请实施例的第一方面的第六种实现方式中,获取多个视频帧,包括:获取视频流,视频流的视频帧包括i帧、b帧和p帧。然后,从视频流中提取i帧,该i帧用于执行对多个视频帧进行重构,得到场景特征和每一视频帧的重构残差的步骤。在具体的编码阶段,本实现方式的方法还包括:根据场景特征和重构残差进行重构,得到参考帧。以该参考帧做参考,对b帧和p帧进行帧间预测编码,得到b帧预测编码数据和p帧预测编码数据。然后,对预测编码数据进行变换编码、量化编码及熵编码,得到视频压缩数据;预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。这样,即可对视频流的i帧使用本实现方式的方法进行重构以及编码,减少了i帧的编码数据量,以及减少了i帧的冗余数据。

结合本申请实施例的第一方面,在本申请实施例的第一方面的第七种实现方式中,该多个视频帧中的每一视频帧相互之间在局部位置包括冗余数据,相应的重构操作不同于上述的实现方式,即对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,包括:对多个视频帧中的每一视频帧进行拆分,得到多个帧子块,拆分后得到的帧子块包括了冗余数据,且部分帧子块可基于其它的帧子块得到。所谓的帧子块为视频帧的部分区域的帧内容。然后,对多个帧子块进行重构,得到场景特征、多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差,其中,场景特征包括多个独立的场景特征基,在场景特征内独立的场景特征基间不能互相重构得到,场景特征基用于描述帧子块的画面内容特征,所示表示系数表示场景特征基和帧子块的对应关系,重构残差表示帧子块和场景特征基的差值。这样,通过重构操作,减少了包括冗余数据的帧子块的冗余度。本实现方式的场景特征为场景信息的其中一种具体形式,可减少局部冗余的视频帧间的冗余度。相应的,对场景信息进行预测编码,得到场景特征预测编码数据,包括:对场景特征进行预测编码,得到场景特征预测编码数据。

结合本申请实施例的第一方面的第六种实现方式,在本申请实施例的第一方面的第八种实现方式中,对多个帧子块进行重构,得到场景特征、多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差,包括:对多个帧子块进行重构,得到多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差。其中,表示系数表示帧子块和目标帧子块的对应关系,目标帧子块为多个帧子块中独立的帧子块,独立的帧子块为不能基于多个帧子块中的其它帧子块重构得到的帧子块,重构残差用于表示目标帧子块和帧子块间的差值。然后,组合多个表示系数指示的目标帧子块,得到场景特征,该目标帧子块即为场景特征基。这样,选出可独立表示的目标帧子块,对不用独立表示的帧子块由目标帧子块和重构残差进行表示,从而减少了不用独立表示的帧子块和目标帧子块间的冗余数据,编码时只需对目标帧子块和重构残差进行编码即可,减少了编码量。

结合本申请实施例的第一方面的第八种实现方式,在本申请实施例的第一方面的第九种实现方式中,对多个帧子块进行重构,得到多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差,包括:将多个帧子块转换成观测矩阵,观测矩阵用于以矩阵形式对多个帧子块进行表示。跟着,根据第二约束条件对观测矩阵进行重构,得到表示系数矩阵和重构残差矩阵。其中,表示系数矩阵为包括多个帧子块中的每一帧子块的表示系数的矩阵,表示系数的非零系数指示目标帧子块,重构残差矩阵用于以矩阵形式对每一帧子块的重构残差进行表示,第二约束条件用于限定表示系数的低秩性及稀疏性符合预设要求。而组合多个表示系数指示的目标帧子块,得到场景特征,包括:组合表示系数矩阵中的表示系数的非零系数指示的目标帧子块,得到场景特征。这样,即可通过矩阵的形式进行重构操作,且利用第二约束条件计算得到符合减少编码量要求的重构残差和场景特征。

结合本申请实施例的第一方面的第九种实现方式,在本申请实施例的第一方面的第十种实现方式中,根据第二约束条件对观测矩阵进行重构,得到表示系数矩阵和重构残差矩阵,包括:根据第二预设公式,计算得到表示系数矩阵和重构残差矩阵,第二预设公式为:

或者,

其中,d为观测矩阵,c为表示系数矩阵,e为重构残差矩阵,λ、β为权重参数,表示求c和e的最优值,即使得目标公式||c||*+λ||e||1或者||c||*+λ||e||1+β||c||1值最小时c和e的取值,||·||*为矩阵核范数,||·||1为矩阵l1范数。

结合本申请实施例的第一方面的第七种实现方式,在本申请实施例的第一方面的第十一种实现方式中,对多个帧子块进行重构,得到场景特征、多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差,包括:对多个帧子块进行重构,得到场景特征和多个帧子块中的每一帧子块的表示系数,场景特征包括的场景特征基为特征空间中的独立的特征块,独立的特征块为在场景特征中不能由其它特征块重构得到的特征块。然后,根据每一帧子块的重构残差和场景特征重构得到的数据和每一帧子块,计算得到每一帧子块的重构残差。这样,通过重构得到可对该多个帧子块进行整体表示的场景特征,该场景特征由场景特征基组成,该场景特征基为特征空间中的独立的特征块,若由不同的帧子块重构得到相同的特征块,则在场景特征中可不对相同的特征块进行重复保存,从而减少了冗余数据。

结合本申请实施例的第一方面的第十一种实现方式,在本申请实施例的第一方面的第十二种实现方式中,对多个帧子块进行重构,得到场景特征和多个帧子块中的每一帧子块的表示系数,包括:将多个帧子块转换为观测矩阵,观测矩阵用于以矩阵形式对多个帧子块进行表示。以及,根据第三约束条件对观测矩阵进行重构,得到表示系数矩阵和场景特征矩阵,其中,表示系数矩阵为包括每一帧子块的表示系数的矩阵,表示系数的非零系数指示场景特征基,场景特征矩阵用于以矩阵形式对场景特征进行表示,第三约束条件用于限定表示系数矩阵和景特征矩阵重构得到的画面和帧子块的画面的相似性符合预设相似阈值、以及限定表示系数矩阵稀疏性符合预设稀疏阀值、以及场景特征矩阵的数据量小于预设数据量阀值。

以及,根据每一帧子块的重构残差和场景特征重构得到的数据和每一帧子块,计算得到每一帧子块的重构残差,包括:根据表示系数矩阵和场景特征矩阵重构得到的数据和观测矩阵,计算得到重构残差矩阵,其中,重构残差矩阵用于以矩阵形式对重构残差进行表示。

这样,即可通过矩阵的形式进行重构操作,且利用第三约束条件计算得到符合减少编码量要求的表示系数和场景特征。

结合本申请实施例的第一方面的第十二种实现方式,在本申请实施例的第一方面的第十三种实现方式中,根据第三约束条件对观测矩阵进行重构,得到表示系数矩阵和场景特征矩阵,包括:根据第三预设公式,计算得到表示系数矩阵和场景特征矩阵,第三预设公式为:

其中,d为观测矩阵,c为表示系数矩阵,f为场景特征,λ和β为权重参数,用于对系数稀疏性及低秩性进行调节。表示求f和c的最优值,即使得公式值最小时f和c的取值。

结合本申请实施例的第一方面的第七种至第十三种中的任一实现方式,在本申请实施例的第一方面的第十四种实现方式中,对所述多个视频帧中的每一视频帧进行拆分,得到多个帧子块之前,本实现方式的方法还包括:提取所述多个视频帧中的每一视频帧的画面特征信息。然后,根据所述画面特征信息,计算得到内容度量信息,所述内容度量信息用于度量所述多个视频帧的画面内容的差异性。从而,当所述内容度量信息大于预设度量阈值时,执行所述对所述多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤。这样,当内容度量信息大于预设度量阈值时,表示该多个视频帧的图像局部存在冗余数据,从而使用对视频帧进行拆分和对帧子块进行重构的方法。

结合本申请实施例的第一方面的第十四种实现方式,在本申请实施例的第一方面的第十五种实现方式中,该画面特征信息为全局gist特征,该预设度量阈值为预设方差阈值,该根据所述画面特征信息,计算得到内容度量信息,包括:根据全局gist特征,计算得到场景gist特征方差。通过计算多个视频帧的场景gist特征方差以实现度量多个视频帧的内容一致性,从而判断该多个视频帧的图像是否存在局部存在冗余数据,以使用对视频帧进行拆分和对帧子块进行重构的方法。

结合本申请实施例的第一方面的第七种至第十三种中的任一实现方式,在本申请实施例的第一方面的第十六种实现方式中,获取多个视频帧,包括:获取视频流,视频流的视频帧包括i帧、b帧和p帧;从视频流中提取i帧,该i帧用于执行对多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤;

本实现方式的方法还包括:根据场景特征、表示系数和重构残差进行重构,得到参考帧;以参考帧做参考,对b帧和p帧进行帧间预测编码,得到b帧预测编码数据和p帧预测编码数据;对预测编码数据进行变换编码、量化编码及熵编码,得到视频压缩数据;预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

这样,本实现方式的方法可应用于视频流的关键帧中,减少了关键帧的冗余数据和编码量。

结合本申请实施例的第一方面或者第一方面的第一种至第十六种中的任一实现方式,在本申请实施例的第一方面的第十七种实现方式中,获取多个视频帧之后,本实现方式的方法还包括:基于画面内容的相关性对多个视频帧进行分类,得到一个或多个分类簇的视频帧,同一分类簇的视频帧用于执行对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的步骤。通过分类,使得属于同一分类簇的多个视频帧间的冗余数据的冗余度更大,从而使得后续的视频帧重构阶段,更多地减少视频帧间的冗余数据的冗余度。

结合本申请实施例的第一方面的第十七种实现方式,在本申请实施例的第一方面的第十八种实现方式中,基于画面内容的相关性对多个视频帧进行分类,得到一个或多个分类簇的视频帧,包括:提取多个视频帧中的每一视频帧的特征信息。根据特征信息确定任意两个视频帧间的聚类距离,聚类距离用于表示两个视频帧间的相似度,根据聚类距离对视频帧进行聚类,得到一个或多个分类簇的视频帧。这样,通过聚类实现了对多个视频帧的分类操作。

结合本申请实施例的第一方面,在本申请实施例的第一方面的第十九种实现方式中,获取多个视频帧,包括:获取视频流,视频流包括多个视频帧。然后,分别提取第一视频帧和第二视频帧的特征信息,特征信息用于对视频帧的画面内容进行描述,第一视频帧和第二视频帧为视频流中的视频帧;根据特征信息计算第一视频帧和第二视频帧间的镜头距离;判断镜头距离是否大于预设镜头阈值;若镜头距离大于预设镜头阈值,则从视频流中分割出目标镜头,目标镜头的起始帧为第一视频帧,目标镜头的结束帧为第二视频帧的上一视频帧;若镜头距离小于预设镜头阈值,则将第一视频帧和第二视频帧归属于同一镜头,目标镜头属于视频流的镜头的其中之一,镜头为一段在时间上连续的视频帧;对视频流中的每一镜头,根据镜头内的视频帧间的帧距离提取出关键帧,在每一镜头内任意两个相邻的关键帧间的帧距离大于预设帧距离阈值,帧距离用于表示两视频帧间的差异度,每一镜头的关键帧用于执行对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的步骤。通过镜头分割后,根据距离从各个镜头中提取出关键帧,这样的提取方法,使用到了视频流的上下文信息,且使得本实现方式的方法可应用于视频流中。

结合本申请实施例的第一方面的第十九种实现方式,在本申请实施例的第一方面的第二十种实现方式中,对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差之前,方法还包括:根据从视频流中分割出的每一镜头进行判别训练,得到多个与镜头对应的分类器;使用目标分类器对目标视频帧进行判别,得到判别分数,目标分类器为多个分类器的其中之一,目标视频帧为关键帧的其中之一,判别分数用于表示目标视频帧属于目标分类器所属的镜头的场景的程度;当判别分数大于预设分数阈值时,确定目标视频帧与目标分类器所属的镜头属于同一场景;根据与镜头属于同一场景的视频帧,确定一个或多个分类簇的视频帧。

结合本申请实施例的第一方面,在本申请实施例的第一方面的第二十一种实现方式中,获取多个视频帧,包括:获取压缩视频流,压缩视频流包括已压缩的视频帧;从压缩视频流中确定出多个目标视频帧,目标视频帧在压缩视频流中为独立压缩编码的视频帧;对目标视频帧进行解码,得到解码后的目标视频帧,解码后的目标视频帧用于执行对多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤。这样,在压缩的视频流中,提取出被压缩的独立压缩编码的视频帧,对这些视频帧使用本实现方式的视频编码方法可进一步减少这些视频帧的编码数据量。

本发明实施例的第二方面提供一种视频解码方法,该方法包括:获取场景特征预测编码数据和残差预测编码数据。然后,对场景特征预测编码数据进行解码,得到场景信息,其中,场景信息包括由减少冗余数据的冗余度得到的数据,冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据。对残差预测编码数据进行解码,得到重构残差,重构残差用于表示视频帧和场景信息间的差值。根据场景信息和重构残差进行重构,得到多个视频帧。这样,第一方面提供的视频编码方法得到的场景特征预测编码数据和残差预测编码数据可通过本实现方式的视频解码方法得到了解码。

结合本申请实施例的第二方面,在本申请实施例的第二方面的第一种实现方式中,多个视频帧中的每一视频帧间包括相同的画面内容,该对场景特征预测编码数据进行解码,得到场景信息,包括:对场景特征预测编码数据进行解码,得到场景特征,场景特征用于表示每一视频帧间的相同的画面内容。根据场景信息和重构残差进行重构,得到多个视频帧,包括:根据场景特征和重构残差进行重构,得到多个视频帧。这样,若场景特征用于表示相同的画面内容,可通过本实现方式对场景特征信息进行解码。

结合本申请实施例的第二方面的第一种实现方式,在本申请实施例的第二方面的第二种实现方式中,获取场景特征预测编码数据和残差预测编码数据,包括:获取视频压缩数据;对视频压缩数据进行熵解码、反量化处理、dct反变化得到预测编码数据,预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

根据场景特征和重构残差进行重构,得到多个视频帧,包括:根据场景特征和重构残差进行重构,得到多个i帧;

本实现方式的方法还包括:以i帧为参考帧,对b帧预测编码数据和p帧预测编码数据进行帧间解码,得到b帧和p帧;对i帧、b帧和p帧按时间顺序进行排列,得到视频流。

这样,在视频流中使用上述的视频帧编码方式时,可通过本实现方式对该视频流进行解码。

结合本申请实施例的第二方面,在本申请实施例的第二方面的第三种实现方式中,本实现方式的方法还包括:获取表示系数。该对场景特征预测编码数据进行解码,得到场景信息,包括:对场景特征预测编码数据进行解码,得到场景特征,场景特征包括多个独立的场景特征基,在场景特征内独立的场景特征基间不能互相重构得到,场景特征基用于描述帧子块的画面内容特征,所示表示系数表示场景特征基和帧子块的对应关系,重构残差表示帧子块和场景特征基的差值。

该根据场景信息和重构残差进行重构,得到多个视频帧。包括:根据场景特征、表示系数和重构残差进行重构,得到多个帧子块;对多个帧子块进行组合,得到多个视频帧。

这样,在对帧子块进行重构后编码得到编码数据后,可通过本实现方式的视频解码方法进行解码得到场景特征和重构残差,并进行重构得到多个帧子块,对其进行重组即可得到视频帧。

结合本申请实施例的第二方面的第三种实现方式,在本申请实施例的第二方面的第四种实现方式中,获取场景特征预测编码数据和残差预测编码数据,包括:获取视频压缩数据;对视频压缩数据进行熵解码、反量化处理、dct反变化得到预测编码数据,预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

该对多个帧子块进行组合,得到多个视频帧,包括:对多个帧子块进行组合,得到多个i帧;

本实现方式的方法还包括:

以i帧为参考帧,对b帧预测编码数据和p帧预测编码数据进行帧间解码,得到b帧和p帧;对i帧、b帧和p帧按时间顺序进行排列,得到视频流。

在视频流中对i帧进行拆分得到帧子块后,对这些帧子块进行重构得到重构残差、场景特征和表示系数后,可通过本实现方式的视频解码方法进行解码并复原得到视频流。

本发明实施例的第三方面提供一种视频编码设备,该设备具有执行上述视频编码方法的功能。该功能可以通过硬件实现,也可能通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

一种可能的实现方式中,该视频编码设备包括:

获取模块,用于获取多个视频帧,多个视频帧中的每一视频帧间在画面内容上包括冗余数据;

重构模块,用于对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值;

预测编码模块,用于对场景信息进行预测编码,得到场景特征预测编码数据;

预测编码模块,还用于对重构残差进行预测编码,得到残差预测编码数据。

另一种可能的实现方式中,该视频编码设备包括:

视频编码器;

该视频编码器执行如下动作:获取多个视频帧,多个视频帧中的每一视频帧间在画面内容上包括冗余数据;

该视频编码器还执行如下动作:对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值;

该视频编码器还执行如下动作:对场景信息进行预测编码,得到场景特征预测编码数据;

该视频编码器还执行如下动作:对重构残差进行预测编码,得到残差预测编码数据。

本发明实施例的第四方面提供一种视频解码设备,该设备具有执行上述视频解码方法的功能。该功能可以通过硬件实现,也可能通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

一种可能的实现方式中,该视频解码设备包括:

获取模块,用于获取场景特征预测编码数据和残差预测编码数据;

场景信息解码模块,用于对场景特征预测编码数据进行解码,得到场景信息,场景信息包括由减少冗余数据的冗余度得到的数据,冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据;

重构残差解码模块,用于对残差预测编码数据进行解码,得到重构残差,重构残差用于表示视频帧和场景信息间的差值;

视频帧重构模块,用于根据场景信息和重构残差进行重构,得到多个视频帧。

另一种可能的实现方式中,该视频解码设备包括:

视频解码器;

该视频解码器执行如下动作:获取场景特征预测编码数据和残差预测编码数据;

该视频解码器还执行如下动作:对场景特征预测编码数据进行解码,得到场景信息,场景信息包括由减少冗余数据的冗余度得到的数据,冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据;

该视频解码器还执行如下动作:对残差预测编码数据进行解码,得到重构残差,重构残差用于表示视频帧和场景信息间的差值;

该视频解码器还执行如下动作:根据场景信息和重构残差进行重构,得到多个视频帧。

本发明实施例的第五方面提供一种视频编解码设备,该视频编解码设备包括视频编码设备和视频解码设备。

其中,该视频编码设备如上述第三方面提供的视频编码设备;

该视频解码设备如上述第四方面提供的视频解码设备。

本发明实施例的第六方面提供一种计算机存储介质,该计算机存储介质存储有程序代码,该程序代码用于指示执行上述第一方面的方法。

本发明实施例的第七方面提供一种计算机存储介质,该计算机存储介质存储有程序代码,该程序代码用于指示执行上述第二方面的方法。

本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从以上技术方案可以看出,本发明实施例具有以下优点:

获取多个视频帧,其中该多个视频帧中的每一视频帧间在画面内容上包括冗余数据。然后,对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值。跟着,对场景信息进行预测编码,得到场景特征预测编码数据,以及对重构残差进行预测编码,得到残差预测编码数据。这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

附图说明

图1为现有的一种hevc编码示意图;

图2为本发明一实施例提供的一种视频帧编解码方法的流程图;

图3a为本发明另一实施例提供的视频编码方法的流程和现有的hevc编码方法的流程的对比示意图;

图3b为本发明另一实施例提供的一种视频编码方法所涉及的场景示意图;

图4a为本发明另一实施例提供的视频解码方法的流程和现有的hevc解码方法的流程的对比示意图;

图4b为本发明另一实施例提供的一种视频解码方法所涉及的场景示意图;

图5为本发明另一实施例提供的一种视频编码方法的方法流程图;

图6为本发明另一实施例提供的一种视频解码方法的方法流程图;

图7为图5所示的视频编码方法的镜头分割方法的方法流程图;

图8为图5所示的视频编码方法的关键帧抽取方法的方法流程图;

图9为图5所示的视频编码方法的场景分类方法的方法流程图;

图10为图5所示的视频编码方法的基于svm分类方法的方法流程图;

图11为图5所示的视频编码方法的基于rpca场景重构的方法流程图;

图12为本发明另一实施例提供的一种视频编码方法的方法流程图;

图13为图12所示的视频编码方法的场景示意图;

图14为图12所示的视频编码方法的其中一种具体方法的场景示意图;

图15为图12所示的视频编码方法的其中一种具体方法的场景示意图;

图16为图12所示的视频编码方法的其中一种具体方法的场景示意图;

图17为本发明另一实施例提供的一种视频解码方法的方法流程图;

图18a为本发明另一实施例提供的一种视频编码设备的结构示意图;

图18b为图18a所示的视频编码设备的局部结构示意图;

图19为本发明另一实施例提供的一种视频解码设备的结构示意图;

图20为本发明另一实施例提供的一种视频编解码设备的结构示意图;

图21是根据本发明实施例的视频编解码系统10的示意性框图;

图22为说明经配置以实施本发明的技术的实例视频编码器20的框图;

图23为说明经配置以实施本发明的技术的实例视频解码器30的框图。

具体实施方式

本发明实施例提供了一种视频编码方法、视频解码方法、视频编码设备、视频解码设备,用于提高视频帧的压缩效率,以降低网络传输负担和减少对视频帧的存储负担。

对于独立编码的视频帧,往往在编码后,这些视频帧的压缩数据量多,以及压缩的视频帧之间会存在大量信息冗余,导致增加了网络传输负担和存储负担,不利于数据存取。

为此,本发明实施例的视频编码方法,编码设备获取多个视频帧后,其中该多个视频帧中的每一视频帧间在画面内容上包括冗余数据,对该多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,其中,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值。跟着,对场景信息进行预测编码,得到场景特征预测编码数据,以及对重构残差进行预测编码,得到残差预测编码数据。这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

相应的,本发明实施例还提供了一种视频解码方法,用于对上述视频编码设备得到的场景特征预测编码数据和残差预测编码数据进行解码,得到场景信息和重构残差后,根据该场景信息和重构残差进行重构得到视频帧。

在hevc标准中,关键帧进行独立编码,其中关键帧也称为i帧,i帧在压缩后其压缩数据量占比高且i帧之间存在大量信息冗余。对此,若在编码时,对i帧使用本发明实施例的视频编码方法,将能提高i帧的编码效率。

为了对本发明实施例提供的视频帧编码和解码方法有更加直观的说明,在下文中的部分内容,使用到了hevc标准的场景,为了方便对全文的理解,现先对hecv标准进行简要介绍。

hevc(h.265)是应用广泛且成功的视频编解码标准。hevc属于基于块的混合编码方法,具体包括预测、变换、量化、熵编码、环路滤波等几个模块。其中,预测模块是hevc编解码方法的核心模块,具体可以分为帧内预测(intraprediction)及帧间预测(interprediction)模块。帧内预测,即利用当前图像内已经编码的像素生成预测值。帧间预测,即利用当前图像之前已经的编码的图像重建像素生成预测值。由于帧间预测采用残差编码的方式,压缩比较高。

现有hevc标准的帧内预测模块只采用了当前图像帧内信息进行编码和解码,且是按照视频时间轴采用固定策略选取,并没有考虑到视频的上下文语境信息,因此编解码效率低,压缩比不高。举例来讲:

1)场景一,电影中a和b进行对话,导演频繁在a与b之间进行镜头切换,以表达人物内心情感。此时,适合将所有与a相关的镜头进行分割及聚类,统一进行帧间及帧内预测编码。

2)场景二,电视剧拍摄场地主要分为草地、海滩、办公场景。此时,适合将所有草地、海滩、办公场景进行场景识别和分类,统一提取场景特征信息,对关键帧进行表达和预测。

如图1所示,其示出了hevc预测编码流程。参阅图1,hevc预测编码使用了帧内压缩和帧间压缩两种方式。编码之前首先设定gop步长,即gop中所包含帧的个数。为防止运动变化,帧数不宜设置过多。在具体预测编码环节,hevc将所有帧划分i,p,b三种类型帧,如图1所示。图1中各帧上方数字表明相应帧在原有视频序列中的编号。编码时以gop为单位,先后对i帧、p帧及b帧进行编码。

i帧(intra-frame)又称为帧内编码帧,是一种自带全部信息的独立帧,无需参考其它图像便可独立进行编码及解码,可以简单理解为一张静态画面。通常每个gop中的第一帧设置为i帧,gop的长度也就表示两个相邻i帧之间的间隔。i帧提供gop内最关键的信息,所占数据的信息量比较大,因此压缩比较差,一般在7:1左右。

i帧编码具体流程如下:

1)进行帧内预测,决定所采用的帧内预测模式;

2)像素值减去预测值,得到残差;

3)对残差进行变换和量化;

4)编程编码和算术编码;

5)重构图像并滤波,得到的图像作为其它帧的参考帧。

p帧(predictiveframe)又称帧间预测编码帧,需要参考前面的i帧才能进行编码。表示的是当前帧画面与前一阵(前一帧可能是i帧也可能是p帧)的差值。解码时需要用之前缓存的画面叠加上本帧定义的差值,生成最终画面。与i帧相比,p帧通常占用更少的数据位,但不足是,由于p帧对前面的p和i参考帧有着复杂的依赖性,因此对传输错误非常敏感。由于采用残差进行编码,相对i帧而言,p帧所需编码信息量大幅减少,压缩比相对较高,一般在20:1左右。

b帧(bi-directionalframe)又称双向预测编码帧,也就是b帧记录的是本帧与前后帧的差值。解码b帧,不仅要取得之前的缓存画面,还需要解码之后的p帧画面,通过前后画面的插值与本帧数据的叠加取得最终的画面。b帧压缩率高,但是对解码性能要求较高。b帧不是参考帧,不会造成解码错误的扩散。此外,b帧拥有最高编码压缩率,一般压缩率在50:1左右。

bp帧编码具体流程如下:

1)进行运动估计,计算采用帧间编码流程编码模式的率失真函数(节)值。p帧只参考前面的帧,b帧可参考后面的帧。

2)进行帧内预测,选取率失真函数值最小的帧内模式与帧间模式比较,确定采用哪种编码模式。

3)计算实际值和预测值的差值。

4)对残差进行变换和量化。

5)熵编码,如果是帧间编码模式,编码运动矢量。

hevc的解码流程是编码流程的逆向过程,在此不再熬述。

hevc编解码方法过于依赖i帧编码,存在如下缺陷:

1)i帧压缩数据量占比高。i帧编码仅对帧内数据进行空间压缩,而没有考虑相邻帧之间的冗余信息,压缩数据量较大,通常为p帧的10倍左右。在编码之前,需要对gop步长进行预先设置。i帧比例随着gop步长的设置而确定。如图1所示,当gop步长设置为13,则i帧与bp帧的比例为1:12。根据ibp帧各自压缩比来计算,最终i帧与bp帧压缩数据量比例大致为2:5左右。通常可以设置较大的gop步长来降低i帧比例,以提高视频整体压缩比,但此时也会造成压缩视频质量的下降。

2)i帧之间存在大量信息冗余。i帧按照时间轴顺序依次抽取相应帧得到,相邻i帧之间间隔为gop步长。该选取策略未考虑到视频的上下文语境信息。例如,针对两段时间上不连续但画面内容高度相关的视频片段,如果按照gop步长对i帧进行抽取并进行单独帧内编码会造成大量信息冗余。

本发明实施例针对原有hevc过于依赖i帧编码且压缩效率不高的问题,提出了一种基于智能视频场景分类的视频编解码算法。该方法通过对视频镜头及场景进行识别和分类,将关键帧(i帧)进行整体数据分析及重构,对场景信息及表示残差进行编码。有效避免了针对单个关键帧帧内压缩效率不高的问题,同时引入了视频上下文信息,提升了压缩比。

图2为本发明实施例提供的一种视频帧编解码方法的流程图,视频帧编解码方法包括编码方法部分和解码方法部分。参阅图2,该视频帧编解码方法包括:

步骤201:获取多个视频帧。

其中,该多个视频帧中的每一视频帧间在画面内容上包括冗余数据。

该多个视频帧的获取可以是在获取视频流后,根据预设的规则从视频流中提取得到,也可以是视频编解器从其它设备获取该多个视频帧,本发明实施例对此不作具体限定。其中,本发明实施例的多个指至少两个。

该冗余数据为该多个视频帧间在画面内容上相关的数据,存在信息冗余。该冗余数据可以是视频帧整体画面上的冗余数据,例如如下述图5所示的实施例的描述。也可以是视频帧局部画面上的冗余数据,例如图12所示的实施例的描述。

在本发明的一些实施例中,该多个视频帧从视频流获取得到。具体来说,编解码设备在给定整体视频数据流的前提下,通过场景转换检测技术对视频镜头进行分割,并判断是否为静态镜头。根据镜头类型对每个镜头进行视频帧抽取。

例如,在镜头分割步骤中,通过场景转换检测技术将原始视频流分割成长短不一的镜头单元。其中,每个镜头是由在时间上连续的视频帧组成,它代表一个场景中在时间上和空间上连续的动作。具体的镜头分割方法,可以根据视频帧内容的变化对镜头进行边界分割及判别处理。例如,通过对镜头边界进行定位,找出边界帧的位置或时间点,即可据此对视频进行分割。

从视频流中分割出镜头后,在镜头分割的基础之上,对镜头的视频帧进行抽取,该抽取得到的视频帧即为步骤201要获取的视频帧。其中,视频帧的抽取根据镜头长度及内容变化进行自适应选取,可以是能够反应该镜头主要信息内容的一帧或多帧图像。

当然,在本发明有的实施例中,编解码设备可以直接从视频流中提取出执行下述编码方法的多个视频帧,例如,按照预设步长对视频帧进行提取等。

步骤202:对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差。

其中,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值。

通过重构可以减少该多个视频帧的冗余度,具体的重构方法有多种,相应的,得到的场景信息也有多种形式,具体详见下述描述。场景信息包括由视频帧间的冗余数据减少冗余度后的数据,而一重构残差表示一视频帧和场景特征间的差值,从而将该多个视频帧重构得到的场景信息重构残差相比与原来的视频帧减少了冗余数据的冗余度,减少了整体的数据量,且保持完整的信息量。

步骤202可称之为场景重构操作,场景重构是对视频帧内容进行分析,提取适合对整体场景信息进行表示的场景信息。在有的实施例中,场景信息包括场景特征、在有的实施例中场景信息包括场景特征和表示系数。其中,场景特征指能够描述场景整体或局部画面内容的特征信息,可以是原图像像素表示空间的特定帧画面或局部图像块,也可以是特征表示空间的特征基,如小波特征基、稀疏编码字典基等等。

场景重构的目的是减少场景内关键帧在内容上的冗余度。场景特征提取原则是该场景特征表述简洁占用数据量小,同时根据场景信息重构得到的数据与原图尽量匹配,使得重构残差量小。该场景重构操作直接影响到视频编码的压缩效果。

在本发明有的实施例中,在步骤202之前,本发明实施例的方法还包括对该多个视频帧进行分类的操作,例如,基于画面内容的相关性对该多个视频帧进行分类,得到一个或多个分类簇的视频帧,后续以同一分类簇的视频帧执行步骤202。其中属于同一分类簇的多个视频帧间的冗余数据的冗余度符合预设要求,例如大于一阈值。

具体的分类方法包括多种,例如基于聚类的方法、使用分类器的方法等,例如,对关键帧进行特征提取和描述,在特征空间对关键帧进行聚类。具体的实现过程详见下述实施例的描述,本发明实施例对此不作具体限定。

在本发明的一些实施例中,通过对视频流进行分割后得到多个镜头,对每一镜头提取出执行本发明实施例的方法的视频帧,此时,因一镜头提取的视频帧可反映该镜头的特征,从而,对提取的视频帧进行分类,也可称之为对镜头进行场景分类。场景分类的目的是将内容上强相关的从镜头提取的视频帧结合起来,以便之后对整个场景内容进行分析。场景分类具体策略是通过对各镜头关键帧进行分析和聚类实现。场景分类的原则是每个分类簇中的视频帧在画面内容上高度相关,存在大量信息冗余。该操作对后续场景重构操作起到了决定性作用,分类效果越好,类内信息高度聚合,信息冗余量越大,则编码效率越高。

步骤203:对场景信息进行预测编码,得到场景特征预测编码数据。

得到该场景信息后,可对其进行预测编码,得到场景特征预测编码数据。

步骤204:对重构残差进行预测编码,得到残差预测编码数据。

得到重构残差后,可对其进行预测编码,得到残差预测编码数据。其中,在进行具体编码时,可以采用帧内预测编码或者帧间预测编码。

经过步骤202的重构操作之后,该重构残差因不包括场景特征,从而具有稀疏的特性,例如,重构残差以矩阵表示时,绝大部分都为0,只有少数不为0的数值,因此编码信息量少。

因场景信息和重构残差相比于原来的多个视频帧,减少了冗余数据的冗余度,使得待编码的数据量得到了减少,从而编码后得到的场景特征预测编码数据和残差预测编码数据的数据量得到减少,且因将视频帧分别由场景信息和重构残差进行表示,而重构残差表示视频帧和场景特征之间的差值,故,得到的重构残差有稀疏的特性,使得该重构残差的编码信息量减少。

上述步骤201至步骤204为视频编码方法,下述为视频解码方法的步骤。

步骤205:获取场景特征预测编码数据和残差预测编码数据。

视频编解码设备获取以被编码的场景特征预测编码数据和残差预测编码数据。

步骤206:对场景特征预测编码数据进行解码,得到场景信息。

视频编解码设备对该场景特征预测编码数据进行编码,得到场景信息。由上述内容的描述可知,该场景信息包括由减少冗余数据的冗余度得到的数据,该冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据。

步骤207:对残差预测编码数据进行解码,得到重构残差。

视频编解码器也对残差预测编码数据进行解码,得到重构残差,由上述的编码过程的描述可知,该重构残差用于表示视频帧和场景信息间的差值。

可以理解,对步骤206和步骤207的执行顺序本发明实施例不作具体限定。

步骤208:根据场景信息和重构残差进行重构,得到多个视频帧。

该场景特征预测编码数据和重构残差包括了视频帧的信息,通过对该场景信息和重构残差进行重构,即可得到多个视频帧。

这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

可以理解,本发明实施例可用于多种场景中,例如在hevc场景中使用上述的本发明实施例的视频帧编解码方法。此时,上述实施例的步骤201获取的视频帧即为hevc场景中的关键帧(i帧),在步骤202之后,本发明实施例的方法还包括:对关键帧(i帧)进行重构,并以此为参考对其余帧采用传统bp帧帧间预测编码。后续,本发明实施例的方法还包括根据hevc编码流程对预测编码数据进行变换编码、量化编码及熵编码,得到视频压缩数据。该预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。具体可参考图3a,图3a为本发明实施例的视频编码方法的流程和现有的hevc编码方法的流程的对比示意图,图3b为本发明实施例提供的一种视频编码方法所涉及的场景示意图。

相应的,在进行解码操作中,视频编解码设备获取视频压缩数据后,根据hevc解码流程对视频压缩数据进行熵解码、反量化处理、dct(discretecosinetransformation;离散余弦变换)反变化得到对应预测编码数据。然后使用该预测编码数据中的场景特征预测编码数据和残差预测编码数据执行上述步骤205至步骤208的操作。其中步骤208重构得到的视频帧即为关键帧,后续,本发明实施例的方法还包括根据解码后的关键帧数据进行bp帧解码,对解码数据帧按时间顺序进行排列得到原始视频完整序列。具体可参考图4a所示的内容,图4a为本发明实施例的视频解码方法的流程和现有的hevc解码方法的流程的对比示意图。图4b为本发明实施例提供的一种视频解码方法的场景示意图。

原有hevc过于依赖i帧编码且压缩效率不高,对关键帧使用本发明实施例的方法,现有技术中,该i帧是独立进行编码,从而i帧压缩数据量占比高,且i帧之间存在大量的信息冗余。通过本发明实施例的方法的执行,该i帧的冗余信息得到了减少,且减少了i帧的编码数据量。尤其是本发明实施例的方法通过对视频镜头及场景进行识别和分类,将场景内关键帧(i帧)进行整体数据分析及重构,对场景特征及表示残差进行编码。有效避免了针对单个关键帧帧内压缩效率不高的问题,同时引入了视频上下文信息,提升了压缩比。

可以理解,本发明实施例的方法也可以用于其它的原来需要独立编码的视频帧中,通过原需要独立编码的视频帧进行重构得到场景信息和重构残差,并分别进行编码,可减少该原需要独立编码的视频帧的压缩数据量。

为了对本发明实施例的方法进行直观的描述,下文以hevc标准的场景对本发明实施例的方法进行说明,应当理解,本发明实施例提供的视频帧编码和解码方法也可以应用于其它的场景,本发明实施例对具体的使用场景不作限定。

根据将视频帧进行重构得到场景信息和重构残差的具体实现方法的不同,下文将举出两个具体实施例。其中,在一个实施例中,被重构的视频帧的整体帧画面具有冗余数据,另一实施例中,被重构的视频帧的局部帧画面具有冗余数据。

一、视频帧的整体帧画面具有冗余数据

图5为本发明实施例提供的一种视频编码方法的方法流程图,参阅图5以及图3b,本发明实施例的视频编码方法包括:

步骤501:获取视频流。

编码设备获取视频流,该视频流包括多个视频帧。

步骤502:对视频流进行镜头分割,得到多个镜头。

获取视频流后,该编码设备的镜头分割模块可将该视频流分割出多个镜头,以根据镜头提取出待重构的视频帧。当然,也可能从一个视频流中得出一个镜头。

其中,镜头包括在时间上连续的视频帧,镜头代表一个场景中在时间上和空间上连续的动作。

具体来说,参阅图7,步骤502可通过如下步骤实现:

步骤a1:获取视频流。

步骤a1即步骤501,其中该视频流包括多个视频帧。

步骤a2:分别提取第一视频帧和第二视频帧的特征信息。

其中,特征信息用于对视频帧的画面内容进行描述。为了对该视频流的视频帧进行分析,可以通过视频流的特征信息进行分析,该特征信息为用于描述视频帧的特征的信息,例如,图像颜色、形状、边缘轮廓或纹理特征等。

该第一视频帧和第二视频帧为视频流中的视频帧,第一视频帧和第二视频帧当前未归属于任一镜头。

步骤a3:根据特征信息计算第一视频帧和第二视频帧间的镜头距离。

其中,镜头距离用于表示第一视频帧和第二视频帧间的差异度。

步骤a4:判断镜头距离是否大于预设镜头阈值。

预设镜头阈值可以由人为设定。

步骤a5:若镜头距离大于预设镜头阈值,则从视频流中分割出目标镜头,若镜头距离小于预设镜头阈值,则将第一视频帧和第二视频帧归属于同一镜头。

其中,目标镜头的起始帧为该第一视频帧,目标镜头的结束帧为第二视频帧的上一视频帧,该目标镜头属于视频流的镜头的其中之一,镜头为一段在时间上连续的视频帧。

若第一视频帧和第二视频帧间的镜头距离大于预设镜头阈值,表明第一视频帧和第二视频帧的差异度达到了预设要求,且第一视频帧和第二视频帧之间的视频帧与第一视频帧的差异度未达到预设要求,即小于预设镜头阈值,从而在该视频流中,从第一视频帧开始到第二视频帧的上一视频帧为止的视频帧归属于目标镜头。否则,在第一视频帧位于第二视频帧之前时,以第二视频帧的下一帧和第一视频帧进行镜头距离的计算,重复步骤a4、a5。这样,通过上述步骤的重复执行,可从视频流中得到多个镜头。

例如,首先提取视频帧的特征信息,以特征为基础来衡量内容是否发生变化。比较常用的方法是提取图像颜色、形状、边缘轮廓或纹理特征,也可以提取多种特征后进行归一化处理。为提升分割效率,本发明实施例的方法采用分块颜色直方图对图像进行描述。首先将视频图像帧缩放至固定大小(例如320*240),对图像进行下采样以减少噪音对图像的影响。然后,对图像进行4*4分割,每个分块提取rgb颜色直方图。为减少光照对图像的影响,对直方图做均衡化处理。跟着,根据视频帧的特征信息计算视频帧间的距离。视频帧之间的距离,即镜头距离,可以采用马氏距离、欧氏距离等测度标准来衡量。为了消除光照所带来的影响,本示例采用归一化直方图相交法来度量。预先设定预设镜头阈值,当镜头距离大于预设镜头阈值时,计算得到该镜头距离的两视频帧中位于前面的视频帧定为镜头边界起始帧,两视频帧中位于后面的视频帧的上一帧则确定为上一个镜头的边界结束帧,否则该两视频帧归属同一个镜头。最终,可以将一段完整的视频分割为多组单独的镜头。

步骤503:从得到的镜头中抽取出关键帧。

编码设备在切割出镜头后,要从各镜头中提取出关键帧,以该关键帧执行本发明实施例的方法的重构操作。

具体来说,在上述的镜头分割步骤后,步骤303可通过步骤a5的执行来实现。

步骤a5:对视频流中的每一镜头,根据镜头内的视频帧间的帧距离提取出关键帧。

其中,在每一镜头内任意两个相邻的关键帧间的帧距离大于预设帧距离阈值,该帧距离用于表示两视频帧间的差异度。然后,以每一镜头的关键帧执行对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的步骤。

例如,目前的关键帧抽取算法主要有基于抽样的方法、基于颜色特征的方法、基于内容分析的方法、基于运动分析的方法、基于聚类的方法和基于压缩的方法等等。由于编码过程中bp帧需要参考前帧进行帧间预测,因此将每个镜头的起始帧设为关键帧。采用分块颜色直方图特征及直方图相交法对各帧进行特征描述和距离度量。为了使得对关键帧的抽取更快,本发明实施例的方法增加对每一镜头的类型进行判断,即首先依据相邻帧特征空间距离判定镜头是否为静态画面,如果镜头内所有帧之间的帧距离都为0,则判定为静态画面,不再提取关键帧,否则为动态画面。针对动态画面,按时间顺序将各帧内容与上一个关键帧进行距离度量,若距离大于设定阈值,则将该帧设定为关键帧。图8给出了关键帧抽取流程。

当然,在本发明有的实施例中,也可以不用对镜头属于静态画面还是动态画面进行判断。

其中,本发明实施例的方法以hevc场景进行描述,上述步骤得到的镜头可作为gop,一个镜头为一个gop,其中,在一个镜头中,镜头的起始帧为关键帧,通过步骤a5从镜头中提取的视频帧也为关键帧,该镜头的其它视频帧可作为b帧和p帧。本发明实施例的关键帧提取操作考虑到了视频的上下文语境信息,使得后续对这些关键帧进行分类操作时,对这些关键帧有更好的分类效果,有助于后续编码的压缩比的提高。

在本发明实施例的方法中,关键帧序列快速生成,能够及时响应用户的快进、切换场景需求。用户可以根据关键帧序列对视频场景进行预览,对用户感兴趣视频场景片段进行精准定位,提升用户体验。

可以理解,获取执行下述重构操作的关键帧,除了上述的方法之外,还可以通过其它的方式。例如,获取视频流,其中,该视频流的视频帧包括i帧、b帧和p帧。然后,从该视频流中提取i帧,以该i帧执行步骤504或步骤505。

通过上述方法的执行,编码设备获取了多个关键帧,该多个关键帧为待重构以减少冗余度的视频帧。为了通过本发明实施例的方法进一步减少视频帧的冗余数据的冗余度,获取多个关键帧之后,本发明实施例的方法还包括对关键帧进行分类的步骤,即步骤504。

步骤504:基于画面内容的相关性对多个关键帧进行分类,得到一个或多个分类簇的关键帧。

通过分类操作的执行,分类后的同一分类簇的多个关键帧中的每一关键帧包括相同的画面内容,本发明实施例的方法后续即可以以同一分类簇的关键帧执行步骤505。

基于画面内容的相关性分类得到的同一分类簇中,关键帧间的画面内容高度相关,存在大量的冗余数据,若分类效果越好,即同一分类簇内的多个关键帧信息高度聚合,则同一分类簇内的多个关键帧冗余度越大,后续的重构操作对冗余度的减少起到的效果越显著。

例如,在本发明实施例中,经过分类操作后得到一个或多个分类簇,同一分类簇内的多个关键帧间画面内容相同的部分较多,从而这些关键帧间的冗余数据冗余度较大。

在分类的操作中,如果基于镜头对不同关键帧进行分类,则该分类也可称之为场景分类,当然,该分类操作也可不基于镜头,而直接对不同关键帧进行分类,为了描述简便,现将本发明实施例提供的方法的分类操作称之为场景分类操作。

其中,具体的分类方法有多种,下面即举出其中的两例,一是聚类的分类方法,另一是使用分类器的分类方法。

1)聚类的分类方法

在聚类的分类方法中,该基于画面内容的相关性对多个关键帧进行分类,得到一个或多个分类簇的关键帧,包括:

步骤b1:提取多个关键帧中的每一关键帧的特征信息。

关键帧的特征信息可以是底层特征或中层语义特征等。

步骤b2:根据特征信息确定任意两个关键帧间的聚类距离。

其中,聚类距离用于表示两个关键帧间的相似度。这里的任意两个关键帧包括上述步骤中提取出的所有关键帧,可为属于不同的镜头的关键帧,也可以为属于同一镜头的关键帧。

因镜头内各帧的差异性要比不同镜头间各帧的差异性小。为了能够对场景分类进行有效划分,可选用不同的特征空间,而不同的特征空间则对应了不同的度量标准,从而使用的聚类距离和镜头距离可以不同。

步骤b3:根据聚类距离对视频帧进行聚类,得到一个或多个分类簇的视频帧。

例如,场景分类是通过对各镜头关键帧进行分析和聚类实现。场景分类与场景重构息息相关。以视频编码任务为前提,场景分类的首要原则是每个分类簇中的关键帧在画面内容层面上高度相关,存在大量信息冗余。现有的场景分类算法主要分为两类:a)基于底层特征场景分类算法;b)基于中层语义特征建模的场景分类算法。这些方法都是以特征检测与描述为基础,体现了场景内容在不同层次上的描述。底层图像特征可采用颜色、边缘、纹理、sift(scale-invariantfeaturetransform)、hog(histogramoforientedgradient)、gist等特征。中层语义特征包含视觉词袋(bagofwords),深度学习网络特征等等。为提升效率,本发明实施例选用较为简单gist全局特征对关键帧整体内容进行描述。距离度量函数则采用欧氏距离来衡量两幅图像的相似度。聚类算法可以采用传统的k-means、图切割、层次聚类等方法。本实施例选用凝聚层次聚类算法对关键帧进行聚类。该方法聚类数目依赖于相似度阈值设定。阈值设定越高,则类内关键帧信息冗余量越大,相应的聚类数目也越多。场景分类具体流程图9如下图所示。

上述基于聚类的场景分类策略有益于编码速度的提高,下述基于分类器模型的场景分类策略有益于编码精度的提高。

其中,该基于分类器模型的场景分类策略的主要思想是根据镜头分割结果对每个镜头进行判别训练得到多个判别分类器。通过分类器对各关键帧进行判别,得分高的关键帧则被认为与该镜头属同一场景。具体过程如下:

2)使用分类器的分类方法

在使用分类器的分类方法中,本发明实施例的视频编码方法的分类方法包括:

步骤c1:根据从视频流中分割出的每一镜头进行判别训练,得到多个与镜头对应的分类器。

其中,可选的分类器模型有:决策树、adaboost、支持向量机(supportvectormachine,svm)、深度学习等模型。

步骤c2:使用目标分类器对目标关键帧进行判别,得到判别分数。

目标分类器为步骤c1得到的多个分类器的其中之一,目标视频帧为关键帧的其中之一,判别分数用于表示目标视频帧属于目标分类器所属的镜头的场景的程度。

这样,即可实现对各关键帧进行类型判别,判定一关键帧是否与一个镜头属于同一场景。

步骤c3:当判别分数大于预设分数阈值时,确定目标视频帧与目标分类器所属的镜头属于同一场景。

当判别分数大于预设分数阈值时,可认为目标关键帧与目标分类器所属的镜头属于同一场景,否则,认为目标关键帧与目标分类器所属的镜头不属于同一场景。

步骤c4:根据与镜头属于同一场景的视频帧,确定一个或多个分类簇的视频帧。

例如,以svm为例作介绍。如图10所示,使用分类器进行分类的操作包括两主要阶段,如下:

2.1)模型训练

首先对各镜头进行判别训练。各镜头所包含的所有视频帧为正样本。与该镜头相邻两个镜头内的所有视频帧为负样本。根据训练样本对分类器参数进行训练。各镜头分类器训练公式如下:

s.t.yi(wtφ(ii)+b)≥1,i∈1,...,n

其中yi为第i个训练样本对应的标签,正样本对应标签为1,负样本为-1。φ(·)为特征映射函数,n为训练样本总数,w是分类器参数,i为训练样本。

2.2)场景分类

利用各镜头训练好的分类器模型对关键帧进行判别,具体公式如下:

利用各镜头训练好的分类器模型对关键帧进行判别,具体公式如下:

表示关键帧i同镜头j同属于一个场景的概率。公式中wj、bj为第j个镜头所对应的分类器参数,分母为归一化因子。当概率大于设定阈值时,则认为关键帧i与镜头j同属于一个场景。其中,i和j为正整数。

这样,通过上述操作,即可得到多组关键帧和镜头的对应关系,这些对应关系表示关键帧和镜头属于同一场景,然后编码设备即可根据这些对应关系确定一个或多个分类簇的视频帧。

可以理解,使用svm分类器的例子中,使用的是二分类分类器的具体场景,本发明实施例也可以使用多分类的分类算法进行操作。

可以理解,在本发明的一些实施例中,可以不包括步骤504。

可以理解,上述内容是基于hevc场景对本发明实施例提供的编码方法进行描述,在其它的场景中,上述各步骤中的关键帧可直接以视频帧进行描述。

通过上述方法,基于画面内容的相关性对多个视频帧进行分类,得到一个或多个分类簇的关键帧后,同一分类簇内的关键帧间的冗余数据的冗余度较大,从而后续对同一分类簇的关键帧进行重构操作时,可以更多地减少冗余数据的冗余度,以进一步减少编码数据量。另外,在对镜头的关键帧进行分类操作的实施例中,视频依据场景进行压缩,为后期进行内容剪辑,视频绿镜(即根据热度分析生成精华版视频)制作提供便利。

步骤505:对同一分类簇的多个关键帧进行重构,得到场景特征和每一视频帧的重构残差。

该多个关键帧中的每一关键帧间包括相同的画面内容,该相同的画面内容,即为每一关键帧间在画面内容上包括的冗余数据。若不对这些关键帧进行重构,则编码设备会对这些关键帧间的相同的画面内容进行重复编码。重构得到的场景特征用于表示每一视频帧间的相同的画面内容,从而,场景信息包括由减少冗余数据的冗余度得到的数据。该重构残差用于表示关键帧和场景特征间的差值。这样得到的场景特征可表示帧的整体信息,从而步骤505的重构操作,针对的是多个视频帧的整体画面存在相同的画面内容的场景。

步骤505的具体实现方式如下:

将同一分类簇的关键帧转换成观测矩阵。其中,观测矩阵用于以矩阵形式对该多个关键帧进行表示。然后,根据第一约束条件对观测矩阵进行重构,得到场景特征矩阵和重构残差矩阵。

其中,场景特征矩阵用于以矩阵形式对场景特征进行表示,重构残差矩阵用于以矩阵形式对该多个关键帧的重构残差进行表示。第一约束条件用于限定场景特征矩阵低秩以及重构残差矩阵稀疏。

在本发明的一些实施例中,根据第一约束条件对观测矩阵进行重构,得到场景特征矩阵和重构残差矩阵,包括:根据第一预设公式,计算得到场景特征矩阵和重构残差矩阵,场景特征矩阵为低秩矩阵,重构残差矩阵为稀疏矩阵;

第一预设公式为:

或者,

其中,d为观测矩阵,f为场景特征矩阵,e为重构残差矩阵,λ为权重参数,λ用来平衡场景特征矩阵f与重构残差矩阵e之间的关系,表示求f和e的最优值,即使得目标公式rank(f)+λ||e||1或者||f||*+λ||e||1值最小时f和e的取值。rank(·)为矩阵求秩函数,||·||1为矩阵l1范数,||·||*为矩阵核范数。

例如,场景重构是对场景分类得到的每个分类簇的场景进行内容分析,提取适合对场景内所有关键帧进行重构的场景特征和表示系数。可用于场景重构的模型有rpca(robustprinciplecomponentanalysis;鲁棒主成分分析)、lrr(低秩表示)、sr(稀疏表示)、sc(稀疏编码)、sdae(稀疏自编码深度学习模型)、cnn(卷积神经网络)等等。本发明实施例的表示系数可以用单位矩阵进行表示,场景特征与表示系数相乘仍为场景特征,当然,在本发明有的实施例中,因表示系数可以忽略,所以可以使用为单位矩阵的表示系数,也可以不使用表示系数,此时,在解码重构阶段,只需要场景特征及重构残差即可对原视频帧进行表示。

本实施例的视频编码方法采用rpca对场景内关键帧进行重构。基于rpca方法的场景重构策略对关键帧进行了整体内容数据重构,可以减少由块预测产生的方块现象。

假设某场景s包含n个关键帧,即某一分类簇包括n个关键帧,n为自然数。将同一分类簇内的所有关键帧图像像素值拉成一个列向量,组成一个观测矩阵d,即d=[i1,i2,...,in],其中ii为第i个关键帧的列向量表示。由于同一场景中各关键帧之间内容相似,可以假定各关键帧含有相同的场景特征fi,由场景特征组成的特征矩阵f=[f1,f2,...,fn]本质上应该是低秩矩阵;各关键帧在f矩阵基础之上发生少量变化得到观测矩阵d,因此重构误差e=[e1,e2,...,en]应该是稀疏的。

将场景重构问题转化为如下优化问题来描述:

s.t.d=f+e

其中,λ为权重参数用来平衡场景特征矩阵f与重构残差矩阵e之间的关系,rank(·)为矩阵求秩函数,||·||1为矩阵l1范数。上述优化问题属于np难题,可以松弛为如下问题求解:

s.t.d=f+e

其中||·||*为矩阵核范数。上述优化问题可以通过近端加速梯度法(acceleratedproximalgradient,apg)、非精确增广拉格朗日算法(inexactaugmentedlagrangemultiplier,ialm)等矩阵优化算法求解。

这样重构后,得到场景特征和重构残差,通过重构可以将原有对关键帧i的压缩转化为对场景特征f及重构误差e来实现。由于场景特征矩阵f低秩,重构残差e稀疏,因此两者的压缩数据量相对于传统i帧压缩算法将得到大幅缩减。图11给出了基于rpca场景重构的示例图,其中关键帧1~3分属同一视频的不同镜头片段。由图可知,场景特征矩阵f秩为1,因此只需要对该矩阵的某一列进行数据压缩。残差矩阵e在大部分区域值为0,因此只需少量信息对e进行表示。

其中,本发明实施例的场景特征为场景信息的其中一种具体实现方式,步骤505即为对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的其中一种具体实现方式。

本发明实施例的方法可针对帧整体信息具有冗余数据的关键帧进行重构操作,为了通过重构操作高效地减少关键帧的冗余数据,需要先对关键帧进行检测,以判断当前的选出的关键帧是否适于本发明实施例的方法的重构操作,从而可以根据视频场景内容的不同进行自适应编码。

即对所述多个视频帧进行重构,得到场景特征和所述每一视频帧的重构残差之前,本发明实施例的方法还包括:提取所述多个视频帧中的每一视频帧的画面特征信息,其中该提取的画面特征信息可以为视频帧的全局特征或局部特征,具体有gist全局特征,hog全局特征,sift局部特征等等,本发明实施例对此不作具体限定。然后,编码设备根据所述画面特征信息,计算得到内容度量信息,其中,内容度量信息用于度量所述多个视频帧的画面内容的差异性,即进行关键帧的内容一致性度量,关键帧内容一致性度量准则可以采用特征方差、欧氏距离等方式度量。当所述内容度量信息不大于预设度量阈值时,执行所述对所述多个视频帧进行重构,得到场景特征和所述每一视频帧的重构残差的步骤。

例如,在步骤505之前,本发明实施例的方法还包括:

步骤d1:提取多个视频帧中的每一视频帧的全局gist特征。

在上述的hevc场景中,步骤d1为提取同一分类簇的多个关键帧中的每一关键帧的全局gist特征。

该全局gist特征用于对关键帧的特征进行描述。

步骤d2:根据全局gist特征,计算得到场景gist特征方差。

其中,场景gist特征方差用于度量多个视频帧的内容一致性。

在上述的hevc场景中,场景gist特征方差用于度量同一分类簇的多个关键帧的内容一致性。

步骤d3:当场景gist特征方差不大于预设方差阈值时,执行步骤304。

通过上述步骤的执行,得到场景特征和重构残差后,视频编解码设备可分别对场景特征和重构残差进行帧内预测编码。

上述步骤d1至d3为判断同一分类簇的关键帧是否适用于步骤505的具体方法。

步骤506:对场景特征进行预测编码,得到场景特征预测编码数据。

步骤507:对重构残差进行预测编码,得到残差预测编码数据。

在编码设备的预测编码部分包括帧内预测编码及帧间预测编码两个部分。场景特征及重构误差采用帧内预测编码,镜头的剩余帧,即镜头的非关键帧采用帧间预测编码。帧内预测编码具体流程同hevc帧内编码模块类似。由于场景特征矩阵低秩,则只需对场景特征矩阵关键列进行编码。重构误差属于残差编码,编码数据量小,压缩比高。

步骤508:根据场景特征和重构残差进行重构,得到参考帧。

为了对b、p帧进行帧间预测编码,需要得到参考帧。在hevc场景中,以关键帧为参考帧。在上述方法中,场景特征、重构残差如果采用有损压缩,如果采用步骤504中原关键帧进行帧间预测,bp帧在解压时会出现误差扩散现象。步骤507为了防止误差在bp帧帧间扩散采用了该逆向重构方案,以根据场景特征和重构残差进行重构,以得到的参考帧为参考执行下述的步骤509。

可以理解,如果骤506和步骤507中场景特征、重构残差帧间预测编码采用无损压缩的方式,则可以直接通过步骤504提取的关键帧进行bp帧帧间预测。

步骤509:以参考帧做参考,对b帧和p帧进行帧间预测编码,得到b帧预测编码数据和p帧预测编码数据。

帧间编码首先根据场景特征及重构误差对关键帧(i帧)进行重构,然后对bp帧内容进行运动补偿预测并编码。具体帧间预测编码过程与hevc相同。

步骤510:对预测编码数据进行变换编码、量化编码及熵编码,得到视频压缩数据。

预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

在预测编码基础上对数据进行变化编码、量化编码及熵编码,该过程与hevc相同。

本发明实施例的视频编码方法,可以提升视频压缩比,在有的实施例中,场景内容高度关联情况下,可以通过极少量信息来表示整个场景信息,降低码率,在保证视频质量的前提下,减少压缩体积,更适宜于低比特率环境下图像的传输、存储。以数字视频产业为例来分析,现有点播(vod)、个人视频录制(npvr)、录播(catch-uptv)视频业务占据了服务器70%的存储资源和网络带宽。采用本发明实施例的技术方案可以降低存储服务器压力、提升网络传输效率。此外,cdn边缘节点可以存储更多的视频,用户命中率将会大幅增加,回源率减少,提升了用户体验,降低网络设备消耗。并且,本发明实施例的方法可以通过对场景进行不同层面特征提取,生成不同码率视频。

综上所述,通过重构,将该相同的画面内容去重后由场景特征进行表示,可减少该多个视频帧的冗余信息的冗余度。从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

通过上述步骤的执行得到压缩编码数据后,视频编解码设备可对该压缩编码数据进行解压操作。

图6为本发明实施例提供的一种视频解码方法的方法流程图。参阅图6以及图4b,本发明实施例的视频解码方法包括:

步骤601:获取视频压缩数据;

解码设备获取视频压缩数据,该视频压缩数据可为通过图5所示的实施例的视频编码方法得到的视频压缩数据。

步骤602:对视频压缩数据进行熵解码、反量化处理、dct反变化得到预测编码数据。

其中,预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

在hevc场景中,相应于步骤510,需要根据hevc解码流程对视频压缩数据进行熵解码、反量化处理、dct反变化得到对应预测编码数据。

这样,即可实现获取场景特征预测编码数据和残差预测编码数据。

步骤603:对场景特征预测编码数据进行解码,得到场景特征。

对应于图5所示的实施例,场景特征用于表示每一视频帧间的相同的画面内容,而对场景特征预测编码数据解码后得到的场景特征即表示多个视频帧中的每一视频帧间相同的画面内容。

步骤604:对残差预测编码数据进行解码,得到重构残差。

重构残差用于表示视频帧和场景信息间的差值。

例如,分别对场景特征预测编码数据及关键帧误差预测编码数据进行解码得到场景特征矩阵f及重构残差ei。

步骤605:根据场景特征和重构残差进行重构,得到多个i帧;

在本发明图5所示的实施例中针对关键帧进行了重构,得到场景特征和重构残差,故,在视频帧的编码方法中,通过场景特征和重构残差进行重构,得到的是多个关键帧。

步骤606:以i帧为参考帧,对b帧预测编码数据和p帧预测编码数据进行帧间解码,得到b帧和p帧;

步骤607:对i帧、b帧和p帧按时间顺序进行排列,得到视频流。

获取到i帧、b帧和p帧后,对这三种类型的视频帧按照时间顺序进行排列,即可得到视频流。

例如,结合解码场景特征f、关键帧误差ei进行原数据重构,获得关键帧解码数据。最后,根据解码后的关键帧数据进行bp帧解码,对解码数据帧按时间顺序进行排列得到原始视频完整序列。

这样,通过图5所示的视频编码方法得到视频压缩数据后,在有的实施例中为得到场景特征预测编码数据和残差预测编码数据,可通过图6所示的视频解码方法对这些数据进行解码得到视频帧。

图5所示的实施例主要应用于关键帧间整体信息存在冗余场景下进行高效压缩。下文的图12所示的实施例应用于关键帧间局部信息存在冗余场景下进行高效压缩,该局部信息例如可以为纹理图像、镜头渐变等。

图12为本发明实施例提供的一种视频编码方法的方法流程图。参考图12,本发明实施例提供的视频解码方法包括:

步骤1201:获取视频流。

步骤1201的实现细节可参考步骤501。

步骤1202:对视频流进行镜头分割,得到多个镜头。

步骤1202的实现细节可参考步骤502。

步骤1203:从得到的镜头中抽取出关键帧。

步骤1203的实现细节可参考步骤503。

类似于上述图5所示的实施例,图12所示实施例的方法中,获取待重构的视频帧,也可以通过其它的方式,例如,获取视频流,其中,该视频流的视频帧包括i帧、b帧和p帧。然后,从视频流中提取i帧,以i帧执行后续的对多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤;

步骤1204:基于画面内容的相关性对多个关键帧进行分类,得到一个或多个分类簇的关键帧。

步骤1204的实现细节可参考步骤504。

本发明实施例的方法用到的具体的分类方法也可参考步骤504的相关描述。

本发明实施例的方法可针对帧局部信息具有冗余数据的关键帧进行重构操作,为了通过重构操作高效地减少关键帧的冗余数据,需要先对关键帧进行检测,以判断当前的选出的关键帧是否适于本发明实施例的方法的重构操作,即对所述多个视频帧中的每一视频帧进行拆分,得到多个帧子块之前,本发明实施例的方法还包括:提取所述多个视频帧中的每一视频帧的画面特征信息,其中该提取的画面特征信息可以为视频帧的全局特征或局部特征,具体有gist全局特征,hog全局特征,sift局部特征等等,本发明实施例对此不作具体限定。然后,编码设备根据所述画面特征信息,计算得到内容度量信息,所述内容度量信息用于度量所述多个视频帧的画面内容的差异性,即进行关键帧的内容一致性度量,关键帧内容一致性度量准则可以采用特征方差、欧氏距离等方式度量。当所述内容度量信息大于预设度量阈值时,执行所述对所述多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤。

例如,在步骤1205之前,本发明实施例的方法还包括:

步骤e1:提取多个视频帧中的每一视频帧的全局gist特征。

在hevc场景中,步骤e1为提取同一分类簇的多个关键帧中的每一关键帧的全局gist特征。该全局gist特征用于对关键帧的特征进行描述。

步骤e2:根据全局gist特征,计算得到场景gist特征方差。

场景gist特征方差用于度量多个视频帧的内容一致性;

在上述的hevc场景中,场景gist特征方差用于度量同一分类簇的多个关键帧的内容一致性。

步骤e3:当场景gist特征方差大于预设方差阈值时,则执行步骤1205。

其中,在hevc的场景中,步骤e1至e3中的视频帧为关键帧,在本发明有的实施例中,这些关键帧为属于同一分类簇的关键帧。

上述步骤e1至e3为判断同一分类簇的关键帧是否适用于步骤1205的具体方法。若该多个关键帧的场景gist特征方差大于预设方差阈值,则表明该多个关键帧的帧画面的局部具有冗余数据,从而可对该多个关键帧执行步骤1205或步骤1206,以减少这些局部的冗余数据的冗余度。

步骤1205:对多个视频帧中的每一视频帧进行拆分,得到多个帧子块。

具体来说,在进行分类的实施例中,编码设备在分类出一个或多个分类簇的关键帧后,对同一分类簇的多个关键帧进行拆分,得到多个帧子块。

步骤1205的多个视频帧中,多个视频帧中的每一视频帧相互之间在局部位置包括冗余数据,即不同视频帧之间和一视频帧内部存在冗余数据,且这些冗余数据在帧的局部位置。例如,两个视频帧中,一个视频帧在帧下部具有一窗户图像,另一视频帧在帧上部具有同样的窗户图像,在这两个视频帧中,这个窗户图像即构成了冗余数据。

通过将这些视频帧进行拆分,得到多个帧子块,因原来的视频帧间或视频帧内部具有冗余数据,拆分后,这些冗余数据由拆分得到的帧子块进行携带。因冗余数据位于视频帧的帧局部位置,不方便从这些视频帧中提取出对帧的整体画面进行表示的场景特征,或者这样的场景特征对冗余数据的冗余度的减少作用不大,从而可以先对这些视频帧进行拆分,此时的帧画面为帧子块的画面,冗余数据相对于帧画面的粒度得到了减少,从而方便了对场景特征基的获取,场景特征基的获取详见步骤1206的描述。

可以理解,拆分得到的多个帧子块可以大小相等,也可以不相等,拆分后可以对这些帧子块进行预处理,例如放大或缩小等。

步骤1206:对多个帧子块进行重构,得到场景特征、多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差。

其中,场景特征包括多个独立的场景特征基,在场景特征内独立的场景特征基间不能互相重构得到,场景特征基用于描述帧子块的画面内容特征,所示表示系数表示场景特征基和帧子块的对应关系,重构残差表示帧子块和场景特征基的差值。其中,该重构残差可以为具体的数值也可以为零。

在本发明的实施例中,表示系数可以通过单独字段保存,通过编码附属信息进行传递,如在图像头、条带头或者宏块信息内添加相应字段。

场景特征基的构成形式有多种,例如可以是某些帧子块,或者在特定的空间的特征块等,具体可参考下述两个例子。多个场景特征基可构成场景特征,在同一场景特征中,不同的场景特征基间不能互相重构得到,从而这些场景特征基构成了基本的图像单元。基本的图像单元和相应的重构残差组合即可得到某一帧子块,因基本的图像单元有多个,需要表示系数来将与同一帧子块对应的场景特征基和重构残差进行联系。可以理解,一个帧子块可以对应一个场景特征基,也可以对应多个场景特征基,在多个场景特征基对应一个帧子块时,这些场景特征基进行互相叠加后和重构残差进行重构得到帧子块。

场景特征由场景特征基构成,一场景特征中的场景特征基间不能互相重构得到,而另外的参数重构残差表示帧子块和场景特征基间的差值,从而由多个帧子块得到多个相同的场景特征基时,场景特征可以只取相同的场景特征基中的一个进行记录,实现了场景信息包括由减少冗余数据的冗余度得到的数据。这样,步骤1206重构后,将帧子块的数据换化为重构残差和场景特征组成的数据,冗余数据的冗余度得到了减少。

其中,本发明实施例的视频编码方法可以参考图3b,只是,基于该图3b,在场景重构后,还包括表示系数c,例如,对场景1的关键帧进行场景重构后,得到重构残差矩阵e1、e2、e3,以及场景特征f1*[c1、c3、c5]t。c1、c3、c5分别为关键帧i1、i3、i5的表示系数。

上述的步骤1205和步骤1206,即为对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差的步骤的其中一种具体形式。

其中,对步骤1206的执行有多种方式,现举其中两个例子,详述如下:

例一:

首先,编码设备对多个帧子块进行重构,得到多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差。

其中,表示系数表示帧子块和目标帧子块的对应关系,目标帧子块为多个帧子块中独立的帧子块,独立的帧子块为不能基于多个帧子块中的其它帧子块重构得到的帧子块,重构残差用于表示目标帧子块和帧子块间的差值。

然后,编码设备组合多个表示系数指示的目标帧子块,得到场景特征,目标帧子块即为场景特征基。

即在该具体实施方式中,从多个视频帧得到多个帧子块后,通过重构操作,确定出独立表示的帧子块,现将这些独立表示的帧子块称之为目标帧子块。在得到的多个帧子块中包括目标帧子块和非目标帧子块,目标帧子块不能基于其它目标帧子块重构得到,非目标帧子块可以基于其它的目标帧子块得到。这样,场景特征由目标帧子块组成,即可减少冗余数据的冗余度。因场景特征基即为原来的帧子块,根据表示系数的指示即可确定出构成场景特征的场景特征基。

例如,如图13所示,两个帧子块中,一个帧子块包括窗户图案1301,该帧子块加上门图像1303即可得到另一帧子块,从而,前一帧子块为目标帧子块1302,后一帧子块为非目标帧子块1304。该目标帧子块和门图案的重构残差重构即可得到该目标帧子块,这样,在包括这两个帧子块的场景中,两帧子块的窗户图案为冗余数据,经过本发明实施例的重构操作,得到目标帧子块、门的重构残差,两个表示系数,一个表示系数指示目标帧子块本身,另一表示系数指示目标帧子块和门的重构残差的对应关系,该目标帧子块为场景特征基。在解码设备处,根据指示目标帧子块本身的表示系数得到一帧子块为目标帧子块,根据指示目标帧子块和门的重构残差的对应关系的表示系数将目标帧子块和门的重构残差重构得到另一帧子块。这样,在编码时,通过上述的重构操作,减少了冗余数据的冗余度,减少了编码量。

具体来说,对多个帧子块进行重构,得到多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差,包括:

将多个帧子块转换成观测矩阵,观测矩阵用于以矩阵形式对多个帧子块进行表示;

根据第二约束条件对观测矩阵进行重构,得到表示系数矩阵和重构残差矩阵,表示系数矩阵为包括多个帧子块中的每一帧子块的表示系数的矩阵,表示系数的非零系数指示目标帧子块,重构残差矩阵用于以矩阵形式对每一帧子块的重构残差进行表示,第二约束条件用于限定表示系数的低秩性及稀疏性符合预设要求;

组合多个表示系数指示的目标帧子块,得到场景特征,包括:

组合该表示系数矩阵中的表示系数的非零系数指示的目标帧子块,得到场景特征。

可选地,根据第二约束条件对观测矩阵进行重构,得到表示系数矩阵和重构残差矩阵,包括:

根据第二预设公式,计算得到表示系数矩阵和重构残差矩阵,第二预设公式为:

或者,

其中,d为观测矩阵,c为表示系数矩阵,e为重构残差矩阵,λ、β为权重参数。表示求c和e的最优值,即使得目标公式||c||*+λ||e||1或者||c||*+λ||e||1+β||c||1值最小时c和e的取值,||·||*为矩阵核范数,||·||1为矩阵l1范数。

例如,假设某场景s包含n个关键帧,即同一分类簇包括n个关键帧,n为自然数。将每个关键帧均匀拆分成m个大小相等子块。将各子块拉成一个列向量,组成一个观测矩阵d,即由于关键帧内部及关键帧之间的信息内容存在大量冗余,因此该矩阵可以看成是由多个子空间构成的并集。场景重构的目标是找出这些独立的子空间,并求解观测矩阵d在这些独立子空间内的表示系数。空间是指带有一些特定性质的集合。观测矩阵d包含多个图像特征向量,这些向量所构成的表示空间为全空间。子空间即是表示维度小于全空间的部分空间。该子空间即为独立的帧子块构成的空间。

场景重构问题可转化为如下优化问题来描述:

s.t.d=dc+e

其中c为表示系数。根据表示系数c,可得到各子空间对应的场景特征。系数c的非零个数与场景特征基个数一一对应。本实施例的表示系数是指关键帧重构过程中,原帧子块由场景特征中的各场景特征基来表示的系数矩阵(或向量),即帧子块和场景特征基的对应关系。不同的独立帧子块之间的表示系数通常为0,例如,草地图像不包含湖水场景特征,因此该图像块由湖水场景特征来表示的系数通常为0。

这样,即可实现将观测矩阵d进行自表示(self-representation),即观测矩阵d中每一个帧子块,都可以通过观测矩阵d中的其他帧子块来进行表示,独立的帧子块则由其本身表示自己。表示系数矩阵c中的每一列为帧子块的表示系数,残差矩阵中e的每一列为对应帧子块的重构残差。因此公式可以使用d=dc+e。

该目标约束函数表示:在自表示前提下,由于观测矩阵是由多个场景特征基构成,因此表示的系数应该是低秩矩阵(即多个表示系数强相关),在给出低秩约束的前提下,可以避免求解得到平凡解(即c=i,e=0的情形)。同时,给出重构误差稀疏约束,使得表示尽可能地接近原图像。

为了降低场景特征表示数据量,需要对表示系数进行系数稀疏约束,即:

s.t.d=dc+e

其中λ、β为权重参数,对系数稀疏性及低秩性进行调节,上述优化问题可通过apg、ialm等矩阵优化算法进行求解。最终场景特征由非零系数c对应的特征基组成。

为了减少特征基数量,需要对表示系数进行稀疏约束,即属于同一类场景的帧子块(例如,都为草地)的表示系数不仅强相关而且表示系数大部分为0,少部分不为0的表示系数对应的图像子块为最终需要编码的场景特征。

例如,假设表示系数矩阵c和观测矩阵d是由列向量c,d排布的矩阵,即c=[c1,c2,c3,…],d=[d1,d2,d3,…],其中c1=[c1_1,c1_2,c1_3]为观测样本d1对应的表示系数,d1即为一帧子块的矩阵表示。dc表示矩阵相乘,则d1=d*c1,即d1=d1*c1_1+d2*c1_2+d3*c1_3,在求解后,c1向量内只有少部分维度不为0,比如说c1_2不为0,则场景特征基即为d2,即帧子块d1可以基于帧子块d2进行表示,该帧子块d2为独立的帧子块,帧子块d2和帧子块d1的重构残差进行重构即可得到帧子块d1,表示系数c1=[0,c1_2,0]表示帧子块d1和独立帧子块d2的对应关系。

这样,本发明实施例将i帧的信息量转换成场景特征基信息及残差矩阵信息来表示。i帧信息量的冗余即体现在场景特征基及残差矩阵信息上。多个i帧拥有相同的场景特征基,因此只需要对该场景特征基编码一次来大幅降低编码数据量。

编码时除对场景特征、重构误差进行编码外,还需要记录表示系数,及子块的编号。在解码过程中,首先根据解码过后的场景特征、表示系数及重构误差对每个子块进行重构,然后将子块按编号进行组合,得到最终关键帧内容。图14给出了基于局部信息表示的场景重构示例图。

当然,在本发明有的实施例中个,也可以不使用子块的编号,而是按照预设顺序对帧子块进行排列,再解码复原过程中,按照该预设规则对重构得到的帧子块进行组合,也可以得到视频帧。

本实现方式可以对关键帧中存在的纹理结构进行挖掘。如果场景存在大量纹理特征,通过上述公式求解得到的表示系数c将会是低秩且稀疏的。稀疏系数对应的特征基便是场景纹理结构的基本单元。图15给出了在纹理场景下进行局部特征重构的示例图。

上述实现方式给出的压缩方案中根据图像底层数据特征对场景内容进行表示和重构。下述实现方式将采用更高层的语义特征对场景内容进行描述及重构来达到数据压缩的目的。具体的模型有稀疏编码(sparsecoding,sc)、深度学习网络(deepneuralnetwork,dnn)、卷积神经网络(convolutionalneuralnetwork,cnn)、堆栈自编码模型(stackedautoencoder,sae)等等。

例二

首先,解码设备对多个帧子块进行重构,得到场景特征和多个帧子块中的每一帧子块的表示系数。其中,场景特征包括的场景特征基为特征空间中的独立的特征块,独立的特征块为在场景特征中不能由其它特征块重构得到的特征块。

然后,解码设备根据每一帧子块的重构残差和场景特征重构得到的数据和每一帧子块,计算得到每一帧子块的重构残差。

其中,场景特征基为特征空间中的独立的特征块,这些特征空间例如可以为rgb彩色空间、his彩色空间、yuv彩色空间等,不同的帧子块原本看起来不具有相同的画面,但是经过高层映射后,会具有相同的特征块,这些相同的特征块即构成了冗余数据,场景特征将相同的特征块只取其一进行记录,从而减少了帧子块间的冗余度。这样的场景特征类似于由特征块组成的字典,表示系数即用于从该字典中选取一个帧子块需要的特征块并将对应的重构残差对应起来。

可以理解,一个帧子块可以对应与多个特征块,这些多个特征块进行叠加并于重构残差重构后,即可得到帧子块。

具体来说,对多个帧子块进行重构,得到场景特征和多个帧子块中的每一帧子块的表示系数,包括:

将多个帧子块转换为观测矩阵,观测矩阵用于以矩阵形式对多个帧子块进行表示;

根据第三约束条件对观测矩阵进行重构,得到表示系数矩阵和场景特征矩阵,表示系数矩阵为包括每一帧子块的表示系数的矩阵,表示系数的非零系数指示场景特征基,所示场景特征矩阵用于以矩阵形式对场景特征进行表示,第三约束条件用于限定表示系数矩阵和景特征矩阵重构得到的画面和帧子块的画面的相似性符合预设相似阈值、以及限定表示系数矩阵稀疏性符合预设稀疏阀值、以及场景特征矩阵的数据量小于预设数据量阀值;

根据每一帧子块的重构残差和场景特征重构得到的数据和每一帧子块,计算得到每一帧子块的重构残差,包括:

根据表示系数矩阵和场景特征矩阵重构得到的数据和观测矩阵,计算得到重构残差矩阵,重构残差矩阵用于以矩阵形式对重构残差进行表示。

例如,根据第三约束条件对观测矩阵进行重构,得到表示系数矩阵和场景特征矩阵,包括:

根据第三预设公式,计算得到表示系数矩阵和场景特征矩阵,第三预设公式为:

其中,d为观测矩阵,c为表示系数矩阵,f为场景特征,λ和β为权重参数,用于对系数稀疏性及低秩性进行调节。

例如,选用稀疏编码模型进行建模和分析进行描述。假设某场景s包含n个关键帧,将每个关键帧均匀拆分成m个大小相等的帧子块。将各帧子块拉成一个列向量,组成一个观测矩阵d,即将场景重构问题可转化为如下问题来描述:

其中,λ和β为权重参数,矩阵优化参数为场景特征f及表示系数c。

表示求f和c的最优值,即使得公式:

值最小时f和c的取值。

目标函数中第一项是对重构误差做约束,使得场景特征与表示系数重构得到的画面与原图尽量相似。第二项是对系数c进行稀疏约束,表示每幅画面通过少量特征基即可重构。最后一项是对场景特征f进行约束,防止f数据量过大,即该公式的第一项为误差项、后两项为正则项,对表示系数做约束。具体优化算法可采用共轭梯度法、omp(orthogonalmatchingpursuit)、lasso等方法。最终求解得到的场景特征如图16所示。然后,根据公式e=d-fc求解重构残差。其中,f矩阵的维数及个数与帧子块的维度一致。

参阅图16,图16的各小框为场景特征基,场景特征矩阵f即为由各小框(场景特征基)组成的矩阵,fc=f[c1,c2,c3,…],fc1表示根据表示系数c1将场景特征基进行组合,得到特征空间的一个线性表示,和重构残差e1相加后可复原出原来的帧子块图像i1。

在例一中,场景特征基是由观测样本d来直接确定。即场景特征基都是从观测样本d中选取出来的。而本例中的场景特征是根据算法学习得到的。在对参数f的优化过程中,根据目标函数进行迭代求解,得到最优化结果可以使得重构误差最小。编码的信息量集中在f,e上。f的维度与帧子块的维度一致,f的个数可以预先设定,设定越少,编码信息少,但是重构残差e较大。f设定越多,编码信息大,但是重构残差e较小,故,需要通过权重参数权衡f的个数。

步骤1207:对场景特征进行预测编码,得到场景特征预测编码数据。

步骤1208:对重构残差进行预测编码,得到残差预测编码数据。

在编码设备的预测编码部分包括帧内预测编码及帧间预测编码两个部分。场景特征及重构误差采用帧内预测编码,镜头的剩余帧,即镜头的非关键帧采用帧间预测编码。帧内预测编码具体流程同hevc帧内编码模块类似。由于场景特征矩阵低秩,则只需对场景特征矩阵关键列进行编码。重构误差属于残差编码,编码数据量小,压缩比高。

步骤1209:根据场景特征、表示系数和重构残差进行重构,得到参考帧。

步骤1209的具体实现可参考步骤508。

步骤1210:以参考帧做参考,对b帧和p帧进行帧间预测编码,得到b帧预测编码数据和p帧预测编码数据。

步骤1210的具体实现可参考步骤509。

步骤1211:对预测编码数据进行变换编码、量化编码及熵编码,得到视频压缩数据。

预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据。

步骤1211的具体实现可参考步骤510。

类似于图5所示的实施例,图12所示的实施例基于hevc场景进行描述,但图12所示的视频编码方法还可以用于其它的场景。

综上所述,编码设备获取多个视频帧,该多个视频帧中的每一视频帧间在画面内容上包括冗余数据,尤其是多个视频帧中的每一视频帧相互之间在局部位置包括冗余数据。对此,编码设备对多个视频帧中的每一视频帧进行拆分,得到多个帧子块,然后,对多个帧子块进行重构,得到场景特征、多个帧子块中的每一帧子块的表示系数和每一帧子块的重构残差。其中,场景特征包括多个独立的场景特征基,在场景特征内独立的场景特征基间不能互相重构得到,场景特征基用于描述帧子块的画面内容特征,所示表示系数表示场景特征基和帧子块的对应关系,重构残差表示帧子块和场景特征基的差值。后续,对场景特征进行预测编码,得到场景特征预测编码数据,以及对重构残差进行预测编码,得到残差预测编码数据。

这样,通过重构,减少了局部位置包括的冗余数据的冗余度。从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

相应于图12所示的视频编码方法,图17示出了一种视频解码方法,参阅图17,本发明实施例的视频解码方法包括:

步骤1701:获取场景特征预测编码数据、残差预测编码数据和表示系数。

解码设备获取视频压缩数据,该视频压缩数据可为通过图12所示的实施例的视频编码方法得到的视频压缩数据。

具体来说,在hevc场景中,获取场景特征预测编码数据和残差预测编码数据,包括:获取视频压缩数据,然后,对视频压缩数据进行熵解码、反量化处理、dct反变化得到预测编码数据。其中,预测编码数据包括场景特征预测编码数据、残差预测编码数据、b帧预测编码数据和p帧预测编码数据;

步骤1702:对场景特征预测编码数据进行解码,得到场景特征。

场景特征包括多个独立的场景特征基,在场景特征内独立的场景特征基间不能互相重构得到,场景特征基用于描述帧子块的画面内容特征,所示表示系数表示场景特征基和帧子块的对应关系,重构残差表示帧子块和场景特征基的差值。

步骤1703:对残差预测编码数据进行解码,得到重构残差。

其中,重构残差用于表示视频帧和场景信息间的差值。

步骤1704:根据场景特征、表示系数和重构残差进行重构,得到多个帧子块。

对应于图12所示的视频编码方法得到的场景特征、表示系数和重构残差,本发明实施例的视频解码方法中根据场景特征、表示系数和重构残差进行重构可得到多个帧子块。其中,本发明实施例的方法可参考图4b,只是在解码得到场景特征后,要使用表示系数在场景特征中确定出需要的场景特征基,例如,使用场景特征f1*[c1、c3、c5]t后,再分别与重构残差e1、e3、e5进行重构,即可得到关键帧i1、i3、i5。c1、c3、c5分别为关键帧i1、i3、i5的表示系数。

步骤1705:对多个帧子块进行组合,得到多个视频帧。

步骤1704和步骤1705即为根据场景信息和重构残差进行重构,得到多个视频帧的步骤的具体实现方式。

例如,在hevc场景中,对多个帧子块进行组合,得到多个视频帧,为对多个帧子块进行组合,得到多个i帧。例如,解码过程中,首先根据解码过后的场景特征、表示系数及重构误差对每个子块进行重构,然后将子块按编号进行组合,得到最终关键帧内容。并且,本发明实施例的方法还包括:以i帧为参考帧,对b帧预测编码数据和p帧预测编码数据进行帧间解码,得到b帧和p帧。跟着,解码设备对i帧、b帧和p帧按时间顺序进行排列,得到视频流。

这样,在通过图12所示的实施例的视频编码方法得到压缩视频数据或者后,通过图17所示的实施例的视频解码方法可解码得到视频帧。

上述各个实施例中,获取执行重构操作的视频帧,举了从获取的视频流中提取视频帧和直接获取视频帧等实施例,在本发明的一些实施例中,该视频帧的获取还可以通过获取压缩的视频帧,然后对其解压后得到。

具体来说,步骤201可通过如下步骤实现:

步骤f1:获取压缩视频流。

其中,压缩视频流包括已压缩的视频帧。该压缩的视频流例如可以是经过hevc压缩的视频流。

步骤f2:从压缩视频流中确定出多个目标视频帧。

其中,目标视频帧在该压缩视频流中为独立压缩编码的视频帧。

步骤f3:对目标视频帧进行解码,得到解码后的目标视频帧。

该解码后的目标视频帧用于执行步骤202。

在本发明有的实施例中为了进一步减少该解码后的视频帧的冗余度,可以对这些视频帧进行分类操作,具体可以参考步骤504。

通过对在压缩视频流中独立压缩的视频帧执行本发明实施例的视频编码方法,可以提高这些视频帧的压缩效率,减少这些视频帧的压缩数据量。

例如,本发明实施例可对hevc压缩视频流进行二次压缩。具体来说,经过压缩视频判别、i帧抽取、帧内解码后,即可得到待用于执行本发明实施例的方法的i帧。例如,可在原来的视频编码设备的基础之上增加压缩视频判别、i帧抽取、帧内解码模块来实现本发明实施例的方法。

首先,根据视频流是否含有压缩视频码头信息判别该视频流是否被压缩。

然后,执行i帧抽取操作。由于hevc压缩视频采用层次的码流结构,根据码流层次结构在图像组层根据图像组头提取独立gop数据。然后,根据图像头对gop内每帧图像进行提取,gop组第一帧图像即为i帧,对该i帧即可进行提取。

跟着,因该i帧在hevc压缩视频中已被进行独立的压缩操作,具体如上文中对hecv标准进行的简要介绍所述,从而,解码设备对提取的i帧编码数据进行帧内解码,得到解码后的i帧,剩余编码及解码步骤可参考上文中的编码和解码操作。这样,即可实现在原有视频编码数据基础之上可以对压缩视频进行二次编解码。

由于本文发明所提方法可以对已有压缩视频数据进行二次编码及解码,且与传统hevc方法在变换编码、量化编码、熵编码等环节保持一致,因此,在进行本发明功能模块部署时,可以与原有视频压缩设备保持兼容。

可以理解,本发明实施例的方法也可以应用于其它的编码数据,按照上述的步骤提取并解码已被压缩的视频帧,然后再执行上述图2、图5和图12的视频编码方法的步骤。其中,针对非hevc视频编码数据,可以根据压缩过后的图像数据量大小进行i帧的判断,通常i帧编码数据要远远大于p帧及b帧编码数据。

图18a为本发明实施例提供的一种视频编码设备的结构示意图。图18b为图18a所示实施例提供的视频编码设备的局部结构示意图,该视频编码设备可用于执行上述各实施例中的视频编码方法,参阅图18a和图18b,该视频编码设备包括:获取模块1801、重构模块1802和预测编码模块1803。获取模块1801,用于执行上述各视频编码方法的实施例中涉及获取视频帧的处理过程。重构模块1802,用于执行上述各视频编码方法的实施例中涉及重构操作以减少冗余数据的冗余度的处理过程,例如步骤202、步骤505和步骤1206。预测编码模块1803,用于执行上述各视频编码方法的实施例中涉及预测编码的步骤,例如步骤203和步骤204。重构模块1802将获取模块1801获取到的多个视频帧进行重构操作后,得到场景信息和重构残差,以使得预测编码模块1803对场景信息和重构残差进行预测编码。

可选地,在获取模块1801和重构模块1802之间,该视频编码设备还包括度量特征提取模块1804、度量信息计算模块1805。

特征提取模块1804,用于执行上述各视频编码方法的实施例中涉及提取视频帧的画面特征信息的处理过程,例如步骤d1和e1。

度量信息计算模块1805,用于执行上述各视频编码方法的实施例中涉及计算得到内容度量信息的处理过程,例如步骤d2和e2。

可选地,该视频编码设备还包括:

参考帧重构模块1806,用于执行上述各视频编码方法的实施例中涉及重构参考帧的处理过程;

帧间预测编码模块1807,用于执行上述各视频编码方法的实施例中涉及帧间预测编码的处理过程;

编码模块1808,用于执行上述各视频编码方法的实施例中涉及变换编码、量化编码及熵编码的处理过程。

可选地,该重构模块1802还包括拆分单元1809和重构单元1810,重构单元1810可对拆分单元1809拆分得到的帧子块进行重构。

拆分单元1809,用于执行上述各视频编码方法的实施例中涉及拆分视频帧的处理过程,例如步骤1206。重构单元1810,用于执行上述各视频编码方法的实施例中涉及重构帧子块的处理过程,例如步骤1206;

其中,重构单元1810包括重构子单元1811和组合子单元1812。

重构子单元1811,用于执行上述各视频编码方法的实施例中涉及重构帧子块得到表示系数和重构残差的处理过程。

组合子单元1812,用于执行上述各视频编码方法的实施例中涉及组合目标帧子块的处理过程。

可选地,重构单元1810还可以包括子块重构子单元1813和子块计算子单元1814。

子块重构子单元1813,用于执行上述各视频编码方法的实施例中涉及重构帧子块得到场景特征和表示系数的处理过程,该场景特征包括的场景特征基为特征空间中的独立的特征块。

子块计算子单元1814,用于执行上述各视频编码方法的实施例中涉及计算重构残差处理过程。

可选地,该视频编码设备还包括分类模块1815,其用于执行上述各视频编码方法的实施例中涉及分类的处理过程。

可选地,分类模块1815包括特征提取单元1816、距离计算单元1817和聚类单元1818。

其中,特征提取单元1816,用于提取多个视频帧中的每一视频帧的特征信息;距离计算单元1817,用于执行上述各视频编码方法的实施例中涉及聚类距离的处理过程;聚类单元1818,用于执行上述各视频编码方法的实施例中涉及聚类的处理过程。

可选地,获取模块1801包括如下单元:

视频流获取单元1819,用于获取视频流;

帧特征提取单元1820,用于执行上述各视频编码方法的实施例中涉及提取第一视频帧和第二视频帧的特征信息的处理过程;

镜头距离计算单元1821,用于执行上述各视频编码方法的实施例中涉及镜头距离计算的处理过程;

镜头距离判断单元1822,用于判断镜头距离是否大于预设镜头阈值;

镜头分割单元1823,用于执行上述各视频编码方法的实施例中涉及分割出目标镜头的处理过程;

关键帧提取单元1824,用于执行上述各视频编码方法的实施例中涉及根据帧距离提取关键帧的处理过程。

可选地,视频编码设备还包括:

训练模块1825,用于根据从视频流中分割出的每一镜头进行判别训练,得到多个与镜头对应的分类器;

判别模块1826,用于使用目标分类器对目标视频帧进行判别,得到判别分数,

场景确定模块1827,用于当判别分数大于预设分数阈值时,确定目标视频帧与目标分类器所属的镜头属于同一场景;

分类簇确定模块1828,用于根据与镜头属于同一场景的视频帧,确定一个或多个分类簇的视频帧。

可选地,获取模块1801,包括:

压缩视频获取单元1829,用于获取压缩视频流,压缩视频流包括已压缩的视频帧;

帧确定单元1830,用于从压缩视频流中确定出目标视频帧,目标视频帧为独立压缩编码的视频帧;

解码单元1831,用于对目标视频帧进行解码,得到解码后的目标视频帧,解码后的目标视频帧用于执行对多个视频帧中的每一视频帧进行拆分,得到多个帧子块的步骤。

综上所述,获取模块1801获取多个视频帧,多个视频帧中的每一视频帧间在画面内容上包括冗余数据。然后,重构模块1802对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,其中,场景信息包括由减少冗余数据的冗余度得到的数据,重构残差用于表示视频帧和场景信息间的差值。跟着,预测编码模块1803,对场景信息进行预测编码,得到场景特征预测编码数据。预测编码模块1803对重构残差进行预测编码,得到残差预测编码数据。这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

图19为本发明实施例提供的一种视频解码设备的结构示意图。该视频解码设备可用于执行上述各实施例中的视频解码方法,参阅图19,该视频解码设备包括:获取模块1901、场景信息解码模块1902、重构残差解码模块1903和视频帧重构模块1904。场景信息解码模块1902和重构残差解码模块1903分别将获取模块1901获取的场景特征预测编码数据和残差预测编码数据进行解码操作,从而视频帧重构模块1904可使用解码得到的数据重构得到视频帧。

获取模块1901,用于执行上述各视频解码方法的实施例中涉及获取编码数据的处理过程,例如步骤205;

场景信息解码模块1902,用于执行上述各视频解码方法的实施例中涉及解码场景信息的处理过程,例如步骤206、步骤603;

重构残差解码模块1903,用于执行上述各视频解码方法的实施例中涉及解码重构残差的处理过程,例如步骤207;

视频帧重构模块1904,用于执行上述各视频解码方法的实施例中涉及重构得到多个视频帧的处理过程,例如步骤208、步骤604。

可选地,获取模块1901包括获取单元1905和解码单元1906,

获取单元1905,用于执行上述各视频解码方法的实施例中涉及获取视频压缩数据的处理过程,例如步骤601。

解码单元1906,用于执行上述各视频解码方法的实施例中涉及得到预测编码数据的处理过程,例如步骤602。

该视频解码设备还包括:帧间解码模块1907,用于执行上述各视频解码方法的实施例中涉及帧间解码的处理过程,例如步骤606;

排列模块1908,用于执行上述各视频解码方法的实施例中涉及帧排列的处理过程,例如步骤607。

可选地,获取模块1901,还用于获取表示系数。

该视频帧重构模块1904,包括重构单元1909和组合单元1910。

重构单元1909,用于执行上述各视频解码方法的实施例中涉及重构得到多个帧子块的处理过程,例如步骤1704。

组合单元1910,用于执行上述各视频解码方法的实施例中涉及组合帧子块的处理过程,例如步骤1705。

综上所述,获取模块1901获取场景特征预测编码数据和残差预测编码数据后,场景信息解码模块1902对场景特征预测编码数据进行解码,得到场景信息,其中,场景信息包括由减少冗余数据的冗余度得到的数据,冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据。跟着,重构残差解码模块1903对残差预测编码数据进行解码,得到重构残差,重构残差用于表示视频帧和场景信息间的差值。以及视频帧重构模块1904,用于根据场景信息和重构残差进行重构,得到多个视频帧。这样,对上述实施例中的视频编码设备编码得到的场景特征预测编码数据和残差预测编码数据使用本发明实施例的视频解码设备即可完成解码操作。

图20为本发明实施例提供的一种视频编解码设备的结构示意图。该视频编解码设备可用于执行上述各实施例中的视频编码方法和视频解码方法,参阅图20,视频编解码设备2000包括视频编码设备2001和视频解码设备2002,

其中,视频编码设备2001为上述图18a和图18b所示的实施例的视频编码设备;

视频解码设备2002为上述图19所示的实施例的视频解码设备。

下文将以硬件架构对本发明实施例提供的视频编码方法和视频解码方法进行说明,即下文的实施例中提供了一种视频编解码系统,该视频帧编解码系统包括视频编码器和视频解码器。

·系统架构

图21是根据本发明实施例的视频编解码系统10的示意性框图。如图21所示,视频编解码系统10包含源装置12及目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12产生的经编码视频数据。因此,目的地装置14可被称作视频解码装置或视频解码设备。源装置12及目的地装置14可为视频编解码装置或视频编解码设备的实例。源装置12及目的地装置14可包括广泛范围的装置,包含台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、智能电话等手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机,或其类似者。

目的地装置14可经由信道16接收来自源装置12的编码后的视频数据。信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一个或多个媒体及/或装置。在一个实例中,信道16可包括使源装置12能够实时地将编码后的视频数据直接发射到目的地装置14的一个或多个通信媒体。在此实例中,源装置12可根据通信标准(例如,无线通信协议)来调制编码后的视频数据,且可将调制后的视频数据发射到目的地装置14。所述一个或多个通信媒体可包含无线及/或有线通信媒体,例如射频(rf)频谱或一根或多根物理传输线。所述一个或多个通信媒体可形成基于包的网络(例如,局域网、广域网或全球网络(例如,因特网)的部分。所述一个或多个通信媒体可包含路由器、交换器、基站,或促进从源装置12到目的地装置14的通信的其它设备。

在另一实例中,信道16可包含存储由源装置12产生的编码后的视频数据的存储媒体。在此实例中,目的地装置14可经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地存取式数据存储媒体,例如蓝光光盘、dvd、cd-rom、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。

在另一实例中,信道16可包含文件服务器或存储由源装置12产生的编码后的视频数据的另一中间存储装置。在此实例中,目的地装置14可经由流式传输或下载来存取存储于文件服务器或其它中间存储装置处的编码后的视频数据。文件服务器可以是能够存储编码后的视频数据且将所述编码后的视频数据发射到目的地装置14的服务器类型。实例文件服务器包含web服务器(例如,用于网站)、文件传送协议(ftp)服务器、网络附加存储(nas)装置,及本地磁盘驱动器。

目的地装置14可经由标准数据连接(例如,因特网连接)来存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。

本发明的技术不限于无线应用场景,示例性的,可将所述技术应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统10可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。

在图21的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。视频源18可包含视频俘获装置(例如,视频相机)、含有先前俘获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,及/或用于产生视频数据的计算机图形系统,或上述视频数据源的组合。

视频编码器20可编码来自视频源18的视频数据。在一些实例中,源装置12经由输出接口22将编码后的视频数据直接发射到目的地装置14。编码后的视频数据还可存储于存储媒体或文件服务器上以供目的地装置14稍后存取以用于解码及/或播放。

在图21的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些实例中,输入接口28包含接收器及/或调制解调器。输入接口28可经由信道16接收编码后的视频数据。显示装置32可与目的地装置14整合或可在目的地装置14外部。一般来说,显示装置32显示解码后的视频数据。显示装置32可包括多种显示装置,例如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或其它类型的显示装置。

视频编码器20及视频解码器30可根据视频压缩标准(例如,高效率视频编解码h.265标准)而操作,且可遵照hevc测试模型(hm)。h.265标准的文本描述itu-th.265(v3)(04/2015)于2015年4月29号发布,可从http://handle.itu.int/11.1002/1000/12455下载,所述文件的全部内容以引用的方式并入本文中。

或者,视频编码器20及视频解码器30可根据其它专属或行业标准而操作,所述标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual,itu-th.264(还称为iso/iecmpeg-4avc),包含可分级视频编解码(svc)及多视图视频编解码(mvc)扩展。应理解,本发明的技术不限于任何特定编解码标准或技术。

此外,图21仅为实例且本发明的技术可应用于未必包含编码装置与解码装置之间的任何数据通信的视频编解码应用(例如,单侧的视频编码或视频解码)。在其它实例中,从本地存储器检索数据,经由网络流式传输数据,或以类似方式操作数据。编码装置可编码数据且将所述数据存储到存储器,及/或解码装置可从存储器检索数据且解码所述数据。在许多实例中,通过彼此不进行通信而仅编码数据到存储器及/或从存储器检索数据及解码数据的多个装置执行编码及解码。

视频编码器20及视频解码器30各自可实施为多种合适电路中的任一者,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、硬件或其任何组合。如果技术部分地或者全部以软件实施,则装置可将软件的指令存储于合适的非瞬时计算机可读存储媒体中,且可使用一个或多个处理器执行硬件中的指令以执行本发明的技术。可将前述各者中的任一者(包含硬件、软件、硬件与软件的组合等)视为一个或多个处理器。视频编码器20及视频解码器30中的每一者可包含于一个或多个编码器或解码器中,其中的任一者可整合为其它装置中的组合式编码器/解码器(编解码器(codec))的部分。

本发明大体上可指代视频编码器20将某一信息“用信号发送”到另一装置(例如,视频解码器30)。术语“用信号发送”大体上可指代语法元素及/或表示编码后的视频数据的传达。此传达可实时或近实时地发生。或者,此通信可在一时间跨度上发生,例如可在编码时以编码后得到的二进制数据将语法元素存储到计算机可读存储媒体时发生,所述语法元素在存储到此媒体之后接着可由解码装置在任何时间检索。

·分块模式

所述视频编码器20编码视频数据。视频数据可包括一个或多个图片。视频编码器20可产生码流,所述码流以比特流的形式包含了视频数据的编码信息。所述编码信息可以包含编码图片数据及相关联数据。相关联数据可包含序列参数集(sps)、图片参数集(pps)及其它语法结构。sps可含有应用于零个或多个序列的参数。pps可含有应用于零个或多个图片的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。

为产生图片的编码信息,视频编码器20可将图片分割成编码树型块(ctb)的栅格。在一些例子中,ctb可被称作“树型块”、“最大编码单元”(lcu)或“编码树型单元”。ctb不限于特定大小且可包含一个或多个编码单元(cu)。每一个ctb可以与图片内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个ctb可与一个亮度采样块及两个色度采样块相关联。图片的ctb可分成一个或多个条带。在一些实例中,每一个条带包含整数个数的ctb。作为编码图片的一部分,视频编码器20可产生所述图片的每一条带的编码信息,即编码所述条带内的ctb。为了编码ctb,视频编码器20可对与ctb相关联的像素块递归地执行四叉树分割,以将像素块分割成递减的像素块。所述较小的像素块可以和cu相关联。

·预测

视频编码器20可产生每一不再分割cu的一个或多个预测单元(pu)。cu的每一个pu可与cu的像素块内的不同像素块相关联。视频编码器20可针对cu的每一个pu产生预测性像素块。视频编码器20可使用帧内预测或帧间预测来产生pu的预测性像素块。如果视频编码器20使用帧内预测来产生pu的预测性像素块,则视频编码器20可基于与pu相关联的图片的解码后的像素来产生pu的预测性像素块。如果视频编码器20使用帧间预测来产生pu的预测性像素块,则视频编码器20可基于不同于与pu相关联的图片的一个或多个图片的解码后的像素来产生pu的预测性像素块。视频编码器20可基于cu的pu的预测性像素块来产生cu的残余像素块。cu的残余像素块可指示cu的pu的预测性像素块中的采样值与cu的初始像素块中的对应采样值之间的差。

·变换量化

视频编码器20可对cu的残余像素块执行递归四叉树分割以将cu的残余像素块分割成与cu的变换单元(tu)相关联的一个或多个较小残余像素块。因为与tu相关联的像素块中的像素各自对应一个亮度采样及两个色度采样,所以每一个tu可与一个亮度的残余采样块及两个色度的残余采样块相关联。视频编码器20可将一个或多个变换应用于与tu相关联的残余采样块以产生系数块(即,系数的块)。变换可以是dct变换或者它的变体。采用dct的变换矩阵,通过在水平和竖直方向应用一维变换计算二维变换,获得所述系数块。视频编码器20可对系数块中的每一个系数执行量化程序。量化一般指系数经量化以减少用以表示系数的数据量,从而提供进一步压缩的过程。

·熵编码

视频编码器20可产生表示量化后系数块中的系数的语法元素的集合。视频编码器20可将熵编码操作(例如,上下文自适应二进制算术译码(cabac)操作)应用于上述语法元素中的部分或者全部。为将cabac编码应用于语法元素,视频编码器20可将语法元素二进制化以形成包括一个或多个位(称作“二进位”)的二进制序列。视频编码器20可使用规则(regular)编码来编码二进位中的一部分,且可使用旁通(bypass)编码来编码二进位中的其它部分。

·编码端重建图像

除熵编码系数块的语法元素外,视频编码器20可将逆量化及逆变换应用于变换后的系数块,以从变换后的系数块重建残余采样块。视频编码器20可将重建后的残余采样块加到一个或多个预测性采样块的对应采样块,以产生重建后的采样块。通过重建每一色彩分量的采样块,视频编码器20可重建与tu相关联的像素块。以此方式重建cu的每一tu的像素块,直到cu的整个像素块重建完成。

·编码端滤波

在视频编码器20重建构cu的像素块之后,视频编码器20可执行消块滤波操作以减少与cu相关联的像素块的块效应。在视频编码器20执行消块滤波操作之后,视频编码器20可使用采样自适应偏移(sao)来修改图片的ctb的重建后的像素块。在执行这些操作之后,视频编码器20可将cu的重建后的像素块存储于解码图片缓冲器中以用于产生其它cu的预测性像素块。

·熵解码

视频解码器30可接收码流。所述码流以比特流的形式包含了由视频编码器20编码的视频数据的编码信息。视频解码器30可解析所述码流以从所述码流提取语法元素。当视频解码器30执行cabac解码时,视频解码器30可对部分二进位执行规则解码且可对其它部分的二进位执行旁通解码,码流中的二进位与语法元素具有映射关系,通过解析二进位获得语法元素。

·解码端重建图像

视频解码器30可基于从码流提取的语法元素来重建视频数据的图片。基于语法元素来重建视频数据的过程大体上与由视频编码器20执行以产生语法元素的过程互逆。举例来说,视频解码器30可基于与cu相关联的语法元素来产生cu的pu的预测性像素块。另外,视频解码器30可逆量化与cu的tu相关联的系数块。视频解码器30可对逆量化后的系数块执行逆变换以重建与cu的tu相关联的残余像素块。视频解码器30可基于预测性像素块及残余像素块来重建cu的像素块。

·解码端滤波

在视频解码器30重建cu的像素块之后,视频解码器30可执行消块滤波操作以减少与cu相关联的像素块的块效应。另外,基于一个或多个sao语法元素,视频解码器30可执行与视频编码器20相同的sao操作。在视频解码器30执行这些操作之后,视频解码器30可将cu的像素块存储于解码图片缓冲器中。解码图片缓冲器可提供用于后续运动补偿、帧内预测及显示装置呈现的参考图片。

·编码模块

图22为说明经配置以实施本发明的技术的实例视频编码器20的框图。应理解,图22是示例性的而不应视为限制如本发明广泛例证并描述的技术。如图22所示,视频编码器20包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重建单元112、滤波器单元113、解码图片缓冲器114及熵编码单元116。熵编码单元116包含规则cabac编解码引擎118及旁通编解码引擎120。预测处理单元100包含帧间预测处理单元121及帧内预测处理单元126。帧间预测处理单元121包含运动估计单元122及运动补偿单元124。在其它实例中,视频编码器20可包含更多、更少或不同的功能组件。

·预测模块

视频编码器20接收视频数据。为编码视频数据,视频编码器20可编码视频数据的每一图片的每一条带。作为编码条带的一部分,视频编码器20可编码所述条带中的每一ctb。作为编码ctb的一部分,预测处理单元100可对与ctb相关联的像素块执行四叉树分割,以将像素块分成递减的像素块。举例来说,预测处理单元100可将ctb的像素块分割成四个相等大小的子块,将子块中的一个或多个分割成四个相等大小的子子块,等等。

视频编码器20可编码图片中的ctb的cu以产生cu的编码信息。视频编码器20可根据折形扫描次序来编码ctb的cu。换句话说,视频编码器20可按左上cu、右上cu、左下cu及接着右下cu来编码所述cu。当视频编码器20编码分割后的cu时,视频编码器20可根据折形扫描次序来编码与分割后的cu的像素块的子块相关联的cu。

此外,预测处理单元100可在cu的一个或多个pu中分割cu的像素块。视频编码器20及视频解码器30可支持各种pu大小。假定特定cu的大小为2n×2n,视频编码器20及视频解码器30可支持2n×2n或n×n的pu大小以用于帧内预测,且支持2n×2n、2n×n、n×2n、n×n或类似大小的对称pu以用于帧间预测。视频编码器20及视频解码器30还可支持2n×nu、2n×nd、nl×2n及nr×2n的不对称pu以用于帧间预测。

帧间预测处理单元121可通过对cu的每一pu执行帧间预测而产生pu的预测性数据。pu的预测性数据可包含对应于pu的预测性像素块及pu的运动信息。条带可为i条带、p条带或b条带。帧间预测单元121可根据pu是在i条带、p条带还是b条带中而对cu的pu执行不同操作。在i条带中,所有pu执行帧内预测。

如果pu在p条带中,则运动估计单元122可搜索参考图片的列表(例如,“列表0”)中的参考图片以查找pu的参考块。pu的参考块可为最紧密地对应于pu的像素块的像素块。运动估计单元122可产生指示列表0中的含有pu的参考块的参考图片的参考图片索引,及指示pu的像素块与参考块之间的空间位移的运动向量。运动估计单元122可将参考图片索引及运动向量作为pu的运动信息而输出。运动补偿单元124可基于由pu的运动信息指示的参考块来产生pu的预测性像素块。

如果pu在b条带中,则运动估计单元122可对pu执行单向帧间预测或双向帧间预测。为对pu执行单向帧间预测,运动估计单元122可搜索第一参考图片列表(“列表0”)或第二参考图片列表(“列表1”)的参考图片以查找pu的参考块。运动估计单元122可将以下各者作为pu的运动信息而输出:指示含有参考块的参考图片的列表0或列表1中的位置的参考图片索引、指示pu的像素块与参考块之间的空间位移的运动向量,及指示参考图片是在列表0中还是在列表1中的预测方向指示符。为对pu执行双向帧间预测,运动估计单元122可搜索列表0中的参考图片以查找pu的参考块,且还可搜索列表1中的参考图片以查找pu的另一参考块。运动估计单元122可产生指示含有参考块的参考图片的列表0及列表1中的位置的参考图片索引。另外,运动估计单元122可产生指示参考块与pu的像素块之间的空间位移的运动向量。pu的运动信息可包含pu的参考图片索引及运动向量。运动补偿单元124可基于由pu的运动信息指示的参考块来产生pu的预测性像素块。

帧内预测处理单元126可通过对pu执行帧内预测而产生pu的预测性数据。pu的预测性数据可包含pu的预测性像素块及各种语法元素。帧内预测处理单元126可对i条带、p条带及b条带内的pu执行帧内预测。

为对pu执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式来产生pu的预测性数据的多个集合。为使用帧内预测模式来产生pu的预测性数据的集合,帧内预测处理单元126可在与帧内预测模式相关联的方向上跨越pu的采样块扩展来自相邻pu的采样块的采样。假定从左向右、从上而下的编码次序用于pu、cu及ctb,相邻pu可在pu的上方,在pu的右上方,在pu的左上方或在pu的左方。帧内预测处理单元126可使用包含不同数目的帧内预测模式,例如,33个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可取决于pu的像素块的大小。

预测处理单元100可从通过帧间预测处理单元121针对pu而产生的预测性数据或通过帧内预测处理单元126针对pu而产生的预测性数据当中选择cu的pu的预测性数据。在一些实例中,预测处理单元100基于预测性数据的集合的速率/失真量度来选择cu的pu的预测性数据。例如,使用拉格朗日代价函数来在编码模式及其参数值(比如运动矢量、参考索引和帧内预测方向)之间进行选择。这一种类的代价函数使用加权因子lambda将由于有损编码方法所致的实际的或者估计的图像失真与为了表示在图像区域中的像素值而需要的实际的或估计的信息量联系在一起:c=d+lambda×r,其中c是待最小化的拉格朗日代价,d是具有模式及其参数的图像失真(例如均方误差),r是为了在解码器中重构图像块而需要的比特数(例如包括用于表示候选运动矢量的数据量)。一般的,代价最小的编码模式被选定作为实际编码模式。选定预测性数据的预测性像素块在本文中可被称作选定预测性像素块。

残余产生单元102可基于cu的像素块及cu的pu的选定预测性像素块来产生cu的残余像素块。举例来说,残余产生单元102可产生cu的残余像素块,使得残余像素块中的每一采样具有等于以下两者之间的差的值:cu的像素块中的采样,及cu的pu的选定预测性像素块中的对应采样。

预测处理单元100可执行四叉树分割以将cu的残余像素块分割成子块。每一不再划分的残余像素块可与cu的不同tu相关联。与cu的tu相关联的残余像素块的大小及位置与基于cu的pu的像素块的大小及位置没有必然联系。

·变换模块

因为tu的残余像素块的像素可对应一个亮度采样及两个色度采样,所以每一个tu可与一个亮度采样块及两个色度采样块相关联。变换处理单元104可通过将一个或多个变换应用于与tu相关联的残余采样块而产生cu的每一个tu的系数块。举例来说,变换处理单元104可将离散余弦变换(dct)、方向性变换或概念上类似的变换应用于残余采样块。

·量化模块

量化单元106可量化系数块中的系数。举例来说,n位系数可在量化期间舍位到m位系数,其中n大于m。量化单元106可基于与cu相关联的量化参数(qp)值来量化与cu的tu相关联的系数块。视频编码器20可通过调整与cu相关联的qp值来调整应用于与cu相关联的系数块的量化程度。

·编码重建模块(逆变换量化)

逆量化单元108及逆变换处理单元110可分别将逆量化及逆变换应用于变换后的系数块以从系数块重建残余采样块。重建单元112可将重建后的残余采样块的采样加到预测处理单元100产生的一个或多个预测性采样块的对应采样,以产生与tu相关联的重建后的采样块。通过此方式重建cu的每一个tu的采样块,视频编码器20可重建cu的像素块。

·滤波模块

滤波器单元113可执行消块滤波操作以减少与cu相关联的像素块的块效应。此外,滤波器单元113可将由预测处理单元100确定的sao偏移应用于重建后的采样块以恢复像素块。滤波器单元113可产生ctb的sao语法元素的编码信息。

·参考图像模块

解码图片缓冲器114可存储重建后的像素块。帧间预测单元121可使用含有重建后的像素块的参考图片来对其它图片的pu执行帧间预测。另外,帧内预测处理单元126可使用解码图片缓冲器114中的重建后的像素块来对在与cu相同的图片中的其它pu执行帧内预测。

·熵编码模块

熵编码单元116可接收来自视频编码器20的其它功能组件的数据。举例来说,熵编码单元116可接收来自量化单元106的系数块且可接收来自预测处理单元100的语法元素。熵编码单元116可对数据执行一个或多个熵编码操作以产生熵编码后的数据。举例来说,熵编码单元116可对数据执行上下文自适应可变长度编解码(cavlc)操作、cabac操作、可变到可变(v2v)长度编解码操作、基于语法的上下文自适应二进制算术编解码(sbac)操作、机率区间分割熵(pipe)编解码操作,或其它类型的熵编码操作。在一特定实例中,熵编码单元116可使用规则cabac引擎118来编码语法元素的经规则cabac编解码二进位,且可使用旁通编解码引擎120来编码经旁通编解码二进位。

·解码模块

图23为说明经配置以实施本发明的技术的实例视频解码器30的框图。应理解,图23是示例性的而不应视为限制如本发明广泛例证并描述的技术。如图23所示,视频解码器30包含熵解码单元150、预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158、滤波器单元159及解码图片缓冲器160。预测处理单元152包含运动补偿单元162及帧内预测处理单元164。熵解码单元150包含规则cabac编解码引擎166及旁通编解码引擎168。在其它实例中,视频解码器30可包含更多、更少或不同的功能组件。

视频解码器30可接收码流。熵解码单元150可解析所述码流以从所述码流提取语法元素。作为解析码流的一部分,熵解码单元150可解析码流中的经熵编码后的语法元素。预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158及滤波器单元159可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。

·熵解码模块

语法元素可包含经规则cabac编解码二进位及经旁通编解码二进位。熵解码单元150可使用规则cabac编解码引擎166来解码经规则cabac编解码二进位,且可使用旁通编解码引擎168来解码经旁通编解码二进位。

·预测模块

如果pu使用帧内预测编码,则帧内预测处理单元164可执行帧内预测以产生pu的预测性采样块。帧内预测处理单元164可使用帧内预测模式以基于空间相邻pu的像素块来产生pu的预测性像素块。帧内预测处理单元164可根据从码流解析的一个或多个语法元素来确定pu的帧内预测模式。

运动补偿单元162可根据从码流解析的语法元素来构造第一参考图片列表(列表0)及第二参考图片列表(列表1)。此外,如果pu使用帧间预测编码,则熵解码单元150可解析pu的运动信息。运动补偿单元162可根据pu的运动信息来确定pu的一个或多个参考块。运动补偿单元162可根据pu的一个或多个参考块来产生pu的预测性像素块。

·解码重建模块(逆变换量化)

另外,视频解码器30可对不再分割的cu执行重建操作。为对不再分割的cu执行重建操作,视频解码器30可对cu的每一tu执行重建操作。通过对cu的每一tu执行重建操作,视频解码器30可重建与cu相关联的残余像素块。

作为对cu的tu执行重建操作的一部分,逆量化单元154可逆量化(即,解量化)与tu相关联的系数块。逆量化单元154可使用与tu的cu相关联的qp值来确定量化程度,且与确定逆量化单元154将应用的逆量化程度相同。

在逆量化单元154逆量化系数块之后,逆变换处理单元156可将一个或多个逆变换应用于系数块,以便产生与tu相关联的残余采样块。举例来说,逆变换处理单元156可将逆dct、逆整数变换、逆卡忽南-拉维(karhunen-loeve)变换(klt)、逆旋转变换、逆方向性变换或其它与编码端的变换对应的逆变换应用于系数块。

重建单元158可在适用时使用与cu的tu相关联的残余像素块及cu的pu的预测性像素块(即,帧内预测数据或帧间预测数据)以重建cu的像素块。特定来说,重建单元158可将残余像素块的采样加到预测性像素块的对应采样以重建cu的像素块。

·滤波模块

滤波器单元159可执行消块滤波操作以减少与ctb的cu相关联的像素块的块效应。另外,滤波器单元159可根据从码流解析的sao语法元素来修改ctb的像素值。举例来说,滤波器单元159可根据ctb的sao语法元素来确定修正值,且将所确定的修正值加到ctb的重建后的像素块中的采样值。通过修改图片的ctb的部分或全部像素值,滤波器单元159可根据sao语法元素来修正视频数据的重建图片。

参考图像模块

视频解码器30可将cu的像素块存储于解码图片缓冲器160中。解码图片缓冲器160可提供参考图片以用于后续运动补偿、帧内预测及显示装置(例如,图21的显示装置32)呈现。举例来说,视频解码器30可根据解码图片缓冲器160中的像素块来对其它cu的pu执行帧内预测操作或帧间预测操作。

本发明实施例的视频编码器可用于执行上述各实施例的视频编码方法,也可将图18a和图18b所示的视频编码设备的各功能模块集成在本发明实施例的视频编码器20上。例如,该视频编码器可用于执行上述的图2、图5或图12所示的实施例的视频编码方法。

这样,视频编码器20获取多个视频帧,多个视频帧中的每一视频帧间在画面内容上包括冗余数据。然后,视频编码器20对多个视频帧进行重构,得到场景信息和每一视频帧的重构残差,其中,场景信息包括冗余数据减少冗余度后的数据,重构残差用于表示视频帧和场景信息间的差值。跟着,视频编码器20对场景信息进行预测编码,得到场景特征预测编码数据。视频编码器20对重构残差进行预测编码,得到残差预测编码数据。这样,通过对该多个视频帧进行重构的处理,可以减少这些视频帧的冗余度,从而在编码操作中,得到的场景特征和重构残差总体的压缩数据量相对于原来的视频帧的压缩数据量得到了缩减,减少了压缩后得到的数据量。而将每一视频帧重构为场景特征和重构残差,因重构残差包含除场景信息外的残差信息,因此信息量少且稀疏,该特性在进行预测编码时,可以通过较少的码字对其进行预测编码,编码数据量小,压缩比高。这样,本发明实施例的方法可有效提高视频帧的压缩效率。

在本发明有的实施例中,还提供了一种视频解码器,该视频解码器可用于执行上述各实施例的视频解码方法,也可将图19所示的视频解码设备的各功能模块集成在本发明实施例的视频解码器30上。例如,该视频解码器30可用于执行上述的图2、图6或图17所示实施例的视频解码方法。

这样,视频解码器30获取场景特征预测编码数据和残差预测编码数据后,视频解码器30对场景特征预测编码数据进行解码,得到场景信息,其中,场景信息包括冗余数据减少冗余度后的数据,冗余数据为多个视频帧中的每一视频帧间在画面内容上的冗余数据。跟着,视频解码器30对残差预测编码数据进行解码,得到重构残差,重构残差用于表示视频帧和场景信息间的差值。以及视频解码器30,用于根据场景信息和重构残差进行重构,得到多个视频帧。这样,对上述实施例中的视频编码设备编码得到的场景特征预测编码数据和残差预测编码数据使用本发明实施例的视频解码设备即可完成解码操作。

在一个或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,则功能可作为一个或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体而发送,且通过基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体等有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)非瞬时的有形计算机可读存储媒体,或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一个或多个计算机或一个或多个处理器存取以检索指令、代码及/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。

通过实例而非限制,某些计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。而且,任何连接可适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字用户线(dsl)或无线技术(例如,红外线、无线电及微波)而从网站、服务器或其它远程源发送指令,则同轴电缆、光缆、双绞线、dsl或无线技术(例如,红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是有关非瞬时有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字影音光盘(dvd)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘通过激光以光学方式复制数据。以上各物的组合还应包含于计算机可读媒体的范围内。

可由例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指代前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。而且,所述技术可完全实施于一个或多个电路或逻辑元件中。

本发明的技术可以广泛地由多种装置或设备来实施,所述装置或设备包含无线手持机、集成电路(ic)或ic集合(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求通过不同硬件单元来实现。确切地说,如上文所描述,各种单元可组合于编解码器硬件单元中,或通过交互操作性硬件单元(包含如上文所描述的一个或多个处理器)的集合结合合适软件及/或固件来提供。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

另外,本文中术语“系统”和“网络”在本文中常可互换使用。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请所提供的实施例中,应理解,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1