视频编码方法和装置、视频解码方法和装置与流程

文档序号:11237008阅读:508来源:国知局
视频编码方法和装置、视频解码方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种视频编码方法和装置、视频解码方法和装置。



背景技术:

随着数字媒体技术和计算机技术的发展,视频应用于各个领域,如移动通信、网络监控、网络电视等。随着硬件性能和屏幕分辨率的提高,用户对高清视频的需求日益强烈。

在移动带宽有限的条件下,现有的编码器对视频帧采用相同分辨率进行编码,可能出现某些场景视频质量差的问题,如在750kbps时,对于运动剧烈的场景,采用高分辨率编码主观质量低,分析h.264\h.265\ios等编码器都存在相似问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种视频编码方法和装置、视频解码方法和装置,能够针对不同场景,自适应的选择合适的分辨率进行编码,以提高带宽有限条件下的视频质量。

一种视频编码方法,所述方法包括:

获取待编码视频帧,根据所述待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,所述可选编码模式包括全分辨率模式和下采样模式;

将所述待编码视频帧根据当前编码模式处理得到当前编码视频帧,当所述当前编码模式为下采样模式时,对所述待编码视频帧进行下采样得到当前编码视频帧,当所述当前编码模式为全分辨率模式时,将所述待编码视频帧确定为当前编码视频帧;

当所述当前编码视频帧为帧间编码帧时,获取所述当前编码视频帧对应的当前参考帧,根据所述当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体为:判断所述当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将所述当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;

根据所述处理参考帧对所述当前编码视频帧进行编码得到第一编码数据,所述第一编码数据中携带当前编码模式信息。

一种视频编码装置,所述装置包括:

编码模式确定模块,用于获取待编码视频帧,根据所述待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,所述可选编码模式包括全分辨率模式和下采样模式;

前处理模块,用于将所述待编码视频帧根据当前编码模式处理得到当前编码视频帧,当所述当前编码模式为下采样模式时,对所述待编码视频帧进行下采样得到当前编码视频帧,当所述当前编码模式为全分辨率模式时,将所述待编码视频帧确定为当前编码视频帧;

编码处理参考帧确定模块,用于当所述当前编码视频帧为帧间编码帧时,获取所述当前编码视频帧对应的当前参考帧,根据所述当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体为:判断所述当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将所述当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;

帧间编码模块,用于根据所述处理参考帧对所述当前编码视频帧进行编码得到第一编码数据,所述第一编码数据中携带当前编码模式信息。

上述视频编码方法和装置,通过获取待编码视频帧,根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,可选编码模式包括全分辨率模式和下采样模式,将待编码视频帧根据当前编码模式处理得到当前编码视频帧,当当前编码模式为下采样模式时,对待编码视频帧进行下采样得到当前编码视频帧,当当前编码模式为全分辨率模式时,将待编码视频帧确定为当前编码视频帧,当所述当前编码视频帧为帧间编码帧时,获取当前编码视频帧对应的当前参考帧,根据当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体为:判断当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;根据处理参考帧对当前编码视频帧进行编码得到第一编码数据,第一编码数据中携带当前编码模式信息,根据待编码视频帧的当前编码信息和/或图像特征信息可自适应的确定待编码视频帧的编码模式,从而能够针对不同场景,自适应的选择合适的分辨率进行编码,通过下采样编码自适应的减小空域信息,从而能够针对不同场景,以提高带宽有限条件下的视频质量,且根据当前参考帧与当前编码视频帧分辨率的大小,调整当前参考帧分辨率,即使当前参考帧与当前编码视频帧分辨率不同,也可作为参考帧,提高了参考帧的使用效率,从而可提高帧间预测的准确度,减小预测残差,提高编码图像的质量。

一种视频解码方法,所述方法包括:

获取编码数据,所述编码数据对应的每个编码视频帧携带当前编码模式信息;

根据所述当前编码模式信息确定当前解码视频帧对应的当前解码模式;

当所述当前解码视频帧为帧间编码帧时,获取所述当前解码视频帧对应的当前参考帧,根据所述当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断所述当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将所述当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;

根据所述处理参考帧对当前解码视频帧进行解码得到重建视频帧;

将所述重建视频帧根据所述当前解码模式处理得到解码视频帧,如果所述当前解码模式为下采样模式,则对所述重建视频帧进行上采样得到解码视频帧,如果所述当前编码模式信息为全采样模式,则将所述重建视频帧确定为解码视频帧。

