CN113766226A - 图像编码方法、装置、设备及存储介质 - Google Patents

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

Info

Publication number
CN113766226A
CN113766226A CN202010507987.1A CN202010507987A CN113766226A CN 113766226 A CN113766226 A CN 113766226A CN 202010507987 A CN202010507987 A CN 202010507987A CN 113766226 A CN113766226 A CN 113766226A
Authority
CN
China
Prior art keywords
frame
coded
frames
quantization parameter
macro block
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
CN202010507987.1A
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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN202010507987.1A priority Critical patent/CN113766226A/zh
Priority to PCT/CN2021/095433 priority patent/WO2021244341A1/zh
Publication of CN113766226A publication Critical patent/CN113766226A/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/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/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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/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/177Methods 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 a group of pictures [GOP]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

本申请提出一种图像编码方法、装置、设备及存储介质,图像编码方法包括:获取至少一个图像组;根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。

Description

图像编码方法、装置、设备及存储介质
技术领域
本申请涉及图像编码技术领域,例如涉及一种图像编码方法、装置、设备及存储介质。
背景技术
随着移动通信技术的的普及和发展,实时视频传输已经逐渐呈现到嵌入式设备中的片上系统(SoC,System on Chip)上,尤其在视频监控、网络直播、在线会议等诸多领域得到了越来越广泛的应用。通常情况下,视频画面的传输受两个方面因素的影响:网络带宽和视频数据量。为了降低视频数据的的数据量,原始数据在传输之前需要结合网络情况进行编码压缩,不同的压缩程度会产生不同的图像显示效果,压缩后的数据量过大会导致传输丢失,压缩后的数据量过小会导致图像显示画面很差;为了适应不同的网络带宽,需要对视频的压缩率进行实时控制,基于此码率控制模块作为编码端、传输前不可或缺的部分,在图像传输理论中已得到了广泛的重视,视频显示的流畅度和视频画面的清晰度是人们衡量和购买嵌入式设备的重要指标。
现有算法根据每个像素占用的比特数(bpp,bit per pixel)的控制方式,通过粗略的区间划分来决定初始量化参数(Quantization Parameter,QP)值,导致算法精度太低。由于初始QP的选择对图像序列前几帧的编码效果有极大影响。不恰当的初始QP值有可能导致缓冲区的过度占用(远远超过预分配的目标比特数),此时编码器将尝试减少分配给后续几帧的目标比特数以保证缓冲区不上溢,从而导致后续几帧的图像质量迅速下降(由于可用于编码的比特数太少),甚至发生跳帧。现有算法是将当前图像组(GOP,Group OfPictures)剩余比特数平均分配给剩余P帧数,没有过考虑瞬时场景变化的影响。
发明内容
本申请提供一种图像编码方法、装置、设备及存储介质,可以解决现有技术中量化参数选取不恰当的问题。
第一方面,本申请实施例提供一种图像编码方法,包括:获取至少一个图像组;
根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;
根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
第二方面,本申请实施例提供一种图像编码装置,包括:第一获取模块,用于获取至少一个图像组;
第一确定模块,用于根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;
第一编码模块,用于根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
第三方面,本申请实施例提供一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的信息确定方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中的任意一种方法。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为本申请提供的一种信息确定方法的流程示意图;
图1a为本申请提供的一种编码流程图;
图2为本申请提供的一种信息确定装置的结构示意图;
图3为本申请提供的一种设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一个示例性实施方式中,图1为本申请提供的一种图像编码方法的流程示意图。该方法可以适用于对图像进行编码的情况。该方法可以由本申请提供的图像编码装置执行,该图像编码装置可以由软件和/或硬件实现,并集成在设备上。
如图1所示,本申请提供的一种图像编码方法,包括S110-S130。
S110、获取至少一个图像组。
其中,所述图像组(GOP,Grou Of Pictures)为采集到的图像组,所述图像组由多个帧组成。
S120、根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数。
其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧。
其中,所述帧信息包括:复杂度、剩余比特数和帧类型;或者,复杂度、帧类型、像素深度和熵信息。
其中,所述相邻帧信息包括:已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数。
具体的,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,包括:根据第一个图像组的首帧的复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;所述其余图像组的首帧,根据复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;所述图像组的其余帧中,第一类P帧的量化参数与相邻首帧的量化参数相同,其中,所述第一类P帧为图像组的第二帧;所述图像组的其余帧中的第二类P帧,根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;所述图像组的其余帧中的B帧,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
在一个具体的例子中,获取至少一个图像组,如果基本单元被设置为帧,则对第一个图像组的第一帧进行编码,对第一个图像组第一帧进行编码,需要先计算得到第一帧的量化参数(第一个图像组的第一帧为I帧),根据复杂度、帧类型、像素深度和熵信息确定第一帧的量化参数,根据第一帧的量化参数编码第一帧,第二帧为P帧,第二帧的量化参数与第一帧的量化参数相同,根据第一帧的量化参数编码第二帧,第三帧若为P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第三帧的量化参数,根据第三帧的量化参数对第三帧进行编码,若第三帧为B帧,则先不编码,先编码第四帧,若第四帧为P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第四帧的量化参数,根据第四帧的量化参数对第四帧进行编码,根据第四帧的量化参数和第二帧的量化参数确定第三帧的量化参数。若第四帧为B帧,先不进行编码,直至为P帧,再对P帧进行编码。
S130、根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
需要说明的是,在确定一个帧的量化参数后,可以直接根据得到的量化参数对当前帧进行编码,也可以,先根据前一帧动态调整一下当前帧的量化参数后,根据调整后的量化参数进行编码,本发明实施例对比不进行限制。
本申请提供的一种图像编码方法,通过获取至少一个图像组;根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧,解决了现有技术中由于量化参数选取不恰当导致缓冲区的过度占用(远远超过预分配的目标比特数),此时编码器将尝试减少分配给后续几帧的目标比特数以保证缓冲区不上溢,从而导致后续几帧的图像质量迅速下降(由于可用于编码的比特数太少),甚至发生跳帧的技术问题,能够降低编码图像的整体波动进而提高图形显示的质量,最终提高用户体验。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一个实施例中,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,包括:
根据第一个图像组的首帧的复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
根据其余图像组的首帧的复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
所述图像组的其余帧中,第一类P帧的量化参数与相邻首帧的量化参数相同,其中,所述第一类P帧为图像组的第二帧;
所述图像组的其余帧中的第二类P帧,根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
所述图像组的其余帧中的B帧,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
具体的,针对第一个图像组的首帧,是根据第一个图像组的首帧的复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数,针对除第一个图像组之外的其余图像组的首帧,是根据其余图像组的首帧的复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数,针对图像组的其余帧中的第一类P帧,第一类P帧的量化参数与相邻首帧的量化参数相同,其中,所述第一类P帧为图像组的第二帧,针对图像组的其余帧中的第二类P帧,是根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧,针对图像组的其余帧中的B帧,是根据相邻P帧的量化参数的平均值确定B帧的量化参数。
在一个实施例中,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数包括:
获取待编码帧;
若所述待编码帧为第一个图像组的首帧,则根据复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
若所述待编码帧为其余图像组的首帧,则根据复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
若所述待编码帧为第一类P帧,则根据相邻首帧的量化参数确定第一类P帧的量化参数,其中,所述第一类P帧为图像组的第二帧;
若所述待编码帧为第二类P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
若所述待编码帧为B帧,则不进行编码,先编码与所述B帧相邻,且处于所述B帧之后的P帧,在P帧编码之后,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
具体的,若待编码帧是第一个图像组的首帧,则根据复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数,若待编码帧为至少一个图像组中除第一个图像组之外的其余图像组的首帧,则根据复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数。若所述待编码帧为P帧,且为图像组的第二任帧,则根据相邻首帧的量化参数确定P帧的量化参数,若所述待编码帧为P帧,但并非第二帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定P帧的量化参数,若所述待编码帧为B帧,则不进行编码,先编码与所述B帧相邻,且处于所述B帧之后的P帧,在P帧编码之后,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
在一个实施例中,若所述待编码帧为第二类P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧,包括:
根据已编码帧的平均复杂度和已编码帧占用的比特数确定第二类P帧的目标缓冲区占用量;
根据所述目标缓冲区占用量、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的目标比特数;
根据所述第二类P帧的目标比特数预估第二类P帧的编码方式;
根据所述预估第二类P帧的编码方式和前后两帧的运动变化系数确定第二类P帧的头信息比特数;
根据第二类P帧的头信息比特数确定第二类P帧的实际编码方式;
根据第二类P帧的实际编码方式计算得到第二类P帧的实际平均绝对值差值;
根据第二类P帧的实际平均绝对值差值、第二类P帧的目标比特数、第二类P帧的头信息比特数和运动矢量占用的比特数确定第二类P帧的量化参数。
具体的,为待编码的帧分配目标比特数;每帧分配的比特数结合GOP中剩余分配的比特数、待编码帧的图像复杂度、运动变化信息等因素进行加权分配。首先,根据实际的缓冲区占用量来调整目标待编码帧的缓冲区占用量,由于已经编码帧的目标缓冲区容量跟实际的缓冲区容量存在不完全一致的情况,需要把两者差异的部分分配到即将编码的各个帧中。因为第一个P帧的量化参数己在GOP层的码率控制中得到,第一个P帧的量化参数与相邻I帧的量化参数相同,此处只需计算每个GOP中其它P帧缓冲区大小。目标缓冲区大小是根据第一个即时解码更新帧和第一P帧编码比特数以及其他已经编码的B帧和P帧的平均图像复杂度进行设置。在第i个GOP的第一个P帧编成后,目标缓冲区大小被重置为:
Si(2)=Vi(2),
其中,Vi(2)为第i个GOP中的第一个P帧编码完之后缓冲区的实际占用量,随后的P帧目标缓冲区大小Si(j+1)将按下式计算:
Figure BDA0002527231740000081
其中,Np(i)为第i个GOP中P帧的总数,f为预定义帧率,Ri(j)为编码该帧时可用的比特率,L为相邻P帧之间距离。
Figure BDA0002527231740000082
第为P帧的平均复杂度因子,
Figure BDA0002527231740000083
为B帧的平均复杂度因子,它们由下面两式计算:
Figure BDA0002527231740000084
Figure BDA0002527231740000085
Wp,i(j)=bp,i(j)×QPp,i(j)
Figure BDA0002527231740000086
bp,i(j)和bb,i(j)分别是编码一个P帧和一个B帧之后实际产生的比特数,QPp,i(j)为P帧的量化参数,QPb,i(j)为B帧的量化参数。
然后,计算每个P帧的目标比特数,主要由以下几个因素决定:目标缓冲区容帧率、可用带宽(目标比特率)、实际缓冲区占用量、运动信息;结合可用带宽、目标缓冲区占用量和运动信息来调整最终的目标比特率。第i个GOP中第j帧的目标比特数的计算如下所示:
Figure BDA0002527231740000087
其中,γ是一个常数,在没有B帧的情况下其典型值为0.5,否则为0。另外,计算目标比特数时,要同时考虑GOP中的剩余比特数:
Figure BDA0002527231740000091
其中,Np,r和Nb,r分别为本GOP中尚未编码的P帧和B帧数,Bi(j)表示在第i个GOP的第j帧编码后,分配给该GOP中剩余图像的总比特数
目标比特数为
Figure BDA0002527231740000092
Figure BDA0002527231740000093
的加权和乘以运动变化系数:
Figure BDA0002527231740000094
其中,β为一常数,在没有B帧的情况下其典型值为0.5,否则为0.9;α的典型值为0.01,h(motion)为前后两帧的运动变化系数。
最后,预测当前帧的MAD(当前基本单元的平均绝对值差,Mean AbsoluteDifference)值和编码头信息比特数,所述MAD预测根据改进的算进行实现,结合空域信息、时域信息;根据MAD值和率失真模型进行QP优化,并确定最终的量化参数值,如下:
通过改进算法得到当前P帧的MAD值MADi(j),接着再使用二次R-D模型可得到与目标比特数对应的量化步长,即:
Figure BDA0002527231740000095
其中mh,i(j)为头信息和运动矢量所占用的比特数,c1和c2为模型系数,QPstep,i(j)为量化步长,相应的量化参数QPi(j)由QPstep,i(j)得到。
在一个实施例中,根据相邻P帧的量化参数的平均值确定B帧的量化参数,包括:
若相邻P帧的量化参数不同,则B帧的量化参数为相邻P帧的量化参数和第二数值之和除以2;
若相邻P帧的量化参数相同,则B帧的量化参数为任一相邻P帧的量化参数与第二数值之和。
需要说明的是,每个图像组的第二帧一定是P帧,不是B帧,第二帧根据初始QP进行编码。第三帧,先判断是B帧还是P帧,若是P帧,计算P帧对应的QP,若是B帧先不进行编码,先编码之后的P帧。
具体的,因为B帧不被用作参考帧,所以其量化参数一般大于相邻P帧或I帧的量化参数,从而节省比特数,这样P帧或I帧可以得到更多的编码比特数,从而得到更高的图像重建质量;同时为了保证视频质量的主观连续性,相邻两帧量化参数的差值不应大于2。B帧的量化参数可以通过简单的线性插值计算:如果相邻P帧间只有一个B帧,则该B帧量化参数可以通过两个P帧量化参数的均值进行计算;
Figure BDA0002527231740000101
其中,QPi(j)为待编码帧前一帧的量化参数,QPi(j+1)为待编码帧的量化参数,QPi(j+2)为待编码帧后一帧的量化参数。
假设相邻P帧之间距离是L,也就是说,相邻P帧之间的B帧数目为L,并且这两个P帧的量化参数分别定义为QPi(j)和QPi(j+L+1),其中,QPi(j+L+1)为与QPi(j)之间距离为L的P帧的量化参数。
如果相邻P帧间大于1个B帧,则B帧的量化参数根据B帧跟前后两个P帧的距离、前后两帧的QP进行动态调整。
Figure BDA0002527231740000102
k=1,…,L,α由下式给出:
Figure BDA0002527231740000103
其中,QPi(j+k)为与QPi(j)之间距离大于一个B帧的P帧的量化参数。
在一个实施例中,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,包括:
获取待编码帧的量化参数;
根据前一已编码帧的量化参数调整所述待编码帧的量化参数,其中,所述前一已编码帧与待编码帧间距为第一数值。
其中,所述第一数值可以根据需要设定。
具体的,为了保证后续视频图像在视觉上的平滑性,需由下式调整:
QPi(j)=min{QPi(j-L-1)+2,max{QPi(j-L-1)-2,QPi(j)}},其中,QPi(j)为待编码帧的量化参数,QPi(j-L-1)为与待编码帧间距为L的前一已编码帧的量化参数。其中,L为第一数值。最终的量化参数还要在H264标准要求的[0,51]的范围内。
在一个实施例中,根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧,包括:
初始跳帧数目设置为零;
如果编码后数据量超出码率设定值,则逐渐增加所述跳帧数目,直至实际缓冲区占用量满足设定条件。
具体的,编码后阶段主要任务包含三项:更新预测模型的参数,更新二次R-D模型的参数,以及决定跳帧数目,同时实际编码输出的比特数加到缓冲区中。
为了保证更新后的缓冲区占用不上溢,跳帧Nskip初始设置为0,逐渐增加直至满足以下条件:
V(j+Nskip)<Vmax×0.8,
其中,Nskip为跳帧数目,Vmax为最大缓冲区实际占用量,V(j+Nskip)为跳帧后缓冲区实际占用量。
因为没有编码操作(不产生比特数),每跳过1帧缓冲区的占用量将由下更新:
Figure BDA0002527231740000111
其中,f为预定义的帧率,Vi(j+l)为跳帧前缓冲区实际占用量,Vi(j+l+1)为跳过一帧之后缓冲区实际占用量。
在一个实施例中,相邻两帧量化参数的差值小于或者等于第二数值。
其中,所述第二数值可以为2,本发明实施例对此不进行限制。
在一个实施例中,还包括:
获取帧;
所述帧的首宏块根据上一帧的宏块的量化参数的平均值确定首宏块的量化参数,其余宏块根据宏块信息和相邻宏块信息确定其余宏块的量化参数;
根据所述首宏块的量化参数和所述其余宏块的量化参数编码对应宏块。
其中,所述宏块信息可以包括:宏块的目标比特数,所述相邻宏块信息包括:前一宏块的量化参数、前后两宏块的运动变化系数。
在一个实施例中,所述帧的首宏块根据上一帧的宏块的量化参数的平均值确定首宏块的量化参数,其余宏块根据宏块信息和相邻宏块信息确定其余宏块的量化参数,包括:
获取待编码宏块;
若所述待编码宏块为当前帧的首宏块,则将前一帧的宏块的量化参数的平均值确定为待编码宏块的量化参数;
根据所述待编码宏块的量化参数编码所述待编码宏块;
若所述待编码宏块非当前帧的首宏块,则根据前一宏块占用的比特数确定待编码宏块的目标比特数;
若所述待编码宏块的目标比特数小于零,则将前一宏块的量化参数和第三数值之和确定为待编码宏块的量化参数;
若所述待编码宏块的目标比特数大于或者等于零,则根据所述待编码宏块的目标比特数预估待编码宏块的编码方式;
根据所述预估待编码宏块的编码方式和前后两宏块的运动变化系数确定待编码宏块的头信息比特数;
根据待编码宏块的头信息比特数确定待编码宏块的实际编码方式;
根据所述待编码宏块的实际编码方式计算得到待编码宏块的实际平均绝对值差值;
根据待编码宏块的实际平均绝对值差值、待编码宏块的目标比特数、待编码宏块的头信息比特数和运动矢量占用的比特数确定待编码宏块的量化参数。
其中,所述前后两宏块的运动变化系数指的是待编码宏块和前一宏块之间的运动变化系数。
需要说明的是,在确定一个宏块的量化参数后,可以直接根据得到的量化参数对当前宏块进行编码,也可以,先根据前一宏块动态调整一下当前宏块的量化参数后,根据调整后的量化参数进行编码,本发明实施例对比不进行限制。
在一个具体的例子中,基本单元层的码率控制可以实现更精确的控制输出比特率,如果基本单元被设置为帧,则该层控制被忽略,使用帧层码率控制得到的QP值对所有基本单元进行编码,如果基本单元被设置为宏块,则该层码牢控制为每一个宏块计算一个QP值。针对低延时且缓冲区较小的应用来说,为了避免缓冲区上溢或者下溢,基本单元层码率控制不可或缺。该层码率控制流程如下:步骤1、检查当前宏块是否为当前帧的第一个宏块,如果是,则计算上一帧所有宏块的平均QP值,转步骤6。步骤2、根据编码上一宏块实际产生的比特数更新当前宏块可用的剩余目标比特数(简单的减法运算)。检查步骤得到的剩余目标比特数是否小于0,如果是,转步骤5。步骤3、使用改进算法计算当前宏块的MAD(当前基本单元的平均绝对值差,Mean Absolute Difference)的值和头信息比特数,然后计算分配给当前宏块的纹理比特数。步骤4、使用二次率失真模型计算当前宏块的QP值,转步骤6。步骤5、编码上一宏块超过了分配给其的比特数配额,将上一宏块的QP(量化参数,QuantizationParameter)值加△QP作为当前宏块的最终QP值,△QP一般等于1。步骤6、使用步骤1、4或者5计算得到的QP编码当前宏块,执行RDO,然后记录当前宏块的实际MAD值,头信息比特数和总共消耗的比特数(包含纹理比特)。步骤7、使用线性回归法更新R-D模型和MAD预测模型的参数。步骤8、检查当前宏块是否为当前帧中的最后一个宏块,如果是,转步骤9,否则转步骤1。步骤9、结束基本单元层码率控制(当前帧编码结束),更新缓冲区,如果缓冲容量大于设定的门限值,则下一帧被跳过不进行编码。
具体的,H.264采用的码率算法包括图像组(GOP,Group Of Pictures)层码率控制、帧层码率控制和基本单元层码率控制,基本单元的大小可以小于或者等于一帧的大小;小于一帧的时候通常有若干个宏块组成。如果基本单元等于一帧的大小(即一帧只划分成一个基本单元),那么码率控制基于当前帧的目标比特数对该帧的量化参数进行调整。如果基本单元由部分宏块组成,那么该帧目标比特数确定的前提条件下,根据宏块的图像复杂度,进一步调整该宏块的量化参数。同时,保证前后两个基本单元的量化参数不能太大的差值,目的是保证视觉的平滑性。所述前后两个基本单元可以是同一帧也可以使前后帧,由于,编码复杂度越高的帧编码后会得到更多的比特数,相反编码复杂度低的帧编码后输出的比特数会少。为了让比特分配能最大可能地符合实际编码输出码率,使用线性预测模型对当前基本单元的平均绝对值差(MAD,Mean absolute difference)的值进行预测。MAD反映了编码前后画面的损失程度。现有技术依赖先前基本单元的MAD信息进行计算,没有充分考虑帧内基本单元之间的空域信息,这在场景突变或者高速运动时将造成极大的预测误差。
具体的,首先从视频采集序列中获取原始编码数据,然后根据第一帧的编码类型进行判断,编码类型主要有I、P、B帧三种,通常所述I帧图像可以进行独立编码、所述B帧图像需要依赖其前面和后面编码的帧进行编码,通常情况下第一个GOP的第一帧编码为I帧,后续GOP中的第一帧根据可以I、P。编码不同的帧都需要量化参数的设置,不同的量化参数会产生不同的压缩效果,原有算法对GOP中第一帧量化参数的处理,主要基于原始数据的分辨率,根据图像的大小计算每个像素所占用的bit数,然后粗略的估计出一个量化参数QP值,这样导致第一帧图像编码过大或者过小都会对后面图像的质量或者码率分配造成很大影响,通常情况表现码率波动过大、图像显示画面时而模糊时而清晰。原有算法只考虑初始bpp来调整初始QP的值,如下所示:
Figure BDA0002527231740000141
其中,bpp=Ri(1)/f×Npixel,Npixel为一帧图像中包含的像素数。对于QCIF格式的视频L1=0.1,L2=0.3,L3=0.6,对于CIF格式的视频L1=0.2,L2=0.6,L3=1.2,对于更高分辨率的视频格式L1=0.6,L2=1.4,L3=2.4。
MAD预测主要目的是选择编码所用的分隔类型和预测模式,不同的分隔类型和预测模式会产生不同的图像失真度,通常情况下对于信息比较丰富的图片采用较小的分割,对于信息比较单一的场景使用较大的分割。原有算法通过当前帧和前一帧对应位置的图像进行预测,通过线性模型来进行数据预测,对于具有丰富纹理细节或不规则局部运动的帧来说,线性预测模型能够达到很好的效果,然而这种利用时域信息预测MAD的方式具有明显的局限性,尤其是对包含场景切换或者高速运动的帧更是如此。
目标比特数目的分配,主要是根据目标码率和已经编码的帧所占用的码率,来动态的决定待编码帧所要占用的码率,原有算法在计算待编码帧的目标码率时候使用的是平均值,先计算整个GOP的剩余比特数,然后把剩余比特数平均分配给未编码的帧。这样的话导致图像复杂的帧编码的时候质量会很低,图像简单的帧压缩程度不够。如下所示:
在第i个GOP的第j帧编码后,分配给该GOP中剩余图像的总比特数Bi(j)计算如下:
Figure BDA0002527231740000151
其中,Vi(j)为第j帧编码后虚拟缓冲区占的比特数,j=1的情况对GOP的第一帧,Ri(j)为编码该帧时可用的比特率(信道容量),f为预定义的帧率,bi(j-1)为编码第j-1帧时实际产生的比特数。
预测模式和目标比特数确定后,进行后续帧QP的设置,与第一帧QP不同的是,后续帧QP的设置依赖于二次率失真模型(R-D,rate-distortion),所述二次率失真模型R-D反映了码率和图像失真度之间的关系,失真度反映了图像的显示质量,而图像的质量又通过量化参数QP决定;由于图像编码过程存在数据的损失,需要结合失真度和码率来进一步的调整量化参数QP,以便进行后续的编码。基本单元层码率控制操作,跟前面帧层码率控制所述过程类似,不同在于该控制作用于帧内部的不同分割块之间,当一帧的所有基本单元编码完成后,需要对率失真模型系数进行更新,目的是不断适应变化的场景。
本发明实施例与现有技术中对第一个GOP初始QP的设置不同,不仅仅考虑bpp,同时结合图像熵编信息、图像的复杂度、以及具体的场景运动变化信息,所述场景主要包括弱光源和强光源、运动和静止等不同场景的切换;通过测试不同场景的编码情况,拟合出复杂度、bpp、熵信息、场景变换的近似模型。对于初始QP的更新同时考虑了率失真优化。对于目标比特数目的分配考虑了瞬时码率、图像本身复杂度、场景变换等因素。对于预测模式的选择,结合时域和空域信息提高预测精度,同时结合码率控制模式进行动态调整,所述码率控制模式包括恒定码率和可变码率两种,所述恒定码率指的是保证码率不变,可以损失图像质量;所述可变码率指的是保证图像质量的前提下,使码率可以在一定范围内波动。GOP层的码率控制主要计算分配给每个GOP中尚未编码帧的总比特数及IDR帧和l帧的初始量化参数。通常GOP结构可假设为IPPP…P或IBPBP表示帧内预测帧,P为前向预测帧,B为双向预测帧,GOP层码率控制的计算如下:
在另一个具体的例子中,如图1a所示的流程图中,读取第一帧输入数据,判断第一帧是I帧还是P帧,若是I帧,则根据第一帧输入数据计算I帧的像素深度bpp,熵信息和内容复杂度,若为第一个图像组第一帧,则根据第一帧的像素深度、熵信息、复杂度、帧类型确定量化参数;若为第二个图像组的第一帧,则根据的第一帧的像素深度、熵信息、复杂度、帧类型以及前后图像组运动变化系数。其中,前后图像组运动变化系数指的是第一图像组最后一帧和第二图像组第一帧运动变化系数。计算初始QP。根据得到的QP进行编码,根据编码结果微调QP,并再次编码;其中,熵信息和内容复杂度的计算如下:
Figure BDA0002527231740000161
Figure BDA0002527231740000162
其中,N为编码单个像素的比特数,p(x)为亮度值x出现的概率,x的范围为[0,255],Hy为一帧图像亮度分量的高度,Wy为宽度,Y(h,w)为坐标(h,w)处的像素亮度值,Avg(Y)为一帧的平均亮度;同理,Hcb和Hcr为一帧图像色度分量的高度,Wcb和Wcr为一帧图像色度分量的宽度度,其它参数函数跟Y分量相似。通过拟合的方法得出初始QP与bpp、entropy、complex、motion的关系,具体如下:
QPinit=f(bpp)+g(entrop,complex)+h(motion),
Figure BDA0002527231740000171
其中,
Figure BDA0002527231740000172
bpp表示初始QP与bpp有关,g(entrop,complex)表示初始QP与I帧图像内容复杂度相关,对应参数的值如下:
ε={A,B,C,D,M,N,U,S1,S2,S3,T1,T2,T3}
={-12.04,23.16,-25.68,28.51,490.62,-217.49,47.32,14.67,-190.11,600.72,0.67,7.93,16.85}
运动信息反映了前后两帧的变化情况,通常情况下包括运动到静止、静止到运动等场景切换,此时适当的调整QP可以减少码率的波动,如下所示:
Figure BDA0002527231740000173
其中,h(motion)对应不同值的含义,如下表1所示:
表1
h(motion)的值 含义
-2 前面帧相对后面帧存在剧烈运动变化
-1 前面帧相对后面帧存在轻微运动变化
0 前后两帧无运动变化
1 后帧相对前面帧存在轻微运动变化
2 后面帧相对前面帧存在剧烈运动变化
需要说明的是,统计GOP中已经编码帧实际占用的比特数,结合码率统计分配给整个GOP的总的目标比特数,计算出剩余的待分配的比特数。根据得到的QP对第一个I帧编码,将实际编码得到的比特数与目标比特数互进行比较,如果上下波动幅度不超过目标码率的%5,算法终止。否则对QP进行进一步的微调,实际码率低就减小QP的设置,实际码率高就增大QP的设置,QP减少的幅度可以根据运动变化情况动态调整。控制算法在3次的范围之内。根据调整之后的QP进行编码。在第一帧编码结束之后,判断第二帧类型,若为P帧,则第二帧与第一帧的QP相同,根据第一帧QP进行编码,在第二帧编码结束之后,判断第三帧类型,若为P帧,则根据改进算法进行帧层MAD预测,根据改进算法进行目标必特分配,根据改进算法预测头信息比特数,使用二次R-D模型计算帧层QP,更新帧层二次率失真模型系数,计算得到QP后,根据QP进行编码,直至最后一帧编码完成,若基本单元层被设置为一个宏块,则继续计算宏块的QP。
具体的,结合测试场景对优化前后的数据进行对比,主要考虑两个方面的因素:图像质量和码率波动,其中图像质量有平均信噪比PSNR统计,PC机处理器为I5 2GHz,内存2GB,输入原始数据序列逐帧编码不跳帧,编码序列为IPPP格式(不使用B帧),打开率失真优化,帧率为30帧/秒,信道带宽(日标比特率)设置为64Kbits/s(QCIF),600Kbits/s(CIF)编码帧数为100,基本单元设置为11个宏块。具体实验结果如表2所示:
表2
Figure BDA0002527231740000181
由上表中的实验结果可以看出,对于Akiyo、News等l帧复杂度较不剧烈的测试序列来说,优化后的算法使用相近或更低的比特率实现了图像重建质量(以PSNRAvg度量)的明显提升,对于Carphone和Mobile等运动剧烈或图像内容、色彩层次复杂的序列来说,优化后的算法在损失很小图像章建质量的同时,实现了更为精确的码率控制(以Kbits/s度量);对于其它序列.优化后的算法在图像重建质量和码率控制精度方面都有所提升。
本发明实施例还可以通过中央处理器运行中间层,负责不同硬件模块的资源调度;通过图形采集器采集原始视频源;图形采集器,并且对采集到的数据进行格式转换、缩放、复杂度统计以及运动统计等操作;通过图形编码器对原始数据进行压缩编码;通过对编码后的数据通过网络的方式传输到接收端;或者可以对编码后的数据通过USB线的传输到接收端。
本申请提供了一种图像编码装置,图2为本申请提供的一种图像编码装置的结构示意图。如图2所示,本申请实施例中的一种图像编码装置,可以集成在设备上。该装置包括:第一获取模块21,用于获取至少一个图像组;第一确定模块22,用于根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;第一编码模块23,用于根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
本实施例提供的装置用于实现如图1所示实施例的方法,本实施例提供的装置实现原理和技术效果与图1所示实施例的方法类似,此处不再赘述。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一个实施例中,所述帧信息包括:复杂度、剩余比特数和帧类型;或者,复杂度、帧类型、像素深度和熵信息。
在一个实施例中,所述相邻帧信息包括:已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数。
在一个实施例中,第一确定模块22具体用于:
根据第一个图像组的首帧的复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
根据其余图像组的首帧的复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
所述图像组的其余帧中,第一类P帧的量化参数与相邻首帧的量化参数相同,其中,所述第一类P帧为图像组的第二帧;
所述图像组的其余帧中的第二类P帧,根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
所述图像组的其余帧中的B帧,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
在一个实施例中,第一确定模块22具体用于:
获取待编码帧;
若所述待编码帧为第一个图像组的首帧,则根据复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
若所述待编码帧为其余图像组的首帧,则根据复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
若所述待编码帧为第一类P帧,则根据相邻首帧的量化参数确定第一类P帧的量化参数,其中,所述第一类P帧为图像组的第二帧;
若所述待编码帧为第二类P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
若所述待编码帧为B帧,则不进行编码,先编码与所述B帧相邻,且处于所述B帧之后的P帧,在P帧编码之后,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
在一个实施例中,第一确定模块22具体用于:
根据已编码帧的平均复杂度和已编码帧占用的比特数确定第二类P帧的目标缓冲区占用量;
根据所述目标缓冲区占用量、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的目标比特数;
根据所述第二类P帧的目标比特数预估第二类P帧的编码方式;
根据所述预估第二类P帧的编码方式和前后两帧的运动变化系数确定第二类P帧的头信息比特数;
根据第二类P帧的头信息比特数确定第二类P帧的实际编码方式;
根据第二类P帧的实际编码方式计算得到第二类P帧的实际平均绝对值差值;
根据第二类P帧的实际平均绝对值差值、第二类P帧的目标比特数、第二类P帧的头信息比特数和运动矢量占用的比特数确定第二类P帧的量化参数。
在一个实施例中,第一确定模块22具体用于:
若相邻P帧的量化参数不同,则B帧的量化参数为相邻P帧的量化参数和第二数值之和除以2;
若相邻P帧的量化参数相同,则B帧的量化参数为任一相邻P帧的量化参数与第二数值之和。
在一个实施例中,第一确定模块22具体用于:
获取待编码帧的量化参数;
根据前一已编码帧的量化参数调整所述待编码帧的量化参数,其中,所述前一已编码帧与待编码帧间距为第一数值。
在一个实施例中,第一编码模块23具体用于:
初始跳帧数目设置为零;
如果编码后数据量超出码率设定值,则逐渐增加所述跳帧数目,直至实际缓冲区占用量满足设定条件。
在一个实施例中,相邻两帧量化参数的差值小于或者等于第二数值。
在一个实施例中,还包括:
第二获取模块,用于获取帧;
第二确定模块,用于所述帧的首宏块根据上一帧的宏块的量化参数的平均值确定首宏块的量化参数,其余宏块根据宏块信息和相邻宏块信息确定其余宏块的量化参数;
第二编码模块,用于根据所述首宏块的量化参数和所述其余宏块的量化参数编码对应宏块。
在一个实施例中,第二确定模块具体用于:
获取待编码宏块;
若所述待编码宏块为当前帧的首宏块,则将前一帧的宏块的量化参数的平均值确定为待编码宏块的量化参数;
根据所述待编码宏块的量化参数编码所述待编码宏块;
若所述待编码宏块非当前帧的首宏块,则根据前一宏块占用的比特数确定待编码宏块的目标比特数;
若所述待编码宏块的目标比特数小于零,则将前一宏块的量化参数和第三数值之和确定为待编码宏块的量化参数;
若所述待编码宏块的目标比特数大于或者等于零,则根据所述待编码宏块的目标比特数预估待编码宏块的编码方式;
根据所述预估待编码宏块的编码方式和前后两宏块的运动变化系数确定待编码宏块的头信息比特数;
根据待编码宏块的头信息比特数确定待编码宏块的实际编码方式;
根据所述待编码宏块的实际编码方式计算得到待编码宏块的实际平均绝对值差值;
根据待编码宏块的实际平均绝对值差值、待编码宏块的目标比特数、待编码宏块的头信息比特数和运动矢量占用的比特数确定待编码宏块的量化参数。
本申请提供的一种图像编码方法,通过获取至少一个图像组;根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧,解决了现有技术中由于量化参数选取不恰当导致缓冲区的过度占用(远远超过预分配的目标比特数),此时编码器将尝试减少分配给后续几帧的目标比特数以保证缓冲区不上溢,从而导致后续几帧的图像质量迅速下降(由于可用于编码的比特数太少),甚至发生跳帧的技术问题,能够降低编码图像的整体波动进而提高图形显示的质量,最终提高用户体验。
本申请提供了一种设备,图3本申请提供的一种设备的结构示意图,如图3所示,本申请提供的设备,包括一个或多个处理器31和存储装置32;该设备中的处理器31可以是一个或多个,图3中以一个处理器31为例;存储装置32用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器31执行,使得所述一个或多个处理器31实现如本申请实施例中图1所述的方法。
设备还包括:通信装置33、输入装置34和输出装置35。
设备中的处理器31、存储装置32、通信装置33、输入装置34和输出装置35可以通过总线或其他方式连接,图3中以通过总线连接为例。
输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的按键信号输入。输出装置35可包括显示屏等显示设备。
通信装置33可以包括接收器和发送器。通信装置33设置为根据处理器31的控制进行信息收发通信。信息包括但不限于上行授权信息。
存储装置32作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序以及模块,如本申请实施例图1所述图像编码方法对应的程序指令/模块(例如,图像编码装置中的第一获取模块21、第一确定模块22和第一编码模块23)。存储装置32可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储装置32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中任一所述的图像编码方法。应用于设备的图像编码方法包括:获取至少一个图像组;根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语设备涵盖任何适合类型的用户设备,例如机顶盒、智能手机、平板电脑、导航仪、车载电视、个人数字助理等终端设备。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(Read-Only Memory,ROM)、随机访问存储器(Random Access Memory,RAM)、光存储器装置和系统(数码多功能光碟(Digital Video Disc,DVD)或光盘(Compact Disk,CD))等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Field-Programmable Gate Array,FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。

