CN101489138A - 基于场景的二次编码图像组划分方法 - Google Patents

基于场景的二次编码图像组划分方法 Download PDF

Info

Publication number
CN101489138A
CN101489138A CN 200910300383 CN200910300383A CN101489138A CN 101489138 A CN101489138 A CN 101489138A CN 200910300383 CN200910300383 CN 200910300383 CN 200910300383 A CN200910300383 A CN 200910300383A CN 101489138 A CN101489138 A CN 101489138A
Authority
CN
China
Prior art keywords
frame
scene
img
coding
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200910300383
Other languages
English (en)
Other versions
CN101489138B (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN 200910300383 priority Critical patent/CN101489138B/zh
Publication of CN101489138A publication Critical patent/CN101489138A/zh
Application granted granted Critical
Publication of CN101489138B publication Critical patent/CN101489138B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种视频信号处理技术,尤其涉及一种基于场景的二次编码图像组划分方法。本发明公开一种基于场景的二次编码GOP划分方法,解决在场景切换时产生图像质量下降的问题,提高视频编码重建图像的稳定性。其技术方案的要点是:包括以下步骤:a.对视频序列进行第一次编码,统计场景切换的位置;b.第二次编码中,根据第一次编码中场景切换位置,进行新的GOP划分,并完成该GOP的初始化;c.编码该GOP图像时,计算每帧图像的帧号;d.对该GOP中每帧图像进行优化编码。本发明的有益效果是:避免了在场景切换时图像质量下降的情况,提高视频编码重建图像的稳定性,适用于对视频信号的处理。

Description

基于场景的二次编码图像组划分方法
技术领域
本发明涉及一种视频信号处理技术,尤其涉及一种基于场景的二次编码图像组划分方法。
背景技术
在现有视频编码中,通常采用固定图像组(以下简称GOP)结构进行编码。当场景发生切换或图像运动剧烈时,由于使用前一帧相同位置基本单元的MAD(Mean AbsoluteDifference,平均绝对误差)值线性预测当前基本单元的MAD值,导致当前帧MAD值以及QP(量化参数)预测不准确,并且由于编码过程中通常采用CBR(Constant Bit Rate,恒定比特率)码率控制技术对整个视频序列平均分配码率,往往使得场景切换以及运动剧烈的图像质量急剧下降,影响了视频编码重建图像的稳定性,甚至造成马赛克现象。综上,现有技术产生这些缺陷的根本原因是:未对场景切换后的GOP进行重新划分。
发明内容
本发明所要解决的技术问题是:针对现有技术的不足,提出一种基于场景的二次编码GOP划分方法,解决在场景切换时产生图像质量下降的问题,提高视频编码重建图像的稳定性。
本发明解决上述技术问题采用的技术方案是:基于场景的二次编码GOP划分方法,包括以下步骤:
a.对视频序列进行第一次编码,统计场景切换的位置;
b.第二次编码中,根据第一次编码中场景切换位置,进行新的GOP划分,并完成该GOP的初始化;
c.编码该GOP图像时,计算每帧图像的帧号;
d.对该GOP中每帧图像进行优化编码。
所述步骤b中,具体划分GOP的方法为:
设任意一帧图像对应的帧号为frame_no,I帧或P帧对应的帧号为Img_no;
b1:无B帧时GOP划分方法:
如果该场景为第一个场景或场景标志位为真,可以判断场景发生切换,开始新的GOP初始化:将场景切换帧强制编码为I帧,在第一次编码中得到了该场景的长度Ns(i),则在第二次编码中该场景编码的P帧数目为np2,s(i)=Ns(i)-1,对于非场景切换的帧按照正常的编码结构进行编码;
b2:有B帧时GOP划分方法:
当有B帧插入时,假设连续插入B帧的数目为Bno,记M=Bno+1;场景标志位为真或者场景为第一个场景时,可以判断场景发生切换,开始新的GOP初始化:将场景切换帧强制编码为I帧,在第一次编码中得到了该场景的长度Ns(i),则在第二次编码中该场景中的P帧的数目为:np2,s(i)=[Ns(i)-1]/M+[Ns(i)-1]%M,该场景中B帧的数目为nb2,s(i)=Ns(i)-np2,s(i)-1;如果待编码的B帧图像位于场景尾部时,将其强制编码为P帧;统计在第一次编码中如果插入B帧时应编码的P帧数目np1,s(i),判断的方法是,如果[Starts(i)%M]=0则np1,s(i)=[Ns(i)-1]/M+1,否则np1,s(i)=(Ns(i)-M+[Starts(i)%M-1])/M+1;同时,需要计算该场景在第二次编码中开始编码最后一组B帧时已编码的I帧和P帧总数NIP(i);将上一GOP中得到的NIP(i-1)和Np1,s(i-1)用于更新当前GOP中的初始值Img_no,相应的方法是:如果NIP(i-1)>Np1,s(i-1),则Img_no计数更新为Img_no-[NIP(i-1)-Np1,s(i-1)],否则Img_no的计数不改变。
所述步骤c中,计算每帧图像的帧号的方法是:假设该场景中已编码的B帧和P帧的帧数分别为nb_account(i)和np_account(i),这两个值在该GOP初始化时设置为0;设第二次编码时该场景应编码的B帧数目为nb2,s(i);如果[Starts(i)%M]≠0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M],如果[Starts(i)%M]=0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M,如果[Starts(i)%M]≠0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M]+np_account,如果[Starts(i)%M]=0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M+np_account;在计算B帧的帧号时,需要首先计算上一个P帧的帧号prevP_no和下一个P帧的帧号nextP_no,其中prevP_no的计算方法为(Img_no-1)×M-[M-Starts(i)%M],相应地,nextP_no的计算方法为(Img_no+1)×M-[M-Starts(i)%M],该B帧的帧号为frame_no=prevP_no+Bno×nb_code,其中nb_code为每次插入B帧时该B帧所处的位置,其值间于[1,Bno]之间。
本发明的有益效果是:避免了在场景切换时图像质量下降的情况,提高视频编码重建图像的稳定性。
具体实施方式
下面结合实施例对本发明作进一步的描述。
本发明所要解决的技术问题是:针对现有技术的不足,提出一种基于场景的二次编码GOP划分方法,解决在场景切换时产生图像质量下降的问题,提高视频编码重建图像的稳定性。
实施例:
本例中的二次编码GOP划分方法可采用以下步骤实现:
(a)初始化视频信号的初始量化参数,设定编码帧率以及相关编码参数,判断待编码视频序列的编码次数,如果为第一次编码,则执行b进行第一次编码,否则,进入步骤c进行第二次编码。
(b)在第一次编码过程中,采用固定QP进行编码,编码结构采用IPPP模式,只对视频序列首帧编码为I帧,关闭码率控制选项,开启RDO(率失真优化)。假设Fn为第二次编码中设置的编码帧数,连续插入B帧的数目为Bno,则在第一次和第二次编码过程中需要编码的实际帧数为Ntotal=Fn+(Fn-1)×Bno。在第一次编码中采用场景检测算法,记录第i个场景的起始和结束位置分别为Starts(i)和Ends(i),可以确定该场景的帧长度为Ns(i)。设置场景切换的标志位Scene_flag(i),如果发生场景切换,则该标志位设置为1,否则设置为0。
(c)在第二次编码过程中,编码结构支持插入B帧编码,开启码率控制和RDO。假设任意一帧图像对应的帧号为frame_no,I帧或P帧对应的帧号为Img_no。如果在第二次编码中无B帧插入,则进入步骤d,否则进入步骤e。
(d)当没有B帧插入时,如果该场景为第一个场景或Scene_flag(i)为真,可以判断场景发生切换,即开始新的GOP初始化:将场景切换帧强制编码为I帧,由于在第一次编码中得到了该场景的长度Ns(i),则在第二次编码中该场景编码的P帧数目为np2,s(i)=[Ns(i)-1],对于非场景切换的帧按照正常的编码结构进行编码。
(e)当有B帧插入时,假设连续插入B帧的数目为Bno,记M=Bno+1。当一帧图像编码完成时,记录该帧的frame_no并结合场景切换标志位判断场景是否发生切换,相应的方法是如果场景标志位为真,或者场景为第一个场景时,可以判断场景发生切换,即开始新的GOP初始化:将场景切换帧编码为I帧,由于在第一次编码中得到了该场景的长度Ns(i),该场景中P帧的数目计算公式为np2,s(i)=[Ns(i)-1]/M+[Ns(i)-1]%M,则该GOP中B帧的数目为nb2,s(i)=Ns(i)-np2,s(i)-1。假设该场景中已编码的B帧和P帧的帧数分别为nb_account(i)和np_account(i),这两个值在每个GOP初始化时设置为0。由于B帧编码采用双向预测模式,对当前待编码的B帧图像,需要先编码其前后两个参考帧。如果待编码的B帧图像位于场景尾部时,由于前后两个场景的相关性很小,对于当前场景尾部的B帧图像,不应让其参考下一场景的P帧图像,而将这些多余的B帧图像(其帧数间于[0,Bno]之间)强制编码为P帧,消除了固定GOP结构中B帧图像参考其下一场景的图像。由于本方法改变了编码图像的顺序及结构,在第二次编码中需要统计在第一次编码中如果插入B帧时应编码的P帧数目np1,s(i),判断的方法是,如果[Starts(i)%M]=0(该公式含义为:第i个场景的起始帧号Starts(i)与M的余数为0),则np1,s(i)=[Ns(i)-1]/M+1,否则np1,s(i)=(Ns(i)M+[Starts(i)%M-1])/M+1。同时,需要计算该场景在第二次编码中开始编码最后一组B帧时已编码的I帧和P帧总数NIP(i)。为了使得两次编码中编码每一个场景时Img_no的起始位置相同,应将上一GOP中得到的NIP(i-1)(表示前一GOP在第二次编码中开始编码最后一组B帧时已编码的I帧和P帧总数)和np1,s(i-1)(表示前一GOP在第一次编码中如果插入B帧时应该编码的P帧的数目)用于更新当前GOP中的初始值Img_no。相应的方法是如果NIP(i-1)>np1,s(i-1),则Img_no计数更新为Img_no-[NIP(i-1)-Np1,s(i-1)],否则Img_no的计数不改变。然后进入步骤f。
(f)在第二次编码中,在编码该场景某帧图像时,需要读取该帧的帧号frame_no。计算I帧或P帧帧号的方法为:如果[Starts(i)%M]≠0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M],如果[Starts(i)%M]=0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M,如果[Starts(i)%M]≠0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M]+np_account,如果[Starts(i)%M]=0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M+np_account。在计算B帧的帧号时,需要首先计算上一个P帧的帧号prevP_no和下一个P帧的帧号nextP_no,其中prevP_no的计算方法为(Img_no-1)×M-[M-Starts(i)%M],相应地,nextP_no的计算方法为(Img_no+1)×M-[M-Starts(i)%M],该B帧的帧号为frame_no=prevP_no+Bno×nb_code,其中nb_code为每次插入B帧时该B帧所处的位置,其值间于[1,Bno]之间。

Claims (3)

  1. 【权利要求1】基于场景的二次编码图像组划分方法,其特征在于:包括以下步骤:
    a.对视频序列进行第一次编码,统计场景切换的位置;
    b.第二次编码中,根据第一次编码中场景切换位置,进行新的图像组划分,并完成该图像组的初始化;
    c.编码该图像组图像时,计算每帧图像的帧号;
    d.对该图像组中每帧图像进行优化编码。
  2. 【权利要求2】如权利要求1所述的基于场景的二次编码图像组划分方法,其特征在于:所述步骤b中,具体划分图像组的方法为:
    设任意一帧图像对应的帧号为frame_no,I帧或P帧对应的帧号为Img_no;
    b1:无B帧时图像组划分方法:
    如果该场景为第一个场景或场景标志位为真,可以判断场景发生切换,开始新的图像组初始化:将场景切换帧强制编码为I帧,在第一次编码中得到了该场景的长度Ns(i),则在第二次编码中该场景编码的P帧数目为np2,s(i)=Ns(i)-1,对于非场景切换的帧按照正常的编码结构进行编码;
    b2:有B帧时图像组划分方法:
    当有B帧插入时,假设连续插入B帧的数目为Bno,记M=Bno+1;场景标志位为真或者场景为第一个场景时,可以判断场景发生切换,开始新的图像组初始化:将场景切换帧强制编码为I帧,在第一次编码中得到了该场景的长度Ns(i),在第二次编码中该场景中的P帧的数目为:np2,s(i)=[Ns(i)-1]/M+[Ns(i)-1]%M,该场景中B帧的数目为nb2,s(i)=Ns(i)-np2,s(i)-1;如果待编码的B帧图像位于场景尾部时,将其强制编码为P帧;统计在第一次编码中如果插入B帧时应编码的P帧数目np1,s(i),判断的方法是,如果[Starts(i)%M]=0则np1,s(i)=[Ns(i)-1]/M+1,否则np1,s(i)=(Ns(i)-M+[Starts(i)%M-1])/M+1;同时,需要计算该场景在第二次编码中开始编码最后一组B帧时已编码的I帧和P帧总数NIP(i);将上一图像组中得到的NIP(i-1)和Np1,s(i-1)用于更新当前图像组中的初始值Img_no,相应的方法是:如果NIP(i-1)>Np1,s(i-1),则Img_no计数更新为Img_no-[NIP(i-1)-Np1,s(i-1)],否则Img_no的计数不改变。
  3. 【权利要求3】如权利要求2所述的基于场景的二次编码图像组划分方法,其特征在于:所述步骤c中,计算每帧图像的帧号的方法是:假设该场景中已编码的B帧和P帧的帧数分别为nb_account(i)和np_account(i),这两个值在该图像组初始化时设置为0;设第二次编码时该场景应编码的B帧数目为nb2,s(i);如果[Starts(i)%M]≠0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M],如果[Starts(i)%M]=0并且nb_account(i)<nb2,s(i),则frame_no=Img_no×M,如果[Starts(i)%M]≠0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M-[M-Starts(i)%M]+np_account,如果[Starts(i)%M]=0并且nb_account(i)=nb2,s(i),则frame_no=Img_no×M+np_account;在计算B帧的帧号时,需要首先计算上一个P帧的帧号prevP_no和下一个P帧的帧号nextP_no,其中prevP_no的计算方法为(Img_no-1)×M-[M-Starts(i)%M],相应地,nextP_no的计算方法为(Img_no+1)×M-[M-Starts(i)%M],该B帧的帧号为frame_no=prevP_no+Bno×nb_code,其中nb_code为每次插入B帧时该B帧所处的位置,其值间于[1,Bno]之间。
CN 200910300383 2009-02-11 2009-02-11 基于场景的二次编码图像组划分方法 Expired - Fee Related CN101489138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910300383 CN101489138B (zh) 2009-02-11 2009-02-11 基于场景的二次编码图像组划分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910300383 CN101489138B (zh) 2009-02-11 2009-02-11 基于场景的二次编码图像组划分方法

Publications (2)

Publication Number Publication Date
CN101489138A true CN101489138A (zh) 2009-07-22
CN101489138B CN101489138B (zh) 2011-06-22

Family

ID=40891778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910300383 Expired - Fee Related CN101489138B (zh) 2009-02-11 2009-02-11 基于场景的二次编码图像组划分方法

Country Status (1)

Country Link
CN (1) CN101489138B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491381A (zh) * 2013-08-22 2014-01-01 合一网络技术(北京)有限公司 一种动态规划优化视频编码关键帧位置方法
CN103517080A (zh) * 2012-06-21 2014-01-15 北京数码视讯科技股份有限公司 实时视频流编码器和实时视频流编码方法
CN104509118A (zh) * 2012-08-13 2015-04-08 迪士尼企业公司 对数字媒体内容的基于内容的分割
CN105898373A (zh) * 2015-12-17 2016-08-24 乐视云计算有限公司 视频切片方法和装置
CN105979267A (zh) * 2015-12-03 2016-09-28 乐视致新电子科技(天津)有限公司 一种视频压缩、播放方法以及装置
CN106034237A (zh) * 2015-03-10 2016-10-19 杭州海康威视数字技术股份有限公司 一种基于编码切换的混合编码方法和系统
CN112019850A (zh) * 2020-08-27 2020-12-01 广州市百果园信息技术有限公司 基于场景切换的图像组划分方法、视频编码方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103517080A (zh) * 2012-06-21 2014-01-15 北京数码视讯科技股份有限公司 实时视频流编码器和实时视频流编码方法
CN104509118A (zh) * 2012-08-13 2015-04-08 迪士尼企业公司 对数字媒体内容的基于内容的分割
CN104509118B (zh) * 2012-08-13 2017-11-17 迪士尼企业公司 对数字媒体内容的基于内容的分割
CN103491381A (zh) * 2013-08-22 2014-01-01 合一网络技术(北京)有限公司 一种动态规划优化视频编码关键帧位置方法
CN103491381B (zh) * 2013-08-22 2016-03-02 合一网络技术(北京)有限公司 一种动态规划优化视频编码关键帧位置方法
CN106034237A (zh) * 2015-03-10 2016-10-19 杭州海康威视数字技术股份有限公司 一种基于编码切换的混合编码方法和系统
CN106034237B (zh) * 2015-03-10 2020-07-03 杭州海康威视数字技术股份有限公司 一种基于编码切换的混合编码方法和系统
US10863185B2 (en) 2015-03-10 2020-12-08 Hangzhou Hikvision Digital Technology Co., Ltd. Systems and methods for hybrid video encoding
CN105979267A (zh) * 2015-12-03 2016-09-28 乐视致新电子科技(天津)有限公司 一种视频压缩、播放方法以及装置
WO2017092340A1 (zh) * 2015-12-03 2017-06-08 乐视控股(北京)有限公司 一种视频压缩、播放方法以及装置
CN105898373A (zh) * 2015-12-17 2016-08-24 乐视云计算有限公司 视频切片方法和装置
CN112019850A (zh) * 2020-08-27 2020-12-01 广州市百果园信息技术有限公司 基于场景切换的图像组划分方法、视频编码方法及装置
WO2022042156A1 (zh) * 2020-08-27 2022-03-03 百果园技术(新加坡)有限公司 基于场景切换的图像组划分方法及装置、视频编码方法及装置

Also Published As

Publication number Publication date
CN101489138B (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
CN101489138B (zh) 基于场景的二次编码图像组划分方法
CN101232619B (zh) 嵌入帧内编码块的视频编码方法
US8259794B2 (en) Method and system for encoding order and frame type selection optimization
CN102630013B (zh) 基于场景切换的码率控制视频压缩方法和装置
CN101404774B (zh) 运动搜索中宏块划分模式的选择方法
CN100499788C (zh) 视频编码设备
CN101159871B (zh) 宏块组级视频码率控制方法
CN101262603B (zh) 一种自适应码率控制方法
CN108347605B (zh) 3d视频深度图像四叉树编码结构划分的快速决策方法
WO2008076148A2 (en) Distortion estimation
CN112188208B (zh) 一种宏块级码率控制方法及相关装置
CN102934443A (zh) 用于对视频进行编码和解码的方法和设备
CN103634601B (zh) 基于结构相似度的高效视频编码感知码率控制优化方法
CN101621685A (zh) 编码装置和编码方法
CN103188496A (zh) 基于运动矢量分布预测的快速运动估计视频编码方法
CN101188752A (zh) 一种基于相关性的自适应码率控制方法
CN101562750B (zh) 视频编码快速模式选择装置及方法
CN108989818A (zh) 一种图像编码参数调整方法及装置
CN101917618B (zh) 多视点视频编码分层b帧预测结构的计算复杂度控制方法
CN102148973A (zh) 基于拉格朗日乘数因子的3层码率控制方法
CN103384327A (zh) 基于自适应阈值的avs快速模式选择算法
CN101511026B (zh) 一种基于场景的avs二次编码码率控制方法
CN101888561B (zh) 一种率失真优化动态调整的多视点视频传输差错控制方法
CN102196253B (zh) 一种帧类型自适应选择的视频编码方法及装置
CN110139101B (zh) 一种基于λ域码率控制的帧级比特分配方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110622

Termination date: 20220211

CF01 Termination of patent right due to non-payment of annual fee