一种视频解码装置,所述装置包括:

解码模式确定模块,用于获取编码数据,所述编码数据对应的每个编码视频帧携带当前编码模式信息,根据所述当前编码模式信息确定当前解码视频帧对应的当前解码模式;

解码处理参考帧确定模块,用于当所述当前解码视频帧为帧间编码帧时,获取所述当前解码视频帧对应的当前参考帧,根据所述当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断所述当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将所述当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;

重建模块,用于根据所述处理参考帧对当前解码视频帧进行解码得到重建视频帧;

解码视频帧确定模块,用于将所述重建视频帧根据所述当前解码模式处理得到解码视频帧,如果所述当前解码模式为下采样模式,则对所述重建视频帧进行上采样得到解码视频帧,如果所述当前编码模式信息为全采样模式,则将所述重建视频帧确定为解码视频帧。

上述视频解码方法和装置,通过获取编码数据,编码数据对应的每个编码视频帧携带当前编码模式信息,根据当前编码模式信息确定当前解码视频帧对应的当前解码模式,当所述当前解码视频帧为帧间编码帧时,获取当前解码视频帧对应的当前参考帧,根据当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧,根据处理参考帧对当前解码视频帧进行解码得到重建视频帧,将重建视频帧根据当前解码模式处理得到解码视频帧,如果当前解码模式为下采样模式,则对重建视频帧进行上采样得到解码视频帧,如果当前编码模式信息为全采样模式,则将重建视频帧确定为解码视频帧,针对采用自适应变化模式编码的码流,可自适应调整参考帧分辨率,进行解码,自适应变化模式编码的码流是针对不同场景选择合适的分辨率进行编码的码流,从而提供对高质量图像质量码流的解码支持。

附图说明

图1为一个实施例中视频编码方法和视频解码方法的应用环境图;

图2为一个实施例中图1中终端的内部结构图;

图3为一个实施例中图1中服务器的内部结构图;

图4为一个实施例中视频编码方法的流程图;

图5为一个实施例中根据量化参数确定当前编码模式的流程图;

图6为一个实施例中根据码率确定当前编码模式的流程图;

图7为一个实施例中根据图像特征信息确定当前编码模式的流程图;

图8为另一个实施例中确定当前编码模式的流程图;

图9为再一个实施例中确定当前编码模式的流程图;

图10为一个实施例中视频解码方法的流程图;

图11为一个实施例中编解码框架示意图;

图12为一个实施例中下采样模式编码流程示意图;

图13为一个实施例中视频编码装置的结构框图;

图14为一个实施例中编码模式确定模块的结构框图;

图15为另一个实施例中视频编码装置的结构框图;

图16为一个实施例中编码处理参考帧确定模块的结构框图;

图17为一个实施例中视频解码装置的结构框图。

具体实施方式

图1为一个实施例中视频编码方法、视频解码方法运行的应用环境图。如图1所示,该应用环境包括终端110和服务器120,其中终端110、服务器120通过网络进行通信。

终端110,可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。视频编码方法、视频解码方法可以在终端110或服务器120中完成,终端110可将待编码视频帧采用视频编码方法进行自适应分辨率编码后发送至服务器120,也可从服务器120接收自适应分辨率的编码数据并采用视频解码方法进行解码后生成解码视频帧。服务器120可以对码流存储时进行转码,此时视频编码方法在服务器完成,如果服务器120需要对码流进行解码,则视频解码方法在服务器完成。

在一个实施例中,图1中的终端110的内部结构如图2所示,该终端110包括通过系统总线连接的处理器、图形处理单元、存储介质、内存、网络接口、显示屏幕和输入设备。其中,终端110的存储介质存储有操作系统,还包括视频编码装置和/或视频解码装置,该装置用于实现一种适用于终端的视频编码方法和/或视频解码方法。该处理器用于提供计算和控制能力,支撑整个终端110的运行。终端110中的图形处理单元用于至少提供显示界面的绘制能力,内存为存储介质中的视频编码装置和/或视频解码装置的运行提供环境,网络接口用于与服务器120进行网络通信。显示屏幕用于显示应用界面等,如解码视频,输入设备用于接收用户输入的命令或数据等。对于带触摸屏的终端110,显示屏幕和输入设备可为触摸屏。图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端或服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,图1中的服务器120的内部结构如图3所示,该服务器120包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器120的存储介质存储有操作系统、数据库、视频编码装置和/或视频解码装置,数据库用于存储数据,视频编码装置和/或视频解码装置用于实现一种适用于服务器120的视频编码方法和/或视频解码方法。该服务器120的处理器用于提供计算和控制能力,支撑整个服务器120的运行。该服务器120的内存为存储介质中的视频编码装置和/或视频解码装置的运行提供环境。该服务器120的网络接口用于与外部的终端110通过网络连接通信。图2和图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端或服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,如图4所示,提供了一种视频编码方法,以应用于上述应用环境中的终端或服务器来举例说明,包括以下步骤:

