(57)【要約】【課題】  コストをかけずにシステムの性能を高めつつ、主記憶装置に対するアクセス頻度を低減させる画像圧縮伸長装置を提供する。【解決手段】  画像圧縮伸長装置１００は、（ａ）ビットストリームをデコードしてビデオ信号に変換する画像圧縮伸長演算部１２４と、（ｂ）圧縮画像記録装置１３から転送されたビットストリームが格納されるＩＯバッファ１２５、（ｃ）ＩＯバッファ１２５、ＯＰバッファ１２６などの空き具合に応じて、主記憶装置１１を経由する第１の経路と、主記憶装置１１を経由しない第２の経路とのいずれかに転送経路を設定し、ＩＯバッファ１２５に格納されているビットストリームを、その転送経路を経て、画像圧縮伸長演算部１２４へ入力させる処理を制御するＤＭＡＣ１２８とを備える。【選択図】  図１
2006140741.tif 000002
【特許請求の範囲】
【請求項１】
第１種データを第２種データに変換する変換手段と、
外部装置から転送された前記第１種データが格納される記憶手段と、
前記記憶手段の空き具合に応じて、主記憶装置を経由する第１の経路と、前記主記憶装置を経由しない第２の経路とのいずれかに転送経路を設定し、前記記憶手段に格納されている前記第１種データを、前記転送経路を経て、前記変換手段へ入力させる処理を制御する制御手段と
を備えることを特徴とする画像圧縮伸長装置。
【請求項２】
前記記憶手段は、
前記外部装置から転送された第１種データが先入れ先出し方式によって格納される第１のバッファと、
前記変換手段へ入力される第１種データが先入れ先出し方式によって格納される第２のバッファと
を有し、
前記第１のバッファは、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状のバッファであり、
前記第１のポインタは、前記第１のバッファに書き込まれる第１種データを管理するポインタであり、
前記第２のポインタは、前記第１のバッファから前記第２のバッファに書き込まれた第１種データを管理するポインタであり、
前記第３のポインタは、前記第１のバッファから読み出される第１種データを管理するポインタであり、
前記制御手段は、前記第１のバッファと前記第２のバッファとの空き具合に応じて、前記転送経路を設定する
ことを特徴とする請求項１に記載の画像圧縮伸長装置。
【請求項３】
前記制御手段は、
前記第１のポインタが前記第２のポインタを追い越していない、かつ前記第２のバッファが空いている場合には、前記第２の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記第２のバッファへ転送させ、
前記第１のポインタが前記第２のポインタを追い越している、又は前記第２のバッファが空いていない場合には、前記第１の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記主記憶装置へ転送させ、前記主記憶装置から読み出された第１種データを前記第２のバッファに格納させる
ことを特徴とする請求項２に記載の画像圧縮伸長装置。
【請求項４】
前記制御手段は、前記第２の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記第２のバッファへ転送させた後に、前記第１の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記主記憶装置へ転送させると共に前記第２のバッファから読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項３に記載の画像圧縮伸長装置。
【請求項５】
前記制御手段は、前記第２のバッファと前記変換手段との間におけるデータ転送を監視して前記第２のバッファの空き具合を予測し、予測した結果に基づいて、前記第２のバッファが空く見込みがないと判断した場合には、前記第１の経路に前記転送経路を設定し、前記第２のバッファが空く見込みがあると判断した場合には、前記第２の経路に前記転送経路を設定する
ことを特徴とする請求項３に記載の画像圧縮伸長装置。
【請求項６】
前記記憶手段は、
前記外部装置から転送された第１種データが先入れ先出し方式によって格納される第１の領域と、
前記変換手段へ入力される第１種データが先入れ先出し方式によって格納される第２の領域と
に論理的に分割されたバッファであり、
前記第１の領域は、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状の領域であり、
前記第１のポインタは、前記第１の領域に書き込まれる第１種データを管理するポインタであり、
前記第２のポインタは、前記第１の領域から前記第２の領域に書き込まれた第１種データを管理するポインタであり、
前記第３のポインタは、前記第１の領域から読み出される第１種データを管理するポインタであり、
前記制御手段は、前記第１の領域と前記第２の領域との空き具合に応じて、前記転送経路を設定する
ことを特徴とする請求項１に記載の画像圧縮伸長装置。
【請求項７】
前記画像圧縮伸長装置は、
前記外部装置と接続されて前記外部装置との間におけるデータ転送を行う第１のインターフェースと、
前記主記憶装置と接続されて前記主記憶装置との間におけるデータ転送を行う第２のインターフェースと、
四つのポートを有し、前記制御手段からの制御に応じて、四つのポート間の接続を切り替える第１の選択手段と、
三つのポートを有し、前記制御手段からの制御に応じて、三つのポート間の接続を切り替える第２の選択手段と
を備え、
前記第１の選択手段は、前記第１のインターフェース、前記変換手段、前記記憶手段、前記第２の選択手段と、前記ポートを介して接続され、
前記第２の選択手段は、前記第２のインターフェース、前記記憶手段、前記第１の選択手段と、前記ポートを介して接続され、
前記制御手段は、前記第１の選択手段と前記第２の選択手段とを制御して、前記第１の経路と前記第２の経路とのいずれかに前記転送経路を設定する
ことを特徴とする請求項６に記載の画像圧縮伸長装置。
【請求項８】
前記制御手段は、
前記外部装置から転送された第１種データを前記記憶手段に格納させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、
前記記憶手段から読み出された第１種データを前記主記憶装置へ転送させる場合には、前記第２の選択手段を介して前記記憶手段と前記第２のインターフェースとを接続し、
前記主記憶装置から読み出された第１種データを前記記憶手段に格納させる場合には、前記第２の選択手段を介して前記第２のインターフェースと前記記憶手段とを接続し、
前記記憶手段から読み出された第１種データを前記変換手段へ入力させる場合には、前記第１の選択手段を介して前記記憶手段と前記変換手段とを接続する
ことを特徴とする請求項７に記載の画像圧縮伸長装置。
【請求項９】
前記制御手段は、前記第１のポインタが前記第２のポインタを追い越していない、かつ前記第２の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第１の領域に格納させ、前記第１の領域に格納されている第１種データを前記第２の領域へ転送させ、前記第２の領域から読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項８に記載の画像圧縮伸長装置。
【請求項１０】
前記制御手段は、前記第２の経路に前記転送経路を設定し、前記第１の領域に格納されている第１種データを前記第２の領域へ転送させた後に、前記第１の経路に前記転送経路を設定し、前記第１の領域から読み出された第１種データを前記主記憶装置へ転送させると共に前記第２の領域から読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項９に記載の画像圧縮伸長装置。
【請求項１１】
前記制御手段は、前記第１の領域が空でなく、かつ前記第２の領域が空いていない場合、又は前記第１のポインタが前記第２のポインタを追い越している場合には、前記第１の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第１の領域に格納させ、前記第１の領域から読み出された第１種データを前記主記憶装置へ転送させ、前記第２の領域から読み出された第１種データを前記変換手段へ入力させ、前記主記憶装置から読み出された第１種データを前記第２の領域に格納させる
ことを特徴とする請求項８に記載の画像圧縮伸長装置。
【請求項１２】
前記制御手段は、前記第２の領域が空いている場合には、前記外部装置から転送された第１種データを前記第１の領域に格納させると共に前記第１の領域から読み出された第１種データを前記主記憶装置へ転送させ、前記主記憶装置から読み出された第１種データを前記第２の領域に格納させると共に前記第２の領域から読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項１１に記載の画像圧縮伸長装置。
【請求項１３】
前記制御手段は、
前記第２の領域へ転送されていない第１種データが前記主記憶装置に存在しない、かつ前記第１の領域が空であり、かつ前記第２の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第２の領域に格納させ、前記第２の領域から読み出された第１種データを前記変換手段へ入力させ、
前記第２の領域へ転送されていない第１種データが前記主記憶装置に存在しない、かつ前記第１の領域が空であり、かつ前記第２の領域が空いていない場合には、前記第２の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第１の領域に格納させ、前記第２の領域から読み出された第１種データを前記変換手段へ入力させ、前記第１の領域に格納されている第１種データを前記第２の領域へ転送させる
ことを特徴とする請求項８に記載の画像圧縮伸長装置。
【請求項１４】
前記制御手段は、
前記外部装置から転送された第１種データを前記記憶手段に格納させ、並行して、前記主記憶装置から読み出された第１種データを前記変換手段へ入力させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、前記第２の選択手段と前記第１の選択手段とを介して前記第２のインターフェースと前記変換手段とを接続し、
前記第２の領域へ転送されていない第１種データが前記主記憶装置に存在し、かつ前記第２の領域が空であり、かつ前記第１の領域が空いている場合には、前記第１の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第１の領域に格納させ、並行して、前記主記憶装置から読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項８に記載の画像圧縮伸長装置。
【請求項１５】
前記制御手段は、
前記外部装置から転送された第１種データを前記記憶手段に格納させ、並行して、前記記憶手段から読み出された第１種データを前記変換手段へ入力させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、前記第２の選択手段と前記第１の選択手段とを介して前記記憶手段と前記変換手段とを接続し、
前記第２の領域へ転送されていない第１種データが前記主記憶装置に存在しない、かつ前記第１の領域が空であり、かつ前記第２の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第２の領域に格納させ、並行して、前記第２の領域から読み出された第１種データを前記変換手段へ入力させ、
前記第２の領域へ転送されていない第１種データが前記主記憶装置に存在しない、かつ前記第１の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記外部装置から転送された第１種データを前記第１の領域に格納させ、並行して、前記第２の領域から読み出された第１種データを前記変換手段へ入力させる
ことを特徴とする請求項８に記載の画像圧縮伸長装置。
【請求項１６】
第１種データを第２種データに変換する変換手段と、
前記変換手段から出力された前記第２種データが格納される記憶手段と、
前記記憶手段の空き具合に応じて、主記憶装置を経由する第１の経路と、前記主記憶装置を経由しない第２の経路とのいずれかに転送経路を設定し、前記記憶手段に格納されている前記第２種データを、前記転送経路を経て、外部装置へ転送させる処理を制御する制御手段と
を備えることを特徴とする画像圧縮伸長装置。
【請求項１７】
前記記憶手段は、
前記外部装置へ転送される第２種データが先入れ先出し方式によって格納される第１のバッファと、
前記変換手段から出力された第２種データが先入れ先出し方式によって格納される第２のバッファと
を有し、
前記第２のバッファは、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状のバッファであり、
前記第１のポインタは、前記第２のバッファに書き込まれる第２種データを管理するポインタであり、
前記第２のポインタは、前記第２のバッファから前記第１のバッファに書き込まれた第２種データを管理するポインタであり、
前記第３のポインタは、前記第２のバッファから読み出される第２種データを管理するポインタであり、
前記制御手段は、前記第１のバッファと前記第２のバッファとの空き具合に応じて、前記転送経路を設定する
ことを特徴とする請求項１６に記載の画像圧縮伸長装置。
【請求項１８】
前記制御手段は、
前記第１のポインタが前記第２のポインタを追い越していない、かつ前記第１のバッファが空いている場合には、前記第２の経路に前記転送経路を設定し、前記第２のバッファから読み出された第２種データを第１のバッファへ転送させ、
前記第１のポインタが前記第２のポインタを追い越している、又は前記第１のバッファが空いていない場合には、前記第１の経路に前記転送経路を設定し、前記第２のバッファから読み出された第２種データを前記主記憶装置へ転送させ、前記主記憶装置から読み出された第２種データを前記第１のバッファに格納させる
ことを特徴とする請求項１７に記載の画像圧縮伸長装置。
【請求項１９】
前記制御手段は、前記第２の経路に前記転送経路を設定し、前記第２のバッファから読み出された第２種データを前記第１のバッファへ転送させた後に、前記第１の経路に前記転送経路を設定し、前記第２のバッファから読み出された第２種データを前記主記憶装置へ転送させると共に前記第１のバッファから読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項１８に記載の画像圧縮伸長装置。
【請求項２０】
前記制御手段は、前記第１のバッファと前記外部装置との間におけるデータ転送を監視して前記第１のバッファの空き具合を予測し、予測した結果に基づいて、前記第１のバッファが空く見込みがないと判断した場合には、前記第１の経路に前記転送経路を設定し、前記第１のバッファが空く見込みがあると判断した場合には、前記第２の経路に前記転送経路を設定する
ことを特徴とする請求項１８に記載の画像圧縮伸長装置。
【請求項２１】
前記記憶手段は、
前記外部装置へ転送される第２種データが先入れ先出し方式によって格納される第１の領域と、
前記変換手段から出力された第２種データが先入れ先出し方式によって格納される第２の領域と
に論理的に分割されているバッファであり、
前記第２の領域は、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状の領域であり、
前記第１のポインタは、前記第２の領域に書き込まれる第２種データを管理するポインタであり、
前記第２のポインタは、前記第２の領域から前記第１の領域に書き込まれた第２種データを管理するポインタであり、
前記第３のポインタは、前記第２の領域から読み出される第２種データを管理するポインタであり、
前記制御手段は、前記第１の領域と前記第２の領域との空き具合に応じて、前記転送経路を設定する
ことを特徴とする請求項１６に記載の画像圧縮伸長装置。
【請求項２２】
前記画像圧縮伸長装置は、
前記外部装置と接続されて前記外部装置との間におけるデータ転送を行う第１のインターフェースと、
前記主記憶装置と接続されて前記主記憶装置との間におけるデータ転送を行う第２のインターフェースと、
四つのポートを有し、前記制御手段からの制御に応じて、四つのポート間の接続を切り替える第１の選択手段と、
三つのポートを有し、前記制御手段からの制御に応じて、三つのポート間の接続を切り替える第２の選択手段と
を備え、
前記第１の選択手段は、前記第１のインターフェース、前記変換手段、前記記憶手段、前記第２の選択手段と、前記ポートを介して接続され、
前記第２の選択手段は、前記第２のインターフェース、前記記憶手段、前記第１の選択手段と、前記ポートを介して接続され、
前記制御手段は、前記第１の選択手段と前記第２の選択手段とを制御して、前記第１の経路と前記第２の経路とのいずれかに前記転送経路を設定する
ことを特徴とする請求項２１に記載の画像圧縮伸長装置。
【請求項２３】
前記制御手段は、
前記変換手段から出力された第２種データを前記記憶手段に格納させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、
前記記憶手段から読み出された第２種データを前記主記憶装置へ転送させる場合には、前記第２の選択手段を介して前記記憶手段と前記第２のインターフェースとを接続し、
前記主記憶装置から読み出された第２種データを前記記憶手段へ入力させる場合には、前記第２の選択手段を介して前記第２のインターフェースと前記記憶手段とを接続し、
前記記憶手段から読み出された第２種データを前記外部装置へ転送させる場合には、前記第１の選択手段を介して前記記憶手段と前記第１のインターフェースとを接続する
ことを特徴とする請求項２２に記載の画像圧縮伸長装置。
【請求項２４】
前記制御手段は、前記第１のポインタが前記第２のポインタを追い越していない、かつ前記第１の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第２の領域に格納させ、前記第２の領域に格納されている第２種データを前記第１の領域へ転送させ、前記第１の領域から読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項２３に記載の画像圧縮伸長装置。
【請求項２５】
前記制御手段は、前記第２の経路に前記転送経路を設定し、前記第２の領域に格納されている第２種データを前記第１の領域へ転送させた後に、前記第１の経路に前記転送経路を設定し、前記第２の領域から読み出された第２種データを前記主記憶装置へ転送させると共に前記第１の領域から読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項２４に記載の画像圧縮伸長装置。
【請求項２６】
前記制御手段は、前記第２の領域が空でなく、かつ前記第１の領域が空いていない場合、又は前記第１のポインタが前記第２のポインタを追い越している場合には、前記第１の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第２の領域に格納させ、前記第２の領域から読み出された第２種データを前記主記憶装置へ転送させ、前記第１の領域から読み出された第２種データを前記外部装置へ転送させ、前記主記憶装置から読み出された第２種データを前記第１の領域に格納させる
ことを特徴とする請求項２３に記載の画像圧縮伸長装置。
【請求項２７】
前記制御手段は、前記第１の領域が空いている場合には、前記変換手段から出力された第２種データを前記第２の領域に格納させると共に前記第２の領域から読み出された第２種データを前記主記憶装置へ転送させ、前記主記憶装置から読み出された第２種データを前記第１の領域に格納させると共に前記第１の領域から読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項２６に記載の画像圧縮伸長装置。
【請求項２８】
前記制御手段は、
前記第１の領域へ転送されていない第２種データが前記主記憶装置に存在しない、かつ前記第２の領域が空であり、かつ前記第１の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第１の領域に格納させ、前記第１の領域から読み出された第２種データを前記外部装置へ転送させ、
前記第１の領域へ転送されていない第２種データが前記主記憶装置に存在しない、かつ前記第２の領域が空であり、かつ前記第１の領域が空いていない場合には、前記第２の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第２の領域に格納させ、前記第１の領域から読み出された第２種データを前記外部装置へ転送させ、前記第２の領域に格納されている第２種データを前記第１の領域へ転送させる
ことを特徴とする請求項２３に記載の画像圧縮伸長装置。
【請求項２９】
前記制御手段は、
前記変換手段から出力された第２種データを前記記憶手段に格納させ、並行して、前記主記憶装置から読み出された第２種データを前記外部装置へ転送させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、前記第２の選択手段と前記第１の選択手段とを介して前記第２のインターフェースと前記第１のインターフェースとを接続し、
前記第１の領域へ転送されていない第２種データが前記主記憶装置に存在し、かつ前記第１の領域が空であり、かつ前記第２の領域が空いている場合には、前記第１の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第２の領域に格納させ、並行して、前記主記憶装置から読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項２３に記載の画像圧縮伸長装置。
【請求項３０】
前記制御手段は、
前記変換手段から出力された第２種データを前記記憶手段に格納させ、並行して、前記記憶手段から読み出された第２種データを前記外部装置へ入力させる場合には、前記第１の選択手段を介して前記第１のインターフェースと前記記憶手段とを接続し、前記第２の選択手段と前記第１の選択手段とを介して前記記憶手段と前記変換手段とを接続し、
前記第１の領域へ転送されていない第２種データが前記主記憶装置に存在しない、かつ前記第２の領域が空であり、かつ前記第１の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第１の領域に格納させ、並行して、前記第１の領域から読み出された第２種データを前記外部装置へ転送させ、
前記第１の領域へ転送されていない第２種データが前記主記憶装置に存在しない、かつ前記第２の領域が空いている場合には、前記第２の経路に前記転送経路を設定し、前記変換手段から出力された第２種データを前記第２の領域に格納させ、並行して、前記第１の領域から読み出された第２種データを前記外部装置へ転送させる
ことを特徴とする請求項２３に記載の画像圧縮伸長装置。
【請求項３１】
前記第１種データは、ビットストリームであり、
前記第２種データは、ビデオ信号であり、
前記変換手段は、ビットストリームをデコードしてビデオ信号に変換する
ことを特徴とする請求項１又は１６に記載の画像圧縮伸長装置。
【請求項３２】
前記第１種データは、ビデオ信号であり、
前記第２種データは、ビットストリームであり、
前記変換手段は、ビデオ信号をエンコードしてビットストリームに変換する
ことを特徴とする請求項１又は１６に記載の画像圧縮伸長装置。
【請求項３３】
第１種データを第２種データに変換する変換手段と、外部装置から転送された前記第１種データが格納される記憶手段とを備える画像圧縮伸長装置を制御する画像圧縮伸長制御方法であって、
前記記憶手段の空き具合に応じて、主記憶装置を経由する第１の経路と、前記主記憶装置を経由しない第２の経路とのいずれかに転送経路を設定し、前記記憶手段に格納されている前記第１種データを、前記転送経路を経て、前記変換手段へ入力させる処理を制御する
ことを特徴とする画像圧縮伸長制御方法。
【請求項３４】
第１種データを第２種データに変換する変換手段と、前記変換手段から出力された前記第２種データが格納される記憶手段とを備える画像圧縮伸長装置を制御する画像圧縮伸長制御方法であって、
前記記憶手段の空き具合に応じて、主記憶装置を経由する第１の経路と、前記主記憶装置を経由しない第２の経路とのいずれかに転送経路を設定し、前記記憶手段に格納されている前記第２種データを、前記転送経路を経て、外部装置へ転送させる処理を制御する
ことを特徴とする画像圧縮伸長制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＰＥＧ等の画像圧縮方式に基づいてビットストリームをデコードする際、またはビデオ信号をエンコードする際に、高速にデータ転送を行う画像圧縮伸長装置に関する。
【背景技術】
【０００２】
近年、国際標準に代表される画像圧縮方式、例えば、ＭＰＥＧ（Moving Picture Experts Group）、ＪＰＥＧ（Joint Photographic Experts Group）、Ｈ．２６４等を利用するディジタル画像機器が続々と製品化されている。このようなディジタル画像機器においては、ＣＯＤＥＣと呼ばれる画像圧縮伸長処理回路がシステムＬＳＩに集積化されて実装されている。そして、画像圧縮伸長処理回路が集積化されたシステムＬＳＩは、ＣＰＵ（Central Processing Unit）、ＳＲＡＭ（Static Random Access Memory）、ＤＭＡＣ（Direct Memory Access Controller）、画像処理用の専用回路等を備える（例えば、非特許文献１参照。）。
【０００３】
以下、画像圧縮伸長回路が集積化されたシステムＬＳＩを用いて構成された画像圧縮伸長システムについて説明する。
【０００４】
＜画像圧縮伸長システム＞
図３９は、従来の画像圧縮伸長システムの構成を示す図である。
【０００５】
同図に示されるように、画像圧縮伸長システム１０は、主記憶装置１１、画像圧縮伸長装置１２、圧縮画像記録装置１３、及び画像入出力装置１４を有する。
【０００６】
主記憶装置１１は、外部バスを介して画像圧縮伸長装置１３と接続されている。さらに、画像圧縮伸長装置１３において、ビットストリームをデコードする際にまたはビデオ信号をエンコードする際に生成される作業用データが格納される記憶領域である。
【０００７】
「ビットストリーム」とは、ビデオ信号を圧縮して得られる圧縮データをいう。
画像圧縮伸長装置１２は、全体がシステムＬＳＩに集積化されている。また、ＤＲＡＭバスを介して主記憶装置１１と接続されている。さらに、インターフェースを介して圧縮画像記録装置１３と接続されている。また、他の画像入出力インターフェースを介して画像入出力装置１４と接続されている。そして、画像入出力装置１４から入力されたビデオ信号を圧縮して圧縮画像記録装置１３に書き込む。逆に、圧縮画像記録装置１３から読み出した圧縮データを伸長して画像入出力装置１４に出力する。
【０００８】
圧縮画像記録装置１３は、例えば、ＨＤＤ（Hard Disk Drive），ＤＶＤ，フラッシュメモリカード等のような外部圧縮データ記録装置である。
【０００９】
画像入出力装置１４は、例えば、ディスプレイ，ビデオカメラ等のような外部画像入出力装置である。
【００１０】
さらに、主記憶装置１１は、フレームメモリ１１ａ、ＶＢＶ（Video Buffering Verifier）バッファ１１ｂ、その他の作業用記憶領域１１ｃとして利用される。
【００１１】
フレームメモリ１１ａは、数フレーム分のビデオ信号が格納される記憶領域である。
ＶＢＶバッファ１１ｂは、画像圧縮伸長装置１３において圧縮されたビットストリーム、圧縮画像記録装置１３から読み出したビットストリームが格納される記憶領域をいう。
【００１２】
以上のような画像圧縮伸長システム１０において、画像圧縮伸長装置１２は、ビットストリームをデコードする際、またはビデオ信号をエンコードする際に、作業用データを主記憶装置１１に展開する。
【非特許文献１】”標準技術集（システムＬＳＩのレイアウト）データベース：画像処理用ＬＳＩ／データ圧縮用ＬＳＩ”、[online]、特許庁、［平成１６年８月４日検索］、インターネット＜URI : http://www.jpo.go.jp/shiryou/toushin/chousa/0007.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、前記従来の技術において、ＣＰＵ、ＤＭＡＣ、及び他のバスマスタ等も主記憶装置にアクセスするため、主記憶装置に対するアクセス競合が起こり、アクセス性能が低下する。画像圧縮伸長システム全体の性能の向上を図るにあたって、画像圧縮伸長装置と主記憶装置との間におけるデータ転送がボトルネックになるという問題がある。
【００１４】
また、面積当たりの記憶容量がＳＲＡＭと比べて大きいため、通常、作業用の記憶領域に利用される主記憶装置として、ＤＲＡＭ（Dynamic Random Access Memory）が使用される。しかし、ＤＲＡＭは、リフレッシュ、アクセス競合、ページミスヒット等が起こるため、アクセス時間又はウェイト数が可変である。このため、ＳＲＡＭと比べると、アクセス時間が長く、アクセス速度が遅い。これに対して、アクセス性能の向上を図るために、ＤＲＡＭの代わりにＳＲＡＭを使用すると、画像圧縮伸長システム全体のコスト上昇につながるという問題がある。
【００１５】
このような背景において、システムＬＳＩの低コスト化、低電力化と、ソフトウェアによる柔軟な処理方式の実現が課題として挙げられる。
【００１６】
そこで、本発明は、前記問題に鑑みてなされたものであり、コストをかけずにシステムの性能を高めつつ、主記憶装置に対するアクセス頻度を低減させる画像圧縮伸長装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
＜解決手段１＞
前記目的を達成するために、本発明に係る画像圧縮伸長装置は、（ａ）第１種データを第２種データに変換する変換手段と、（ｂ）外部装置から転送された前記第１種データが格納される記憶手段と、（ｃ）前記記憶手段の空き具合に応じて、主記憶装置を経由する第１の経路と、前記主記憶装置を経由しない第２の経路とのいずれかに転送経路を設定し、前記記憶手段に格納されている前記第１種データを、前記転送経路を経て前記変換手段へ入力させる処理を制御する制御手段とを備えることとする。
【００１８】
これによって、内部に有する記憶手段の空き具合に応じて、第１の経路と第２の経路とのいずれかに転送経路を設定することができる。そして、転送経路として第２の経路が設定されれば、主記憶装置を経由しない、すなわち、主記憶装置にアクセスしないため、主記憶装置に対するアクセス頻度を低減することができる。
【００１９】
＜解決手段２＞
さらに、（ａ）前記記憶手段は、（ａ１）前記外部装置から転送された第１種データが先入れ先出し方式によって格納される第１のバッファと、（ａ２）前記変換手段へ入力される第１種データが先入れ先出し方式によって格納される第２のバッファとを有し、（ｂ）前記第１のバッファは、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状のバッファであり、（ｂ１）前記第１のポインタは、前記第１のバッファに書き込まれる第１種データを管理するポインタであり、（ｂ２）前記第２のポインタは、前記第１のバッファから前記第２のバッファに書き込まれた第１種データを管理するポインタであり、（ｂ３）前記第３のポインタは、前記第１のバッファから読み出される第１種データを管理するポインタであり、（ｃ）前記制御手段は、前記第１のバッファと前記第２のバッファとの空き具合に応じて、前記転送経路を設定することとしてもよい。
【００２０】
これによって、第１のバッファと第２のバッファとの空き具合に応じて、第１の経路と第２の経路とのいずれかに転送経路を設定することができる。そして、転送経路として第２の経路が設定されれば、主記憶装置を経由しない、すなわち、主記憶装置にアクセスしないため、主記憶装置に対するアクセス頻度を低減することができる。
【００２１】
＜解決手段３＞
さらに、前記制御手段は、（ａ）前記第１のポインタが前記第２のポインタを追い越していない、かつ前記第２のバッファが空いている場合には、前記第２の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記第２のバッファへ転送させ、（ｂ）前記第１のポインタが前記第２のポインタを追い越している、又は前記第２のバッファが空いていない場合には、前記第１の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記主記憶装置へ転送させ、前記主記憶装置から読み出された第１種データを前記第２のバッファに格納させることとしてもよい。
【００２２】
これによって、データの整合性を維持しつつ、上書きされずに第１のバッファに格納されているデータを第２のバッファへ転送することができる。さらに、主記憶装置を経由せずに、第１のバッファから第２のバッファに転送することができるため、主記憶装置に対するアクセスを省略し、アクセス頻度を抑制することができる。そして、画像圧縮伸長装置と主記憶装置との間におけるトラフィックを低減することができる。
【００２３】
＜解決手段４＞
さらに、前記制御手段は、前記第２の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記第２のバッファへ転送させた後に、前記第１の経路に前記転送経路を設定し、前記第１のバッファから読み出された第１種データを前記主記憶装置へ転送させると共に前記第２のバッファから読み出された第１種データを前記変換手段へ入力させることとしてもよい。
【００２４】
これによって、データの整合性を維持しつつ、第１のバッファに格納されているデータを主記憶装置へ転送することによって、さらに、第１のバッファを空けることができる。
【００２５】
＜解決手段５＞
さらに、（ａ）前記制御手段は、前記第２のバッファと前記変換手段との間におけるデータ転送を監視して前記第２のバッファの空き具合を予測し、（ｂ）予測した結果に基づいて、（ｂ１）前記第２のバッファが空く見込みがないと判断した場合には、前記第１の経路に前記転送経路を設定し、（ｂ２）前記第２のバッファが空く見込みがあると判断した場合には、前記第２の経路に前記転送経路を設定することとしてもよい。
【００２６】
これによって、バッファからのデータ転送を検出することによって、バッファが空くことを事前に予測してデータ転送を開始することができる。バッファが空いてからデータ転送を開始する場合と比べて、実効的なデータ転送の速度の向上を図ることができる。
【００２７】
＜解決手段６＞
または、（ａ）前記記憶手段は、（ａ１）前記外部装置から転送された第１種データが先入れ先出し方式によって格納される第１の領域と、（ａ２）前記変換手段へ入力される第１種データが先入れ先出し方式によって格納される第２の領域とに論理的に分割されたバッファであり、（ｂ）前記第１の領域は、第１のポインタと第２のポインタと第３のポインタとによって管理しているリング状の領域であり、（ｂ１）前記第１のポインタは、前記第１の領域に書き込まれる第１種データを管理するポインタであり、（ｂ２）前記第２のポインタは、前記第１の領域から前記第２の領域に書き込まれた第１種データを管理するポインタであり、（ｂ３）前記第３のポインタは、前記第１の領域から読み出される第１種データを管理するポインタであり、（ｃ）前記制御手段は、前記第１の領域と前記第２の領域との空き具合に応じて、前記転送経路を設定することとしてもよい。
【００２８】
これによって、第１の領域と第２の領域との空き具合に応じて、第１の経路と第２の経路とのいずれかに転送経路を設定することができる。そして、転送経路として第２の経路が設定されれば、主記憶装置を経由しない、すなわち、主記憶装置にアクセスしないため、主記憶装置に対するアクセス頻度を低減することができる。
【００２９】
＜解決手段７＞
さらに、（ａ）前記画像圧縮伸長装置は、（ａ１）前記外部装置と接続されて前記外部装置との間におけるデータ転送を行う第１のインターフェースと、（ａ２）前記主記憶装置と接続されて前記主記憶装置との間におけるデータ転送を行う第２のインターフェースと、（ａ３）四つのポートを有し、前記制御手段からの制御に応じて、四つのポート間の接続を切り替える第１の選択手段と、（ａ４）三つのポートを有し、前記制御手段からの制御に応じて、三つのポート間の接続を切り替える第２の選択手段とを備え、（ｂ）前記第１の選択手段は、前記第１のインターフェース、前記変換手段、前記記憶手段、前記第２の選択手段と、前記ポートを介して接続され、（ｃ）前記第２の選択手段は、前記第２のインターフェース、前記記憶手段、前記第１の選択手段と、前記ポートを介して接続され、（ｄ）前記制御手段は、前記第１の選択手段と前記第２の選択手段とを制御して、前記第１の経路と前記第２の経路とのいずれかに前記転送経路を設定することとしてもよい。
【００３０】
これによって、物理的に一つのバッファを論理的に二つの領域に分割し、主記憶装置を経由せずに論理的に二つに分割された一方の領域から他方の領域に直接転送することができるため、主記憶装置に対するアクセスを省略し、アクセス頻度を抑制することができる。そして、画像圧縮伸長装置と主記憶装置との間におけるトラフィックを低減することができる。
【００３１】
＜その他の解決手段＞
なお、本発明は、画像圧縮伸長装置として実現されるだけではなく、画像圧縮伸長装置を制御する方法（以下、画像圧縮伸長方法と呼称する。）等としてもよい。また、画像圧縮伸長装置によって提供される機能（以下、画像圧縮伸長機能と呼称する。）が組み込まれたＬＳＩ、画像圧縮伸長機能をＦＰＧＡ、ＣＰＬＤ等のプログラマブル・ロジック・デバイスに形成するＩＰコア（以下、画像圧縮伸長コアと呼称する。）、及び画像圧縮伸長コアを記録した記録媒体等としても実現されるとしてもよい。
【発明の効果】
【００３２】
以上、本発明に係る画像圧縮伸長装置によれば、記憶手段の空き具合に応じて、記憶手段に格納されているデータを、（ａ）画像圧縮伸長装置と接続される主記憶装置を経由して転送するか、（ｂ）主記憶装置を経由せずに直接転送するかを制御することによって、主記憶装置に対するアクセスを省略し、アクセス頻度を抑制して、画像圧縮伸長装置と主記憶装置との間におけるトラフィックを低減することができる。
【００３３】
さらに、記憶手段からのデータ転送を検出することによって、記憶手段が空くことを事前に予測してデータ転送を開始し、記憶手段が空いてからデータ転送を開始する場合と比べて実効的な速度の向上を図ることができる。
【００３４】
そして、システムＬＳＩのコスト上昇を抑えながら、性能の向上を図り、低消費電力化を実現することができる。
【発明を実施するための最良の形態】
【００３５】
（実施の形態１）
以下、本発明の実施の形態１について図面を参照しながら説明する。なお、背景技術において説明した内容と同一の構成要素については同一の符号を付して説明を省略する。
【００３６】
＜概要＞
本発明の実施の形態１における画像圧縮伸長装置は、ビットストリームを一時的に保持するバッファを二つ有する。さらに、一方のバッファの出力ポートは、他方のバッファの入力ポートと直結されている。そして、ビットストリームは、各バッファの空き容量に応じて、主記憶装置を経由せずとも、一方のバッファから他方のバッファに直接転送される。
【００３７】
「ビットストリーム」とは、ビデオ信号を圧縮して得られる圧縮データをいう。
以上の点を踏まえて本発明に係る実施の形態１における画像圧縮伸長システムについて説明する。
【００３８】
＜画像圧縮伸長システム＞
図１は、本発明に係る実施の形態１における画像圧縮伸長システムの構成を示す図である。
【００３９】
同図に示されるように、画像圧縮伸長システム１００は、画像圧縮伸長装置１２の代わりに画像圧縮伸長装置１０２を備える点が異なる。
【００４０】
＜画像圧縮伸長装置＞
画像圧縮伸長装置１０２は、バス制御部１２１、Ｂ／ＩＦ１２２、Ｐ／ＩＦ１２３、画像圧縮伸長演算部１２４、ＩＯバッファ１２５、ＯＰバッファ１２６、画像データバッファ１２７、ＤＭＡＣ１２８、及びＣＰＵ１２９を備える。
【００４１】
バス制御部１２１は、内部バスと外部バスとに対する制御を行い、バス上の転送を制御する。例えば、バス獲得の優先順位を調停し、主記憶装置１１に対するアクセスを制御する。
【００４２】
Ｂ／ＩＦ１２２は、圧縮画像記録装置１３とビットストリームを遣り取りするインターフェースである。例えば、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４（Institute of Electrical and Electronic Engineers 1394）、ＡＴＡＰＩ（AT Attachment Packet Interface）等がこれに該当する。
【００４３】
Ｐ／ＩＦ１２３は、画像入出力装置１４とビデオ信号を遣り取りするインターフェースである。
【００４４】
画像圧縮伸長演算部１２４は、画像圧縮方式に基づいて、圧縮画像記録装置１３から読み出されたビットストリームをデコードしてビデオ信号を生成する。また、画像入出力装置１４から入力されたビデオ信号をエンコードしてビットストリームを生成する。
【００４５】
ＩＯバッファ１２５は、主記憶装置１１と圧縮画像記録装置１３との間で遣り取りされるビットストリームを一時的に保持するバッファである。
【００４６】
ＯＰバッファ１２６は、主記憶装置１１と画像圧縮伸長演算部１２４との間で遣り取りされるビットストリームを一時的に保持するバッファである。
【００４７】
画像データバッファ１２７は、出力ポートと入力ポートとを有し、先入れ先出し方式に基づいて格納される記憶領域である。画像入出力装置１４と主記憶装置１１との間で遣り取りされるビデオ信号を一時的に保持する。
【００４８】
ＤＭＡＣ１２８は、ＣＰＵ１２９に制御され、ＤＭＡ（Direct Memory Access）方式に基づくデータ転送を制御する。さらに、ＩＯバッファ１２５、ＯＰバッファ１２６、画像データバッファ１２７の空き容量に応じて、バス制御部１２１、Ｂ／ＩＦ１２２、Ｐ／ＩＦ１２３、画像圧縮伸長演算部１２４を制御して、主記憶装置１１、圧縮画像記録装置１３、画像入出力装置１４の三者間におけるデータ転送を制御する。
【００４９】
ＣＰＵ１２９は、ファームウェアプログラムにより制御され、画像圧縮伸長装置１０２の全体を制御する。具体的には、ＭＣＵ(Micro Controller Unit)、組み込みマイコン等である。また、バス制御部１２１に設けられたＤＲＡＭ制御回路によって、ＣＰＵ１２９は、外部記憶アドレス領域に割り当てられている主記憶装置１１を、直接、アクセスすることができる。
【００５０】
なお、ファームウェアプログラムは、図には示されてはいないが、主に命令ＲＯＭやフラッシュメモリなどから供給される。
【００５１】
画像圧縮伸長装置１０２は、ＣＰＵ１２９とＤＭＡＣ１２８の二つの制御ユニットにより管理されている。
【００５２】
＜ＩＯバッファとＯＰバッファ＞
ここで、ＩＯバッファ１２５、ＯＰバッファ１２６について補足する。
【００５３】
ＩＯバッファ１２５、ＯＰバッファ１２６の夫々は、出力ポートと入力ポートとを有するリング状のバッファである。
【００５４】
さらに、ＩＯバッファ１２５については、出力ポートがＯＰバッファ１２６の入力ポートに直結されている。また、読み出されるデータ又は書き込まれるデータを、ＩＯ＿ＵＢ、ＩＯ＿ＬＢ、ＩＯ＿ＲＰ１、ＩＯ＿ＲＰ２、ＩＯ＿ＷＰによって管理している。
【００５５】
ここで、ＩＯ＿ＵＢは、ＩＯバッファ１２５として画像圧縮伸長装置１０２に形成された記憶領域の最上位アドレスである。ＩＯ＿ＬＢは、ＩＯバッファ１２５として画像圧縮伸長装置１０２に形成された記憶領域の最下位アドレスである。ＩＯ＿ＲＰ１は、ＯＰバッファ１２６に送信されていないデータをＩＯバッファ１２５から読み出す際の開始アドレスを指示する読み出しポインタである。ＩＯ＿ＲＰ２は、ＶＢＶバッファ１１ｂに送信されていないデータをＩＯバッファ１２５から読み出す際の開始アドレスを指示する読み出しポインタである。ＩＯ＿ＷＰは、ＩＯバッファ１２５にデータを書き込む際の開始アドレスを指示する書き込みポインタである。
【００５６】
同様に、ＯＰバッファ１２６については、出力ポートがＩＯバッファ１２５の入力ポートに直結されている。また、読み出されるデータ又は書き込まれるデータを、ＯＰ＿ＵＢ、ＯＰ＿ＬＢ、ＯＰ＿ＲＰ１、ＯＰ＿ＲＰ２、ＯＰ＿ＷＰによって管理している。
【００５７】
ここで、ＯＰ＿ＵＢは、ＯＰバッファ１２６として画像圧縮伸長装置１０２に形成された記憶領域の最上位アドレスである。ＯＰ＿ＬＢは、ＯＰバッファ１２６として画像圧縮伸長装置１０２に形成された記憶領域の最下位アドレスである。ＯＰ＿ＲＰ１は、ＩＯバッファ１２５に転送されていないデータをＯＰバッファ１２６から読み出す際の開始アドレスを指示する読み出しポインタである。ＯＰ＿ＲＰ２は、ＶＢＶバッファ１１ｂに転送されていないデータをＯＰバッファ１２６から読み出す際の開始アドレスを指示する読み出しポインタである。ＯＰ＿ＷＰは、ＯＰバッファ１２６にデータを書き込む際の開始アドレスを指示する書き込みポインタである。
【００５８】
そして、ＩＯバッファ１２５、ＯＰバッファ１２６、及びバス制御部１２１を介した主記憶装置１１は、これら三者間のうちのいずれかの二者間でしか同時に転送できないという条件に基づいて、ＤＭＡＣ１２８によって制御されている。
【００５９】
なお、ＩＯバッファ１２５は、図には示されていないが、ＩＯ＿ＵＢ、ＩＯ＿ＬＢ、ＩＯ＿ＲＰ１、ＩＯ＿ＲＰ２、ＩＯ＿ＷＰ等を保持するレジスタを有する。同様に、ＯＰバッファ１２６は、ＯＰ＿ＵＢ、ＯＰ＿ＬＢ、ＯＰ＿ＲＰ１、ＯＰ＿ＲＰ２、ＯＰ＿ＷＰ等を保持するレジスタを有する。
【００６０】
＜オーバーライト＞
なお、デコード時に、ＩＯバッファ１２５に格納されているビットストリームのうち、上書きされずに残されている部分、すなわち、ＩＯ＿ＲＰ１からＩＯ＿ＲＰ２の部分（以下、残存領域と呼称する。）を下位アドレスから上書きすることをオーバーライトとする。
【００６１】
同様に、エンコード時に、ＯＰバッファ１２６に格納されているビットストリームのうち、上書きされずに残されている部分、すなわち、ＯＰ＿ＲＰ１からＯＰ＿ＲＰ２の部分（以下、残存領域と呼称する。）を下位アドレスから上書きすることをオーバーライトとする。
【００６２】
＜ＶＢＶバッファ＞
ここで、ＶＢＶバッファ１１ｂについて補足説明する。
【００６３】
ＶＢＶバッファ１１ｂは、主記憶装置１１に割り当てられた記憶領域である。そのアドレスは、ＶＢＶ＿ＬＢからＶＢＶ＿ＵＢ−１までである。そのサイズは、ＶＢＶ＿ＵＢからＶＢＶ＿ＬＢを減算したワード数である。その記憶領域は、リングバッファとして構成される。
【００６４】
そして、バス制御部１２１は、読み出すデータ又は書き込むデータを、ＶＢＶ＿ＵＢ、ＶＢＶ＿ＬＢ、ＶＢＶ＿ＲＰ、ＶＢＶ＿ＷＰによって管理している。
【００６５】
ここで、ＶＢＶ＿ＵＢは、ＶＢＶバッファ１１ｂとして主記憶装置１１に割り当てられた記憶領域の最上位アドレスである。ＶＢＶ＿ＬＢは、ＶＢＶバッファ１１ｂとして主記憶装置１１に割り当てられた記憶領域の最下位アドレスである。ＶＢＶ＿ＲＰは、バス制御部１２１がＶＢＶバッファ１１ｂからデータを読み出す際の開始アドレスを指示する読み出しポインタである。ＶＢＶ＿ＷＰは、バス制御部１２１がＶＢＶバッファ１１ｂにデータを書き込む際の開始アドレスを指示する書き込みポインタである。
【００６６】
さらに、バス制御部１２１は、ＶＢＶバッファ１１ｂに対する読み出し処理が発生すると、読み出したデータのサイズ分、アドレスを加算し、ＶＢＶ＿ＲＰを進める。同様に、ＶＢＶバッファ１１ｂに対する書き込み処理が発生すると、書き込んだ分のサイズ分、アドレスを加算し、ＶＢＶ＿ＷＰを進める。
【００６７】
なお、バス制御部１２１は、図には示されていないが、ＶＢＶ＿ＵＢ、ＶＢＶ＿ＬＢ、ＶＢＶ＿ＲＰ、ＶＢＶ＿ＷＰ等を保持するレジスタを有する。
【００６８】
図２は、一例として、ＶＢＶの保持状態の変遷を示す概要図である。
同図に示されるように、グラフ１３０から、ＶＢＶバッファ１１ｂは、規格上、オーバーフローもアンダーフローも起こらないように設計されることが示されている。このため、（ａ）初期状態を除いてＶＢＶバッファ１１ｂがヌルになること、または（ｂ）ＶＢＶバッファ１１ｂがフルになることは通常ありえない。
【００６９】
「ヌル」とは、割り当てられた記憶領域が空である状態をいう。
「フル」とは、割り当てられた記憶領域が一杯である状態をいう。
【００７０】
なお、ＶＢＶ＿ＲＰは、初期化、オーバーフローによってリセットされる際には、ＶＢＶ＿ＬＢに設定される。同様に、ＶＢＶ＿ＷＰも、初期化、オーバーフローによってリセットされる際には、ＶＢＶ＿ＬＢに設定される。
【００７１】
例えば、ＶＢＶバッファ１１ｂに対する書き込み処理を行って、ＶＢＶ＿ＷＰがＶＢＶ＿ＵＢを超えると、ＶＢＶ＿ＷＰは、ラップアラウンドしてＶＢＶ＿ＬＢに設定される。このとき、ＶＢＶ＿ＷＰとＶＢＶ＿ＲＰの上下関係が逆転する。
【００７２】
＜動作＞
続いて、以上のように構成された画像圧縮伸長装置の動作について説明する。
【００７３】
ここでは、主として、下記（ａ）、（ｂ）の場合について説明する。
（ａ）Ｂ／ＩＦ１２２を介して圧縮画像記録装置１３から読み出したビットストリームを、画像圧縮伸長演算部１２４においてビデオ信号にデコードする。そして、デコード後のビデオ信号をＰ／ＩＦ１２３を介して画像入出力装置１４に出力する（以下、デコード時と呼称する。）。
【００７４】
（ｂ）Ｐ／ＩＦ１２３を介して画像入出力装置１４から入力されたビデオ信号を、画像圧縮伸長演算部１２４においてビットストリームにエンコードする。そして、エンコード後のビットストリームをＢ／ＩＦ１２２を介して圧縮画像記録装置１３に書き込む（以下、エンコード時と呼称する。）。
【００７５】
＜デコード時＞
図３は、実施の形態１における画像圧縮伸長装置のデコード時の動作を示す図である。
【００７６】
同図に示されるように、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む（ステップＳ１１）。論理表１４０（図４参照。）に応じて、下記（ａ）〜（ｃ）のいずれかを実行する（ステップＳ１１１）。
【００７７】
（ａ）ＤＭＡＣ１２８は、バス制御部１２１を制御してＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ１２）。さらに、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込む（ステップＳ１３）。
【００７８】
（ｂ）ＤＭＡＣ１２８は、ＩＯバッファ１２５から読み出したビットストリームをＯＰバッファ１２６に直接書き込む（ステップＳ１１２）。
【００７９】
（ｃ）ＤＭＡＣ１２８は、ＩＯバッファ１２５から読み出したビットストリームをＯＰバッファ１２６に直接書き込む（ステップＳ１１３）。さらに、バス制御部１２１を制御してＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ１１４）。
【００８０】
そして、ＤＭＡＣ１２８は、ＯＰバッファ１２６から読み出したビットストリームを画像圧縮伸長演算部１２４においてビデオ信号にデコードする（ステップＳ１４）。バス制御部１２１を制御して画像圧縮伸長演算部１２４においてビットストリームからデコードされたビデオ信号をフレームメモリ１１ａに書き込む（ステップＳ１５）。バス制御部１２１を制御してフレームメモリ１１ａから読み出されたビデオ信号を画像データバッファ１２７に書き込む（ステップＳ１６）。Ｐ／ＩＦを制御して画像データバッファ１２７から読み出したビデオ信号を画像入出力装置１４に出力する（ステップＳ１７）。
【００８１】
図４は、実施の形態１における画像圧縮伸長装置のデコード時の状態遷移に係る論理表を示す図である。
【００８２】
同図に示されるように、論理表１４０は、状態（カラム１４１）、ＶＢＶバッファ１１ｂの保持状態（カラム１４２）、ＯＰバッファ１２６の保持状態（カラム１４３）、ＩＯバッファ１２５の保持状態（カラム１４４）、Ｂ／ＩＦ１２２から画像圧縮伸長演算部１２４までの転送経路（カラム１４５）、ＩＯバッファ１２５の各ポインタの遷移（カラム１４６）、ＶＢＶバッファ１１ｂの各ポインタの遷移（カラム１４７）、ＯＰバッファ１２６の各ポインタの遷移（カラム１４８）が示されている。
【００８３】
なお、図中において、「ＶＢＶＢ」は、ＶＢＶバッファ１１ｂを示し、「ＯＰＢ」は、ＯＰバッファ１２６を示し、「ＩＯＢ」は、ＩＯバッファ１２５を示す。さらに、「ＮＵＬＬ」は、ヌルであることを示し、「！ＮＵＬＬ」は、ヌルでないことを示す。また、「ＦＵＬＬ」は、フルであることを示し、「！ＦＵＬＬ」は、フルでないことを示す。そして、「ＯＷ」は、オーバーライトされていることを示し、「！ＯＷ」は、オーバーライトされていないことを示す。
【００８４】
＜エンコード時＞
図５は、実施の形態１における画像圧縮伸長装置のエンコード時の動作を示す図である。
【００８５】
同図に示されるように、ＤＭＡＣ１２８は、Ｐ／ＩＦ１２３を制御して画像入出力装置１４から入力されたビデオ信号を画像データバッファ１２７に書き込む（ステップＳ２１）。バス制御部１２１を制御して画像データバッファ１２７から読み出したビデオ信号をフレームメモリ１１ａに書き込む（ステップＳ２２）。バス制御部１２１を制御してフレームメモリ１１ａから読み出したビデオ信号を画像圧縮伸長演算部１２４においてビットストリームにエンコードする（ステップＳ２３）。画像圧縮伸長演算部１２４においてビデオ信号からエンコードされたビットストリームをＯＰバッファ１２６に書き込む（ステップＳ２４）。論理表１５０（図６参照。）に応じて、下記（ａ）〜（ｃ）のいずれかを実行する（ステップＳ１２１）。
【００８６】
（ａ）ＤＭＡＣ１２８は、バス制御部１２１を制御してＯＰバッファ１２６から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ２５）。さらに、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＩＯバッファ１２５に書き込む（ステップＳ２６）。
【００８７】
（ｂ）ＤＭＡＣ１２８は、ＯＰバッファ１２６から読み出したビットストリームをＩＯバッファ１２５に直接書き込む（ステップＳ１２２）。
【００８８】
（ｃ）ＤＭＡＣ１２８は、ＯＰバッファ１２６から読み出したビットストリームをＩＯバッファ１２５に直接書き込む（ステップＳ１２３）。さらに、バス制御部１２１を制御してＯＰバッファ１２６から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ１２４）。
【００８９】
そして、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御してＩＯバッファ１２５から読み出したビットストリームを圧縮画像記録装置１３に書き込む（ステップＳ２７）。
【００９０】
図６は、実施の形態１における画像圧縮伸長装置のエンコード時の状態遷移に係る論理表を示す図である。
【００９１】
同図に示されるように、論理表１５０は、状態（カラム１５１）、ＶＢＶバッファ１１ｂの保持状態（カラム１４２）、ＩＯバッファ１２５の保持状態（カラム１５３）、ＯＰバッファ１２６の保持状態（カラム１５４）、画像圧縮伸長演算部１２４からＢ／ＩＦ１２２までの転送経路（カラム１５５）、ＯＰバッファ１２６の各ポインタの遷移（カラム１５６）、ＶＢＶバッファ１１ｂの各ポインタの遷移（カラム１５７）、ＩＯバッファ１２５の各ポインタの遷移（カラム１５８）が示されている。
【００９２】
＜動作例＞
ここで、実施の形態１における画像圧縮伸長装置１０２の動作例について説明する。なお、論理表１４０、１５０を比べると、エンコード時の転送経路は、デコード時の転送経路の逆である。以下、話を簡潔にするために、デコード時の場合についてのみ説明し、エンコード時の場合については説明を省略する。
【００９３】
＜状態遷移＞
図７は、実施の形態１における画像圧縮伸長装置のデコード時の状態遷移を示すステートマシン図である。
【００９４】
同図に示されるように、まず、初期状態から状態Ｄ１に遷移する。
状態Ｄ１において、（ａ）ＯＰバッファ１２６がフルでない（ＯＰＢ≠ＦＵＬＬ）場合には、状態Ｄ１に遷移し、（ｂ）ＯＰバッファ１２６がフルである（ＯＰＢ＝ＦＵＬＬ）場合には、状態Ｄ２に遷移する。
【００９５】
状態Ｄ２において、（ａ）ＶＢＶバッファがヌルでない（ＶＢＶＢ≠ＮＵＬＬ）場合には、状態Ｄ３に遷移し、（ｂ）ＯＰバッファ１２６がフルでない（ＯＰＢ≠ＦＵＬＬ）場合には、状態Ｄ１に遷移する。
【００９６】
状態Ｄ３において、（ａ）ＯＰバッファ１２６がフルでない（ＯＰＢ≠ＦＵＬＬ）場合には、状態Ｄ４に遷移し、（ｂ）ＩＯバッファ１２５がオーバーライトされている（ＩＯＢ＝ＯＷ）場合には、状態Ｄ５に遷移する。
【００９７】
状態Ｄ４において、（ａ）ＩＯバッファ１２５がオーバーライトされている（ＩＯＢ＝ＯＷ）場合には、状態Ｄ６に遷移し、（ｂ）ＯＰバッファ１２６がフルである（ＯＰＢ＝ＦＵＬＬ）場合には、状態Ｄ３に遷移し、（ｃ）ＯＰバッファ１２６がフルでなくかつＶＢＶバッファがヌルである（ＯＰＢ≠ＦＵＬＬ  ＆＆  ＶＢＶＢ＝ＮＵＬＬ）場合には、状態Ｄ１に遷移する。
【００９８】
状態Ｄ５において、（ａ）ＯＰバッファ１２６がフルでない（ＯＰＢ≠ＦＵＬＬ）場合には、状態Ｄ６に遷移し、（ｂ）ＩＯバッファ１２５がオーバーライトされている（ＩＯＢ＝ＯＷ）場合には、状態Ｄ３に遷移する。
【００９９】
状態Ｄ６において、（ａ）ＯＰバッファ１２６がフルである（ＯＰＢ＝ＦＵＬＬ）場合には、状態Ｄ５に遷移し、（ｂ）ＩＯバッファ１２５がオーバーライトされていない（ＩＯＢ≠ＯＷ）場合には、状態Ｄ４に遷移する。
【０１００】
＜アドレス遷移＞
図８〜図２３は、状態Ｄ１〜状態Ｄ６におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す概要図である。
【０１０１】
なお、図中において、太枠で囲まれている領域は、バッファを表している。
また、統合化バッファ３２５のＩＯ＿ＬＢからＩＯ＿ＵＢまでの領域は、ＩＯ領域であり、ＯＰ＿ＬＢからＯＰ＿ＵＢまでの領域は、ＯＰ領域である。
【０１０２】
また、各バッファにおいて、黒塗りの三角形は、書き込みポインタ（ＶＢＶ＿ＷＰ、ＩＯ＿ＷＰ、ＯＰ＿ＷＰ）を示し、白塗りの三角形は、読み出しポインタ（ＶＢＶ＿ＲＰ、ＩＯ＿ＲＰ、ＯＰ＿ＲＰ）を示す。
【０１０３】
また、ＩＯ領域において、数字の「１」が中に記されている白塗りの三角形は、第１の読み出しポインタ（ＩＯ＿ＲＰ１）を示し、数字の「２」が中に記されている白塗りの三角形は、第２の読み出しポインタ（ＩＯ＿ＲＰ２）を示す。
【０１０４】
また、黒塗りの矢印は、バッファに書き込まれたことを示し、白塗りの矢印は、バッファから読み出されたことを示す。
【０１０５】
なお、黒塗りの三角形が白塗りの三角形の左側に示されている場合には、黒塗りの三角形で示されるポインタが白塗りの三角形で示されるポインタを追い越そうとしていることを示す。そして、追い越した後は、オーバーライトした部分を斜線で示す。
【０１０６】
＜状態Ｄ１＞
図８、図９に示されるように、状態Ｄ１（図４、図７参照。）においては、ＩＯバッファ１２５がフルではなく、ＯＰバッファ１２６がフルではなく、ＶＢＶバッファ１１ｂがヌルであるため（図８（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図８（ｂ）参照。）。
【０１０７】
さらに、ＤＭＡＣ１２８は、ＩＯバッファ１２５から読み出したビットストリームをＯＰバッファ１２６に書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ１，ＩＯ＿ＲＰ２を進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図９（ａ）参照。）。
【０１０８】
そして、ＤＭＡＣ１２８は、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。これに伴い、ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図９（ｂ）参照。）。
【０１０９】
＜状態Ｄ２＞
図１０〜図１２に示されるように、状態Ｄ２（図４、図７参照。）においては、ＩＯバッファ１２５がフルではなく、ＯＰバッファ１２６がフルであり、ＶＢＶバッファ１１ｂがヌルであるため（図１０（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図１０（ｂ）参照。）。
【０１１０】
さらに、ＤＭＡＣ１２８は、バス制御部１２１を制御してＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＲＰ２を進め、バス制御部１２１は、書き込んだビットストリームのサイズ分、ＶＢＶ＿ＷＰを進める（図１１（ａ）参照。）。
【０１１１】
また、ＤＭＡＣ１２８は、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。これに伴い、ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図１１（ｂ）参照。）。
【０１１２】
そして、ＤＭＡＣ１２８は、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込む。これに伴い、バス制御部１２１は、読み出したビットストリームのサイズ分、ＶＢＶ＿ＲＰを進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図１２参照。）。ここで、ＩＯバッファ１２５も、ＯＰバッファ１２６に書き込まれたビットストリームのサイズ分、ＩＯ＿ＲＰ１を進める。ＯＰバッファ１２６に書き込まれたビットストリーム、すなわち、ＯＰバッファ１２６において黒塗りの矢印で示される部分は、ＩＯバッファ１２５において白塗りの破線矢印で示される部分に該当するためである。
【０１１３】
＜状態Ｄ３＞
図１３〜図１５に示されるように、状態Ｄ３（図４、図７参照。）においては、ＩＯバッファ１２５がフルではなく、ＯＰバッファ１２６がフルであり、ＶＢＶバッファ１１ｂがヌルでないため（図１３（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図１３（ｂ）参照。）。
【０１１４】
さらに、ＤＭＡＣ１２８は、バス制御部１２１を制御してＩＯバッファから読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ２を進め、バス制御部１２１は、書き込んだビットストリームのサイズ分、ＶＢＶ＿ＷＰを進める（図１４（ａ）参照。）。
【０１１５】
また、ＤＭＡＣ１２８は、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。これに伴い、ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図１４（ｂ）参照。）。
【０１１６】
そして、ＤＭＡＣ１２８は、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込む。バス制御部１２１は、読み出したビットストリームのサイズ分、ＶＢＶ＿ＲＰを進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図１５参照。）。ここで、ＩＯバッファ１２５は、ＯＰバッファ１２６に書き込まれたビットストリームのサイズ分、ＩＯ＿ＲＰ１も進める。ＯＰバッファ１２６に書き込まれたビットストリーム、すなわち、ＯＰバッファ１２６において黒塗りの矢印で示される部分は、ＩＯバッファ１２５において白塗りの破線矢印で示される部分に該当するためである。
【０１１７】
＜状態Ｄ４＞
図１６、図１７に示されるように、状態Ｄ４（図４、図７参照。）においては、ＩＯバッファ１２５がフルではなく、ＯＰバッファ１２６がフルでなく、ＶＢＶバッファ１１ｂがヌルでないため（図１６（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図１６（ｂ）参照。）。
【０１１８】
さらに、ＤＭＡＣ１２８は、ＶＢＶバッファ１１ｂの代わりに残存領域から読み出したビットストリームをＯＰバッファ１２６に直接書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ１を進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図１７（ａ）参照。）。ここで、バス制御部１２１は、ＯＰバッファ１２６に書き込まれたビットストリームのサイズ分、ＶＢＶ＿ＲＰも進める。ＯＰバッファ１２６に書き込まれたビットストリーム、すなわち、ＯＰバッファにおいて黒塗りの矢印で示される部分は、ＶＢＶバッファ１１ｂにおいて白塗りの破線矢印で示される部分に該当する。
【０１１９】
そして、ＤＭＡＣ１２８は、バス制御部１２１を制御してＩＯバッファから読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ２を進め、バス制御部１２１は、書き込んだビットストリームのサイズ分、ＶＢＶ＿ＷＰを進める。また、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。これに伴い、ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図１７（ｂ）参照。）。
【０１２０】
＜状態Ｄ５＞
図１８〜図２０に示されるように、状態Ｄ５（図４、図７参照。）においては、ＩＯバッファ１２５に上書きされた領域があり、ＯＰバッファ１２６がフルであり、ＶＢＶバッファ１１ｂがヌルでないため（図１８（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図１８（ｂ）参照。）。
【０１２１】
さらに、ＤＭＡＣ１２８は、バス制御部１２２を制御してＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ２を進め、バス制御部１２１は、書き込んだビットストリームのサイズ分、ＶＢＶ＿ＷＰを進める（図１９（ａ）参照。）。
【０１２２】
また、ＤＭＡＣ１２８は、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。これに伴い、ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図１９（ｂ）参照。）。
【０１２３】
そして、ＤＭＡＣ１２８は、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込む。これに伴い、バス制御部１２１は、読み出したビットストリームのサイズ分、ＶＢＶ＿ＲＰを進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図２０参照。）。ここで、ＩＯバッファ１２５は、ＯＰバッファ１２６に書き込まれたビットストリームのサイズ分、ＩＯ＿ＲＰ１も進める。ＯＰバッファ１２６に書き込まれたビットストリーム、すなわち、ＯＰバッファ１２６において黒塗りの矢印で示される部分は、ＩＯバッファ１２５において白塗りの破線矢印で示される部分に該当するためである。
【０１２４】
＜状態Ｄ６＞
図２１〜図２３に示されるように、状態Ｄ６（図４、図７参照。）においては、ＩＯバッファ１２５に上書きされた領域があり、ＯＰバッファ１２６がフルでなく、ＶＢＶバッファ１１ｂがヌルでないため（図２１（ａ）参照。）、ＤＭＡＣ１２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込む。これに伴い、ＩＯバッファ１２５は、書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図２１（ｂ）参照。）。
【０１２５】
さらに、ＤＭＡＣ１２８は、バス制御部１２１を制御してＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む。これに伴い、ＩＯバッファ１２５は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ２を進め、バス制御部１２１は、書き込んだビットストリームのサイズ分、ＶＢＶ＿ＷＰを進める（図２２（ａ）参照。）。
【０１２６】
また、ＤＭＡＣ１２８は、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込む。これに伴い、バス制御部１２１は、読み出したビットストリームのサイズ分、ＶＢＶ＿ＲＰを進め、ＯＰバッファ１２６は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図２２（ｂ）参照。）。ここで、ＩＯバッファ１２５は、ＯＰバッファ１２６に書き込まれたビットストリームのサイズ分、ＩＯ＿ＲＰ１も進める。ＯＰバッファ１２６に書き込まれたビットストリーム、すなわち、ＯＰバッファにおいて黒塗りの矢印で示される部分は、ＩＯバッファ１２５において白塗りの破線矢印で示される部分に該当するためである。
【０１２７】
そして、ＤＭＡＣ１２８は、画像圧縮伸長演算部１２４を制御してＯＰバッファ１２６からビットストリームを読み出す。ＯＰバッファ１２６は、読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図２３参照。）。
【０１２８】
なお、状態Ｄ６において、圧縮画像記録装置１３から読み出したビットストリームをＩＯバッファ１２５に書き込むと共に、ＩＯバッファ１２５から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込むとしてもよい。また、ＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰバッファ１２６に書き込むと共に、ＯＰバッファ１２６からビットストリームを画像圧縮伸長演算部１２４に出力するとしてもよい。
【０１２９】
なお、図２０（ｂ）、図２２（ｂ）に示されるように、ＩＯバッファ１２５からビットストリームを読み出すよりも、ＩＯバッファ１２５にビットストリームを書き込む方が上回ると、残存領域は上書きされる。
【０１３０】
以上説明したように実施の形態１における画像圧縮伸長装置によれば、状態Ｄ１と状態Ｄ４とにおいて、ＩＯバッファ１２５から読み出したビットストリームを、ＶＢＶバッファ１１ｂを経由せずに、ＯＰバッファ１２６に直接書き込むため、画像圧縮伸長システムの性能向上にあたってボトルネックとされているデータ転送、すなわち、主記憶装置１１と画像圧縮伸長装置１０２との間におけるデータ転送を軽減することができる。
【０１３１】
（実施の形態２）
次に、本発明の実施の形態２について図面を参照しながら説明する。なお、実施の形態１の内容と同一の構成要素については同一の符号を付して説明を省略する。
【０１３２】
＜概要＞
本発明の実施の形態２における画像圧縮伸長装置は、ＤＭＡＣにおいて転送要求信号を検知する。
【０１３３】
「転送要求信号」とは、ビットストリームが一時的に格納されるバッファにビットストリームを転送することを要求する信号をいう。
【０１３４】
＜画像圧縮伸長システム＞
図２４は、実施の形態２における画像圧縮伸長システムの構成を示す図である。
【０１３５】
同図に示されるように、画像圧縮伸長システム２００は、画像圧縮伸長装置１０２の代わりに、画像圧縮伸長装置２０２を備える点が異なる。
【０１３６】
＜画像圧縮伸長装置＞
画像圧縮伸長装置２０２は、画像圧縮伸長装置１０２（図１参照。）と比べると、ＤＭＡＣ１２８の代わりに、ＤＭＡＣ２２８を備える点が異なる。
【０１３７】
ＤＭＡＣ２２８は、ＤＭＡＣ１２８と比べると、下記（ａ）、（ｂ）の点が異なる。
（ａ）デコード時には、ＯＰバッファ１２６がフルであり、画像圧縮伸長演算部１２４からＯＰバッファ１２６にアサートされた転送要求信号を検知すると、次のサイクルにおいてＯＰバッファ１２６に空きができると予測する。
【０１３８】
（ｂ）エンコード時には、ＩＯバッファ１２５がフルであり、Ｂ／ＩＦ１２２からＩＯバッファ１２５にアサートされた転送要求信号を検知すると、次のサイクルにおいてＩＯバッファ１２５に空きができると予測する。
【０１３９】
以上説明したように実施の形態２における画像圧縮伸長装置によれば、デコード時には、ＯＰバッファ１２６がフルでなくなった瞬間に空きサイクルを作ることなく転送を継続することができる。エンコード時には、ＩＯバッファ１２５がフルでなくなった瞬間に空きサイクルを作ることなく転送を継続することができる。結果、実質的な転送速度を向上することができる。
【０１４０】
なお、実際に、転送要求信号がアサートされてから実際に転送されるまでの間隔はシステムによって変わり得るため、ＤＭＡＣ２２８の制御設定は、この間隔に依存することとなる。
【０１４１】
（実施の形態３）
次に、本発明の実施の形態３について図面を参照しながら説明する。なお、実施の形態１の内容と同一の構成要素については同一の符号を付して説明を省略する。
【０１４２】
＜概要＞
本発明の実施の形態３における画像圧縮伸長装置は、論理的に二つの領域に分割されているバッファを有する。さらに、セレクタを二つ有し、これらのセレクタがバッファを挟むようにして夫々配置されている。
【０１４３】
これらのセレクタは、夫々、バッファと接続されており、また、互いに接続されている。そして、（ａ）バッファを経由する経路、（ｂ）バッファを経由しない経路のうちのいずれかの転送経路を選択するように制御される。
【０１４４】
＜画像圧縮伸長システム＞
図２５は、実施の形態３における画像圧縮伸長システムの構成を示す図である。
【０１４５】
同図に示されるように、画像圧縮伸長システム３００は、画像圧縮伸長装置１０２の代わりに、画像圧縮伸長装置３０２を備える点が異なる。
【０１４６】
＜画像圧縮伸長装置＞
画像圧縮伸長装置３０２は、画像圧縮伸長装置１０２（図１参照。）と比べると、下記（ａ）〜（ｃ）の点が異なる。
【０１４７】
（ａ）ＩＯバッファ１２５、ＯＰバッファ１２６の代わりに、統合化バッファ３２５を備える。
【０１４８】
統合化バッファ３２５は、（ａ）物理的には、出力ポートと入力ポートとを有する一つのバッファであり、（ｂ）論理的には、ＩＯ領域とＯＰ領域とに分割されているバッファである。
【０１４９】
ＩＯ領域は、圧縮画像記録装置１３と主記憶装置１１との間において転送されるビットストリームが先入れ先出し方式に基づいて格納される領域である。
【０１５０】
ＯＰ領域は、画像圧縮伸長演算部１２４と主記憶装置１１との間において転送されるビットストリームが先入れ先出し方式に基づいて格納される領域である。
【０１５１】
（ｂ）新たに、選択部３２６、３２７を備える。
選択部３２６、３２７は、ＤＭＡＣ３２８による制御に応じて、バス制御部１２１、Ｂ／ＩＦ１２２、画像圧縮伸長演算部１２４の間における転送経路を選択する。
【０１５２】
（ｃ）ＤＭＡＣ１２８の代わりに、ＤＭＡＣ３２８を備える。
ＤＭＡＣ３２８は、統合化バッファ３２５の空き容量に応じて選択部３２６、３２７を制御する。
【０１５３】
＜選択部＞
図２６（ａ）は、バス制御部と接続されている選択部の内部結線を示す図であり、（ｂ）は、一例として、選択部のハードウェア構成を示す図であり、（ｃ）は、Ｂ／ＩＦと画像圧縮伸長演算部と接続されている選択部の内部結線を示す図であり、（ｄ）は、一例として、選択部のハードウェア構成を示す図である。
【０１５４】
図２６（ａ）に示されるように、選択部３２６は、バス制御部１２１、統合化バッファ３２５、選択部３２７のうちの二者を選択して接続するようにフルメッシュで内部結線されている。
【０１５５】
図２６（ｂ）に示されるように、ここでは、一例として、選択部３２６は、伝達ゲート３２６ａ、３２６ｂ、３２６ｃとから構成されている。三つの伝達ゲートを用いて三つの経路が選択される。
【０１５６】
伝達ゲート３２６ａは、一端がバス制御部１２１と接続され、もう一端が統合化バッファ３２５と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、バス制御部１２１と統合化バッファ３２５との間における導通状態と非導通状態とのいずれかに切り替える。
【０１５７】
伝達ゲート３２６ｂは、一端がバス制御部１２１と接続され、もう一端が選択部３２７と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、バス制御部１２１と選択部３２７との間における導通状態と非導通状態とのいずれかに切り替える。
【０１５８】
伝達ゲート３２６ｃは、一端が統合化バッファ３２５と接続され、もう一端が選択部３２７と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、統合化バッファ３２５と選択部３２７との間における導通状態と非導通状態とのいずれかに切り替える。
【０１５９】
図２６（ｃ）に示されるように、選択部３２７は、Ｂ／ＩＦ１２２、画像圧縮伸長演算部１２４、統合化バッファ３２５、選択部３２７のうちの二者を選択して接続するようにフルメッシュで内部結線されている。
【０１６０】
図２６（ｄ）に示されるように、ここでは、一例として、選択部３２７は、伝達ゲート３２７ａ、３２７ｂ、３２７ｃ、３２７ｄとから構成されている。また、四つの伝達ゲートを用いて四つの経路が選択される。
【０１６１】
伝達ゲート３２７ａは、一端がＢ／ＩＦ１２２と接続され、もう一端が統合化バッファ３２５と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、Ｂ／ＩＦ１２２と統合化バッファ３２５との間における導通状態と非導通状態とのいずれかに切り替える。
【０１６２】
伝達ゲート３２７ｂは、一端がＢ／ＩＦ１２２と接続され、もう一端が選択部３２６と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、Ｂ／ＩＦ１２２と選択部３２６との間における導通状態と非導通状態とのいずれかに切り替える。
【０１６３】
伝達ゲート３２７ｃは、一端が画像圧縮伸長演算部１２４と接続され、もう一端が選択部３２６と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、画像圧縮伸長演算部１２４と選択部３２６との間における導通状態と非導通状態とのいずれかに切り替える。
【０１６４】
伝達ゲート３２７ｄは、一端が画像圧縮伸長演算部１２４と接続され、もう一端が統合化バッファ３２５と接続されている。さらに、ゲート端子がＤＭＡＣ３２８と接続されている。そして、ＤＭＡＣ３２８からの制御に応じて、画像圧縮伸長演算部１２４と統合化バッファ３２５との間における導通状態と非導通状態とのいずれかに切り替える。
【０１６５】
＜接続形態＞
ここで、選択部３２６，３２７による接続形態について説明する。
【０１６６】
図２７〜図２９は、バス制御部、Ｂ／ＩＦ、画像圧縮伸長演算部、統合化バッファの間の接続形態を示す概要図である。
【０１６７】
＜接続形態１＞
図２７（ａ）に示されるように、ＤＭＡＣ３２８は、主記憶装置１１と圧縮画像記録装置１３との間でビットストリームを転送する場合には、選択部３２６、３２７を制御して、（１）バス制御部１２１と統合化バッファ３２５とを接続し、（２）Ｂ／ＩＦ１２２と統合化バッファ３２５とを接続する（接続形態１）。
【０１６８】
＜接続形態２＞
図２７（ｂ）に示されるように、ＤＭＡＣ３２８は、主記憶装置１１と画像圧縮伸長演算部１２４との間でビットストリームを転送する場合には、選択部３２６、３２７を制御して、（１）バス制御部１２１と統合化バッファ３２５とを接続し、（２）画像圧縮伸長演算部１２４と統合化バッファ３２５とを接続する（接続形態２）。
【０１６９】
＜接続形態３＞
図２８（ａ）に示されるように、ＤＭＡＣ３２８は、デコード時において、ＶＢＶバッファ１１ｂがヌルでなく、かつ統合化バッファ３２５のＯＰ領域がヌルであり、かつＩＯ領域がフルでない場合には、選択部３２６、３２７を制御して、（１）バス制御部１２１と画像圧縮伸長演算部１２４とを接続し、（２）Ｂ／ＩＦ１２２と統合化バッファ３２５とを接続する（接続形態３）。
【０１７０】
なお、この場合においては、圧縮画像記録装置１３から読み出したビットストリームを統合化バッファ３２５のＩＯ領域に書き込み、並行して、ＶＢＶバッファ１１ｂから読み出したビットストリームを画像圧縮伸長演算部１２４に入力する。
【０１７１】
＜接続形態４＞
図２８（ｂ）に示されるように、ＤＭＡＣ３２８は、エンコード時において、ＶＢＶバッファ１１ｂがヌルでなく、かつ統合化バッファ３２５のＩＯ領域がヌルであり、かつＯＰ領域がフルでない場合には、選択部３２６、３２７を制御して、（１）バス制御部１２１とＢ／ＩＦ１２２とを接続し、（２）画像圧縮伸長演算部１２４と統合化バッファ３２５とを接続する（接続形態４）。
【０１７２】
なお、この場合においては、画像圧縮伸長演算部１２４から出力されたビットストリームを統合化バッファ３２５のＯＰ領域に書き込み、並行して、ＶＢＶバッファ１１ｂから読み出したビットストリームを圧縮画像記録装置１３に書き込む。
【０１７３】
＜接続形態５＞
図２９（ａ）に示されるように、ＤＭＡＣ３２８は、デコード時において、下記（５−１）、（５−２）の場合には、選択部３２６、３２７を制御して、（１）Ｂ／ＩＦ１２２と統合化バッファ３２５とを接続し、（２）画像圧縮伸長演算部１２４と統合化バッファ３２５とを接続する（接続形態５）。
【０１７４】
（５−１）ＶＢＶバッファ１１ｂがヌルであり、かつ統合化バッファ３２５のＩＯ領域がヌルであり、かつＯＰ領域がフルでない。
【０１７５】
この場合においては、圧縮画像記録装置１３から読み出したビットストリームを統合化バッファ３２５のＩＯ領域ではなく、ＯＰ領域に直接書き込み、並行して、ＯＰ領域から読み出したビットストリームを画像圧縮伸長演算部１２４に書き込む。
【０１７６】
（５−２）ＶＢＶバッファ１１ｂがヌルであり、かつ統合化バッファ３２５のＩＯ領域がフルでない。
【０１７７】
この場合においては、圧縮画像記録装置１３から読み出したビットストリームを統合化バッファ３２５のＩＯ領域に書き込み、並行して、ＯＰ領域から読み出したビットストリームを画像圧縮伸長演算部１２４に書き込む。
【０１７８】
＜接続形態６＞
図２９（ｂ）に示されるように、ＤＭＡＣ３２８は、エンコード時において、下記（６−１）、（６−２）の場合には、選択部３２６、３２７を制御して、（１）Ｂ／ＩＦ１２２と統合化バッファ３２５とを接続し、（２）画像圧縮伸長演算部１２４と統合化バッファ３２５とを接続する（接続形態６）。
【０１７９】
（６−１）ＶＢＶバッファ１１ｂがヌルであり、かつ統合化バッファ３２５のＯＰ領域がヌルであり、かつＩＯ領域がフルでない。
【０１８０】
この場合においては、画像圧縮伸長演算部１２４から出力されたビットストリームを、統合化バッファ３２５のＯＰ領域ではなく、ＩＯ領域に直接書き込み、並行して、ＩＯ領域から読み出したビットストリームを圧縮画像記録装置１３に書き込む。
【０１８１】
（６−２）ＶＢＶバッファ１１ｂがヌルであり、かつ統合化バッファ３２５のＯＰ領域がフルでない。
【０１８２】
この場合においては、画像圧縮伸長演算部１２４から出力されたビットストリームを統合化バッファのＯＰ領域に書き込み、並行して、ＩＯ領域から読み出したビットストリームを圧縮画像記録装置１３に書き込む。
【０１８３】
以下、話を簡潔にするために、ＤＭＡＣ３２８は、接続形態１と接続形態２とのいずれかに接続形態を設定してビットストリームを転送するものとする。
【０１８４】
もちろん、ＤＭＡＣ３２８は、デコード時には、接続形態３と接続形態５とのいずれかに接続形態を設定してビットストリームを転送するとしてもよい。また、エンコード時には、接続形態４と接続形態６とのいずれかに接続形態を設定してビデオ信号を転送するとしてもよい。
【０１８５】
ただし、統合化バッファ３２５のポート数の制限により、下記（ａ）、（ｂ）の接続形態をとることができない。
【０１８６】
（ａ）統合化バッファ３２５に対するバス制御部１２１、Ｂ／ＩＦ１２２、及び画像圧縮伸長演算部１２４の同時接続はできない。
【０１８７】
（ｂ）統合化バッファ３２５のＩＯ領域とＯＰ領域の両方に対するバス制御部１２１の同時接続はできない。
【０１８８】
なお、（ｂ）については、主記憶装置１１へのアクセスバスが１系統しかないため、性能低下要因にはならない。
【０１８９】
＜動作＞
続いて、以上のように構成された画像圧縮伸長装置の動作について説明する。
【０１９０】
ここでは、主として、下記（ａ）、（ｂ）の場合について説明する。
（ａ）Ｂ／ＩＦ１２２を介して圧縮画像記録装置１３から読み出したビットストリームを、画像圧縮伸長演算部１２４においてビデオ信号にデコードする。そして、デコード後のビデオ信号をＰ／ＩＦ１２３を介して画像入出力装置１４に出力する（以下、デコード時と呼称する。）。
【０１９１】
（ｂ）Ｐ／ＩＦ１２３を介して画像入出力装置１４から入力されたビデオ信号を、画像圧縮伸長演算部１２４においてビットストリームにエンコードする。そして、エンコード後のビットストリームをＢ／ＩＦ１２２を介して圧縮画像記録装置１３に書き込む（以下、エンコード時と呼称する。）。
【０１９２】
＜デコード時＞
図３０は、実施の形態３における画像圧縮伸長装置のデコード時の動作を示す図である。
【０１９３】
同図に示されるように、ＤＭＡＣ３２８は、論理表３４０（図３１参照。）に応じて、下記（ａ）〜（ｄ）のいずれかを実行する（ステップＳ３１１）。
【０１９４】
（ａ）ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＯＰ領域に直接書き込む（ステップＳ３１２）。
【０１９５】
（ｂ）ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３１３）。ＩＯ領域から読み出したビットストリームをＯＰ領域に書き込む（ステップＳ３１４）。
【０１９６】
（ｃ）ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３１５）。ＩＯ領域から読み出したビットストリームをＯＰ領域に書き込む（ステップＳ３１６）。さらに、バス制御部１２１を制御してＩＯ領域から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ３１７）。
【０１９７】
（ｄ）ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３１８）。バス制御部１２１を制御してＩＯ領域から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ３１９）。さらに、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＯＰ領域に書き込む（ステップＳ３２０）。
【０１９８】
そして、ＤＭＡＣ３２８は、ＯＰ領域から読み出したビットストリームを画像圧縮伸長演算部１２４においてビデオ信号にデコードする（ステップＳ１４）。バス制御部１２１を制御して画像圧縮伸長演算部１２４においてビットストリームからデコードされたビデオ信号をフレームメモリ１１ａに書き込む（ステップＳ１５）。バス制御部１２１を制御してフレームメモリ１１ａから読み出されたビデオ信号を画像データバッファ１２７に書き込む（ステップＳ１６）。Ｐ／ＩＦを制御して画像データバッファ１２７から読み出したビデオ信号を画像入出力装置１４に出力する（ステップＳ１７）。
【０１９９】
図３１は、実施の形態３における画像圧縮伸長装置のデコード時の状態遷移に係る論理表を示す図である。
【０２００】
同図に示されるように、論理表３４０は、状態（カラム３４１）、ＶＢＶバッファ１１ｂの保持状態（カラム３４２）、ＯＰ領域の保持状態（カラム３４３）、ＩＯ領域の保持状態（カラム３４４）、Ｂ／ＩＦ１２２から画像圧縮伸長演算部１２４までの転送経路（カラム１４５）、ＩＯ領域の各ポインタの遷移（カラム１４６）、ＶＢＶバッファ１１ｂの各ポインタの遷移（カラム１４７）、ＯＰ領域の各ポインタの遷移（カラム１４８）が示されている。
【０２０１】
＜エンコード時＞
図３２は、実施の形態３における画像圧縮伸長装置のエンコード時の動作を示す図である。
【０２０２】
同図に示されるように、ＤＭＡＣ３２８は、Ｐ／ＩＦ１２３を制御して画像入出力装置１４から入力されたビデオ信号を画像データバッファ１２７に書き込む（ステップＳ２１）。バス制御部１２１を制御して画像データバッファ１２７から読み出したビデオ信号をフレームメモリ１１ａに書き込む（ステップＳ２２）。バス制御部１２１を制御してフレームメモリ１１ａから読み出したビデオ信号を画像圧縮伸長演算部１２４においてビットストリームにエンコードする（ステップＳ２３）。論理表３５０（図３３参照。）に応じて、下記（ａ）〜（ｄ）のいずれかを実行する（ステップＳ３２１）。
【０２０３】
（ａ）ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４においてビデオ信号からエンコードされたビットストリームをＩＯ領域に直接書き込む（ステップＳ３２２）。
【０２０４】
（ｂ）ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４においてビデオ信号からエンコードされたビットストリームをＯＰ領域に書き込む（ステップＳ３２３）。ＯＰ領域から読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３２４）。
【０２０５】
（ｃ）ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４においてビデオ信号からエンコードされたビットストリームをＯＰ領域に書き込む（ステップＳ３２５）。ＯＰ領域から読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３２６）。さらに、バス制御部１２１を制御してＯＰ領域から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ３２７）。
【０２０６】
（ｄ）ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４においてビデオ信号からエンコードされたビットストリームをＯＰ領域に書き込む（ステップＳ３２８）。バス制御部１２１を制御してＯＰ領域から読み出したビットストリームをＶＢＶバッファ１１ｂに書き込む（ステップＳ３２９）。さらに、バス制御部１２１を制御してＶＢＶバッファ１１ｂから読み出したビットストリームをＩＯ領域に書き込む（ステップＳ３３０）。
【０２０７】
そして、ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御してＩＯ領域から読み出したビットストリームを圧縮画像記録装置１３に書き込む（ステップＳ２７）。
【０２０８】
図３３は、実施の形態３における画像圧縮伸長装置のエンコード時の状態遷移に係る論理表を示す図である。
【０２０９】
同図に示されるように、論理表３５０は、状態（カラム３５１）、ＶＢＶバッファ１１ｂの保持状態（カラム３４２）、ＩＯ領域の保持状態（カラム３５３）、ＯＰ領域の保持状態（カラム３５４）、画像圧縮伸長演算部１２４からＢ／ＩＦ１２２までの転送経路（カラム３５５）、ＯＰ領域の各ポインタの遷移（カラム３５６）、ＶＢＶバッファ１１ｂの各ポインタの遷移（カラム１５７）、ＩＯ領域の各ポインタの遷移（カラム３５８）が示されている。
【０２１０】
＜動作例＞
ここで、実施の形態３における画像圧縮伸長装置３０２の動作例について説明する。なお、論理表３４０、３５０を比べると、エンコード時の転送経路は、デコード時の転送経路の逆である。以下、話を簡潔にするために、デコード時の場合についてのみ説明し、エンコード時の場合については説明を省略する。
【０２１１】
なお、状態Ｄ３〜状態Ｄ６については、実施の形態１における状態Ｄ３〜状態Ｄ６（図７参照。）と同一の状態により説明を省略する。
【０２１２】
＜状態遷移＞
図３４は、実施の形態３における画像圧縮伸長装置においてデコード時の状態遷移を示すステートマシン図である。
【０２１３】
同図に示されるように、まず、初期状態から状態ＤＡに遷移する。
状態ＤＡにおいて、（ａ）ＯＰ領域がフルである場合には（ＯＰ領域＝ＦＵＬＬ）、状態ＤＢに遷移し、（ｂ）ＩＯ領域がヌルでない場合には（ＩＯ領域≠ＮＵＬＬ）、状態Ｄ１に遷移する。
【０２１４】
状態ＤＢにおいて、（ａ）ＯＰ領域がヌルでない（ＯＰ領域≠ＮＵＬＬ）場合には、状態ＤＡに遷移し、（ｂ）ＩＯ領域がヌルでない（ＩＯ領域≠ＮＵＬＬ）場合には、状態Ｄ２に遷移する。
【０２１５】
状態Ｄ１において、（ａ）ＩＯ領域がヌルである（ＩＯ領域＝ＮＵＬＬ）場合には、状態ＤＡに遷移し、（ｂ）ＯＰ領域がフルである（ＯＰ領域＝ＦＵＬＬ）場合には、状態Ｄ２に遷移する。
【０２１６】
状態Ｄ２において、（ａ）ＩＯ領域がヌルである（ＩＯ領域＝ＮＵＬＬ）場合には、状態ＤＢに遷移し、（ｂ）ＯＰ領域がフルでない（ＯＰ領域≠ＦＵＬＬ）場合には、状態Ｄ１に遷移する。
【０２１７】
＜アドレス遷移＞
図３５〜図３８は、状態ＤＡ、状態ＤＢにおける統合化バッファ、ＶＢＶバッファのアドレス遷移を示す概要図である。
【０２１８】
なお、図中において、太枠で囲まれている領域は、バッファを表している。
また、統合化バッファ３２５のＩＯ＿ＬＢからＩＯ＿ＵＢまでの領域は、ＩＯ領域であり、ＯＰ＿ＬＢからＯＰ＿ＵＢまでの領域は、ＯＰ領域である。
【０２１９】
また、各バッファにおいて、黒塗りの三角形は、書き込みポインタ（ＶＢＶ＿ＷＰ、ＩＯ＿ＷＰ、ＯＰ＿ＷＰ）を示し、白塗りの三角形は、読み出しポインタ（ＶＢＶ＿ＲＰ、ＩＯ＿ＲＰ、ＯＰ＿ＲＰ）を示す。
【０２２０】
また、ＩＯ領域において、数字の「１」が中に記されている白塗りの三角形は、第１の読み出しポインタ（ＩＯ＿ＲＰ１）を示し、数字の「２」が中に記されている白塗りの三角形は、第２の読み出しポインタ（ＩＯ＿ＲＰ２）を示す。
【０２２１】
また、黒塗りの矢印は、バッファに書き込まれたことを示し、白塗りの矢印は、バッファから読み出されたことを示す。
【０２２２】
なお、状態Ｄ１〜状態Ｄ６は、ＩＯバッファをＩＯ領域に、ＯＰバッファをＯＰ領域に読み替えれば、実施の形態１における各アドレス遷移（図８〜図２３参照。）と同一により説明を省略する。
【０２２３】
＜状態ＤＡ＞
図３５、図３６に示されるように、状態ＤＡ（図３１、図３４参照。）においては、ＩＯ領域がヌルであり、ＯＰ領域がフルではなく、ＶＢＶバッファがヌルであるため（図３５（ａ）参照。）、ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＯＰ領域に直接書き込む。統合化バッファ３２５は、ＯＰ領域に書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図３５（ｂ）参照。）。
【０２２４】
そして、ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４を制御してＯＰ領域からビットストリームを読み出す。これに伴い、統合化バッファ３２５は、ＯＰ領域から読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図３６参照。）。
【０２２５】
＜状態ＤＢ＞
図３７、図３８に示されるように、状態ＤＢ（図３１、図３４参照。）においては、ＩＯ領域がヌルであり、ＯＰ領域がフルであり、ＶＢＶバッファ１１ｂがヌルであるため（図３７（ａ）参照。）、ＤＭＡＣ３２８は、Ｂ／ＩＦ１２２を制御して圧縮画像記録装置１３から読み出したビットストリームをＩＯ領域に書き込む。これに伴い、統合化バッファ３２５は、ＩＯ領域に書き込まれたビットストリームのサイズ分、ＩＯ＿ＷＰを進める（図３７（ｂ）参照。）。
【０２２６】
さらに、ＤＭＡＣ３２８は、画像圧縮伸長演算部１２４を制御してＯＰ領域からビットストリームを読み出す。これに伴い、統合化バッファ３２５は、ＯＰ領域から読み出されたビットストリームのサイズ分、ＯＰ＿ＲＰを進める（図３８（ａ）参照。）。
【０２２７】
そして、ＤＭＡＣ３２８は、ＩＯ領域から読み出したビットストリームをＯＰ領域に書き込む。これに伴い、ＩＯ領域は、読み出されたビットストリームのサイズ分、ＩＯ＿ＲＰ１，ＩＯ＿ＲＰ２を進め、ＯＰ領域は、書き込まれたビットストリームのサイズ分、ＯＰ＿ＷＰを進める（図３８（ｂ）参照。）。
【０２２８】
以上説明したように実施の形態３における画像圧縮伸長装置によれば、接続形態１、接続形態２（図２７（ａ）、（ｂ）参照。）において、主記憶装置１１と圧縮画像記録装置１３との間におけるビットストリームの転送と、主記憶装置１１と画像圧縮伸長演算部１２４との間におけるビットストリームの転送とを並行して実行することはできない。しかし、ビットストリームの転送においては、主記憶装置１１へのアクセス頻度が高くないため、この制限は性能低下にはつながらない。バス制御部１２１が主記憶装置１１に対するバスアクセスの空き領域を監視し、空きサイクルにおいて統合化バッファ３２５にビットストリームを充填する機能を実装することにより、実際に、ビットストリームが要求されるよりも早く、ビットストリームを先読みすることもできる。一方、接続形態３、接続形態４（図２７（ｃ）、（ｄ）参照。）において、ＶＢＶバッファ１１ｂがヌルである場合には、主記憶装置１１へのアクセスが回避されるため、主記憶装置１１に対するバスアクセスに関するボトルネックを解消することができる。
【０２２９】
（その他）
なお、実施の形態１において、ビットストリームをビデオ信号に、フレームメモリをＶＢＶバッファに読み替えて、圧縮画像記録装置を画像入出力装置に、Ｂ／ＩＦをＰ／ＩＦに、ＩＯバッファを画像データバッファに置き換えた構成としてもよい。そして、実施の形態１におけるＩＯバッファとＯＰバッファとの様に、この置き換えた構成において、画像データバッファとＯＰバッファとの間で、ビデオ信号が直接転送される様に接続され、主記憶装置を経由せずに、Ｐ／ＩＦと画像圧縮伸長演算部との間でビデオ信号が転送されるとしてもよい。ここで、画像圧縮伸長演算部に入力されるビデオ信号、または画像圧縮伸長演算部から出力されたビデオ信号がＯＰバッファに格納される。
【０２３０】
なお、実施の形態２において、ビットストリームをビデオ信号に、フレームメモリをＶＢＶバッファに読み替えて、圧縮画像記録装置を画像入出力装置に、Ｂ／ＩＦをＰ／ＩＦに、ＩＯバッファを画像データバッファに置き換えた構成としてもよい。そして、実施の形態２におけるＤＭＡＣの様に、この置き換えた構成において、（ａ）エンコード時には、画像圧縮伸長演算部とＯＰバッファとを繋ぐラインにおいて、画像圧縮伸長演算部からＯＰバッファにアサートされた転送要求信号を検知する。ＯＰバッファがフルである場合において転送要求信号を検知すると、次のサイクルにおいてＯＰバッファに空きができると予測する。（ｂ）デコード時には、Ｐ／ＩＦと画像データバッファとを繋ぐラインにおいて、Ｐ／ＩＦから画像データバッファにアサートされた転送要求信号を検知する。画像データバッファがフルである場合において転送要求信号を検知すると、次のサイクルにおいて画像データバッファに空きができると予測する。
【０２３１】
なお、実施の形態３において、ビットストリームをビデオ信号に、フレームメモリをＶＢＶバッファに読み替えて、圧縮画像記録装置を画像入出力装置に、Ｂ／ＩＦをＰ／ＩＦに、統合化バッファを画像データバッファに置き換えた構成としてもよい。そして、実施の形態３における統合化バッファの様に、この置き換えた構成において、画像データバッファを論理的に二つの領域に分割されたバッファとして扱い、主記憶装置を経由せずに、Ｐ／ＩＦと画像圧縮伸長演算部との間でビデオ信号が転送されるとしてもよい。ここで、画像圧縮伸長演算部に入力されるビデオ信号、または画像圧縮伸長演算部から出力されたビデオ信号が画像データバッファに格納される。
【０２３２】
なお、主記憶装置は、画像圧縮伸長装置と一緒にシステムＬＳＩに集積化されるとしてもよい。
【０２３３】
なお、本発明は、画像圧縮伸長装置に限定されるものではなく、暗号化・復号装置、符号化・復号装置、信号変換装置等に適用することができる。
【０２３４】
ここで、暗号化・復号装置は、画像圧縮伸長演算部の代わりに、平文を暗号文に暗号化し、暗号文を平文に復号する暗号化・復号部を備える装置である。
【０２３５】
また、符号化・復号装置は、画像圧縮伸長演算部の代わりに、第１種データを第２種データに符号化し、第２種データを第１種データに復号する符号化・復号部を備える装置である。
【０２３６】
また、信号変換装置は、画像圧縮伸長演算部の代わりに、パラレル信号をシリアル信号に変換し、シリアル信号をパラレル信号に変換する信号変換部を備える装置である。
【０２３７】
なお、画像圧縮伸長装置は、フルカスタムＬＳＩ（Large Scale Integration）によって実現されるとしてもよい。また、ＡＳＩＣ（Application Specific Integrated Circuit）等のようなセミカスタムＬＳＩによって実現されるとしてもよい。また、ＦＰＧＡ（Field Programmable Gate Array）、ＣＰＬＤ（Complex Programmable Logic Device）等のようなプログラマブル・ロジック・デバイスによって実現されるとしてもよい。また、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスとして実現されるとしてもよい。
【０２３８】
さらに、画像圧縮伸長装置を構成する１乃至２以上の機能を、これ等のＬＳＩに形成する設計データは、ＶＨＤＬ（Very high speed integrated circuit Hardware Description Language）、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＣ等のようなハードウェア記述言語によって記述されたプログラム（以下、ＨＤＬプログラムと呼称する。）としてもよい。また、ＨＤＬプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。
【０２３９】
さらに、設計データは、コンピュータシステム、組み込みシステム等のようなハードウェアシステムに読み出され得るように、光学記録媒体（例えば、ＣＤ−ＲＯＭ等。）、磁気記録媒体（例えば、ハードディスク等。）、光磁気記録媒体（例えば、ＭＯ等。）、半導体メモリ（例えば、ＲＡＭ等。）等のようなコンピュータ読み取り可能な記録媒体に記録しておくとしてもよい。そして、記録媒体を介して他のハードウェアタシステムに読み取られた設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。
【０２４０】
または、設計データは、ネットワーク等のような伝送路を経由して他のハードウェアシステムに取得され得るように、伝送路上のハードウェアシステムに保持しておくとしてもよい。さらに、ハードウェアシステムから伝送路を介して他のハードウェアタシステムに取得された設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。
【０２４１】
または、論理合成、配置、配線された設計データは、通電時にＦＰＧＡに転送され得るように、シリアルＲＯＭに記録しておくとしてもよい。そして、シリアルＲＯＭに記録された設計データは、通電時に、直接、ＦＰＧＡにダウンロードされるとしてもよい。
【産業上の利用可能性】
【０２４２】
本発明は、高速にデータ転送を行うシステムＬＳＩとして、特に、ディジタルＴＶ、ディジタルビデオカメラ、ディジタルビデオレコーダ、携帯電話等において、ビットストリームをデコードする際、またはビデオ信号をエンコードする際に、高速にデータ転送を行うシステムＬＳＩ等として、利用することができる。
【図面の簡単な説明】
【０２４３】
【図１】実施の形態１における画像圧縮伸長システムの構成を示す図である。
【図２】一例として、ＶＢＶの保持状態の変遷を示す概要図である。
【図３】実施の形態１における画像圧縮伸長装置のデコード時の動作を示す図である。
【図４】実施の形態１における画像圧縮伸長装置のデコード時の状態遷移に係る論理表を示す図である。
【図５】実施の形態１における画像圧縮伸長装置のエンコード時の処理を示す図である。
【図６】実施の形態１における画像圧縮伸長装置のエンコード時の状態遷移に係る論理表を示す図である。
【図７】実施の形態１における画像圧縮伸長装置のデコード時の状態遷移を示すステートマシン図である。
【図８】状態Ｄ１におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図９】状態Ｄ１におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図１０】状態Ｄ２におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図１１】状態Ｄ２におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図１２】状態Ｄ２におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第３の概要図である。
【図１３】状態Ｄ３におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図１４】状態Ｄ３におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図１５】状態Ｄ３におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第３の概要図である。
【図１６】状態Ｄ４におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図１７】状態Ｄ４におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図１８】状態Ｄ５におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図１９】状態Ｄ５におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図２０】状態Ｄ５におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第３の概要図である。
【図２１】状態Ｄ６におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図２２】状態Ｄ６におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図２３】状態Ｄ６におけるＩＯバッファ、ＯＰバッファ、ＶＢＶバッファのアドレス遷移を示す第３の概要図である。
【図２４】実施の形態２における画像圧縮伸長システムの構成を示す図である。
【図２５】実施の形態３における画像圧縮伸長システムの構成を示す図である。
【図２６】（ａ）は、バス制御部と接続されている選択部の内部結線を示す図であり、（ｂ）は、一例として、選択部のハードウェア構成を示す図であり、（ｃ）は、Ｂ／ＩＦと画像圧縮伸長演算部と接続されている選択部の内部結線を示す図であり、（ｄ）は、一例として、選択部のハードウェア構成を示す図である。
【図２７】バス制御部、Ｂ／ＩＦ、画像圧縮伸長演算部、統合化バッファの間の接続形態を示す第１の概要図である。
【図２８】バス制御部、Ｂ／ＩＦ、画像圧縮伸長演算部、統合化バッファの間の接続形態を示す第２の概要図である。
【図２９】バス制御部、Ｂ／ＩＦ、画像圧縮伸長演算部、統合化バッファの間の接続形態を示す第３の概要図である。
【図３０】実施の形態３における画像圧縮伸長装置のデコード時の動作を示す図である。
【図３１】実施の形態３における画像圧縮伸長装置のデコードする際の状態遷移に係る論理表を示す図である。
【図３２】実施の形態３における画像圧縮伸長装置のエンコード時の動作を示す図である。
【図３３】実施の形態３における画像圧縮伸長装置のエンコード時の状態遷移に係る論理表を示す図である。
【図３４】実施の形態３における画像圧縮伸長装置においてデコード時の状態遷移を示すステートマシン図である。
【図３５】状態ＤＡにおける統合化バッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図３６】状態ＤＡにおける統合化バッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図３７】状態ＤＢにおける統合化バッファ、ＶＢＶバッファのアドレス遷移を示す第１の概要図である。
【図３８】状態ＤＢにおける統合化バッファ、ＶＢＶバッファのアドレス遷移を示す第２の概要図である。
【図３９】従来の画像圧縮伸長システムの構成を示す図である。
【符号の説明】
【０２４４】
１０  画像圧縮伸長システム
１１  主記憶装置
１１ａ  フレームメモリ
１１ｂ  ＶＢＶバッファ
１１ｃ  作業用記憶領域
１２  画像圧縮伸長装置
１３  圧縮画像記録装置
１４  画像入出力装置
１００，２００，３００  画像圧縮伸長システム
１０２，２０２，３０２  画像圧縮伸長装置
１２１  バス制御部
１２２  Ｂ／ＩＦ
１２３  Ｐ／ＩＦ
１２４  画像圧縮伸長演算部
１２５  ＩＯバッファ
１２６  ＯＰバッファ
１２７  画像データバッファ
１２８，２２８，３２８  ＤＭＡＣ
１２９  ＣＰＵ
３２５  統合化バッファ
３２６，３２７  選択部
【図１】
2006140741.tif 000003
【図２】
2006140741.tif 000004
【図３】
2006140741.tif 000005
【図４】
2006140741.tif 000006
【図５】
2006140741.tif 000007
【図６】
2006140741.tif 000008
【図７】
2006140741.tif 000009
【図８】
2006140741.tif 000010
【図９】
2006140741.tif 000011
【図１０】
2006140741.tif 000012
【図１１】
2006140741.tif 000013
【図１２】
2006140741.tif 000014
【図１３】
2006140741.tif 000015
【図１４】
2006140741.tif 000016
【図１５】
2006140741.tif 000017
【図１６】
2006140741.tif 000018
【図１７】
2006140741.tif 000019
【図１８】
2006140741.tif 000020
【図１９】
2006140741.tif 000021
【図２０】
2006140741.tif 000022
【図２１】
2006140741.tif 000023
【図２２】
2006140741.tif 000024
【図２３】
2006140741.tif 000025
【図２４】
2006140741.tif 000026
【図２５】
2006140741.tif 000027
【図２６】
2006140741.tif 000028
【図２７】
2006140741.tif 000029
【図２８】
2006140741.tif 000030
【図２９】
2006140741.tif 000031
【図３０】
2006140741.tif 000032
【図３１】
2006140741.tif 000033
【図３２】
2006140741.tif 000034
【図３３】
2006140741.tif 000035
【図３４】
2006140741.tif 000036
【図３５】
2006140741.tif 000037
【図３６】
2006140741.tif 000038
【図３７】
2006140741.tif 000039
【図３８】
2006140741.tif 000040
【図３９】
2006140741.tif 000041