CN108769681A - 视频编码、解码方法、装置、计算机设备和存储介质 - Google Patents

视频编码、解码方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN108769681A
CN108769681A CN201810636200.4A CN201810636200A CN108769681A CN 108769681 A CN108769681 A CN 108769681A CN 201810636200 A CN201810636200 A CN 201810636200A CN 108769681 A CN108769681 A CN 108769681A
Authority
CN
China
Prior art keywords
video frame
frame
decoded
processing mode
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810636200.4A
Other languages
English (en)
Other versions
CN108769681B (zh
Inventor
高欣玮
毛煦楠
谷沉沉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810636200.4A priority Critical patent/CN108769681B/zh
Publication of CN108769681A publication Critical patent/CN108769681A/zh
Priority to PCT/CN2019/090277 priority patent/WO2019242506A1/zh
Priority to US16/988,513 priority patent/US11206405B2/en
Application granted granted Critical
Publication of CN108769681B publication Critical patent/CN108769681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及一种视频编码、解码方法、装置、计算机设备和存储介质,所述方法包括:获取输入视频帧;获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。上述编码方法可以灵活选择视频帧的处理方式,从而提高在带宽有限下的视频编码质量。

Description

视频编码、解码方法、装置、计算机设备和存储介质
技术领域
本申请涉及视频编码技术领域,特别是涉及一种视频编码、解码方法、装置、计算机设备和存储介质。
背景技术
随着数字媒体技术和计算机技术的发展,视频应用于各个领域,如移动通信、网络监控、网络电视等。随着硬件性能和屏幕分辨率的提高,用户对高清视频的需求日益强烈。
在带宽有限的条件下,传统的编码器对视频帧无区分地进行编码,可能出现某些场景视频质量差的问题,如在750kbps时,对于所有视频帧不加区分地进行编码时,存在部分视频帧质量差的情况,分析H.264\H.265\iOS等编码器都存在相似问题。
发明内容
本发明实施例提供了一种视频编码、解码方法、装置、计算机设备和存储介质,能够灵活选择视频帧的处理方式,对输入视频帧进行处理,从而提高在带宽有限下的视频编码质量。
一种视频编码方法,该方法包括:
获取输入视频帧;
获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;
根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
一种视频编码装置,该装置包括:
输入视频帧获取模块,用于获取输入视频帧;
处理参数获取模块,用于获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;
输入视频帧编码模块,用于根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述程序时实现以下步骤:
获取输入视频帧;
获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;
根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取输入视频帧;
获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;
根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
上述视频编码方法、装置、计算机设备和存储介质,获取输入视频帧,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,该处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式,最后根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。能够灵活选择视频帧的处理方式,对输入视频帧进行处理,使得解码过程能够重现编码过程的处理参数,提高在带宽有限下的视频编码质量,从而能够得到准确的编码数据。
一种视频解码方法,该方法包括:
获取待解码视频帧对应的编码数据;
获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;
根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
一种视频解码装置,该装置包括:
编码数据获取模块,用于获取待解码视频帧对应的编码数据;
处理参数获取模块,用于获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;
编码数据解码模块,用于根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述程序时实现以下步骤:
获取待解码视频帧对应的编码数据;
获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;
根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取待解码视频帧对应的编码数据;
获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;
根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
上述解码方法、装置、计算机设备和存储介质,获取待解码视频帧对应的编码数据,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致,最后根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。因此进行解码时,获取待解码视频帧对应的处理参数,该处理参数与编码过程中对应的处理参数保持一致,即在解码过程中重现编码过程中的处理参数,再根据处理参数确定目标处理方式,最后根据目标处理方式进行解码的,从而能够得到准确的解码视频帧。
附图说明
图1为一个实施例中提供的视频编码方法的应用环境图;
图2为一个实施例中视频编码方法对应的编码框架图;
图3为一个实施例中视频解码方法对应的解码框架图;
图4为一个实施例中编码块对应的示意图;
图5为一个实施例中视频编码方法的流程示意图;
图6为一个实施例中输入视频帧对应的目标处理方式的生成步骤的流程示意图;
图7为又一个实施例中输入视频帧对应的目标处理方式的生成步骤的流程示意图;
图8为另一个实施例中输入视频帧对应的目标处理方式的生成步骤的流程示意图;
图9为另一个实施例中视频编码方法的流程示意图;
图10为一个实施例中输入视频帧对应的目标处理方式的生成步骤的流程示意图;
图11为一个实施例中输入视频帧编码步骤的流程示意图;
图11A为一个实施例中提供的编码数据的示意图;
图12为一个实施例中提供的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据的流程图;
图13为一个实施例中提供的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据的流程图;
图13A为一个实施例中提供的对当前参考帧进行插值的示意图;
图13B为一个实施例中提供的对当前参考帧进行插值的示意图;
图14为一个实施例中提供的在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据的流程图;
图14A为一个实施例中提供的当前参考帧与待编码帧的示意图;
图15为一个实施例中提供的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据的流程图;
图16为一个实施例中提供的视频编码方法的流程图;
图17为一个实施例中提供的视频编码框架的示意图;
图18为一个实施例中视频解码方法的流程示意图;
图19为一个实施例中待解码视频帧对应的目标处理方式的生成步骤的流程示意图;
图20为另一个实施例中待解码视频帧对应的目标处理方式的生成步骤的流程示意图;
图21为又一个实施例中待解码视频帧对应的目标处理方式的生成步骤的流程示意图;
图22为一个实施例中视频解码方法的流程示意图;
图23为一个实施例中待解码视频帧对应的目标处理方式的生成步骤的流程示意图;
图24为一个实施例中待解码视频帧解码步骤的流程示意图;
图25为一个实施例中提供的根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧的流程图;
图26为一个实施例中提供的根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧的流程图;
图27为一个实施例中视频编码装置的结构框图;
图28为一个实施例中处理参数获取模块的结构框图;
图29为另一个实施例中视频编码装置的结构框图;
图30为另一个实施例中处理参数获取模块的结构框图;
图31为一个实施例中输入视频帧编码模块的结构框图;
图32为一个实施例中视频解码装置的结构框图;
图33为一个实施例中处理参数获取模块的结构框图;
图34为另一个实施例中处理参数获取模块的结构框图;
图35为一个实施例中编码数据解码模块的结构框图;
图36为一个实施例中计算机设备的结构框图;
图37为另一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一阈值称为第二阈值,且类似地,可将第二阈值称为第一阈值。
图1为一个实施例中提供的视频编码方法的应用环境图,如图1所示,在该应用环境中,包括终端110以及服务器120。
终端110或服务器120可以通过编码器进行视频编码,或者通过解码器进行视频解码。终端110或服务器120也可以通过处理器运行视频编码程序进行视频编码,或者通过处理器运行视频解码程序进行视频解码。服务器120通过输入接口接收到终端110发送的编码数据后,可直接传递至处理器进行解码,也可存储至数据库中等待后续解码。服务器120在通过处理器对原始视频帧编码得到编码数据后,可直接通过输出接口发送至终端110,也可将编码数据存储至数据库中等待后续传递。
终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑以及笔记本电脑等中的至少一种,但并不局限于此。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2为一个实施例中提供的视频编码方法对应的编码框架图,本发明实施例提供的视频编码方法可以获取输入视频序列的各个输入视频帧进行编码,得到对应的编码数据,并通过存储发送单元222存储或者发送编码数据,或者存储并发送编码数据。其中,在处理方式决策单元202处,可以对输入视频帧进行处理方式决策,得到输入视频帧对应的处理方式。在处理单元204处,可以根据处理方式对输入视频帧进行处理,得到待编码帧。在第一预测单元206处,可以在待编码帧的分辨率下,可以对待编码帧的各个编码块进行帧内预测或者帧间预测,并根据编码块对应的参考块的图像值得到预测值以及对应的运动矢量,将编码块实际值与预测值相减得到预测残差,运动矢量表示编码块相对于参考块的位移。在变换单元208处,将空间域中的预测残差以及矢量信息变换到频率域,并可以对变换系数进行编码。变换的方法可以为离散傅里叶变换或者离散余弦变换等等,矢量信息可以为表示位移的实际运动矢量或者运动矢量差值,运动矢量差值为实际运动矢量与预测运动矢量的差值。
在量化单元210处,将变换后的数据映射成另一个数值,例如可以通过变换后的数据除以量化步长得到一个较小的值。量化参数是量化步长对应的的序号,根据量化参数可以查找到对应的量化步长。量化参数小,则图像帧的大部分的细节都会被保留,对应的码率高。量化参数大,则对应的码率低,但图像失真较大、质量不高。量化的原理用公式表示如下:FQ=round(y/Qstep)。其中,y为量化之前视频帧对应的值,Qstep为量化步长,FQ为对y进行量化得到的量化值。Round(x)函数指将取值进行四舍五入取偶,即四舍六入五取偶。量化参数与量化步长的对应关系具体可以根据需要进行设置。例如,在一些视频编码标准中,对于亮度编码而言,量化步长共有52个值,为0~51之间的整数,对于色度编码,量化步长的取值为0~39之间的整数,且量化步长随着量化参数的增加而增加,每当量化参数增加6,量化步长便增加一倍。
熵编码单元220用于进行熵编码,熵编码为按熵原理进行编码,且不丢失任何信息的数据编码方式,能够利用较小的字符来表达一定的信息。熵编码方法例如可以为香农编码(shannon)或者哈夫曼编码(huffman)等。
第一反量化单元212、第一反变换单元214、第一重建单元216以及参考信息自适应单元218是重建路径对应的单元,利用重建路径的各个单元进行帧的重建得到参考帧,能够保持编码以及解码中参考帧的一致。其中第一反量化单元212进行的步骤是进行量化的逆过程,第一反变换单元214进行的步骤是是变换单元210进行变换的逆过程,第一重建单元216用于将反变换得到的残差数据加上预测数据得到重建参考帧。第一参考信息自适应单元218用于在待编码帧的分辨率下,对重建得到的当前参考帧、待编码帧的各个编码块对应的位置信息、当前参考帧的各个参考块对应的位置信息以及运动矢量中等参考信息中的至少一个进行自适应处理,使第一预测单元206根据自适应处理后的参考信息进行预测。
图3为一个实施例中提供的视频解码方法对应的解码框架图,本发明实施例提供的视频解码方法可以通过编码数据获取单元300获取待解码视频序列的各个待解码视频帧对应的编码数据,通过熵解码单元302进行熵解码后,得到熵解码数据,第二反量化单元304对熵解码数据进行反量化,得到反量化数据,第二反变换单元306对反量化数据进行反变换,得到反变换的数据,该反变换的数据可以与图2中第一反变换单元214进行反变换后得到的数据是一致的。分辨率信息获取单元308用于获取待解码视频帧对应的分辨率信息。第二参考信息自适应单元312用于获取第二重建单元重建得到当前参考帧,根据待解码视频帧的分辨率信息对当前参考帧、待解码视频帧的各个待解码块对应的位置信息、当前参考帧的各个参考块对应的位置信息以及运动矢量等参考信息中的至少一个进行自适应处理,根据自适应处理后的信息进行预测。第二预测单元314根据自适应后得到的参考信息获取待解码块对应的参考块,根据参考块的图像值得到与图2中的预测值一致的预测值。第二重建单元310根据预测值以及反变换的数据即预测残差进行重建,得到重建视频帧。第二处理单元316根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。播放存储单元318可以对解码视频帧进行播放或者存储,或者进行播放以及存储。
可以理解,上述的编码框架图、解码框架图仅是一种示例,并不构成对本申请方案所应用于的编码方法的限定,具体的编码框架图以及解码框架图可以包括比图中所示更多或更少的单元,或者组合某些单元,或者具有不同的部件单元不知。例如,还可以对重建视频帧进行环路滤波,降低视频帧的方块效应,以提高视频质量。
可以将待编码帧划分为多个编码块,编码块的大小可以根据需要进行设置或者计算得到。例如编码块的大小可以均为8*8像素。或者可以通过计算各种编码块的划分方式对应的率失真代价,选择率失真代价小的划分方式进行编码块的划分。如图4所示为一个64*64像素图像块的划分示意图,一个方块代表一个编码块。由图4可知,编码块的大小可以包括32*32像素、16*16像素、8*8像素以及4*4像素。当然,编码块的大小也可是其他大小,例如可以是32*16像素或者是64*64像素。可以理解,在解码时,由于编码块与待解码块是一一对应的,因此待解码块的像素大小也可以包括32*32像素、16*16像素、8*8像素以及4*4像素等。
如图5所示,在一个实施例中,提供了一种视频编码方法。本实施例主要以该方法应用于上述图1中的终端110或服务器120来举例说明。参照图5,该视频编码方法具体包括如下步骤:
步骤502,获取输入视频帧。
具体地,视频帧是构成视频的单位,一个视频序列可以包括多个输入视频帧。输入视频帧可以是实时采集的视频帧,例如可以是通过终端的摄像头实时获取的视频帧,也可以是预先存储的视频序列对应的视频帧。输入视频帧可以根据编码算法确定对应的编码帧预测类型,编码帧预测类型包括可以是I帧、P帧或者B帧,其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧,P帧与B帧的各个编码块可以采用帧内预测方式也可以采用帧间预测方式进行编码。
步骤504,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式。
其中,处理参数是用来确定处理方式的参数,处理参数在解码过程中能够重现是指在解码的过程中能够得到或者产生该处理参数,从而不需要将处理方式对应的信息携带在编码数据中,解码端在获取到与编码端一致的处理参数后,能确定与编码端一致的处理方式。具体采用的处理参数可以根据需要进行设置,只需要在保证在解码过程中能够重现,例如处理参数可以包括历史编码信息以及重建帧对应的图像特征的至少一种。处理参数在解码过程中能够重现的信息都是在码流中存在的信息或者是能够通过码流中编码的信息推导的信息,但是一些编码端进行多次尝试和搜索过程都是非最优选择,则并不会在解码端重现,这样的信息就认为不能在解码过程中能够重现。
其中,处理方式是从候选的处理方式中选取的,候选的处理方式包括全分辨率处理方式和下采样处理方式。其中全分辨率处理方式是指对输入视频帧进行全分辨率处理,得到待编码帧。而下采样处理方式是指对输入视频帧进行下采样处理,得到待编码帧。例如,当输入视频帧的分辨率为800*800像素,处理方式为水平以及垂直方向均进行1/2下采样时,下采样待编码帧的分辨率为400*400像素。
在一个实施例中,当输入视频帧对应的目标处理方式包括下采样处理方式时,还可以获取下采样比例以及下采样方法。其中,采样比例为采样后的分辨率除以采样前的分辨率得到的比值。下采样方法可以可采用直接平均、滤波器、bicubic interpolation双三次插值或者bilinear Interpolation双线性插值等。下采样比例可以是预先设置的也可以灵活地调整下采样比例。例如,可以设置下采样的比例均为1/2。可以是输入视频序列的第一个输入视频帧的下采样比例为1/2,第二个输入视频帧的下采样比例为1/4。可以根据输入视频帧在视频组的编码位置得到下采样比例,其中编码位置越后,则下采样比例越小。下采样方向可以是垂直下采样、水平下采样以及垂直和水平下采样结合中的一种。例如若采样前的视频帧分辨率为800*800像素,当下采样比例为1/2且为进行水平下采样,则采样后视频帧的分辨率为400*800像素。当下采样比例为1/2且为进行垂直下采样,采样后视频帧的分辨率为800*400像素。
在一个实施例中,下采样的比例可以根据执行视频编码方法的设备如终端或者服务器的处理器能力得到。处理器处理能力强的设备对应的下采样比例大,处理器处理能力弱的设备对应的下采样比例小。可以设置处理器处理能力与下采样比例的对应关系,当需要进行编码时,获取处理器处理能力,根据处理器处理能力得到对应的下采样比例。例如,可以设置16位处理器对应的下采样比例为1/8,32位处理器对应的下采样比例为1/4。
在一个实施例中,下采样的比例可以根据输入视频帧作为参考帧的频率或者次数得到,可以设置下采样比例与输入视频帧作为参考帧的频率或者次数的对应关系。其中,输入视频帧作为参考帧的频率高或者次数多,则下采样比例大。输入视频帧作为参考帧的频率低或者次数少,则下采样比例小。例如,对于I帧,作为参考帧的频率高,则对应的下采样比例大,可以为1/2。对于P帧,作为参考帧的频率低,则对应的下采样比例小,例如可以为1/4。通过根据输入视频帧作为参考帧的频率或者次数得到下采样比例,当输入视频帧作为参考帧的频率高或者次数多时,图像质量较好,因此能够提高进行预测的准确度,减小预测残差,提高编码图像的质量。
在一个实施例中,下采样的方法可以根据执行视频编码方法的设备如终端或者服务器的处理器能力得到。对于处理器处理能力强的设备对应的下采样方法复杂度高,处理器处理能力弱的设备对应的下采样方法复杂度低。可以设置处理器处理能力与下采样方法的对应关系,当需要进行编码时,获取处理器处理能力,根据处理器处理能力得到对应的下采样方法。例如,bicubic interpolation双三次插值比bilinear Interpolation双线性插值的复杂度高,因此你可以设置16位处理器对应的下采样方法为bilinear Interpolation双线性插值,32位处理器对应的下采样方法bicubic interpolation双三次插值。
本发明实施例中,在对输入视频帧采用下采样处理方式处理时,还可按照不同的下采样方法或下采样比例进行下采样,对输入视频帧进行处理的方式更为灵活。
在一个实施例中,可以根据输入视频帧对应的当前编码信息以及图像特征信息中的至少一种得到输入视频帧对应的目标处理方式。当前编码信息是指视频在编码时得到的视频压缩参数信息,如帧预测类型、运动向量、量化参数、视频来源、码率、帧率以及分辨率的一种或多种。图像特征信息是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。当前编码信息以及图像特征信息反映了视频帧对应的场景、细节复杂度或者运动剧烈程度等,如通过运动向量、量化参数或者码率中的一个或多个等可判断运动场景,量化参数大则一般运动剧烈,运动向量大则代表图像场景是大运动场景。还可根据已编码I帧与P帧或已编码I帧与B帧的码率比值判断,如果比值超过第一预设阈值,则判断为静止图像,如果比值小于第二预设阈值,则可判断为运动剧烈图像。或直接根据图像内容跟踪目标对象,根据目标对象的运动速度确定是否为大运动场景。码率一定时能表达的信息量一定,对于运动剧烈的场景,时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样模式进行编码。通过帧预测类型可确定画面切换场景,也可根据帧预测类型对其它帧的影响确定倾向于的处理方式。如I帧一般为首帧或存在画面切换,I帧的质量影响了后续P帧或B帧的质量,所以帧内预测帧相比于帧间预测帧更倾向于选择全分辨率处理方式,以保证图像质量。因为P帧可作为B帧的参考帧,P帧图像质量影响了后续B帧的图像质量,所以如果采用P帧编码则相比于采用B帧编码更倾向于选择全分辨率处理方式。通过图像特征信息,如图像纹理信息确定待编码视频帧的纹理复杂度,如果纹理复杂,包含的细节多,则图像空域信息多,如果进行下采样,可能由于下采样损失较多细节信息,影响视频质量,所以纹理复杂的待编码视频帧相比于纹理简单的待编码视频帧更倾向于选择全分辨率处理。
在一个实施例中,可以根据输入视频帧对应的当前量化参数以及量化参数阈值的大小关系得到输入视频帧对应的处理方式。如果当前量化参数大于量化参数阈值,则确定目标处理方式为下采样处理方式,否则确定目标处理方式为全分辨率处理方式。量化参数阈值可以根据在输入视频帧之前,已编码的前向编码视频帧的帧内编码块的比例得到,可以预先设置帧内预测块比例与量化参数阈值的对应关系,从而在确定了当前帧的帧内预测块比例后,可以根据对应关系确定与当前帧的帧内预测块比例对应的量化参数阈值。对于固定量化参数编码,当前量化参数可以是对应的固定量化参数值。对于固定码率编码,则可以根据码率控制模型计算得到输入视频帧对应的当前量化参数。或者,可以将参考帧对应的量化参数作为输入视频帧对应的当前量化参数。本发明实施例中,当前量化参数越大一般运动越剧烈,对于运动剧烈的场景更倾向于选择下采样处理方式。
在一个实施例中,帧内预测块比例与量化参数阈值的关系为正相关关系。比如,可以根据经验,预先确定帧内预测块比例Intra0与量化参数阈值QPTH的对应关系为:
步骤506,根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
其中,对输入视频帧进行编码是根据目标处理方式进行编码得到输入视频帧对应的编码数据的。在获取到目标处理方式后,根据目标处理方式对输入视频帧进行处理,得到待编码帧,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。具体地,待编码帧是根据目标处理方式对输入视频帧进行处理之后得到的。当目标处理方式为全分辨率处理方式时,则可以将输入视频帧作为待编码帧。当目标处理方式为下采样处理方式时,则可以对输入视频帧进行下采样处理,得到待编码帧。当例如,当输入视频帧的分辨率为800*800像素,目标处理方式为水平以及垂直方向均进行1/2下采样时,下采样待编码帧的分辨率为400*400像素。
编码可以包括预测、变换、量化以及熵编码中的至少一个。例如可以获取待编码帧对应的参考帧,根据当前参考帧进行预测得到预测残差,并对预测残差进行变换、量化以及熵编码等得到输入视频帧对应的编码数据。例如,在计算预测残差时,可以根据待编码帧的分辨率信息对当前参考帧进行处理,得到与待编码帧的分辨率一致的目标参考帧,再从目标参考帧中获取待编码帧中各个编码块对应的参考块,根据参考块进行预测,得到编码块对应的预测值,再根据编码块的实际值与预测值的差值得到预测残差,在计算运动矢量值时,如果参考帧的分辨率不同,则可以根据参考帧与待编码帧的分辨率对编码块的位置信息或者解码块的位置信息进行变换。再根据变换后的位置信息得到运动矢量值。例如,假设待编码帧的分辨率为400*800像素,当前参考帧的分辨率为800*1600像素。则可以根据待编码帧的分辨率对当前参考帧进行处理,得到对应的目标参考帧,再根据目标参考帧进行视频编码。例如,对当前参考帧的宽与高进行1/2下采样,得到目标参考帧的分辨率为400*800像素。
上述视频编码方法,获取输入视频帧,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,该处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式,最后根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。能够灵活选择视频帧的处理方式,对输入视频帧进行处理,使得解码过程能够重现编码过程的处理参数,从而提高在带宽有限下的视频编码质量,且能够得到准确的编码数据。
在一个实施例中,获取输入视频帧对应的处理参数,包括:获取输入视频帧对应的帧类型,根据帧类型获取输入视频帧对应的处理参数。
具体地,帧类型是指视频帧的预测类型,帧预测类型可以是I帧、P帧或者B帧,其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧,P帧与B帧的各个编码块可以采用帧内预测方式也可以采用帧间预测方式进行编码。可以设置帧的预测类型与处理参数的对应关系,当获取到输入视频帧对应的帧类型,根据帧的预测类型与处理参数的对应关系得到输入视频帧对应的处理参数。不同的帧类型对应的处理参数的参数类型以及参数数值中的至少一个是不同的。
在一个实施例中,可以根据输入视频帧作为参考帧的频率或者次数设置对应的处理参数的具体数值。输入视频帧作为参考帧的频率高或者次数多,则根据对应的处理参数得到的目标处理方式为全分辨率处理方式的可能性越大。例如,对于I帧,作为参考帧的频率高。则在当处理参数包括当前量化参数以及量化参数阈值,确定处理方式的规则为:当前量化参数大于量化参数阈值,则确定处理方式为下采样方式,否则确定处理方式为全分辨率处理方式时,I帧对应的量化参数阈值比P帧以及B帧对应的量化参数阈值小,以使得I帧对应的目标处理方式为全分辨率处理方式的可能性比P帧以及B帧大。
在一个实施例中,对于P帧与B帧,可以根据其前向编码视频帧中的帧内编码块的比例得到对应的处理方式,而对于I帧,由于I帧是帧内编码预测类型,因此其前向编码视频帧中的帧内编码块的比例对确定处理方式的参考意义不大,因为即使其前向编码视频帧中帧内编码块的比例大,但在帧内的编码块的相关性大的情况下,I帧对应的编码数据也较小,因此对I帧进行下采样处理后再编码的效果与在全分辨率下直接进行编码的效果相比,并不会有大幅度的提升。故对于I帧,可以根据I帧的图像特征信息确定对应的处理方式。例如,如果根据I帧的图像内容,如果确定I帧对应运动剧烈的场景,则I帧对应的时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样处理方式作为I帧对应的处理方式。
本实施例中,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式。
具体地,不同的帧类型对应的确定处理方式的方法可以不同也可以相同,例如,如果不同帧类型对应的处理参数的参数类型相同,处理参数的具体数值不同,则可以采用相同的处理方式确定方法确定对应的目标处理方式。如果不同帧类型对应的处理参数的参数类型不同,则可以采用不同的处理方式确定方法。得到处理参数后,根据处理参数从候选处理方式中确定处理方式,根据处理参数确定目标处理方式可以参照上述实施例中确定处理方式的方法,本发明实施例在此不在赘述。
本发明实施例中,通过设置帧类型与处理参数的对应关系,可以灵活地根据输入视频帧的预测类型确定目标处理方式,提高编码质量。
在一个实施例中,如图6所示,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:
步骤602,获取输入视频帧对应的码率信息,获取输入视频帧对应的原始分辨率信息和第一阈值。
其中,码率信息是与码率相关的信息,码率信息是决定视频画面质量的重要因素,其中,码率信息包括但不限于目标码率等等。原始分辨率信息是与原始图像对应的分辨率相关的信息,例如可以是原始分辨率的宽和高计算得到信息等等。具体地,获取输入视频帧对应的码率信息,再根据输入视频帧获取对应的原始分辨率信息,和预先设置的第一阈值,其中第一阈值是用来与所述原始分辨率信息进行比较从而得到输入视频帧对应的目标方式的,第一阈值可根据实际需要进行设置。
步骤604,根据码率信息和原始分辨率信息计算得到对应的比例结果。
步骤606,根据比例结果和第一阈值确定输入视频帧对应的目标处理方式。
具体地,在获取到输入视频帧对应的码率信息,以及对应的原始分辨率信息和第一阈值后,根据码率信息和原始分辨率信息计算得到对应的比例结果,具体计算可以是但不限于将码率信息和原始分辨率信息的比值作为对应的比例结果。例如,获取到的输入视频帧对应的码率信息为目标码率,原始分辨率信息为原始分辨率的宽和高的乘积,那么根据码率信息和原始分辨率信息计算得到对应的比例结果k为:目标码率/原始分辨率的宽*高。
进一步地,处理方式是从候选的处理方式中选取的,候选的处理方式包括全分辨率处理方式和下采样处理方式。具体地,在根据码率信息和原始分辨率信息计算得到对应的比例结果后,根据比例结果和获取到的第一阈值确定输入视频帧对应的目标处理方式。当输入视频帧对应的的目标码率小于预设阈值时,分配给输入视频帧的比特数少,如果按原分辨率编码会导致解码图像质量偏低,但是如果采用下采样分辨率编码,则可以得到一个高质量的下采样分辨率编码图像,所以在这种较低码率的时候,选择去编码一个较高质量的下采样分辨率帧。因此当比例结果小于获取到的第一阈值时,将输入视频帧对应的目标处理方式确定为下采样处理方式,否则将输入视频帧对应的目标处理方式确定为全分辨率处理方式。
在一个实施例中,如图7所示,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:
步骤702,计算目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例。
步骤704,根据比例确定输入视频帧对应的目标处理方式。
具体地,预测类型编码块是帧预测类型对应的编码块。目标预测类型的比例可以是帧内编码块对应的比例以及帧间编码块对应的比例中的一种或两种。目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例可以是该目标预测类型编码块与其他预测类型编码块的比例,也可以是该类型编码块与总编码块数量的比例。具体可以根据需要进行设置。例如可以获取前向编码视频帧中帧内编码块的第一数量,前向编码视频帧中帧间编码块的第二数量。根据第一数量和第二数量计算得到帧内编码块与帧间编码块的比例,或者统计前向编码视频帧的全部编码块的第三数量,根据第一数量和第三数量计算得到帧内编码块与第三数据量的比例。还可根据第二数量和第三数量计算得到帧间编码块与第三数据量的比例。
前向编码视频帧是指对输入视频帧进行编码之前已经编码的视频帧,获取的前向编码视频帧的具体数量可自定义,例如,前向编码视频帧可以是输入视频帧的前一个已编码的编码视频帧,前向编码视频帧也可以是输入视频帧的前3个已编码的编码视频帧。在计算得到目标预测类型编码块对应的在前向编码视频帧中的比例后,根据计算得到的比例确定输入视频帧对应的目标处理方式。若获取到的前向编码视频帧的数量为多个时,可以计算得到不同类型编码块对应的在每一个前向编码视频帧中的比例,根据各个比例进行加权计算得到总比例,再根据总比例和预设阈值确定输入视频帧对应的目标处理方式。其中,前向视频帧对应的权重可以与前向编码视频帧与输入视频帧的编码距离成负相关关系。
在一个实施例中,如图8所示,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:
步骤802,计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例。
步骤804,当比例大于第二阈值时,确定目标处理方式为下采样处理方式。
具体地,获取输入视频帧对应的前向编码视频帧后,根据前向编码视频帧对应的编码数据,计算帧内编码块在前向编码视频帧的比例。帧内编码块在前向编码视频帧的比例可以通过前向编码视频帧中帧内编码块与前向编码视频帧编码块总数量来反映,或通过前向编码视频帧中帧内编码块与帧间编码块的比例来反映。
具体地,可以先获取前向编码视频帧中帧内编码块的数量,再统计前向编码视频块的总数量,根据帧内编码块的数量和前向编码视频块的总数量计算得到帧内编码块在前向编码视频帧中的比例,如将帧内编码块的数量和前向编码视频块的总数量的比值作为该比例。或者,先获取前向编码视频帧中帧内编码块的第一数量,和获取前向编码视频帧中帧间编码块的第二数量,根据帧内编码块的第一数量和帧间编码块的第二数量计算得到帧内编码块在前向编码视频帧的比例,如将帧内编码块的第一数量和帧间编码块的第二数量的比值作为该比例。
对于帧内编码块对应的比例,可以是当该比例大于第二阈值时,确定输入视频帧对应的目标处理方式为下采样处理方式,否则确定视频帧对应的目标处理方式为全分辨率处理方式。如,当比例大于第二阈值时,确定输入视频帧对应的处理方式为下采样处理方式,否则确定视频帧对应的目标处理方式为全分辨率处理方式。
本发明实施例中,如果帧内编码块的比例大,则说明视频会相对比较复杂或者视频帧之间的相关度比较低,因此得到的预测残差比较大,因此更倾向于采用下采样处理方式进行编码,减少编码数据量。
其中,第二阈值可根据输入视频帧对应的参考帧的处理方式进行确定。当输入视频帧对应的参考帧的处理方式为下采样处理方式时,获取第一预设阈值T1,将第一预设阈值T1作为第二阈值。同样地,当输入视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为第二阈值。进一步地,在根据输入视频帧对应的参考帧的分辨率信息获取到第二阈值后,根据第二阈值和前向编码视频帧中帧内编码块在前向编码视频帧中的比例确定输入视频帧的处理方式。其中,当前向编码视频帧中帧内编码块在前向编码视频帧中的比例大于第二阈值时,确定输入视频帧对应的处理方式为下采样处理方式。
在一个实施例中,当输入视频帧对应的参考帧的处理方式为下采样处理方式时,获取第一预设阈值T1,将第一预设阈值T1作为第二阈值,计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例为S,则当S大于T1时,则确定输入视频帧对应的目标处理方式为下采样处理方式,否则确定输入视频帧对应的目标处理方式为全分辨率处理方式。
在另一个实施例中,当输入视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为第二阈值,计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例为S,则当S大于T2时,则确定输入视频帧对应的目标处理方式为下采样处理方式,否则确定输入视频帧对应的目标处理方式为全分辨率处理方式。
应当说明的是,当输入视频帧为一个GOP中的第二帧时,那么输入视频帧对应的前向编码视频帧为第一帧,第一帧通常为帧内预测帧I帧,由于预测帧内帧I帧内只有帧内编码块,则前向编码视频帧中帧内编码块在前向编码视频帧中的比例为100%,因此当确定输入视频帧为一个GOP中的第二帧对应的目标处理方式,则采用图6所示的方法确定。
在一个实施例中,如图9所示,在图8所示的视频编码方法的基础上,该视频编码方法还包括:
步骤902,获取输入视频帧对应的参考帧对应的处理方式。
步骤904,根据处理方式确定第二阈值。
其中第二阈值可根据输入视频帧对应的参考帧的处理方式进行确定。当输入视频帧对应的参考帧的处理方式为下采样方式时,获取第一预设阈值T1,将第一预设阈值T1作为第二阈值。同样地,当输入视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为第二阈值。进一步地,在根据输入视频帧对应的参考帧的分辨率信息获取到第二阈值后,根据第二阈值和前向编码视频帧中帧内编码块在前向编码视频帧中的比例确定输入视频帧的处理方式。其中,当前向编码视频帧中帧内编码块在前向编码视频帧中的比例大于第二阈值时,确定输入视频帧对应的处理方式为下采样处理方式。
在一个实施例中,第二预设阈值大于第一预设阈值,这样,当当前参考帧对应的处理方式全分辨率处理方式时,输入视频帧更倾向于采用全分辨率处理方式,当当前参考帧为下采样处理方式时,输入视频帧更倾向于采用下采样处理方式。
在一个实施例中,如图10所示,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:
步骤1002,获取输入视频帧对应的当前量化参数。
步骤1004,获取输入视频帧对应的量化参数阈值。
步骤1006,根据当前量化参数与量化参数阈值的大小关系确定输入视频帧对应的处理方式。
具体地,可以根据输入视频帧对应的当前量化参数以及量化参数阈值的大小关系得到输入视频帧对应的处理方式。如果当前量化参数大于量化参数阈值,则确定处理方式为下采样方式,否则确定处理方式为全分辨率处理方式。量化参数阈值可以根据在输入视频帧之前,已编码的前向编码视频帧的帧内编码块的比例得到,可以预先设置帧内预测块比例与量化参数阈值的对应关系,从而在确定了当前帧的帧内预测块比例后,可以根据对应关系确定与当前帧的帧内预测块比例对应的量化参数阈值。对于固定量化参数编码,当前量化参数可以是对应的固定量化参数值。对于固定码率编码,则可以根据码率控制模型计算得到输入视频帧对应的当前量化参数。或者,可以将参考帧对应的量化参数作为输入视频帧对应的当前量化参数。本发明实施例中,当前量化参数越大一般运动越剧烈,对于运动剧烈的场景更倾向于选择下采样处理方式。
在一个实施中,帧内预测块比例与量化参数阈值的关系为正相关关系,比如,可以根据经验,预先确定当前帧的帧内预测块比例Intra0与量化参数阈值QPTH的对应关系为:
在一个实施例中,如图11所示,根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据,包括:
步骤1102,根据目标处理方式对输入视频帧进行处理,得到待编码帧。
步骤1104,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。
具体地,待编码帧是根据所述目标处理方式对输入视频帧进行处理之后得到的。当目标处理方式为全分辨率处理方式时,则可以将输入视频帧作为待编码帧。当目标处理方式为下采样处理方式时,则可以对输入视频帧进行下采样处理,得到待编码帧。当例如,当输入视频帧的分辨率为800*800像素,目标处理方式为水平以及垂直方向均进行1/2下采样时,下采样待编码帧的分辨率为400*400像素。
进一步地,对待编码帧进行编码是在待编码帧的分辨率的条件下进行的。编码可以包括预测、变换、量化以及熵编码中的至少一个。例如可以获取待编码帧对应的参考帧,根据当前参考帧进行预测得到预测残差,并对预测残差进行变换、量化以及熵编码等得到输入视频帧对应的编码数据。例如,在计算预测残差时,可以根据待编码帧的分辨率信息对当前参考帧进行处理,得到与待编码帧的分辨率一致的目标参考帧,再从目标参考帧中获取待编码帧中各个编码块对应的参考块,根据参考块进行预测,得到编码块对应的预测值,再根据编码块的实际值与预测值的差值得到预测残差,在计算运动矢量值时,如果参考帧的分辨率不同,则可以根据参考帧与待编码帧的分辨率对编码块的位置信息或者解码块的位置信息进行变换。再根据变换后的位置信息得到运动矢量值。例如,假设待编码帧的分辨率为400*800像素,当前参考帧的分辨率为800*1600像素。则可以根据待编码帧的分辨率对当前参考帧进行处理,得到对应的目标参考帧,再根据目标参考帧进行视频编码。例如,对当前参考帧的宽与高进行1/2下采样,得到目标参考帧的分辨率为400*800像素。在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
具体地,处理方式信息用于描述输入视频帧是采用的处理方式,可以在编码数据中加入描述处理方式的标志位Frame_Resolution_Flag,即在编码数据中加入描述处理方式信息的语法元素。各个处理方式对应的标志位的值可以根据需要设置。例如,当处理方式为全分辨率处理方式时,对应的Frame_Resolution_Flag可以为0,当处理方式为下采样处理方式时,对应的Frame_Resolution_Flag可以为1。在一个实施例中,处理方式信息添加至编码数据对应的帧级头信息中,例如可以添加到帧级头信息的预设位置中,帧级头信息是输入视频帧对应的编码数据的头信息,序列级头信息是指视频序列对应的编码数据的头信息,组级头信息是指视频组(GOP,Groups of Picture)对应的编码数据的头信息。一个视频帧序列可以包括多个视频组,一个视频组可以包括多个视频帧。图11A中虚线所指的方框表示各个输入视频帧对应的编码数据的帧级头信息,frame分别代表第1个、第2个以及第n个视频帧对应的编码数据。其中,图11A中,第一个输入视频帧以及第二个输入视频帧对应的处理方式为全分辨率处理方式,第三个输入视频帧对应的处理方式为下采样处理方式。
在一个实施例中,还可以将对输入视频帧进行下采样的下采样处理方式信息添加至输入视频帧对应的编码数据中,以使解码端在获取到编码数据时,能够根据下采样处理方式信息获取对应的对重建视频帧进行上采样的方法以及上采样比例。下采样处理方式信息包括下采样方法信息以及下采样比例信息中的至少一种。下采样方法信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的一个,下采样方法信息在编码数据的添加位置可以根据下采样方法对应的作用范围确定。下采样比例信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的任一个。下采样比例信息在编码数据的添加位置可以根据下采样比例对应的作用范围确定,作用范围是指适用的范围。例如,如果下采样比例作用的范围是一个视频组,则可以将该视频组对应的下采样比例信息添加到该视频组对应的头信息中。如果下采样比例作用的范围是视频序列,将下采样比例信息添加至该视频序列对应的序列级头信息,表示该视频序列的各个视频帧采用下采样比例信息对应的下采样比例进行下采样处理。
在一个实施例中,获取输入视频帧对应的处理方式包括:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
具体地,处理参数可以包括输入视频帧对应的图像编码信息以及图像特征信息中的至少一个。处理参数在解码过程中不能重现是指在解码的过程中不能得到或者不会产生该处理参数。例如,如果处理参数是与输入视频帧的图像内容对应的信息,而在编码过程中图像信息是存在损失的,则解码端的解码视频帧与输入视频帧存在差别,因此,解码过程中不会得到输入视频帧的图像内容对应的信息,即图像内容对应的信息在解码过程中不能重现。编码过程中需要计算率失真代价,而解码过程中不计算率失真代价,则当处理参数包括率失真代价时,则该处理参数不能在解码过程中重现。对于编码过程中得到的重建视频帧与输入视频帧的PSNR(Peak Signal to Noise Ratio,峰值信噪比)信息,解码过程中不能得到,因此PSNR信息在解码过程中不能重现。
在一个实施例中,当处理参数在解码端中能够重现时,可以将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中,也可以不将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。其中,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中时,解码端可以从编码数据中读取处理方式信息,无需再根据处理数据得到处理方式。当不将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中时,由解码设备根据处理参数确定出与编码端一致的处理方式,可以减少编码数据的数据量。
在一个实施例中,如图12所示,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:
步骤1202,获取待编码帧对应的当前参考帧。
具体地,当前参考帧是对待编码帧进行编码时所需参考的视频帧,当前参考帧是待编码帧之前已编码得到的数据进行重建得到的视频帧。待编码帧对应的当前参考帧的个数可为一个或多个。例如当待编码帧为P帧,则对应的参考帧可以为1个。当待编码帧为B帧,则对应的参考帧可以为2个。待编码帧对应的参考帧可以是根据参考关系得到的,参考关系根据各个视频编解码标准确定。例如,对于一个视频图像组(GOP、Group Of Picture)中的第二个视频帧,为B帧,对应的参考帧可以是该视频组的I帧以及视频组的第4帧对应的进行编码后,再解码重建得到的视频帧。
在一个实施例中,获取待编码帧对应的当前参考帧包括:获取第一参考规则,第一参考规则包括待编码帧与当前参考帧的分辨率大小关系;根据第一参考规则获取待编码帧对应的当前参考帧。
具体地,第一参考规则确定了待编码帧与当前参考帧的分辨率大小限制关系,分辨率大小关系包括待编码帧与当前参考帧的分辨率相同以及不同的至少一种。当第一参考规则包括待编码帧与当前参考帧的分辨率相同时,第一参考规则还可以包括待编码帧与当前参考帧的分辨率的处理方式参考规则。例如处理方式参考规则可以包括全分辨处理方式的待编码帧可以参考全分辨率处理方式的参考帧以及下采样处理方式的待编码帧可以参考下采样处理方式的参考帧的一种或两种。当第一参考规则包括待编码帧与参考帧的分辨率不相同时,第一参考规则还可以包括待编码帧的分辨率大于参考帧的分辨率以及待编码帧的分辨率小于参考帧的分辨率的一种或两种。因此,在一个实施例中,第一参考规则具体可以包括原始分辨率待编码帧可以参考下采样分辨率参考帧、下采样分辨率待编码帧可以参考原始分辨率参考帧、原始分辨率待编码帧可以参考原始分辨率参考帧、以及下采样分辨率待编码帧可以参考下采样分辨率的参考帧中的一种或多种。其中原始分辨率待编码帧是指该待编码帧的分辨率与其对应的输入视频帧的分辨率相同,原始分辨率参考帧是指该参考帧的分辨率与其对应的输入视频帧的分辨率相同。下采样分辨率待编码帧是指该待编码帧是对应的输入视频帧进行下采样处理得到的。下采样分辨率参考帧是指该参考帧是对应的输入视频帧进行下采样处理得到的。得到第一参考规则后,根据第一参考规则获取待编码帧对应的当前参考帧,使得到的当前参考帧满足第一参考规则。
在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将第一参考规则对应的规则信息添加至输入视频帧对应的编码数据中。
具体地,规则信息用于描述采用的参考规则,可以在编码数据中加入描述参考规则的标志位Resolution_Referencer_Rules。具体的标志位的值所代表的参考规则可以根据需要设置。规则信息在编码数据的添加位置可以是组级头信息、序列级头信息以及帧级头信息中的一个或多个,规则信息在编码数据的添加位置可以根据第一处理参考规则的作用范围确定。例如,当第一参考规则为原始分辨率待编码帧可以参考下采样分辨率参考帧时,对应的Resolution_Referencer_Rules可以为1,当第一参考规则为下采样分辨率待编码帧可以参考下采样分辨率的参考帧时,对应的Resolution_Referencer_Rules可以为2。若视频序列采用相同的第一参考规则,则规则信息在编码数据的添加位置可以是序列级头信息。若第一参考规则是其中的一个视频组采用的参考规则,则规则信息在编码数据的添加位置是采用第一参考规则的视频组对应的组级头信息。
步骤1204,在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
具体地,可以获取待编码帧对应的当前参考帧,根据当前参考帧进行预测得到预测残差,并对预测残差进行变换、量化以及熵编码得到输入视频帧对应的编码数据。其中,得到编码数据的过程中,根据待编码帧的分辨率对当前参考帧、待编码帧的各个编码块对应的位置信息、当前参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理。得到当前参考帧后,可以从当前参考帧中获取与待编码帧的编码块对应的参考块,根据参考块对编码块进行编码。也可以根据待编码帧的分辨率对当前参考帧进行处理,得到对应的目标参考帧,从目标参考帧中获取与待编码帧的编码块对应的目标参考块,根据目标参考块对编码块进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:在待编码帧的分辨率下,获取待编码帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据中。
具体地,编码方式是与进行编码有关的处理方式。例如可以包括编码时对参考帧进行解码重建后的视频帧采用的上采样方式、参考规则对应的规则以及对参考帧进行采样处理的采样方式以及运动矢量对应的分辨率中的一个或多个。通过将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据,解码时可以根据编码方式信息对待解码视频帧对应的编码数据进行解码。
在一个实施例中,也可以不将编码方式对应的编码方式信息添加到编码数据中。而是在编解码标准中预先设置编码方式,在解码端中设置与该编码方式对应的解码方式。或者编码端与解码端可以根据相同或者对应的算法计算得到匹配的编码方式以及解码方式。例如,在编解码标准中预先设置编码时对当前参考帧进行上采样方法与解码时对当前参考帧进行上采样的方法相同。
在一个实施例中,如图13所示,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:
步骤1302,根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧。
具体地,目标参考帧,是对当前参考帧进行采样处理后得到的视频帧。采样处理是通过待编码帧的分辨率信息对当前参考帧进行采样,使得到的目标参考帧的分辨率信息匹配的过程。在进行采样处理时,可以先确定采样方式,采样方式包括直接分像素插值方式和采样后分像素插值方式中的一种。直接分像素插值方式直接对当前参考帧进行分像素插值处理,采样后分像素插值方式对当前参考帧进行采样处理后再分像素插值处理。
分像素插值是通过当前参考帧中整像素的参考数据插值得到分像素级别的参考数据的过程。比如,如图13A、13B所示,为一个实施例中对当前参考帧进行插值的示意图。参照图13A,A1、A2、A3、B1、B2、B3等像素点为当前参考帧中的2*2整像素点,根据这些整像素点的参考数据计算得到分像素点的参考数据,比如,可根据A1、A2、A3三个整像素点的参考数据取平均值计算得到分像素点a23的参考数据,根据A2、B2、C2三个整像素点的参考数据取平均值计算得到分像素点a21的参考数据,再根据分像素点a23、a21的参考数据计算得到分像素点a22的参考数据,实现对当前参考帧进行1/2像素精度插值。参照图13B,A1、A2、A3、B1、B2、B3等像素点为当前参考帧中的4*4整像素点,根据这些整像素点的参考数据计算得到15个分像素点参考数据,实现对当前参考帧进行1/4像素精度插值。比如,根据A2、B2整像素点的参考数据计算得到分像素点a8的参考数据,根据A2、A3整像素点的参考数据计算得到分像素点a2的参考数据,同理计算得到a1至a15共15个分像素点的参考数据,实现对整像素点A2的1/4像素精度插值。在对待编码帧进行编码的过程中,需要在当前参考帧中采用运动搜索技术找到与待编码帧中编码块相应的参考块,根据编码块相对于参考块的运动信息计算得到运动矢量,对运动矢量进行编码以告知解码端参考块对应的参考数据在当前参考帧中的位置,因而,通过对当前参考帧进行分像素插值处理得到目标参考帧,待编码帧就可以根据分辨率更高的目标参考帧进行运动估计,从而提高运动估计的准确度,提升编码质量。
在一个实施例中,编码端和解码端可在各自的编解码规则中设置根据当前参考帧进行处理得到目标参考帧时所采用的采样方式,采用的采样方式应当是一致的,在编、解码时就根据配置确定对当前参考帧进行处理所对应的采样方式。
在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将对当前参考帧进行采样处理对应的采样方式信息添加至当前参考帧对应的编码数据中。当前参考帧进行采样处理对应的采样方式信息在编码数据的添加位置可以是对应的序列级头信息、组级头信息以及帧级头信息中的任一个,采样方式信息在编码数据的添加位置可以根据采样方式对应的作用范围确定。可将采样方式信息添加至输入视频帧对应的编码数据的帧级头信息中,表示输入视频帧在被编码时对应的当前参考帧采用采样方式信息对应的采样方式进行分像素插值处理。例如,当编码数据的帧级头信息中用于确定采样方式的标识位Pixel_Sourse_Interpolation为0时,表示输入视频帧对应的当前参考帧采用直接进行分像素插值处理,在Pixel_Sourse_Interpolation为1时,表示输入视频帧对应的当前参考帧采用采样处理后再分像素插值处理。解码端就可按照编码数据中标识位所表示的分像素插值方式对当前参考帧进行分像素插值处理得到目标参考帧,从而可依据目标参考帧对编码数据进行解码得到重建视频帧。
在一个实施例中,可根据待编码帧的分辨率与当前参考帧的分辨率之间的比例关系确定对当前参考帧进行采样的比例。比如,输入视频帧的分辨率均为2M*2N,通过对当前输入视频帧按照全分辨率处理方式进行处理,即直接将当前输入视频帧作为待编码帧,则待编码帧的分辨率为2M*2N,而对可作为参考帧的输入视频帧按照下采样处理方式进行处理,得到下采样后的当前待编码参考帧的分辨率为M*2N,则重建后得到的相应的当前参考帧的分辨率也为M*2N,那么就确定对当前参考帧以宽2、高1的采样比例进行上采样处理,得到与待编码帧分辨率相同的帧。若通过对当前输入视频帧按照下采样处理方式进行处理,下采样后得到的待编码帧的分辨率为M*N,而对可作为参考帧的输入视频帧按照全分辨率处理方式进行处理,那么重建后得到的当前参考帧的分辨率为2M*2N,则确定对当前参考帧以宽、高均为1/2的采样比例进行下采样处理,得到与待编码帧分辨率相同的帧。
在一个实施例中,由于输入视频帧的分辨率一般是相同的,可根据输入视频帧进行下采样得到待编码帧所对应的下采样比例,以及对可作为参考帧的输入视频帧进行下采样得到待编码参考帧所对应的下采样比例,确定对当前参考帧进行采样的比例。比如,通过对输入视频帧以1/2的采样比例进行下采样处理得到待编码帧,通过对可作为参考帧的输入视频帧以1/4的采样比例进行下采样处理得到待编码参考帧,那么根据待编码参考帧的编码数据重建后得到的当前参考帧对应的下采样比例也是1/4,那么,根据两者下采样比例之间的倍数关系,可确定对当前参考帧以2的采样比例进行上采样处理得到与待编码帧分辨率相同的帧。
在一个实施例中,对当前参考帧进行采样的采样方法与对输入视频帧进行下采样得到待编码帧的采样算法匹配,即如果需要对当前参考帧进行下采样,则下采样算法与对待编码视频帧进行下采样得到待编码帧的下采样算法相同。如果需要对当前参考帧进行上采样,则上采样算法与对输入视频帧进行下采样得到当前待编码帧的下采样算法匹配的相反的采样算法。
本实施例中,对当前参考帧进行采样的采样算法与对待编码视频帧进行下采样得到当前编码视频帧的采样算法匹配,可进一步提高当前参考帧与当前编码视频帧的图像匹配度,进一步提高帧间预测的准确度,减小预测残差,提高编码图像的质量。
步骤1304,根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
具体地,得到目标参考帧后,从目标参考帧中搜索得到与编码块相似的图像块作为参考块,计算编码块与参考块的像素差值得到预测残差。根据编码块与对应的目标参考块的位移得到第一运动矢量。根据第一运动矢量以及预测残差得到编码数据。
在一个实施例中,可以根据目标运动矢量单位分辨率信息对第一运动矢量进行变换,得到在目标分辨率下的目标运动矢量,根据目标运动矢量以及预测残差得生成编码数据。其中,根据目标运动矢量单位分辨率信息对第一运动矢量进行变换,得到目标运动矢量的方法在后面描述。
在一个实施例中,也可以计算目标运动矢量和对应的预测运动矢量之间的矢量差值,对矢量差值进行编码,得到编码数据,进一步减少编码数据量。计算矢量差值的步骤可以包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。其中,目标预测运动矢量是在目标分辨率下的运动矢量,计算矢量差值的方法在后面描述。
在一个实施例中,根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
其中,运动估计像素精度是待编码帧中的编码块对应的运动矢量的单位长度。编码端在对待编码帧中的编码块进行编码时,可按照获取的运动估计像素精度将编码块对应的运动矢量的单位长度进行细化,这样得到的运动向量更为精细和准确,因而,需要按照获取的运动估计像素精度对当前参考帧进行采样处理得到目标参考帧,再依据目标参考帧计算待编码帧中各编码块对应的第一运动向量,基于该第一运动向量进行编码得到待编码帧对应的编码数据。
具体地,可获取当前参考帧的分辨率信息,根据待编码帧采用的分像素插值方式,以及待编码帧的分辨率信息、当前参考帧的分辨率信息以及待编码帧对应的运动估计像素精度确定对当前参考帧进行何种采样处理方法、采样处理对应的采样比例以及像素插值精度。运动估计像素精度的大小可以根据需要设置,例如一般为1/2像素精度、1/4像素精度或1/8像素精度。
在一个实施例中,可根据待编码帧的图像特征信息为该待编码帧配置相应的运动估计像素精度,图像特征信息比如该待编码帧的大小、纹理信息、运动速度等,可综合多种图像特征信息确定待编码帧对应的运动估计像素精度。待编码帧所携带的图像数据越复杂,图像信息越丰富,相应的运动估计像素精度更高。比如,在对P帧进行帧间预测时,可采用较高的运动估计像素精度计算P帧中各编码块对应的运动矢量,而在对B帧进行帧间预测时,可采用较低的运动估计像素精度计算B帧中各编码块对应的运动矢量。
在一个实施例中,根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
具体地,像素插值精度是对当前参考帧进行分像素插值对应的像素精度。当分像素插值方式为直接分像素插值方式,表示可对当前参考帧直接进行分像素插值处理得到目标参考帧。因此可以根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度。可以计算当前参考帧的分辨率信息与待编码帧的分辨率信息的比例,根据比例以及运动估计像素精度得到像素插值精度。
在一个实施例中,当当前参考帧的分辨率大于待编码帧的分辨率时,当前参考帧中部分分像素点的数据可直接复用,可作为与运动估计像素精度相应的分像素点对应的数据。比如,待编码帧的分辨率为M*N,当前参考帧的分辨率为2M*2N,若运动估计像素精度为1/2,像素插值精度为1,那么当前参考帧可直接作为目标参考帧;若运动估计像素精度为1/4,那么计算得到像素插值精度为1/2,可对当前参考帧以1/2像素插值精度进行分像素插值处理得到目标参考帧。
在一个实施例中,当待编码帧的分辨率信息所表示的分辨率与当前参考帧的分辨率相同时,则根据运动估计像素精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
具体地,通过全分辨处理方式对输入视频帧进行处理得到待编码帧,且当前参考帧的分辨率也是原分辨率时,则待编码帧的分辨率和当前参考帧的分辨率相同。或者,通过下采样处理方式对输入视频帧进行处理得到待编码帧,且当前参考帧帧也是采用相同采用比例的下采样处理方式编码得到的编码数据重建得到的,则待编码帧的分辨率和当前参考帧的分辨率相同。那么,就可以直接基于运动估计像素精度直接对当前参考帧进行分像素插值处理得到目标参考帧,并且,分像素插值处理对应的像素插值精度和运动估计像素精度相同。
在一个实施例中,根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
具体地,当待编码帧对应的分像素插值方式为采样后分像素插值方式,表示要对当前参考帧先进行采样处理,得到与待编码帧分辨率相同的中间参考帧,再对中间参考帧进行分像素插值处理得到对应的目标参考帧。
当待编码帧的分辨率信息所表示的分辨率小于当前参考帧的分辨率时,则根据待编码帧的分辨率信息对当前参考帧进行下采样处理,得到中间参考帧,然后基于待编码帧对应的运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。举例说明:通过对分辨率为2M*2N的输入视频帧按照下采样处理方式进行下采样处理得到分辨率为M*N的待编码帧,而当前参考帧的分辨率为2M*2N(全分辨率处理方式),则对当前参考帧按照1/2的采样比例进行下采样处理得到分辨率为M*N的中间参考帧,若获取的待编码帧对应的运动估计像素精度为1/2,再对中间参考帧按照与运动估计像素精度相同的像素插值精度,即1/2分像素插值精度进行分像素插值处理,得到目标参考帧;若获取的待编码帧对应的运动估计像素精度为1/4,则对中间参考帧按照1/4分像素插值精度进行分像素插值处理,得到目标参考帧。
当待编码帧的分辨率信息所表示的分辨率大于当前参考帧的分辨率时,则根据待编码帧的分辨率信息对当前参考帧进行上采样处理,得到中间参考帧,然后基于待编码帧对应的运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。比如,待编码帧的分辨率为2M*2N,当前参考帧的分辨率为1/2M*1/2N,则需要按照采样比例为4对当前参考帧进行上采样处理得到与待编码帧分辨率相同的中间参考帧,若运动估计像素精度为1/2,则继续对得到的中间参考帧按照1/2像素插值精度进行分像素插值处理,得到目标参考帧;若运动估计像素精度为1/4,则继续对得到的中间参考帧按照1/4像素插值精度进行分像素插值处理,得到目标参考帧。
如图14所示,在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:
步骤1402,根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息。
具体地,第一矢量变换参数用于对得到运动矢量的位置信息或者运动矢量进行变换。分辨率信息是与分辨率相关的信息,例如可以是分辨率本身或者下采样比例等。第一矢量变换参数可以是待编码帧的分辨率信息和第一分辨率信息之间的比例。例如,假设当前参考帧的下采样比例为1/3,待编码帧的下采样比例为1/6。则第一矢量变换参数可以为1/3除以1/6等于2。
步骤1404,根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
具体地,得到第一矢量变换参数后,根据第一矢量变换参数对得到的运动矢量或者运动矢量对应的位置信息进行变换,得到目标运动矢量。当利用第一矢量变换参数对目标运动矢量进行变换时,使得目标运动矢量是在目标运动矢量单位分辨率信息所表示的目标分辨率下的运动矢量,目标运动矢量单位分辨率信息与目标运动矢量的单位所对应的目标分辨率对应的信息,例如可以是目标分辨率本身或者下采样比例。当利用第一矢量变换参数对运动矢量对应的位置信息进行变换时,使得待编码帧对应的位置信息与当前参考帧的位置信息处于同一量化尺度下,根据变换后的位置信息得到第二运动矢量,将第二运动矢量变换为目标分辨下的目标运动矢量。
在一个实施例中,根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:根据待编码帧的分辨率信息和当前参考帧的分辨率信息确定第一矢量变换参数。根据第一矢量变换参数得到待编码帧中各个编码块对应的运动矢量包括:获取当前编码块对应的第一位置信息,获取当前编码块对应的目标参考块对应的第二位置信息;根据第一矢量变换参数、第一位置信息和第二位置信息计算得到当前编码块对应的目标运动矢量。
具体地,当前编码块是输入视频帧中当前需要进行预测编码的编码块。目标参考块是参考帧中用于对当前编码块进行预测编码的图像块。当前编码块对应的第一位置信息可以用像素的坐标表示。当前编码块对应的第一位置信息可以包括当前编码块的全部像素对应的坐标,当前编码块对应的第一位置信息也可以是包括当前编码块的一个或多个像素的坐标。目标参考块对应的第二位置信息可以包括目标参考块的全部像素对应的坐标,目标参考块对应的第二位置信息也可以是包括目标参考块的一个或多个像素的坐标。例如,可以当前图像块的第一个像素点的坐标作为当前编码块的坐标值,以目标参考块的第一个像素点的坐标作为目标参考块的坐标值。
在一个实施例中,可以利用第一矢量变换参数对第一位置信息进行变换,得到对应的第一变换位置信息,根据第一变换位置信息与第二位置信息的差值得到目标运动矢量。或者可以利用第一矢量变换参数对第二位置信息进行变换,得到对应的第二变换位置信息,根据第一位置信息与第二位变换置信息的差值得到目标运动矢量。
在一个实施例中,第一矢量变换参数是待编码帧的分辨率与当前参考帧的分辨率信息中,大分辨率信息除以小分辨率信息得到的比例,其中,大分辨率信息对应的分辨率比小分辨率对应的分辨率大。第一矢量变换参数用于与待编码帧与当前参考帧中小分辨率信息的帧的位置信息进行变换。例如,待编码帧的分辨率为1200*1200像素,当前参考帧的分辨率为600*600像素,则大分辨率为1200*1200像素,小分辨率为600*600像素。第一矢量变换参数可以为2。假设第一位置信息为(6,8),第二位置信息为(3,3)。则目标运动矢量为(6,8)-(3*2,3*2)=(0,2)。本发明实施例中,通过对小分辨率信息的帧对应的位置信息进行变换,可以降低目标运动矢量的值,减少编码数据的数据量。
在一个实施例中,第一矢量变换参数是待编码帧的分辨率与当前参考帧的分辨率信息中,小分辨率信息除以大分辨率信息得到的比例,第一矢量变换参数用于对待编码帧与当前参考帧中,大分辨率信息的帧的位置信息进行变换。例如,待编码帧的分辨率为1200*1200像素,当前参考帧的分辨率为600*600像素,第一矢量变换参数可以为1/2。假设第一位置信息为(6,8),第二位置信息为(3,3)。则目标运动矢量为(6*1/2,8*1/2)-(3,3)=(0,1)。
本发明实施例中,通过第一矢量变换参数对位置信息进行变换,使得得到的位置信息处于同一量化尺度下,可以降低目标运动矢量的值,减少编码数据的数据量。例如,如图14A所示,当前参考帧的分辨率为待编码帧的分辨率的2倍,当前编码块为像素(1、1)、(1、2)、(2、1)以及(2、2)组成的,对应的目标参考块为像素(4、2)、(4、3)、(5、2)以及(5、3)组成的,如果不进行变换,则目标运动矢量为(-3,-1),而如果在计算目标运动矢量时,将待编码帧中对应的位置信息乘以2,再计算目标运动矢量,则目标运动矢量为(-2,0),比(-3,-1)小。
在一个实施例中,根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:获取目标运动矢量单位分辨率信息;根据待编码帧的分辨率信息和目标运动矢量单位分辨率信息确定第一矢量变换参数。步骤S804即根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:根据当前编码块与对应的目标参考块的位移得到第一运动矢量;根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量。
具体地,目标运动矢量单位分辨率信息是指与目标运动矢量的单位对应的目标分辨率对应的信息,例如可以是目标分辨率或者对应的下采样比例。目标运动矢量是以该分辨率下的矢量单位为标准计算的。由于输入视频序列的对应的各个待编码帧可能有一些分辨率与输入视频帧的原始分辨率相同,而另一些待编码帧的分辨率比输入视频帧的原始分辨率小,即视频序列中待编码帧的分辨率有多种,因此需要确定目标运动矢量的单位对应的分辨率。目标运动矢量的单位对应的分辨率可以是在编码前已经设定或者根据编码过程的参数得到,具体可以根据需要进行设置。
第一运动矢量是根据当前编码块与对应的目标参考块的位移得到的,目标参考块可以是从当前参考帧中获取的,也可以从对当前参考帧进行处理后得到的目标参考帧中获取的,当得到第一运动矢量后,可以将第一矢量变换参数以及第一运动矢量相乘,将得到的乘积作为目标运动矢量。比如,假设目标运动矢量单位对应的分辨率是原始分辨率,而待编码帧对应的下采样比例为1/2。由于目标运动矢量单位是原始分辨率,而第一运动矢量是在待编码帧的分辨率下计算得到的,因此需要对第一运动矢量进行变换,第一矢量变换参数等于2,当得到的第一运动矢量为(2,2,),则目标运动矢量为(4,4)。得到目标运动矢量后,可以根据目标运动矢量进行编码,例如可以对目标运动矢量以及当前编码块对应的预测残差进行编码,得到编码数据。
在一个实施例中,当目标参考块是从当前参考帧中获取的,可以理解,对于同一编码块,第一运动矢量可等于第二运动矢量。
在一个实施例中,目标运动矢量的单位对应的分辨率可以是输入视频帧对应的分辨率,即原始分辨率,或者目标运动矢量的单位对应的分辨率可以是待编码帧对应的分辨率。第一矢量变换参数可以是目标运动矢量单位对应的分辨率信息与待编码帧的分辨率信息的比例。例如,假设目标运动矢量单位对应的分辨率是原始分辨率,目标运动矢量单位对应的采样比例为1,待编码帧的分辨率的采样比例为1/2,则,第一矢量变换参数可以为1除以1/2等于2。或者,假设目标运动矢量单位对应的分辨率是原始分辨率,为900*900像素,目待编码帧的分辨率的采样比例为450*600像素,第一矢量变换参数可以包括两个,水平方向的第一矢量变换参数以及垂直方向的第一矢量变换参数。则水平方向的第一矢量变换参数为900/450=2,垂直方向的第一矢量变换参数为900/600=1.5。
在一个实施例中,可以根据进行编码的设备的计算能力得到目标运动矢量单位分辨率信息,例如,当进行编码的设备只能对整数进行运算或者当数值为小数时运算耗时长,则目标运动矢量单位对应的分辨率可以为输入视频帧对应的原始分辨率,当进行编码的设备能够快速进行小数的运算,目标运动矢量单位对应的分辨率可以为待编码帧对应的分辨率。
在一个实施例中,当待编码帧的分辨率信息和目标运动矢量单位分辨率信息一致时,第一矢量变换参数为1,第一运动矢量与目标运动矢量相同,因此,可以跳过步骤S802,将第一运动矢量作为目标运动矢量。当待编码帧的分辨率信息和目标运动矢量单位分辨率信息不一致时,则执行步骤S802。
本发明实施例中,当目标运动矢量的单位对应的分辨率为输入视频帧对应的分辨率,即原始分辨率,对于分辨率统一的视频序列,各个输入视频帧对应目标分辨率是一致的,可以保持目标运动矢量的统一性。当目标运动矢量的单位对应的分辨率为待编码视频帧对应的分辨率时,由于待编码帧的分辨率信息和目标运动矢量单位分辨率信息一致,因此不需要需对第一运动矢量进行变换,可以减少计算时间。
在一个实施例中,可以将表示目标运动矢量单位分辨率信息的标识信息添加至编码数据中,使解码端可以获取得到目标运动矢量对应的目标分辨率。如果不携带标识信息,则编码端与解码端可以约定目标运动矢量对应的目标分辨率。该标识信息用于表示目标运动矢量所对应的分辨率信息。标识信息在编码数据的添加位置可以是组级头信息、序列级头信息帧级头信息以及块级头信息中的一个或多个,其中块级头信息是指编码块对应的编码数据的头信息。标识信息在编码数据的添加位置可以根据目标运动矢量单位分辨率信息的作用范围确定。例如,若视频序列中矢量单位对应的分辨率一致,则添加位置可以是序列级头信息。具体的标志位的值所代表的分辨率信息可以根据需要设置。例如,当目标运动矢量单位分辨率信息对应的分辨率为原始分辨率时,对应的标志位MV_Scale_Adaptive为0,当目标运动矢量单位分辨率信息对应的分辨率为待编码帧对应的分辨率时,对应的标志位MV_Scale_Adaptive为1。
在一个实施例,如图15所示,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:
步骤1502,获取当前编码块对应的初始预测运动矢量。
具体地,为了降低用于编码数据的比特数,可以对当前编码块的运动矢量进行预测,得到预测值,计算目标运动矢量与预测值的差值,得到运动矢量差值,对运动矢量差值进行编码。初始预测运动矢量用于对当前编码块的运动矢量进行预测。初始预测运动矢量的数量可以为一个或多个,具体可以根据需要进行设置。初始预测运动矢量的获取规则可以根据需要进行设置,由于当前编码块与其相邻编码块的往往具有空间相关性,因此可以将当前编码块对应的一个或多个相邻已编码块的对应的目标运动矢量值作为初始预测运动矢量。例如,可以将当前编码块中右上角以及左上角的相邻已编码块对应的第一运动矢量值作为初始预测运动矢量。或者,可以将当前编码块对应的目标参考块所对应的目标参考块的运动矢量值作为初始预测运动矢量。
步骤1504,根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数。
具体地,当前运动矢量单位分辨率信息是指与初始预测运动矢量的单位对应的当前分辨率对应的信息,例如可以是当前分辨率或者下采样比例。初始预测运动矢量的单位对应的分辨率是指该初始预测运动矢量的单位是以当前分辨率下的矢量单位为标准计算的,即是当前分辨率下的运动矢量。当初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息不同,则需要根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息得到第二矢量变换系数。第二矢量变换参数用于将初始预测运动矢量变换为目标分辨率下的运动矢量,第二矢量变换参数可以是目标运动矢量单位对应的分辨率信息与当前运动矢量单位分辨率信息的比例。例如,假设目标运动矢量单位对应的分辨率是200*200像素,当前运动矢量单位分辨率信息是100*100像素,则第一矢量变换参数可以是2。
步骤1506,根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量。
具体地,得到第二矢量变换参数后,根据初始预测运动矢量与第二矢量变换系数进行运算,得到目标预测运动矢量,目标预测运动矢量是目标分辨率下的预测运动矢量。例如,当初始预测运动矢量为一个时,可以将初始预测运动矢量与第二矢量变换系数的乘积作为目标预测运动矢量。当初始预测运动矢量为多个时,可以对初始预测运动矢量进行计算,得到计算结果,根据计算结果与第二矢量变换系数得到目标运动矢量。计算结果可以是初始预测运动矢量中的最小值、平均值以及中位数值中的一种或多种。可以理解,根据初始预测运动矢量和第二矢量变换系数得到目标预测运动矢量的算法可以自定义,在解码端可以利用一致的自定义的算法计算得到相同的目标预测运动矢量。
步骤1508,根据目标运动矢量和目标预测运动矢量得到运动矢量差。
具体地,将运动目标矢量与目标预测运动矢量的差值作为运动矢量差,以根据运动矢量差进行编码,得到编码数据,减少编码数据的数据量。
本发明实施例中,通过对初始预测运动矢量进行变换,得到在目标分辨率下的目标预测运动矢量,使目标预测运动矢量以及目标运动矢量的单位是在匹配的量化尺度下的,因此得到的运动矢量差值小,减少了编码数据的数据量。
在一个实施例中,如图16所示,获取输入视频帧之前,视频编码方法还包括:
步骤1602,获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式。
具体地,输入视频序列可以包括多个输入视频帧。当目标视频序列编码模式为恒定分辨率编码模式时,输入视频序列的各个输入视频帧是在相同的分辨率例如全分辨率下进行编码的,当目标视频序列编码模式为混合分辨率编码模式时,则获取各个输入视频帧对应的处理方式,根据处理方式对输入视频帧进行处理,得到待编码帧,根据待编码帧进行编码,待编码帧的分辨率可以与输入视频帧的分辨率相同,也可以与输入视频帧的分辨率小,输入视频序列存在不同分辨率的待编码帧。因此当视频序列编码模式为混合分辨率编码模式时,执行上述实施例中提供的视频编码方法。
在一个实施例中,获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
具体地,环境信息可以包括执行视频编码方法的设备的处理能力、执行视频解码方法的设备的处理能力以及当前应用场景信息中的一种或多种。处理能力可以用处理速度进行表示。例如,对于处理能力强的设备,由于处理速度快,对应的目标视频序列编码模式为全分辨率编码模式,当当前应用场景信息对应的当前应用场景为实时应用场景时,视频序列编码模式为混合分辨率编码模式。当当前应用场景信息对应的当前应用场景非实时应用场景时,视频序列编码模式为恒定分辨率编码模式。可以设置当前环境信息与视频序列编码模式对应的关系,当得到当前环境信息后,根据当前环境信息与视频序列编码模式的对应关系得到输入视频序列对应的目标视频序列编码模式。例如,可以设置视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度的平均值与视频序列编码模式的对应关系,当得到视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度后,计算平均值,根据平均值得到目标视频序列编码模式。当前应用场景是否为实时应用场景可以根据需要进行设置。例如,视频通话应用场景、游戏应用场景为实时应用场景,视频网站上的视频编码,离线视频的编码对应的应用场景可以为非实时应用场景。
步骤1604,判断目标视频序列编码模式是否为混合分辨率编码模式。
如果是,进入步骤502,如果否,进入步骤1606。
步骤1606,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
具体地,当视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
在一个实施例中,在待编码帧的分辨率下,对待编码帧进行编码得到所述输入视频帧对应的编码数据包括:将目标视频序列编码模式对应的视频序列编码模式信息添加至编码数据中。
具体地,视频序列编码模式信息用于描述输入视频序列采用的编码模式,可以在编码数据中加入描述视频序列编码模式的标志位Sequence_Mix_Resolution_Flag,具体的标志位的值可以根据需要设置。视频序列编码模式信息在编码数据的添加位置可以是序列级头信息。例如,当Sequence_Mix_Resolution_Flag为1时,对应的目标视频序列编码模式可以为混合分辨率编码模式。当Sequence_Mix_Resolution_Flag为0时,对应的目标视频序列编码模式可以为恒定分辨率编码模式。
在一个实施例中,视频编码框架如图17所示。视频编码框架包括恒定分辨率编码框架以及混合分辨率编码框架,混合分辨率编码框架可以与图2中的编码框架对应。当得到输入视频序列后,在视频序列编码模式获取模块处对视频序列编码模式进行决策,当目标视频序列编码模式为混合分辨率编码模式,则采用混合分辨率编码框架进行编码,当目标视频序列编码模式为恒定分辨率编码模式时,利用图17的恒定分辨率编码框架进行恒定分辨率编码。其中恒定分辨率编码框架可以是目前的HEVC编码框架或者H.265编码框架等。
以下假设视频序列A包括三个输入视频帧:a、b以及c,对视频编码方法进行说明。
1、获取视频序列A对应的目标视频序列编码模式,由于当前环境是视频通话环境,目标视频序列编码模式为混合分辨率编码模式。
2、利用混合分辨率编码框架中的处理决策单元对第一个输入视频帧a进行决策,得到处理方式为下采样处理方式,下采样比例为1/2,对a进行下采样处理,得到下采样后的视频帧a1,对a1进行帧内编码,得到a1对应的编码数据d1,并将a1对应的编码数据进行重建,得到对应的重建视频帧a2。
3、利用混合分辨率编码框架中的处理决策单元对第二个输入视频帧b进行决策,得到处理方式为下采样处理方式,采样比例为1/4。对b进行下采样,得到b1,对b1进行编码,得到b对应的编码数据,并在编码数据中携带下采样比例对应的采用比例信息以及处理方式对应的处理方式信息。
其中编码过程包括:由于b为帧间预测帧,因此需要将a2作为当前参考帧,由于b1与a2的分辨率不同,故需要对a2进行采样处理。确定a2的采样方式为直接分像素插值,运动估计精度为1/4,故像素插值精度为1/4*2=1/2,根据像素插值精度对a2进行1/2分像素插值,得到目标参考帧a3。计算b1中的当前编码块与目标参考帧中的目标参考块的第一运动矢量MV1,预测残差为p1。并获取得到目标分辨率为原始分辨率,因此,目标运动矢量为4MV1。计算得到初始预测矢量为MV2,初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,因此,目标预测矢量为4MV2,故当前编码块对应的运动矢量差MVD1等于4MV1-4MV2。对MVD1以及p1进行变换、量化以及熵编码,得到编码数据。
4、利用混合分辨率编码框架中的处理决策单元对第三个输入视频帧c进行决策,得到处理方式为下采样处理方式,采样比例为1/8。对c进行下采样,得到c1,对c1进行编码,得到c对应的编码数据d2。
其中编码过程包括:由于c为帧间预测帧,对应的当前参考帧为对b的编码数据重建得到的重建视频帧b2,由于c1与b2的分辨率不同,故需要对b2进行采样处理。确定b2的采样方式为直接分像素插值,运动估计精度为1/4,故像素插值精度为1/4*2=1/2,根据像素插值精度对b2进行1/2分像素插值,得到目标参考帧b3。计算c1中的当前编码块与目标参考帧中的目标参考块的第一运动矢量MV3,预测残差为p2。并获取得到目标分辨率为原始分辨率,因此,目标运动矢量为8MV3。获取初始预测矢量为MV4,初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,因此,目标预测矢量为4MV4,故当前编码块对应的运动矢量差MVD2等于8MV3-4MV4。对MVD2以及p2进行变换、量化以及熵编码,得到编码数据d3。
5、将d1、d2以及d3组成编码数据包,作为视频序列对应的编码数据,发送到接收终端,其中,视频序列对应的编码数据中携带了描述目标视频序列编码模式为混合分辨率编码模式的标志位。
在一个实施例中,获取输入视频帧对应的处理参数,包括:当处理参数为传输至解码端的编码数据;和/或根据传输至解码端的编码数据得到的处理数据时,确定处理参数为在解码过程中重现的参数。
其中,输入视频帧对应的处理参数可以是但不限于,输入视频帧对应的第一编码数据,和/或输入视频帧之前的前向视频帧对应的第二编码数据,和/或根据第一编码数据和/或第二编码数据得到的处理数据,和/或输入视频帧之前的重建视频帧对应的图像特征。其中,图像特征是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。具体地,当输入视频帧对应的处理参数为输入视频帧对应的第一编码数据时,确定输入视频帧对应的处理参数为在解码过程中重现的参数,和/或当输入视频帧对应的处理参数为输入视频帧之前的前向视频帧对应的第二编码数据时,确定输入视频帧对应的处理参数为在解码过程中重现的参数,和/或当输入视频帧对应的处理参数为根据第一编码数据和/或第二编码数据得到的处理数据时,确定输入视频帧对应的处理参数为在解码过程中重现的参数,和/或当输入视频帧之前的重建视频帧对应的图像特征时,确定输入视频帧对应的处理参数为在解码过程中重现的参数。
在一个实施例中,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:获取输入视频帧对应的前向编码视频帧中的前向编码块;计算前向编码块对应的模块梯度值;根据模块梯度值将前向编码块分类到模块集合中的目标模块类,模块类集合中的各个候选模块类分别对应不同的模块梯度值范围;获取候选模块类与候选处理方式之间的对应关系;根据候选模块类与候选处理方式之间的对应关系和目标模块类确定输入视频帧对应的目标处理方式。
其中,模块梯度值是指前向编码块对应的平均梯度值。由于前向编码块的大小可能不一致,所以采用平均梯度值能够更好地反应前向编码块的内容复杂度。前向编码块的模块梯度值等于前向编码块中每个像素的像素梯度值之和的平均。模块梯度值反应了前向编码块对应的图像的复杂度,模块梯度值越大,说明该前向编码块包含的细节越多,比如,如果对应的图像边缘,梯度值往往比较大。在一个实施例中,可以采用拉普拉斯滤波器计算每个像素对应的像素梯度值,然后根据前向编码块中包含的像素计算得到模块梯度值。
其中,预先根据模块梯度值分为多个模块类,组成模块集合。模块集合中包含有多个模块类,且每个模块类对应有相应的模块梯度值范围。不同的模块类对应不同的模块梯度值范围,且每个模块类对应的模块梯度值范围不重合,即一个模块梯度值只可能匹配到一个模块类。所以获取到模块梯度值后,就可以根据模块梯度值确定与之对应的目标模块类。
其中,不同的模块类对应不同的处理方式,处理方式用于对前向编码块进行处理。模块类对应的模块梯度值范围中包含的模块梯度值越大,目标处理方式得到的清晰度越高。处理效果越好的处理方式,其计算复杂度越高,相应的处理速度就会越慢。为了能够保证用户对清晰度的要求,又能满足处理速度的要求,将多个处理方式结合起来使用,对于模块梯度值比较大的前向编码块,其包含的细节比较多,所以采用复杂度高效果好的处理方式,而对于模块梯度值小的前向编码块,由于里面包含的细节比较少,采用复杂度低的处理方式。这是由于人们对细节多的内容的清晰度更敏感,所以优先采用效果好的处理方式。
根据候选模块类对应的模块梯度值范围为候选模块类设置对应的处理方式,模块梯度值越大,相应的处理方式的处理效果越好。
其中,获取到目标模块类后,根据候选模块类与候选处理方式之间的对应关系便可确定与前向编码块对应的目标处理方式。针对不同的前向编码块,采用不同的处理方式,即结合多种处理方式对前向编码块进行处理,不但能够提高视频编码的质量,而且能够提高视频编码的速度。在一个实施例中,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:计算输入视频帧对应的前向重建帧对应的目标图像内容复杂度;获取候选图像内容复杂度与候选处理方式之间的对应关系;根据对应关系,确定与目标图像内容复杂度对应的目标处理方式。
其中,图像内容复杂度是视频帧图像的内容复杂度。图像内容复杂度与运动幅度、纹理复杂度、细节丰富度以及空间相关度中的至少一种有关。在一个实施例中,可以采用图像梯度值来表示图像内容复杂度。图像梯度值是根据各个像素对应的像素梯度值之和得到的。计算得到的图像梯度值越大,图像内容复杂度越大。
其中,预先设置候选图像内容复杂度与候选处理方式之间的对应关系。图像内容复杂度越高,在计算复杂度允许的情况下,倾向于采用更复杂高质量的处理方式。不同的处理方式的计算复杂度不同,计算复杂度高的处理方式得到的处理效果也越好。
其中,根据预先设置的候选图像内容复杂度与候选处理方式之间的对应关系,获取与图像内容复杂度对应的目标处理方式。
在一个具体实施例中,提供了一种视频编码方法,具体方法包括以下步骤:
步骤1702,获取输入视频帧。
步骤1704,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式。
步骤1704a,获取输入视频帧对应的帧类型,根据帧类型获取输入视频帧对应的处理参数。
步骤1704b,获取输入视频帧对应的码率信息,获取输入视频帧对应的原始分辨率信息和第一阈值,根据码率信息和原始分辨率信息计算得到对应的比例结果,根据比例结果和第一阈值确定输入视频帧对应的目标处理方式。
步骤1704c,计算目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例,计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例,当比例大于第二阈值时,确定处理方式为下采样处理方式。
步骤1704ca,获取输入视频帧对应的参考帧对应的分辨率信息,根据分辨率信息确定第二阈值。
步骤1704d,获取输入视频帧对应的当前量化参数,获取输入视频帧对应的量化参数阈值,根据当前量化参数与量化参数阈值的大小关系确定输入视频帧对应的处理方式。
步骤1706,根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
步骤1706a,根据目标处理方式对输入视频帧进行处理,得到待编码帧,在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。
如图18所示,在一个实施例中,提出了一种视频解码方法,本实施例主要以该方法应用于上述图1中的终端110或服务器120来举例说明。具体可以包括以下步骤:
步骤1802,获取待解码视频帧对应的编码数据。
具体地,待解码视频帧是需要进行解码的视频帧。一个待解码视频序列可以包括多个待解码视频帧。待解码视频帧可以是实时获取的视频帧,也可以是预先存储的待解码视频序列中获取的视频帧。
步骤1804,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致。
具体地,处理参数用来确定待解码视频帧的处理方式的参数,这里的处理参数是与编码过程中对应的处理参数保持一致,即编码过程中的处理参数在解码过程中能够重现。获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式是从候选的处理方式中选取的其中一种,候选的处理方式可以是但不限于全分辨率处理方式或者下采样处理方式。
步骤1806,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
具体地,在获取到目标处理方式后,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到解码视频帧。解码视频帧是根据目标处理方式对待解码视频帧对应的编码数据进行解码得到的。当目标处理方式为全分辨率处理方式时,则可以对待解码视频帧对应的编码数据进行全分辨处理。当目标处理方式为下采样处理方式时,则可以对待解码视频帧对应的编码数据进行下采样处理,得到解码视频帧。
上述视频解码方法,获取待解码视频帧对应的编码数据,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致,最后根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。因此进行解码时,获取待解码视频帧对应的处理参数,该处理参数与编码过程中对应的处理参数保持一致,即在解码过程中重现编码过程中的处理参数,再根据处理参数确定目标处理方式,最后根据目标处理方式进行解码的,能够得到准确的解码视频帧。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:获取待解码视频帧对应的帧类型,根据帧类型获取待解码视频帧对应的处理参数。
具体地,帧类型是指视频帧的预测类型,帧预测类型可以是I帧、P帧或者B帧,其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧,P帧与B帧的各个编码块可以采用帧内预测方式也可以采用帧间预测方式进行编码。可以设置帧的预测类型与处理参数的对应关系,当获取到待解码视频帧对应的帧类型,根据帧的预测类型与处理参数的对应关系得到待解码视频帧对应的处理参数。不同的帧类型对应的处理参数的参数类型以及参数数值中的至少一个是不同的。
在一个实施例中,可以根据待解码视频帧作为参考帧的频率或者次数设置对应的处理参数的具体数值。待解码视频帧作为参考帧的频率高或者次数多,则根据对应的处理参数得到的目标处理方式为全分辨率处理方式的可能性越大。例如,对于I帧,作为参考帧的频率高。则在当处理参数包括当前量化参数以及量化参数阈值,确定处理方式的规则为:当前量化参数大于量化参数阈值,则确定处理方式为下采样方式,否则确定处理方式为全分辨率处理方式时,I帧对应的量化参数阈值比P帧以及B帧对应的量化参数阈值小,以使得I帧对应的目标处理方式为全分辨率处理方式的可能性比P帧以及B帧大。
在一个实施例中,对于P帧与B帧,可以根据其前向编码视频帧中的帧内编码块的比例得到对应的处理方式,而对于I帧,由于I帧是帧内编码预测类型,因此其前向编码视频帧中的帧内编码块的比例对确定处理方式的参考意义不大,因为即使其前向编码视频帧中帧内编码块的比例大,但在帧内的编码块的相关性大的情况下,I帧对应的编码数据也较小,因此对I帧进行下采样处理后再编码的效果与在全分辨率下直接进行编码的效果相比,并不会有大幅度的提升。故对于I帧,可以根据I帧的图像特征信息确定对应的处理方式。例如,如果根据I帧的图像内容,如果确定I帧对应运动剧烈的场景,则I帧对应的时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样处理方式作为I帧对应的处理方式。
本实施例中,根据处理参数从候选处理方式中确定待解码视频帧对应的目标处理方式。
具体地,不同的帧类型对应的确定处理方式的方法可以不同也可以相同,例如,如果不同帧类型对应的处理参数的参数类型相同,处理参数的具体数值不同,则可以采用相同的处理方式确定方法确定对应的目标处理方式。如果不同帧类型对应的处理参数的参数类型不同,则可以采用不同的处理方式确定方法。得到处理参数后,根据处理参数从候选处理方式中确定处理方式,根据处理参数确定目标处理方式可以参照上述实施例中确定处理方式的方法,本发明实施例在此不在赘述。
本发明实施例中,通过设置帧类型与处理参数的对应关系,可以灵活地根据输入视频帧的预测类型确定目标处理方式,提高编码质量。
在一个实施例中,如图19所示,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:
步骤1902,获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值。
具体地,根据待解码视频帧获取对应的码率信息,再根据待解码视频帧获取对应的原始分辨率信息,和预先设置的第一阈值,其中第一阈值是用来与原始分辨率信息进行比较从而得到待解码视频帧对应的目标方式的。
步骤1904,根据码率信息和原始分辨率信息计算得到对应的比例结果。
步骤1906,根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
具体地,在获取到待解码视频帧对应的码率信息,以及对应的原始分辨率信息和第一阈值后,根据码率信息和原始分辨率信息计算得到对应的比例结果,具体计算可以是但不限于将码率信息和原始分辨率信息的比值作为对应的比例结果。例如,获取到的待解码视频帧对应的码率信息为目标码率,原始分辨率信息为原始分辨率的宽和高的乘积,那么根据码率信息和原始分辨率信息计算得到对应的比例结果k为:目标码率/原始分辨率的宽*高。
进一步地,处理方式是从候选的处理方式中选取的,候选的处理方式包括全分辨率处理方式和下采样处理方式。具体地,在根据码率信息和原始分辨率信息计算得到对应的比例结果后,根据比例结果和获取到的第一阈值确定待解码视频帧对应的目标处理方式。目标处理方式的具体确定方式可以自定义,自定义可以是但不限于当比例结果小于获取到的第一阈值时,将待解码视频帧对应的目标处理方式确定为下采样处理方式。或者当比例结果与获取到的第一阈值的差值小于某一预设阈值时,将待解码视频帧对应的目标处理方式确定为下采样处理方式等等。
在一个实施例中,如图20所示,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:
步骤2002,计算目标预测类型编码块在待解码视频帧对应的前向解码视频帧中的比例。
步骤2004,根据比例确定待解码视频帧对应的目标处理方式。
具体地,目标预测类型解码块与目标预测类型编码块是对应的。前向解码视频帧是在待解码视频帧解码的视频帧,前向解码视频帧与前向编码视频帧也是对应的,因此编码端得到的目标预测类型编码块的比例与解码端得到的目标预测类型解码块的比例的计算方法以及结果也是一致的,得到目标预测类型解码块的比例的方法可以参照目标预测类型编码块的比例的方法,在此不再赘述。得到处理方式后,当处理方式为全分辨率处理方式,则对应的分辨率信息为原始分辨率。当处理方式为下采样处理方式,获取预设的下采样比例或者从编码数据中的头信息中获取下采样比例。在一个实施例中,如图21所示,根据处理参数确定待解码视频帧对应的目标处理方式,包括:
步骤2102,计算前向解码视频帧中帧内编码块在前向解码视频帧中的比例。
步骤2104,当比例大于第二阈值时,确定目标处理方式为下采样处理方式。
对于帧内解码块对应的比例,可以是当该比例大于第二阈值时,确定待解码视频帧对应的目标处理方式为下采样分辨率处理方式,否则确定视频帧对应的目标处理方式为全分辨率处理方式。如,当比例大于第二阈值时,确定待解码视频帧对应的处理方式为下采样分辨率处理方式,否则确定视频帧对应的目标处理方式为全分辨率处理方式。
其中第二阈值可根据待解码视频帧对应的参考帧的处理方式进行确定。当待解码视频帧对应的参考帧的处理方式为下采样方式时,获取第一预设阈值T1,将第一预设阈值T1作为第二阈值。同样地,当待解码视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为第二阈值。进一步地,在根据待解码视频帧对应的参考帧的分辨率信息获取到第二阈值后,根据第二阈值和前向解码视频帧中帧内解码块在前向解码视频帧中的比例确定待解码视频帧的处理方式。其中,当前向解码视频帧中帧内解码块在前向解码视频帧中的比例大于第二阈值时,确定待解码视频帧对应的处理方式为下采样处理方式。
在一个实施例中,如图22所示,在图21视频解码方法的基础上,该视频解码方法还包括:
步骤2202,获取待解码视频帧对应的参考帧对应的处理方式。
步骤2204,根据处理方式确定第二阈值。
其中第二阈值可根据待解码视频帧对应的参考帧的处理方式进行确定。当待解码视频帧对应的参考帧的处理方式为下采样方式时,获取第一预设阈值T1,将第一预设阈值T1作为第二阈值。同样地,当待解码视频帧对应的参考帧的处理方式为全分辨率处理方式时,获取第二预设阈值T2,将第二预设阈值T2作为第二阈值。进一步地,在根据待解码视频帧对应的参考帧的分辨率信息获取到第二阈值后,根据第二阈值和前向编码视频帧中帧内编码块在前向编码视频帧中的比例确定待解码视频帧的处理方式。其中,当前向编码视频帧中帧内编码块在前向编码视频帧中的比例大于第二阈值时,确定待解码视频帧对应的处理方式为下采样处理方式。
在一个实施例中,第二预设阈值大于第一预设阈值,这样,当当前参考帧对应的处理方式全分辨率处理方式时,待解码视频帧更倾向于采用全分辨率处理方式,当当前参考帧为下采样处理方式时,待解码视频帧更倾向于采用下采样处理方式。
在一个实施例中,如图23所示,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:
步骤2302,获取待解码视频帧对应的当前量化参数。
步骤2304,获取待解码视频帧对应的量化参数阈值。
步骤2306,根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。
具体地,可以根据在待解码视频帧对应的当前量化参数以及量化参数阈值得到输入帧对应的处理方式,再根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。如果当前量化参数大于量化参数阈值,则确定处理方式为下采样处理方式,否则确定处理方式为全分辨率处理方式。量化参数阈值可以根据待解码视频帧之前的已编码的前向解码视频帧的帧内编码块的个数占编码块的帧内预测块比例得到,可以预先设置帧内预测块比例与量化参数阈值的对应关系,从而在确定了当前帧的帧内预测块比例后,可以根据预设的对应关系,确定与当前帧的帧内预测块比例,对应的量化参数阈值。对于固定量化参数编码,当前量化参数可以是对应的固定量化参数值。对于固定码率编码,则可以根据码率控制模型计算得到待解码视频帧对应的当前量化参数。或者,可以将参考帧对应的量化参数作为待解码视频帧对应的当前量化参数。
在一个实施例中,如图24所示,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧,包括:
步骤2402,根据目标处理方式确定待解码视频帧对应的分辨率信息。
具体地,分辨率信息是与分辨率相关的信息,可以是分辨率本身也可以下采样比例。待解码视频帧对应的分辨率信息可以是从编码数据中携带的,也可以是解码设备经过计算得到的。
在一个实施例中,编码数据中可以携带待解码视频帧对应的分辨率信息,例如可以携带待解码帧对应的分辨率或者下采样比例。
在一个实施例中,编码数据中可以携带处理方式信息,解码设备从编码数据中获取处理方式信息,根据处理方式信息得到待解码视频帧对应的分辨率信息。例如,编码数据中可以携带处理方式信息对应的处理方式为下采样处理方式,编码标准以及解码标准中确定了下采样比例均为1/2或者编码数据中携带对应的下采样比例,则获取得到的分辨率信息为下采样比例为1/2。
步骤2404,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧。
具体地,重建视频帧是解码重建得到的视频帧。可以理解,该重建视频帧对应的分辨率信息与编码过程中的待编码帧的分辨率信息是对应的。如果在编码的过程中图像信息不存在损失,则重建视频帧与待编码帧是相同的,如果在编码的过程中图像信息存在损失,则重建视频帧与待编码帧的差异与损失值对应。对编码数据进行解码是在待解码视频帧对应的分辨率信息进行的。解码可以包括预测、反变换、反量化以及熵解码中的至少一个,具体根据编码的过程确定。在解码时,根据待解码视频帧的分辨率信息对当前参考帧、待解码帧的各个待解码块对应的位置信息、当前参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理,其中的处理方法与编码端进行编码时的处理方法是匹配的。例如可以获取待解码视频帧对应的当前参考帧,根据待解码视频帧对应的分辨率信息对当前参考帧进行处理,得到目标参考帧,根据携带的运动矢量信息获取目标参考块,根据目标参考块得到待解码块对应的预测值,并根据编码数据中的预测残差与预测值得到重建视频帧。
在一个实施例中,当编码端对位置信息进行了变换时,则在解码过程中获取得到相应的位置信息时,需要对该位置信息进行相应的变换,以保持编码端与解码端得到的目标参考块的一致性。
在一个实施例中,当编码数据中携带的运动矢量信息是目标运动矢量时,可以根据目标运动矢量单位分辨率信息与待解码视频帧对应的分辨率信息将目标运动矢量进行变换,得到在待解码视频帧对应的分辨率信息下的第一运动矢量,根据第一运动矢量得到待解码块对应的目标参考块。
在一个实施例中,当编码数据中携带的运动矢量信息是运动矢量差值时,获取当前待解码块对应的初始预测运动矢量,对各待解码块对应的运动矢量差值和初始预测运动矢量在相同分辨率下进行处理,得到相应待解码块所对应的、且在待解码视频帧的分辨率下的第一运动矢量,根据第一运动矢量得到待解码块对应的目标参考块。
具体地,将运动矢量差值和初始预测运动矢量都变换到相同分辨率下对应的运动矢量。例如可以将初始预测运动矢量变换为目标分辨率下的目标预测运动矢量,根据目标预测运动矢量以及运动矢量差值得到目标运动矢量,再将目标运动矢量变换到待解码视频帧的分辨率下的第一运动矢量。也可以将初始预测运动矢量变换为待解码视频帧的分辨率下的预测运动矢量,将运动矢量差值变换到待解码视频帧的分辨率下的运动矢量差值,根据待解码视频帧的分辨率下的运动矢量差值以及待解码视频帧的分辨率下的预测运动矢量得到第一运动矢量。
步骤2406,根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。
具体地,对重建视频帧进行处理可以是采样处理,例如为上采样处理。对重建视频帧进行处理的方法与编码中对输入视频帧的处理方法可以是相对应的。例如,当输入视频帧的处理方式是下采样处理方式时,且分辨率信息是1/2下采样比例,则对重建视频帧进行上采样处理,上采样比例可以是2。
在一个实施例中,当解码端从编码数据的头信息中确定编码数据是通过下采样处理方式进行编码得到的,则解码端还可从头信息中获取所采用的下采样比例信息或下采样方法信息,并采用与下采样比例信息或下采样方法信息匹配的上采样比例、上采样方法对得到的重建视频帧进行上采样处理,得到解码视频帧。比如,下采样比例信息对应的采样比例为1/2,则解码端需要按照采样比例为2以及下采样方法信息匹配的上采样方法对重建视频帧进行上采样处理,得到解码视频帧。解码端可以从序列级头信息、组级头信息以及帧级头信息中的任一个获取到当前编码数据对应的下采样比例信息或下采样方法信息。
在一个实施例中,将待解码视频序列的待解码视频帧对应的重建视频帧都处理成相同的分辨率,例如将重建视频帧处理成与输入视频帧的原始分辨率相同的解码视频帧。
在一个实施例中,如图25所示,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:
步骤2502,获取待解码视频帧对应的当前参考帧。
具体地,待解码视频帧对应的参考帧的个数可为一个或多个。例如当待解码视频帧为P帧,则对应的参考帧可以为1个。当待解码视频帧为B帧,则对应的参考帧可以为2个。待编码帧对应的参考帧可以是根据参考关系得到的,参考关系根据各个视频编解码标准可以不同。例如,对于一个视频图像组(Group Of Picture,GOP)中的第二个视频帧,为B帧,对应的待解码视频帧可以是该视频组的I帧以及视频组的第4帧。或者待解码视频帧对应的当前参考帧可以是其前向的已编码帧中的前一个或者两个。可以理解,当前参考帧与编码过程的当前参考帧是一致的。
在一个实施例中,获取待解码视频帧对应的当前参考帧包括:获取第二参考规则,第二参考规则包括待解码视频帧与当前参考帧的分辨率大小关系;根据第二参考规则获取待解码视频帧对应的当前参考帧。
具体地,第二参考规则确定了待解码视频帧与当前参考帧的分辨率大小的限制关系,可以理解,为了保证编码过程中获取得到的当前参考帧与解码过程中获取得到的参考帧的一致性,第一参考规则与第二参考规则是一致的。第一参考规则、第二参考规则可以是在编解码标准中预先设置的。或者,在进行编码时,可以根据编码的应用场景、实时性要求等选择第一参考规则,并在编码数据中携带参考规则信息,解码器根据编码数据中的参考规则信息得到第二参考规则。分辨率大小关系包括待解码视频帧与参考帧相同以及不同的至少一种。当第二参考规则包括待解码视频帧与参考帧的分辨率相同时,第二参考规则还可以包括待解码视频帧与当前参考帧的分辨率的处理方式参考规则。例如处理方式参考规则可以包括全分辨处理方式的待解码视频帧可以参考全分辨率处理方式的当前参考帧以及下采样处理方式的待解码视频帧可以参考下采样处理方式的当前参考帧的一种或两种。当第二参考规则包括待解码视频帧与参考帧的分辨率不相同时,第二参考规则还可以包括待解码视频帧的分辨率大于当前参考帧的分辨率以及待解码视频帧的分辨率小于当前参考帧的分辨率的一种或两种。因此,第二参考规则可以包括原始分辨率待解码视频帧可以参考下采样分辨率参考帧、下采样分辨率待解码视频帧可以参考原始分辨率参考帧、原始分辨率待解码视频帧可以参考原始分辨率参考帧以及下采样分辨率待解码视频帧可以参考下采样分辨率的参考帧中的一种或多种。其中原始分辨率待解码视频帧是指该待解码视频帧的分辨率与对应的输入视频帧的分辨率相同,原始分辨率参考帧是指该参考帧的分辨率与其对应的输入视频帧的分辨率相同。下采样分辨率待解码视频帧是指该待解码视频帧对应的分辨率信息为下采样。下采样分辨率参考帧是指该参考帧对应的分辨率信息为下采样。得到第二参考规则后,根据第二参考规则待解码视频帧对应的当前参考帧,使得到的当前参考帧满足第二参考规则。
步骤2504,根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧。
具体地,可以从当前参考帧中获取与待解码视频帧的待解码块对应的参考块,根据参考块对待解码块进行解码。也可以根据待解码视频帧的分辨率信息对当前参考帧进行处理,得到对应的目标参考帧,从目标参考帧中获取与待解码视频帧的待解码块对应的目标参考块,根据目标参考块对编码块进行解码,待解码视频帧对应的重建视频帧。
在一个实施例中,根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:根据待解码视频帧对应的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待解码视频帧进行解码,得到待解码视频帧对应的重建视频帧。
具体地,根据携带的运动矢量信息从目标参考帧中获取目标参考块,根据目标参考块得到待解码块对应的预测值,并根据编码数据中的预测残差与预测值得到重建视频帧。
在一个实施例中,根据待解码视频帧对应的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待解码视频帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
在一个实施例中,根据待解码视频帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待解码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
在一个实施例中,根据待解码视频帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待解码视频帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据进行运动估计的像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
具体地,待解码视频帧与待编码视频帧的分辨率是一致的,得到的目标参考帧也是一致的,因此,根据待解码视频帧对应的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧的方法与编码端中根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧是一致的,本发明实施例在此不再赘述。
在一个实施例中,解码端还可从编码数据的头信息中获取待解码视频帧对应的采样方式信息。具体可以从序列级头信息、组级头信息以及帧级头信息中的任一个获取到待解码视频帧对应的分像素插值方式信息。例如,当编码数据的帧级头信息中用于确定采样方式的标识位Pixel_Sourse_Interpolation为0时,表示输入视频帧对应的当前参考帧采用直接进行分像素插值处理,在Pixel_Sourse_Interpolation为1时,表示输入视频帧对应的当前参考帧采用采样处理后再分像素插值处理。解码端就可按照与编码数据中标识位所表示的分像素插值方式相同的方式对当前参考帧进行分像素插值处理得到目标参考帧,从而可依据目标参考帧对编码数据进行解码得到重建视频帧。
在一个实施例中,如图26所示,根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧包括:
步骤2602,根据待解码视频帧对应的分辨率信息以及第一分辨率信息确定第三矢量变换参数,第一分辨率信息包括目标运动矢量单位分辨率信息或者当前参考帧的分辨率信息。
具体地,第三矢量变换参数用于对得到运动矢量的位置信息或者运动矢量进行变换。第三矢量变换参数可以是第一分辨率信息与待解码视频帧的分辨率信息之间的比例,第三矢量变换参数与第一矢量变换参数是对应的。当利用第三矢量变换参数对目标运动矢量进行变换时,可以将目标运动矢量变换到待解码视频帧对应的分辨率下,所对应的运动矢量,则第三矢量变换参数可以是第一矢量变换参数的倒数。当利用第三矢量变换参数对运动矢量对应的位置信息进行变换时,如果编码端中第一矢量变换参数用于对第一位置信息进行变换,则由于待解码块与编码块的位置信息相同,因此第三矢量变换参数与第一矢量变换参数相同。如果编码端中第一矢量变换参数用于对第二位置信息进行变换,由于根据目标运动矢量以及第一位置信息计算得到的位置值,是编码端中对根据第一矢量变换参数对第二位置信息进行变换后的位置值,因此第三矢量变换参数为第一矢量变换参数的倒数。
步骤2604,根据编码数据获取待解码视频帧中各个待解码块对应的目标运动矢量。
具体地,当编码数据中携带目标运动矢量时,从编码数据中读取目标运动矢量。当编码数据中携带的是运动矢量差时,则可以计算得到目标预测运动矢量,根据运动矢量差以及目标预测运动矢量得到目标运动矢量。
步骤2606,根据第三矢量变换参数以及目标运动矢量得到待解码视频帧中各个待解码块对应的目标参考块。
具体地,得到第三矢量变换参数后,根据第三矢量变换参数对得到的运动矢量或者运动矢量对应的位置信息进行变换,得到目标参考块对应的位置信息,从而得到目标参考块。
步骤2608,根据目标参考块对编码数据进行解码,得到待解码视频帧对应的重建视频帧。
具体地,得到目标参考块后,根据目标参考块的像素值以及编码数据中携带待解码块的预测残差,得到重建视频帧各个图像块的像素值,得到重建视频帧。
在一个实施例中,根据待解码视频帧对应的分辨率信息以及第一分辨率信息确定第三矢量变换参数包括:根据待解码视频帧对应的分辨率信息和当前参考帧的分辨率信息确定第三矢量变换参数;根据第三矢量变换参数以及目标运动矢量得到待解码视频帧中各个待解码块对应的目标参考块包括:获取当前待解码块对应的第一位置信息;根据第一位置信息、第三矢量变换参数以及目标运动矢量得到当前待解码块对应的目标参考块。
具体地,可以根据第一位置信息、第三矢量变换参数以及目标运动矢量得到目标参考块对应的第二位置信息,根据第二位置信息得到目标参考块。由于编码与解码的对应性,如果编码端中第一矢量变换参数用于对第一位置信息进行变换,则由于待解码块与编码块的位置信息相同,因此第三矢量变换参数与第一矢量变换参数相同。如果编码端中第一矢量变换参数用于对第二位置信息进行变换,由于根据目标运动矢量以及第一位置信息计算得到的位置值,是编码端中根据第一矢量变换参数对第二位置信息进行变换后的位置值,因此第三矢量变换参数为第一矢量变换参数的倒数。
例如,待解码视频帧的分辨率为1200*1200像素,当前参考帧的分辨率为600*600像素。第一矢量变换参数用于对第二位置信息进行变换,第一矢量变换参数为2,则第三矢量变换参数为1/2。假设第一位置信息为(6,8),目标运动矢量为(0,2),则中间位置信息为(6,8)-(0,2)=(6,6),目标参考块对应的第二位置信息为(6*1/2,6*1/2)=(3,3)。
例如,待解码视频帧的分辨率为1200*1200像素,当前参考帧的分辨率为600*600像素,第一矢量变换参数用于对第一位置信息进行变换,第一矢量变换参数为1/2,则第三矢量变换参数为1/2。假设第一位置信息为(6,8),则目标运动矢量为(0,1),则第二位置信息为(6*1/2,8*1/2)-(0,1)=(3,3)。
在一个实施例中,根据待解码视频帧对应的分辨率信息以及第一分辨率信息确定第三矢量变换参数包括:根据待解码视频帧对应的分辨率信息和目标运动矢量单位分辨率信息确定第三矢量变换参数;根据第三矢量变换参数以及目标运动矢量得到待解码视频帧中各个待解码块对应的目标参考块包括:根据目标运动矢量以及第三矢量变换参数得到第一运动矢量;根据第一运动矢量获取当前待解码块对应的目标参考块。
具体地,第三矢量变换参数是根据待解码视频帧对应的分辨率信息和目标运动矢量单位分辨率信息确定的,用于将目标运动矢量变换到带解码帧对应的分辨率下对应的第一运动矢量。当得到第三矢量变换参数后,可以将第三矢量变换参数以及目标运动矢量相乘,将得到的乘积作为第一运动矢量。可以理解,根据第三矢量变换参数以及目标运动矢量得到第一运动矢量这一过程与根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量是逆过程。例如如果编码端中,该待解码块对应的编码块第一矢量变换参数等于2。得到的第一运动矢量为(2,2),根据第一矢量变换参数与第一运动矢量为(2,2,)的乘积得到目标运动矢量为(4,4)。那么解码过程中,第三矢量变换参数为1/2,得到的目标运动矢量为(4,4),根据第三矢量变换参数1/2与目标运动矢量(4,4)的乘积得到第一运动矢量为(2,2)。
在一个实施例中,当编码数据中携带的是运动矢量差时,则根据编码数据获取待解码视频帧中各个待解码块对应的目标运动矢量包括:根据编码数据获取待解码视频帧中的当前待解码块对应的运动矢量差;
获取当前待解码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前解码块对应的目标预测运动矢量;根据目标预测运动矢量以及运动矢量差得到目标运动矢量。
具体地,由于解码与编码过程中待解码块与待编码块是对应的,初始预测运动矢量获取规则相同,因此当前待解码块对应的初始运动预测矢量与当前待编码块对应的初始预测运动矢量是一致的,得到目标预测运动矢量的方法可以参照编码过程中的方法,具体不再赘述。目标运动矢量是目标预测运动矢量以及运动矢量差的和。
在一个实施例中,获取待解码视频帧对应的编码数据之前,还包括:获取待解码视频帧对应的待解码视频序列,获取待解码视频序列对应的视频序列解码模式,其中,视频序列解码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当视频序列解码模式为混合分辨率编码模式时,对待解码视频序列的各个待解码视频帧执行混合分辨率解码方法;当视频序列解码模式为恒定分辨率编码模式时,对待解码视频序列进行恒定分辨率解码。
具体地,可以从编码数据中获取视频序列编码模式信息,根据视频序列编码模式信息得到视频序列解码模式。例如,当视频序列编码模式信息对应的视频序列编码模式为恒定分辨率编码模式时,对应的视频序列解码模式为恒定分辨率解码模式,在恒定分辨率解码模式中,视频序列的各个待解码视频帧的分辨率是一致的。当视频序列编码模式信息对应的视频序列编码模式为混合分辨率编码模式时,对应的视频序列解码模式为混合分辨率解码模式,
在一个实施例中,可从编码数据的头信息中确定待解码视频帧对应的解码框架。具体地,解码端可以从编码数据对应的序列级头信息中,获取当前编码数据对应的输入视频帧序列中每个输入视频帧在被编码时所采用的编码框架,从而确定与之匹配的待解码视频帧的解码框架。比如,当编码数据的序列级头信息中用于确定所采用编码框架的标识位Sequence_Mix_Flag为0时,表示输入视频帧序列中各个输入视频帧在被编码时均采用恒定分辨率的编码框架,则解码端可采用恒定分辨率的解码框架对编码数据进行解码得到待解码视频帧对应的重建视频帧;在Sequence_Mix_Flag为1时,表示输入视频帧序列中各个输入视频帧在被编码时均采用混合分辨率的编码框架,解码端就可采用混合适应分辨率的解码框架对编码数据进行解码得到重建视频帧序列。
在一个实施例中,获取待解码视频序列对应的视频序列解码模式可以包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定待解码视频序列对应的目标视频序列解码模式。
具体地,解码端也可以根据与编码端计算视频序列编码模式的方法得到对应的目标视频序列解码模式,因此本发明实施例中根据当前环境信息确定目标视频序列解码模式与根据当前环境信息确定目标视频序列编码模式是一致的,在此不再赘述。
在一个实施例中,当前环境信息包括待解码视频序列对应的应用场景,可以根据应用场景获取待解码视频序列对应的视频序列解码模式。
以下以对视频序列A对应的编码数据进行解码为例,对视频解码方法进行说明。其中,假设输入视频帧a、b、c在解码端对应的待解码视频帧的名称分别为e、f以及g。
1、接收终端获取视频序列A对应的编码数据,从编码数据对应的序列头信息中获取得到目标视频序列编码模式为混合分辨率编码模式,因此,利用混合分辨率解码框架对编码数据进行解码。
2、混合分辨率解码框架的分辨率信息获取单元获取第一个待解码视频帧e对应的分辨率信息,可以理解,e对应的编码数据为对a1进行编码得到的数据。对e进行帧内解码,得到重建视频帧e1,由于e对应的分辨率信息为1/2,因此,可以对重建视频帧e1进行采样比例为2的上采样处理,得到解码视频帧e2。
3、混合分辨率解码框架的分辨率信息获取单元获取第二个待解码视频帧f对应的分辨率信息,可以理解,f对应的编码数据为对b1进行编码得到的数据。对f进行帧间解码,得到重建视频帧f1,由于f对应的分辨率信息为下采样比例为1/4,因此,可以对重建视频帧f1进行采样比例为4的上采样处理,得到解码视频帧f2。
解码过程如下:由于f为帧间预测帧,因此需要将重建视频帧e1作为当前参考帧,可以理解,e1与a2是相同的,对e1进行与a2相同的采样处理,得到e3,这里的e3与a3是相同的,为目标参考帧。从编码数据中获取得到当前待解码块对应的运动矢量差为MVD1,由于MVD1是目标分辨率即原始分辨率下的,因此需要将MVD1转换为f对应的分辨率下,因此可以得到MVD3为MVD1/4。获取初始预测矢量为MV2,由于初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,与f对应的分辨率相同,故可以得到第一运动矢量为MV1等于MVD1/4+MV2。根据MV1获取得到目标参考块。根据目标参考块得到待解码块对应的预测值,将预测残差p1加上预测值重建得到重建视频帧f1对应的重建块。
4、混合分辨率解码框架的分辨率信息获取单元获取第三个待解码视频帧g对应的编码数据,可以理解,g对应的编码数据为对c1进行编码得到的数据。对g进行帧间解码,得到重建视频帧g1,由于g对应的分辨率信息为1/8,因此,可以对重建视频帧f1进行采样比例为8的上采样处理,得到解码视频帧g2。
解码过程如下:由于g为帧间预测帧,因此需要将重建视频帧f1作为当前参考帧,可以理解,f1与b2是相同的,对f1进行与b2相同的采样处理,得到f3,这里的f3与b3是相同的,为目标参考帧。从编码数据中获取得到当前待解码块对应的运动矢量差为MVD2,由于MVD2是目标分辨率即原始分辨率下的,因此需要将MVD2转换为g对应的分辨率下,因此可以得到MVD2为MVD1/8。获取初始预测矢量为MV4,由于初始预测矢量是在1/4下采样比例对应的分辨率下计算得到,需要变换为f对应的分辨率下,f对应的下采样比例为1/8,故可以得到第一运动矢量为MV3等于MVD2/8+MV4/2。根据MV3获取得到目标参考块。根据目标参考块得到待解码块对应的预测值,将预测残差p2加上预测值重建得到重建视频帧g1对应的重建块。
5、接收终端播放e2、f2以及g2。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:当处理参数为解码端接收到的编码数据;和/或根据解码端接收到的编码数据得到的处理数据时,确定处理参数为在解码过程中重现的参数。
其中,待解码视频帧对应的处理参数可以是但不限于,待解码视频帧对应的第一编码数据,和/或待解码视频帧之前的前向视频帧对应的第二编码数据,和/或根据第一编码数据和/或第二编码数据得到的处理数据,和/或待解码视频帧之前的重建视频帧对应的图像特征。其中,图像特征是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。具体地,当待解码视频帧对应的处理参数为待解码视频帧对应的第一编码数据时,确定待解码视频帧对应的处理参数为在解码过程中重现的参数,和/或当待解码视频帧对应的处理参数为待解码视频帧之前的前向视频帧对应的第二编码数据时,确定待解码视频帧对应的处理参数为在解码过程中重现的参数,和/或当待解码视频帧对应的处理参数为根据第一编码数据和/或第二编码数据得到的处理数据时,确定待解码视频帧对应的处理参数为在解码过程中重现的参数,和/或当待解码视频帧之前的重建视频帧对应的图像特征时,确定待解码视频帧对应的处理参数为在解码过程中重现的参数。
在一个实施例中,根据处理参数确定待解码视频帧对应的目标处理方式,包括:获取待解码视频帧对应的前向解码视频帧中的前向解码块;计算前向解码块对应的模块梯度值;根据模块梯度值将前向解码块分类到模块集合中的目标模块类,模块类集合中的各个候选模块类分别对应不同的模块梯度值范围;获取候选模块类与候选处理方式之间的对应关系;根据候选模块类与候选处理方式之间的对应关系和目标模块类确定待解码视频帧对应的目标处理方式。
其中,模块梯度值是指前向解码块对应的平均梯度值。由于前向解码块的大小可能不一致,所以采用平均梯度值能够更好地反应前向解码块的内容复杂度。前向解码块的模块梯度值等于前向解码块中每个像素的像素梯度值之和的平均。模块梯度值反应了前向解码块对应的图像的复杂度,模块梯度值越大,说明该前向解码块包含的细节越多,比如,如果对应的图像边缘,梯度值往往比较大。在一个实施例中,可以采用拉普拉斯滤波器计算每个像素对应的像素梯度值,然后根据前向解码块中包含的像素计算得到模块梯度值。
其中,预先根据模块梯度值分为多个模块类,组成模块集合。模块集合中包含有多个模块类,且每个模块类对应有相应的模块梯度值范围。不同的模块类对应不同的模块梯度值范围,且每个模块类对应的模块梯度值范围不重合,即一个模块梯度值只可能匹配到一个模块类。所以获取到模块梯度值后,就可以根据模块梯度值确定与之对应的目标模块类。
其中,不同的模块类对应不同的处理方式,处理方式用于对前向解码块进行处理。模块类对应的模块梯度值范围中包含的模块梯度值越大,目标处理方式得到的清晰度越高。处理效果越好的处理方式,其计算复杂度越高,相应的处理速度就会越慢。为了能够保证用户对清晰度的要求,又能满足处理速度的要求,将多个处理方式结合起来使用,对于模块梯度值比较大的前向解码块,其包含的细节比较多,所以采用复杂度高效果好的处理方式,而对于模块梯度值小的前向解码块,由于里面包含的细节比较少,采用复杂度低的处理方式。这是由于人们对细节多的内容的清晰度更敏感,所以优先采用效果好的处理方式。
根据候选模块类对应的模块梯度值范围为候选模块类设置对应的处理方式,模块梯度值越大,相应的处理方式的处理效果越好。
其中,获取到目标模块类后,根据候选模块类与候选处理方式之间的对应关系便可确定与前向解码块对应的目标处理方式。针对不同的前向解码块,采用不同的处理方式,即结合多种处理方式对前向解码块进行处理,不但能够提高视频解码的质量,而且能够提高视频解码的速度。
在一个实施例中,根据处理参数确定待解码视频帧对应的目标处理方式,包括:计算待解码视频帧对应的前向重建帧对应的目标图像内容复杂度;获取候选图像内容复杂度与候选处理方式之间的对应关系;根据对应关系,确定与目标图像内容复杂度对应的目标处理方式。
其中,图像内容复杂度是待解码视频帧图像的内容复杂度。图像内容复杂度与运动幅度、纹理复杂度、细节丰富度以及空间相关度中的至少一种有关。在一个实施例中,可以采用图像梯度值来表示图像内容复杂度。图像梯度值是根据各个像素对应的像素梯度值之和得到的。计算得到的图像梯度值越大,图像内容复杂度越大。
其中,预先设置候选图像内容复杂度与候选处理方式之间的对应关系。图像内容复杂度越高,在计算复杂度允许的情况下,倾向于采用更复杂高质量的处理方式。不同的处理方式的计算复杂度不同,计算复杂度高的处理方式得到的处理效果也越好。
其中,根据预先设置的候选图像内容复杂度与候选处理方式之间的对应关系,获取与图像内容复杂度对应的目标处理方式。
在一个具体实施例中,提供了一种视频解码方法,具体方法包括以下步骤:
步骤2702,获取待解码视频帧对应的编码数据。
步骤2704,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致。
步骤2704a,获取待解码视频帧对应的帧类型,根据帧类型获取待解码视频帧对应的处理参数。
步骤2704b,获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值,根据码率信息和原始分辨率信息计算得到对应的比例结果,根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
步骤2704c,计算目标预测类型编码块在待解码视频帧对应的前向解码视频帧中的比例,根据比例确定待解码视频帧对应的目标处理方式。
步骤2704d,计算前向解码视频帧中帧内编码块在前向解码视频帧中的比例,当比例大于第二阈值时,确定处理方式为下采样处理方式。
步骤2704da,获取待解码视频帧对应的参考帧对应的分辨率信息,根据分辨率信息确定第二阈值。
步骤2704e,获取待解码视频帧对应的当前量化参数,获取待解码视频帧对应的量化参数阈值,根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。
步骤2706,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
步骤2706a,根据目标处理方式确定待解码视频帧对应的分辨率信息,根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧,根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图27所示,提供了一种视频编码装置2800,该视频编码装置可以集成于上述的服务器120或终端110中,包括:
输入视频帧获取模块2802,用于获取输入视频帧。
处理参数获取模块2804,用于获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式。
输入视频帧编码模块2806,用于根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,如图28所示,处理参数获取模块2804包括:
编码块计算单元2804a,用于计算目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例。
目标处理方式生成单元2804b,用于根据比例确定输入视频帧对应的目标处理方式。
在一个实施例中,处理参数获取模块2804还用于计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例,当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,如图29所示,该视频编码装置2800还包括:
处理方式获取模块2808,用于获取输入视频帧对应的参考帧对应的处理方式。
第二阈值生成模块2810,用于根据处理方式确定第二阈值。
在一个实施例中,处理参数获取模块2804还用于获取输入视频帧对应的帧类型,根据帧类型获取输入视频帧对应的处理参数。
在一个实施例中,如图30所示,处理参数获取模块2804包括:
码率信息获取单元2804A,用于获取输入视频帧对应的码率信息,获取输入视频帧对应的原始分辨率信息和第一阈值。
码率信息计算单元2804B,用于根据码率信息和原始分辨率信息计算得到对应的比例结果。
目标处理方式确定单元2804C,用于根据比例结果和第一阈值确定输入视频帧对应的目标处理方式。
在一个实施例中,处理参数获取模块2804还用于获取输入视频帧对应的当前量化参数,获取输入视频帧对应的量化参数阈值,根据当前量化参数与量化参数阈值的大小关系确定输入视频帧对应的处理方式。
在一个实施例中,如图31所示,输入视频帧编码模块2806包括:
待编码帧生成单元2806a,用于根据目标处理方式对输入视频帧进行处理,得到待编码帧。
待编码帧编码单元2806b,用于在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,编码帧编码单元2806b还用于:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理参数获取模块2804用于:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,编码帧编码单元2806b包括:
当前参考帧获取单元,用于获取待编码帧对应的当前参考帧。
编码单元,用于在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,编码单元用于:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
在其中一个实施例中,编码帧编码单元2806b用于:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,如图32所示,提供了一种视频解码装置3200,该视频解码装置可以集成于上述的服务器120或终端110中,包括:
编码数据获取模块3202,用于获取待解码视频帧对应的编码数据。
编码数据获取模块3204,用于获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致。
编码数据解码模块3206,用于根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
在一个实施例中,如图33所示,处理参数获取模块3204包括:
码率信息获取单元3204a,用于获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值。
比例结果计算单元3204b,用于根据码率信息和原始分辨率信息计算得到对应的比例结果。
目标处理方式生成单元3204c,用于根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
在一个实施例中,如图34所示,处理参数获取模块3204包括:
编码块计算单元3204A,用于计算目标预测类型编码块在待解码视频帧对应的前向解码视频帧中的比例。
处理方式生成单元3204B,用于根据比例确定待解码视频帧对应的目标处理方式。
在一个实施例中,处理参数获取模块3204还用于计算前向解码视频帧中帧内编码块在前向解码视频帧中的比例,当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,视频解码装置3200还用于获取待解码视频帧对应的参考帧对应的处理方式,根据处理方式确定第二阈值。
在一个实施例中,如图35所示,编码数据解码模块3206包括:
分辨率信息生成单元3206a,用于根据目标处理方式确定待解码视频帧对应的分辨率信息。
重建视频帧获取单元3206b,用于根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧。
重建视频帧处理单元3206c,用于根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。
在一个实施例中,处理参数获取模块3204还用于获取待解码视频帧对应的帧类型,根据帧类型获取待解码视频帧对应的处理参数。
在一个实施例中,处理参数获取模块3204还用于获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值,根据码率信息和原始分辨率信息计算得到对应的比例结果,根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
在一个实施例中,处理参数获取模块3204还用于获取待解码视频帧对应的当前量化参数,获取待解码视频帧对应的量化参数阈值,根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。
在一个实施例中,分辨率信息生成单元3206a还用于从编码数据中读取处理方式信息,根据处理方式信息得到待解码视频帧对应的分辨率信息。
在一个实施例中,分辨率信息生成单元3206a用于:计算目标预测类型解码块在待解码视频帧对应的前向解码视频帧中的比例;根据比例确定待解码视频帧对应的处理方式;根据处理方式得到待解码视频帧对应的分辨率信息。
在其中一个实施例中,重建视频帧获取单元3206b还用于:获取待解码视频帧对应的当前参考帧;根据待解码视频帧对应的分辨率信息以及当前参考帧对编码数据进行解码,得到待解码视频帧对应的重建视频帧。
图36示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图36所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法以及视频解码方法中的至少一种方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法以及视频解码方法中的至少一种方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
图37示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图37所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法以及视频解码方法中的至少一种方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法以及视频解码方法中的至少一种方法。
本领域技术人员可以理解,图36以及图37中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频编码装置可以实现为一种计算机程序的形式,计算机程序可在如图36或37所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置的各个程序模块,比如,图27所示的输入视频帧获取模块、处理参数获取模块和输入视频帧编码模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。
例如,图36或37所示的计算机设备可以通过如图27所示的视频编码装置中的输入视频帧获取模块执行获取输入视频帧。计算机设备可通过处理参数获取模块执行获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式。计算机设备可通过输入视频帧编码模块执行根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,本申请提供的视频解码装置可以实现为一种计算机程序的形式,计算机程序可在如图36或37所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置的各个程序模块,比如,图32所示的编码数据获取模块、处理参数获取模块和编码数据解码模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。
例如,图36或37所示的计算机设备可以通过如图32所示的视频编码装置中的编码数据获取模块执行获取待解码视频帧对应的编码数据。计算机设备可通过处理参数获取模块执行获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致。计算机设备可通过编码数据解码模块执行根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取输入视频帧;获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,获取输入视频帧对应的处理参数,包括:获取输入视频帧对应的帧类型,根据帧类型获取输入视频帧对应的处理参数。
在一个实施例中,获取输入视频帧对应的处理参数,包括:获取输入视频帧对应的码率信息,获取输入视频帧对应的原始分辨率信息和第一阈值;根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:根据码率信息和原始分辨率信息计算得到对应的比例结果;根据比例结果和第一阈值确定输入视频帧对应的目标处理方式。
在一个实施例中,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:计算目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例;根据比例确定输入视频帧对应的目标处理方式。
在一个实施例中,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例;当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:获取输入视频帧对应的参考帧对应的处理方式;根据处理方式确定第二阈值。
在一个实施例中,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:获取输入视频帧对应的当前量化参数;获取输入视频帧对应的量化参数阈值;根据当前量化参数与量化参数阈值的大小关系确定输入视频帧对应的处理方式。
在一个实施例中,根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据,包括:根据目标处理方式对输入视频帧进行处理,得到待编码帧;在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的获取输入视频帧对应的处理方式包括:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:获取待编码帧对应的当前参考帧;在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:在待编码帧的分辨率下,获取待编码帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:根据待编码帧的分辨率信息和当前参考帧的分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:获取当前编码块对应的第一位置信息,获取当前编码块对应的目标参考块对应的第二位置信息;根据第一矢量变换参数、第一位置信息和第二位置信息计算得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:获取目标运动矢量单位分辨率信息;根据待编码帧的分辨率信息和目标运动矢量单位分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:根据当前编码块与对应的目标参考块的位移得到第一运动矢量;根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将对当前参考帧进行采样处理对应的采样方式信息添加至当前参考帧对应的编码数据中。
在一个实施例中,处理器所执行的获取待编码帧对应的当前参考帧包括:获取第一参考规则,第一参考规则包括待编码帧与当前参考帧的分辨率大小关系;根据第一参考规则获取待编码帧对应的当前参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将第一参考规则对应的规则信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的处理方式包括下采样,根据处理方式对输入视频帧进行处理,得到待编码帧包括:对输入视频帧进行下采样处理,得到待编码帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将下采样处理对应的下采样处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的获取输入视频帧之前,计算机程序还使得处理器执行还包括:获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当目标视频序列编码模式为混合分辨率编码模式时,对输入视频序列的各个输入视频帧执行如权利要求上述实施例提供的视频编码方法;当目标视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
在一个实施例中,处理器所执行的获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取输入视频帧;获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,处理参数在解码过程中重现,候选处理方式包括全分辨率处理方式和下采样处理方式;根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,获取输入视频帧对应的处理参数,包括:获取输入视频帧对应的帧类型,根据帧类型获取输入视频帧对应的处理参数。
在一个实施例中,获取输入视频帧对应的处理参数,包括:获取输入视频帧对应的码率信息,获取输入视频帧对应的原始分辨率信息和第一阈值;根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:根据码率信息和原始分辨率信息计算得到对应的比例结果;根据比例结果和第一阈值确定输入视频帧对应的目标处理方式。
在一个实施例中,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:计算目标预测类型编码块在输入视频帧对应的前向编码视频帧中的比例;根据比例确定输入视频帧对应的目标处理方式。
在一个实施例中,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:计算前向编码视频帧中帧内编码块在前向编码视频帧中的比例;当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:获取输入视频帧对应的参考帧对应的处理方式;根据处理方式确定第二阈值。
在一个实施例中,获取输入视频帧对应的处理参数,根据处理参数从候选处理方式中确定输入视频帧对应的目标处理方式,包括:获取输入视频帧对应的当前量化参数;获取输入视频帧对应的量化参数阈值;根据当前量化参数与量化参数阈值的大小关系确定输入视频帧对应的处理方式。
在一个实施例中,根据目标处理方式对输入视频帧进行编码得到输入视频帧对应的编码数据,包括:根据目标处理方式对输入视频帧进行处理,得到待编码帧;在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的获取输入视频帧对应的处理方式包括:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:获取待编码帧对应的当前参考帧;在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:在待编码帧的分辨率下,获取待编码帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:根据待编码帧的分辨率信息和当前参考帧的分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:获取当前编码块对应的第一位置信息,获取当前编码块对应的目标参考块对应的第二位置信息;根据第一矢量变换参数、第一位置信息和第二位置信息计算得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:获取目标运动矢量单位分辨率信息;根据待编码帧的分辨率信息和目标运动矢量单位分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:根据当前编码块与对应的目标参考块的位移得到第一运动矢量;根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将对当前参考帧进行采样处理对应的采样方式信息添加至当前参考帧对应的编码数据中。
在一个实施例中,处理器所执行的获取待编码帧对应的当前参考帧包括:获取第一参考规则,第一参考规则包括待编码帧与当前参考帧的分辨率大小关系;根据第一参考规则获取待编码帧对应的当前参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将第一参考规则对应的规则信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的处理方式包括下采样,根据处理方式对输入视频帧进行处理,得到待编码帧包括:对输入视频帧进行下采样处理,得到待编码帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将下采样处理对应的下采样处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的获取输入视频帧之前,计算机程序还使得处理器执行还包括:获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当目标视频序列编码模式为混合分辨率编码模式时,对输入视频序列的各个输入视频帧执行如权利要求上述实施例提供的视频编码方法;当目标视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
在一个实施例中,处理器所执行的获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待解码视频帧对应的编码数据;获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:获取待解码视频帧对应的帧类型,根据帧类型获取待解码视频帧对应的处理参数。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值;根据处理参数确定待解码视频帧对应的目标处理方式,包括:根据码率信息和原始分辨率信息计算得到对应的比例结果;根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
在一个实施例中,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:计算目标预测类型编码块在待解码视频帧对应的前向解码视频帧中的比例;根据比例确定待解码视频帧对应的目标处理方式。
在一个实施例中,根据处理参数确定待解码视频帧对应的目标处理方式,包括:计算前向解码视频帧中帧内编码块在前向解码视频帧中的比例;当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,计算机程序还使得处理器执行如下步骤:获取待解码视频帧对应的参考帧对应的处理方式;根据处理方式确定第二阈值。
在一个实施例中,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:获取待解码视频帧对应的当前量化参数;获取待解码视频帧对应的量化参数阈值;根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。
在一个实施例中,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧,包括:根据目标处理方式确定待解码视频帧对应的分辨率信息;根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧;根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的获取输入视频帧对应的处理方式包括:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:获取待编码帧对应的当前参考帧;在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:在待编码帧的分辨率下,获取待编码帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:根据待编码帧的分辨率信息和当前参考帧的分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:获取当前编码块对应的第一位置信息,获取当前编码块对应的目标参考块对应的第二位置信息;根据第一矢量变换参数、第一位置信息和第二位置信息计算得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:获取目标运动矢量单位分辨率信息;根据待编码帧的分辨率信息和目标运动矢量单位分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:根据当前编码块与对应的目标参考块的位移得到第一运动矢量;根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将对当前参考帧进行采样处理对应的采样方式信息添加至当前参考帧对应的编码数据中。
在一个实施例中,处理器所执行的获取待编码帧对应的当前参考帧包括:获取第一参考规则,第一参考规则包括待编码帧与当前参考帧的分辨率大小关系;根据第一参考规则获取待编码帧对应的当前参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将第一参考规则对应的规则信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的处理方式包括下采样,根据处理方式对输入视频帧进行处理,得到待编码帧包括:对输入视频帧进行下采样处理,得到待编码帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将下采样处理对应的下采样处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的获取输入视频帧之前,计算机程序还使得处理器执行还包括:获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当目标视频序列编码模式为混合分辨率编码模式时,对输入视频序列的各个输入视频帧执行如权利要求上述实施例提供的视频编码方法;当目标视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
在一个实施例中,处理器所执行的获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取待解码视频帧对应的编码数据;获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,目标处理方式为候选处理方式中的一种,候选处理方式包括全分辨率处理方式和下采样处理方式,处理参数与编码过程中对应的处理参数保持一致;根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:获取待解码视频帧对应的帧类型,根据帧类型获取待解码视频帧对应的处理参数。
在一个实施例中,获取待解码视频帧对应的处理参数,包括:获取待解码视频帧对应的码率信息,获取待解码视频帧对应的原始分辨率信息和第一阈值;根据处理参数确定待解码视频帧对应的目标处理方式,包括:根据码率信息和原始分辨率信息计算得到对应的比例结果;根据比例结果和第一阈值确定待解码视频帧对应的目标处理方式。
在一个实施例中,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:计算目标预测类型编码块在待解码视频帧对应的前向解码视频帧中的比例;根据比例确定待解码视频帧对应的目标处理方式。
在一个实施例中,根据处理参数确定待解码视频帧对应的目标处理方式,包括:计算前向解码视频帧中帧内编码块在前向解码视频帧中的比例;当比例大于第二阈值时,确定处理方式为下采样处理方式。
在一个实施例中,计算机程序还使得处理器执行如下步骤:获取待解码视频帧对应的参考帧对应的处理方式;根据处理方式确定第二阈值。
在一个实施例中,获取待解码视频帧对应的处理参数,根据处理参数确定待解码视频帧对应的目标处理方式,包括:获取待解码视频帧对应的当前量化参数;获取待解码视频帧对应的量化参数阈值;根据当前量化参数与量化参数阈值的大小关系确定待解码视频帧对应的处理方式。
在一个实施例中,根据目标处理方式对待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧,包括:根据目标处理方式确定待解码视频帧对应的分辨率信息;根据待解码视频帧对应的分辨率信息对编码数据进行解码,得到待解码视频帧对应的重建视频帧;根据待解码视频帧对应的分辨率信息对重建视频帧进行处理,得到对应的解码视频帧。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的获取输入视频帧对应的处理方式包括:获取输入视频帧对应的处理参数,根据处理参数确定输入视频帧对应的处理方式;将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中包括:当处理参数在解码过程中不能重现时,将处理方式对应的处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:获取待编码帧对应的当前参考帧;在待编码帧的分辨率下,根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数,第一分辨率信息包括当前参考帧的分辨率信息或者输入视频帧对应的目标运动矢量单位分辨率信息;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量。
在一个实施例中,处理器执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧;根据目标参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据。
在一个实施例中,处理器执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:在待编码帧的分辨率下,获取待编码帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:根据待编码帧的分辨率信息和当前参考帧的分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:获取当前编码块对应的第一位置信息,获取当前编码块对应的目标参考块对应的第二位置信息;根据第一矢量变换参数、第一位置信息和第二位置信息计算得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息和第一分辨率信息确定第一矢量变换参数包括:获取目标运动矢量单位分辨率信息;根据待编码帧的分辨率信息和目标运动矢量单位分辨率信息确定第一矢量变换参数;根据第一矢量变换参数得到待编码帧中各个编码块对应的目标运动矢量包括:根据当前编码块与对应的目标参考块的位移得到第一运动矢量;根据第一矢量变换参数以及第一运动矢量得到当前编码块对应的目标运动矢量。
在一个实施例中,处理器所执行的根据当前参考帧对待编码帧进行编码,得到输入视频帧对应的编码数据包括:获取当前编码块对应的初始预测运动矢量;根据初始预测运动矢量对应的当前运动矢量单位分辨率信息和目标运动矢量单位分辨率信息,得到第二矢量变换系数;根据初始预测运动矢量和第二矢量变换系数得到当前编码块对应的目标预测运动矢量;根据目标运动矢量和目标预测运动矢量得到运动矢量差。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对当前参考帧进行分像素插值处理,得到对应的目标参考帧。
在一个实施例中,处理器所执行的根据待编码帧的分辨率信息以及运动估计像素精度对当前参考帧进行采样处理,得到对应的目标参考帧包括:根据待编码帧的分辨率信息对当前参考帧进行采样处理,得到中间参考帧;根据运动估计像素精度对中间参考帧进行分像素插值处理,得到目标参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将对当前参考帧进行采样处理对应的采样方式信息添加至当前参考帧对应的编码数据中。
在一个实施例中,处理器所执行的获取待编码帧对应的当前参考帧包括:获取第一参考规则,第一参考规则包括待编码帧与当前参考帧的分辨率大小关系;根据第一参考规则获取待编码帧对应的当前参考帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将第一参考规则对应的规则信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的处理方式包括下采样,根据处理方式对输入视频帧进行处理,得到待编码帧包括:对输入视频帧进行下采样处理,得到待编码帧。
在一个实施例中,处理器所执行的在待编码帧的分辨率下,对待编码帧进行编码得到输入视频帧对应的编码数据包括:将下采样处理对应的下采样处理方式信息添加至输入视频帧对应的编码数据中。
在一个实施例中,处理器所执行的获取输入视频帧之前,计算机程序还使得处理器执行还包括:获取输入视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;当目标视频序列编码模式为混合分辨率编码模式时,对输入视频序列的各个输入视频帧执行如权利要求上述实施例提供的视频编码方法;当目标视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个输入视频帧进行恒定分辨率编码。
在一个实施例中,处理器所执行的获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息、当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (31)

1.一种视频编码方法,所述方法包括:
获取输入视频帧;
获取所述输入视频帧对应的处理参数,根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,所述处理参数在解码过程中重现,所述候选处理方式包括全分辨率处理方式和下采样处理方式;
根据所述目标处理方式对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。
2.根据权利要求1所述的方法,其特征在于,所述获取所述输入视频帧对应的处理参数,包括:
获取所述输入视频帧对应的帧类型,根据所述帧类型获取所述输入视频帧对应的处理参数。
3.根据权利要求1所述的方法,其特征在于,所述获取所述输入视频帧对应的处理参数,包括:
获取所述输入视频帧对应的码率信息,获取所述输入视频帧对应的原始分辨率信息和第一阈值;
所述根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
根据所述码率信息和所述原始分辨率信息计算得到对应的比例结果;
根据所述比例结果和所述第一阈值确定所述输入视频帧对应的目标处理方式。
4.根据权利要求1所述的方法,其特征在于,所述获取所述输入视频帧对应的处理参数,根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
计算目标预测类型编码块在所述输入视频帧对应的前向编码视频帧中的比例;
根据所述比例确定所述输入视频帧对应的目标处理方式。
5.根据权利要求4所述的方法,其特征在于,所述根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
计算前向编码视频帧中帧内编码块在所述前向编码视频帧中的比例;
当所述比例大于第二阈值时,确定所述目标处理方式为下采样处理方式。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述输入视频帧对应的参考帧对应的处理方式;
根据所述处理方式确定所述第二阈值。
7.根据权利要求1所述的方法,其特征在于,所述获取所述输入视频帧对应的处理参数,根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
获取所述输入视频帧对应的当前量化参数;
获取所述输入视频帧对应的量化参数阈值;
根据所述当前量化参数与所述量化参数阈值的大小关系确定所述输入视频帧对应的处理方式。
8.根据权利要求1所述的方法,其特征在于,根据所述目标处理方式对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据,包括:
根据所述目标处理方式对所述输入视频帧进行处理,得到待编码帧;
在所述待编码帧的分辨率下,对所述待编码帧进行编码得到所述输入视频帧对应的编码数据。
9.根据权利要求1所述的方法,其特征在于,所述获取所述输入视频帧对应的处理参数,包括:
当所述处理参数为传输至解码端的编码数据;和/或
根据所述传输至解码端的编码数据得到的处理数据时,确定所述处理参数为在解码过程中重现的参数。
10.根据权利要求1所述的方法,其特征在于,所述根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
获取所述输入视频帧对应的前向编码视频帧中的前向编码块;
计算所述前向编码块对应的模块梯度值;
根据所述模块梯度值将所述前向编码块分类到模块集合中的目标模块类,所述模块类集合中的各个候选模块类分别对应不同的模块梯度值范围;
获取候选模块类与所述候选处理方式之间的对应关系;
根据所述候选模块类与所述候选处理方式之间的对应关系和所述目标模块类确定所述输入视频帧对应的目标处理方式。
11.根据权利要求1所述的方法,其特征在于,所述根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,包括:
计算所述输入视频帧对应的前向重建帧对应的目标图像内容复杂度;
获取候选图像内容复杂度与所述候选处理方式之间的对应关系;
根据所述对应关系,确定与所述目标图像内容复杂度对应的目标处理方式。
12.一种视频解码方法,所述方法包括:
获取待解码视频帧对应的编码数据;
获取所述待解码视频帧对应的处理参数,根据所述处理参数确定所述待解码视频帧对应的目标处理方式,所述目标处理方式为候选处理方式中的一种,所述候选处理方式包括全分辨率处理方式和下采样处理方式,所述处理参数与编码过程中对应的处理参数保持一致;
根据所述目标处理方式对所述待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
13.根据权利要求12所述的方法,其特征在于,所述获取所述待解码视频帧对应的处理参数,包括:
获取所述待解码视频帧对应的帧类型,根据所述帧类型获取所述待解码视频帧对应的处理参数。
14.根据权利要求12所述的方法,其特征在于,所述获取所述待解码视频帧对应的处理参数,包括:
获取所述待解码视频帧对应的码率信息,获取所述待解码视频帧对应的原始分辨率信息和第一阈值;
所述根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
根据所述码率信息和所述原始分辨率信息计算得到对应的比例结果;
根据所述比例结果和所述第一阈值确定所述待解码视频帧对应的目标处理方式。
15.根据权利要求12所述的方法,其特征在于,所述获取所述待解码视频帧对应的处理参数,根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
计算目标预测类型编码块在所述待解码视频帧对应的前向解码视频帧中的比例;
根据所述比例确定所述待解码视频帧对应的目标处理方式。
16.根据权利要求15所述的方法,其特征在于,所述根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
计算前向解码视频帧中帧内编码块在所述前向解码视频帧中的比例;
当所述比例大于第二阈值时,确定所述目标处理方式为下采样处理方式。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
获取所述待解码视频帧对应的参考帧对应的处理方式;
根据所述处理方式确定所述第二阈值。
18.根据权利要求12所述的方法,其特征在于,所述获取所述待解码视频帧对应的处理参数,根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
获取所述待解码视频帧对应的当前量化参数;
获取所述待解码视频帧对应的量化参数阈值;
根据所述当前量化参数与所述量化参数阈值的大小关系确定所述待解码视频帧对应的处理方式。
19.根据权利要求12所述的方法,其特征在于,所述根据所述目标处理方式对所述待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧,包括:
根据所述目标处理方式确定所述待解码视频帧对应的分辨率信息;
根据所述待解码视频帧对应的分辨率信息对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;
根据所述待解码视频帧对应的分辨率信息对所述重建视频帧进行处理,得到对应的解码视频帧。
20.根据权利要求12所述的方法,其特征在于,所述获取所述待解码视频帧对应的处理参数,包括:
当所述处理参数为解码端接收到的编码数据;和/或
根据所述解码端接收到的编码数据得到的处理数据时,确定所述处理参数为在解码过程中重现的参数。
21.根据权利要求12所述的方法,其特征在于,所述根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
获取所述待解码视频帧对应的前向解码视频帧中的前向解码块;
计算所述前向解码块对应的模块梯度值;
根据所述模块梯度值将所述前向解码块分类到模块集合中的目标模块类,所述模块类集合中的各个候选模块类分别对应不同的模块梯度值范围;
获取候选模块类与所述候选处理方式之间的对应关系;
根据所述候选模块类与所述候选处理方式之间的对应关系和所述目标模块类确定所述待解码视频帧对应的目标处理方式。
22.根据权利要求12所述的方法,其特征在于,所述根据所述处理参数确定所述待解码视频帧对应的目标处理方式,包括:
计算所述待解码视频帧对应的前向重建帧对应的目标图像内容复杂度;
获取候选图像内容复杂度与所述候选处理方式之间的对应关系;
根据所述对应关系,确定与所述目标图像内容复杂度对应的目标处理方式。
23.一种视频编码装置,其特征在于,所述装置包括:
输入视频帧获取模块,用于获取输入视频帧;
处理参数获取模块,用于获取所述输入视频帧对应的处理参数,根据所述处理参数从候选处理方式中确定所述输入视频帧对应的目标处理方式,所述处理参数在解码过程中重现,所述候选处理方式包括全分辨率处理方式和下采样处理方式;
输入视频帧编码模块,用于根据所述目标处理方式对所述输入视频帧进行编码得到所述输入视频帧对应的编码数据。
24.根据权利要求23所述的装置,其特征在于,所述处理参数获取模块包括:
编码块计算单元,用于计算目标预测类型编码块在所述输入视频帧对应的前向编码视频帧中的比例;
目标处理方式生成单元,用于根据所述比例确定所述输入视频帧对应的目标处理方式。
25.根据权利要求23所述的装置,其特征在于,所述装置还包括:
处理方式获取模块,用于获取所述输入视频帧对应的参考帧对应的处理方式;
第二阈值生成模块,用于根据所述处理方式确定所述第二阈值。
26.一种视频解码装置,其特征在于,所述装置包括:
编码数据获取模块,用于获取待解码视频帧对应的编码数据;
处理参数获取模块,用于获取所述待解码视频帧对应的处理参数,根据所述处理参数确定所述待解码视频帧对应的目标处理方式,所述目标处理方式为候选处理方式中的一种,所述候选处理方式包括全分辨率处理方式和下采样处理方式,所述处理参数与编码过程中对应的处理参数保持一致;
编码数据解码模块,用于根据所述目标处理方式对所述待解码视频帧对应的编码数据进行解码,得到对应的解码视频帧。
27.根据权利要求26所述的装置,其特征在于,所述处理参数获取模块包括:
码率信息获取单元,用于获取所述待解码视频帧对应的码率信息,获取所述待解码视频帧对应的原始分辨率信息和第一阈值;
比例结果计算单元,用于根据所述码率信息和所述原始分辨率信息计算得到对应的比例结果;
目标处理方式生成单元,用于根据所述比例结果和所述第一阈值确定所述待解码视频帧对应的目标处理方式。
28.根据权利要求26所述的装置,其特征在于,所述处理参数获取模块包括:
编码块计算单元,用于计算目标预测类型编码块在所述待解码视频帧对应的前向解码视频帧中的比例;
处理方式生成单元,用于根据所述比例确定所述待解码视频帧对应的目标处理方式。
29.根据权利要求26所述的装置,其特征在于,所述编码数据解码模块包括:
分辨率信息生成单元,用于根据所述目标处理方式确定所述待解码视频帧对应的分辨率信息;
重建视频帧获取单元,用于根据所述待解码视频帧对应的分辨率信息对所述编码数据进行解码,得到所述待解码视频帧对应的重建视频帧;
重建视频帧处理单元,用于根据所述待解码视频帧对应的分辨率信息对所述重建视频帧进行处理,得到对应的解码视频帧。
30.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至22中任一项所述方法的步骤。
31.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至22中任一项所述方法的步骤。
CN201810636200.4A 2018-06-20 2018-06-20 视频编码、解码方法、装置、计算机设备和存储介质 Active CN108769681B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810636200.4A CN108769681B (zh) 2018-06-20 2018-06-20 视频编码、解码方法、装置、计算机设备和存储介质
PCT/CN2019/090277 WO2019242506A1 (zh) 2018-06-20 2019-06-06 视频编码方法、解码方法、装置、计算机设备和存储介质
US16/988,513 US11206405B2 (en) 2018-06-20 2020-08-07 Video encoding method and apparatus, video decoding method and apparatus, computer device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810636200.4A CN108769681B (zh) 2018-06-20 2018-06-20 视频编码、解码方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN108769681A true CN108769681A (zh) 2018-11-06
CN108769681B CN108769681B (zh) 2022-06-10

Family

ID=63979154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810636200.4A Active CN108769681B (zh) 2018-06-20 2018-06-20 视频编码、解码方法、装置、计算机设备和存储介质

Country Status (3)

Country Link
US (1) US11206405B2 (zh)
CN (1) CN108769681B (zh)
WO (1) WO2019242506A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110536134A (zh) * 2019-09-27 2019-12-03 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、存储介质及电子装置
CN110582022A (zh) * 2019-09-27 2019-12-17 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
WO2019242506A1 (zh) * 2018-06-20 2019-12-26 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备和存储介质
CN110636312A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110677721A (zh) * 2019-09-27 2020-01-10 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110719457A (zh) * 2019-09-17 2020-01-21 北京达佳互联信息技术有限公司 一种视频编码方法、装置、电子设备及存储介质
WO2021000245A1 (en) * 2019-07-02 2021-01-07 Alibaba Group Holding Limited Constant rate factor control for adaptive resolution video coding
WO2021057479A1 (zh) * 2019-09-27 2021-04-01 腾讯科技(深圳)有限公司 视频编解码方法和相关装置
WO2024092425A1 (zh) * 2022-10-31 2024-05-10 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10868845B2 (en) * 2019-03-01 2020-12-15 Netskope, Inc. Recovery from failure in a dynamic scalable services mesh
CN111886864A (zh) * 2019-03-01 2020-11-03 阿里巴巴集团控股有限公司 分辨率自适应视频编码
US11798128B2 (en) * 2020-01-02 2023-10-24 Texas Instruments Incorporated Robust frame size error detection and recovery mechanism to minimize frame loss for camera input sub-systems
CN114363649B (zh) * 2021-12-31 2024-02-09 北京字节跳动网络技术有限公司 视频处理方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399991A (zh) * 2007-09-26 2009-04-01 华为技术有限公司 一种视频解码的方法和装置
US20110317773A1 (en) * 2010-06-24 2011-12-29 Worldplay (Barbados) Inc. Method for downsampling images
CN103813174A (zh) * 2012-11-12 2014-05-21 腾讯科技(深圳)有限公司 一种混合分辨率编解码方法和装置
CN103828358A (zh) * 2011-09-29 2014-05-28 杜比实验室特许公司 具有对称图片分辨率和质量的帧兼容全分辨率立体3d视频递送
CN104601993A (zh) * 2014-12-31 2015-05-06 乐视网信息技术(北京)股份有限公司 一种视频编码方法及装置
US20170048531A1 (en) * 2013-04-10 2017-02-16 Arris Enterprises Llc Re-sampling with phase offset adjustment for luma and chroma to select filters in scalable video coding
CN107155107A (zh) * 2017-03-21 2017-09-12 腾讯科技(深圳)有限公司 视频编码方法和装置、视频解码方法和装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757911B1 (en) * 1996-08-30 2004-06-29 Matsushita Electric Industrial Co., Ltd. Digital broadcasting system, digital broadcasting apparatus, and a reception apparatus for digital broadcasts
US7133441B1 (en) * 1999-02-23 2006-11-07 Actelis Networks Inc. High speed access system over copper cable plant
US6937770B1 (en) * 2000-12-28 2005-08-30 Emc Corporation Adaptive bit rate control for rate reduction of MPEG coded video
US6993199B2 (en) * 2001-09-18 2006-01-31 Nokia Mobile Phones Ltd. Method and system for improving coding efficiency in image codecs
EP1874059A4 (en) * 2005-03-22 2011-05-04 Panasonic Corp CODING DEVICE AND DYNAMIC IMAGE RECORDING SYSTEM WITH THE CODING DEVICE
WO2006126974A1 (en) * 2005-04-11 2006-11-30 Tubitak Bilten Optimal video adaptation for resource constrained mobile devices based on subjective utility models
EP2784954A4 (en) * 2011-11-25 2015-05-27 Humax Holdings Co Ltd METHOD FOR CONNECTING MMT MEDIA AND DASH MEDIA
US9485508B2 (en) * 2013-04-08 2016-11-01 Qualcomm Incorporated Non-entropy encoded set of profile, tier, and level syntax structures
US10178398B2 (en) * 2013-10-11 2019-01-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for video transcoding using mode or motion or in-loop filter information
US9774865B2 (en) * 2013-12-16 2017-09-26 Samsung Electronics Co., Ltd. Method for real-time implementation of super resolution
US9542953B2 (en) * 2014-01-22 2017-01-10 Comcast Cable Communications, Llc Intelligent data delivery
EP3103205A4 (en) * 2014-02-03 2017-06-28 LG Electronics Inc. Broadcast receiving device and operating method thereof
CN106464395B (zh) * 2015-03-01 2019-07-05 Lg电子株式会社 发送广播信号的设备、接收广播信号的设备、发送广播信号的方法和接收广播信号的方法
US10455249B2 (en) * 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
WO2016172395A1 (en) * 2015-04-21 2016-10-27 Arris Enterprises Llc Scalable video coding system with parameter signaling
US10205763B2 (en) * 2015-08-26 2019-02-12 Zhan Ma Method and apparatus for the single input multiple output (SIMO) media adaptation
US10356406B2 (en) * 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
US10390071B2 (en) * 2016-04-16 2019-08-20 Ittiam Systems (P) Ltd. Content delivery edge storage optimized media delivery to adaptive bitrate (ABR) streaming clients
CN105959700B (zh) * 2016-05-31 2020-04-14 腾讯科技(深圳)有限公司 视频图像编码的方法、装置、存储介质和终端设备
CN107517385B (zh) * 2016-06-16 2020-02-21 华为技术有限公司 一种视频图像的编解码方法和装置
CN108833918B (zh) * 2018-06-20 2021-09-17 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108769681B (zh) * 2018-06-20 2022-06-10 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、计算机设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399991A (zh) * 2007-09-26 2009-04-01 华为技术有限公司 一种视频解码的方法和装置
US20110317773A1 (en) * 2010-06-24 2011-12-29 Worldplay (Barbados) Inc. Method for downsampling images
CN103828358A (zh) * 2011-09-29 2014-05-28 杜比实验室特许公司 具有对称图片分辨率和质量的帧兼容全分辨率立体3d视频递送
CN103813174A (zh) * 2012-11-12 2014-05-21 腾讯科技(深圳)有限公司 一种混合分辨率编解码方法和装置
US20170048531A1 (en) * 2013-04-10 2017-02-16 Arris Enterprises Llc Re-sampling with phase offset adjustment for luma and chroma to select filters in scalable video coding
CN104601993A (zh) * 2014-12-31 2015-05-06 乐视网信息技术(北京)股份有限公司 一种视频编码方法及装置
CN107155107A (zh) * 2017-03-21 2017-09-12 腾讯科技(深圳)有限公司 视频编码方法和装置、视频解码方法和装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11206405B2 (en) 2018-06-20 2021-12-21 Tencent Technology (Shenzhen) Company Limited Video encoding method and apparatus, video decoding method and apparatus, computer device, and storage medium
WO2019242506A1 (zh) * 2018-06-20 2019-12-26 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备和存储介质
WO2021000245A1 (en) * 2019-07-02 2021-01-07 Alibaba Group Holding Limited Constant rate factor control for adaptive resolution video coding
CN110719457A (zh) * 2019-09-17 2020-01-21 北京达佳互联信息技术有限公司 一种视频编码方法、装置、电子设备及存储介质
CN110719457B (zh) * 2019-09-17 2020-10-30 北京达佳互联信息技术有限公司 一种视频编码方法、装置、电子设备及存储介质
WO2021057478A1 (zh) * 2019-09-27 2021-04-01 腾讯科技(深圳)有限公司 视频编解码方法和相关装置
CN110677721A (zh) * 2019-09-27 2020-01-10 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110636312A (zh) * 2019-09-27 2019-12-31 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110536134A (zh) * 2019-09-27 2019-12-03 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、存储介质及电子装置
WO2021057479A1 (zh) * 2019-09-27 2021-04-01 腾讯科技(深圳)有限公司 视频编解码方法和相关装置
WO2021057481A1 (zh) * 2019-09-27 2021-04-01 腾讯科技(深圳)有限公司 视频编解码方法和相关装置
CN110582022A (zh) * 2019-09-27 2019-12-17 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110677721B (zh) * 2019-09-27 2022-09-13 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110536134B (zh) * 2019-09-27 2022-11-04 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、存储介质及电子装置
CN110582022B (zh) * 2019-09-27 2022-12-30 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110636312B (zh) * 2019-09-27 2023-10-24 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
US11979577B2 (en) 2019-09-27 2024-05-07 Tencent Technology (Shenzhen) Company Limited Video encoding method, video decoding method, and related apparatuses
WO2024092425A1 (zh) * 2022-10-31 2024-05-10 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、及存储介质

Also Published As

Publication number Publication date
WO2019242506A1 (zh) 2019-12-26
CN108769681B (zh) 2022-06-10
US20200396460A1 (en) 2020-12-17
US11206405B2 (en) 2021-12-21

Similar Documents

Publication Publication Date Title
CN108769681A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108769682A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108833918A (zh) 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108833916A (zh) 视频编码、解码方法、装置、存储介质和计算机设备
CN108848376A (zh) 视频编码、解码方法、装置和计算机设备
CN108848380A (zh) 视频编码和解码方法、装置、计算机设备及存储介质
CN108833923A (zh) 视频编码、解码方法、装置、存储介质和计算机设备
CN108833917A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108848381A (zh) 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108924553A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN109561310B (zh) 视频编码处理方法、装置、设备和存储介质
CN104754355B (zh) 一种图像解码设备
CN104363451B (zh) 图像预测方法及相关装置
CN104539966B (zh) 图像预测方法及相关装置
CN108848377A (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN104301724B (zh) 视频处理方法、编码设备和解码设备
CN106878737B (zh) 高效视频编码中的运动估计加速方法
CN106331722A (zh) 图像预测方法和相关设备
CN101326550A (zh) 利用预测指导的抽取搜索的运动估计
CN110166771A (zh) 视频编码方法、装置、计算机设备和存储介质
CN108012163A (zh) 视频编码的码率控制方法及装置
CN109495746A (zh) 一种基于运动矢量调整的视频编码方法
CN108419082A (zh) 一种运动估计方法及装置
JP7431752B2 (ja) ビデオ符号化、ビデオ復号化方法、装置、コンピュータ装置及びコンピュータプログラム
CN109640097A (zh) 自适应因子的视频仿射运动估计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant