【実施例1】
【0014】
本実施例では、画像符号化を行う画像符号化装置の例を説明する。本実施例では、画像符号化にH.264を用いた例について述べる。
【0015】
まずは、
図12〜14を用いて本実施例の画像符号化装置が適用される画像伝送システムについて説明する。
図12は監視カメラシステム、
図13はテレビ会議システム、
図14は車載カメラシステムの一例を示す図である。
【0016】
図12において、1201、1202、1203はそれぞれA地点、B地点、C地点に設置された監視カメラ、1204は監視カメラ1201、1202、1203で撮像された画像を受信する監視センター、1205はインターネット回線等のワイドエリアネットワーク(WAN)である。監視カメラ1201〜1203で撮像された映像はWAN1205を介して監視センター1204内のモニタ等に表示することが可能である。
図12においては監視カメラが3つの場合の例を示しているが、
監視カメラの数は2つ以下であっても4つ以上であってもよい。
【0017】
本実施例の画像符号化装置は、例えば監視カメラ1201〜1203に搭載される。画像符号化装置は、監視カメラ1201〜1203のレンズを介して入力された入力画像に対して、後述する符号化処理を行い、符号化処理された入力画像はWAN1205へ出力される。
【0018】
図13において、1301、1302、1303はそれぞれA地点、B地点、C地点に設置されたテレビ会議システム、1304はインターネット回線等のWANである。テレビ会議システム1301〜1303のカメラで撮像された映像はWAN1304を介してテレビ会議システム1301〜1303のモニタ等に表示することが可能である。
図13においてはテレビ会議システムが3つの場合の例を示しているが、テレビ会議システムの数は2つであっても4つ以上であってもよい。
【0019】
本実施例の画像符号化装置は、例えばテレビ会議システム1301〜1303のカメラに搭載される。画像符号化装置は、テレビ会議システム1301〜1303のカメラのレンズを介して入力された入力画像に対して、後述する符号化処理を行い、符号化処理された入力画像はWAN
1304へ出力される。
【0020】
図14において、1401は自動車、1402、1403は自動車1401に搭載される車載カメラ、1404は車載カメラ1402、1403で撮像された映像を表示するモニタ、1405は自動車1401内のローカルエリアネットワーク(LAN)である。車載カメラ1402、1403で撮像された映像はLAN1405を介してモニタ1404に表示することが可能である。
図14においては車載カメラが2つ搭載された例を示しているが、車載カメラの数は1つであっても3つ以上であってもよい。
【0021】
本実施例の画像符号化装置は、例えば車載カメラ1402、1403に搭載される。画像符号化装置は、車載カメラ1402、1403のレンズを介して入力された入力画像に対して、後述する符号化処理を行い、符号化処理された入力画像はLAN1405へ出力される。
【0022】
次に、本実施例の画像符号化装置について説明する。
図1は、画像符号化装置の構成図の例である。画像符号化装置100は、入力画像書込み部101、入力画像複雑度計算部102、入力画像用メモリ103、符号化単位画像読込み部104、エンコード部105、エンコード用メモリ106、符号化単位複雑度計算部107、QP(量子化パラメータ)値計算部108、制御部109から構成される。
【0023】
入力画像書込み部101は、ラスタスキャン順に入力される入力画像を入力画像用メモリ103に書き込む処理を行う。
【0024】
入力画像複雑度計算部102は、メモリに書き込む前の入力画像を用いて複雑度を計算し、入力画像複雑度を出力する。ここで、複雑度とは、目標遅延時間分の領域の入力画像の絵柄の難易度を示す指標であり、例えば(式1)に記載する分散値varで与えられる。
【0025】
ここで、Nは計算する横方向の画素数、Mは計算する縦方向の画素数を表しており、x
(i.j)は上記N×M画素の範囲内の画素値、XはN×M画素の範囲内の画素値の平均値である。このNとMについては、設定された目標遅延時間より決定する。
【0026】
また、目標遅延時間とは、画像が入力されてから、ストリームが出力されるまでのエンコード処理の処理時間であり、この遅延時間単位での発生符
号量が一定以下になるように制御する。目標遅延時間単位の発生符号量を一定以下にすることで、画像伝送システムを安定動作させるために必要な受信装置側のバッファリング時間を計算することができる。そのため、画像伝送システムの画像伝送時の伝送時間を保障することが可能となる。目標遅延時間は、例えば車載ネットワークであれば1ms〜50ms程度、テレビ会議システムであれば100ms秒程度が想定されるが、状況に応じて要求される目標遅延時間が変化することも考えられる。
【0027】
入力画像用メモリ103は、ラスタスキャン順に入力された入力画像を一旦蓄積し、符号化単位(H.264の場合は16画素×16画素のマクロブロック(以下、「MB」と示す)。)のMB画像を連続して読み出すために使用するメモリである。このメモリはSDRAMのような外部メモリでも良いし、SRAMのような内部メモリでも良い。
【0028】
符号化単位
画像読込み部104は、入力画像用メモリ103からMB画像を読み出すブロックである。符号化単位
画像読込み部104で読み出されたMB画像は、エンコード部105と符号化単位複雑度計算部107へ供給される。
【0029】
符号化単位複雑度計算部107は、MB画像を用いてMB毎の複雑度を計算し、符号化単位複雑度を出力する。これは、入力画像複雑度計算部102と同一の分散式(式1)を用いて計算する。ここでH.264の場合は、MBが16画素×16画素なため、N,Mともに16になる。
【0030】
QP値計算部108は、前記入力画像複雑度と、前記符号化単位複雑度と、エンコード部105で実際にエンコードした時に発生した発生符号量を用いて、MB毎のQP値を出力する。QPとは、quantization parameter、すなわち量子化パラメータを示すものであり、QP値の算出方法については、後ほど具体例を挙げて説明する。
【0031】
エンコード部105は符号化単位画像読込み部104から出力されるMB画像とQP値計算部108からMB毎に出力されるQP値を用いてエンコード処理を行い、ストリームを生成する。
【0032】
エンコード用メモリ106は、予測処理に使用するための再生画像を蓄えておくメモリであり、入力画像用メモリと同様にSDRAM、SRAMどちらでも良い。入力画像用メモリ103とエンコード用メモリ106は、
図1では分けて記載しているが分ける必要はなく、一つのSDRAMを使用するとしても良い。
【0033】
制御部109は、設定された目標遅延時間に基づいて、
図1に記載の各処理ブロック(入力画像書込み部101、入力画像複雑度計算部102、符号化単位画像読込み部104、エンコード部105、符号化単位複雑度計算部107、QP値計算部108)を制御するブロックである。制御方法については後ほど具体例を挙げて説明する。
【0034】
なお、入力画像複雑度計算部102と符号化単位複雑度計算部107とを含む構成を単に解析部ともいう。
【0035】
次に、
図2を用いてエンコード部105の詳細を説明する。エンコード部105は、予測部201と周波数変換・量子化部202、符号化部203、逆周波数変換・逆量子化部204から構成される。
【0036】
まず、予測部201ではMB画像を入力として、画面内予測、またはフレーム間予測のどちらか効率の良い方を選択し予測画像を作成する。その後、前記生成した予測画像と、現画像から前記予測画像を引き算した誤差画像を出力する。画面内予測は、エンコード用メモリ106で蓄えた、隣接MBの再生画像を用いて予測画像を作成する方法であり、フレーム間予測は、エンコード用メモリ106で蓄えた過去フレームの再生画像を用いて予測画像を作成する方法である。
【0037】
周波数変換・量子化部202は、誤差画像に周波数変換を施した後、QP値計算部から与えられた量子化パラメータに基づいて、各周波数成分の変換係数を量子化した量子化係数を出力する。
【0038】
符号化部203は、周波数変換・量子化部202から出力された量子化係数を符号化処理してストリームを出力する。また、QP値計算部108で使用する発生符号量を出力する。
【0039】
逆周波数変換・逆量子化部204は、量子化係数を逆量子化して各周波数成分の変換係数に戻した後、逆周波数変換して誤差画像を生成する。その後に予測部201から出力された予測画像と足し合わせて再生画像を作成し、エンコード用メモリ106に蓄える。
【0040】
次に制御部109の制御例を説明する。前提条件は、1280画素×720画素、60fps(frame per second)の画像を目標遅延時間3.33msでエンコード処理するとする。
【0041】
図3は、1フレームの画像(60fpsなので1フレームあたり16.666ms)を目標遅延時間3.33ms毎の領域(領域1〜領域5)に分けた図である。すべての領域とも同じ大きさであり、領域中の四角のブロックはMBを示している。MB中に記載したナンバーは処理順番に番号を割り当てている。1つの領域に横のMB数は80個、縦のMB数は9個、合計MB数は720個となる。この領域毎に、発生符号量を一定にしつつ高画質化するように処理を行う。
【0042】
このように、目標遅延時間に基づいて領域の大きさを変化させることにより、目標遅延時間に応じた高画質化処理が可能となる。
【0043】
図4に
図1、2に記載の各処理ブロック(入力画像書込み部101、入力画像複雑度計算部102、符号化単位画像読込み部104、エンコード部105、符号化単位複雑度計算部107、QP値計算部108、予測部201、周波数変換・量子化部202、符号化部203)の処理タイミングを示したタイミング図を示す。横軸は時間、縦軸は各処理ブロックを示しており、処理ブロック毎にどのタイミングでどの領域またはMBを処理しているかが分かるようになっている。この処理タイミングの制御は、
図1に記載の制御部109が行う。エンコード部105の各処理は
図4に記載のようにMB毎のパイプライン処理となる。ここで、パイプライン処理とは、MB毎の符号化処理を複数の段階(ステージ)に分割し、各ステージの処理を並列に処理することであり、高速処理を行なうための手法である。
【0044】
まず、入力画像書込み部101の入力画像書込み処理と、入力画像複雑度計算部102の入力画像複雑度計算処理とが並行して行われる。領域1の入力画像がすべて入力画像用メモリ103に書き込み終わったら、符号化単位画像読込み部104の符号化単位画像読込み処理を行いエンコード部105と符号化単位複雑度計算部107に出力する。ここで、読込みと並行して、符号化単位複雑度計算部107の符号化単位複雑度計算を行う。
【0045】
次に、QP値計算部108のQP計算処理と、予測部201の予測処理を並行して行う。さらに、周波数変換・量子化部202では、一つ前のQP値計算処理で計算したQP値を使用し、周波数変換・量子化処理を行う。最後に、符号化部203の符号化処理を行い、ストリームを出力する。
【0046】
ここで、実際のエンコード処理による遅延時間は、入力画像が入力されてから、符号化部203からストリームが出力されるまでとなる。よって、領域1が入力される時間3.33msに3MB分処理する時間を足し合わせた時間となるが、3MB分の処理時間は、数十マイクロ秒のオーダー(16.666ms/3600MB×3MB=0.014ms)であり十分小さいため、本明細書では入力画像が入力されてから符号化部203からストリームが出力されるまでの時間は約3.33msとみなせる。
【0047】
このように、目標遅延時間分の領域の入力画像を用いて、入力画像複雑度を計算後、実際のエンコード処理を開始することにより、目標遅延時間分の領域の入力画像の絵柄の符号化難易度が分かるため、目標遅延時間分の領域に適したビット配分を行い高画質化することができる。ここで、目標遅延時間を変更する場合は、目標遅延時間に対応して領域サイズが変更され、エンコード処理の開始タイミングを変更することで、対応可能である。
【0048】
次に
図5を用いてQP値の決定方法の具体例を説明する。
図5は、QP値計算部108の内部の詳細を示した図であり、ベースQP計算部501、MB(マクロブロック)QP計算部502、QP
値算出部503から構成される。
【0049】
ベースQP計算部501は、領域(領域1〜領域5)を跨ぐときにのみ実行される処理であり、入力画像複雑度と符号量を用いて次に処理する領域のベースQPを出力する。このベースQPは下記(式2)で与えられる。
【0050】
ここで、QP
aveは、前の領域の平均QP値、bitrateは前の領域の発生符号量、target_bitrateは次の領域の目標符号量、αは係数、var
nextは次の領域の入力画像複雑度、var
preは前の領域の入力画像複雑度を示している。(式2)により、前の領域の発生符号量と次の領域全体の入力画像複雑度を加味して、次の領域のベースQPを決定することが可能となるため、発生符号量を精度よく推測することができる。さらに、前回符号化した際の平均QP値と発生符号量を元にループ処理しているため、(式2)は画像に合わせて最適化され、推測する符号量と実際の発生符号量の間の誤差を小さくしている。
【0051】
次に、MBQP計算部502は、MB毎に実行される処理であり、符号化単位複雑度と入力画像複雑度からMBQPを出力する。このMBQPは(式3)で与えられる。
【0052】
ここで、βは係数、γはリミッタ値を示しており、γよりMBQPが大きい場合はγ、−γよりMBQPが小さい場合は−γとする。(式3)を用いると、入力画像複雑度より符号化単位複雑度が大きい複雑な絵柄のMBは、MBQPを大きくして発生符合量を抑える。逆に入力画像複雑度より符号化単位複雑度が小さい平坦な絵柄のMBは、MBQPを小さくして符号量を割り当てて主観画質を良くすることができる。
【0053】
このように、平坦な絵柄の劣化に敏感な人間の視覚特性に合わせた適切なビット配分が可能となり、高画質化することができる。また、この処理は、発生する符合量の多い複雑な絵柄のMBQPを大きくして、発生する符号量の少ない平坦な絵柄のMBQPを小さくすることになるため、主観画質の向上だけではなく、MB毎の発生符号量を平滑化する効果も備えている。
【0054】
最後にQP
値算出部503では、(式4)に記載の式により、QP値を算出する。
【0055】
以上、実施例1に記載の符号化装置100では、QP値計算部108のベースQP計算部501における発生符号量を一定にする処理と、QP値計算部108のMBQP計算部502における絵柄に応じたQP値の制御により、目標遅延時間毎の発生符号量を一定にしつつ、高画質化が実現可能となる。
【0056】
また、実施例1の構成は、目標遅延時間をエンコード中やアプリケーション毎に変える場合にも有効である。入力画像複雑度計算部102での入力画像複雑度の計算と並行して符号化単位毎の符号化単位複雑度を計算する場合、目標遅延時間の領域内にあるMB数分の符号化単位複雑度をメモリに記録しておく必要がある(実施例1の例では、720MB分のメモリが必要)。
【0057】
これに対して、実施例1の構成は、符号化単位画像を入力画像用メモリ103から読み出したタイミングで、符号化単位複雑度を計算しているので、パイプライン処理の遅延分(実施例1の例では、次のステージで使用するので1MB分)のメモリを持っていればよく、目標遅延時間によらないで固定のメモリを持てばよい。これは、4k8kサイズなど大きな画像サイズの画像を符号化する場合に、少ない固定量のメモリで良いため特に有効である。
【0058】
また、エンコード中のパイプライン処理を変更することなく、実現可能な構成であり、本処理を導入したことによる、エンコード処理の遅延は発生しない。
【0059】
実施例1では、1フレーム以下の目標遅延時間の例で説明したが、蓄積用途の場合、リアルタイム性が要求されないので、目標遅延時間はメモリの容量が許す限り遅く設定してもよい。例えば、3フレーム分を目標遅延時間と設定した場合、入力画像を3枚分解析してからビット配分を行うことができるため、高画質化を実現できる。
【0060】
また、ラスタキャン順に入力画像が入力される例を説明したが、ラスタスキャン順ではなく、例えば、K画素×L画素毎に一度に入力されるとしても良い。
【0061】
また、H.264についての例を挙げたが、符号化単位毎に画像の品質を変更できるパラメータを持った動画像符号化方式(MPEG2、次世代の動画像符号化方式HEVC(H.265)など)であれば、本構成を用いることで同様の効果が得られる。
【0062】
また、複雑度は分散値の例を説明したが、隣の画素との差分値の合計、エッジ検出フィルタ(Sobelフィルタ、ラプラシアンフィルタなど)の合計値など、画像の複雑度を示す指標であれば分散値に限らない。
【0063】
また、
図5を用いてQP値計算部108の具体的なQP値の決定手法を説明したが、この処理に限定されるものではない。少なくとも入力画像複雑度と符号化単位複雑度と発生符号量を用いて、目標遅延時間に応じて発生符号量を一定にしつつ高画質化が実現できていれば良い。
【0064】
また、入力画像複雑度計算部102で複雑度を計算する領域の大きさは、目標遅延時間に入力される領域の大きさにした場合の例を説明したが、目標遅延時間に入力される領域の大きさより、小さい領域毎に複雑度を計算するとしても良い。例えば、上記例では、720MB分の領域で入力画像複雑度を計算していたが、1/3の240MBの領域毎に入力画像複雑度を計算するとする。この場合、240MB毎に(式4’)に示す符号量補正QPの項を加えることができる。ここで、符号量補正QPは、240MB毎に計算される値であり、直前240MBで発生した符号量を元に計算される。例えば、直前240MBで発生した符合量が一定にしたい符号量より、多かった場合は、符号量補正QP値をプラス値に、逆に発生符号量が一定にしたい符号量より、少なかった場合は、符号量QP値をマイナス値にすることで、目標遅延時間における発生符号量を一定にする精度を高めることが可能となる。
【0065】
次に、車載ネットワークカメラシステムを例に再生画像で画像認識を行う場合に、画像認識処理の性能向上が可能な画像符号化装置の例を説明する。
【0066】
まず
図6を用いて前提としているカメラシステムの構成図の例を説明する。
図6のカメラシステムは画像送信装置1000と画像受信装置1100から構成される。画像送信装置1000は、例えば車載カメラであり、光をデジタルの画像に変換する撮像部1001と、撮像部1001から出力されたデジタルの画像をエンコード処理してストリームを生成する画像符号化部1002と、エンコード処理したストリームをパケット化してネットワーク上に出力するネットワークIF1003で構成される。
【0067】
また、画像受信装置1100は、例えばカーナビゲーションシステムであり、映像送信装置1000から送信されたパケットを受け取りストリームに変換するネットワークIF1101と、ネットワークIF1101から出力されたストリームを復号処理して再生画像を生成する画像復号部1102と、画像復号部1102から出力された再生画像をディスプレイなどに表示する表示部1103と、画像復号部1103から出力された再生画像に画像認識処理する画像認識部1104と画像認識した結果が危険な状態を示す結果となった場合に音声を出力して運転者に知らせる音声出力部1105を備える。
【0068】
以上、
図6の車載ネットワークカメラシステムの構成を例に、再生画像で画像認識処理を行なう場合に画像認識処理の性能向上が可能な画像符号化
部1002の構成図を
図7に示す。図
7の画像符号化装置
1002のうち、既に説明した
図1に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【0069】
図1と異なる点は、符号化単位特徴量抽出部110と、QP値計算部111である。符号化単位特徴量抽出部110は、MB画像から画像特徴量を抽出し、符号化単位画像特徴量を出力する。
【0070】
なお、入力画像複雑度計算部102と符号化単位複雑度計算部107と符号化単位特徴量抽出部とを含む構成を単に解析部ともいう。
【0071】
図8にQP値計算部111の内部構成を示す。図
8のQP値計算部
111のうち既に説明した
図5に示された同一の符号を付された構成と同一の機能を有する部分については、説明を省略する。
【0072】
図5と異なる点は、特徴QP計算部504とQP
算出部505である。特徴QP計算部504は、符号化単位画像特徴量から特徴量の大きさに従い特徴QPを出力する。QP
算出部505は、ベースQPとMBQPだけでなく特徴QPも加味した(式5)で与えられる式でQP値を計算する。
【0073】
ここで、
図6の車載ネットワークカメラシステムの受信装置1100で道路に引かれている白線の認識をする場合を例に、特徴QPの計算方法を説明する。まず、符号化単位特徴量抽出部110では、白線認識で必要となる白線特徴量の抽出を行う。具体的には隣の画素との差分値を計算し、直線上に連続的に同じ段差の差分値がある場合に、特徴量が大きくなるような3段階の白線特徴量(0、1、2の3段階であり、値が大きいほど白線である可能性が高いとする)という符号化単位画像特徴量を出力する。さらに、特徴QP計算部504では、
図9のテーブルに基づいて、3段階の白線特徴量から特徴量QPを決定する。本実施例では、一例として、
図9のテーブルに基づいた特徴量QPの決定手法の例を挙げたがこれに限定されるものではない。例えば、一次関数やLog関数等の数式を用いて特徴量QPを決定してもよい。また、特徴量の抽出には隣の画素との差分値を使用した例を記載したが、予め指定の絵柄を検索可能な基本パタンの画像を用意し、その基本パタンとパターンマッチングを行なった結果(類似度)を利用して、特徴量QPを決定するなど、画質を向上したい対象が判定できる指標値であればよい。また、本実施例では、符号化単位で特徴量を計算する例を説明したが、
図11に示すように、入力画像複雑度計算部102が計算する領域で特徴量を計算する構成としても良い。
【0074】
図10は、
図6の車載ネットワークカメラシステムを例に、アプリケーションに応じて目標遅延時間を変更する例を表している。アプリケーションとしては、駐車時の後方障害物検知、高速走行時の白線逸脱警報、市街地走行時の標識認識とする。車載ネットワークカメラシステムにおいては、車の速度に応じて利用されるアプリケーションが変わることが考えられるため、車の速度に応じて目標遅延時間を変更するようにしてもよい。
【0075】
駐車時の障害物検知は、時速20km以下の速度で使用されることが想定される。速度が遅いため、1フレーム毎の画像の変化は少ないので10ms以下の低遅延化は必要なく、目標遅延時間を33.3msとなるため、1フレーム分の解析結果を用いて高画質化できる。
【0076】
一方、高速走行時の白線逸脱警報では、時速100km以上の速度で使用することが想定される。よって、1フレーム毎に画像が大きく変化すると考えられる。遅延時間が大きいと画像認識処理をして危険な状態を検知したとしても、既に事故が発生していたということが起こる可能性があるため目標遅延時間は1msと少ないことが重要となる。
【0077】
また、市街地走行時の標識認識は、時速40km〜80kmの中程度の速度なので、1msまでは行かないが目標遅延時間をある程度短くすることが必要となるため10msとする。
【0078】
このように、車載ネットワークカメラシステムのアプリケーションの場合、使用するアプリケーションに応じて、または車の速度に応じて目標遅延時間を決めることで、アプリケーションの画像認識性能を最大限に活かすことが可能となる。
【0079】
このように、車載ネットワークカメラシステムに画像符号化装置を適用した場合では、画像受信装置1100の画像認識部1104の画像認識処理のアルゴリズムが注目する画像特徴を、画像送信装置1000の符号化単位特徴抽出部110で簡易的に特徴量を抽出し、QP値計算部111で該当MBのQP値を下げることにより、目標遅延時間に対して符号量を一定と高画質化を実現しつつ、さらに画像認識処理の性能向上が可能な画像符号化装置を実現することが可能となる。
【0080】
また、本実施例では、車載ネットワークカメラシステムの例を説明したが、撮像部1001を例えば、レコーダなどの蓄積装置に置き換えても良い。
【0081】
車載ネットワークカメラシステム以外(例えばテレビ会議システム等)に画像符号化装置を適用した場合でも、使用されるアプリケーションに応じて目標遅延時間を設定することで、画像伝送における遅延を考慮しつつ、伝送する画像を高画質化することが可能となる。