(57)【要約】【課題】高速で符号化処理を行うことができるようにする。【解決手段】動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２、ＩＤＣＴ・逆量子化部１１３、可変長符号化部１１４が、夫々入力パケットのマクロブロック符号化パラメータ格納部に格納されているマクロブロック符号化パラメータに基づいて処理を行う。そして、処理結果に応じて決まる符号化パラメータを自ら更新して出力パケットに書き込むようにして、高速で符号化処理を行うことができるようにする。【選択図】図１
2009017136.tif 000002
【特許請求の範囲】
【請求項１】
画像データをブロック単位で符号化パラメータを適応的に変えながら符号化する画像符号化装置であって、
前記ブロック単位で外部から入力される原画像データと符号化パラメータとを受け取り、パケットヘッダと、符号化パラメータと、ブロックデータとからなるパケットを生成する原画像パケット生成手段と、
前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基に前記符号化パラメータ及びパケットヘッダを更新し、前記更新されたパケットヘッダ及び符号化パラメータと、前記処理されたブロックデータとからなるパケットを生成して出力する複数のパケット処理手段と、
前記パケットの中の符号化パラメータとブロックデータとを基に、所定の符号化方式に従い符号化ストリームを生成して出力する符号化ストリーム出力手段と、
前記パケットを格納するパケットバッファメモリと、
前記パケットバッファメモリに格納されたパケットを、前記パケットヘッダに応じて前記パケット処理手段へ出力し、前記パケット処理手段から出力されたパケットを前記パケットバッファメモリに格納するパケット制御手段とを有することを特徴とする画像符号化装置。
【請求項２】
前記パケット処理手段は、
入力された符号化パラメータを基に入力されたブロックデータに対して所定の処理を行い、処理結果を基に前記符号化パラメータを更新し、前記更新された符号化パラメータと前記処理されたブロックデータとを出力するデータ処理手段と、
前記パケット制御手段から入力されたパケットの中の符号化パラメータを解析し、前記データ処理手段に前記符号化パラメータ及びブロックデータを出力するパケット解析手段と、
前記データ処理手段から出力される符号化パラメータ及びブロックデータを基にパケットを生成し、前記パケット制御手段へ出力するパケット生成手段とを有することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記複数のパケット処理手段はそれぞれ、動き予測、動き補償、直交変換、逆直交変換、量子化、及び逆量子化のうち、いずれか１つを行い、
前記パケットの中のブロックデータは、原画像、予測誤差、及び変換係数のうち、いずれか１つであることを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
予め設定された目標の符号量と、前記符号化ストリーム出力手段から出力された符号化ストリームの符号量を基に、量子化パラメータを決定し、前記量子化パラメータを前記原画像パケット生成手段に与える符号化制御手段を有することを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
ヘッダと可変長符号化されたブロックデータとからなる符号化ストリームから画像データを復号化する画像復号化装置であって、
外部から入力される符号化ストリームを受け取り、前記符号化ストリームを復号化して、ヘッダに格納されている符号化パラメータと、可変長復号化されたブロックデータから、前記符号化パラメータ及びブロックデータからなるパケットを生成する原画像パケット生成手段と、
前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基にパケットを生成して出力する複数のパケット処理手段と、
前記パケットを格納するパケットバッファメモリと、
前記パケットバッファメモリに格納されたパケットを、前記パケットの中の符号化パラメータに応じて前記パケット処理手段へ出力し、前記パケット処理手段から出力されたパケットを前記パケットバッファメモリに格納するパケット制御手段とを有することを特徴とする画像復号化装置。
【請求項６】
画像データをブロック単位で符号化パラメータを適応的に変えながら符号化する画像符号化方法であって、
前記ブロック単位で外部から入力される原画像データと符号化パラメータを受け取り、パケットヘッダと、符号化パラメータと、ブロックデータとからなるパケットを生成する原画像パケット生成工程と、
前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基に前記符号化パラメータ及びパケットヘッダを更新し、前記更新されたパケットヘッダ及び符号化パラメータと、前記処理されたブロックデータとからなるパケットを生成して出力する複数のパケット処理工程と、
前記パケットの中の符号化パラメータとブロックデータとを基に、所定の符号化方式に従い符号化ストリームを生成して出力する符号化ストリーム出力工程と、
前記パケットをパケットバッファメモリに格納する格納工程と、
前記パケットバッファメモリに格納されたパケットを、前記パケットヘッダに応じて出力し、前記パケット処理工程において出力されたパケットを前記パケットバッファメモリに格納するパケット制御工程とを有することを特徴とする画像符号化方法。
【請求項７】
ヘッダと可変長符号化されたブロックデータとからなる符号化ストリームから画像データを復号化する画像復号化方法であって、
外部から入力される符号化ストリームを受け取り、前記符号化ストリームを復号化して、前記ヘッダに格納されている符号化パラメータと、可変長復号化されたブロックデータから、前記符号化パラメータ及びブロックデータからなるパケットを生成する原画像パケット生成工程と、
前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基にパケットを生成して出力する複数のパケット処理工程と、
前記パケットをパケットバッファメモリに格納する格納工程と、
前記パケットバッファメモリに格納されたパケットを、前記パケットの中の符号化パラメータに応じて出力し、前記パケット処理工程において出力されたパケットを前記パケットバッファメモリに格納するパケット制御工程とを有することを特徴とする画像復号化方法。
【請求項８】
請求項６に記載の画像符号化方法の各工程をコンピュータにて実行させることを特徴とするプログラム。
【請求項９】
請求項７に記載の画像復号化方法の各工程をコンピュータにて実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置、画像復号化装置、画像符号化方法、画像復号化方法及びプログラムに関し、特に、高速に符号化及び復号化を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture coding Experts Group）に代表される画像データの圧縮処理方法は、一連の様々な符号化処理（ＤＣＴ、量子化、可変長符号化、動き予測等）の工程からなる。このような一連の符号化処理からなる画像データの圧縮処理を高速化する従来の技術として、特許文献１に開示された画像データ処理装置や、特許文献２に開示された画像データ圧縮装置及びその方法が開示されている。
【０００３】
図９は、従来の画像データ処理装置の構成例を示すブロック図である。
画像データ処理装置は、ＤＣＴと量子化を実行する画像処理ユニット９０９、動き予測を実行する動き予測ユニット９１１、可変長符号化を行う可変長プロセッサ９０６等の複数の独立したユニットを備えている。
【０００４】
全体制御プロセッサ９０８がこれら符号化処理ユニットをパイプラインの各ステージとして並列に動作させるよう制御する。また、全体制御プロセッサ９０８は、各符号化処理で必要とされる符号化パラメータを記憶するための符号化パラメータテーブル９０７を有する。符号化パラメータテーブル９０７の内容を設定・更新・参照しながら各処理ユニットをパイプライン制御する。つまり、従来の画像データ処理装置は、独立に動作する複数の処理ユニットをパイプライン制御することによって画像データの圧縮処理を高速化しようとするものである。
【０００５】
【特許文献１】特開平７−２４０８４４号公報
【特許文献２】特開平１１−３３１８４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＭＰＥＧに代表される画像データの圧縮処理においては、例えば１６×１６画素というような所定のサイズの矩形領域（マクロブロック）を単位として、適応的に符号化パラメータを変更しながら符号化を行う。符号化パラメータは、一連の符号化処理を構成する各工程の結果に応じて変わる。例えば、動き予測や量子化の結果に応じて、符号化モード、動きベクトル、符号化ブロック・パターンといった符号化パラメータが適応的に切り替わり、可変長符号化などの後工程に影響を与える。
【０００７】
このため、従来の技術で使用される全体制御プロセッサは、各符号化処理ユニットが処理を終える毎に、処理結果を符号化処理ユニットから読み出して符号化パラメータテーブルを更新し、更新を終えてから再び各符号化処理ユニットを起動する必要があった。これにより、パイプライン制御において、１つのマクロブロックの処理が終わる毎に常にストールが発生してしまうという課題が生じる。
【０００８】
図１０（ａ）に、全体制御プロセッサ及び各符号化処理ユニットがマクロブロックを処理する時間を示す。図１０（ａ）に示すように、各符号化処理ユニットがマクロブロックに対する符号化処理を終えた後、全体制御プロセッサが符号化パラメータテーブルの更新を終えて各符号化処理ユニットを起動するまでは、各符号化処理ユニットが停止してしまう。このため、高速化を図ることができなかった。
【０００９】
本発明は前述の問題点に鑑み、高速で符号化処理を行うことができるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
本発明の画像符号化装置は、画像データをブロック単位で符号化パラメータを適応的に変えながら符号化する画像符号化装置であって、前記ブロック単位で外部から入力される原画像データと符号化パラメータとを受け取り、パケットヘッダと、符号化パラメータと、ブロックデータとからなるパケットを生成する原画像パケット生成手段と、前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基に前記符号化パラメータ及びパケットヘッダを更新し、前記更新されたパケットヘッダ及び符号化パラメータと、前記処理されたブロックデータとからなるパケットを生成して出力する複数のパケット処理手段と、前記パケットの中の符号化パラメータとブロックデータとを基に、所定の符号化方式に従い符号化ストリームを生成して出力する符号化ストリーム出力手段と、前記パケットを格納するパケットバッファメモリと、前記パケットバッファメモリに格納されたパケットを、前記パケットヘッダに応じて前記パケット処理手段へ出力し、前記パケット処理手段から出力されたパケットを前記パケットバッファメモリに格納するパケット制御手段とを有することを特徴とする。
【００１１】
本発明の画像復号化装置は、ヘッダと可変長符号化されたブロックデータとからなる符号化ストリームから画像データを復号化する画像復号化装置であって、外部から入力される符号化ストリームを受け取り、前記符号化ストリームを復号化して、ヘッダに格納されている符号化パラメータと、可変長復号化されたブロックデータから、前記符号化パラメータ及びブロックデータからなるパケットを生成する原画像パケット生成手段と、前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基にパケットを生成して出力する複数のパケット処理手段と、前記パケットを格納するパケットバッファメモリと、前記パケットバッファメモリに格納されたパケットを、前記パケットの中の符号化パラメータに応じて前記パケット処理手段へ出力し、前記パケット処理手段から出力されたパケットを前記パケットバッファメモリに格納するパケット制御手段とを有することを特徴とする。
【００１２】
本発明の画像符号化方法は、画像データをブロック単位で符号化パラメータを適応的に変えながら符号化する画像符号化方法であって、前記ブロック単位で外部から入力される原画像データと符号化パラメータを受け取り、パケットヘッダと、符号化パラメータと、ブロックデータとからなるパケットを生成する原画像パケット生成工程と、前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基に前記符号化パラメータ及びパケットヘッダを更新し、前記更新されたパケットヘッダ及び符号化パラメータと、前記処理されたブロックデータとからなるパケットを生成して出力する複数のパケット処理工程と、前記パケットの中の符号化パラメータとブロックデータとを基に、所定の符号化方式に従い符号化ストリームを生成して出力する符号化ストリーム出力工程と、前記パケットをパケットバッファメモリに格納する格納工程と、前記パケットバッファメモリに格納されたパケットを、前記パケットヘッダに応じて出力し、前記パケット処理工程において出力されたパケットを前記パケットバッファメモリに格納するパケット制御工程とを有することを特徴とする。
【００１３】
本発明の画像復号化方法は、ヘッダと可変長符号化されたブロックデータとからなる符号化ストリームから画像データを復号化する画像復号化方法であって、外部から入力される符号化ストリームを受け取り、前記符号化ストリームを復号化して、前記ヘッダに格納されている符号化パラメータと、可変長復号化されたブロックデータから、前記符号化パラメータ及びブロックデータからなるパケットを生成する原画像パケット生成工程と、前記パケットの中の符号化パラメータを基に前記ブロックデータに対して所定の処理を行い、処理結果を基にパケットを生成して出力する複数のパケット処理工程と、前記パケットをパケットバッファメモリに格納する格納工程と、前記パケットバッファメモリに格納されたパケットを、前記パケットの中の符号化パラメータに応じて出力し、前記パケット処理工程において出力されたパケットを前記パケットバッファメモリに格納するパケット制御工程とを有することを特徴とする。
【００１４】
本発明のプログラムは、前記に記載の画像符号化方法の各工程をコンピュータにて実行させることを特徴とする。
また、本発明のプログラムの他の特徴とするところは、前記に記載の画像復号化方法の各工程をコンピュータにて実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、符号化パラメータの更新とパイプライン制御とを行う全体制御プロセッサが不要となり、符号化パラメータの更新とパイプライン制御とに伴うオーバーヘッドが削減されるため、高速な符号化処理ができる。
【発明を実施するための最良の形態】
【００１６】
（第１の実施形態）
以下、本発明の画像符号化装置の実施形態について説明する。
図１は、本実施形態の画像符号化装置の機能構成例を示すブロック図である。
本実施形態の画像符号化装置は、原画像パケット生成部１０１と、パケット制御部１０２と、フレームバッファメモリ１０３と、パケットバッファメモリ１０４と、符号化ストリーム出力部１０５と、符号化制御部１０６とを有する。さらに、動き予測部１１０と、動き補償部１１１と、ＤＣＴ・量子化部１１２と、ＩＤＣＴ・逆量子化部１１３と、可変長符号化部１１４とを有する。なお、動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２、ＩＤＣＴ・逆量子化部１１３、及び可変長符号化部１１４は、パケット処理手段として機能する。
【００１７】
以下、本実施形態の画像符号化装置の動作について、図１を参照しながら説明する。
原画像パケット生成部１０１は、原画像データが入力されると、符号化制御部１０６から入力されるマクロブック符号化パラメータを基に、図２に示すフォーマットのパケットをマクロブロック単位で生成する。
【００１８】
生成されるパケットは、パケットヘッダ格納部、マクロブロック符号化パラメータ格納部、及びマクロブロックデータ格納部から構成される。マクロブロック符号化パラメータ格納部はさらに、マクロブロックの単位で適応的に変更される符号化パラメータであるマクロブロック・アドレス、マクロブロック・タイプ、量子化スケール値、動きベクトル及び符号化ブロック・パターンから構成される。
【００１９】
パケットヘッダ格納部は、パケット番号とパケット・タイプとを格納するフィールドから構成される。パケット番号は、例えば、本実施形態ではピクチャ番号とマクロブロック番号とを組み合わせた値が格納される。パケット・タイプは、マクロブロックデータ格納部に格納されるデータの種類を表している。
【００２０】
図３は、パケット・タイプとデータの種類との対応と、それぞれのパケット出力元とパケット入力先とを示す図である。例えば、パケット・タイプ「0x0」は、フレーム内符号化用原画像データが格納されていることを意味する。原画像パケット生成部１０１は、符号化制御部１０６から入力されるピクチャ符号化パラメータのピクチャ・タイプがＩピクチャ（フレーム内符号化ピクチャ）の場合は、パケット・タイプに「0x0（フレーム内符号化用原画像データ）」を設定する。
【００２１】
ピクチャ・タイプがＰまたはＢピクチャ（フレーム間予測符号化ピクチャ）の場合は、パケット・タイプに「0x1（フレーム間符号化用原画像データ）」を設定する。また、マクロブロック・アドレスには、ピクチャの先頭から昇順で付けられる番号が設定される。
【００２２】
符号化制御部１０６から出力される量子化スケール値が前のマクロブロックの量子化スケール値と異なる場合は、当該量子化スケール値が設定され、マクロブロック・タイプのquantフィールドに「１」が設定される。なお、そうでない場合はquantフィールドに「０」が設定される。
【００２３】
その他、動きベクトル、符号化ブロック・パターンについては、動き予測部１１０やＤＣＴ・量子化部１１２の処理の結果に応じて決まるため、原画像パケット生成部１０１では設定されない。一方、マクロブロックデータ格納部には原画像データが格納される。
【００２４】
次に、処理の流れについて説明する。原画像パケット生成部１０１により生成されたパケットは、パケット制御部１０２へ出力される。パケット制御部１０２は、原画像パケット生成部１０１、動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２及びＩＤＣＴ・逆量子化部１１３から出力されるパケットを、パケットバッファメモリ１０４へ一時的に格納する。また、パケットバッファメモリ１０４に格納されているパケットを読み出し、パケット・タイプに応じて動き補償部１１１、ＤＣＴ・量子化部１１２、ＩＤＣＴ・逆量子化部１１３、及び可変長符号化部１１４へ出力する。
【００２５】
図４は、本実施形態のパケット制御部１０２の詳細な構成例を示すブロック図である。
パケット制御部１０２は、パケット転送制御部４０１、パケット管理テーブル４０５、パケット送信バス４０２、パケット受信バス４０３、パケット受信部４０４Ｒ０〜４及びパケット送信部４０４Ｔ０〜４から構成される。
【００２６】
それぞれのパケット送信部４０４Ｔ０〜４は、原画像パケット生成部１０１、動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２及びＩＤＣＴ・逆量子化部１１３から出力されるパケットを受け取る。そして、パケット送信バス４０２を介しパケット転送制御部４０１に対しパケット送信要求を行う。パケット転送制御部４０１は、パケット送信部４０４Ｔ０〜４の送信要求を受け付け、パケット管理テーブル４０５の内容を更新し、パケットバッファメモリ１０４の中で空いているエリアにパケットを書き込む。
【００２７】
図５は、パケット管理テーブル４０５のフォーマットを示す図である。パケット管理テーブル４０５は、パケットバッファメモリ１０４内のパケット格納エリアのアドレス、パケットヘッダ格納部のパケット番号、パケット・タイプ、及びパケット格納エリア状態から構成されている。パケット格納エリア状態は、「パケット書き込み中」、「パケット読み出し中」、「パケット読み出し待ち」、「空」のうち、いずれか１つの状態である。
【００２８】
パケット転送制御部４０１は、パケットをパケットバッファメモリ１０４に書き込む際に、当該パケットを格納するエリアの状態を「パケット書き込み中」に更新する。そして、パケット転送制御部４０１は、パケットの書き込みが完了すると、パケット格納エリア状態を「パケット読み出し待ち」に変更する。
【００２９】
次に、パケット転送制御部４０１は、パケット格納エリア状態が「パケット読み出し待ち」になっているパケット格納エリアからパケットを読み出し、パケット・タイプに応じてパケット受信部４０４Ｒ０〜４の中からパケット受信先を特定し、パケットを送る。そして、パケット格納エリア状態を「パケット読み出し中」に変更する。パケット受信部４０４Ｒ０〜４は、パケット転送制御部４０１によりパケットバッファメモリ１０４から読み出されるパケットを受信する。パケットの受信が終わると、パケット転送制御部４０１はパケット格納エリア状態を「空」に更新する。
【００３０】
パケット制御部１０２は、パケットバッファメモリ１０４から読み出したパケットのパケット・タイプが「0x1（フレーム間符号化用原画像データ）」であれば、動き予測部１１０に当該パケットを出力する。動き予測部１１０は、入力パケットのマクロブロックデータ格納部に格納されているフレーム内符号化用原画像データに対応する動きベクトルの候補を、フレームバッファメモリ１０３に格納されている参照画像データを読み出して探索する。
【００３１】
ここで、符号化制御部１０６から入力されるピクチャ符号化パラメータのうち、ピクチャ・タイプがＰピクチャ（前方向予測符号化ピクチャ）の場合は前方向予測のみを行う。
また、ピクチャ・タイプがＢピクチャ（両方向予測符号化ピクチャ）の場合は、前方向予測及び後方向予測の両方向予測を行う。そして、それぞれの符号化モードにおける動きベクトルの候補を探索する。動きベクトルの検索方法については本実施形態では特に規定しないが、例えば、ダイヤモンド・サーチ等により検索する。そして、動き予測部１１０は検索された動きベクトルの候補を基に、原画像データと参照画像データとの差分画像を得る。
【００３２】
次に、符号化モードの判定を行う。本実施形態では、符号化モード判定指標値としてＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。そして、このＳＡＤに基づいてイントラ符号化モード、前方向予測符号化モード、後方向予測符号化モード、両方向予測符号化モードのうち、いずれか１つを符号化モードとして選択する。
【００３３】
動き予測部１１０により選択された符号化モードは、出力パケットのマクロブロック符号化パラメータ格納部のマクロブロック・タイプに設定される。マクロブロック・タイプは「quant」、「mvf」、「mvb」、「pattern」、「intra」を表すフィールドから成る。ここで、「quant」は、量子化スケーリング値があるか否かを意味し、「mvf」は、前方向動きベクトルがあるか否かを意味する。また、「mvb」は、後方向動きベクトルがあるか否かを意味し、「pattern」は、符号化ブロック・パターンがあるか否かを意味する。さらに、「intra」は、イントラ符号化モードであるか否かを意味する。
【００３４】
イントラ符号化モードが選択された場合は、intraフィールドに「１」（イントラ符号化モードである）が設定され、mvf、mvbフィールドにはそれぞれ「０」（前方向動きベクトルも後方向動きベクトルも存在しない）が設定される。また、原画像データは、パケットのマクロブロックデータ格納部に格納される。
【００３５】
一方、前方向予測符号化モードが選択された場合は、mvfに「１」が設定され、mvb及びintraフィールドに「０」が設定される。また、後方向予測符号化モードが選択された場合は、mvbフィールドに「１」が設定され、mvf及びintraフィールドに「０」が設定される。両方向予測符号化モードが選択された場合は、mvf及びmvbフィールドに「１」が設定され、intraフィールドに「０」が設定される。
【００３６】
また、イントラ符号化モード以外の符号化モードが選択された場合は、動きベクトルがパケットの符号化パラメータ格納部に設定される。さらに、パケットのマクロブロックデータ格納部には差分画像が格納される。そして、パケットヘッダ格納部のパケット・タイプには「0x2（予測誤差データ）」を設定する。
【００３７】
なお、動き予測部１１０はさらに、図１に示すように、パケット解析部１１０１、動き予測器１１０２、及びパケット生成部１１０３から構成されている。パケット解析部１１０１は、マクロブロック符号化パラメータとマクロブロックデータとを分離し、パケットヘッダとともに動き予測器１１０２にそれぞれ出力する。また、パケット生成部１１０３は、動き予測器１１０２から出力されるマクロブロック符号化パラメータ及びマクロブロックデータを受け取り、パケットを生成してパケット制御部１０２へ出力する。
【００３８】
また、動き補償部１１１、ＤＣＴ・量子化部１１２、及びＩＤＣＴ・逆量子化部１１３にも同様にパケット解析部とパケット生成部が備わっており、可変長符号化部１１４にはパケット解析部のみが備わっている。動き予測部１１０は、出力パケットを生成し終えたら、当該パケットをパケット制御部１０２に出力する。パケット制御部１０２は、動き予測部１１０から出力されたパケットをパケットバッファメモリ１０４に一時的に格納する。
【００３９】
そして、パケット制御部１０２は、パケットバッファメモリ１０４からパケットを読み出す。パケットヘッダ格納部のパケット・タイプが「0x0（フレーム内符号化用原画像データ）」または「0x2（予測誤差データ）」であれば、ＤＣＴ・量子化部１１２に当該パケットを出力する。
【００４０】
ＤＣＴ・量子化部１１２は、入力パケットのマクロブロックデータ格納部に格納されている原画像データまたは予測誤差データに対しＤＣＴ（離散コサイン変換（直交変換））を行う。また、入力パケットのマクロブロック符号化パラメータ格納部に格納されているマクロブロック・タイプのquantフィールドに「１」が設定されている場合は、パケットに格納されている量子化スケーリング値を用いて変換係数に対し量子化を行う。なお、量子化スケーリング値は１つ前のマクロブロックのものが常に保持されており、quantフィールドに「０」が設定されている場合は、前のマクロブロックの量子化スケール値（量子化パラメータ）を用いて量子化を行う。
【００４１】
量子化された変換係数は、出力パケットのマクロブロックデータ格納部に格納される。
ＤＣＴ・量子化部１１２は、量子化された変換係数を元に符号化ブロック・パターンを取得する。符号化ブロック・パターンは出力パケットのマクロブロック符号化パラメータ格納部に設定される。なお、量子化された変換係数が全て「０」の場合は、マクロブロック・タイプのpatternフィールドに「０」を設定し、そうでない場合は「１」を設定する。そして、出力パケットのパケット・タイプには「0x3（変換係数データ）」を設定する。出力パケットを生成し終えたら、当該パケットをパケット制御部１０２に出力する。
【００４２】
パケット制御部１０２は、ＤＣＴ・量子化部１１２から出力されたパケットをパケットバッファメモリ１０４に一時的に格納した後、パケットバッファメモリ１０４から読み出す。読み出されたパケットのパケット・タイプが「0x3（変換係数データ）」である場合、当該パケットをＩＤＣＴ・逆量子化部１１３及び可変長符号化部１１４に出力する。可変長符号化部１１４は、入力パケットのマクロブロックデータ格納部に格納されている変換係数に対して可変長符号化を行う。
【００４３】
また、入力パケットのマクロブロック符号化パラメータ格納部に格納されている各符号化パラメータを、所定の符号化方式に従い可変長符号化する。可変長符号化部１１４により符号化された符号化パラメータ及び変換係数は、符号化ストリーム出力部１０５を介して外部に出力される。
【００４４】
符号化ストリーム出力部１０５は、符号化制御部１０６から入力されるピクチャ符号化パラメータに基づき、ピクチャ単位で適宜ピクチャ・ヘッダを生成し、可変長符号化部１１４により符号化されたパラメータ及び変換係数と連結して、外部に出力する。また、符号化制御部１０６は、外部から設定されるピクチャ符号化パラメータ（目標の符号量）と、符号化ストリーム出力部１０５から得られる符号量とを基に、量子化スケール値（量子化パラメータ）を適応的に変更して決定する。
【００４５】
一方、ＩＤＣＴ・逆量子化部１１３及び動き補償部１１１は、次のピクチャ符号化のためにローカルデコードを行う。ＩＤＣＴ・逆量子化部１１３は、入力パケットのマクロブロック符号化パラメータ格納部に格納されている量子化スケール値に基づき、入力パケットのマクロブロックデータ格納部に格納されている変換係数に対して逆量子化を行う。さらに、逆量子化された変換係数に対してＩＤＣＴ（逆離散コサイン変換）を行い、復元予測誤差データを生成し、出力パケットのマクロブロックデータ格納部に書き込む。
【００４６】
さらに、パケットヘッダのパケット・タイプを「0x4（復元予測誤差データまたは復元画像データ）」に設定し、パケットをパケット制御部１０２に出力する。そして、パケット制御部１０２は、ＩＤＣＴ・逆量子化部１１３から出力されたパケットをパケットバッファメモリ１０４に一時的に格納した後、パケットバッファメモリ１０４から読み出す。
【００４７】
パケットヘッダ格納部のパケット・タイプが「0x4（復元予測誤差データまたは復元画像データ）」であれば、動き補償部１１１に当該パケットを入力する。
動き補償部１１１は、マクロブロック・タイプが予測符号化モード（前方向予測、後方向予測、両方向予測）を示しているとき、動きベクトルに基づいて復元予測誤差データに対して動き補償を行う。次に、動き補償部１１１は、動き補償により復元された画像データを、フレームバッファメモリ１０３に格納する。
【００４８】
一方、マクロブロック・タイプがイントラ符号化モードを示している場合は、マクロブロックデータ格納部に格納されている復元画像データをそのままフレームバッファメモリ１０３に格納する。
【００４９】
図１０（ｂ）は、本実施形態の画像符号化装置の動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２、ＩＤＣＴ・逆量子化部１１３、及び可変長符号化部１１４が各々パイプライン的にマクロブロックに対するデータ処理を行う様子を示す図である。本実施形態の画像符号化装置は、各々のデータ処理部が自律的に動作するため、従来技術の画像符号化装置よりも、パイプラインのストールが低減している。
【００５０】
以上、本実施形態の画像符号化装置の動作について説明した。動き予測部１１０、動き補償部１１１、ＤＣＴ・量子化部１１２、ＩＤＣＴ・逆量子化部１１３、可変長符号化部１１４が、夫々入力パケットのマクロブロック符号化パラメータ格納部に格納されているマクロブロック符号化パラメータに基づいて処理を行う。処理結果に応じて決まる符号化パラメータを自ら更新して出力パケットに書き込む。よって、従来技術のような、符号化パラメータの更新とパイプライン制御を行う全体制御プロセッサが不要となり、符号化パラメータの更新とパイプライン制御に伴うオーバーヘッドが削減されるので、高速な符号化処理が可能となる。
【００５１】
（第２の実施形態）
なお、本発明の画像符号化装置は第１の実施形態の構成に限定されるものではない。例えば、図６に示す本実施形態の画像符号化装置のような構成を採ることも可能である。
【００５２】
本実施形態の画像符号化装置は、パケット制御部６０２ａ〜６０２ｄ及びパケットバッファメモリ６０４ａ〜６０４ｄが、各々のデータ処理部の間に存在する。このようにパケット制御部とパケットバッファメモリとを分散させることにより、第１の実施形態の画像符号化装置と比べてバス上でのパケットの送受信要求の衝突が減るので、さらに高速な符号化処理が可能となる。
【００５３】
（第３の実施形態）
次に、本実施形態の画像復号化装置について説明する。本実施形態の画像復号化装置の構成を図７に示す。
本実施形態の画像復号化装置は、復元画像データ出力部７０１、動き補償部７１１、ＩＤＣＴ・逆量子化部７１３、及び可変長復号化部７１４を有する。また、符号化ストリーム入力部７０５、パケット制御部７０２、フレームバッファメモリ７０３及びパケットバッファメモリ７０４を有する。
【００５４】
以下、図７を参照しながら動作について説明する。
符号化ストリーム入力部７０５は、入力された符号化データのうちピクチャ符号化パラメータを復号化し、動き補償部７１１、ＩＤＣＴ・逆量子化部７１３、及び可変長復号化部７１４にそれぞれ出力する。一方、符号化データのうちマクロブロックの符号化パラメータ及び変換係数の可変長符号については、可変長復号化部７１４に出力する。
【００５５】
可変長復号化部７１４は、符号化ストリーム入力部７０５から入力された符号化データを復号化し、マクロブロック符号化パラメータ及び変換係数データを取得する。そして、可変長復号化部７１４は、図２に示すフォーマットのパケットを生成し、パケット制御部７０２へ出力する。そして、パケット・タイプには「0x3（変換係数データ）」が設定され、マクロブロック符号化パラメータ格納部には復号化されたマクロブロック符号化パラメータが格納される。そして、パケットのマクロブロックデータ格納部には、復号化された変換係数が格納される。
【００５６】
パケット制御部７０２は、可変長復号化部７１４から出力されたパケットをパケットバッファメモリ７０４に一時的に格納した後、パケットバッファメモリ７０４から読み出す。パケットヘッダ格納部のパケット・タイプが「0x3（変換係数データ）」であれば、ＩＤＣＴ・逆量子化部７１３に当該パケットを出力する。
【００５７】
ＩＤＣＴ・逆量子化部７１３は、入力パケットのマクロブロック符号化パラメータ格納部に格納されている量子化スケール値に基づき、入力パケットのマクロブロックデータ格納部に格納されている変換係数に対して逆量子化を行う。さらに、逆量子化された変換係数に対してＩＤＣＴ（逆離散コサイン変換（逆直交変換））を行い、復元予測誤差データを生成し、出力パケットのマクロブロックデータ格納部に書き込む。さらに、パケットヘッダのパケット・タイプを「0x4（復元予測誤差データまたは復元画像データ）」に書き換えて、パケットをパケット制御部７０２に出力する。
【００５８】
パケット制御部７０２は、ＩＤＣＴ・逆量子化部７１３から出力されたパケットをパケットバッファメモリ７０４に一時的に格納した後、パケットバッファメモリ７０４から読み出す。パケットヘッダ格納部のパケット・タイプが「0x4（復元予測誤差データまたは復元画像データ）」であれば、動き補償部７１１に当該パケットを出力する。
【００５９】
動き補償部７１１は、マクロブロック・タイプが予測符号化モードを示しているとき、動きベクトルに基づいて当該入力パケットのマクロブロックデータ格納部に格納されている復元予測誤差データに対し、動き補償を行う。次に、動き補償部７１１は動き補償により復元された画像データを、復元画像データ出力部７０１へ出力するとともに、フレームバッファメモリ７０３に格納する。
【００６０】
一方、マクロブロック・タイプがイントラ符号化モードを示している場合は、マクロブロックデータ格納部に格納されている復元画像データをそのまま復元画像データ出力部７０１へ出力するとともに、フレームバッファメモリ７０３に格納する。そして、復元画像データ出力部７０１は、外部へ復元画像データを出力する。
【００６１】
以上、本実施形態の画像復号化装置の動作について説明した。以上のように、本実施形態では、動き補償部７１１、ＩＤＣＴ・逆量子化部７１３、及び可変長復号化部７１４が、夫々入力パケットのマクロブロック符号化パラメータ格納部に格納されているマクロブロック符号化パラメータに基づいて処理を行う。これにより、従来技術のような、符号化パラメータの更新とパイプライン制御を行う全体制御プロセッサが不要となり、符号化パラメータの更新とパイプライン制御に伴うオーバーヘッドが削減されるので、高速な復号化処理が可能となる。
【００６２】
（第４の実施形態）
なお、本発明の画像復号化装置は第３の実施形態の構成に限定されるものではない。
例えば、図８に示すような画像符号化装置のような構成を採ることも可能である。
【００６３】
本実施形態の画像復号化装置は、パケット制御部８０２ｃ〜８０２ｄ及びパケットバッファメモリ８０４ｃ〜８０４ｄが、各々のデータ処理部（可変長復号化部８１４、ＩＤＣＴ・逆量子化部８１３、動き補償部８１１）の間に存在する。このようにパケット制御部とパケットバッファメモリとを分散させることにより、第３の実施形態の画像復号化装置と比べてバス上でのパケットの送受信要求の衝突が減るので、さらに高速な復号化処理が可能となる。
【００６４】
（本発明に係る他の実施形態）
前述した本発明の実施形態における画像符号化装置及び画像復号化装置を構成する各手段、並びに画像符号化方法及び画像復号化方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００６５】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００６６】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００６７】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００６９】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００７０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００７１】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００７２】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００７４】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施形態の画像符号化装置の機能構成例を示すブロック図である。
【図２】本発明の第１の実施形態におけるパケットのフォーマットを示す図である。
【図３】本発明の第１の実施形態におけるパケット・タイプとデータの種類との対応の一覧を示す図である。
【図４】本発明の第１の実施形態におけるパケット制御部の詳細な構成を示すブロック図である。
【図５】本発明の第１の実施形態におけるパケット管理テーブルの構成を示す図である。
【図６】本発明の第２の実施形態の画像符号化装置の機能構成例を示すブロック図である。
【図７】本発明の第３の実施形態の画像復号化装置の機能構成例を示すブロック図である。
【図８】本発明の第４の実施形態の画像復号化装置の機能構成例を示すブロック図である。
【図９】従来の画像符号化装置の構成を示すブロック図である。
【図１０】画像符号化装置がマクロブロックを処理する時間を表すタイムチャートを示す図である。
【符号の説明】
【００７６】
１０１  原画像パケット生成部
１０２  パケット制御部
１０３  フレームバッファメモリ
１０４  パケットバッファメモリ
１０５  符号化ストリーム出力部
１０６  符号化制御部
１１０  動き予測部
１１１  動き補償部
１１２  ＤＣＴ・量子化部
１１３  ＩＤＣＴ・逆量子化部
１１４  可変長符号化部
４０１  パケット転送制御部
４０２  パケット送信バス
４０３  パケット受信バス
４０４Ｔ０〜Ｔ４  パケット送信部
４０４Ｒ０〜Ｒ４  パケット受信部
４０５  パケット管理テーブル
１１０１  パケット解析部
１１０２  動き予測器
１１０３  パケット生成部
【図１】
2009017136.tif 000003
【図２】
2009017136.tif 000004
【図３】
2009017136.tif 000005
【図４】
2009017136.tif 000006
【図５】
2009017136.tif 000007
【図６】
2009017136.tif 000008
【図７】
2009017136.tif 000009
【図８】
2009017136.tif 000010
【図９】
2009017136.tif 000011
【図１０】
2009017136.tif 000012