CN106231305B - 基于梯度的全i帧视频码率控制方法及控制系统 - Google Patents

基于梯度的全i帧视频码率控制方法及控制系统 Download PDF

Info

Publication number
CN106231305B
CN106231305B CN201610597711.0A CN201610597711A CN106231305B CN 106231305 B CN106231305 B CN 106231305B CN 201610597711 A CN201610597711 A CN 201610597711A CN 106231305 B CN106231305 B CN 106231305B
Authority
CN
China
Prior art keywords
frame
present frame
parameter
lcu
quantization
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
CN201610597711.0A
Other languages
English (en)
Other versions
CN106231305A (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.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
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 Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201610597711.0A priority Critical patent/CN106231305B/zh
Publication of CN106231305A publication Critical patent/CN106231305A/zh
Application granted granted Critical
Publication of CN106231305B publication Critical patent/CN106231305B/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于梯度的全I帧视频码率控制方法及控制系统。其中,该控制方法包括:步骤1:确定视频中每一帧的平均梯度值;步骤2:对当前帧进行位分配;步骤3:利用相邻帧的平均梯度值确定当前帧是否为场景切换帧;步骤4:当前帧为场景切换帧时,初始化R‑Q模型参数,利用码率‑量化步长R‑Q模型计算当前帧的量化参数;步骤5:基于当前帧的量化参数和当前帧已编码最大编码单元LCU剩余比特数,计算当前帧每一LCU的量化参数;步骤6:更新R‑Q模型中的参数,确定当前视频剩余比特数。本发明通过采用上述技术方案,解决了如何在保证全I帧码率控制精度的前提下,以较低的计算代价,使编码视频质量较好,且保持较小缓冲区占有率的技术问题。

Description

基于梯度的全I帧视频码率控制方法及控制系统
技术领域
本发明实施例涉及视频编码技术领域,具体涉及一种基于梯度的全I帧视频码率控制方法及基于梯度的全I帧视频码率控制系统,但绝不限于此。
背景技术
在视频通信、流媒体传输等视频服务中,码率控制扮演着重要的角色。它控制着输出流,使之满足信道带宽和缓冲区的约束,在此基础上尽可能保证视频质量的失真最小。码率控制的难点在于,给定一个量化参数QP,相同大小的图像,相同的编码方式,图像内容不同,最终编码消耗的比特数也截然不同。因此,当给定一个视频序列,如何选定QP去编码图像,让输出的码流符合带宽限制,且尽可能减小视频失真,同时满足某些视频应用要求的实时性(缓冲区占有率低),一直是热点研究的问题。
码率控制一般分两步进行,第一步是位分配,即根据控制目标为每一帧,甚至每个LCU(最大编码单元)分配一定的比特数;第二步是根据R-Q模型计算量化参数QP,R-Q模型可以是帧级或者LCU级的,并且R-Q模型中会有一个特征量刻画编码单元的复杂度。经典码率控制算法包括MPEG-2的TM5、H.263的TM8、MPEG-4的VM8和H.264的JM18。
上述经典算法都是基于图像组(GOP)的码率控制。由于一个GOP中只有第一帧是I帧,剩余帧都是帧间预测帧(P/B帧),所以考虑码率控制问题的时候通常以P/B帧作为重点,比如TM8中的复杂度是用运动预测后得到的残差系数的方差来衡量;VM8和JM18则是利用运动残差绝对差值(MAD)来衡量复杂度。因此上述算法照搬成全I帧码率控制并不适用。
而相比于基于图像组(GOP)的码率控制,全I帧的码率控制帧与帧之间的编码没有时间依赖性,从而有更好的并行度,在内容创作和后期制作技术方面有广泛的应用,所以全I帧码率控制也是一个值得研究的问题。
有鉴于此,特提出本发明。
发明内容
本发明实施例的主要目的可在于:提供一种基于梯度的全I帧视频码率控制方法,其至少部分地解决了如何在保证全I帧码率控制精度的前提下,以较低的计算代价,使编码视频质量较好,且保持较小缓冲区占有率的技术问题。此外,还提供了一种基于梯度的全I帧视频码率控制系统。
为了实现上述目的,根据本发明的一个方面,提供了以下技术方案:
一种基于梯度的全I帧视频码率控制方法,所述方法可以包括:
步骤1:确定所述视频中每一帧的平均梯度值;
步骤2:根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配;
步骤3:利用相邻帧的平均梯度值确定所述当前帧是否为场景切换帧;
步骤4:在所述当前帧为场景切换帧的情况下,基于所述平均梯度值和所述当前帧的位分配结果,利用码率-量化步长R-Q模型计算所述当前帧的量化参数;
步骤5:基于所述当前帧的量化参数和所述当前帧已编码最大编码单元LCU剩余比特数,计算所述当前帧每一所述LCU的量化参数;
步骤6:基于所述当前帧的所述平均梯度值和所述当前帧每一所述LCU的量化参数,更新所述R-Q模型中的参数,确定当前视频剩余比特数,将所述当前视频剩余比特数返回至步骤2,并将更新后的R-Q模型参数反馈至步骤4,直至视频编码结束。
优选地,所述步骤1具体包括:根据以下公式确定所述视频中每一帧的所述平均梯度值:
其中,所述AG表示所述当前帧的平均梯度值,所述H和所述W分别表示所述每一帧的高度和宽度,所述Pi,j表示所述每一帧中位于(i,j)位置的像素值。
优选地,所述步骤2具体包括:
根据以下公式对所述当前帧进行位分配:
Tk=restk/rest_frame_num
其中,所述k表示帧号;所述Tk表示所述当前帧分配的比特数;所述restk表示编码所述当前帧时视频剩余比特数;所述rest_frame_num表示编码所述当前帧时视频剩余的帧数;
根据以下公式确定编码所述当前帧时的所述缓冲区大小:
其中,所述Bk表示编码所述当前帧时的所述缓冲区大小,B1=0;所述Rk-1表示编码第k-1帧消耗的实际比特数;所述target_bitrate表示目标码率;所述fps表示帧率;
利用以下公式对所述当前帧位分配的结果进行限幅截断:
其中,所述TF表示目标缓冲区比率;所述β表示所述缓冲区饱和度上限。
优选地,所述步骤3具体包括:
根据以下公式确定相邻帧的平均梯度值:
|AG(k)-AG(k-1)|>δ
其中,所述AG(k)表示第k帧的平均梯度值;所述AG(k-1)表示第(k-1)帧的平均梯度值;所述δ表示固定阈值参数;
若上述公式结果为真,则确定所述当前帧为所述场景切换帧;否则,确定所述当前帧不是所述场景切换帧。
优选地,所述步骤4具体包括:
初始化所述R-Q模型中的α参数;
基于所述当前帧位分配的结果和所述当前帧的平均梯度值及所述α参数,利用所述R-Q模型,计算所述当前帧的帧级的量化步长;
根据以下公式计算所述当前帧的量化参数:
QPk=6×log2(Qk/0.85)+12
其中,所述QPk表示所述当前帧的量化参数;所述Qk表示所述当前帧的帧级的量化步长。
优选地,所述方法还包括:
在所述当前帧不为场景切换帧的情况下,利用所述R-Q模型计算所述当前帧的量化参数并进行限幅。
优选地,所述利用所述R-Q模型计算所述当前帧的量化参数并进行限幅,具体包括:
基于所述当前帧位分配的结果和所述当前帧的平均梯度值及所述α参数,利用所述R-Q模型,计算所述当前帧的帧级的量化步长;
根据以下公式计算所述当前帧的量化参数:
QPk=6×log2(Qk/0.85)+12
其中,所述QPk表示所述当前帧的量化参数;所述Qk表示所述当前帧的帧级的量化步长;
根据以下公式对所述当前帧的量化参数进行限幅;
其中,表示前一帧每一LCU的平均量化参数;所述Δ1表示大于0的固定参数。
优选地,所述基于所述当前帧位分配的结果和所述当前帧的平均梯度值及所述α参数,利用所述R-Q模型,计算所述当前帧的帧级的量化步长,具体包括:
根据以下公式计算所述当前帧的帧级的量化步长:
Qk=α×AG(k)×H×W/Tk
其中,所述Qk表示所述当前帧的帧级的所述量化步长;所述H和所述W分别表示每一帧的高度和宽度;所述α表示所述R-Q模型的更新参数;所述Tk表示所述当前帧位分配的结果;所述AG(k)表示所述当前帧的所述平均梯度值。
优选地,所述步骤5具体包括:
在所述当前帧为所述场景切换帧的情况下,根据以下公式计算所述当前帧每一所述LCU的量化参数:
其中,所述表示所述当前帧的第n个所述LCU的量化参数QP;所述QPk表示所述当前帧的量化参数;所述表示所述当前帧第i个所述LCU编码实际消耗的比特数;所述表示编码第k帧的第i个所述LCU时所述当前帧剩余的比特数;所述n表示所述LCU的个数;所述N表示每一帧总的LCU数目;所述γ表示比特反馈控制参数。
优选地,所述步骤5还具体包括:
在所述当前帧不为所述场景切换帧的情况下,根据以下公式计算所述当前帧每一所述LCU的量化参数:
其中,所述表示所述当前帧的第n个所述LCU的量化参数QP;所述QPk表示所述当前帧的量化参数;所述表示所述当前帧第i个所述LCU编码实际消耗的比特数;所述表示编码第k帧的第i个所述LCU时所述当前帧剩余的比特数;所述n表示所述LCU的个数;所述N表示每一帧总的LCU数目;所述γ表示比特反馈控制参数;
根据以下公式对所述当前帧每一所述LCU的所述量化参数进行限幅:
其中,所述Δ2表示大于0的固定参数。
优选地,所述步骤6具体包括:
根据以下公式计算所述当前帧的平均量化参数:
其中,所述表示所述当前帧的平均量化参数;所述表示所述当前帧的第n个所述LCU的量化参数;所述n表示所述LCU的个数;所述N表示每一帧总的所述LCU的数目;
根据以下公式计算所述当前帧的平均量化步长:
其中,所述表示所述当前帧的所述平均量化步长;
根据以下公式确定所述当前帧实际消耗总的比特数:
其中,所述Rk表示所述当前帧实际消耗总的比特数;所述表示所述当前帧每一所述LCU最终消耗的比特数;
根据以下公式更新所述R-Q模型中的α参数:
其中,所述H和所述W分别表示每一帧的高度和宽度;所述AG(k)表示第k帧的平均梯度值;所述αk+1表示编码第k+1帧时的所述R-Q模型的参数;
根据以下公式确定当前视频剩余比特数:
restk=restk-1-Rk
其中,所述restk表示所述当前视频剩余比特数;所述restk-1表示帧级别的剩余比特;
为了实现上述目的,根据本发明的另一个方面,还提供了一种基于梯度的全I帧视频码率控制系统,所述系统至少包括:
平均梯度值确定模块,用于确定所述视频中每一帧的平均梯度值;
位分配模块,用于根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配;
切换帧确定模块,用于利用相邻帧的平均梯度值确定所述当前帧是否为场景切换帧;
第一量化参数计算模块,用于在由所述切换帧确定模块确定所述当前帧为场景切换帧的情况下,基于由所述平均梯度值确定模块确定的所述平均梯度值和由所述位分配模块得到的所述当前帧的位分配结果,利用码率-量化步长R-Q模型计算所述当前帧的量化参数;
第二量化参数计算模块,用于基于由所述第一量化参数计算模块计算的所述当前帧的量化参数和所述当前帧已编码最大编码单元LCU剩余比特数,计算所述当前帧每一所述LCU的量化参数;
处理模块,基于由所述平均梯度值确定模块确定的所述当前帧的所述平均梯度值和由所述第二量化参数计算模块计算的所述当前帧每一所述LCU的量化参数,用于更新所述R-Q模型中的参数,确定当前视频剩余比特数,将所述当前视频剩余比特数反馈至所述位分配模块,并将更新后的R-Q模型参数反馈至所述第一量化参数计算模块,直至视频编码结束。
与现有技术相比,上述技术方案至少具有以下有益效果:
本发明实施例通过计算视频每一帧的平均梯度后,利用相邻帧的梯度差值判断场景切换帧,对场景切换帧和非场景切换帧分开做处理,帧级位分配均采取均分剩余比特数的思路,每一帧的QP通过R-Q模型进行计算得到。如果是场景切换帧,则R-Q模型采用初始值,LCU级的量化参数QP波动较大,每一帧编码完成后更新R-Q模型参数。因此本发明的码率控制方法,具有良好的率-失真性能、缓冲区占有率低、码率稳定及运算复杂度低的优点。
当然,实施本发明的任一产品不一定需要同时实现以上所述的所有优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在所写的说明书、权利要求书以及附图中所特别指出的方法来实现和获得。
附图说明
附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:
图1为根据一示例性实施例示出的基于梯度的全I帧视频码率控制方法的流程示意图;
图2为根据另一示例性实施例示出的基于梯度的全I帧视频码率控制方法的流程示意图;
图3为根据一示例性实施例示出的基于梯度的全I帧视频码率控制系统的结构示意图。
这些附图和文字描述并不旨在以任何方式限制本发明的构思范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的人员理解发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化所在附近的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。
还需要说明的是,在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。
本发明实施例在实际应用过程中,所采用的编码的视频标准可以为HEVC,并对当前剩余帧数和当前视频剩余比特数进行初始化,即:
rest_frame_num=video_length
其中,rest_frame_num表示当前剩余帧数;video_length或total_frame_num表示视频的总帧数;rest1表示开始编码当前帧时视频剩余比特数;target_bitrate表示目标码率;fps表示帧率。
在实际应用中,为了解决了如何在保证全I帧码率控制精度的前提下,以较低的计算代价,使编码视频质量较好,且保持较小缓冲区占有率的技术问题,本发明实施例提出一种基于梯度的全I帧的视频码率控制方法。如图1所示,该方法可以包括:
S100:确定视频中每一帧的平均梯度值。
S110:根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配。
S120:利用相邻帧的平均梯度值确定当前帧是否为场景切换帧。
S130:在当前帧为场景切换帧的情况下,基于平均梯度值和当前帧的位分配结果,利用码率-量化步长R-Q模型计算当前帧的量化参数。
S140:基于当前帧的量化参数和当前帧已编码最大编码单元LCU剩余比特数,计算当前帧每一LCU的量化参数。
S150:基于当前帧的平均梯度值和当前帧每一LCU的量化参数,更新R-Q模型中的参数,确定当前视频剩余比特数,将当前视频剩余比特数返回至步骤S110,并将更新后的R-Q模型参数反馈至步骤S130,直至视频编码结束。
本发明通过采用上述技术方案,计算视频每一帧的平均梯度后,利用相邻帧的梯度差值判断场景切换帧,对场景切换帧和非场景切换帧分开做处理,帧级位分配均采取均分剩余比特数的思路,每一帧的量化参数通过R-Q模型进行计算得到。如果是场景切换帧,则R-Q模型采用初始值,LCU级的量化参数波动较大。每一帧编码完成后更新R-Q模型参数。因此,本发明实施例具有良好的率-失真性能、缓冲区占有率低、码率稳定及运算复杂度低的优点。
下面给通过一优选实施例并结合图2对本发明进行详细的说明。
需要说明的是,本文中所采用的优选不视为实施例的优劣,仅是为了更好地说明本发明。其中:
S200:确定视频中每一帧的平均梯度值。
具体地,根据以下公式确定视频中每一帧的平均梯度值:
其中,AG表示当前帧的平均梯度值,H和W分别表示每一帧的高度和宽度,Pi,j表示每一帧中位于(i,j)位置的像素值。
S210:根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配。
其中,本步骤对当前帧分配一定的比特数。
具体地,本步骤可以通过步骤S211至步骤S213来实现。
S211:根据以下公式对当前帧进行位分配:
Tk=restk/rest_frame_num (2)
其中,k表示帧号,k∈[0,total_frame_num];Tk表示当前帧分配的结果(即当前帧分配的比特数);restk表示编码当前帧时视频剩余比特数;rest_frame_num表示开始编码当前帧时整个视频剩余的帧数。
每编码完一帧图像,对restk更新一次。
S212:根据以下公式确定编码当前帧时的缓冲区大小。
其中,Bk表示开始编码当前帧时的缓冲区大小,B1=0;Rk-1表示编码第k-1帧消耗的实际比特数;target_bitrate表示目标码率;fps表示帧率。
S213:利用以下公式对当前帧位分配的结果进行限幅截断:
其中,TF表示目标缓冲区比率;β表示缓冲区饱和度上限。
优选地,上述β取值为0~1。
S220:利用相邻帧的平均梯度值判断当前帧是否为场景切换帧;若是,则执行步骤S230;否则,执行步骤S240。
其中,本步骤可以根据以下公式确定相邻帧的平均梯度值:
|AG(k)-AG(k-1)|>δ (5)
其中,AG(k)表示第k帧的平均梯度值,δ表示固定阈值参数。
在具体实施过程中,可以将第一帧默认为场景切换帧。若公式(5)为真,则当前帧为场景切换帧;否则,当前帧不是场景切换帧。
S230:基于平均梯度值和当前帧的位分配结果,利用码率-量化步长R-Q模型计算当前帧的量化参数。
具体地,本步骤可以通过步骤S231至步骤S233来实现。
S231:初始化码率-量化步长(R-Q)模型中的α参数。
其中,α是一个不断更新的模型参数。本步骤使α=α0,α0可以是根据大量实验得到的一个经验值。
S232:基于当前帧分配的结果和当前帧的平均梯度值AG(k)及α参数,利用R-Q模型,计算当前帧的帧级的量化步长。
具体地,本步骤可以利用以下公式计算当前帧的帧级的量化步长Qk
Qk=α×AG(k)×H×W/Tk (6)
其中,H和W分别表示每一帧图像的高度和宽度;Tk表示当前帧分配的比特数;AG(k)表示当前帧的平均梯度值。
S233:根据以下公式计算当前帧的量化参数:
QPk=6×log2(Qk/0.85)+12 (7)
其中,QPk表示当前帧的量化参数。
在实际实施过程中,可以根据不同的视频标准,将量化步长Qk转换为量化参数QPk
S240:基于平均梯度值和当前帧的位分配结果,利用R-Q模型计算当前帧的量化参数并进行限幅。
其中,在非场景切换帧编码的情况下,LCU级的量化参数QP波动较小。另外,在这种情况下,无需对R-Q模型的α参数进行初始化。
具体地,本步骤可以通过步骤S241至步骤S244来实现。
S241:本步骤同步骤S232。
相关说明参见步骤S232的说明,在此不再赘述。
S242:本步骤同步骤S233。
相关说明参见步骤S233的说明,在此不再赘述。
S243:根据以下公式对当前帧的量化参数进行限幅;
其中,表示前一帧每个LCU的平均量化参数;Δ1表示大于0的固定参数,优选地,Δ1的预设值为0.5。
S250:基于当前帧的量化参数和当前帧已编码最大编码单元LCU剩余比特数,计算当前帧每个LCU的量化参数。
具体地,在当前帧为场景切换帧的情况下,根据以下公式计算当前帧每个LCU的量化参数QP:
其中,表示当前帧的第n个LCU的量化参数QP;n表示LCU的个数;QPk表示当前帧的量化参数;表示当前帧第i个LCU编码实际消耗的比特数;表示编码第k帧的第i个LCU时当前帧剩余的比特数;N表示每一帧总的LCU数目;γ表示比特反馈控制参数,若当前帧是场景切换帧,则γ设置成较大,优选地,γ的预设值可以为40;若当前帧不是场景切换帧,则将γ设置成较小,优选地,γ的预设值可以为20。
表示将第一个LCU的QP初始化为当前帧的帧级QP。
本步骤中的是LCU级别的剩余比特,表示第k帧的第i个LCU对应的剩余比特。当i=1时,即开始编码第k帧的第一个LCU时,满足当i>1时,就随着每个LCU的编码而逐渐减少,而restk要等到编码下一帧的时候才更新。
如果当前帧不是场景切换帧,在根据公式(9)和(10)计算当前帧每个LCU的量化参数QP之后,再根据以下公式对QP进行限幅:
其中,Δ2表示大于0的固定参数,优选地,Δ2预设值为0.5。
得到当前帧每个LCU的量化参数之后,可以对当前帧每一个LCU的量化参数进行编码,例如可以通过如下步骤实现:
对于第一个LCU,根据做率失真优化,得到最优的划分模式和预测模式,进而得到该LCU对应的残差系数矩阵。对残差系数矩阵进行量化。进行熵编码,变成二进制比特流。编码当前LCU最终消耗的比特数为得到当前帧剩余比特数为对于第n个LCU,编码当前LCU最终消耗的比特数为当前帧剩余比特数
S260:基于当前帧的平均梯度值和当前帧每一LCU的量化参数,更新R-Q模型中的参数,确定当前视频剩余比特数,将当前视频剩余比特数返回至步骤S110,并将更新后的R-Q模型参数反馈至步骤S230,直至视频编码结束。
在本步骤中,将处理当前帧用到的R-Q模型中的参数更新完之后,利用更新后的R-Q模型参数进行下一帧的处理,以此不断更新R-Q模型参数,进行后续帧的处理。
具体地,本步骤可以通过步骤S261至步骤S265来实现。
S261:根据以下公式计算当前帧的平均量化参数
其中,表示当前帧的平均量化参数;表示当前帧的第n个LCU的量化参数QP;n表示LCU的个数;N表示每一帧总的LCU的数目。
S262:根据以下公式计算当前帧的平均量化步长
S263:根据以下公式确定当前帧实际消耗总的比特数:
其中,Rk表示当前帧实际消耗总的比特数;表示当前帧每个LCU最终消耗的比特数。
在实际应用中,当前帧每个LCU最终消耗的比特数可以通过其他方式预先获得。
S264:根据以下公式更新R-Q模型中的α参数:
其中,αk+1表示编码第k+1帧时的R-Q模型参数;Rk表示编码第k帧消耗的实际比特数;表示当前帧的平均量化步长;表示当前帧的所有LCU的QP的平均值;H和W分别表示每一帧的高度和宽度;AG(k)表示第k帧的平均梯度值。
当前帧完成编码后,根据公式(15)和(16)对α参数进行更新,以使用新的α参数对后续帧进行处理。
S265:根据以下公式确定当前视频剩余比特数:
restk=restk-1-Rk
其中,restk表示当前视频剩余比特数;restk-1是帧级别的剩余比特。
上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。
基于与方法实施例相同的技术构思,本发明实施例还提供一种基于梯度的全I帧视频码率控制系统。该全I帧视频码率控制系统可以执行上述图1或图2所示方法实施例所描述的步骤。如图3所示,该全I帧视频码率控制系统300可以包括:平均梯度值确定模块301、位分配模块302、切换帧确定模块303、第一量化参数计算模块304、第二量化参数计算模块305和处理模块306。其中,平均梯度值确定模块301用于确定视频中每一帧的平均梯度值。位分配模块302用于根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配。切换帧确定模块303用于利用相邻帧的平均梯度值确定当前帧是否为场景切换帧。第一量化参数计算模块304用于在由切换帧确定模块确定当前帧为场景切换帧的情况下,基于由平均梯度值确定模块确定的平均梯度值和由位分配模块得到的当前帧的位分配结果,利用码率-量化步长R-Q模型计算当前帧的量化参数。第二量化参数计算模块305用于基于由第一量化参数计算模块计算的当前帧的量化参数和当前帧已编码最大编码单元LCU剩余比特数,计算当前帧每一LCU的量化参数。处理模块306基于由平均梯度值确定模块确定的当前帧的平均梯度值和由第二量化参数计算模块计算的当前帧每一LCU的量化参数,用于更新R-Q模型中的参数,确定当前视频剩余比特数,将当前视频剩余比特数返回至步骤2,并利用更新后的R-Q模型参数进行下一帧的处理,直至视频编码结束。
需要说明的是,上述实施例提供的基于梯度的全I帧视频码率控制系统在进行码率控制时,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本领域技术人员可以理解,上述基于梯度的全I帧视频码率控制系统还包括一些其他公知结构,例如处理器、控制器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构未在图3中示出。
应该理解,图3中的各个模块的数量仅仅是示意性的。根据实际需要,可以具有任意数量的各模块。
上述系统实施例可以用于执行上述方法实施例,其技术原理、所解决的技术问题及产生的技术效果相似,所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
应指出的是,上面分别对本发明的系统实施例和方法实施例进行了描述,但是对一个实施例描述的细节也可应用于另一个实施例。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。本领域技术人员应该理解:本发明实施例中的模块或者步骤还可以再分解或者组合。例如上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上对本发明实施例所提供的技术方案进行了详细的介绍。虽然本文应用了具体的个例对本发明的原理和实施方式进行了阐述,但是,上述实施例的说明仅适用于帮助理解本发明实施例的原理;同时,对于本领域技术人员来说,依据本发明实施例,在具体实施方式以及应用范围之内均会做出改变。
需要说明的是,本文中涉及到的流程图或框图不仅仅局限于本文所示的形式,其还可以进行划分和/或组合。
需要说明的是:附图中的标记和文字只是为了更清楚地说明本发明,不视为对本发明保护范围的不当限定。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。应该理解这样使用的数据在适当的情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
术语“包括”、“包含”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
如本文中所使用的,术语“模块”可以指代在计算系统上执行的软件对象或例程亦或数据结构。可以将本文中所描述的不同模块实现为在计算系统上执行的对象或过程(例如,作为独立的线程)。虽然优选地以软件来实现本文中所描述的系统和方法,但是以硬件或者软件和硬件的组合的实现也是可以的并且是可以被设想的。
本发明的各个步骤可以用通用的计算装置来实现,例如,它们可以集中在单个的计算装置上,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备或者多处理器装置,也可以分布在多个计算装置所组成的网络上,它们可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明不限于任何特定的硬件和软件或者其结合。
本发明提供的方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件或程序模块(其包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件或数据结构等等),例如根据本发明的实施例可以是一种计算机程序产品,运行该计算机程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现所述方法。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可以从计算机主体上拆卸下来的可移动介质(例如:采用热插拔技术的存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如:RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。

Claims (12)

1.一种基于梯度的全I帧视频码率控制方法,其特征在于,所述方法至少包括:
步骤1:确定所述视频中每一帧的平均梯度值;
步骤2:根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配;
步骤3:利用相邻帧的平均梯度值确定所述当前帧是否为场景切换帧;
步骤4:在所述当前帧为场景切换帧的情况下,基于所述平均梯度值和所述当前帧的位分配结果,利用码率-量化步长R-Q模型计算所述当前帧的量化参数;
步骤5:基于所述当前帧的量化参数和所述当前帧已编码最大编码单元LCU剩余比特数,计算所述当前帧每一所述LCU的量化参数;
步骤6:基于所述当前帧的所述平均梯度值和所述当前帧每一所述LCU的量化参数,更新所述码率-量化步长R-Q模型中的参数,确定当前视频剩余比特数,将所述当前视频剩余比特数返回至步骤2,并将更新后的码率-量化步长R-Q模型参数反馈至步骤4,直至视频编码结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤1具体包括:根据以下公式确定所述视频中每一帧的所述平均梯度值:
其中,所述AG表示所述当前帧的平均梯度值,所述H和所述W分别表示所述每一帧的高度和宽度,所述Pi,j表示所述每一帧中位于(i,j)位置的像素值。
3.根据权利要求1所述的方法,其特征在于,所述步骤2具体包括:
根据以下公式对所述当前帧进行位分配:
Tk=restk/rest_frame_num
其中,所述k表示帧号;所述Tk表示所述当前帧分配的比特数;所述restk表示编码所述当前帧时视频剩余比特数;所述rest_frame_num表示编码所述当前帧时视频剩余的帧数;
根据以下公式确定编码所述当前帧时的所述缓冲区大小:
其中,所述Bk表示编码所述当前帧时的所述缓冲区大小,B1=0;所述Rk-1表示编码第k-1帧消耗的实际比特数;所述target_bitrate表示目标码率;所述fps表示帧率;
利用以下公式对所述当前帧的位分配结果进行限幅截断:
其中,所述TF表示目标缓冲区比率;所述β表示所述缓冲区饱和度上限。
4.根据权利要求1所述的方法,其特征在于,所述步骤3具体包括:
根据以下公式确定相邻帧的平均梯度值:
|AG(k)-AG(k-1)|>δ
其中,所述AG(k)表示第k帧的平均梯度值;所述AG(k-1)表示第(k-1)帧的平均梯度值;所述δ表示固定阈值参数;
若上述公式结果为真,则确定所述当前帧为所述场景切换帧;否则,确定所述当前帧不是所述场景切换帧。
5.根据权利要求1所述的方法,其特征在于,所述步骤4具体包括:
初始化所述码率-量化步长R-Q模型中的α参数;
基于所述当前帧的位分配结果和所述当前帧的平均梯度值及所述α参数,利用所述码率-量化步长R-Q模型,计算所述当前帧的帧级的量化步长;
根据以下公式计算所述当前帧的量化参数:
QPk=6×log2(Qk/0.85)+12
其中,所述QPk表示所述当前帧的量化参数;所述Qk表示所述当前帧的帧级的量化步长。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前帧不为场景切换帧的情况下,利用所述码率-量化步长R-Q模型计算所述当前帧的量化参数并进行限幅。
7.根据权利要求6所述的方法,其特征在于,所述利用所述码率-量化步长R-Q模型计算所述当前帧的量化参数并进行限幅,具体包括:
基于所述当前帧的位分配结果和所述当前帧的平均梯度值及所述码率-量化步长R-Q模型中的α参数,利用所述码率-量化步长R-Q模型,计算所述当前帧的帧级的量化步长;
根据以下公式计算所述当前帧的量化参数:
QPk=6×log2(Qk/0.85)+12
其中,所述QPk表示所述当前帧的量化参数;所述Qk表示所述当前帧的帧级的量化步长;
根据以下公式对所述当前帧的量化参数进行限幅;
其中,表示前一帧每一LCU的平均量化参数;所述Δ1表示大于0的固定参数。
8.根据权利要求5或7所述的方法,其特征在于,所述基于所述当前帧的位分配结果和所述当前帧的平均梯度值及所述α参数,利用所述码率-量化步长R-Q模型,计算所述当前帧的帧级的量化步长,具体包括:
根据以下公式计算所述当前帧的帧级的量化步长:
Qk=α×AG(k)×H×W/Tk
其中,所述Qk表示所述当前帧的帧级的所述量化步长;所述H和所述W分别表示每一帧的高度和宽度;所述α表示所述码率-量化步长R-Q模型的更新参数;所述Tk表示所述当前帧分配的比特数;所述AG(k)表示所述当前帧的所述平均梯度值。
9.根据权利要求1所述的方法,其特征在于,所述步骤5具体包括:
在所述当前帧为所述场景切换帧的情况下,根据以下公式计算所述当前帧每一所述LCU的量化参数:
其中,所述表示所述当前帧的第n个所述LCU的量化参数QP;所述QPk表示所述当前帧的量化参数;所述表示所述当前帧第i个所述LCU编码实际消耗的比特数;所述表示编码第k帧的第i个所述LCU时所述当前帧剩余的比特数;所述n表示所述LCU的个数;所述N表示每一帧总的LCU数目;所述γ表示比特反馈控制参数。
10.根据权利要求1所述的方法,其特征在于,所述步骤5还具体包括:
在所述当前帧不为所述场景切换帧的情况下,根据以下公式计算所述当前帧每一所述LCU的量化参数:
其中,所述表示所述当前帧的第n个所述LCU的量化参数QP;所述QPk表示所述当前帧的量化参数;所述表示所述当前帧第i个所述LCU编码实际消耗的比特数;所述表示编码第k帧的第i个所述LCU时所述当前帧剩余的比特数;所述n表示所述LCU的个数;所述N表示每一帧总的LCU数目;所述γ表示比特反馈控制参数;
根据以下公式对所述当前帧每一所述LCU的所述量化参数进行限幅:
其中,所述Δ2表示大于0的固定参数。
11.根据权利要求1所述的方法,其特征在于,所述步骤6具体包括:
根据以下公式计算所述当前帧的平均量化参数:
其中,所述表示所述当前帧的平均量化参数;所述表示所述当前帧的第n个所述LCU的量化参数;所述n表示所述LCU的个数;所述N表示每一帧总的所述LCU的数目;
根据以下公式计算所述当前帧的平均量化步长:
其中,所述表示所述当前帧的所述平均量化步长;
根据以下公式确定所述当前帧实际消耗总的比特数:
其中,所述Rk表示所述当前帧实际消耗总的比特数;所述表示所述当前帧每一所述LCU最终消耗的比特数;
根据以下公式更新所述码率-量化步长R-Q模型中的α参数:
其中,所述H和所述W分别表示每一帧的高度和宽度;所述AG(k)表示第k帧的平均梯度值;所述αk+1表示编码第k+1帧时的所述码率-量化步长R-Q模型的参数;
根据以下公式确定当前视频剩余比特数:
restk=restk-1-Rk
其中,所述restk表示所述当前视频剩余比特数;所述restk-1表示帧级别的剩余比特。
12.一种基于梯度的全I帧视频码率控制系统,其特征在于,所述系统至少包括:
平均梯度值确定模块,用于确定所述视频中每一帧的平均梯度值;
位分配模块,用于根据视频剩余比特数和缓冲区饱和情况对当前帧进行位分配;
切换帧确定模块,用于利用相邻帧的平均梯度值确定所述当前帧是否为场景切换帧;
第一量化参数计算模块,用于在由所述切换帧确定模块确定所述当前帧为场景切换帧的情况下,基于由所述平均梯度值确定模块确定的所述平均梯度值和由所述位分配模块得到的所述当前帧的位分配结果,利用码率-量化步长R-Q模型计算所述当前帧的量化参数;
第二量化参数计算模块,用于基于由所述第一量化参数计算模块计算的所述当前帧的量化参数和所述当前帧已编码最大编码单元LCU剩余比特数,计算所述当前帧每一所述LCU的量化参数;
处理模块,基于由所述平均梯度值确定模块确定的所述当前帧的所述平均梯度值和由所述第二量化参数计算模块计算的所述当前帧每一所述LCU的量化参数,用于更新所述码率-量化步长R-Q模型中的参数,确定当前视频剩余比特数,将所述当前视频剩余比特数反馈至所述位分配模块,并将更新后的码率-量化步长R-Q模型参数反馈至所述第一量化参数计算模块,直至视频编码结束。
CN201610597711.0A 2016-07-26 2016-07-26 基于梯度的全i帧视频码率控制方法及控制系统 Active CN106231305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610597711.0A CN106231305B (zh) 2016-07-26 2016-07-26 基于梯度的全i帧视频码率控制方法及控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610597711.0A CN106231305B (zh) 2016-07-26 2016-07-26 基于梯度的全i帧视频码率控制方法及控制系统

Publications (2)

Publication Number Publication Date
CN106231305A CN106231305A (zh) 2016-12-14
CN106231305B true CN106231305B (zh) 2019-04-12

Family

ID=57534384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610597711.0A Active CN106231305B (zh) 2016-07-26 2016-07-26 基于梯度的全i帧视频码率控制方法及控制系统

Country Status (1)

Country Link
CN (1) CN106231305B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109413427B (zh) * 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 一种视频帧编码方法及终端
CN108200431B (zh) * 2017-12-08 2021-11-16 重庆邮电大学 一种视频编码码率控制帧层比特分配方法
CN111050169B (zh) * 2018-10-15 2021-12-14 华为技术有限公司 图像编码中量化参数的生成方法、装置及终端
CN111429142B (zh) * 2020-06-10 2020-09-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252689A (zh) * 2008-02-29 2008-08-27 杭州爱威芯科技有限公司 一种自适应的码率控制方法
CN101677398A (zh) * 2008-09-19 2010-03-24 三星电子株式会社 场景切换码率控制方法
CN102355584A (zh) * 2011-10-31 2012-02-15 电子科技大学 基于帧内预测编码模式的码率控制方法
CN102932641A (zh) * 2012-11-13 2013-02-13 北京大学 一种恒定质量码率控制方法
CN103561266A (zh) * 2013-11-06 2014-02-05 北京牡丹电子集团有限责任公司数字电视技术中心 基于对数r-q模型和层次化比特分配的码率控制方法
CN103888765A (zh) * 2014-03-27 2014-06-25 天格科技(杭州)有限公司 一种改进型R-λ模型H.265码率控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252689A (zh) * 2008-02-29 2008-08-27 杭州爱威芯科技有限公司 一种自适应的码率控制方法
CN101677398A (zh) * 2008-09-19 2010-03-24 三星电子株式会社 场景切换码率控制方法
CN102355584A (zh) * 2011-10-31 2012-02-15 电子科技大学 基于帧内预测编码模式的码率控制方法
CN102932641A (zh) * 2012-11-13 2013-02-13 北京大学 一种恒定质量码率控制方法
CN103561266A (zh) * 2013-11-06 2014-02-05 北京牡丹电子集团有限责任公司数字电视技术中心 基于对数r-q模型和层次化比特分配的码率控制方法
CN103888765A (zh) * 2014-03-27 2014-06-25 天格科技(杭州)有限公司 一种改进型R-λ模型H.265码率控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
H.264中一种基于R-Q模型的自适应码率控制算法研究;郑新资;《通信学报》;20121230;第33卷(第12期);第35-42页 *
基于梯度的HEVC帧内码率控制算法;姚路欢;《科学技术与工程》;20160331;第16卷(第8期);第206-211页 *

Also Published As

Publication number Publication date
CN106231305A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
CN106231305B (zh) 基于梯度的全i帧视频码率控制方法及控制系统
US9716891B2 (en) Quantization method and apparatus in encoding/decoding
TWI511544B (zh) 用於可調適視訊串流之技術
US8135061B1 (en) Variable bit rate encoding
US20060233237A1 (en) Single pass constrained constant bit-rate encoding
CN107371036B (zh) 图像编码设备和方法以及图像解码设备和方法
CN103826124A (zh) 管理用于并行转码的编码器参数
US11792398B2 (en) Video encoding
US20180184089A1 (en) Target bit allocation for video coding
US7302000B2 (en) Method and system for two-pass video encoding using sliding windows
JP2011512047A (ja) メタデータを使用してより低い複雑さの複数ビットレートビデオ符号化を実行する方法及び装置
US8090020B2 (en) Moving picture encoding device, fade scene detection device and storage medium
WO2009157579A1 (ja) 画像処理装置及び画像処理方法
EP3202145B1 (en) Encoding and decoding a video frame in separate processing units
CN112087628A (zh) 使用两级帧内搜索对视频进行编码
US20120051420A1 (en) Method and apparatus for encoding
CN112272299A (zh) 一种视频编码的方法、装置、设备和存储介质
JP7449941B2 (ja) 異なる圧縮レベルでのビデオコーディングのためのサイド情報
JP4784650B2 (ja) 符号化装置、目標符号量調整方法及び記録媒体
EP4333433A1 (en) Video coding method and apparatus, and electronic device
KR20140068137A (ko) 인트라 인코딩된 이미지 블록들을 위한 적응적 양자화
Li et al. A novel rate control scheme for video over the internet
US8731282B1 (en) Systems and methods for region of interest background smoothing and compression enhancement
US11997275B2 (en) Benefit-based bitrate distribution for video encoding
Sun et al. New bufferless rate control for high efficiency video coding

Legal Events

Date Code Title Description
C06 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