场景切换帧判断方法及装置的制造方法
【专利摘要】本发明实施例提供一种场景切换帧判断方法及装置。计算当前需要搜索的最远编码帧的远帧号;以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每一后续编码帧进行第一次编码预测得到第一次预测结果;以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进行第二次编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次预测结果;从所述第二次预测结果中获取所述当前编码帧的最终编码预测结果从而实现场景切换帧的判断。从而实现了场景切换帧的快速准确判断。
【专利说明】
场景切换帧判断方法及装置
技术领域
[0001] 本发明实施例涉及视频技术领域,尤其涉及一种场景切换帧判断方法及装置。
【背景技术】
[0002] -些电影、电视视频序列中,场景切换时不可避免的。如果编码过程中没有考虑场 景切换的影响,在场景切换处的码率控制可能会失效,造成图像质量急剧下降,因此编码过 程中需要对场景切换进行检测。
[0003] 目前常用的场景切换检测算法有基于灰度值检测、基于运动搜索检测和基于边缘 轮廓检测。其中,基于运动搜索检测和基于边缘轮廓检测算法的检测效果虽然很好,但是算 法的复杂度较高,在实时性要求较高的场合下,常常采用灰度值检测或图像直方图法进行 检测。然而,基于灰度值检测算法的检测效果相对较差。
[0004] 因此,一种新的场景切换帧判断方式亟待提出。
【发明内容】
[0005] 本发明实施例提供一种场景切换帧判断方法及装置,用以解决现有技术中场景切 换检测效率低以及检测效果差的缺陷。
[0006] 本发明实施例提供一种场景切换帧判断方法,包括:
[0007] 计算当前需要搜索的最远编码帧的远帧号;
[0008] 以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每一后续编码帧进行第 一次编码预测得到第一次预测结果;
[0009] 以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进行第二次编码预测, 以所述编码预测的结果更新所述第一次预测结果得到第二次预测结果;
[0010] 从所述第二次预测结果中获取所述当前编码帧的最终编码预测结果从而实现场 景切换帧的判断。
[0011] 本发明实施例提供一种场景切换帧判断装置,包括:
[0012] 计算模块,用于计算当前需要搜索的最远编码帧的远帧号;
[0013] 第一预测模块,用于以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每 一后续编码帧进行第一次编码预测得到第一次预测结果;
[0014] 第二预测模块,用于以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进 行第二次编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次预测结 果;
[0015] 判断模块,用于从所述第二次预测结果中获取所述当前编码帧的最终编码预测结 果从而实现场景切换帧的判断。
[0016] 本发明实施例提供的场景切换帧判断方法及装置,通过以待判断帧的前向非B帧 以及搜索到的最远编码帧为基础计算当前编码帧是否以I帧编码更优,从而快速确定场景 切换帧,并且检测效果更优。
【附图说明】
[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。
[0018] 图1为本发明实施例一的技术流程图;
[0019] 图2为本发明实施例远帧号的计算示意图;
[0020] 图3为本发明实施例二的技术流程图;
[0021]图4为本发明实施例三的技术流程图。
[0022]图5为本发明实施例四的装置结构示意图。
【具体实施方式】
[0023]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 需要说明的是,本发明实施例中涉及到的I帧是帧内预测编码帧,属于帧内压缩,I 解码时只需要本帧数据就可以完成(因为只依赖于相邻位置的宏块编码信息KP帧为向前 预测编码帧,属于帧间编码。P帧表示的是这一帧跟之前一个参考帧的差别,残差数据加上 通过前向运动补偿得到的预测数据来重构当前P帧。B帧是双向差别帧,也就是B帧记录的是 本帧与前后参考帧的差别,解码时既需要前向参考帧又需要后向参考帧,通过残差数据加 上通过前-后向运动补偿得到的预测数据来重构当前B帧。以下涉及到I、B、P处,均参考上述 说明,不再重复解释。
[0025] 实施例一
[0026] 图1是本发明实施例一的技术流程图,结合图1,本发明实施例一种场景切换帧判 断方法,其特征在于,包括如下的步骤:
[0027] 步骤110:计算当前需要搜索的最远编码帧的远帧号;
[0028] 具体地,采用如下公式计算所述远帧号:
[0029] 远帧号= P0+1+B_frames
[0030] 其中,P0为所述当前编码帧的前向的非B帧(I帧或B帧)的帧号,B-frames为预设的 连续B帧的最大个数。本实施例中,设B-frames = 3,当然本发明实施例包括并不限制于此。
[0031] 例如,如图2所示,待判断的当前帧的帧号为1,1号帧的前向非B帧为P帧,P帧对应 的帧号P〇 = 〇,则远帧号n = 0+l+3 = 4,表示当前场景帧的判断过程最远搜索到4号帧的位 置。
[0032] 步骤120:以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每一后续编码 帧进行第一次编码预测得到第一次预测结果;
[0033] 在进行第一次编码预测之前,为当前编码帧的预测状态值进行初始赋值,即假设 当前编码帧的最优编码方式是以I帧进行编码。通过第一次预测,从正向开始计算所述当前 编码帧与前向非B帧的关联度,从判断初始假设的正确性。
[0034]步骤130:以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进行第二次 编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次预测结果;
[0035]第二次编码预测从逆向开始计算所述当前编码帧与后向帧的关联度,从而实现对 第一次编码预测的进一步修正。
[0036] 步骤140:从所述第二次预测结果中获取所述当前编码帧的最终编码预测结果从 而实现场景切换帧的判断。
[0037] 如果当前编码帧是场景切换处,说明当前编码帧的与前后帧的关联度相对较低, 编码I帧比较合适,如果不是场景切换处,则当前编码帧编码为为B帧比较合适,这样可以节 省更少的比特数目。因此本发明实施例通过判断待编码的视频帧是否以I帧编码更优来检 测待编码的视频帧是否为场景切换帧,检测效果更优,效率更高。
[0038] 实施例二
[0039]图3是本发明实施例二的技术流程图,以下部分将结合图3,进一步阐述本发明实 施例第一次编码预测和第二次编码预测的具体实现过程。
[0040] 步骤310:记所述当前编码帧为P1,所述最远编码帧为Pn,初始化预测结果为:P1~ Pn区间包含的每一帧都以I帧编码;
[0041] 本发明实施例中,对第一次预测结果进行初始化,若以I帧编码,则相应的帧号赋 值true,否则赋值false,即初始化的结果为:
[0042] PI:true P2:true P3:true........Pn:true
[0043] 其中,true表示预测状态为以I帧编码更优,反之,false表示预测状态为以非I帧 编码更优。
[0044] 步骤320:以P0为基准,计算Pi是否编码I帧更优,其中,Pie[Pl,Pn],ie[l, n]$ 为是,则以I帧编码Pi;若为否,则否定[Pl,Pi]中的每一编码帧的所述初始化预测结果。
[0045] 具体地,本发明实施例通过13代16¥311〇6(?0,?;〇的返回值,判断?;[是否编码1帧更 优,若13代16¥31106(?0,?;0返回值为1:1'116,贝1|表示?;[以1帧编码更优;若13代16¥31106(?0, Pi)返回值为false,则表示Pi以非I帧编码更优,且修改P1~Pi之间所有的编码帧的预测状 态值为false。
[0046] 例如,第一次编码可以有如下的计算结果:
[0047] 1 )ISrelevance(PO,P1)返回值为true,第一次预测结果的初始化值不作任何改 变:
[0048] 当期结果为:Pl:true P2:true P3:true P4:true
[0049] 2)13^16¥&1^6(?0沖2)返回值为€&186,则将?1~?2区间的预测状态值置为 false,其余预测状态值不变:
[0050] 当期结果为:Pl:false P2:false P3:true P4:true
[0051 ] 3)ISrelevance(P0,P3)返回值为true,则保持上一次的计算结果不作任何改变: [0052]当期结果为:Pl:false P2:false P3:true P4:true
[0053] 4)ISrelevance(P0,P4)返回值为true,保持上一次的计算结果不作任何改变:
[0054] 当期结果为:Pl:false P2:false P3:true P4:true
[0055] 步骤330:以Pn为基准,计算Pi是否编码I帧更优,其中,Pie[Pl,Pn],ie[l, n],若 为是,则以I帧编码Pi;若为否,则否定Pi的所述第一次预测结果。
[0056] 具体地,本发明实施例通过ISrelevance(Pi,Pn)的返回值,判断Pi是否编码I帧更 优,若ISrelevance(Pi,Pn)返回值为true,贝lj表示Pi以I帧编码更优,若ISrelevance(Pi, Pn)返回值为false,则表示Pi以非I帧编码更优,仅修改当前Pi的编码帧的预测状态值为 false。
[0057] 例如,承接上一步骤的例子,在第一以预测结果的基础上,第二次编码预测可以有 如下的计算结果:
[0058] l)ISrelevance(Pl,Pn)返回值为true,第一次预测结果的预测状态值不作任何改 变:
[0059]当期结果为:Pl:false P2:false P3:true P4:true
[ΟΟ?Ο] 2)ISrelevance(P2,Pn)返回值为true,第一次预测结果的预测状态值不作任何改 变:
[0061] 当期结果为:Pl:false P2:false P3:true P4:true
[0062] 3)ISrelevance(P3,Pn)返回值为false,则修改P3的预测状态值为false:
[0063] 当期结果为:Pl:false P2:false P3:false P4:true
[0064] 4)ISrelevance(P4,Pn)返回值为true,保持上一次的预测状态值不作任何改变:
[0065] 当期结果为:Pl:false P2:false P3:false P4:true
[0066] 步骤340:根据所述第二次预测结果,当所述当前编码帧以I帧编码更优时,判定所 述当前编码帧为场景切换帧。
[0067] 具体地,本步骤根据所述当前编码帧的预测状态值的返回值判断所述当前编码帧 是否以I帧编码更优,例如,P1的预测状态值返回true时,判断P1以I帧编码更优,此时也就 可以判断所述当前编码帧为场景切换帧。
[0068] 实施例三
[0069] 图4是本发明实施例三的技术流程图,以下部分将结合图4,进一步阐述本发明实 施例以P0为基准,计算Pi是否编码I帧更优的实现过程。
[0070] 第一次编码预测的实现过程主要包括如下的几个步骤:
[0071] 步骤410:计算P0与Pi之间的偏离率bias。
[0072] 具体计算公式如下:
[0073]
[0074]其中,η为所述远帧号,gopSize为所述当前编码帧与上一个IDR帧之间的距离, keyframeMin为预设的最小关键帧长度,keyframeMax为预设的最大关键帧长度;其中, threshMin 为 keyframeMin的最小阈值,threshMax 为 keyframeMax的最大阈值,threshMin = threshMax/n;
[0075] 步骤420:计算所述当前编码帧以I帧编码的编码代价Icost;
[0076] 具体地,Icost=FramecostI(PO)。其计算方式如下:
[0078]
[0077] 首先计算P0的自身残差R(x,y),对于,以P0(x,y)表示P0帧中的每个像素点,以h表 示P0的高度,以W表示P0的宽度,则
[0079]
[0080] 步骤430:计算所述当前编码帧以P帧编码的编码代价Pcost。
[0081 ]具体地,Pcost=FramecostP(PO,Pl)。其计算方式如下:
[0082]首先计算P1与P0的残差R(x,y),以?0&,7)、?1&,7),表示?0帧和?1帧每个像素 点,以h表示P0、P1的高度,以w表示P0、P1的宽度,则
[0083] R(x,y)=Pl(x,y)-P0(x,y)
[0084] 例如,得到的R(x,y)可以为:
[0085]
[0086] 其次,计算R(x,y)的哈达玛变换的值:HAD(R)。哈达玛变换是利用哈达玛矩阵作为 变换矩阵新实施的遥感多光谱域变换。哈达玛矩阵为一个对称的正交矩阵。哈达变换实际 是将坐标轴旋转45°的正交变换。
[0087]具体做法是,将R (X,y)分为η个4x4块:Ri,ie[0,3]:
[0088]
[0089] 对每个Ri作哈达玛变换:
[0090]
[0091] 例如:
[0092]
[0094]
[0093]则计算得当前编码块的cost为:
[0095]
[0096] 步骤440:若Pcost> = (1.0_bias)*Icost,则预测所述当前编码帧编码为I帧最优。 [0097] 上述步骤410~步骤440实现了第一次编码预测时,以P0为基准,计算Pi是否编码I 帧更优的过程,第二次编码预测的实现过程与之相类似,不同之处在于计算所述当前编码 帧以?帧编码的编码代价?0081:时,?〇08丨=?抑1116〇08丨?(?1,?11),将相应的计算参数进行替 代即可。
[0098] 本实施例中,通过分别以P0和Pn为基准,计算Pi是否编码I帧更优,进行两次预测, 进一步提尚了场景帧判别的精确度。
[0099]实施例四
[0100] 图5是本发明实施例四的装置结构示意图,结合图5,本发明实施例一种场景切换 帧判断装置,主要包括如下的模块:计算模块510、第一预测模块520、第二预测模块530、判 断模块540。
[0101] 所述计算模块510,用于计算当前需要搜索的最远编码帧的远帧号;
[0102] 所述第一预测模块520,用于以所述当前编码帧的前向的非B帧为基础,对所述非B 帧的每一后续编码帧进行第一次编码预测得到第一次预测结果;
[0103] 所述第二预测模块530,用于以所述最远编码帧为基础,对所述非B帧的每一后续 编码帧进行第二次编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次 预测结果;
[0104] 所述判断模块540,用于从所述第二次预测结果中获取所述当前编码帧的最终编 码预测结果从而实现场景切换帧的判断。
[0105] 所述计算模块510具体用于:采用如下公式计算所述远帧号:
[0106] 远帧号= P0+1+B_frames
[0107] 其中,P0为所述当前编码帧的前向的非B帧的帧号,B-f rames为预设的连续B帧的 最大个数。
[0108] 所述第一预测模520具体用于执行如下步骤:
[0109] 步骤al:记所述当前编码帧为P1,所述最远编码帧为Pn,初始化预测结果为:P1~ Pn区间包含的每一帧都以I帧编码;
[0110] 步骤a2:以P0为基准,计算Pi是否编码I帧更优,其中,Pie[Pl,Pn],ie[l,n],S 为是,则以I帧编码Pi;若为否,则否定[Pl,Pi]中的每一编码帧的所述初始化预测结果。
[0111]所述第二预测模块530具体用于执行如下步骤:
[0112]以Pn为基准,计算Pi是否编码I帧更优,其中,?丨6[?1,?11],丨6[1,11],若为是,则 以I帧编码Pi;若为否,则否定Pi的所述第一次预测结果;
[0113] 根据所述第二次预测结果,当所述当前编码帧以I帧编码更优时,判定所述当前编 码帧为场景切换帧。
[0114] 所述第一预测模块520具体还用于执行如下步骤:
[0115] 步骤bl:采用如下公式计算P0与Pi之间的偏离率bias:
[0116]
[0117] 其中,η为所述远帧号,gopSize为所述当前编码帧与上一个IDR帧之间的距离, keyframeMin为预设的最小关键帧长度,keyframeMax为预设的最大关键帧长度;其中, threshMin 为 keyframeMin的最小阈值,threshMax 为 keyframeMax的最大阈值,threshMin = threshMax/n;
[0118] 步骤b2:计算所述当前编码帧以P帧编码的编码代价Pcost以及所述当前编码帧以 I帧编码的编码代价Icost,若Pcost> = (1.0-1^38)*1(3〇81:,贝1|预测所述当前编码帧编码为1 帧最优。
[0119] 图5所示装置可以执行图1~图4所示实施例的方法,实现原理和技术效果参考图1 ~图4所示实施例,不再赘述。
[0120] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可 以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单 元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性 的劳动的情况下,即可以理解并实施。
[0121] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该 计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施 例或者实施例的某些部分所述的方法。
[0122] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管 参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可 以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和 范围。
【主权项】
1. 一种场景切换帧判断方法,其特征在于,包括如下的步骤: 计算当前需要搜索的最远编码帧的远帧号; 以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每一后续编码帧进行第一次 编码预测得到第一次预测结果; 以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进行第二次编码预测,以所 述编码预测的结果更新所述第一次预测结果得到第二次预测结果; 从所述第二次预测结果中获取所述当前编码帧的最终编码预测结果从而实现场景切 换帧的判断。2. 根据权利要求1所述的方法,其特征在于,计算当前需要搜索的最远编码帧的远帧 号,进一步包括: 采用如下公式计算所述远帧号: 远帧号=PO+1 +B-f rame s 其中,PO为所述当前编码帧的前向的非B帧的帧号,B-frame s为预设的连续B帧的最大 个数。3. 根据权利要求1所述的方法,其特征在于,对所述非B帧的每一后续编码帧进行第一 次编码预测得到第一次预测结果,进一步包括如下步骤: 步骤al:记所述当前编码帧为Pl,所述最远编码帧为Pn,初始化预测结果为:Pl~Pn区 间包含的每一帧都以I帧编码; 步骤a2:以PO为基准,计算Pi是否编码I帧更优,其中,Pi e [PI,Pn],i e [I,n],若为是, 则以I帧编码Pi;若为否,则否定[PI,Pi]中的每一编码帧的所述初始化预测结果。4. 根据权利要求1或3所述的方法,其特征在于,对所述非B帧的每一后续编码帧进行第 二次编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次预测结果,进 一步包括: 以Pn为基准,计算Pi是否编码I帧更优,其中,Pie [PI,Pn],ie[l,n],若为是,则以I帧 编码Pi;若为否,则否定Pi的所述第一次预测结果; 根据所述第二次预测结果,当所述当前编码帧以I帧编码更优时,判定所述当前编码帧 为场景切换帧。5. 根据权利要求3所述的方法,其特征在于,以PO为基准,计算Pi是否编码I帧更优,进 一步包括如下步骤: 步骤bl:采用如下公式计算F1O与Pi之间的偏离率bias:共中,所还旌帜亏,gopSize为所还刍丽綱妈帜与上一个IUKW ZI日」的跑离, keyframeMin为预设的最小关键帧长度,keyframeMax为预设的最大关键帧长度;其中, threshMin 为 keyframeMin的最小阈值,threshMax 为 keyframeMax的最大阈值,threshMin = threshMax/n; 步骤b2:计算所述当前编码帧以P帧编码的编码代价Pcost以及所述当前编码帧以I帧 编码的编码代价Icost,若Pcost〉= (I .〇-bias)*1 cost,则预测所述当前编码帧编码为I帧 最优。6. -种场景切换帧判断装置,其特征在于,包括如下的模块: 计算模块,用于计算当前需要搜索的最远编码帧的远帧号; 第一预测模块,用于以所述当前编码帧的前向的非B帧为基础,对所述非B帧的每一后 续编码帧进行第一次编码预测得到第一次预测结果; 第二预测模块,用于以所述最远编码帧为基础,对所述非B帧的每一后续编码帧进行第 二次编码预测,以所述编码预测的结果更新所述第一次预测结果得到第二次预测结果; 判断模块,用于从所述第二次预测结果中获取所述当前编码帧的最终编码预测结果从 而实现场景切换帧的判断。7. 根据权利要求6所述的方法,其特征在于,所述计算模块具体用于: 采用如下公式计算所述远帧号: 远帧号=PO+1 +B-f rame s 其中,PO为所述当前编码帧的前向的非B帧的帧号,B-frame s为预设的连续B帧的最大 个数。8. 根据权利要求6所述的方法,其特征在于,所述第一预测模块具体用于执行如下步 骤: 步骤al:记所述当前编码帧为Pl,所述最远编码帧为Pn,初始化预测结果为:Pl~Pn区 间包含的每一帧都以I帧编码; 步骤a2:以PO为基准,计算Pi是否编码I帧更优,其中,Pi e [PI,Pn],i e [I,n],若为是, 则以I帧编码Pi;若为否,则否定[PI,Pi]中的每一编码帧的所述初始化预测结果。9. 根据权利要求6或8所述的方法,其特征在于,所述第二预测模块具体用于执行如下 步骤: 以Pn为基准,计算Pi是否编码I帧更优,其中,Pie [PI,Pn],ie[l,n],若为是,则以I帧 编码Pi;若为否,则否定Pi的所述第一次预测结果; 根据所述第二次预测结果,当所述当前编码帧以I帧编码更优时,判定所述当前编码帧 为场景切换帧。10. 根据权利要求8所述的方法,其特征在于,所述第一预测模块具体还用于执行如下 步骤: 步骤bl:采用如下公式计算F1O与Pi之间的偏离率bias:其中,η为所述远帧号,gopSize为所述当前编码帧与上一个IDR帧之间的距离, keyframeMin为预设的最小关键帧长度,keyframeMax为预设的最大关键帧长度;其中, threshMin 为 keyframeMin的最小阈值,threshMax 为 keyframeMax的最大阈值,threshMin = threshMax/n; 步骤b2:计算所述当前编码帧以P帧编码的编码代价Pcost以及所述当前编码帧以I帧 编码的编码代价Icost,若Pcost〉= (I .〇-bias)*1 cost,则预测所述当前编码帧编码为I帧 最优。
【文档编号】H04N5/14GK105898106SQ201510918385
【公开日】2016年8月24日
【申请日】2015年12月11日
【发明人】蔡砚刚, 白茂生, 刘阳, 杨帆, 魏伟
【申请人】乐视云计算有限公司