CN116137658A - 视频编码方法及装置 - Google Patents

视频编码方法及装置 Download PDF

Info

Publication number
CN116137658A
CN116137658A CN202111363226.4A CN202111363226A CN116137658A CN 116137658 A CN116137658 A CN 116137658A CN 202111363226 A CN202111363226 A CN 202111363226A CN 116137658 A CN116137658 A CN 116137658A
Authority
CN
China
Prior art keywords
frame
quantization parameter
video
value
prediction loss
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.)
Pending
Application number
CN202111363226.4A
Other languages
English (en)
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.)
Beijing Ape Power Future Technology Co Ltd
Original Assignee
Beijing Ape Power Future Technology 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 Beijing Ape Power Future Technology Co Ltd filed Critical Beijing Ape Power Future Technology Co Ltd
Priority to CN202111363226.4A priority Critical patent/CN116137658A/zh
Publication of CN116137658A publication Critical patent/CN116137658A/zh
Pending legal-status Critical Current

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

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是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
视频编码:在视频传输的过程中,如果不对视频进行压缩,现有的带宽无法满足视频传输需求,因此需要对视频进行压缩,而视频压缩的过程就是视频编码。更具体的说,编码就是按指定的方法,将信息从一种形式(格式),转换成另一种形式(格式)的技术。视频编码是指运用数据压缩技术将数字视频信号中的冗余信息去除,将原始视频格式的文件转换成另一种视频格式文件,以降低表示原始视频所需的码率,方便视频数据的传输与存储的一种技术。
码率:视频文件在单位时间内使用的数据流量,简称为码率,是视频编码中画面质量控制最重要的部分。一般来说,在同样的分辨率下,视频的码率越大,压缩比和失真程度就越小,画面质量就越高。
码率控制:视频编码是一个有损编码的过程,视频编码的目标是在尽可能节省码率的同时保证视频的主观质量,而码率控制是平衡码率和主观质量的一个重要工具。
量化:是指将信号的连续取值(或大量可能的离散取值)映射为有限多个离散值的过程,实现信号取值多对一的映射。在视频/图像编码中,残差信号经过DCT后,变换系数往往具有较大的动态范围,因此对变换系数进行量化可以有效地减小信号取值空间,获得更好的压缩效果。
量化参数(QP):在量化的过程中,量化参数是用于控制变量离散幅度的重要参数,也是影响视频码率和压缩程度的主要因素。量化参数是量化过程中选取的将连续的取值离散化的阈值,它反映了空间细节压缩情况,如QP小,大部分的细节都会被保留;QP增大,一些细节丢失,码率降低,但图像失真加强和质量下降。也就是说,QP和比特率成反比的关系,而且随着视频源复杂度的提高,这种反比关系会更明显。码率控制的核心就是确定宏块的QP。
宏块(Macroblock,MB):在对一帧图像进行量化参数选择时,通常以一个固定大小的滑动窗口为单位,而被这个滑动窗口框起来的像素块,即为一个宏块。宏块是编码处理的基本单元,通常宏块大小为16x16个像素。一个编码图像首先要划分成多个块(4x4像素)才能进行处理,显然宏块应该由整数个块组成。宏块分为I、P、B宏块:I宏块(帧内预测宏块)只能利用当前片中已解码的像素作为参考进行帧内预测;P宏块(帧间预测宏块)可以利用前面已解码的图像作为参考图像进行帧内预测;B宏块(帧间双向预测宏块)则是利用前后向的参考图像进行帧内预测。
基础量化参数:根据编码帧的特性计算得到的,作为宏块量化的初始值。
量化参数偏移值:根据宏块的特性计算得到的,用于修正基础量化参数。
MBTree:使用未来编码帧信息计算宏块的量化参数偏移值的一种计算方法。
JND:Just Noticeable Distortion,恰好可感知失真。JND用于表示人眼不能察觉的最大图像失真,或恰好可察觉时的图像失真值,体现了人眼对图像改变的容忍度。
帧内预测损失:编码使用帧内预测技术时的编码失真值。
帧间预测损失:编码使用帧间预测技术时的编码失真值。
编码帧类型:编码帧通常分为3种类型如下:
I帧(Intra Frame,内部编码帧)亦称为关键帧,是一种自带全部信息的独立帧,无需参考其他视频帧便可独立进行解码,采取帧内预测的方式编码,不参考其他帧,通常编码质量较高,压缩效率较低,视频序列中的第一个视频帧始终都是I帧,如果所传输的比特流遭到破坏,则需要将I帧用作新查看器的起始点或者重新同步点,I帧可以用来实现快进、快退以及其他随机访问功能,如果新的客户端将参与查看码流,编码器将以相同的时间间隔或者根据要求自动插入I帧,I帧的缺点在于会占用更多的数据位,但从另一方面看,I帧不会产生可觉察的模糊现象。
P帧(Predicted Frame,帧间预测编码帧),通过参考前向的I帧或前向的其他P帧,采用帧内与帧间预测结合的方式编码,压缩效率较I帧更高,P帧通常占用更少的数据位,但由于P帧对前面的P帧和I帧有着复杂的依赖性,因而对传输错误非常敏感。
B帧(Bi-predictive Frame,双向预测编码帧),可参考前向与后向的帧进行预测编码,压缩效率最高。
SSIM:图像结构相似性(Structural Similarity)是一种计算两张图像之间结构相似性的方法,在视频编码中主要用于评估视频编码中每一张图像压缩之后的质量。
PSNR:峰值信噪比(Peak Signal to Noise Ratio)即峰值信号的能量与噪声之间的平均能量之比,是视频编码中用于评估每一张图像编码质量的常用的客观指标。
需要说明的是,随着计算机技术、通信技术和网络技术的快速发展,各种各样的视频层出不穷,观看视频已成为人们休闲娱乐的重要方式。由于视频的数据量非常大,所以需要使用视频编码技术对视频进行压缩,方便其传输和存储。视频编码是一个有损压缩的过程,解码之后的视频和原始视频并不一致,所以如何均衡视频质量和压缩损失是视频编码的研究重点,其中的码率控制是一种能充分考虑带宽、延迟和视频质量的重要技术。
码率控制是一种合理分配、充分利用比特的技术。在视频编码过程中,根据当前需要编码的编码帧的特征,编码器分配一定的比特。然后,根据码率控制模型计算出编码帧的基础量化参数,随后编码器将编码帧分成特定大小的宏块,码率控制算法再根据宏块的特征计算出量化参数偏移值,叠加加到基础量化参数之上,作为宏块的最终量化参数。
现有技术中,可以计算视频帧内的纹理特征和运动特征,通过k-medoids聚类的方法调整量化参数,然而此方法计算量大,分类到量化参数的映射不平滑,导致计算量化参数的效率和准确度较差;或者,还可以先计算宏块的初始量化参数,然后计算该宏块的恰好可感知失真(JND),基于计算得到的恰好可感知失真(JND)对初始量化参数进行调整,获得最终的量化参数,基于该量化参数对该宏块进行编码整,此方法中恰好可感知失真(JND)计算复杂,且不能有效的利用空域和时域的特征,导致计算量化参数的效率和准确度也较差,进而导致对视频进行编码的效果较差。
本说明书实施例中提供了码率控制过程中一种新的量化参数偏移值计算方法,该方法结合视频帧类型对应的预测系数,以及视频帧的帧内预测损失、帧间预测损失和运动向量计算宏块的量化参数偏移值,充分考虑了视频帧间的内容变化和帧内的纹理特征,具有计算简单,内容自适应的特点,并且在同等质量下能够降低码率,其中,视频质量可以使用SSIM和PSNR表示。
在本说明书中,提供了一种视频编码方法,本说明书同时涉及一种视频编码装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例提供的一种视频编码方法的流程图,具体包括以下步骤:
步骤102:根据第一视频帧的帧类型,确定对应的目标预测系数。
具体的,第一视频帧是当前待编码的视频帧,目标预测系数是第一视频帧的帧类型对应的预测系数,目标预测系数可以用于后续量化参数偏移值的计算,目标预测系数可以包括后续计算量化参数偏移值时涉及到的各个计算因子对应的系数。
需要说明的是,视频帧的帧类型可以包括I帧、P帧和B帧,不同类型的视频帧的特点不同,对于编码的需求也不同,如对于I帧来说,通常要求编码质量较高,压缩效率较低;对于P帧来说,需要采用帧内与帧间预测结合的方式编码,压缩效率较I帧更高;对于B帧来说,需要参考前向与后向的帧进行预测编码,压缩效率最高。
实际应用中,可以预先针对不同类型的视频帧,拟合出不同的预测系数,然后将各个帧类型和对应的预测系数对应存储,后续可以直接基于当前等待编码的视频帧的帧类型,从预先存储的对应关系中获取到对应的目标预测系数,以用于量化参数偏移值的计算。如此,不同类型的视频帧中的宏块能够以不同的系数计算量化参数偏移值,基于宏块所处视频帧的类型,分类型计算量化参数偏移值,充分考虑了不同类型的视频帧的特点。
本实施例一个可选的实施方式中,可以预先通过测试集中的各个类型的视频帧拟合出不同帧类型对应的预测系数,并将视频帧的帧类型和拟合出的预测系数对应存储,也即根据第一视频帧的帧类型,确定对应的目标预测系数之前,还可以包括:
获取第二视频帧中第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量,其中,第二视频帧为测试集中目标帧类型的任一视频帧,测试集包括至少一种帧类型的视频帧;
获取第二宏块的参考量化参数偏移值;
根据第二帧内预测损失值、第二帧间预测损失值、第二运动向量以及参考量化参数偏移值,构造目标帧类型的预测系数拟合约束;
根据预测系数拟合约束,确定目标帧类型对应的预测系数,将预测系数与目标帧类型对应存储。
具体的,第二视频帧可以是测试集中目标帧类型的任一视频帧,第二宏块是第二视频帧中的任一宏块。其中,测试集可以是预先搜集到的大量视频帧的集合,通过测试集中各种帧类型的视频帧,可以拟合得到对应的预测系数。
另外,第二帧内预测损失值是指第二宏块所处的第二视频帧的帧内预测损失;第二帧间预测损失值是指第二宏块所处的第二视频帧与其他视频帧的帧间预测损失,该帧间预测损失可以包括与前向视频帧的帧间预测损失,也可以包括与前向、后向视频帧的帧间预测损失。
需要说明的是,视频编码中做帧间预测时,会有一个运动估计,针对第二视频帧中的第二宏块,可以估计前一视频帧中和第二宏块最接近的预估宏块,将该预估宏块作为第二宏块在前一视频帧中的位置,预估宏块到第二宏块的运动情况即第二宏块的运动向量,也即运动向量可以是指第二宏块从前一视频帧中的位置运动到第二视频帧中所处位置之间的运动情况,如对于二维来说,该运动向量可以包括横向运动分量和纵向运动分量,对于三维来说,该运动向量可以包括横向运动分量、纵向运动分量和深度运动分量。
实际应用中,编码器可以对视频流进行一次实际的编码,在编码过程中,编码器可以输出第二帧内预测损失值、第二帧间预测损失值和第二运动向量。也就是说,第二帧内预测损失值、第二帧间预测损失值和第二运动向量可以是MBTree算法的中间输出值,通过MBTree算法的中间输出值,可以获取到第二帧内预测损失值、第二帧间预测损失值和第二运动向量,对于获取不到的参数,可以设置为0。
需要说明的是,MBTree算法的具体作用原理是:根据该宏块在帧间预测中贡献给未来帧(在编码顺序里位于当前帧之后的帧)的信息,即被参考的情况,来调整该宏块的量化参数值。简言之,如果该宏块贡献给后续帧的信息越多,则其重要性越高,应当提高该区域的编码质量,减少量化参数值,反之,则增大该区域的量化参数值。
具体实现时,如果要知道第一宏块对未来视频帧的贡献程度,则需要从未来视频帧反推有多少信息是来自于当前第一宏块的,由于未来视频帧还没有被编码,需要通过前向预测(lookahead)来进行预测。前向预测通过对一定数量的未编码帧做快速运动估计,对这些帧的编码代价进行预估。经过前向预测可以得到未编码帧的如下参数的估计值:帧类型、每个宏块的类型和运动向量,帧内编码和帧间编码的SATD值(Sum of AbsoluteTransformed Difference,阿达马变换后再取绝对值求和),该帧内编码和帧间编码的SATD值即为帧内预测损失值和帧间预测损失值。
进一步地,获取到第二帧内预测损失值、第二帧间预测损失值和第二运动向量之后,还可以进一步基于帧内预测损失阈值、帧间预测损失阈值和运动向量阈值,筛除第二帧内预测损失值、第二帧间预测损失值和第二运动向量中的异常值,以保证后续量化参数偏移值的确定准确率。
其中,帧内预测损失阈值、帧间预测损失阈值和运动向量阈值可以是预先基于实验或经验设置的数值。需要说明的是,此处的帧内预测损失阈值、帧间预测损失阈值和运动向量阈值可以设置的与后续去除第一帧内预测损失值、第一帧间预测损失值和第一运动向量中异常值而设置的阈值相同。
也就是说,可以预先设置帧内预测损失阈值、帧间预测损失阈值和运动向量阈值,帧内预测损失阈值用于确定获取到的第一帧内预测损失值或第二帧内预测损失值是否正常,帧间预测损失阈值用于确定获取到的第一帧间预测损失值或第二帧间预测损失值是否正常,运动向量阈值用于确定获取到的第一运动向量或第二运动向量是否异常。
一种可能的实现方式中,获取第二宏块的参考量化参数偏移值,具体实现过程可以如下:
根据预设强度系数、第二帧内预测损失值和传播损失值,计算参考量化参数偏移值;
其中,传播损失值根据第二帧内预测损失值、第二帧间预测损失值和传播累计值计算得到。
需要说明的是,预设强度系数可以是指预先设置为数值,通常设置为常量。实际应用中,可以通过如下公式(1)和公式(2),计算参考量化参数偏移值:
QP_offset_mbtree=-strength*log2((intra_cost+propagate_cost)/intra_cost) (1)
propagate_cost=∑(weight*(intra_cost+propagate_in)*(intra_cost-min(intra_cost,inter_cost))/intra_cost) (2)
其中,QP_offset_mbtree是参考量化参数偏移值,strength是预设强度系数,intra_cost是第二帧内预测损失值,propagate_cost是第二宏块累积的传播损失值,通过累积计算可以得到。weight是根据参考像素数占比计算的权重系数,inter_cost是第二帧间预测损失值,propagate_in是参考第二宏块的宏块的propagate_cost。
需要说明的是,上述参考量化参数偏移值的计算过程是基于MBTree算法反向传播计算得到的偏移值,当然,实际应用中,也可以不通过MBTree算法获取参考量化参数偏移值,而是采用大量编码实验,获取理想的参考量化参数偏移值。
一种可能的实现方式中,基于MBTree算法可以获取到第二帧内预测损失值、第二帧间预测损失值和第二运动向量,以及参考量化参数偏移值,获取到上述参数后,可以通过如下公式(3)和公式(4)构造目标帧类型的预测系数拟合约束:
αt×intra_costtki2t×inter_costtki2t×mv_totaltki2t=QP_offset_mbtreetki2 (3)
mv_totaltki2=|mvxtki2|+|mvytki2| (4)
其中,t为目标帧类型,αt、βt、γt、θt为等待拟合的目标帧类型对应的预测系数,αt表示帧内预测损失系数,βt表示帧间预测损失系数,γt表示运动向量系数,θt表示偏移系数,intra_costtki2为第二帧内预测损失值,inter_costtki2为第二帧间预测损失值,mv_totaltki2为基于第二运动向量计算得到的第二中间结果,mvxtki2为第二运动向量的横向运动分量,mvytki2为第二运动向量的纵向运动分量,QP_offset_mbtreetki为参考量化参数偏移值。
实际应用中,可以利用最小二乘法计算得到上述预测系数拟合约束中的线性拟合系数(αt,βt,γt,θt)。当然,在实际实现时,还可以采用其他参数估计和拟合的算法,如最大似然算法等;除了通过线性拟合外,还可以加入指数、幂函数等进行非线性拟合,得到非线性的预测系数,本说明书实施例对此不进行限制。
需要说明的是,测试集中包括不同帧类型的视频帧,从测试集中任意选择一个目标帧类型的视频帧作为第二视频帧,通过拟合操作,确定目标帧类型对应的预测系数,将预测系数与目标帧类型对应存储。之后,可以继续选择测试集中其他帧类型的视频帧作为第二视频帧,拟合获取其他视频帧对应的预测系数。如此类推,直至测试集中各个帧类型的视频帧均拟合获得对应的预测系数,后续对视频帧进行编码时,可以直接获取待编码的帧类型对应的目标预测系数,进行量化参数偏移值的计算。
示例的,帧类型和预测系数之间的对应关系可以如下表1所示,假设第一视频帧的帧类型为I类型,则可以确定对应的目标预测系数为(αt,βt,γt,θt)。
表1帧类型和预测系数之间的对应关系表
帧类型 预测系数
I类型 t,βt,γt,θt)
P类型 z,βz,γz,θz)
B类型 w,βw,γw,θw)
本说明书实施例中可以预先基于测试集包括的各个帧类型的视频帧,采用最小二乘法线性拟合出对应的预测系数,拟合过程简单易实现,使得不同类型的视频帧可以对应于不同的预测系数,从而使得后续不同类型的视频帧可以基于不同的预测系数,确定对应的量化参数以进行编码,充分考虑了不同类型的视频帧的特点。
本实施例一个可选的实施方式中,在基于测试集中包括的各个帧类型的视频帧,拟合得到对应的预测系数之前,还可以先构造测试集,也即获取第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量之前,还可以包括:
获取测试视频数据;
从测试视频数据中获取至少一个视频帧,并确定至少一个视频帧的帧类型;
将获取到的各个视频帧组合为测试集,测试集中包括的各个视频帧携带对应的帧类型。
实际应用中,可以预先基于网络获取到测试视频数据,测试视频数据中可以包括多个视频流,从各个视频流中截取视频帧,将截取到的视频帧组合成测试集,其中,从各个视频流截取视频帧时,不限制从每个视频流中截取的视频帧的帧类型和个数,均可以随机截取。
需要说明的是,一般来说标准定义的帧类型,一般都包括I帧、P帧和B帧,但是在具体的业务场景中,每个视频流不一定都使用这3种类型的视频帧,比如在低延迟直播业务中,经常不使用B帧,来降低延迟。
本说明书实施例中,由于后续需要基于测试集中不同帧类型的视频帧,拟合出不同帧类型的视频帧对应的预测系数,即对于测试集中视频帧的操作需要参考视频帧的帧类型,因而测试集中包括的每个视频帧均可以携带对应的帧类型,以供拟合相应帧类型的预测系数使用。
步骤104:获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量。
具体的,根据第一视频帧的帧类型,确定对应的目标预测系数的基础上,进一步地,可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量。其中,第一宏块可以是指第一视频帧中当前待编码的宏块。
另外,第一帧内预测损失值是指第一宏块所处的第一视频帧的帧内预测损失;第一帧间预测损失值是指第一宏块所处的第一视频帧与其他视频帧的帧间预测损失,该帧间预测损失可以包括与前向视频帧的帧间预测损失,也可以包括与前向、后向视频帧的帧间预测损失
实际应用中,编码器也可以先对第一视频帧进行一次实际的编码,在编码过程中,编码器可以输出第一帧内预测损失值、第一帧间预测损失值和第一运动向量。也就是说,第一帧内预测损失值、第一帧间预测损失值和第一运动向量也可以是MBTree算法的中间输出值,通过MBTree算法的中间输出值,可以获取到第一帧内预测损失值、第一帧间预测损失值和第一运动向量,对于获取不到的参数,可以设置为0。
本说明书实施例中,可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量,后续便可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,以确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
步骤106:根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值。
具体的,在获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量的基础上,进一步地,可以根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值。
本实施例一个可选的实施方式中,第一运动向量可以包括多个分量,因而可以先基于第一运动向量,合并各个分量得到第一中间结果,再基于第一中间结果,计算第一宏块的量化参数偏移值,也即根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值,具体实现过程可以如下:
确定第一运动向量的各个分量的绝对值之和,将绝对值之和作为第一中间结果;
根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一中间结果,确定第一宏块的量化参数偏移值。
实际应用中,可以通过如下公式(5)确定第一中间结果:
mv_totaltki1=|mvxtki1|+|mvytki1| (5)
其中,mv_totaltki1表示第一中间结果,mvxtki1表示第一运动向量的横向运动分量,mvytki1表示第一运动向量的纵向运动分量。
需要说明的是,第一运动向量可以包括多个分量,在基于第一运动向量计算第一宏块的量化参数偏移值时,可以先将第一运动向量的各个分量进行合并,得到第一中间结果,后续直接基于第一中间结果,计算第一宏块的量化参数偏移值。
本实施例一个可选的实施方式中,目标预测系数可以包括计算量化参数偏移值时涉及到的各个计算因子对应的系数,即目标预测系数包括帧内预测损失系数、帧间预测损失系数、运动向量系数以及偏移系数,此时根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一中间结果,确定第一宏块的量化参数偏移值,具体实现过程可以如下:
基于第一帧内预测损失值和帧内预测损失系数、第一帧间预测损失值和帧间预测损失系数、第一中间结果和运动向量系数,以及偏移系数,确定第一宏块的量化参数偏移值。
实际应用中,可以通过如下公式(6)确定第一宏块的量化参数偏移值:
QP_offset_modeltki
=αt×intra_costtki1t×inter_costtki1t×mv_totaltki1t (6)
其中,QP_offset_modeltki表示第一宏块的量化参数偏移值,intra_costtki1表示第一帧内预测损失值,inter_costtki1表示第一帧间预测损失值,mv_totaltki1表示基于第一运动向量计算得到的第一中间结果,αt、βt、γt和θt为第一视频帧的帧类型对应的目标预测系数,其中,αt表示帧内预测损失系数,βt表示帧间预测损失系数,γt表示运动向量系数,θt表示偏移系数。
本说明书实施例中,可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,以确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
本实施例一个可选的实施方式中,还可以先去除获取到的第一帧内预测损失值、第一帧间预测损失值和第一运动向量中的异常值,再确定第一宏块的量化参数偏移值,也即根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值之前,还可以包括:
根据第一帧内预测损失值对应的帧内预测损失阈值、第一帧间预测损失值对应的帧间预测损失阈值和第一运动向量对应的运动向量阈值,筛除第一帧内预测损失值、第一帧间预测损失值和第一运动向量中的异常值。
需要说明的是,帧内预测损失阈值、帧间预测损失阈值和运动向量阈值可以是预先基于实验或经验设置的数值,此处的帧内预测损失阈值、帧间预测损失阈值和运动向量阈值可以设置的与上述去除第二帧内预测损失值、第二帧间预测损失值和第二运动向量中异常值而设置的阈值相同。
实际应用中,针对获取到的第一帧内预测损失值,可以确定第一帧内预测损失值是否大于帧内预测损失阈值,若大于,则说明获取到的第一帧内预测损失值异常,去除该数值,重新获取,或者置为0;若不大于,则说明获取到的第一帧内预测损失值正常,可以用于后续量化参数偏移值的计算。针对获取到的第一帧间预测损失值,可以确定第一帧间预测损失值是否大于帧间预测损失阈值,若大于,则说明获取到的第一帧间预测损失值异常,去除该数值,重新获取,或者置为0;若不大于,则说明获取到的第一帧间预测损失值正常,可以用于后续量化参数偏移值的计算。针对获取到的第一运动向量,可以确定第一运动向量是否大于运动向量阈值,若大于,则说明获取到的第一运动向量异常,去除该数值,重新获取,或者置为0;若不大于,则说明获取到的第一运动向量正常,可以用于后续量化参数偏移值的计算。
本说明书实施例中,获取到第一帧内预测损失值、第一帧间预测损失值和第一运动向量之后,还可以进一步基于帧内预测损失阈值、帧间预测损失阈值和运动向量阈值,筛除第一帧内预测损失值、第一帧间预测损失值和第一运动向量中的异常值,保证了后续用于计算量化参数偏移值的数值都是正常数值,进而保证了后续量化参数偏移值的确定准确率。
步骤108:基于量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定第一宏块的目标量化参数,并根据目标量化参数对第一宏块进行编码。
具体的,根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值的基础上,进一步地,可以基于量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定第一宏块的目标量化参数,并根据目标量化参数对第一宏块进行编码。
需要说明的是,确定出第一宏块的量化参数偏移值之后,可以获取第一视频帧的基础量化参数值,然后在第一视频帧的基础量化参数值上叠加确定出的量化参数偏移值,即可得到第一宏块最终的目标量化参数,并基于该目标量化参数对第一宏块进行编码。
实际应用中,可以通过如下公式(7)确定第一宏块的目标量化参数:
QPtki=QP_basetki+QP_offset_modeltki (7)
其中,QPtki表示第一宏块的目标量化参数,QP_basetki表示第一视频帧的基础量化参数值,QP_offset_modeltki表示第一宏块的量化参数偏移值。
本说明书实施例中,可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量,从而可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,并确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
本实施例一个可选的实施方式中,由于在确定第一宏块的目标量化参数时,需要结合第一视频帧的基础量化参数值,因而还可以预先获取第一视频帧的基础量化参数值,也即基于量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定第一宏块的目标量化参数之前,还可以包括:
获取第一视频帧的基础量化系数和初始偏移值;
根据基础量化系数和初始偏移值,确定第一视频帧的基础量化参数值。
需要说明的是,第一视频帧的基础量化参数值由两部分构成,其一为基础量化系数,该基础量化系数可以由码率控制算法在每个视频帧编码开始前计算得到;其二为初始偏移值,该初始偏移值是每个宏块的初始量化参数偏移值,初始时可以使用传统的自适应量化算法(AQ)计算,也可以设为0。
实际应用中,可以通过如下公式(8)确定第一视频帧的基础量化参数值:
QP_basetki=QPk+QP_offset (8)
其中,QP_basetki表示第一视频帧的基础量化参数值,QPk表示基础量化系数,QP_offset表示初始偏移值。
本实施例一个可选的实施方式中,获取第一视频帧的基础量化系数,具体实现过程可以如下:
确定第一视频帧之前的目标视频帧;
对目标视频帧的复杂度进行滤波处理,获得滤波结果;
获取第一视频帧的目标码率和实际码率之间的偏差值;
根据滤波结果和偏差值,确定第一视频帧的基础量化系数。
实际应用中,可以通过如下公式(9)确定第一视频帧的基础量化系数:
QPk=pow(blurred_complexity,1-qcompress)/rate_factor (9)
其中,QPk表示第一视频帧的基础量化系数,pow表示求幂运算,blurred_complexity表示第一视频帧之前的目标视频帧的复杂度的滤波结果,qcompress表示预设系数,rate_factor表示第一视频帧的目标码率和实际码率之间的偏差值。
本说明书提供的视频编码方法,可以先基于第一视频帧的帧类型,确定对应的目标预测系数,然后可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量,后续基于目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,可以确定第一宏块的量化参数偏移值,进而确定第一宏块的目标量化参数,并基于该目标量化参数对第一宏块进行编码。这种情况下,基于第一视频帧对应的目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,即可确定出第一宏块的量化参数偏移值,以最终确定出对应的目标量化参数,无需通过复杂算法,简化了量化参数的确定过程,从而可以提高确定量化参数的效率;另外,不同的帧类型可以对应有不同的预测系数,也即不同类型的视频帧可以基于不同的预测系数,确定对应的量化参数以进行编码,充分考虑了不同类型的视频帧的特点。如此,可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,以确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
图2示出了本说明书一实施例提供的一种预测系数的拟合流程图,具体包括以下步骤:
步骤202:获取测试视频数据,从测试视频数据中获取至少一个视频帧,并确定至少一个视频帧的帧类型,将获取到的各个视频帧组合为测试集。
其中,测试集中包括的各个视频帧携带对应的帧类型。
步骤204:设置帧内预测损失阈值、帧间预测损失阈值和运动向量阈值。
步骤206:获取第二视频帧中第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量。
其中,第二视频帧为测试集中目标帧类型的任一视频帧,测试集包括至少一种帧类型的视频帧。
步骤208:获取第二宏块的参考量化参数偏移值。
步骤210:根据帧内预测损失阈值、帧间预测损失阈值和运动向量阈值,筛除第二帧内预测损失值、第二帧间预测损失值和第二运动向量中的异常值。
需要说明的是,步骤204只需在步骤210之前执行即可,与其他步骤之间的执行先后顺序不进行限定。
步骤212:确定第二运动向量的各个分量的绝对值之和,将该绝对值之和作为第二中间结果。
步骤214:根据第二帧内预测损失值、第二帧间预测损失值、第二中间结果以及参考量化参数偏移值,构造目标帧类型的预测系数拟合约束。
步骤216:利用最小二乘法,根据预测系数拟合约束,确定目标帧类型对应的预测系数。
步骤218:将预测系数与目标帧类型对应存储。
本说明书实施例中可以预先基于测试集包括的各个帧类型的视频帧,采用最小二乘法线性拟合出对应的预测系数,拟合过程简单易实现,使得不同类型的视频帧可以对应于不同的预测系数,从而使得后续不同类型的视频帧可以基于不同的预测系数,确定对应的量化参数以进行编码,充分考虑了不同类型的视频帧的特点。
图3示出了本说明书一实施例提供的另一种视频编码方法的流程图,具体包括以下步骤:
步骤302:获取第一宏块所在第一视频帧的基础量化参数值。
步骤304:根据第一视频帧的帧类型,确定对应的目标预测系数。
步骤306:设置帧内预测损失阈值、帧间预测损失阈值和运动向量阈值。
步骤308:获取第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量。
步骤310:根据帧内预测损失阈值、帧间预测损失阈值和运动向量阈值,筛除第一帧内预测损失值、第一帧间预测损失值和第一运动向量中的异常值。
需要说明的是,步骤306只需在步骤310之前执行即可,与其他步骤的执行先后顺序并不限定。
步骤312:确定第一运动向量的各个分量的绝对值之和,将绝对值之和作为第一中间结果。
步骤314:根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一中间结果,确定第一宏块的量化参数偏移值。
步骤316:基于量化参数偏移值,以及第一视频帧的基础量化参数值,确定第一宏块的目标量化参数,并根据目标量化参数对第一宏块进行编码。
本说明书提供的视频编码方法,可以先基于第一视频帧的帧类型,确定对应的目标预测系数,然后可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量,后续基于目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,可以确定第一宏块的量化参数偏移值,进而确定第一宏块的目标量化参数,并基于该目标量化参数对第一宏块进行编码。这种情况下,基于第一视频帧对应的目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,即可确定出第一宏块的量化参数偏移值,以最终确定出对应的目标量化参数,无需通过复杂算法,简化了量化参数的确定过程,从而可以提高确定量化参数的效率;另外,不同的帧类型可以对应有不同的预测系数,也即不同类型的视频帧可以基于不同的预测系数,确定对应的量化参数以进行编码,充分考虑了不同类型的视频帧的特点。如此,可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,以确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
与上述方法实施例相对应,本说明书还提供了视频编码装置实施例,图4示出了本说明书一实施例提供的一种视频编码装置的结构示意图。如图4所示,该装置包括:
预测系数确定模块402,被配置为根据第一视频帧的帧类型,确定对应的目标预测系数;
获取模块404,被配置为获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量;
偏移值确定模块406,被配置为根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值;
量化参数确定模块408,被配置为基于量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定第一宏块的目标量化参数,并根据目标量化参数对第一宏块进行编码。
可选地,偏移值确定模块406进一步被配置为:
确定第一运动向量的各个分量的绝对值之和,将绝对值之和作为第一中间结果;
根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一中间结果,确定第一宏块的量化参数偏移值。
可选地,目标预测系数包括帧内预测损失系数、帧间预测损失系数、运动向量系数以及偏移系数;
偏移值确定模块406进一步被配置为:
基于第一帧内预测损失值和帧内预测损失系数、第一帧间预测损失值和帧间预测损失系数、第一运动向量和运动向量系数,以及偏移系数,确定第一宏块的量化参数偏移值。
可选地,该装置还包括筛除模块,被配置为:
根据第一帧内预测损失值对应的帧内预测损失阈值、第一帧间预测损失值对应的帧间预测损失阈值和第一运动向量对应的运动向量阈值,筛除第一帧内预测损失值、第一帧间预测损失值和第一运动向量中的异常值。
可选地,该装置还包括存储模块,被配置为:
获取第二视频帧中第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量,其中,第二视频帧为测试集中目标帧类型的任一视频帧,测试集包括至少一种帧类型的视频帧;
获取第二宏块的参考量化参数偏移值;
根据第二帧内预测损失值、第二帧间预测损失值、第二运动向量以及参考量化参数偏移值,构造目标帧类型的预测系数拟合约束;
根据预测系数拟合约束,确定目标帧类型对应的预测系数,将预测系数与目标帧类型对应存储。
可选地,存储模块进一步被配置为:
根据预设强度系数、第二帧内预测损失值和传播损失值,计算参考量化参数偏移值;
其中,传播损失值根据第二帧内预测损失值、第二帧间预测损失值和传播累计值计算得到。
可选地,存储模块进一步被配置为:
获取测试视频数据;
从测试视频数据中获取至少一个视频帧,并确定至少一个视频帧的帧类型;
将获取到的各个视频帧组合为测试集,测试集中包括的各个视频帧携带对应的帧类型。
可选地,该装置还包括基础量化参数值确定模块,被配置为:
获取第一视频帧的基础量化系数和初始偏移值;
根据基础量化系数和初始偏移值,确定第一视频帧的基础量化参数值。
可选地,基础量化参数值确定模块进一步被配置为:
确定第一视频帧之前的目标视频帧;
对目标视频帧的复杂度进行滤波处理,获得滤波结果;
获取第一视频帧的目标码率和实际码率之间的偏差值;
根据滤波结果和偏差值,确定第一视频帧的基础量化系数。
本说明书提供的视频编码装置,可以先基于第一视频帧的帧类型,确定对应的目标预测系数,然后可以获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量,后续基于目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,可以确定第一宏块的量化参数偏移值,进而确定第一宏块的目标量化参数,并基于该目标量化参数对第一宏块进行编码。这种情况下,基于第一视频帧对应的目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,即可确定出第一宏块的量化参数偏移值,以最终确定出对应的目标量化参数,无需通过复杂算法,简化了量化参数的确定过程,从而可以提高确定量化参数的效率;另外,不同的帧类型可以对应有不同的预测系数,也即不同类型的视频帧可以基于不同的预测系数,确定对应的量化参数以进行编码,充分考虑了不同类型的视频帧的特点。如此,可以联合使用第一视频帧的帧类型对应的预测系数,以及第一视频帧的帧内预测损失、帧间预测损失以及运动向量,计算出第一宏块的量化参数偏移值,以确定出最终的量化参数进行编码,综合考虑了帧间的内容变化和帧内的纹理特征,对宏块的量化进行精细的控制,从而可以在不降低视频编码质量的条件下,减少编码后视频的大小,方便视频的存储和传输,提高视频编码效果。
上述为本实施例的一种视频编码装置的示意性方案。需要说明的是,该视频编码装置的技术方案与上述的视频编码方法的技术方案属于同一构思,视频编码装置的技术方案未详细描述的细节内容,均可以参见上述视频编码方法的技术方案的描述。
图5示出了根据本说明书一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,以实现下述方法:
根据第一视频帧的帧类型,确定对应的目标预测系数;
获取第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量;
根据目标预测系数、第一帧内预测损失值、第一帧间预测损失值和第一运动向量,确定第一宏块的量化参数偏移值;
基于量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定第一宏块的目标量化参数,并根据目标量化参数对第一宏块进行编码。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的视频编码方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述视频编码方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现视频编码方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的视频编码方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述视频编码方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
计算机指令包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (12)

1.一种视频编码方法,其特征在于,所述方法包括:
根据第一视频帧的帧类型,确定对应的目标预测系数;
获取所述第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量;
根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量,确定所述第一宏块的量化参数偏移值;
基于所述量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定所述第一宏块的目标量化参数,并根据所述目标量化参数对所述第一宏块进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,所述根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量,确定所述第一宏块的量化参数偏移值,包括:
确定所述第一运动向量的各个分量的绝对值之和,将所述绝对值之和作为第一中间结果;
根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一中间结果,确定所述第一宏块的量化参数偏移值。
3.根据权利要求2所述的视频编码方法,其特征在于,所述目标预测系数包括帧内预测损失系数、帧间预测损失系数、运动向量系数以及偏移系数;
所述根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一中间结果,确定所述第一宏块的量化参数偏移值,包括:
基于所述第一帧内预测损失值和所述帧内预测损失系数、所述第一帧间预测损失值和所述帧间预测损失系数、所述第一中间结果和所述运动向量系数,以及所述偏移系数,确定所述第一宏块的量化参数偏移值。
4.根据权利要求1-3任一项所述的视频编码方法,其特征在于,所述根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量,确定所述第一宏块的量化参数偏移值之前,还包括:
根据所述第一帧内预测损失值对应的帧内预测损失阈值、所述第一帧间预测损失值对应的帧间预测损失阈值和所述第一运动向量对应的运动向量阈值,筛除所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量中的异常值。
5.根据权利要求1-3任一项所述的视频编码方法,其特征在于,所述根据第一视频帧的帧类型,确定对应的目标预测系数之前,还包括:
获取第二视频帧中第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量,其中,所述第二视频帧为测试集中目标帧类型的任一视频帧,所述测试集包括至少一种帧类型的视频帧;
获取所述第二宏块的参考量化参数偏移值;
根据所述第二帧内预测损失值、所述第二帧间预测损失值、所述第二运动向量以及所述参考量化参数偏移值,构造所述目标帧类型的预测系数拟合约束;
根据所述预测系数拟合约束,确定所述目标帧类型对应的预测系数,将所述预测系数与所述目标帧类型对应存储。
6.根据权利要求5所述的视频编码方法,其特征在于,所述获取所述第二宏块的参考量化参数偏移值,包括:
根据预设强度系数、所述第二帧内预测损失值和传播损失值,计算所述参考量化参数偏移值;
其中,所述传播损失值根据所述第二帧内预测损失值、所述第二帧间预测损失值和传播累计值计算得到。
7.根据权利要求5所述的视频编码方法,其特征在于,所述获取第二宏块的第二帧内预测损失值、第二帧间预测损失值和第二运动向量之前,还包括:
获取测试视频数据;
从所述测试视频数据中获取至少一个视频帧,并确定所述至少一个视频帧的帧类型;
将获取到的各个视频帧组合为所述测试集,所述测试集中包括的各个视频帧携带对应的帧类型。
8.根据权利要求1-3任一项所述的视频编码方法,其特征在于,所述基于所述量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定所述第一宏块的目标量化参数之前,还包括:
获取所述第一视频帧的基础量化系数和初始偏移值;
根据所述基础量化系数和初始偏移值,确定所述第一视频帧的基础量化参数值。
9.根据权利要求8所述的视频编码方法,其特征在于,所述获取所述第一视频帧的基础量化系数,包括:
确定所述第一视频帧之前的目标视频帧;
对所述目标视频帧的复杂度进行滤波处理,获得滤波结果;
获取所述第一视频帧的目标码率和实际码率之间的偏差值;
根据所述滤波结果和所述偏差值,确定所述第一视频帧的基础量化系数。
10.一种视频编码装置,其特征在于,所述装置包括:
预测系数确定模块,被配置为根据第一视频帧的帧类型,确定对应的目标预测系数;
获取模块,被配置为获取所述第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量;
偏移值确定模块,被配置为根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量,确定所述第一宏块的量化参数偏移值;
量化参数确定模块,被配置为基于所述量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定所述第一宏块的目标量化参数,并根据所述目标量化参数对所述第一宏块进行编码。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
根据第一视频帧的帧类型,确定对应的目标预测系数;
获取所述第一视频帧中第一宏块的第一帧内预测损失值、第一帧间预测损失值和第一运动向量;
根据所述目标预测系数、所述第一帧内预测损失值、所述第一帧间预测损失值和所述第一运动向量,确定所述第一宏块的量化参数偏移值;
基于所述量化参数偏移值,以及获取到的第一视频帧的基础量化参数值,确定所述第一宏块的目标量化参数,并根据所述目标量化参数对所述第一宏块进行编码。
12.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至9任意一项所述视频编码方法的步骤。
CN202111363226.4A 2021-11-17 2021-11-17 视频编码方法及装置 Pending CN116137658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111363226.4A CN116137658A (zh) 2021-11-17 2021-11-17 视频编码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111363226.4A CN116137658A (zh) 2021-11-17 2021-11-17 视频编码方法及装置

Publications (1)

Publication Number Publication Date
CN116137658A true CN116137658A (zh) 2023-05-19

Family

ID=86333104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111363226.4A Pending CN116137658A (zh) 2021-11-17 2021-11-17 视频编码方法及装置

Country Status (1)

Country Link
CN (1) CN116137658A (zh)

Similar Documents

Publication Publication Date Title
US11240496B2 (en) Low complexity mixed domain collaborative in-loop filter for lossy video coding
JP5384694B2 (ja) 多層ビデオ設計のためのレート制御
US9258567B2 (en) Method and system for using motion prediction to equalize video quality across intra-coded frames
KR101482896B1 (ko) 최적화된 디블록킹 필터
CN108574841B (zh) 一种基于自适应量化参数的编码方法及装置
US10368103B2 (en) Method and apparatus for image encoding/decoding
JP2007503776A (ja) インター符号化に使われる参照画像数を最小化するための方法および装置
US11356672B2 (en) System and method for controlling video coding at frame level
US11190775B2 (en) System and method for reducing video coding fluctuation
KR20110071231A (ko) 부호화 방법, 복호화 방법 및 장치
US8781004B1 (en) System and method for encoding video using variable loop filter
US11134250B2 (en) System and method for controlling video coding within image frame
EP3545677A1 (en) Methods and apparatuses for encoding and decoding video based on perceptual metric classification
WO2012006304A2 (en) Motion compensation using vector quantized interpolation filters
US20160353107A1 (en) Adaptive quantization parameter modulation for eye sensitive areas
WO2012006305A1 (en) Video coding using vector quantized deblocking filters
CN115118976A (zh) 一种图像编码方法、可读介质及其电子设备
KR101781300B1 (ko) 시간 상관도에 기반한 고속 영상 부호화 방법
CN110800298A (zh) 码率分配方法、码率控制方法、编码器和记录介质
CN116137658A (zh) 视频编码方法及装置
CN114793282A (zh) 带有比特分配的基于神经网络的视频压缩
CN117616751A (zh) 动态图像组的视频编解码
JP2023530630A (ja) ビデオ符号化のための適応量子化器設計
JP2012029213A (ja) 動画像符号化装置
KR101307469B1 (ko) 비디오 인코더, 비디오 디코더, 비디오 인코딩 방법 및 비디오 디코딩 방법

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