步骤s210,获取待编码视频帧,根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,可选编码模式包括全分辨率模式和下采样模式。

具体的,待编码视频帧可以是实时采集的视频帧,用于即时通信,也可以是存储的视频对应的视频帧。视频的当前编码信息是指视频在编码时得到的视频压缩参数信息,如帧预测类型、运动向量、量化参数、视频来源、码率、帧率、分辨率等。其中帧预测类型包括帧内预测,如i帧,前向帧间预测,如p帧,双向帧间预测,如b帧。图像特征信息是指与图像内容相关的信息,包括图像运动信息、图像纹理信息,如边缘等。根据当前编码信息和/或图像特征信息确定待编码视频帧对应的当前编码模式,可为全采样模式或下采样模式。下采样模式是指对待编码视频帧进行下采样后再进行编码,下采样的算法可根据需要自定义,包括垂直下采样、水平下采样、垂直和水平下采样,可采用直接平均、滤波器、bicubicinterpolation双三次插值、bilinearinterpolation双线性插值等算法进行下采样,全采样模式是指直接对待编码视频帧进行编码。

当前编码信息和/或图像特征信息反映了视频帧对应的场景、细节复杂度、运动剧烈程度等,如通过运动向量、量化参数、码率等可判断运动场景,量化参数大则一般运动剧烈,运动向量大则代表图像场景是大运动场景。还可根据已编码i帧与p帧或已编码i帧与b帧的码率比值判断,如果比值超过第一预设阈值,则判断为静止图像,如果比值小于第二预设阈值,则可判断为运动剧烈图像。或直接根据图像内容跟踪目标对象,根据目标对象的运动速度确定是否为大运动场景。码率一定时能表达的信息量一定,对于运动剧烈的场景,时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样模式进行编码。

通过帧预测类型可确定画面切换场景,也可根据帧预测类型对其它帧的影响确定倾向于的编码模式。如i帧一般为首帧或存在画面切换,i帧的质量影响了后续p帧或b帧的质量,所以帧内预测帧相比于帧间预测帧更倾向于选择全分辨率编码,以保证图像质量。因为p帧可作为b帧的参考帧,p帧图像质量影响了后续b帧的图像质量,所以如果采用p帧编码则相比于采用b帧编码更倾向于选择全分辨率编码。

通过图像特征信息,如图像纹理信息确定待编码视频帧的纹理复杂度,如果纹理复杂,包含的细节多,则图像空域信息多,如果进行下采样,可能由于下采样损失较多细节信息,影响视频质量,所以纹理复杂的待编码视频帧相比于纹理简单的待编码视频帧更倾向于选择全分辨率编码。

根据以上的各种编码模式选择规则,可根据当前编码信息和/或图像特征信息中的一种或多种信息,从可选编码模式中确定当前编码模式,当考虑多种信息时,可将多种信息进行综合加权,并结合每种信息对应的编码模式选择规则确定最终的当前编码模式。

步骤s220,将待编码视频帧根据当前编码模式处理得到当前编码视频帧,当所述当前编码模式为下采样模式时,对待编码视频帧进行下采样得到当前编码视频帧,当所述当前编码模式为全采样模式时,将待编码视频帧确定为当前编码视频帧。

具体的,下采样的算法可根据需要自定义,包括垂直下采样、水平下采样、垂直和水平下采样。具体方向上进行的采样的参数可根据需要自定义,在一个具体的实施例中,对待编码视频帧进行水平1/2下采样,采样后图像的宽度为原始视频帧的一半,对待编码视频帧进行垂直1/2下采样,采样后图像的高度为原始视频帧的一半。如果当前编码模式为全采样模式,则不需要对待编码视频帧进行采样,直接作为当前编码视频帧。如果下采样得到的图像宽度、高度不是最大编码块的整倍数,则需要将图像进行像素扩展为最大编码块的整倍数。

步骤s230,当所述当前编码视频帧为帧间编码帧时,获取当前编码视频帧对应的当前参考帧,根据所述当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体为:判断当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则进入步骤s240。

具体的,当前编码视频帧对应的当前参考帧根据帧间预测类型的不同,可为前向参考帧或双向参考帧,其中参考帧的个数可为一个或多个。当前参考帧如果与当前编码视频帧分辨率相同,则可直接将当前参考帧确定为处理参考帧。

在一个实施例中,当所述当前编码视频帧为帧内编码帧时,直接进行帧内编码等得到第二编码数据,所述第二编码数据中携带当前编码模式信息。

具体的,当前编码视频帧进行帧内预测得到帧内预测残差,并对帧内预测残差进行变换、量化、熵编码等得到第二编码数据。编码过程中为了提高预测模式选择速度,可以采用快速模式选择算法,为了达到目标码率,根据码率控制算法设定量化参数。编码后得到第二编码数据,第二编码数据中携带当前编码模式信息,即在码流中还加入标志位,标志位描述当前编码视频帧采用全分辨率编码还是下采样编码。帧内编码帧也可为下采样编码模式,可有效避免i帧码率过大导致的丢包问题。

步骤s240,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧。

具体的,预设采样规则可根据需要自定义,可与当前编码视频帧的分辨率、参考帧与当前编码视频帧的距离相关。如当当前参考帧与当前编码视频帧的距离d超过预设阈值时,采用1/m下采样,否则采用1/n下采样,其中m<n。因为距离较远的当前参考帧可能参考价值小于距离较近的当前参考帧,从而对于距离较远的当前参考帧即使与当前编码视频帧的分辨率不同,也可不对其进行采样,或使得其采样后的分辨率变化较小,从而加快采样速度,进而提高整个编码速度。在一个实施例中m的值随着距离d变化,进一步提高采样参数的灵活性。

步骤s250,根据处理参考帧对当前编码视频帧进行编码得到第一编码数据,所述第一编码数据中携带当前编码模式信息。

具体的,通过处理参考帧进行预测得到预测残差,并对预测残差进行变换、量化、熵编码等得到编码数据。编码过程中为了提高预测模式选择速度,可以采用快速模式选择算法,为了达到目标码率,根据码率控制算法设定量化参数。编码后得到编码数据,编码数据中携带当前编码模式信息,即在码流中还加入标志位,标志位描述当前编码视频帧采用全分辨率编码还是下采样编码。

在一个实施例中,如果当前参考帧与当前编码视频帧分辨率不相同,则对当前参考帧进行采样得到与当前编码视频帧分辨率相同的处理参考帧,其中对当前参考帧进行采样包括上采样和下采样,如果当前参考帧的分辨率大于当前编码视频帧分辨率,则对当前参考帧进行下采样得到处理参考帧,如果当前参考帧的分辨率小于当前编码视频帧分辨率,则对当前参考帧进行上采样得到处理参考帧。在一个实施例中如果当前参考帧的个数为多个,则分别对每个当前参考帧根据当前参考帧分辨率与当前编码视频帧分辨率进行采样得到与当前编码视频帧分辨率相同的处理参考帧。

具体的,处理参考帧分辨率与当前编码视频帧分辨率相同,可一定程度上提高处理参考帧与当前编码视频帧的图像匹配度,从而提高帧间预测的准确度,减小预测残差,提高编码图像的质量。

在一个实施例中对当前参考帧进行采样的采样算法与步骤s220中对待编码视频帧进行下采样得到当前编码视频帧的采样算法匹配,即如果对当前参考帧进行下采样,则下采样算法与步骤s220中对待编码视频帧进行下采样得到当前编码视频帧的下采样算法相同。如果对当前参考帧进行上采样,则上采样算法与步骤s220中对待编码视频帧进行下采样得到当前编码视频帧的下采样算法为匹配的相反的采样算法。

具体的,对当前参考帧进行采样的采样算法与对待编码视频帧进行下采样得到当前编码视频帧的采样算法匹配,可进一步提高当前参考帧与当前编码视频帧的图像匹配度,进一步提高帧间预测的准确度,减小预测残差,提高编码图像的质量。

本实施例中,通过获取待编码视频帧,根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,可选编码模式包括全分辨率模式和下采样模式,将待编码视频帧根据当前编码模式处理得到当前编码视频帧,当当前编码模式为下采样模式时,对待编码视频帧进行下采样得到当前编码视频帧,当当前编码模式为全分辨率模式时,将待编码视频帧确定为当前编码视频帧,当所述当前编码视频帧为帧间编码帧时,获取当前编码视频帧对应的当前参考帧,根据当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体为:判断当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对所述当前参考帧根据预设采样规则进行采样得到对应的处理参考帧;根据处理参考帧对当前编码视频帧进行编码得到第一编码数据,第一编码数据中携带当前编码模式信息,根据待编码视频帧的当前编码信息和/或图像特征信息可自适应的确定待编码视频帧的编码模式,从而能够针对不同场景,自适应的选择合适的分辨率进行编码,通过下采样编码自适应的减小空域信息,从而能够针对不同场景,以提高带宽有限条件下的视频质量,且根据当前参考帧与当前编码视频帧分辨率的大小,调整当前参考帧分辨率,即使当前参考帧与当前编码视频帧分辨率不同,也可作为参考帧,提高了参考帧的使用效率,从而可提高帧间预测的准确度,减小预测残差,提高编码图像的质量。

在一个实施例中,当前编码信息包括量化参数信息,如图5所示,步骤s210中根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式的步骤包括:

步骤s211,获取待编码视频帧对应的当前量化参数。

具体的,对于码率没有严格要求的场景,可在编码前为每个待编码视频帧分配粗粒度的量化参数,如一帧对应一个量化参数,对于此种情况,可方便快速的获取当前量化参数,或一帧分为不同的条带slice,每个条带对应一个量化参数,对于此种情况,可根据各个条带对应的量化参数计算当前量化参数,如将各个条带对应的量化参数的均值或中值作为当前量化参数。对于对码率有严格要求的场景,在编码时为每个待编码视频帧以宏块为单位分配细粒度的量化参数,每个对应的量化参数可在基准量化参数的附近进行调整,或将基准量化参数作为当前量化参数或计算各个宏块对应的均值或中值作为当前量化参数。

步骤s212,获取待编码视频帧的帧预测类型,获取与帧预测类型对应的量化参数阈值,如果当前量化参数大于量化参数阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

具体的,根据编码模式确定规则,一般帧内预测帧相比于帧间预测帧更倾向于选择全分辨率编码,p帧编码则相比于采用b帧编码更倾向于选择全分辨率编码,所以设置i帧量化参数阈值大于或等于p帧量化参数阈值,p帧量化参数阈值大于或等于b帧量化参数阈值,只有当前量化参数大于量化参数阈值,才确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。当前量化参数越大一般运动越剧烈,对于运动剧烈的场景更倾向于选择下采样模式进行编码。

本实施例中,将不同帧预测类型与量化参数通过不同的量化参数阈值进行结合来确定待编码视频帧的当前编码模式,能提高当前编码模式确定的准确性。

在一个实施例中,当前编码信息包括码率信息,如图6所示,步骤s210中根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式的步骤包括:

步骤s213,获取待编码视频帧对应的当前目标码率。

具体的,对于码率有严格要求的场景,可根据码流的目标码率计算分配每一帧对应的帧目标码率,且每一帧对应的帧目标码率可根据历史实际编码码率进行调节,可通过码率分配算法计算得到待编码视频帧对应的当前目标码率。

步骤s214,获取待编码视频帧的帧预测类型,获取与帧预测类型对应的码率阈值,如果当前目标码率大于码率阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

具体的,根据编码模式确定规则,一般帧内预测帧相比于帧间预测帧更倾向于选择全分辨率编码,且i帧只采用帧内编码,一般码率较大且分配的目标码率也较大,p帧编码相比于采用b帧编码更倾向于选择全分辨率编码,且p帧和b帧由于可参考其它帧进行编码,一般相比于帧内预测帧分配较少的目标码率。所以设置i帧码率阈值大于p帧码率阈值,p帧码率阈值大于或等于b帧码率阈值。如果当前目标码率大于码率阈值,则确定当前编码模式为全分辨率模式,否则确定当前编码模式为下采样模式。目标码率大且超过预设阈值,代表具有较多的图像细节,选择全分辨率模式进行编码可保留图像细节,保证图像质量。

本实施例中,将不同帧预测类型与码率通过不同的码率阈值进行结合来确定待编码视频帧的当前编码模式,能提高当前编码模式确定的准确性。

在一个实施例中,图像特征信息包括运动特征信息和纹理信息,如图7所示,步骤s210中根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式的步骤包括:

步骤s215,根据运动特征信息确定运动度,根据纹理信息确定纹理复杂度。

具体的,可根据图像内容提取运动特征信息,如通过物体跟踪算法等,运动度代表了图像运动的剧烈程度,可通过不同的特征来衡量,如运动速度等。可以计算像素梯度得到图像细节纹理信息,从而确定图像的纹理复杂度,

步骤s216,如果运动度超过运动预设阈值或纹理复杂度超过纹理预设阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

具体的,根据编码模式确定规则,对于运动剧烈的场景更倾向于选择下采样模式进行编码,纹理复杂的待编码视频帧相比于纹理简单的待编码视频帧更倾向于选择全分辨率编码,所以如果运动度超过运动预设阈值或纹理复杂度超过纹理预设阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

本实施例中,直接根据图像内容信息就可确定当前编码模式,不依赖于编码过程,可在编码前分析图像提取图像特征得到各个视频帧对应的编码模式。

在一个实施例中,如图8所示,步骤s210中根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式的步骤包括:

步骤s217,获取待编码视频帧的帧预测类型,如果为帧内预测帧,则确定所述当前编码模式为全分辨率模式。

步骤s218,如果为双向帧间预测帧,则确定当前编码模式为下采样模式。

步骤s219,如果为前向帧间预测帧,则根据量化参数信息、码率信息、图像特征信息中的至少一种信息确定当前编码模式。

具体的,根据帧预测类型,如果为帧内预测帧,则确定当前编码模式为全分辨率模式,保证i帧的编码质量,如果是双向帧间预测帧,则确定当前编码模式为下采样模式,只有待编码视频帧为前向帧间预测帧,才根据量化参数信息、码率信息、图像特征信息中的至少一种信息确定当前编码模式,可对特定的帧预测类型快速确定当前编码模式,从而加快了编码效率。

在一个实施例中,当前编码信息包括量化参数信息、码率信息和帧预测类型,图像特征信息包括运动特征信息和纹理信息,如图9所示,步骤s210中根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式的步骤包括:

步骤s2101,获取预设条件与编码模式的对应关系表格,预设条件包括量化参数、码率、帧预测类型、运动度和纹理复杂度中的至少两项条件。

具体的,对应关系表格列举了不同预设条件下对应的编码模式,且至少根据2个预设条件确定编码模式,预设条件可根据需要自定义,如量化参数大于第一预设阈值,码率大于第二预设阈值等。将多个预设条件相结合通过表格可快速确定编码模式。

步骤s2102,从当前编码信息、图像特征信息中获取至少两种信息与对应关系表格中对应的预设条件相匹配确定目标编码模式作为当前编码模式。

具体的,从当前编码信息、图像特征信息中获取至少两种信息,可为当前编码信息中的至少两种信息,如码率、帧预测类型,可为图像特征信息中的至少两种信息,如纹理信息、运动速度,可为当前编码信息与图像特征信息组合形成的至少两种信息,如码率和纹理信息。通过查表,根据信息满足的预设条件确定对应目标编码模式作为当前编码模式。在通过两种或多种信息确定当前编码模式时,可通过查表快速得到当前编码模式,简单方便。

在一个实施例中,如图10所示,提供了一种视频解码方法,以应用于上述应用环境中的终端或服务器来举例说明,包括以下步骤:

步骤s310,获取编码数据,编码数据对应的每个编码视频帧携带当前编码模式信息,根据当前编码模式信息确定当前解码视频帧对应的当前解码模式。

具体的,可通过获取码流中预设位置对应的标志位,通过标志位得到当前编码模式信息,从而判断当前解码模式是全分辨率模式还是下采样模式。当前解码模式与当前编码模式相同。

步骤s320,当所述当前解码视频帧为帧间编码帧时,获取当前解码视频帧对应的当前参考帧,根据当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则进入步骤s330。

具体的,当前解码视频帧对应的当前参考帧根据帧间预测类型的不同,可为前向参考帧或双向参考帧,其中参考帧的个数可为一个或多个。当前参考帧如果与当前解码视频帧分辨率相同,则可直接将当前参考帧确定为处理参考帧。

在一个实施例中,如果当前解码视频帧为帧内编码帧,则直接进行解码得到重建视频帧。

步骤s330,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧。

具体的,解码时采用的预设采样规则与编码时采用的预设采样规则相同,可与当前编码视频帧的分辨率、当前参考帧与当前编码视频帧的距离相关。如当当前参考帧与当前编码视频帧的距离d超过预设阈值时,采用1/m下采样,否则采用1/n下采样,其中m<n。因为距离较远的参考帧可能参考价值小于距离较近的参考帧,从而对于距离较远的当前参考帧即使与当前编码视频帧的分辨率不同,也可不对其进行采样或使得其采样后的分辨率变化较小,从而解码时采用相同的方法可加快采样速度,进而提高整个解码速度。在一个实施例中m的值随着距离d变化,进一步提高采样参数的灵活性。在一个实施例中,如果当前参考帧与当前解码视频帧分辨率不相同,则对当前参考帧进行采样得到与当前解码视频帧分辨率相同的处理参考帧,其中对当前参考帧进行采样包括上采样和下采样,如果当前参考帧的分辨率大于当前解码视频帧分辨率,则对当前参考帧进行下采样得到处理参考帧,如果当前参考帧的分辨率小于当前编码视频帧分辨率,则对当前参考帧进行上采样得到处理参考帧。在一个实施例中如果当前参考帧的个数为多个,则分别对每个当前参考帧根据参考帧分辨率与当前解码视频帧分辨率进行采样得到与当前解码视频帧分辨率相同的处理参考帧。

在一个实施例中对当前参考帧进行采样的采样算法与步骤s340中对重建视频帧进行下采样得到解码视频帧的采样算法匹配,即如果对参考帧进行下采样,则下采样算法与步骤s340中对重建视频帧进行下采样得到解码视频帧的下采样算法相同。如果对参考帧进行上采样,则上采样算法与步骤s340中对重建视频帧进行下采样得到解码视频帧的下采样算法为匹配的相反的采样算法。

步骤s340,根据处理参考帧对当前解码视频帧进行解码得到重建视频帧。

具体的,对预测残差进行解码并与处理参考帧的对应预测像素叠加得到重建视频帧。

步骤s350,将重建视频帧根据当前解码模式处理得到解码视频帧,如果当前解码模式为下采样模式,则对重建视频帧进行上采样得到解码视频帧,如果当前编码模式信息为全采样模式,则将重建视频帧确定为解码视频帧。

具体的,对重建视频帧进行上采样的算法与编码端对待编码视频帧进行下采样得到当前编码视频帧的算法为匹配的相反的采样算法。

本实施例中,通过获取编码数据,编码数据对应的每个编码视频帧携带当前编码模式信息,根据当前编码模式信息确定当前解码视频帧对应的当前解码模式,当所述当前解码视频帧为帧间编码帧时,获取当前解码视频帧对应的当前参考帧,根据当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧,根据处理参考帧对当前解码视频帧进行解码得到重建视频帧,将重建视频帧根据当前解码模式处理得到解码视频帧,如果当前解码模式为下采样模式,则对重建视频帧进行上采样得到解码视频帧,如果当前编码模式信息为全采样模式,则将重建视频帧确定为解码视频帧,针对采用自适应变化模式编码的码流,可自适应调整参考帧分辨率,进行解码,自适应变化模式编码的码流是针对不同场景选择合适的分辨率进行编码的码流,从而提供对高质量图像质量码流的解码支持。

如图11所示,为一个具体的实施例中,视频编码方法与视频解码方法应用的编解码框架图,对输入编解码框架的待编码视频帧先进入分辨率选择模块410,根据所述待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,如果是全分辨率模式,则进入全分辨率编码模块420,对当前待编码视频帧进行全分辨率编码并输出编码码流。如果是下采样模式,则进入下采样编码模块430,对当前待编码视频帧进行下采样得到当前编码视频帧,对当前编码视频帧进行编码并输出编码码流。将编码码流输入混合分辨率解码模块440,进行解码后得到重建视频帧,如果是下采样模式,则对重建视频帧进行上采样得到解码视频帧,否则,直接输出解码视频帧。

下采样编码模块430在进行编码时的具体流程,如图12所示,先判断是否为帧内编码帧,如果是,则直接进行帧内预测得到预测残差,并进行变换、量化、熵编码等得到编码数据。如果不是帧内编码帧,则判断参考帧是否与当前编码视频帧分辨率相同,如果是,则进行帧内或帧间预测得到预测残差,并进行变换、量化、熵编码等得到编码数据。如果参考帧与当前编码视频帧分辨率不同,则对参考帧根据预设采样规则进行采样得到当前编码视频帧对应的处理参考帧,再进行帧内或帧间预测得到预测残差,并进行变换、量化、熵编码等得到编码数据。编码过程中为了提高预测模式选择速度,可以采用快速模式选择算法,为了达到目标码率,根据码率控制算法设定量化参数。

在一个实施例中,如图13所示,提供了一种视频编码装置,包括:

编码模式确定模块510,用于获取待编码视频帧,根据待编码视频帧的当前编码信息和/或图像特征信息从可选编码模式中确定当前编码模式,可选编码模式包括全分辨率模式和下采样模式。

前处理模块520,用于将所述待编码视频帧根据当前编码模式处理得到当前编码视频帧,当所述当前编码模式为下采样模式时,对所述待编码视频帧进行下采样得到当前编码视频帧,当所述当前编码模式为全分辨率模式时,将所述待编码视频帧确定为当前编码视频帧。

编码处理参考帧确定模块530,用于当所述当前编码视频帧为帧间编码帧时,获取所述当前编码视频帧对应的当前参考帧,根据所述当前参考帧与当前编码视频帧的分辨率大小得到对应的处理参考帧,具体包括:判断当前参考帧是否与当前编码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧。

帧间编码模块540,用于根据处理参考帧对所述当前编码视频帧进行编码得到第一编码数据,第一编码数据中携带当前编码模式信息。

在一个实施例中,当前编码信息包括量化参数信息,编码模式确定模块510还用于获取待编码视频帧对应的当前量化参数,获取待编码视频帧的帧预测类型,获取与帧预测类型对应的量化参数阈值,如果当前量化参数大于量化参数阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

在一个实施例中,当前编码信息包括码率信息,编码模式确定模块510还用于获取待编码视频帧对应的当前目标码率,获取待编码视频帧的帧预测类型,获取与帧预测类型对应的码率阈值,如果当前目标码率大于所述码率阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

在一个实施例中,图像特征信息包括运动特征信息和纹理信息,编码模式确定模块510还用于根据运动特征信息确定运动度,根据纹理信息确定纹理复杂度,如果运动度超过运动预设阈值或纹理复杂度超过纹理预设阈值,则确定当前编码模式为下采样模式,否则确定当前编码模式为全分辨率模式。

在一个实施例中,如图14所示,编码模式确定模块510包括:

编码模式快速确定单元511,用于获取所述待编码视频帧的帧预测类型,如果为帧内预测帧,则确定所述当前编码模式为全分辨率模式,如果为双向帧间预测帧,则确定所述当前编码模式为下采样模式;

编码模式精细确定单元512,用于如果为前向帧间预测帧,则根据量化参数信息、码率信息、图像特征信息中的至少一种信息确定当前编码模式。

在一个实施例中,如图15所示,装置还包括:

帧内编码模块550,用于当所述当前编码视频帧为帧内编码帧时,直接进行帧内编码得到第二编码数据,所述第二编码数据中携带当前编码模式信息。

在一个实施例中,如图16所示,编码处理参考帧确定模块530包括:

第一采样单元531,用于如果当前参考帧的分辨率大于当前编码视频帧分辨率,则对当前参考帧进行下采样得到与当前编码视频帧分辨率相同的处理参考帧。

第二采样单元532,用于如果当前参考帧的分辨率小于当前编码视频帧分辨率,则对当前参考帧进行上采样得到与当前编码视频帧分辨率相同的处理参考帧。

在一个实施例上,如图17所示,提供了一种视频解码装置,包括:

解码模式确定模块610,用于获取编码数据,编码数据对应的每个编码视频帧携带当前编码模式信息,根据当前编码模式信息确定当前解码视频帧对应的当前解码模式。

解码处理参考帧确定模块620,用于当所述当前解码视频帧为帧间编码帧时,获取当前解码视频帧对应的当前参考帧,根据当前参考帧与当前解码视频帧的分辨率大小得到处理参考帧,具体为:判断当前参考帧是否与当前解码视频帧分辨率相同,如果是,则直接将当前参考帧确定为处理参考帧,否则,对当前参考帧根据预设采样规则进行采样得到对应的处理参考帧。

重建模块630,用于根据处理参考帧对当前解码视频帧进行解码得到重建视频帧。

解码视频帧确定模块640,用于将重建视频帧根据当前解码模式处理得到解码视频帧,如果当前解码模式为下采样模式,则对重建视频帧进行上采样得到解码视频帧,如果当前编码模式信息为全采样模式,则将重建视频帧确定为解码视频帧。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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