(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、記録媒体としてディスク媒体、ハードディスク、又はメモリなどを用いてハイビジョン記録を行うビデオカメラが製品化され始めた。これらのビデオカメラは、小型で持ち運びも容易であり、かつ高画質の映像を記録できるため、今後ますます普及していくと思われる。このようなビデオカメラは、ハイビジョン記録を行うため、例えばMPEG4 part−10:AVC(ISO/IEC 14496−10、別名H.264)に従って圧縮符号化されたビデオストリームで記録媒体に映像を保存する。この圧縮符号化方式では、画像間の相関を利用したフレーム間予測(インター予測)と、画像内の相関を利用したフレーム内予測(イントラ予測)とを用いると共に、算術符号化を用いることで高効率な圧縮符号化を実現している。
【0003】
また、圧縮符号化の際に、量子化や動き予測を行うブロックのサイズを可変とすることで、符号化効率の向上を図る技術が存在する。動きベクトルはブロックあたりに1つ含まれるので、ブロックサイズを大きくすると、小さくした場合と比較して動きベクトルの数を削減できる。そのため、符号量を削減することができる。一方、ブロックサイズを小さくすると、各ブロックにより適した動きベクトルや量子化幅を設定可能となる。そこで、入力された映像の特徴に応じてブロックサイズを切り替えることで、符号化効率を向上させることができる。
【0004】
特許文献1は、このような技術を採用した画像符号化装置を開示している。特許文献1の画像符号化装置は、入力された映像を細かく分割して各分割領域の動きベクトルを算出し、或るブロックと隣接ブロックとの動きベクトルの差分が少ない場合に、当該ブロックと隣接ブロックとを結合したサイズをブロックサイズとする。これにより、ベクトル数が削減され、符号化効率が向上する。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【0013】
[第1の実施形態]
図1は、第1の実施形態に係る動画像符号化装置100の構成を示すブロック図である。動画像符号化装置100は、入力された映像(動画像)を可変サイズのブロックに分割し、動き補償及び量子化を用いる符号化を行うことで符号化ストリームを生成して記録するように構成される。
【0014】
映像入力部101は、撮像装置より映像信号を入力し、第1のブロック分割部102(第1の分割手段)へと出力する。第1のブロック分割部102は、入力された映像信号の符号化対象画像を、可変サイズの複数の第1のブロック画像に分割する。分割方法の詳細は後述する。加算器103は、ブロックサイズ決定部114による制御(後述)に従って、入力されるブロック画像の画素値と予測に用いられる参照画素値との予測誤差を算出する。直交変換部104は、予測誤差を例えば離散コサイン係数に変換する。量子化部105は、離散コサイン係数を量子化する。
【0015】
逆量子化部106及び逆直交変換部107は、量子化部105による量子化の結果に対して逆量子化及び逆直交変換を行うことにより、参照画素値との予測誤差を求める。加算器108は、予測誤差と参照画素値とを加算することで、局所的な復号結果である画素値を求める。加算器108によって得られた画素値は、参照フレーム保持部109に保持される。
【0016】
動き探索部110(動きベクトル検出手段)は、第1のブロック画像と、参照フレーム保持部109に保持されている、先行する画像の参照画素値を用いてパターンマッチングを行う。そして、動き探索部110は、参照画素値との誤差が最小となるベクトルを、入力画像(符号化対象画像)における第1のブロック画像の動きベクトルとして検出する。
動き探索部110にて検出された、第1のブロック画像の動きベクトルは、動き補償部115へと出力される。
【0017】
第2のブロック分割部111(第2の分割手段)は、入力された第1のブロック画像を、更に細かい複数の第2のブロック画像へと分割し、分散値算出部112へと出力する。分散値算出部112は、入力された第2のブロック画像の各々の分散値を算出し、特徴量算出部113へと出力する。
【0018】
特徴量算出部113は、分散値算出部112より入力された分散値を用いて、各第2のブロック画像の量子化による画質劣化の目立ち易さを示す特徴量(以後、劣化レベルと呼ぶ)を算出し、ブロックサイズ決定部114へと出力する。分散値が高い領域は、一般的に視覚的な劣化が目立ちにくく、分散値が低い領域は、一般的に視覚的な劣化が目立ち易い。そこで、特徴量算出部113は、分散値が高い領域については劣化レベルとして低い値を算出し、分散値が低い領域については劣化レベルとして高い値を算出する。
【0019】
ブロックサイズ決定部114は、特徴量算出部113から出力された劣化レベルを用いて、第1のブロック画像と第2のブロック画像のどちらを符号化のサイズ(単位)とするかを選択する。ブロックサイズ決定部114は、選択結果を加算器103と動き補償部115へと通知することにより、加算器103及び動き補償部115の動作を制御する。選択方法の詳細は後述する。
【0020】
動き補償部115は、動き探索部110で検出された動きベクトルを取得し、ブロックサイズ決定部114の指示に従い、第1のブロック画像又は第2のブロック画像の、参照画像内の動きベクトルで表される画素値を参照画素値として出力する。そして、加算器103は、動き補償部115からの参照画素値を用いて、ブロックサイズ決定部114の指示に従い、後続するフレーム又はフィールドにおける第1のブロック画像又は第2のブロック画像の画素値と選択された参照画素値との誤差を算出する。これにより、後続する符号化が実行される。即ち、ブロックサイズ決定部114の選択に応じて、複数の第2のブロック画像の各々、又は第1のブロック画像の符号化が実行される。
【0021】
エントロピー符号化部116は、量子化部105による量子化の結果、及び、動き探索部110により求められた動きベクトルをエントロピー符号化し、ストリームとして記録媒体117へと出力する。
【0022】
なお、動画像符号化装置100は、映像入力部101に入力する符号化対象画像を撮像する撮像部を更に備えてもよい。この場合、動画像符号化装置100は、撮像装置として機能する。
【0023】
次に、第1のブロック分割部102における符号化対象画像の分割方法の詳細について説明する。本実施例態では、第1のブロック画像のサイズは可変であり、例えば、32画素×32画素、16画素×16画素、16画素×8画素、8画素×8画素、等を選択可能であるものとする。
【0024】
図2は、第1のブロック画像を説明するための図である。
図2の左側は符号化対象画像を示し、
図2の右側は符号化対象画像を複数の第1のブロック画像に分割した様子を示す。
図2の右側には様々なサイズのブロック画像が存在するが、いずれも第1のブロック画像である。このように、第1のブロック分割部102は、符号化対象画像を可変サイズの複数の第1のブロック画像に分割する。
【0025】
なお、第1のブロック画像のサイズは固定サイズであってもよい。また、可変サイズの場合、様々な方法でサイズを決定可能であるが、一例として、第1のブロック分割部102は、隣接した画素値との差分が小さい画素をまとめるようにしてブロック画像のサイズを決定することができる。
【0026】
次に、第2のブロック分割部111における第1のブロック画像の分割方法の詳細について説明する。
【0027】
図3は、第2のブロック画像を説明するための図である。
図3の左側は符号化対象画像を複数の第1のブロック画像に分割した様子を示し、
図3の右側は第1のブロック画像301を複数の第2のブロック画像に分割した様子を示す。本実施形態では、第2のブロック分割部111は、第1のブロック画像を、縦方向に2分割、横方向に2分割するものとする。例えば、第2のブロック分割部111は、複数の第1のブロック画像の1つである第1のブロック画像301を、4つの第2のブロック画像311、312、313、314に分割する。
【0028】
次に、動画像符号化装置100による符号化処理、特に、ブロックサイズ決定部114におけるブロック画像の選択方法の詳細について説明する。
図4は、動画像符号化装置100による符号化処理を示すフローチャートである。
【0029】
S401で、第1のブロック分割部102は、
図2を参照して前述したように、符号化対象画像を複数の第1のブロック画像に分割する。S402で、動き探索部110は、第1のブロック画像の動きベクトルを検出する。S403で、第2のブロック分割部111は、
図3を参照して前述したように、第1のブロック画像を複数の第2のブロック画像に分割する。
【0030】
S404で、分散値算出部112は、複数の第2のブロック画像の各々について、画素値の分散値を算出する。そして、特徴量算出部113は、分散値に基づき、複数の第2のブロック画像の各々について、劣化レベル(量子化による画質劣化の目立ち易さを示す特徴量)を算出する。
【0031】
S405で、ブロックサイズ決定部114は、各第2のブロック画像の劣化レベルが近いか否かを判定する。各劣化レベルが近い場合、処理はS406に進み、そうでない場合、処理はS407に進む。S405における判定は、例えば、各劣化レベルのばらつきの度合いが閾値以上か否かを判定することにより行われる。ブロックサイズ決定部114は、各劣化レベルのばらつきの度合いが閾値以上の場合、各劣化レベルが近くないと判定し、そうでない場合、各劣化レベルが近いと判定する。
【0032】
S406では、ブロックサイズ決定部114は、第1のブロック画像を選択し、その旨を加算器103と動き補償部115へと通知する。S407では、ブロックサイズ決定部114は、複数の第2のブロック画像を選択し、その旨を加算器103と動き補償部115へと通知する。
【0033】
S408で、動画像符号化装置100は、加算器103、動き補償部115、直交変換部104、量子化部105などを用いて、S406又はS407で選択されたブロック画像を符号化する。複数の第2のブロック画像が選択された場合、動き補償部115は、各ブロック画像の動きベクトルとして、これらの第2のブロック画像に対応する第1のブロック画像の動きベクトル(即ち、S402で検出された動きベクトル)を用いる。
【0034】
図5を参照して、S404乃至S408の処理について更に詳細に説明する。
図5において、501は符号化対象画像を示す。502は、第1のブロック画像を示す。503は、第1のブロック画像502を分割した、第2のブロック画像を示す。504は、第1のブロック画像502とは別の第1のブロック画像を示す。505は、第1のブロック画像504を分割した、第2のブロック画像を示す。506は、動き探索部110で検出された第1のブロック画像502の動きベクトルを示す。507は、動き探索部110で検出された第1のブロック画像504の動きベクトルを示す。
【0035】
第1のブロック画像502には、平坦な領域と複雑な領域とが混在している。従って、第1のブロック画像502からは、複数の第2のブロック画像503として、劣化レベルが高いものと低いものとが得られる。従って、ブロックサイズ決定部114は、各劣化レベルが近くないと判定し、複数の第2のブロック画像503を選択する。この場合、動き補償部115は、動き探索部110で検出された第1のブロック画像502の動きベクトル506を取得し、この動きベクトルを、複数の第2のブロック画像503の各々の動きベクトルとして用いる。
【0036】
一方、第1のブロック画像504には、平坦な領域のみが含まれている。従って、第1のブロック画像504からは、複数の第2のブロック画像505として、劣化レベルが低いもののみが得られる。従って、ブロックサイズ決定部114は、各劣化レベルが近いと判定し、第1のブロック画像504を選択する。この場合、動き補償部115は、動き探索部110で検出された第1のブロック画像504の動きベクトル507を取得し、この動きベクトルを使用して動き補償を行う。
【0037】
以上説明したように、本実施形態によれば、動画像符号化装置100は、符号化対象画像から得られる第1のブロック画像を複数の第2のブロック画像に分割し、複数の第2のブロック画像の各々について、劣化レベルを算出する。そして、動画像符号化装置100は、各劣化レベルが近い場合は第1のブロック画像を符号化し、そうでない場合は複数の第2のブロック画像の各々を符号化する。
【0038】
従って、各劣化レベルが近い場合は第2のブロック画像よりも大きな第1のブロック画像が選択されるため、動きベクトルの数が減少するが、この場合は、第1のブロック画像の全体を一様な量子化幅で量子化しても画質劣化は目立ちにくい。また、各劣化レベルが近くない場合は、第1のブロック画像よりも小さな第2のブロック画像が選択され、各第2のブロック画像について個別に量子化幅が決定されるため、画質劣化が抑制される。その結果、動き補償及び量子化を用いる符号化において、画質劣化を抑制しつつ動きベクトルの数を減少させることが可能となる。
【0039】
[第2の実施形態]
図6は、第2の実施形態に係る動画像符号化装置600の構成を示すブロック図である。
図6において、
図1の動画像符号化装置100と同一又は同様の構成要素には同一の符号を付し、その説明を省略する。第1の実施形態では、動画像符号化装置100は、第2のブロック画像の動きベクトルとして第1のブロック画像の動きベクトルを用いたが、第2の実施形態では、動画像符号化装置600は、第2のブロック画像についても動きベクトルを検出する。
【0040】
動き探索部601は、動き探索部110と同様、第1のブロック画像の動きベクトルを検出する。加えて、動き探索部601は、第2のブロック分割部111から第2のブロック画像を取得し、第2のブロック画像の動きベクトルも検出する。検出された第1及び第2のブロック画像の動きベクトルは、動きベクトル保持部602に保持される。
【0041】
ブロックサイズ決定部114により第1のブロック画像が選択された場合、動き補償部603は、動きベクトル保持部602から第1のブロック画像の動きベクトルを取得し、この動きベクトルを使用して動き補償を行う。一方、ブロックサイズ決定部114により複数の第2のブロック画像が選択された場合、動き補償部603は、動きベクトル保持部602から各第2のブロック画像の動きベクトルを取得し、これらの動きベクトルを使用して動き補償を行う。
【0042】
従って、第2の実施形態においては、動画像符号化装置600は、
図4のフローチャートに従って符号化処理を行う場合、S402において、第1のブロック画像の動きベクトルに加えて第2のブロック画像の動きベクトルを検出する。また、S407において第2のブロック画像が選択された場合、S408において、動画像符号化装置600は、S402で検出された第2のブロック画像の動きベクトルを使用して符号化を行う。
【0043】
図7及び
図8を参照して、第2の実施形態に係る符号化処理の具体例を説明する。
図7は、動き探索部601による動きベクトルの検出処理を説明するための図である。
図7において、701は、符号化対象画像の第1のブロック画像を示し、702は、第1のブロック画像701から得られる第2のブロック画像を示す。703は、参照画像を示し、704は、第1のブロック画像701の動きベクトルを示し、705は、4つの第2のブロック画像の各々の動きベクトルを示す。
【0044】
動き探索部601は、入力された第1のブロック画像701及び参照画像703に対してパターンマッチングを行うことで、第1の動きベクトル704を検出し、動きベクトル保持部602へと出力する。また、動き探索部601は、入力された4つの第2のブロック画像702の各々について、参照画像703に対してパターンマッチングを行うことで、第2の動きベクトル705を算出し、動きベクトル保持部602へと出力する。
【0045】
次に
図8を参照する。
図8において、501乃至506は、
図5の501乃至506と同じものを示す。806は、動き探索部601で検出された4つの第2のブロック画像503の各々の動きベクトルを示す。第1の実施形態の場合(
図5参照)と異なり、第2の実施形態では、複数の第2のブロック画像503が選択された場合、動き補償部603は、動き探索部601で検出された複数の第2のブロック画像503の各々の動きベクトルを取得して符号化を行う。
【0046】
以上説明したように、第2の実施形態によれば、動画像符号化装置600は、第2のブロック画像についても動きベクトルを検出する。これにより、動き補償の精度が向上し、第2のブロック画像を符号化する場合の画質が向上する。
【0047】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。