JP3769786B2 - Image signal decoding apparatus - Google Patents
Image signal decoding apparatus Download PDFInfo
- Publication number
- JP3769786B2 JP3769786B2 JP25210795A JP25210795A JP3769786B2 JP 3769786 B2 JP3769786 B2 JP 3769786B2 JP 25210795 A JP25210795 A JP 25210795A JP 25210795 A JP25210795 A JP 25210795A JP 3769786 B2 JP3769786 B2 JP 3769786B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- error
- image signal
- mode
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Color Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像信号を可変長符号を用いて圧縮した符号化ビットストリームとして受信し、これを画像信号に復号化すると共に、その画像信号の誤りを訂正する機能を有する画像信号の復号化装置に関する。
【0002】
【従来の技術】
近年、情報通信端末のマルチメディア化が急速に進んでおり、電話においてもデジタルデータ伝送に基づく様々な付加価値を創成していくことが今後のビジネス展開において必須である。特に、PHS(personal handy phone system )では、既に従来の音声,文字情報のみならず、自然静止画さらには動画をも伝送することが本格的に検討されており、電話機のマルチメディア化はごく近い将来に当たり前のことになることが予想される。
【0003】
【発明が解決しようとする課題】
しかし、このような画像信号を伝送するにあたって、無圧縮状態では約166Mbpsに相当する信号量のTV映像をどうやってPHS(384kbpsの内、画像の割り当ては32kbpsあるいは48kbps)や既存の電話回線の伝送レート(10kbps程度)で伝送するかという問題がある。
【0004】
ここで、従来のTV会議やビデオCDに用いられている動画像圧縮技術が要求される。しかし、この規格においても、例えば現行のTV会議用規格ITU−T/H.261では、64kbps〜2Mbps、ISO/MPEG1では1.5Mbps程度を対象としており、64kbps以下の超低レート伝送には対応するようになっていない。なお、1995年11月に勧告されるH.263規格は4.8kbps〜64kbpsを対象としているが、内容が未公開となってるので、その方式を認識することができない実情である。また、その規格では、H.261との接続性が保証されていないものである。
【0005】
さらには、このような動画像圧縮技術は、有線系を対象としたものが主であり、例えば、移動体通信における無線系の通信において発生するデータ伝送誤りのレベル(10の−2〜−3乗程度)に対する対策が完全に施されておらず、無線系におていは、通常は、ARQ(automatic repeat request)による再送要求を用いたデマンドリフレッシュと呼ばれる方法が用いられる。ところが、このようなARQを用いる場合には、受信側においては、画像情報の再送が完了するまでは、ピクチャがフリーズすることが避けられない。したがって、電波事情が悪い所ではピクチャがフリーズした状態が継続してしまうということになって実質的に動画伝送が不可能になる不具合がある。
【0006】
一方で、静止画伝送では、データを重要度に応じてグループ分割し、レート制御するという方法が提案されてはいるが、実用には至っていない。また、384kbps程度の伝送レートではデータ伝送順序の変更と誤り訂正符号により伝送誤りに対処した例が報告されているが、64kbps以下の超低レート無線伝送における報告はまだない。
【0007】
本発明は、上記事情に鑑みてなされたもので、その目的は、復号化装置の機能として伝送誤りに対して強い誤り訂正機能を持たせることにより、PHSやデジタル携帯電話などの超低レート伝送で動画像を伝送する際においても、データ再送モードの発生やピクチャフリーズの発生を極力抑制することができるようにした画像信号の復号化装置を提供することにある。
【0008】
【課題を解決するための手段】
請求項1のようにすることにより、NFX変換手段は、1フレーム分の画像信号に含まれるMBAデータを検出してブロック単位でFIX(固定)かNFX(非固定;NOT_FIXEDの略称)かの変換処理を行う。このNFX変換手段による1フレーム前の変換結果に基づいて、予測手段は、平均動きベクトル情報などを利用して領域をシフトさせることによりMBAパターンに一意的に対応するNFXパターンを予測する。
【0009】
次に、演算手段により、この予測NFXパターンと復号中のNFXパターンとの間の類似度を計算すると共に、その類似度の計算の信頼度について計算を行い、この結果に基づいて、誤り訂正手段により、類似度および信頼度の双方の値に応じて設定された条件によって復号中のMBAの評価を行い、誤りが検出された場合には、推定されたNFXパターンに基づくMBAデータに置き換える訂正処理を行うか、あるいは、他の訂正手段に委ねるようになる。この結果、過去の属性データを利用した推定データに基づいた復号誤りの訂正を行うことができるようになる。
【0010】
請求項2のようにすることにより、比較領域設定手段は、MTP検出手段により検出された1フレーム前のMTPデータのパターンと動きベクトルの値とに基づいて現在復号中のブロックのMTPに対する比較領域を設定するようになる。演算手段は、現在復号中のブロックに対して設定された比較領域において、MTP検出手段により予測されたMTPデータと復号中のMTPデータとの間の類似度を、例えば、含まれている属性に重み付けをした上でスコア値を合計するといった方法により総合的に属性データの一致度合いの合計点数を求めると共に、その信頼度を計算するようになる。
【0011】
評価手段は、その計算結果に基づいて、例えば、類似度および信頼度が共に高いときには復号中のMTPが正しいと判定し、いずれかが低い場合には、復号結果あるいは推定値のいずれかを選択して復号結果として採用することにより、誤り訂正を行いながら、信頼性の高いMTPの復号化処理を行うことができるようになる。
【0012】
請求項3のようにすることにより、MVデータ推定手段は、MV変換手段によりMVDデータを動きベクトルMVに変換された過去のフレームあるいは周囲のブロックのMVデータから復号中の動きベクトルを推定するようになる。この場合、動きベクトルは、シーンチェンジやイントラフレームでない限りにおいては周囲のブロックや過去のフレームからの連続性が高いことからこのようにして推定した動きベクトルMVデータはかなり信頼性が高くなる。
【0013】
誤り訂正手段は、復号中のMVDデータに基づくMVデータと推定されたMVデータとの誤差を演算してその大きさに応じて復号中のMVDデータが正しいか否かを判定し、誤差量が大であるときには復号中のMVDデータを仮に採用するか、あるいは推定MVデータに基づくMVDデータに置き換えるかの選択をして復号結果として採用することにより、誤り訂正を行いながら、信頼性の高いMVDの復号化処理を行うことができる。
【0014】
請求項4のようにすることにより、CBPデータはYUVベクトル変換手段により量的な比較が可能なYUVベクトルに変換されるので、比較領域設定手段は、変換された1フレーム前のYUVベクトルデータに基づいて比較領域相当部分を動きベクトルに基づいて動き補償して比較領域を設定するようになる。YUVベクトル推定手段は、設定された比較領域内で過去のフレームのYUVベクトルあるいは周囲のブロックのYUVベクトルの値に基づいて復号中のブロックのYUVベクトルを推定するようになる。この場合、YUVベクトルは、シーンチェンジやイントラフレームでない限りにおいては周囲のブロックや過去のフレームからの連続性が高いことからこのようにして推定したYUVベクトルデータはかなり信頼性が高くなる。
【0015】
そして、誤り訂正手段は、復号中のCBPデータに基づくYUVベクトルデータと推定されたYUVベクトルデータとの誤差を絶対値距離等として演算してその大きさに応じて復号中のCBPデータが正しいか否かを判定し、誤差量が大であるときには復号中のCBPデータを仮に採用するか、あるいは推定YUVベクトルデータに基づくCBPデータに置き換えるかの選択をして復号結果として採用することにより、誤り訂正を行いながら、信頼性の高いCBPデータの復号化処理を行うことができる。
【0034】
【発明の実施の形態】
以下、本発明を自動車電話を想定した構成に適用した場合の一実施例について図面を参照しながら説明する。
図2には符号化装置としての符号化器1を、図1には復号化装置としての復号化器2の機能的なブロック構成をそれぞれ示している。以下、図1および図2を参照して全体構成について概略的に説明する。
【0035】
図2に示す符号化器1において、撮像手段としてのカメラ3は対象物を撮影して画像データを通常のアナログ信号で映像ソースとして出力するようになっている。この場合、映像ソースとしては、カメラ3のような撮像手段によるものに限らずあらかじめ記憶されたビデオ信号などを用いることも利用可能である。このカメラ3により撮影された画像データによる映像ソースは、切換スイッチ4を介してA/D変換器5に入力され、デジタル信号に変換されるようになっている。A/D変換器5は切換スイッチ6を介して直交変換部7に接続されている。また、この場合、A/D変換器5は減算器8および切換スイッチ6を介した状態でも直交変換部7に接続されている。そして、切換スイッチ6の切換設定により減算器8を介在させるか否かを切換制御するようになっている。
【0036】
直交変換部7は、H.261規格のものと同様にCIF形式に沿ってブロック単位で原画像または予測差分画像に二次元直交変換(この実施例ではH.261規格に従うので離散コサイン変換(DCT))を施すもので、その変換出力を量子化部9に出力するようになっている。量子化部9は、直交変換部7から与えられる変換係数データを直線量子化またはデッドゾーン付き量子化により9ビット精度で量子化変換するようになっており、通信路符号化部10に出力する。通信路符号化部10は、所定の変換ルールにしたがって量子化部9からの量子化変換された画像信号を符号化ビットストリームに変換するもので、FIFOバッファ11に一旦蓄積した後、有線路あるいは無線路などの通信路12に出力するようになっている。
【0037】
さて、逆量子化部13は、量子化部9により変換された量子化信号が与えられるもので、量子化部9にて量子化した画像信号を再び量子化前のデジタルデータに変換して逆変換部14に出力する。逆変換部14は、デジタルデータをアナログデータに変換して映像ソースから取り込んだときの画像データとほぼ同じになるように復元して加算器15を介して予測メモリ16に出力する。予測メモリ16は、映像ソースから取り込んだ画像データに基づいて次のフレームにおける画像データの予測を行うためのもので、ループフィルタ17および切換スイッチ18を介して減算器8に減算信号として出力するようになっている。
【0038】
ループフィルタ17は、隣接するブロックとの間の色や輝度の急激な変化を抑制するためにスムージングを行う空間的ローパスフィルタの働きをするもので、その出力は、切換スイッチ18から他の切換スイッチ19を介して加算器15に加算信号として与えるようになっている。また、予測メモリ16の出力は動き検出部20に与えられるようになっており、この動き検出部20は、A/D変換器5から与えられる映像ソースの画像データとの両者のデータから、フレーム間の動きを補償するように量子化部9に信号を与えると共に通信路符号化部10に信号を与える。
【0039】
また、符号化制御部21は、符号化処理の各種の制御を実行するもので、直交変換部7から変換情報が与えられると共にFIFOバッファ11からバッファ使用率などのデータが与えられるようになっており、これらのデータに基づいて、量子化部9の量子化変換のレベルを設定する適応量子化制御を行うと共に、適応レート制御を行うようになっている。また、符号化した結果得られる画像信号の属性データを記憶する属性メモリ22は、符号化制御部21から記憶すべき属性データが入力されるようになっており、属性予測部23はその属性メモリ22に記憶されている過去の属性データに基づいて現在符号化処理中の属性データを予測して符号化制御部21に与えるようになっている。そして、以上により、H.261規格をベースとした符号化処理部24が構成されている。
【0040】
次に、本実施例において付加されている特徴的な構成について説明する。すなわち、領域抽出・認識処理部25は、次のように構成される。対象領域抽出部26は、動き検出部20から与えられる動きベクトルの情報に基づいて後述するような対象領域抽出処理を実行するもので、テンプレートデータベース27に情報を出力する。2D(二次元)テンプレートマッチング部28はテンプレートデータベース27からのデータに基づいてマッチング処理を行い、対象領域抽出部26および通信路符号化部10に処理結果を出力する。
【0041】
モデルベース予測部29は、三次元形状データベース30からデータを呼び出すと共に人物メモリ31および背景メモリ32の記憶データに基づいてモデルベースモードにおける画像再生の処理を行うもので、その処理結果を通信路符号化部10および切換スイッチ18を介して減算器8に減算入力として与えるようになっている。人物メモリ31および背景メモリ32は、対象領域抽出部26から記憶すべき人物データおよび背景データが入力されるようになっている。
【0042】
さらに、この符号化器1には、これのモード制御を行うためのモード制御部33が接続されており、後述するようにして種々のモード制御の詳細な内容が実施されるようになっている。また、このモード制御部33には、使用者との間の情報の授受を行うためのヒューマンインターフェイス34が接続されている。ヒューマンインターフェイス34は、具体的には、表示部,音声入出力部あるいは操作入力部等を備えたもので、モード制御を迅速且つ適切に実施するために制御されるようになっている。モード制御部33は、復号化器2側とも接続されており、作用の項にて説明するように、復号化器2の各部のモード制御についても同様に行うようになっており、同様にして復号化器2においてもヒューマンインターフェイス34を利用することができるようになっている。
【0043】
なお、このヒューマンインターフェイス34を通じて人物画像情報を人物メモリ31内に個人識別情報として登録記憶することができるようになっており、この個人識別情報は、適宜のタイミングでヒューマンインターフェイス34を介して入力される情報に基づいて人物メモリ31から呼び出されると共に、登録された個人識別情報として通信以外の場合でも表示可能な構成とされている。
【0044】
次に、図1に示す復号化器2において、伝送路を介して送信される画像信号データの符号化されたビットストリームを受信する通信路復号化部35は、階層的符号化属性(マクロブロックタイプなど)を復号化して出力するもので、H.261規定に準じた基本構成をなす復号化処理部36に接続されている。また、誤り訂正機能を実行するための構成として、パターン・信号レベルの誤り訂正部37、認識レベルの処理部38および各種データを記憶するための記憶手段としてのメモリ39から構成されている。また、復号化処理に当たっては前述のモード制御部33が上述した各部と信号のやり取りを行うことにより制御するようになっており、最終的に復号化された画像信号は切換スイッチ40およびD/A変換器41を介して出力されるようになっている。
【0045】
上記した通信路復号化部35において、外部の通信路あるいは空中等の伝送路12を介して送信される画像信号の符号化ビットストリームデータは、FIFOバッファ42に入力され、少なくとも1フレーム分のデータが蓄積されるようになっている。FIFOバッファ42に蓄積された符号化ビットストリームデータは、パーザ43において符号レベルの文法的な解釈がなされるようになっている。ファジイマッチング部44は、FIFOバッファ42内に蓄積されているビットストリームデータをグローバルに検索し特定コードで記述されたPSC,GBSCをファジイマッチング処理により特定すると共に、同じく特定コードで記述されたESC,EOBなどを検索して特定し、それらの位置を記憶部45に記憶し、後述するように誤り訂正機能の実行時に利用するようになっている。
【0046】
また、パーザ43は、ファジイマッチング部44にて検索された特定コードの位置を基準として他のコードやデータの検索や文法解釈を行うようになっており、その際には、可変長符号(VLC)の対照表46を参照する。誤り判定部47は、ファジイマッチング部44により特定された特定コードの位置に基づいてパーザ43において文法的解釈を行う場合に、誤りがあるか否かを判定し、誤りを検出した場合にはこれを符号レベルで訂正して出力するようになっている。そして、パーザ43は、ビットストリームデータの復号化処理により得られたモード情報をモード制御部33に出力するようになっている。
【0047】
復号化処理部36において、逆量子化部48は、パーザ43から復号出力が与えられるようになっており、量子化されている画像信号のデータを逆量子化変換して逆変換部49に出力する。逆変換部49は、画像信号に含まれる周波数信号に対応した直交変換データを位置信号に対応したデータに逆変換することにより復号データとして出力する。
【0048】
逆変換部49の出力は、パターン・信号レベルの誤り訂正部37の誤り判定・補正部50に入力される経路と、切換スイッチ51および加算器52を介して誤り判定・補正部50に入力される経路とが設けられている。予測メモリ53は、誤り判定・補正部50および動き補償部54からデータが与えられるようになっており、ループフィルタ55および切換スイッチ56を介して加算器52の加算入力に接続される。
【0049】
パターン・信号レベルの誤り訂正部37において、誤り判定・補正部50は、フレームメモリ57にデータを与え、画素値推定部58,画像推定部59を介して推定画像データが与えられるようになっている。動ベクトル推定部60はメモリ39からデータを得て動き補償部54に推定された動ベクトルデータを出力する。また、属性推定部61は、メモリ39に記憶された過去の属性データを読出して復号化処理部36の復号化制御部62に与えて逆量子化部48および逆変換部49の復号動作に関する情報を与える。
【0050】
メモリ39は、モード情報部39a,領域情報部39b,パターン属性部39c,2D(二次元)動ベクトル部39dおよび個人識別情報部39eの各記憶部から構成される。
【0051】
認識レベルの処理部38において、モデルベース予測部63は、三次元形状データベース64から3D(三次元)形状データ64aが与えられ、人物画像データベース65から人物画像のデータが与えられるもので、モデルベース予測を行って誤り判定・補正部50にデータを出力する。人物画像データベース65および三次元形状データベース64はメモリ39からデータが与えられる。
【0052】
背景情報記憶手段としての背景メモリ66および人物情報記憶手段としての人物メモリ67は、D/A変換器41に出力される画像信号のうちの背景情報および人物情報が記憶可能に構成されており、フレームメモリ57にデータを出力すると共に、人物画像データベース65との間でデータの授受を行う。領域再生部68は、メモリ39からのデータに基づいてテンプレートデータベース69にて選択された2D(二次元)テンプレート69aが与えられ、領域再生を行ってフレームメモリ57に出力するようになっている。
【0053】
次に本実施例の作用について図3ないし図68を参照して説明する。なお、以下の説明においては、[A]符号化器にて符号化器1における画像信号の符号化処理の動作内容について説明し、[B]復号化器にて復号化器2における符号化ビットストリームの復号化処理の動作内容について説明する。そして、[A]符号化器においては、符号化処理過程における符号量の超低レート化のための各種の手法を項目別に列挙する([A−1]〜[A−4]の項)と共に、その動作説明を符号化処理プログラムのフローチャート(図5〜図7)を中心として説明し([A−5]の項)、[B]復号化器においては、復号化処理過程における復号誤りの検出と訂正の各種の手法を項目別に列挙する([B−1]〜[B−8]の項)と共に、その動作説明を復号化処理プログラムのフローチャート(図8〜図11)を中心として説明する([B−9]の項)。
【0054】
[A]符号化器
[A−1]基本動作
符号化器1の動作について、まず、基本動作について説明する。符号化器1においては、その基本動作として、カメラ3により撮影した画像のデータを取り込んで、その画像信号の符号化処理を行って符号化ビットストリームのデータとして通信路12に出力するようになっており、この場合に、第1フレームの符号化処理と、第2フレーム以降の符号化処理とに分けて実施するようになっている。
【0055】
まず、第1フレームでは、カメラ3により撮影された対象物を含むシーンを供給する映像ソースをA/D変換部5でデジタル信号に変換し、この後、H.261の規格に準じてCIF形式に沿ったマクロブロック単位でフレーム内符号化(INTRA)を実行し、これをINTRAピクチャーとして伝送する。
【0056】
また、第2フレーム以降では、第1フレームに対する動き補償予測差分のみが2次元直交変換(ここではH.261に準拠したDCT(離散コサイン変換))を受けた後に、符号化制御部21によりバッファ量や符号化レートその他の符号化器1の状態値に応じた適応量子化を受けた後に通信路符号化部10を経て出力FIFOバッファ11に一時的に蓄積記憶されるようになる。この出力FIFOバッファ11によって、フレーム単位で情報量が異なる符号化ビットストリームが所定の符号化レートに合わせて通信路に送出されるようになる。
【0057】
なお、符号化ビットストリームは、後述するようにCIF(common intermediate format;共通中間フォーマット)形式の基準にしたがって、PICTURE/GOB/MBK/BLK(図30参照)の4階層構造としたデータに変換されており、BLK(ブロック)階層のDCT有意係数の列を表現する可変長符号の集合に対して各階層毎に属性ヘッダを付した状態で生成される。一方、動き補償予測フレームは、図2のフレーム加算ループの出力として生成され、原画像と比較されて新たな差分情報を符号化機構に送り込むようになっている。
【0058】
さて、上述の符号化過程において、本実施例の符号化器1では、以下に示すごとくの独自な処理を実施することにより、超低ビットレートの符号化処理を実行するようになっている。
【0059】
すなわち、本実施例においては、既存のTV会議,TV電話用動画像圧縮国際標準であるH.261規格をベースとした前提において、独自な処理過程として、モード制御機能および領域抽出機能を付加した構成としている。そして、このような構成のもとで、符号化制御,シンタックス変更等の処理を、信号,パターン,符号,認識の各レベルで実行し、最終的に64kbps〜4.8kbps程度の超低レート画像符号化の実現を行ったものである。なお、これらの制御内容の概念的な相関関係を図3に示している。
【0060】
そして、以下においては、[A−2]モード制御,[A−3]対象領域の抽出,[A−4]符号化制御動作,[A−5]符号化処理プログラムに従った動作の説明の大項目に分け、各大項目中においてさらに小項目に分類して符号化方式の原理と方法について説明する。
【0061】
[A−2]モード制御
図3は本実施例における符号化の超低レート化の内容について概念的に示しているもので、。本実施例で行うモード制御については、例えば(1)使用環境,(2)被写体,(3)符号化制御の3つのカテゴリーでそれぞれモード制御を行うように構成されており、この場合に、それぞれのモード制御におけるモードの進行は全く独立に行われるとは限らず、例えば、各カテゴリー内で同時に2つ以上のモードを用いて符号化を行うこともあり得る。
【0062】
そして、これらの遷移関係は符号化器1や復号化器2の状態つまり、FIFOバッファ11のバッファ量,現在設定されているモード状態,符号化レートあるいは動き発生量などの状態や判定情報によって支配される場合と、確率的状態遷移に依存する場合との2つのケースがある。以下においては、これらのカテゴリー(1)〜(3)および状態遷移の違いによるモード制御の動作についてそれぞれ説明する。
【0063】
(1)使用環境
使用環境のモード制御については、以下に示すように、自動車,屋内,屋外の各場所に対応して固定,可動の各態様を考えて、(a)自動車内固定モード,(b)自動車内可動モード,(c)屋内固定モード,(d)屋内可動モード,(e)屋外固定モード,(f)屋外可動モードの6つのモードに分類することができる。
【0064】
(a)自動車内固定モード
自動車用TV電話として最も考えやすい後部座席の使用環境を設定するもので、これは、例えば図12,図13に示すように、その位置関係から種々の条件を限定することができる特徴がある。これをまとめると、以下のようになる。
【0065】
1)背景のうちの自動車内の部分はほぼ固定可能で、窓から見える車外の風景は走行中には動領域となる。
2)カメラ3から人物Pまでの距離Lを限定できる(図12参照)。実際的な値としては距離Lは例えば1m以内の程度に設定可能である。
3)次の被写体モードの項で説明するように、この使用環境では被写体としては人物を中心とした人物モードが大半であり(図13参照)、動領域抽出の結果では、最も面積比率の大きい領域が人物である確率が非常に高くなる。
4)後部座席を対象として使用する場合には、撮影すべき人物Pの数は一人である確率が最も高くなる。
5)乗用車の場合には、カメラ3の視野内に入り得る人物Pの数は最大で4人程度と考えられる。
【0066】
(b)自動車内可動モード
このモードにおいては、人物モードに加えて、被写体モードとしての風景モードが使用される可能性が高くなる。
(c)屋内固定モード
自動車内固定モードとほぼ同じであるが、窓から見える外の風景は固定的である可能性が高く、情報量の削減には利点となる。
【0067】
(d)屋内可動モード
人物モードの他に風景モードも使用される可能性が高い。
(e)屋外固定モード
このモードでは、交通監視,セキュリティ,ペットの監視などへの応用が考えられる。また、この場合にはカメラ3を固定設置することから、有線系の伝送が可能となり、伝送誤り率の低下は少ない。
【0068】
(f)屋外可動モード
使用環境としては最も過酷な条件であり、この場合には、可動であることから無線系の超低ビットレート伝送を行うことが前提条件となる。また、携帯型の装置を使用する場合には、人物モードの他に風景モードも使用される可能性が高くなる。加えて、通話中の手ぶれ等によりカメラ3の振動が多くなることが想定され、実際上は準動画モードあるいは静止画モードの動作が中心になることが想定される。
【0069】
(2)被写体
この場合には、符号化対象および用途に応じて以下のように4つの符号化モードを切り換え設定するようになっている。
【0070】
(a)人物モード
この人物モードは通常の通信においては最優先で使用されるデフォルトモードに設定されている。そして、この人物モードにおいては、図14にも示すように、背景や使用環境に応じてさらに以下に示すようなモード切り換えを行うようになっている。なお、この場合のモード切り換えの条件は、通常、対象領域の抽出結果と距離判定により自動的に設定して切り換えるようになっている。
【0071】
ア)頭部モード (対象とする人物Pがひとりの場合)
イ)上半身モード (対象とする人物Pがひとりの場合)
ウ)全身モード (対象とする人物Pがひとりの場合)
エ)複数人物モード
【0072】
例えば、図14に示す各使用環境においては、(a)自動車内ではア)の頭部モードが、(b)屋内ではイ)の上半身モードが、そして、(c)屋外ではイ)の上半身モードかあるいはウ)の全身モードに設定される。また、エ)の複数人物モードでは、特に詳細なテンプレート(図25参照、後述するテンプレートの説明参照)は用意されず、また、シーンとしても過渡的な短時間であることが想定されるので、符号化情報量の発生具合に応じた他の制御に委ねられる。
【0073】
(b)風景モード
例えば、走行中の自動車内においては、会話時には被写体が人物であることが多く、モード判定木では人物モードが設定される確率が高い。一方、ユーザが意図的に車外の風景や事物を画像として伝送したいと考えた場合、動きの有無やテクスチャの細かさに起因する情報発生量の多さおよび人物の有無から判断して、符号化モードを準動画か静止画モードに移行させる。
【0074】
(c)静止物体モード
静止物体を対象とする場合には、比較的符号化情報の発生量は少ないため、符号化モードとしては通常の動画モードを選択することができる。
(d)図面・文字モード
高解像度静止画モードを符号化モードとして選択することができる。
【0075】
(3)符号化制御
(a)画像中心優先モード
このモードは、画面中の対象物に対して何ら先見情報がなく、しかもこれに優先してマニュアルで設定した初期設定モードがない場合に設定される。すなわち、状況としては、ただ漫然と撮影したいものにカメラ3を向けているような場合が想定される。この場合には、通常、カメラ3を向けることによって対象物が画像中心に位置する場合には、注視する領域も画像中心に近い部分であることが仮定できる(つまり、対象物中心に対するカメラ3の姿勢の水平および垂直角度α,βはゼロに近い値となることが仮定できる)。
【0076】
したがって、画像中心付近に優先的にビット量を割り当てて符号化し、周囲に向けて徐々に割当量を減らすという符号化制御操作を行う。これは、具体的には後述する[A−3]符号化制御の領域別量子化制御,背景メモリの使用および有意変換係数の最大個数の制御などによって行う。また、このモードにおいては、他のモードへの移行の条件を次の3つの場合に対応して設定している。
【0077】
1)対象領域の移動を検出した場合
対象領域が抽出されていれば、対象領域優先モードに移行する。ここで、次の場合には対象領域の追従が行えないので、その対象領域優先モードの中の領域重心モードを選択するようになっている。
【0078】
ア)2D(二次元)テンプレートが定まっていない場合
イ)2Dテンプレートの適合が完了していない場合
ウ)2Dテンプレートを持たない風景モードの場合
(なお、2Dテンプレートについては後述する。)
【0079】
2)被写体モードが人物モードである場合
対象領域優先モードで且つ人物モードの場合、正面像から外れなければ2Dテンプレートは適合する。この場合、さらに、頭部、目、口など各部の同定を開始する。
【0080】
3)対象領域抽出と動き解析結果による対象物カテゴリーの特定
動き情報や領域情報がない場合には、画面中心領域を優先して詳細に符号化する。この場合、画面中心領域を優先するとは、図15に示すように、画面中心から一定距離として例えば平均距離Davとして計算された値の範囲内のブロックを対象領域とみなすことに相当する。
【0081】
また、ここでは、平均距離Davを計算するにあたり、距離尺度として同図(a)に示すユークリッド(Eucrid)距離D(n)あるいは同図(b)に示す絶対値距離D(n)を用い、次式(1)に示すように、画面に設定されたブロック(たて18個×よこ22個)について距離D(n)[この場合には絶対値距離を基準としている]の平均値Davを演算して求めており、この計算結果として平均距離Davは約12となり、同図(b)中で斜めの矩形で示す斜線領域部分が画面中心領域となる。
【0082】
【数1】
【0083】
ただし、N=22×18=396、dd(i,j)は、絶対値距離では、
dd(i,j)=|i−11|+|j−9|
となる。
【0084】
(b)対象領域優先モード
1)背景メモリ使用モード
後述する[A−2]対象領域の抽出の領域抽出で得る領域情報に基づいて、人物モードにおいては、あらかじめ用意している背景画像あるいは第1フレームにて伝送した背景画像を用いて背景メモリ66に記憶した背景情報を利用することにより次のようにして制御するモードである。
【0085】
ア)その後は全く背景に関する情報を伝送しないようにする。
イ)背景情報は伝送するが、周期的に分散して背景の変化情報を送り、徐々に背景を更新していく。
【0086】
2)領域重心モード
この領域重心モードでは、前述の画像中心モードの画像中心が対象領域の重心であると考え、それを中心とした領域別量子化制御を駆動するモードである。なお、領域別量子化制御については後述の[A−3]符号化制御の項で説明するのでここでは省略する。
【0087】
3)対象領域追従モード
このモードは、対象領域が画像面上で移動した場合に、時々刻々と変化する対象領域の重心位置を検出することにより、上述した2)領域重心モードを適用できるようにしたモードである。
【0088】
(c)動き優先モード
動きブロック数や動きの絶対値量が増えた場合にもフレームレートを落とさないようにしたモードである。ここで、動きの激しさは、後述の[A−3]符号化制御の項の情報発生量に応じた適応制御の説明中で動きの激しさを示す指標AM(式(10)参照)を用いて判定することにより、対象領域優先モード、画面中心優先モード、あるいは後述するモデルベースモードなどを駆動することにより伝送レートを維持するように制御する。
【0089】
(d)準動画(INTRAピクチャー)モード
これは、情報量を削減するために、フレームレートを低下させることによって画質を保持しつつ伝送レートを維持するモードである。この場合、動き量によってはフレーム間の相関を利用した圧縮が困難になる場合があるので、その場合にはINTRAピクチャのみを伝送するようになっている。
【0090】
(e)静止画伝送モード
これは、次の2つの場合が想定されている。
1)符号化制御が破綻する場合
この場合には、まず、符号化器1側でピクチャーフリーズさせた画像信号とし、新たに強制イントラフレームを伝送する。そして、これが完了した後には、動画伝送モードに移行し、動画伝送を再開するモードである。
【0091】
2)誤り等の理由により復号化器2側から再送要求がある場合
復号化器2側でピクチャーフリーズした状態となり、符号化器1側は再送要求に応じて強制イントラフレームを伝送し、この後、動画伝送モードに移行することで上記と同様に動画伝送を再開するモードである。
【0092】
(f)モデルベース予測モード
1)テクスチャーソースの切り出し
テクスチャソースは通話開始以前に撮影した最初の正面画像に対して後述する([A−3]対象領域の抽出における)動領域の解析結果によって得た人物領域の画像情報に基づいて行う。
【0093】
2)モデルの選択と適応化
3D(三次元)モデルはあらかじめ各々の2Dテンプレート69a(正面像)に対して奥行き情報を与えることで定義しておく。
【0094】
3)2Dテンプレートを用いたモデルベース予測と伝送
距離情報については、正面像について2Dテンプレート69aのテンプレート番号とスケーリング値を用いてカメラ特性を用いて計算したテーブルで算出することができる。この正面像については、領域抽出結果に基づく距離情報と画像面上の2D移動量を用いることにより、人物像のモデルベース予測画像を生成することができる。また、電波条件が良好でない場合などにも、2Dのモデルベース画像伝送を行うこともできる。
【0095】
4)3D運動情報を用いたモデルベース予測
例えば、人物の正面像の2Dテンプレート69aの特徴領域をあらかじめ図16のように定めておき、その2D動き情報に基づいて上半身のテンプレートについて頭部と肩から下の2つの部分をそれぞれ剛体とみなし、N個の特徴領域の2D位置の組から3D位置姿勢を表わす透視変換行列を求めることができる。なお、このように透視変換行列を求めることは、周知技術である空間量子化法などを用いることにより実施可能である。
【0096】
さらに、このようなことは、この場合においては、事前にテーブル化して記憶しておいても良い程度のもので、このような通信用の位置姿勢推定は、工場内のロボットの制御で行う場合などの位置姿勢認識に比べて高い精度が要求されないことから、視覚的に見て違和感を感じなければ良いという前提があるという根拠に基づくものである。
【0097】
5)背景メモリ
カメラ3の設置位置が固定されていて通常撮影される背景画像が固定的である場合で、例えば自動車内にカメラ3を固定しているような状況においては、対象領域優先モードの背景メモリ使用モードを用いることができる。
【0098】
6)モデルベースによる強制イントラフレーム伝送遅れ時間の補償
図17に示すように、自動車電話などの場合においては、通話開始までに実質的に通常10秒以上のセッション準備時間がある。したがって、このようなセッション準備時間中を利用して、セッション開始時点(通話開始時点ではない)で、正面顔を強制イントラフレーム(約30kビット)で伝送する。同時に動き領域の解析やテンプレート修正、3Dモデルの適応化などを通話開始までに完了させる。
【0099】
また、距離情報Lと2D動き情報に基づく概略の3D動ベクトルを計算する。これにより、通話開始直前のフレームをモデルベースで予測する。これを元にして、通話開始後に第1フレームを動画伝送モードで符号化すれば、強制イントラフレームとして伝送する際に比べて符号量が削減できるため(少なくとも背景領域には効果があると考えられる。)フリーズやフレームレートの低下および画質低下を大幅に緩和することができる。
【0100】
(4)H.261規格のものとの互換性
本実施例における符号化器1では、プロトコルによる64kbps以下のビットストリームは、容易にH.261規格のプロトコルに変換することができ、これによって、例えば図18に示すようなプロトコル変換器70,71を構成して互換性を保持することができるようになる。
【0101】
なお、H.261規格の画像信号のビットストリームから本実施例の復号化器2におけるプロトコルに変換することは現状においては、画一的に変換する手段がないが、例えばイントラピクチャによる準動画あるいは静止画モードにおいては接続可能となっている。
【0102】
図18の構成においては、例えば、符号化器1から送信される符号化ビットストリームを受信すると、プロトコル変換器70は、MBSTUFFなどの冗長コードを付加することにより、9.6kbpsのデータ量をH.261規格の64kbps以上のデータ量となるように変換したり、符号量削減のために可変長符号のシンタックスを変更したものをH.261規格に適合するものに置き換えるなどの符号レベルで実施可能な単純な変換制御を行ってH.261符号化器Saに与えるようになっている。
【0103】
一方、プロトコル変換器71においては、上述したように、画一的に変換する手段がないが、イントラピクチャを伝送すべく、カメラ3の画像信号をH.261復号化器SbによりH.261規格の符号化ビットストリームに変換した出力をシンタックスの変更やモード情報などを付加し、フレームレートを落とすことにより伝送符号量を削減して9.6kbpsの伝送レートに適合するように変換して出力する。
【0104】
このようにすることによって、H.261規格の符号化器Sa,復号化器Sbと本実施例の符号化器1,復号化器2との間での画像信号の相互変換が可能となり、従来のH.261規格の装置との間でも同様にして画像通信を可能とすることができるようになる。
【0105】
(5)状態の判定とモードの遷移
(a)強制設定
例えば、前述の符号化モードにおいて、1)テクスチャーソースの切り出しのモードと2)モデルの選択と適応化のモードとの間のモード切り換えは、対象領域抽出結果が人物であるかそうでないかによって自動的に切り換えることができるが、これは、ユーザーのマニュアル設定により強制的に切り換えることもできる。
【0106】
(b)対象領域のカテゴリーの判定
この判定動作に当たっては、図19に示すような使用環境と被写体に関するモード制御の状態遷移図に沿って、各条件を考慮しながらモード進行するようになっている。
【0107】
1)確率的状態遷移
状態遷移に必要な判定情報が不足している場合には、デフォルトで与えた確率または不完全な情報のもとで選択した遷移確率テーブルを用いて自律的な状態遷移や探索を実行する。これは、例えば次の場合に対応して実行される。
【0108】
ア)外部から与えられる強制モードがない場合
イ)動領域解析に基づく領域抽出が完了していない場合
ウ)色信号などの信号解析結果が完了していない場合
2)判定情報に基づく決定的状態遷移
これは、図19に示しているように、確率的な基準によらないで、原画像から3フレーム時間程度にわたる動領域解析を後述するように実施し、これによって動き領域や動き発生状況を抽出した後、人物領域を抽出し、形状パラメータの抽出によりテンプレートの選択を行う。テンプレートの適合具合を評価計算で求め、基準を満たせば終了する。満たさない場合は次のテンプレートを選び、同様のプロセスを繰り返す。
【0109】
(c)状態遷移に基づく判定結果の伝播に基づく遷移確率値の更新
ある判定結果がその後の評価計算において著しい誤差を生み出す場合には、動領域解析モジュールを介した移動体判定の初期節点に戻る際に遷移確率(図中では、移動体nの分岐として、人物側に「0.9」,他の物体側に「0.1」を設定している)を更新する。例えば、初期判定で純然たる確率状態遷移に基づいて人物と判定した領域がその後の2Dテンプレート照合や色解析結果、速度・加速度評価などにより人物とは考えにくい評価関数値を出力する場合、「人らしい」と判断する遷移確率は、「0.9」から「0.2」程度に下げるように変更設定する。
【0110】
(6)モード選択に至るヒューマンインターフェース
上記で述べた状態判定とモード遷移でも最適な符号化制御は可能だが、モード制御部33により、ヒューマンインターフェース34を介した誘導により、誤った判定を下す確率を激減させることができる。例えば、セッション開始までの準備時間の間にモード制御部34により次に示すようなプロセスを完了しておけば、その後の符号化制御に関するモード移行を順調に実施することができるようになる。
【0111】
1)ユーザが人物モードを選択してカメラ3の位置方向を見る。
2)ヒューマンインターフェイス34を介して、「正面におすわりください。」というメッセージを音声あるいは表示で通知する。
【0112】
3)人物が画面中心からずれている場合には、ヒューマンインターフェイス34を介して、「少し右/左にお寄りください。」というメッセージを音声あるいは表示で通知する。(表示方法として、画面隅に子画面を設けて位置を示すこともできる。)
4)第1フレームを強制イントラとして送出する。
5)ヒューマンインターフェイス34を介して、「先方とつながりました。お話しください。」というメッセージを音声あるいは表示で通知する(通話開始可能になる)。
【0113】
(7)モード情報の伝送
モード情報とそれに伴うテンプレート情報は超低レート伝送に際して支障のない程度の情報量であるので伝送可能であり、この場合には、その伝送は、PIC階層のユーザーデータエリアであるPSPAREに記述された状態で伝送されるようになっている(図30および図50参照)。
【0114】
[A−3]対象領域の抽出
人物などの注視の対象となる対象物領域を動きベクトルやカメラ設定に基づいて抽出する。ここでは演算量を削減するために、その計算はマクロブロック(MBK)単位で行うようになっている。この演算動作と各種モードとの因果関係は、前述したように、図19に示すようになっている。
【0115】
(1)動ベクトル発生に基づく領域抽出
ここでは、図23に示す動き領域抽出のルーチンのフローチャートにしたがって、最終的に最適テンプレートの決定が行われるプロセスである。また、図24の領域解析の説明図と図25の基本テンプレートの図が参照される。
【0116】
(a)最大動ベクトルの検出と主領域の推定
H.261などの符号化の規格においては、そのMBKの属性を示すデータとしてのMTP(マクロブロックタイプ)に、動きベクトル発生の有無が情報として含まれている。この場合、H.261規格では、MTP値が2,3,6,8,10の値を示すときが動きベクトルが発生していることを示すデータである(図33参照)。したがって、H.261符号化の動きベクトル検出結果として、例えば図20ないし図22に示すようなMBK属性(MBA,MTP,CBP)の配列ができる。これらの図20ないし22は、2列6段のGOB12個を配列し、各GOBに11列3段のMBK33個を配列してなる画面の各MBK位置に対応した部分にそれぞれMBA値,MTP値,CBP値を示したものである。
【0117】
ここで最も動きベクトルの大きさが大きいブロックを含む領域を主領域とする。なお、動きベクトルの大きさの評価においては、あらかじめカメラ3の移動に伴う動き成分であるパニングベクトルを差し引いておく。このパニングベクトルについては、周知の色々な計算方法があるが、例えば、簡易計算方法として画面周辺部の動きベクトルの平均を計算することにより得ることができる。
【0118】
(b)時間方向の解析
上述の場合に、ただ1フレームについてのみ上記のブロック属性配列を調べたのでは対象物領域を特定することは困難である。そこで、図24(a),(b)に示すように、3フレーム時間程度に渡って時間方向の解析を行う(図19も参照,図23ステップD1)。特に動きベクトルの発生領域については、3フレーム分を重ね合わせた状態で得られるパターン(図23ステップD2)について、その重心位置を求めて(ステップD3)各ブロック位置に関する動きベクトルを次に示すように設定された判定回数に基づいて判定する(ステップD4)。
【0119】
ア)重心からの距離があるしきい値を超えるブロックについては3回に2回以上のとき
イ)重心からの距離があるしきい値以下のブロックについては3回に1回以上のとき
【0120】
次に、得られた動きベクトルによる対象領域の中から孤立点領域や雑音領域の除去を行い(ステップD5)、残った対象領域の重心を再度計算し(ステップD6)、さらに対象領域の高さhと幅wを求める。この後、例えば、人物頭部であるならば2Dテンプレート頭部を(h,w)でスケーリングしてカメラ3までの概略距離L0を求める(ステップD7)。この後、さらに高精度にテンプレート当てはめを行うためには、以下に示すようにする(ステップD8)。
【0121】
(c)2Dテンプレートの照合とスケーリング
まず、動きブロックで構成されるブロックパターンを判別し、特徴量を抽出する。ここで、人物モードがあらかじめマニュアルで選択されていれば、図25に示すように2Dパターンデータベース27から人物モードの基本テンプレートを選択することができるようになる。
【0122】
ここで、基本テンプレートとしては、判定木(図19参照)であらかじめ予想されるモードに応じて人物上半身,全身,頭部のみなどの正面像の2Dテンプレートがデフォルトパターンとして用意されている。次に選択したテンプレートを適応的に形状を修正する。この修正には、重心合わせ、スケーリング、局所的伸縮(図24(c)参照)が含まれる。ここで、最適テンプレートの選択と修正において、後述する式(2)に示す評価関数Fの値を計算する。
【0123】
ア)時間方向の解析で求めたテンプレートよりも若干小さいテンプレートL(<L0)から開始する。
イ)動きブロックのみを抽出した画像にテンプレートをオーバレイし、その領域内に含まれる動ベクトルブロックの個数NMBK(L)を計算する。
ウ)スケールを大きくする(距離Lを小さくする)。
【0124】
エ)Lが一定値Lmin 以下になれば次に進む。それ以外の場合にはイ)に戻る。
オ)次の評価関数Fが最大値Fmax を取るところを最適なLとする。
F=−B×NMBK(L) …(2)
ここで、BはNMBK(L)の曲線のLに関する二次微分値である。
【0125】
あるいは、これを離散的表現になおすと、
F=−B(n)×NMBK(Ln ) …(2a)
B(n)=A(n)−A(n−1)
A(n)=NMBK(Ln )−NMBK(Ln-1 )
となる。
【0126】
(d)量子化スケール情報を含む2Dテンプレート
2Dテンプレートは二値表現も可能であるが、後述するように、各MBK属性配列値をあらかじめモデルに対応してテンプレートで表現することもできる。これは、後述するように、例えば、図42,43に示すような量子化スケールが考えられる。
【0127】
(e)2D移動パターンの分析
画面から人物が移動するパターンとしては、図25にも示しているように、水平横移動(図中横方向に並べた図に対応),カメラ光軸方向の移動(図中縦方向に並べた図に対応)が考えられる。
【0128】
(2)3Dモデルに基づく2Dテンプレートの生成
図12,図13に示したように、限定された環境下における人物モードでは、3Dモデルの透視変換により図25と同等の2Dテンプレートを作成することができる。これにより、上半身、頭部、目、口、鼻などの部位の獲得をすることができるようになる。ただし、正面像以外では、対象人物のカメラ3に対する位置姿勢を求めることが必要となるが、ここでは一般的な方法に依存することとしてその内容まで言及しない。
【0129】
(3)対象領域のカテゴリーの判定
(a)状態遷移グラフに基づく判定
図19に示したモード制御の状態遷移図では、対象領域のカテゴリーを特定する判定木が部分図として含まれている。この判定木上の節点間の遷移は、前述のデフォルト確率に基づく確率探索と判定情報に基づく確率探索との2通りの探索を使用して行うようになっている。
【0130】
(b)MBK属性を利用した判定
変化のあったブロックの内で、特に細かいテクスチャ変化のあったブロックについては、CBPのスコア値が高くなることが予想されるので、例えば、人物上半身モードにおける頭部領域の判定の根拠として用いることができる。
【0131】
(4)背景メモリ
強制イントラフレームが伝送された時点では、常に領域抽出処理を行い、これによって、特に背景部分の情報を背景メモリ32に格納するという処理を符号化器1において行うようになっており、このような処理は復号化器2の背景メモリ66においても行うようになっている。これは、動きや色の変化が激しくなったと判断したときにデータ伝送量を増やさないために、そのフレームにおける背景情報を背景メモリ32に記憶したデータで代用しようとするものである。
【0132】
すなわち、図26,図27,28に示すように、現在符号化中の背景領域をすべてFIXDに設定し、ユーザーデータエリアにおいて背景メモリ使用を宣言しておくのである。そして、これに基づいて、復号化器2側では背景メモリ66から最新の背景情報を呼び出し、伝送されてきた人物画像などの対象領域情報とオーバレイさせて画像を再現するのである。
【0133】
図26においては、超低レート化を図るための符号化制御の概略を示しており、複数フレームの画像信号に基づいて動き領域を分析して領域を抽出し、背景領域と人物領域を得れば、これに基づいて領域別量子化制御を行うと共に有意係数の個数制御を行う。また、一方で符号化レートの設定とモード情報の付加を行いながらバッファ量に応じて符号化制御を行うようになっている。人物領域を抽出する場合には、図27(a)に示すようなCIF形式におけるGOBのMBKの単位で領域を特定するので、背景領域についても同様にして得ることができる(同図(b)参照)。
【0134】
図28は背景メモリ32に記憶したデータを用いる場合の概念的なものを示しており、符号化器1側で領域解析を行って得た背景領域のデータが背景メモリ32(図では背景メモリ1)に記憶され、動画モードを開始して動画を送信している途中では随時新しい背景領域のデータを取り入れて記憶するようにしている。そして、復号化器2側でも同様にして背景領域のデータを記憶するようにしており、通信中に通信路の悪化などによりデータの送信が中断する場合などには復号化器2側で背景メモリに記憶した背景領域のデータにより画面を再生すると共に、再送要求を符号化器1側に送信するなどして動画伝送が復帰までの間の画像再現を補うものである。
【0135】
[A−4]符号化制御動作
この符号化制御動作については、図29に全体の概略的な動作内容について示されている。図30はH.261規格における符号化ビットストリームのシンタックスを示す一般的なものである。以下においては、これらの図29,30に基づいた符号化制御動作の詳細について項目別に説明する。
【0136】
(1)ビットストリームシンタックスの変更
H.261のシンタックス(図30参照)における冗長なヘッダを、超低レート化のために削除する。このために、CIF構造におけるGOBの配置は変更しないが、図31に示すような画面を構成する12個のGOBに対して、GOBの開始ヘッダとしてのGBSC(16ビット)とGOB番号コード(4ビット)の個数を左側のGOBのみに付して右側半分については無くすことによりデータの量を半分に減らす(図32参照)。これにより、1フレーム当たりに20×6=120ビットを削減することができるようになる。
【0137】
(2)可変長符号化(VLC)テーブルの適応切り換え
(a)符号語の置換
図33にH.261規格のMTP(マクロブロックタイプ)属性の可変長符号を示す。例えば、超低レートにおける発明者の実験結果によると、人物画像に対する各MTPの値の発生確率は図34に示す順序となっている。したがって、図34に示す順序に応じてMTP値に対する可変長符号を置換することにより、属性記述のためのビット数を削減することができるようになる。この置換パターンは、例えば数個に限定しておくことにより、どれを選ぶかをユーザーデータエリアに書き込むことにしておけば、復号化器2側においても状況に応じて変更するなどの適応化を柔軟に行うことができるようになる。
【0138】
なお、実験結果では、対象物領域においてMTPの値が2または3になることが大半であり、人物上半身のモードの場合、双方の合計は100〜150個程度に達するため、それぞれ符号長を1と2(現在は2と3)に変更することにより、1フレームあたりで200〜300ビット程度のビット数の削減が行えることがわかった。
【0139】
(3)属性の判定特性の適応制御
(a)領域情報を用いたMTP判定の適応制御
1)背景領域については、領域情報を用いてFIX(固定)あるいはNOMC(動き補償なし)とすることができる。
2)対象領域については、人物特に顔についてはMC−CO(動き補償と符号化)と判定する。
【0140】
(b)INTER/INTRA判定の適応制御
通常、64kbps以上のH.261規格で推奨されるINTER/INTRA判定の特性曲線は、図35に示すようになる。この場合において、PVARはMBKの4つのYブロックに関するフレーム間予測誤差電力和を示し、QVARはMBKの4つのYブロックに関する入力画像のフレーム内分散の値を表している。そして、64kbps以下のレートにおいては、以下のように判定する。
【0141】
1)誤りの伝播を防止するために周期的に分散して強制INTRAを入れる。
2)しきい値TH_INTRAを例えば次のように設定する。FIFOバッファ11の充填率RBを次式(3)により求め、その充填率RBに対して比較基準値RB1,RB2などで判定してしきい値TH_INTRAを設定する。
RB=BUFF/BUFF_MAX …(3)
【0142】
この場合、RB,BUFF,BUFF_MAXは、それぞれFIFOバッファ11に関して、現在の充填率,現在の使用ビット数,最大ビット容量を示しており、以下の3つのケースに別けて判定する。
【0143】
〈ケース1〉 0 ≦RB<RB1
〈ケース2〉 RB1≦RB<RB2
〈ケース3〉 RB2≦RB
判定結果に応じて各ケースに対応してしきい値TH_INTRAを下記のように設定する。
【0144】
【0145】
なお、上述の場合で、領域情報が明確でない場合には、画像中心優先モードあるいは対象領域重心モードの項で示したように、重心からの距離が一定範囲の領域を対象領域として定義する。そして、以下のようにしてしきい値TH_INTRAを制御する。
【0146】
R_IR=IR_MBK/IRMBK_MEAN …(4)
NTH=TH_INTRA×(R0+R_IR) …(5)
RPQ=PVAR/(QVAR×R_IR) …(6)
【0147】
ここで、IR_MBKは対象領域の重心から現在符号化中のMBKまでの距離を示し、IRMBK_MEANは対象領域の重心からすべてのMBKまでの平均距離を示している。
【0148】
そして、上述の式から得られる値に対して、
PVAR≦NTH または RPQ_VAR≦1.00
である場合には、INTERと判定し、これ以外の場合にはINTRAと判定する。この場合に、例えば、R0の値は0.5と設定する。
【0149】
(c)動き補償の有無判定
通常、64kbps以上のH.261規格で推奨される動き判定の特性曲線は図36に示すようになる。この図36において、横軸は動き補償のない場合のフレーム間の誤差和FDSUMの値を示しており、縦軸は動き補償をした場合の誤差和MVSUMの値を示している。この場合、図中、動き補償(MC_ON)がある領域は2個の直線の傾きを示すパラメータGD1,GD2と2個のFDSUMに対するしきい値を示すパラメータIEV1,IEV2とにより囲まれる領域に設定されている。64kbps以下のレートにおいては、バッファ量と領域により以下のように特性曲線のパラメータセット(GD1,GD2,IEV1,IEV2 )の各値を変更する。なお、バッファ充填率RBは前述の式(3)で表現される。
【0150】
RB=BUFF/BUFF_MAX …(3)
この場合、RB,BUFF,BUFF_MAXは、それぞれFIFOバッファ11に関して、現在の充填率,現在の使用ビット数,最大ビット容量を示している。
【0151】
〈ケース1〉 0 ≦RB<RB1
この場合には、すべての領域について従来の動き判定を用いる。したがって、判定特性のパラメータセットの各値は次のように設定される。
(GD1,GD2,IEV1,IEV2 )=( 0.50, 0.91, 256, 256 ×3 )
【0152】
〈ケース2〉 RB1≦RB<RB2
この場合には、対象領域を囲む一回り大きな矩形領域(フレーム間の動き範囲を考慮してテンプレート毎に自動的に設定)RMの内部では通常の動き判定特性を用いる。したがって、判定特性のパラメータセットの各値は次のように設定される。
【0153】
(GD1,GD2,IEV1,IEV2 )=( 0.50, 0.91, 256, 256 ×3 )
また、上記以外の領域(背景領域に相当)QMでは動き判定のしきい値を高く設定する。
(GD1,GD2,IEV1,IEV2 )=( 0.40, 0.80, 256×2, 256×4 )
【0154】
〈ケース3〉 RB2≦RB≦RB3
この場合には、RMの主領域では、
(GD1,GD2,IEV1,IEV2 )=( 0.50, 0.91, 256, 256 ×3 )
RMの主領域以外では、
(GD1,GD2,IEV1,IEV2 )=( 0.40, 0.80, 256×2, 256×4 )
QMでは、
(GD1,GD2,IEV1,IEV2 )=( 0.20, 0.50, 256×4, 256×8 )
【0155】
〈ケース4〉 RB3<RB
この場合には、次のいずれかを選択する。
1)準動画モードに移行し、フレームレートを落とす
2)モデルベースモードに移行する
3)ピクチャーフリーズモードにする
【0156】
(4)過去の符号化属性の利用
(a)MBKレイヤの各符号化属性の特徴
属性メモリ22に格納される各フレームのMBK属性はCIF上のMBK位置に対応して示すと1フレーム当たり22×18の配列となる。
【0157】
1)MBA(マクロブロックアドレス)
3フレーム目あたりから対象領域に相当するところが有意な符号化ブロックとしてMBAが付与されるようになる。特に、MBAが2以上の値を示すMBK(マクロブロック)は対象領域の輪郭部分に相当することが多い。そこで、図37のフローチャートおよび図38,図39に示すように、1フレーム前のMBAパターンをNOT_FIXED(NFX)パターンに変換することにより(図37中ステップE1,図38(a),(b)参照)、領域情報の平均動きベクトルとテンプレート情報を用いて1フレーム先のMBA配列を推定して表現することができるようになる(ステップE2〜E6,図39参照)。
【0158】
そして、このようなMBAパターンの推定値を用いて符号化を制御すると共に、テンプレート情報および動きベクトルを符号化して伝送する(ステップE7,E8)。これに対して、復号化器2側においては、テンプレート情報と動きベクトルにより、一意的に1フレーム分のMBA配列が再現できるようになる。
【0159】
2)MTP(マクロブロックタイプ)
ア)INTER/INTRA混在(通常のフレーム)
超低レートでは実験により、動きを有する対象領域(人物など)の大半がMTP=2,3でラベリングされることがわかっている。そこで、後述する情報発生量に応じた適応制御における判定に基づいて、図40のフローチャートおよび図41に示すように、特に激しい動きの発生がなければ、領域情報の平均動きベクトルとテンプレート情報を用いて1フレーム先のMTP配列を表現することができる(図40中ステップF1〜F3,図41参照)。
【0160】
そして、その予測したMTP値に基づいて1フレーム分の符号化を進め(ステップF4)、テンプレート情報と領域別の動きベクトルを符号化して伝送する(ステップF5)。一方、復号化器2側においては、テンプレート情報と動きベクトルにより、一意的に1フレーム分のMTP配列を再現することができるようになる。
【0161】
イ)強制イントラフレーム
強制イントラフレームは、ユーザーデータで宣言してあれば、その後においては、MTP=4とするデータやMBA=1とするデータの記述は不要となる。したがって、これによって、5 ×22×18=1980ビットつまり約2kビットの節約をすることができるようになる。
【0162】
3)QSC(量子化スケール)
QSCは32kbps以下ではすべて31(量子化ステップ62)に固定し、領域分析から決定される主領域のみ16(量子化ステップ32)とする。したがって、超低レートの内でも特に16kbps以下の人物モードにおいてはQSC情報は伝送しないようにする。したがって、GOBレイヤにおけるQSC情報の記述は不要になり、これによって、情報量としては12×5 =60ビットの削減をすることができる。加えて、MBK単位の量子化スケールの変更情報を伝送することも不要となる。
【0163】
この場合において、人物モードの領域別量子化については図42(a)にその例を示し、量子化テンプレートは同図(b)に例を示している。また、図43には、量子化テンプレートのモデルベース伝送を行う場合の符号化器1と復号化器2との間のデータのやり取りについてその概要を示しており、図44のフローチャートにおいては、量子化スケールQSCの値の設定に関する流れのルーチンを示している。
【0164】
4)MVD(差分動きベクトル)
MVDはフレーム内の水平方向の動きベクトル変化であるので、非剛体運動あるいは回転運動において「0」でない値が発生する。人物に対しては顔の表情変化に起因する動きや頭部,上半身のエッジ部分の三次元回転などがそれに相当する。これらは瞬時に発生するため、差分ベクトルの形で予測する場合の予測効率はあまり良くない。そこで、このような差分ベクトルを動きベクトルになおした形でしかも領域単位の平均2D動きベクトルとして予測する。
【0165】
ここで、MVDの発生位置はMTPで動き補償があると宣言されているMBKに限る。通常、この大半は、MTP=2,3で表される。これにより、2フレームに1回程度はMVD情報を抑制することができるようになる。なお、図45は領域別平均動きベクトルによる符号量の削減のためのルーチンのフローチャートを示しており、図46はその内容の概略をパターンの推移図で示している。
【0166】
5)CBP(符号化ブロックパターン)
CBPはMBKに含まれる6個のBLK(ブロック)の各々について符号化するか否かをビット情報で示すものである。そこで、このCBPの値をYUVベクトルに変換することにより、領域情報の平均動きベクトルとテンプレート情報を用いて1フレーム先のCBP配列を表現することができる。一方、復号化器2側ではテンプレート情報と動きベクトルにより一意的に1フレーム分のCBP配列が再現できるようになる。なお、図47は領域別動き補償予測のルーチンのフローチャートを示しており、図48はその内容の概略をパターンの推移図で示している。
【0167】
(b)領域情報を用いたMBK属性の符号量削減
1)2フレームに1回の属性符号化
以上のように、テンプレート情報と領域別の平均動きベクトルを用いた動き補償により、1フレーム分のパターン属性の予測を行うことができ、復号化器2側でも一意的に再現することができるようになる。なお、予測したパターン属性は復号化器2のみならず符号化器1側においてもすべて確実に符号化制御に反映させることができる。
【0168】
2)上下の交互予測あるいはインタリーブ
2フレームに1回、完全に予測のみのパターン属性を入れる代わりに、図49(a)(あるいは同図(b))に示すようにGOB単位で上部と下部と(あるいは右側と左側と)を交互に予測パターンに置き換えることもできる。GOBライン毎のインタリーブ(同図(c)〜(e)参照)も考えられるが、パターンを表す輪郭に不連続が生ずる恐れがあるので、対象領域が大きい時は採用しないようにする。
【0169】
(5)量子化制御
量子化制御は原則として量子化ステップの制御により行う。ここで、量子化ステップの設定方法についてはH.261規定には定められておらず、その制約条件としては、2〜62(量子化スケール値が1〜31)の偶数で、且つ5ビットで表現できる範囲であるというものである。したがって、本実施例においては、以下に示すようにして量子化ステップを制御することにより量子化制御をするようになっている。
【0170】
(a)領域別量子化制御
1)対象領域優先モード
このモードにおいては、抽出した対象領域については、小さい量子化ステップを割り当てる。また、背景領域については量子化ステップを62に固定している。そして、被写体が人物モードである場合には、頭部領域のみ62以下を採用し、他は原則的には62に設定するようになっている(図42(a)参照)。
【0171】
2)画面中心優先モード
このモードにおいては、画面中心に近いほど量子化ステップを細かく取る。ただし、量子化ステップの制御式を一本化するために、現状のバッファ容量を、現在のMBKまでの距離を用いてステップ計算用に修正するという方法を採用し、このために、次式(7),(8)を用いて計算する。
【0172】
R_IR=IR_MBK/IRMBK_MEAN …(7)
BUF_R=BUFF_MB
× (5.00+real (IR_MBK) / real(IRMBK_MEAN))…(8)
【0173】
ここで、
BUFF_MB:MBK単位で監視したバッファ量
BUFF_R :距離計算に基づく仮想バッファ量
IR_MBK :対象重心から現在符号化中のMBKまでの距離
IRMBK_MEAN:対象重心からすべてのMBKまでの平均距離
この仮想的な修正バッファ量BUFF_MBの値は後述する符号化レートに応じた制御の式に使用する。
【0174】
(b)バッファ量に応じた制御
通常、上述のような場合には量子化制御を行っているが、強制イントラフレームの送信の場合については、バッファ量による量子化制御は行わないようになっている。なお、強制イントラフレームは、通常以下の場合に伝送することとしている。
【0175】
1)動画モード開始または再送時の第1ピクチャー
2)準動画モード
3)静止画モード(ピクチャーフリーズ)
4)モデルベースモードにおけるテクスチャーソース画像
量子化ステップについては、後述の符号化レートに応じた制御の式に依存している。
【0176】
(c)符号化レートに応じた制御
符号化レート(RATE)に応じた量子化ステップ(STEP FPIC )の決定式は次のように設定されている。
【0177】
【0178】
2)通常の量子化ステップ
ISTEP=2×INT(BUFF_MB/(200.0 ×QX64)+2 …(9)
BUFF_MB:バッファ中の現在データ量
QX64:符号化レート=QX64×64.00 [kbps]を満たす値
なお、符号化レートが16kbps以下の場合には、頻繁に量子化スケールの変更を行うことは、逆に必要ビット数の増大につながる。したがって、10kbps以下の場合には量子化ステップを62に固定している。
【0179】
(d)情報発生量に応じた適応制御
動き量と色変化の度合に基づき、量子化とフレームレートの制御を行うようになっている。
【0180】
1)動きの激しさの判定
過去のフレームに対する現在フレームの動きの激しさの度合として、次式(10)で定義されるAMという指標の値を計算により求め、この値に基づいて判定した結果で量子化とフレームの制御を行う。
【0181】
【数2】
【0182】
ただし、
Nmb;動きの発生したブロックの数
L(X);ベクトルXのノルム関数.絶対距離,ユークリッド距離など
Vi;動きベクトル
Rd;伝送データレート
THV(Rd);データレートに依存したしきい値定数
【0183】
式(10)で計算されるAMの値を用いて、新たに尺度AMTを計算する。この場合において、AMTは次のようにして計算される。
ア)AM≦THV(Rd)のとき、AMT=0
イ)AM>THV(Rd)のとき、AMT=AM
ここで、Nmbの対象範囲とそれに対応するTHVは符号化プロセッサの計算能力に応じて以下のように変更する。
【0184】
a)現在のフレームの第1MBKから現在復号中のMBKまで
b)現在のGOB中の第1MBKから現在復号中のMBKまで
c)現在のGOB中のすべてのMBK
d)現在フレーム中のすべてのMBK
【0185】
上記a),b)の場合、グローバルな演算が不要なため、計算量も少なく処理遅延もないが、判定の信頼性が低い。一方、c),d)はグローバルな計算を行うため、計算量は多くなるが処理遅延は最大1フレーム時間となる。しかし判定の信頼度は高い。
【0186】
2)色変化の激しさの判定
過去のフレームに対する現在フレームの色変化の激しさの度合として、次式(11)で定義されるACという指標の値を計算により求め、この値に基づいて判定した結果で量子化とフレームの制御を行う。
【0187】
【数3】
【0188】
ただし、
Ncb:CBPのブロック属性が1になったブロックの数
C(i):i番目のマクロブロックに関してDCT係数のDC成分の変化とCBPに基づいてYUVベクトルから色変化を計算する関数
THC(Rd):データレートに依存したしきい値定数
【0189】
式(11)で計算されるACの値を用いて、新たに尺度ACTを計算する。この場合において、ACTは次のようにして計算される。
ア)AC≦THC(Rd)のとき、ACT=0
イ)AC>THC(Rd)のとき、ACT=AC
【0190】
ここで、Ncbの対象範囲とそれに対応するTHCは符号化プロセッサの計算能力に応じて以下のように変更する。
a)現在のフレームの第1MBKから現在復号中のMBKまで
b)現在のGOB中の第1MBKから現在復号中のMBKまで
c)現在のGOB中のすべてのMBK
d)現在フレーム中のすべてのMBK
【0191】
上記a),b)の場合、グローバルな演算が不要なため、計算量も少なく処理遅延もないが、判定の信頼性が低い。一方、c),d)はグローバルな計算を行うため、計算量は多くなるが処理遅延は最大1フレーム時間となる。しかし判定の信頼度は高い。
【0192】
3)仮想バッファの計算
イ)動き量に基づく仮想バッファの増分
a)動きのない対象領域のMBK: BUF_M =16×(AMT/aM)
b)動きのある対象領域のMBK: BUF_M =0
c)背景領域のMBK : BUF_M =32×(AMT/aM)
aMは1MBKあたりの平均的な動き量に相当する数であり、例えばaM=16とする。
【0193】
ロ)色変化量に基づく仮想バッファの増分
a)色変化のない対象領域のMBK: BUF_c =BMBK×(ACT/aC)
b)色変化のある対象領域のMBK: BUF_c =0
c)背景領域のMBK : BUF_c = 2×BMBK×(ACT/aC)
【0194】
【0195】
(6)有意係数の個数の制御
H.261では量子化変換後のDCT変換係数をブロック単位でジグザグスキャンし、得られる一次元の量子化係数列を非零のレベルとその後に続くゼロランの長さの二項組(イベントと呼ぶ)で表現している。ここでは、高周波成分の係数は超低レートにおいてあまり視覚的に寄与しないとみなすこととし、ブロックあたりのイベント数を制限することにより、それに対応するVLCの個数を減らし、全体としてビット数の削減を図ることができる。
【0196】
すなわち、ジグザグスキャンによって低周波成分から順に得られるDCT有意係数(非零)が一定個数を超えた場合には、残りのDCT係数をすべて強制的にゼロとみなすように制御するものである。このとき、そのしきい値としての上限個数Ncf(≦64)を符号化レート、領域、動き発生量、バッファ量、符号化モードのそれぞれに応じて切り換えるように制御する。なお、この上限個数に関する情報については、復号化器2側に送る必要がないため、符号化することはない。
【0197】
上述のDCT有意係数個数の制御については、実際には以下のようにして行う。なお、ここでは、例えば、次の状態を仮定して実施する。
【0198】
符号化モード:人物モード
符号化レート:8kbps
RB=V_BUFF/BUFF_MAX
V_BUFF=BUF_R+BUF_M+BUF_C
BUFF :現在のバッファ量
BUFF_MAX:バッファの最大容量
(RB1,RB2,RB3,RB4,RB5)=(0.2 ,0.3 ,0.5 ,0.8 ,1.0 )
(Ncf0,Ncf1)=(16,8 )
【0199】
判定に当たっては、バッファ充填率BFの値によって、次の6つのケースに分けて制御する。なお、RB1〜RB5で示す値は判定のしきい値で、制御内容に対応した値があらかじめ設定されている。
【0200】
〈ケース1〉 0≦RB<RB1
すべての領域について最大64個の有意係数個数とする
〈ケース2〉 RB1≦RB<RB2
対象領域について最大64個,背景領域では最大Ncf0個の有意係数個数とする
〈ケース3〉 RB2≦RB<RB3
すべての領域について最大Ncf0個の有意係数個数とする
【0201】
〈ケース4〉 RB3≦RB<RB4
すべての領域について最大Ncf1個の有意係数個数とする
〈ケース5〉 RB4≦RB<RB5
背景は背景メモリを使用し、メモリにない部分はDC成分のみで表現する。対象領域について最大Ncf1個の有意係数個数とする
〈ケース6〉 RB5<RB
次の▲1▼〜▲3▼のいずれかを他の条件などによって選択する
▲1▼準動画モードに移行する
▲2▼モデルベースモードに移行する
▲3▼ピクチャーフリーズする
【0202】
(7)フレームレートの適応切り換え
(a)フレームレートの変更指示の記述
H.261規格のビットストリームシンタックス(図30参照)においては、PICレイヤのTREF(temporal reference)の値の設定により、復号化器2に対するフレームレート変更の指示を記述できるようになっている。しかし、フレームレート変更については、この実施例においては超低レート化のための従属手段として取り扱っている。以下の、その方法と実施の要因について示す。
【0203】
(b)フレームレート変更の方法
符号化器1側において動画像をA/D変換した後に、フレーム単位で生の画像データを符号化ループに送るか送らないかを選択することによる間引き操作によりフレームレートは変更される。したがって、この間引き情報が上記のTREFに反映されることになる。
【0204】
(c)フレームレート変更を駆動する要因
フレームレート変更の駆動要因については、以下のようにまとめることができる。
1)バッファ容量に応じた切り換え
2)伝送レートに応じた切り換え(例:8kbps →5frame/sec など)
動画像モードにおいては伝送レートに応じて初期フレームレートを設定する。例えば符号化レートQX64に対して、以下に示すようなフレームレートに設定するようになっている。
【0205】
・QX64≧18 →30 frame/sec
・18≧QX64≧10 →30 frame/sec または15 frame/sec
・10>QX64≧6 →15 frame/sec
・ 6>QX64≧1 →15 frame/sec または10 frame/sec
・64>QX64×64≧32 →10〜7frame/sec
・32>QX64×64 →10 frame/sec 以下
3)動き発生量に応じた切り換え
4)モードの変更
【0206】
[A−5]符号化処理プログラムに従った動作の説明
さて、以上のように、符号化処理に当たって実施される超低レート化の機能について、実際の符号化処理過程においては、各機能を図5ないし図7に示すプログラムのフローチャートにしたがって実施するようになる。以下、全体の流れの概略について説明する。
【0207】
すなわち、まず、強制モードの設定を行い(ステップA1)、この設定状態の下で、対象領域抽出部26,テンプレートデータベース27,2Dテンプレートマッチング部28,モデルベース予測部29および三次元形状データベース30などにより、動領域の解析,動き領域抽出(ステップA2,A3)を行う。次に、モード制御部33により、状態遷移図による探索と判定を行い、続いて、使用環境モードの設定、被写体モードの設定、状態遷移確率の更新処理、符号化制御モードの決定(ステップA4〜A8)を順次実行する。
【0208】
この後、今のフレームが強制イントラフレームであるか否かを判定し(ステップA9)、「YES」の場合には符号化制御部21における量子化ステップの決定を行うと共に、直交変換部7,量子化部8,通信路符号化部10などによりH.261規格のINTRA符号化処理を行い(ステップA10,A11)、「NO」の場合には、直接次の仮想バッファ計算(ステップA12)に進み、符号化制御部21により仮想バッファの計算を行う。
【0209】
次に、現在のフレームが動画モードである場合にはフレームレートを決定し(ステップA13,A14)、モデルベースモードである場合には、領域抽出・認識処理部25にて3Dモデルによる2Dテンプレートの生成を行い(ステップA15,A16)、2Dテンプレートの照合を行って対象領域の抽出処理を行う(ステップA17,A18)。また、背景メモリモードが設定されている場合には背景メモリ32を使用するようになる(ステップA19,A20)。
【0210】
続いて、属性予測フレームであるか否かの判定を行い(ステップA21)、「NO」の場合には、ステップA22〜A28の一連の処理を実行し、「YES」の場合にはステップA29〜A35の一連の処理を実行する。ステップA22〜A28では、符号化制御部21および対象領域抽出部26により、イントラフレームの判定,動き補償有無の判定,動き量の判定,色変化量の判定,仮想バッファの計算,量子化ステップの決定,最大係数個数の計算が実行される。また、ステップA29〜A35では、符号化制御部21および属性メモリ22などにより、MTP,MBA,QSC,MVD,CBPの各配列の予測を行うと共に、MBK属性の符号化抑制処理,MBK属性配列のモデルベース伝送が行われる。
【0211】
この後、BLK単位でH.261ベースの動き補償,DCT計算を実行し(ステップA36)、直交変換部7,量子化部9,逆量子化部13,逆変換部14および通信路符号化部10などにより、領域別量子化制御および有意係数個数制御を実施した後、BLKレイヤのビットストリームを生成する(ステップA37,A38,A39)。BLKレイヤの終了後、属性予測フレームである場合にはMBK属性判定制御を実行し(ステップA40〜A42)、この後、属性メモリ22にMBK属性データを格納して記憶させるようになる(ステップA43)。以下、ステップA44〜A54にしたがって、1フレーム分の符号化ビットストリームデータを生成する。
【0212】
[B]復号化器
次に、復号化器2において受信する符号化ビットストリームの復号化処理の内容について説明する。図4は、復号化処理内容を概念的に示すもので、大きく分類すると、復号化処理は、符号レベル,パターンレベル,画像信号レベルの3段階に実施され、この処理過程で種々のモード制御を行うと共に誤り訂正機能を実施して超低レートの伝送による復号化処理と無線通信レベルでの誤り率に対応した誤り訂正機能を実現する構成である。以下においては、この図4に示す概念的な構成をベースとして各機能に対応した詳細な説明を項目別に行う。
【0213】
なお、この復号化器2の特徴である自律的誤り訂正の機能を実現するに至る経緯について簡単に説明する。すなわち、通常、有線伝送系では平均ビット誤り率は10の−6〜−8乗程度であるが、これに対して無線系においては10の−2〜−3乗程度と大きい値が想定されている。
【0214】
一方、MPEGやH.261規格のように可変長符号をベースとしたシンタックス(図30参照)で発生したビットストリームでは、ほんの1ビットの誤りでも最悪の場合には復号誤りが伝播し、それ以降のデータが復号不能となる場合が想定される。しかし、従来の有線系TV会議システムではデマンドリフレッシュ(フリーズと再送要求の組み合わせ)と誤り訂正符号(BHC符号など)の組み合わせにより、実用上で問題のない程度の誤り訂正が実現化されていた。
【0215】
また、ビデオCDなどの蓄積系においては誤り訂正符号で充分であったが、無線系では誤り率が高い上に電波事情によっては数ビット単位で欠落,反転,挿入などの伝送誤りが発生する可能性があるため、通常の符号理論的なアプローチだけでは完全な誤り訂正が困難となるものであった。そこで、本実施例の復号化器2においては、少なくとも復号化処理が中断せずに、しかもできるだけ原信号に近い信号値を復元できるような自律的な誤り修復手段を講じることにより解決を図っているのである。
【0216】
以下においては、その自律的な誤りの訂正機能の内容について次の各項目に分けて説明する。[B−1]符号化ビットストリームのグローバルなチェック,[B−2]符号とシンタックスのレベルの誤り訂正,[B−3]パターンレベルの誤り訂正,[B−4]信号レベルの誤り訂正,[B−5]モード情報を用いた誤り訂正の戦略制御,[B−6]認識レベルの誤り訂正,[B−7]人物メモリと3Dモデルベース手法,[B−8]誤り訂正戦略,[B−9]復号化処理プログラムに従った動作の説明の大項目に分け、各大項目中においてさらに小項目に分類して各原理と方法について説明する。
【0217】
[B−1]符号化ビットストリームのグローバルなチェック
(1)ビット誤りの発生形態
まず、復号化処理におけるビット誤りの訂正を行うにあたって、通信路を経由して受信する画像信号のビット誤りがどのようにして発生するのか、その発生形態について以下に簡単に説明する。
【0218】
(a)単発的な「0/1」の反転誤り:ある確率でランダムにビット値が反転する誤りの発生形態である
(b)バーストエラー:ある区間のデータがマスクされる誤りの発生形態で、その間の値は次の▲1▼,▲2▼のいずれかである。▲1▼0あるいは1の固定値を連続して出力する,▲2▼全くランダムな値を出力する
(c)ビットの挿入,欠落:これによって時間的な伸縮が発生する
【0219】
(2)誤り訂正の基本方針
本実施例においては、誤り訂正の基本方針として、誤り発生の形態については特に限定するものではない。しかし、上述の(a)の場合には比較的安定して対処できるが、(b),(c)のような場合には完全な訂正は極めて困難なものとなるため、復号化処理の結果を視覚的にはそれほどおかしくない推定値で修復するが、その後の誤差伝播による誤差の累積が予想されるので、これを抑制する手段を設けている。また、この場合に、最悪時にはピクチャーフリーズと再送要求(ARQ:automatic repeat request)を行使する。
【0220】
また、復号化器2側での能動的な訂正手段を行使する以前に、復号化処理上で影響力の大きい情報(所要ビット数などのデータ)については、前述したように、符号化器1側において冗長的に付加することで訂正能力の向上が図れるようにしている。
【0221】
(3)所要ビット数の伝送
プロトコルシンタックス中のユーザーデータエリアを用いて、データ欠落時に画像再生に与える影響が大きいデータについては、前述のように符号化器1側から冗長的に伝送している。本実施例においては、図50に示すように、PICレイヤにPIC単位の所要ビット数を、GOBレイヤにGOB単位の所要ビット数を各々のユーザーデータエリアに16ビット(64kビットまで表現可能)程度で記述しておく。これにより、復号化器2側においてビットの欠落や挿入があったか否かを判定できる。また、この所要ビット数データ自体に誤りがあるか否かについては次のようにして判定する。
【0222】
(a)次の項[B−2]符号とシンタックスのレベルの誤り訂正で説明するように、PSC(ピクチャースタートコード)とGBSC(GOBスタートコード)の定位をバッファ内のグローバルなヘッダチェックで行っておく。そして、この結果をもとに、PSPAREやGSPAREに記述された符号量をチェックする。
【0223】
(b)GOBレイヤの符号量記述の和がPICレイヤの符号量に一致していない場合、どれかの記述に誤りがあると判定する。また、一致していれば誤りはないと判定して終了する。
【0224】
(c)伝送レートとフレームレートから1フレームあたりの平均符号量と1GOBあたりの平均符号量を計算する。強制イントラフレーム以外の場合で、この値からあるしきい値以上外れる符号量を記述誤り箇所の候補とする。
【0225】
(d)上記(b)の項で抽出した候補に対して、過去の数フレームにわたる符号量から線形予測との比較を行い、その値とのずれが一定範囲内に収まっていない場合は誤りと判定する。
【0226】
(4)フォワード型データチェック
上記した(a)のように符号化器1側で記述した1フレーム中の所要ビット数のデータを1フレームの復号化処理の開始以前にすべて検出しておくために、復号化器2側の入力バッファ(FIFOバッファ42)に蓄積されたビットストリームデータを数kビットオーダーでグローバルにチェックする。そのためには、次の項[B−2]でも説明するように、PSCとGBSCとの定位が必要になる。そこで、その定位処理について次のようにして行う。
【0227】
(a)あるバッファ領域に対して、図51に示すように、ファジイマッチング処理により完全にスキャンする。伝送レートが高い場合には、この方法で定位が完了するのに多くのマッチング計算を必要とするが、超低レートにおいては1フレームあたりのデータ量が数kビット以下であるので、このようにグローバルにスキャンする処理を行っても実用上問題がない程度である。
【0228】
この場合において、ファジイマッチング処理では、検索するコードのビットパターンと符号化ビットストリーム中のビットパターンとのビット一致率で示す類似度S(図51中の式参照)が例えば0.9(90%)以上であれば、ほぼ間違いないと判断するといった基準を設けている。これによって、例えばPSCが20ビットであるから、2ビット分の誤りを許容してマッチングしたことを判定できるようになる。なお、この類似度Sの値は、好ましくは0.9であるが、実用上においては0.8程度まで低い値に設定しても実施可能なものである。
【0229】
(b)PSCと最初のGBSCを検索した後、平均符号量と1フレーム前の符号量を用いた推定符号量を根拠としておおまかな位置を見当付ける。その後、その位置を中心としたある範囲内でスキャンを行う。そして、次のフレームのPSCまでの間にあるGBSCの数が正しければチェック処理を終了する。また、正しくない場合には、GN(グループナンバー)コードの値をチェックして欠落しているGBSCを割り出し、そのGBSCの1つ前のGBSCからスキャンを行い、これによって検出できれば終了する。
【0230】
[B−2]符号とシンタックスのレベル誤り訂正
(1)PICとGBSCの定位
ビットストリームをシーケンシャルに復号するのみでは、次の(2)項で述べるようなビット誤りに起因してPICデータおよびGOBデータの範囲を知ることができなくなる恐れがある。そこで、上述したようなファジイマッチング処理により比較的安定して検出し、定位できるPSCおよびGOBヘッダを起点としてパターンレベル(MBK属性)や画像信号レベル(BLK)による誤り訂正に追い込んでいく階層的処理を設けている。そして、その後は、符号と文法とに依存した以下の誤り訂正に連結されるようになっている。
【0231】
(2)ビット誤りによる文法的復号停止の発生形態
ビット誤りを含むビットストリームをシーケンシャルに復号化処理すると、文法エラーによりパーザ43は復号化処理を停止する。しかし、そのときの停止位置とビット誤りの発生位置とが一致するとは限らず、場合によってはビット誤り位置が停止位置よりも数十ビット手前まで遡っていることもある。そこで、以下においては、どのような誤りの発生形態が存在するかを説明する。
【0232】
(a)ビット誤り位置で即座に停止する場合
固定長ヘッダにビット誤りが混入し、マッチング不能になる場合には、シンタックス上で他への分岐条件がない限り、即座に復号停止となる。
【0233】
(b)ビット誤り位置からしばらく復号を続けた後に停止する場合
1)可変長符号(VLC)においてビット誤りが生じた場合
ビットストリームとは、図52に示すように、異なる2進木構造を持つ符号木の結合で得られるグラフにおいて各節点間を論理条件や数値条件に基づいて遷移することによって得られる出力シンボルの時系列である。したがって、VLCの内の1ビットでも反転すると符号化器1側で発生した事象(符号化属性や画像信号の値に対応)の時系列が復号化器2側において再生できなくなって全く別の事象列を復号化結果として出力する結果に至る恐れがある。
【0234】
しかし、このような誤りについては、純粋に符号のみを判断する文法的制約だけでは検出できない。つまり、後述する信号レベルあるいはパターンレベルにおける誤り検出条件あるいは画像データ形式に基づく数値条件を介した文法的制約でのみ検出されるものである。換言すれば、このような誤り検出プロセスにかかるまで誤ったビットストリーム復号を継続してしまうため、復号停止位置はビット誤り位置よりも後ろになるということである。
【0235】
また、このような誤りが存在していても必ずしも復号停止に至るとは限らず、例えば、ビット反転を受けても同一の符号長の他の符号語に置き換えられた場合には、状態出力として異なる値を出力するだけであり、その値がその後の条件分岐に悪影響を与えなければ、それ以後のVLC復号化処理における同期ずれは発生しない。それゆえに、この場合、例えばある画素ブロックの色やテクスチャデータのみが変更されて再生される可能性があっても、復号停止には至らないのである。
【0236】
2)固定長符号においてビット誤りが生じた場合
この場合は、上記した符号長が不変のビット反転の場合と同様であり、復号出力の数値または属性が符号化時と異なるが、その後の条件分岐に悪影響を与えなければ復号停止には至らない。
【0237】
(3)文法的復号誤りの検出
次に、H.261のプロトコルシンタックス(図30参照)に基づき、ビット誤りが発生する位置を次のように分類して説明する。
【0238】
(a)常に現れる固定長ヘッダ
1)PSC(picture start code;20ビット)
ファジイマッチング処理を行う限り、2ビット程度のビット誤りがPSC中に発生してもシンタックスやそれまでの復号化結果に依存せずにPSCを検出できる。したがって、PSCの検出と定位は他の位置のビット誤りを検出するために必要な初期プロセスとなっている。
【0239】
2)GBSC(group of blocks start code;16ビット)
PSCと同様に、ファジイマッチング処理により安定して検出できるが、PSCの定位が行われていないと定位を誤る可能性もある。
【0240】
(b)常に現れる固定長データ
1)TR(temporal reference;5ビット)
PSCの定位が行われていれば、続く5ビットのデータであるので、その値をチェックすることは容易である。次のように復号化器2側のモード設定状態に応じて誤りの判定が異なる。
【0241】
ア)通常の動画再生モード(固定フレームレート)であれば、伝送レートに応じたフレームレートに相当する値だけ前回のTRよりも増えているはずである。32kbps以下の超低レート動画モードならば、3〜5程度の増分になるため、それ以外は誤りと判定できる。
イ)準動画モードならば、10〜31程度の増分になるため、それを外れると誤りである。
【0242】
2)PEI(picture extra insertion information ;1ビット)
データが1であれば次に続くユーザーデータPSPARE(8ビット)が存在する。データが0であればGBSCが続く。
【0243】
3)GN(group number;4ビット)
GBSCの定位プロセスで誤りを判定する。以下の条件▲1▼,▲2▼を満たさない場合には誤りである。▲1▼CIF構造では1≦GN≦12,▲2▼1つ前のGNよりも1つ数値が増えている場合
【0244】
4)GQUANT(GOB layer quantizer infomation;5ビット)
超低レート伝送での量子化スケール(QSC)は、対象領域優先モードにおいてはすべて31(量子化ステップ62)に固定し、領域分析から決定される主領域のみ16(量子化ステップ32)と設定する。したがって、人物モードではQSC情報は伝送しないようになっている。これによりGQUANT(GOBレイヤのQSC情報)とMQUANT(MBK単位の量子化スケール変更情報)は不要となるため、このデータに関する誤りは生じない。他のモードではMQUANTを用いる場合は後述のパターンレベルの誤り訂正におけるCBPと同様にして値を推測し、誤りを判定する。
【0245】
5)GEI(GOB extra insertion information ;1ビット)
ア)データが「1」であれば次にユーザーデータGSPARE(8ビット)が続く。したがってGBSCの定位とGSPAREの定義および数値から正しくない(同期ずれか誤り)と判定する。
イ)データが「0」であればMBAが続く。したがって、誤りの判定はMBKレイヤまで持ち越される。
【0246】
(c)条件付きで現れる固定長データ/ヘッダ
1)PSPARE(picture layer spare infomation;8ビット)
ピクチャーレイヤ単位でのユーザーデータを記述可能なエリアで、本実施例においては、モード情報(8ビット),所要ビット数の情報(8ビット×2)に用いている。これによって、所要ビット量の誤りを判定することができる。
【0247】
2)GSPARE(GOB layer spare infomation;8ビット)
GOBレイヤ単位でのユーザーデータを記述可能なエリアで、本実施例においては、GOB内での所要ビット数を記述している。なお、GOBレイヤでの所要ビット数は8ビット以内に収まる確率が高いので、所要ビット数のデータのビットパターンを上位(MSB)側と下位(LSB)側とで順序を入れ替えた反転パターンとして記述するようになっている。したがって、GOBレイヤの所要ビット数が8ビットを超える場合にのみ、次のGSPAREが必要になる。
【0248】
3)MBSTUFF(macroblock address stuffing ;11ビット)
超低レート伝送では用いない。64kbps以上のH.261規格においては用いられる可能性はあるが、図53にも示すように、1ビットの誤り発生でも、文法的に異なる解釈結果となる場合があるので、ファジイマッチング処理を行うことは危険である。したがって、本実施例においてはMBSTUFFコードは使用していない。
【0249】
4)MQUANT(MBK layer quantizer infomation;5ビット)
GQUANTで説明したように、本実施例における超低レートの伝送の人物モードにおいては、MQUANTを用いない。他のモードでMQUANTを用いる場合は後述のパターンレベルの誤り訂正におけるCBPと同様にして値を推測し、誤りを判定する。
【0250】
5)INTRA−DC(8ビット)
文法的にはMTPがINTRAを示す時のみ最初のDCT係数データとして現れる。この判定については、後述する信号レベルの誤り訂正プロセスに委ねられる。
【0251】
6)ESC(6)+RUN(6)+LEVEL(8ビット)
ESCに誤りが入ると、その後のBLKレイヤの復号化処理において別の解釈が生じるため、文法的に誤り位置を特定して訂正することはかなり困難である。そこで次の方策を講じている。
【0252】
ア)DCT係数の復号化処理において常にESCとの類似度Sesc を計算し、Sesc =5/6(6ビット中5ビットがESCと一致)の時にその位置Pesc をすべて記憶し、その後の復号化処理を進める。
イ)EOBを見付ける以前に以下の条件▲1▼,▲2▼を満たさない場合には、誤りと判定し、上述のPesc に戻ってそれをESCと解釈し直して再度復号化処理を行う。▲1▼有意係数の個数≦Ncoefの制約,▲2▼BLK内の量子化DCT係数の累積個数≦64
【0253】
ウ)画像信号レベルの誤り訂正プロセス(BLKレイヤ)で誤りを検出すれば、同じくPesc に戻ってそれをESCと解釈し直して再度復号化処理を行う。
エ)パターンレベルの誤り訂正プロセス(MBKレイヤ)で誤りを検出すれば、Pesc に戻ってESCと解釈し直して再度復号化処理を行う。
【0254】
7)EOB(end of block;2ビット)
語長が短いため、類似度で候補を判定することは困難である。しかし、出現回数は多いので、ランダムな誤りがEOB内に発生する確率は小さくない。そこで、以下の条件▲1▼〜▲3▼を満たさない場合にEOBに誤りが生じたと判定する。
【0255】
▲1▼有意係数の個数≦Ncoefの制約
▲2▼BLK内の量子化DCT係数の累積個数≦64
▲3▼(MBK内のBLK個数)≦(CBPで記述されるBLK個数)
この場合に、訂正方法は次のア),イ)の2通りがあるが、通常は、計算の簡略化のためにイ)の方法を選択する。
【0256】
ア)1つ前のEOBの直後からビットを順に反転してゆき、EOBパターン「10」を検出する。そして、検出したEOBパターンをEOBと見なして復号化処理を行い、上記した3つの条件▲1▼,▲2▼,▲3▼をすべて満たせばこれが正しいEOBと判定する。
イ)GOB中の残りのMBKのすべてについてパターンレベルの誤り訂正を適用する。前述の3つの条件▲1▼,▲2▼,▲3▼で検出できない場合は信号レベルかパターンレベルの誤り訂正に委ねる。
【0257】
(d)常に現れる可変長符号(VLC)
1)MBA(macroblock address;1〜11ビット)
MBAは以下の条件▲1▼,▲2▼で出現するため、この条件でVLC表の照合を行い、あとはパターンレベルの誤り訂正に委ねる。
【0258】
▲1▼復号完了したMBK個数≦32のとき,EOBの直後
▲2▼GEI=0の直後
2)MTP(macroblock type ;1〜10ビット)
MTPは『MBAの直後』という条件で出現するため、この条件でVLC表の照合を行い、あとはパターンレベルの誤り訂正に委ねる。
【0259】
(e)条件付きで現れる可変長符号(VLC)
1)MVD(motion vector data;1〜11ビット)
MVDは以下の条件▲1▼,▲2▼で出現するため、この条件でVLC表の照合を行い、あとはパターンレベルの誤り訂正に委ねる。
【0260】
▲1▼MTP=2,3,6,8,9,10のとき,MTPの直後
▲2▼MVDはx成分,y成分の順番で2個のVLCが連続して現れる
2)CBP(coded block pattern ;3〜9ビット)
CBPは以下の条件で出現するため、この条件でVLC表の照合を行い、あとはパターンレベルの誤り訂正に委ねる。
【0261】
3)TCOEF(INTER)(transform coefficients;2〜17)BLKレイヤのINTERブロックに対するDCT係数のVLCは以下の条件▲1▼,▲2▼で出現する。この誤り訂正は信号レベルの誤り訂正に委ねる。
▲1▼MTPが4か7のとき(INTRAブロック),BLKレイヤ内で2番目の係数以降
▲2▼MTPが4,7以外のとき,BLKレイヤナイで次の符号がESCでない場合
【0262】
[B−3]パターンレベルの誤り訂正
階層的な符号化属性におけるフレーム間の連続性を用いる。
(1)過去のMBK復号属性の利用
すでに復号化した過去のMBKレイヤについては、属性メモリ39c内に、MBA,MTP,QSC,MVD,CBPの5つの属性データがフレーム単位の配列データとして記憶されている。これらの属性データはフレーム間でかなりの連続性を有しているので、シーンチェンジや強制イントラフレーム以外では、それほど激しく変化することはないという性質を持つ。特に、人物領域など対象領域の存続に関して時間的連続性がある場合には、このことが良く成り立つ(図54,図55参照)。
【0263】
ブロック画素の単位で信号レベルのエラーが検出されたときに、そのエラーの原因は、DCT係数に対するVLCの伝送エラーでない場合には、MBK属性のエラーである可能性が高くなる。このとき、MTP,QSC,CBPを1フレーム前の属性のMBK単位の動き補償位置に隣接したk個のMBKからなる領域の範囲内で比較して著しく異なる場合には、その属性に過去の属性値を当てはめることで誤り訂正を行う。この場合における比較の評価関数については、以下に説明する通りである。
【0264】
(a)MBAの誤り検出と訂正
まず、MBAは対象領域の左側の輪郭部では時間的連続性が出るが、対象領域内では変化が多くなることが予想される。しかし、逆に、前述したようなFIXED/NOT_FIXEDのパターンについては、領域の動きからほぼ予測がつくようになる。そこで、図56のフローチャートおよび図57,図58に示すように、以下においては、領域の平均動きベクトルを利用して領域をシフトさせることにより、MBAパターンに一意的に対応するNOT_FIXED(以後、NFXと称する)パターンの予測計算を行い、GOB単位で現在の復号結果によるNFXパターンと予測結果に基づくNFXパターンとの間の類似度SNFX を次式(12),(13)にしたがって計算する。
【0265】
【数4】
【0266】
ここで、
L ;現在復号中のMBA値aのMBKアドレス(既に復号が完了した1つ前のMBA値のMBKアドレスL0にaを加えた値)
Ls; NFXパターン比較の開始位置
s(A,B) ; A=B のとき「1」,それ以外は「0」
NFXM(k) ;GOBの1番目のMBKのMBA値が「1」以上ならば「1」, 「0」なら「0」
NFXM_(k) ;1フレーム前の NFXパターンから予測した NFXパターン
次に、上述の計算結果について信頼度RNFX を式(14),(15)にしたがって計算する。
【0267】
【数5】
【0268】
上述の結果に基づいて、例えば次のような4つの条件によりMBAの検出と誤り訂正を行う。
1)RNFX0 < 0.5
この場合には、NFX予測の信頼度が低いと判断して保留する。すなわち、とりあえずは現状のNFXパターンを正しいと判定し、次の属性の判定に進む。
2)RNFX0 ≧ 0.5 且つ SNFX < TNFX1
現在のNFXパターンは復号誤りであると判定する。予測パターンからNFX値をコピーしてMBAパターンに変換する。(TNFX1は、例えば0.3程度の値とする)
【0269】
3)RNFX0 ≧ 0.5 且つ TNFX1 ≦ SNFX < TNFX2
現在のMBA値が復号誤りであることは判定できないため保留する。すなわち、とりあえずNFX値を正しいと判定し、次の属性の判定に進む。(TNFX2は、例えば0.7程度の値とする)
4)RNFX0 ≧ 0.5 且つ TNFX2 ≦ SNFX
現在のNFX値は正しい復号結果であると判定する。
【0270】
(b)MTPの誤り検出と訂正
10 frame/sec では、フレーム間の動きベクトルはビデオレートにおける3フレームベクトルなので、最大の大きさはプラス45画素程度もある。これは最大MBK3個の変位に相当する。そこで、1フレーム前のMTPパターンに対して対象領域の動きベクトルをMBK単位に換算した動き量(mx,my)で動き補償し、そのMBK位置を基準として既に復号したMBKで構成される比較領域を図59,図60のように設定し、動き補償によって対応する領域と各MTP値を比較する。ここで、次式(16)に基づいて類似度SMTP を計算し、さらに、それまでのMTP予測の信頼度を評価するために式(17),(18)を用いて信頼度評価値RMTP0を計算する。
【0271】
【数6】
【0272】
ここで、
smtp(A,B);2つのMTPの間の類似度を計算する関数で、MTPの含む6種類の各情報の一致に対して、以下のスコア値を設定して合計する
INTRA 属性の一致 → 3点
MQUANT属性の一致 → 1点
M V D 属性の一致 → 2点
C B P 属性の一致 → 2点
TCOEFF属性の一致 → 1点
F I L 属性の一致 → 1点
【0273】
LMTP ;スコア設定の合計値(ここでは「10」)
K ;比較領域に含まれるMBKの個数,1番目は現在復号中のMBK
K0 ;MTP予測の信頼度の計算領域に含まれるMBKの個数でK以上の値
MTP(i);GOBの1番目のMBKのMTP値,FIXEDでは0
MTP _(i) ;1フレーム前のMTPパターンから予測したMTPパターン,通常は動き補償による比較領域のMTPパターンをそのまま予測パターンとする
【0274】
上述の設定により、例えばMTP=1とMTP=2との間の類似度は、MVDとFIL以外ではすべて一致しているので、
3+1+0+2+1+0=7(点)
となる。したがって、その場合には、
smtp(1,2)=smtp(2,1)=7
となる。同様にして、他の組み合わせについても計算することができる。
【0275】
次に、上述の結果に基づいて、例えば次のような4つの条件によりMTPの検出と誤り訂正を行う。
1)RMTP0 < 0.5
MTP予測の信頼度が低いと判断して保留する。すなわち、とりあえずは現状のMTP値を正しいと判定し、次の属性の判定に進む。
【0276】
2)RMTP0 ≧ 0.5 且つ SMTP < TMTP1
▲1▼現在のMTPパターンMTP(L)は復号誤りであると判定する。予測パターンからMTP値をコピーする。(TNFX1は、例えば0.3程度の値とする)
▲2▼これに対して、類似度が8以上(相違度が2以下)のMTPをすべて参照し、該当するVLCを参照する。
▲3▼参照したいVLCとビットストリーム列をファジイマッチング処理により比較して最も照合度の高いVLCを選択する。
▲4▼その照合度がある基準(0.8以上)を満たせば、そのVLCとMTPを採用する。満たさない場合には最初の推定値のMTPを採用する。
【0277】
3)RMTP0 ≧ 0.5 且つ TMTP1 ≦ SMTP < TMTP2
現在のMTP値が復号誤りであるとは判定できないので保留する。すなわち、とりあえず現状のMTP値を正しいと判定して次の属性の判定に進む。(TMBA2は、例えば0.7程度の値とする)
4)RMTP0 ≧ 0.5 且つ TMTP2 ≦ SMTP
現在のMTP値は正しい復号結果であると判定する。
【0278】
(c)QSCの誤り検出と訂正
QSCは32kbps以下の伝送レートではすべて31(量子化ステップ62)に固定し、対象領域優先モードにおいて領域分析から決定される主領域のみ16(量子化ステップ32)とする。したがって、人物モードではQSC情報は伝送しない。これにより、GOBレイヤのQSC情報とMBK単位の量子化スケール変更情報が不要となるため、QSCの誤りは生じないようになる。
【0279】
(d)MVDの誤り検出と訂正
MVDはフレーム内において隣接するMBK間の差分動きベクトルで表現されているので、このままのデータ形式では誤りを判定することは困難である。そこで、MVDデータを本来の動きベクトルMVの形に戻してから評価する手法を取る。なお、MVD属性データについては、他のMBK属性の値に比べて時間的にも空間的にも連続な統計的性質を持つ信号値とみなせるので、過去のフレームからの線形予測と周囲MBKからの線形補間が可能となる。そこで、まず、領域情報がない場合について、動きベクトルMVを次の式(19)にしたがって計算する。
【0280】
【数7】
【0281】
上式において、
vx(L,M);Mフレーム時刻におけるL番目のMBKに関する水平方向の動きベクトル
vy(L,M);Mフレーム時刻におけるL番目のMBKに関する垂直方向の動きベクトル
A ;xまたはyを表す添字
vA _(L,M) ;Mフレーム時刻におけるL番目のMBKに関する動きベクトルの推定値
【0282】
a(i) ;フレーム内の線形補間係数
b(m) ;フレーム間の線形予測係数
u ;フレーム内補間とフレーム間予測の比率(0≦u≦1)
K ;復号中のMBKを含む周囲のMBK領域のMBK個数
p ;線形予測を行うための過去のフレーム数
そして、周囲MBKの設定の仕方は、前述のMTPの比較領域の場合に準ずる。このようにして得た推定ベクトルの値について次式(20)の誤差評価の式を用いて評価する。
【0283】
【数8】
【0284】
式(20)により得られた誤差評価の値Eにより次のように判定する。
1)E≧20
▲1▼復号したMVDは誤りであると判定しvAをvA_で置き換える。
▲2▼これに相当するMVDを計算し、それを中心値として±5の範囲で該当するVLCを参照する。
▲3▼参照したVLCとビットストリーム列をファジイマッチング処理により比較し、最も照合度の高いVLCを選択する。
▲4▼その照合度がある基準(0.8以上)を満たせば、そのVLCとMVDを採用する。満たさない場合は、最初の中心値のMVDを採用する。
【0285】
2)20>E≧10
保留する。とりあえず復号したMVDを保持する。
3)10>E≧0
復号したMVDは正しいと判定する。
次に、領域情報がある場合には、動きベクトルの計算に当たっては、式(19)に代えて、次に示す式(21)に基づいて行い、評価については上述と同様にして行う。
【0286】
【数9】
ここで、
vRA(L,M-m) ;mフレーム前の時刻における領域の平均動きベクトル
【0287】
(e)CBPの誤り検出と訂正
1)領域情報がない場合
動き補償予測符号化処理においてCBPデータはテクスチャや色の時間的変化の度合いを示す数値と考えることができる。しかし、このCBPデータは、MVDのような線形補間計算が行えるような代数構造とはなっていないので、図61〜64に示すように、CBP値をいったんYUVベクトルに変換してからMVDと同様の評価計算を実施する。そこで、まずYUVベクトルへの変換に際しては、次式(22)にしたがって計算する。
【0288】
【数10】
【0289】
ここで、
c(L,M) ;Mフレーム時刻におけるL番目のMBKに関するYUVベクトル
c _(L,M) ;Mフレーム時刻におけるL番目のMBKに関するYUVベクトルの推定値
ac(i) ;フレーム内の線形補間係数
bc(m) ;フレーム間の線形予測係数
uc;フレーム内補間とフレーム間予測の比率(0≦uc≦1)
Kc;復号中のMBKを含む周囲のMBK領域のMBK個数
pc;線形予測を行うための過去のフレーム数
【0290】
LN(i,m) ;Mフレーム時刻における比較領域中のi番目のMBKがGOB中のアドレスで何番目であるかを示す番号対応付けの関数,比較領域を設定すれば一意的に決めることができる
そして、周囲MBKの設定の仕方は、前述のMTPの比較領域の場合に準ずる。このようにして得た推定ベクトルの値について次式(23)の誤差評価の式を用いて評価する。
【0291】
【数11】
d1(A,B) ;ベクトルAとベクトルBとの間の絶対値距離
【0292】
式(23)により得られた誤差評価の値Eにより次のように判定する。なお、YUVベクトルの定義から、
12≧Ec≧0
であるので、以下のような判定を行う。
【0293】
ア)Ec≧7
▲1▼復号したCBPは誤りであると判定し、c_をcとして置き換える。
▲2▼その置き換えたcを中心値として±1の範囲内でCBPを計算(1つのcに対して複数のCBPが存在し得る)し、該当するVLCを参照する。
▲3▼参照したVLCとビットストリーム列をファジイマッチング処理により比較し、最も照合度の高いVLCを選択する。
▲4▼その照合度がある基準(0.8以上)を満たせば、そのVLCとCBPを採用する。満たさない場合には最初の中心値のCBPを採用する。
【0294】
イ)7>Ec≧4
保留する。とりあえず、復号したCBPを保持する。
ウ)4>Ec≧0
復号したCBPは正しいと判定する。
【0295】
2)領域情報がある場合
次に、領域情報がある場合には、YUVベクトルの計算に当たっては、式(22)に代えて、次に示す式(24)に基づいて行い、評価については上述と同様にして行う。
【0296】
【数12】
cR(L,M-m) ;mフレーム前の時刻における動き補償領域のYUVベクトル
ただし、ucの値は、領域情報がない場合の値よりも若干小さい値に設定することが望ましい。また、pcは逆に少し大きく設定する。
【0297】
(f)保留事項の処理
さて、上述のようにして5つの属性の検出と誤りの評価を行った結果、例えば、保留とする属性が3個以上発生した場合には、その保留が現れた属性に限り、誤り訂正した属性値に入れ替え、VLCを参照した上で、再度評価する。
【0298】
[B−4]信号レベルの誤り訂正
これまで説明したパターンレベルの誤り訂正については、MBK単位の符号化属性に依存している誤り訂正であって、画像信号の値そのものを評価する手段ではない。そして、画像信号はBLKレイヤのビットストリームデータが符号レベルで復号化され、量子化DCT係数ブロックとして復元された時点で初めて可能となるものである。そこで、このように復元された画像信号のレベルにおける誤り訂正について次に説明する。
【0299】
(1)ブロック画素の性質に基づく誤り訂正
(a)誤りの検出
通常、BLKレイヤにおける復号誤りは、文法的制約とVLCの木符号としての性質によって、量子化DCT係数ブロックのDC成分の復号誤りに通じる。このことにより、仮にMBKが文法的に復号化が完了したとしてもその色(UVブロックのDC成分が支配的)やテクスチャは周囲とは非常に異なるものになる可能性が高くなる(図66参照)。
【0300】
一方、正常な画像信号として図65(b)に示すように、画素ブロックの格子(同図(a)も参照)に乗ったタイル状の画素においてのみその周囲ブロックと異なる色が偶然に発生するという確率は非常に少ないと考えられる。この考え方は、対象とするMBKのMTPがINTERを示すときには、尚更信頼度が高くなることが言える。なぜなら、画素値の変化が大きいMBKである場合には通常INTRAと判断される可能性が高いからである。そこで、ここでは、色信号に着目して以下のようにして誤りを検出する。
【0301】
1)最もストレートな方法として、逆量子化、逆DCTを行って画像信号ブロックに復元した後に色を評価する。この評価では、周囲MBKからの線形補間と過去フレームのMBKから動き補償線形予測によって推測したMBKと、現時点でビットストリームから復元したMBKとの間の比較に基づく。具体的には、次式(25)〜(29)にしたがって、誤差評価計算を行う。
【0302】
【数13】
【0303】
ただし、各記号は以下の通りである。
d1(A,B) ;ベクトルAとベクトルBとの間の絶対値距離
Cb;ビットストリームに基づく復元MBKの色ベクトル
Ce;推定したMBKの色ベクトル
Y$;Yブロックの平均画素値
U$;Uブロックの平均画素値
V$;Vブロックの平均画素値
【0304】
YBLK$(n,k);MBK中のn番目のYブロックのk番目の画素値( n=1〜4, k=1〜64)
UBLK$(k);MBK中のUブロックのk番目の画素値
VBLK$(k);MBK中のVブロックのk番目の画素値
【0305】
以上の計算の結果得られる誤差評価値Ecに対して、
765(=255×3)≧Ec≧0
という条件があるので、この範囲内で、例えば、Ec>400である場合に誤りであると判定する。なお、MBKの予測推定計算については、次の2)と同様にして行う。
【0306】
2)量子化DC係数ブロックのDC成分のみを用いてYUVベクトルを構成し、周囲MBKからの線形予測と過去のフレームからの動き補償予測によって推定したYUVベクトルとの誤差を次式(30)にしたがって計算して評価する。
【0307】
【数14】
【0308】
ただし、
c(L,M) ;Mフレーム時刻におけるL番目のMBKに関するYUVベクトル c(L,M)=(Y,U,V) であり、Yは4つのBLKのDC成分の平均、U,VはそれぞれUBLK,VBLKのDC成分
cR(L,M-m) ;領域情報がある場合はmフレーム前の時刻における動き補償領域のYUVベクトルであり、領域情報がない場合はc(L,M)と同等
c _(L,M) ;Mフレーム時刻におけるL番目のMBKに関するYUVベクトルの推定値
ac(i) ;フレーム内の線形補間係数
bc(m) ;フレーム間の線形予測係数
uc;フレーム内補間とフレーム間予測の比率(0≦uc≦1)
Kc;復号中のMBKを含む周囲のMBK領域のMBK個数
pc;線形予測を行うための過去のフレーム数
【0309】
そして、周囲MBKの設定の仕方は、次項のMBK属性の比較領域の取り方に準ずる。このようにして得た推定ベクトルの値について次式(31)の誤差評価の式を用いて評価する。なお、誤りの判定条件は、1)の場合と同じである。
【0310】
【数15】
【0311】
(b)誤りの訂正
復号したBLKが誤りであると判定した場合には、推定値で置き換えるようにする。一方、次のBLKの復号を行うには、符号レベルでビットストリーム復号再開位置を決める必要がある。このためには符号レベルの誤り訂正におけるEOB検出プロセスを起動する。このとき、もし、再生した(訂正も含む)MBKの数がGOB中で22以上であるならば(GOBをなす3列のブロックのうちの2列分の個数が22個である)、残りのMBKについてはすべて領域情報を利用した動き補償予測に置き換えるようになっている。
【0312】
(2)周期的強制イントラによる誤り伝播の防止
前項で示したような誤り訂正を行った後でも、そのままフレーム加算による復号化処理を継続すると、誤差伝播の累積により正常な画像再生が困難になる。そこで、次のような誤差伝播防止策を考慮している。
【0313】
(a)領域情報をもとにして、周期的に強制イントラMBKを挿入することにより、重要部分の画像破綻を防止することができる。特に、図67にも示すように、顔部分では口と耳に強制イントラブロックを集中的に割り当てて、周期的に巡回することによりデータ量の増大を抑制しながら行う。
【0314】
(b)復号化器2側で誤り訂正を行った後に、領域ベースの強制イントラを今後あるい時間範囲で分散して送るように符号化器1側に要求する。この場合、フレーム単位のARQ(要求信号)に比べて情報量の著しい増加は避けられるため、ピクチャーフリーズを行う必要はない。
【0315】
[B−5]モード情報を用いた誤り訂正の戦略制御
符号化器1において設定するモード情報は、前述したように、使用環境,被写体,符号化制御の3つのカテゴリーに渡っているが、そのモード情報を用いることにより、復号化器2側において誤り訂正のルートを特定することができるようになる。
【0316】
(1)使用環境
(a)自動車内固定
背景メモリ66と人物モードの設定により、認識,パターン,信号のすべてのレベルの誤り訂正機能を起動することができる。
(b)自動車内可動
人物モードと風景モードとの両方の可能性があるが、人物モードの場合には、上述の自動車内固定の場合と同様である。ただし、背景メモリ66のデータは常に更新記憶する必要がある。
【0317】
(c)屋内固定
背景メモリ66を使用可能である。被写体が人物でない場合も目的によってはテンプレートまたは3Dモデルを特別に設定できるため、人物モードと同様の領域情報を利用した誤り訂正を起動できる。
(d)屋内可動
人物モードのみ誤り訂正機能の起動が可能となる。
【0318】
(2)被写体
上記した使用環境で説明したように、人物モードと風景モードとに分けられ、風景モードは形状や色彩が特定困難であるため、背景メモリ66に頼る以外に誤り訂正機能の起動は難しい。人物モードでは、テンプレート,3Dモデル,人物画像テクスチャ,目鼻口耳・髪・肌色などの特徴量を用いることができるため、全レベルの訂正機能を起動させることができる。
【0319】
(3)符号化制御モード
通常の実時間動画像再生要求とは異なるモード、例えば静止画モードやビデオメールモードなどでは実時間で誤り訂正をする必要がないため、ARQを起動すれば十分である。
【0320】
(4)通信路における誤り発生状態の判定
画像がその他の誤り訂正手段によっても訂正できずに、復号が停止してしまった場合に、強制的に復号化器2側から符号化器1側に次のいずれかの要求信号を送信する。なお、このような要求信号の送信は、通信路の状況におうじて、自動的にレベルの選択設定をすることもできるし、あるいは、ユーザーの好みによって設定することも可能で、そのレベル設定はヒューマンインターフェイス34を介して行うようになっている。
【0321】
(a)強制イントラピクチャーから始まる動画伝送の再送要求
これは、既存方式で用いられている再送(ARQ)と同じである。しかし、超低レート伝送では、遅延時間の著しい増大と頻繁なピクチャーフリーズにつながるため、特に32kbps以下の実時間伝送ではあまり用いない。一方、ビデオメールモードのように非実時間伝送の場合はこの要求を適用する。
【0322】
(b)強制イントラピクチャーから始まる動画伝送の新規再開
復号化処理が停止した時点で残りのMBKについて過去のフレームから予測画像を生成し、ピクチャーフリーズする。正常に強制イントラピクチャーが送られてくる(PSCヘッダで開始位置を確認)までは、入力バッファのデータを廃棄し続ける。
(c)強制イントラピクチャーのみによる準動画の送出要求。
(d)モデルベース符号化における動きパラメータの送出要求。
【0323】
[B−6]認識レベルの誤り訂正
(1)対象領域の特定
符号化器1側にて設定された対象領域検出結果およびモード制御情報については、ユーザーデータエリア(PSPARE,GSPARE)に記述した状態で画像信号として伝送されるので、これを復号化器2側で復号化処理を行って検出する。そして、これらの情報に基づいてテンプレート(2D情報)の選択と変形を行い、符号化器1側で抽出した領域情報を再現する(図68参照)。
【0324】
(a)基本テンプレートの選択
符号化器1と復号化器2との間では、あらかじめ同一の2値テンプレートのセットが設けられているので、テンプレートを指定する識別番号を検出することにより双方で共通のテンプレートを用いることができる。
【0325】
(b)基本テンプレートの変形
1)中心あわせ
テンプレート中心の水平および垂直のシフト量を画素単位で表現した2Dベクトル(mx,my)で中心合わせを行う。
2)スケーリング
上記のようにして得られた中心を原点として基本テンプレートを比率rで拡大縮小する。
3)修正
各々の基本テンプレートに固有の形状パラメータにより幅や高さ、姿勢角などの修正を部分的に加える。
【0326】
(c)部位の特定
モード情報とテンプレート選択情報により対象物のカテゴリーがわかっている場合には、さらにテンプレート中のどの部分が対象物のどういう部分に対応するかを知ることができる。例えば、人物モードで人物上半身のテンプレートを選択した場合、符号化器1の説明で用いた図16に示しているように、人物頭部,顔,口,目,鼻などに相当する細かい画像領域を特定することができる。
【0327】
(2)誤り判定の起動
本実施例においては、誤りの発生原因を符号レベルのビット誤りに特定して画像の修正プロセスを記述している。したがって、誤り検出そのものは認識レベルでは行わず、信号レベルか符号レベル,またはパターンレベルで行う。認識レベルの誤り訂正は、特にそれらで誤りを評価する場合の、領域情報とそれに基づく対象物体の画像に反映される種々の性質を提供することにある。したがって、認識レベルにおける誤り訂正プロセスの起動は、他のレベルのモジュールによって行われることになる。
【0328】
(3)領域情報を用いた誤り訂正
(a)領域情報の利用による2D動き補償
現在復号中のMBKがどの領域に含まれるかがわかれば、パターンレベルの誤り訂正の説明で述べたように、既に復号が完了した領域内のMBKの動きベクトルを用いて動き補償を行うことができる。例えば、復号化処理中のMBKが頭部の顔領域に含まれると判定されれば、頭部の平均動きベクトルを用いて動き補償予測MBKを作ることができる。
【0329】
(b)部位の情報を利用した修正
領域がわかれば、動きのみならず色や輝度,テクスチャの誤りを修正することもできる。例えば、前フレームまでに顔の領域情報から肌色の解析をしておけば、信号レベルやパターンレベルの項で述べたような線形推定値と誤差評価により、誤りの判定と修正を行うことができるようになる。
【0330】
(c)領域情報の表現
領域情報の表現は、符号化器1側の説明で述べたと同様のテンプレートの表現方法に準ずる。例えば、人物モードでは被写体は全身像を基準として上半身,頭部,顔という4階層でテンプレートを作成する。また、顔は、口,目,鼻,頬,額を主要部位とし、正面顔における相対位置を設定する。上述の肌色解析は口と目を除く部分をもとにして平均色を計算することにより算出する。
【0331】
(d)人物領域中の相対位置の計算
変形を施す前の基本テンプレートは、前述したように、図25のように記述されている。これにより、基本テンプレート中の二次元座標としてすべての部位の位置が表現できる。
【0332】
(4)背景メモリによる誤り訂正
領域情報が明確になれば、背景領域を特定することができる。そこで、背景領域の画像情報を復号化器2の背景メモリ66に記憶させる。これにより、背景領域の復号化処理中にビット誤りが発生したときも上記と同様の誤り訂正を行うことができるようになる。
【0333】
[B−7]人物メモリと3Dモデルベース手法
(1)人物画像の登録
最初のイントラピクチャーを人物名によってラベリングし、人物画像データとして人物メモリ67に記憶しておくことができる。こおこで、人物識別名は、ヒューマンインターフェイス34を利用することにより、符号化時に認証番号と同じ意味合いでラベルとして付与して登録する。また、イントラピクチャー中の領域情報はテンプレート番号と変形情報で記憶させる。さらに、同時にその人物とコンタクト(通話)した日時も同時に記憶させたり、あるいはメモリ容量が許す限りの範囲内において、音声情報についても同一ラベルで記憶させることにより、さらに機能を向上させることができる。
【0334】
(2)人物画像の呼出し
人物メモリ67に登録することにより記憶されている人物画像情報は、ユーザーによって人物識別名に基づいて名刺画像として適宜のタイミングで呼び出すことができる。これにより、一度通話を行った相手の顔を思い出すことができるようになり、例えば、再度通話を行う際に相手の認証手段として用いることもできる。また、伝送誤りが激しくなったときのモデルベース復号モードのテクスチャ画像としても利用することができる。
【0335】
(3)モデルベース復号モード
人物の3Dモデルに上記の人物画像をテクスチャマッピングし、3D動き情報を付与することにより、伝送誤りが激しくなった場合の補助的な画像再生手段として人物象を生成する。この3D動き情報は復号化器2が適当に人物の動きらしく見えるように与えるようにしても良い。また、符号化器1側で抽出した3D動き情報を用いて制御することもできる。
【0336】
(4)3Dモデルに基づく空間的限定
符号化器1側から3D動き情報が与えられるならば、前述の2Dテンプレート情報だけでは表現しきれなかった正面像以外の場合の領域予測が行える。すなわち、図13にも示したように、3Dモデルの透視投影により、画像面上で2D領域を特定することができる。
【0337】
[B−8]誤り訂正戦略
以上の各レベルにおける誤り判定結果に基づいて、最終的に行使される誤り訂正機能は次のようにまとめることができる。各レベル数は、再生動画像の原画像に対する忠実さの度合いを予想した値になっている。
【0338】
〈レベル0〉 3Dモデルベース再生
〈レベル1〉 ピクチャーフリーズ
〈レベル2〉 モデルベース推定
〈レベル3〉 領域情報に基づくGOB単位の線形推定・動き補償
〈レベル4〉 領域情報に基づくMBK単位の線形推定・動き補償
〈レベル5〉 符号レベルの訂正
【0339】
[B−9]フローチャートにしたがった復号動作の説明
さて、以上のように、復号化処理に当たって実施される誤り訂正の機能について、実際の復号化処理過程においては、各機能を図8ないし図11に示すプログラムのフローチャートにしたがって実施するようになる。以下、全体の流れの概略について説明する。
【0340】
すなわち、まず、FIFOバッファ42に蓄積されたビットストリームデータについて通信路復号化部35のファジイマッチング部44にてファジイマッチング処理を行ってPSCを検索し(ステップB1)、その検索位置に基づいてパーザ43により所要ビット数,モード情報,領域情報の復号化処理を行う(ステップB2〜B4)。そして、これらのデータに基づいて再びグローバルチェックを行って1フレーム内におけるGBSCを定位するようになる(ステップB5)。この後、図11に示す誤りの総合判定のルーチンによって符号レベルの誤りに対する判定動作を行う(ステップB6)。
【0341】
次に、モード制御部33により、得られたモード情報に基づいて使用環境,対象物(被写体)および復号化モードを設定する(ステップB7〜B9)。そして、人物モードである場合には、基本テンプレートの選択,修正・変形・スケーリングの処理を行って領域パターンの再生を行い(ステップB10〜B13)、以下、ステップB14〜B17を経てパターンレベルの誤り訂正機能を実施する。
【0342】
まず、属性推定部61にて、MBA,MTPの誤り検出と訂正を行い(ステップB18,B19)、人物モードが設定されている場合には誤り判定・補正部50によりQSCの抑制を行った後、MVDの誤り検出と訂正を行い(ステップB20〜B22)、続いて、属性推定部61によりCBPの誤り検出と訂正を行う(ステップB23)。これらの結果から、誤り判定・補正部50により、図11に示すルーチンにしたがって誤りの総合判定を実施し(ステップB24)、続いて、上述の過程のいずれかにおいて属性の誤り検出をした場合には、再びそのステップに戻って誤り検出を実行し(ステップB25〜B28)、これらが終了すると、復号完了した属性配列のデータを属性メモリであるパターン属性部39cに記憶するようになる。
【0343】
この後、ステップB30〜B33を経ると、上記した属性配列のデータに基づいて復号化処理部36にて、H.261規格ベースに従ったBLK復号化処理を行う(ステップB34)。次に、人物モードが設定されている場合には、パターン・信号レベルの誤り訂正部37にて、部位情報,特徴量に基づくテクスチャと色の推定,周囲と過去のMBKに基づく色ベクトルの線形推定,色ベクトルの評価を行う(ステップB36〜B38)。
【0344】
ここで、誤りが発生していて且つLBLKが22以上である場合には、GOB中の残るMBKについて動き補償推定を行って、以後そのGOBについては終了し(ステップB40,B41)、誤りが発生していてもLBLKが22以下であるか誤りが発生していない場合には、ESCの検出と訂正およびEOBの検出と訂正を行ってから図11に示す誤りの総合判定ルーチンを実行し(ステップB42〜B44)、以下これを繰り返すことにより復号化処理を継続していくようになっている。
【0345】
このような本実施例によれば、復号化器2側においては、伝送誤り率の高いデジタル通信路を介して動画像の画像信号を受信して復号化処理を行う場合に、既存の動画像圧縮標準H.261に超低レート化の改良を施した符号化ビットストリームを受信するようにし、これを復号化処理の段階で、プロトコルをベースとして符号,文法,パターン,信号,認識の各レベルにおいて誤り訂正機能を有機的に実行し、さらに、所要ビット量を考慮した符号化ビットストリームのグローバルチェックによって、パターン,信号,文法の誤り検出を駆動し、モード情報と2Dテンプレートに基づく領域情報(人物等)を用いて認識レベルの評価に基づく誤り訂正を行うことができるものである。
【0346】
また、本実施例によれば、符号化器1側においては、シンタックスの変更と符号語の置換,過去の符号化属性に基づく現フレームの符号化属性の予測と属性判定の適応制御,動きとモデルによる対象物領域抽出と領域別量子化制御,使用モードや伝送レートおよび動き発生量に応じた変換係数の有意個数の制御などを総合的に用いることにより、超低レート画像伝送を実現できるようになるものである。そして、本実施例の符号化器1では、現行の画像圧縮標準規格(H.261)に僅かの変更を実施するのみで実現できるレベルのものであるから、その実施に当たってはプロトコル変換器を付設する簡単な構成で実現できる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す復号化器のブロック構成図
【図2】符号化器のブロック構成図
【図3】符号化処理過程の概念図
【図4】復号化処理過程の概念図
【図5】符号化処理プログラムのフローチャート(その1)
【図6】符号化処理プログラムのフローチャート(その2)
【図7】符号化処理プログラムのフローチャート(その3)
【図8】復号化処理プログラムのフローチャート(その1)
【図9】復号化処理プログラムのフローチャート(その2)
【図10】復号化処理プログラムのフローチャート(その3)
【図11】誤りの総合判定ルーチンのフローチャート
【図12】使用環境としてカメラを車内に固定した場合の説明図
【図13】車内の人物の三次元的な位置関係の説明図
【図14】人物を含む自動車内,屋内および屋外のカメラ画像の例
【図15】距離尺度による領域の設定の作用説明図
【図16】人物正面図のテンプレートと特徴領域の説明図
【図17】モデルベースモードにおける伝送遅延の補償を行う場合の説明図
【図18】H.261端末との間の通信を行うための構成の説明図
【図19】使用環境と被写体に関するモード制御の状態遷移図
【図20】H.261シンタックスに基づくマクロブロック属性の配列の例(その1)
【図21】H.261シンタックスに基づくマクロブロック属性の配列の例(その2)
【図22】H.261シンタックスに基づくマクロブロック属性の配列の例(その3)
【図23】動領域の抽出とテンプレート決定のルーチンのフローチャート
【図24】動領域の抽出とテンプレート決定の作用説明図
【図25】基本テンプレートとその変形の作用説明図
【図26】人物領域の抽出に基づく超低レート化の原理説明図
【図27】(a)CIF形式におけるGOB,MBK格子と(b)背景メモリ画像の例
【図28】背景メモリの使用と更新の作用説明図
【図29】符号化制御全体の概念を説明するためのチャート
【図30】H.261規格のビットストリームシンタックス
【図31】GOB番号とヘッダ(GBSC)の付加部の説明図
【図32】GOBヘッダを削減した場合と削減しない場合との比較説明図
【図33】H.261規格におけるMTPの可変長符号(VLC)の対照表
【図34】人物画像に対する各MTP値の発生確率と符号長との対応表
【図35】INTER/INTRA判定特性図
【図36】動きブロック判定特性図
【図37】MBA予測ルーチンのフローチャート
【図38】MBAとNFXとの対応関係を示す説明図
【図39】前フレームからのMBAパターンの予測の説明図
【図40】MTP情報の削減をするためのルーチンのフローチャート
【図41】領域別平均動きベクトルによるMTP符号量削減の説明図
【図42】人物モードにおける領域別量子化と量子化テンプレートの説明図
【図43】量子化テンプレートのモデルベース伝送の説明図
【図44】QSCの設定のルーチンのフローチャート
【図45】MVD情報の削減をするためのルーチンのフローチャート
【図46】領域別平均動きベクトルによるMVD符号量削減の説明図
【図47】CBPの予測と評価のルーチンのフローチャート
【図48】CBPの領域別動き補償予測の説明図
【図49】MBK属性予測のインターリーブを行う場合の説明図
【図50】所要ビット数の伝送形態とグローバルチェックの説明図
【図51】PSCのファジイマッチング過程の説明図
【図52】シンタックスによる2進木の結合とビットストリームの生成の説明図
【図53】MBSTUFFを使用した場合にビット誤りで発生する誤解釈の例
【図54】階層的符号化属性におけるフレーム間の連続性の説明図(符号化器側)
【図55】階層的符号化属性におけるフレーム間の連続性の説明図(復号化器側)
【図56】MBAの誤り検出と訂正のルーチンのフローチャート
【図57】MBAとNFXとの対応関係を示す説明図
【図58】前フレームからのMBAパターンの予測の説明図
【図59】MTPの類似計算に基づく復号結果の評価の説明図
【図60】評価計算におけるスキャン順序の例を示す説明図
【図61】CBPの誤り検出と訂正のルーチンのフローチャート
【図62】CBPの定義を示す説明図
【図63】CBP値からYUVベクトルへの変換過程を示す説明図
【図64】YUVベクトルの予測の説明図
【図65】(a)CIF形式におけるGOB,MBK格子と(b)ブロック状をなすエラーパターンの例を示す説明図
【図66】画像信号レベルにおけるビット誤りに起因したビットストリームの解釈誤りと信号エラーへの影響を示す説明図
【図67】領域別周期分散型強制INTRAの例を示す説明図
【図68】領域再生あるいは疑似領域設定のルーチンのフローチャート
【符号の説明】
1は符号化器(符号化装置)、2は復号化器(復号化装置)、3はカメラ、5はA/D変換器、7は直交変換部、8は減算器、9は量子化部、10は通信路符号化部、11はFIFOバッファ、12は通信路、13は逆量子化部、14は逆変換部、15は加算器、16は予測メモリ、17はループフィルタ、20は動き検出部、21は符号化制御部、22は属性メモリ、23は属性予測部、24は符号化処理部、25は領域抽出・認識処理部、26は対象領域抽出部、27はテンプレートデータベース、28は2Dテンプレートマッチング部、29はモデルベース予測部、30は三次元形状データベース、31は人物メモリ(人物情報記憶手段)、32は背景メモリ(背景情報記憶手段)、33はモード制御部、34はヒューマンインターフェイス、35は通信路復号化部、36は復号化処理部、37はパターン・信号レベルの誤り訂正部、38は認識レベルの処理部、39はメモリ(記憶手段)、39aはモード情報部、39bは領域情報部、39cはパターン属性部、39dは2D動ベクトル部、39eは個人識別情報部、41はD/A変換器、42はFIFOバッファ、43はパーザ、44はファジイマッチング部、45は記憶部、46は対照表、47は誤り判定部、48は逆量子化部、49は逆変換部、50は誤り判定・補正部、52は加算器、53は予測メモリ、54は動き補償部、55はループフィルタ、57はフレームメモリ、58は画素値推定部、59は画像推定部、60は動ベクトル推定部、61は属性推定部、62は復号化制御部、63はモデルベース予測部、64は三次元形状データベース、64aは3D形状データ、65は人物画像データベース、66は背景メモリ(背景情報記憶手段)、67は人物メモリ(人物情報記憶手段)、68は領域再生部、69はテンプレートデータベース、69aは2Dテンプレートである。[0001]
BACKGROUND OF THE INVENTION
The present invention receives an image signal as an encoded bit stream compressed using a variable-length code, decodes the image signal into an image signal, and corrects an error in the image signal. About.
[0002]
[Prior art]
In recent years, the use of multimedia in information communication terminals has been rapidly progressing, and it is essential for future business development to create various added values based on digital data transmission for telephones. In particular, in PHS (personal handy phone system), transmission of not only conventional voice and text information but also natural still images as well as moving images has been studied in earnest, and the use of multimedia for phones is very close. It is expected to be natural in the future.
[0003]
[Problems to be solved by the invention]
However, when transmitting such an image signal, in the uncompressed state, how to convert a TV image having a signal amount corresponding to about 166 Mbps into PHS (32 kbps or 48 kbps among 384 kbps) or the transmission rate of an existing telephone line. There is a problem of whether to transmit at (about 10 kbps).
[0004]
Here, a moving image compression technique used for a conventional TV conference or video CD is required. However, even in this standard, for example, the current video conference standard ITU-T / H. 261 targets 64 kbps to 2 Mbps, and ISO / MPEG1 targets about 1.5 Mbps, and does not support ultra-low rate transmission of 64 kbps or less. It should be noted that H.264 recommended in November 1995. The H.263 standard targets 4.8 kbps to 64 kbps, but since the contents are undisclosed, the system cannot be recognized. In the standard, H.264 The connectivity with H.261 is not guaranteed.
[0005]
Furthermore, such moving image compression techniques are mainly intended for wired systems. For example, the level of data transmission errors (−2 to −3 of 10) occurring in wireless communication in mobile communication is used. In the wireless system, a method called demand refresh using a retransmission request by ARQ (automatic repeat request) is usually used. However, when such ARQ is used, it is inevitable that the picture freezes until the retransmission of the image information is completed on the receiving side. Accordingly, there is a problem that the picture is frozen in a place where the radio wave condition is bad, and the moving picture transmission is substantially impossible.
[0006]
On the other hand, for still image transmission, a method of dividing data into groups according to importance and rate control has been proposed, but it has not been put into practical use. In addition, an example of dealing with transmission errors by changing the data transmission order and error correction code at a transmission rate of about 384 kbps has been reported, but there has not yet been reported in ultra-low rate wireless transmission of 64 kbps or less.
[0007]
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an ultra-low rate transmission such as a PHS or a digital cellular phone by providing an error correction function strong against a transmission error as a function of a decoding device. Therefore, an object of the present invention is to provide an image signal decoding apparatus that can suppress the occurrence of a data retransmission mode and a picture freeze as much as possible when transmitting a moving image.
[0008]
[Means for Solving the Problems]
According to the first aspect, the NFX conversion means detects MBA data included in an image signal for one frame, and converts between FIX (fixed) and NFX (non-fixed; abbreviated NOT_FIXED) in units of blocks. Process. Based on the conversion result of the previous frame by the NFX conversion unit, the prediction unit predicts an NFX pattern uniquely corresponding to the MBA pattern by shifting the region using average motion vector information or the like.
[0009]
Next, the calculation means calculates the similarity between the predicted NFX pattern and the NFX pattern being decoded, calculates the reliability of the calculation of the similarity, and based on this result, calculates error correction means. Thus, the MBA being decoded is evaluated according to the conditions set according to both the similarity and the reliability, and if an error is detected, the correction process is performed to replace the MBA data based on the estimated NFX pattern. Or leave it to other corrective means. As a result, decoding errors can be corrected based on estimated data using past attribute data.
[0010]
According to the second aspect of the present invention, the comparison area setting means is a comparison area for the MTP of the block currently being decoded based on the pattern of the MTP data one frame before and the value of the motion vector detected by the MTP detection means. Will come to set. The computing means sets the similarity between the MTP data predicted by the MTP detecting means and the MTP data being decoded in, for example, the attribute included in the comparison region set for the block currently being decoded. By summing up the score values after weighting, the total score of the degree of coincidence of the attribute data is obtained and the reliability is calculated.
[0011]
Based on the calculation result, for example, the evaluation means determines that the MTP being decoded is correct when both the similarity and the reliability are high, and selects either the decoding result or the estimated value when either is low. By adopting it as a decoding result, it is possible to perform highly reliable MTP decoding processing while performing error correction.
[0012]
According to the third aspect of the present invention, the MV data estimating means estimates the motion vector being decoded from the MV data of the past frame or the surrounding blocks in which the MVD data is converted into the motion vector MV by the MV converting means. become. In this case, unless the scene is a scene change or an intra frame, the motion vector MV data estimated in this way is considerably reliable because the continuity from surrounding blocks and past frames is high.
[0013]
The error correction means calculates an error between the MV data based on the MVD data being decoded and the estimated MV data, determines whether the MVD data being decoded is correct according to the magnitude, and the error amount is If it is large, the MVD data being decoded is temporarily adopted, or it is replaced with MVD data based on the estimated MV data and adopted as a decoding result, so that a highly reliable MVD while performing error correction. Can be decrypted.
[0014]
According to the fourth aspect, since the CBP data is converted into a YUV vector that can be quantitatively compared by the YUV vector conversion unit, the comparison area setting unit converts the converted YUV vector data one frame before. Based on this, the comparison region is set by performing motion compensation on the portion corresponding to the comparison region based on the motion vector. The YUV vector estimation means estimates the YUV vector of the block being decoded based on the YUV vector of the past frame or the value of the YUV vector of the surrounding block within the set comparison region. In this case, the YUV vector data estimated in this manner is considerably reliable because the YUV vector has high continuity from surrounding blocks and past frames unless it is a scene change or an intra frame.
[0015]
Then, the error correction means calculates an error between the YUV vector data based on the CBP data being decoded and the estimated YUV vector data as an absolute value distance or the like, and determines whether the CBP data being decoded is correct according to the magnitude. By determining whether or not the CBP data being decoded is to be temporarily used or to be replaced with CBP data based on the estimated YUV vector data when the error amount is large, an error can be obtained. It is possible to perform highly reliable CBP data decoding processing while performing correction.
[0034]
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment in which the present invention is applied to a configuration assuming a car phone will be described below with reference to the drawings.
FIG. 2 shows a functional block configuration of an
[0035]
In the
[0036]
The
[0037]
The
[0038]
The
[0039]
The
[0040]
Next, a characteristic configuration added in the present embodiment will be described. That is, the region extraction /
[0041]
The model
[0042]
Further, a
[0043]
The person image information can be registered and stored in the
[0044]
Next, in the
[0045]
In the above-described communication
[0046]
The
[0047]
In the
[0048]
The output of the
[0049]
In the pattern / signal level
[0050]
The
[0051]
In the recognition
[0052]
The
[0053]
Next, the operation of this embodiment will be described with reference to FIGS. In the following description, [A] the operation content of the encoding process of the image signal in the
[0054]
[A] Encoder
[A-1] Basic operation
The basic operation of the
[0055]
First, in the first frame, a video source for supplying a scene including an object photographed by the
[0056]
In the second and subsequent frames, only the motion compensated prediction difference for the first frame is subjected to a two-dimensional orthogonal transform (here, DCT (discrete cosine transform) compliant with H.261) and then buffered by the
[0057]
Note that the encoded bit stream is converted into data having a four-layer structure of PICTURE / GOB / MBK / BLK (see FIG. 30) in accordance with a CIF (common intermediate format) standard, as will be described later. It is generated with an attribute header attached to each layer for a set of variable length codes representing a sequence of DCT significant coefficients in the BLK (block) layer. On the other hand, the motion compensated prediction frame is generated as an output of the frame addition loop of FIG. 2, and is compared with the original image to send new difference information to the encoding mechanism.
[0058]
Now, in the above-described encoding process, the
[0059]
That is, in this embodiment, H.264, which is an existing international standard for moving picture compression for TV conferences and TV telephones. Based on the premise based on the H.261 standard, a mode control function and a region extraction function are added as unique processing steps. Under such a configuration, processing such as encoding control and syntax change is executed at each level of signal, pattern, code, and recognition, and finally an ultra-low rate of about 64 kbps to 4.8 kbps. The image encoding is realized. A conceptual correlation between these control contents is shown in FIG.
[0060]
In the following description, [A-2] mode control, [A-3] target area extraction, [A-4] encoding control operation, and [A-5] encoding operation program are described. The principle and method of the encoding method will be described by classifying into large items and further classifying each large item into smaller items.
[0061]
[A-2] Mode control
FIG. 3 conceptually shows the contents of the ultra-low encoding rate in this embodiment. The mode control performed in the present embodiment is configured to perform mode control in, for example, three categories of (1) usage environment, (2) subject, and (3) encoding control. In this case, In this mode control, the progress of the modes is not always performed independently. For example, encoding may be performed using two or more modes simultaneously in each category.
[0062]
These transition relationships are governed by the states of the
[0063]
(1) Operating environment
Regarding the mode control of the usage environment, as shown below, considering the fixed and movable modes corresponding to each location of the automobile, indoor and outdoor, (a) in-car fixed mode, (b) in-car movable There are six modes: (c) indoor fixed mode, (d) indoor movable mode, (e) outdoor fixed mode, and (f) outdoor movable mode.
[0064]
(A) Automobile fixed mode
The use environment of the rear seat, which is most conceivable as an automobile TV phone, is set. This is characterized in that various conditions can be limited based on the positional relationship as shown in FIGS. This is summarized as follows.
[0065]
1) The part of the background inside the car can be fixed substantially, and the scenery outside the car seen from the window becomes a moving area while driving.
2) The distance L from the
3) As will be described in the next subject mode section, in this usage environment, the subject is mostly a person mode centered on a person (see FIG. 13), and the area ratio is the largest in the result of moving region extraction. The probability that the region is a person is very high.
4) When using the rear seat as a target, the number of persons P to be photographed is most likely to be one.
5) In the case of a passenger car, the number of persons P that can enter the field of view of the
[0066]
(B) In-car movable mode
In this mode, there is a high possibility that a landscape mode as a subject mode is used in addition to the portrait mode.
(C) Indoor fixed mode
Although it is almost the same as in-car fixed mode, the scenery outside the window is likely to be fixed, which is advantageous for reducing the amount of information.
[0067]
(D) Indoor movable mode
There is a high possibility that landscape mode will be used in addition to portrait mode.
(E) Outdoor fixed mode
In this mode, application to traffic monitoring, security, pet monitoring, etc. can be considered. In this case, since the
[0068]
(F) Outdoor movable mode
The use environment is the most severe condition. In this case, since it is movable, it is a precondition that wireless ultra-low bit rate transmission is performed. In addition, when using a portable device, there is a high possibility that the landscape mode is used in addition to the portrait mode. In addition, it is assumed that the vibration of the
[0069]
(2) Subject
In this case, the four encoding modes are switched and set as follows according to the encoding target and application.
[0070]
(A) People mode
This person mode is set to a default mode used with the highest priority in normal communication. And in this person mode, as shown also in FIG. 14, the mode switching as shown below is further performed according to a background and use environment. Note that the mode switching condition in this case is normally set and switched automatically based on the extraction result of the target region and the distance determination.
[0071]
A) Head mode (when there is only one person P)
B) Upper body mode (when there is only one person P)
C) Whole body mode (when there is only one person P)
D) Multiple person mode
[0072]
For example, in each use environment shown in FIG. 14, (a) the head mode of a) in a car, (b) the upper body mode of (b) indoors, and (c) the upper body mode of (c) outdoors. Or C) is set to the whole body mode. In addition, in the multiple person mode of D), a particularly detailed template (see FIG. 25, see the description of the template to be described later) is not prepared, and it is assumed that the scene is a transitional short time. It is left to other control according to the amount of encoded information generated.
[0073]
(B) Landscape mode
For example, in a running car, the subject is often a person during conversation, and the mode determination tree has a high probability of setting the person mode. On the other hand, when the user intentionally wants to transmit the scenery and things outside the vehicle as an image, it is encoded based on the amount of information generated due to the presence or absence of movement and the fineness of texture and the presence or absence of people. Change mode to quasi-video or still image mode.
[0074]
(C) Stationary object mode
When a stationary object is a target, since the amount of encoded information generated is relatively small, a normal moving image mode can be selected as the encoding mode.
(D) Drawing / character mode
The high-resolution still image mode can be selected as the encoding mode.
[0075]
(3) Encoding control
(A) Image center priority mode
This mode is set when there is no foresight information for the object on the screen and there is no initial setting mode set manually in preference to this. That is, as a situation, it is assumed that the
[0076]
Therefore, an encoding control operation is performed in which a bit amount is preferentially allocated near the center of the image and encoded, and the allocated amount is gradually reduced toward the periphery. Specifically, this is performed by [A-3] coding-by-region quantization control to be described later, use of background memory, control of the maximum number of significant transform coefficients, and the like. In this mode, conditions for shifting to another mode are set corresponding to the following three cases.
[0077]
1) When movement of the target area is detected
If the target area has been extracted, the target area priority mode is entered. Here, since the target area cannot be tracked in the following case, the area centroid mode in the target area priority mode is selected.
[0078]
A) When 2D (two-dimensional) template is not fixed
B) When 2D template adaptation is not complete
C) Scenery mode without 2D template
(The 2D template will be described later.)
[0079]
2) When the subject mode is the portrait mode
In the target area priority mode and the person mode, the 2D template is suitable if it does not deviate from the front image. In this case, identification of each part such as the head, eyes, and mouth is further started.
[0080]
3) Object category identification based on target area extraction and motion analysis results
When there is no motion information or area information, the screen center area is preferentially encoded in detail. In this case, giving priority to the screen center area is equivalent to considering a block within a range of a value calculated as an average distance Dav as a certain distance from the screen center as a target area, as shown in FIG.
[0081]
Further, here, in calculating the average distance Dav, the Eucrid distance D (n) shown in FIG. 5A or the absolute value distance D (n) shown in FIG. As shown in the following equation (1), the average value Dav of the distance D (n) [in this case, the absolute value distance is used as a reference] for the block (vertical 18 × 22 horizontal) set on the screen. As a result of the calculation, the average distance Dav is about 12, and the hatched area indicated by the oblique rectangle in FIG.
[0082]
[Expression 1]
[0083]
However, N = 22 × 18 = 396, dd (i, j) is an absolute value distance,
dd (i, j) = | i-11 | + | j-9 |
It becomes.
[0084]
(B) Target area priority mode
1) Background memory usage mode
In the person mode, based on area information obtained by area extraction of [A-2] target area extraction described later, a
[0085]
A) Do not transmit any background information after that.
B) Although background information is transmitted, the background change information is periodically distributed and the background is gradually updated.
[0086]
2) Area centroid mode
In this area center-of-gravity mode, the image center in the above-described image center mode is considered to be the center of gravity of the target area, and the quantization control for each area centered on this is driven. Note that the region-by-region quantization control will be described later in [A-3] coding control, and will be omitted here.
[0087]
3) Target area tracking mode
This mode is a mode in which the above-described 2) region centroid mode can be applied by detecting the centroid position of the target region that changes every moment when the target region moves on the image plane.
[0088]
(C) Motion priority mode
In this mode, the frame rate is not lowered even when the number of motion blocks or the absolute value of motion increases. Here, the intensity of movement is indicated by an index AM (see Expression (10)) indicating the intensity of movement in the description of adaptive control according to the information generation amount in the section [A-3] encoding control described later. By using the determination, the target area priority mode, the screen center priority mode, the model base mode described later, or the like is driven to control the transmission rate.
[0089]
(D) Semi-video (INTRA picture) mode
This is a mode in which the transmission rate is maintained while maintaining the image quality by reducing the frame rate in order to reduce the amount of information. In this case, depending on the amount of motion, compression using the correlation between frames may be difficult. In this case, only the INTRA picture is transmitted.
[0090]
(E) Still image transmission mode
This is assumed to be the following two cases.
1) When coding control fails
In this case, first, a forced intra frame is newly transmitted as an image signal that has been picture-frozen on the
[0091]
2) When there is a retransmission request from the
The
[0092]
(F) Model-based prediction mode
1) Cutting out the texture source
The texture source is performed based on the image information of the person area obtained from the analysis result of the moving area (in [A-3] extraction of the target area), which will be described later, with respect to the first front image taken before the start of the call.
[0093]
2) Model selection and adaptation
A 3D (three-dimensional) model is defined in advance by giving depth information to each
[0094]
3) Model-based prediction and transmission using 2D templates
The distance information can be calculated using a table calculated using camera characteristics for the front image using the template number and scaling value of the
[0095]
4) Model-based prediction using 3D motion information
For example, the feature region of the
[0096]
Furthermore, in this case, such a thing may be stored in advance as a table, and such communication position / posture estimation is performed by controlling the robot in the factory. Therefore, it is based on the grounds that there is a premise that it is good if the user does not feel uncomfortable visually.
[0097]
5) Background memory
In the situation where the
[0098]
6) Compensation of delay time for forced intra frame transmission based on model
As shown in FIG. 17, in the case of a car phone or the like, there is a session preparation time of substantially 10 seconds or more before the start of a call. Therefore, using such session preparation time, the front face is transmitted in a forced intra frame (about 30 kbits) at the start of the session (not at the start of the call). At the same time, motion region analysis, template correction, 3D model adaptation, etc. are completed by the start of the call.
[0099]
Also, an approximate 3D motion vector based on the distance information L and 2D motion information is calculated. Thereby, the frame immediately before the start of the call is predicted on the model basis. Based on this, if the first frame is encoded in the video transmission mode after the start of the call, the amount of code can be reduced compared to when transmitting as a compulsory intra frame (at least in the background area is considered to be effective). .) Freezing, lowering of frame rate and image quality can be greatly alleviated.
[0100]
(4) H. Compatibility with 261 standard
In the
[0101]
H. In the present situation, there is no uniform conversion means from the bit stream of the image signal of the H.261 standard to the protocol in the
[0102]
In the configuration of FIG. 18, for example, when the encoded bit stream transmitted from the
[0103]
On the other hand, as described above, the
[0104]
By doing so, H.C. It is possible to perform mutual conversion of image signals between the encoders Sa and decoders Sb of the H.261 standard and the
[0105]
(5) State determination and mode transition
(A) Forced setting
For example, in the coding mode described above, mode switching between 1) texture source cutout mode and 2) model selection and adaptation mode is automatic depending on whether the target region extraction result is a person or not. However, this can be forcibly switched by a user's manual setting.
[0106]
(B) Judgment of target area category
In this determination operation, the mode advances while considering each condition in accordance with the state transition diagram of the mode control relating to the usage environment and the subject as shown in FIG.
[0107]
1) Stochastic state transition
When determination information necessary for state transition is insufficient, autonomous state transition or search is executed using a transition probability table selected based on the probability given by default or incomplete information. This is executed, for example, corresponding to the following case.
[0108]
A) When there is no forced mode given from outside
B) When region extraction based on dynamic region analysis is not completed
C) When signal analysis results such as color signals are not completed
2) Deterministic state transition based on judgment information
As shown in FIG. 19, a moving area analysis over about three frame times from the original image is performed as described later without using a probabilistic criterion, thereby extracting a moving area and a movement occurrence state. After that, a person region is extracted, and a template is selected by extracting shape parameters. The degree of conformity of the template is obtained by evaluation calculation, and the process ends when the standard is satisfied. If not, select the next template and repeat the same process.
[0109]
(C) Update of transition probability value based on propagation of determination result based on state transition
If a certain determination result causes a significant error in the subsequent evaluation calculation, the transition probability (in the figure, as a branch of the moving object n, the person side) when returning to the initial node of the moving object determination via the moving region analysis module "0.9" and "0.1" are set on the other object side). For example, if an area that is determined to be a person based on a purely probabilistic state transition in the initial determination outputs an evaluation function value that is unlikely to be a person due to subsequent 2D template matching, color analysis results, speed / acceleration evaluation, etc. The transition probability for determining “like” is changed and set to be lowered from “0.9” to about “0.2”.
[0110]
(6) Human interface leading to mode selection
Optimal coding control is possible even with the state determination and mode transition described above, but the probability of making an erroneous determination can be drastically reduced by the
[0111]
1) The user selects the person mode and sees the position direction of the
2) A message “sit in front” is notified by voice or display via the
[0112]
3) If the person is off the center of the screen, a message “Please turn slightly to the right / left” is notified via voice or display via the
4) Send the first frame as a forced intra.
5) A message “Connected to the other party. Please speak.” Is notified by voice or display via the human interface 34 (the call can be started).
[0113]
(7) Transmission of mode information
The mode information and the accompanying template information can be transmitted because it is an amount of information that does not interfere with ultra-low rate transmission. In this case, the transmission is described in PSPAR, which is a user data area of the PIC layer. It is transmitted in a state (see FIGS. 30 and 50).
[0114]
[A-3] Extraction of target area
An object region to be watched, such as a person, is extracted based on a motion vector and camera settings. Here, in order to reduce the amount of calculation, the calculation is performed in units of macroblocks (MBK). The causal relationship between this calculation operation and various modes is as shown in FIG. 19 as described above.
[0115]
(1) Region extraction based on motion vector generation
Here, according to the flowchart of the motion region extraction routine shown in FIG. 23, the optimum template is finally determined. Reference is also made to the area analysis explanatory diagram of FIG. 24 and the basic template diagram of FIG.
[0116]
(A) Maximum motion vector detection and main region estimation
H. In a coding standard such as H.261, the presence / absence of motion vector generation is included as information in MTP (macroblock type) as data indicating the attribute of the MBK. In this case, H.C. In the H.261 standard, data indicating that a motion vector is generated when the MTP value indicates values of 2, 3, 6, 8, and 10 (see FIG. 33). Therefore, H.H. As a motion vector detection result of H.261 encoding, for example, an arrangement of MBK attributes (MBA, MTP, CBP) as shown in FIGS. 20 to 22 are arranged in a row corresponding to each MBK position on the screen in which 12 rows of 6 rows of GOB are arranged and 33 rows of MBK of 11 rows and 3 rows are arranged in each GOB, respectively. , CBP value.
[0117]
Here, an area including a block having the largest motion vector is defined as a main area. In the evaluation of the magnitude of the motion vector, a panning vector that is a motion component accompanying the movement of the
[0118]
(B) Time direction analysis
In the above case, it is difficult to specify the object region by examining the block attribute array for only one frame. Therefore, as shown in FIGS. 24A and 24B, analysis in the time direction is performed for about three frame times (see also FIG. 19, step D1 in FIG. 23). In particular, for the motion vector generation region, the position of the center of gravity is obtained (step D3) for the pattern (step D2 in FIG. 23) obtained by superimposing three frames, and the motion vector for each block position is as shown below. Is determined based on the number of determinations set in (step D4).
[0119]
A) For a block whose distance from the center of gravity exceeds a certain threshold, when it is more than twice in three times
B) For blocks whose distance from the center of gravity is less than or equal to the threshold value, at least once in 3 times
[0120]
Next, the isolated point area and the noise area are removed from the target area based on the obtained motion vector (step D5), the center of gravity of the remaining target area is calculated again (step D6), and the height of the target area is further increased. Find h and width w. Thereafter, for example, if it is a human head, the 2D template head is scaled by (h, w) to determine the approximate distance L0 to the camera 3 (step D7). Thereafter, in order to perform template fitting with higher accuracy, the following is performed (step D8).
[0121]
(C) 2D template matching and scaling
First, a block pattern composed of motion blocks is determined, and feature amounts are extracted. Here, if the person mode is manually selected in advance, the basic template of the person mode can be selected from the
[0122]
Here, as a basic template, a 2D template of a front image such as only a person's upper body, whole body, and head is prepared as a default pattern according to a mode predicted in advance by a decision tree (see FIG. 19). Next, the shape of the selected template is adaptively corrected. This correction includes center of gravity alignment, scaling, and local expansion / contraction (see FIG. 24C). Here, in the selection and correction of the optimum template, the value of the evaluation function F shown in Equation (2) described later is calculated.
[0123]
A) Start from a template L (<L0) that is slightly smaller than the template obtained by the analysis in the time direction.
A) Overlaying a template on an image obtained by extracting only motion blocks, the number N of motion vector blocks included in the region MBK (L) is calculated.
C) Increase the scale (decrease the distance L).
[0124]
D) Proceed to the next step when L is below a certain value Lmin. Otherwise, return to a).
E) The point where the next evaluation function F takes the maximum value Fmax is taken as the optimum L.
F = −B × N MBK (L) ... (2)
Where B is N MBK It is the second derivative value regarding L of the curve of (L).
[0125]
Or, if you change this to a discrete expression,
F = −B (n) × N MBK (Ln) (2a)
B (n) = A (n) -A (n-1)
A (n) = N MBK (Ln) -N MBK (Ln-1)
It becomes.
[0126]
(D) 2D template including quantization scale information
The 2D template can be expressed in binary, but as described later, each MBK attribute array value can also be expressed in a template corresponding to a model in advance. As described later, for example, a quantization scale as shown in FIGS. 42 and 43 can be considered.
[0127]
(E) Analysis of 2D movement pattern
As shown in FIG. 25, the pattern in which the person moves from the screen is horizontal and horizontal movement (corresponding to the figure arranged in the horizontal direction in the figure), and movement in the camera optical axis direction (in the vertical direction in the figure). (Corresponding to the figure) can be considered.
[0128]
(2) Generation of 2D template based on 3D model
As shown in FIGS. 12 and 13, in the person mode under a limited environment, a 2D template equivalent to that in FIG. 25 can be created by perspective transformation of the 3D model. This makes it possible to acquire parts such as the upper body, head, eyes, mouth, and nose. However, except for the front image, it is necessary to obtain the position and orientation of the target person with respect to the
[0129]
(3) Judgment of target area category
(A) Determination based on state transition graph
In the state transition diagram of mode control shown in FIG. 19, a determination tree for specifying the category of the target region is included as a partial diagram. The transition between nodes on the determination tree is performed using two types of searches, the probability search based on the default probability and the probability search based on the determination information.
[0130]
(B) Determination using the MBK attribute
Among blocks that have changed, blocks that have particularly fine texture changes are expected to have high CBP score values. For example, use them as the basis for determining the head region in the human upper body mode. Can do.
[0131]
(4) Background memory
At the time when the forced intra frame is transmitted, the region extraction process is always performed, and in particular, the process of storing the information of the background portion in the
[0132]
That is, as shown in FIGS. 26, 27, and 28, all the background areas that are currently encoded are set to FIXD, and the use of the background memory is declared in the user data area. Based on this, the latest background information is called from the
[0133]
FIG. 26 shows an outline of encoding control for achieving a very low rate, and a background region and a person region can be obtained by analyzing a motion region based on a plurality of frames of image signals and extracting the region. For example, the quantization control for each region is performed based on this, and the number of significant coefficients is controlled. On the other hand, encoding control is performed according to the buffer amount while setting the encoding rate and adding mode information. When extracting a person area, the area is specified in units of GOB MBK in the CIF format as shown in FIG. 27A, so that the background area can be obtained in the same manner (FIG. 27B). reference).
[0134]
FIG. 28 conceptually shows the case where the data stored in the
[0135]
[A-4] Encoding control operation
This encoding control operation is shown in FIG. 29 for the overall schematic operation content. FIG. It is a general thing which shows the syntax of the encoding bit stream in H.261 standard. In the following, details of the encoding control operation based on these FIGS. 29 and 30 will be described item by item.
[0136]
(1) Changing the bitstream syntax
H. Redundant headers in the H.261 syntax (see FIG. 30) are deleted for ultra-low rate. For this reason, the GOB arrangement in the CIF structure is not changed, but for the 12 GOBs constituting the screen as shown in FIG. 31, the GBSC (16 bits) as the GOB start header and the GOB number code (4 The amount of data is reduced to half by adding the number of bits) only to the left GOB and eliminating the right half (see FIG. 32). As a result, 20 × 6 = 120 bits can be reduced per frame.
[0137]
(2) Adaptive switching of variable length coding (VLC) table
(A) Code word replacement
FIG. The variable length code of the MTP (macroblock type) attribute of the H.261 standard is shown. For example, according to the inventor's experimental results at an extremely low rate, the probability of occurrence of each MTP value for a person image is in the order shown in FIG. Therefore, the number of bits for attribute description can be reduced by replacing the variable-length code for the MTP value according to the order shown in FIG. For example, by limiting the number of replacement patterns to a few, and writing which data to select in the user data area, the
[0138]
In the experimental results, the MTP value is mostly 2 or 3 in the object region, and in the case of the human upper body mode, the total of both reaches about 100 to 150, so that the code length is 1 for each. And 2 (currently 2 and 3), the number of bits can be reduced by about 200 to 300 bits per frame.
[0139]
(3) Adaptive control of attribute judgment characteristics
(A) Adaptive control of MTP determination using region information
1) The background area can be FIX (fixed) or NOMC (no motion compensation) using area information.
2) For the target region, MC-CO (motion compensation and coding) is determined for a person, particularly a face.
[0140]
(B) Adaptive control of INTER / INTRA determination
Usually, H.264 of 64 kbps or higher. FIG. 35 shows a characteristic curve for determining INTER / INTRA recommended in the H.261 standard. In this case, PVAR represents the inter-frame prediction error power sum for the four MBK Y blocks, and QVAR represents the value of the intra-frame variance of the input image for the four MBK Y blocks. Then, at a rate of 64 kbps or less, determination is made as follows.
[0141]
1) Insert forced INTRA periodically to prevent error propagation.
2) The threshold value TH_INTRA is set as follows, for example. The filling rate RB of the
RB = BUFF / BUFF_MAX (3)
[0142]
In this case, RB, BUFF, and BUFF_MAX indicate the current filling rate, the current number of used bits, and the maximum bit capacity for the
[0143]
<
<
<
The threshold value TH_INTRA is set as follows corresponding to each case according to the determination result.
[0144]
[0145]
In the above-described case, when the region information is not clear, as shown in the item of the image center priority mode or the target region centroid mode, a region having a certain distance from the centroid is defined as the target region. Then, the threshold value TH_INTRA is controlled as follows.
[0146]
R_IR = IR_MBK / IRMBK_MEAN (4)
NTH = TH_INTRA × (R0 + R_IR) (5)
RPQ = PVAR / (QVAR × R_IR) (6)
[0147]
Here, IR_MBK indicates the distance from the centroid of the target area to the MBK currently being encoded, and IRMBK_MEAN indicates the average distance from the centroid of the target area to all MBKs.
[0148]
And for the value obtained from the above formula,
PVAR ≦ NTH or RPQ_VAR ≦ 1.00
Is determined to be INTER, otherwise it is determined to be INTRA. In this case, for example, the value of R0 is set to 0.5.
[0149]
(C) Determination of motion compensation
Usually, H.264 of 64 kbps or higher. The characteristic curve for motion determination recommended in the H.261 standard is as shown in FIG. In FIG. 36, the horizontal axis indicates the value of the error sum FDSUM between frames when there is no motion compensation, and the vertical axis indicates the value of the error sum MVSUM when motion compensation is performed. In this case, in the figure, the region with motion compensation (MC_ON) is set to a region surrounded by parameters GD1 and GD2 indicating the slopes of two straight lines and parameters IEV1 and IEV2 indicating threshold values for two FDSUMs. ing. At a rate of 64 kbps or less, each value of the parameter set (GD1, GD2, IEV1, IEV2) of the characteristic curve is changed as follows according to the buffer amount and the area. The buffer filling rate RB is expressed by the above-described equation (3).
[0150]
RB = BUFF / BUFF_MAX (3)
In this case, RB, BUFF, and BUFF_MAX indicate the current filling rate, the current number of used bits, and the maximum bit capacity for the
[0151]
<
In this case, conventional motion determination is used for all regions. Therefore, each value of the parameter set for the determination characteristic is set as follows.
(GD1, GD2, IEV1, IEV2) = (0.50, 0.91, 256, 256 x3)
[0152]
<
In this case, the normal motion determination characteristic is used inside the RM that is a slightly larger rectangular region surrounding the target region (automatically set for each template in consideration of the motion range between frames). Therefore, each value of the parameter set for the determination characteristic is set as follows.
[0153]
(GD1, GD2, IEV1, IEV2) = (0.50, 0.91, 256, 256 x3)
In addition, in a region other than the above (corresponding to the background region) QM, the threshold for motion determination is set high.
(GD1, GD2, IEV1, IEV2) = (0.40, 0.80, 256x2, 256x4)
[0154]
<
In this case, in the main area of RM,
(GD1, GD2, IEV1, IEV2) = (0.50, 0.91, 256, 256 x3)
Outside the main area of RM,
(GD1, GD2, IEV1, IEV2) = (0.40, 0.80, 256x2, 256x4)
In QM,
(GD1, GD2, IEV1, IEV2) = (0.20, 0.50, 256x4, 256x8)
[0155]
<
In this case, one of the following is selected.
1) Switch to quasi-video mode and reduce frame rate
2) Switch to model-based mode
3) Set to picture freeze mode
[0156]
(4) Use of past encoding attributes
(A) Features of each encoding attribute of the MBK layer
When the MBK attribute of each frame stored in the
[0157]
1) MBA (macroblock address)
The MBA is assigned as a significant encoded block from the third frame. In particular, an MBK (macroblock) whose MBA shows a value of 2 or more often corresponds to a contour portion of the target area. Therefore, as shown in the flowchart of FIG. 37 and FIGS. 38 and 39, the MBA pattern one frame before is converted into a NOT_FIXED (NFX) pattern (step E1, FIG. 38, (a), (b) in FIG. 37). Reference), the average motion vector of the region information and the template information can be used to estimate and represent the MBA sequence one frame ahead (see steps E2 to E6 and FIG. 39).
[0158]
Then, encoding is controlled using such an estimated value of the MBA pattern, and the template information and the motion vector are encoded and transmitted (steps E7 and E8). On the other hand, on the
[0159]
2) MTP (macroblock type)
A) INTER / INTRA mixed (normal frame)
Experiments have shown that at very low rates, most of the subject areas with motion (such as people) are labeled with MTP = 2,3. Therefore, based on the determination in the adaptive control according to the information generation amount described later, as shown in the flowchart of FIG. 40 and FIG. 41, the average motion vector and the template information of the region information are used unless particularly intense motion occurs. Thus, the MTP sequence one frame ahead can be expressed (see steps F1 to F3 and FIG. 41 in FIG. 40).
[0160]
Then, encoding for one frame is advanced based on the predicted MTP value (step F4), and the template information and the motion vector for each region are encoded and transmitted (step F5). On the other hand, on the
[0161]
B) Forced intra frame
If the compulsory intra frame is declared as user data, then the description of data with MTP = 4 or data with MBA = 1 is unnecessary. Thus, this makes it possible to save 5 × 22 × 18 = 1980 bits, ie about 2 kbits.
[0162]
3) QSC (quantization scale)
The QSCs are all fixed to 31 (quantization step 62) below 32 kbps, and only the main region determined from the region analysis is set to 16 (quantization step 32). Therefore, QSC information is not transmitted even in a human mode of 16 kbps or less, even at an extremely low rate. Accordingly, it is not necessary to describe the QSC information in the GOB layer, and as a result, the information amount can be reduced by 12 × 5 = 60 bits. In addition, it is not necessary to transmit the change information of the quantization scale in MBK units.
[0163]
In this case, the region mode quantization in the person mode is shown as an example in FIG. 42A, and the quantization template is shown as an example in FIG. FIG. 43 shows an outline of data exchange between the
[0164]
4) MVD (differential motion vector)
Since MVD is a horizontal motion vector change in the frame, a value other than “0” is generated in non-rigid body motion or rotational motion. For humans, movements caused by facial expression changes, three-dimensional rotation of the head and upper body edges correspond to this. Since these occur instantaneously, the prediction efficiency when predicting in the form of a difference vector is not very good. Therefore, such a difference vector is converted into a motion vector and predicted as an average 2D motion vector for each region.
[0165]
Here, the MVD generation position is limited to the MBK declared as having motion compensation in the MTP. Usually, most of this is represented by MTP = 2,3. As a result, the MVD information can be suppressed about once every two frames. FIG. 45 shows a flowchart of a routine for reducing the code amount by the average motion vector for each region, and FIG. 46 shows an outline of the contents in a pattern transition diagram.
[0166]
5) CBP (encoded block pattern)
CBP indicates by bit information whether or not each of the 6 BLKs (blocks) included in the MBK is encoded. Therefore, by converting this CBP value into a YUV vector, it is possible to represent the CBP array one frame ahead using the average motion vector of the region information and the template information. On the other hand, on the
[0167]
(B) MBK attribute code amount reduction using region information
1) Attribute encoding once every 2 frames
As described above, pattern attributes for one frame can be predicted by motion compensation using the template information and the average motion vector for each region, and can be reproduced uniquely on the
[0168]
2) Upper and lower alternate prediction or interleaving
Instead of putting the pattern attribute of prediction only once every two frames, as shown in FIG. 49 (a) (or (b)), the top and bottom (or right and left) in GOB units. Alternately, it can be replaced with a prediction pattern. Although interleaving for each GOB line (see (c) to (e) in the figure) is also conceivable, there is a risk of discontinuity in the contour representing the pattern, so it is not adopted when the target area is large.
[0169]
(5) Quantization control
In principle, the quantization control is performed by controlling the quantization step. Here, the quantization step setting method is described in H.264. It is not stipulated in the H.261 standard, and its constraint condition is an even number of 2 to 62 (quantization scale value of 1 to 31) and a range that can be expressed by 5 bits. Therefore, in the present embodiment, the quantization control is performed by controlling the quantization step as described below.
[0170]
(A) Quantization control by region
1) Target area priority mode
In this mode, a small quantization step is assigned to the extracted target region. The quantization step is fixed at 62 for the background area. When the subject is in the person mode, only the head region is set to 62 or less, and the others are set to 62 in principle (see FIG. 42A).
[0171]
2) Screen center priority mode
In this mode, the closer to the center of the screen, the smaller the quantization step. However, in order to unify the control expression of the quantization step, a method of correcting the current buffer capacity for step calculation using the distance to the current MBK is adopted. Calculate using 7) and (8).
[0172]
R_IR = IR_MBK / IRMBK_MEAN (7)
BUF_R = BUFF_MB
× (5.00 + real (IR_MBK) / real (IRMBK_MEAN)) (8)
[0173]
here,
BUFF_MB: Buffer amount monitored in MBK units
BUFF_R: virtual buffer amount based on distance calculation
IR_MBK: Distance from the target centroid to the MBK currently being encoded
IRMBK_MEAN: Average distance from the target center of gravity to all MBKs
The value of this virtual correction buffer amount BUFF_MB is used in a control equation according to a coding rate described later.
[0174]
(B) Control according to the buffer amount
Normally, the quantization control is performed in the above-described case, but the quantization control based on the buffer amount is not performed in the case of the forced intra frame transmission. The forced intra frame is normally transmitted in the following cases.
[0175]
1) First picture when starting or resending moving image mode
2) Semi-video mode
3) Still image mode (picture freeze)
4) Texture source image in model base mode
The quantization step depends on a control formula corresponding to a coding rate described later.
[0176]
(C) Control according to the coding rate
The determinant of the quantization step (STEP FPIC) according to the coding rate (RATE) is set as follows.
[0177]
[0178]
2) Normal quantization step
ISTEP = 2 × INT (BUFF_MB / (200.0 × QX64) +2 (9)
BUFF_MB: Current amount of data in the buffer
QX64: Encoding rate = QX64 x 64.00 [kbps]
When the encoding rate is 16 kbps or less, frequently changing the quantization scale leads to an increase in the required number of bits. Therefore, the quantization step is fixed at 62 when the speed is 10 kbps or less.
[0179]
(D) Adaptive control according to information generation amount
Based on the amount of motion and the degree of color change, quantization and frame rate control are performed.
[0180]
1) Judgment of the intensity of movement
As a degree of intensity of movement of the current frame with respect to the past frame, a value of an index called AM defined by the following equation (10) is obtained by calculation, and quantization and frame control are performed based on the determination result based on this value. Do.
[0181]
[Expression 2]
[0182]
However,
Nmb: Number of blocks in which motion has occurred
L (X); norm function of vector X. Absolute distance, Euclidean distance, etc.
Vi: motion vector
Rd: Transmission data rate
THV (Rd); threshold constant depending on data rate
[0183]
A new scale AMT is calculated using the value of AM calculated by Equation (10). In this case, AMT is calculated as follows.
A) When AM ≦ THV (Rd), AMT = 0
A) When AM> THV (Rd), AMT = AM
Here, the target range of Nmb and the corresponding THV are changed as follows according to the calculation capability of the encoding processor.
[0184]
a) From the first MBK of the current frame to the MBK currently being decoded
b) From the first MBK in the current GOB to the MBK currently being decoded
c) All MBKs in the current GOB
d) All MBKs in the current frame
[0185]
In the above cases a) and b), since a global operation is not required, the calculation amount is small and there is no processing delay, but the determination reliability is low. On the other hand, since c) and d) perform global calculations, the amount of calculation increases, but the processing delay is a maximum of one frame time. However, the reliability of judgment is high.
[0186]
2) Judgment of the intensity of color change
The degree of intensity of color change of the current frame with respect to the past frame is obtained by calculation of an index value called AC defined by the following equation (11), and quantization and frame control are performed based on the determination result based on this value. I do.
[0187]
[Equation 3]
[0188]
However,
Ncb: Number of blocks whose block attribute of CBP is 1
C (i): a function for calculating the color change from the YUV vector based on the change of the DC component of the DCT coefficient and the CBP for the i-th macroblock
THC (Rd): Threshold constant depending on the data rate
[0189]
A new scale ACT is calculated using the value of AC calculated by equation (11). In this case, ACT is calculated as follows.
A) When AC ≦ THC (Rd), ACT = 0
A) When AC> THC (Rd), ACT = AC
[0190]
Here, the target range of Ncb and the corresponding THC are changed as follows according to the calculation capability of the encoding processor.
a) From the first MBK of the current frame to the MBK currently being decoded
b) From the first MBK in the current GOB to the MBK currently being decoded
c) All MBKs in the current GOB
d) All MBKs in the current frame
[0191]
In the above cases a) and b), since a global operation is not required, the calculation amount is small and there is no processing delay, but the determination reliability is low. On the other hand, since c) and d) perform global calculations, the amount of calculation increases, but the processing delay is a maximum of one frame time. However, the reliability of judgment is high.
[0192]
3) Virtual buffer calculation
B) Virtual buffer increment based on motion
a) MBK of the target area without movement: BUF_M = 16 × (AMT / aM)
b) MBK of the target area with movement: BUF_M = 0
c) MBK of background area: BUF_M = 32 × (AMT / aM)
aM is a number corresponding to the average amount of motion per 1 MBK, for example, aM = 16.
[0193]
B) Virtual buffer increment based on color variation
a) MBK of target area without color change: BUF_c = BMBK × (ACT / aC)
b) MBK of target area with color change: BUF_c = 0
c) MBK of background area: BUF_c = 2 × BMBK × (ACT / aC)
[0194]
[0195]
(6) Control of the number of significant coefficients
H. In 261, the DCT transform coefficients after quantization transform are zigzag scanned in units of blocks, and the obtained one-dimensional quantized coefficient sequence is a binary set (called an event) of a non-zero level followed by a length of zero run. expressing. Here, it is assumed that the coefficient of the high frequency component does not contribute much visually at an extremely low rate, and by limiting the number of events per block, the number of corresponding VLCs is reduced, and the number of bits is reduced as a whole. Can be planned.
[0196]
That is, when the DCT significant coefficient (non-zero) obtained in order from the low frequency component by zigzag scanning exceeds a certain number, the remaining DCT coefficients are forcibly regarded as zero. At this time, control is performed so that the upper limit number Ncf (≦ 64) as the threshold value is switched according to each of the encoding rate, the region, the motion generation amount, the buffer amount, and the encoding mode. Note that the information regarding the upper limit number does not need to be sent to the
[0197]
The above-described control of the number of significant DCT coefficients is actually performed as follows. Here, for example, the following state is assumed.
[0198]
Coding mode: People mode
Coding rate: 8 kbps
RB = V_BUFF / BUFF_MAX
V_BUFF = BUF_R + BUF_M + BUF_C
BUFF: Current buffer size
BUFF_MAX: Maximum buffer capacity
(RB1, RB2, RB3, RB4, RB5) = (0.2, 0.3, 0.5, 0.8, 1.0)
(Ncf0, Ncf1) = (16, 8)
[0199]
In the determination, the following six cases are controlled according to the value of the buffer filling rate BF. The values indicated by RB1 to RB5 are determination thresholds, and values corresponding to the control contents are set in advance.
[0200]
<
A maximum of 64 significant coefficients for all regions
<
The number of significant coefficients is up to 64 for the target area and up to Ncf0 for the background area.
<
Maximum number of Ncf0 significant coefficients for all regions
[0201]
<
Maximum number of Ncf1 significant coefficients for all regions
<
The background uses a background memory, and a portion not in the memory is expressed only by a DC component. Maximum number of Ncf1 significant coefficients for the target area
<
Select one of the following (1) to (3) depending on other conditions
▲ 1 ▼ Transfer to quasi-video mode
(2) Transition to model base mode
▲ 3 ▼ Freeze Picture
[0202]
(7) Adaptive switching of frame rate
(A) Description of frame rate change instruction
H. In the bit stream syntax of the H.261 standard (see FIG. 30), an instruction to change the frame rate to the
[0203]
(B) Method of changing frame rate
After the A / D conversion of the moving image on the
[0204]
(C) Factors driving frame rate change
The driving factors for changing the frame rate can be summarized as follows.
1) Switching according to buffer capacity
2) Switching according to the transmission rate (eg 8kbps → 5frame / sec)
In the moving image mode, an initial frame rate is set according to the transmission rate. For example, the following frame rate is set for the coding rate QX64.
[0205]
・ QX64 ≧ 18 → 30 frame / sec
・ 18 ≧ QX64 ≧ 10 → 30 frame / sec or 15 frame / sec
・ 10> QX64 ≧ 6 → 15 frame / sec
・ 6> QX64 ≧ 1 → 15 frame / sec or 10 frame / sec
・ 64> QX64 × 64 ≧ 32 → 10-7frame / sec
・ 32> QX64 × 64 → 10 frames / sec or less
3) Switching according to the amount of movement
4) Change of mode
[0206]
[A-5] Description of operation according to encoding processing program
As described above, with respect to the ultra-low rate function implemented in the encoding process, each function is implemented in accordance with the flowcharts of the programs shown in FIGS. 5 to 7 in the actual encoding process. Become. The outline of the overall flow will be described below.
[0207]
That is, first, the forced mode is set (step A1), and under this setting state, the target
[0208]
Thereafter, it is determined whether or not the current frame is a forced intra frame (step A9). If “YES”, the
[0209]
Next, if the current frame is in the moving image mode, the frame rate is determined (steps A13 and A14). If the current frame is in the model base mode, the region extraction /
[0210]
Subsequently, it is determined whether or not the frame is an attribute prediction frame (step A21). If “NO”, a series of processes of steps A22 to A28 is executed. If “YES”, step A29 to step A29 are executed. A series of processing of A35 is executed. In steps A22 to A28, the
[0211]
After this, H.B. 261-based motion compensation and DCT calculation are performed (step A36), and region-specific quantization is performed by the
[0212]
[B] Decoder
Next, the content of the decoding process of the encoded bit stream received by the
[0213]
The process of realizing the autonomous error correction function that is a feature of the
[0214]
On the other hand, MPEG and H.264. In a bitstream generated with a syntax based on a variable-length code (see FIG. 30) as in the H.261 standard, even a single bit error propagates in the worst case, and subsequent data cannot be decoded. It is assumed that However, in a conventional wired video conference system, error correction to the extent that there is no practical problem has been realized by a combination of demand refresh (combination of freeze and retransmission request) and an error correction code (BHC code, etc.).
[0215]
In addition, error correction codes were sufficient for storage systems such as video CDs. However, in wireless systems, the error rate is high, and transmission errors such as omission, inversion, and insertion may occur in units of several bits depending on radio wave conditions. For this reason, complete error correction is difficult only with a normal code-theoretic approach. Therefore, in the
[0216]
In the following, the contents of the autonomous error correction function will be described in the following items. [B-1] Global check of coded bitstream, [B-2] Code and syntax level error correction, [B-3] Pattern level error correction, [B-4] Signal level error correction , [B-5] error correction strategy control using mode information, [B-6] recognition level error correction, [B-7] person memory and 3D model based method, [B-8] error correction strategy, [B-9] Operations according to the decryption processing program are divided into major items, and each principle and method are described by classifying the major items into smaller items.
[0217]
[B-1] Global check of coded bitstream
(1) Bit error occurrence mode
First, how bit errors occur in an image signal received via a communication channel when correcting bit errors in decoding processing will be briefly described below.
[0218]
(A) Single “0/1” inversion error: an occurrence of an error in which a bit value is inverted at random with a certain probability
(B) Burst error: An occurrence of an error in which data in a certain section is masked, and the value in between is one of the following (1) and (2). (1) Output a fixed value of 0 or 1 continuously, (2) Output a completely random value
(C) Insertion / deletion of bits: This causes temporal expansion and contraction.
[0219]
(2) Basic policy for error correction
In this embodiment, the form of error generation is not particularly limited as a basic policy for error correction. However, the case (a) described above can be dealt with relatively stably, but in the cases (b) and (c), complete correction becomes extremely difficult. Is corrected with an estimated value which is not so strange visually, but error accumulation due to subsequent error propagation is expected, and means for suppressing this is provided. In this case, at the worst, a picture freeze and a retransmission request (ARQ: automatic repeat request) are exercised.
[0220]
Prior to exercising active correction means on the
[0221]
(3) Transmission of the required number of bits
Using the user data area in the protocol syntax, data having a great influence on image reproduction when data is lost is redundantly transmitted from the
[0222]
(A) As explained in the next section [B-2] Error correction of code and syntax level, the localization of PSC (picture start code) and GBSC (GOB start code) is determined by global header check in the buffer. Keep going. Based on this result, the code amount described in PSPARE or GSPARE is checked.
[0223]
(B) If the sum of the code amount descriptions of the GOB layer does not match the code amount of the PIC layer, it is determined that there is an error in any description. If they match, it is determined that there is no error and the process ends.
[0224]
(C) The average code amount per frame and the average code amount per GOB are calculated from the transmission rate and the frame rate. In a case other than a compulsory intra frame, a code amount that deviates from this value by a certain threshold or more is set as a description error location candidate.
[0225]
(D) The candidate extracted in the above item (b) is compared with the linear prediction from the code amount over the past several frames, and if the deviation from the value is not within a certain range, an error is detected. judge.
[0226]
(4) Forward type data check
In order to detect all the data of the required number of bits in one frame described on the
[0227]
(A) A certain buffer area is completely scanned by fuzzy matching processing as shown in FIG. When the transmission rate is high, many matching calculations are required to complete localization by this method. However, since the amount of data per frame is several k bits or less at an extremely low rate, this way. Even if a global scanning process is performed, there is no practical problem.
[0228]
In this case, in the fuzzy matching process, the similarity S (see the formula in FIG. 51) indicated by the bit matching rate between the bit pattern of the code to be searched and the bit pattern in the encoded bit stream is 0.9 (90%), for example. ) If it is above, there is a standard for judging that there is almost no mistake. As a result, for example, since the PSC is 20 bits, it is possible to determine that the matching is allowed with an error of 2 bits. Note that the value of the similarity S is preferably 0.9, but in practice it can be implemented even when the value is set to a low value of about 0.8.
[0229]
(B) After searching for the PSC and the first GBSC, an approximate position is found based on the estimated code amount using the average code amount and the code amount one frame before. Thereafter, scanning is performed within a certain range centered on the position. If the number of GBSCs up to the PSC of the next frame is correct, the check process is terminated. If it is not correct, the value of the GN (group number) code is checked to determine the missing GBSC, scanning is performed from the GBSC immediately before that GBSC, and if it can be detected, the process ends.
[0230]
[B-2] Code and syntax level error correction
(1) Localization of PIC and GBSC
If the bit stream is only decoded sequentially, the range of PIC data and GOB data may not be known due to a bit error as described in the next section (2). Therefore, a hierarchical process in which error correction based on the pattern level (MBK attribute) and image signal level (BLK) is pursued starting from the PSC and GOB headers that can be detected and localized relatively stably by the fuzzy matching process as described above. Is provided. After that, it is connected to the following error correction depending on the code and grammar.
[0231]
(2) Form of grammatical decoding stop due to bit error
When the bit stream including the bit error is sequentially decoded, the
[0232]
(A) When stopping immediately at the bit error position
If a bit error is mixed in the fixed-length header and matching becomes impossible, the decoding is immediately stopped unless there is a branching condition to others on the syntax.
[0233]
(B) When stopping after decoding from a bit error position for a while
1) When a bit error occurs in variable length code (VLC)
As shown in FIG. 52, a bitstream is an output symbol obtained by transitioning between nodes based on logical conditions and numerical conditions in a graph obtained by combining code trees having different binary tree structures. It is a series. Therefore, if even one bit in the VLC is inverted, the time series of events (corresponding to encoding attributes and image signal values) that occurred on the
[0234]
However, such an error cannot be detected only by a grammatical constraint that purely determines only a code. In other words, it is detected only with grammatical constraints via error detection conditions at the signal level or pattern level, which will be described later, or numerical conditions based on the image data format. In other words, since the erroneous bit stream decoding is continued until such an error detection process is started, the decoding stop position is behind the bit error position.
[0235]
In addition, even if such an error exists, the decoding is not necessarily stopped. For example, when the code is replaced with another codeword having the same code length even after bit inversion, the status output If only different values are output and the values do not adversely affect the subsequent conditional branching, no synchronization shift occurs in the subsequent VLC decoding process. Therefore, in this case, for example, even if there is a possibility that only the color or texture data of a certain pixel block is changed and reproduced, decoding does not stop.
[0236]
2) When a bit error occurs in a fixed-length code
In this case, it is the same as in the case of bit inversion with the code length unchanged, and the numerical value or attribute of the decoded output is different from that at the time of encoding, but the decoding will not be stopped unless the subsequent conditional branch is adversely affected. .
[0237]
(3) Detection of grammatical decoding errors
Next, H.I. Based on the protocol syntax of H.261 (see FIG. 30), the positions where bit errors occur are classified and explained as follows.
[0238]
(A) Fixed-length header that always appears
1) PSC (picture start code; 20 bits)
As long as the fuzzy matching process is performed, even if a bit error of about 2 bits occurs in the PSC, the PSC can be detected without depending on the syntax and the decoding result so far. Therefore, the detection and localization of PSC is an initial process necessary for detecting bit errors at other positions.
[0239]
2) GBSC (group of blocks start code; 16 bits)
Similar to PSC, it can be detected stably by fuzzy matching processing, but if PSC localization is not performed, localization may be erroneous.
[0240]
(B) Fixed length data that always appears
1) TR (temporal reference; 5 bits)
If PSC localization is performed, it is easy to check the value because it is the following 5-bit data. The determination of error differs depending on the mode setting state on the
[0241]
A) In the normal moving image playback mode (fixed frame rate), it should be increased from the previous TR by a value corresponding to the frame rate corresponding to the transmission rate. If it is an ultra-low-rate moving image mode of 32 kbps or less, it becomes an increment of about 3 to 5, so it can be determined that the other is an error.
B) In the case of the semi-moving image mode, the increment is about 10 to 31.
[0242]
2) PEI (picture extra insertion information; 1 bit)
If the data is 1, the following user data PSPAR (8 bits) exists. If the data is 0, GBSC follows.
[0243]
3) GN (group number; 4 bits)
An error is determined in the localization process of GBSC. An error occurs if the following conditions (1) and (2) are not satisfied. (1) In the CIF structure, 1 ≦ GN ≦ 12, (2) One numerical value is increased from the previous GN
[0244]
4) GQUANT (GOB layer quantizer infomation; 5 bits)
The quantization scale (QSC) in ultra-low rate transmission is fixed to 31 (quantization step 62) in the target region priority mode, and is set to 16 (quantization step 32) only in the main region determined from region analysis. To do. Therefore, QSC information is not transmitted in the person mode. This eliminates the need for GQUANT (GOB layer QSC information) and MQUANT (MBK unit quantization scale change information), so that no errors relating to this data occur. In other modes, when MQUANT is used, an error is determined by estimating a value in the same manner as CBP in pattern level error correction described later.
[0245]
5) GEI (GOB extra insertion information; 1 bit)
A) If the data is “1”, then the user data GSPARE (8 bits) follows. Therefore, it is determined to be incorrect (synchronization error or error) from the definition of GBSC localization and the definition of GSPARE.
B) If the data is “0”, MBA continues. Therefore, the error determination is carried over to the MBK layer.
[0246]
(C) Fixed-length data / header that appears conditionally
1) PSPARE (picture layer spare infomation; 8 bits)
In the present embodiment, this area is used for mode information (8 bits) and required bit number information (8 bits × 2). As a result, an error in the required bit amount can be determined.
[0247]
2) GSPARE (GOB layer spare infomation; 8 bits)
In an area where user data can be described in units of GOB layers, in this embodiment, the number of bits required in the GOB is described. Since the required number of bits in the GOB layer is likely to be within 8 bits, the bit pattern of the data of the required number of bits is described as an inverted pattern in which the order is changed between the upper (MSB) side and the lower (LSB) side. It is supposed to be. Therefore, the next GSPARE is required only when the required number of bits in the GOB layer exceeds 8 bits.
[0248]
3) MBSTUFF (macroblock address stuffing; 11 bits)
Not used for very low rate transmission. H.64 kbps or higher. Although there is a possibility of being used in the H.261 standard, as shown in FIG. 53, even if a 1-bit error occurs, there may be a grammatically different interpretation result, so it is dangerous to perform fuzzy matching processing. . Therefore, the MBSTUFF code is not used in this embodiment.
[0249]
4) MQUANT (MBK layer quantizer infomation; 5 bits)
As described in GQUANT, MQUANT is not used in the person mode for ultra-low rate transmission in this embodiment. When MQUANT is used in other modes, an error is determined by estimating a value in the same manner as CBP in pattern level error correction described later.
[0250]
5) INTRA-DC (8 bits)
Grammatically, it appears as the first DCT coefficient data only when MTP indicates INTRA. This determination is left to a signal level error correction process described later.
[0251]
6) ESC (6) + RUN (6) + LEVEL (8 bits)
If an error occurs in the ESC, another interpretation occurs in the subsequent decoding process of the BLK layer. Therefore, it is quite difficult to identify and correct the error position grammatically. Therefore, the following measures are taken.
[0252]
A) In the DCT coefficient decoding process, the similarity Sesc with the ESC is always calculated. When Sesc = 5/6 (5 bits in 6 bits match the ESC), all the positions Pesc are stored, and the subsequent decoding is performed. Proceed with the process.
B) If the following conditions {circle around (1)} and {circle around (2)} are not satisfied before EOB is found, it is determined as an error, the process returns to the above Pesc, interprets it as an ESC, and performs the decoding process again. (1) Number of significant coefficients ≦ Ncoef constraint, (2) Cumulative number of quantized DCT coefficients in BLK ≦ 64
[0253]
C) If an error is detected in the image signal level error correction process (BLK layer), the process returns to Pesc, interprets it as ESC, and performs decoding again.
D) If an error is detected by the pattern level error correction process (MBK layer), the process returns to Pesc, interprets it as ESC, and performs decoding again.
[0254]
7) EOB (end of block; 2 bits)
Since the word length is short, it is difficult to determine candidates based on similarity. However, since the number of appearances is large, the probability that a random error occurs in the EOB is not small. Therefore, it is determined that an error has occurred in the EOB when the following conditions (1) to (3) are not satisfied.
[0255]
(1) Number of significant coefficients ≤ Ncoef restriction
(2) Cumulative number of quantized DCT coefficients in BLK ≦ 64
(3) (Number of BLKs in MBK) ≦ (Number of BLKs described in CBP)
In this case, there are two correction methods (a) and (b) below. Usually, the method (b) is selected to simplify the calculation.
[0256]
A) The bits are sequentially inverted immediately after the previous EOB, and the EOB pattern “10” is detected. Then, the detected EOB pattern is regarded as EOB and decoding is performed. If all the above three conditions (1), (2), and (3) are satisfied, it is determined that this is a correct EOB.
B) Pattern level error correction is applied to all remaining MBKs in the GOB. If the above three conditions (1), (2), and (3) cannot be detected, it is left to error correction at the signal level or pattern level.
[0257]
(D) Variable length code (VLC) that always appears
1) MBA (macroblock address; 1 to 11 bits)
Since MBA appears under the following conditions (1) and (2), the VLC table is checked under this condition, and the rest is left to pattern level error correction.
[0258]
(1) Immediately after EOB when the number of decoded MBKs ≤ 32
(2) Immediately after GEI = 0
2) MTP (macroblock type; 1 to 10 bits)
Since MTP appears under the condition “immediately after MBA”, the VLC table is checked under this condition, and the rest is left to pattern level error correction.
[0259]
(E) Conditionally appearing variable length code (VLC)
1) MVD (motion vector data; 1 to 11 bits)
Since MVD appears under the following conditions (1) and (2), the VLC table is checked under these conditions, and the rest is left to pattern level error correction.
[0260]
(1) Immediately after MTP when MTP = 2, 3, 6, 8, 9, 10
(2) In MVD, two VLCs appear in succession in the order of x component and y component.
2) CBP (coded block pattern; 3 to 9 bits)
Since CBP appears under the following conditions, the VLC table is checked under this condition, and the rest is left to pattern level error correction.
[0261]
3) TCOEF (INTER) (transform coefficients; 2 to 17) The VLC of the DCT coefficient for the INTER block of the BLK layer appears under the following conditions (1) and (2). This error correction is left to signal level error correction.
(1) When MTP is 4 or 7 (INTRA block), the second and subsequent coefficients in the BLK layer
(2) When MTP is other than 4 or 7 and the next code is not ESC in the BLK layer
[0262]
[B-3] Pattern level error correction
Use continuity between frames in hierarchical coding attributes.
(1) Use of past MBK decoding attributes
For past MBK layers that have already been decoded, five attribute data of MBA, MTP, QSC, MVD, and CBP are stored in the
[0263]
When an error of a signal level is detected in units of block pixels, if the cause of the error is not a VLC transmission error for a DCT coefficient, there is a high possibility that the error is an MBK attribute error. At this time, if MTP, QSC, and CBP are significantly different from each other in the range of the area composed of k MBKs adjacent to the motion compensation position in the MBK unit of the attribute one frame before, the past attribute is added to the attribute. Error correction is performed by applying a value. The comparison evaluation function in this case is as described below.
[0264]
(A) MBA error detection and correction
First, although MBA has temporal continuity in the left outline of the target area, it is expected that the change will increase in the target area. However, on the contrary, the FIXED / NOT_FIXED pattern as described above can be almost predicted from the movement of the region. Therefore, as shown in the flowchart of FIG. 56 and FIGS. 57 and 58, in the following, NOT_FIXED (hereinafter referred to as NFX) uniquely corresponding to the MBA pattern by shifting the region using the average motion vector of the region. Pattern prediction calculation is performed, and the similarity SNFX between the NFX pattern based on the current decoding result and the NFX pattern based on the prediction result is calculated according to the following equations (12) and (13).
[0265]
[Expression 4]
[0266]
here,
L: MBK address of MBA value a currently being decoded (value obtained by adding a to MBK address L0 of the previous MBA value that has already been decoded)
Ls: NFX pattern comparison start position
s (A, B); “1” when A = B, “0” otherwise
NFXM (k); “1” if the MBA value of the first MBK in GOB is “1” or more, “0” if “0”
NFXM_ (k); NFX pattern predicted from the NFX pattern one frame before
Next, the reliability RNFX is calculated according to the equations (14) and (15) for the above calculation results.
[0267]
[Equation 5]
[0268]
Based on the above result, for example, MBA detection and error correction are performed under the following four conditions.
1) RNFX0 <0.5
In this case, it is determined that the reliability of the NFX prediction is low and is suspended. That is, for the time being, it is determined that the current NFX pattern is correct, and the process proceeds to determination of the next attribute.
2) RNFX0 ≧ 0.5 and SNFX <TNFX1
It is determined that the current NFX pattern is a decoding error. The NFX value is copied from the predicted pattern and converted to the MBA pattern. (TNFX1 is a value of about 0.3, for example)
[0269]
3) RNFX0 ≧ 0.5 and TNFX1 ≦ SNFX <TNFX2
Since it cannot be determined that the current MBA value is a decoding error, it is suspended. That is, for the time being, it is determined that the NFX value is correct, and the process proceeds to determination of the next attribute. (TNFX2 is a value of about 0.7, for example)
4) RNFX0 ≧ 0.5 and TNFX2 ≦ SNFX
It is determined that the current NFX value is a correct decoding result.
[0270]
(B) MTP error detection and correction
At 10 frames / sec, the motion vector between frames is a three-frame vector at the video rate, so the maximum size is about plus 45 pixels. This corresponds to a maximum of 3 MBK displacements. Therefore, a comparison region composed of MBK that has been subjected to motion compensation with a motion amount (mx, my) obtained by converting the motion vector of the target region in MBK units with respect to the MTP pattern one frame before, and has already been decoded based on the MBK position. 59 and FIG. 60, and the corresponding region is compared with each MTP value by motion compensation. Here, the similarity SMTP is calculated based on the following equation (16), and further, the reliability evaluation value RMTP0 is calculated using equations (17) and (18) in order to evaluate the reliability of the previous MTP prediction. calculate.
[0271]
[Formula 6]
[0272]
here,
smtp (A, B): A function that calculates the similarity between two MTPs. The following score values are set and totaled for each of the six types of information included in the MTP.
INTRA attribute match → 3 points
Match of MQUANT attribute → 1 point
M V D Attribute match → 2 points
CBP attribute match → 2 points
TCOEFF attribute match → 1 point
FIL attribute match → 1 point
[0273]
LMTP: total score setting (here, “10”)
K: the number of MBKs included in the comparison area, the first is the MBK currently being decoded
K0: Number of MBKs included in the calculation region of reliability of MTP prediction and a value equal to or greater than K
MTP (i); MTP value of the first MBK in GOB, 0 in FIXED
MTP_ (i): MTP pattern predicted from the MTP pattern one frame before, normally, the MTP pattern in the comparison region by motion compensation is used as the predicted pattern.
[0274]
With the above settings, for example, the similarity between MTP = 1 and MTP = 2 is the same except for MVD and FIL.
3 + 1 + 0 + 2 + 1 + 0 = 7 (points)
It becomes. So in that case,
smtp (1,2) = smtp (2,1) = 7
It becomes. Similarly, other combinations can be calculated.
[0275]
Next, based on the above result, MTP detection and error correction are performed under the following four conditions, for example.
1) RMTP0 <0.5
It is determined that the reliability of the MTP prediction is low and is suspended. That is, for the time being, it is determined that the current MTP value is correct, and the process proceeds to determination of the next attribute.
[0276]
2) RMTP0 ≥ 0.5 and SMTP <TMTP1
(1) It is determined that the current MTP pattern MTP (L) is a decoding error. Copy the MTP value from the predicted pattern. (TNFX1 is a value of about 0.3, for example)
(2) On the other hand, all MTPs having a similarity of 8 or more (difference of 2 or less) are referred to and the corresponding VLC is referred to.
(3) The VLC to be referred to and the bit stream string are compared by fuzzy matching processing, and the VLC having the highest matching degree is selected.
(4) If the matching degree meets a certain standard (0.8 or more), the VLC and MTP are adopted. If not, the first estimated MTP is used.
[0277]
3) RMTP0 ≥ 0.5 and TMTP1 ≤ SMTP <TMTP2
Since it cannot be determined that the current MTP value is a decoding error, it is suspended. That is, for the time being, it is determined that the current MTP value is correct, and the process proceeds to determination of the next attribute. (TMBA2 is a value of about 0.7, for example)
4) RMTP0 ≥ 0.5 and TMTP2 ≤ SMTP
It is determined that the current MTP value is a correct decoding result.
[0278]
(C) QSC error detection and correction
The QSC is fixed to 31 (quantization step 62) at all transmission rates of 32 kbps or less, and only the main region determined from region analysis in the target region priority mode is set to 16 (quantization step 32). Therefore, QSC information is not transmitted in the person mode. As a result, the QSC information of the GOB layer and the quantization scale change information in units of MBK are not required, so that no QSC error occurs.
[0279]
(D) MVD error detection and correction
Since MVD is expressed by a differential motion vector between adjacent MBKs in a frame, it is difficult to determine an error with the data format as it is. Therefore, a method of evaluating the MVD data after returning it to the original motion vector MV is taken. Since the MVD attribute data can be regarded as a signal value having continuous statistical properties in terms of time and space compared to other MBK attribute values, linear prediction from a past frame and the surrounding MBK Linear interpolation is possible. Therefore, first, when there is no region information, the motion vector MV is calculated according to the following equation (19).
[0280]
[Expression 7]
[0281]
In the above formula,
vx (L, M); horizontal motion vector for Lth MBK at M frame time
vy (L, M); vertical motion vector for the Lth MBK at M frame time
A: Subscript representing x or y
vA_ (L, M); Estimated value of motion vector for Lth MBK at M frame time
[0282]
a (i); linear interpolation coefficient in the frame
b (m); linear prediction coefficient between frames
u: Ratio between intraframe interpolation and interframe prediction (0 ≦ u ≦ 1)
K: number of MBKs in the surrounding MBK region including the MBK being decoded
p: number of past frames for performing linear prediction
The method of setting the surrounding MBK is the same as that in the MTP comparison area described above. The value of the estimated vector thus obtained is evaluated using the error evaluation formula of the following formula (20).
[0283]
[Equation 8]
[0284]
A determination is made as follows based on the error evaluation value E obtained by the equation (20).
1) E ≧ 20
(1) The decrypted MVD is determined to be an error and vA is replaced with vA_.
{Circle around (2)} The MVD corresponding to this is calculated, and the corresponding VLC is referred to within a range of ± 5 with that as the center value.
(3) The referenced VLC and the bit stream string are compared by fuzzy matching processing, and the VLC with the highest matching degree is selected.
(4) If the matching degree satisfies a certain standard (0.8 or more), the VLC and MVD are adopted. If not, the MVD of the first center value is adopted.
[0285]
2) 20> E ≧ 10
Hold. For the time being, the decrypted MVD is held.
3) 10> E ≧ 0
It is determined that the decrypted MVD is correct.
Next, when there is region information, the motion vector is calculated based on the following equation (21) instead of the equation (19), and the evaluation is performed in the same manner as described above.
[0286]
[Equation 9]
here,
vRA (L, Mm); average motion vector of the region at time m frames before
[0287]
(E) CBP error detection and correction
1) When there is no area information
In the motion compensation predictive encoding process, CBP data can be considered as a numerical value indicating the degree of temporal change in texture and color. However, since this CBP data does not have an algebraic structure that allows linear interpolation calculation like MVD, as shown in FIGS. 61 to 64, the CBP value is once converted into a YUV vector and then the same as MVD. Perform the evaluation calculation. Therefore, when converting into a YUV vector, calculation is performed according to the following equation (22).
[0288]
[Expression 10]
[0289]
here,
c (L, M); YUV vector for Lth MBK at M frame time
c_ (L, M); YUV vector estimate for Lth MBK at M frame time
ac (i); Linear interpolation coefficient in the frame
bc (m); Linear prediction coefficient between frames
uc: Ratio between intra-frame interpolation and inter-frame prediction (0 ≦ uc ≦ 1)
Kc: number of MBKs in the surrounding MBK region including the MBK being decoded
pc: number of past frames for linear prediction
[0290]
LN (i, m): A function for associating a number indicating the number of the i-th MBK in the comparison area at the M frame time and the address in the GOB, and if the comparison area is set, can be uniquely determined. it can
The method of setting the surrounding MBK is the same as that in the MTP comparison area described above. The value of the estimated vector thus obtained is evaluated using the error evaluation formula of the following formula (23).
[0291]
[Expression 11]
d1 (A, B); absolute value distance between vector A and vector B
[0292]
A determination is made as follows based on the error evaluation value E obtained by the equation (23). From the definition of YUV vector,
12 ≧ Ec ≧ 0
Therefore, the following determination is performed.
[0293]
A) Ec ≧ 7
(1) It is determined that the decoded CBP is an error, and c_ is replaced with c.
(2) The CBP is calculated within a range of ± 1 with the replaced c as the center value (a plurality of CBPs can exist for one c), and the corresponding VLC is referred to.
(3) The referenced VLC and the bit stream string are compared by fuzzy matching processing, and the VLC with the highest matching degree is selected.
(4) If the matching degree satisfies a certain standard (0.8 or more), the VLC and CBP are adopted. If not, the first central value CBP is adopted.
[0294]
B) 7> Ec ≧ 4
Hold. For the time being, the decrypted CBP is held.
C) 4> Ec ≧ 0
It is determined that the decrypted CBP is correct.
[0295]
2) When there is area information
Next, when there is region information, the YUV vector is calculated based on the following equation (24) instead of the equation (22), and the evaluation is performed in the same manner as described above.
[0296]
[Expression 12]
cR (L, Mm); YUV vector of motion compensation area at time before m frames
However, it is desirable to set the value of uc to a value slightly smaller than the value when there is no area information. On the contrary, pc is set a little larger.
[0297]
(F) Processing of pending matters
Now, as a result of detecting five attributes and evaluating errors as described above, for example, when three or more attributes to be held are generated, the error-corrected attribute is limited only to the attribute in which the hold appears. Replace with the value, refer to VLC, and evaluate again.
[0298]
[B-4] Signal level error correction
The pattern level error correction described so far is error correction depending on the encoding attribute in MBK units, and is not means for evaluating the value of the image signal itself. The image signal can be obtained only when the bit stream data of the BLK layer is decoded at the code level and restored as a quantized DCT coefficient block. Therefore, error correction at the level of the image signal restored in this way will be described next.
[0299]
(1) Error correction based on the characteristics of block pixels
(A) Error detection
Normally, a decoding error in the BLK layer leads to a decoding error of the DC component of the quantized DCT coefficient block due to grammatical restrictions and the nature of a VLC tree code. As a result, even if MBK is grammatically decoded, its color (the DC component of the UV block is dominant) and texture are likely to be very different from the surroundings (see FIG. 66). ).
[0300]
On the other hand, as shown in FIG. 65 (b) as a normal image signal, a color different from that of the surrounding blocks is accidentally generated only in a tile-like pixel on the pixel block grid (see also FIG. 65 (a)). It is thought that there is very little probability. This way of thinking can be said that the reliability is still higher when the MTP of the target MBK indicates INTER. This is because there is a high possibility of being normally determined to be INTRA when the change in pixel value is MBK. Therefore, here, an error is detected as follows by paying attention to the color signal.
[0301]
1) As the most straightforward method, inverse quantization and inverse DCT are performed to restore the image signal block, and then the color is evaluated. This evaluation is based on a comparison between MBK estimated by linear interpolation from surrounding MBKs and motion compensated linear prediction from MBKs of past frames, and MBK restored from the bitstream at the present time. Specifically, error evaluation calculation is performed according to the following equations (25) to (29).
[0302]
[Formula 13]
[0303]
However, each symbol is as follows.
d1 (A, B); absolute value distance between vector A and vector B
Cb: color vector of restored MBK based on bitstream
Ce: Estimated MBK color vector
Y $: Average pixel value of Y block
U $: Average pixel value of U block
V $: Average pixel value of V block
[0304]
YBLK $ (n, k); k-th pixel value of the n-th Y block in MBK (n = 1 to 4, k = 1 to 64)
UBLK $ (k); kth pixel value of U block in MBK
VBLK $ (k); kth pixel value of V block in MBK
[0305]
For the error evaluation value Ec obtained as a result of the above calculation,
765 (= 255 × 3) ≧ Ec ≧ 0
In this range, for example, when Ec> 400, it is determined that there is an error. Note that the MBK prediction estimation calculation is performed in the same manner as in 2) below.
[0306]
2) A YUV vector is constructed using only the DC component of the quantized DC coefficient block, and an error between the linear prediction from the surrounding MBK and the YUV vector estimated by the motion compensation prediction from the past frame is expressed by the following equation (30). Therefore, calculate and evaluate.
[0307]
[Expression 14]
[0308]
However,
c (L, M); YUV vector for L-th MBK at M frame time c (L, M) = (Y, U, V), Y is the average of DC components of four BLKs, U and V are DC components of UBLK and VBLK, respectively
cR (L, Mm); if there is region information, it is the YUV vector of the motion compensation region at time m frames before, and if there is no region information, it is equivalent to c (L, M)
c_ (L, M); YUV vector estimate for Lth MBK at M frame time
ac (i); Linear interpolation coefficient in the frame
bc (m); Linear prediction coefficient between frames
uc: Ratio between intra-frame interpolation and inter-frame prediction (0 ≦ uc ≦ 1)
Kc: number of MBKs in the surrounding MBK region including the MBK being decoded
pc: number of past frames for linear prediction
[0309]
The method of setting the surrounding MBK is in accordance with the method of setting the comparison area of the MBK attribute in the next item. The value of the estimated vector thus obtained is evaluated using the error evaluation formula of the following formula (31). The error determination conditions are the same as in 1).
[0310]
[Expression 15]
[0311]
(B) Correction of errors
When it is determined that the decoded BLK is an error, it is replaced with an estimated value. On the other hand, in order to decode the next BLK, it is necessary to determine the bitstream decoding restart position at the code level. For this purpose, the EOB detection process in code level error correction is activated. At this time, if the number of reproduced MBKs (including corrections) is 22 or more in the GOB (the number of 2 columns in the 3 column blocks forming the GOB is 22), the remaining All MBKs are replaced with motion compensation prediction using region information.
[0312]
(2) Prevention of error propagation due to periodic forced intra
Even after performing error correction as shown in the previous section, if decoding processing by frame addition is continued as it is, normal image reproduction becomes difficult due to accumulation of error propagation. Therefore, the following error propagation prevention measures are considered.
[0313]
(A) By periodically inserting the forced intra MBK based on the area information, it is possible to prevent image corruption of important parts. In particular, as shown in FIG. 67, in the face portion, forced intra blocks are assigned to the mouth and ears in a concentrated manner and are cyclically circulated while suppressing an increase in data amount.
[0314]
(B) After the error correction is performed on the
[0315]
[B-5] Strategic control of error correction using mode information
As described above, the mode information set in the
[0316]
(1) Operating environment
(A) Car interior fixing
By setting the
(B) Movable in the car
There is a possibility of both a portrait mode and a landscape mode, but in the portrait mode, it is the same as in the above-described case of fixing in a car. However, the data in the
[0317]
(C) Indoor fixing
A
(D) Indoor movable
The error correction function can be activated only in the person mode.
[0318]
(2) Subject
As described in the use environment described above, the mode is divided into the person mode and the landscape mode, and it is difficult to specify the shape and color of the landscape mode. Therefore, it is difficult to activate the error correction function other than relying on the
[0319]
(3) Encoding control mode
Since it is not necessary to correct errors in real time in a mode different from a normal real-time moving image playback request, for example, still image mode or video mail mode, it is sufficient to start ARQ.
[0320]
(4) Judgment of error occurrence state in communication channel
When the image cannot be corrected by other error correction means and decoding is stopped, one of the following request signals is forcibly transmitted from the
[0321]
(A) Retransmission request for video transmission starting from forced intra picture
This is the same as retransmission (ARQ) used in the existing scheme. However, ultra-low rate transmission leads to a significant increase in delay time and frequent picture freezes, so it is rarely used especially in real-time transmission of 32 kbps or less. On the other hand, this request is applied in the case of non-real time transmission such as the video mail mode.
[0322]
(B) New restart of video transmission starting from forced intra picture
When the decoding process is stopped, a prediction image is generated from the past frame for the remaining MBK, and the picture is frozen. Until the forced intra picture is normally sent (start position is confirmed by PSC header), the data in the input buffer is continuously discarded.
(C) Request for transmission of quasi-moving image only by forced intra picture.
(D) Motion parameter transmission request in model-based encoding.
[0323]
[B-6] Recognition level error correction
(1) Identification of target area
The target area detection result and the mode control information set on the
[0324]
(A) Selecting a basic template
Since the same set of binary templates is provided in advance between the
[0325]
(B) Deformation of basic template
1) Centering
Centering is performed with a 2D vector (mx, my) representing the horizontal and vertical shift amounts of the template center in pixel units.
2) Scaling
The basic template is enlarged / reduced by the ratio r with the center obtained as described above as the origin.
3) Correction
Modifications such as width, height, and posture angle are partially applied according to the shape parameters unique to each basic template.
[0326]
(C) Identification of site
When the category of the object is known from the mode information and the template selection information, it is possible to know which part in the template corresponds to what part of the object. For example, when a person's upper body template is selected in the person mode, as shown in FIG. 16 used in the description of the
[0327]
(2) Starting error judgment
In this embodiment, the cause of the error is specified as a bit error at the code level, and the image correction process is described. Therefore, error detection itself is not performed at the recognition level, but at the signal level, code level, or pattern level. The error correction of the recognition level is to provide various properties reflected in the region information and the image of the target object based on the region information, particularly when the error is evaluated by them. Therefore, the activation of the error correction process at the recognition level is performed by another level module.
[0328]
(3) Error correction using region information
(A) 2D motion compensation by using region information
If it is known in which region the MBK currently being decoded is included, motion compensation can be performed using the motion vector of the MBK in the region that has already been decoded, as described in the explanation of pattern level error correction. it can. For example, if it is determined that the MBK being decoded is included in the face area of the head, a motion compensated prediction MBK can be created using the average motion vector of the head.
[0329]
(B) Modification using part information
If the area is known, it is possible to correct not only motion but also errors in color, brightness, and texture. For example, if the skin color is analyzed from the face area information by the previous frame, errors can be determined and corrected by linear estimation values and error evaluation as described in the section of signal level and pattern level. It becomes like this.
[0330]
(C) Representation of region information
The expression of the area information is based on the same template expression method as described in the explanation on the
[0331]
(D) Calculation of relative position in person area
As described above, the basic template before the transformation is described as shown in FIG. Thereby, the positions of all parts can be expressed as two-dimensional coordinates in the basic template.
[0332]
(4) Error correction by background memory
If the area information becomes clear, the background area can be specified. Therefore, the background area image information is stored in the
[0333]
[B-7] Person memory and 3D model-based method
(1) Registration of person images
The first intra picture can be labeled with a person name and stored in the
[0334]
(2) Recalling a person image
The person image information stored by registering in the
[0335]
(3) Model-based decoding mode
The person image is generated as an auxiliary image reproducing means when a transmission error becomes severe by texture mapping the above-mentioned person image to a 3D model of the person and adding 3D motion information. This 3D motion information may be given to the
[0336]
(4) Spatial limitation based on 3D model
If 3D motion information is given from the
[0337]
[B-8] Error correction strategy
Based on the error determination results at the above levels, the error correction function that is finally exercised can be summarized as follows. Each level number is a value that predicts the degree of fidelity of the reproduced moving image to the original image.
[0338]
<
<
<
<
<
<
[0339]
[B-9] Description of decoding operation according to flowchart
As described above, regarding the error correction function performed in the decoding process, in the actual decoding process, each function is performed according to the flowcharts of the programs shown in FIGS. The outline of the overall flow will be described below.
[0340]
That is, first, a fuzzy matching process is performed by the
[0341]
Next, the use environment, the object (subject), and the decoding mode are set by the
[0342]
First, the
[0343]
Thereafter, after steps B30 to B33, the
[0344]
If an error has occurred and LBLK is 22 or more, motion compensation estimation is performed for the remaining MBK in the GOB, and thereafter, the GOB ends (steps B40 and B41), and an error occurs. However, if LBLK is 22 or less or no error has occurred, ESC detection and correction and EOB detection and correction are performed, and then the error comprehensive judgment routine shown in FIG. B42 to B44), the decoding process is continued by repeating this.
[0345]
According to the present embodiment, when the
[0346]
Further, according to the present embodiment, on the
[Brief description of the drawings]
FIG. 1 is a block configuration diagram of a decoder showing an embodiment of the present invention.
FIG. 2 is a block configuration diagram of an encoder.
FIG. 3 is a conceptual diagram of an encoding process.
FIG. 4 is a conceptual diagram of a decoding process.
FIG. 5 is a flowchart of an encoding processing program (part 1).
FIG. 6 is a flowchart of an encoding processing program (part 2).
FIG. 7 is a flowchart of an encoding processing program (part 3).
FIG. 8 is a flowchart of a decryption processing program (part 1).
FIG. 9 is a flowchart of a decryption processing program (part 2).
FIG. 10 is a flowchart (part 3) of the decryption processing program.
FIG. 11 is a flowchart of a comprehensive error determination routine.
FIG. 12 is an explanatory diagram when the camera is fixed in the vehicle as a use environment.
FIG. 13 is an explanatory diagram of a three-dimensional positional relationship between persons in a vehicle
FIG. 14 shows examples of camera images inside, inside and outside of a car including a person.
FIG. 15 is a diagram for explaining the effect of setting an area by a distance scale.
FIG. 16 is an explanatory diagram of a template and a feature area of a person front view
FIG. 17 is an explanatory diagram when compensating for transmission delay in the model base mode;
FIG. Explanatory drawing of the structure for performing communication between H.261 terminals
FIG. 19 is a state transition diagram of mode control related to the usage environment and subject.
FIG. Example of macroblock attribute array based on H.261 syntax (part 1)
FIG. Example of macroblock attribute array based on H.261 syntax (part 2)
FIG. Example of macroblock attribute array based on H.261 syntax (part 3)
FIG. 23 is a flowchart of a routine for moving area extraction and template determination;
FIG. 24 is a diagram for explaining the action of moving area extraction and template determination.
FIG. 25 is a diagram for explaining the operation of a basic template and its deformation.
FIG. 26 is a diagram illustrating the principle of ultra-low rate based on person area extraction.
FIGS. 27A and 27B are examples of GOB and MBK grids in CIF format and FIG. 27B background memory images.
FIG. 28 is a diagram for explaining the effect of using and updating the background memory.
FIG. 29 is a chart for explaining the concept of overall coding control;
FIG. H.261 standard bitstream syntax
FIG. 31 is an explanatory diagram of a GOB number and header (GBSC) addition unit.
FIG. 32 is an explanatory diagram for comparison between the case where the GOB header is reduced and the case where the GOB header is not reduced.
FIG. Comparison table of variable length code (VLC) of MTP in H.261 standard
FIG. 34 is a correspondence table between the occurrence probability and code length of each MTP value for a human image.
FIG. 35: INTER / INTRA judgment characteristic diagram
FIG. 36 is a motion block determination characteristic diagram.
FIG. 37 is a flowchart of an MBA prediction routine.
FIG. 38 is an explanatory diagram showing the correspondence between MBA and NFX.
FIG. 39 is an explanatory diagram of MBA pattern prediction from the previous frame.
FIG. 40 is a flowchart of a routine for reducing MTP information.
FIG. 41 is an explanatory diagram of MTP code amount reduction using the average motion vector for each region.
FIG. 42 is an explanatory diagram of quantization by region and quantization template in the person mode.
FIG. 43 is an explanatory diagram of model-based transmission of a quantization template.
FIG. 44 is a flowchart of a QSC setting routine.
FIG. 45 is a flowchart of a routine for reducing MVD information.
FIG. 46 is an explanatory diagram of MVD code amount reduction by the average motion vector for each region.
FIG. 47 is a flowchart of a CBP prediction and evaluation routine.
FIG. 48 is an explanatory diagram of motion compensation prediction for each region of CBP.
FIG. 49 is an explanatory diagram when performing interleaving for MBK attribute prediction
FIG. 50 is an explanatory diagram of a transmission form of a required number of bits and a global check.
FIG. 51 is an explanatory diagram of a fuzzy matching process of PSC.
FIG. 52 is an explanatory diagram of binary tree combination and bitstream generation using syntax.
FIG. 53 shows an example of misinterpretation caused by a bit error when MBSTUFF is used.
FIG. 54 is an explanatory diagram of continuity between frames in a hierarchical encoding attribute (encoder side)
FIG. 55 is an explanatory diagram of continuity between frames in a hierarchical encoding attribute (decoder side)
FIG. 56 is a flowchart of an MBA error detection and correction routine.
FIG. 57 is an explanatory diagram showing the correspondence between MBA and NFX
FIG. 58 is an explanatory diagram of MBA pattern prediction from the previous frame.
FIG. 59 is an explanatory diagram of evaluation of a decoding result based on MTP similarity calculation;
FIG. 60 is an explanatory diagram showing an example of a scan order in evaluation calculation
FIG. 61 is a flowchart of a CBP error detection and correction routine.
FIG. 62 is an explanatory diagram showing the definition of CBP.
FIG. 63 is an explanatory diagram showing a process of converting a CBP value into a YUV vector.
FIG. 64 is an explanatory diagram of YUV vector prediction;
FIG. 65 is an explanatory diagram showing an example of (a) GOB and MBK lattices in the CIF format and (b) block-shaped error patterns.
FIG. 66 is an explanatory diagram showing an influence on a bitstream interpretation error and a signal error caused by a bit error at an image signal level;
FIG. 67 is an explanatory diagram showing an example of a periodic dispersion type forced INTRA by region;
FIG. 68 is a flowchart of an area reproduction or pseudo area setting routine;
[Explanation of symbols]
1 is an encoder (encoder), 2 is a decoder (decoder), 3 is a camera, 5 is an A / D converter, 7 is an orthogonal transformer, 8 is a subtractor, and 9 is a quantizer. 10 is a channel encoder, 11 is a FIFO buffer, 12 is a channel, 13 is an inverse quantizer, 14 is an inverse transformer, 15 is an adder, 16 is a prediction memory, 17 is a loop filter, and 20 is a motion. Detection unit, 21 is an encoding control unit, 22 is an attribute memory, 23 is an attribute prediction unit, 24 is an encoding processing unit, 25 is a region extraction / recognition processing unit, 26 is a target region extraction unit, 27 is a template database, 28 Is a 2D template matching unit, 29 is a model-based prediction unit, 30 is a three-dimensional shape database, 31 is a person memory (person information storage unit), 32 is a background memory (background information storage unit), 33 is a mode control unit, and 34 is Human interface Chair, 35 is a channel decoding unit, 36 is a decoding processing unit, 37 is a pattern / signal level error correction unit, 38 is a recognition level processing unit, 39 is a memory (storage means), 39 a is a mode information unit, 39b is an area information part, 39c is a pattern attribute part, 39d is a 2D motion vector part, 39e is a personal identification information part, 41 is a D / A converter, 42 is a FIFO buffer, 43 is a parser, 44 is a fuzzy matching part, 45 Is a storage unit, 46 is a comparison table, 47 is an error determination unit, 48 is an inverse quantization unit, 49 is an inverse transform unit, 50 is an error determination / correction unit, 52 is an adder, 53 is a prediction memory, and 54 is motion compensation. , 55 is a loop filter, 57 is a frame memory, 58 is a pixel value estimation unit, 59 is an image estimation unit, 60 is a motion vector estimation unit, 61 is an attribute estimation unit, 62 is a decoding control unit, and 63 is model-based prediction.
Claims (4)
1フレーム分の画素データを複数のブロックに分割した形式で示す前記画像信号に含まれるブロックの位置を示したMBA(マクロブロックアドレス)データを検出してそのMBAデータの定義に基づいてフレーム間変化の有無を示す固定(FXD)/非固定(NFX)データに変換するNFX変換手段と、
このNFX変換手段による1フレーム前の変換結果に基づいて現在復号中のフレームのNFXデータの空間的パターンを予測する予測手段と、
この予測手段により予測されたNFXデータパターンと復号結果との間の類似度を計算すると共に既に復号が完了した隣接する領域における類似度で定義される信頼度を計算する演算手段と、
この演算手段の計算結果に基づいて前記類似度および信頼度が高い方が高い評価を与えるように復号結果を評価する評価手段と、
この評価手段による評価結果が悪い場合には1フレーム前で予測したデータに基づく空間的なパターンに置き換えることで復号結果の誤りを訂正する誤り訂正手段と
を具備したことを特徴とする画像信号の復号化装置。In an image signal decoding apparatus which receives an image signal transmitted as an encoded bit stream compressed with a variable length code and decodes the image signal to reproduce the image signal,
MBA (macroblock address) data indicating the position of a block included in the image signal indicated in a format in which pixel data for one frame is divided into a plurality of blocks is detected, and the change between frames is performed based on the definition of the MBA data. NFX conversion means for converting into fixed (FXD) / non-fixed (NFX) data indicating the presence or absence of
Prediction means for predicting the spatial pattern of the NFX data of the currently decoded frame based on the conversion result of the previous frame by the NFX conversion means;
An arithmetic means for calculating the similarity between the NFX data pattern predicted by the prediction means and the decoding result and calculating the reliability defined by the similarity in the adjacent area where the decoding has already been completed;
Evaluation means for evaluating the decoding result so that the higher the similarity and the reliability are based on the calculation result of the calculation means,
If the evaluation result by the evaluation means is bad, the image signal comprises: an error correction means for correcting an error in the decoding result by replacing with a spatial pattern based on data predicted one frame before Decoding device.
1フレーム分の画素データを複数のブロックに分割した形式で示す前記画像信号に含まれるブロックの属性をコード化して示したMTP(マクロブロックタイプ)データを検出してそのMTPデータの値に基づいてMTPパターンを生成するMTP検出手段と、
このMTP検出手段により検出された1フレーム前のMTPパターンに対して対象領域を動きベクトルに基づいて動き補償して比較領域を設定する比較領域設定手段と、
この比較領域設定手段により設定された比較領域内での前記1フレーム前のMTPデータと復号中のMTPデータとの類似度を前記コード化して示したMTPのコード値が示す複数の属性データの一致度合の点数として計算すると共に既に復号が完了した隣接する領域における類似度で定義される信頼度を計算する演算手段と、
この演算手段の計算結果に基づいて前記類似度および信頼度が高い方が高い評価を与えるように復号結果を評価する評価手段と、
この評価手段による評価結果が悪い場合には1フレーム前の予測パターンに置き換えることで復号結果の誤りを訂正する誤り訂正手段とを具備したことを特徴とする画像信号の復号化装置。In an image signal decoding apparatus which receives an image signal transmitted as an encoded bit stream compressed with a variable length code and decodes the image signal to reproduce the image signal,
Based on the value of the MTP data detected by detecting MTP (macroblock type) data indicating the attribute of the block included in the image signal in the form of pixel data for one frame divided into a plurality of blocks. MTP detection means for generating an MTP pattern;
Comparison area setting means for setting a comparison area by performing motion compensation on the target area based on a motion vector with respect to the MTP pattern one frame before detected by the MTP detection means;
Matching of a plurality of attribute data indicated by the MTP code value indicating the similarity between the MTP data one frame before and the MTP data being decoded in the comparison area set by the comparison area setting means An arithmetic means for calculating the degree of reliability and calculating the reliability defined by the similarity in the adjacent region that has already been decoded;
Evaluation means for evaluating the decoding result so that the higher the similarity and the reliability are based on the calculation result of the calculation means,
An image signal decoding apparatus comprising: an error correction unit that corrects an error in a decoding result by replacing with a prediction pattern one frame before when the evaluation result by the evaluation unit is bad.
1フレーム分の画素データを複数のブロックに分割した形式で示す前記画像信号に含まれるブロックの差分動きベクトルを示したMVDデータを検出してそのMVDデータを動きベクトルとしてのMVデータに変換するMV変換手段と、
この変換手段により変換された過去のフレームあるいは周囲のブロックのMVデータから復号中の動きベクトルを推定した推定MVデータを求めるMVデータ推定手段と、
このMVデータ推定手段により求められた推定MVデータと現在復号中のMVデータとを比較してその誤差量が高いほど誤りであるとして復号結果を評価し、誤りの場合に予測ベクトルが正しいと判断してそれを誤り訂正の結果とする誤り訂正手段とを具備したことを特徴とする画像信号の復号化装置。In an image signal decoding apparatus which receives an image signal transmitted as an encoded bit stream compressed with a variable length code and decodes the image signal to reproduce the image signal,
MV for detecting MVD data indicating a differential motion vector of a block included in the image signal in a form in which pixel data for one frame is divided into a plurality of blocks, and converting the MVD data into MV data as a motion vector Conversion means;
MV data estimating means for obtaining estimated MV data obtained by estimating a motion vector being decoded from MV data of a past frame or surrounding blocks converted by the converting means;
The MV data is compared with the estimated MV data obtained by the estimation means and MV data currently being decoded to be false higher the error amount evaluate the decoded results, and correct the predicted vector in the case of an error An image signal decoding apparatus comprising: error correction means for judging and using the result as an error correction result .
1フレーム分の画素データを複数のブロックに分割した形式で示す前記画像信号に含まれるブロックの色情報をコード化して示したCBPデータを検出してそのCBPデータを数値比較可能なYUVベクトルに変換するYUVベクトル変換手段と、
このYUVベクトル変換手段により変換された1フレーム前のYUVベクトルに対して対象領域を動きベクトルに基づいて動き補償して比較領域を設定する比較領域設定手段と、
この比較領域設定手段により設定された比較領域内で前記YUVベクトル変換手段により変換された過去のフレームのYUVベクトルあるいは周囲のブロックのYUVベクトルの値から復号中のブロックのYUVベクトルを推定するYUVベクトル推定手段と、
このYUVベクトル推定手段により求められた推定YUVベクトルと現在復号中のYUVベクトルとを比較してその誤差評価値を計算し、その評価結果が高いほど誤りであるとして復号結果を評価し、その評価結果が誤りであると判断したときには推定値の方が誤り訂正値として正しいとみなして推定値に置き換えることで復号したブロックのCBPデータの誤り訂正を行う誤り訂正手段とを具備したことを特徴とする画像信号の復号化装置。In an image signal decoding apparatus which receives an image signal transmitted as an encoded bit stream compressed with a variable length code and decodes the image signal to reproduce the image signal,
CBP data obtained by encoding color information of a block included in the image signal in a form in which pixel data for one frame is divided into a plurality of blocks is detected, and the CBP data is converted into a YUV vector that can be numerically compared. YUV vector conversion means for
A comparison area setting means for setting a comparison area by performing motion compensation on the target area based on a motion vector for the YUV vector one frame before converted by the YUV vector conversion means;
The YUV vector for estimating the YUV vector of the block being decoded from the YUV vector of the past frame converted by the YUV vector conversion means or the value of the YUV vector of the surrounding blocks within the comparison area set by the comparison area setting means An estimation means;
The error evaluation value is calculated by comparing the estimated YUV vector obtained by this YUV vector estimation means with the YUV vector currently being decoded, and the higher the evaluation result is, the more the error is evaluated, and the decoding result is evaluated. When it is determined that the result is an error, the estimated value is regarded as correct as an error correction value and is replaced with the estimated value, thereby including error correction means for correcting the error of the CBP data of the decoded block. An image signal decoding apparatus.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25210795A JP3769786B2 (en) | 1995-09-29 | 1995-09-29 | Image signal decoding apparatus |
US08/722,559 US5959672A (en) | 1995-09-29 | 1996-09-27 | Picture signal encoding system, picture signal decoding system and picture recognition system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25210795A JP3769786B2 (en) | 1995-09-29 | 1995-09-29 | Image signal decoding apparatus |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004169169A Division JP4013921B2 (en) | 2004-06-07 | 2004-06-07 | Image signal decoding apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0998428A JPH0998428A (en) | 1997-04-08 |
JP3769786B2 true JP3769786B2 (en) | 2006-04-26 |
Family
ID=17232603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25210795A Expired - Fee Related JP3769786B2 (en) | 1995-09-29 | 1995-09-29 | Image signal decoding apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3769786B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3385320B2 (en) | 2001-03-06 | 2003-03-10 | シャープ株式会社 | Animation playback terminal, animation playback method, and program therefor |
WO2005096162A1 (en) * | 2004-03-18 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | Arbitration method and device |
KR101271876B1 (en) * | 2004-03-23 | 2013-06-10 | 더 리젠트스 오브 더 유니이버시티 오브 캘리포니아 | Apparatus and method for improving reliability of collected sensor data over a network |
US20060268996A1 (en) * | 2005-05-13 | 2006-11-30 | Sethi Sumeet S | Error recovery using in band error patterns |
JP2009284298A (en) * | 2008-05-23 | 2009-12-03 | Hitachi Ltd | Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method and moving image decoding method |
JP2011217294A (en) * | 2010-04-02 | 2011-10-27 | Sharp Corp | Noise reduction processing apparatus |
US11140357B2 (en) | 2018-04-13 | 2021-10-05 | Sony Corporation | Multi-direction communication apparatus and multi-direction communication method |
CN111178167B (en) * | 2019-12-12 | 2023-07-25 | 咪咕文化科技有限公司 | Method and device for checking lasting lens, electronic equipment and storage medium |
-
1995
- 1995-09-29 JP JP25210795A patent/JP3769786B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0998428A (en) | 1997-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5959672A (en) | Picture signal encoding system, picture signal decoding system and picture recognition system | |
EP0731608B1 (en) | Image encoder and decoder with area selection | |
JP3197420B2 (en) | Image coding device | |
US6798834B1 (en) | Image coding apparatus with segment classification and segmentation-type motion prediction circuit | |
US6603815B2 (en) | Video data processing apparatus, video data encoding apparatus, and methods thereof | |
US6633678B2 (en) | Image predictive decoding method, image predictive decoding apparatus, image predictive coding method, image predictive coding apparatus, and data storage media | |
JP4261630B2 (en) | Image encoding apparatus and method, and computer-readable recording medium on which an image encoding program is recorded | |
JP4687658B2 (en) | Image recognition device | |
JP2008054335A (en) | Method for encoding images, and image coder | |
US20080002774A1 (en) | Motion vector search method and motion vector search apparatus | |
JP3223962B2 (en) | Image decoding method | |
JPH07193822A (en) | Motion prediction processor and device therefor | |
JP3769786B2 (en) | Image signal decoding apparatus | |
US20020172282A1 (en) | Signal coding apparatus and method, signal recording medium, and signal transmitting method | |
EP1723800A1 (en) | A video signal encoder, a video signal processor, a video signal distribution system and methods of operation therefor | |
JP4013921B2 (en) | Image signal decoding apparatus | |
EP1460854A1 (en) | Moving picture compression/coding apparatus and motion vector detection method | |
JPH0998416A (en) | Encoder for image signal and recognition device for image | |
JPH09172378A (en) | Method and device for image processing using local quantization of model base | |
JP4052285B2 (en) | Image signal encoding apparatus | |
JP2014514808A (en) | Method for reconstructing and encoding image blocks | |
JPH06233292A (en) | Picture signal transmitting device | |
JP4136403B2 (en) | Image processing apparatus, image processing method, program, and storage medium | |
US6501795B1 (en) | Adaptable intraframe/interframe motion video encoder | |
JPH11298902A (en) | Image coder and image coding method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040607 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050530 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050603 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060130 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090217 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140217 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |