CN111770339A - 视频编码方法、装置、设备及存储介质 - Google Patents

视频编码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111770339A
CN111770339A CN202010712398.7A CN202010712398A CN111770339A CN 111770339 A CN111770339 A CN 111770339A CN 202010712398 A CN202010712398 A CN 202010712398A CN 111770339 A CN111770339 A CN 111770339A
Authority
CN
China
Prior art keywords
sub
unit
block
rate
image distortion
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
CN202010712398.7A
Other languages
English (en)
Other versions
CN111770339B (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 CN202010712398.7A priority Critical patent/CN111770339B/zh
Publication of CN111770339A publication Critical patent/CN111770339A/zh
Application granted granted Critical
Publication of CN111770339B publication Critical patent/CN111770339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

本申请提供了一种视频编码方法、装置、设备及存储介质,属于视频处理领域。所述方法包括:在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。上述方法能够在保证视频编码质量的条件下,提高视频编码的效率。

Description

视频编码方法、装置、设备及存储介质
技术领域
本申请涉及视频处理领域,特别涉及一种视频编码方法、装置、设备及存储介质。
背景技术
随着网络技术的发展,越来越多的用户通过各类终端观看视频。由于视频占用的存储空间往往十分巨大,而网络带宽又受限,因此在进行视频传输时,需要对视频进行压缩,也即是编码,来降低视频对存储空间的占用。相关技术中,计算机设备对视频进行编码时,需将视频图像划分为多个块,并对每个可能的块进行决策从而选择最优的编码方式。因此,计算机设备对视频图像进行编码的复杂度较高,需要耗费较多的时间。
发明内容
本申请实施例提供了一种视频编码方法、装置、设备及存储介质,能够在保证视频编码质量的条件下,提高视频编码的效率。所述技术方案如下:
一方面,提供了一种视频编码方法,所述方法包括:
在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在一种可能的实现方式中,所述获取所述至少两个第一子块的运动参数之后,所述方法还包括:
响应于所述至少两个运动参数之间的差异信息不符合所述运动条件,在视频编码时,按照所述第一划分模式,将所述待编码单元划分为所述至少两个第一子块。
在另一种可能的实现方式中,所述方法还包括:
响应于对所述待编码单元进行预划分的多种划分模式对应的差异信息不符合所述运动条件,获取所述多种划分模式对应的率失真参数,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种划分模式对所述待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与所述待编码单元之间的图像失真率;
在视频编码时,按照所述多种划分模式中率失真参数最小的划分模式,对所述待编码单元进行划分。
在另一种可能的实现方式中,所述方法还包括:
获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
所述响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分,包括:
响应于所述至少两个运动参数之间的差异信息符合所述运动条件,且至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
另一方面,提供了另一种视频编码方法,所述方法包括:
在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在另一种可能的实现方式中,所述获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数之后,所述方法还包括:
响应于所述至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息不符合所述失真条件,在视频编码时,按照所述第一划分模式,将所述待编码单元划分为所述至少两个第一子块。
在另一种可能的实现方式中,所述方法还包括:
响应于对所述待编码单元进行预划分的多种划分模式对应的差异信息不符合所述失真条件,获取所述多种划分模式对应的率失真参数,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种划分模式对所述待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与所述待编码单元之间的图像失真率;
在视频编码时,按照所述多种划分模式中率失真参数最小的划分模式,对所述待编码单元进行划分。
在另一种可能的实现方式中,所述方法还包括:
获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
所述响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分,包括:
响应于所述至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合所述失真条件,且至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
另一方面,提供了一种视频编码装置,所述装置包括:
预划分模块,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块,用于获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
划分模块,用于响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在一种可能的实现方式中,所述运动参数为运动矢量,任两个运动矢量之间的差异信息为所述任两个运动矢量之间的夹角;
所述划分模块,用于确定至少两个运动矢量的平均运动矢量;获取所述至少两个运动矢量与所述平均运动矢量之间的夹角;响应于不小于目标数量的运动矢量与所述平均运动矢量之间的夹角小于参考夹角,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在另一种可能的实现方式中,所述运动参数为运动矢量,任两个运动矢量之间的差异信息为所述任两个运动矢量之间的夹角;
所述划分模块,用于确定至少两个运动矢量的平均运动矢量;获取所述至少两个运动矢量与所述平均运动矢量之间的夹角;响应于每个运动矢量与所述平均运动矢量之间的夹角均小于参考夹角,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在另一种可能的实现方式中,所述运动参数为运动矢量,
所述获取模块,用于对于每个第一子块,在所述第一子块已执行率失真优化的情况下,从率失真优化结果中获取所述第一子块的运动矢量;其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
在另一种可能的实现方式中,所述运动参数为运动矢量,
所述获取模块,用于对于每个第一子块,在所述第一子块未执行率失真优化的情况下,将所述第一子块与所述参考视频帧中匹配的子块之间的相对位移,确定为所述第一子块的运动矢量,所述参考视频帧为未进行编码的视频帧;其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
在另一种可能的实现方式中,所述第一划分模式为二叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为两个面积相同的矩形第一子块;或,
所述第一划分模式为三叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为三个面积相同的矩形第一子块;或,
所述第一划分模式为四叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为四个面积相同的正方形的第一子块。
在另一种可能的实现方式中,所述划分模块,还用于响应于所述至少两个运动参数之间的差异信息不符合所述运动条件,在视频编码时,按照所述第一划分模式,将所述待编码单元划分为所述至少两个第一子块。
在另一种可能的实现方式中,所述划分模块,还用于响应于对所述待编码单元进行预划分的多种划分模式对应的差异信息不符合所述运动条件,获取所述多种划分模式对应的率失真参数,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种划分模式对所述待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与所述待编码单元之间的图像失真率;在视频编码时,按照所述多种划分模式中率失真参数最小的划分模式,对所述待编码单元进行划分。
在另一种可能的实现方式中,所述获取模块,还用于获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
所述划分模块,用于响应于所述至少两个运动参数之间的差异信息符合所述运动条件,且至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
另一方面,提供了另一种视频编码装置,所述装置包括:
预划分模块,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块,用于获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
划分模块,用于响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在一种可能的实现方式中,所述划分模块,用于响应于所述至少两个第一图像失真参数之和不小于所述第二图像失真参数与第一阈值之积,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
在另一种可能的实现方式中,所述获取模块,用于对于每个第一子块,在所述第一子块已执行率失真优化的情况下,将率失真优化结果中的图像失真率确定为所述第一子块的第一图像失真参数;其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
在另一种可能的实现方式中,所述获取模块,用于对于每个第一子块,在所述第一子块未执行率失真优化的情况下,将所述第一子块与参考视频帧中匹配的子块之间的清晰度差异,确定为所述第一子块的第一图像失真参数,所述参考视频帧为未进行编码的视频帧;其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
在另一种可能的实现方式中,所述第一划分模式为二叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为两个面积相同的矩形第一子块;或,
所述第一划分模式为三叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为三个面积相同的矩形第一子块;或,
所述第一划分模式为四叉树划分模式,所述预划分模块,用于将所述待编码单元预划分为四个面积相同的正方形的第一子块。
在另一种可能的实现方式中,所述划分模块,还用于响应于所述至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息不符合所述失真条件,在视频编码时,按照所述第一划分模式,将所述待编码单元划分为所述至少两个第一子块。
在另一种可能的实现方式中,所述划分模块,还用于响应于对所述待编码单元进行预划分的多种划分模式对应的差异信息不符合所述失真条件,获取所述多种划分模式对应的率失真参数,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种划分模式对所述待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与所述待编码单元之间的图像失真率;在视频编码时,按照所述多种划分模式中率失真参数最小的划分模式,对所述待编码单元进行划分。
在另一种可能的实现方式中,所述获取模块,还用于获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
所述划分模块,用于响应于所述至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合所述失真条件,且至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现上述任一种可能实现方式中的视频编码方法中执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现上述任一种可能实现方式中的视频编码方法中执行的操作。
再一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序代码,所述处理器执行所述计算机程序代码,使得所述计算机设备执行上述任一种可能实现方式中的视频编码方法中执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到至少两个子块,根据该至少两个子块的运动参数之间的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的运动参数之间的差异信息符合运动条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分,这样只需要对子块的运动参数之间的差异信息不符合运动条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
通过本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到的至少两个子块,根据该至少两个子块与待编码单元之间在图像失真上的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的图像失真参数与待编码单元的图像失真参数之间的差异信息符合失真条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分。这样只需要对图像失真参数与子块的图像失真参数之间不符合失真条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视频帧划分方法的示意图;
图2是本申请实施例提供的一种实施环境示意图;
图3是本申请实施例提供的一种视频编码方法的流程图;
图4是本申请实施例提供的一种视频编码方法的流程图;
图5是本申请实施例提供的一种视频编码方法的流程图;
图6是本申请实施例提供的一种对视频帧进行二叉树划分的示意图;
图7是本申请实施例提供的一种对视频帧进行三叉树划分的示意图;
图8是本申请实施例提供的一种对视频帧进行四叉树划分的示意图;
图9是本申请实施例提供的一种视频编码方法的流程图;
图10是本申请实施例提供的一种视频编码方法的流程图;
图11是本申请实施例提供的一种视频编码装置的框图;
图12是本申请实施例提供的一种视频编码装置的框图;
图13是本申请实施例提供的一种终端的结构示意图;
图14是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应理解,本申请所使用的术语“每个”、“多个”及“任一”等,多个包括两个或两个以上,每个是指对应的多个中的每一个,任一是指对应的多个中的任意一个。举例来说,多个子块包括10个子块,而每个子块是指这10个子块中的每一个子块,任一子块是指10个子块中的任意一个子块。
本申请中所使用的术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
首先,对本申请中涉及的名词进行如下介绍:
编码单元(Coding Unit,CU):一个图像帧包括多个编码单元。在视频编码过程中,需要对图像帧进行划分,划分包括多个层级。举例来说,参见图1,在视频编码过程中,计算机设备能够将图像帧101划分为四个宏块102,该四个宏块102即是编码单元。计算机设备能够对宏块102中的任一个继续进行划分,得到子块。以划分模式为二叉树划分模式为例,计算机设备能够将一个宏块102划分为两个子块103。计算机设备还能够对两个子块103中的任一个继续进行划分。
图2是本申请实施例提供的一种视频编码方法的实施环境示意图,参见图2,该实施环境中可以包括终端201和服务器202。
终端201通过无线网络或有线网络与服务器202相连。可选地,终端201是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端201安装和运行有支持视频编码的应用程序。
可选地,服务器202是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端201以及服务器202能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在本申请提供的视频编码方法能够用于多种视频编码标准的上下文中,比如应用在多功能视频编码标准(Versatile Video Coding,VVC/H.266)中,也能够应用在第三代数字视频编解码技术标准(Audio Video coding Standard 3,AVS3)中,本申请实施例对此不做限定。
在本申请实施例中,能够由服务器或终端作为执行主体来实施本申请实施例提供的视频编码方法,也能够通过终端和服务器之间的交互来实施本申请提供的视频编码方法,本申请实施例对此不作限定。下面将以执行主体为终端为例进行说明。
图3是本申请实施例提供的一种视频编码方法的流程图。参见图3,该实施例包括:
301、在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块。
302、获取至少两个第一子块的运动参数,运动参数用于表示第一子块与参考视频帧中匹配的子块之间的运动变化量。
303、响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到至少两个子块,根据该至少两个子块的运动参数之间的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的运动参数之间的差异信息符合运动条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分,这样只需要对子块的运动参数之间的差异信息不符合运动条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
图4是本申请实施例提供的一种视频编码方法的流程图。参见图4,该实施例包括:
401、在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块。
402、获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数,第一图像失真参数用于表示对第一子块进行编码得到的子块与第一子块之间的图像失真信息,第二图像失真参数用于表示对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真信息。
403、响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
通过本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到的至少两个子块,根据该至少两个子块与待编码单元之间在图像失真上的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的图像失真参数与待编码单元的图像失真参数之间的差异信息符合失真条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分。这样只需要对图像失真参数与子块的图像失真参数之间不符合失真条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
图5是本申请实施例提供的一种视频编码方法的流程图。参见图5,该实施例包括:
501、终端在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块。
本申请实施例中,对待编码单元进行编码的过程包括预划分和划分,其中,预划分和划分是两个不同的过程,预划分是划分之前的过程,能够根据预划分的结果判断是否对待编码单元进行划分,以及对待编码单元进行何种方式的划分,实际上是一个确定划分模式的过程。若根据预划分的结果确定不对待编码单元进行划分,则在视频编码时不对待编码单元进行划分,若根据预划分的结果确定对待编码单元进行划分,且确定了最终的划分模式,则在视频编码时按照该确定的划分模式对该待编码单元进行真正的划分。其中,预划分过程中可能需要进行率失真优化来确定最终的划分模式,而在划分过程中无需进行率失真优化。
上述先对待编码单元进行预划分,根据预划分结果来确定是否划分以及如何划分的方案,使得终端能够以最好的划分模式进行划分,视频编码能够兼顾视频编码的编码码率和图像失真,视频编码的效果好。
其中,划分模式为视频编码的编码单元划分模式,例如,划分模式包括二叉树划分模式、三叉树划分模式以及四叉树划分模式等。第一划分模式为任一划分模式,本申请对此不做限制。
可选地,第一划分模式为二叉树划分模式,该步骤的实现方式为:终端将待编码单元预划分为两个面积相同的矩形第一子块。
其中,二叉树划分模式(Binary Tree,BT)为将编码单元划分为两个子块的方法,二叉树划分模式包括水平二叉树划分模式和竖直二叉树划分模式。
参见图6,终端能够对第一待编码单元601进行水平二叉树划分,得到子块6011和子块6012。终端能够对第二待编码单元602进行竖直二叉树划分,得到子块6021和子块6022。
另外,对于不同的编码方法来说,会为二叉树划分模式(竖直二叉树划分模式和水平二叉树划分模式)设置不同的最小子块尺寸(minBTSize)。对于VVC/H.266来说,minBTSize为4×4,也即是划分后的子块尺寸最小为4×4。若采用竖直二叉树划分模式后得到的子块的尺寸小于4×4,那么终端不会采用竖直二叉树划分模式来对待编码单元进行划分。
可选地,第一划分模式为三叉树划分模式,该步骤的实现方式为:终端将待编码单元预划分为三个面积相同的矩形第一子块。
其中,三叉树划分模式为将编码单元划分为三个子块的方法,三叉树划分模式包括水平三叉树划分模式和竖直三叉树划分模式。
参见图7,终端能够对第三待编码单元701进行水平三叉树划分,得到子块7011、子块7012和子块7013。终端能够对第四待编码单元702进行水平三叉树划分,得到子块7021、子块7022和子块7022。
可选地,第一划分模式为四叉树划分模式,该步骤的实现方式为:终端将待编码单元预划分为四个面积相同的正方形的第一子块。
其中,四叉树划分模式(Quad Tree,QT)为将待编码单元划分为四个子块的方法。
参见图8,终端能够对第五待编码单元801进行四叉树划分,得到子块8011、子块8012、子块8013和子块8014。
502、终端获取至少两个第一子块的运动参数,运动参数用于表示第一子块与参考视频帧中匹配的子块之间的运动变化量。
其中,第一子块在参考视频帧中匹配的子块即参考视频中与该第一子块相似的子块。运动参数能够表示第一子块与参考视频帧中匹配的子块之间的运动变化量,运动参数的值越大,即表示第一子块与参考视频帧中匹配的子块之间的运动变化量越大,也即表示,该第一子块相对于参考视频帧中匹配的子块的位置,位置发生了较大变化。
可选地,参考视频帧为当前视频帧的前一视频帧或者后一视频帧,或者为其他视频帧,本申请对此不做限制。
可选地,运动参数为运动矢量,获取至少两个第一子块的运动参数分为以下两种情况:
第一种,对于每个第一子块,在该第一子块已执行率失真优化的情况下,终端从率失真优化结果中获取第一子块的运动矢量。
其中,率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
视频编码的主要目的就是保证一定视频质量的条件下尽可能地减少编码码率,或保证一定编码码率的条件下尽可能地减小图像失真。针对不同视频内容,有多种候选编码模式,例如,帧内预测模式、帧间预测模式,而帧内预测模式又包括35种模式,帧间预测模式包括Merge(合并)帧间预测模式和非Merge帧间预测模式,对子块进行率失真优化即是从多种编码模式中找出使子块编码后的率失真参数最小的编码模式的过程。其中,该率失真参数为率失真代价。
若第一子块已执行率失真优化,则该第一子块的率失真优化结果中会包括最小的率失真参数、以及该率失真参数对应的编码码率、图像失真率、运动矢量、参考视频帧、预测权值等,相应地,终端能够直接从该率失真优化结果中获取第一子块的运动矢量。由于率失真优化结果中第一子块的运动矢量是基于重建后的参考视频帧(即编码后的参考视频帧)所确定的,因此,获取的运动矢量的准确率高。
第二种,对于每个第一子块,在该第一子块未执行率失真优化的情况下,终端将第一子块与参考视频帧中匹配的子块之间的相对位移,确定为第一子块的运动矢量,其中,参考视频帧为未进行编码的视频帧。
终端在将第一子块与参考视频帧中匹配的子块之间的相对位移确定为第一子块的运动矢量之前,先要确定参考视频帧中匹配的子块。
可选地,终端通过全搜索算法或者快速搜索算法从参考视频帧中搜索与第一子块匹配的子块。其中,快速搜索算法包括三步搜索法、新三步搜索法、二维对数搜索法、交叉搜索法、菱形搜索法、钻石搜索法、遗传搜索法等,本申请对此不做限制。
终端在参考视频帧中搜索出与第一子块匹配的子块后,根据第一子块的位置和匹配的子块的位置确定第一子块与匹配的子块之间的相对位移,例如,第一子块的位置为(2,4),匹配的子块的位置为(1,1),则第一子块与匹配的子块之间的相对位移为(1,3),即第一子块运动矢量为(1,3)。
在一种可能的实现方式中,终端在视频编码之前获取当前视频帧中的所有子块,对于每个子块,将该子块与参考视频帧中匹配的子块之间的相对位移,确定为该子块的运动矢量,存储该运动矢量,其中,参考视频帧为未进行编码的视频帧。相应的,终端在确定第一子块未执行率失真优化的情况下,直接获取存储的第一子块的运动矢量。
需要说明的一点是,由于子块的运动矢量是基于未编码的参考视频帧获取的,不依赖于编码过程的重建结果(即编码后的参考视频帧),因此,一方面使得终端能够在视频编码之前进行运动估计,即在编码前获取当前视频帧中子块的运动矢量,从而使得在编码过程中能够直接获取存储的子块的运动矢量,节省了进行运动估计的时间,提高了编码效率。另一方面,还使得终端能够多帧并行进行运动估计,即同步获取多个视频帧中子块的运动矢量,时间复杂度低,极大地提高了运动估计的效率。
503、终端响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
其中,运动条件为运动参数相似的子块之间所要符合的条件。若至少两个子块的运动参数之间的差异信息符合运动条件,则表示至少两个子块的运动参数相似。
可选地,运动参数为运动矢量,任两个运动矢量之间的差异信息为任两个运动矢量之间的夹角。
在一种可能的实现方式中,步骤503包括:终端确定至少两个运动矢量的平均运动矢量;获取至少两个运动矢量与平均运动矢量之间的夹角;终端响应于不小于目标数量的运动矢量与平均运动矢量之间的夹角小于参考夹角,在视频编码时,不对待编码单元按照第一划分模式进行划分。
其中,目标数量为任意数量,例如,目标数量为1、2或者其他数量,本申请对此不做限制。参考夹角为任意夹角,例如,参考夹角为1度、2度或者其他,本申请对此不做限制。需要说明的一点是,运动矢量与平均运动矢量之间的夹角小于参考夹角是指,运动矢量与平均运动矢量之间的夹角小于该运动矢量所属的第一子块对应的参考夹角。并且,各个第一子块对应的参考夹角不必完全相同。可选地,每个第一子块对应的参考夹角是相同的,或者每个第一子块对应的夹角均不相同,或者部分第一子块对应的参考夹角相同,本申请对此不做限制。
以对待编码单元进行四叉树划分为例,则终端获取到四个第一子块,假设四个第一子块的运动矢量分别为MV0、MV1、MV2和MV3,MVave为MV0、MV1、MV2和MV3的平均值即平均运动矢量,MV0与MVave之间的夹角为a0,MV1与MVave之间的夹角为a1,MV2与MVave之间的夹角为a2,MV3与MVave之间的夹角为a3,四个第一子块分别对应的参考夹角为T0、T1、T2和T3、目标数量为2,则当a0<T0,a1<T1,a2<T2和a3<T3中的任意两个满足,或者任意三个满足、或者四个都满足时,终端则在视频编码时,不对待编码单元按照四叉树划分模式进行划分。
在另一种可能的实现方式中,步骤503包括:终端确定至少两个运动矢量的平均运动矢量;获取至少两个运动矢量与平均运动矢量之间的夹角;终端响应于每个运动矢量与平均运动矢量之间的夹角均小于参考夹角,在视频编码时,不对待编码单元按照第一划分模式进行划分。结合上述实例,即当a0<T0且a1<T1且a2<T2且a3<T3时,不对待编码单元按照四叉树划分模式进行划分。
在一种可能的实现方式中,第一划分模式为二叉树划分模式,步骤503包括:终端确定两个运动矢量之间的夹角;终端响应于该夹角小于参考夹角,在视频编码时,不对待编码单元按照第一划分模式进行划分。
例如,两个运动矢量分别为MV0和MV1,MV0和MV1之间的夹角为a,参考夹角为T,则当a<T时,不对待编码单元按照二叉树划分模式进行划分。
在本申请实施例中,由于运动条件为运动参数相似的子块之间所要符合的条件,当至少两个子块的运动参数之间的差异信息符合运动条件,则说明该至少两个子块的运动参数相似,则能够将该至少两个子块视为一个完整的子块处理,也即说明是否将待编码单元划分为该至少两个子块对编码质量的影响不大,因此,当至少两个子块的运动参数之间的差异信息符合运动条件,则在视频编码时,不对待编码单元按照第一划分模式进行划分,不会影响视频编码的质量。并且,由于编码过程中需要对划分得到的每个子块进行率失真优化来确定子块的编码模式,而率失真优化的过程复杂且耗时长,通过不对待编码单元按照第一划分模式进行划分,能够省略后续对第一划分模式下得到的子块进行率失真优化的过程,有效提高了编码效率。
504、终端响应于至少两个运动参数之间的差异信息不符合运动条件,确定对待编码单元按照第一划分模式进行划分。
需要说明的一点是,终端确定对待编码单元按照第一划分模式进行划分,是指终端确定能够按照第一划分模式对待编码单元进行划分,而不是指终端在视频编码时,一定按照第一划分模式对待编码单元进行划分。
在一种可能的实现方式中,终端响应于至少两个运动参数之间的差异信息不符合运动条件,在视频编码时,按照第一划分模式,将待编码单元划分为至少两个第一子块。
在另一种可能的实现方式中,终端不仅按照第一划分模式对待编码单元进行预划分,还要按照其他划分模式对待编码单元进行预划分,可选地,其他划分模式为与第一划分模式不同的任意划分模式,本申请对此不做限制。
可选地,终端中预设多种划分模式,分别按照每种划分模式对待编码单元进行预划分,对于每种划分模式,终端通过上述方法确定是否按照该划分模式对待编码单元进行划分,也即是通过上述方法确定该划分模式对应的差异信息是否符合运动条件。
可选地,终端并行获取多种划分模式对应的差异信息是否符合运动条件的结果。例如,终端并行按照多种划分模式对待编码单元进行预划分,对于并行进行的多种划分模式,终端通过上述方法确定每种划分模式对应的差异信息是否符合运动条件。或者,终端顺序获取多种划分模式对应的差异信息是否符合运动条件的结果。例如,终端通过上述方法获取到第一划分模式对应的差异信息是否符合运动条件的结果后,接着通过上述方法获取第二划分模式对应的差异信息是否符合运动条件的结果,且第二划分模式与第一划分模式不同,接着再通过上述方法获取第三划分模式对应的差异信息是否符合运动条件的结果,且第三划分模式与第一划分模式和第二划分模式均不同,以此类推。也即是,终端将步骤501-步骤503循环执行多次,且每次改变预划分的划分模式,从而得到多种划分模式对应的差异信息是否符合运动条件的结果。
终端获取到多种划分模式对应的差异信息是否满足运动条件的结果后,若终端确定对待编码单元进行预划分的多种划分模式对应的差异信息均符合运动条件,执行下述步骤(A),否则执行下述步骤(B)-(C)。
(A):终端响应于对待编码单元进行预划分的多种划分模式对应的差异信息均符合运动条件,在视频编码时,不对待编码单元进行划分。
多种划分模式对应的差异信息均符合运动条件,表明该待编码单元的划分对编码结果的影响不大,终端在视频编码时,直接跳过对该待编码单元的划分,从而避免了后续对该待编码单元划分后的子块进行率失真优化的过程,进而提高了编码效率。
(B)、终端响应于对待编码单元进行预划分的多种划分模式对应的差异信息不符合运动条件,获取多种划分模式对应的率失真参数。
其中,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种划分模式对待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与待编码单元之间的图像失真率。
需要说明的一点是,对待编码单元进行预划分的多种划分模式对应的差异信息不符合运动条件是指不少于两种划分模式对应的差异信息不符合运动条件。
可选地,对于每种划分模式,终端获取该划分模式对应的率失真参数的实现方式为:终端获取该划分模式对应的多个第一子块,获取每个第一子块的率失真参数,将多个第一子块的率失真参数之和确定为该划分模式对应的率失真参数。其中,对于每个第一子块,在该第一子块已执行率失真优化的情况下,从率失真优化结果中获取该第一子块的率失真参数,在该第一子块未执行率失真优化的情况下,对该第一子块进行率失真优化以获取该第一子块的率失真参数。
(C)、在视频编码时,终端按照多种划分模式中率失真参数最小的划分模式,对待编码单元进行划分。
在视频编码时,终端按照率失真参数最小的划分模式,对待编码单元进行划分,视频编码的效果好。
需要说明的一点是,相关技术中在确定对待编码单元按照何种划分模式进行划分的方法是,直接获取对该待编码单元进行预划分的每种划分模式对应的率失真参数,按照率失真参数最小的划分模式对该待编码单元进行划分,则终端需要获取对该待编码单元进行预划分的每种划分模式对应的率失真参数,而要获取每种划分模式对应的率失真参数,就要对每种划分模式对应的多个子块进行率失真优化。由于率失真优化的过程复杂,导致终端确定对待编码单元按照何种划分模式进行划分的过程计算量很大,且耗时很长。
而本申请提供的视频编码方法中,先通过预划分的方式确定预划分后的子块的运动参数之间的差异信息是否符合运动条件,若符合运动条件,则不按照对应的划分模式对子块进行划分,避免了对该划分模式下的子块进行率失真优化的过程,因此极大地提高了视频编码的效率。并且,由于运动条件是运动参数相似的子块所要满足的运动条件,符合运动条件,即表明对待编码单元进行划分对编码效果的影响不大,因此,本申请中的视频编码方法在提高了编码效率的同时,保证了编码质量。
需要说明的另一点是,由于在确定每种划分模式对应的率失真参数时,需要确定该划分模式对应的子块的率失真参数,因而存在当前的第一子块在之前已执行率失真优化的情况。例如,参考图8,当通过本申请提供的方法判断是否对待编码单元801进行划分的过程中,假设根据8011、8012、8013和8014这四个子块之间的运动参数确定不能跳过对待编码单元801进行四叉树划分,且根据由8011与8012组成的子块的运动参数和由8013和8014组成的子块的运动参数,判断是否对待编码单元801进行水平二叉树划分的过程中,确定不能跳过对待编码单元进行水平二叉树划分,则终端会获取四叉树划分模式和水平二叉树划分模式这两种划分模式分别对应的率失真参数,在这个过程中,终端需要对8011、8012、8013、8014四个子块,以及由8011与8012组成的子块和由8013与8014组成的子块,分别进行率失真优化,以获取对应的率失真参数。然后将8011、8012、8013、8014四个子块的率失真参数之和作为四叉树划分模式对应的第一率失真参数,将由8011与8012组成的子块和由8013与8014组成的子块的率失真参数之和,作为水平二叉树划分模式对应的第二率失真参数,假设第二率失真参数小于第一率失真参数,则终端会对801进行水平二叉树划分。假设终端将待编码单元801水平划分为由8011与8012组成的子块和由8013与8014组成的子块,则当终端判断是否对由8011与8012组成的子块进行垂直二叉树划分时,终端则不需要再次对子块8011和子块8012进行率失真优化,能够直接从之前的率失真优化结果中获取8011和8012的运动矢量或者率失真参数。也即是说,在编码的过程中,终端会存储已执行率失真优化的子块的率失真优化结果,在之后的编码过程中重复使用,而不需要对相同的子块进行重复的率失真优化,从而提高视频编码的效率。
图9是本申请实施例提供的一种视频编码方法的流程图。参见图9,该实施例包括:
901、终端在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块。
该步骤的实现方式与步骤501同理,此处不再赘述。
902、终端获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数,第一图像失真参数用于表示对第一子块进行编码得到的子块与第一子块之间的图像失真信息,第二图像失真参数用于表示对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真信息。
其中,终端获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数分为以下两种情况:
第一种,对于每个第一子块,在该第一子块已执行率失真优化的情况下,终端将率失真优化结果中的图像失真率确定为该第一子块的第一图像失真参数。
其中,该率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
在待编码单元已执行率失真优化的情况下,终端将率失真优化结果中的图像失真率确定为待编码单元的第二图像失真参数。
其中,该率失真优化是指从多种编码模式中选择使待编码单元的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真率。
视频编码的主要目的就是保证一定视频质量的条件下尽可能的减少编码码率,或保证一定编码码率的条件下尽可能的减小失真。针对不同视频内容,有多种候选编码模式,例如,帧内预测模式、帧间预测模式,而帧内预测模式又包括35种模式,帧间预测模式包括Merge帧间预测模式和非Merge帧间预测模式,对子块进行率失真优化即是从多种编码模式中找出使子块编码后的率失真参数最小的编码模式的过程。对待编码单元进行率失真优化即是从多种编码模式中找出使待编码单元编码后的率失真参数最小的编码模式的过程。其中,该率失真参数为率失真代价。
若第一子块已执行率失真优化,则该第一子块的率失真优化结果中会包括最小的率失真参数、以及该率失真参数对应的编码码率、图像失真率、运动矢量、参考视频帧、预测权值等,相应地,终端能够直接从该率失真优化结果中获取第一子块的第一图像失真率。由于率失真优化结果中第一子块的第一图像失真率是基于重建后的参考视频帧(即编码后的参考视频帧)所确定的,因此,获取的第一图像失真率的准确率高。
同理,若待编码单元已执行率失真优化,终端直接从率失真优化结果中获取该待编码单元的第二图像失真率。由于率失真优化结果中待编码单元的第二图像失真率是基于重建后的参考视频帧(即编码后的参考视频帧)所确定的,因此,获取的第二图像失真率的准确率高。
第二种,对于每个第一子块,在第一子块未执行率失真优化的情况下,终端将第一子块与参考视频帧中匹配的子块之间的清晰度差异,确定为第一子块的第一图像失真参数,其中,参考视频帧为未进行编码的视频帧。
终端在将第一子块与参考视频帧中匹配的子块之间的清晰度差异,确定为第一子块的第一图像失真参数之前,先要确定参考视频帧中匹配的子块。实现方式与步骤502中确定参考视频中匹配的子块的实现方式同理,此处不再赘述。
终端在参考视频帧中确定出第一子块匹配的子块后,确定第一子块与参考视频帧中匹配的子块之间的清晰度差异,可选地,实现方式为:终端获取第一子块中多个参考像素点的像素值和匹配的子块中对应的像素点的像素值,将多个参考像素点的像素值与对应的像素点的像素值的差值的平方和,确定为第一子块与参考视频帧中匹配的子块之间的清晰度差异。
在一种可能的实现方式中,终端在视频编码之前获取当前视频帧中的所有子块,对于每个子块,将该子块与参考视频帧中匹配的子块之间的清晰度差异,确定为该子块的第一图像失真参数,存储该第一图像失真参数,其中,参考视频帧为未进行编码的视频帧。相应的,终端在第一子块未执行率失真优化的情况下,直接获取存储的第一子块的第一图像失真参数。
需要说明的一点是,由于子块的第一图像失真参数是基于未编码的参考视频帧获取的,不依赖于编码过程的重建结果(即编码后的参考视频帧),因此,一方面使得终端能够在视频编码之前计算当前视频帧中子块的第一图像失真参数,从而使得在编码过程中能够直接获取存储的子块的第一图像失真参数,节省了计算第一图像失真参数的时间,提高了编码效率。另一方面,还使得终端能够多帧并行获取多个视频帧中子块的第一图像失真参数,时间复杂度低,极大地提高了计算子块的图像失真参数的效率。
在待编码单元未执行率失真优化的情况下,终端将待编码单元与参考视频帧中匹配的图像单元之间的清晰度差异,确定为待编码单元的第二图像失真参数,其中,参考视频帧为未进行编码的视频帧。实现方式与上述确定第一子块的第一图像失真参数同理,此处不再赘述。
903、终端响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
其中,失真条件为子块的失真参数与待编码单元的图像失真参数相似时,所要符合的条件。若至少两个子块的失真参数与待编码单元的图像失真参数之间的差异信息符合失真条件,则表示至少两个子块的失真参数与待编码单元的图像失真参数相似。
在一种可能的实现方式中,步骤903包括:终端响应于至少两个第一图像失真参数之和不小于第二图像失真参数与第一阈值之积,在视频编码时,不对待编码单元按照第一划分模式进行划分。
可选地,其中第一阈值为任意数值,本申请对此不做限制。需要说明的一点是,若终端将第一阈值设置为较大的数值,那么能够满足至少两个第一图像失真参数之和不小于第二图像失真参数与第一阈值之积这个条件的待编码单元的数量也就较少,终端则会将视频帧划分为较多的子块,最终经过视频编码得到的视频帧也就更加清晰。若终端将第一阈值设置为较小的数值,那么能够满足至少两个第一图像失真参数之和不小于第二图像失真参数与第一阈值之积这个条件的待编码单元的数量也就较多,终端无需将视频帧划分为较多的子块来进行编码,这样能够显著减少编码过程中计算资源的消耗,提高视频编码的效率。
以对待编码单元进行四叉树划分为例,则终端获取到四个第一子块,假设四个第一子块的第一图像失真参数分别为D0、D1、D2和D3,待编码单元的第二图像失真参数为Dp,第一阈值为λ,则当D0+D1+D2+D3≥λDp时,终端在视频编码时,不对待编码单元按照四叉树划分模式进行划分。
以对待编码单元进行二叉树划分为例,则终端获取到两个第一子块,假设两个第一子块的第一图像失真参数分别为D0和D1,待编码单元的第二图像失真参数为Dp,第一阈值为λ,则当D0+D1≥λDp时,终端在视频编码时,不对待编码单元按照二叉树划分模式进行划分。
在本申请实施例中,由于失真条件为子块的图像失真参数与待编码单元的图像失真参数相似时所要符合的条件,当至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件时,则说明该至少两个子块的图像失真参数与待编码单元的图像失真参数相似,也即说明是否将待编码单元划分为该至少两个子块对编码质量的影响不大,因此,当至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件时,不对待编码单元按照第一划分模式进行划分,不会影响视频编码的质量。并且,由于编码过程中需要对划分得到的每个子块进行率失真优化来确定子块的编码模式,而率失真优化的过程复杂且耗时长,通过不对待编码单元按照第一划分模式进行划分,能够省略后续对第一划分模式下得到的子块进行率失真优化的过程,有效提高了编码效率。
904、终端响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息不符合失真条件,确定对待编码单元按照第一划分模式进行划分。
需要说明的一点是,终端确定对待编码单元按照第一划分模式进行划分,是指终端确定能够按照第一划分模式对待编码单元进行划分,而不是指终端在视频编码时,一定按照第一划分模式对待编码单元进行划分。
在一种可能的实现方式中,终端响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息不符合失真条件,在视频编码时,按照第一划分模式,将待编码单元划分为至少两个第一子块。
在另一种可能的实现方式中,终端不仅按照第一划分模式对待编码单元进行预划分,还要按照其他划分模式对待编码单元进行预划分,可选地,其他划分模式为与第一划分模式不同的任意划分模式,本申请对此不做限制。
可选地,终端中预设多种划分模式,分别按照每种划分模式对待编码单元进行预划分,对于每种划分模式,终端通过上述方法确定在视频编码时,是否按照该划分模式对待编码单元进行划分,也即是通过上述方法确定该划分模式对应的差异信息是否符合失真条件。
可选地,终端并行获取多种划分模式对应的差异信息是否符合失真条件的结果。例如,终端并行按照多种划分模式对待编码单元进行预划分,对于并行进行的多种划分模式,终端通过上述方法确定每种划分模式对应的差异信息是否符合失真条件。或者,终端顺序获取多种划分模式对应的差异信息是否符合失真条件的结果。例如,终端通过上述方法获取到第一划分模式对应的差异信息是否符合失真条件的结果后,接着通过上述方法获取第二划分模式对应的差异信息是否符合失真条件的结果,且第二划分模式与第一划分模式不同,接着再通过上述方法获取第三划分模式对应的差异信息是否符合失真条件的结果,且第三划分模式与第一划分模式和第二划分模式均不同,以此类推。也即是,终端将步骤901-步骤903循环执行多次,且每次改变预划分的划分模式,从而得到多种划分模式对应的差异信息是否符合失真条件的结果。
终端获取到多种划分模式对应的差异信息是否满足失真条件的结果后,若终端确定对待编码单元进行预划分的多种划分模式对应的差异信息均符合失真条件,执行下述步骤(D),否则执行下述步骤(E)-(F)。
(D):终端响应于对待编码单元进行预划分的多种划分模式对应的差异信息均符合失真条件,在视频编码时,不对待编码单元进行划分。
多种划分模式对应的差异信息均符合失真条件,表明该待编码单元的划分对编码结果的影响不大,终端在视频编码时,直接跳过对该待编码单元的划分,从而避免了后续对该待编码单元划分后的子块进行率失真优化的过程,进而提高了编码效率。
(E)、终端响应于对待编码单元进行预划分的多种划分模式对应的差异信息不符合失真条件,获取多种划分模式对应的率失真参数。
其中,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种划分模式对待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与待编码单元之间的图像失真率。
需要说明的一点是,对待编码单元进行预划分的多种划分模式对应的差异信息不符合失真条件是指不少于两种划分模式对应的差异信息不符合失真条件。
对于每种划分模式,终端获取该划分模式对应的率失真参数的实现方式与上述步骤(B)中终端获取划分模式对应的率失真参数的实现方式同理,此处不再赘述。
(F)、终端在视频编码时,按照多种划分模式中率失真参数最小的划分模式,对待编码单元进行划分。
在视频编码时,终端按照率失真参数最小的划分模式,对待编码单元进行划分,视频编码的效果好。
需要说明的一点是,相关技术中在确定对待编码单元按照何种划分模式进行划分的方法是,直接获取对该待编码单元进行预划分的每种划分模式对应的率失真参数,按照率失真参数最小的划分模式对该待编码单元进行划分,则终端需要获取对该待编码单元进行预划分的每种划分模式对应的率失真参数,而要获取每种划分模式对应的率失真参数,就要对每种划分模式对应的多个子块进行率失真优化。由于率失真优化的过程复杂,导致终端确定对待编码单元按照何种划分模式进行划分的过程计算量很大,且耗时很长。
而本申请提供的视频编码方法中,先通过预划分的方式确定预划分后的子块的第一图像失真参数与待编码单元的第二图像失真参数之间的差异信息是否符合失真条件,若符合失真条件,则不按照对应的划分模式对子块进行划分,避免了对该划分模式下的子块进行率失真优化的过程,因此极大地提高了视频编码的效率。并且,由于失真条件为子块的失真参数与待编码单元的图像失真参数相似时,所要符合的条件。符合失真条件,即表明对待编码单元进行划分对编码效果的影响不大,因此,本申请中的视频编码方法在提高了编码效率的不同,保证了编码质量。
需要说明的另一点是,由于在确定每种划分模式对应的率失真参数时,需要确定该划分模式对应的子块的率失真参数,因而存在当前的第一子块在之前已执行率失真优化的情况。而在编码的过程中,终端会存储已执行率失真优化的子块的率失真优化结果,在之后的编码过程中重复使用,也即是,直接从存储的率失真优化结果中获取图像失真率或者图像失真参数,而不需要对相同的子块进行重复的率失真优化,从而提高视频编码的效率。
需要说明的再一点是,上述图5中的视频编码方法和上述图9中的视频编码方法能够以任意方式结合使用,本申请对此不做限制。图10为其中一种将上述两种视频编码方法结合的方案。
图10是本申请实施例提供的一种视频编码方法的流程图。参见图10,该实施例包括:
1001、终端在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块。
该步骤的实现方式与步骤501的实现方式同理,此处不再赘述。
1002、终端获取至少两个第一子块的运动参数,运动参数用于表示第一子块与参考视频帧中匹配的子块之间的运动变化量。
该步骤的实现方式与步骤502的实现方式同理,此处不再赘述。
1003、终端获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数,第一图像失真参数用于表示对第一子块进行编码得到的子块与第一子块之间的图像失真信息,第二图像失真参数用于表示对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真信息。
该步骤的实现方式与步骤902的实现方式同理,此处不再赘述。
需要说明的一点是,步骤1002和步骤1003没有执行顺序的要求。
1004、终端响应于至少两个运动参数之间的差异信息符合运动条件,且至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
该步骤的实现方式与上述步骤503和上述步骤903的实现方式同理,此处不再赘述。
在一种可能的实现方式中,终端响应于对待编码单元进行预划分的多种划分模式的运动参数对应的差异信息均符合运动条件,并且,对待编码单元进行预划分的多种划分模式的图像失真参数对应的差异信息均符合失真条件,在视频编码时,不对待编码单元进行划分。
在一种可能的实现方式中,终端响应于对待编码单元进行预划分的多种划分模式的运动参数对应的差异信息不符合运动条件,或者,对待编码单元进行预划分的多种划分模式的图像失真参数对应的差异信息不符合失真条件,获取多种划分模式对应的率失真参数。
需要说明的一点是,对待编码单元进行预划分的多种划分模式的运动参数对应的差异信息不符合运动条件是指:不少于两种划分模式的运动参数对应的差异信息不符合运动条件。对待编码单元进行预划分的多种划分模式的图像失真参数对应的差异信息不符合失真条件是指:不少于两种划分模式的图像失真参数对应的差异信息不符合失真条件。
对于每种划分模式,终端获取该划分模式对应的率失真参数的实现方式与上述步骤(B)中终端获取划分模式对应的率失真参数的实现方式同理,此处不再赘述。
终端获取到多种划分模式对应的率失真参数后,在视频编码时,按照多种划分模式中率失真参数最小的划分模式,对待编码单元进行划分。
在本申请实施例中,在运动条件和失真条件均符合时,在视频编码时,不对待编码单元进行划分,即利用两个条件来保证不对待编码单元进行划分不影响视频编码的质量,从而在有效提高视频编码效率的同时,保证了视频编码的质量。
图11是本申请实施例提供的一种视频编码装置的框图。参见图11,该实施例包括:
预划分模块1101,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块1102,用于获取至少两个第一子块的运动参数,运动参数用于表示第一子块与参考视频帧中匹配的子块之间的运动变化量;
划分模块1103,用于响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
在一种可能的实现方式中,运动参数为运动矢量,任两个运动矢量之间的差异信息为任两个运动矢量之间的夹角;
划分模块1103,用于确定至少两个运动矢量的平均运动矢量;获取至少两个运动矢量与平均运动矢量之间的夹角;响应于不小于目标数量的运动矢量与平均运动矢量之间的夹角小于参考夹角,在视频编码时,不对待编码单元按照第一划分模式进行划分。
在另一种可能的实现方式中,运动参数为运动矢量,任两个运动矢量之间的差异信息为任两个运动矢量之间的夹角;
划分模块1103,用于确定至少两个运动矢量的平均运动矢量;获取至少两个运动矢量与平均运动矢量之间的夹角;响应于每个运动矢量与平均运动矢量之间的夹角均小于参考夹角,在视频编码时,不对待编码单元按照第一划分模式进行划分。
在另一种可能的实现方式中,运动参数为运动矢量,
获取模块1102,用于对于每个第一子块,在第一子块已执行率失真优化的情况下,从率失真优化结果中获取第一子块的运动矢量;其中,率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
在另一种可能的实现方式中,运动参数为运动矢量,
获取模块1102,用于对于每个第一子块,在第一子块未执行率失真优化的情况下,将第一子块与参考视频帧中匹配的子块之间的相对位移,确定为第一子块的运动矢量,参考视频帧为未进行编码的视频帧;其中,率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
在另一种可能的实现方式中,第一划分模式为二叉树划分模式,预划分模块1101,用于将待编码单元预划分为两个面积相同的矩形第一子块;或,
第一划分模式为三叉树划分模式,预划分模块1101,用于将待编码单元预划分为三个面积相同的矩形第一子块;或,
第一划分模式为四叉树划分模式,预划分模块1101,用于将待编码单元预划分为四个面积相同的正方形的第一子块。
在另一种可能的实现方式中,划分模块1103,还用于响应于至少两个运动参数之间的差异信息不符合运动条件,在视频编码时,按照第一划分模式,将待编码单元划分为至少两个第一子块。
在另一种可能的实现方式中,划分模块1103,还用于响应于对待编码单元进行预划分的多种划分模式对应的差异信息不符合运动条件,获取多种划分模式对应的率失真参数,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种划分模式对待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与待编码单元之间的图像失真率;在视频编码时,按照多种划分模式中率失真参数最小的划分模式,对待编码单元进行划分。
在另一种可能的实现方式中,获取模块1102,还用于获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数,第一图像失真参数用于表示对第一子块进行编码得到的子块与第一子块之间的图像失真信息,第二图像失真参数用于表示对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真信息;
划分模块1103,用于响应于至少两个运动参数之间的差异信息符合运动条件,且至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到至少两个子块,根据该至少两个子块的运动参数之间的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的运动参数之间的差异信息符合运动条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分,这样只需要对子块的运动参数之间的差异信息不符合运动条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
图12是本申请实施例提供的一种视频编码装置的框图。参见图12,该实施例包括:
预划分模块1201,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块1202,用于获取至少两个第一子块的第一图像失真参数和待编码单元的第二图像失真参数,第一图像失真参数用于表示对第一子块进行编码得到的子块与第一子块之间的图像失真信息,第二图像失真参数用于表示对待编码单元进行编码得到的图像单元与待编码单元之间的图像失真信息;
划分模块1203,用于响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
在一种可能的实现方式中,划分模块1203,用于响应于至少两个第一图像失真参数之和不小于第二图像失真参数与第一阈值之积,在视频编码时,不对待编码单元按照第一划分模式进行划分。
在另一种可能的实现方式中,获取模块1202,用于对于每个第一子块,在第一子块已执行率失真优化的情况下,将率失真优化结果中的图像失真率确定为第一子块的第一图像失真参数;其中,率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
在另一种可能的实现方式中,获取模块1202,用于对于每个第一子块,在第一子块未执行率失真优化的情况下,将第一子块与参考视频帧中匹配的子块之间的清晰度差异,确定为第一子块的第一图像失真参数,参考视频帧为未进行编码的视频帧;其中,率失真优化是指从多种编码模式中选择使第一子块的率失真参数最小的编码模式,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种编码模式对第一子块进行编码得到的子块与第一子块之间的图像失真率。
在另一种可能的实现方式中,第一划分模式为二叉树划分模式,预划分模块1201,用于将待编码单元预划分为两个面积相同的矩形第一子块;或,
第一划分模式为三叉树划分模式,预划分模块1201,用于将待编码单元预划分为三个面积相同的矩形第一子块;或,
第一划分模式为四叉树划分模式,预划分模块1201,用于将待编码单元预划分为四个面积相同的正方形的第一子块。
在另一种可能的实现方式中,划分模块1203,还用于响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息不符合失真条件,在视频编码时,按照第一划分模式,将待编码单元划分为至少两个第一子块。
在另一种可能的实现方式中,划分模块1203,还用于响应于对待编码单元进行预划分的多种划分模式对应的差异信息不符合失真条件,获取多种划分模式对应的率失真参数,率失真参数为编码码率与图像失真率之和,图像失真率为采用一种划分模式对待编码单元进行划分后,对划分后的子块采用一种编码模式进行编码得到的单元与待编码单元之间的图像失真率;在视频编码时,按照多种划分模式中率失真参数最小的划分模式,对待编码单元进行划分。
在另一种可能的实现方式中,获取模块1202,还用于获取至少两个第一子块的运动参数,运动参数用于表示第一子块与参考视频帧中匹配的子块之间的运动变化量;
划分模块1203,用于响应于至少两个第一图像失真参数与第二图像失真参数之间的差异信息符合失真条件,且至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对待编码单元按照第一划分模式进行划分。
通过本申请实施例提供的技术方案,在视频编码的过程中,先按照第一划分模式对待编码单元进行预划分得到的至少两个子块,根据该至少两个子块与待编码单元之间在图像失真上的差异信息,来确定是否对待编码单元进行划分。在至少两个子块的图像失真参数与待编码单元的图像失真参数之间的差异信息符合失真条件的情况下,确定不对待编码单元按照预划分的划分模式进行划分。这样只需要对图像失真参数与子块的图像失真参数之间不符合失真条件的待编码单元进行划分,减少了所划分子块的数量,从而降低了编码的复杂度,在保证视频编码质量的条件下,提高了视频编码的效率。
需要说明的是:上述实施例提供的视频编码装置在进行视频编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频编码装置与视频编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13示出了本申请一个示例性实施例提供的终端1300的结构框图。该终端1300可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1301所执行以实现本申请中方法实施例提供的视频编码方法。
在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。
外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置终端1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在终端1300的不同表面或呈折叠设计;在另一些实施例中,显示屏1305可以是柔性显示屏,设置在终端1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。
定位组件1308用于定位终端1300的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1308可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源1309用于为终端1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。
加速度传感器1311可以检测以终端1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1312可以检测终端1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对终端1300的3D动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1313可以设置在终端1300的侧边框和/或显示屏1305的下层。当压力传感器1313设置在终端1300的侧边框时,可以检测用户对终端1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在显示屏1305的下层时,由处理器1301根据用户对显示屏1305的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置终端1300的正面、背面或侧面。当终端1300上设置有物理按键或厂商Logo时,指纹传感器1314可以与物理按键或厂商Logo集成在一起。
光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制显示屏1305的显示亮度。具体地,当环境光强度较高时,调高显示屏1305的显示亮度;当环境光强度较低时,调低显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。
接近传感器1316,也称距离传感器,通常设置在终端1300的前面板。接近传感器1316用于采集用户与终端1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变小时,由处理器1301控制显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与终端1300的正面之间的距离逐渐变大时,由处理器1301控制显示屏1305从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图14是本申请实施例提供的一种服务器的结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)1401和一个或一个以上的存储器1402,其中,所述存储器1402中存储有至少一条程序代码,所述至少一条程序代码由所述处理器1401加载并执行以实现上述各个方法实施例提供的视频编码方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的视频编码方法中执行的操作。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的视频编码方法中执行的操作。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或该计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中。计算机设备的处理器从该计算机可读存储介质读取该计算机程序代码,该处理器执行该计算机程序代码,使得该计算机设备执行上述实施例的视频编码方法中执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种视频编码方法,其特征在于,所述方法包括:
在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
2.根据权利要求1所述的方法,其特征在于,所述运动参数为运动矢量,任两个运动矢量之间的差异信息为所述任两个运动矢量之间的夹角;所述响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分,包括:
确定至少两个运动矢量的平均运动矢量;
获取所述至少两个运动矢量与所述平均运动矢量之间的夹角;
响应于不小于目标数量的运动矢量与所述平均运动矢量之间的夹角小于参考夹角,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
3.根据权利要求1所述的方法,其特征在于,所述运动参数为运动矢量,任两个运动矢量之间的差异信息为所述任两个运动矢量之间的夹角;所述响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分,包括:
确定至少两个运动矢量的平均运动矢量;
获取所述至少两个运动矢量与所述平均运动矢量之间的夹角;
响应于每个运动矢量与所述平均运动矢量之间的夹角均小于参考夹角,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
4.根据权利要求1所述的方法,其特征在于,所述运动参数为运动矢量,所述获取所述至少两个第一子块的运动参数,包括:
对于每个第一子块,在所述第一子块已执行率失真优化的情况下,从率失真优化结果中获取所述第一子块的运动矢量;
其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
5.根据权利要求1所述的方法,其特征在于,所述运动参数为运动矢量,所述获取所述至少两个第一子块的运动参数,包括:
对于每个第一子块,在所述第一子块未执行率失真优化的情况下,将所述第一子块与所述参考视频帧中匹配的子块之间的相对位移,确定为所述第一子块的运动矢量,所述参考视频帧为未进行编码的视频帧;
其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
6.根据权利要求1所述的方法,其特征在于,所述按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块,包括:
所述第一划分模式为二叉树划分模式,将所述待编码单元预划分为两个面积相同的矩形第一子块;或,
所述第一划分模式为三叉树划分模式,将所述待编码单元预划分为三个面积相同的矩形第一子块;或,
所述第一划分模式为四叉树划分模式,将所述待编码单元预划分为四个面积相同的正方形的第一子块。
7.一种视频编码方法,其特征在于,所述方法包括:
在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
8.根据权利要求7所述的方法,其特征在于,所述响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分,包括:
响应于所述至少两个第一图像失真参数之和不小于所述第二图像失真参数与第一阈值之积,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
9.根据权利要求7所述的方法,其特征在于,所述获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,包括:
对于每个第一子块,在所述第一子块已执行率失真优化的情况下,将率失真优化结果中的图像失真率确定为所述第一子块的第一图像失真参数;
其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
10.根据权利要求7所述的方法,其特征在于,所述获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,包括:
对于每个第一子块,在所述第一子块未执行率失真优化的情况下,将所述第一子块与参考视频帧中匹配的子块之间的清晰度差异,确定为所述第一子块的第一图像失真参数,所述参考视频帧为未进行编码的视频帧;
其中,所述率失真优化是指从多种编码模式中选择使所述第一子块的率失真参数最小的编码模式,所述率失真参数为编码码率与图像失真率之和,所述图像失真率为采用一种编码模式对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真率。
11.根据权利要求7所述的方法,其特征在于,所述按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块,包括:
所述第一划分模式为二叉树划分模式,将所述待编码单元预划分为两个面积相同的矩形第一子块;或,
所述第一划分模式为三叉树划分模式,将所述待编码单元预划分为三个面积相同的矩形第一子块;或,
所述第一划分模式为四叉树划分模式,将所述待编码单元预划分为四个面积相同的正方形的第一子块。
12.一种视频编码装置,其特征在于,所述装置包括:
预划分模块,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块,用于获取所述至少两个第一子块的运动参数,所述运动参数用于表示所述第一子块与参考视频帧中匹配的子块之间的运动变化量;
划分模块,用于响应于至少两个运动参数之间的差异信息符合运动条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
13.一种视频编码装置,其特征在于,所述装置包括:
预划分模块,用于在对当前视频帧进行编码的过程中,按照第一划分模式,对待编码单元进行预划分,得到至少两个第一子块;
获取模块,用于获取所述至少两个第一子块的第一图像失真参数和所述待编码单元的第二图像失真参数,所述第一图像失真参数用于表示对所述第一子块进行编码得到的子块与所述第一子块之间的图像失真信息,所述第二图像失真参数用于表示对所述待编码单元进行编码得到的图像单元与所述待编码单元之间的图像失真信息;
划分模块,用于响应于至少两个第一图像失真参数与所述第二图像失真参数之间的差异信息符合失真条件,在视频编码时,不对所述待编码单元按照所述第一划分模式进行划分。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如权利要求1至权利要求11任一项所述的视频编码方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求11任一项所述的视频编码方法所执行的操作。
CN202010712398.7A 2020-07-22 2020-07-22 视频编码方法、装置、设备及存储介质 Active CN111770339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010712398.7A CN111770339B (zh) 2020-07-22 2020-07-22 视频编码方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010712398.7A CN111770339B (zh) 2020-07-22 2020-07-22 视频编码方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111770339A true CN111770339A (zh) 2020-10-13
CN111770339B CN111770339B (zh) 2022-04-15