Claims (15)

1.一种图像编码方法,其特征在于,包括:
获取至少一个图像组;
根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;
根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
2.根据权利要求1所述的方法,其特征在于,所述帧信息包括:复杂度、剩余比特数和帧类型;或者,复杂度、帧类型、像素深度和熵信息。
3.根据权利要求2所述的方法,其特征在于,所述相邻帧信息包括:已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数。
4.根据权利要求3所述的方法,其特征在于,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,包括:
根据第一个图像组的首帧的复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
根据其余图像组的首帧的复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
所述图像组的其余帧中,第一类P帧的量化参数与相邻首帧的量化参数相同,其中,所述第一类P帧为图像组的第二帧;
所述图像组的其余帧中的第二类P帧,根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
所述图像组的其余帧中的B帧,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
5.根据权利要求3所述的方法,其特征在于,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数包括:
获取待编码帧;
若所述待编码帧为第一个图像组的首帧,则根据复杂度、帧类型、像素深度和熵信息确定第一个图像组的首帧的量化参数;
若所述待编码帧为其余图像组的首帧,则根据复杂度、帧类型、像素深度、熵信息以及前后两帧的运动变化系数确定其余图像组的首帧的量化参数;
若所述待编码帧为第一类P帧,则根据相邻首帧的量化参数确定第一类P帧的量化参数,其中,所述第一类P帧为图像组的第二帧;
若所述待编码帧为第二类P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧;
若所述待编码帧为B帧,则不进行编码,先编码与所述B帧相邻,且处于所述B帧之后的P帧,在P帧编码之后,根据相邻P帧的量化参数的平均值确定B帧的量化参数。
6.根据权利要求5所述的方法,其特征在于,若所述待编码帧为第二类P帧,则根据已编码帧的平均复杂度、已编码帧占用的比特数、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的量化参数,其中,所述第二类P帧非图像组的第二帧,包括:
根据已编码帧的平均复杂度和已编码帧占用的比特数确定第二类P帧的目标缓冲区占用量;
根据所述目标缓冲区占用量、实际缓冲区占用量、可用带宽、目标缓冲区容帧率、剩余比特数以及前后两帧的运动变化系数确定第二类P帧的目标比特数;
根据所述第二类P帧的目标比特数预估第二类P帧的编码方式;
根据所述预估第二类P帧的编码方式和前后两帧的运动变化系数确定第二类P帧的头信息比特数;
根据第二类P帧的头信息比特数确定第二类P帧的实际编码方式;
根据第二类P帧的实际编码方式计算得到第二类P帧的实际平均绝对值差值;
根据第二类P帧的实际平均绝对值差值、第二类P帧的目标比特数、第二类P帧的头信息比特数和运动矢量占用的比特数确定第二类P帧的量化参数。
7.根据权利要求5所述的方法,其特征在于,根据相邻P帧的量化参数的平均值确定B帧的量化参数,包括:
若相邻P帧的量化参数不同,则B帧的量化参数为相邻P帧的量化参数和第二数值之和除以2;
若相邻P帧的量化参数相同,则B帧的量化参数为任一相邻P帧的量化参数与第二数值之和。
8.根据权利要求6所述的方法,其特征在于,根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,包括:
获取待编码帧的量化参数;
根据前一已编码帧的量化参数调整所述待编码帧的量化参数,其中,所述前一已编码帧与待编码帧间距为第一数值。
9.根据权利要求1所述的方法,其特征在于,根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧,包括:
初始跳帧数目设置为零;
如果编码后数据量超出码率设定值,则逐渐增加所述跳帧数目,直至实际缓冲区占用量满足设定条件。
10.根据权利要求1所述的方法,其特征在于,相邻两帧量化参数的差值小于或者等于第二数值。
11.根据权利要求1所述的方法,其特征在于,还包括:
获取帧;
所述帧的首宏块根据上一帧的宏块的量化参数的平均值确定首宏块的量化参数,其余宏块根据宏块信息和相邻宏块信息确定其余宏块的量化参数;
根据所述首宏块的量化参数和所述其余宏块的量化参数编码对应宏块。
12.根据权利要求1所述的方法,其特征在于,所述帧的首宏块根据上一帧的宏块的量化参数的平均值确定首宏块的量化参数,其余宏块根据宏块信息和相邻宏块信息确定其余宏块的量化参数,包括:
获取待编码宏块;
若所述待编码宏块为当前帧的首宏块,则将前一帧的宏块的量化参数的平均值确定为待编码宏块的量化参数;
根据所述待编码宏块的量化参数编码所述待编码宏块;
若所述待编码宏块非当前帧的首宏块,则根据前一宏块占用的比特数确定待编码宏块的目标比特数;
若所述待编码宏块的目标比特数小于零,则将前一宏块的量化参数和第三数值之和确定为待编码宏块的量化参数;
若所述待编码宏块的目标比特数大于或者等于零,则根据所述待编码宏块的目标比特数预估待编码宏块的编码方式;
根据所述预估待编码宏块的编码方式和前后两宏块的运动变化系数确定待编码宏块的头信息比特数;
根据待编码宏块的头信息比特数确定待编码宏块的实际编码方式;
根据所述待编码宏块的实际编码方式计算得到待编码宏块的实际平均绝对值差值;
根据待编码宏块的实际平均绝对值差值、待编码宏块的目标比特数、待编码宏块的头信息比特数和运动矢量占用的比特数确定待编码宏块的量化参数。
13.一种图像编码装置,其特征在于,包括:
第一获取模块,用于获取至少一个图像组;
第一确定模块,用于根据第一个图像组的首帧的帧信息确定第一个图像组的首帧的量化参数,根据其余帧的帧信息和相邻帧信息确定其余帧的量化参数,其中,所述其余帧为所述至少一个图像组除所述第一个图像组的首帧之外的帧;
第一编码模块,用于根据所述第一个图像组的首帧的量化参数和所述其余帧的量化参数编码对应帧。
14.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的信息确定方法。
15.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12任一项所述的信息确定方法。
CN202010507987.1A 2020-06-05 2020-06-05 图像编码方法、装置、设备及存储介质 Pending CN113766226A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010507987.1A CN113766226A (zh) 2020-06-05 2020-06-05 图像编码方法、装置、设备及存储介质
PCT/CN2021/095433 WO2021244341A1 (zh) 2020-06-05 2021-05-24 图像编码方法及装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010507987.1A CN113766226A (zh) 2020-06-05 2020-06-05 图像编码方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113766226A true CN113766226A (zh) 2021-12-07

Family

ID=78785190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010507987.1A Pending CN113766226A (zh) 2020-06-05 2020-06-05 图像编码方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN113766226A (zh)
WO (1) WO2021244341A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114051140A (zh) * 2022-01-07 2022-02-15 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备及存储介质
CN114615496A (zh) * 2022-01-28 2022-06-10 阿里巴巴(中国)有限公司 获取量化参数的方法、装置、存储介质及系统
CN115580723A (zh) * 2022-12-09 2023-01-06 中南大学 一种屏幕内容图像的编码优化方法、系统、设备及介质
WO2023142662A1 (zh) * 2022-01-27 2023-08-03 腾讯科技(深圳)有限公司 图像编码方法、实时通信方法、设备、存储介质及程序产品
WO2023246047A1 (zh) * 2022-06-22 2023-12-28 苏州元脑智能科技有限公司 一种jpeg图像压缩的方法、系统、设备和存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114554204A (zh) * 2022-01-20 2022-05-27 珠海全志科技股份有限公司 一种编码图像画质调节方法及装置
CN116567237A (zh) * 2022-01-27 2023-08-08 腾讯科技(深圳)有限公司 视频编码及解码方法、装置、计算机设备和存储介质
CN117676140A (zh) * 2022-09-08 2024-03-08 华为技术有限公司 图像编解码方法、装置、编码器、解码器和系统
CN117676159A (zh) * 2022-09-08 2024-03-08 华为技术有限公司 一种解码方法、编码方法及相关设备
CN116091985B (zh) * 2023-04-12 2023-06-13 云钞机器人科技(北京)有限公司 押运编码方法及押运安防系统
CN116708933B (zh) * 2023-05-16 2024-04-16 深圳东方凤鸣科技有限公司 一种视频编码方法及装置
CN116647704B (zh) * 2023-06-07 2024-03-12 北京富通亚讯网络信息技术有限公司 Hevc数据选项的视频编解码联合差错控制方法
CN116761036B (zh) * 2023-08-21 2023-11-14 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159867B (zh) * 2007-03-31 2010-05-26 红杉树(杭州)信息技术有限公司 一种基于片的自适应码率控制方法
CN101494776B (zh) * 2009-02-13 2011-01-05 北京邮电大学 一种h.264码率控制方法
TWI394462B (zh) * 2010-06-22 2013-04-21 Univ Nat Taiwan 基於視覺感知的位元-失真最佳化位元分配的位元率控制方法
US20180324439A1 (en) * 2017-05-08 2018-11-08 Mediatek Inc. Method and apparatus for adaptive video encoding
CN108989818B (zh) * 2017-05-31 2020-12-08 深圳市中兴微电子技术有限公司 一种图像编码参数调整方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114051140A (zh) * 2022-01-07 2022-02-15 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机设备及存储介质
WO2023142662A1 (zh) * 2022-01-27 2023-08-03 腾讯科技(深圳)有限公司 图像编码方法、实时通信方法、设备、存储介质及程序产品
CN114615496A (zh) * 2022-01-28 2022-06-10 阿里巴巴(中国)有限公司 获取量化参数的方法、装置、存储介质及系统
WO2023246047A1 (zh) * 2022-06-22 2023-12-28 苏州元脑智能科技有限公司 一种jpeg图像压缩的方法、系统、设备和存储介质
CN115580723A (zh) * 2022-12-09 2023-01-06 中南大学 一种屏幕内容图像的编码优化方法、系统、设备及介质

