(57)【特許請求の範囲】
【請求項１】
周波数変換された非圧縮画像データをマクロブロック単位で量子化して量子化マクロブロックを生成する量子化部と、
前記量子化マクロブロックを符号化して符号化データを生成する符号化部と、
前記符号化部により生成された符号化データを順次出力する出力部と、
を備え、
前記符号化部は、
前記非圧縮画像データを構成する一のスライスにおいて水平方向に配列されたマクロブロックにより構成されるマクロブロックラインのうち、１つ又は連続する複数のマクロブロックラインがライングループを構成する場合、前記一のスライスの終端に位置せず、かつ、前記ライングループの終端に位置する終端マクロブロックから、前記終端マクロブロックの後に続けて符号化される所定数のマクロブロックまでのマクロブロックのうち、いずれか一つを第１非スキップマクロブロックに設定する第１設定部と、
前記符号化部により符号化された第１非スキップマクロブロックを含む符号化データの符号量が、前記出力部が符号化データを出力可能な最小出力単位以上となるまで、前記第１非スキップマクロブロックの後に続けて符号化されるマクロブロックを第２非スキップマクロブロックに設定する第２設定部と、
を含み、
前記出力部は、前記第１非スキップマクロブロックを含む第１符号化データを前記最小出力単位で出力する画像符号化装置。
【請求項２】
請求項１に記載の画像符号化装置であって、
前記出力部は、前記第１非スキップマクロブロックを含まない第２符号化データを出力するとき、前記最小出力単位よりも大きいサイズで前記第２符号化データを出力する画像符号化装置。
【請求項３】
請求項２に記載の画像符号化装置であって、
前記出力部は、前記符号化データを復号して映像データを表示する画像復号装置に、前記符号化データを送信し、
前記画像復号装置において、前記グループを表示する期間が予め設定されている画像符号化装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の画像符号化装置であって、
前記所定数をＫとし、前記最小出力単位のビット数をＡとし、前記マクロブロックラインを構成するマクロブロックの数をＸとし、１ビットの符号化データの生成に必要なマクロブロックの最大数をＢとした場合、
前記所定数Ｋは、下記（式１）で表わされる画像符号化装置。
Ｋ＝Ｘ−（Ａ×Ｂ）＋１  ・・・（式１）
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非圧縮画像データを符号化する際に、スキップマクロブロックを利用する画像符号化装置に関する。
【背景技術】
【０００２】
Ｈ．２６４、ＭＰＥＧ２などの動画像データの符号化規格において、予測動きベクトルを用いた場合に全ての量子化値が０となるマクロブロックを、スキップマクロブロック（以下、スキップＭＢ（MacroBlock）と呼ぶ。）として符号化することができる。マクロブロックがスキップＭＢとして符号化された場合、このマクロブロックの符号化データは生成されない。画像復号装置は、スキップＭＢを復号する場合、予測動きベクトルの参照先のデータを用いる。スキップＭＢを利用することにより、動画像データの符号化効率を向上させることができる。
【０００３】
しかし、消費電力の低下、遅延の短縮など目的として、符号化された動画像データを通常と異なる方法で復号することがある。この場合、動画像データがスキップＭＢを利用して符号化されていると、符号化された動画像データを復号する際にエラーが発生することがある。そこで、特定のマクロブロックをスキップＭＢとして符号化することを禁止する技術が、特許文献１，２に記載されている。
【０００４】
特許文献１には、ピクチャを複数の並列処理領域に分割し、複数の符号化エレメントにより各並列処理領域を並行して符号化する画像符号化装置が記載されている。各符号化エレメントは、各並列処理領域の先頭マクロブロックにおけるスキップＭＢの発生を抑止する。これにより、ピクチャを複数のスライスに分割しなくても、並列処理領域をまたぐ量子化パラメータの参照が発生しないようにすることができる。
【０００５】
特許文献２には、１枚のピクチャを１つ以上のスライスに分割して符号化する技術が記載されている。各スライスの最初のマクロブロックまたは最後のマクロブロックがスキップＭＢとして符号化された場合、スキップＭＢとして符号化された最初のマクロブロックまたは最後のマクロブロックの種別が、非スキップＭＢに強制的に変更される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３９５６５号公報
【特許文献２】特開２０００−３３３１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に係る画像符号化装置は、ピクチャを複数の並列処理領域に分割し、各並列処理領域を並行して符号化することにより、低消費電力での処理性能を向上させる。特許文献１に係る画像符号化装置の構成を用いることにより、ピクチャの符号化に要する時間を短縮できる。しかし、特許文献１に係る画像符号化装置は、複数の符号化エレメントを備えなければならず、構成が複雑となる。
【０００８】
本発明は、上記問題点に鑑み、複雑な構成を必要とせず、動画像データを符号化するときの遅延を小さくすることができる画像符号化装置を提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１記載の発明は、画像符号化装置であって、周波数変換された非圧縮画像データをマクロブロック単位で量子化して量子化マクロブロックを生成する量子化部と、前記量子化マクロブロックを符号化して符号化データを生成する符号化部と、前記符号化部により生成された符号化データを順次出力する出力部と、を備え、前記符号化部は、前記非圧縮画像データを構成する一のスライスにおいて水平方向に配列されたマクロブロックにより構成されるマクロブロックラインのうち、１つ又は連続する複数のマクロブロックラインがライングループを構成する場合、前記一のスライスの終端に位置せず、かつ、前記ライングループの終端に位置する終端マクロブロックから、前記終端マクロブロックの後に続けて符号化される所定数のマクロブロックまでのマクロブロックのうち、いずれか一つを第１非スキップマクロブロックに設定する第１設定部と、前記符号化部により符号化された第１非スキップマクロブロックを含む符号化データの符号量が、前記出力部が符号化データを出力可能な最小出力単位以上となるまで、前記第１非スキップマクロブロックの後に続けて符号化されるマクロブロックを第２非スキップマクロブロックに設定する第２設定部と、を含み、前記出力部は、前記第１非スキップマクロブロックを含む第１符号化データを前記最小出力単位で出力する。
【００１０】
請求項２記載の発明は、請求項１に記載の画像符号化装置であって、前記出力部は、前記第１非スキップマクロブロックを含まない第２符号化データを出力するとき、前記最小出力単位よりも大きいサイズで前記第２符号化データを出力する。
【００１２】
請求項３記載の発明は、請求項２に記載の画像符号化装置であって、前記出力部は、前記符号化データを復号して映像データを表示する画像復号装置に、前記符号化データを送信し、前記画像復号装置において、前記グループを表示する期間が予め設定されている。
【００１３】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載の画像符号化装置であって、前記所定数をＫとし、前記最小出力単位のビット数をＡとし、前記マクロブロックラインを構成するマクロブロックの数をＸとし、１ビットの符号化データの生成に必要なマクロブロックの最大数をＢとした場合、前記所定数Ｋは、下記（式１）で表わされる。
Ｋ＝Ｘ−（Ａ×Ｂ）＋１  ・・・（式１）
【発明の効果】
【００１４】
本発明の画像符号化装置は、第１マクロブロックラインの終端マクロブロックから所定数のマクロブロックまでのいずれか１つのマクロブロックを第１非スキップマクロブロックとして符号化する。本発明の符号化装置は、第１非スキップマクロブロックを含む符号化データの符号量が最小出力単位となるまで、第１非スキップマクロブロックの後に続けて符号化されるマクロブロックを第２非スキップマクロブロックとして符号化する。非スキップマクロブロックが、終端マクロブロックから無制限に連続して発生することを防止できるため、第１マクロブロックラインの符号化に伴う遅延を小さくできる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る画像伝送システムの構成を示す機能ブロック図である。
【図２】図１に示す画像符号化装置の構成を示す機能ブロック図である。
【図３】図２に示す可変長符号化部の構成を示す機能ブロック図である。
【図４】図１に示す画像復号装置の構成を示す機能ブロック図である。
【図５】図１に示す画像符号化装置により符号化されるフレームを示す図である。
【図６】図１に示す画像符号化装置、画像復号装置及びモニタの処理タイミングを示すシーケンス図である。
【図７】図１に示す可変長符号化部の動作を示すフローチャートである。
【図８】図１に示すフレームにおいて、非スキップマクロブロックとして符号化を開始できるマクロブロックの範囲を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の実施の形態について説明する。
【００１７】
｛１．画像伝送システムの構成｝
図１は、実施の形態に係る画像伝送システムの機能ブロック図である。図１に示す画像伝送システムは、画像符号化装置１と、画像復号装置２と、カメラ３と、モニタ４とを備える。
【００１８】
カメラ３は、被写体を撮影して非圧縮画像データ５を生成する。非圧縮画像データ５は、動画像データであり、フレーム単位で画像符号化装置１に入力される。画像符号化装置１は、非圧縮画像データ５をＨ．２６４方式で符号化して、符号化データ６を生成する。符号化データ６は、無線通信により、画像復号装置２へ送信される。画像復号装置２は、送信された符号化データ６を復号して映像データ７を生成する。モニタ４は、画像復号装置２により生成された映像データ７を表示する。
【００１９】
図１に示す画像伝送システムは、たとえば、監視システムであり、カメラ３により撮影された映像をリアルタイムでモニタ４に表示する。画像符号化装置１及びカメラ３は、金融機関のＡＴＭ（Automated Teller Machine）コーナーなどに設置される。画像復号装置２及びモニタ４は、監視室に設置される。ＡＴＭコーナーをリアルタイムで監視するために、画像伝送システムは、カメラ４により撮影された映像がモニタ４に表示されるまでの時間をできるだけ短くすることが要求される。
【００２０】
なお、図１に示す画像伝送システムを、低遅延が要求される映像の配信などに用いてもよい。この場合、非圧縮画像データ５は、カメラ３により生成されなくてもよい。たとえば、画像符号化装置１が非圧縮画像データ５を生成してもよい。
【００２１】
｛２．画像符号化装置の構成｝
図２は、画像符号化装置１の構成を示す機能ブロック図である。図２に示すように、画像符号化装置１は、入力部１１と、周波数変換部１２と、量子化部１３と、可変長符号化部１４と、送信部１５とを備える。
【００２２】
入力部１１は、カメラ３により生成された非圧縮画像データ５をフレーム単位で入力する。周波数変換部１２は、非圧縮画像データ５のフレームをマクロブロック単位で周波数変換する。量子化部１３は、周波数変換されたマクロブロックを量子化して量子化マクロブロック５３を生成する。可変長符号化部１４は、量子化マクロブロック５３をエントロピー符号化して符号化データ６を生成する。送信部１５は、符号化データ６を分割して画像復号装置２に送信する。符号化データ６の送信には、たとえば、無線ＬＡＮ（Local Area Network）などが用いられる。
【００２３】
図３は、可変長符号化部１４の構成を示す機能ブロック図である。図３に示すように、可変長符号化部１４は、スキップＭＢ設定部１４１と、算術符号化部１４２と、バッファ１４３とを備える。
【００２４】
スキップＭＢ設定部１４１は、量子化マクロブロック５３をスキップＭＢに設定するか否かを判定する。
【００２５】
算術符号化部１４２は、量子化マクロブロック５３がスキップＭＢ設定部１４１により非スキップＭＢに設定された場合、ＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Code）などを用いて量子化マクロブロック５３を符号化し、符号化データ６を生成する。
【００２６】
算術符号化部１４２は、スキップＭＢを利用した符号化を許可されているとき、量子化マクロブロック５３をスキップＭＢとして符号化できる。算術符号化部１４２は、量子化マクロブロック５３の量子化値などに基づいて、スキップＭＢとして符号化する否かを決定する。具体的には、算術符号化部１４２は、量子化マクロブロック５３の予測動きベクトルを用いることにより量子化マクロブロック５３の全ての量子化値が０となった場合、量子化マクロブロック５３をスキップＭＢとして符号化する。量子化マクロブロック５３は、上記の条件を満たさない場合、非スキップＭＢとして符号化される。
【００２７】
バッファ１４３は、算術符号化部１４２より生成された符号化データ６を一時的に格納する。
【００２８】
｛３．画像復号装置２の構成｝
図４は、画像復号装置２の構成を示す機能ブロック図である。図４に示すように、画像復号装置２は、受信部２１と、復号部２２と、出力部２３とを備える。受信部２１は、分割された符号化データ６を受信する。復号部２２は、受信部２１が受信した符号化データ６を順次復号して、映像データ７を生成する。出力部２３は、復号部２２により生成された映像データ７をモニタ４に出力する。
【００２９】
｛４．画像伝送システムの動作の概略｝
以下、図５及び図６を参照しながら、画像伝送システムの動作の概略を説明する。
【００３０】
図５は、非圧縮画像データ５のフレーム５１の構成を示す概略図である。図５において、一部のマクロブロックの表示を省略している。フレーム５１は、複数のマクロブロックに分割され、Ｐ（Predictive）ピクチャとして符号化される。フレーム５１を構成するスライスの数は、１である。なお、フレーム５１がＩピクチャとして符号化される場合、フレーム５１は、従来と同様の手順で符号化される。
【００３１】
マクロブロックのサイズは、縦１６画素×横１６画素である。フレーム５１が、縦６４０画素×横４８０画素のＶＧＡ（Video Graphics Array）サイズである場合、４０個のマクロブロックが水平方向（横方向）に並び、３０個のマクロブロックが垂直方向（縦方向）に並ぶ。
【００３２】
本実施の形態では、水平方向に並ぶ４０個のマクロブロックを、マクロブロックラインと呼ぶ。連続する複数のマクロブロックラインを、ライングループと呼ぶ。たとえば、マクロブロックラインＬ１〜Ｌ３は、ライングループＧ１を構成する。マクロブロックラインＬ４〜Ｌ６は、ライングループＧ２を構成する。
【００３３】
図６は、画像符号化装置１による符号化タイミングと、画像復号装置２による復号タイミングと、モニタ４による表示タイミングとを示すタイムチャートである。
【００３４】
図６に示す画像符号化装置１の符号化タイミングは、スキップＭＢがライングループＧ１からＧ２にかけて連続して発生しない場合における、各ライングループの符号化期間を示している。つまり、ライングループＧ１，Ｇ２の符号化終了時刻ｔ４，ｔ７は、スキップＭＢの発生状況により変動する可能性がある。時刻ｔ４の変動に伴い、画像復号装置２がライングループＧ２の復号を開始する時刻ｔ５も変動する可能性がある。
【００３５】
また、モニタ４におけるライングループの表示期間は固定されている。つまり、モニタ４は、時刻ｔ４、ｔ５，ｔ７の変化に関係なく、ライングループＧ１の表示処理を時刻ｔ３〜ｔ６に行い、ライングループＧ２の表示処理を時刻ｔ６〜ｔ９に行う。
【００３６】
画像符号化装置１は、時刻ｔ１〜ｔ４の期間に、ライングループＧ１を符号化し、符号化されたマクロブロックを画像復号装置２に順次送信する。画像符号化装置１は、時刻ｔ４〜ｔ７の期間に、ライングループＧ２を符号化し、符号化されたマクロブロックを画像復号装置２に順次送信する。
【００３７】
画像復号装置２は、符号化されたライングループＧ１の復号を時刻ｔ２から開始し、符号化されたライングループＧ２の復号を時刻ｔ５から開始する。画像復号装置２は、復号を終了したマクロブロック（映像データ７）を順次、モニタ４に出力する。モニタ４は、時刻ｔ３から、ライングループＧ１の映像データ７の表示を開始し、時刻ｔ６から、ライングループＧ２の映像データ７の表示を開始する。
【００３８】
このように、画像符号化装置１が符号化の終了したマクロブロックを画像復号装置２に順次送信することにより、画像復号装置２は、受信したマクロブロックの復号を開始できる。したがって、画像符号化装置１がフレーム５１の符号化を開始してからモニタ４が映像データ７の表示を開始するまでの時間を短縮できる。
【００３９】
｛５．スキップＭＢが連続するときの問題点｝
上述のように、画像符号化装置１は、符号化したマクロブロックを画像復号装置２に順次送信する。しかし、スキップＭＢの発生を無制限に認めた場合、モニタ４が一部のマクロブロックを表示できないケースが発生する。
【００４０】
たとえば、マクロブロックｍ８１〜ｍ１９９が、スキップＭＢとして符号化され、マクロブロックｍ８０，ｍ２００が非スキップマクロブロック（以下、非スキップＭＢと呼ぶ。）として符号化されると仮定する。この場合、「マクロブロックｍ８１〜ｍ１９９がスキップＭＢである」ことを示す符号化データ６は、マクロブロックｍ２００が非スキップＭＢとして符号化されることが決定されたときに生成される。ライングループＧ１の符号化が終了する時刻ｔ４が遅れるため、モニタ４がライングループＧ１の表示処理を終了する時刻ｔ６（図６参照）までに、画像復号装置２が、マクロブロックｍ８１を復号できないケースが発生する。この結果、モニタ４は、マクロブロックｍ８１の映像データ７を表示できない。
【００４１】
このように、各マクロブロックをスキップＭＢとして符号化することを無制限に認めた場合、表示エラーが発生する可能性がある。このような問題の発生を防ぐために、可変長符号化部１４は、スキップＭＢの制限処理を実行する。スキップＭＢの制限処理は、一部のマクロブロックを強制的に非スキップＭＢとして符号化する処理である。以下、詳しく説明する。
【００４２】
｛６．スキップＭＢの制限処理｝
まず、可変長符号化部１４によるスキップＭＢの制限処理の概略を説明する。以下、図５に示すフレーム５１の各マクロブロックは、量子化マクロブロックであると仮定して説明する。
【００４３】
可変長符号化部１４は、量子化マクロブロック５３がライングループの終端マクロブロック（以下、終端ＭＢと呼ぶ。）である場合、量子化マクロブロック５３を非スキップＭＢとして強制的に符号化する。これにより、終端ＭＢが符号化されるタイミングが遅れることを防止できる。図５に示すフレーム５１において、ハッチングで示されるマクロブロックｍ１２０，ｍ２４０が、終端ＭＢに該当する。つまり、マクロブロックラインの右端に位置するマクロブロックは、３つのマクロブロックラインごとに非スキップＭＢに設定される。
【００４４】
可変長符号化部１４は、終端ＭＢの後に続けて符号化される後続マクロブロック（以下、後続ＭＢと呼ぶ。）を、非スキップＭＢとして強制的に符号化する。たとえば、マクロブロックｍ１２１，１２２，１２３，・・・が、後続ＭＢに該当する。非スキップＭＢとして符号化された終端ＭＢ及び後続ＭＢは、符号化データ６としてバッファ１４３に格納される。
【００４５】
送信部１５は、終端ＭＢを含む符号化データ６がバッファ１４３に格納され、バッファ１４３内の符号化データ６の符号量が最小送信単位（８ビット）に達した場合、バッファ１４３内の符号化データ６を画像復号装置２に送信する。非スキップＭＢの符号量は、スキップＭＢの符号量よりも大きい。後続ＭＢを非スキップＭＢとして符号化することにより、終端ＭＢを含む符号化データ６が、バッファ１４３に格納されている時間を短縮できる。
【００４６】
送信部は、バッファ１４３が終端ＭＢの符号化データ６を格納していない場合、最小送信単位よりも大きい符号量の符号化データ６を送信する。具体的には、送信部１５は、バッファ１４３内の符号化データ６の符号量が予め設定されたしきい値を超えた場合、バッファ１４３に格納された符号化データ６を送信する。しきい値は、最小送信単位の整数倍（２以上）である。
【００４７】
このように、画像符号化装置１は、ライングループの終端ＭＢを強制的に非スキップＭＢとして符号化し、終端ＭＢを含む符号化データ６の符号量が最小送信単位に達するまで後続ＭＢを非スキップＭＢとして符号化する。これにより、画像符号化装置１は、複数のライングループを並列して符号化しなくても、フレーム５１の符号化に伴う遅延を短縮できる。
【００４８】
また、ライングループの終端ＭＢを非スキップＭＢとして符号化することにより、スキップＭＢが、ライングループをまたいで発生しない。このため、ライングループ全体の符号化に伴う遅延も短縮できる。
【００４９】
｛７．可変長符号化部１４の動作｝
図７は、可変長符号化部１４の動作を示すフローチャートである。以下、図７を参照しながら、可変長符号化部１４の動作を詳しく説明する。
【００５０】
初期状態として、スキップＭＢ設定部１４１において、許可フラグが０に設定されていると仮定する。許可フラグは、入力された量子化マクロブロック５３をスキップＭＢとして符号化することを許可するか否かを示す情報である。許可フラグが０であるとき、算術符号化部１４２は、量子化マクロブロック５３をスキップＭＢとして符号化できる。許可フラグが１であるとき、算術符号化部１４２は、量子化マクロブロック５３をスキップＭＢとして符号化できない。
【００５１】
（量子化マクロブロック５３が終端ＭＢでない場合）
可変長符号化部１４は、マクロブロックｍ１を入力する（ステップＳ１１においてＹｅｓ）。スキップＭＢ設定部１４１は、マクロブロックｍ１がスライスの終端ＭＢであるか否かを判断する（ステップＳ１２）、図５に示すように、マクロブロックｍ１は、フレーム５１の先頭に位置するため（ステップＳ１２においてＮｏ）、スキップＭＢ設定部１４１は、マクロブロックｍ１がライングループの終端ＭＢであるか否かを判定する（ステップＳ１３）。スキップＭＢ設定部１４１は、マクロブロックｍ１がライングループＧ１の終端ＭＢではないと判定し（ステップＳ１３においてＮｏ）、許可フラグが１であるか否かを確認する（ステップＳ２１）。
【００５２】
許可フラグが０であるため（ステップＳ２１においてＮｏ）、スキップＭＢ設定部１４１は、マクロブロックｍ１をスキップＭＢとして符号化できることを、算術符号化部１４２に通知する。算術符号化部１４２は、通常の符号化処理をマクロブロックｍ１に対して行う（ステップＳ２３）。可変長符号化部１４は、フレーム５１の符号化が終了していないため（ステップＳ１９においてＮｏ）、ステップＳ１１に戻る。
【００５３】
ここで、ステップＳ２３について詳しく説明する。算術符号化部１４２は、入力されたマクロブロックをスキップＭＢとして符号化できる場合、入力された量子化マクロブロック５３の量子化値及び予測動きベクトルに基づいて、符号化モードを決定する。マクロブロックｍ１の予測動きベクトルを算出することによりマクロブロックｍ１の全ての量子化値が０となった場合、算術符号化部１４２は、マクロブロックｍ１をスキップＭＢとして符号化する。マクロブロックｍ１が上記の条件を満たさない場合、マクロブロックｍ１は、非スキップＭＢとして符号化される。
【００５４】
なお、複数のマクロブロックが連続してスキップＭＢとして符号化される場合、算術符号化部１４２は、「連続するＮ個のマクロブロックがスキップＭＢである」ことを示す符号化データ６を生成する。
【００５５】
図７に示していないが、ステップＳ２３の後に、算術符号化部１４２は、マクロブロックｍ１の符号化データ６をバッファ１４３に格納する。送信部１５は、バッファ１４３が終端ＭＢを含む符号化データ６を格納せず、かつ、バッファ１４３内の符号化データ６の符号量がしきい値を超えたときに、しきい値分の符号化データ６をバッファ１４３から取り出す。送信部１５は、取り出した符号量データ６を画像復号装置２に出力する。送信部１５は、バッファ１４３が終端ＭＢの符号化データ６を格納していない場合、最小送信単位よりも大きいサイズの符号化データ６を送信することにより、符号化データ６を効率良く送信できる。
【００５６】
以下、可変長符号化部１４は、許可フラグが０であるときに終端ＭＢを除く量子化マクロブロック５３が入力された場合、マクロブロックｍ１に対する処理と同じ処理を実行する。この場合、量子化マクロブロック５３は、スキップＭＢ及び非スキップＭＢのいずれかに符号化される。
【００５７】
（量子化マクロブロック５３が終端ＭＢである場合）
次に、可変長符号化部１４は、マクロブロックｍ１２０が入力された場合（ステップＳ１１においてＹｅｓ）、マクロブロックｍ１２０がスライスの終端ＭＢでないと判定する（ステップＳ１２においてＮｏ）。可変長符号化部１４は、マクロブロックｍ１２０がライングループＧ１の終端ＭＢであると判定する（ステップＳ１３においてＮｏ）。スキップＭＢ設定部１４１は、許可フラグを０から１に変更する（ステップＳ１４）。すなわち、マクロブロックｍ１２０は、スキップＭＢの符号化条件を満たしているか否かに関係なく、非スキップＭＢに設定される。
【００５８】
可変長符号化部１４は、マクロブロックｍ１２０を非スキップＭＢとして符号化し（ステップＳ１５）、マクロブロックｍ１２０の符号化データ６をバッファ１４３に格納する。バッファ１４３内の符号化データ６は、符号化された終端ＭＢを含むため、最小送信単位で送信される。具体的には、バッファ１４３内の符号化データ６が最小送信単位以上である場合（ステップＳ１６においてＹｅｓ）、送信部１５は、バッファ１４３に格納されている符号化データ６を画像復号装置２に送信する（ステップＳ１７）。つまり、符号化データ６は、最小送信単位で画像復号装置２に送信される。バッファ１４３は、送信された符号化データ６をクリアする。この結果、ライングループＧ１を構成するマクロブロックｍ１〜ｍ１２０の符号化データ６が、画像復号装置２に送信される。
【００５９】
非スキップＭＢ設定部１４１は、ステップＳ１７の後に、許可フラグを１から０に変更する（ステップＳ１８）。これは、画像復号装置２が、マクロブロックｍ１２０の符号化データ６を受信することにより、ライングループＧ１全体の符号化データを復号できるためである。ステップＳ１８により、画像符号化装置１は、マクロブロックｍ１２０よりも後に符号化されるマクロブロックを、スキップＭＢとして符号化できる。
【００６０】
一方、バッファ１４３内の符号化データ６の符号量が最小送信単位（８ビット）以下である場合（ステップＳ１６においてＮｏ）、送信部１５は、バッファ１４３内の符号化データ６を送信しない。この時点で、マクロブロックｍ１２０の符号化データ６は、画像復号装置２に送信されない。可変長符号化部１４は、次の量子化マクロブロック（マクロブロックｍ１２１）が入力されるまで待機する（ステップＳ１１）。
【００６１】
次に、可変長符号化部１４は、マクロブロックｍ１２１を入力する（ステップＳ１１においてＹｅｓ）。このとき、許可フラグは１のままであり、バッファ１４３は、最小送信単位よりも小さい符号量の符号化データ６を格納している。
【００６２】
マクロブロックｍ１２１は、スライスの終端ＭＢでなく（ステップＳ１２においてＮｏ）、ライングループの終端ＭＢではない（ステップＳ１３においてＮｏ）。しかし、許可フラグが１であるため（ステップＳ２１においてＹｅｓ）、スキップＭＢ設定部１４１は、マクロブロックｍ１２１を非スキップＭＢに設定する（ステップＳ２２）。算術符号化部１４２は、スキップＭＢ設定部１４１の設定に基づいて、マクロブロックｍ１２１を非スキップＭＢとして符号化する（ステップＳ１５）。マクロブロックｍ１２１の符号化データ６が、バッファ１４３に格納される。
【００６３】
バッファ１４３内の符号化データ６の符号量が最小送信単位以上である場合（ステップＳ１６においてＹｅｓ）、送信部１５は、マクロブロックｍ１２０，ｍ１２１を含む符号化データ６を、画像復号装置２に送信する（ステップＳ１７）。つまり、符号化データ６は、最小送信単位で画像復号装置２に送信される。スキップＭＢ設定部１４１は、許可フラグを１から０に変更する（ステップＳ１８）。可変長符号化部１４は、ライングループＧ２の終端ＭＢ（マクロブロックｍ２４０）が入力されるまで、入力される量子化マクロブロック５３をスキップＭＢ及び非スキップＭＢのいずれかに符号化できる。
【００６４】
可変長符号化部１４は、フレーム５１の符号化が終了していないため（ステップＳ１９においてＮｏ）、ステップＳ１１に戻る。
【００６５】
なお、マクロブロックｍ１２１の符号化データ６がバッファ１４３に格納されても、バッファ１４３内の符号化データ６の符号量が、最小送信単位に達しない場合が考えられる（ステップＳ１６においてＮｏ）。この場合、可変長符号化部１４は、バッファ１４３内の符号化データ６の符号量が最小送信単位に達するまで（ステップＳ１６においてＹｅｓ）、マクロブロックｍ１２２以降のマクロブロックを非スキップＭＢとして符号化すればよい。
【００６６】
可変長符号化部１４は、フレーム５１のマクロブロックｍ１２００を入力する（ステップＳ１１においてＹｅｓ）。マクロブロックｍ１２００は、フレーム５１の最後尾に位置し、スライスの終端ＭＢである（ステップＳ１２においてＹｅｓ）。マクロブロックｍ１２００は、ライングループの終端ＭＢであるが、強制的に非スキップＭＢとして符号化されない。すなわち、可変長符号化部１４は、通常の符号化処理（ステップＳ３１）を実行することにより、マクロブロックｍ１２００を、スキップＭＢ及び非スキップＭＢのいずれかに符号化する（ステップＳ３１）。ステップＳ３１は、ステップＳ２３と同様の処理の内容を示す。符号化されたマクロブロックｍ１２００は、バッファ１４３に格納される。バッファ１４３に格納された符号化データ６は、最小送信単位に達していない場合であっても、画像復号装置２に送信される（ステップＳ３２）。
【００６７】
以上説明したように、画像符号化装置１は、終端ＭＢを非スキップＭＢとして符号化し、終端ＭＢの符号化データ６をバッファ１４３に格納する。画像符号化装置１は、バッファ１４３に格納された符号化データ６の符号量が最小送信単位に達するまで、後続のマクロブロックを非スキップＭＢとして符号化する。非スキップＭＢの符号量は、スキップＭＢの符号量よりも大きいため、バッファ１４３に格納される符号化データ６の符号量が、最小送信単位に達するまでの時間を短くすることができる。したがって、終端ＭＢの符号化データ６の送信により生じる遅延を短縮できる。
【００６８】
｛８．変形例｝
上記実施の形態では、強制的に非スキップＭＢとして符号化されるマクロブロックが、終端ＭＢから開始される例を説明したが、これに限られない。画像符号化装置１は、非スキップＭＢとして強制的に符号化を開始するマクロブロックを、終端ＭＢから数えてＫ番目のマクロブロックとしてもよい。Ｋは、１以上の整数である。
【００６９】
最小送信単位をＡ（ビット）、１ビットの符号化データ６の生成に必要なマクロブロックの最大数をＢ、１つのマクロブロックラインを構成するマクロブロックの数をＸとした場合、Ｋは、下記の（式２）によって求められる。
Ｋ＝Ｘ−（Ａ×Ｂ）＋１  ・・・（式２）
【００７０】
以下、ＶＧＡサイズのフレーム５１をＨ．２６４方式で符号化する場合における、Ｋの算出方法を説明する。
【００７１】
図８は、フレーム５１がＶＧＡサイズである場合における、非スキップＭＢの符号化を開始することができるマクロブロックの範囲を説明する図である。図８において、マクロブロックラインＬ３，Ｌ４を除くマクロブロックラインの表示を省略している。また、一部のマクロブロックの表示を省略している。
【００７２】
ＶＧＡサイズのフレーム５１（図５参照）が、変化のない平坦な画像である場合、フレーム５１全体の符号化データ６の符号量は最小となる。このようなフレーム５１を、ＣＡＢＡＣを用いて算術符号化すると仮定する。この場合、３つの連続するマクロブロックを非スキップＭＢとして符号化することにより、１ビットの符号化データ６が発生する。したがって、マクロブロックの最大数（Ｂ）は、３である。最小送信単位（Ａ）が８ビットであり、マクロブロックの数（Ｘ）が４０であるため、Ｋの値は、（式２）から、１７となる。
【００７３】
したがって、図８に示す例では、画像符号化装置１は、砂地模様で示すマクロブロックｍ１２０〜ｍ１３７のいずれか１つのマクロブロックから、非スキップＭＢの符号化を開始することができる。非スキップＭＢの符号化をマクロブロックｍ１３７から開始した場合、最低でも、３つのマクロブロックにつき１ビットの符号化データ６が発生する。このため、画像符号化装置１は、マクロブロックｍ１６０までを非スキップＭＢとして符号化すれば、最小送信対単位（８ビット）の符号化データ６を生成できる。ライングループＧ１の終端ＭＢ（マクロブロックｍ１２０）を含む符号化データ６の送信遅延を、１マクロブロックラインの符号化に要する時間に抑えることができる。この結果、画像復号装置２は、モニタ４がライングループＧ２の表示を開始する時刻ｔ６までに、ライングループＧ１の終端ＭＢ（マクロブロックｍ１２０）を復号することができる。
【００７４】
なお、上記実施の形態では、３つのマクロブロックラインがライングループを構成する例を説明したが、これに限られない。ライングループは、１つ以上のマクロブロックラインで構成されればよい。ライングループが１つのマクロブロックラインで構成される場合、各マクロブロックラインの最後のマクロブロックが、強制的に非スキップＭＢに設定される。
【符号の説明】
【００７５】
１  画像符号化装置
２  画像復号装置
３  カメラ
４  モニタ
１１  入力部
１２  周波数変換部
１３  量子化部
１４  可変長符号化部
１５  送信部
１４１  スキップＭＢ設定部
１４２  算術符号化部
１４３  バッファ
【図１】
0005819754.tif 000002
【図２】
0005819754.tif 000003
【図３】
0005819754.tif 000004
【図４】
0005819754.tif 000005
【図５】
0005819754.tif 000006
【図６】
0005819754.tif 000007
【図７】
0005819754.tif 000008
【図８】
0005819754.tif 000009