Family

ID=72728488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010712398.7A Active CN111770339B (zh) 2020-07-22 2020-07-22 视频编码方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111770339B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511843A (zh) * 2020-11-19 2021-03-16 腾讯科技(深圳)有限公司 视频编码方法、装置、终端设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084908A (en) * 1995-10-25 2000-07-04 Sarnoff Corporation Apparatus and method for quadtree based variable block size motion estimation
CN104811696A (zh) * 2015-04-17 2015-07-29 北京奇艺世纪科技有限公司 一种视频数据的编码方法和装置
CN106454342A (zh) * 2016-09-07 2017-02-22 中山大学 一种视频压缩编码的帧间模式快速选择方法及系统
CN107018412A (zh) * 2017-04-20 2017-08-04 四川大学 一种基于关键帧编码单元划分模式的dvc‑hevc视频转码方法
CN108347616A (zh) * 2018-03-09 2018-07-31 中南大学 一种基于可选时域运动矢量预测的深度预测方法及装置
CN109672895A (zh) * 2018-12-27 2019-04-23 北京佳讯飞鸿电气股份有限公司 一种hevc帧内预测方法及系统
CN110719490A (zh) * 2019-10-22 2020-01-21 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084908A (en) * 1995-10-25 2000-07-04 Sarnoff Corporation Apparatus and method for quadtree based variable block size motion estimation
CN104811696A (zh) * 2015-04-17 2015-07-29 北京奇艺世纪科技有限公司 一种视频数据的编码方法和装置
CN106454342A (zh) * 2016-09-07 2017-02-22 中山大学 一种视频压缩编码的帧间模式快速选择方法及系统
CN107018412A (zh) * 2017-04-20 2017-08-04 四川大学 一种基于关键帧编码单元划分模式的dvc‑hevc视频转码方法
CN108347616A (zh) * 2018-03-09 2018-07-31 中南大学 一种基于可选时域运动矢量预测的深度预测方法及装置
CN109672895A (zh) * 2018-12-27 2019-04-23 北京佳讯飞鸿电气股份有限公司 一种hevc帧内预测方法及系统
CN110719490A (zh) * 2019-10-22 2020-01-21 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511843A (zh) * 2020-11-19 2021-03-16 腾讯科技(深圳)有限公司 视频编码方法、装置、终端设备以及存储介质
CN112511843B (zh) * 2020-11-19 2022-03-04 腾讯科技(深圳)有限公司 视频编码方法、装置、终端设备以及存储介质

