CN117156133B - 一种视频编码的帧间预测模式选择方法及装置 - Google Patents

一种视频编码的帧间预测模式选择方法及装置 Download PDF

Info

Publication number
CN117156133B
CN117156133B CN202311412302.5A CN202311412302A CN117156133B CN 117156133 B CN117156133 B CN 117156133B CN 202311412302 A CN202311412302 A CN 202311412302A CN 117156133 B CN117156133 B CN 117156133B
Authority
CN
China
Prior art keywords
mode
inter
prediction
coding
prediction mode
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.)
Active
Application number
CN202311412302.5A
Other languages
English (en)
Other versions
CN117156133A (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.)
Taobao China Software Co Ltd
Original Assignee
Taobao China Software 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 Taobao China Software Co Ltd filed Critical Taobao China Software Co Ltd
Priority to CN202311412302.5A priority Critical patent/CN117156133B/zh
Publication of CN117156133A publication Critical patent/CN117156133A/zh
Application granted granted Critical
Publication of CN117156133B publication Critical patent/CN117156133B/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/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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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
    • 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/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

一种视频编码的帧间预测模式选择方法及装置
技术领域
本申请涉及视频编码领域,具体涉及一种视频编码的帧间预测模式选择方法。本申请还涉及一种视频编码的帧间预测模式选择装置,视频处理装置及计算机存储介质。本申请还涉及一种编码方法及装置。
背景技术
随着互联网技术的发展,直播和短视频成为互联网技术中的主要应用之一,在互联网中进行直播和短视频,均需要消耗大量的带宽成本,也就是视频编码。HEVC(HighEfficiency Video Coding,高效率视频编码)标准,也称为H.265标准。HEVC采用了四叉树编码结构,使用编码单元,预测单元和变换单元描述了整个编码过程,从而提高视频压缩比,视频质量,并减少数据传输和存储的带宽和存储容量。
现有技术中,在帧间预测过程中,需要遍历当前预测单元的多种帧间预测模式,从而获得当前预测单元的目标帧间预测模式。此种方式增加了帧间预测模型选择过程的计算复杂程度,从而降低了编码器对视频编码的编码速率。
因此,如何提升编码器的编码速率是需要解决的问题。
发明内容
本申请实施例提供一种视频编码的帧间预测模式选择方法,以提升编码器的编码速率。本申请实施例同时涉及一种视频编码的帧间预测模式选择装置、视频处理装置及计算机存储介质。本申请实施例还提供一种编码方法及装置。
本申请实施例提供一种视频编码的帧间预测模式选择方法,包括:获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
可选的,所述获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,包括:获得所述帧间预测模式集中已检测的至少一种其他帧间预测模式的第一编码代价;其中,所述已检测的至少一种其他帧间预测模式包括帧间预测模式集中模式检测次序位于所述指定帧间预测模式的模式检测次序之前的至少一种其他帧间预测模式。
可选的,所述至少一种其他帧间预测模式包括第一帧间预测模式和第二帧间预测模式;所述根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述第一帧间预测模式包括帧间2Nx2N模式;所述第二帧间预测模式包括帧间合并模式和帧间跳跃模式中的至少一种;所述根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值大于第一预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
可选的,还包括:如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,则根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述第三帧间预测模式包括编码单元帧间划分模式。
可选的,所述根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述编码单元的像素块尺寸大于预测尺寸,则将所述编码单元进行拆分处理,获得4个子编码块;获得所述4个子编码块的第一编码代价均值;获得所述4个子编码块的第一编码代价与所述第一编码代价均值之间的第一误差绝对值;如果所述第一误差绝对值与所述第一编码代价均值之间的比值小于第二预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
可选的,所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;如果所述第一误差绝对值与所述第一编码代价均值之间的比值大于或等于所述第二预设阈值,则所述方法还包括:获得所述第一划分模式中所述第一子预测单元的第一编码代价预估值和所述第二子预测单元的第一编码代价预估值之间的第二误差绝对值;获得所述第二划分模式中所述第三子预测单元的第一编码代价预估值和所述第四子预测单元的第一编码代价预估值之间的第三误差绝对值;根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述第二误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;如果所述第三误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
可选的,还包括:如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,且对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作时,则根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作的判决条件包括如下任意一种条件:在所述第二帧间预测模式中,所述帧间跳跃模式的第二编码代价小于所述帧间合并模式的第二编码代价;所述编码单元的像素块尺寸为预设尺寸。
可选的,所述根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:将所述预测单元针对所述第一帧间预测模式的预测残差块进行拆分处理,获得4个子预测残差块;根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:根据所述4个子预测残差块的预测残差,获得所述4个子预测残差块中每个子预测残差块的预测残差均值,以及获得所述4个子预测残差块的预测残差平均值;获得所述4个子预测残差块中每个子预测残差块的预测残差均值与所述预测残差平均值之间的第四误差绝对值;根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述预测单元的像素块尺寸为16x16,且所述第四误差绝对值与所述预测残差平均值之间的比值小于第四预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测;如果所述预测单元的像素块尺寸为8x8,且所述第四误差绝对值小于所述预测残差平均值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测。
可选的,所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:根据所述4个子预测残差块的预测残差,获得所述第一划分模式中所述第一子预测单元的预测准确度和所述第二子预测单元的预测准确度之间的第一预测准确度差值,以及获得所述第二划分模式中所述第三子预测单元的预测准确度和所述第四子预测单元的预测准确度之间的第二预测准确度差值;根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
可选的,所述编码单元的像素块尺寸为16x16;所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
可选的,所述编码单元的像素块尺寸为8x8;所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
可选的,所述指定帧间预测模式包括帧间矩形对称划分模式,所述第一划分模式包括帧间矩形Nx2N模式,所述第二划分模式包括帧间矩形2NxN模式。
可选的,还包括:第四帧间预测模式;所述根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式,包括:如果所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作,则根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一候选帧间预测模式;将所述第一候选帧间预测模式,第二帧间预测模式,第三帧间预测模式,第五帧间预测模式,作为所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式。
可选的,还包括:如果所述指定帧间预测模式的目标检测方式为对所述指定帧间预测模式中的至少一种划分模式执行模式检测,则根据所述至少一种划分模式的第一编码代价,所述第一帧间预测模式的第一编码代价,所述第四帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一候选帧间预测模式。
本申请实施例还提供一种编码方法,包括:获得待编码视频帧,确定所述待编码视频帧的编码帧类型;如果所述待编码视频帧为帧间预测帧,则根据上述视频编码的帧间预测模式选择方法确定所述帧间预测帧的目标帧间预测模式,采用所述目标帧间预测模式编码所述帧间预测帧。
本申请实施例还提供一种视频编码的帧间预测模式选择装置,包括:第一编码代价获得单元,用于获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;目标检测方式选择单元,用于根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;目标帧间预测模式选择单元,用于根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
本申请实施例还提供一种编码装置,包括:确定单元,用于获得待编码视频帧,确定所述待编码视频帧的编码帧类型;编码单元,用于如果所述待编码视频帧为帧间预测帧,则根据上述视频编码的帧间预测模式选择方法确定所述帧间预测帧的目标帧间预测模式,采用所述目标帧间预测模式编码所述帧间预测帧。
本申请实施例还提供一种视频处理装置,包括:编码器,至少一个用于存储指令集的存储器,至少一个处理器;所述至少一个处理器被配置为执行该指令集以使得所述视频处理装置执行:获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质存储有指令集,所述指令集被处理器执行,以使得所述计算机存储介质执行视频编码的帧间预测模式选择方法,所述方法包括:获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
与现有技术相比,本申请实施例具有如下优点:
本申请实施例提供一种视频编码的帧间预测模式选择方法,包括:获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择所述预测单元的目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
上述方法,第一编码代价是根据未进行预处理的预测残差获得的编码代价,第二编码代价是根据已完成预处理的预测残差获得的编码代价。因此,第一编码代价所需的计算量小于第二编码代价所需的计算量。通过计算量偏低的第一编码代价,对指定帧间预测模式选择目标检测方式,避免直接将指定帧间预测模式的所有划分模式均进行第一编码代价,从而减少了指定帧间预测模式的第一编码代价的计算量。然后,根据指定帧间预测模式的目标检测方式对应的第一编码代价,确定帧间预测模式中需要计算第二编码代价的至少一种候选帧间预测模式。通过对指定帧间预测模式选择目标检测方式,也就是减少指定帧间预测模式的第一编码代价计算数量,提升在帧间预测模式集中选择需要计算第二编码代价的候选帧间预测模式的速率。从而提升帧间预测模式集中选择目标帧间预测模式的速率。在保证编码器对视频进行编码的编码质量的前提下,通过减少指定帧间预测模式的计算量,减少目标帧间预测模式选择过程中的计算量,增加编码码率,降低编码器的压缩性能,提升编码速率。
附图说明
图1为现有技术中公开的视频编码的帧间预测模式选择过程示意图。
图2为本申请实施例提供的视频编码的帧间预测模式选择方法的场景实施例。
图3为现有技术中目标帧间预测模式选择过程流程图。
图4为本申请实施例提供的针对帧间矩形对称划分模式的选择过程的流程图。
图5为本申请实施例提供的编码单元进行划分的结构示意图。
图6为本申请实施例提供的将预测单元进行帧间划分的结构示意图。
图7为本申请实施例提供的运动补偿技术的示意图。
图8为本申请实施例提供的编码单元划分为4个大小相同的子编码块的结构示意图。
图9为本申请实施例提供的将预测单元按照矩形划分方式划分获得的子预测单元的第一编码代价分布示意图。
图10为本申请实施例提供的将预测单元按照2Nx2N划分方式划分获得的子预测残差块的结构示意图。
图11为本申请实施例提供的将预测单元按照矩形划分方式划分获得的子预测单元的预测准确度分布示意图。
图12为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第一性能表征数据图。
图13为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第二性能表征数据图。
图14为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第三性能表征数据图。
图15为本申请第一实施例提供的一种视频编码的帧间预测模式选择方法的流程图。
图16为本申请第二实施例提供的一种视频编码的帧间预测模式选择装置的示意图。
图17为本申请第三实施例提供的一种编码方法的流程图。
图18为本申请第四实施例提供的一种编码装置的示意图。
图19为本申请第五实施例中提供的一种视频处理装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
首先,对本申请涉及的概念进行说明:
视频编码:视频编码是压缩技术的一种,通过编码方法在保留编码质量的前提下,将视频源文件压缩成比特流文件,以节省视频的存储空间和传输带宽。
HEVC(High Efficiency Video Coding,高效视频编码):一种视频编码标准,其也称为H.265标准。采用HEVC进行视频编码,提升了编码视频的视频压缩比以及视频质量,并减少数据传输和存储的带宽和存储容量。
CU(Code Unit,编码单元):在视频编码中,视频数据被划分成若干个编码单元,每个编码单元都包含一定数量的像素。CU是视频编码标准中进行预测处理、变换处理、量化处理和熵编码处理的基本编码单元,其是将视频数据分解为更小的、更易于处理的单元。其中,在帧间预测过程中,CU的尺寸大小和位置影响预测的精度和编码效率。通常情况下,CU的尺寸越小,预测的精度越高,但是编码效率可能会降低。CU的尺寸大小包括8x8至64x64,可以使用四叉树的方式从上到下递归划分。
PU(Prediction Unit,预测单元):其为一个图像块,用于实现运动估计和运动补偿,它的形状包括正方形或者矩形。
编码单元和预测单元用于编码过程和解码过程。在编码过程中,将图像分解为若干个编码单元,并对这些编码单元进行编码,便于将图像进行压缩存储。在解码过程中,根据编码单元的信息,获得恢复的图像。在该过程中,根据编码单元,获得预测单元,将预测单元进行编码获得预测的图像。在解码过程中,实际恢复的图像与预测的图像之间的差异为预测残差。因此,在解码过程中,根据已获得的编码单元预测获得预测单元,根据预测得到的预测单元获得更新后的编码单元,该过程属于迭代的过程,通过不断地预测和更新,可以逐渐获得更准确的编码单元和预测单元。
TU(Transform Unit,变换单元):为用于实现变换和量化的单元。
SPLIT(帧间划分)模式:编码器S265中帧间划分模式是将一个编码单元按照四叉树划分的方式划分成4个子编码单元,例如,视频中的每一帧图像分为若干个64x64的CTU(Coding Tree Unit,编码树单元),从CTU开始以四叉树划分的方式向下递归划分成多个正方形的编码单元CU,如图5所示,其为本申请实施例提供的编码单元进行划分的结构示意图。在图5的(a)部分为将CU划分为不同尺寸大小的多个正方形的编码单元,图5的(b)部分为将编码单元按照四叉树划分的方式从上向下递归划分的树结构示意图。
具体的,在图5的(a)部分中,编码树单元CTU的划分过程如下:第一层划分:将一个尺寸为64x64的编码树单元划分为4个尺寸为32x32的编码单元;第二层划分:将一个尺寸为32x32的编码单元划分为4个尺寸为16x16的编码单元;第三层划分:将一个尺寸为16x16的编码单元划分为4个尺寸为8x8的编码单元;尺寸为8x8的编码单元为不可划分的编码单元。
图5的(b)部分以四叉树划分的方式体现图5的(a)部分的编码单元的划分关系。在图5的(b)部分中,根节点0对应尺寸为64x64的编码树单元,将一个根节点0进行第一层划分,获得4个第一层节点,分别为节点1,节点a,节点b,节点13;每个第一层节点对应尺寸为32x32的编码单元。将第一层节点中的a节点进行第二层划分后,获得4个第二层节点,分别为节点2,节点3,节点c,节点8;将第一层节点中的b节点进行第二层划分后,获得4个第二层节点,分别为节点9,节点10,节点11,节点12;每个第二层节点对应尺寸为16x16的编码单元。将第二层节点中的节点c进行第三层划分,获得4个第三层节点,分别为节点4,节点5,节点6,节点7,每个第三层节点对应尺寸为8x8的编码单元。
CU是HEVC的基础编码单元,根据上述划分过程自下而上逐层计算率失真单价,根据率失真(Rate Distoration,RD)代价选择目标划分模式。
具体的,将1个尺寸为16x16的编码块划分为4个8x8的编码块,比较4个8x8的编码块的率失真代价之和与1个16x16的编码块的率失真代价,选择率失真代价较小的编码块尺寸。将1个尺寸为32x32的编码块划分为4个16x16的编码块,比较4个16x16的编码块的率失真代价之和与1个32x32的编码块的率失真代价,选择两种尺寸中率失真代价较小的编码块尺寸。然后,将1个尺寸为64x64的编码块划分为4个32x32的编码块,比较4个32x32的编码块的率失真代价之和与1个64x64的编码块的率失真代价,选择两种尺寸中率失真代价较小的编码块代价。按照这样的递归过程,确定一个64x64的编码树单元的目标划分方式。对一个编码单元CU的率失真代价的计算过程,就是计算对应预测单元PU的率失真代价。一个编码单元包括一个或者多个预测单元,计算编码单元的率失真代价的过程中,需要考虑多个预测单元的预测残差之间的相关性和编码参数之间的相互影响。因此编码单元的率失真代价的计算是以预测单元为单位进行的。
Merge(帧间合并)模式:对当前预测单元PU建议一个候选运动估计列表,列表中存在5个候选运动估计以及对应的参考图像,候选运动估计直接由空域(或时域)上邻近的PU预测得到。通过遍历5个候选运动估计,并进行率失真代价计算,最终选取目标率失真代价作为该帧间合并模式的目标运动估计,目标率失真代价小于候选运动估计列表中的其他候选运动估计的率失真代价。
SKIP(帧间跳跃)模式:其是帧间合并模式中的特殊模式,帧间跳跃模式和帧间合并模式均没有复杂的运动估计过程,而是由候选运动估计列表中的运动估计进行运动补偿。其中,帧间跳跃模式下的预测单元的预测残差为0,帧间合并模式下的预测单元存在预测残差。预测残差为预测像素与原始像素之间做差获得的。
PU(预测单元)划分:一个编码单元可以继续划分成预测单元进行预测,帧内预测和帧间预测均是以PU为单位进行划分。对于编码单元的预测过程,包括多种预测单元划分模式,包括:预测单元帧内划分模式和预测单元帧间划分模式。
预测单元帧内划分模式包括两种划分模式:帧内2Nx2N模式,以及帧内NxN模式。其中,在帧内2Nx2N模式中,预测单元的尺寸大小等于编码单元的尺寸大小。帧内NxN模式适用于尺寸为8x8的编码单元,将1个尺寸为8x8的编码单元继续四叉树划分为4个尺寸为4x4的预测单元。帧内2Nx2N模式为根据同一个图像帧中的像素的相关性,将当前像素预测为参考像素。当前像素为需要编码的像素,参考像素为同一个图像帧中的其他像素。在编码过程中,将当前帧的当前像素的值与其他像素的值进行比较,获得像素差异小于预设像素差异阈值的像素作为当前像素的预测值。
如图6所示,其为本申请实施例提供的将预测单元进行帧间划分的结构示意图。预测单元帧间划分模式包括3中划分模式:帧间2Nx2N模式,帧间RECT(Rectangular ,帧间矩形对称划分)模式,以及帧间AMP(Asymmetric motion partitioning,帧间矩形非对称划分)模式。
帧间2Nx2N模式为将当前帧的某些像素预测为参考帧中的像素,以减少编码的数据量。其中,当前帧为需要编码的帧,参考帧为当前帧之前的一个或者多个帧或者当前帧之后的一个或者多个帧。对于当前帧的每个预测块中的每个像素,获得当前帧的该像素与参考帧对应的像素之间的像素差异,选择像素差异小于目标像素差异阈值的目标参考像素值,作为当前帧中该像素的像素预测值。
在帧间2Nx2N划分模式中,对编码单元不进行划分处理,预测单元的大小等于编码单元的大小。
在帧间矩形对称划分模式中,将尺寸为2Nx2N的预测单元划分为两个大小相等的子预测单元,根据划分方向不同,分为2NxN、Nx2N两种,2NxN表示水平划分,Nx2N表示垂直划分。例如,将一个尺寸为16x16的预测单元按照垂直划分方式(Nx2N划分方式)进行划分,得到2个尺寸为8x16的子预测单元。将一个尺寸为16x16的预测单元按照水平划分方式(2NxN划分方式)进行划分,得到2个尺寸为16x8的子预测单元。
在帧间AMP模式中,将尺寸为2Nx2N的预测单元划分成两个大小不等的子预测单元,其包括水平划分方向和垂直划分方向,划分后的子预测单元包括:2NxnU、2NxnD、nLx2N、nRx2N。其中,U、D、L、R分别表示上下左右,且AMP模式适用于尺寸为32x32和16x16的编码单元。2NxnU、2NxnD分别以上下1:3和3:1进行划分,nLx2N 、nRx2N分别以左右1:3和3:1划分。例如,在帧间AMP模式中,对一个尺寸为16x16的预测单元,按照水平划分方向进行划分获得的2NxnU、2NxnD,其中,如果U与D的比值为1:3,则两个子预测单元分别为16x4和16x12。对一个尺寸为16x16的预测单元,按照垂直划分方向进行划分获得的nLx2N 、nRx2N,其中,如果L与R的比值为1:3,则两个子预测单元分别为4x16和12x16。
FPS(Frames Per Secod,帧速率),在视频编码中,FPS表示编码器每秒编码的帧数,FPS数值越大,表示编码速度越快。FPS的数值是在编码器完成一条视频编码后,编码器内部计算获得的,可从该完成的编码视频的标识中获取。
帧间预测:帧间预测是指利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。如图7所示,其为本申请实施例提供的运动补偿技术的示意图。目前的视频编码标准都采用基于块的运动补偿技术,其主要原理是为当前编码单元在已编码图像中寻找一个目标匹配块,这个过程叫做运动估计。其中,用于预测的图像为参考图像,如图7中的701为参考图像,图7中的702为当前编码图像,参考块到当前编码块的位移为运动矢量(Motion Vector,MV)。如图7中,第一参考块701-1到第一当前编码块702-1之间的位移为运动矢量,第二参考块701-2到第二当前编码块702-2之间的位移为运动矢量。编码块与参考块的像素之间的差得到预测残差,这一过程叫做运动补偿。
RDcost(Rate-Distortion Cost,率失真代价):用于评估编码效果的指标,用于在码率和视频质量之间进行权衡。假设当前编码的视频块为B,其码率为R,失真度为D,则RDcost可以按照如下公式(1)计算获得:
RDCost=R+lambdaxD 公式(1)
其中,lambda是一个正常数,用于权衡码率和失真度之间的关系。由于计算RDcost过程中的计算失真度D时,需要将预测块与编码块之间的预测残差进行预处理,预处理包括如下至少一种:变换处理、量化处理、反量化处理、反变换处理,获得重建像素,然后将重建像素与真实像素作差获得。因此,RDcost的计算过程比较耗时,用于帧间预测模式细筛选,最终的目标预测模式也是根据RDcost确定的。
SATDCost(Sum of Absolute Transformed Difference Cost,变换差的绝对值和的代价):将视频残差经哈德曼变换的4x4像素块的预测残差绝对值总和的代价,其为简单的时频变换,其值在一定程度上可以反映编码器在视频编码过程中生成码流的大小。与RDcost相比,为了降低复杂度,SATDCost计算过程中的失真度D的计算,无需对预测残差进行变换处理、量化处理、反量化处理以及反变换处理,其只需对残差进行哈德曼变换后的系数绝对和代价。因此,SATDCost的计算过程节省时间,也降低了计算复杂度。SATDCost主要应用于预测模式粗筛选,通过SATDCost进行第一次筛选,获得SATDCost值偏小的至少两个预测模式,再计算该两个预测模式的RDcost进行第二次筛选,获得目标预测模式。
本申请实施例提供一种视频编码的帧间预测模式选择方法。本申请实施例还提供一种视频编码的帧间预测模式选择装置、视频处理装置及计算机存储介质。本申请实施例还提供一种编码方法及装置。在下面的实施例中逐一进行详细说明。
为了便于理解本申请实施例提供的方法及装置,在介绍本申请实施例之前,先对本申请实施例的背景进行介绍。
随着互联网技术的发展,直播和短视频成为互联网技术中的主要应用之一,在互联网中进行直播和短视频,均需要消耗大量的带宽成本,也就是视频编码。在视频和短视频场景中,人们对视频质量、视频分辨率以及帧率的要求都不断提高,因此,视频数据量逐渐增加,视频的传输和存储变得更加困难。为了解决上述问题,高效的视频编码技术的应用需求逐渐增加。例如,HEVC(High Efficiency Video Coding,高效率视频编码)标准,也称为H.265标准,其应用于视频编码中,提供高效的视频编码技术。HEVC采用了四叉树编码结构,使用编码单元,预测单元和变换单元描述了整个编码过程,从而提高视频压缩比,视频质量,并减少数据传输和存储的带宽和存储容量。
现有技术中,在帧间预测过程中,需要遍历当前预测单元的多种帧间预测模式,从而获得当前预测单元的目标帧间预测模式。此种方式增加了帧间预测模型选择过程的计算复杂程度,从而降低了编码器对视频编码的编码速率。
如图1所示,其为现有技术中公开的视频编码的帧间预测模式选择过程示意图。在图1中,帧间预测模式包括:帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式、帧间2NxN划分模式、帧间Nx2N划分模式、帧间矩形非对称划分模式、以及帧间预测过程中的帧内模式。编码器会依次对上述7种帧间预测模式计算编码代价,根据7种帧间预测模式的编码代价,确定目标帧间预测模式。其中,此处的编码代价为RDcost,RDcost的计算过程中所用到的失真度D,是将预测残差经过变换处理、量化处理、反量化处理以及反变换处理后获得的,因此,该编码代价RDcost的计算过程比较耗时,造成帧间预测过程中的计算量增加,计算复杂度增加,从而降低了视频编码过程的编码速率。
请参考图3,其为现有技术中目标帧间预测模式选择过程流程图。现有技术中,将帧间预测模式集中的帧间预测模式分为跳跃/合并模式、划分模式、帧间模式、帧间预测过程中的帧内模式。结合图3描述现有技术中对上述4类帧间预测模式进行判断,获取目标帧间预测模式的过程。其具体分析如下:
步骤S301:检测跳跃模式和合并模式,确定目标模式。
其中,跳跃模式为Skip模式,合并模式为Merge模式。获得跳跃模式的率失真代价和合并模式的率失真代价。根据跳跃模式的率失真代价与合并模式模式的率失真代价的比较结果,确定目标模式。其中,此处的率失真代价为RDCost。
步骤S302:判断目标模式是否为跳跃模式,或者编码单元尺寸不大于8x8?
根据步骤S301的比较结果,判断目标模式是否为跳跃模式。如果跳跃模式的率失真代价小于合并模式的率失真代价,则目标模式为跳跃模式。
编码单元的尺寸通常包含64x64、32x32、16x16、8x8。因此,编码单元尺寸为8x8,具体是编码单元的像素块尺寸为8x8。
步骤S303:如果目标模式不是跳跃模式,且编码单元尺寸大于8x8,则执行划分模式,划分模式为Split模式,将编码单元按照四叉树递归划分,并重新执行步骤S301。
编码单元尺寸大于8x8,也就是编码单元尺寸可以是64x64、32x32、16x16中的至少一种。划分模式为Split模式,也称为帧间划分模式。如图5所示,通过帧间划分模式将当前编码单元按照四叉树递归的方式划分为多个子编码单元。
步骤S304:如果目标模式为跳跃模式,或者编码单元尺寸不大于8x8,则跳过划分模式。
跳跃模式中,预测单元的预测残差为0,因此,如果目标模式为跳跃模式,说明与编码单元相邻的多个预测单元之间没有图像差异,则可以跳过预测过程,因此,无需对编码单元执行划分模式。
或者,编码单元尺寸为8x8,属于不可划分的像素块尺寸,因此,可以跳过划分模式。当编码单元尺寸为8x8时,如果跳跃模式的第二编码代价小于合并模式的第二编码代价,则目标模式为跳跃模式;如果跳跃模式的第二编码代价大于合并模式的第二编码代价,则目标模式为合并模式。因此,当编码单元尺寸为8x8时,目标模式为跳跃模式或者合并模式。
因此,步骤S304中的目标模式为跳跃模式或者合并模式。
步骤S305:依次计算帧间模式中的2Nx2N模式的第一编码代价、RECT模式的第一编码代价、AMP模式的第一编码代价,根据第一编码代价进行第一次帧间模式筛选,确定目标帧间模式。
其中,第一编码代价为SATDCost,帧间模式包括帧间2Nx2N划分模式、帧间矩形对称划分模式、帧间矩形非对称划分模式,如图6所示。
其中,2Nx2N模式包括2Nx2N模式双向预测。矩形对称划分模式包括两种划分方式,水平划分方式和垂直划分方式。将2Nx2N模式的预测单元按照垂直划分方式进行划分,获得Nx2N模式中的左预测单元和右预测单元。将2Nx2N模式的预测单元按照水平划分方式进行划分,获得2NxN模式中的上预测单元和下预测单元。帧间矩形非对称划分模式包括如图6所示的4种非对称划分模式。
因此,分别计算上述帧间模式中的帧间2Nx2N模式、帧间矩形对称划分模式、帧间矩形非对称划分模式中各种划分模式的第一编码代价,根据各种划分模式的第一编码代价,选择目标帧间模式。目标帧间模式的第一编码代价小于上述帧间模式中的其他各种划分模式的第一编码代价。
步骤S306:判断目标帧间模式的第一编码代价是否小于或者等于目标模式的第一编码代价?
目标帧间模式为步骤S305中确定的目标帧间模式,目标模式为步骤S304中的跳跃模式或者合并模式。
将目标帧间模式的第一编码代价与目标模式的第一编码代价作比较,判断是否需要更新目标模式。
步骤S307:如果目标帧间模式的第一编码代价大于目标模式的第一编码代价,则结束。
因此目标帧间模式的第一编码代价大于目标模式的第一编码代价,则无需对目标帧间模式进行第二编码代价的计算。目标模式即为步骤S304的帧间预测过程中预测单元的目标模式。
步骤S308:如果目标帧间模式的第一编码代价小于或者等于目标模式的第一编码代价,则根据目标帧间模式的率失真代价,帧间预测过程中的帧内模式的率失真代价,以及划分模式的率失真代价,更新目标模式;其中,帧间预测过程中的帧内模式中采用的编码单元的尺寸为8x8的NxN模式。
如果目标帧间模式的第一编码代价小于或者等于目标模式的第一编码代价,需要进一步计算目标帧间模式的率失真代价,根据目标帧间预测模式的率失真代价,以及其他预测模式的率失真代价,重新确定目标模式。在帧间预测模式集中选择的目标模式的条件是,目标模式的第一编码代价小于其他模式的第一编码代价,目标模式的率失真代价小于其他模式的率失真代价。
因此,根据目标帧间模式的率失真代价,帧间预测过程中的帧内模式的率失真代价,以及划分模式的率失真代价,以及步骤S304确定的目标模式的率失真代价之间的比较结果,重新确定目标模式。其中,重新确定的目标模式的率失真代价小于其他模式的率失真代价。
上述过程中对帧间预测模式集中的各种帧间模式的所有划分模式均进行了第一编码代价的计算,然后根据各种模式对应的第一编码代价,选择目标帧间模式。此过程在编码器编码过程中使得编码耗时较大,增加了大量的计算量,增加了编码复杂程度,降低了编码速率。
因此,如何提升编码器的编码速率是需要解决的问题。
综合上述内容的背景介绍,本领域技术人员可以了解现有技术存在的问题,接下来对本申请的视频编码的帧间预测模式选择方法的应用场景进行详细说明。本申请提供的视频编码的帧间预测模式选择方法可以应用于各种直播或短视频播放场景中的视频编码过程。
具体的,为了使得直播或短视频的视频画质达到预定要求,其需要保证编码器编码的视频质量的同时提升编码速率。采用HEVC视频编码标准中,会造成编码过程变得复杂且编码时间也越来越长。因此,在直播和短视频应用场景中,平衡编码质量和编码速度的前提下,提升编码速度,降低编码复杂度是本申请所需要解决的问题。采用视频编码器对视频数据进行编码,从而获得直播和短视频。编码器的性能决定了直播和短视频的质量,采用本申请的视频编码的帧间预测模式选择方法,在保证编码器获得的视频编码质量的前提下,提升视频编码的速度,降低视频播放过程中的卡顿率等。
通过本申请提供的视频编码的帧间预测模式选择方法在帧间预测模式集中选择目标帧间预测模式,在选择目标帧间预测模式过程中,首先,根据帧间预测模式集中除帧间RECT模式之外的其他帧间预测模式的第一编码代价,在帧间RECT模式的多个候选检测方式中选择目标检测方式。也就是说,确定帧间RECT模式中需要进行第一编码代价计算的目标划分模式种类。在此基础上,根据帧间RECT模式的目标划分模式对应的第一编码代价,与帧间2Nx2N模式的第一编码代价,帧间AMP模式的第一编码代价,确定可以计算第二编码代价的第一候选帧间预测模式。然后,根据第一候选帧间预测模式,帧间跳跃/合并模式、帧间划分模式、帧间过程中的帧内模式分别对应的第二编码代价,确定目标帧间预测模式。
第一编码代价为SATDCost,其计算过程中的失真度D的计算中,无需对预测残差进行变换、量化、反量化、反变换处理,而第二编码代价为RDCost,其计算过程中的失真度D的计算中,需要对预测残差进行变换、量化、反量化、反变换中的至少一种处理。因此,第一编码代价的计算复杂程度低于第二编码代价的计算复杂程度。此过程中,首先通过计算复杂度偏低的第一编码代价,对帧间RECT模式的检测方式进行了选择,避免直接将RECT的所有划分模式直接进行第一编码代价的计算,从而减少了指定帧间预测模式的第一编码代价的计算量。通过对指定帧间预测模式选择目标检测方式,也就是减少指定帧间预测模式的第一编码代价计算数量,提升在帧间预测模式集中选择需要计算第二编码代价的候选帧间预测模式的速率。从而提升帧间预测模式集中选择目标帧间预测模式的速率。因此,在保证编码器对视频进行编码的编码质量的前提下,减少了帧间预测模式选择过程中的计算量,增加了编码器编码码率,降低了编码器的压缩性能,提升了编码速率。
本申请实施例中提供的视频编码的帧间预测模式选择方法应用于编码器对视频进行编码的过程中。以下以编码器S265为例结合图12~图14为例进行举例说明,编码器S265以测试视频进行编码测试,该测试视频包含4类共70条序列,分别为Tblive_Windows_1080p,Tblive_Windows_720p,Public_1080p,Public_720p,测试指标包括CRF(ConstantRate Factor,恒定比特率因子)和BD-Rate(压缩比)。
其中,CRF(编码率)是一种用于视频编码的技术,它可以将视频数据压缩成比特流,并且在压缩过程中保持视频质量的恒定。它是一种编码率的表示,是一种比特率的控制方式。编码器对视频进行编码时,通过编码率(CRF)控制视频数据的压缩比和压缩质量。CRF值越低,表示压缩比越小,压缩后的视频质量越高,但是视频数据量也会越大;CRF值越高,表示压缩比越大,压缩后的视频质量越低,但是视频数据量也会越小。因此,CRF是一种用于控制视频编码质量和数据量之间平衡的技术。编码器在对视频进行编码时,需要根据视频内容和压缩要求选择合适的CRF值。如图12所示,其为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第一性能表征数据图。本申请实施例中,编码器S265对测试视频进行编码测试时,选择的CRF值为18、22、26、30。其中,CRF为18~30,为直播场景和短视频场景中算法测试使用的码率段。
其中,BD-Rate指标综合考虑了图像质量和编码率之间的关系,它表示在相同的图像质量条件下,优化后的算法与优化前的算法相比在编码率上的节省量;或者,在相同的编码率条件下,优化后的算法与优化前的算法相比在图像质量方面的提升程度。
具体的,BD-Rate通过如下方式计算:通过对测试的4个码率点(CRF值为18、22、26、30)进行曲线拟合,分别得到优化后的算法的RD曲线和优化前的算法的RD曲线,将优化后的算法的RD曲线和优化前的算法的RD曲线做差,然后再求平均值。如图12中的BD-Rate数据可知,当BD-Rate为负值时,表示在结构相似度相同的情况下,码率下降,则编码性能提高;当BD-Rate为正值时,表示在结构相似度相同的情况下,码率上升,则编码性能降低。
请参考图12-图14,图12为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第一性能表征数据图。图13为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第二性能表征数据图。图14为本申请实施例提供的编码器S265对测试视频进行视频编码过程中的第三性能表征数据图。
图12中的BD-Rate数据表示的是在4种测试序列的每种测试序列中,当CRF值分别为18、22、26、30时,优化前的编码器(未使用本申请提供的视频编码的帧间预测模式选择方法的编码器)和优化后的编码器(使用本申请提供的视频编码的帧间预测模式选择方法的编码器)分别对视频进行编码时获得的编码质量相同(峰值信噪比PSNR和结构相似度SSIM相同)的情况下,优化后的编码器与优化前的编码器在视频编码过程中的码率变化的百分比。
具体的,同等质量下,BD-Rate为正值,表示码率增加,说明降低了编码器的压缩性能,提升编码速度;同等质量下,BD-Rate为负值,表示码率减小,说明提升了编码器的压缩性能,降低编码速度。
其中,Avg PSNR(Average Peak Signal-to-Noise Rate,平均信噪比)、GlobalPSNR(Global Peak Signal-to-Noise Rate,全局信噪比)、YUV SSIM(YUV StructuralSimilarity Index,在YUV颜色空间下计算的结构相似度指数)三种指标来表征编码器S265对上述4类测试视频进行编码的视频图像的图像质量。Avg PSNR、Global PSNR和YUV SSIM三种指标数据都是通过编码器内部实现过的计算逻辑,从编码标识信息中提取获得。
PSNR(Peak Signal-to-Noise Rate,峰值信噪比):一种用于衡量图像质量的指标,它表示图像的峰值信号与噪声之比。PSNR值越高,表示图像的质量越好。SSIM(Structural Similarity Index,结构相似度指数):一种用于评估图像质量的指标,它主要用于评估图像的结构信息。SSIM值越接近1,表示图像的结构信息越相似,图像的质量也就越好。SSIM算法是将图像分成若干个局部区域,并对每个局部区域计算结构相似度指数,获得一个全局的结构相似度指数。编码器对视频数据进行编码时,计算编码后的视频与原始视频之间的结构相似度指数。
Avg PSNR是指对整个视频序列或图像集进评估的平均指标,也可以称为序列平均PSNR。Avg PSNR的计算方法是先计算整个视频序列中的每个像素或每个帧的PSNR值,然后将其平均化到整个视频序列或图像集中。Avg PSNR可以反映整个视频序列或图像集的平均图像质量,常用于评估视频编码性能或图像质量。
Global PSNR是指对整个视频序列或图像集的每个像素或每个帧都进行评估的指标。Global PSNR的计算方法是对整个视频序列或图像集的每个像素或每个帧都计算PSNR值,然后将其平均化到整个视频序列或图像集中。Global PSNR可以反映每个像素或者每个帧的图像质量,因此在评估某些特定场景或帧的图像质量时更有意义。
因此,图12中分别获取了Avg PSNR和Global PSNR,通过Avg PSNR反映视频的整个视频序列或图像集的平均图像质量,常用于评估视频编码性能或图像质量,通过GlobalPSNR反映整个视频序列或图像集中的每个像素或者每个帧的图像质量。
YUV是一种常用的视频和图像处理中的颜色空间,它是由Y、U、V三个通道组成的。YUV(YCbCr,或者YCrCb),其中,Y表示亮度(Luminance),Cb和Cr表示色度(Chroma),分别对应蓝色和红色的色相。因此,YUV也可以称为YCbCr颜色空间。
YUV SSIM是指在YUV颜色空间下计算的结构相似性指数。SSIM是一种广泛应用于图像质量评估的指标,它可以反映图像之间的结构相似性和细节信息。而YUV是一种常用的视频和图像处理中的颜色空间,它将图像的亮度信息分离出来,方便进行处理和分析。YUVSSIM的计算方法与传统的SSIM类似,但是需要在YUV颜色空间下进行计算。具体来说,需要对每个像素的Y通道、U通道和V通道分别计算SSIM,然后将三个通道的SSIM值相加,得到YUVSSIM的值。YUV SSIM的取值范围与传统的SSIM相同,也是0-1之间的实数。YUV SSIM的优点是可以更准确地反映图像在亮度、对比度和细节信息方面的结构相似性,因为Y通道包含了图像的主要亮度信息,而U和V通道则包含了图像的色彩信息。同时,YUV SSIM的计算方法比传统的SSIM更简单,因为只需要对每个像素的三个通道进行计算。
在图12中,Avg PSNR列对应的数值表示在每类测试序列编码后的平均视频质量相同的情况下,优化后的编码器和优化前的编码器分别对视频进行编码时的码率变化的百分比BD-Rate,第一类测试序列为+0.26%,第二类测试序列为+0.41%,第三类测试序列为+0.45%,第四类测试序列为+0.87%,这四个数值的平均值为+0.50%。
Global PSNR列对应的数值表示在每类测试序列编码后的全局视频质量相同的情况下,优化后的编码器和优化前的编码器分别对视频进行编码时的码率变化的百分比BD-Rate,第一类测试序列为+0.29%,第二类测试序列为+0.43%,第三类测试序列为+0.33%,第四类测试序列为+0.88%,这四个数值的平均值为+0.48%。
YUV SSIM列对应的数值表示在每类测试序列编码后的结构相似度指数相同的情况下,优化后的编码器和优化前的编码器分别对视频进行编码时的码率变化的百分比BD-Rate,第一类测试序列为+0.43%,第二类测试序列为+0.58%,第三类测试序列为+0.45%,第四类测试序列为+1.00%,这四个数值的平均值为+0.62%。
图12的第四列数据为每类测试视频中的平均信噪比、全局信噪比、以及YUV结构相似度的指数平均值。其表示在每类测试序列编码后的视频质量相同的情况下,优化后的编码器和优化前的编码器分别对视频进行编码时的码率变化的百分比BD-Rate的平均值,第一类测试序列为+0.33%,第二类测试序列为+0.47%,第三类测试序列为+0.41%,第四类测试序列为+0.92%,这四个数值的平均值为+0.53%。
由图12的数值可知,BD-Rate为正值,说明相同客观质量条件下,码率增加,编码器的压缩性能降低,编码速率提升。因此,视频编码器对视频进行编码时,采用本申请提供的视频编码的帧间预测模式选择方法,在帧间预测模式集中选择针对预测单元的目标帧间预测模式,降低了选择预测单元的目标帧间预测模式过程中的计算复杂度。同时,增加了编码器的码率,降低了编码器的压缩性能,提升了编码速度。
在图13中,多线程编码器对测试视频进行视频编码时,采用单码率值(CRF值为22.8)时,测试多线程视频编码的编码速度的变化量。在图14中,单线程编码器对测试视频进行视频编码时,采用的是单码率值(CRF值为22.8),测试单线程视频编码的编码速度的变化量。其中,CRF值为22.8,表示直播中常用的码率值。
其中,单线程和多线程表示编码器的两种运行方式。单线程编码器是指在一个CPU核心或者线程上运行的编码器。单线程编码器只能使用单个线程处理视频编码过程中的各个步骤,例如,运动估计、变换处理、量化处理、熵编码处理。多线程编码器是指可在多个CPU核心或者线程上运行的编码器。多线程编码器可以同时使用多个线程处理视频编码过程中的各个步骤,以提升编码效率和处理速度。通过单线程编码器的编码速度和多线程编码器的编码速度表征编码器编码视频的编码速度。
其中,Test FPS(Test Frame Per Second,测试视频帧率):优化后的编码器(采用本申请提供的视频编码的帧间预测模式选择方法优化算法的编码器)对一个视频完成编码后获得的测试编码速度。
Anchor FPS(Anchor Frame Per Second,参考视频帧率):优化前的编码器(未采用本申请提供的视频编码的帧间预测模式选择方法优化算法的编码器)对一个视频完成编码后获得的原始编码速度。
在图13中,第一类测试视频Tblive_Windows_1080p通过优化后的编码器进行编码完成后获得的测试编码速度为19.73,通过优化前的编码器进行编码完成后获得的原始编码速度为16.4,测试编码速度和原始编码速度相比增加了+20.3%。类似的,第二类测试视频Tblive_Windows_720p的试编码速度和原始编码速度相比增加了+19.2%。第三类测试视频Public_1080p的试编码速度和原始编码速度相比增加了+21%。第四类测试视频Public_720p的试编码速度和原始编码速度相比增加了+26%。上述四类测试视频的试编码速度和原始编码速度相比编码速度增加量平均值为+21.1%。由此可见,多线程编码器采用本申请提供的视频编码的帧间预测模式选择方法对视频进行编码后,在保证编码视频质量的同时,提升了编码视频的编码速度。
在图14中,第一类测试视频Tblive_Windows_1080p测试编码速度和原始编码速度相比增加了+17.4%。第二类测试视频Tblive_Windows_720p的试编码速度和原始编码速度相比增加了+14.7%。第三类测试视频Public_1080p的试编码速度和原始编码速度相比增加了+19.6%。第四类测试视频Public_720p的试编码速度和原始编码速度相比增加了+18%。上述四类测试视频的试编码速度和原始编码速度相比编码速度增加量平均值为+17%。由此可见,单线程编码器采用本申请提供的视频编码的帧间预测模式选择方法对视频进行编码后,在保证编码视频质量的同时,提升了编码视频的编码速度。
根据图13和图14可知,单线程编码器或者多线程编码器采用本申请提供的视频编码的帧间预测模式选择方法对视频进行编码后,在保证编码视频质量的同时,提升了编码视频的编码速度。
以上即为本申请实施例提供的视频编码的帧间预测模式选择方法应用于编码器的应用场景,编码器对视频进行编码过程包括帧内编码过程和帧间预测过程,帧间预测过程是根据当前已编码单元通过目标帧间预测模式获得当前已编码单元对应的预测单元。其中,目标帧间预测模式的选择过程是在帧间预测模式集中按照本申请提供的视频编码的帧间预测模式选择方法获得的。本申请实施例提供的视频编码的帧间预测模式选择方法,通过帧间预测模式集中已检测的帧间预测模式的第一编码代价,在指定帧间预测模式的多个候选检测方式中选择目标检测方式,避免直接对指定帧间预测模式的所有划分模式进行第一编码代价的计算。然后,根据指定帧间预测模式的目标检测方式对应的第一编码代价,确定帧间预测模式中需要计算第二编码代价的至少一种候选帧间预测模式。第一编码代价的计算复杂程度低于第二编码代价的计算复杂程度。通过对指定帧间预测模式选择目标检测方式,也就是减少指定帧间预测模式的第一编码代价计算数量,提升在帧间预测模式集中选择需要计算第二编码代价的候选帧间预测模式的速率。从而提升帧间预测模式集中选择目标帧间预测模式的速率。在编码器对视频编码获得的编码质量不受影响的情况下,通过减少编码代价的计算量,减少获取目标帧间预测模式过程中的计算量,提升编码器对视频编码过程中的编码速度。
以下描述本申请实施例提供的视频编码的帧间预测模式选择方法的具体过程。
请参考图2,其为本申请实施例提供的视频编码的帧间预测模式选择方法的场景实施例。在图2中,帧间预测模式集中包括:帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式、帧间RECT模式、帧间AMP模式、帧间预测过程中的帧内模式。编码器在对视频进行编码过程中,会按照上述各帧间预测模式的模式检测次序依次计算对应帧间预测模式的第一编码代价。在对帧间RECT模式执行模式检测之前,编码器已获得了帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式分别对应的第一编码代价。根据帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式中的至少一种帧间预测模式的第一编码代价,对帧间RECT模式的目标检测方式进行提前预判,获得对帧间RECT模式中的2种子划分模式计算第一编码代价的子划分模式种类。
根据帧间RECT模式中需要计算第一编码代价的子划分模式,以及帧间2Nx2N模式和帧间AMP模式比较分别对应的第一编码代价,确定需要计算第二编码代价的候选帧间预测模式。将候选帧间预测模式,帧间跳跃/合并模式,帧间划分模式,帧间预测过程中的帧内模式组成需要计算第二编码代价的候选帧间预测模式集。根据候选帧间预测模式集中各候选帧间预测模式的第二编码代价,选择目标帧间预测模式。
本申请实施例中,为了减少帧间预测模式选择过程中的计算量,首先对帧间RECT模式进行提前选择,在RECT预测模式中选择需要计算第一编码代价的目标划分模式种类。具体是,通过计算其他帧间预测模式的第一编码代价,对帧间RECT模式选择目标检测方式。通过减少帧间RECT模式中计算第一编码代价的候选划分模式数量,提升在帧间预测模式集中选择需要计算第二编码代价的候选帧间预测模式的速率。
第一编码代价可以是SATDCost,SATDCost计算过程中,对预测残差省略了变换过程、量化过程、反量化过程以及反变换过程。第二编码代价可以是RDCost,RDCost计算过程中,需要对预测残差进行变换过程、量化过程、反量化过程以及反变换过程,获得失真度D,然后,根据失真度按照公式(1)计算RDCost。相比较而言,第一编码代价的计算复杂程度低于第二编码代价的计算复杂程度。
其中,在对预测单元的帧间预测模式选择过程中,编码器会按照上述帧间预测模式集中的各帧间预测模式的模式检测次序,依次计算该预测单元采用各个帧间预测模式时的第一编码代价。因此,计算其他帧间预测模式的第一编码代价的过程属于帧间预测模式选择过程中的必经过程,而非为了对帧间RECT模式的目标检测方式进行选择,而新增加的特征值。在对帧间RECT模式进行模式检测之前,上述帧间预测模式集中的帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式属于已完成检测的其他帧间预测模式。根据已检测的其他帧间预测模式的第一编码代价,对帧间RECT模式的目标检测方式进行提前选择。该方式不仅减少了帧间预测模式选择过程中帧间RECT模式的计算量,而且在对帧间RECT模式的目标检测方式选择过程中,未产生其他新增加的计算量,提升了帧间RECT模式的目标检测方式的选择速率。
请参考图4,其为本申请实施例提供的针对帧间矩形对称划分模式的选择过程的流程图。帧间矩形对称划分模式为帧间RECT模式,针对帧间RECT模式的选择过程,具体是在图2所示的帧间RECT的四种候选检测方式中选择目标检测方式。其中,四种候选检测方式如下:
(1)、不跳过2NxN模式和Nx2N模式,也就是对预测单元按照RECT的两种划分方式(2NxN模式和Nx2N模式)进行划分,分别计算2NxN模式和Nx2N模式的第一编码代价。
(2)、只跳过2NxN模式,也就是无需对2NxN模式计算第一编码代价,只需要对Nx2N模式计算第一编码代价。
(3)、只跳过Nx2N模式,也就是无需对Nx2N模式计算第一编码代价,只需要对2NxN模式计算第一编码代价。
(4)、跳过2NxN、Nx2N模式,也就是无需将预测单元按照RECT模式进行划分,无需计算RECT模式中的2NxN模式的第一编码代价和Nx2N模式的第一编码代价。相应的,也无需计算RECT模式中的2NxN模式的第二编码代价和Nx2N模式的第二编码代价。
对帧间RECT模式选择目标检测方式主要包含三种方式,以下分别描述。
第一种:根据帧间2Nx2N模式的第一编码代价与帧间跳跃/合并模式的第一编码代价的比较结果,在帧间RECT模式中选择目标检测方式。
因为编码单元的像素块尺寸包括64x64、32x32、16x16,8x8。编码单元划分是指将编码单元执行帧间划分模式(帧间Split模式),此过程中需要编码单元的像素块尺寸大于8x8,才可执行帧间Split模式,因此,执行帧间Split模式后的编码单元的最小尺寸为8x8。
针对编码单元的预测过程是以预测单元为单位进行的,因此,编码单元与预测单元之间的数量关系与具体的帧间预测模式类型有关,具体如下:
如果是帧间预测模式类型为帧间2Nx2N模式,则一个编码单元包含一个预测单元,也就是编码单元的尺寸与预测单元的尺寸相同。如果帧间预测模式类型为帧间RECT模式,则一个编码单元包含两个大小相等的预测单元。如果帧间预测模式类型为帧间AMP模式,则一个编码单元包含两个大小不相等的预测单元。
因此,尺寸为8x8的编码单元不存在帧间Split模式,但是预测过程中,尺寸为8x8的编码单元包含帧间2Nx2N模式,帧间RECT模式,以及帧间AMP模式、帧间的帧内预测模式(也就是NxN模式)。
基于上述分析,此处计算帧间2Nx2N模式的第一编码代价和跳跃/合并模式的第一编码代价时,选择的编码单元的像素块尺寸可以是64x64、32x32、16x16、8x8中的至少一种。
步骤S401:判断2Nx2N模式的第一编码代价与跳跃/合并模式的第一编码代价之间的比值是否大于1.5?
第一编码代价为SATDCost,帧间2Nx2N模式的第一编码代价为2Nx2N SATDCost;跳跃/合并模式也就是帧间跳跃/合并模式,帧间跳跃/合并模式的第一编码代价为Skip/Merge SATDCost。判断2Nx2N SATDCost与1.5xSkip/Merge SATDCost之间的大小。
步骤S401的判断结果包含是和否的两种情况,其中,步骤S401的判断结果为是时,对应步骤S416。步骤S401的判断结果为否时,对应步骤S402。以下分别详细论述。
步骤S416:如果是,则跳过帧间矩形对称划分模式。
步骤S401的判断结果为是,也就是2Nx2N SATDCost与Skip/Merge SATDCost之间的比值大于1.5,则帧间RECT模式的目标检测方式为跳过帧间RECT模式的模式检测过程。因此,无需对帧间RECT模式进行第一编码代价的计算,也无需对帧间RECT模式进行第二编码代价的计算,第二编码代价为率失真代价RDCost。编码器在对帧间预测模式集中的各种帧间预测模式计算第二编码代价时,省略了帧间RECT模式的第一编码代价计算过程和第二编码代价计算过程,减少了帧间预测模式选择过程中的计算量,降低了计算复杂度,从而在保证编码器编码视频质量的同时,降低了编码复杂程度,提升了编码速率。
步骤S402:如果否,则继续判断是否跳过帧间划分模式出现异常,并且编码单元尺寸大于8x8?
步骤S401的判断结果为否,也就是2Nx2N SATDCost与Skip/Merge SATDCost之间的比值小于或者等于1.5,则继续判断是否跳过帧间划分模式出现异常,并且编码单元尺寸大于8x8。
步骤S402的判断结果包含是和否的两种情况,步骤S402的判断结果为是时,对应步骤S403;步骤S402的判断结果为否时,对应步骤S409。
步骤S403描述的是跳过帧间划分模式出现异常,并且编码单元尺寸大于8x8的情况,也就是需要执行帧间划分模式,此种情况下可通过第二种方式在帧间RECT模式中选择目标检测方式。步骤S409描述的是跳过帧间划分模式没有出现异常,也就是跳过帧间划分模式,此种情况下可通过第三种方式在帧间RECT模式中选择目标检测方式。以下结合图4分别介绍:
第二种:根据帧间划分模式的第一编码代价,在所述帧间RECT模式的多个候选检测方式中选择目标检测方式。
与步骤S401类似,本步骤中计算帧间划分模式的第一编码代价,对应的编码单元尺寸为64x64,32x32,16x16。在帧间划分模式中,将1个编码单元划分为4个子编码单元,每个子编码单元均执行帧间2Nx2N模式检测。编码单元以预测单元为单位进行帧间预测,预测过程中预测单元可以是不划分的预测单元(也就是2Nx2N模式的预测单元),也可以是划分的预测单元(按照RECT模式或者AMP模式进行划分后的子预测单元)。
步骤S403:如果是,则计算划分模式下4个子编码单元的第一编码代价均值AvgSplitCost;计算4个子编码单元的第一编码代价与第一编码代价均值之间的偏差DiffCost;计算上下2个子预测单元的第一编码代价预估值差异DiffCost2NxN,计算左右2个子预测单元的第一编码代价预估值差异DiffCostNx2N。
步骤S403中的“如果是”表示步骤S402的判断结果为是,也就是跳过帧间划分模式出现异常,并且编码单元尺寸大于8x8,则通过第二种方式在帧间RECT模式中选择目标检测方式。其中,此处的帧间划分模式是针对编码单元的帧间划分模式,将当前编码单元划分为4个大小相同的子编码块。
具体如下,如图8所示,其为本申请实施例提供的编码单元划分为4个大小相同的子编码块的结构示意图。如图8所示,通过帧间划分模式,将当前编码单元划分为第一子编码块801,第二子编码块802,第三子编码块803,和第四子编码块804。当前编码单元的像素块尺寸为大于8x8的编码单元,将当前编码单元按照2Nx2N划分方式进行划分,获得4个子编码块。4个子编码块为像素块尺寸大小相同的编码单元。例如,如果当前编码单元的像素块尺寸为64x64,则4个子编码块的像素块尺寸为32x32;如果当前编码单元的像素块尺寸为32x32,则4个子编码块的像素块尺寸为16x16;如果当前编码单元的像素块尺寸为16x16,则4个子编码块的像素块尺寸为8x8。
帧间划分模式获得的4个子编码块的第一编码代价分别为子编码块的SplitSATDCost。其具体是每个子编码块2Nx2N预测模式的第一编码代价。根据4个子编码块的SplitSATDCost,在帧间RECT模式中选择目标检测方式。具体如下:
(1):分别计算4个子编码块的第一编码代价SplitSATDCost,具体是,第一子编码块801的第一编码代价,第二子编码块802的第一编码代价,第三子编码块803的第一编码代价,第四子编码块804的第一编码代价。计算4个子编码块的第一编码代价均值AvgSplitCost,此处可以是,4个子编码块的Split SATDCost的平均值。具体按照公式(2)计算4个SplitSATDCost的平均值。
公式(2)
(2):计算4个子编码块的第一编码代价SplitSATDCost与第一编码代价均值之间的偏差DiffCost,具体按照公式(3)计算:
公式(3)
根据DiffCost和AvgSplitCost之间的比较结果,在帧间RECT模式的多个候选检测方式中选择目标检测方式。
步骤S404:判断DiffCost与AvgSplitCost的比值是否小于0.15?
步骤S404的判断结果包括是和否的情况,如果步骤S404的判断结果为是,也就是DiffCost与AvgSplitCost的比值小于0.15,则对应步骤S416。如果步骤S404的判断结果为否,也就是DiffCost与AvgSplitCost的比值是大于或者等于0.15,则需要分别对帧间RECT模式的两种划分方式2NxN模式和Nx2N模式进行具体分析。其中,Nx2N模式的进一步判断对应步骤S405,2NxN模式的进一步判断对应步骤S406。
步骤S416:如果是,则跳过帧间矩形对称划分模式。
步骤S04的判断结果为是,也就是DiffCost和AvgSplitCost之间的比值小于0.15,则说明4个子编码块的第一编码代价相近,4个子编码块图像内容差异不大。相应的,预测单元的两种划分方式获得的左预测单元、右预测单元、上预测单元和下预测单元的图像内容差异不大,因此,可以将左预测单元、右预测单元、上预测单元和下预测单元的图像看作为一个图像,跳过Nx2N和2NxN划分模式。因此,对Nx2N和2NxN这两种划分方式的子预测单元,均无需计算第一编码代价。帧间RECT模式中的目标检测方式为跳过帧间RECT模式。跳过帧间RECT模式,换言之,不需要计算RECT模式的第一编码代价,相应的,也不需要计算RECT模式的第二编码代价。
以下描述步骤S404的判断结果为否的情况,对于Nx2N模式和2NxN模式分别进行分析。
在帧间RECT模式中,预测单元按照第一划分方式(垂直划分方式)获得左右两个子预测单元,包括左预测单元和右预测单元,按照第二划分方式(水平划分方式)获得上下两个子预测单元,包括上预测单元和下预测单元。根据图8所示的4个子编码块的第一编码代价预估RECT模式按照两种划分方式获得的左预测单元、右预测单元、上预测单元、下预测单元的第一编码代价预估值。
如图9所示,其为本申请实施例提供的将预测单元按照矩形划分方式划分获得的子预测单元的第一编码代价分布示意图。在图9中,901表示的是将尺寸为2Nx2N的预测单元按照垂直划分方式划分后获得Nx2N预测单元,其包括左预测单元和右预测单元。902表示的是将尺寸为2Nx2N的预测单元按照水平划分方式划分后获得2NxN预测单元,其包括上预测单元和下预测单元。
按照公式(4)获得左预测单元的第一编码代价预估值。
左预测单元的第一编码代价预估值计算公式:
LeftCost=cost[1]+cost[3] 公式(4)
按照公式(5)获得右预测单元的第一编码代价预估值。
右预测单元的第一编码代价预估值计算公式:
RightCost= cost[2]+cost[4] 公式(5)
按照公式(6)获得上预测单元的第一编码代价预估值。
上预测单元的第一编码代价预估值计算公式:
TopCost= cost[1]+cost[2] 公式(6)
按照公式(7)获得下预测单元的第一编码代价预估值。
下预测单元的第一编码代价预估值计算公式:
BottomCost= cost[3]+cost[4] 公式(7)
上述公式(4)~公式(7)中,cost[1]为第一子编码块801的第一编码代价SplitSATDCost;cost[2]为第二子编码块802的第一编码代价Split SATDCost;cost[3]为第三子编码块803的第一编码代价Split SATDCost;cost[4]为第四子编码块803的第一编码代价Split SATDCost。
因此,上述公式(4)~公式(7)是根据帧间Split模式中4个子编码块的第一编码代价预估左预测单元、右预测单元、上预测单元、下预测单元这四个子预测单元的第一编码代价预估值。然后,根据左预测单元的第一编码代价预估值与右预测单元的第一编码代价预估值,判断是否跳过对Nx2N模式的第一编码代价的计算,具体对应步骤S405。根据上预测单元的第一编码代价预估值与下预测单元的第一编码代价预估值,判断是否跳过对2NxN模式的第一编码代价的计算,具体对应步骤S406。
步骤S405:如果否,则继续判断DiffCostNx2N与AvgSplitCost之间的比值是否小于0.5?
步骤S405的“如果否”对应的是步骤S404的判断结果为否的情况,且针对Nx2N模式的进一步判断。
其中,DiffCostNx2N表示Nx2N模式中的左预测单元和右预测单元之间的第一编码代价预估值差的绝对值。按照公式(8)获得Nx2N模式下的左预测单元和右预测单元的第一编码代价预估值差的绝对值:
公式(8)
根据与AvgSplitCost之间的比较结果,判断是否对Nx2N模式进行第一编码代价的计算。
步骤S407:如果是,则跳过Nx2N模式;如果否,则结束。
步骤S407中的如果是,是指步骤S405的判断结果为是的情况,也就是与AvgSplitCost之间的比值小于或者等于0.5,则说明Nx2N模式下,左预测单元和右预测单元的图像内容的差异度低于预设差异度阈值。相应的,左预测单元的第一编码代价预估值和右预测单元的第一编码代价预估值之间的差值小于预设差值。因此,跳过RECT模式中的Nx2N模式,换言之,不需要计算RECT模式中的Nx2N模式的第一编码代价,相应的,也不需要计算RECT模式中的Nx2N模式的第二编码代价。
步骤S407中的如果否,是指步骤S405的判断结果为否的情况,也就是与AvgSplitCost之间的比值大于0.5,则说明Nx2N模式下,左预测单元和右预测单元的图像内容的差异度高于预设差异度阈值。相应的,左预测单元的第一编码代价预估值和右预测单元的第一编码代价预估值之间的差值大于预设差值。因此,不能跳过Nx2N模式的第一编码代价的计算,换言之,需要计算RECT模式中的Nx2N模式的第一编码代价。
然后,当Nx2N模式的第一编码代价满足如下条件时,对Nx2N模式计算第二编码代价,第二编码代价为RDCost:
(1)如果根据步骤S406的判断结果确定还需要计算帧间RECT模式的2NxN模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价和2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
如果根据步骤S406的判断结果确定不需要计算帧间RECT模式的2NxN模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
(2)目标预测模式的第一编码代价小于(1)中的剩余预测模式的第一编码代价。如果帧间预测模式中的目标预测模式为Nx2N模式,则进一步计算Nx2N模式的第二编码代价。
步骤S406:如果否,则继续判断DiffCost2NxN与AvgSplitCost之间的比值是否小于0.5?
步骤S406的“如果否”对应的是步骤S404的判断结果为否的情况,且针对2NxN模式的进一步判断。其中,DiffCost2NxN表示2NxN模式中的上预测单元和下预测单元之间的第一编码代价预估值差的绝对值。按照公式(9)获得2NxN模式下的上预测单元和下预测单元之间的第一编码代价预估值差的绝对值:
公式(9)
根据与AvgSplitCost之间的比较结果,判断是否对/>模式进行第一编码代价的计算。
步骤S408:如果是,则跳过2NxN模式;如果否,则结束。
步骤S408中的如果是,是指步骤S406的判断结果为是的情况,也就是与AvgSplitCost之间的比值小于0.5,则说明2NxN模式中上预测单元与下预测单元的图像内容的差异度低于预设差异度阈值,相应的,上预测单元的第一编码代价预估值和下预测单元的第一编码代价预估值之间的差值小于预设差值。因此,跳过RECT模式中的2NxN模式,换言之,不需要计算RECT模式中的2NxN模式的第一编码代价,相应的,也不需要计算RECT模式中的2NxN模式的第二编码代价。
步骤S408中的如果否,是指步骤S406的判断结果为否的情况,也就是与AvgSplitCost之间的比值大于0.5,则说明2NxN模式下,上预测单元和下预测单元的图像内容的差异度高于预设差异度阈值。相应的,上预测单元的第一编码代价预估值和下预测单元的第一编码代价预估值之间的差值大于预设差值。因此,不能跳过2NxN模式的第一编码代价的计算,换言之,需要计算RECT模式中的2NxN模式的第一编码代价。
然后,当2NxN模式的第一编码代价满足如下条件时,对2NxN模式计算第二编码代价,第二编码代价为RDCost:
(1)如果根据步骤S405的判断结果确定还需要计算帧间RECT模式的Nx2N模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价和2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
如果根据步骤S405的判断结果确定不需要计算帧间RECT模式的Nx2N模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
(2)目标预测模式的第一编码代价小于(1)中的剩余预测模式的第一编码代价。如果帧间预测模式中的目标预测模式为2NxN模式,则进一步计算2NxN模式的第二编码代价。
以上即为根据第二种方式对帧间RECT模式的多个候选检测方式选择目标检测方式。
此外,如果根据第一种方式以及第二种方式均无法对RECT模式的多个候选检测方式选择目标检测方式,也就是步骤S402中的判断结果为否的情况,也就是步骤S409中的情况,则按照第三种方式对RECT模式的多个候选检测方式选择目标检测方式。
步骤S409:如果否,则继续判断编码单元尺寸是否小于或者等于16x16?
步骤S409中的如果否,是指步骤S402的进一步判断结果为否,也就是,跳过帧间划分模式未出现异常,不需要执行帧间划分模式。跳过帧间划分模式,则无法对当前编码单元进行划分获得4个子编码块。
步骤S409的判断结果包含两种情况,步骤S409的判断结果为是时,对应步骤S410;步骤S409的判断结果为否时,对应步骤S417。
步骤S417:如果否,则结束。
步骤S417中的如果否,表示跳过了帧间划分模式,且编码单元尺寸大于16x16。此种情况下结束,表示不跳过帧间RECT模式,换言之,对RECT模式中的Nx2N模式和2NxN模式分别计算第一编码代价。
步骤S409的判断结果为是的情况对应步骤S410,也就是跳过了帧间划分模式,且当前编码单元的像素块尺寸为8x8的像素块,或者16 x16的像素块,采用第三种方式,根据当前预测单元的2N x2N模式的预测残差判断是否跳过帧间RECT模式的模式检测。
步骤S410:如果是,则将预测单元的2Nx2N模式的预测残差块划分为4个子预测残差块,计算每个子预测残差块的预测残差均值ResiMean[i]、4个子预测残差块的预测残差平均值AvgSplitDiff、4个子预测残差块中、每个子预测残差块的预测残差均值ResiMean[i]与4个子预测残差块的预测残差平均值AvgSplitDiff之间的偏差DiffResi;计算上预测单元与下预测单元之间的像素纹理差异Diff2NxN,计算左预测单元和右预测单元之间的像素纹理差异DiffNx2N。
请参考图10,其为本申请实施例提供的将预测单元按照2Nx2N划分方式划分获得的子预测残差块的结构示意图。在图10中,WxH的预测残差块1001是通过如下方法获得的:将一个尺寸为WxH的预测单元PU按照2Nx2N模式处理,获得一个尺寸为WxH的预测像素块。将尺寸为WxH的预测单元PU与尺寸为WxH的预测像素块做差获得WxH的预测残差块。
其中,尺寸为WxH的预测单元PU是指从原始图像中剪切出一个尺寸为WxH的原始像素块,为尺寸为WxH的真实像素块。
将一个尺寸为WxH的预测单元PU按照2Nx2N模式处理,获得尺寸为WxH的预测像素块。具体过程如下:
预测像素块是在参考帧中通过运动估计的方式找到一个目标匹配块。目标匹配块与原始像素块做差得到预测残差块,预测残差块的预测残差越小,该目标匹配块越接近原始像素块。
将WxH的预测残差块1001划分成4个子预测残差块,分别为第一子预测残差块1001-1,第二子预测残差块1001-2,第三子预测残差块1001-3,第四子预测残差块1001-4。图10中的1001-i泛指将WxH的预测残差块进行划分后的第i子预测残差块,其中,i=1,2,3,4。
WxH的预测残差块1001的H表示预测残差块1001的高度尺寸,WxH的预测残差块1001的W表示预测残差块1001的宽度尺寸。第i子预测残差块1001-i的w表示第i子预测残差块的宽度尺寸,,第i子预测残差块1001-i的h表示第i子预测残差块的高度尺寸,/>
ResiMean[i]表示第i个尺寸为wxh的子预测残差块的预测残差均值,i=1,2,3,4。ResiMean[i]可以按照公式(10)和公式(11)获得:
按照公式(10)计算每个尺寸为wxh的子预测残差块的预测残差:
公式(10)
其中,表示(/>)位置上的原始像素值,/>表示(/>)位置上的像素预测值。
按照公式(11)计算每个尺寸为wxh的子预测残差块的预测残差均值:
公式(11)
其中,表示每个子预测残差块的宽度尺寸,/>表示每个子预测残差块的高度尺寸。
请参考图11,其为本申请实施例提供的将预测单元按照矩形划分方式划分获得的子预测单元的预测准确度分布示意图。
在RECT模式中,将预测单元按照垂直划分方式进行划分,获得Nx2N模式的左预测单元和右预测单元,将预测单元按照水平划分方式进行划分,获得2NxN模式的上预测单元和下预测单元。
根据4个子预测残差块分别对应的预测残差均值ResiMean[i],获得如图11中,RECT模式的两种划分方式下左预测单元1101-1的预测准确度、右预测单元1101-2的预测准确度、上预测单元1101-3的预测准确度、下预测单元1101-4的预测准确度。
按照公式(12)计算Nx2N模式中的左预测单元的预测准确度:
公式(12)
按照公式(13)计算Nx2N模式中的右预测单元的预测准确度:
公式(13)
按照公式(14)计算2NxN模式中的上预测单元的预测准确度:
公式(14)
按照公式(15)计算2NxN模式中的下预测单元的预测准确度:
公式(15)
上述公式(12)~公式(15)中,表示左预测单元的预测准确度,/>表示右预测单元的预测准确度,/>表示上预测单元的预测准确度,/>表示下预测单元的预测准确度。
按照公式(16)计算Nx2N模式中左预测单元和右预测单元的预测准确度差的绝对值:
公式(16)
按照公式(17)计算2NxN模式中上预测单元和下预测单元的预测准确度差的绝对值:
公式(17)
按照公式(18)计算4个子预测残差块的预测残差平均值:
公式(18)/>
按照公式(19)计算4个子预测残差块中、每个子预测残差块的预测残差均值ResiMean[i]与4个子预测残差块的预测残差平均值AvgSplitDiff之间的偏差DiffResi:
公式(19)
其中,ResiMean[i]表示将尺寸为WxH的预测残差块进行划分处理后获得的4个子预测残差块分别对应的预测残差均值,具体包括:第一子预测残差块1001-1的预测残差均值ResiMean[1],第二子预测残差块1001-2的预测残差均值ResiMean[2],第三子预测残差块1001-3的预测残差均值ResiMean[3],第四子预测残差块1001-4的预测残差均值ResiMean[4]。
AvgSplitDiff表示上述4个子预测残差块的预测残差平均值,具体是,将第一子预测残差块1001-1的预测残差均值ResiMean[1],第二子预测残差块1001-2的预测残差均值ResiMean[2],第三子预测残差块1001-3的预测残差均值ResiMean[3],和第四子预测残差块1001-4的预测残差均值ResiMean[4]的总和除以4,获得的预测残差平均值。
根据与/>之间的比较结果,判断是否对RECT模式进行模式检测。
步骤S411:判断DiffResi与AvgSplitDiff的比值是否小于第一比值?
其中,第一比值与预测单元的像素块尺寸有关,如果预测单元的像素块尺寸为16x16,则第一比值为0.1,如果预测单元的像素块尺寸为8x8,则第一比值为1。
步骤S411的判断结果包括是和否的两种情况,如果步骤S411的判断结果为是,则对应步骤S416。如果步骤S411的判断结果为否,则需要进一步对预测单元的两种划分方式进行具体判断,包括步骤S412和步骤S413,以下分别进行描述。
如果步骤S411的判断结果为是,也就是与/>之间的比值小于第一比值,则说明将预测单元的2Nx2N模式的预测残差块按照图10的划分方式划分后获得的4个子预测残差块、每个子预测残差块的预测残差均值ResiMean相近。也就是,图10中第一子预测残差块1001-1的预测残差均值,第二子预测残差块1001-2的预测残差均值,第三子预测残差块1001-3的预测残差均值,第四子预测残差块1001-4的预测残差均值相近。4个子预测残差块的预测残差均值之间的误差值小于预设误差值。相应的,帧间RECT模式中的两种划分模式下,左预测单元、右预测单元、上预测单元、下预测单元之间的图像差异度小于预设差异度,因此,帧间RECT的目标检测方式为跳过帧间RECT的Nx2N和2NxN两种模式下的模式检测。换言之,不需要计算帧间RECT模式的第一编码代价,相应的,也不需要计算帧间RECT模式的第二编码代价。
如果步骤S411的判断结果为否,也就是与/>之间的比值大于或者等于第一比值,则分别介绍步骤S412和S413。
步骤S412:如果否,则继续判断Diff2NxN与DiffNx2N的比值是否小于第二比值?
步骤S412中的“如果否”是指步骤S411中的判断结果为否的第一种情况,判断Diff2NxN与DiffNx2N的比值是否小于第二比值。
其中,第二比值与预测单元的像素块尺寸有关,如果预测单元的像素块尺寸为16x16,则第二比值为0.2,如果预测单元的像素块尺寸为8x8,则第二比值为0.5。
步骤S412的判断结果对应步骤S414:如果是,则跳过2NxN模式;如果否,则结束。
步骤S414中的“如果是,则跳过2NxN模式”对应的情况为:如果Diff2NxN与DiffNx2N的比值小于第二比值,则说明将预测单元按照图11中的水平划分方式进行划分后,获得的上预测单元的预测准确度和下预测单元的预测准确度之间的偏差低于预设偏差值。也就是说,上预测单元和下预测单元之间的图像差异度低于预设差异度,则帧间RECT的目标检测方式为跳过帧间RECT中的2NxN划分模式。换言之,无需计算帧间RECT中的2NxN模式的第一编码代价,相应的,也无需计算2NxN模式的第二编码代价。
步骤S414中的“如果否,则结束”对应的情况为:如果Diff2NxN与DiffNx2N的比值大于或者等于第二比值,则说明预测单元按照图11中的水平划分方式进行划分后,获得的上预测单元的预测准确度和下预测单元的预测准确度之间的偏差高于预设偏差值。也就是说,上预测单元和下预测单元之间的图像差异度高于于预设差异度。因此,帧间RECT的目标检测方式为不跳过帧间RECT中的2NxN模式,换言之,需要对帧间RECT中的2NxN模式执行模式检测,计算第一编码代价。
然后,当2NxN模式的第一编码代价满足如下条件时,对2NxN模式计算第二编码代价,第二编码代价为RDCost:
(1)如果根据步骤S413的判断结果确定还需要计算帧间RECT模式的Nx2N模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价和2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
如果根据步骤S413的判断结果确定不需要计算帧间RECT模式的Nx2N模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
(2)目标预测模式的第一编码代价小于(1)中的剩余预测模式的第一编码代价。如果帧间预测模式中的目标预测模式为2NxN模式,则进一步计算2NxN模式的第二编码代价。
步骤S413:如果否,则继续判断DiffNx2N与Diff2NxN的比值是否小于第三比值?
步骤S413中的“如果否”是指步骤S411中的判断结果为否的第二种情况,判断DiffNx2N与Diff2NxN的比值是否小于第三比值。
其中,第三比值与预测单元的像素块尺寸有关,如果预测单元的像素块尺寸为16x16,则第三比值为0.2,如果预测单元的像素块尺寸为8x8,则第三比值为0.5。
步骤S413的判断结果对应步骤S415:如果是,则跳过Nx2N模式;如果否,则结束。
步骤S415的“如果是,则跳过Nx2N模式”对应的情况为:如果DiffNx2N与Diff2NxN的比值小于第三比值,则说明将预测单元按照图11中的垂直划分方式进行划分后,获得的左预测单元的预测准确度和右预测单元的预测准确度之间的偏差低于预设偏差值。也就是说,左预测单元和右预测单元之间的图像差异度低于预设差异度,则帧间RECT的目标检测方式为跳过帧间RECT中的Nx2N划分模式。换言之,无需计算帧间RECT中的Nx2N模式的第一编码代价,相应的,也无需计算Nx2N模式的第二编码代价。
步骤S415的“如果否,则结束”对应的情况为:如果DiffNx2N与Diff2NxN的比值大于或者等于第三比值,则说明预测单元按照图11中的垂直划分方式进行划分后,获得的左预测单元的预测准确度和右预测单元的预测准确度之间的偏差高于预设偏差值。也就是说,左预测单元和右预测单元之间的图像差异度高于预设差异度。因此,帧间RECT的目标检测方式为不跳过帧间RECT模式的Nx2N模式,换言之,需要对帧间RECT中的Nx2N划分模式执行模式检测,计算第一编码代价。
然后,当Nx2N模式的第一编码代价满足如下条件时,对Nx2N模式计算第二编码代价,第二编码代价为RDCost:
(1)如果根据步骤S412的判断结果确定还需要计算帧间RECT模式的2NxN模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价和2NxN模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
如果根据步骤S412的判断结果确定不需要计算帧间RECT模式的2NxN模式的第一编码代价,则根据帧间预测模式中的帧间2Nx2N模式的第一编码代价、帧间RECT模式的Nx2N模式的第一编码代价、帧间AMP模式的各种子预测模式的第一编码代价,获得帧间预测模式中的目标帧间预测模式。
(2)目标预测模式的第一编码代价小于(1)中的剩余预测模式的第一编码代价。如果帧间预测模式中的目标预测模式为Nx2N模式,则进一步计算Nx2N模式的第二编码代价。
以上即为在帧间RECT模式的多种候选检测方式选择目标检测方式的三种检测方法。
本申请实施例提供一种视频编码的帧间预测模式选择方法,包括:获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择所述预测单元的目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
上述方法,第一编码代价所需的计算量小于第二编码代价所需的计算量。通过计算量偏低的第一编码代价,对指定帧间预测模式选择目标检测方式,避免直接将指定帧间预测模式的所有划分模式均进行第一编码代价,从而减少了指定帧间预测模式的第一编码代价的计算量。然后,根据指定帧间预测模式的目标检测方式对应的第一编码代价,确定帧间预测模式中需要计算第二编码代价的至少一种候选帧间预测模式。通过对指定帧间预测模式选择目标检测方式,也就是减少指定帧间预测模式的第一编码代价计算数量,提升在帧间预测模式集中选择需要计算第二编码代价的候选帧间预测模式的速率。从而提升帧间预测模式集中选择目标帧间预测模式的速率。在保证编码器对视频进行编码的编码质量的前提下,通过减少指定帧间预测模式的计算量,减少目标帧间预测模式选择过程中的计算量,增加编码码率,降低编码器的压缩性能,提升编码速率。
第一实施例
请参考图15,其为本申请第一实施例提供的一种视频编码的帧间预测模式选择方法的流程图。以下结合图15对本申请第一实施例提供的视频编码的帧间预测模式选择方法进行详细描述。其中,第一实施例提供的视频编码的帧间预测模式选择方法与场景实施例相对应,因此,相关部分可以参考场景实施例。图15所示的视频编码的帧间预测模式选择方法,包括步骤S1501~S1504。
如图15所示,在步骤S1501中,获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价。
本步骤用于获得至少一种其他帧间预测模式的第一编码代价,以在后续步骤中根据至少一种其他帧间预测模式的第一编码代价,确定指定帧间预测模式的目标选择方式。
帧间预测模式集中包含预测当前编码单元的预测单元的多种帧间预测模式,例如,帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式、帧间RECT模式、帧间AMP模式、帧间预测过程中的帧内预测模式。在对预测单元确定目标帧间预测模式的过程中,编码器会依次计算上述多种帧间预测模式的编码代价,根据每种帧间预测模式的编码代价,确定预测单元的目标帧间预测模式。
在预测单元的目标帧间预测模式的选择过程中,为了降低编码器的计算量,提升目标帧间预测模式的选择速率,进而提升编码器的编码速率,本申请实施例通过帧间预测模式集中至少一种其他帧间预测模式的第一编码代价,首先对指定帧间预测模式的多种候选检测方式进行选择。
指定帧间预测模式包括帧间RECT模式,帧间RECT模式包括Nx2N模式和2NxN模式。帧间RECT模式的多种候选检测方式包括如下至少一种情况:
对帧间RECT模式不执行模式检测,即无需计算第一编码代价;对帧间RECT模式中的Nx2N模式执行模式检测,即计算Nx2N模式的第一编码代价;对帧间RECT模式中的2NxN模式执行模式检测,即计算2NxN模式的第一编码代价;对帧间RECT模式中的Nx2N模式和2NxN模式均执行模式检测,分别计算Nx2N模式的第一编码代价和2NxN模式的第一编码代价。
第一编码代价是根据未进行预处理的预测残差获得的编码代价,例如,第一编码代价为SATDCost;第二编码代价是根据已完成预处理的预测残差获得的编码代价,例如,第二编码代价为RDcost。其中,对预测残差进行预测处理包括对预测残差进行如下至少一种预处理:变换处理、量化处理、反量化处理、反变换处理。因此,第一编码代价的计算复杂程度低于第二编码代价的复杂程度。
根据帧间RECT模式的选择结果,确定是否需要对帧间RECT模式计算第一编码代价。然后,帧间RECT模式的目标检测方式的第一编码代价,与第一类帧间预测模式中的第一帧间预测模式的第一编码代价,第四帧间预测模式的第一编码代价,在第一类帧间预测模式中选择需要计算第二编码代价的第一候选帧间预测模式。用于后续与其他帧间预测模式的第二编码代价进行比较,获得目标帧间预测模式。此过程可以减少对指定帧间预测模式的所有划分模式均计算第一编码代价和第二编码代价的过程,减少计算量,降低计算复杂度。
其中,所述获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,包括:获得所述帧间预测模式集中已检测的至少一种其他帧间预测模式的第一编码代价;其中,所述已检测的至少一种其他帧间预测模式包括帧间预测模式集中模式检测次序位于所述指定帧间预测模式的模式检测次序之前的至少一种其他帧间预测模式。
根据图1和图2中的模式检测次序,模式检测次序位于帧间RECT模式的模式检测次序之前的其他帧间预测模式包括帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式。因此,在对帧间RECT模式进行模式检测之前,编码器已经对帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式完成了模式检测,分别获得了帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式分别对应的第一编码代价。
根据帧间跳跃/合并模式、帧间划分模式、帧间2Nx2N模式中的至少一种帧间预测模式的第一编码代价,对帧间RECT模式中的第一划分模式和第二划分模式是否进行模式检测,进行提前判断,根据判断结果,确定帧间RECT模式的目标检测方式。
视频数据包括帧内视频帧和帧间视频帧,编码器对视频进行编码过程中,对于帧间视频帧,采用帧间预测模式预测编码单元的预测单元。为了在帧间预测模式集中选择预测单元的目标帧间预测模式,编码器按照帧间预测模式检测顺序依次对帧间预测模式集中的多种帧间预测模式计算第一编码代价。根据已检测的至少一种其他帧间预测模式的第一编码代价,对指定帧间预测模式的多种候选检测方式进行选择,获得指定帧间预测模式的目标检测方式。
上述对指定帧间预测模式选择目标检测方式的过程中,采用的是在指定帧间预测模式排序之前的其他帧间预测模式的第一编码代价的判断结果选择的,而非根据新增加的计算特征值,对指定帧间预测模式的目标检测方式进行选择。因此,上述对指定帧间预测模式选择目标检测方式的过程并未额外增加新的计算量,同时对指定帧间预测模式的目标检测方式进行选择后,避免直接对指定帧间预测模式的所有划分模式进行第一编码代价的计算。然后,根据指定帧间预测模式的目标检测方式对应的第一编码代价,确定帧间预测模式中需要计算第二编码代价的至少一种候选帧间预测模式。
如图15所示,在步骤S1502中,根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型。
本步骤用于对指定帧间预测模式确定目标检测方式,也就是确定指定帧间预测模式中用于执行模式检测的划分模式种类。帧间预测模式集中包括帧间跳跃/合并模式,帧间划分模式,帧间2Nx2N模式,帧间RECT模式,帧间AMP模式,帧间过程中的帧内模式。其中,第一类帧间预测模式包括帧间2Nx2N模式,帧间RECT模式,帧间AMP模式。
此处根据指定帧间预测模式中确定的划分模式种类,计算第一编码代价,然后,在第一类帧间预测模式中,将指定帧间预测模式中的目标划分模式的第一编码代价,第一帧间预测模式的第一编码代价,和第四帧间预测模式的第一编码代价进行比较,确定需要计算第二编码代价的第一候选帧间预测模式。
然后将第一候选帧间预测模式的第二编码代价,和帧间预测模式集中除第一候选帧间预测模式之外的其他帧间预测模式的第二编码代价比较,确定针对预测单元的目标帧间预测模式。
指定帧间预测模式的多个候选检测方式包括,对指定帧间预测模式执行模式检测的划分模式种类。指定帧间预测模式包括第一划分模式和第二划分模式。指定帧间预测模式的多个候选检测方式包括如下至少一种:
第一种:跳过指定帧间预测模式的模式检测,换言之,对指定帧间预测模式不执行模式检测,无需计算指定帧间预测模式的第一编码代价。相应的,也无需计算指定帧间预测模式的第二编码代价。
第二种:跳过指定帧间预测模式的第一划分模式的模式检测,换言之,对指定帧间预测模式的第一划分模式不执行模式检测,对第二划分模式执行模式检测,只需要计算指定帧间预测模式的第二划分模式的第一编码代价。
第三种:跳过指定帧间预测模式的第二划分模式的模式检测,换言之,对指定帧间预测模式的第二划分模式不执行模式检测,对第一划分模式执行模式检测,只需要计算指定帧间预测模式的第一划分模式的第一编码代价。
第四种:不跳过指定帧间预测模式的第一划分模式和第二划分模式,换言之,分别计算指定帧间预测模式的第一划分模式的第一编码代价和第二划分模式的第一编码代价。
确定指定帧间预测模式中需要计算第一编码代价的划分模式种类后,在第一类帧间预测模式中,将指定帧间预测模式的目标划分模式的第一编码代价,第一帧间预测模式的第一编码代价,第四帧间预测模式的第一编码代价进行比较,获得第一类帧间预测模式中需要计算第二编码代价的第一候选帧间预测模式。
因此,为了减少指定帧间预测模式的第一编码代价的计算量,对指定帧间预测模式选择目标检测方式。其中,根据至少一种其他帧间预测模式的第一编码代价,对指定帧间预测模式的多个候选检测方式选择目标检测方式,包括多种检测方式,以下逐一详细介绍。
首先描述对指定帧间预测模式的多个候选检测方式选择目标检测方式的第一种方式:
所述至少一种其他帧间预测模式包括第一帧间预测模式和第二帧间预测模式;所述根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
所述第一帧间预测模式包括帧间2Nx2N模式;所述第二帧间预测模式包括帧间合并模式和帧间跳跃模式中的至少一种;所述根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值大于第一预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
第一帧间预测模式可以参考图6所示的2Nx2N结构图。帧间2Nx2N模式是指预测单元帧间2Nx2N模式,其对预测单元不进行划分处理。
第二帧间预测模式为帧间合并模式和帧间跳跃模式中的至少一种。帧间跳跃模式是帧间合并模式的特殊模式,帧间合并模式下的预测单元存在预测残差,帧间跳跃模式下的预测单元的预测残差为0。
获得第一帧间预测模式的第一编码代价:2Nx2N SATDCost,获得第二帧间预测模式的第一编码代价:Skip/Merge SATDCost。判断2N x2N SATDCost 是否大于Skip/MergeSATDCost,具体是,判断2N x2N SATDCost与Skip/Merge SATDCost的比值是否大于第一预设阈值,例如,第一预设阈值为1.5。此处对应图4中的步骤S401。如果是,则帧间RECT模式的目标检测方式为跳过帧间RECT模式的模式检测。
如果否,则无法通过第一种方式对指定帧间预测模式的多个候选检测方式选择目标检测方式。
其次描述对指定帧间预测模式的多个候选检测方式选择目标检测方式的第二种方式:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,则根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述第三帧间预测模式包括编码单元帧间划分模式。
其中,所述根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
如果所述编码单元的像素块尺寸大于预测尺寸,则将所述编码单元进行拆分处理,获得4个子编码块;获得所述4个子编码块的第一编码代价均值;获得所述4个子编码块的第一编码代价与所述第一编码代价均值之间的第一误差绝对值;如果所述第一误差绝对值与所述第一编码代价均值之间的比值小于第二预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
第三帧间预测模式包括编码单元帧间划分模式,帧间划分模式为将当前编码单元拆分为4个子编码块,如图8所示,第一子编码块801,第二子编码块802,第三子编码块803和第四子编码块804。
所述指定帧间预测模式包括帧间矩形对称划分模式,所述第一划分模式包括帧间矩形Nx2N模式,所述第二划分模式包括帧间矩形2NxN模式。
所述指定帧间预测模式包括帧间矩形对称划分模式,帧间矩形对称划分模式为帧间RECT模式。第一划分模式包括帧间矩形Nx2N模式,第二划分模式包括帧间矩形2NxN模式。
根据4个子编码块的第一编码代价预估指定帧间预测模式中的第一划分模式的第一编码代价预估值和第二划分模式的第一编码代价预估值,从而判断是否跳过指定帧间预测模式的模式检测过程。具体是,根据4个子编码块的2Nx2N SATDCost预估帧间RECT模式中的第一划分模式的第一编码代价预估值和第二划分模式的第一编码代价预估值,从而判断是否跳过RECT模式中的Nx2N模式或者2NxN模式。
所述4个子编码块的第一编码代价均值根据上述公式(2)获得。所述4个子编码单元的第一编码代价与所述第一编码代价均值之间的第一误差绝对值为根据上述公式(3)获得的4个子编码块的第一编码代价与第一编码代价均值之间的偏差DiffCost。
如果偏差DiffCost和第一编码代价均值AvgSplitCost之间的比值小于第二预设阈值,例如,第二预设阈值为0.15,则说明4个子编码块的第一编码代价相近,4个子编码块图像内容差异不大。相应的,预测单元的两种划分方式获得的左预测单元、右预测单元、上预测单元和下预测单元的图像内容差异不大。因此,可以将这4个子预测单元的图像看作为一个图像,跳过Nx2N和2N xN划分模式,也就是,对N x2N和2N xN这两种划分方式的预测单元,均无需计算第一编码代价。因此,帧间RECT模式中的目标检测方式为跳过RECT预测模式。跳过帧间RECT模式,换言之,不需要计算RECT模式的第一编码代价,相应的,也不需要计算RECT模式的第二编码代价。
如果所述第一误差绝对值与所述第一编码代价均值之间的比值大于或等于第二预设阈值,也就是,如果偏差DiffCost和第一编码代价均值AvgSplitCost之间的比值大于或者等于第二预设阈值,则说明4个子编码块的第一编码代价不相近。为了进一步确定是否对帧间RECT模式的第一划分模式和第二划分模式进行模式检测,需要进一步比较第一划分模式的两个子预测单元之间的误差值和第二划分模式的两个子预测单元之间的误差值,具体如下:
所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;如果所述第一误差绝对值与所述第一编码代价均值之间的比值大于或等于所述第二预设阈值,则所述方法还可以通过如下方式实现:
获得所述第一划分模式中所述第一子预测单元的第一编码代价预估值和所述第二子预测单元的第一编码代价预估值之间的第二误差绝对值;获得所述第二划分模式中所述第三子预测单元的第一编码代价预估值和所述第四子预测单元的第一编码代价预估值之间的第三误差绝对值;根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
如图9所示,帧间RECT模式的第一种划分模式是将2Nx2N的预测单元按照垂直划分方式进行拆分,获得Nx2N模式中的左预测单元和右预测单元。第二种划分模式是将2Nx2N的预测单元按照水平划分方式进行拆分,获得2NxN模式中的上预测单元和下预测单元。
因此,第二误差绝对值是根据上述公式(8)获得的第一划分模式(Nx2N模式)中左预测单元的第一编码代价预估值和右预测单元第一编码代价预估值之间的误差绝对值。第三误差绝对值是根据上述公式(9)获得的第二划分模式(2NxN预测模式)中上预测单元的第一编码代价预估值和下预测单元第一编码代价预估值之间的误差绝对值。
其中,所述根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
(1)如果所述第二误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测。
例如,如果第二误差绝对值与第一编码代价均值AvgSplitCost之间的比值小于或者等于第三预设阈值,例如,第三预设阈值为0.5,则说明Nx2N划分模式下,左预测单元和右预测单元的图像内容的差异度低于预设差异度阈值,相应的,左预测单元的第一编码代价预估值和右预测单元第一编码代价预估值之间的差值小于预设差值,无需对预测单元的Nx2N模式计算第一编码代价,相应的,也不需要计算预测单元的Nx2N模式的第二编码代价。
如果第二误差绝对值与第一编码代价均值AvgSplitCost之间的比值大于第三预设阈值,例如,第三预设阈值为0.5,则说明Nx2N划分模式下,左预测单元和右预测单元的图像内容的差异度高于预设差异度阈值相应的,左预测单元的第一编码代价预估值和右预测单元的第一编码代价预估值之间的差值大于预设差值。因此,不能跳过Nx2N模式的第一编码代价的计算,换言之,需要计算RECT模式中的Nx2N模式的第一编码代价。
(2)如果所述第三误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
例如,如果第三误差绝对值与第一编码代价均值AvgSplitCost之间的比值小于或者等于第三预设阈值,例如,第三预设阈值为0.5,则说明/>划分模式下,上预测单元和下预测单元的图像内容的差异度低于预设差异度阈值,相应的,上预测单元的第一编码代价预估值和下预测单元第一编码代价预估值之间的差值小于预设差值,无需对预测单元按照2NxN模式计算第一编码代价,相应的,也不需要计算RECT模式中的2NxN模式的第二编码代价。
如果第三误差绝对值与第一编码代价均值AvgSplitCost之间的比值大于第三预设阈值,例如,第三预设阈值为0.5,则说明2NxN划分模式下,上预测单元和下预测单元的图像内容的差异度高于预设差异度阈值。相应的,上预测单元的第一编码代价预估值和下预测单元的第一编码代价预估值之间的差值大于预设差值。因此,不能跳过2NxN模式的第一编码代价的计算,换言之,需要计算RECT模式中的2NxN模式的第一编码代价。
以上即为对指定帧间预测模式的多个候选检测方式选择目标检测方式的第二种方式。如果根据第一种方式以及第二种方式均无法对指定帧间预测模式的多个候选检测方式选择目标检测方式,则按照第三种方式对指定帧间预测模式的多个候选检测方式选择目标检测方式。
以下描述对指定帧间预测模式的多个候选检测方式选择目标检测方式的第三种方式:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,且对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作时,则根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,例如,2Nx2N SATDCost与Skip/Merge SATDCost之间的比值小于或者等于1.5。
所述对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作的判决条件包括如下任意一种条件:在所述第二帧间预测模式中,所述帧间跳跃模式的第二编码代价小于所述帧间合并模式的第二编码代价;所述编码单元的像素块尺寸为预设尺寸。
在所述第二帧间预测模式中,所述帧间跳跃模式的第二编码代价小于所述帧间合并模式的第二编码代价,例如,Skip RDCost<=Merge RDCost。帧间跳跃模式中,预测单元的预测残差为0,而帧间合并模式中,预测单元包含预测残差。因此,当Skip RDCost<=MergeRDCost时,预测单元的目标帧间预测模式为帧间跳跃模式,无需对编码单元进行划分处理,因此,跳过帧间划分模式。
另外,帧间划分模式是指将2Nx2N模式的编码单元划分为4个大小相等的子编码块,其中,编码单元的像素块尺寸为大于8x8尺寸。因此,当编码单元的像素块尺寸为8x8,则无需对编码单元进行划分处理,因此,跳过帧间划分模式。
如果第一帧间预测模式的第一编码代价2Nx2N SATDCost小于帧间跳跃/合并模式的第一编码代价Skip/Merge SATDCost,则帧间RECT模式的SATDCost小于帧间跳跃/合并模式的第一编码代价Skip/Merge SATDCost。而且,对帧间划分模式不执行模式检测,为了进一步判断是否需要对帧间RECT模式执行模式检测,则根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
其中,所述根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
将所述预测单元针对所述第一帧间预测模式的预测残差块进行拆分处理,获得4个子预测残差块;根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
如图10所示,预测单元1001为未被划分的预测单元,将预测单元1001划分成4个子预测残差块,分别为第一子预测残差块1001-1,第二子预测残差块1001-2,第三子预测残差块1001-3,第四子预测残差块1001-4。图10中的1001-i泛指将预测单元进行划分后的第i子预测残差块,其中,i=1,2,3,4。
所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括如下第一种实现方式:
根据所述4个子预测残差块的预测残差,获得所述4个子预测残差块中每个子预测残差块的预测残差均值,以及获得所述4个子预测残差块的预测残差平均值;获得所述4个子预测残差块中每个子预测残差块的预测残差均值与所述预测残差平均值之间的第四误差绝对值;根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
获得所述4个子预测残差块中、每个子预测残差块的预测残差均值,例如,按照公式(11)计算每个子预测残差块的预测残差均值
获得所述4个子预测残差块的预测残差平均值,包括:获得所述4个子预测残差块中、每个子预测残差块的预测残差均值;根据每个子预测残差块的预测残差均值,获得4个子预测残差块的预测残差平均值。例如,按照公式(18)计算四个子预测残差块的预测残差平均值:
其中,获得所述4个子预测残差块中每个子预测残差块的预测残差均值与所述预测残差平均值之间的第四误差绝对值,例如,按照公式(19)计算四个子预测残差块中、每个子预测残差块的预测残差均值与4个子预测残差块的预测残差平均值之间的差的绝对值:。第四误差绝对值以/>表示。
其中,所述根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,这个过程因为预测单元的像素块尺寸不同而不同,具体可以根据如下两点进行说明:
(1)如果所述预测单元的像素块尺寸为16x16,且所述第四误差绝对值与所述预测残差平均值之间的比值小于第四预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测。
当预测单元的像素块尺寸为16x16时,第四误差绝对值与预测残差平均值/>之间的比值小于第四预测阈值,例如,第四预设阈值为0.1,则说明预测单元拆分后的4个子预测残差块、每个子预测残差块的预测残差均值相近。例如,图10中第一子预测残差块1001-1的预测残差均值/>,第二子预测残差块1001-2的预测残差均值/>,第三子预测残差块1001-3的预测残差均值/>,第四子预测残差块1001-4的预测残差均值/>相近。也就是说,4个子预测残差块的预测残差之间的误差值小于预设误差值。相应的,帧间RECT模式中的两种划分模式下,左预测单元、右预测单元、上预测单元、下预测单元这四个子预测单元之间的差异度小于预设差异度。因此,帧间RECT的目标检测方式为跳过帧间RECT的Nx2N和2NxN两种模式下的模式检测。换言之,不需要计算帧间RECT模式中Nx2N和2NxN两种模式的第一编码代价,相应的,也不需要计算帧间RECT模式中Nx2N和2NxN两种模式的第二编码代价。
(2)如果所述预测单元的像素块尺寸为8x8,且所述第四误差绝对值小于所述预测残差平均值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测。
当预测单元的像素块尺寸为8x8时,如果第四误差绝对值小于预测残差平均值/>,则说明预测单元拆分后的4个子预测残差块、每个子预测残差块的预测残差均值相近。与预测单元的像素块尺寸为16x16中的分析相似,因此,帧间RECT的目标检测方式为跳过帧间RECT的Nx2N和2NxN两种模式下的模式检测。
以上即为所述根据所述4个子预测残差块的预测残差,对所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式的第一种实现方式。如果预测单元的像素块尺寸为16x16时,第四误差绝对值与预测残差平均值/>之间的比值大于或者等于0.1,或者,预测单元的像素块尺寸为8x8时,第四误差绝对值/>大于或者等于预测残差平均值/>,则需要对帧间RECT模式执行模式检测。
所述根据所述4个子预测残差块的预测残差,对所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式还包括第二种方式:
对帧间RECT模式的两种划分模式进行进一步判断,判断是否对第一划分模式(Nx2N模式)和/或第二划分模式(2N xN模式)执行模式检测。
所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:根据所述4个子预测残差块的预测残差,获得所述第一划分模式中所述第一子预测单元的预测准确度和所述第二子预测单元的预测准确度之间的第一预测准确度差值,以及获得所述第二划分模式中所述第三子预测单元的预测准确度和所述第四子预测单元的预测准确度之间的第二预测准确度差值;根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
根据图11可知,第一划分模式为预测单元垂直划分,获得Nx2N模式,第一子预测单元为Nx2N模式中的左预测单元,第二子预测单元为Nx2N模式中的右预测单元。第一子预测单元的预测准确度为左预测单元的预测准确度,第二子预测单元的预测准确度为右预测单元的预测准确度/>。根据公式(12)计算Nx2N模式中的左预测单元的预测准确度。按照公式(13)计算N x2N模式中的右预测单元的预测准确度。
获得所述第一划分模式中所述第一子预测单元的预测准确度和所述第二子预测单元的预测准确度之间的第一预测准确度差值,例如,按照公式(16)计算Nx2N模式中左预测单元的预测准确度和右预测单元的预测准确度的差的绝对值
第二划分模式为2NxN模式,第三子预测单元为2NxN模式中的上预测单元,第四子预测单元为2NxN模式中的下预测单元。第三子预测单元的预测准确度为上预测单元的预测准确度,第四子预测单元的预测准确度为下预测单元的预测准确度/>。根据公式(14)计算2NxN模式中的上预测单元的预测准确度。按照公式(15)计算2NxN模式中的下预测单元的预测准确度。
获得所述第二划分模式中所述第三子预测单元的预测准确度和所述第四子预测单元的预测准确度之间的第二预测准确度差值,例如,按照公式(17)计算2NxN模式中上预测单元的预测准确度和下预测单元的预测准确度的差的绝对值。
其中,所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,这个过程因为编码单元的像素块尺寸不同而不同,具体可以根据如下两点进行说明:
(1)所述编码单元的像素块尺寸为16x16;所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
例如,如果第一预测准确度差值与第二预测准确度差值/>之间的比值小于第五预设阈值,例如,第五预设阈值为0.2,则说明将RECT模式按照垂直方式划分获得Nx2N模式后,其左右两个子预测单元之间的图像差异度小于预设差异度阈值,则应该跳过Nx2N模式的模式检测。
如果第二预测准确度差值与第一预测准确度差值/>之间的比值小于第五预设阈值,例如,第五预设阈值为0.2,则说明将RECT模式按照水平方式划分获得2NxN模式后,其上下两个子预测单元之间的图像差异度小于预设差异度阈值,则应该跳过2NxN模式的模式检测。
(2)所述编码单元的像素块尺寸为8x8;所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,可以通过如下方式实现:
如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
例如,如果第一预测准确度差值与第二预测准确度差值/>之间的比值小于第三预设阈值,例如,第三预设阈值为0.5,则说明将RECT模式按照垂直方式划分获得Nx2N模式后,其左右两个子预测单元之间的图像差异度小于预设差异度阈值,则应该跳过Nx2N模式的模式检测。
如果第二预测准确度差值与第一预测准确度差值/>之间的比值小于第三预设阈值,例如,第三预设阈值为0.5,则说明将RECT模式按照水平方式划分获得2NxN模式后,其上下两个子预测单元之间的图像差异度小于预设差异度阈值,则应该跳过2NxN模式的模式检测。
以上为根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式的三种方式。
根据上述三种方式对指定帧间预测模式选择目标检测方式后,按照指定帧间预测模式的目标检测方式,计算指定帧间预测模式对应的第二编码代价。
如图15所示,在步骤S1503中,根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式。
本步骤用于根据指定帧间预测模式的目标检测方式,确定指定帧间预测模式是否需要计算第一编码代价。如果指定帧间预测模式不需要执行模式检测,也就是无需对指定帧间预测模式计算第一编码代价,则同样不需要对指定帧间预测模式计算第二编码代价,由此减少了目标帧间预测模式选择过程中指定帧间预测模式的计算量。
如果指定帧间预测模式需要执行模式检测,则将指定帧间预测模式、第一帧间预测模式、第四帧间预测模式作为第一类帧间预测模式。将指定帧间预测模式中的至少一种划分模式的第一编码代价,与第一帧间预测模式的第一编码代价,第四帧间预测模式的第一编码代价进行比较,获得可计算第二编码代价的第一候选帧间预测模式,其中,第一候选帧间预测模式的第一编码代价小于第一类帧间预测模式中除所述第一候选帧间预测模式之外的其他帧间预测模式的第一编码代价。
因为,第一编码代价的计算量小于第二编码代价的计算量,因此,通过减少指定帧间预测模式的第一编码代价计算数量,从而进一步确定是否减少指定帧间预测模式的第二编码代价计算数量。基于此过程,减少目标帧间预测模式选择过程中的计算量,提升目标帧间预测模式的选择速率。
所述根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式,可以通过如下两种方式实现:
情况1:如果所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作,则根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一候选帧间预测模式;将所述第一候选帧间预测模式,第二帧间预测模式,第三帧间预测模式,第五帧间预测模式,作为所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式。
其中,第四帧间预测模式包括帧间AMP模式,第一帧间预测模式包括帧间2Nx2N模式,指定帧间预测模式包括帧间RECT模式。如果指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作,也就是,对指定帧间预测模式不计算第一编码代价,相应的,也不会对指定帧间预测模式计算第二编码代价。因为第四帧间预测模式,第一帧间预测模式和指定帧间预测模式为第一类帧间预测模式。首先在第一类帧间预测模式中选择需要计算第二编码代价的第一候选帧间预测模式,此处,指定帧间预测模式不需要计算第一编码代价,则根据第一帧间预测模式的第一编码代价和第四帧间预测模式的第一编码代价,确定第一候选帧间预测模式。
然后,将第一候选帧间预测模式,第二帧间预测模式,第三帧间预测模式,第五帧间预测模式,作为所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式。其中,第二帧间预测模式包括帧间合并模式和帧间跳跃模式中的至少一种;第三帧间预测模式包括帧间划分模式;第五帧间预测模式包括帧间过程中的帧内模式。
上述过程中,通过步骤S1502确定指定帧间预测模式的目标检测方式为跳过指定帧间预测模式的模式检测,因此通过其他帧间预测模式的第一编码代价确定了省略指定帧间预测模式的第一编码代价的计算量,同时省略了指定帧间预测模式的第二编码代价的计算量。因此,在目标帧间预测模式选择过程中减少了编码代价的计算量,提升了目标帧间预测模式的选择速率。
此外,指定帧间预测模式的目标检测方式还包括对指定帧间预测模式的至少一种划分模式计算第一编码代价。具体如下:
情况2:如果所述指定帧间预测模式的目标检测方式为对所述指定帧间预测模式中的至少一种划分模式执行模式检测,则根据所述至少一种划分模式的第一编码代价,所述第一帧间预测模式的第一编码代价,所述第四帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一类帧间预测模式。
对指定帧间预测模式中的至少一种划分模式执行模式检测,包括如下至少一种情况:
对指定帧间预测模式的第一种划分模式计算第一编码代价;
对指定帧间预测模式的第二种划分模式计算第一编码代价;
对指定帧间预测模式的第一种划分模式和第二种划分模式均计算第一编码代价。
第一类帧间预测模式包括指定帧间预测模式,第一帧间预测模式,第四帧间预测模式。因此,根据指定帧间预测模式的至少一种划分模式的第一编码代价,第一帧间预测模式的第一编码代价,第四帧间预测模式的第一编码代价,确定第一类帧间预测模式中需要计算第二编码代价的第一候选帧间预测模式。
该过程中,如果指定帧间预测模式的至少一种划分模式的第一编码代价小于第一类帧间预测模式中的其他帧间预测模式的第一编码代价,则将指定帧间预测模式的至少一种划分模式作为计算第二编码代价的候选帧间预测模式。
上述过程中,通过步骤S1502确定指定帧间预测模式的目标检测方式为对指定帧间预测模式的至少一种划分模式执行模式检测,因此通过其他帧间预测模式的第一编码代价减少了指定帧间预测模式中需要计算第一编码代价的划分模式种类,减少指定帧间预测模式的第一编码代价计算量。通过第一编码代价的计算减少了指定帧间预测模式的计算量,避免将指定帧间预测模式集中的所有帧间预测模式计算第二编码代价,因此,减少了在目标帧间预测模式选择过程中的编码代价的计算量,提升了目标帧间预测模式的选择速率。
如图15所示,在步骤S1504中,根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
本步骤用于在确定了需要计算第二编码代价的候选帧间预测模式的情况下,对帧间预测模式集中需要计算第二编码代价的各个候选帧间预测模式计算第二编码代价,然后,根据各个候选帧间预测模式的第二编码代价,在帧间预测模式集中选择预测单元的目标帧间预测模式。
第二编码代价为RDCost,RDCost可以表示为RDCost=R+lambdaxD,lambda是一个正常数。RDCost的计算过程中,失真度D的计算需要对预测块与编码块之间的预测残差进行变换处理、量化处理、反量化处理、反变换处理中的至少一种。因此,第二编码代价的计算量大于第一编码代价的计算量,第二编码代价的计算复杂程度高于第一编码代价的计算复杂程度。为了提升帧间预测模式选择过程中的速率,降低编码代价的计算复杂程度,本申请首先根据其他帧间预测模式的第一编码代价,对指定帧间预测模式是否进行第一编码代价的计算过程进行预判。如果判断不需要对指定帧间预测模式进行第一编码代价的计算,或者对指定帧间预测模式的一种划分模式进行第一编码代价,则减少了指定帧间预测模式的第一编码代价的计算量。
在此基础上,在第一类帧间预测模式中,比较指定帧间预测模式、第一帧间预测模式以及第四帧间预测模式,进一步确定第一类帧间预测模式中需要计算第二编码代价的第一候选帧间预测模式。如果第一候选帧间预测模式为其他帧间预测模式或者指定帧间预测模式的其中一种划分模式,其也减少了指定帧间预测模式的第二编码代价的计算量。提升指定帧间预测模式的编码代价计算速率,进而提升目标帧间预测模式的选择速率,提升了编码器对视频数据进行编码的编码速率。
第二实施例
请参考图16,其为本申请第二实施例提供的一种视频编码的帧间预测模式选择装置的示意图。以下结合图16对本申请第二实施例提供的视频编码的帧间预测模式选择装置进行详细描述。其中,第二实施例提供的一种视频编码的帧间预测模式选择装置与第一实施例提供的一种视频编码的帧间预测模式选择方法相对应,其具体描述过程可以参考上述场景实施例以及方法实施例的描述,此处不再赘述。
图16所示的视频编码的帧间预测模式选择装置,包括:
第一编码代价获得单元1601,用于获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;
目标检测方式选择单元1602,用于根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;
候选帧间预测模式选择单元1603,用于根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;
目标帧间预测模式选择单元1604,用于根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
第三实施例
请参考图17,其为本申请第三实施例提供的一种编码方法的流程图。本申请第三实施例提供的编码方法中,针对帧间预测帧的编码方法可以采用本申请第一实施例提供的视频编码的帧间预测模式选择方法获得针对所述帧间预测帧的目标帧间预测模式,编码器根据该目标帧间预测模式对帧间预测帧进行编码处理。因此,第三实施例提供的编码方法与第一实施例和场景实施例对应,其具体描述可以参考上述场景实施例和第一实施例的描述,此处不再赘述。
如图17所示,在步骤S1701中,获得待编码视频帧,确定所述待编码视频帧的编码帧类型。
本步骤用于根据所述待编码视频帧,确定待编码视频帧的编码帧类型。编码帧类型包括帧内编码帧和帧间编码帧。如果是帧间编码帧,编码器对帧间编码帧进行编码过程中,可以根据已编码的编码单元,采用帧间预测模式根据该编码单元进行预测,获得帧间预测单元,作为帧间编码帧。
如图17所示,在步骤S1702中,如果所述待编码视频帧为帧间预测帧,则根据第一实施例提供的一种视频编码的帧间预测模式选择方法确定所述帧间预测帧的目标帧间预测模式,采用所述目标帧间预测模式编码所述帧间预测帧。
本步骤用于根据第一实施例提供的视频编码的帧间预测模式选择方法,在帧间预测模式集中选择针对帧间预测帧的目标帧间预测模式,编码器采用所述目标帧间预测模式对帧间预测帧编码过程中,减少了选择目标帧间预测模式的计算量,降低了目标帧间预测模式的计算复杂程度。在保证编码器对视频进行编码的编码质量的前提下,通过减少指定帧间预测模式的计算量,减少目标帧间预测模式选择过程中的计算量,增加编码码率,降低编码器的压缩性能,提升编码速率。
第四实施例
请参考图18,其为本申请第四实施例提供的一种编码装置的示意图。以下结合图18对本申请第四实施例提供的编码装置进行详细描述。其中,第四实施例提供的一种编码装置与第三实施例提供的一种编码方法相对应,其具体描述过程可以参考上述第三实施例,此处不再赘述。
图18所示的编码装置,包括:
确定单元1801,用于获得待编码视频帧,确定所述待编码视频帧的编码帧类型;
编码单元1802,用于如果所述待编码视频帧为帧间预测帧,则根据第一实施例提供的一种视频编码的帧间预测模式选择方法确定所述帧间预测帧的目标帧间预测模式,采用所述目标帧间预测模式编码所述帧间预测帧。
第五实施例
与本申请第一实施例的方法相对应的,本申请第五实施例还提供一种视频处理装置。如图19所示,图19为本申请第五实施例中提供的一种视频处理装置的示意图。该视频处理装置,包括:编码器1901,至少一个用于存储指令集的存储器1902,至少一个处理器1903;
所述至少一个处理器1903被配置为执行该指令集以使得所述视频处理装置执行:
获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
第六实施例
与本申请第一实施例的方法相对应的,本申请第六实施例还提供一种计算机存储介质。所述计算机存储介质存储有指令集,所述指令集被处理器执行,以使得所述计算机存储介质执行视频编码的帧间预测模式选择方法,所述方法包括:
获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价;根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

Claims (22)

1.一种视频编码的帧间预测模式选择方法,其特征在于,包括:
获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价,所述指定帧间预测模式包括帧间矩形对称划分模式;
根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;所述目标检测方式包括跳过所述指定帧间预测模式的所有划分模式或者其中一种划分模式的模式检测操作,所述模式检测操作为对所述指定帧间预测模式的划分模式计算第一编码代价;
根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;
根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;
其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
2.根据权利要求1所述的方法,其特征在于,所述获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,包括:
获得所述帧间预测模式集中已检测的至少一种其他帧间预测模式的第一编码代价;
其中,所述已检测的至少一种其他帧间预测模式包括帧间预测模式集中模式检测次序位于所述指定帧间预测模式的模式检测次序之前的至少一种其他帧间预测模式。
3.根据权利要求1所述的方法,其特征在于,所述至少一种其他帧间预测模式包括第一帧间预测模式和第二帧间预测模式;
所述根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
4.根据权利要求3所述的方法,其特征在于,所述第一帧间预测模式包括帧间2Nx2N模式;所述第二帧间预测模式包括帧间合并模式和帧间跳跃模式中的至少一种;
所述根据所述第一帧间预测模式的第一编码代价和所述第二帧间预测模式的第一编码代价的比较结果,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值大于第一预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
5.根据权利要求4所述的方法,其特征在于,还包括:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,则根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述第三帧间预测模式包括编码单元帧间划分模式。
6.根据权利要求5所述的方法,其特征在于,所述根据第三帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述编码单元的像素块尺寸大于预测尺寸,则将所述编码单元进行拆分处理,获得4个子编码块;
获得所述4个子编码块的第一编码代价均值;
获得所述4个子编码块的第一编码代价与所述第一编码代价均值之间的第一误差绝对值;
如果所述第一误差绝对值与所述第一编码代价均值之间的比值小于第二预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测操作。
7.根据权利要求6所述的方法,其特征在于,所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;
如果所述第一误差绝对值与所述第一编码代价均值之间的比值大于或等于所述第二预设阈值,则所述方法还包括:
获得所述第一划分模式中所述第一子预测单元的第一编码代价预估值和所述第二子预测单元的第一编码代价预估值之间的第二误差绝对值;
获得所述第二划分模式中所述第三子预测单元的第一编码代价预估值和所述第四子预测单元的第一编码代价预估值之间的第三误差绝对值;
根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二误差绝对值或者所述第三误差绝对值,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述第二误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;
如果所述第三误差绝对值与所述第一编码代价均值之间的比值小于或等于第三预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
9.根据权利要求4所述的方法,其特征在于,还包括:
如果所述第一帧间预测模式的第一编码代价与所述第二帧间预测模式的第一编码代价之间的比值小于或等于第一预设阈值,且对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作时,则根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式。
10.根据权利要求9所述的方法,其特征在于,所述对所述帧间预测模式集中的第三帧间预测模式不执行模式检测操作的判决条件包括如下任意一种条件:
在所述第二帧间预测模式中,所述帧间跳跃模式的第二编码代价小于所述帧间合并模式的第二编码代价;
所述编码单元的像素块尺寸为预设尺寸。
11.根据权利要求9所述的方法,其特征在于,所述根据所述预测单元针对第一帧间预测模式的预测残差,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
将所述预测单元针对所述第一帧间预测模式的预测残差块进行拆分处理,获得4个子预测残差块;
根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
12.根据权利要求11所述的方法,其特征在于,所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
根据所述4个子预测残差块的预测残差,获得所述4个子预测残差块中每个子预测残差块的预测残差均值,以及获得所述4个子预测残差块的预测残差平均值;
获得所述4个子预测残差块中每个子预测残差块的预测残差均值与所述预测残差平均值之间的第四误差绝对值;
根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第四误差绝对值与所述预测残差平均值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述预测单元的像素块尺寸为16x16,且所述第四误差绝对值与所述预测残差平均值之间的比值小于第四预设阈值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测;
如果所述预测单元的像素块尺寸为8x8,且所述第四误差绝对值小于所述预测残差平均值,则所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的模式检测。
14.根据权利要求11所述的方法,其特征在于,所述指定帧间预测模式包括第一划分模式和第二划分模式;所述预测单元按照所述第一划分模式进行划分获得第一子预测单元和第二子预测单元,所述预测单元按照所述第二划分模式进行划分获得第三子预测单元和第四子预测单元;
所述根据所述4个子预测残差块的预测残差,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
根据所述4个子预测残差块的预测残差,获得所述第一划分模式中所述第一子预测单元的预测准确度和所述第二子预测单元的预测准确度之间的第一预测准确度差值,以及获得所述第二划分模式中所述第三子预测单元的预测准确度和所述第四子预测单元的预测准确度之间的第二预测准确度差值;
根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式。
15.根据权利要求14所述的方法,其特征在于,所述编码单元的像素块尺寸为16x16;
所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;
如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第五预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
16.根据权利要求14所述的方法,其特征在于,所述编码单元的像素块尺寸为8x8;
所述根据所述第一预测准确度差值和所述第二预测准确度差值,在所述预测单元的指定帧间预测模式的多个候选检测方式中选择目标检测方式,包括:
如果所述第一预测准确度差值与所述第二预测准确度差值之间的比值小于第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第一划分模式的模式检测;
如果所述第二预测准确度差值与所述第一预测准确度差值之间的比值小于所述第三预设阈值,则所述预测单元的指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式中的第二划分模式的模式检测。
17.根据权利要求7或14所述的方法,其特征在于,所述第一划分模式包括帧间矩形Nx2N模式,所述第二划分模式包括帧间矩形2NxN模式。
18.根据权利要求1所述的方法,其特征在于,所述根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式,包括:
如果所述指定帧间预测模式的目标检测方式为跳过所述指定帧间预测模式的所有划分模式的模式检测操作,则根据第一帧间预测模式的第一编码代价和第四帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一候选帧间预测模式;
将所述第一候选帧间预测模式,第二帧间预测模式,第三帧间预测模式,第五帧间预测模式,作为所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式。
19.根据权利要求18所述的方法,其特征在于,还包括:
如果所述指定帧间预测模式的目标检测方式为对所述指定帧间预测模式中的至少一种划分模式执行模式检测,则根据所述至少一种划分模式的第一编码代价,所述第一帧间预测模式的第一编码代价,所述第四帧间预测模式的第一编码代价,获得用于计算第二编码代价的第一候选帧间预测模式。
20.一种编码方法,其特征在于,包括:
获得待编码视频帧,确定所述待编码视频帧的编码帧类型;
如果所述待编码视频帧为帧间预测帧,则根据权利要求1-19中任意一项所述的方法确定所述帧间预测帧的目标帧间预测模式,采用所述目标帧间预测模式编码所述帧间预测帧。
21.一种视频处理装置,其特征在于,包括:编码器,至少一个用于存储指令集的存储器,至少一个处理器;
所述至少一个处理器被配置为执行该指令集以使得所述视频处理装置执行:
获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价,所述指定帧间预测模式包括帧间矩形对称划分模式;
根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;所述目标检测方式包括跳过所述指定帧间预测模式的所有划分模式或者其中一种划分模式的模式检测操作,所述模式检测操作为对所述指定帧间预测模式的划分模式计算第一编码代价;
根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;
根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
22.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令集,所述指令集被处理器执行,以使得所述计算机存储介质执行视频编码的帧间预测模式选择方法,所述方法包括:
获得帧间预测模式集中除指定帧间预测模式之外的至少一种其他帧间预测模式的第一编码代价,所述第一编码代价是根据未进行预处理的预测残差获得的编码代价,所述指定帧间预测模式包括帧间矩形对称划分模式;
根据所述至少一种其他帧间预测模式的第一编码代价,在所述指定帧间预测模式的多个候选检测方式中选择目标检测方式,所述候选检测方式用于表示所述指定帧间预测模式的多个划分模式中可执行模式检测的划分模式组合类型;所述目标检测方式包括跳过所述指定帧间预测模式的所有划分模式或者其中一种划分模式的模式检测操作,所述模式检测操作为对所述指定帧间预测模式的划分模式计算第一编码代价;
根据所述指定帧间预测模式的目标检测方式,获得所述帧间预测模式集中可计算第二编码代价的至少一种候选帧间预测模式;
根据所述至少一种候选帧间预测模式的第二编码代价,在所述帧间预测模式集中选择目标帧间预测模式,所述第二编码代价是根据已完成预处理的预测残差获得的编码代价;其中,所述编码代价用于评估通过帧间预测模式获得的预测单元的编码质量,所述预测残差为针对编码单元预测的预测单元与所述编码单元之间的像素差异。
CN202311412302.5A 2023-10-27 2023-10-27 一种视频编码的帧间预测模式选择方法及装置 Active CN117156133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311412302.5A CN117156133B (zh) 2023-10-27 2023-10-27 一种视频编码的帧间预测模式选择方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311412302.5A CN117156133B (zh) 2023-10-27 2023-10-27 一种视频编码的帧间预测模式选择方法及装置

Publications (2)

Publication Number Publication Date
CN117156133A CN117156133A (zh) 2023-12-01
CN117156133B true CN117156133B (zh) 2024-02-09

Family

ID=88910370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311412302.5A Active CN117156133B (zh) 2023-10-27 2023-10-27 一种视频编码的帧间预测模式选择方法及装置

Country Status (1)

Country Link
CN (1) CN117156133B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117376551B (zh) * 2023-12-04 2024-02-23 淘宝(中国)软件有限公司 视频编码加速方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103997646A (zh) * 2014-05-13 2014-08-20 北京航空航天大学 一种高清视频编码中快速帧内预测模式选择方法
CN105934948A (zh) * 2013-12-13 2016-09-07 高通股份有限公司 用于3d视频译码中的深度帧内和帧间预测模式的简化深度译码(sdc)的信令
CN110662078A (zh) * 2019-09-28 2020-01-07 杭州当虹科技股份有限公司 适用于avs2和hevc的4k/8k超高清编码帧间编码帧快速算法
WO2020259610A1 (en) * 2019-06-25 2020-12-30 Zhejiang Dahua Technology Co., Ltd. Systems and methods for inter-frame prediction
WO2021196857A1 (zh) * 2020-03-31 2021-10-07 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
WO2022237168A1 (zh) * 2021-05-10 2022-11-17 浙江智慧视频安防创新中心有限公司 一种顺序执行的帧间帧内联合预测编解码的方法及装置
CN116033162A (zh) * 2022-12-30 2023-04-28 中星电子股份有限公司 率失真编码模式的选择方法及装置、编码方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142626B2 (en) * 2014-10-31 2018-11-27 Ecole De Technologie Superieure Method and system for fast mode decision for high efficiency video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105934948A (zh) * 2013-12-13 2016-09-07 高通股份有限公司 用于3d视频译码中的深度帧内和帧间预测模式的简化深度译码(sdc)的信令
CN103997646A (zh) * 2014-05-13 2014-08-20 北京航空航天大学 一种高清视频编码中快速帧内预测模式选择方法
WO2020259610A1 (en) * 2019-06-25 2020-12-30 Zhejiang Dahua Technology Co., Ltd. Systems and methods for inter-frame prediction
CN110662078A (zh) * 2019-09-28 2020-01-07 杭州当虹科技股份有限公司 适用于avs2和hevc的4k/8k超高清编码帧间编码帧快速算法
WO2021196857A1 (zh) * 2020-03-31 2021-10-07 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
WO2022237168A1 (zh) * 2021-05-10 2022-11-17 浙江智慧视频安防创新中心有限公司 一种顺序执行的帧间帧内联合预测编解码的方法及装置
CN116033162A (zh) * 2022-12-30 2023-04-28 中星电子股份有限公司 率失真编码模式的选择方法及装置、编码方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Computationally Efficient IntraandInterModeDecisioninH.264/AVC;Deepa Mathew a, Deepa Mathew , Binish M C , Bijoy A Jose;《Procedia Computer Science》;20200604;全文 *
基于子块残差的快速帧间模式选择算法;李娜;王维哲;;计算机工程(09);全文 *

Also Published As

Publication number Publication date
CN117156133A (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
KR101155767B1 (ko) 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택
KR101495724B1 (ko) 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20140192889A1 (en) Method and an apparatus for decoding a video signal
WO2022104498A1 (zh) 帧内预测方法、编码器、解码器以及计算机存储介质
TW201309036A (zh) 使用亮度成分影像的預測色度成分影像用的裝置與方法
KR20110017783A (ko) 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN117156133B (zh) 一种视频编码的帧间预测模式选择方法及装置
KR20130085392A (ko) 인트라 예측 처리 속도 향상을 위한 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
TW202139709A (zh) 幀間預測方法、編碼器、解碼器及儲存媒介
US20240031576A1 (en) Method and apparatus for video predictive coding
US20230396780A1 (en) Illumination compensation method, encoder, and decoder
CN110971897B (zh) 色度分量的帧内预测模式的编码、解码方法、设备和系统
WO2022116119A1 (zh) 一种帧间预测方法、编码器、解码器及存储介质
CN113992911A (zh) 全景视频h264编码的帧内预测模式确定方法和设备
CN112449181B (zh) 一种编解码方法、装置及其设备
WO2020258052A1 (zh) 图像分量预测方法、装置及计算机存储介质
Zhao et al. A novel fast intra-prediction algorithm for high-efficiency video coding based on structural similarity
KR101576200B1 (ko) 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2022266971A1 (zh) 编解码方法、编码器、解码器以及计算机存储介质
KR20130049707A (ko) 인트라 예측 방법 및 장치
CN111669581B (zh) 视频编码方法及其相关装置
WO2023197193A1 (zh) 编解码方法、装置、编码设备、解码设备以及存储介质
KR101775031B1 (ko) 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR102040316B1 (ko) 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2020258053A1 (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