(57)【要約】  【課題】  画面を分割し各小領域毎に符号化あるいは復号化を行う分割画像回路において、画面分割による画像圧縮率の低下を防ぎ、しかも小型で低コストの画像符号化装置あるいは画像復号化装置を提供することを目的とする。  【解決手段】  入力された画像を所定の形状の小領域に分割する画像分割回路８０１、分割した各小領域を符号化する小符号化装置１１０１−１〜４、小領域の符号を統合する符号統合回路８０３、各小符号化装置が局所復号化した画像を格納する共有メモリ回路１１０２により構成される。  【効果】  本発明によれば、画像の符号化効率をほとんど落すことなく回路各所の動作速度の低速化が図れるため、小型・低価格の画像符号化装置あるいは画像復号化装置あるいは画像符号化復号化装置を実現することができる。【選択図】  図１１
2004320804.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を複数のブロックに分割し、既に符号化された信号から再生した画像を用いて分割された該ブロックの予測画像を生成し、該入力画像と該予測画像の差分画像を生成し、該差分画像を符号化する画像符号化装置において、入力画像を互いに隣接する領域どおしが重なる領域を有する複数個（N個）の小画像に分割する手段、分割された各小画像に対し先の予測画像生成、符号化処理および画像の再生を実行するN個の符号化処理部、各符号化処理部にて再生した画像を関連する符号化処理部に配送する共有情報処理部、各符号化処理部にて生成された符号列をN個以下の符号化列に変換する符号合成部を具備することを特徴とする画像符号化装置。
【請求項２】
請求項１に記載の画像符号化装置において、１つの符号化処理部において生成された符号量を他の符号化処理部に通知する手段、他の符号化処理部より通知された符号量に応じて自らの発生する符号量を制御する手段を具備することを特徴とする画像符号化装置。
【請求項３】
インターレース走査構造を持つ画像を入力画像とし、予測画像生成方法としてフィールド単位に動き補償した予測画像とフレーム単位に動き補償した予測画像とを切り替える方法を持つ請求項１に記載の画像符号化装置において、フィールド単位に検出した動き補償ベクトルからフレーム単位の動きベクトルを生成する手段を具備することを特徴とする画像符号化装置。
【請求項４】
請求項１に記載の画像符号化装置において、２つの時刻とその時刻の間に発生する符号量を入力する手段、指定された時間の間に発生した符号量を計測する手段、該計測手段により計測された符号量が指定された符号量に一致しないときは符号量を増加あるいは削減手段を具備することを特徴とする画像符号化装置。
【請求項５】
請求項１に記載の画像符号化装置において、画面内の重み係数を入力する手段、該重み係数度に応じて符号量の画面内での配分を設定する手段、設定された符号量になるように発生符号量を制御する手段を具備することを特徴とする画像符号化装置。
【請求項６】
入力された符号を解読し、差分画像を生成し、該入力符号にて別途指定された情報により既に復号された画像から予測画像生成し、該差分画像と該予測画像を加算して新たな復号画像を生成する画像復号化装置において、入力符号を復号化したときの画像が互いに隣接する領域と重なる領域を有する複数個（M個）の符号に分割する手段、分割された符号に対し先の予測画像生成および復号化化処理を実行するM個の復号化処理部、各復号化処理部にて復号した画像を関連する復号化処理部に配送する共有復号情報処理部、各復号化処理部にて復号された画像を１つの画像に合成する画像合成部を具備することを特徴とする画像復号化装置。
【請求項７】
請求項６に記載の画像復号化装置において、復号化処理の進捗量を算出する手段、得られた進捗量と基準となる進捗量を比較する手段、進捗量が基準に満たないときに処理を簡略化させる手段を具備することを特徴とする画像復号化装置。
【請求項８】
請求項１および請求項６において画像の分割数と符号の分割数を同じにし、それぞれの符号化処理部、復号化処理部の機能を化ね備える処理手段を具備することを特徴とする画像符号化復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置あるいは復号化装置もしくはこれら両者の機能を兼ね備えた画像符号復号化装置に係わり、特にデジタル放送あるいはケーブルテレビジョン等の映像符号化装置あるいは映像受信端末や、画像蓄積装置におけるリアルタイム符号入力装置、テレビ電話あるいはテレビ会議などの映像通信装置の符号化復号化部分に適用される。
【背景技術】
【０００２】
画像信号をデジタル化してそのまま伝送や蓄積するには通常のテレビジョン（ＴＶ）信号で100Mbps以上、ハイデフィニションＴＶ（ＨＤＴＶ）では1Gbps程度の伝送路あるいは蓄積媒体が必要になる。そのため画像信号の冗長度を削減し、画像の情報量を1/10から1/1000程度までに低減する高能率符号化の研究が盛んになされている。その代表的なものに、インターナショナル  オーガニゼーション  スタンダーダイゼーション(ISO)が標準化を行ったISO/IEC 11172-2（92.11、通称MPEG1）とその拡張であるISO/IEC CD 13818-2（93.11、通称MPEG2）がある。以下、MPEG1とMPEG2を総称してMPEGと呼び、MPEGを中心に従来の技術を説明する。なお、これらの詳細については上記のISO/IEC 11172-2およびISO/IEC CD 13818-2に詳しい説明が記載されているため、本説明ではこの概略のみを説明する。
【０００３】
図１はMPEG1,2を含む従来の符号化装置のブロック図である。入力されたデジタル画像２はバッファ３に一時的に蓄えられた後、マクロブロックと呼ばれる輝度信号１６画素ｘ１６画素、色差信号R-Y ８ｘ８画素、B-Y ８ｘ８画素からなる処理単位に分割される。各マクロブロックは動き補償(MC)および離散コサイン変換(DCT)回路４にて、画面の動きを補正した予測信号との差分がとらた後、離散コサイン変換され周波数成分の一種であるＤＣＴ係数８が得られる。ＤＣＴの演算はマクロブロックの輝度信号をさらに４分割したブロック（色輝度とも８画素ｘ８ライン）単位に行われる。ＤＣＴ係数８とMC/DCT処理時に得られた動きベクトル９等の付加情報は可変長符号化(VLC)回路５に入力され、それぞれあらかじめ規定された順番に規定された符号に変換され符号バッファ６に入力される。符号バッファからは外部の伝送機器あるいは蓄積装置の読み出し速度に合わせた速度で符号７が読みだされる。符号バッファでは一定周期で符号量計算し、発生符号量１０を符号量制御回路２１２に通知する。符号量制御回路では符号量が所定の値になるように量子化ステップサイズ２１３等を調節し、これらの制御情報をMC/DCT回路４に通知する。
【０００４】
図２に上記に示した従来例のMC/DCT回路４の詳細図を示す。図２を説明する前に図３を用いてMPEG1,2における動き補償動作を説明する。MPEG1およびMPEG2ではＴＶの画面をＩピクチャ、Ｐピクチャ、Ｂピクチャの３種類に分類した後に符号化を行う。Ｉピクチャは画面をマクロブロック、ブロックに分割した後、これらのブロックに対し直接ＤＣＴを施す符号化方法である。このため、以下に説明するＰ、Ｂピクチャとは異なりＩピクチャの情報単独で１つの画面を再生することができる。一方Ｐ、Ｂピクチャは事前に符号化した画面を元に予測画像を作成し、予測画像との差分に対しＤＣＴを施し符号化を行う。
【０００５】
図３はＢピクチャにおける予測画像生成の方法を説明するための図である。図３において前方(forward)参照画面と後方(backward)参照画面は先に符号化を行った画像であり、前方参照画面は今から符号化する符号化画面に対して時間的に前に位置し、後方参照画面は時間的に後に位置する。符号化画面の１つの符号化マクロブロックに対する予測画像を生成するときには、前方、後方各参照画面の同じ位置の周辺で符号化マクロブロックに最も類似した部分を探し、予測マクロブロックを生成する。画面内での符号化マクロブロックの位置と予測マクロブロックの位置との差分を動きベクトルと呼ぶ。予測信号の生成法には前方参照画面の予測マクロブロックを用いる前方予測と、後方参照画面の予測マクロブロックを用いる後方予測と、これら２つの予測信号を画素ごとに平均した補間予測、予測信号をすべて同じ固定値（１２８）にしたフレーム内予測がある。一般にはこれら４つの予測モードのうち最も予測誤差電力が小さいものを選び予測信号とする。Ｐピクチャでは前方予測とフレーム内予測のみが使用でき、後方予測、補間予測は禁止される。なお、MPEG2ではＰピクチャに対して、２つの前方予測信号を画素ごとに平均した予測（デュアル  プライム予測）が追加されている。
【０００６】
前方参照画面および後方参照画面にはＩピクチャおよびＰピクチャのみが使用され、一組の前方、後方参照画面の間には別のＩピクチャ、Ｐピクチャは存在しない、すなわちＢピクチャのみが連続して存在する。また、Ｂピクチャが全く存在しないことも許されている。Ｉピクチャ、Ｐピクチャの間隔は任意に設定できるが、３画面おき以下の固定値にとることが多い。また、Ｉピクチャはランダムアクセスの基点あるいはエラー時の復帰点として用いられ、その間隔は任意に設定できる。一般には０．５秒以下の間隔でＩピクチャを固定的に挿入する、すなわち１２あるは１５フレームおき、場合が多い。MPEGでは、これらＩピクチャの周期とＩおよびＰピクチャの周期の記述にはそれぞれＮ、Ｍの記号が用いられる。たとえばＮ＝１２、Ｍ＝３と記述した場合には「ＢＢＩＢＢＰＢＢＰＢＢＰ」の周期で各フレームが符号化される。実際に符号化する場合には、３番目のＩピクチャのフレームが一番先に符号化され、引き続き１番目、２番目のフレーム、次に６番目のｐピクチャのフレーム、そして４番目、５番目のフレームの順で符号化される。そしてたとえば６番目のＰピクチャのフレームは３番目のＩピクチャのフレームから予測され、４番目のフレームは３番目のＩピクチャのフレームと６番目のＰピクチャのフレームから予測される。
【０００７】
図３に戻り従来のＭＣ／ＤＣＴ回路の説明を行う。入力されたデジタルの画像信号１１は画像メモリ２０１に入力され上記で説明した符号化順に並べ替えられる。一方、同時に動き検出回路１２に入力され、すでに符号化され参照画像メモリ２００に格納されている参照画像信号２０２との間で、マクロブロックごとの動きベクトルが検出される。なお、このときに画像メモリ２０１にて遅延された画像信号２１４を同時に動き検出回路２０２に入力し参照画像データ２０２からの後方予測のベクトルを検出する。画像メモリ２０１にて所定の時間遅延した信号は符号化画像信号２０３として、動き補償回路１３に入力される、これと同時に動き補償回路１３は動き検出回路１２にて検出された動きベクトル９を元に参照画像メモリ２００より参照画像信号２０２を読み出し予測信号とする。なお、Ｉピクチャではこの参照画像信号は読み出さず固定値が用いられる。動き補償回路では符号化信号２０３と参照画像信号２０２を対応する画素ごとに差分をとり、差分画像信号２０４を生成する。差分画像信号２０４はＤＣＴ回路２０５にてＤＣＴ係数に変換され、量子化回路２０６にて予め設定された量子化ステップサイズ２１３により量子化される。量子化されたＤＣＴ係数８は動きベクトル９とともに可変長符号化回路５に供給される。符号化する画像がＢピクチャの場合はこれでＭＣ／ＤＣＴ回路の処理は終わるが、ＩあるいはＰピクチャの場合には後の画像のために参照画像信号再生する処理が必要となる。量子化されたＤＣＴ係数８は逆量子化回路２０７にて、量子化したときと同じ量子化ステップサイズにて逆量子化され、その結果は逆ＤＣＴ回路２０８にてＤＣＴの逆変換が施される。逆変換された再生差分画像信号２０９は、加算回路２１０にて、そのブロックの参照画像信号２０２を所定時間遅延させた信号と加算され再生画像信号２１１が得られる。再生画像信号２１１は参照画像メモリ２００に格納され後の画面の符号化時に参照画像信号として使用される。
【０００８】
なお、画像復号化装置では、符号を解読した後、逆量子化２０７から参照画像メモリ２００への格納までの処理を行うことにより、画像を再生することができる。
【０００９】
図４は画像メモリ２０１、参照画像メモリ２００、動き検出回路１２の詳細図である。図４の動作は第５図のタイミングチャートに示される動作をおこなう。
なお、図４、図５はＭが１から３までの場合に対応している。すなわちＢピクチャがないモード（Ｍ＝１）からＢピクチャが２枚ずつ連続して入るモード（Ｍ＝３）にまでに対応している。以下、Ｍ＝３の場合を中心に動作の説明を行う。入力画像がＰピクチャの場合、すなわち図５のフレーム番号が３、６、９の場合にはベクトル検出回路４５０−１において、参照画像メモリ２００に格納されている、３フレーム前の参照画像との間で動きベクトルが検出が行われる。参照画像メモリ２００では前方、後方２つの参照画像のための２つのフレームメモリ４１０、４１１をもち選択回路４１２にて参照画像信号２０２−１に前方参照画像信号、２０２−２に後方参照画像信号が対応するように、Ｍフレーム周期で切り替えを行う。動き検出処理が終わった画像は、直後に符号処理される。すなわちフレームメモリ４０１にて約１フレーム時間遅延された信号が選択回路４０５にて選択され符号化画像信号２０３として出力される。符号化され、再生された画像信号２１１は参照画像メモリの中の２つのフレームメモリ４１０、４１１のいずれか、より古い参照信号が格納されている方に上書きされ格納される。符号化処理の開始時刻を、同じ時間帯に行う動き検出処理開始時刻よりも若干早めることにより動き検出処理時刻には画面先頭部分の参照画像信号を該当フレームメモリ４１０あるいは４１１に格納しておくことができる。
【００１０】
入力画像がＩピクチャの時はベクトル検出は行わず、Ｐピクチャと同様に１フレーム遅延した後に符号化画像信号２０３として出力される。
【００１１】
入力画像がＢピクチャの場合はまず入力時にＰピクチャと同様に前方参照画像に対する動きベクトルが検出される。次にその３フレーム時間後に後方参照画像に対する動きベクトル検出を行う。遅延させるフレーム数はＭの値に相当し、選択回路４０６にてＭ＝２の場合と３の場合を切り替える。なおＭ＝１の場合にはＢピクチャは存在しないため、後方予測は不要である。後方予測の動き検出処理が終わった画像は、直後に符号処理される。すなわちフレームメモリ４０３あるいは４０４にて約１フレーム時間遅延された信号がＭの値に応じて選択回路４０５にて選択され符号化画像信号２０３として出力される。
【００１２】
ベクトル検出回路４５０−１，２では入力された信号１１あるいは２１４に最も類似した部分を参照信号２０２−１あるいは２０２−２から探し出し、そのときのベクトルの値を４５１−１，２として出力する。出力された信号はバスにまとめられて動きベクトル信号９として出力される。
【００１３】
動きベクトル検出回路の動作内容を簡単に説明する図を図６に、その動作タイミングチャートを図７に示す。図６は図７の下に示すように２ｘ２画素の符号化ブロックに最も類似するする部分を６（＝Ｗ）ｘＶ（Ｖは３以上）の参照画面から探索する例である。図６において、探索開始時はスイッチ６０３は入力信号１１または２１４側を選択している。入力信号１１または２１４は図７に示されるように参照信号０、１、６、７のタイミングでＡ、Ｂ、Ｃ、Ｄの画素データを入力し、遅延回路６０４−１〜３においてそれぞれ１クロックずつ遅延される。同時にＲＡＭ６０３に格納され、検出単位である４画素の入力の後は、スイッチ６０３を切り替えて４個の入力信号を８画素周期で周期的に入力する。８画素周期中データの存在しない期間はどのような値でも構わない。一方、入力信号の入力開始と同時に参照画像のうち探索する範囲のデータを参照信号２０２として入力する。これらの信号は検出回路６０１−１〜８に入力され、類似性が計測される。各々の検出回路に入力されるデータは、参照信号はすべて同じデータ、入力信号は１クロックずつ遅延させたデータがそれぞれ入力される。その結果、図７に示すように入力開始から８クロック経過すると各検出回路からそれぞれ位置が１画素ずつ異なった部分との類似度６１４が出力される。この類似度の出力は１クロックにいずれかの１検出回路のみが出力するため最小値選択回路６０２は１クロックに１回ずつ最小値の判定を行うことにより最も類似したベクトルを検出することができる。類似度６１４の中には参照画面の画面両端の境界にかかるブロック（例えば図７下の番号で５、６、１１、１２の画素からなるブロック）も含まれるので、最小値選択回路６０２はこうした境界にかかるブロックは除外して処理を行う。なお、検出回路６０１の内部は差分回路６１０にて２信号の差分をとった後、絶対値回路６１１にて絶対値をとり、レジスタ６１３に記憶していたこれまでの累積値６１４に加算する。４画素の最初画素のの加算直前にレジスタ６１３を０にクリアすることにより、４クロック後に、累積値６１４が該当部との類似度を表す値となる。図６および図７では、説明をわかりやすくするために、通常１６ｘ１６画素単位でおこなう動きベクトル検出を２ｘ２画素単位に簡略化した。図６の回路にて１６ｘ１６画素単位の検出を行う場合は検出回路数を増やす（参照画面の幅Ｗｘ１６個程度）ことにより対応ができる。この検出回路数を減らすために参照画面の左右境界部にかかる部分に対応する検出器を省略し（ｗ−１６）ｘ１６個の検出回路にてベクトル探索を行う方法も知られている。また、入力信号を間欠的に入力するのではなく、連続的に入力し回路内部で遅延させる方法も知られている。
【００１４】
以上が従来の画像符号化回路の概要である。これらの処理量は単位時間に入力される画素数に比例する。そのため、各画素に対する全処理を１画素の入力時間時内に処理する必要がある。すなわち、通常のＴＶ信号では１５Ｍ画素／秒程度の入力画素数であるため、１画素当りの処理を約７０ｎｓで実行しなければならない。通常は８ｘ８画素あるいは１６ｘ１６画素単位で１つの処理を４μｓあるいは１６μｓ程度の時間で実行し、これらの処理をパイプライン処理することにより、この条件を実現している。一方、ＨＤＴＶ信号では通常のＴＶ信号の４倍から５倍程度の処理が必要である。上記のようなパイプライン処理では非常に高速動作の演算素子が必要になり装置のコストが上がり、回路規模も大きくなる。
そのため、ＨＤＴＶでは画面を複数の小画面に分割し、各画面ごとに複数の小符号化回路を割り当てて並列処理を行うことが行われることが多い。
【００１５】
図８は従来の分割処理の画像符号化装置である。入力画像信号２は画像分割回路８０１にて図の例では４つの信号８０５−１，２，３，４に分割され、それぞれ４つの小符号化装置１−１，２，３，４にて符号化され、符号８０６−１，２，３，４が得られる。符号８０６−１，２，３，４は符号統合回路８０３にて１つの符号７に統合される。この場合、小符号化装置の構成は図１のものがそのまま使用できる。画面の分割の仕方は、画面を数走査線単位（たとえば１画面１０２４走査線を２５６走査線ずつ４分割）に分割する方法や、画面を縦横４分割にする方法などがある。
【００１６】
図９は図８における画像分割回路８０１の詳細図である。入力された画像信号１は画像の位置に応じた切り替え信号９０３を出力する切り替え制御回路９０２の指示に従い、スイッチ９０１にて４つの信号のうちのいずれかへ、画像信号を転送する。
【００１７】
図１０は図８における符号統合回路８０３の詳細図である。それぞれの小符号化回路で生成された符号８０６はファーストインファーストアウトメモリ（ＦＩＦＯ）１００１に格納される。一方、ＦＩＦＯの読み出しは該当画像分の符号の格納が終了した後に開始する。読み出した符号１０１１はスイッチ１００３を介して符号７として出力される。ＦＩＦＯ１００１−１より該当画像分の符号の出力が終了すると終了信号１０１０−１が出力され、終了信号を受けた切り替え制御回路１００２はＦＩＦＯ１００１−１の読み出しを終了し、ＦＩＦＯ１００１−２の読み出しを開始する。これと同時にスイッチ１００４を出力１０１１−２側に切り替える。以下同様に予め規定した順序に従い４つのＦＩＦＯを順次読み出した後、再びＦＩＦＯ１００１−１から次のフレームの符号の読み出しを行う。
【００１８】
【特許文献１】特開昭62−210584号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上記に示した従来の分割処理の画像符号化装置では、次の２つの課題がある。
第１の課題は、分割処理する各小符号化回路がそれぞれ独立に符号化処理をするため、各領域の境界付近では画面内、画面間の相関を充分用いて符号化をすることができず、単一の符号化回路を用いて符号化した場合に比べ符号化効率が低下する。特に動き補償フレーム間予測を用いた方式では他の領域の画像を予測画像として使えないために、符号化効率の劣化が特に大きい。
【００２０】
第２の課題は、、各小符号化回路がそれぞれ独立に符号化処理をするため、各小符号化回路内でしか発生符号量を調節することしかできない。このため、例えば、ある部分で多くの情報量が発生した場合、その部分を符号化担当する小符号化回路の以降の処理担当部分に割り当てる符号量が少なくなり、画質が低下し、特に周辺の領域との境界部分で劣化が目立つ。
【００２１】
本発明は上記の課題を解決し、小型で低コストの画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明は上記の目的を達成するために、まず、互いに隣接する領域どおしが重なる領域を有する複数個の小画像に分割し、重複した領域部分に書き込む信号は該当する各小符号化装置全てに伝送する手段を設け符号化する。次に、隣接する領域を担当する各小符号化装置間に、発生した情報量を通知する手段を設け、１つの小符号化装置にて一時的に発生した大量の情報量を隣接した小符号化装置にて吸収させる手段を設ける。
【発明の効果】
【００２３】
本発明によれば、画像の符号化効率をほとんど落すことなく回路各所の動作速度の低速化が図れるため、小型・低価格の画像符号化装置あるいは画像復号化装置あるいは画像符号化復号化装置を実現することができる。
【００２４】
各小符号化装置にて重複した領域部分を持つことにより領域の境界付近においても画面内、画面間の画素間の相関を利用することができ、単一の符号化装置に比べた符号化効率の劣化を防止することができる。また、発生した情報量を通知することにより、一時的に発生した大量の情報量による画質の劣化を広範囲に分散することができ、劣化を目立ちにくくすることができる。
【実施例】
【００２５】
図１１に本発明を用いた実施例を示す。図１１は図８の画像符号化装置に本発明を適用した例である。図中１１００に示した部分が本発明による部分であり、その他の部分は図８のものと同じ機能であるため説明を省略し、１１００の部分を中心に説明を行う。
【００２６】
小符号化装置１１０１は入力された画像信号８０５を符号化し符号８０６を出力するが、符号化処理に用いる画面を保持するメモリを２種類持つ。１つは符号化画像を格納するメモリであり各小符号化装置の処理領域に対応する。もう１つは、参照画像を格納するメモリであり各小符号化装置の処理領域より広い、隣接した領域と重複した領域に対応するのメモリである。符号化画像のメモリは、従来と同様に各小符号化装置１１０１内に持ち、参照メモリは共有メモリ回路１１０２内に持つ。小符号化装置１１０１から共有メモリ回路１１０２へのアクセスはアクセス信号１１０３と読み出し信号１１０４を用いる。
【００２７】
図１２は小符号化回路１１０１の詳細図である。小符号化回路１１０１の動作は図１の符号化装置１とほとんど同じで、ＭＣ／ＤＣＴ回路１２０１に共有メモリ回路１１０２への書き込み信号１１０３、読み出し信号１１０４が追加されている点が異なる。図１２の小符号化回路では重複領域として予測画像メモリを割り当てている。予測画像を重複領域に割り当てることにより、従来該当領域外であった部分からも動き補償による予測を行うことができるようになり、単一の符号化処理装置による場合と同じ符号化効率が得られる。
【００２８】
図１３に共有メモリ回路１１０２の詳細図を示す。書き込みは信号１１０３−１〜４を介して行い、読み出しは信号１１０４−１〜４を用いて直接メモリにアクセスする。各小符号化回路より入力された書き込み信号１１０３−１〜４はメモリ管理回路１３０１に入力される。書き込み信号１１０３はメモリに対する制御信号とデータを並べた信号列であり、例えば、書き込み先頭アドレス、書き込みデータ数、書き込みデータ列が順次転送される。書き込みデータ数は６４画素（８画素ｘ８ライン：ブロックデータ）あるいは２５６画素（１６画素ｘ１６ライン）あるいは３８４画素（８画素ｘ８ライン信号を６つ：マクロブロックデータ）程度が適当であり、２次元データを予め定められた走査法によって一次元信号に変換して転送する。なお、書き込みデータ数は８画素あるいは１６画素の１次元データでも構わない。また、分割後の小画面の符号化開始時に画面先頭を示す信号と画面の大きさを転送する信号を転送し、その後は符号化順にデータを転送するだけで予め定められたアドレス順に書き込む方法でも構わない。メモリ管理回路１３０１は書き込みアドレスにより該当するメモリを判断し、メモリアクセス信号１３１０−１〜４の該当部分に信号を出力し、メモリ１３０３あるいはメモリ１３０４に書き込む。書き込みは入力１次元データを元の２次元データに戻したアドレスを用いて行う。
【００２９】
一方、読み出しの場合には読み出し信号１１０４を用いてメモリ１３０３あるいは１３０４のいずれか一方にアクセスする。読み出し信号１１０４は読み出しアドレス線、データ線からなり書き込みとは独立に読み出しを行うことができる。
【００３０】
図１４にメモリ管理回路１２０１の詳細図を示す。入力された書き込み信号１１０３のうち、アドレスの部分はスイッチ１４０１を経由してアドレスＦＩＦＯ１４０２に格納されデータ部分はデータＦＩＦＯ１４０３に格納される。格納されたアドレス、データはスイッチ１４０４およびスイッチ１４０７により選択され該当するメモリに同時に書き込まれる。この際、アドレスデータはアドレス変換回路１４０５により各小符号化回路の使用するアドレスに変換する。書き込み信号１１０３−１〜４による書き込みが時間的に重なった場合には、重なった信号のうち１つのみを書き込み、他の書き込みは最初の書き込みが終了するまで遅延させた後に実行する。なお、ＦＩＦＯがオーバーフローする恐れがある場合は該当する小符号化回路に通知し、データの入力を中止させる。
【００３１】
図１５にメモリ管理回路のアドレス変換の例を示す。図１５は水平１９２０画素、垂直１０２４ラインの画面を４分割する例である。なお、ＭＰＥＧ等の画像符号化方式では輝度信号１６画素ｘ１６ライン毎に処理をするため分割する領域の大きさは、水平垂直ともに１６の倍数の矩形が好ましい。但し、画面の右端あるいは下端を含む領域に関しては１６の倍数でなくても構わない。また、インターレース画像の２つのフィールドを１ライン毎に合成して作りだしたフレームを処理する符号化装置においては、領域の垂直方向の画素数はフレーム画像上で３２の倍数が望ましい。分割例（１）は水平に４分割し、分割例（２）は水平垂直にそれぞれ２分割した例である。ともに境界を接する隣接領域との間で境界より１２８ラインあるいは１２８画素分の共有領域を持った例である。なお、以降の説明ではメモリを２次元のアドレスにより指定するものと考え、特に指定のないかぎり垂直アドレスを単にアドレスと呼ぶ。
【００３２】
分割例（１）では、画面を２５６走査線ごとに分割した符号化装置において、各メモリ１３０３、１３０４に垂直方向５１２走査線分のメモリを実装し、どの小符号化回路もアドレス０〜２５５までを符号化処理する領域、アドレス２５６〜５１１に共有領域を格納している。第１のメモリ、例えば１３０４−１では、走査線２５６〜３８３までを垂直アドレス２５６〜３８３に、メモリ１３０４−２では領域１の走査線１２８〜２５５までを垂直アドレス３８４〜５１１に、領域３の走査線５１２〜６３９までを垂直アドレス２５６〜３８３に格納している。従って、例えば走査線２４０のデータはメモリ１３０４−１のアドレス２４０に書き込まれるのと同時にメモリ１３０４−２のアドレス４９６（２４０＋２５６）に書き込まれる。また、走査線３００のデータはメモリ１３０４−２のアドレス４４（３００−２５６）に書き込まれるのと同時にメモリ１３０４−１のアドレス３００（３００−２５６＋２５６）に書き込まれる。一般に走査線Ｐ本ずつの小領域に分割し、境界を接する隣接領域１つに対しＱ走査線分のデータを共有する場合、各メモリの垂直アドレスはＰ＋２Ｑ必要である。記号／を割り算後の小数点以下切り捨て処理、記号％を剰余計算とすると、走査線Ｙのデータは領域ｎ（＝Ｙ／Ｐ）のアドレスｙ（＝Ｙ％Ｐ、０≦ｙ≦Ｐ−１）に書き込まれ、ｙ＜Ｑの場合には領域（ｎ−１）と共有され、領域（ｎ−１）のメモリのアドレス（ｙ＋Ｐ）に、ｙ≧Ｐ−Ｑの場合には領域（ｎ＋１）と共有され、領域（ｎ＋１）のメモリのアドレス（ｙ−（Ｐ−Ｑ）＋Ｐ＋Ｑ＝ｙ＋２Ｑ）に格納される。上記の計算はアドレス変換回路１４０５で実行され、固定値の加算・減算で実現できる。特にＰ＝２５６、Ｑ＝１２８のようにＰが２のベキ乗、Ｑがその１／２の例では上記の例で示したように加算・減算はビット操作のみで実現でき回路規模削減の効果が大きい。Ｐが２のベキ乗、Ｑがその１／２未満の場合もＱがＰの１／２の場合と同じアドレスを割り当てることによりビット操作のみによる演算が可能になる。この場合、アドレスの途中にアクセスしない領域が存在するが、この領域に対して実際のメモリ素子を割り当てても割り当てなくても構わない。
【００３３】
図１５の分割例（２）では画面を９６０ｘ５１２画素の４つの小画面に分割する。この場合は符号化する領域はメモリのアドレス０〜５１１に格納され、アドレス５１２以降に共有領域のデータが格納される。メモリ１３０４−１の例ではアドレス５１２〜６３９に領域３の９６０画素ｘ１２８ライン（走査線５１２〜６３９ライン）を、アドレス６４０〜７６７に領域２の１２８画素ｘ５１２ライン（走査線０〜５１１ライン）の垂直、水平アドレスを交換したものを、アドレス７６８〜９６０に領域４の１２８画素ｘ１２８ライン（走査線５１２〜６３９ライン）を格納する。書き込み時には、例えば領域１〜４すべてに共有される部分のデータはメモリ１３０４−１〜４に同時に書き込まれる。アドレス変換回路１４０５では以上のアドレス変換走査を行う。水平垂直分割では水平分割に比べアドレス変換回路１４０５はやや複雑になる。一方同じ共有範囲（境界より同画素数の範囲）を実現する場合には各メモリ１３０３、１３０４の容量は少なくなる。図１５の例では３／４の容量になっている。なお、上記の説明は輝度信号を例に取っておこなったが、色信号、あるいは輝度信号と色信号の両方、すべてに適用可能である。
【００３４】
図１１から図１５までの説明は画面の分割数を４として行ってきたが、画面の分割数は４以外のいくつの値にも適用できることは明白である。分割数が多くなると１つの小符号化装置あたりの処理量が少なくなるため、より低処理能力の回路を用いたり、逆に同じ処理能力でより大面積の画像を符号化することが可能になる。ただし、１つの小画像符号化装置がある画面を符号化終了し、次の画面の符号化を開始するには、領域を共有する全ての小符号化装置の処理の終了を待つ必要がある。例えば水平分割の場合では、領域１の信号が入力され終わった時点で小符号化装置１１０１−１が処理を開始し、領域２が入力され終わった時点で小符号化装置１１０１−１が処理を開始するように、処理開始時間を小符号化装置毎にずらした方が遅延が少なくなり、遅延補正用のバッファ容量も少なくてすむ利点がある。こうした方法では、小符号化装置１１０１−１が次の符号化を開始するには小符号化装置１１０１−２の終了を待たなければ、同様に小符号化装置１１０１−２は小符号化装置１１０１−３の終了を、小符号化装置１１０１−３は小符号化装置１１０１−４の終了を待たなければならない。いいかえれば、１つ前の小符号化装置の画面が入力される前に符号化処理を終了しなくてはならない。その結果、各小符号化装置が実質符号化処理を行う時間は３／４になり、各小符号化装置の処理能力は全体の処理量を１とした場合、１／４ではなく、１／３（＝１／４＊４／３）になる。分割数を増やし、更に共有する領域の小符号化装置数が増えた場合には、該当する全ての小符号化装置の終了を待たないと次の画面の符号化を開始することができない。そのため、分割数を増やしていっても共有する領域が広い場合は必ずしも各小符号化装置の処理能力を低くすることはできない。画像符号化の処理単位が輝度信号で１６ｘ１６画素である点と、動きベクトルの探索範囲が−１５〜＋１５程度で大部分の動きを補償できることから、共有領域の走査線数は境界から１６ライン（境界の上下３２ライン分が２つの領域により共有される）が最適である。ただし、垂直方向の画面の相関はあまり強くないことから共有領域を８ラインにしても画質への影響は少ない。１６ライン程度以下の共有の場合は上記の符号化開始待ち時間による影響は小さい。
【００３５】
一般に水平方向の画面の相関が強いことから水平方向には全画素を同じ領域として処理した方が符号化効率が向上する。小符号化装置の数と分割領域の数は必ずしも一致しなくてもよい。小符号化装置の数が少ない場合には処理を終了した小符号化装置が同じ画面の別の領域を符号化することになる。小符号化装置の数が多い場合には、１つの小符号化装置あたりの処理を少なくできるが、実際には、前の画面の符号化が終わらないと次の符号化が開始できないため、１６ライン程度共有の例では領域分割数をＲとすると小符号化装置の処理能力は１／（Ｒ−１）必要になる。ただし、Ｂピクチャのように他の画面の予測には用いない画面の符号化に対しては１／Ｒの処理能力で対応できる。
【００３６】
以上の共有メモリの書き込み操作では、以下の効果がある。各小符号化装置１１０１において隣接する小符号化装置の参照画像をアクセスすることができるため動き補償の範囲が単一の符号化装置の場合と同じにとることができ、分割符号化方式の欠点を補うことができる。共有領域を同時に書き込むことにより単位時間当りのメモリへの書き込み回数は単一符号化装置を用いた場合と同じ回数になる。従って、メモリ管理回路やメモリは、単一符号化装置を用いた場合と同じ動作速度のものを用いることができ、特に高速な素子や複雑な回路を必要としない。
【００３７】
図１６は図１２のＭＣ／ＤＣＴ回路１１０３の詳細図である。ＭＣ／ＤＣＴ回路１１０３全体の動作は従来のＭＣ／ＤＣＴ回路４とほぼ同じであるので説明を省略する。図１６のＭＣ／ＤＣＴ回路１１０３では図２の参照画像メモリ２００に相当する部分が外部の共有メモリ回路１１０２の中に設けられている点が本発明に係わる部分である。そのため書き込み信号１１０３、読み出し信号１１０４が追加されている。この部分を除けばＭＣ／ＤＣＴ回路１１０３とＭＣ／ＤＣＴ回路４とは全く同じである。
【００３８】
このように本発明を適用した画像符号化装置８００は、単一の符号化装置と同じ符号化効率を保ちながら、画面を４分割し処理することにより各小符号化装置処理量が約１／３〜１／４になり、低速デバイスのみを用いて符号化処理が可能となる。その結果、低速で小規模あるいは低速で低コストが実現でき、装置全体の小型化あるは低コスト化あるいはその両方が達成できる。また、本発明は小符号化装置１１０１としてプロセッサ等によるソフトウエア処理をしたときにその効果が大きい。現在のプロセッサの能力では通常のＴＶ信号を単一プロセッサで符号化することは難しい。一方、ソフトウエア処理により符号化処理が実現できれば、処理方法の改良や、新符号化方式への対応など容易に実行できるほか、装置の開発、メンテナンスの時間、手間も削減できる。本発明を適用することにより、ソフトウェア処理の利点を生かしながら、かつ、単一ハードウェアによる符号化効率と同じ効率を得ることが可能になる。このとき、各小符号化装置１１０１に固有の番号をつけておき、その番号をもとに符号化領域位置、アドレス変換方法等を設定するようにすれば、全ての小符号化装置を同じ構成にすることができ、ハードウエェア処理で実現する場合には装置の基版あるいはLSI等の生産性・検査効率が向上し、ソフトウェア処理で実現する場合には上記の生産性向上の他に実行ソフトウェアの配送の時間・手間を削減できる。
【００３９】
図１７は本発明を適用した第２の実施例である。図１７では本発明を画像復号化装置１７００に適用している。画像復号化装置１７００は画像符号化装置１もしくは８００などで生成した符号列を入力し、元の画像を再生する装置である。
入力符号列７は符号分割回路１７０１に入力され、予め分割された領域に対応する符号１７１０−１〜４に分割される。分割された符号１７１０は小復号化装置１７０２に入力され、画像が再生１７０２される。再生された画像１７０２−１〜４は画像合成回路１７０３において、１枚の画像２に合成される。
【００４０】
図１８は符号分割回路１７０１の詳細図である。入力された符号７は、ヘッダ検出回路１８０２において、そのヘッダ部分が検出・解析され画面上のどの位置の符号化が調べられる。その位置情報１８１１に従って、切り換え制御回路１８０３はスイッチ１８０１を制御信号１８１０を用いて切り替える。
【００４１】
図１９に復号化回路１７０２の詳細図を示す。入力された符号１７１０は、一旦、符号バッファ１９０１に蓄えられた後に可変長復号化回路１９０２によって読みだされ、解読される。解読の結果、差分画像のＤＣＴ係数８と動きベクトル９等の復号化情報がＭＣ／ｉＤＣＴ回路１９０３に入力される。ＭＣ／ｉＤＣＴ回路１９０３ではＤＣＴ係数８を逆量子化をした後、ＤＣＴ逆変換（ｉＤＣＴ）により差分画像を再生する。一方、動きベクトル９等の情報で示された予測画像を共有メモリ回路１１０２に格納された参照画像から読み出し信号１７１３を用いて生成し、再生した差分画像に加える。これらの処理は先に述べたように第３図の逆量子化２０７から参照画像メモリ２００への格納までの処理をと同じである。この操作により再生画像が得られる。再生画像は出力バッファ１９０４に蓄えられ、表示に同期して読みだされ、ＴＶの画面等に表示される。同時に、共有メモリ回路１１０２に書き込み信号１７１２を介して格納する。
【００４２】
図２０に画像合成回路１７０３の詳細図を示す。切り換え制御回路２００２は表示タイミングを監視し、表示部分に該当する領域の再生画像信号１７１１−１〜４をスイッチ２００１で選択し、画素データを読み出し出力画像信号２へ出力する。
【００４３】
以上、本発明は図１７のように画像復号化装置にも適用することができる。従来、分割処理を行う復号化装置は他の小領域からの予測を禁止した特殊な符号でなければ画像を再生することができなかった。本発明を適用することにより、この制約がなくなり、あわせて、符号化装置の場合と同様に回路規模の削減の効果も得られる。また、符号化装置の場合と同様に、特にソフトウェア処理を行った場合にその効果が大きい。画像の分割の仕方は水平分割のみ垂直方向のライン数は１６の倍数、インターレース画像の場合は３２の倍数でなければならない。
【００４４】
以下、上記２実施例の変形例を示す。以下の変形例あるいは以下の変形例の組み合わせが本発明に包含されることは明白である。
【００４５】
図２１に小符号化回路１１０１の変形例を示す。図２１の符号化回路ではＭＣ／ＤＣＴ回路４と可変長復号化回路５と間にＤＣＴ係数８、動きベクトル９等の情報を一時的に蓄えれるバッファ２１０２が置かれている点である。ＭＣ／ＤＣＴ４の処理は先にも説明したように画素数に比例した処理量になるため、予め固定的に定められた時間内に１処理単位（８ｘ８ブロックの処理あるいはマクロブロックの処理）を行うことがハードウェアの実現上望ましい。一方、可変長符号化５の処理量は発生する符号量に依存し上記の１処理単位ごとの処理量は異なる。これら性質の異なる２つの処理をパイプライン処理する場合には、例えば可変長符号の処理時間がＭＣ／ＤＣＴ処理時間よりも長くなると、ＭＣ／ＤＣＴの１処理単位の処理が終了しても可変長符号化の該当処理が終わらず、ＭＣ／ＤＣＴ回路４が次の処理の開始待つ問題点がある。この解決策として、ＭＣ／ＤＣＴ４の１処理単位時間内に可変長符号化５の該当する処理終わらせるように、高速な可変長符号化回路を用いる方法と、ＭＣ／ＤＣＴ回路４の処理を高速化し可変長符号化処理の待ち時間が生じても規定時間内に規定の処理を実行できるようにする方法の２つが知られている。いずれの方法も高速処理回路が必要になるため装置の低コストか小型化には不向きであった。図２１のようにバッファ２１０２を置くことにより、ＭＣ／ＤＣＴ、可変長符号化の両処理の処理量の片寄を吸収することができ、両回路とも低速で処理を行うことが可能になる。バッファの量は最大、画面１枚の情報を格納できる量、すなわち１画面の画素数と同じ数のＤＣＴ係数と動きベクトル情報等を保持できることが望ましいが、実質的には１画面の画素数の１／２〜１／４程度の容量でかまわない。実際の動作時には、バッファ２１０１に予め定めた個数のＤＣＴ係数が入力された時点で可変長符号化回路５の処理を開始させる。なお、本発明は第１１図に示した実施例と組み合わせて用いると、さらに回路規模を削減できるが、単一の小符号化回路を用いた画像符号化装置に適用しても同程度の回路規模削減効果が得られる。
【００４６】
図２２は図１６のＭＣ／ＤＣＴ回路１２０１の変形例である。図１６と異なる第一の点は動き検出回路２２０３に参照画像１１０４ではなく遅延させた入力画像２２１０が入力されている点である。通常、参照画像とそれに対応する入力画像の差は小さいため、本来は参照画像１１０４を用いて動き検出を行う所を、入力画像を遅延させた信号２２１０を用いて動き検出を行うことができる。図２２の実施例では参照画像による検出と入力画像による検出との誤差を吸収するために動き補償回路２２０２内にて、参照画像を用いた小範囲の動き検出を行っている。
【００４７】
図２３は図２２におけるフレームメモリ回路２２０１の詳細図である。従来、図４にあるように参照画像２１１を入力していたメモリ４１０、４１１の代わりに入力画像１１を格納するメモリ２３０１、２３０２が使われる。メモリ２３０１、２３０２は各小領域に共有領域の部分を加えただけの容量が必要であり、格納する画素数は他のメモリ４０１〜４０４よりも多い。これは信号１１に全画面分の画像データを流しておき、メモリ４０１、２３０１、２３０２にて必要な部分のみを書き込むことにより実現できる。なお、メモリ２３０１あるいは２３０２への格納は入力された画像１１がＩピクチャあるいはＰピクチャに該当するときにのみ行われる。入力された画像は選択回路２３０３により２２１０−１が前方予測用の信号、２２１０−２が後方予測用の信号に並び替えられて出力される。
【００４８】
これら図２２、図２３の処理により、図１６の実施例において、動き検出時の参照画像の読み出し回数を大幅に削減することができる。参照画像は、前の画像の符号化および局所的な復号化が終了した後に該当部分を符号化するまでの期間に読み出し、動き検出を行わなければならない。そのため、高速な読み出しと、大量なデータ転送が要求されていた。参照画像の代わりに入力画像を用いて動き検出を行うことにより、読み出し信号１１０４の信号線数の削減や、共有メモリ回路１１０２の読み出し回路の低速化、メモリ素子１３０３、１３０４の低速化を図ることができ、回路規模、回路コストの低減が図れる。参照画像が書き込まれた後でなければ動き検出処理が行えなかった点が、参照画像の書き込みとは独立に動き検出を行うことができるため回路構成の自由度が増えさらに回路規模コストを削減することができる。また、フレームメモリ２２０１と動き検出回路１２を画像符号化装置から切り離し時間的あるいは空間的もしくはその両方とも別に処理を行うことも可能である。このような機能を有する画像符号化装置あるいは画像符号化方法も本発明に含まれる。具体的には、オフラインで画像の並び替えや動きベクトルの検出を行い蓄積しておき、符号化装置の動作に連動して、蓄積した画像および動きベクトルデータを信号線２０３、９を用いて入力することにより実現できる。なお、これらの変形例は単一の符号化回路を用いた画像符号化装置にも適用が可能なことは明白である。図１１に示した実施例と組み合わせて用いると、さらに高い効果が得られる。すなわち、図１１では、符号化装置部分は入力された画素レートの数分の１の処理レートで動作しているが、共有メモリ回路１１０２は入力される画像の画素レートに比例した処理レートが要求される。図２２の発明を適用することにより、この処理レートの高い箇所の処理の一部を小符号化装置内の低速処理にて実行することができ、装置全体の小型化が図れる。
【００４９】
図２４は図２２の動き検出回路１２の詳細図である。図４の回路と異なる点は、インターレース走査された画像に対応したことである。インターレース画像が入力された場合は、１つの１６画素ｘ１６ラインのマクロブロックをそのままの形で検出したベクトル２４１０と、奇数ラインのみの１６画素ｘ８ラインと偶数ラインのみの１６画素ｘ８ラインとに分離した後にそれぞれ検出したベクトル２４１１、２４１２との３種類のベクトルが１つの動きベクトル検出回路２４０１から出力される。出力されたベクトルはそれぞれバッファ２４０２、２４０３、２４０４に蓄えられ信号線９を介して読みだされる。動き検出回路１２には前方予測の動きベクトル検出回路２４０１−１と後方予測の動きベクトル検出回路２４０１−２と２つが設置される。一方、非インターレース画像すなわちフィールド画像などの順次走査画像が入力された場合には、１つの１６画素ｘ１６ラインのマクロブロックをそのままの形で検出したベクトル２４１０と、マクロブロックの上半分の１６画素ｘ８ラインと下半分の１６画素ｘ８ラインとに分離した後にそれぞれ検出したベクトル２４１１、２４１２との３種類のベクトルが１つの動きベクトル検出回路２４０１から出力される。これらの機能により、限られた回路規模で種々の走査構造を持つ画像に対して高い予測効率を実現することが可能となる。
【００５０】
図２５は図２４の動きベクトル検出回路２４０１の詳細図である。全体の動作は図６、図７に示した回路と同じである。検出単位は１６ｘ１６画素であるが、検出回路の数は従来例で説明したように探索範囲によって異なるため汎用的にＮ個としてある。本発明の特徴は各検出回路２５０１の内部の信号処理が２系等になった点と、最小値選択回路２５０３、２５０４、２５０５が３つになった点である。検出回路２５０１ではマクロブロックの各画素毎の差分値の絶対値和を計算するが、絶対値回路６１１で計算された差分の絶対値をスイッチ２５５０を用いて加算器６１２と加算器２５５１に出力先を切り替える。この切り替え方法を奇数ラインと偶数ラインに応じて行うと先のインターレース走査信号対応の動きベクトル検出が実現でき、上部８ラインと下部８ラインで切り替えると１６ｘ８画素の動きベクトル検出が実現できる。これら加算器６１２、２５５１の加算結果はそれぞれレジスタ６１３、２５５２に格納される。１つのマクロブロック分、すなわち２５６画素の演算が終わった時点で、レジスタ６１３には偶数ライン分あるいは上部８ライン分の差分値２５１０、レジスタ２５５２には奇数ライン分あるいは下部８ライン分の差分値２５１２が格納されている。この２つの差分値を加算器２５５３で加算するとマクロブロック全体の差分値２５１１が得られる。これら３つの差分値を各対応する最小値選択回路２５０３、２５０４、２５０５に入力し、各最小値選択回路内で独立に最小値を選択すれば、すべての処理を終了した時点で、マクロブロック全体に対するベクトル２４１０、奇数ライン分あるいは上部８ライン分に対するベクトル２４１２、偶数ライン分あるいは下部８ライン分に対するベクトル２４１１の３つのベクトルが得られる。図２５において、スイッチ２５５０の切り替え方を変えることによって上記で説明した分割以外の分割方法、例えばマクロブロックの左右分割等、を容易に実現できる。
なお、これらの動作は探索範囲や検出単位の大きさには依存せず、また動くベクトル検出回路の従来例の項目で述べた検出方法の変形例全てに適用が可能である。
【００５１】
また、分割加算器２５５１、レジスタ２５５２の信号処理系統と最小値選択回路の数を増やし、それに対応したスイッチ２５５０、加算器２５５３をもちいれば１つのマクロブロックの分割の数を増やすことができる。例えば、図２６（１）に示すように、スイッチ２６０１を用いて誤差信号を４系等に分割し、左上８ｘ８画素は蓄積加算器２５６０−１、右上８ｘ８画素は蓄積加算器２５６０−２、左下８ｘ８画素は蓄積加算器２５６０−３、右下８ｘ８画素は蓄積加算器２５６０−４、となるようにスイッチ２６０１を切り替えれば、図の右に示したようにマクロブロック内の８ｘ８のブロック単位のベクトル４つと１６ｘ１６のベクトルの合計５つを同時に１つの回路で検出することができる。また、図２６（２）に示すように、例えば蓄積加算結果２６１０−１、２を加算する加算器２６０３、蓄積加算結果２６１０−３、４を加算する加算器２６０４を設置し、それぞれの加算結果２６１０−６、７を用いることにより、図２６（１）の例に加え新たにマクロブロックを上下に２分割した単位での動きベクトルを求めることができる。図２６（３）は誤差信号の分割にスイッチ２６０５、２６０６の２つを用いた例である。スイッチ２６０５、２６０６の切り替え方を変えることにより、１つのマクロブロックを、例えば図の右に示したような異なる２つの分割法によって分割した単位での動きベクトル検出が可能になる。ここで、蓄積加算信号２６０１−１、２のそれぞれの最小値の和と、蓄積加算信号２６０１−３、４のそれぞれの最小値の和を比較することにより２つの分割法のうち最適な方法を選択することができる。これらの変形例により、わずかな回路規模の増加で、複数の分割法の動きベクトルを求めることが可能になり、画像の予測効率を高めることができる。図２６において、スイッチ２６０１の出力数を３あるいは５以上の値Ｎs個にし、それと同じＮs個の蓄積加算回路２５６０を用いてＮs個の領域単位での動きベクトル検出を行う方法あるいは回路も本発明に包含される。またスイッチ２６０５、２６０６の他に１つ以上のスイッチを設け、合計Ｍs個のスイッチを互いに異なる切り替え方をすることにより、Ｍs個の分割方法に対応した動きベクトルおよび最適な分割方法を検出する方法あるいは回路も本発明に包含される。さらに、これらを組み合わせて、Ｎs個の領域に分割する方法Ｍs通りの各動きベクトルおよび最適な分割方法を検出する方法あるいは回路も本発明に包含される。なお、Ｍs通りの分割方法における領域の分割数は同じ個数でなくても構わない。
【００５２】
図２７は図１１の符号化回路８００の変形例である。図１１と異なる点は各小符号化回路２７０１−１〜４の間に符号量制御の情報を通知する信号線２７１０〜２７１５が付加された点である。これらの信号線により他の小符号化回路の符号量制御情報を得て、それに応じた符号量制御を行うことにより、一時的な大量な符号発生により１つの小符号化回路の符号化した画質のみが著しく劣化したり、逆に符号が発生が少ないために周辺の領域に比べ画質が著しく向上することを防止することができる。各小符号化回路間の通知の組み合わせは、小符号化装置の数をＣとした場合、最大Ｃ＊（Ｃ−１）本の信号線が考えられる。しかし、画質の違いが目立つのは２つの領域の境界部分であることから、画面上で境界を接する領域を担当する小符号化回路間でのみ符号量制御の情報を通知すれば信号本数を削減することができ、回路規模の削減ができる。水平分割の例では小符号化装置の数をＣとした場合、２＊（Ｃ−１）本の信号線でＣ＊（Ｃ−１）本の信号線の場合とほぼ同等の効果が得られる。また、画面上の距離が一定値以下の領域を担当する小符号化回路間でのみ符号量制御の情報を通知しても、上記と同様の効果が得られる。
【００５３】
図２８に図２７の符号化回路２６０１−２の詳細図を示す。なお、他の符号化回路２６０１−１、３、４もほぼ同様な動作を行う。現在符号化している画面の符号量は信号線１０を介して符号制御回路２８０１に入力される。符号制御回路２８０１では予め定められた値と発生符号量を比較し、発生符号量が大きければ符号量を減らす方向に、発生符号量が少なければ符号量を増加させる方向に制御する。すなわち、予め定められた値と発生符号量の差に応じた値を符号量制御情報として信号線２７１１、２７１３に出力し隣接する小符号化回路に通知する。
一方、隣接する小符号化回路から信号線２７１０、２７１２を介して入力された符号量制御情報は先の符号量１０に加味され制御される。
【００５４】
図２９に図２８の符号化制御回路２８０１の詳細図を示す。隣接する小符号化回路より通知された符号量制御情報２７１０、２７１２をそれぞれ係数回路２９０２、２９０１にてｋ２倍、ｋ１倍され、現在符号化している画面の符号量１０と加算される。加算された結果２９１０は予め設定された符号量２９１５との差分をとられる。この差分値２９１１の絶対値が一定値以上であれば制御回路２９０７は制御線２９１２、２９１３を介して、係数回路２９０６、２９０８の係数値ｋ３、ｋ４を制御して、隣接する小符号化回路へ差分値２９１１のそれぞれｋ３倍、ｋ４倍の値を符号量制御情報２７１１、２７１３へ出力させる。一方、差分情報２９１１は、現在の量子化ステップサイズや係数ｋ３、ｋ４や画面内の位置情報等からから算出される制御情報２９１４とあわせて、予め定められた算出法により量子化ステップサイズ２１３が得られ、出力される。なおここで、ｋ１、ｋ２、ｋ３、ｋ４は全て１以下、０以上の値であり、ｋ３＋ｋ４も１以下、０以上であることが望ましい。また、２つの隣接する小符号化回路間で符号量制御情報が往復・発振しないように、信号２７１０の値が大きな正数のときには信号２７１１が大きな正の値とならないように、また信号２７１２の値が大きな正数のときには信号２７１３が大きな正の値とならないように、同様に信号２７１０の値が絶対値の大きな負数のときには信号２７１１が絶対値の大きな負の値とならないように、また信号２７１２の値が絶対値の大きな負数のときには信号２７１３が絶対値の大きな負の値とならないようにｋ３、ｋ４を制御される。具体的な数値例としてｋ１＝１、ｋ２＝１、ｋ３＋ｋ４＝０．２５等が挙げられる。
【００５５】
信号２７１３の出力系統を遅延回路２９０７によって遅延させることにより、小符号化回路２７０２−２と２７０２−３の処理開始時刻の時間差を吸収し、画面上でほぼ同じ水平位置から制御がかかるようになる。逆に信号２７１１が到達した時点では、小符号化回路２７０１−１はすでに該当水平位置の符号化処理が終わっているため、制御の対象となる位置が画面上右にずれる。
【００５６】
図３０は小符号化回路１１０１の変形例であり、符号調整回路３００１が設置された点が図１２の回路と異なる。また、図３１は小符号化回路１１０１の別の変形例であり、符号調整回路３１０１が設置される位置が図３０の回路と異なる。３０図、図３１の符号調整回路３００１、３１０１は可変長符号化回路５から出力された符号３０１０を操作して所定の符号量にする機能を持つ。符号量の設定は符号化装置外部より行い、たとえば、１フレームの符号量の最大値、あるフレームから別のフレームまでの間の符号量の値を設定することにより行う。符号量の調整は先に説明した符号量制御回路２１２等で主に行うが、正確に制御することは難しく、ある程度の符号量の誤差が生じてしまう。符号調整回路３００１、３１０１はこの誤差を調整しさらに高精度な符号量の制御を行う。
【００５７】
図３２に符号量調整回路３００１の詳細図を示す。入力された符号３０１０はシフト回路３２０１に順次入力される。シフト回路３２０１では所定のビット数が入力された時点で入力された信号をパラレル符号３２１０に出力を行う。テーブル３２０２ではパラレル符号３２１０のどの部分が可変長符号の切れ目かを判断し、そのビット数３２１１と一連の符号列の区切り符号を示す信号３２１２を出力する。テーブル３２１０の内容は、たとえば可変長符号が１０、１１、０１０、０１１、００１０、００１１の６種類（Ａ〜Ｆ）で符号０００１が区切り信号（ｚ）とすると、４ビットの入力値を持ち、各入力値に対応して以下の出力値設定しておく。
【００５８】
テーブル３２０２の設定例１
入力値      出力値（ビット数）  出力値（区切り符号）
Ａ  １０ｘｘ          ２                  ０
Ｂ  １１ｘｘ          ２                  ０
Ｃ  ０１０ｘ          ３                  ０
Ｄ  ０１１ｘ          ３                  ０
Ｅ  ００１０          ４                  ０
Ｆ  ００１１          ４                  ０
ｚ  ０００１          ３                  １
００００          １                  ０  （未使用）
ここで、入力値は２進数で表示してあり、ｘの記号は０、１のいずれの値でもよいことを示す。すなわち、入力値０１ｘは入力値０１０と０１１の両方を示す。
また、区切り符号出力は１の時、その符号が区切り符号であることを示す。この例では、入力された符号３０１０は入力値の上位ビット（左側）から詰められている。テーブル３２０２より出力されたビット数３２１１はシフト回路３２０１に入力され、ビット数３２１１のビット数だけデータがシフトされる。このとき、必要であれば符号３０１０が入力される。一方、パラレル符号３２１０とそれに対応したビット数３２１１はそれぞれ符号ＦＩＦＯ３２０３および符号長ＦＩＦＯ３２０４に入力され、格納される。ここで符号ＦＩＦＯ３２０３には実際の符号の長さ（ビット数３２１１）にかかわらずパラレル符号３２１０全ビット数、すなわち上記のテーブルの例では４ビットが格納される。一方、該当符号が区切り符号の場合には区切り符号を示す信号線３２１２を介して制御回路３２０５に通知される。通常の場合、符号ＦＩＦＯ３２０３および符号長ＦＩＦＯ３２０４に格納された信号は所定のタイミングで信号線３２１３および３２１４に出力され、パラレル−シリアル変換回路３２０６にて、符号３２１３と符号長３２１４から、可変長符号列３０１１が再生される。ここで、制御回路３２０５は区切り符号の位置をもとにパラレル−シリアル変換回路３２０６を制御し、符号の追加、削除を行い、所定の符号量になるよう調整を行う。以下に、調整の例を示す。
【００５９】
発生した情報が”ＡＥＡＤｚＡＡＢｚ”のとき入力符号３０１０は”１０  ００１０  １０  ０１１  ０００１  １０  １０  １１  ０００１”の２５ビットとなる。なお、符号列は左側が先頭すなわち先に送信されるビットを表す。見やすくするために符号の切れ目部分に空白文字をいれてあるが、実際には連続した符号列が入力される。このとき、テーブル３２０２により符号は分離され、以下のデータが順番に符号ＦＩＦＯ３２０３および符号長ＦＩＦＯ３２０４に入力される。
【００６０】
符号ＦＩＦＯ  符号長ＦＩＦＯ  （区切り符号）
１    １０１１        ２（Ａ）          ０
２    ００１０        ４（Ｅ）          ０
３    １００１        ２（Ａ）          ０
４    ０１１０        ３（Ｄ）          ０
５    ０００１        ４（ｚ）          １
６    １０１０        ２（Ａ）          ０
７    １０１１        ２（Ａ）          ０
８    １１００        ２（Ｂ）          ０
９    ０００１        ４（ｚ）          １
ここで区切り符号の１つ前の符号を削除することにより符号量を削減する。すなわち４番目の情報Ｄと８番目の情報Ｂを削除する。その結果、
出力される可変長符号列３０１１は”１０  ００１０  １０  ０００１  １０  １０  ０００１”の２０ビットとなる。一般に符号を削減すると再生される信号に劣化が生じる。さらに、劣化した画像が予測画像として用いられる場合には、符号化装置の予測画像と復号化装置の予測画像がこの劣化により若干異なるため、以降の画面にも劣化が波及する。従って、以下ような場合を優先的に符号削除を行うことにより視覚的に画像劣化を最小限にとどめることができる。（１）ＢピクチャのＤＣＴ係数、（２）振幅の小さいＤＣＴ係数（すなわち＋１、−１のもの）、（３）高い周波数のＤＣＴ係数。
また符号を削除するのではなく、符号語長の短い符号に置き換えることによっても同様な効果を得ることができる。たとえば、高い周波数のＤＣＴ係数あるいは直流成分の振幅を１レベル小さくすることにより実現できる。
【００６１】
符号量を増加させるためにはパラレル−シリアル変換回路３２０６にて復号化装置において復号化に使われないスタッフィングの符号を挿入することによって実現できる。たとえばＭＰＥＧの場合には、符号の同期を示すスタートコードの前に０ビットを８の倍数個挿入する方法がある。また、同じ情報を示しかつ符号語長のより長い符号に置き換えることによっても同様の効果が得られる。たとえばＭＰＥＧの場合には、一部のＤＣＴ係数には２ビットから１７ビットまでの可変長の符号が割り当てられているが、同時に２０ビットあるいは２８ビットの固定長符号も割り当てられている。従って、通常、１７ビット以下の可変長符号として符号化されるＤＣＴ係数を、２０ビットあるいは２８ビットの固定長符号に置き換えることによって符号量を増加させることができる。この符号の増加処理においては直接画像が劣化することはない。
【００６２】
これらの符号量の増減の調整処理を組み合わせることにより所定の符号量に微調整することができる。符号調整回路３００１、３１０１は可変長符号化回路５の中で符号化と同時に行っても構わない。また、符号ＦＩＦＯ３２０３および符号長ＦＩＦＯ３２０４はシフトレジスタ、バッファ、リングバッファでも構わない。
【００６３】
符号調整回路３１０１の構成は符号調整回路３００１とほとんど同じである。
異なる点は、図３０では符号バッファ６が通知していた符号発生量１０を通知する機能が追加された点である。符号量の調整を符号バッファの出力の後で行うため、１画面の符号化が終了し、符号がすべてバッファ６に格納され、発生符号量が既知になった後に、符号量の調整を行うことができる。したがって、１画面単位等の比較的大きい単位での高精度な調整が可能となる。
【００６４】
このような符号量の高精度な調整を行うことにより、符号列中の一部分を別の符号に置き換える操作が可能になる。すなわち、テレビジョンのデジタル放送において、ある映像の放送中に、その一部にコマーシャルや臨時ニュース等を挿入する場合に相当する。このような置き換え操作では置き換えられる部分と置き換える部分の符号量が異なると復号化装置において符号を一時的に蓄えるバッファ１９０１がオーバーフローあるいはアンダーフローしてしまい、画像の大きな劣化が生じてしまう。本発明の高精度な符号量調整により、こうした劣化を防止あるいは、劣化の確率を最小限にとどめることが可能になる。
【００６５】
先に示したテーブル３２０２は以下の変形例により、そのデータ容量を削減することができる。すなわち、パラレル符号３２０１をその先頭に連続する０符号の個数と最初の１符号の後に続く符号に分離して入力を行う。先の符号の例では先頭に続く０の個数は最大３個、最初の１符号の後に続く符号長は最大１ビットであるため、テーブルのデータの種類は先の設定例１の場合（４ビット１６通り）に比べて半分の３ビット８通りに削減できる。なお、この場合、シフト回路にて先頭に続く０の個数の計測回路が必要になる。以下に本変形例によるテーブル３２０２の設定例を示す。入力値の項のうち左半分２ビットは０符号の連続数の２進数表示、右の１ビットは最初に出現する１符号の後に続く符号を示す。
【００６６】
テーブル３２０２の設定例２
入力値            出力値（ビット数）  出力値（区切り符号）
Ａ  ００  ０（１０ｘｘ）      ２                  ０
Ｂ  ００  １（１１ｘｘ）      ２                  ０
Ｃ  ０１  ０（０１０ｘ）      ３                  ０
Ｄ  ０１  １（０１１ｘ）      ３                  ０
Ｅ  １０  ０（００１０）      ４                  ０
Ｆ  １０  １（００１１）      ４                  ０
ｚ  １１  Ｘ  ０００１）      ３                  １
（−−  −  ００００）      １                  ０  （未使用）
このテーブルの設定例では”００００”の符号を解読するには０の連続数を表すビットをもう１ビット追加する必要があるが、ＭＰＥＧ等ではすべて０からなる符号は、同期符号と混同する恐れがあるため通常禁止されているため問題ない。
本変形例は先頭に０の続く個数の長い符号セットほどテーブルのデータ数の削減の効果が大きくなる。例えば、ＭＰＥＧのＤＣＴ係数の可変長符号は最後尾の符号ビットを除けば最長１６ビットの符号があるため、２の１６乗（65536）個のテーブルデータが必要であった。しかし、その符号の先頭に続く０符号の個数は最大１１個（４ビット）、最初に出現する１符号の後に続く符号長は最大５ビットであるため、合計して９ビット、すなわち２の９乗（512）個のテーブルデータで済み、テーブルサイズを１２８分の１に削減できる。テーブルサイズを削減することにより、例えばＬＳＩ化したときのチップサイズが小さくなり、ＬＳＩ製作コストを低減したり、テーブルアクセスの高速化が図れるため、同じ回路規模でより高速な処理、あるいは同じ処理速度でより小型低価格の回路構成をとることができる。
【００６７】
図３２に示したシフト回路３２０１およびテーブル３２０３の回路構成は、復号化装置の可変長復号化回路にも適応が可能である。この場合、テーブル３２０３の構成は設定例１でも設定例２でもいずれでも適用でき、設定例２を適用すれば上記の符号量調整回路の説明部分で示したものと同じ効果が得られる。本発明を適用する可変長復号化回路は複数の小復号化回路１７０２からなる復号化装置に適用しても、単一の復号化回路からなる復号化装置に適用しても構わない。
【００６８】
図３３は図２３のフレームメモリ回路２２０１と図２４の動き検出回路２２０３の変形例である。本変形例の特徴は図２３のフレームメモリ回路２２０１と図２４の動き検出回路１２がフィールド単位の画像を格納するようになった点であり、これにより、フレーム単位の符号化処理にしか対応していなかったものが、フィールド単位の符号化処理にも対応できるようになる。具体的には１つのフレームをなす２つのフィールド間で予測処理を行えるようになるため、動きの大きい映像の符号化の時にも通常の映像の場合と同程度の符号化効率を実現できる。
動き検出回路２２０３においては、後述する図３５の動き補償回路と組み合わせて適用することにより、図２５の動きベクトル検出回路のようにフィールド／フレームの両方のベクトルを検出する検出回路を用いなくても、従来の図６のような動きベクトル検出回路を用いてフィールド／フレーム単位での動きベクトルを検出できる。また、フィールド毎に動き検出を行うため検出単位が１６ｘ８画素でよく、フレーム単位の検出の場合の半分で済む。このため、動きベクトル検出回路４５０内の検出回路数は半分のＮ／２個で検出することができ、動きベクトル検出回路の回路規模が約半分に削減される。
【００６９】
図３３の動作は図２３の動作とほぼ同じである。図３３では、図２３の各メモリ４０１〜４０４および参照画像用のメモリ２３０１、２３０２を２つに分割し、それぞれにデータ量が半分であるフィールド画像画像を格納する。符号化処理をする画像は図２３の場合と同様に選択回路４０５により選択するが１つのフレームのうちどちらのフィールドを処理するかはスイッチ３３０１あるいはスイッチ３３０２あるいはスイッチ３３０３を用いて選択する。画像をフレーム単位で符号化するときにはこれらのスイッチは例えばライン毎に切り替えられ、フィールド単位で符号化処理をするときにはそれぞれのスイッチを下側（４０１−２、４０３−２、４０４−２の出力側）に設定する。一方、参照用の画像はメモリ２３０１、２３０２に格納され、図３４に例示したタイミングに従い、選択回路３３０４を制御する。信号線３３５０、３３５４はフレームを構成する２フィールドのうち時間的に前方にあるフィールド（フィールドA）の参照画像を出力し、信号線３３５１は後方にあるフィールド（フィールドB）の参照画像を出力する。これらの参照画像の切り替えのタイミングは図３４に示すように、ＩピクチャもしくはＰピクチャ（図中入力信号を太線で囲んだ画像）の入力が終了した時点で切り替わる。ただし、信号線３３５０は入力終了から１フィールド時間遅延して切り替えられる。これらの参照信号もとに動き検出回路２２０３にて動きベクトルを検出するが、動きベクトル検出回路３３２１は主にフィールドAの参照画像による後方予測ベクトル、動きベクトル検出回路３３２２はフィールドBの参照画像による後方予測ベクトル、動きベクトル検出回路３３２３はフィールドAの参照画像による前方予測ベクトル、動きベクトル検出回路３３２４はフィールドBの参照画像による前方予測ベクトルを検出する。なお、動きベクトル検出回路３３２１は一時的にフレームメモリ回路２２０１内の選択回路３３０６により信号が切り替えられ、Ｐピクチャ内のフィールド間予測、すなわちフィールド6Aを参照画像としフィールド6Bを入力画像とするような前方予測予測ベクトルにも用いられる（図３４＊印）。検出されたベクトルはそれぞれバッファ３３２５〜３３２８に格納され、仮の動きベクトル２２１１として次の動き補償回路より読みだされる。
【００７０】
図３５は図２２の動き補償回路２２０２の詳細図である。動き補償回路２２０２では動き検出回路２２０３の検出した仮の動きベクトル２２１１をもとに、フレーム予測／フィールド予測のうち最適な予測方法と最適なベクトル９を決定し、差分画像信号２２１２を出力する。同時に半画素精度の動きベクトル検出も行う。最適な予測方法決定の例を図３６を用いて説明をする。
【００７１】
図３６（１）はフィールド毎に符号化を行う場合の予測方法の選択法を説明する図である。図中の丸印は一つの走査線（水平方向の画素列）を表し、縦方向は画面の垂直方向に、横方向は時間軸に対応する。図はフィールド中、同じマクロブロックに含まれる４ラインのみ取り出して記述しており、インターレース構造を取っているため第１のフィールドと第２のフィールドは垂直方向に半ライン分だけずれた構造になっている。図中では４フィールド分の画像を示しており、左側の２フィールドは参照画像（参照A、参照B）のフィールド、右側は符号化する画像（符号A、符号B）のフィールドを示している。それぞれ右側２フィールド、左側２フィールドは時間的に連続したフィールドであるが、参照のフィールドと符号化フィールドは必ずしも連続していない。ただし、本図では参照のフィールドと符号化フィールドの間のフィールドは省略してある。図中の矢印は図３３の動き検出回路にて検出した動きベクトルの垂直成分を記してある。本来は対応する全ての走査線間に矢印（図では各符号走査線１本当り２〜３本、合計１６〜２４本）を記入するべきであるが、本図では見やすくするために、そのうちの代表的なものを選択し、見やすい位置に配置した。従って、例えば図中fA0を記されている予測のベクトルは参照Aと記されたフィールドの１番目の走査線から符号Aと記されたフィールドの１番目の走査線へ書かれているが、実際には同じ方向大きさの矢印が、それぞれ２〜４番目の走査線間にも存在し、これら３本は省略されている。なお、図中の矢印に付された３文字の記号は、第１の文字が前方予測のベクトル(f)か後方予測のベクトル(b)か、２文字目が第１の参照フィールド(A)か第２の参照フィールド(B)かを、末尾の数字は予測の種類（参照->符号A:0,参照->符号B:1, 符号A->符号B:2）を示している。すなわち先頭２文字の４通りの組み合わせが図３３の動きベクトルのバッファ３３２５〜３３２８に対応し、末尾の数字がバッファに格納される順番を表す。フィールド毎の符号化では、符号Aのフィールド符号時にはベクトルfA0を用いて参照Aフィールドから、あるいはベクトルfB0を用いて参照Bフィールドからの予測のうち予測誤差の少ないほうを選択する。同様に符号Bのフィールド符号時にはベクトルfA2を用いて符号Aフィールド（フィールド単位の符号化では、符号Aフィールドの符号化終了後は符号Aフィールド新たな参照フィールドになる）から、あるいはベクトルfB1を用いて参照Bフィールドからの予測のうち予測誤差の少ないほうを選択する。これらの処理はフィールド単位の符号化のＢピクチャにおいても同じである。ただし、Ｂピクチャ前方予測では符号A->符号Bの予測はできないため、ベクトルfA2のかわりにベクトルfA1が用いられる。後方予測の場合には前方予測の場合のベクトルの記号のfをbに置き換えたベクトルを用いて同様に行うことができる。これらフィールド単位の符号化時の予測はすべて１６ｘ８画素単位の予測を基準としている。すなわち１６ｘ１６のマクロブロックを上下に２分割した予測であり、１つのマクロブロックあたり２つの動きベクトルが必要になる。この２つのベクトルが同じ値であるときは、１６ｘ１６画素単位の予測に置き換えることができる。
図中および以降、ベクトルfA0を用いて参照Aフィールドから生成した予測画像をR(A,fA0)と記述する。
【００７２】
フレーム単位の符号化においてはフレーム単位の予測とフィールドに２分割しての予測が主に使われる。一般の映像では静止部分や水平方向の動きが多いため、図では水平のベクトル（参照A->符号A、参照B->符号B）が多く、これらはフレーム単位の予測に含まれる。一方それ以外の動きでは時間的に近いフィールドからの予測、すなわち参照Bからの予測が多くなり、これらはフィールド単位の予測に含まれる。従って、フレーム単位の予測と、参照Bからの予測とにより大部分の動きをカバーすることが可能になる。フレーム単位の前方（Ｐ、Ｂピクチャ）予測時のベクトルはfA0あるいはfB1を用いる。理想的な場合にはこの２つのベクトルは同じ値になるが、実際には若干異なる場合もある。従って、２つのベクトルfA0、fB1に対応するフレーム予測信号を生成し、予測誤差の小さいものを選択する。この選択後に参照Bからのフィールド予測信号による予測誤差を調べ、３者のうち最適なものを選択する。フレーム単位の後方予測時は前方予測の場合のベクトルの記号のfをbに置き換えたベクトルを用いて同様に行うことができる。ただしフィールド予測時は参照AフィールドからベクトルbA0,bA1を用いて予測信号を生成する。
【００７３】
図３５に戻り、制御回路３５１０は入力されたベクトル２２１１（上記のfA0等）をもとに４つのメモリ３５０２〜３５０４に４種類の図３６右中央の表に示した参照画像信号を格納する。信号格納時には動きベクトルによって示される部分１６ｘ８画素とその左右１画素、上下２画素を合わせて１８ｘ１２画素を格納する。図３６右側の表中、orで示したものはベクトル検出時の誤差が小さいほうを用いる。図３６の（２）の場合はベクトル検出時の誤差信号をベクトル値とともにバッファ３３２７等に格納しておき、ベクトルfA0の誤差がベクトルfB1の誤差より小さい場合にはメモリ３５０３にR(B,fA0)を格納し、ベクトルfB1の誤差が小さいときにはR(A,fB1)を格納する。メモリ３５０２〜３５０４に格納した信号のうち必要なものを同時に読み出し、予測信号回路３５０５にて２種の予測信号３５２０、３５２１を生成する。予測信号３５２０はフレーム予測信号（図３６予測信号枠内の第１あるいは第２の予測信号）、予測信号３５２１はフィールド予測信号（図３６予測信号枠内の第３の予測信号）である。予測信号３５２０、３５２１は半画素回路３５０７−１〜９に入力されベクトル２２１１の±0.5画素の範囲の半画素予測信号３５３０−１〜９および３５３１−１〜９を生成する。これらは検出器３５０６−１〜９により、符号化画像信号２０３と画素毎の差分が取られ、１６ｘ８画素全体での誤差電力が３５５１および３５５２が計算される。最小値選択回路３５５４は誤差電力３５５１、３５５２の小さいほうを選択し、選択情報と誤差電力を信号線３５２３−１に出力する。最小値選択回路３５０８は各検出器３５０６−１〜９の出力３５２３−１〜９の誤差電力を比較し、最も小さいものを選択する。選択結果は予測のモードと半画素単位の動きベクトルとして信号線９に出力される。一方各半画素予測信号３５３０−１〜９および３５３１−１〜９と符号化画像信号２０３は選択差分回路３５０９に蓄えられ、誤差が最小になった予測信号が選択され、画素毎に差分画像信号２２１２として出力される。
【００７４】
予測信号生成回路３５０５は図３６右端に示した予測信号の組（｜記号の両側に示した組）をメモリ３５０２〜３５０４から順次読み出し、ライン（１８画素）毎に出力する。なお、図３６右端に示した予測信号の組のうち第１組と第２組がフレーム予測信号、第３組がフィールド予測信号を表すが、第１組と第２組は先に述べたように動きベクトル検出時の誤差の大きさにより、いずれか一方のみが使われる。
【００７５】
図３７に半画素回路３５０７の詳細図を示す。入力されたフレーム予測信号３５２０は、遅延回路３７１０および３７０１〜３７０８により所定の時間遅延させられた後に、平均値回路３７０９にてそれらの一部の平均が計算され半画素フレーム予測信号３５３０が出力される。７５画素入力し終わった時点での各信号線３７２０ａ〜ｉ、Ａ〜Ｉとブロックの位置関係を示す。
【００７６】
フレーム予測信号        フィールド予測信号
ｚ  ｚ  ｚ  ｚ...ｚ      Ｉ  Ｈ  Ｇ  ｘ...ｘ
ｉ  ｈ  ｇ  ｘ...ｘ      ｘ  ｘ  ｘ  ｘ...ｘ
ｆ  ｅ  ｄ  ｘ...ｘ      Ｆ  Ｅ  Ｄ  ｘ...ｘ
ｃ  ｂ  ａ  ｘ...ｘ      ｘ  ｘ  ｘ  ｘ...ｘ
ｘ  ｘ  ｘ              Ｃ  Ｂ  Ａ
ａ〜ｉ、Ａ〜Ｉはそれぞれ信号線３７２０ａ〜ｉ、Ａ〜Ｉがこの位置の画素を保持していることを示し、ｘは遅延回路内に保持され、ｚはすでに廃棄されていることを表す。７５画素を入力し終わったこの時点で符号化画像信号２０２は入力される。すなわち、符号化画像信号の第１の画素と先の動きベクトルによりのｅあるいはＥで示した位置の画素が対応する。半画素信号の生成法は、例えば符号化画像信号の第１の画素に対応する予測信号値は、半画素のベクトルが（-0.5、-0.5）の場合、フレーム予測で（ｉ＋ｈ＋ｆ＋ｅ＋２）／４、フィールド予測で（Ｉ＋Ｈ＋Ｆ＋Ｅ＋２）／４、（0、+0.5）の場合、フレーム予測で（ｅ＋ｂ＋１）／２、フィールド予測で（Ｅ＋Ｂ＋１）／２、（0、0）の場合、フレーム予測でｅ、フィールド予測でＥとなる。ここで記号／は割り算後結果を切り捨てて整数にする操作を表し、ａ〜ｉ、Ａ〜Ｉはそれぞれ信号線３７２０ａ〜ｉ、Ａ〜Ｉの値を表す。平均値回路３７０９、３７１９における平均値のとりかたは各回路３５０７−１〜９によりすべて異なる。例えば平均値回路３７０９の場合は次の計算を行う。
検出回路      対応ベクトル  計算
３５０７−１  (-0.5,-0.5)  （ｉ＋ｈ＋ｆ＋ｅ＋２）／４
３５０７−２  (-0.5,   0)  （ｈ＋ｅ＋１）／２
３５０７−３  (-0.5,+0.5)  （ｇ＋ｈ＋ｄ＋ｅ＋２）／４
３５０７−４  (   0,-0.5)  （ｆ＋ｅ＋１）／２
３５０７−５  (   0,   0)  ｅ
３５０７−６  (   05,-0.5)  （ｅ＋ｄ＋１）／２
３５０７−７  (+0.5,-0.5)  （ｃ＋ｂ＋ｆ＋ｅ＋２）／４
３５０７−８  (+0.5,   0)  （ｅ＋ｂ＋１）／２
３５０７−９  (+0.5,+0.5)  （ｅ＋ｄ＋ｂ＋ａ＋２）／４
フィールド予測信号も同様に遅延回路３７１１〜３７１８により所定の時間遅延させられた後に、平均値回路３７１９にてそれらの一部の平均が計算され半画素フレーム予測信号３５３１が出力される。平均値のとりかたは各回路３５０７−１〜９によりすべて異なる。ここで、遅延回路３７１３、３７１６は３６画素分の遅延、遅延回路３７０３、３７０６、３７１０は１８画素分の遅延、それ以外の遅延回路は１画素分の遅延である。以上はフレーム単位に符号化した場合であるが、フィールド単位に予測した場合には、２つのフィールド予測信号を３５２０、３５２１に入力しフレーム予測と同様の計算を行う。この時遅延回路３７１０、３７１３、３７１６はそれぞれ０画素、１８画素、１８画素の遅延になるよう、すなわちに半画素回路３５０７の上半分と下半分が同一の処理を行うように、外部より設定する。
【００７７】
図３８に符号量制御回路の実施例を示す。従来の符号量制御回路と異なる点は、動きベクトル検出時に使われた各誤差信号３８１０を符号量メモリ３８０１に蓄積し符号量制御に用いる点である。既に説明したように動きベクトルの検出は符号化に先だって行われる。そのため、そのとき生じた各部分での誤差の大きさをもとに画面内の発生情報量の偏りの予測を行えば、精度の高い符号量制御を行うことができる。また、情報量の多い箇所に多くの符号を割り当てることができるため、画面内の画質を一定にする効果もある。具体的には、所定の小領域毎の差分合計に比例して、この小領域に符号を割り当てる。すなわち、ｉ番目の小領域の誤差値をＥｒ（ｉ）、ｉ番目の小領域までの誤差値の累積をＳＥｒ（ｉ）、領域数をｎ、１画面に割り当てられた符号量をＢとすると、全画面の誤差値の合計ＳＥＲ（ｎ）に対する、符号化をおこなう部分までの誤差値の合計の比率、すなわちＳＥｒ（ｉ）／ＳＥｒ（ｎ）を信号線３８１１を介して符号量制御回路３８０３に通知する。符号量制御回路ではＢ＊ＳＥｒ（ｉ）／ＳＥｒ（ｎ）と実際に発生した符号量を比較し、発生符号量の方が多ければ画質を粗くし、少なければ画質を細かくし、割り当てられた符号量になるよう制御を行う。上記の説明は画面内の小領域間の符号量の割当法をを例にとって行ったが、数画面（例えばＰピクチャとその前に連続するＢピクチャ）中の画面間の符号量の割当法にも適応できる。また、全画面の誤差値の合計が一定値以上になった場合にその画面をＩピクチャとして符号化するよう制御する方法も本発明に含まれる。上記の説明は誤差値として動きベクトル検出時に使われる画素毎の差分の絶対値和を前提としていたが、動きベクトル検出時に別の類似度の類似度の評価値、例えば画素毎の差分の二乗和や、差分信号をアダマールやＤＣＴ変換等により直交変換した後の信号の絶対値和などを評価値として用いてもよい。これらの評価値は実際に発生する符号量により近いため、より精度の高い符号量制御が可能となる。また、先の画素毎の差分の絶対値和、あるいは上記の評価値を変換した値、例えば二乗、対数などの処理をした値、をもちいても制御精度向上の効果が得られる。なお、画像を分割処理する符号化装置にも単一の符号化回路からなる符号化装置にも適用可能である。
【００７８】
図３９は図３８の符号量制御回路の変形例である。図３８の実施例と異なる点は符号量制御用のメモリが２面になり、その一方は外部から入力画像に応じた設定が可能な点である。図３８の実施例では、画面内の画質は一定になるように制御がかかる。しかし、実際には一部をより高画質にした方が画面全体の画質が向上したように感じられたり、また符号者が意図的に画面の一部を高画質化する用途がある。こうした場合には符号配分の重み係数３９１０を符号配分補正用メモリ３９０１に入力し、符号量制御回路３９０２では、読み出した係数３９１１を加味して量子化ステップサイズを決定する。符号配分補正メモリ３９０１には、画面をいくつかの小領域に分割した時、それぞれの小領域に対応した符号配分の重み係数を格納する。例えば、１小領域あたり８ビットのメモリを持ち、メモリに格納した値をＷ（０〜２５５）としたとき、量子化の値を一時的にＷ／１２８倍する。
【００７９】
符号配分の重み係数３９１１の入力は符号化開始時に一度だけ設定しても、１画面毎に設定しても構わない。１画面毎に設定したほうがより細かな補正が可能であるが、逆に入力する符号配分の重み係数の情報量が増えてしまう。例えば１９２０画素ｘ１０２４ラインｘ３０Ｈｚの画像に対し、１６ｘ１６画素に対し８ビットの係数を入力すると、約1.8Ｍｂｐｓの転送レートになる。符号配分の重み係数の転送レートを下げるための以下の変形例も本発明に包含される。
（１）符号配分の重み係数の対応する領域を広げる。あるいは係数のビット数を少なくする。例えば、６４ｘ１６画素に４ビットの係数を割り当てると、転送レートは１／８になる。小領域の形状は任意で構わないが、マクロブロックの形状単位に設定したほうが正確な補正ができ、連続して処理されるＬ個のマクロブロックの形状（水平１６ｘＬ画素、垂直１６画素）にすると符号配分補正用メモリ３９０１をランダムアクセスしなくてすむためメモリのアドレス回路を削減できる。また水平分割した符号化装置に適用する場合も余分な符号配分補正用メモリを持たずに済む。
（２）予め定められたフレーム数(Ｎｗフレーム)に１回、符号配分の重み係数を入力する。これにより、転送レートが１／Ｎｗになる。
（３）重み係数を符号化して転送し、符号配分補正用メモリ３９０１の入力時に復号して入力する。例えば同じ重み係数が連続する場合には、その係数値と連続する個数を伝送する。連続数の最大を２５５個（８ビット）とすると、係数値の変化毎に１６ビットの情報が発生する。１マクロブロックライン（上記例では１９２０ｘ１６画素）あたり平均１０回の変化点があったとすると転送レートは約３００ｋｂｐｓと１／６になる。連続数をハフマン符号等の可変長を用いたり、係数値の変化差分値を可変長符号で符号化する処理等を行えば、さらに転送レートを低くすることができる。ただし、この変形例では１画面当りの重み係数を符号量が可変になるため転送の開始、終了等を通知する制御が必要になる。
（４）数フレームにわたる重み係数の分布を記述する符号を伝送し、符号配分補正用メモリ３９０１の出力時にこの符号を展開して所望の係数値を得る。以下に分布の記述の例を示す。例は３フレーム同じ係数値を続けた後、画面が右に移動したため係数値も右にずらした例である。（）は（）内に記した内容の処理に応じた符号を意味する。
【００８０】
（１画面分係数値転送）（第１係数値）（第２係数値）.....（最終係数値）  （前画面と同一係数を使用）
（前画面と同一係数を使用）
（前画面の左隣の係数を使用）（画面左端第１係数値）（画面左端第２係数値）
.....  （画面左端最終係数値）
.....
以上の様な符号化処理を、上記（３）の変形例と組み合わせることにより転送レートをさらに下げることができる。一方、符号の解析処理は複雑になるが、マイクロプロセッサあるいはディジタルシグナルプロセッサ等を配置し、ソフトウェアにより処理を行えば少ないハード追加で実現ができる。なお、画像を分割処理する符号化装置にも単一の符号化回路からなる符号化装置にも適用可能である。
【００８１】
図４０は図１３に示した共有メモリ回路１１０２の変形例である。図１３では各小符号化あるいは復号化装置に対応するメモリを２面持ち、読み出し用と書き込み込み用に分けていたが、図４０では読み出しと書き込みを１つのメモリ１３０３で行っている。こうした処理を行うことによりメモリ管理回路４００１の回路規模はやや増大するが、メモリ１３０３の数は半分になる。メモリ素子はその高集積化がめざましいため、１画面を４分割した程度画像の大きさの画像（１９２０画素ｘ２５６ラインｘ８ビット＋該当色信号では６Ｍビット程度）２枚を１つの素子に格納することは十分可能であり、１つの素子に格納したほうが回路規模も小さくなる。
【００８２】
メモリ管理回路４００１ではメモリの読み出し機能が追加される。メモリの読み出し処理は書き込み処理と同様に読みだすブロックの先頭画素のアドレス等を信号線１１０４を用いて設定し、設定した後に所望の画素が連続してあるいは間欠的に信号線１１０４のデータ線に出力される。読み出しアドレスの設定は先頭の画素のアドレスの代わりにマクロブロックの番号、マクロブロック内のブロックの番号、該当マクロブロックの動きベクトルを設定してもよい。
【００８３】
図４０の共有メモリ回路はメモリのアクセス回数が２倍になる点、また読み出しを設定してから該当する画素データが出力されるまでの時間に若干の遅延がある点から、本変形例は比較的メモリアクセス数の少ない、復号化回路（図１７）へ適用したときに特に効果が得られる。
【００８４】
図４１は図４０の変形例であり、図４０のメモリ１３０１−１〜４が１つのメモリ４１０１に集約されている。このためメモリ管理回路４１０２は全ての小符号化回路あるいは小復号化回路のメモリアクセスを１つのバス４１１０で行う。
メモリ管理回路４１０２内部には、各アドレス入力線毎にＦＩＦＯあるいはバッファメモリが接続され、このＦＩＦＯあるいはバッファメモリにアドレスが設定された時点でメモリ４１０１の所定のアドレスにアクセスをする。いくつかのアドレス設定がほぼ同時刻に行われた場合はそれらの設定に順序づけをし順番に処理を行う。順序づけには、少しでも早い時刻に書き込まれたものから処理をする方法や、予め定められた順番にＦＩＦＯあるいはバッファメモリの設定の有無を確認しておき、設定されていたものを処理する方法等がある。後者はアクセスの優先順位を自由に設定できる利点はあるが優先順位の低いものは設定してからデータ処理される間での待ち時間が長くなる場合がある。
【００８５】
図４０、図４１の変形例を用いた復号化回路では、メモリアクセス回数が最も多い場合をもとにメモリのアクセス速度を決定する。例えば、先に説明したMPEGではＢピクチャの補間予測の場合に最もメモリアクセス回数が増大し１画素あたり４回（予測画像読み込み２回、再生画像書き込み１回、表示読み出し１回）になる。また、説明を省略したがMPEG2で採用されたＤｕａｌ  ｐｒｉｍｅ予測もＢピクチャと同様に４回のアクセスが必要である。１９２０ｘ２５６ｘ３０Ｈｚｘ１．５（色信号分）の画像の場合は約２２Ｍ画素／秒であることから、８８Ｍ画素／秒のアクセスが必要になる。現在の大容量のメモリのアクセス速度は３０〜４０ｎｓ前後であることから、１回に２画素（１６ビット）アクセスすすることにより、８８Ｍ画素／秒のアクセスを達成することができる。しかし、この場合はアクセスのオーバーヘッドを最小限に抑さえなければならないため、回路構成が複雑になり回路規模が増大する。また、実際には１画面内の予測が全て補間予測あるいはＤｕａｌ  ｐｒｉｍｅ予測であることはほとんどないため、平均のアクセス回数はさらに少ない。従って、メモリのアクセス回数を８８Ｍ画素／秒よりも少ない値で回路を設計しておき、アクセス処理回数が所定の回数を越えたあるいは越える恐れのあるときには、補間予測あるいはＤｕａｌ  ｐｒｉｍｅ予測を簡略処理により実行する回路を付加することによって、小復号化回路および復号化装置全体の回路規模を小さくすることができる。補間予測あるいはＤｕａｌ  ｐｒｉｍｅ予測の簡略処理としては図４２に示すように従来２画素の平均を取っていた予測値をそのいずれかの１画素で置き換えることによって実現する。
このときメモリへのアクセス回数は１画素あたり３回となる。図４２（１）は従来の補間予測あるいはＤｕａｌ  ｐｒｉｍｅ予測における補間処理を示し、以降（２）〜（４）に簡略処理を示す。図の白丸印あるいは黒丸印のついた画素だけを読みだす。これらの簡略処理により再生する画像の画質はやや劣化するが、両予測とも類似した画像の平均値を予測画像としている点、簡略処理をするブロック数が確率的に非常に少ない点から、再生画像の劣化は通常ほとんど気にならない程度のものになる。一方、簡略処理による効果は上記に説明した回路の小型化が図れる。あるいは逆に従来と同じ回路でより低速のメモリを使うこともできる。低速のメモリを使うと、回路コストを削減できる他に、最先端の大容量メモリ（一般には再高速のメモリに比べアクセス速度が遅い）を使用できることになり回路規模削減にも効果がある。（２）の簡略処理１では一方の予測画像しか用いないた復号化のモードを例えば補間予測から前方予測に強制的に切り替えることにより回路の変更増大を最小限に抑さえることができる。一方、（３）の簡略処理２ではライン毎に予測画像を切り替えているため、２つの予測画像の特徴を予測画像に反映させることができる。一般には２つの予測画像はほぼ同一のものであるが、標準化の規定では任意の画像の組み合わせが許されている。簡略処理２は２つの画像が異なるものであっても、簡略処理による劣化を最小限におさえることができる。簡略処理２は垂直方向に分割する方法も包含する。（４）の簡略処理３は簡略処理２に水平方向の変化を加えたもので、簡略処理による誤差の周波数成分が垂直水平とも高周波成分になるため、人間の視覚に感じにくくなり、劣化がより少なく感じられる効果がある。さらに、（５）の簡略処理４は簡略処理２において、予測画像２の画素を用いる箇所にて、予測画像１の周辺の画素から空間補間した画素を作り、この空間補間画素と予測画像２の画素との間で平均値処理を行い予測画像を作りだす。この場合、予測画像生成の回路構成はやや複雑になるが、最も処理速度に影響するメモリへのアクセス頻度は他の簡略処理と同じになる。簡略処理による劣化も他の簡略処理の場合よりもさらにおさえることができる。図では空間補間画素作成時に境界の画素は空間補間画素を使用していないが、ブロック外の画素を用いて空間補間画素を生成する方法、ブロック内の空間的に近い位置の画素を空間補間画素とする方法も本発明に包含される。また、簡略処理４は簡略処理２をベースとしているが、簡略処理３に空間画素補間による方法を適用しても同様の効果が得られる。
【００８６】
なお、本発明は上記で説明した以外のいかなる画素数の画像に対しても適用でき回路の小型化の効果が得られる。また、画像分割した復号化装置に限らず、単一の復号化回路をもつ画像復号化装置にも適用ができ同じ効果がある。
【００８７】
図４０、図４１に示した回路構成および制御方法は画像符号化装置に適用可能である。
【００８８】
図４３は本発明を適用した画像符号化復号化装置の実施例である。画像信号および符号を画面上の該当する位置に応じて分割し、符号化および復号化処理を行う。入力画像信号２−１および入力符号７−１は符号／画像分割回路４３０１にて画像、符号それぞれ独立のタイミングで４つに分割され、信号線４３１０−１〜４を介し小符号化復号化回路４３０１−１〜４に入力される。信号線４３１０−１〜４では画像信号と符号信号が空間的に多重されている。小符号化復号化回路４３０１−１〜４は入力された画像信号に対し符号化処理を行い、符号に対しては復号化処理を行う。これらの処理は既に説明した小符号化回路１１０１や小復号化回路１７０２と同じ処理である。符号化あるいは復号化された結果は画像／符号合成回路４３０３にて符号、再生画像それぞれ独立のタイミングで合成され、出力符号７−２および再生画像信号２−２が得られる。
【００８９】
符号化復号化における参照画像は共有メモリ４３０４に格納されており、アクセス信号４３１２と読み出し信号４３１３を用いてアクセスを行う。これらアクセス信号４３１２と読み出し信号４３１３は小符号化装置のものと、小復号化装置のものを空間的に多重しても時間的に多重しても構わない。共有メモリ回路４３０３の内部のメモリ数はそれぞれの小符号化回路・小復号化回路に対応して１メモリずつ、合計８つの独立したメモリ構成でも、対応する小符号化回路・小復号化回路に１メモリずつ、合計４つの独立したメモリ構成でも、小符号化回路に１メモリ、小復号化回路に、合計２つの独立したメモリ構成でも、あるいは１つのメモリ構成でも構わない。独立のメモリ数が減れば回路規模は小さくなるが、逆に１小符号化回路あるいは小復号化回路に対するアクセス速度が遅くなる、もしくは非常に高速なメモリ素子を必要が必要になる。メモリ構成とアクセス用の信号の多重方法は、それぞれ独立であり、全ての組み合わせが可能である。
【００９０】
図４４は図１１に示した画像符号化装置の変形例である。図４４の変形例は符号化装置だけではなく復号化装置、符号化復号化装置にも適用可能である。
【００９１】
図４４の図１１の共有メモリ回路１１０２を分散させて各小符号化回路４４０１内に設置してある。そのため共有する部分の画像情報は信号線４４１０〜４４１５を介して転送され、各小符号化回路内の共有メモリに格納される。なお、図４４では共有情報は小符号化回路４４０１−１と２、２と３、３と４の間のみに設定された例である。
【００９２】
図４５は小符号化回路４４０１−２の詳細図である。小共有メモリ回路４５０１が配置された点が図１２の小符号化回路１１０１と異なる以外は、図１２の小符号化回路１１０１と同じ動作をする。小共有メモリ回路４５０１は同じ小符号化回路４４０１の局所再生した参照画像１１０３を保持する他、画像を共有する小符号化回路からの共有画像信号４４１１、４４１３を受信し参照画像１１０３と同じメモリに保持する。一方、参照画像１１０３のうち、他の小符号化回路にて共有画像として用いる信号は共有画像信号４４１０あるいは４４１２へ出力し、該当の小符号化回路に転送する。なお、小符号化回路４４０１−３の構成は小符号化回路４４０１−２とほとんど同じであり、共有画像信号４４１０〜４４１３の部分が異なる信号線に接続される。また、小符号化回路４４０１−１、４は共有画像信号線の数が４本から２本になる。
【００９３】
図４６は図４５の小共有メモリ回路４５０１の詳細図である。参照画像信号１１０３および共有画像信号４４１０、４４１３はメモリ管理回路４６０１に入力され、メモリ管理回路４６０１内のバッファメモリあるいはＦＩＦＯに保持される。メモリ管理回路４６０１はバッファメモリあるいはＦＩＦＯにデータが入力されると、そのデータをメモリ１３０３あるいは１３０４の該当する箇所に書き込む。一方、メモリ１３０３あるいは１３０４の読み出しは信号線１１０４を介して図１３に示した共有メモリ回路と同様に行う。
【００９４】
参照画像信号１１０３は転送スイッチ４６０４にも入力される。転送スイッチは入力された信号が共有される部分の信号であれば共有画像信号４４１０あるいは４４１２へ出力し、該当の小符号化回路に転送する。
【００９５】
上記図４４から図４６までの変形例によれば、第１１図と同じ符号化処理速度で同じ符号化効率を達成できる。さらに、第１１図では共有メモリ回路１１０２に集中していた信号線を分散することにより全体の信号線数を減らすことが可能になる。例えば、各小符号化回路あたりアクセス信号１１０３がデータ８本、制御２本、読み出し信号１１０４がデータ８本、アドレス１０本、制御４本とすると共有メモリ回路１１０２の入力信号本数は１２８本になる。一方、図４４の変形例では共有画像信号４４１０〜４４１３はそれぞれデータ８本、制御２本とすると合計で６０本となり半分以下になる。また信号線の集中の度合いも、第１１図では共有メモリ回路一箇所に１２８本に対し、変形例では４０本になる。信号線の集中を回避することにより、画像符号化装置８００を１つのＬＳＩにした場合には信号線のレイアウトが容易になりチップサイズも小さくなる。小画像符号化回路および共有メモリ回路をそれぞれ１つのＬＳＩにした場合には特に共有メモリ回路のＬＳＩのピン数増加による高価格化を避けることができる。また、符号化回路および共有メモリ回路をそれぞれ１つの基版にし、それらをコネクタやケーブル等で接続する場合にはコネクタ数あるいはケーブル数を削減することができる。なお、本変形例はとくに画像を水平分割した時に信号本数を減らす効果が高い。また、分割数を多くするほど信号本数を減らす効果は高くなる。
【００９６】
図４７は図２５の動きベクトル検出回路２４０１の変形例である。動きベクトル検出回路２４０１をコアとしてその周辺回路を設置することによって動きベクトルの検出範囲を広げている。図４７の詳細を説明する前に図４８を用いて動作の概要を説明する。図４８は動き検出に用いるマクロブロックの順番と位置を図示している。第１の例は上に符号化画像のマクロブロック列、下に参照画像のマクロブロック列を示している。１つの四角形が１つのマクロブロック（１６ｘ１６画素）に対応し、２５６画素からなり、図の左のマクロブロックから順次入力し処理を行う。図２５の動きベクトル検出回路の説明では各画素は上の画素から水平方向にスキャンして入力することを仮定していたが、本変形例では左側の画素から垂直にスキャンして入力する。これは図２５の回路の動作の垂直アドレス（位置）と水平アドレス（位置）を入れ替えただけで各動作は全く同じである。
【００９７】
第１の例では参照マクロブロック１Ａ、１Ｂ、１Ｃが符号マクロブロック１の入力に対応して入力され、１Ａ、１Ｂ、１Ｃ、２Ａ、２Ｂ、２Ｃ、を用いて符号マクロブロック１の動きベクトルが探索される。符号マクロブロック２に対しては参照マクロブロック１Ａ、１Ｂ、１Ｃ、２Ａ、２Ｂ、２Ｃ、３Ａ、３Ｂ、３Ｃが用いられ、そのうち１Ａ、１Ｂ、１Ｃ、２Ａ、２Ｂ、２Ｃは先の符号マクロブロック１の処理時に入力した画素を保持しておき、新たに３Ａ、３Ｂ、３Ｃの画素のみを入力する。
【００９８】
符号マクロブロック２と参照マクロブロック１Ｂが位置的には対応し、水平垂直±１６画素（第１のマクロブロックのみは水平０〜＋１６）の範囲を探索している。通常は、参照マクロブロック２Ｂの位置の画素との類似性が最も高いとき通常は動きベクトル（０、０）とするが、参照画素を読み出すアドレスに固定のオフセット値を加え（０、０）以外の点を中心に探索をすることも可能である。
例えば水平・垂直アドレスに（  ８、１）のオフセットを加えれば水平―８〜＋２４、垂直―１５〜＋１７までの範囲を探索することになる。第１の例では参照画像の各マクロブロックの図示した順番と画面上のマクロブロックの位置が一致している。
【００９９】
図４８の第２の例は上記のオフセット値をマクロブロック毎に変化させた場合である。例えば符号化マクロブロック２に対しては参照マクロブロック１Ａ'、１Ｂ'、１Ｃ'、２Ａ'、２Ｂ'、２Ｃ'、３Ａ、３Ｂ、３Ｃが用いられ、１Ａ'等は１Ａ、１Ｂ、１Ｃ、２Ａ、２Ｂ、２Ｃとは異なる位置の画素であるため一般には再度読み出す必要がある。その結果、参照画像の読み出し速度を第１の例と同じにした場合には、処理速度は３分の１になってしまう。
【０１００】
図４８の第３の例はオフセット値を４マクロブロック毎に変えた例である。この例が図４７の回路に相当する。第３の例では処理量は第１の例に比べ３分の２になるが、オフセット値を変化させる単位を８マクロブロックにすれば１０分の８、１６マクロブロックにすれば１８分の１６と例１に近づく。
【０１０１】
図４７に戻って説明を行う。入力した参照画像１１（例えば図４８の例３の３Ａ〜Ｃ）あるいは２１４はベクトル検出回路２４０１に入力されると同時にメモリ４７０１―１、２、３のいずれか（例えば４７０１―１）に格納される。一方、これと同時に、先の例ではメモリ４７０１―２、３から格納されている画素のデータが読み出されて（例えば図４８の例３の１Ａ〜Ｃ、２Ａ〜Ｃ）入力参照画像１１あるいは２１４（例えば図４８の例３の３Ａ〜Ｃ）と同時にベクトル検出回路２４０１に入力される。一方符号化画像２０２（例えば図４８の例３のマクロブロック２）は遅延回路４７０８にて所定の時間（図４８の例では１マクロブロック分の時間）遅延させた後、ベクトル検出回路２４０１に入力されベクトルが求められる。求められた３つ（フレーム、奇数フィールド、偶数フィールド）のベクトル２４１０、２４１１、２４１２は出力されると同時に、それぞれ加算器４７０２、４７０４、４７０６に入力される。これら加算器ではメモリ４７０３、４７０５、４７０７に格納されている、同一符号化画面の別のマクロブロックのベクトル値の加算結果４７１４、４７１５、４７１６と水平、垂直成分毎に加算され、再びメモリ４７０３、４７０５、４７０７にそれぞれ格納される。制御回路４７５０は画面内のマクロブロックをいくつかのグループに分割し、各グループ毎にメモリ４７０３、４７０５、４７０７に領域を設け、これら領域にベクトル値の加算結果を格納する。処理中のマクロブロックがあるグループに属しているとき、制御回路４７５０は該当するメモリのアドレス４７１３を出力し同一グループ内の全てのマクロブロックのベクトル値を水平、垂直成分毎に加算する。制御回路４７５０はこれらの加算結果４７１０、４７１１、４７１２を各グループの最終マクロブロックの処理終了時に読み出す。これらの加算結果をグループ内のマクロブロックの数で割ると各グループの平均ベクトルが得られる。
同一符号化画面に対して次の連続する画面からベクトル探索時にこれら平均ベクトルを各グループのオフセット値とする。制御回路４７５０は参照画像アドレス４７６１を生成するときに、そのマクロブロックが属するグループの平均ベクトルをオフセット値として加えることにより実現できる。なお、符号化画像アドレス４７６２は通常の処理時と同様に符号化画像のマクロブロックを順次読み出すようアドレスを生成する。
【０１０２】
同一符号化画面に対して次の連続する画面からベクトル探索時にこれら平均ベクトルを各グループのオフセット値とすることにより、１画面に対するベクトル探索範囲を狭くしても、広範囲のベクトルを求めることができる。具体的にはＩ、Ｂ、Ｂ、Ｐの順番に符号化するとき、最初のＩピクチャから第１のＢピクチャのベクトルを求め、次に求めたベクトルのグループ毎の平均ベクトルをオフセットとして、Ｉピクチャから第２のＢピクチャのベクトル、第２のＢピクチャのベクトルをオフセットとして、ＩピクチャからＰピクチャのベクトルを求める操作により、Ｐピクチャに対しては１回のベクトル探索範囲の水平垂直それぞれ３倍までの範囲の動きに追随すること可能となる。
【０１０３】
各グループの画面内での形状は自由であり、分散していても構わないが、図４８の第３の例の項で説明したように水平方向には数マクロブロック連続していることが望ましい。具体的には水平は８以上で画面水平マクロブロック数（４４あるいは４５）の整数分の１あるいは２のベキ乗、具体的には８あるいは９あるいは１１あるいは１６マクロブロックのうちいずれかと、垂直１〜４マクロブロックのいずれかの組み合わせが回路構成上およびメモリの読み出し速度の理由から特に好ましい。
グループ内のマクロブロック数が２のベキ乗であると平均ベクトルの計算がシフト操作にて可能になり回路的に有利である。２のベキ乗個でない場合にはその数より大きい２のベキ乗で割っても構わない。例えば１つのグループが水平８マクロブロック、垂直３マクロブロックの時には、１グループあたり２４マクロブロックであるが、平均値計算時に３２で割ってもかまわない。このとき、得られる平均ベクトルは正しい平均ベクトルの４分の３の値になり、探索範囲も４分の３（先の例のＰピクチャでは３＊３／４＝２.２５倍の範囲）になるが、グループ内の不規則な動き等によるベクトルの影響を小さくする効果があり、実際の符号化時には動きベクトルの符号量が少なくなり高い画質が得られる場合もある。
【０１０４】
上記の説明ではグループの重複はないと仮定していたが、グループを重複しても構わない。ただし、オフセットとして使用する平均ベクトルをどのグループの平均値を用いるかは定めておかなければならない。グループ重複の例としては、例えば同一オフセット値を用いるグループが水平８マクロブロック、垂直１マクロブロック、平均値計算に用いるグループが水平８マクロブロック、垂直３マクロブロック（上下１マクロブロック）などがある。このような重複行うことにより、オフセット値のベクトルの精度が高くなり、符号化の効率も高まる。なお、平均ベクトル計算時に加重平均を用いても構わない。上記の重複ブロック例で、上下のマクロブロックのベクトルは１／２の重みとして計算しても構わない。なお、例えば上記の例の重複ブロックの処理ではメモリ４７０３。４７０５、４７０７の読み出しおよび加算器４７０２、４７０４、４７０４の処理に３倍の処理速度が必要になる。
【図面の簡単な説明】
【０１０５】
【図１】従来の符号化装置を説明する図である。
【図２】従来のＭＣ／ＤＣＴ回路の詳細図である。
【図３】動き補償フレーム間予測の動作を説明する図である。
【図４】従来の画像メモリ、参照画像メモリ、動き検出回路の詳細図である。
【図５】図４の動き検出回路の動作タイミングチャートである。
【図６】従来の動きベクトル検出回路の詳細図である。
【図７】図６の動きベクトル検出回路の動作タイミングチャートである。
【図８】従来の画像分割処理による画像符号化装置を説明する図である。
【図９】従来の分割回路の詳細図である。
【図１０】従来の符号統合回路の詳細図である。
【図１１】本発明を適用した画像符号化装置を説明する図である。
【図１２】本発明を適用した小符号化回路の詳細図である。
【図１３】本発明を適用した共有メモリ回路の詳細図である。
【図１４】本発明を適用したメモリ管理回路の詳細図である。
【図１５】本発明を適用したメモリ管理方式を説明する図である。
【図１６】本発明を適用したＭＣ／ＤＣＴ回路の詳細図である。
【図１７】本発明を適用した画像復号化装置を説明する図である。
【図１８】本発明を適用した符号分割回路の詳細図である。
【図１９】本発明を適用した小復号化回路の詳細図である。
【図２０】本発明を適用した画像統合回路の詳細図である。
【図２１】小符号化回路の変形例である。
【図２２】ＭＣ／ＤＣＴ回路の変形例である。
【図２３】図２２のフレームメモリ回路の詳細図である。
【図２４】図２２の動き検出回路の詳細図である。
【図２５】図２４の動きベクトル検出回路の詳細図である。
【図２６】図２５の検出回路の変形例である。
【図２７】図１１の画像符号化装置の変形例である。
【図２８】図２７の小符号化回路の詳細図である。
【図２９】図２８の符号制御回路の詳細図である。
【図３０】本発明を適用した符号量調整回路付きの小符号化回路の詳細図である。
【図３１】符号量調整回路付きの小符号化回路の変形例である。
【図３２】図３０の符号量調整回路の詳細図である。
【図３３】図２３、２４のフレームメモリ回路及び動き検出回路の変形例である。
【図３４】図３３のフレームメモリ回路及び動き検出回路の動作タイミングチャートである。
【図３５】図２２中の動き補償回路の詳細図である。
【図３６】図３５の動き補償回路の動作を説明する図である。
【図３７】図３５の半画素回路の詳細図である。
【図３８】本発明を適用した符号量制御回路を備えた小符号化回路を説明する図である。
【図３９】図３８の符号量制御回路を備えた小符号化回路の変形例である。
【図４０】図１１の共有メモリ回路の変形例を説明する図である。
【図４１】図１１の共有メモリ回路の第２の変形例を説明する図である。
【図４２】予測画像生成の簡略化法を説明する図である。
【図４３】本発明を適用した画像符号化復号化装置を説明する図である。
【図４４】図１１の符号化装置の変形例である。
【図４５】図４４の小符号化回路の詳細図である。
【図４６】図４５の小共有メモリの詳細図である。
【図４７】図２５の動きベクトル検出回路の変形例である。
【図４８】図４７の動きベクトル検出の動作を説明する図である。
【符号の説明】
【０１０６】
２…入力画像、４…ＭＣ／ＤＣＴ回路、５…可変長符号化回路、７…符号、
８００…画像符号化装置、８０１…画像分割回路、８０３…符号統合回路、
１１０１…小符号化回路、１１０２…共有メモリ回路、１７００…画像復号化装置、１７０１…符号分割回路、１７０２…小画像復号化回路、１７０３…画像合成回路、２２０１…フレームメモリ回路、２２０２…動き補償回路、２４０１…動きベクトル検出回路、２８０１…符号制御回路、３００１…符号調整回路、
３８０１…符号量制御メモリ、４３００…符号化復号化装置、４３０１…画像／符号分割回路、４３０２…小符号化復号化回路、４３０３…画像／符号合成回路。
【図１】
2004320804.tif 000003
【図２】
2004320804.tif 000004
【図３】
2004320804.tif 000005
【図４】
2004320804.tif 000006
【図５】
2004320804.tif 000007
【図６】
2004320804.tif 000008
【図７】
2004320804.tif 000009
【図８】
2004320804.tif 000010
【図９】
2004320804.tif 000011
【図１０】
2004320804.tif 000012
【図１１】
2004320804.tif 000013
【図１２】
2004320804.tif 000014
【図１３】
2004320804.tif 000015
【図１４】
2004320804.tif 000016
【図１５】
2004320804.tif 000017
【図１６】
2004320804.tif 000018
【図１７】
2004320804.tif 000019
【図１８】
2004320804.tif 000020
【図１９】
2004320804.tif 000021
【図２０】
2004320804.tif 000022
【図２１】
2004320804.tif 000023
【図２２】
2004320804.tif 000024
【図２３】
2004320804.tif 000025
【図２４】
2004320804.tif 000026
【図２５】
2004320804.tif 000027
【図２６】
2004320804.tif 000028
【図２７】
2004320804.tif 000029
【図２８】
2004320804.tif 000030
【図２９】
2004320804.tif 000031
【図３０】
2004320804.tif 000032
【図３１】
2004320804.tif 000033
【図３２】
2004320804.tif 000034
【図３３】
2004320804.tif 000035
【図３４】
2004320804.tif 000036
【図３５】
2004320804.tif 000037
【図３６】
2004320804.tif 000038
【図３７】
2004320804.tif 000039
【図３８】
2004320804.tif 000040
【図３９】
2004320804.tif 000041
【図４０】
2004320804.tif 000042
【図４１】
2004320804.tif 000043
【図４２】
2004320804.tif 000044
【図４３】
2004320804.tif 000045
【図４４】
2004320804.tif 000046
【図４５】
2004320804.tif 000047
【図４６】
2004320804.tif 000048
【図４７】
2004320804.tif 000049
【図４８】
2004320804.tif 000050
【手続補正書】
【提出日】平成16年6月17日(2004.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力された符号列の先頭の所定のビット数を抽出する手段と、
前記抽出したビット列のビット位置から所定の値が連続している連続数を計数する手段と、
前記連続数に該当するビットに後続するビット列から所定長さの後続ビット数列を抽出する手段と、
前記連続数と前記後続ビット数列を用いて検索テーブルのインデクスを生成する手段とを備え、
該インデクスが指し示す検索テーブル内の値を用いて前記符号列に該当する可変長符号の解読を行うことを特徴とする可変長復号化回路。
【請求項２】
上記所定の値は０であることを特徴とする請求項１記載の可変長復号化回路。
【請求項３】
入力された符号列の先頭の所定のビット数を抽出し、
前記抽出したビット列のビット位置から所定の値が連続している連続数を計数し、
前記連続数に該当するビットに後続するビット列から所定長さの後続ビット数列を抽出し、
前記連続数と前記後続ビット数列を用いて検索テーブルのインデクスを生成し、
該インデクスが指し示す検索テーブル内の値を用いて前記符号列に該当する可変長符号の解読を行うことを特徴とする可変長復号化方法。