Also Published As

Publication number Publication date
CN111770339B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
US11388403B2 (en) Video encoding method and apparatus, storage medium, and device
CN111770340B (zh) 视频编码方法、装置、设备以及存储介质
CN113411590A (zh) 预测模式的解码、编码方法及装置
CN110933334B (zh) 视频降噪方法、装置、终端及存储介质
CN109168032B (zh) 视频数据的处理方法、终端、服务器及存储介质
CN112532975B (zh) 视频编码方法、装置、计算机设备及存储介质
CN114286089A (zh) 参考帧的选择方法、装置、设备及介质
CN113891074B (zh) 视频编码方法和装置、电子装置和计算机可读存储介质
CN111770339B (zh) 视频编码方法、装置、设备及存储介质
CN110572679B (zh) 帧内预测的编码方法、装置、设备及可读存储介质
CN114302137B (zh) 用于视频的时域滤波方法、装置、存储介质及电子设备
CN116074512A (zh) 视频编码方法、装置、电子设备以及存储介质
CN110460856B (zh) 视频编码方法、装置、编码设备及计算机可读存储介质
CN109040753B (zh) 预测模式选择方法、装置及存储介质
CN114897688A (zh) 视频处理方法、装置、计算机设备及介质
CN113079372B (zh) 帧间预测的编码方法、装置、设备及可读存储介质
CN114422782B (zh) 视频编码方法、装置、存储介质及电子设备
CN113658283B (zh) 图像处理方法、装置、电子设备及存储介质
CN111641831B (zh) 帧内预测方法、装置、设备及存储介质
CN115811615A (zh) 屏幕视频的编码方法、装置、计算机设备及存储介质
CN117834881A (zh) 视频帧的滤波方法、视频帧的编码方法及装置
CN114900704A (zh) 视频处理方法、装置、电子设备及存储介质
CN114157867A (zh) 图像处理方法、装置、电子设备及存储介质
CN114268797A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030863

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant