视频图像编码的方法和装置的制造方法

文档序号:10580234阅读:436来源:国知局
视频图像编码的方法和装置的制造方法
【专利摘要】本发明提出了一种视频图像编码的方法,所述方法包括:接收待编码的视频图像,识别所述视频图像的场景复杂度,确定与所述视频图像的场景复杂度对应的分辨率,当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与所述视频图像的场景复杂度对应的分辨率,根据切换后的分辨率编码所述视频图像。该过程不需要重启编码器,因此无需编码I帧,只需编码P帧或B帧就可以实现分辨率的自由切换,极大的提高了编码的效率。此外,还提出了一种视频图像编码的装置。
【专利说明】
视频图像编码的方法和装置
技术领域
[0001]本发明涉及视频处理领域,特别是涉及一种视频图像编码的方法和装置。【背景技术】
[0002]随着互联网的发展,观看视频变得越来越流行,人们对视频的流畅度和清晰度的要求也越来越高。但是一般情况下,视频的码率是固定的,这样由于分配给每一帧的码率是基本固定的,在静止以及小运动的场景下,画质相对较优,但是如果突然进入到很剧烈的以及很复杂的纹理的场景,会导致量化参数变大,从而画质变差,甚至会出现严重的马赛克现象。此外,当网络带宽变化时,比如网络状况变差,分配给每一帧的码率也随之变低,这样即使视频图像一直处于静止以及小运动的场景中,由于码率降低也会出现视频画质变差的现象。
[0003]当视频画质变差时,如果下降一档分辨率,则分配给单位像素的码率就会变多,那么就可以使用较低的量化参数来编码,虽然分辨率降低了,但是主观上感觉比高一档的分辨率的画质要好很多。所以分辨率的调整对于视频编码的过程显得非常重要。但是传统的调整分辨率需要重新启动编码器,进而编码I帧来进行切换,而I帧的编码效率极低,会导致该帧画质极差,影响观感。
【发明内容】

[0004]基于此,有必要针对上述问题,提供一种编码效率较高的视频图像编码的方法和装置。
[0005]—种视频图像编码的方法,所述方法包括:
[0006]接收待编码的视频图像;
[0007]识别所述视频图像的场景复杂度;
[0008]确定与所述视频图像的场景复杂度对应的分辨率;
[0009]当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与所述视频图像的场景复杂度对应的分辨率;
[0010]根据切换后的分辨率编码所述视频图像。
[0011]—种视频图像编码的装置,所述装置包括:
[0012]接收模块,用于接收待编码的视频图像;
[0013]识别模块,用于识别所述视频图像的场景复杂度;
[0014]确定模块,用于确定与所述视频图像的场景复杂度对应的分辨率;
[0015]切换模块,用于当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与所述视频图像的场景复杂度对应的分辨率;
[0016]编码模块,用于根据切换后的分辨率编码所述视频图像。
[0017]上述视频图像编码的方法和装置,通过接收待编码的视频图像,识别视频图像的场景复杂度,确定与视频图像的场景复杂度对应的分辨率,当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率,根据切换后的分辨率编码视频图像。该方法和装置通过识别视频图像的场景复杂度,并确定与该场景复杂度对应的分辨率,当需要调整当前编码器的分辨率时通过改变编码头信息即可将当前编码器的分辨率切换为与该场景复杂度对应的分辨率,该过程不需要重启编码器,因此无需编码I帧,只需编码P帧或B帧就可以实现分辨率的自由切换,极大的提高了编码的效率。【附图说明】
[0018]图1为一个实施例中视频图像编码方法的应用环境图;
[0019]图2为一个实施例中编码端的组成结构示意图;
[0020]图3为另一个实施例中编码端的组成结构示意图;[0021 ]图4为一个实施例中视频图像编码的方法流程图;
[0022]图5为一个实施例中分辨率切换的方法流程图;
[0023]图6为一个实施例中根据切换后的分辨率编码视频图像的方法流程图;
[0024]图7a为一个实施例中对参考帧进行下采样的示意图;
[0025]图7b为一个实施例中对参考帧进行上采样的示意图;
[0026]图8为一个实施例中对采样后的参考帧进行补边的示意图;
[0027]图9为另一个实施例中视频图像编码的方法流程图;
[0028]图10为一个实施例中编解码过程的示意图;[〇〇29]图11为一个实施例中视频图像编码的装置结构框图;[〇〇3〇]图12为另一个实施例中视频图像编码的装置结构框图;[〇〇31]图13为一个实施例中编码模块的结构框图;[〇〇32]图14为又一个实施例中视频图像编码的装置结构框图。【具体实施方式】[〇〇33]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034]如图1所示,在一个实施例中,视频图像编码的方法可应用于如图1所示的应用环境中,在该应用环境中,编码端102与解码端104通过网络连接。编码端102用于接收待编码的视频图像,并识别该视频图像的场景复杂度,进而确定与该视频图像的场景复杂度对应的分辨率,当检测到需要调整当前分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率,并根据切换后的分辨率编码视频图像,然后将编码后的视频图像和对应的编码头信息通过网络发送给解码端104,解码端 104用于接收编码端发送的编码头信息和编码后的视频图像,根据编码头信息中的分辨率解码视频图像。编码端102可以是终端,也可以是服务器。当编码端102为终端时,可以在进行视频录入时实时的根据场景的变化通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率,进而根据切换后的分辨率编码视频图像,并将编码后的视频图像发送给解码端104,解码端104采用与编码端一致的分辨率解码该视频图像。比如,编码端与解码端进行视频通话时,一方面编码端采集视频时可以根据场景变化自动切换分辨率进行编码,另一方面解码端使用与编码端一致的分辨率解码该视频图像并播放。当编码端102为服务器时,对接收的视频图像进行编码,并根据视频图像的场景复杂度动态的调整分辨率编码相应的视频图像,将编码后的视频图像发送到解码端104, 解码端104接收到服务器发送的编码头信息和编码后的视频图像,使用与编码时一致的分辨率对该视频图像进行解码。
[0035]如图2所示,在一个实施例中,编码端102为终端时的组成结构如图2所示,包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、视频采集装置、显示屏和输入装置。其中,该编码端102的非易失性存储介质存储有操作系统,还包括一种视频图像编码的装置,该视频图像编码的装置用于实现一种视频图像编码的方法。该处理器用于提供计算和控制能力,支撑整个编码端的运行。编码端中的内存储器为非易失性存储介质中的视频图像编码的装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种视频图像编码的方法。网络接口用于连接到网络进行通信,比如将编码后的视频图像发送到解码终端等。视频采集装置用于视频的采集,比如进行视频的录入。编码端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该解码端可以是手机、平板电脑或者个人数字助理或穿戴式设备等。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的解码端的限定, 具体的解码端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0036]如图3所示,在一个实施例中,编码端102为服务器时的组成结构如图3所示,包括通过系统总线连接的处理器、非易失性存储介质、内存和网络接口。其中,该非易失性存储介质包括操作系统、数据库、视频图像编码的装置。数据库用于存储数据,比如存储待编码的视频图像数据等。该视频图像编码的装置用于编码视频图像,该编码端的处理器用于提供计算和控制能力,支撑整个编码端的运行。该编码端的网络接口用于与外部的解码端通过网络连接通信,比如将编码后的视频图像发送到解码端。该解码端可以是独立的服务器, 也可以是多个服务器集群。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的解码端的限定,具体的解码端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0037]如图4所示,在一个实施例中,提出了一种视频图像编码的方法,该方法既可应用于终端中,也可以应用于服务器中,包括:[〇〇38]步骤402,接收待编码的视频图像。
[0039]视频是由一帧帧的图片组成的,由于视频本身的数据量很大,所以在视频传输之前需要对视频进行编码,视频编码实际上就是编码视频图像,由于视频图像数据具有极强的相关性,因此会有大量的冗余信息,视频编码就是采用压缩技术将数据中的冗余信息去掉。视频编码是通过编码器来实现的,所以视频在传输之前,首先需要将视频经由编码器进行编码。具体的,编码器接收待编码的视频图像,然后按照预设的编码参数将视频图像进行编码。
[0040]步骤404,识别视频图像的场景复杂度。
[0041]在本实施例中,视频的场景复杂度是指当前视频图像相对于前一帧视频图像的像素变动情况。相邻两张视频图片的像素变动的越多,场景复杂度越大。由于视频是由一帧帧的连续的图片组成的,两张相邻的图片之间差异越大,说明其场景复杂度越大,反之,场景复杂度越低。编码器接收到待编码的视频图像后,需要对视频图像的场景进行分析识别,BP 通过计算视频图像的场景复杂度来判断当前的运动场景。在一个实施例中,运动场景可以简单的分为静止、小运动、大运动和剧烈运动。在固定码率的情况下,画面如果出现大运动或剧烈运动场景会导致画质降低、画面卡顿、不流畅等现象,那么此时需要将分辨率往下切换一档以便提高画质的质量,之后如果是静止或者小运动场景则可以把分辨率再调回到原来的状态。具体的,视频场景复杂度的计算可以采用多种方法,在一个实施例中,可以通过做帧内预测或帧间预测计算出预测块,然后计算实际的块与预测块的残差SAD(Sum of Absolute Differences,绝对误差和),残差越大表示编码需要的码率越多,说明场景越复杂,反之,说明复杂度越低。在另一个实施例中,为了更精细的计算场景复杂度,除了计算实际的块与预测块的残差SAD外,还需要计算平均运动矢量,在计算的过程中,每个块都会在参考帧中找到一个最优的块,最优的块距离当前块的距离就是运动矢量,平均运动矢量就是指所有块的运动矢量的平均值,平均运动矢量越大说明运动的越快,平均运动矢量越小说明运动的越慢,比如,当平均运动矢量为0时,说明画面处于静止。通过对计算得到的残差 SAD和平均运动矢量进行加权处理,最终得到一个表示场景复杂度的数值,该数值越大,说明场景复杂度越大,反之,说明场景复杂度越小。[〇〇42]步骤406,确定与视频图像的场景复杂度对应的分辨率。[〇〇43]在本实施例中,预先建立视频图像的场景复杂度与分辨率的对应关系,通过计算得到视频图像的场景复杂度后,从预先建立的对应关系中,确定与当前视频图像的场景复杂度对应的分辨率。比如,预先建立三个分辨率,根据分辨率的大小分为低档分辨率、中档分辨率、高档分辨率。当视频图像的场景复杂度大于预设的第一阈值时,对应的分辨率为低档分辨率;当视频图像的场景复杂度小于预设的第二阈值时,对应的分辨率为中档分辨率; 当视频图像的场景复杂度大于预设的第二阈值且小于预设的第一阈值时,对应的分辨率为高档分辨率,其中,第二阈值小于第一阈值。计算得到视频图像的场景复杂度后即可确定与之对应的分辨率。
[0044]步骤408,当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率。
[0045]具体的,编码头信息即编码器的头信息,用于设置各种编码过程中的通用参数,包括视频序列参数集(SPS)、图像参数集(PPS)和编码片头信息(Slice header)等。其中,序列参数集SPS用于描述整个序列编码的参数信息,包括编码的分辨率信息。确定与视频图像的场景复杂度对应的分辨率后,判断当前编码器的分辨率是否与视频图像的场景复杂度对应的分辨率一致,如果不一致,说明当前编码器的分辨率不适合现在的场景复杂度,需要对当前编码器的分辨率进行调整。如果一致,则不需要调整。当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息,将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率即可。具体的,编码器初始化多个编码头信息,每个编码头信息中都包含有一个分辨率,不同的编码头信息包含不同的分辨率。比如,编码器中初始化三个编码头信息,每个编码头信息包含一个分辨率,三个编码头信息分别包含三个不同的分辨率,按照分辨率的高低,分为低档分辨率、中档分辨率和高档分辨率。假设三个编码头信息分别为1,2, 3。其中,编码头信息1包含的是低档分辨率、编码头信息2包含的是中档分辨率,编码头信息 3包含的是高档分辨率。如果确定与视频图像的场景复杂度对应的分辨率为低档分辨率,而当前分辨率采用的是中档的分辨率或者高档的分辨率时,那么就需要将当前编码头信息2 或3切换为包含低档分辨率的编码头信息1。
[0046]步骤410,根据切换后的分辨率编码视频图像。
[0047]在本实施例中,将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率后,为了能够正常编码,需要根据编码头信息中的分辨率对参考帧进行相应的上采样或下采样,然后根据采样后的参考帧编码该视频图像。具体的,图像分辨率是指单位英寸中所包含的像素点数。此外,分辨率也可以用图片的长度和宽度表示,即图片的尺寸。由高分辨率变成低分辨率的过程称为下采样,由低分辨率变成高分辨率的过程称为上采样。下采样的过程是通过提取原图像中的部分像素点获取一个缩小的图像。上采样的过程需要通过插值等方法来补充缺少的像素点,获取一个较大的图像。参考帧是指IPB编码所需要参考的帧。在编码视频图像的过程中,I帧是帧内图像数据压缩,是独立帧,其参考的是本图像内的块编码,不需要参考帧。P帧是参考前面的I帧或P帧来编码的,参考帧数最多为2,都是前向的。B帧是参考前面的和后面的I帧或P帧来编码的,前后各一帧,或者只是前向或后向(三种任选)。也就是说,参考帧是指P帧或B帧的参考帧。在编码视频图像的过程中绝大多数都是P 帧,所以对参考帧进行相应的上采样或下采样主要是为了编码P帧。相对于传统技术中的编码I帧来进行分辨率的切换,编码P帧或B帧极大的提高了编码的效率。
[0048]在本实施例中,通过接收待编码的视频图像,识别视频图像的场景复杂度,确定与视频图像的场景复杂度对应的分辨率,当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率,根据切换后的分辨率编码视频图像。该方法通过识别视频图像的场景复杂度,并确定与该场景复杂度对应的分辨率,当需要调整当前编码器的分辨率时通过改变编码头信息即可将当前分辨率切换为与该场景复杂度对应的分辨率,该过程不需要重启编码器,因此无需编码I 帧只需编码P帧或B帧就可以实现分辨率的自由切换,极大的提高了编码的效率。
[0049]在一个实施例中,确定与视频图像的场景复杂度对应的分辨率的步骤包括:根据预先建立的视频图像的场景复杂度与分辨率的对应关系,确定与视频图像的场景复杂度对应的分辨率。
[0050]在本实施例中,预先设置视频图像的场景复杂度与分辨率之间的对应关系。根据计算得到的视频图像的场景复杂度来确定与该视频图像的场景复杂度对应的分辨率。比如,预先建立两个分辨率,分别为低分辨率和高分辨率。当视频图像的场景是静止或小运动时,为了提高图像的清晰度,采用高分辨率进行编码。当视频图像的场景是大运动或剧烈运动时,为了保证画质的质量,采用低分辨率进行编码。具体的,预先为视频的场景复杂度设置一个阈值。通过计算视频图像的场景复杂度,判断该场景复杂度是否大于预设的阈值,若是,则说明当前视频图像的场景为大运动或剧烈运动场景,与之对应的分辨率为低分辨率; 若否,则说明当前视频图像的场景为静止或小运动场景,与之对应的分辨率为高分辨率。
[0051]在一个实施例中,在接收待编码的视频图像的步骤之前还包括:初始化多个编码头信息,其中,不同的编码头信息包含的分辨率不同。通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率的步骤408,包括:将当前编码器的编码头信息切换为编码头信息中包含的分辨率与视频图像的场景复杂度对应的分辨率一致的编码头信息。
[0052]在本实施例中,建立多个分辨率是通过编码器初始化多个编码头信息来实现的。 一个编码头信息包含一个分辨率,不同的编码头信息中包含的分辨率不同。当需要调整当前编码器的分辨率时,只需将当前的编码头信息切换为编码头信息中包含的分辨率与视频图像的场景复杂度对应的分辨率一致的编码头信息即可。编码器初始化编码头信息就是设置头信息的各种编码过程中的参数。比如,分辨率,参考帧个数等。编码器需要通过编码头信息将一些序列级、图像级以及编码片级的信息传递给解码器,其中包括一个很重要的信息就是分辨率信息。为了能够动态编码不同的分辨率,所以需要动态的切换编码头信息。一个编码头信息通常只包含一个分辨率信息,所以为了动态编码不同的分辨率需要初始化若干个编码头信息来表示若干个分辨率。具体的,假设编码器初始化两个编码头信息,其中一个编码头信息包含的分辨率为640x480,另一个编码头信息包含的分辨率为480x360。初始默认使用的是包含640x480的编码头信息,当视频场景出现大运动或剧烈运动时,需要将当前的分辨率640x480切换为480x360,那么只需要将当前的编码头信息切换为包含的分辨率为480x360的编码头信息即可。[〇〇53]为了叙述方便,下面利用H.264/H.265编码协议来详细阐述实现的方法。其中, H.264/H.265编码协议的头信息主要包括SPS(视频序列参数集)、PPS(图像参数集)、Slice headeH编码片头信息)。其中,SPS是视频序列参数集,用于描述整个序列编码的参数信息, 包括编码的分辨率信息。每个SPS有一个ID编号,可以表示为sps_seq_parameter_set_id〇 PPS是图像参数集,用于描述图像的参数信息,每个PPS都有一个ID编号,可以表示为pps_ seq_parameter_set_id。并且一个PPS对应一个SPS,用pps seq parameter set id来指向当前PPS是关联的哪个SPS信息。一般情况下,一个编码头信息中只有一个SPS和一个PPS。那么为了动态的切换分辨率,需要提前保存若干个分辨率信息,即需要初始化若干个SPS,相应的也就需要若干个PPS。[〇〇54]如图5所示,在一个实施例中,编码器初始化两个SPS和PPS,即设置MAX_SPS_C0UNT为2,MAX_PPS_C0UNT为2。编码器初始化的时候,先建立两个SPS,分别表示为SPS[ 0 ]和SPS [1 ],其中,〇和1分别代表SPS相应的ID编号,即SPS[0]的sps_seq_parameter_set_id为0, SPS[1]的sps_seq_parameter_set_id为1。分辨率可以通过图片的长度和宽度表示,分别设 SSPS[0]->pic_width_in_luma_samples = ffl, SPS[0]->pic_height_in_luma_samples = HI;SPS[1]->pic_width_in_lu ma_samples=W2,SPS[1]->pic_height_in_luma_samples =112。其中,卩;[。_'\¥1(11:11_;[11_1111]1&_8&111卩168表不编码图像的宽,卩;[。_1161区111:_;[11_1111]1已_ samples表示编码图像的高(长),那么,SPS[0]的分辨率可以表示为WlxHl,SPS[l]的分辨率可以表示为W2xH2。然后设置两个PPS,分别表示为PPS[0]和PPS[1],其中,0和1分别代表PPS 相应的ID编号,即PPS「〇l的pps seq parameter set id为0,PPS「ll的pps seq parameter set_id为1。每个PPS关联一个SPS,其中,PPS[0]与SPS[0]关联,PPS[1]与SPS[1]关联。最后创建两个SLICE(编码片),分别表示为SLICE[0]和SLICE[1],其中0和1分别代表SLICE相应的ID编号,即SLICE[0]的si ice_pic_parameter_set_id = O,SLICE[ I ]的si ice_pic_parameter_set_id = I。其中,每个编码片关联一个PPS,其中,SLICE[0]与PPS[0]关联,SLICE[l]与PPS[l]关联。在初始状态下,编码片slice_pic_parameter_set_id = 0,也就是说,初始SLICE使用的是PPS [ O ]的编码信息,而PPS [ O ]指向SPS [ O ],即初始编码的分辨率为WlxHl。如果将分辨率从WlxHl切换到W2xH2,那么只需要将编码片头的编码片的值设置为I,即slice_pic_parameter_set_id=l,这样就指向了PPS[1],而PPS[I ]指向的是SPS[ I],此时对应的分辨率就是W2xH2。
[0055]如图6所示,在一个实施例中,根据切换后的分辨率编码视频图像的步骤包括:
[0056]步骤410a,根据切换后的分辨率对参考帧进行对应的上采样或下采样。
[0057]在本实施例中,通过改变编码头信息将分辨率切换为与视频图像的场景复杂度对应的分辨率后,为了能够正常编码,需要对视频图像的参考帧进行对应的上采样或下采样。由高分辨率切换到低分辨率时,需要对参考帧进行下采样,由低分辨率切换到高分辨率时,需要对参考帧进行上采样。具体的,若对参考帧进行下采样,如图7a所示,采用双线性滤波的方法,对参考帧(浅灰色大图)的YUV分量进行下采样,其中,YUV分量是指Y分量(亮度分量)、U分量(色度分量)、V分量(色度分量),每一帧都是由这三个分量组成的。将下采样后的参考帧(深灰色小图)进行保存。此外,由于分辨率变了,其边缘处的像素值也有变化,所以需要对该采样后的参考帧的上下左右的边重新进行补边,补边的方法可以采用利用最邻近像素的值进行复制。若对参考帧进行上采样,如图7b所示,采用双线性滤波的方法对参考帧(浅灰色小图)的YUV分量进行上采样,保存进行上采样后的参考帧(深灰色大图),同样的由于分辨率变了,其边缘处的像素值也有变化,所以需要对上采样后的参考帧的上下左右的边重新进行补边,补边的方法同样可以利用最邻近像素的值复制。如图7所示,为一个实施例中,对进行上采样后的参考帧进行补边的示意图,补边就是对参考帧的上下左右各个方向都补上一条边,如图8中所示,深灰色部分为进行采样后的参考帧原始值,浅灰色为补的边。补边的方法采用最邻近像素的值复制,以灰色图最上方的那条边为例,其像素值等于垂直方向对应的参考帧原始值(即深灰色部分)的最上边的值。
[0058]步骤410b,根据采样后的参考帧编码视频图像。
[0059]具体的,根据切换后的分辨率对参考帧进行对应的采样并补边后,利用该处理后的参考帧进行编码视频图像,根据不同的需要可以采用不同的编码方法,比如,预测编码、变化编码等。将编码后的视频图像发送给解码器,使解码器根据编码头信息中的分辨率解码该视频图像。
[0060]如图9所示,在一个实施例中,上述视频图像编码的方法还包括:
[0061]步骤412,将编码后的视频图像和对应的编码头信息传输给解码器,使解码器根据对应的编码头信息中的分辨率解码视频图像。
[0062]在本实施例中,由于在编码端对参考帧进行了修改,那么对解码端必须也做一致的修改,否则会导致解码的花屏。编码器对视频图像进行编码后,将编码后的视频图像和对应的编码头信息传输给解码器,解码器检测到分辨率的信息变化时,采用与编码端一致的双线性滤波算法对参考帧进行相应的上采样或下采样。具体的,编码器首先将多个初始化的编码头信息发送给解码器,然后将编码后的视频图像发送给解码器,解码器从收到的视频码流的头部可以获取到该视频图像指向的是那个编码头信息,然后根据确定的编码头信息中的分辨率对视频图像进行解码。
[0063]为了能够更好的利用带宽,如图10所示,在一个实施例中,编码器的头信息是根据控制模块1002的计算结果来设置的。具体的,控制模块1002根据网络状况、以及客户端的硬件能力等条件设置一组编码参数,然后控制模块1002将设置的编码参数传递给编码器,编码器1004根据接收到的编码参数来初始化编码头信息。比如,控制模块设置的分辨率是640x480,那么编码器就会初始化一个包含这个640x480分辨率的编码头信息。此外,为了更够动态的切换分辨率,控制模块可以根据当前的网络状况以及客户端的硬件能力等条件设置多组编码参数,这样,编码器1004就可以根据接收到的多组编码参数来初始化多个编码头信息。编码器1004将编码头信息和编码后的视频图像通过网络传输给解码器1006,解码器1006从接收到的视频码流的头部获取到视频图像指向的编码头信息,根据确定的编码头信息中的分辨率对视频图像进行解码。
[0064]如图11,在一个实施例中,提出了一种视频图像编码的装置,该装置包括:
[0065]接收模块1102,用于接收待编码的视频图像。
[0066]识别模块1104,用于识别视频图像的场景复杂度。
[0067]确定模块1106,用于确定与视频图像的场景复杂度对应的分辨率。
[0068]切换模块1108,用于当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分辨率切换为与视频图像的场景复杂度对应的分辨率。
[0069]编码模块1110,用于根据切换后的分辨率编码所述视频图像。
[0070]在一个实施例中,确定模块还用于根据预先建立的视频图像的场景复杂度与分辨率的对应关系,确定与视频图像的场景复杂度对应的分辨率。
[0071]如图12所示,在一个实施例中,上述视频图像编码的装置还包括:
[0072]初始化模块1101,用于初始化多个编码头信息,其中,不同的编码头信息包含的分辨率不同;切换模块1108还用于当需要调整当前编码器的分辨率时,将当前编码器的编码头信息切换为编码头信息中包含的分辨率与视频图像的场景复杂度对应的分辨率一致的编码头?目息。
[0073]如图13所示,在一个实施例中,编码模块1110包括:
[0074]采用模块1110a,用于根据切换后的分辨率对参考帧进行对应的上采样或下采样,其中,若切换后的分辨率高于切换前的分辨率,则对参考帧进行上采样,若切换后的分辨率低于切换前的分辨率,则对参考帧进行下采样。
[0075]视频图像编码模块1110b,用于根据采样后的参考帧编码所述视频图像。
[0076]如图14所示,在一个实施例中,上述视频图像编码的装置还包括:
[0077]传输模块1111,用于将编码后的视频图像和对应的编码头信息传输给解码器,使解码器根据对应的编码头信息中的分辨率解码视频图像。
[0078]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
[0079]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种视频图像编码的方法,所述方法包括:接收待编码的视频图像;识别所述视频图像的场景复杂度;确定与所述视频图像的场景复杂度对应的分辨率;当需要调整当前编码器的分辨率时,通过切换编码器的编码头信息将当前编码器的分 辨率切换为与所述视频图像的场景复杂度对应的分辨率;根据切换后的分辨率编码所述视频图像。2.根据权利要求1所述的方法,其特征在于,所述确定与所述视频图像的场景复杂度对 应的分辨率的步骤包括:根据预先建立的视频图像的场景复杂度与分辨率的对应关系,确定与所述视频图像的 场景复杂度对应的分辨率。3.根据权利要求1所述的方法,其特征在于,在所述接收待编码的视频图像的步骤之前 还包括:初始化多个编码头信息,其中,不同的编码头信息中包含的分辨率不同;所述通过切换编码器的编码头信息将当前编码器的分辨率切换为与所述视频图像的 场景复杂度对应的分辨率的步骤,包括:将当前编码器的编码头信息切换为编码头信息中包含的分辨率与视频图像的场景复 杂度对应的分辨率一致的编码头信息。4.根据权利要求1所述的方法,其特征在于,所述根据切换后的分辨率编码所述视频图 像的步骤包括:根据切换后的分辨率对参考帧进行对应的上采样或下采样,其中,若切换后的分辨率 高于切换前的分辨率,则对参考帧进行上采样,若切换后的分辨率低于切换前的分辨率,则 对参考帧进行下采样;根据采样后的参考帧编码所述视频图像。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:将编码后的视频图像和对应的编码头信息传输给解码器,使所述解码器根据所述对应 的编码头信息中的分辨率解码所述视频图像。6.—种视频图像编码的装置,其特征在于,所述装置包括:接收模块,用于接收待编码的视频图像;识别模块,用于识别所述视频图像的场景复杂度;确定模块,用于确定与所述视频图像的场景复杂度对应的分辨率;切换模块,用于当需要调整当前编码器分辨率时,通过切换编码器的编码头信息将当 前编码器的分辨率切换为与所述视频图像的场景复杂度对应的分辨率;编码模块,用于根据切换后的分辨率编码所述视频图像。7.根据权利要求6所述的装置,其特征在于,所述确定模块还用于根据预先建立的视频 图像的场景复杂度与分辨率的对应关系,确定与所述视频图像的场景复杂度对应的分辨率。8.根据权利要求6所述的装置,其特征在于,所述装置还包括:初始化模块,用于初始化多个编码头信息,其中,不同的编码头信息中包含分辨率不 同;所述切换模块还用于当需要调整当前编码器的分辨率时,将当前编码器的编码头信息 切换为编码头信息中包含的分辨率与视频图像的场景复杂度对应的分辨率一致的编码头 fg息。9.根据权利要求6所述的装置,其特征在于,所述编码模块包括:采样模块,用于根据切换后的分辨率对参考帧进行对应的上采样或下采样,其中,若切 换后的分辨率高于切换前的分辨率,则对参考帧进行上采样,若切换后的分辨率低于切换 前的分辨率,则对参考帧进行下采样;视频图像编码模块,用于根据采样后的参考帧编码所述视频图像。10.根据权利要求6所述的装置,其特征在于,所述装置还包括:传输模块,用于将编码后的视频图像和对应的编码头信息传输给解码器,使所述解码 器根据所述对应的编码头信息中的分辨率解码所述视频图像。
【文档编号】H04N19/573GK105959700SQ201610379923
【公开日】2016年9月21日
【申请日】2016年5月31日
【发明人】罗斌姬, 王浦林, 刘海军, 王诗涛
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1