Also Published As

Publication number Publication date
WO2021244341A1 (zh) 2021-12-09

Similar Documents

Publication Publication Date Title
CN113766226A (zh) 图像编码方法、装置、设备及存储介质
CN101743753B (zh) 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
JP5400876B2 (ja) ビデオ符号化のための、スライス依存性に基づくレート制御モデル適合化
KR100295006B1 (ko) 비디오 프레임 시퀀스 인코딩 시스템 및 그 방법, 컴퓨터 프로그램 제품
US20050180502A1 (en) Rate control for video coder employing adaptive linear regression bits modeling
CN108810545B (zh) 用于视频编码的方法、装置、计算机可读介质及电子设备
US7035334B2 (en) Device and method for controlling image encoding, encoding system, transmission system and broadcast system
CN101164344A (zh) 感兴趣区域视频编码的内容自适应背景跳过
KR20010021879A (ko) 코딩 시스템의 매크로 블록 기반 비율을 제어하기 위한장치 및 방법
WO2007143876A1 (en) Method and apparatus for adaptively determining a bit budget for encoding video pictures
US20200068200A1 (en) Methods and apparatuses for encoding and decoding video based on perceptual metric classification
GB2459671A (en) Scene Change Detection For Use With Bit-Rate Control Of A Video Compression System
US11792399B2 (en) Systems and methods for quantization of video content
KR20020077093A (ko) 영상 부호화 장치 및 영상 부호화 프로그램
CN114466189B (zh) 码率控制方法、电子设备及存储介质
CN112543328A (zh) 辅助编码方法、装置、计算机设备及存储介质
CN112752106B (zh) 视频图像帧的编码控制方法、装置及计算机存储介质
US20240040127A1 (en) Video encoding method and apparatus and electronic device
He et al. Efficient rate control in versatile video coding with adaptive spatial-temporal bit allocation and parameter updating
Ngan et al. Improved single-video-object rate control for MPEG-4
Zhao et al. An improved R-λ rate control model based on joint spatial-temporal domain information and HVS characteristics
JPH08102965A (ja) 画像符号化装置
CN112866696A (zh) 4k、8k、16k超高清视频编码优化控制方法和装置
CN112584143A (zh) 一种视频编码方法、装置、系统及计算机可读存储介质
CN117176955A (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