【文献】
三宅 正規, 他,MPEG映像データに対するカットシーンの高速検出手法,電気学会研究会資料 The Papers of Joint Technical Meeting on Information Processing and Information Oriented Indrstrial,社団法人電気学会,2004年 9月17日,IP 04-11,pp. 7-12
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
以下、図面を参照して、本発明による一実施形態のシーンチェンジ検出装置1を説明する。
図1は、本発明による一実施形態のシーンチェンジ検出装置1の概略構成を示すブロック図である。
【0022】
(装置構成)
シーンチェンジ検出装置1は、任意のGOP構造の動画像における連続する同種フレーム間における符号化単位ブロック(以下、「CB: Coding Block」とも称する)の数に関する統計量の変化を基に、シーンチェンジを検出する装置であり、連続する同種フレーム間で符号化パラメータの1つとすることができるCB数が絵柄によって大きく異なることに着目している。
【0023】
そして、シーンチェンジ検出装置1は、連続する同種フレーム間でCB数を比較し、CB数が大きく変化する区間を「シーンチェンジ区間」として判定する。また、本例では、フレーム種別として、Iフレーム、Pフレーム、Bフレーム、及び、非参照Bフレーム(以下、「NRBフレーム」: Bフレームであって、他のフレームから参照されないフレームを云う)を扱うことができる。即ち、シーンチェンジ検出装置1は、Iフレーム、Pフレーム、Bフレーム、及び、非参照Bフレーム間でシーンチェンジ区間を有するか否かの判定を行い、全てのフレーム種別において、シーンチェンジ区間と判定されたフレームをシーンチェンジフレームとして検出する。尚、CB数が大きく変化するとは、或るフレーム種別(Xフレーム)における比較する2フレーム間のCB数の差がフレーム種別ごとに設定された閾値Th(X)を超えることを云う。
【0024】
より具体的には、
図1に示すように、本実施形態のシーンチェンジ検出装置1は、同種フレーム間判定処理部11及びシーンチェンジ検出部12を備える。同種フレーム間判定処理部11は、同種フレーム抽出部111、ブロック数算出部112、及びシーンチェンジ区間検出部113を備える。
【0025】
同種フレーム間判定処理部11は、任意のGOP構造を有する動画像の映像信号を入力し、シーンチェンジの判定を行う所定のフレーム数(例えば、32フレーム)を「検出対象区間」として記憶し、この検出対象区間でフレーム種別ごとにシーンチェンジ区間の有無を逐次判定し、シーンチェンジ区間を有するか否かの旨、及びシーンチェンジ区間を有する際には、そのシーンチェンジ区間を示すフレーム番号をシーンチェンジ検出部12に出力する機能部である。ここで、シーンチェンジの判定を行う検出対象区間は、Iフレームを跨って連続する、Iフレーム以外の他の同種フレーム間のCB数の比較が可能であれば任意のフレーム数とすることができる。
【0026】
同種フレーム抽出部111は、或るフレーム種別(Xフレーム)におけるシーンチェンジ区間の有無を判定するために、検出対象区間に存する連続するXフレームを順次抽出する機能部である。
【0027】
ブロック数算出部112は、同種フレーム抽出部111によって順次抽出された連続するXフレームのCB数をそれぞれカウントする機能部である。
【0028】
シーンチェンジ区間検出部113は、ブロック数算出部112によってカウントされた連続するXフレームのCB数を比較し、そのCB数の差がフレーム種別ごとに設定された閾値Th(X)を超える際に、シーンチェンジ区間として決定する機能部である。
【0029】
これら同種フレーム抽出部111、ブロック数算出部112、及びシーンチェンジ区間検出部113の機能により、検出対象区間でフレーム種別ごとにシーンチェンジ区間の有無を逐次判定し、シーンチェンジ区間を有する際には、そのシーンチェンジ区間を示すフレーム番号を判定することができる。
【0030】
同種フレーム間判定処理部11は、入力される映像信号のGOP構造が予め分かっているときは、当該GOP構造に関するフレーム種別のみを対象にシーンチェンジ区間を判定すればよいが、入力される映像信号のGOP構造が予め分かっていないときは、まず、フレーム種別を識別して、フレーム種別ごとにシーンチェンジ区間の有無を判定する。フレーム種別の識別は、例えば、各GOPの先頭のGOPヘッダや各フレームの先頭のフレームヘッダを参照して識別すればよい。
【0031】
このため、同種フレーム間判定処理部11は、或る検出対象区間のシーンチェンジ判定が終了すると、次の検出対象区間のシーンチェンジ判定へと移行する。これらの検出対象区間に跨って連続する同種フレーム間で、そのCB数の比較を可能とするには、例えば連続する検出対象区間で、少なくとも1つのGOPが重複して含まれるようにすればよい。
【0032】
シーンチェンジ検出部12は、所定のフレーム数(例えば、32フレーム)の検出対象区間内で、同種フレーム間判定処理部11によってフレーム種別ごとにシーンチェンジ区間が有ると判定されたときのシーンチェンジ区間の重複区間を求め、全てのフレーム種別においてシーンチェンジ区間と判定されたフレームをシーンチェンジフレームとして検出し、そのフレーム番号を検出結果として出力する機能部である。ただし、シーンチェンジ検出部12は、このシーンチェンジフレームを検出結果とするよう構成する以外にも、シーンチェンジの判定を行う検出対象区間ごとに、シーンチェンジフレームが検出されたか否かを示す検出結果を出力するよう構成することもできる。
【0033】
(装置動作)
以下、
図2乃至
図3を参照して、本実施形態のシーンチェンジ検出装置1の動作例を説明する。
図2は、本実施形態のシーンチェンジ検出装置1の動作例を示すメインルーチンのフローチャートであり、
図3及び
図4は、そのサブルーチンのフローチャートである。
【0034】
ここで、シーンチェンジ判定区間に含まれるフレーム種別Xのフレームを、fX(n)={x
0,x
1,x
2,…,x
n}として説明する。つまり、Iフレームは、fI(n)={i
0,i
1,i
2,…,i
n}、Pフレームは、fP(n)={p
0,p
1,p
2,…,p
n}、Bフレームは、fB(n)={b
0,b
1,b
2,…,b
n}、NRBフレームは、fNRB(n)={nrb
0,nrb
1,nrb
2,…,nrb
n}とする。また、或るフレームx
mにおけるCB数をCBとする。尚、nは0以上の整数でありフレーム種別ごとに検出対象区間内のフレーム順を示すものであり、動画像のフレーム番号を対応付けることができるものとする。mは、0〜nのうち判定対象の値を示す。
【0035】
また、シーンチェンジ判定区間を[x
m−1,x
m]としたとき、CB数の差分をdiffCB[x
m−1,x
m]と表し、式(1)によって算出することができる。
【0036】
diffCB[x
m−1,x
m]=|CB(x
m)−CB(x
m−1)| (1)
【0037】
また、シーンチェンジ区間が有るとして判定した旨及びそのフレーム番号を示すシーンチェンジ判定フラグは、CCf[x
m−1,x
m]と表すこととする。
【0038】
そして、シーンチェンジ区間の判定に用いる閾値Th(X)は、動画像の解像度や絵柄に応じた固定値とすることができ、もしくは予め定めた統計値、例えば式(2)で算出した値とすることができる。
【0039】
Th(X)=(diffCB[x
m−1,x
m]の平均値)
+2×(diffCB[x
m−1,x
m]の標準偏差) (2)
【0040】
図2に示すシーンチェンジ検出におけるメインフローに対して、
図3及び
図4は、シーンチェンジ検出におけるサブフローを示しているが、
図4におけるフレーム種別Wは、フレーム種別Xの一つ上位の符号化階層にあたるフレーム種別を示す。例えばXがPフレームを示す場合にはWはIフレームを、XがBフレームを示す場合には、WはPフレームを表し、XがNRBフレームを示す場合には、WはBフレームを示す。
【0041】
まず、
図2を参照するに、シーンチェンジ検出装置1は、同種フレーム間判定処理部11の同種フレーム抽出部111により、或る検出対象区間において、シーンチェンジの判定開始とともに、先ずは連続するIフレームを抽出し、この連続するIフレーム間でのシーンチェンジ判定、即ちフレーム間判定(I)を行う(ステップS1,S2)。フレーム間判定(I)は、
図3に示したサブルーチンにより行う。
【0042】
図3を参照するに、同種フレーム間判定処理部11は、ブロック数算出部112により、検出対象区間内の或る連続する2つのIフレーム[i
m−1,i
m]のCB数をそれぞれカウントして、シーンチェンジ区間検出部113により、ブロック数算出部112によってカウントされた連続するIフレームのCB数の差分絶対値diffCB[i
m−1,i
m](式(1))を算出する(ステップS11)。続いて、同種フレーム間判定処理部11は、シーンチェンジ区間検出部113により、diffCB[i
m−1,i
m]とTh(I)を比較して、シーンチェンジの有無を判定する(ステップS12)。シーンチェンジが無いと判定すれば(ステップS12:No)、シーンチェンジ判定フラグCCf[i
m−1,i
m]=偽(False)とし(ステップS13)、シーンチェンジが有ると判定すれば(ステップS12:Yes)、シーンチェンジ判定フラグCCf[i
m−1,i
m]=真(True)とする(ステップS14)。
【0043】
即ち、
図2を参照するに、先ずは、シーンチェンジ判定区間[i
0,i
1]においてdiffCB[i
0,i
1]を求め、シーンチェンジが無かったと判定した場合は(ステップS2:False)、次のシーンチェンジ判定区間[i
1,i
2]でフレーム間判定(I)を行う(ステップS3,S4を経てS1,S2)。つまり、シーンチェンジがあったと判定するか(ステップS2:True)、又は検出対象区間内に存する全てのIフレームに関するシーンチェンジ判定が終了するまで(換言すれば、i
m+1>i
nとなるまで)、フレーム間判定(I)を行う(ステップS3:No、及びS4を経てS1)。或るシーンチェンジ判定区間[i
m−1,i
m]でシーンチェンジがあったと判定した場合は(ステップS2:True)、シーンチェンジ判定フラグCCf[i
m−1,i
m]=真(True)とし(即ち、
図3に示すステップS14)、Pフレーム間でのシーンチェンジ判定、即ちフレーム間判定(P)へ移行する(ステップS5,S6)。尚、フレーム間判定(I)において、検出対象区間内で最後までシーンチェンジが無かったと判定された場合(ステップS3:Yes)、判定区間内にシーンチェンジは無かったと判定し、処理を終了する(動画像の次の検出対象区間に移行する)。
【0044】
フレーム間判定(P)は、
図4に示したサブルーチンにより行う。ここでは、
図4に示すxをpと置き換え、wをiと置き換えることができる。
【0045】
図4を参照するに、この時の判定開始フレームはIフレームのシーンチェンジ判定区間[i
m−1,i
m]に含まれるPフレームのうち、フレーム番号が最小となるものをフレームP
kとする(ステップS21)。フレーム間判定(P)では、同種フレーム間判定処理部11は、ブロック数算出部112により、検出対象区間内の或る連続する2つのPフレーム[p
k−1,p
k]のCB数をそれぞれカウントして、シーンチェンジ区間検出部113により、ブロック数算出部112によってカウントされた連続するPフレームのCB数の差分絶対値diffCB[p
k−1,p
k](式(1))を算出する(ステップS22)。続いて、同種フレーム間判定処理部11は、シーンチェンジ区間検出部113により、diffCB[p
k−1,p
k]とTh(P)を比較して、シーンチェンジの有無を判定する(ステップS23)。シーンチェンジが無いと判定すれば(ステップS23:No)、シーンチェンジ判定フラグCCf[p
k−1,p
k]=偽(False)とし(ステップS24)、次のシーンチェンジ判定区間[p
k,p
k+1]でフレーム間判定(P)を行う(ステップS25,S26を経てS22,S23)。
【0046】
つまり、シーンチェンジがあったと判定するか(ステップS23:Yes)、又は検出対象区間内に存する全てのPフレームに関するシーンチェンジ判定が終了するまで(換言すれば、p
k−1>i
mとなるまで)、フレーム間判定(P)を行う(ステップS23:No、S24、S23:No及びS26を経てS22)。或るシーンチェンジ判定区間[p
k−1,p
k]でシーンチェンジがあったと判定した場合は(ステップS23:Yes)、シーンチェンジ判定フラグCCf[p
k−1,p
k]=真(True)とし(ステップS27、即ち
図2におけるステップS6:True)、Bフレーム間でのシーンチェンジ判定、即ちフレーム間判定(B)へ移行する(
図2におけるステップS7,S8)。フレーム間判定(P)において、検出対象区間内で最後までシーンチェンジがなかったと判定された場合(ステップS25:Yes)、フレーム間判定(I)でのシーンチェンジ検出が誤検出であったとしてサブフローを終了する(即ち
図2におけるステップS6:False)。
【0047】
連続するBフレーム間でのシーンチェンジ判定であるフレーム間判定(B)は、
図4に示すxをbと置き換え、wをpと置き換えることで、フレーム間判定(P)と同様に処理を行う(ステップS7,S8)。従って、フレーム間判定(B)は、或るシーンチェンジ判定区間[b
k−1,b
k]でシーンチェンジがあったと判定した場合は、シーンチェンジ判定フラグCCf[b
k−1,b
k]=真(True)とし(S8:True)、NRBフレーム間でのシーンチェンジ判定、即ちフレーム間判定(NRB)へ移行する。フレーム間判定(B)において、検出対象区間内で最後までシーンチェンジがなかったと判定された場合、シーンチェンジ判定フラグCCf[b
k−1,b
k]=偽(False)とし、フレーム間判定(I)でのシーンチェンジ検出が誤検出であったとしてサブフローを終了する(S8:False)。
【0048】
また、連続するNRBフレーム間でのシーンチェンジ判定であるフレーム間判定(NRB)は、
図4に示すxをnrbと置き換え、wをbと置き換えることで、フレーム間判定(P)と同様に処理を行う(ステップS9,S10)。従って、フレーム間判定(NRB)は、或るシーンチェンジ判定区間[nrb
k−1,nrb
k]でシーンチェンジがあったと判定した場合は、シーンチェンジ判定フラグCCf[nrb
k−1,nrb
k]=真(True)とし(S10:True)、ステップS11へ移行する。フレーム間判定(NRB)において、検出対象区間内で最後までシーンチェンジがなかったと判定された場合、シーンチェンジ判定フラグCCf[nrb
k−1,nrb
k]=偽(False)とし、フレーム間判定(I)でのシーンチェンジ検出が誤検出であったとしてサブフローを終了する(S10:False)。
【0049】
ここで、シーンチェンジ検出装置1は、同種フレーム間判定処理部11により、フレーム間判定(NRB)でシーンチェンジがあったと判定された場合、シーンチェンジ検出部12により、それまでの判定、即ちフレーム間判定(I)、フレーム間判定(P)、フレーム間判定(B)、及びフレーム間判定(NRB)でシーンチェンジがあったと判定された区間のうち、重複する区間を求め、全てのフレーム種別においてシーンチェンジ区間と判定されたフレームをシーンチェンジフレームとして検出する(ステップS11)。この重複区間は、動画像における隣接した2フレームとなり、この間で動画像の特徴が大きく変化することが分かる。
【0050】
以上から、シーンチェンジフレームは、当該重複区間の隣接2フレームの後フレームとして特定することができる。このように、例えば
図5に示すように、GOP長M=8でランダムアクセス形式のGOP構造を有する動画像に対して、フレーム間判定(I)、フレーム間判定(P)、フレーム間判定(B)、及びフレーム間判定(NRB)の順にてシーンチェンジ区間を判定し、その重複区間でシーンチェンジフレームを特定することができることから、DCT等の負荷の高い計算を必要とせず、CB数の比較による負荷の軽い処理のみで、任意のGOP構造のシーンチェンジを検出することができる。特に、階層構造の上位から順にシーンチェンジ区間を判定するため、例えばフレーム間判定(I)にて、シーンチェンジ区間がないと判定したときは、そのフレーム間のフレーム間判定(P)、フレーム間判定(B)、及びフレーム間判定(NRB)を省略することができ、処理負担が軽減し、処理速度も向上する。
【0051】
(実施例)
図6に、本実施形態のシーンチェンジ検出装置1における一実施例のシーンチェンジ検出結果を示している。
図6は、HEVC/H.265で符号化した場合におけるCBサイズ別CB数の具体例を示す。横軸はフレーム番号、縦軸はCBサイズ(64×64画素、32×32画素、16×16画素、及び8×8画素)別のカウント数を表す。
【0052】
尚、符号化に使用した条件は、次の通りである。
・量子化パラメータ(QP):22(固定)、
・GOP構造:ランダムアクセス方式(GOP長M=8)
・シーンチェンジ発生フレーム:140フレーム目
【0053】
また、fI(n),fP(n),fB(n),fNRB(n)に含まれるフレームは次の通りである。
・fI(n)={0,32,…,128,160,…}
・fP(n)={8,16,…,120,136,144,152,…}
・fB(n)={2,4,6,10,12,…,134,138,140,142,146,148,…}
・fNRB(n)={1,3,5,7,…,137,139,141,143,145,…}
【0054】
まずシーンチェンジ判定(I)は、最初の検出対象区間となる区間[0,32]から行う。区間[0,32]でシーンチェンが検出されなければ続いて、区間[32,64]、区間[64,96]、区間[96,128]、区間[128,160]の順にシーンチェンジ判定(I)を行う。シーンチェンジ判定(I)を進めていくと、区間[128,160]において、diffCB[128,160]が大きく、或る閾値Th(I)を超えていた。このときCCf[128,160]=Trueとして、フレーム間判定(P)を行う。
【0055】
フレーム間判定(P)を行う最初のp
kは、区間[128,160]に含まれる最小のPフレーム、つまり136フレームとなることから、シーンチェンジ判定(P)は、区間[120,136]から行い、区間[120,136]でシーンチェンジ検出されなければ次の区間[136,144]へ進む。区間[136,144]においては、diffCB[136,144]が大きく、或る閾値Th(P)を超えていた。この時CCf[136,144]=Trueとし、フレーム間判定(B)へ進む。
【0056】
フレーム間判定(B)を行う最初のb
kは、区間[136, 144]に含まれる最小のBフレーム、つまり138フレームとなる。よってシーンチェンジ判定(B)は、区間[134, 138]から行い、区間[134, 138]でシーンチェンジ検出されなければ次区間[138, 140]へ進む。区間[138, 140]においては、diffCB[138, 140]が大きく、或る閾値Th(B)を超えていた。この時CCf[138, 140]=Trueとし、フレーム間判定(NRB)へ進む。
【0057】
フレーム間判定(NRB)を行う最初のnrb
kは、区間[138, 140]に含まれる最小のNRBフレーム、つまり139フレームとなる。よってシーンチェンジ判定(NRB)は、区間[137, 139]から行い、区間[137, 139]でシーンチェンジ検出されなければ次区間[139, 141]へ進む。区間[139, 141]においては、diffCB[139, 141]が大きく、或る閾値Th(NRB)を超えていた。この時CCf[139, 141]=Trueとする。
【0058】
以上の処理により、フレーム判定(I)では区間[128, 160]で、フレーム間判定(P)では区間[136, 144]で、フレーム間判定(B)では区間[138, 140]で、フレーム間判定(NRB)では区間[139, 141]でシーンチェンジ検出したことになる。以上の区間で全て含まれるフレームは、139,140フレームの隣接2フレームであり、この間で映像の特徴が大きく変化していることから、140フレームがシーンチェンジフレームであるとして特定できる。
【0059】
本実施例では、GOP長M=8のランダムアクセス方式におけるシーンチェンジ検出例を示したが、全てがIフレームからなるオールイントラ(All Intra)方式におけるシーンチェンジ検出においても、フレーム間判定(I)の実施で対応できる。またIフレームとPフレームからなるローディレイ(Low Delay)方式についてもフレーム間判定(I)とフレーム間判定(P)の実施でシーンチェンジ検出が可能となる。
【0060】
以上、特定の実施形態の例及び実施例を挙げて本発明を説明したが、本発明は前述の実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0061】
例えば、上述した実施形態や実施例では、1フレームごとのCB数を基に、シーンチェンジ検出を行う例を説明したが、より計算量を削減したい場合は、最小サイズのCBを基にシーンチェンジ検出を行ってもよい。例えば或るCBを最小サイズのCBとした場合、HEVC/H.265では、最小サイズのCBが8×8画素となることから、8×8画素のCB数のみでシーンチェンジ検出してもよい。
【0062】
また、上述した実施形態や実施例では、1フレームごとのCB数を基に、シーンチェンジ検出を行う例を説明したが、フレームを2以上の複数領域に分割し、その一部、もしくは全ての複数領域のそれぞれで、上述したシーンチェンジ検出を行うよう構成してもよい。複数領域に分割する場合、その分割形状はHEVC/H.265におけるスライス(Slice)分割や、タイル(Tile)分割による分割領域と同一でもよい。分割した領域によってシーンチェンジ検出の結果が異なる場合は、シーンチェンジ検出を行った全ての領域、もしくは多数決判定により、より多くの領域でシーンチェンジと検出されたフレームをシーンチェンジフレームと特定してもよい。例えば、フレームの一部の領域を判定対象とすることで、より計算量を削減することができる。
【0063】
そして、本実施形態のシーンチェンジ検出装置1をコンピュータとして機能させることができ、当該コンピュータに、本発明に係る各構成要素を実現させるためのプログラムは、当該コンピュータの内部又は外部に備えられるメモリ(図示せず)に記憶される。コンピュータに備えられる中央演算処理装置(CPU)などの制御で、各構成要素の機能を実現するための処理内容が記述されたプログラムを、適宜、メモリから読み込んで、本実施形態のシーンチェンジ検出装置1の各構成要素の機能をコンピュータに実現させることができる。ここで、各構成要素の機能をハードウェアの一部で実現してもよい。