画像符号化装置
【課題】1フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制し、画質の劣化の少ない画像符号化装置を提供することを課題とする。
【解決手段】画像符号化装置1は、各マクロブロックのアクティビティを算出する。ブロックラインBL1,BL3の全マクロブロックは、イントラ符号化の候補となるイントラ候補マクロブロック(イントラ候補MB)に設定される。ブロックラインBL2,BL4では、イントラ候補MBが一つおきに設定される。各ブロックラインのイントラ候補MBのうち、アクティビティが最小のマクロブロックが、フレームF1のイントラマクロブロックとして決定される。イントラMBとして決定されたマクロブロックは、イントラ候補MBからイントラ禁止マクロブロックに変更される。イントラ候補MBの設定状態が変更された後に、フレームF1の次に入力されるフレームのイントラマクロブロックが決定される。
【解決手段】画像符号化装置1は、各マクロブロックのアクティビティを算出する。ブロックラインBL1,BL3の全マクロブロックは、イントラ符号化の候補となるイントラ候補マクロブロック(イントラ候補MB)に設定される。ブロックラインBL2,BL4では、イントラ候補MBが一つおきに設定される。各ブロックラインのイントラ候補MBのうち、アクティビティが最小のマクロブロックが、フレームF1のイントラマクロブロックとして決定される。イントラMBとして決定されたマクロブロックは、イントラ候補MBからイントラ禁止マクロブロックに変更される。イントラ候補MBの設定状態が変更された後に、フレームF1の次に入力されるフレームのイントラマクロブロックが決定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を符号化し、圧縮画像を生成する装置に関する。詳しくは、イントラ符号化処理とインター符号化処理とを用いて画像を符号化する装置に関する。
【背景技術】
【0002】
MPEG2やH.264などの画像符号化技術においては、イントラ符号化処理とインター符号化処理とが用いられる。イントラ符号化処理は、参照フレームを利用せずに、符号化対象のフレーム内で符号化処理が完結する。インター符号化処理は、参照フレームを利用することで符号化対象のフレームに対する符号化が行われる。
【0003】
Iピクチャに含まれる全てのマクロブロックは、イントラ符号化処理により符号化される。PピクチャおよびBピクチャに含まれるマクロブロックは、インター符号化処理により符号化される。Iピクチャの発生符号量は、全てのマクロブロックがイントラ符号化されるため、PピクチャあるいはBピクチャの発生符号量よりも大きい。H.264においては、イントラ予測技術が利用されるが、やはり、PピクチャあるいはBピクチャと比較すると発生符号量が大きい。
【0004】
低遅延の再生あるいは伝送が求められるシステムにおいては、Iピクチャにおける発生符号量の上昇が問題となる。また、Iピクチャの出現周期で発生符号量が振動するという問題がある。発生符号量が振動すると、一時的にバッファのサイズが多く必要となり、非効率である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−215252号公報
【非特許文献1】パイオニア株式会社、技術解説(MPEG技術解説)、平成21年12月10日検索、インターネット<URL:http://pioneer.jp/crdl/tech/mpeg/3-2.html>
【非特許文献2】特許庁、資料室、平成21年12月10日検索、インターネット<URL:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/nle/nle-7-1.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したように、フレーム内の全てのマクロブロックがイントラ符号化処理されるIピクチャが存在する場合、Iピクチャの処理で遅延が発生する可能性があり、低遅延なシステムには向かない。そこで、非特許文献1に示すような、符号化方法が提案されている。
【0007】
非特許文献1において、フレーム内の全てのマクロブロックがイントラ符号化されるIピクチャは利用されない。非特許文献1では、イントラマクロブロックがスライス単位で配置される。フレーム内のあるスライス内の全てのマクロブロックを、予測を用いずに直接DCTを行うイントラマクロブロックとして符号化する。このようなスライスをイントラスライスと呼ぶ。イントラスライスを適用する場所をフレームごとにずらしていくと、一定周期で画面全体をイントラスライスが巡回していき、画面がリフレッシュされることになる。Iピクチャに比べ、イントラスライスに要する発生符号量は少ないため、バッファサイズを減少させ、遅延を減らすことができる。
【0008】
非特許文献2においても、同様に、イントラスライスを利用する技術が開示されている。
【0009】
非特許文献1および非特許文献2で示すように、イントラスライスを用いることで、イントラブロックをGOP内に分散させることができる。
【0010】
しかし、スライス内の全てのマクロブロックをイントラ符号化処理し、かつ、フレームごとにイントラスライスの位置を1列ずつずらしていく方法であるので、画質劣化の原因となっていた。具体的には、画像を連続再生したときイントラスライスが走査線のように見えてしまうという問題があった。
【0011】
上記特許文献1では、イントラマクロブロックをマクロブロック単位で分散させるようにしている。しかし、イントラマクロブロックが複雑な画像である場合、イントラマクロブロックの符号量が増加する傾向にある。イントラマクロブロックの符号量を抑制するためには、イントラマクロブロックを粗く量子化することが考えられる。イントラマクロブロックを粗く量子化した場合、イントラマクロブロックの画質と、イントラマクロブロックの周囲に位置するインターマクロブロックの画質とに差が生じる。この結果、イントラマクロブロックの位置が目立つという問題があった。
【0012】
本発明の目的は、1フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制し、画質の劣化の少ない画像符号化装置を提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するため、請求項1記載の発明は、画像符号化装置であって、マクロブロック内における第1フレームの画像の複雑さを示すアクティビティを算出するアクティビティ算出部と、横方向に一列に並ぶマクロブロックのラインごとに、第1フレームでイントラ符号化することができるイントラ候補マクロブロックを設定するイントラ候補設定部と、前記ラインに含まれる前記第1フレームのイントラ候補マクロブロックのうち、アクティビティが最小のマクロブロックを、前記第1フレームのイントラマクロブロックとして決定するイントラマクロブロック決定部と、前記イントラマクロブロックをイントラ符号化する符号化部と、を備える。
【0014】
請求項2記載の発明は、請求項1に記載の画像符号化装置において、第2フレームは、前記第1フレームの次に入力されるフレームであり、前記イントラ候補設定部は、前記最小のマクロブロックを、前記第2フレームのイントラ候補マクロブロックから除外する。
【0015】
請求項3記載の発明は、請求項2に記載の画像符号化装置において、前記イントラ候補設定部は、前記ラインのうち第1ラインに含まれる全てのマクロブロックが前記第2フレームのイントラ候補マクロブロックから除外された場合、前記全てのマクロブロックを前記第2フレームのイントラ候補マクロブロックとして再設定する。
【0016】
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載の画像符号化装置において、前記ラインは、第1ラインと、前記第1ラインに接する第2ラインと、を含み、前記第1ラインで設定されるイントラ候補マクロブロックの割合と、前記第2ラインで設定されるイントラ候補マクロブロックの割合とが互いに異なる。
【0017】
請求項5記載の発明は、請求項4に記載の画像符号化装置において、前記ラインごとのイントラ候補マクロブロックの割合が一定の間隔で変化する。
【発明の効果】
【0018】
本発明の画像符号化装置は、ラインごとに設定されたイントラ候補マクロブロックのうちアクティビティが最小のマクロブロックをイントラマクロブロックとして決定する。ラインごとにイントラ候補MBが設定されるため、各ラインでアクティビティの高いマクロブロックがイントラ符号化されることが防止される。したがって、1フレームあたりのイントラマクロブロックの符号量が急激に増加することを防止することができる。
【0019】
第1フレームのイントラマクロブロックとして決定されたマクロブロックは、イントラ候補マクロブロックから除外される。このため、第1フレームのイントラマクロブロックが、次のフレームのイントラマクロブロックとなることが防止される。フレーム間でイントラマクロブロックが分散して配置されるため、イントラマクロブロックの位置を目立たなくすることができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施の形態による画像符号化装置の構成を示す機能ブロック図である。
【図2】各フレームにおけるマクロブロックの構成を示す図である。
【図3A】イントラマクロブロック(イントラMB)として指定することができるマクロブロック(イントラ候補MB)の初期状態での分布を示す図である。
【図3B】イントラMB及びイントラ候補MBの分布を示す図である。
【図3C】更新処理後のイントラ候補MBの分布を示す図である。
【図3D】イントラMB及びイントラ候補MBの分布を示す図である。
【図4A】イントラ候補MBの分布を示す図である。
【図4B】復帰処理後のイントラ候補MBの分布を示す図である。
【図5】本発明の実施の形態の変形例におけるイントラ候補MBの初期状態での分布を示す図である。
【図6】実施例1におけるイントラマクロブロックの符号量の変化を示す図である。
【図7】実施例2におけるイントラマクロブロックの符号量の変化を示す図である。
【図8】実施例3におけるイントラマクロブロックの符号量の変化を示す図である。
【発明を実施するための形態】
【0021】
以下、図面を参照しつつ、本発明の実施の形態について説明する。
【0022】
<画像符号化装置の構成>
図1は、本実施の形態に係る画像符号化装置1の構成を示す機能ブロック図である。画像符号化装置1は、符号化部11と、アクティビティ算出部12と、イントラ候補設定部13と、イントラマクロブロック決定部14とを備える。以下、イントラマクロブロック決定部14を、「イントラMB決定部14」と呼ぶ(MB:MacroBlock)。
【0023】
符号化部11は、非圧縮画像データ21を入力する。符号化部11は、入力した非圧縮画像データ21に対して画像符号化処理を行い、圧縮画像データ22を出力する。符号化部11は、たとえば、MPEG2やH.264などの符号化方式で画像符号化処理を実行する。
【0024】
アクティビティ算出部12は、非圧縮画像データ21を入力する。アクティビティ算出部12は、非圧縮画像データ21のマクロブロックごとに、アクティビティACTを算出する。アクティビティACTは、マクロブロック内の画像の複雑さを示す数値である。
【0025】
イントラ候補設定部13は、イントラ符号化の対象となり得るイントラ候補マクロブロックをブロックラインごとに設定する。以下、イントラ候補マクロブロックを「イントラ候補MB」と呼ぶ。ブロックラインとは、横方向に一列に並んでいるマクロブロックによって構成される帯状の領域である。イントラ候補設定部13は、イントラ候補MBに関する情報をMB分類情報31として保持する。
【0026】
イントラMB決定部14は、MB分類情報31と各マクロブロックのアクティビティACTとに基づいて、各フレームに配置するイントラMBを決定する。イントラMB決定部14は、ブロックラインに含まれるイントラ候補MBのうち、アクティビティが最小のマクロブロックをイントラMBとして決定する。ブロックラインごとに一つのイントラMBが配置されるため、各フレームでイントラMBが分散して配置される。
【0027】
本実施の形態において、画像符号化装置1は、非圧縮画像データ21を符号化するときに、全てのイントラマクロブロックが符号化されたIピクチャを生成しない。画像符号化装置1は、各フレームにイントラMBを分散して配置する。
【0028】
<イントラMBの決定の概要>
各フレームのイントラMBを決定するまでの手順の概要を説明する。図2は、非圧縮画像データのフレームの構造を示す図である。図2に示すように、1フレームが、24個のマクロブロックM0〜M23で構成されている場合を例に説明する。1フレームは、横6個×縦4個のマクロブロックで構成される。フレームには、ブロックラインBL1〜BL4が形成されている。
【0029】
画像符号化装置1は、各フレームのイントラMBを、(手順a)〜(手順d)に従って決定する。
【0030】
(手順a)イントラ候補MBの初期設定
イントラ候補MBの初期設定は、非圧縮画像データ21の符号化が開始される前に行われる。イントラ候補設定部13は、各フレームにおけるイントラMBの位置を分散させるために、ブロックラインごとにイントラ候補MBを設定する。
【0031】
(手順b)アクティビティACTの算出
アクティビティ算出部12は、フレームが入力されるたびに、各マクロブロックのアクティビティACTを算出する。
【0032】
(手順c)イントラMBの決定
イントラMB決定部14は、MB分類情報31及び算出したアクティビティACTを用いて、ブロックラインごとに一つずつイントラMBを決定する。具体的には、各ブロックラインのイントラ候補MBの中でアクティビティが最小のマクロブロックをイントラMBに決定する。アクティビティACTの低いマクロブロックが優先的にイントラ符号化されるため、イントラMBの符号量を抑制することができる。
【0033】
(手順d)MB分類情報31の更新
イントラ候補設定部13は、イントラMBとして決定されたマクロブロックをイントラ候補MBからイントラ禁止MBに変更する。イントラ禁止MBは、イントラ符号化が許可されていないマクロブロックである。これにより、MB分類情報31が更新される。次のフレームのイントラMBの決定には、更新されたMB分類情報31が用いられる。
【0034】
フレームが入力されるたびに(手順b)〜(手順d)の処理が繰り返される。(手順a)〜(手順d)の詳細について、フレームF1のイントラMBを決定するケースを例に説明する。フレームF1の次には、フレームF2,F3,・・・F6,・・・F12,・・・が順次入力される。以下、ブロックラインBL1,BL3を「奇数ライン」と呼ぶ。ブロックラインBL2,BL4を「偶数ライン」と呼ぶ。
【0035】
<イントラ候補MBの初期設定(手順a)>
図3Aは、初期設定時におけるイントラ候補MBの分布を示す図である。図3Aにおいて、イントラ候補MBを白で示す。イントラ禁止MBをハッチングで示す。
【0036】
ブロックラインBL1では、マクロブロックM0〜M5がイントラ候補MBに設定される。ブロックラインBL2では、マクロブロックM6,M8,M10がイントラ候補MBに設定される。ブロックラインBL3では、マクロブロックM12〜M17がイントラ候補MBに設定される。ブロックラインBL4では、マクロブロックM18,M20,M22がイントラ候補MBに設定される。
【0037】
初期設定時には、奇数ラインの全マクロブロックがイントラ候補MBに設定される。初期設定時には、偶数ラインでは、イントラ候補MBが一つおきに設定される。イントラ候補MBの割合が100%のブロックラインと、イントラ候補MBの割合が50%のブロックラインとが交互に繰り返されるように、イントラ候補MBが設定されている。偶数ラインにおいて、イントラ候補MBの割合が50%であれば、イントラ候補MBは、一つおきに配置されていなくてもよい。つまり、あるブロックラインと、あるブロックラインに接するブロックラインとの間でイントラ候補MBの割合が異なるように、イントラ候補MBが設定されればよい。
【0038】
<アクティビティACTの算出(手順b)>
アクティビティ算出部12は、フレームが入力されるたびに、各マクロブロックのアクティビティACTを算出する。上述したように、アクティビティACTは、マクロブロック内の画像の複雑さを示す数値である。アクティビティ算出部12は、マクロブロック内の各画素の画素値の分散をアクティビティACTとして算出する。画素値として、マクロブロック内の画素の輝度値や、各色成分の画素値を用いることができる。
【0039】
各マクロブロックの画像の複雑さを示す数値であれば、他の計算方法を用いてもよい。たとえば、マクロブロック内のある画素(注目画素)の画素値と、注目画素の右隣に接する画素の画素値との差分絶対値の総和を、アクティビティACTとして算出してもよい。
【0040】
<イントラMBの決定(手順c)>
図3Bは、イントラ候補MBと、フレームF1のアクティビティとの対応を示す図である。イントラMB決定部14は、各ブロックラインに設定されたイントラ候補MBのうち、アクティビティACTが最小のマクロブロックをイントラMBとして決定する。
【0041】
ブロックラインBL1では、イントラ候補MBであるマクロブロックM0〜M5の中から、アクティビティACTが最小であるマクロブロックM1がイントラMBとして決定される。同様に、ブロックラインBL2,BL3,BL4のマクロブロックM10,M14,M22が、イントラMBとして決定される。図3Bにおいて、イントラMBとして決定されたマクロブロックM1,M10,M14,M22を砂地模様で示す。各ブロックラインにイントラMBが一つずつ配置されていることがわかる。
【0042】
奇数ラインでは、イントラ禁止MBが設定されていない。このため、各奇数ラインで最小のアクティビティACTを有するマクロブロックが、イントラMBとして決定される。
偶数ラインでは、アクティビティACTが最小のマクロブロックがイントラ候補MBに設定されるとは限らない。たとえば、ブロックラインBL2では、アクティビティACTの値が下位から数えて3番目のマクロブロックM10がイントラMBとして決定されている。奇数ラインと偶数ラインとでイントラ候補MBの割合を変化させることにより、イントラMBのアクティビティACTのレベルを分散させることができる。
【0043】
イントラMBのアクティビティACTのレベルを、奇数ラインと偶数ラインとの間で分散させることにより、フレームF1のイントラMBの符号量総和が、他のフレームのイントラMBの符号量総和に比べて非常に大きくなることを防止できる。この理由について説明する。
【0044】
通常、符号量を抑制するために、アクティビティACTの大きい(画像が複雑な)マクロブロックを符号化する場合、画像が複雑なマクロブロックは粗く量子化される。しかし、本実施の形態において、画像が複雑なイントラMBを粗く量子化した場合、イントラMBの画質と、イントラMBの周囲に位置するインターマクロブロックの画質とに差が生じるため、イントラMBの位置が目立つおそれがある。このため、画像が複雑なイントラMBであっても、細かく量子化する必要がある。
【0045】
画像が複雑なイントラMBと、アクティビティACTの小さい(画像が平坦な)イントラMBとを同じ粗さで量子化した場合、画像が複雑なイントラMBの符号量が、画像が平坦なイントラMBの符号量よりも大きくなる。これは、画像が平坦なマクロブロックでは、高周波成分の量子化値がほぼ0になるため、画像が平坦なマクロブロックの符号量が抑制されるためである。
【0046】
上述したように、画像符号化装置1は、イントラMBのアクティビティACTのレベルを、奇数ラインと偶数ラインとの間で分散させる。これにより、奇数ラインと偶数ラインとで、アクティビティACTの大きいイントラMBを同時に符号化することがないため、フレームF1のイントラMBの符号量総和が極端に上昇することを防ぐことができる。
【0047】
フレームF1の符号化の際に、イントラMBとして決定されたマクロブロックM1,M10,M14,M22はイントラ符号化される。なお、シーケンスの先頭フレームをIピクチャとしてもよい。これにより、圧縮画像データ22を先頭フレームから生成することができる。
【0048】
<イントラ候補MBの更新(手順d)>
イントラMB決定部14は、フレームF1のイントラMBとして決定したマクロブロックM1,M10,M14,M22のインデックスIdxを、イントラ候補設定部13に通知する。イントラ候補設定部13は、通知されたインデックスIdxに基づいて、マクロブロックM1,M10,M14,M22をイントラ禁止MBに変更して、MB分類情報31を更新する。
【0049】
図3Cは、フレームF1のイントラMBが決定された後のイントラ候補MBの分布を示す図である。図3Cに示すように、フレームF1のイントラMBであるマクロブロックM1,M10,M14,M22がイントラ禁止MBに設定されている。各ブロックラインでマクロブロックが一つずつイントラ符号化されるため、フレームが符号化されるたびにイントラ禁止MBの数が一つずつ増加する。しかし、イントラ候補MBの割合は、奇数ラインと偶数ラインとの間で異なったままである。
【0050】
<フレームF2,F3のイントラMBの決定>
フレームF2が、フレームF1の次に入力される。アクティビティ算出部12は、フレームF2に対応する各マクロブロックのアクティビティACTを算出する(手順b)。MB分類情報31が更新されているため、フレームF2のイントラMBは、図3Cに示すイントラ候補MBの中から決定される。
【0051】
図3Dは、イントラ候補MBとフレームF2のアクティビティACTとの対応を示す図である。イントラMB決定部14は、(手順c)に基づいて、マクロブロックM5,M8,M15,M20をフレームF2のイントラMBとして決定する。MB分類情報31が更新されるため、フレームF1のイントラMB(マクロブロックM1,M10,M14,M22)は、フレームF2のイントラMBとして決定されない。したがって、イントラMBを、各フレームで分散して配置することができる。
【0052】
図3Dに示すように、奇数ラインでは、アクティビティACTが下位〜中位のマクロブロックM5,M15がイントラMBとして決定されている。偶数ラインでは、アクティビティACTが中位〜上位のマクロブロックM8,M20がイントラMBとして決定されている。
【0053】
このように、ブロックラインにおけるイントラ候補MBの割合が少なくなるにつれて、イントラMBのアクティビティACTが大きくなる。しかし、奇数ラインと偶数ラインとでイントラ候補MBの割合が異なるため、アクティビティACTの大きいマクロブロックが、奇数ラインと偶数ラインでイントラMBとして同時に選ばれることはない。上述のように、画質の劣化を防ぐために、アクティビティACTの大きいイントラMBを細かく量子化した場合でも、1フレーム当たりのイントラMBの符号量総和が極端に上昇することを防ぐことができる。
【0054】
図3Dを参照して、マクロブロックM5,M8,M15,M20は、フレームF2のイントラMBとして決定されたため、イントラ禁止MBに変更される(手順d)。この結果、偶数ラインのイントラ候補MBの数は、一つとなる。たとえば、ブロックラインBL2では、イントラ候補MBは、マクロブロックM6だけとなる。
【0055】
フレームF2の次に、フレームF3が入力される。フレームF3のイントラMBが決定される(手順c)。ブロックラインBL2のイントラ候補MBはマクロブロックM6だけであるため、マクロブロックM6がフレームF3のイントラMBとして決定される。マクロブロックM6が、ブロックラインBL2で最大のアクティビティACTを有するとは限らない。つまり、(手順c)でイントラMBを決定することにより、各ブロックラインで最大のアクティビティACTを有するマクロブロックがイントラMBとして決定される頻度が低下する。したがって、1フレーム当たりのイントラMBの符号量の総和が極端に上昇することを防止することができる。
【0056】
<復帰処理>
フレームF3のイントラMBとして決定されたマクロブロックは、イントラ禁止MBに変更される(手順d)。ブロックラインBL2では、マクロブロックM6がイントラMBに決定されるため、ブロックラインBL2の全マクロブロックがイントラ禁止MBに設定される。ブロックラインBL4も同様である。
【0057】
図4Aは、フレームF3のイントラMB決定後におけるイントラ候補MBの分布を示す図である。偶数ラインの全マクロブロックがイントラ禁止MBに設定されている。このため、フレームF3の次にフレームF4が入力されても、偶数ラインのイントラMBを決定することができない。
【0058】
イントラ候補設定部13は、偶数ラインのイントラMBの決定を可能にするために、偶数ラインに対して復帰処理を実行する。復帰処理とは、全マクロブロックがイントラ禁止MBに設定されたブロックライン(復帰対象ライン)が存在する場合、復帰対象ラインの全マクロブロックをイントラ候補MBに再設定する処理をいう。
【0059】
図4Bは、復帰処理後のイントラ候補MBの分布を示す図である。復帰処理により、偶数ラインの全マクロブロックがイントラ禁止MBからイントラ候補MBに変化している。奇数ラインは、フレームF3のイントラMBが決定された後でも、イントラ候補MBに設定されたマクロブロックを有している(図4A参照)。このため、奇数ラインは、復帰処理の対象とならない。
【0060】
復帰処理により、偶数ラインにおけるイントラ候補MBの割合は、100%となる。奇数ラインにおけるイントラ候補MBの割合は、50%である。奇数ライン及び偶数ラインのイントラ候補MBの割合が、初期状態の時と比べて逆転する。復帰処理により、フレームF4では、奇数ラインで中位程度のアクティビティACTを有するマクロブロックがイントラMBとして決定される。偶数ラインで最小のアクティビティACTを有するマクロブロックがイントラMBとして決定される。復帰処理が行われた後でも、奇数ラインと偶数ラインとで、イントラMBのアクティビティACTを分散させることができる。
【0061】
奇数ラインの復帰処理は、フレームF6のイントラMBの決定後に実行される。奇数ラインの復帰処理により、奇数ライン及び偶数ラインで設定されたイントラ候補MBの割合は、初期状態と同様に、100%,50%となる。このとき、偶数ラインにおいてイントラ候補MBが一つおきに設定されるとは限らない。フレームF4〜F6において、偶数ラインのイントラMBとして、アクティビティACTの低いイントラ候補MBが優先的に選択されるためである。
【0062】
つまり、奇数ラインの復帰処理は、フレームF6,F12,F18,・・・のイントラMBを決定した後に行われる。偶数ラインの復帰処理は、フレームF3,F9,F15,・・・のイントラMBを決定した後に行われる。つまり、偶数ラインに予めイントラ禁止MBを設定しておくことにより(図3A参照)、奇数ライン及び偶数ラインの復帰処理のタイミングをずらすことができる。
【0063】
復帰処理が行われたブロックラインに属するマクロブロックは、6フレーム以内にイントラMBとして決定される。ただし、各マクロブロックがイントラMBとして決定される間隔(イントラ間隔)は、1〜11フレームの範囲で変化する。一般的には、イントラ間隔は、1〜{(ブロックラインのマクロブロック数×2)−1}となる。
【0064】
イントラ間隔が1となる例について説明する。フレームF3のイントラMBとして、ブロックラインBL2に属するマクロブロックM6が決定されたとする。ブロックラインBL2の復帰処理に伴って、マクロブロックM6は、イントラ候補MBに再び設定される(図4A、図4B参照)。マクロブロックM6がフレームF4のイントラMBとして決定された場合、マクロブロックM6がフレームF3,F4で続けてイントラ符号化されるため、イントラ間隔が1となる。
【0065】
イントラ間隔が11となる例について説明する。フレームF1のイントラMBとして、ブロックラインBL1に属するマクロブロックM1が決定されたとする(図3A)。ブロックラインBL1の復帰処理は、フレームF6のイントラMBが決定された後に実行される。復帰処理後、マクロブロックM1は、フレームF12が入力されるまで、イントラMBとして決定されない可能性がある。このようなケースのときに、イントラ間隔は11となる。
【0066】
{変形例}
上記実施の形態では、ブロックラインにおけるイントラ候補MBの割合を、奇数ラインと偶数ラインとで変化させる例を説明した。しかし、ブロックラインごとに設定されるイントラ候補MBの割合を変化させる間隔(設定間隔)を大きくすることにより、1フレームあたりのイントラMBの符号量の総和のばらつきをさらに抑制することができる。
【0067】
図5は、イントラ候補MBの割合を4ブロックラインおきに変化させたときのイントラ候補MBの初期状態を示す図である。本変形例では、非圧縮画像データ21のフレームが、32個のマクロブロックM0〜M31で構成されている場合を例に説明する。1フレームは、横4個×縦8個のマクロブロックで構成される。
【0068】
設定間隔をPとする。図5に示す例では、設定間隔Pの値は4となる。上記実施の形態で説明した例(図3A参照)では、設定間隔Pの値は2である。設定間隔Pの値は、N=2,4以外の値でもよい。ただし、設定間隔Pの最大値は、非圧縮画像データ21のブロックラインの数である。
【0069】
ブロックラインBL1,BL5は、イントラ候補MBの割合が100%である。ブロックラインBL2,BL6は、イントラ候補MBの割合が75%である。ブロックラインBL3,BL7は、イントラ候補MBの割合が50%である。ブロックラインBL4,BL8は、イントラ候補MBの割合が25%である。
【0070】
このように、ブロックラインBL1〜BL8において、イントラ候補MBの割合を4ブロックラインごとに変化させることにより、各ブロックラインで選択されるイントラMBのアクティビティACTが、上記実施の形態に比べてさらに分散する。設定間隔Pを大きくすることにより、アクティビティACTのレベルが上位のマクロブロックが、イントラMBとして決定される頻度が低下するため、1フレームあたりのイントラMBの符号量の変化をさらに抑制することができる。
【0071】
設定間隔Pを大きくすることにより、アクティビティACTのレベルが低いマクロブロックがイントラMBとして決定される頻度も低下する。たとえば、アクティビティACTの低い移動物体が移動する場合であっても、移動物体が優先的にイントラ符号化されることを防ぐことができる。移動物体が連続的にイントラ符号化され、背景が連続的にインター符号化されることが防止されるため、移動物体の位置が目立つことが防止される。
【実施例】
【0072】
以下、上述の画像符号化装置1を用いて設定間隔Pの値を変えて非圧縮画像データ21を符号化した実施例について説明する。図6〜図8は、各フレームに配置されたイントラMBの平均符号量の変化を示す図である。
【0073】
図6は、設定間隔P=2でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例1)。画像のサイズが異なるものの、初期設定で図3Aに示すようにイントラ候補MBが設定されている。横軸は、フレーム番号を示す。縦軸は、各フレームのイントラMBの平均符号量を示す。比較例として、各フレームのイントラMBをランダムに配置した場合における、各フレームのイントラMBの平均符号量を示す。
【0074】
実施例1及び比較例は、Iピクチャを使用せず、各フレームにイントラMBを分散して配置している。このため、図には示していないが、Iピクチャを使用する場合と比べて、フレーム間での符号量の変動が抑制されている。
【0075】
図6に示すように、実施例1の平均符号量が、40フレームおきに増減を繰り返している。これは、40フレームおきに復帰処理が行われているためである。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例1の平均符号量が、100〜600ビットの範囲で変動している。したがって、実施例1は、比較例と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0076】
図7は、設定間隔P=4でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例2)。初期状態では、イントラ候補MBは、図5に示すように配置されている。
【0077】
図7に示すように、実施例2の平均符号量が、20フレームおきに増減を繰り返している。これは、20フレームおきに復帰処理が行われているためである。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例2の平均符号量が、100〜500ビットの範囲で変動している。実施例2の平均符号量が比較例1の平均符号量と比べて低いレベルで変動しているため、実施例2は、比較例1と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0078】
図8は、設定間隔P=8でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例3)。初期状態では、イントラ候補MBの割合が8ブロックラインごとに変化するように、イントラ候補MBが設定されている。
【0079】
設定間隔P=8の場合、10フレームおきに復帰処理が行われているが、実施例3の平均符号量の増減が、実施例1,2ほど明瞭に現れていない。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例3の平均符号量は、100〜400ビットの範囲で変動している。実施例3の平均符号量が比較例1の平均符号量と比べて低いレベルで変動しているため、実施例3は、比較例1と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0080】
図6〜図8に示すように、設定間隔Pを大きくすることに伴って、イントラMBの平均符号量が低いレベルで変動するようになる。また、設定周期Pを大きくすることに伴って、イントラMBの平均符号量のばらつきが縮小していることがわかる。
【符号の説明】
【0081】
1 画像符号化装置
11 符号化部
12 アクティビティ算出部
13 イントラ候補設定部
14 イントラマクロブロック決定部
【技術分野】
【0001】
本発明は、画像を符号化し、圧縮画像を生成する装置に関する。詳しくは、イントラ符号化処理とインター符号化処理とを用いて画像を符号化する装置に関する。
【背景技術】
【0002】
MPEG2やH.264などの画像符号化技術においては、イントラ符号化処理とインター符号化処理とが用いられる。イントラ符号化処理は、参照フレームを利用せずに、符号化対象のフレーム内で符号化処理が完結する。インター符号化処理は、参照フレームを利用することで符号化対象のフレームに対する符号化が行われる。
【0003】
Iピクチャに含まれる全てのマクロブロックは、イントラ符号化処理により符号化される。PピクチャおよびBピクチャに含まれるマクロブロックは、インター符号化処理により符号化される。Iピクチャの発生符号量は、全てのマクロブロックがイントラ符号化されるため、PピクチャあるいはBピクチャの発生符号量よりも大きい。H.264においては、イントラ予測技術が利用されるが、やはり、PピクチャあるいはBピクチャと比較すると発生符号量が大きい。
【0004】
低遅延の再生あるいは伝送が求められるシステムにおいては、Iピクチャにおける発生符号量の上昇が問題となる。また、Iピクチャの出現周期で発生符号量が振動するという問題がある。発生符号量が振動すると、一時的にバッファのサイズが多く必要となり、非効率である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−215252号公報
【非特許文献1】パイオニア株式会社、技術解説(MPEG技術解説)、平成21年12月10日検索、インターネット<URL:http://pioneer.jp/crdl/tech/mpeg/3-2.html>
【非特許文献2】特許庁、資料室、平成21年12月10日検索、インターネット<URL:http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/nle/nle-7-1.html>
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したように、フレーム内の全てのマクロブロックがイントラ符号化処理されるIピクチャが存在する場合、Iピクチャの処理で遅延が発生する可能性があり、低遅延なシステムには向かない。そこで、非特許文献1に示すような、符号化方法が提案されている。
【0007】
非特許文献1において、フレーム内の全てのマクロブロックがイントラ符号化されるIピクチャは利用されない。非特許文献1では、イントラマクロブロックがスライス単位で配置される。フレーム内のあるスライス内の全てのマクロブロックを、予測を用いずに直接DCTを行うイントラマクロブロックとして符号化する。このようなスライスをイントラスライスと呼ぶ。イントラスライスを適用する場所をフレームごとにずらしていくと、一定周期で画面全体をイントラスライスが巡回していき、画面がリフレッシュされることになる。Iピクチャに比べ、イントラスライスに要する発生符号量は少ないため、バッファサイズを減少させ、遅延を減らすことができる。
【0008】
非特許文献2においても、同様に、イントラスライスを利用する技術が開示されている。
【0009】
非特許文献1および非特許文献2で示すように、イントラスライスを用いることで、イントラブロックをGOP内に分散させることができる。
【0010】
しかし、スライス内の全てのマクロブロックをイントラ符号化処理し、かつ、フレームごとにイントラスライスの位置を1列ずつずらしていく方法であるので、画質劣化の原因となっていた。具体的には、画像を連続再生したときイントラスライスが走査線のように見えてしまうという問題があった。
【0011】
上記特許文献1では、イントラマクロブロックをマクロブロック単位で分散させるようにしている。しかし、イントラマクロブロックが複雑な画像である場合、イントラマクロブロックの符号量が増加する傾向にある。イントラマクロブロックの符号量を抑制するためには、イントラマクロブロックを粗く量子化することが考えられる。イントラマクロブロックを粗く量子化した場合、イントラマクロブロックの画質と、イントラマクロブロックの周囲に位置するインターマクロブロックの画質とに差が生じる。この結果、イントラマクロブロックの位置が目立つという問題があった。
【0012】
本発明の目的は、1フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制し、画質の劣化の少ない画像符号化装置を提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するため、請求項1記載の発明は、画像符号化装置であって、マクロブロック内における第1フレームの画像の複雑さを示すアクティビティを算出するアクティビティ算出部と、横方向に一列に並ぶマクロブロックのラインごとに、第1フレームでイントラ符号化することができるイントラ候補マクロブロックを設定するイントラ候補設定部と、前記ラインに含まれる前記第1フレームのイントラ候補マクロブロックのうち、アクティビティが最小のマクロブロックを、前記第1フレームのイントラマクロブロックとして決定するイントラマクロブロック決定部と、前記イントラマクロブロックをイントラ符号化する符号化部と、を備える。
【0014】
請求項2記載の発明は、請求項1に記載の画像符号化装置において、第2フレームは、前記第1フレームの次に入力されるフレームであり、前記イントラ候補設定部は、前記最小のマクロブロックを、前記第2フレームのイントラ候補マクロブロックから除外する。
【0015】
請求項3記載の発明は、請求項2に記載の画像符号化装置において、前記イントラ候補設定部は、前記ラインのうち第1ラインに含まれる全てのマクロブロックが前記第2フレームのイントラ候補マクロブロックから除外された場合、前記全てのマクロブロックを前記第2フレームのイントラ候補マクロブロックとして再設定する。
【0016】
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載の画像符号化装置において、前記ラインは、第1ラインと、前記第1ラインに接する第2ラインと、を含み、前記第1ラインで設定されるイントラ候補マクロブロックの割合と、前記第2ラインで設定されるイントラ候補マクロブロックの割合とが互いに異なる。
【0017】
請求項5記載の発明は、請求項4に記載の画像符号化装置において、前記ラインごとのイントラ候補マクロブロックの割合が一定の間隔で変化する。
【発明の効果】
【0018】
本発明の画像符号化装置は、ラインごとに設定されたイントラ候補マクロブロックのうちアクティビティが最小のマクロブロックをイントラマクロブロックとして決定する。ラインごとにイントラ候補MBが設定されるため、各ラインでアクティビティの高いマクロブロックがイントラ符号化されることが防止される。したがって、1フレームあたりのイントラマクロブロックの符号量が急激に増加することを防止することができる。
【0019】
第1フレームのイントラマクロブロックとして決定されたマクロブロックは、イントラ候補マクロブロックから除外される。このため、第1フレームのイントラマクロブロックが、次のフレームのイントラマクロブロックとなることが防止される。フレーム間でイントラマクロブロックが分散して配置されるため、イントラマクロブロックの位置を目立たなくすることができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施の形態による画像符号化装置の構成を示す機能ブロック図である。
【図2】各フレームにおけるマクロブロックの構成を示す図である。
【図3A】イントラマクロブロック(イントラMB)として指定することができるマクロブロック(イントラ候補MB)の初期状態での分布を示す図である。
【図3B】イントラMB及びイントラ候補MBの分布を示す図である。
【図3C】更新処理後のイントラ候補MBの分布を示す図である。
【図3D】イントラMB及びイントラ候補MBの分布を示す図である。
【図4A】イントラ候補MBの分布を示す図である。
【図4B】復帰処理後のイントラ候補MBの分布を示す図である。
【図5】本発明の実施の形態の変形例におけるイントラ候補MBの初期状態での分布を示す図である。
【図6】実施例1におけるイントラマクロブロックの符号量の変化を示す図である。
【図7】実施例2におけるイントラマクロブロックの符号量の変化を示す図である。
【図8】実施例3におけるイントラマクロブロックの符号量の変化を示す図である。
【発明を実施するための形態】
【0021】
以下、図面を参照しつつ、本発明の実施の形態について説明する。
【0022】
<画像符号化装置の構成>
図1は、本実施の形態に係る画像符号化装置1の構成を示す機能ブロック図である。画像符号化装置1は、符号化部11と、アクティビティ算出部12と、イントラ候補設定部13と、イントラマクロブロック決定部14とを備える。以下、イントラマクロブロック決定部14を、「イントラMB決定部14」と呼ぶ(MB:MacroBlock)。
【0023】
符号化部11は、非圧縮画像データ21を入力する。符号化部11は、入力した非圧縮画像データ21に対して画像符号化処理を行い、圧縮画像データ22を出力する。符号化部11は、たとえば、MPEG2やH.264などの符号化方式で画像符号化処理を実行する。
【0024】
アクティビティ算出部12は、非圧縮画像データ21を入力する。アクティビティ算出部12は、非圧縮画像データ21のマクロブロックごとに、アクティビティACTを算出する。アクティビティACTは、マクロブロック内の画像の複雑さを示す数値である。
【0025】
イントラ候補設定部13は、イントラ符号化の対象となり得るイントラ候補マクロブロックをブロックラインごとに設定する。以下、イントラ候補マクロブロックを「イントラ候補MB」と呼ぶ。ブロックラインとは、横方向に一列に並んでいるマクロブロックによって構成される帯状の領域である。イントラ候補設定部13は、イントラ候補MBに関する情報をMB分類情報31として保持する。
【0026】
イントラMB決定部14は、MB分類情報31と各マクロブロックのアクティビティACTとに基づいて、各フレームに配置するイントラMBを決定する。イントラMB決定部14は、ブロックラインに含まれるイントラ候補MBのうち、アクティビティが最小のマクロブロックをイントラMBとして決定する。ブロックラインごとに一つのイントラMBが配置されるため、各フレームでイントラMBが分散して配置される。
【0027】
本実施の形態において、画像符号化装置1は、非圧縮画像データ21を符号化するときに、全てのイントラマクロブロックが符号化されたIピクチャを生成しない。画像符号化装置1は、各フレームにイントラMBを分散して配置する。
【0028】
<イントラMBの決定の概要>
各フレームのイントラMBを決定するまでの手順の概要を説明する。図2は、非圧縮画像データのフレームの構造を示す図である。図2に示すように、1フレームが、24個のマクロブロックM0〜M23で構成されている場合を例に説明する。1フレームは、横6個×縦4個のマクロブロックで構成される。フレームには、ブロックラインBL1〜BL4が形成されている。
【0029】
画像符号化装置1は、各フレームのイントラMBを、(手順a)〜(手順d)に従って決定する。
【0030】
(手順a)イントラ候補MBの初期設定
イントラ候補MBの初期設定は、非圧縮画像データ21の符号化が開始される前に行われる。イントラ候補設定部13は、各フレームにおけるイントラMBの位置を分散させるために、ブロックラインごとにイントラ候補MBを設定する。
【0031】
(手順b)アクティビティACTの算出
アクティビティ算出部12は、フレームが入力されるたびに、各マクロブロックのアクティビティACTを算出する。
【0032】
(手順c)イントラMBの決定
イントラMB決定部14は、MB分類情報31及び算出したアクティビティACTを用いて、ブロックラインごとに一つずつイントラMBを決定する。具体的には、各ブロックラインのイントラ候補MBの中でアクティビティが最小のマクロブロックをイントラMBに決定する。アクティビティACTの低いマクロブロックが優先的にイントラ符号化されるため、イントラMBの符号量を抑制することができる。
【0033】
(手順d)MB分類情報31の更新
イントラ候補設定部13は、イントラMBとして決定されたマクロブロックをイントラ候補MBからイントラ禁止MBに変更する。イントラ禁止MBは、イントラ符号化が許可されていないマクロブロックである。これにより、MB分類情報31が更新される。次のフレームのイントラMBの決定には、更新されたMB分類情報31が用いられる。
【0034】
フレームが入力されるたびに(手順b)〜(手順d)の処理が繰り返される。(手順a)〜(手順d)の詳細について、フレームF1のイントラMBを決定するケースを例に説明する。フレームF1の次には、フレームF2,F3,・・・F6,・・・F12,・・・が順次入力される。以下、ブロックラインBL1,BL3を「奇数ライン」と呼ぶ。ブロックラインBL2,BL4を「偶数ライン」と呼ぶ。
【0035】
<イントラ候補MBの初期設定(手順a)>
図3Aは、初期設定時におけるイントラ候補MBの分布を示す図である。図3Aにおいて、イントラ候補MBを白で示す。イントラ禁止MBをハッチングで示す。
【0036】
ブロックラインBL1では、マクロブロックM0〜M5がイントラ候補MBに設定される。ブロックラインBL2では、マクロブロックM6,M8,M10がイントラ候補MBに設定される。ブロックラインBL3では、マクロブロックM12〜M17がイントラ候補MBに設定される。ブロックラインBL4では、マクロブロックM18,M20,M22がイントラ候補MBに設定される。
【0037】
初期設定時には、奇数ラインの全マクロブロックがイントラ候補MBに設定される。初期設定時には、偶数ラインでは、イントラ候補MBが一つおきに設定される。イントラ候補MBの割合が100%のブロックラインと、イントラ候補MBの割合が50%のブロックラインとが交互に繰り返されるように、イントラ候補MBが設定されている。偶数ラインにおいて、イントラ候補MBの割合が50%であれば、イントラ候補MBは、一つおきに配置されていなくてもよい。つまり、あるブロックラインと、あるブロックラインに接するブロックラインとの間でイントラ候補MBの割合が異なるように、イントラ候補MBが設定されればよい。
【0038】
<アクティビティACTの算出(手順b)>
アクティビティ算出部12は、フレームが入力されるたびに、各マクロブロックのアクティビティACTを算出する。上述したように、アクティビティACTは、マクロブロック内の画像の複雑さを示す数値である。アクティビティ算出部12は、マクロブロック内の各画素の画素値の分散をアクティビティACTとして算出する。画素値として、マクロブロック内の画素の輝度値や、各色成分の画素値を用いることができる。
【0039】
各マクロブロックの画像の複雑さを示す数値であれば、他の計算方法を用いてもよい。たとえば、マクロブロック内のある画素(注目画素)の画素値と、注目画素の右隣に接する画素の画素値との差分絶対値の総和を、アクティビティACTとして算出してもよい。
【0040】
<イントラMBの決定(手順c)>
図3Bは、イントラ候補MBと、フレームF1のアクティビティとの対応を示す図である。イントラMB決定部14は、各ブロックラインに設定されたイントラ候補MBのうち、アクティビティACTが最小のマクロブロックをイントラMBとして決定する。
【0041】
ブロックラインBL1では、イントラ候補MBであるマクロブロックM0〜M5の中から、アクティビティACTが最小であるマクロブロックM1がイントラMBとして決定される。同様に、ブロックラインBL2,BL3,BL4のマクロブロックM10,M14,M22が、イントラMBとして決定される。図3Bにおいて、イントラMBとして決定されたマクロブロックM1,M10,M14,M22を砂地模様で示す。各ブロックラインにイントラMBが一つずつ配置されていることがわかる。
【0042】
奇数ラインでは、イントラ禁止MBが設定されていない。このため、各奇数ラインで最小のアクティビティACTを有するマクロブロックが、イントラMBとして決定される。
偶数ラインでは、アクティビティACTが最小のマクロブロックがイントラ候補MBに設定されるとは限らない。たとえば、ブロックラインBL2では、アクティビティACTの値が下位から数えて3番目のマクロブロックM10がイントラMBとして決定されている。奇数ラインと偶数ラインとでイントラ候補MBの割合を変化させることにより、イントラMBのアクティビティACTのレベルを分散させることができる。
【0043】
イントラMBのアクティビティACTのレベルを、奇数ラインと偶数ラインとの間で分散させることにより、フレームF1のイントラMBの符号量総和が、他のフレームのイントラMBの符号量総和に比べて非常に大きくなることを防止できる。この理由について説明する。
【0044】
通常、符号量を抑制するために、アクティビティACTの大きい(画像が複雑な)マクロブロックを符号化する場合、画像が複雑なマクロブロックは粗く量子化される。しかし、本実施の形態において、画像が複雑なイントラMBを粗く量子化した場合、イントラMBの画質と、イントラMBの周囲に位置するインターマクロブロックの画質とに差が生じるため、イントラMBの位置が目立つおそれがある。このため、画像が複雑なイントラMBであっても、細かく量子化する必要がある。
【0045】
画像が複雑なイントラMBと、アクティビティACTの小さい(画像が平坦な)イントラMBとを同じ粗さで量子化した場合、画像が複雑なイントラMBの符号量が、画像が平坦なイントラMBの符号量よりも大きくなる。これは、画像が平坦なマクロブロックでは、高周波成分の量子化値がほぼ0になるため、画像が平坦なマクロブロックの符号量が抑制されるためである。
【0046】
上述したように、画像符号化装置1は、イントラMBのアクティビティACTのレベルを、奇数ラインと偶数ラインとの間で分散させる。これにより、奇数ラインと偶数ラインとで、アクティビティACTの大きいイントラMBを同時に符号化することがないため、フレームF1のイントラMBの符号量総和が極端に上昇することを防ぐことができる。
【0047】
フレームF1の符号化の際に、イントラMBとして決定されたマクロブロックM1,M10,M14,M22はイントラ符号化される。なお、シーケンスの先頭フレームをIピクチャとしてもよい。これにより、圧縮画像データ22を先頭フレームから生成することができる。
【0048】
<イントラ候補MBの更新(手順d)>
イントラMB決定部14は、フレームF1のイントラMBとして決定したマクロブロックM1,M10,M14,M22のインデックスIdxを、イントラ候補設定部13に通知する。イントラ候補設定部13は、通知されたインデックスIdxに基づいて、マクロブロックM1,M10,M14,M22をイントラ禁止MBに変更して、MB分類情報31を更新する。
【0049】
図3Cは、フレームF1のイントラMBが決定された後のイントラ候補MBの分布を示す図である。図3Cに示すように、フレームF1のイントラMBであるマクロブロックM1,M10,M14,M22がイントラ禁止MBに設定されている。各ブロックラインでマクロブロックが一つずつイントラ符号化されるため、フレームが符号化されるたびにイントラ禁止MBの数が一つずつ増加する。しかし、イントラ候補MBの割合は、奇数ラインと偶数ラインとの間で異なったままである。
【0050】
<フレームF2,F3のイントラMBの決定>
フレームF2が、フレームF1の次に入力される。アクティビティ算出部12は、フレームF2に対応する各マクロブロックのアクティビティACTを算出する(手順b)。MB分類情報31が更新されているため、フレームF2のイントラMBは、図3Cに示すイントラ候補MBの中から決定される。
【0051】
図3Dは、イントラ候補MBとフレームF2のアクティビティACTとの対応を示す図である。イントラMB決定部14は、(手順c)に基づいて、マクロブロックM5,M8,M15,M20をフレームF2のイントラMBとして決定する。MB分類情報31が更新されるため、フレームF1のイントラMB(マクロブロックM1,M10,M14,M22)は、フレームF2のイントラMBとして決定されない。したがって、イントラMBを、各フレームで分散して配置することができる。
【0052】
図3Dに示すように、奇数ラインでは、アクティビティACTが下位〜中位のマクロブロックM5,M15がイントラMBとして決定されている。偶数ラインでは、アクティビティACTが中位〜上位のマクロブロックM8,M20がイントラMBとして決定されている。
【0053】
このように、ブロックラインにおけるイントラ候補MBの割合が少なくなるにつれて、イントラMBのアクティビティACTが大きくなる。しかし、奇数ラインと偶数ラインとでイントラ候補MBの割合が異なるため、アクティビティACTの大きいマクロブロックが、奇数ラインと偶数ラインでイントラMBとして同時に選ばれることはない。上述のように、画質の劣化を防ぐために、アクティビティACTの大きいイントラMBを細かく量子化した場合でも、1フレーム当たりのイントラMBの符号量総和が極端に上昇することを防ぐことができる。
【0054】
図3Dを参照して、マクロブロックM5,M8,M15,M20は、フレームF2のイントラMBとして決定されたため、イントラ禁止MBに変更される(手順d)。この結果、偶数ラインのイントラ候補MBの数は、一つとなる。たとえば、ブロックラインBL2では、イントラ候補MBは、マクロブロックM6だけとなる。
【0055】
フレームF2の次に、フレームF3が入力される。フレームF3のイントラMBが決定される(手順c)。ブロックラインBL2のイントラ候補MBはマクロブロックM6だけであるため、マクロブロックM6がフレームF3のイントラMBとして決定される。マクロブロックM6が、ブロックラインBL2で最大のアクティビティACTを有するとは限らない。つまり、(手順c)でイントラMBを決定することにより、各ブロックラインで最大のアクティビティACTを有するマクロブロックがイントラMBとして決定される頻度が低下する。したがって、1フレーム当たりのイントラMBの符号量の総和が極端に上昇することを防止することができる。
【0056】
<復帰処理>
フレームF3のイントラMBとして決定されたマクロブロックは、イントラ禁止MBに変更される(手順d)。ブロックラインBL2では、マクロブロックM6がイントラMBに決定されるため、ブロックラインBL2の全マクロブロックがイントラ禁止MBに設定される。ブロックラインBL4も同様である。
【0057】
図4Aは、フレームF3のイントラMB決定後におけるイントラ候補MBの分布を示す図である。偶数ラインの全マクロブロックがイントラ禁止MBに設定されている。このため、フレームF3の次にフレームF4が入力されても、偶数ラインのイントラMBを決定することができない。
【0058】
イントラ候補設定部13は、偶数ラインのイントラMBの決定を可能にするために、偶数ラインに対して復帰処理を実行する。復帰処理とは、全マクロブロックがイントラ禁止MBに設定されたブロックライン(復帰対象ライン)が存在する場合、復帰対象ラインの全マクロブロックをイントラ候補MBに再設定する処理をいう。
【0059】
図4Bは、復帰処理後のイントラ候補MBの分布を示す図である。復帰処理により、偶数ラインの全マクロブロックがイントラ禁止MBからイントラ候補MBに変化している。奇数ラインは、フレームF3のイントラMBが決定された後でも、イントラ候補MBに設定されたマクロブロックを有している(図4A参照)。このため、奇数ラインは、復帰処理の対象とならない。
【0060】
復帰処理により、偶数ラインにおけるイントラ候補MBの割合は、100%となる。奇数ラインにおけるイントラ候補MBの割合は、50%である。奇数ライン及び偶数ラインのイントラ候補MBの割合が、初期状態の時と比べて逆転する。復帰処理により、フレームF4では、奇数ラインで中位程度のアクティビティACTを有するマクロブロックがイントラMBとして決定される。偶数ラインで最小のアクティビティACTを有するマクロブロックがイントラMBとして決定される。復帰処理が行われた後でも、奇数ラインと偶数ラインとで、イントラMBのアクティビティACTを分散させることができる。
【0061】
奇数ラインの復帰処理は、フレームF6のイントラMBの決定後に実行される。奇数ラインの復帰処理により、奇数ライン及び偶数ラインで設定されたイントラ候補MBの割合は、初期状態と同様に、100%,50%となる。このとき、偶数ラインにおいてイントラ候補MBが一つおきに設定されるとは限らない。フレームF4〜F6において、偶数ラインのイントラMBとして、アクティビティACTの低いイントラ候補MBが優先的に選択されるためである。
【0062】
つまり、奇数ラインの復帰処理は、フレームF6,F12,F18,・・・のイントラMBを決定した後に行われる。偶数ラインの復帰処理は、フレームF3,F9,F15,・・・のイントラMBを決定した後に行われる。つまり、偶数ラインに予めイントラ禁止MBを設定しておくことにより(図3A参照)、奇数ライン及び偶数ラインの復帰処理のタイミングをずらすことができる。
【0063】
復帰処理が行われたブロックラインに属するマクロブロックは、6フレーム以内にイントラMBとして決定される。ただし、各マクロブロックがイントラMBとして決定される間隔(イントラ間隔)は、1〜11フレームの範囲で変化する。一般的には、イントラ間隔は、1〜{(ブロックラインのマクロブロック数×2)−1}となる。
【0064】
イントラ間隔が1となる例について説明する。フレームF3のイントラMBとして、ブロックラインBL2に属するマクロブロックM6が決定されたとする。ブロックラインBL2の復帰処理に伴って、マクロブロックM6は、イントラ候補MBに再び設定される(図4A、図4B参照)。マクロブロックM6がフレームF4のイントラMBとして決定された場合、マクロブロックM6がフレームF3,F4で続けてイントラ符号化されるため、イントラ間隔が1となる。
【0065】
イントラ間隔が11となる例について説明する。フレームF1のイントラMBとして、ブロックラインBL1に属するマクロブロックM1が決定されたとする(図3A)。ブロックラインBL1の復帰処理は、フレームF6のイントラMBが決定された後に実行される。復帰処理後、マクロブロックM1は、フレームF12が入力されるまで、イントラMBとして決定されない可能性がある。このようなケースのときに、イントラ間隔は11となる。
【0066】
{変形例}
上記実施の形態では、ブロックラインにおけるイントラ候補MBの割合を、奇数ラインと偶数ラインとで変化させる例を説明した。しかし、ブロックラインごとに設定されるイントラ候補MBの割合を変化させる間隔(設定間隔)を大きくすることにより、1フレームあたりのイントラMBの符号量の総和のばらつきをさらに抑制することができる。
【0067】
図5は、イントラ候補MBの割合を4ブロックラインおきに変化させたときのイントラ候補MBの初期状態を示す図である。本変形例では、非圧縮画像データ21のフレームが、32個のマクロブロックM0〜M31で構成されている場合を例に説明する。1フレームは、横4個×縦8個のマクロブロックで構成される。
【0068】
設定間隔をPとする。図5に示す例では、設定間隔Pの値は4となる。上記実施の形態で説明した例(図3A参照)では、設定間隔Pの値は2である。設定間隔Pの値は、N=2,4以外の値でもよい。ただし、設定間隔Pの最大値は、非圧縮画像データ21のブロックラインの数である。
【0069】
ブロックラインBL1,BL5は、イントラ候補MBの割合が100%である。ブロックラインBL2,BL6は、イントラ候補MBの割合が75%である。ブロックラインBL3,BL7は、イントラ候補MBの割合が50%である。ブロックラインBL4,BL8は、イントラ候補MBの割合が25%である。
【0070】
このように、ブロックラインBL1〜BL8において、イントラ候補MBの割合を4ブロックラインごとに変化させることにより、各ブロックラインで選択されるイントラMBのアクティビティACTが、上記実施の形態に比べてさらに分散する。設定間隔Pを大きくすることにより、アクティビティACTのレベルが上位のマクロブロックが、イントラMBとして決定される頻度が低下するため、1フレームあたりのイントラMBの符号量の変化をさらに抑制することができる。
【0071】
設定間隔Pを大きくすることにより、アクティビティACTのレベルが低いマクロブロックがイントラMBとして決定される頻度も低下する。たとえば、アクティビティACTの低い移動物体が移動する場合であっても、移動物体が優先的にイントラ符号化されることを防ぐことができる。移動物体が連続的にイントラ符号化され、背景が連続的にインター符号化されることが防止されるため、移動物体の位置が目立つことが防止される。
【実施例】
【0072】
以下、上述の画像符号化装置1を用いて設定間隔Pの値を変えて非圧縮画像データ21を符号化した実施例について説明する。図6〜図8は、各フレームに配置されたイントラMBの平均符号量の変化を示す図である。
【0073】
図6は、設定間隔P=2でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例1)。画像のサイズが異なるものの、初期設定で図3Aに示すようにイントラ候補MBが設定されている。横軸は、フレーム番号を示す。縦軸は、各フレームのイントラMBの平均符号量を示す。比較例として、各フレームのイントラMBをランダムに配置した場合における、各フレームのイントラMBの平均符号量を示す。
【0074】
実施例1及び比較例は、Iピクチャを使用せず、各フレームにイントラMBを分散して配置している。このため、図には示していないが、Iピクチャを使用する場合と比べて、フレーム間での符号量の変動が抑制されている。
【0075】
図6に示すように、実施例1の平均符号量が、40フレームおきに増減を繰り返している。これは、40フレームおきに復帰処理が行われているためである。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例1の平均符号量が、100〜600ビットの範囲で変動している。したがって、実施例1は、比較例と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0076】
図7は、設定間隔P=4でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例2)。初期状態では、イントラ候補MBは、図5に示すように配置されている。
【0077】
図7に示すように、実施例2の平均符号量が、20フレームおきに増減を繰り返している。これは、20フレームおきに復帰処理が行われているためである。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例2の平均符号量が、100〜500ビットの範囲で変動している。実施例2の平均符号量が比較例1の平均符号量と比べて低いレベルで変動しているため、実施例2は、比較例1と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0078】
図8は、設定間隔P=8でイントラ候補MBを初期設定した場合における、イントラMBの平均符号量の変化を示すグラフである(実施例3)。初期状態では、イントラ候補MBの割合が8ブロックラインごとに変化するように、イントラ候補MBが設定されている。
【0079】
設定間隔P=8の場合、10フレームおきに復帰処理が行われているが、実施例3の平均符号量の増減が、実施例1,2ほど明瞭に現れていない。比較例の平均符号量が、350〜600ビットの範囲で変動しているのに対し、実施例3の平均符号量は、100〜400ビットの範囲で変動している。実施例3の平均符号量が比較例1の平均符号量と比べて低いレベルで変動しているため、実施例3は、比較例1と比べてシーケンス全体でのイントラMBの平均符号量を抑制できていることがわかる。
【0080】
図6〜図8に示すように、設定間隔Pを大きくすることに伴って、イントラMBの平均符号量が低いレベルで変動するようになる。また、設定周期Pを大きくすることに伴って、イントラMBの平均符号量のばらつきが縮小していることがわかる。
【符号の説明】
【0081】
1 画像符号化装置
11 符号化部
12 アクティビティ算出部
13 イントラ候補設定部
14 イントラマクロブロック決定部
【特許請求の範囲】
【請求項1】
マクロブロック内における第1フレームの画像の複雑さを示すアクティビティを算出するアクティビティ算出部と、
横方向に一列に並ぶマクロブロックのラインごとに、第1フレームでイントラ符号化することができるイントラ候補マクロブロックを設定するイントラ候補設定部と、
前記ラインに含まれる前記第1フレームのイントラ候補マクロブロックのうち、アクティビティが最小のマクロブロックを、前記第1フレームのイントラマクロブロックとして決定するイントラマクロブロック決定部と、
前記イントラマクロブロックをイントラ符号化する符号化部と、
を備える画像符号化装置。
【請求項2】
請求項1に記載の画像符号化装置において、
第2フレームは、前記第1フレームの次に入力されるフレームであり、
前記イントラ候補設定部は、前記最小のマクロブロックを、前記第2フレームのイントラ候補マクロブロックから除外する画像符号化装置。
【請求項3】
請求項2に記載の画像符号化装置において、
前記イントラ候補設定部は、前記ラインのうち第1ラインに含まれる全てのマクロブロックが前記第2フレームのイントラ候補マクロブロックから除外された場合、前記全てのマクロブロックを前記第2フレームのイントラ候補マクロブロックとして再設定する画像符号化装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の画像符号化装置において、
前記ラインは、
第1ラインと、
前記第1ラインに接する第2ラインと、
を含み、
前記第1ラインで設定されるイントラ候補マクロブロックの割合と、前記第2ラインで設定されるイントラ候補マクロブロックの割合とが互いに異なる画像符号化装置。
【請求項5】
請求項4に記載の画像符号化装置において、
前記ラインごとのイントラ候補マクロブロックの割合が一定の間隔で変化する画像符号化装置。
【請求項1】
マクロブロック内における第1フレームの画像の複雑さを示すアクティビティを算出するアクティビティ算出部と、
横方向に一列に並ぶマクロブロックのラインごとに、第1フレームでイントラ符号化することができるイントラ候補マクロブロックを設定するイントラ候補設定部と、
前記ラインに含まれる前記第1フレームのイントラ候補マクロブロックのうち、アクティビティが最小のマクロブロックを、前記第1フレームのイントラマクロブロックとして決定するイントラマクロブロック決定部と、
前記イントラマクロブロックをイントラ符号化する符号化部と、
を備える画像符号化装置。
【請求項2】
請求項1に記載の画像符号化装置において、
第2フレームは、前記第1フレームの次に入力されるフレームであり、
前記イントラ候補設定部は、前記最小のマクロブロックを、前記第2フレームのイントラ候補マクロブロックから除外する画像符号化装置。
【請求項3】
請求項2に記載の画像符号化装置において、
前記イントラ候補設定部は、前記ラインのうち第1ラインに含まれる全てのマクロブロックが前記第2フレームのイントラ候補マクロブロックから除外された場合、前記全てのマクロブロックを前記第2フレームのイントラ候補マクロブロックとして再設定する画像符号化装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の画像符号化装置において、
前記ラインは、
第1ラインと、
前記第1ラインに接する第2ラインと、
を含み、
前記第1ラインで設定されるイントラ候補マクロブロックの割合と、前記第2ラインで設定されるイントラ候補マクロブロックの割合とが互いに異なる画像符号化装置。
【請求項5】
請求項4に記載の画像符号化装置において、
前記ラインごとのイントラ候補マクロブロックの割合が一定の間隔で変化する画像符号化装置。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2011−166512(P2011−166512A)
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【出願番号】特願2010−27946(P2010−27946)
【出願日】平成22年2月10日(2010.2.10)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【出願日】平成22年2月10日(2010.2.10)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
[ Back to top ]