(57)【要約】【課題】  ラスタフォーマットとブロックフォーマットとの間の画像データを相互変換する画像処理装置及び方法を提供する。【解決手段】  ラスタフォーマットとブロックフォーマットとの間の画像データを相互変換する画像処理装置及び方法は、特に、ラスタフォーマットをブロックフォーマットに転換する時に、カメラプロセッサで発生した画像データを各色成分別に分離して一つのラインメモリに貯蔵した後に、ブロックフォーマットに読み出しに適する順序にブロック単位に読み出してＪＰＥＧエンジンに伝達する。一つの統合ラインメモリを使用するので、メモリの大きさを減らすことができ、これによって、チップサイズを減少させることができる。【選択図】  図４
2004159330.tif 000002
【特許請求の範囲】
【請求項１】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理装置において、
所定の水平解像度及び垂直解像度を有するラスタスキャン順序の画像データを供給する画像データ処理器と、
複数のラインの画像データを貯蔵するためのラインメモリと、
前記ラインメモリに対する共通読み出し／書き込みアドレスを発生するアドレス発生ブロックと、
前記ラインメモリからブロックスキャン順序の画像データが伝達されるエンコーダとを含み、
前記アドレス発生ブロックは、
画像データの読み出し及び書き込みが行われるブロックのアドレスを発生するブロックアドレス発生器と、
前記ラインメモリに対する以前の共通読み出し／書き込みアドレスと現在の共通読み出し／書き込みアドレスとの間のラインオフセットを提供するラインオフセット発生器と、
前記ブロックアドレスと前記ラインオフセットに基づいて前記ラインメモリに対する前記共通読み出し／書き込みアドレスを発生するアドレス発生器とを含むことを特徴とする画像データ処理装置。
【請求項２】
前記エンコーダはＪＰＥＧエンジンであることを特徴とする請求項１に記載の画像データ処理装置。
【請求項３】
前記ブロックは{複数の水平方向ピクセル（ｈ）＊複数の垂直方向ピクセル（ｖ）}の画像データを含むことを特徴とする請求項２に記載の画像データ処理装置。
【請求項４】
前記ブロックアドレス発生器は、
前記ラインメモリに対する現在のブロックの始まりアドレスと次のブロックの始まりアドレスとの間のオフセットであるブロックオフセットをさらに提供することを特徴とする請求項３に記載の画像データ処理装置。
【請求項５】
前記ブロックオフセットは初期に１に設定されることを特徴とする請求項４に記載の画像データ処理装置。
【請求項６】
前記ラインオフセットは初期に{水平解像度(Ｈ)／ｈ}に設定されることを特徴とする請求項５に記載の画像データ処理装置。
【請求項７】
前記ラインオフセット発生器は、
前記ラインメモリに対する現在の共通読み出し／書き込みアドレスと次の共通読み出し／書き込みアドレスとの間のラインオフセットである次のラインオフセットをさらに発生することを特徴とする請求項６に記載の画像データ処理装置。
【請求項８】
前記ブロックアドレスと前記次のラインオフセットは毎フェーズの始まりで各々リセットされることを特徴とする請求項７に記載の画像データ処理装置。
【請求項９】
前記アドレス発生器は、
前記ブロックアドレスに基づいて前記ラインメモリに対するアンカアドレスをさらに発生し、
前記発生されたアンカアドレスから連続したｈ個の前記共通読み出し／書き込みアドレスを発生することを特徴とする請求項８に記載の画像データ処理装置。
【請求項１０】
前記アドレス発生器は、
前記連続したｈ個の共通読み出し／書き込みアドレスを発生した後に、前記アンカアドレスを前記ラインオフセットだけ増加させることを特徴とする請求項９に記載の画像データ処理装置。
【請求項１１】
前記アドレス発生器は、
前記ラインオフセットだけ増加した前記アンカアドレスが前記水平解像度Ｈ−１より大きい時に、前記アンカアドレスを{水平解像度(Ｈ)−１}だけ減少させることを特徴とする請求項１０に記載の画像データ処理装置。
【請求項１２】
前記ブロックアドレス発生器は、
一つのブロックに対する共通読み出し／書き込みアドレスを発生した後に、前記ブロックアドレスを前記ブロックオフセットだけ増加させることを特徴とする請求項１１に記載の画像データ処理装置。
【請求項１３】
前記ブロックアドレス発生器は、
前記ブロックオフセットだけ増加した前記ブロックアドレスが前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを{水平解像度(Ｈ)−１}だけ減少させることを特徴とする請求項１２に記載の画像データ処理装置。
【請求項１４】
前記ブロックオフセットは、毎フェーズの最後で前記ラインオフセットとして設定されることを特徴とする請求項１３に記載の画像データ処理装置。
【請求項１５】
前記ラインオフセットは、前記毎フェーズの最後で前記次のラインオフセットとして設定されることを特徴とする請求項１４に記載の画像データ処理装置。
【請求項１６】
一つのフェーズはＨ／ｈブロックを含むことを特徴とする請求項１５に記載の画像データ処理装置。
【請求項１７】
水平解像度がＨであり、垂直解像度がＶである画像データはＶ／ｖフェーズを含むことを特徴とする請求項１５に記載の画像データ処理装置。
【請求項１８】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理方法において、
水平解像度(Ｈ)及び垂直解像度(Ｖ)を有するラスタスキャン順序の画像データが供給される段階と、
複数のライン(ｖ)のラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、
ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含み、
前記共通読み出し／書き込みアドレスを発生する段階は、
(ａ)ブロックオフセットとラインオフセットを初期化する段階と、
(ｂ)ブロックアドレスと次のラインオフセットを初期化する段階と、
(ｃ)アンカアドレスを前記ブロックアドレスとして設定する段階と、
(ｄ)前記アンカアドレスから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、
(ｅ)前記アンカアドレスを前記ラインオフセットだけ増加させる段階と、
(ｆ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記 (ｄ)〜(ｅ) 段階を繰り返す段階と、
(ｇ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、
(ｈ)前記次のラインオフセットを前記ラインオフセットだけ増加させる段階と、
(ｉ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ)段階を繰り返す段階と、
(ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、
(ｋ)前記ラインオフセットを前記次のラインオフセットとして設定する段階と、
(ｌ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｋ)段階を繰り返す段階とを含むことを特徴とする画像データ処理方法。
【請求項１９】
前記(ｅ)段階で、前記ラインオフセットだけ増加したアンカアドレスが前記水平解像度 Ｈ−１と同一、または前記水平解像度 Ｈ−１より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項１８に記載の画像データ処理方法。
【請求項２０】
前記(ｈ)段階で、前記ブロックオフセットだけ増加したブロックアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項１８に記載の画像データ処理方法。
【請求項２１】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理方法において、
水平解像度(Ｈ)及び垂直解像度(ｖ)を有するラスタスキャン順序の画像データが供給される段階と、
複数のライン(ｖ)のラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、
ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含み、
前記共通読み出し／書き込みアドレスを発生する段階は、
(ａ)ブロックオフセットとラインオフセットを初期化する段階と、
(ｂ)ブロックオフセット＊ｉ＋ラインオフセット＊ｖｖ(ここで、ｉはｖラインの画像データのブロック順序を表示することとして、０から(Ｈ／ｈ)−１ まで順次に増加し、ｖｖはブロックのライン数を表示することとして、ｉに対して０からｖ−１まで順次に増加する)を水平解像度Ｈ−１で割った余りに与えられるアンカアドレスを生成する段階と、
(ｃ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、
(ｄ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｂ)〜(ｃ)段階とを繰り返す段階と、
(ｅ)前記ｉが０からｖ−１まで順次に増加するまで前記(ｂ)〜(ｃ)段階を繰り返す段階と、
(ｆ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、
(ｇ)(ラインオフセット＊Ｈ／ｈ)を前記水平解像度Ｈ−１で割った余りを前記ラインオフセットとして設定する段階と、
(ｈ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｇ)段階を繰り返す段階とを含むことを特徴とする画像データ処理方法。
【請求項２２】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理方法において、
水平解像度(Ｈ)及び垂直解像度(Ｖ)を有するラスタスキャン順序の画像データが供給される段階と、
複数のライン(ｖ)のラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、
ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含み、
前記共通読み出し／書き込みアドレスを発生する段階は、
(ａ)ブロックオフセットとラインオフセットを初期化する段階と、
(ｂ)ブロックアドレスを初期化する段階と、
(ｃ)ラインアドレスを初期化する段階と、
(ｄ)前記ブロックアドレスと前記ラインアドレスとの合計を前記水平解像度Ｈ−１で割った余りに与えられるアンカアドレスを生成する段階と、
(ｅ)前記アンカアドレス＊ｈから連続されたｈ個の共通読み出し／書き込みアドレスを発生する段階と、
(ｆ)前記ラインアドレスを前記ラインオフセットだけ増加させる段階と、
(ｇ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｄ)〜(ｆ)段階を繰り返す段階と、
(ｈ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、
(ｉ)Ｈ／ｈ ブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ)段階を繰り返す段階と、
(ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、
(ｋ)前記ラインオフセット＊Ｈ／ｈを前記水平解像度Ｈ−１で割った余りを前記ラインオフセットとして設定する段階と、
(ｌ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｋ)段階を繰り返す段階とを含むことを特徴とする画像データ処理方法。
【請求項２３】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理方法において、
水平解像度(Ｈ)及び垂直解像度(Ｖ)を有するラスタスキャン順序の画像データが供給される段階と、
複数のライン(ｖ)のラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、
ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含み、
前記共通読み出し／書き込みアドレスを発生する段階は、
(ａ)ブロックオフセットとラインオフセットを初期化する段階と、
(ｂ)ブロックアドレスを初期化する段階と、
(ｃ)ラインアドレスを初期化する段階と、
(ｄ)前記ブロックアドレスと前記ラインアドレスに基づいてアンカアドレスを生成する段階と、
(ｅ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、
(ｆ)前記ラインアドレスを前記ラインオフセットだけ増加させる段階と、
(ｇ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｄ)〜(ｆ)段階を繰り返す段階と、
(ｈ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、
(ｉ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ)段階を繰り返す段階と、
(ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、
(ｋ)前記ラインオフセット＊Ｈ／ｈを前記ラインオフセットとして設定する段階と、
(ｌ)前記ラスタスキャン順序の画像データが供給される間前記(ｂ)〜(ｋ)段階を繰り返す段階とを含むことを特徴とする画像データ処理方法。
【請求項２４】
前記(ｄ)段階で、前記生成されたアンカアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項２３に記載の画像データ処理方法。
【請求項２５】
前記(ｆ)段階で、前記増加したラインアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ラインアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項２３に記載の画像データ処理方法。
【請求項２６】
前記(ｈ) 段階で、前記増加したブロックアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項２３に記載の画像データ処理方法。
【請求項２７】
前記(ｋ)段階で、前記設定されたラインオフセットが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ラインオフセットを前記水平解像度Ｈ−１で割った余りを前記ラインオフセットとして設定する段階をさらに含むことを特徴とする請求項２３に記載の画像データ処理方法。
【請求項２８】
ラスタスキャン順序の画像データとブロックスキャン順序の画像データとを相互変換するための画像処理方法において、
水平解像度(Ｈ)及び垂直解像度(Ｖ)を有するラスタスキャン順序の画像データが供給される段階と、
複数のライン(ｖ)のラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、
前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、
ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含み、
前記共通読み出し／書き込みアドレスを発生する段階は、
(ａ)ブロックオフセットとラインオフセットを初期化する段階と、
(ｂ)ブロックアドレスを初期化する段階と、
(ｃ)アンカアドレスをブロックアドレスとして設定する段階と、
(ｄ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、
(ｅ)前記アンカアドレスを前記ラインオフセットだけ増加させる段階と、
(ｆ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｄ)〜(ｅ)段階を繰り返す段階と、
(ｇ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、
(ｈ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｇ)段階を繰り返す段階と、
(ｉ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、
(ｊ)(ラインオフセット＊Ｈ／ｈ)を前記水平解像度Ｈ-1で割った余りを前記ラインオフセットとして設定する段階と、
(ｋ)前記ラスタスキャン順序の画像データが供給される間に、前記(ｂ)〜(ｊ)段階を繰り返す段階とを含むことを特徴とする画像データ処理方法。
【請求項２９】
前記(ｅ)段階で、前記増加したアンカアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項２８に記載の画像データ処理方法。
【請求項３０】
前記(ｇ)段階で、前記増加したブロックアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含むことを特徴とする請求項２９に記載の画像データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び方法に関するものであり、さらに具体的には、一つのラインメモリを使用してラスタスキャン順序の画像データとブロックスキャン順序の画像データとの間の相互変換を処理する画像処理装置及び方法に関するものである。
【背景技術】
【０００２】
よく知られたように、ＪＰＧＥ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇａｒｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）はデータ圧縮のために離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：ＤＣＴ）を使用する。ＤＣＴ圧縮技術は、データを８ピクセル＊８ピクセル単位のブロックで分けてデータを処理する。しかし、カメラの画像処理部はデータをライン単位に、すなわち、ラスタフォーマット（ラスタスキャン順序：一画像全体に対して左から右に、上から下に）連続して出力する。したがって、ラスタスキャン順序の画像データをブロックスキャン順序に変換するためには、最小８ラインの画像データを貯蔵することができるラインメモリが必要である。８ラインが貯蔵されたラインメモリから８＊８ピクセルの画像ブロックを作る間、カメラの画像処理部は新しい画像データを出力するので、連続的な処理のためには、８ラインのラインメモリがさらに必要である。すなわち、一つのラインメモリに画像データが書き込まれる間、他のラインメモリに貯蔵された画像データに対する８＊８ブロック読み出しが行われる。画像データは輝度成分Ｙと色差成分Ｕ及びＶで構成されているので、これら各々の成分に対して二つのラインメモリが必要である。
【０００３】
図１は通常のＶＧＡ(Ｖａｒｉａｂｌｅ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ)標準の画像処理装置を概略的に示したブロック図として、但し、輝度成分Ｙに対するラインメモリシステムを示す。カメラプロセッサ１０で一番目の８ラインの輝度Ｙ成分が出力されて、ラインメモリ＿Ｙ０(２０)に順次に貯蔵される。二番目の８ラインの輝度成分Ｙがラインメモリ＿Ｙ１(４０)に順次に貯蔵されると同時に、ラインメモリ＿Ｙ０(２０)に対する８＊８ブロック単位読み出しが行われる。この時に、マルチプレクサ５０はアドレス発生回路３０の制御に応答してラインメモリ＿Ｙ０(１２)から読み出された８＊８画像ブロックをＪＰＥＧエンジン２２に伝達する。 ラインメモリ２０、４０に対する書き込み及び読み出しアドレスはアドレス発生回路３０で生成される。
【０００４】
図２はカメラプロセッサ１０からの画像データがラスタスキャン順序にラインメモリに書き込まれることを示し、図３はラインメモリに貯蔵された画像データがブロックスキャン順序に読み出されることを示す。図２乃至図３で、Ｈは水平方向ピクセル数、Ｖは垂直方向ピクセル数を示す。一つのラインメモリには一フェーズ、すなわち、Ｈ＊８ピクセルが貯蔵される。例えば、Ｐｈａｓｅ０では０番目のピクセルからＨ＊８−１番目のピクセルまでラインメモリに貯蔵され、Ｐｈａｓｅ1ではＨ＊８番目のピクセルからＨ＊８＊２−１番目のピクセルまでラインメモリに貯蔵される。
【０００５】
再び、図１を参照すると、ラインメモリ２０、４０に対する書き込みアドレスは０から Ｈ＊８−１(ここで、Ｈは水平解像度)まで順次に増加する。解像度が６４０＊４８０であるＶＧＡ標準の画像処理装置でラインメモリ２０、４０に対する書き込みアドレスは０から６４０＊８−１まで順次に増加する。
【０００６】
ブロック単位読み出しのためのラインメモリに対する読み出しアドレスａｄｄｒは下の数式１に記載したアルゴリズムに従って決められる。
【０００７】
（数式１）
ｆｏｒ(ｉ＝０、ｉ<Ｈ／ｖ；ｉ＋＋){
ｆｏｒ(ｖｖ=0；ｖｖ<ｖ；ｖｖ＋＋){
ｆｏｒ(ｈｈ=０；ｈｈ<ｈ；ｈｈ＋＋){
ａｄｄｒ=ｖｖ＊Ｈ＋ｉ＊ｖ＋ｈｈ
}
}
}
【０００８】
読み出しアドレスａｄｄｒは下の数式２に記載したアルゴリズムに従って求められる。
【０００９】
（数式２）
ｆｏｒ(ｉ=０；ｉ<Ｈ／ｖ；ｉ＋＋){
ｆｏｒ(ｖｖ=０；ｖｖ<ｖ；ｖｖ＋＋){
ａｎｃｈｏｒ＝（ｖｖ＊Ｈ＋ｉ）<<３；
ｆｏｒ(ｈｈ=０；ｈｈ<ｈ；ｈｈ＋＋){
ａｄｄｒ=ａｎｃｈｏｒ＋ｈｈ
}
}
}
【００１０】
ここで、Ｈは水平方向ピクセル数(例えば、６４０)を示し、ｖ(例えば、８)は一つのブロックに含まれるラインの数、そしてｈは一つのブロックに含まれる水平方向ピクセルの数(例えば、８)を示し、ｉはブロック順序を、ｖｖは一ブロックで垂直方向ピクセル(ライン)を、ｈｈは一ブロックで水平方向ピクセルを示す変数である。
【００１１】
三番目のフェーズで、８ラインの輝度成分Ｙが書き込みアドレスａｄｄｒを参照してラインメモリ＿Ｙ０(２０)に貯蔵される時に、ラインメモリ＿Ｙ１(４０)からブロック単位読み出しが行われ、読み出されたブロックがマルチプレクサ５０を通じてＪＰＥＧエンジン６０に伝達される。
【００１２】
このような通常の画像処理方法は各色成分に対して二つのラインメモリを使用する。例えば、ＶＧＡ標準の場合に、輝度成分Ｙに対して６４０＊８バイトのラインメモリを二つ使用する。したがって、システムの低電力化のために、メモリをチップに内蔵する場合に、チップの大きさが増加する問題点が発生する。特に、処理しようとする画像の大きさが増加すれば増加するほどその問題はさらに深刻になる。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、ラインメモリの大きさを減少させることができるラスタスキャン順序とブロックスキャン順序との間の画像データを相互変換する画像処理装置を提供することにある。
【００１４】
本発明の他の目的は、一つのラインメモリを使用してラスタスキャン順序とブロックスキャン順序と間の画像データを相互変換するアドレス発生器を提供することにある。
【００１５】
本発明のまた他の目的は、ラインメモリの大きさを減少させることができるラスタスキャン順序とブロックスキャン順序との間の画像データを相互変換する画像処理方法を提供することにある。
【課題を解決するための手段】
【００１６】
上述のような目的を達成するために本発明の画像データ処理装置は、所定の水平解像度及び垂直解像度を有するラスタスキャン順序の画像データを供給する画像データ処理器と、複数のラインｖの画像データを貯蔵するためのラインメモリと、前記ラインメモリに対する共通読み出し／書き込みアドレスを発生するアドレス発生ブロック及び前記ラインメモリからｈ＊ｖブロックスキャン順序の画像データが伝達されるエンコーダとを含む。前記アドレス発生ブロックは、画像データの読み出し及び書き込みが行われるブロックのアドレスを発生するブロックアドレス発生器と、前記ラインメモリに対する以前の共通読み出し／書き込みアドレスと現在の共通読み出し／書き込みアドレスとの間のラインオフセットを提供するラインオフセット発生器と、前記ブロックアドレスと前記ラインオフセットに基づいて前記ラインメモリに対する前記共通読み出し／書き込みアドレスを発生するアドレス発生器とを含む。
【００１７】
望ましい実施形態において、前記エンコーダはＪＰＥＧエンジンである。
【００１８】
望ましい実施形態において、前記ブロックは画像データｈ＊ｖを含む。
【００１９】
この実施形態において、前記ブロックアドレス発生器は、前記ラインメモリに対する現在のブロックの始まりアドレスと次のブロックの始まりアドレスとの間のオフセットであるブロックオフセットをさらに提供する。前記ブロックオフセットは初期に１に設定される。前記ラインオフセットは初期に{水平解像度(Ｈ)／８}に設定される。前記ラインオフセット発生器は、前記ラインメモリに対する現在の共通読み出し／書き込みアドレスと次の共通読み出し／書き込みアドレスとの間のラインオフセットである次のラインオフセットをさらに発生する。前記ブロックアドレスと前記次のラインオフセットは毎フェーズの始まりで各々リセットされる。
【００２０】
この実施形態において、前記アドレス発生器は、前記ブロックアドレスに基づいて前記ラインメモリに対するアンカアドレスをさらに発生し、前記発生されたアンカアドレスから連続したｈ個の前記共通読み出し／書き込みアドレスを発生する。前記アドレス発生器は、前記連続したｈ個の共通読み出し／書き込みアドレスを発生した後に、前記アンカアドレスを前記ラインオフセットだけ増加させ、前記ラインオフセットだけ増加した前記アンカアドレスが{水平解像度(Ｈ)−１}より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる。
【００２１】
この実施形態において、前記ブロックアドレス発生器は、一つのブロックに対する共通読み出し／書き込みアドレスを発生した後に、前記ブロックアドレスを前記ブロックオフセットだけ増加させ、前記ブロックオフセットだけ増加した前記ブロックアドレスが前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを{水平解像度(Ｈ)−１}だけ減少させる。前記ブロックオフセットは、毎フェーズの最後で前記ラインオフセットとして設定される。前記ラインオフセットは、前記毎フェーズの最後で前記次のラインオフセットとして設定される。
【００２２】
この実施形態において、 一つのフェーズはＨ／ｈブロックを含む。
【００２３】
望ましい実施形態において、水平解像度がＨであり、垂直解像度がＶである画像データはＶ／ｖフェーズを含む。
【００２４】
本発明の他の特徴によると、ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの相互変換のための画像処理方法は、水平解像度Ｈ及び垂直解像度Ｖを有するラスタスキャン順序の画像データが供給される段階と、複数のラインｖのラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含む。前記共通読み出し／書き込みアドレスを発生する段階は、 (ａ)ブロックオフセットとラインオフセットを初期化する段階と、(ｂ)ブロックアドレスと次のラインオフセットを初期化する段階と、(ｃ)アンカアドレスを前記ブロックアドレスとして設定する段階と、(ｄ)前記アンカアドレスから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、(ｅ)前記アンカアドレスを前記ラインオフセットだけ増加させる段階と、(ｆ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｄ)〜(ｅ)段階を繰り返す段階と、(ｇ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、(ｈ)前記次のラインオフセットを前記ラインオフセットだけ増加させる段階と、(ｉ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ)段階を繰り返す段階と、(ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、(ｋ)前記ラインオフセットを前記次のラインオフセットとして設定する段階と、(ｌ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｋ)段階を繰り返す段階とを含む。
【００２５】
望ましい実施形態において、前記(ｅ)段階で、前記ラインオフセットだけ増加したアンカアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含む。
【００２６】
望ましい実施形態において、前記(ｈ)段階で、前記ブロックオフセットだけ増加したブロックアドレスが{水平解像度(Ｈ)−１}と同一、または{水平解像度(Ｈ)−１}より大きい時に、前記ブロックアドレスを{水平解像度(Ｈ)−１}だけ減少させる段階をさらに含む。
【００２７】
本発明のまた他の特徴によると、ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの相互変換のための画像処理方法は、水平解像度Ｈ及び垂直解像度Ｖを有するラスタスキャン順序の画像データが供給される段階と、複数のラインｖのラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含む。前記共通読み出し／書き込みアドレスを発生する段階は、(ａ)ブロックオフセットとラインオフセットを初期化する段階と、(ｂ)(ブロックオフセット＊ｉ＋ラインオフセット＊ｖｖ)(ここで、ｉはｖラインの画像データのブロック順序を表示することとして、０から(Ｈ／ｈ)−１まで順次に増加し、ｖｖはブロックのライン数を表示することとして、ｉに対して０からｖ−１まで順次に増加し)を水平解像度Ｈ−１で割った余りに与えられるアンカアドレスを生成する段階と、(ｃ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、(ｄ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｂ)〜(ｃ)段階を繰り返す段階と、(ｅ)前記ｉが０から（Ｈ／ｈ）−１まで順次に増加するまで前記(ｂ)〜(ｃ)段階を繰り返す段階と、(ｆ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、(ｇ)(ラインオフセット＊Ｈ／ｈ)を前記水平解像度Ｈ−１で割った余りを前記ラインオフセットとして設定する段階と、(ｈ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｇ)段階を繰り返す段階とを含む。
【００２８】
本発明の他の特徴によると、ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの相互変換のための画像処理方法の共通読み出し／書き込みアドレスを発生する段階は、(ａ)ブロックオフセットとラインオフセットを初期化する段階と、(ｂ) ブロックアドレスを初期化する段階と、(ｃ)ラインアドレスを初期化する段階と、(ｄ)前記ブロックアドレスと前記ラインアドレスとの合計を{水平解像度(Ｈ)−１}で割った余りに与えられるアンカアドレスを生成する段階と、(ｅ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、(ｆ)前記ラインアドレスを前記ラインオフセットだけ増加させる段階と、(ｇ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生するまで前記(ｄ)〜(ｆ)段階を繰り返す段階と、(ｈ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、(ｉ)Ｈ／ｈ ブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ)段階を繰り返す段階と、 (ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、(ｋ)前記ラインオフセット＊Ｈ／ｈを前記水平解像度Ｈ-1で割った余りを前記ラインオフセットとして設定する段階と、(ｌ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｋ)段階を繰り返す段階とを含む。
【００２９】
本発明のまた他の目的を達成するためのラスタスキャン順序の画像データとブロックスキャン順序の画像データとの相互変換のための画像処理方法の共通読み出し／書き込みアドレスを発生する段階は、(ａ)ブロックオフセットとラインオフセットを初期化する段階と、(ｂ)ブロックアドレスを初期化する段階と、(ｃ)ラインアドレスを初期化する段階と、(ｄ)前記ブロックアドレスと前記ラインアドレスに基づいてアンカアドレスを生成する段階と、(ｅ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、(ｆ)前記ラインアドレスを前記ラインオフセットだけ増加させる段階と、(ｇ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生するまで前記(ｄ)〜(ｆ)段階を繰り返す段階と、(ｈ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、(ｉ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｈ) 段階を繰り返す段階と、(ｊ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、(ｋ)前記ラインオフセット＊Ｈ／ｈを前記ラインオフセットとして設定する段階と、(ｌ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｋ)段階を繰り返す段階とを含む。
【００３０】
前記方法において、前記(ｄ)段階で、前記生成されたアンカアドレスが{水平解像度Ｈ−１}と同一、または{水平解像度Ｈ−１}より大きい時に、前記アンカアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含む。
【００３１】
望ましい実施形態において、前記(ｆ)段階で、前記増加したラインアドレスが{水平解像度Ｈ−１}と同一、または{水平解像度Ｈ−１}より大きい時に、前記ラインアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含む。
【００３２】
望ましい実施形態において、前記(ｈ)段階で、前記増加したブロックアドレスが前記水平解像度Ｈ−１と同一、または前記水平解像度Ｈ−１より大きい時に、前記ブロックアドレスを前記水平解像度Ｈ−１だけ減少させる段階をさらに含む。前記(ｋ)段階で、前記設定されたラインオフセットが{水平解像度Ｈ−１}と同一、または{水平解像度Ｈ−１}より大きい時に、前記ラインオフセットを {水平解像度Ｈ−１}で割った余りを前記ラインオフセットとして設定する段階をさらに含む。
【００３３】
本発明の他の特徴によると、ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの相互変換のための画像処理方法は、水平解像度Ｈ及び垂直解像度Ｖを有するラスタスキャン順序の画像データが供給される段階と、複数のラインｖのラインメモリに対する共通読み出し／書き込みアドレスを発生する段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスからｈ＊ｖブロックスキャン順序の画像データを読み出す段階と、前記ラインメモリの前記共通読み出し／書き込みアドレスに前記ラスタスキャン順序の画像データを貯蔵する段階と、ｈ＊ｖブロックスキャン順序の画像データをエンコーダに伝達する段階とを含む。前記共通読み出し／書き込みアドレスを発生する段階は、 (ａ)ブロックオフセットとラインオフセットを初期化する段階と、(ｂ)ブロックアドレスを初期化する段階と、(ｃ)アンカアドレスをブロックアドレスとして設定する段階と、(ｄ)前記アンカアドレス＊ｈから連続したｈ個の共通読み出し／書き込みアドレスを発生する段階と、(ｅ)前記アンカアドレスを前記ラインオフセットだけ増加させる段階と、(ｆ)前記ｈ＊ｖブロックに対する前記共通読み出し／書き込みアドレスが全部発生されるまで前記(ｄ)〜(ｅ)段階を繰り返す段階と、(ｇ)前記ブロックアドレスを前記ブロックオフセットだけ増加させる段階と、(ｈ)Ｈ／ｈブロックに対する画像データを全部処理するまで前記(ｃ)〜(ｇ)段階を繰り返す段階と、（ｉ)前記ブロックオフセットを前記ラインオフセットとして設定する段階と、(ｊ)(ラインオフセット＊Ｈ／ｈ)を前記水平解像度Ｈ−１で割った余りを前記ラインオフセットとして設定する段階と、(ｋ)前記ラスタスキャン順序の画像データが供給される間、前記(ｂ)〜(ｊｋ)段階を繰り返す段階とを含む。
【００３４】
望ましい実施形態において、前記(ｅ)段階で、前記増加したアンカアドレスが{水平解像度Ｈ−１}と同一、または{水平解像度Ｈ−１}より大きい時に、前記アンカアドレスを{水平解像度Ｈ−１}だけ減少させる段階をさらに含む。
【００３５】
望ましい実施形態において、前記(ｇ)段階で、前記増加したブロックアドレスが{水平解像度Ｈ−１}と同一、または{水平解像度Ｈ−１}より大きい時に、前記ブロックアドレスを前記{水平解像度Ｈ−１}だけ減少させる段階をさらに含む。
【００３６】
上述のような画像処理装置及び方法は、特に、ラスタフォーマットをブロックフォーマットに転換する時に、カメラプロセッサで発生した画像データを各色成分別に分離して、一つのラインメモリに貯蔵した後に、ブロックフォーマットに読み出すのに適する順序にブロック単位に読み出して、ＪＰＥＧエンジンに伝達する。一つの統合ラインメモリを使用するので、メモリのサイズを減らすことができ、これによって、チップサイズを減少させることができる。
【発明の効果】
【００３７】
本発明によると、色成分ごとに、一つのラインメモリを使用することによって、ラインメモリサイズが減少する。したがって、チップに内臓時、小さいサイズのチップを得ることができ、システムの低電力化を図ることができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の望ましい実施形態を添付の図面を参照して詳細に説明する。図４は本発明の望ましい実施形態による画像データ処理装置を示すブロック図である。図４を参照すると、本発明の画像データ処理装置１００はカメラプロセッサ１１０、アドレス発生器１２０、単一ラインメモリ１３０及びＪＰＥＧエンジン１４０を含む。
【００３９】
カメラプロセッサ１１０はラスタスキャン順に画像データを出力する。画像データは輝度成分Ｙと色差成分Ｕ、Ｖを含み、図面には但し、輝度成分Ｙのためのラインメモリ＿Ｙ１３０を示した。カメラプロセッサ１１０はクロック信号に同期化して画像データを出力し、出力された輝度成分Ｙはラインメモリ＿Ｙ１３０に貯蔵される。処理しようとする画像データがＨ＊Ｖの解像度を有し、ＪＰＥＧエンジン１４０がｈ＊ｖブロック単位に画像データを処理する場合には、ラインメモリ＿Ｙ１３０はＨ＊ｖバイトのサイズを有する。例えば、ＪＰＥＧ圧縮方式の場合に、ｈ＝ｖ＝8である。以下では、ＶＧＡ標準でｈとｖが８である場合を例としてあげて説明する。
【００４０】
アドレス発生回路１２０はラインメモリ＿Ｙ１３０に対する共通読み出し／書き込みアドレスを発生する。本発明によると、ラインメモリ＿Ｙ１３０に対する読み出しアドレスと書き込みアドレスが同一である。すなわち、読み出し動作のためにアドレスを印加したメモリセルに書き込み動作が同時に実行される。これは図５に示したタイミング図を参照して説明される。
【００４１】
図４及び図５を参照すると、カメラプロセッサ１１０から提供された入力イネーブル信号ＰＥＬＩ＿ＥＮがアクティブハイであれば、ラインメモリ＿Ｙ１３０の共通読み出し／書き込みアドレスＡＤＤＲに貯蔵された画像データが読み出される。ラインメモリ＿Ｙ１３０から読み出された画像データは出力イネーブル信号ＰＥＬ０＿ＥＮがアクティブハイである時に、ＪＰＥＧエンジン１４０に提供される。一方、入力イネーブル信号ＰＥＬＩ＿ＥＮがアクティブローである時に、カメラプロセッサ１１０から提供された画像データＰＥＬＩ［７、０］］がラインメモリ＿Ｙ１３０に書き込まれる。この時に、画像データＰＥＬＩ［７、０］］が書き込まれるラインメモリ＿Ｙ１３０のアドレスはアドレス発生回路１２０で発生された共通読み出し／書き込みアドレスＡＤＤＲである。ラインメモリ＿Ｙ１３０はＨ＊８すなわち、６４０＊８＝５１２０個のピクセルデータを貯蔵するので、一フェーズでラインメモリ＿Ｙ１３０から、０番目のピクセルデータから６４０＊８−１＝５１１９番目のピクセルデータまでが読み出される時に、カメラプロセッサ１１０からの５１２０番目のピクセルデータから４２９９番目のピクセルデータまでがラインメモリ＿Ｙ１３０に貯蔵される。
【００４２】
具体的に、共通読み出し／書き込みアドレスＡＤＤＲは下の数式３によって生成される。
【００４３】
（数式３）
ｎｏ＿ｈｏｒ＿ｂｋ＝６４０>>３；
ｎｏ＿ｓｉｚｅ＝ｎｏ＿ｈｏｒ＿ｂｋ<<３−１；
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝１；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝ｎｏ＿ｈｏｒ＿ｂｋ；
ｗｈｉｌｅ(！ｆｉｎｉｓｈｅｄ){
ａｎｃｈｏｒ＝０；
ｂｌｏｃｋ＿ａｄｄｒ＝０；
ｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ＝０；
ｆｏｒ(ｉ＝０、ｉ<ｎｏ＿ｈｏｒ＿ｂｋ、ｉ＋＋){
ａｎｃｈｏｒ＝ｂｌｏｃｋ＿ａｄｄｒ；
ｆｏｒ（ｖｖ＝０；ｖｖ<８；ｖｖ＋＋){
ｆｏｒ (ｈｈ＝０；ｈｈ<８；ｈｈ＋＋){
ａｄｄｒ＝ａｎｃｈｏｒ<<３＋ｈｈ；
}
ａｎｃｈｏｒ＋＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ａｎｃｈｏｒ−＝ｎｏ＿ｓｉｚｅ(  ｉｆ  ａｎｃｈｏｒ>＝ｎｏ＿ｓｉｚｅ)；
}
ｂｌｏｃｋ＿ａｄｄｒ＋＝ｂｌｏｃｋ＿ｏｆｆｓｅｔ；
ｂｌｏｃｋ＿ａｄｄｒ−＝ｎｏ＿ｓｉｚｅ(ｉｆ  ｂｌｏｃｋ＿ａｄｄｒ>=ｎｏ＿ｓｉｚｅ)；
ｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ＋＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ−＝ｎｏ＿ｓｉｚｅ(ｉｆ  ｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ>＝ｎｏ＿ｓｉｚｅ)；
}
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝ｌｉｎｅ＿ｏｆｓｅｔ；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝ｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ；
}
【００４４】
ここで、ａｄｄｒは共通書き込み／読み出しアドレスＡＤＤＲであり、ｉはブロックインデックス、ｈｈは水平方向インデックス、ｖｖは垂直方向インデックスである。ｎｏ＿ｈｏｒ＿ｂｋは一フェーズに属するブロックの数Ｈ／ｈ=６４０／８であり、ｎｏ＿ｓｉｚｅは水平方向ピクセルの数−１を示す。前記数式３で６４０に代えて他の値を使用すれば、処理しようとする画像の大きさに対応する共通読み出し／書き込みアドレスが生成される。
【００４５】
このような共通読み出し／書き込みアドレスＡＤＤＲを発生するために本発明のアドレス発生回路１２０は図６に示したような構成を有する。
【００４６】
図６を参照すると、アドレス発生回路１２０は、二つのカウンタ２０１、２０２、アドレス発生器２１０、ラインオフセット発生器２２０、及びブロックアドレス発生器２３０を含む。この実施形態で、各構成要素の大きさ及び固有の数字はＶＧＡ標準に従って決められ、他の標準では異なって設定されることがよく理解されるであろう。
【００４７】
カウンタ＿ｈｖ２０１は６ビットカウンタで構成される。カウンタ＿ｈｖ２０１はカメラプロセッサ１１０からの入力イネーブル信号ＰＥＬＩ＿ＥＮがアクティブされるごとに１だけずつ増加する。カウンタ＿ｈｖ２０１の上位３ビットは垂直方向インデックスｖｖを、そして下位３ビットは水平方向インデックスｈを提供する。垂直方向インデックスｖｖはラインメモリのラインを指定するために０から８まで変化し、水平方向インデックスｈｈは水平方向ピクセルを指定するために０から８まで変化する。カウンタ＿ｂｋ２０２は１０ビットカウンタで構成され、カウンタ＿ｈｖ２０１からのオーバーフロー信号ＯＶＥＲＦがアクティブされるごとに１ずつ増加する。カウンタ＿ｂｋ２０２は一フェーズに属するブロックを指定するために０から６４０(＝Ｈ／ｈ＊Ｖ＝６４０／８＊８)まで変化するブロックインデックスｉを提供する。
【００４８】
アドレス発生器２１０はマルチプレクサ２１１、次のアンカ(anchor)アドレスレジスタ２１２、アンカアドレスレジスタ２１３、共通書き込み／読み出しアドレス演算器２１４、及び加算器２１５、２１６を含む。
【００４９】
加算器２１５は次のアンカアドレスレジスタ２１２の次のアンカアドレスｎｅｘｔ＿ａｎｃｈｏｒ[９、０]とラインオフセットレジスタ２２３に貯蔵されたラインオフセットｌｉｎｅ＿ｏｆｆｓｅｔ[９、０]との合計を出力する。加算器２１６は、次のアンカアドレスレジスタ２１２に貯蔵されたアンカアドレスｎｅｘｔ＿ａｎｃｈｏｒ[９、０]が水平方向ピクセル数６４０−１すなわち、６３９より大きければ、次のアンカアドレスｎｅｘｔ＿ａｎｃｈｏｒ[９、０]から６３９を引く。
【００５０】
マルチプレクサ２１１は初期化信号ｉｎｉｔがアクティブされる時に０を、カウンタ＿ｂｋ２０２からのブロックインデックスｉが増加する時に、ブロックアドレス演算器２３２からのブロックアドレスｂｌｏｃｋ＿ａｄｄｒ[９、０]を、そして水平方向インデックスｈｈがオーバーフローされる時(すなわち、ｈｈ=８である時)に加算器２１５、２１６からの出力を順次に次のアンカアドレスレジスタ２１２に提供する。図面に示さないが、前記初期化信号ｉｎｉｔは例えば、カメラプロセッサ１１０から提供される水平同期信号の８周期ごとに同期されてアクティブされる信号である。
【００５１】
アンカアドレスレジスタ２１３は垂直方向インデックスｖｖがオーバーフローされる時(すなわち、ｖｖ＝８である時)に、次のアンカアドレスレジスタ２１２からの次のアンカアドレスｎｅｘｔ＿ａｎｃｈｏｒ[９、０]を受け入れる。アドレス演算器２１４はアンカアドレスレジスタ２１３に貯蔵されたアンカアドレスａｎｃｈｏｒ[９、０]を左に３回シフトし、水平方向インデックスｈｈが増加するごとにシフトされたアンカアドレスａｎｃｈｏｒ[９、０]<<３に水平方向インデックスｈｈを加える。アドレス演算器２１３で演算されたアドレスが前記共通書き込み／読み出しアドレスＡＤＤＲになる。図４を参照すると、ラインメモリ＿Ｙ１３０は共通書き込み／読み出しアドレスに貯蔵された画像データを出力する。ＪＰＥＧエンジン１４０は出力イネーブル信号ＰＥＬＯ＿ＥＮに応答してラインメモリ＿Ｙ１３０から出力された画像データを受け入れる。
【００５２】
再び図６を参照すると、ラインオフセット発生器２２０はマルチプレクサ２２１、次のラインオフセットレジスタ２２２、ラインオフセットレジスタ２２３、及び加算器２２４、２２５を含む。加算器２２４は次のラインオフセットレジスタ２２２に貯蔵された次のラインオフセットｎｅｘｔ＿ｌｉｎｅ  ｏｆｆｓｅｔ[９、０]とラインオフセット２２３に貯蔵されたラインオフセットｌｉｎｅ＿ｏｆｆｓｅｔ[９、０]を加える。加算器２２５は次のラインオフセットレジスタ２２２に貯蔵された次のラインオフセットｎｅｘｔ＿ｌｉｎｅ  ｏｆｆｓｅｔ[９、０]が水平方向ピクセル数６４０−１すなわち、６３９より大きければ、次のラインオフセットｎｅｘｔ＿ｌｉｎｅ  ｏｆｆｓｅｔ[９、０]から６３９を引く。マルチプレクサ２２１は初期化信号ｉｎｉｔがアクティブされる時に０を、垂直方向インデックスｖｖがオーバーフローされる時(すなわち、ｖｖ＝８である時)に加算器２２４、２２５の出力を順次に選択して次のラインオフセットレジスタ２２２に提供する。ラインオフセットレジスタ２２３はブロックインデックスｉがオーバーフローされる時(すなわち、ｉ＝８０である時)に、次のラインオフセットレジスタ２２２に貯蔵された次のラインオフセットｎｅｘｔ＿ｌｉｎｅ＿ｏｆｆｓｅｔ[９、０]を受け入れる。
【００５３】
ブロックアドレス発生器２３０はマルチプレクサ２３１、ブロックアドレスレジスタ２３２、ブロックオフセットレジスタ２３５、及び加算器２３３、２３４を含む。加算器２３３はブロックアドレスレジスタ２３２に貯蔵されたブロックアドレスｂｌｏｃｋ＿ａｄｄｒ[９、０]とブロックオフセットレジスタ２３５に貯蔵されたブロックオフセットｂｌｏｃｋ＿ｏｆｆｓｅｔ[９、０]を加える。加算器２３４はブロックアドレスレジスタ２３２に貯蔵されたブロックアドレスｂｌｏｃｋ＿ａｄｄｒ[９、０]が６３９より大きい時に、ブロックアドレスｂｌｏｃｋ＿ａｄｄｒ[９、０]から６３９を引く。マルチプレクサ２３１は初期化信号ｉｎｉｔがアクティブされる時に０を、そして垂直方向インデックスｖｖがオーバーフローされる時(すなわち、ｖｖ＝８である時)に、加算器２３３、２３４からの出力を順次に選択してブロックアドレスレジスタ２３２に提供する。
【００５４】
さらに具体的に、図６乃至図７を参照して本発明の動作に関して説明する。本発明に関するより明確な理解のために、８０＊８ピクセルを貯蔵することができるラインメモリを一例として説明する。
【００５５】
図７はカメラプロセッサ１１０から出力される画像データを示す図面である。図７で、カメラプロセッサ１１０の水平解像度は８０であり、垂直解像度は３２である。８０＊８ピクセル画像データを貯蔵するラインメモリを含むシステムで一フェーズは８０＊８の大きさを有するので、一画面は４個のフェーズを含む。各フェーズは８０個のセグメントを含む。セグメントはブロックを構成する水平方向の８個のピクセルからなるラインをいい、セグメントＳ０〜Ｓ７９の各数字はカメラプロセッサ１１０から出力される画像データの順序を意味する。
【００５６】
図８乃至図１１は８０＊８ピクセルを貯蔵することができるラインメモリに図７に示したセグメントが読み出し／書き込まれる順序を示す図面である。図面で、ラインメモリ及びアドレスバッファのアドレスは左から右に、上から下に向かうほど増加する。
【００５７】
カメラプロセッサ１１０で出力される８０＊８ピクセル画像データ(フェーズ１)はラインメモリ＿Ｙ１３０のアドレス０から始めて６４０まで順次に書き込まれる。すなわち、８０個のセグメントＳ０〜Ｓ７９が図８に示したように順次に貯蔵される。例えば、セグメントＳ０はピクセル０〜７を含み、セグメントＳ１はピクセル８〜１５を含み、セグメント１０はピクセル８０〜８７を含む。この時に、８個のピクセルごとに発生する(すなわち、毎８ピクセルの間一定の値を維持する)アンカアドレス０〜７９が図６に示したように、アンカアドレスレジスタ２１３に貯蔵される。アンカアドレス０〜７９は最初の８ラインの画像データ(８０＊８ピクセル)が単一ラインメモリ＿Ｙ１３０に順次に貯蔵される時に、各セグメントの一番目のピクセルが貯蔵されるアドレスを８で割った値に該当する。したがって、アンカアドレスに８を掛ければ、セグメントの一番目のピクセルが貯蔵されるラインメモリ＿Ｙ１３０のアドレスと一致する。図８で、斜線部分はフェーズ１に対するブロックスキャン単位に読み出される一番目のブロック８＊８である。
【００５８】
生成された共通読み出し／書き込みアドレスを参照して図９に示したラインメモリからフェーズ１に対するブロック単位読み出しが実行されると同時に、新しい８ラインの画像データ(フェーズ２)が書き込まれる。この時に、生成されるアンカアドレスは０、１０、２０、…、７０、１、１１、２１、…、７１、…、９、１９、２９、…、７９の順序である。図９で、斜線部分はフェーズ２に対するブロックスキャン単位に読み出される一番目のブロック８＊８である。
【００５９】
続いて、共通読み出し／書き込みアドレスを参照して図１０に示したラインメモリからフェーズ２に対するブロック単位読み出しが実行されると同時に、新しい８ラインの画像データ(フェーズ３)が書き込まれる。この時に、生成されるアンカアドレスは０、２１、４２、６３、…、６８、１０、３１、５２、…、７８、…、１１、３２、５３、…、７９の順序である。図１０で、斜線部分はフェーズ３に対するブロックスキャン単位に読み出される一番目のブロック(８＊８)である。
【００６０】
共通読み出し／書き込みアドレスを参照して図１１に示したラインメモリからフェーズ ３に対するブロック単位読み出しが実行されると同時に、新しい８ラインの画像データ(フェーズ４)が書き込まれる。この時に、生成されるアンカアドレスは０、５２、２５、７７、…、７３、４６、３１、５２、…、７８、…、１１、３２、５３、…、７９の順序である。図１１で、斜線部分はフェーズ４に対するブロックスキャン単位に読み出される一番目のブロック(８＊８)である。
【００６１】
最後のフェーズであるフェーズ４がラインメモリ＿Ｙ１３０に記録された後には、生成された共通読み出し／書き込みアドレスを参照してラインメモリ＿Ｙ１３０に対する読み出し動作のみが実行される。
【００６２】
上述の本発明によると、カメラプロセッサ１１０から出力される一番目のフェーズの画像データがラインメモリ＿Ｙ１３０に貯蔵される。生成された共通読み出し／書き込みアドレスを参照してラインメモリ＿Ｙ１３０から一番目のフェーズの画像データが読み出された後に、カメラプロセッサ１１０から出力される二番目のフェーズの画像データがラインメモリ＿Ｙ１３０に貯蔵される。この時に、共通読み出し／書き込みアドレスは、読み出される画像データが属するブロックのアドレス、ブロックのオフセット及びラインオフセットに基づいて前記ラインメモリに対して発生され、これによって、ラスタスキャン順序とブロックスキャン順序との間の画像データ変換を、一つのラインメモリを利用して容易に実現することができる。
【００６３】
共通読み出し／書き込みアドレスＡＤＤＲを発生する他のアルゴリズムの例が下の数式４に記載されている。
【００６４】
（数式４）
ｎｏ＿ｈｏｒ＿ｂｋ＝６４０>>３；
ｎｏ＿ｓｉｚｅ＝ｎｏ＿ｈｏｒ＿ｂｋ<<３−１；
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝１；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝ｎｏ＿ｈｏｒ＿ｂｋ；
ｗｈｉｌｅ(！ｆｉｎｉｓｈｅｄ){
ｆｏｒ(ｉ＝０；ｉ<ｎｏ＿ｈｏｒ＿ｂｋ；ｉ＋＋){、
ｆｏｒ(ｖｖ＝０；ｖｖ<８；ｖ＋＋){
ａｎｃｈｏｒ＝(ｂｌｏｃｋ＿ｏｆｆｓｅｔ＊ｉ＋ ｌｉｎｅ＿ｏｆｆｓｅｔ＊ｖ)％ｎｏ＿ｓｉｚｅ；
ｉｆ(ｖｖ＝＝７＆＆ｉ＝ｎｏ＿ｈｏｒ＿ｂｋ−１)ａｎｃｈｏｒ＝ｎｏ＿ｓｉｚｅ；
ｆｏｒ(ｈｈ＝０；ｈｈ<８；ｈ＋＋){
ａｄｄｒ＝ａｎｃｈｏｒ<<３＋ｈｈ、
}
}
}
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝(ｌｉｎｅ＿ｏｆｆｓｅｔ＊ｎｏ＿ｈｏｒ＿ｂｋ)％ｎｏ＿ｓｉｚｅ；
}
【００６５】
ここで、ａｄｄｒは共通書き込み／読み出しアドレスＡＤＤＲであり、ｉはブロックインデックス、ｈｈは水平方向インデックス、ｖｖは垂直方向インデックスである。ｎｏ＿ｈｏｒ＿ｂｋは一フェーズに属するブロックの数Ｈ／ｈ＝６４０／８であり、ｎｏ＿ｓｉｚｅは水平方向ピクセルの数−１を示す。前記数式３で６４０に代えて他の値を使用すると、処理しようとする画像の大きさに符合する共通読み出し／書き込みアドレスが生成される。次の数式でもインデックスは数式３及び数式４と同一に使用される。
【００６６】
数式４のアルゴリズムは３個の乗算器を使用するようになっているが、これを次の数式５のように修正することができる。
【００６７】
（数式５）
ｎｏ＿ｈｏｒ＿ｂｋ＝６４０>>３；
ｎｏ＿ｓｉｚｅ＝ｎｏ＿ｈｏｒ＿ｂｋ<<３−１；
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝１；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝ｎｏ＿ｈｏｒ＿ｂｋ；
ｗｈｉｌｅ(！ｆｉｎｉｓｈｅｄ){
ｂｌｏｃｋ＿ａｄｄｒ＝０；
ｆｏｒ(ｉ＝０、ｉ<ｎｏ＿ｈｏｒ＿ｂｋ；ｉ＋＋){
ｌｉｎｅ＿ａｄｄｒ＝０；
ｆｏｒ(ｖ＝０；ｖ<８；ｖ＋＋){
ａｎｃｈｏｒ＝(ｂｌｏｃｋ＿ａｄｄｒ＋ｌｉｎｅ＿ａｄｄｒ)％ｎｏ＿ｓｉｚｅ；
ｉｆ(ｖ＝＝７＆＆ｉ＝ｎｏ＿ｈｏｒ＿ｂＫ−１)ａｎｃｈｏｒ＝ｎｏ＿ｓｉｚｅ；
ｆｏｒ(ｈ＝０、ｈ<８、ｈ＋＋){
ａｄｄｒ＝ａｎｃｈｏｒ<<３＋ｈ；
}
ｌｉｎｅ＿ａｄｄｒ＋＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
}
ｂｌｏｃｋ＿ａｄｄｒ＋＝ｂｌｏｃｋ＿ｏｆｓｅｔ；
}
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ｌｉｎｅ＿ｏｆｆｓｅｔ(ｌｉｎｅ＿ｏｆｆｓｅｔ＊ｎｏ＿ｈｏｒ＿ｂｋ)％ｎｏ＿ｓｉｚｅ；
}
【００６８】
数式５のアルゴリズムでブロックアドレスｂｌｏｃｋ＿ａｄｄｒとラインアドレスｌｉｎｅ＿ａｄｄｒの大きさが無制限に増加することを防止し、余りの演算子％を減らすために次の数式６のように修正することができる。
【００６９】
（数式６）
ｎｏ＿ｈｏｒ＿ｂｋ＝６４０>>３；
ｎｏ＿ｓｉｚｅ＝ｎｏ＿ｈｏｒ＿ｂｋ<<３−１；
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝１；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝ｎｏ＿ｈｏｒ＿ｂｋ；
ｗｈｉｌｅ(！ｆｉｎｉｓｈｉｅｄ){
ｂｌｏｃｋ＿ａｄｄｒ＝０；
ｆｏｒ(ｉ＝０；ｉ<ｎｏ＿ｈｏｒ＿ｂｋ；ｉ＋＋){
ｌｉｎｅ＿ａｄｄｒ＝０；
ｆｏｒ(ｖ＝０；ｖ<８；ｖ＋＋){
ａｎｃｈｏｒ＝(ｂｌｏｃｋ＿ａｄｄｒ＋ｌｉｎｅ＿ａｄｄｒ)；
ｉｆ(ａｎｃｈｏｒ>＝ｎｏ＿ｓｉｚｅ)ａｎｃｈｏｒ−＝ｎｏ＿ｓｉｚｅ；
ｉｆ(ｖ＝＝７＆＆ｉ＝ｎｏ＿ｈｏｒ＿ｂｋ−１)ａｎｃｈｏｒ＝ｎｏ＿ｓｉｚｅ；
ｆｏｒ(ｈ＝０；ｈ<８；ｈ＋＋){
ａｄｄｒ＝ａｎｃｈｏｒ<<３＋ｈ；
}
ｌｉｎｅ＿ａｄｄｒ＋＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ｉｆ(ｌｉｎｅ＿ａｄｄｒ>＝ｎｏ＿ｓｉｚｅ)ｌｉｎｅ_ａｄｄｒ−＝ｎｏ＿ｓｉｚｅ；
}
ｂｌｏｃｋ＿ａｄｄｒ＋＝ｂｌｏｃｋ＿ｏｆｆｓｅｔ；
ｉｆ(ｂｌｏｃｋ＿ａｄｄｒ>＝ｎｏ＿ｓｉｚｅ)ｂｌｏｃｋ＿ａｄｄｒ−＝ｎｏ＿ｓｉｚｅ；
}
ｂｌｏｃｋ＿ｏｆｆｓｅｔ＝ｌｉｎｅ＿ｏｆｆｓｅｔ；
ｌｉｎｅ＿ｏｆｆｓｅｔ＝(ｌｉｎｅ＿ｏｆｆｓｅｔ＊ｎｏ＿ｈｏｒ＿ｂｋ)％ｎｏ＿ｓｉｚｅ；
}
【００７０】
数式６のアルゴリズムではアドレスａｄｄｒを出力する前に、アンカアドレスａｎｃｈｏｒを計算するようになっているが、効率的なハードウェア実現のために前記数式３のように修正することができる。したがって、少ないハードウェアで計算時間が短縮されたアルゴリズムは数式３である。
【００７１】
このような本発明の画像処理装置及び方法によると、ラスタスキャン順序及びブロックスキャン順序との間の画像データ変換が一つのラインメモリを利用して実現されるので、既存に比べて要求されるラインメモリの大きさが半分に減少する。
【００７２】
一方、本発明は多数の成分を有するカラー信号に対応するために、特定のクロマフォーマット(ｃｈｒｏｍａ  ｆｏｒｍａｔ)(例えば、４：２：２、４：４：４など)に適するようにラインメモリの大きさは変更することができる。例えば、４：２：２フォーマットの場合に、ラインメモリの大きさはＨ＊２＊８になり、４：４：４フォーマットの場合に、ラインメモリの大きさはＨ＊３＊８になる。
【００７３】
例示的な望ましい実施形態を利用して本発明を説明したが、本発明の範囲は開示された実施形態に限定されないということがよく理解されるであろう。したがって、請求範囲はそのような変形例及びその類似の構成全部を含むことで、可能な限り幅広く解釈されなければならない。
【図面の簡単な説明】
【００７４】
【図１】通常のＶＧＡ標準の画像処理装置を概略的に示したブロック図である。
【図２】カメラプロセッサからの画像データがラスタスキャン順序にラインメモリに書き込まれることを示す図面である。
【図３】ラインメモリに貯蔵された画像データがブロックスキャン順序に読み出されることを示す図面である。
【図４】本発明の望ましい実施形態による画像データ処理装置を示すブロック図である。
【図５】図４に示した画像データ処理装置の動作を説明するためのタイミング図である。
【図６】図４に示したアドレス発生回路の望ましい実施形態を示す図面である。
【図７】カメラプロセッサから出力される画像データを示す図面である。
【図８】８０＊８ピクセルを貯蔵することができるラインメモリに図７に示したセグメントが読み出し／書き込まれる順序を示す図面である。
【図９】８０＊８ピクセルを貯蔵することができるラインメモリに図７に示したセグメントが読み出し／書き込まれる順序を示す図面である。
【図１０】８０＊８ピクセルを貯蔵することができるラインメモリに図７に示したセグメントが読み出し／書き込まれる順序を示す図面である。
【図１１】８０＊８ピクセルを貯蔵することができるラインメモリに図７に示したセグメントが読み出し／書き込まれる順序を示す図面である。
【符号の説明】
【００７５】
１００  画像データ処理装置
１１０  カメラプロセッサ
１２０  アドレス発生器    
１３０  メモリ
１４０  ＪＰＥＧエンジン  
２０１,２０２  カウンタ
２１０  アドレス発生器
２２０  ラインオフセット発生器
２３０  ブロックアドレス発生器
２１１，２２１，２３１  マルチプレクサ
２１２，２１３，２２２，２３２，２３５  レジスタ
２１５，２１６，２２４，２３３，２３４  加算器
２１４  演算器
【図１】
2004159330.tif 000003
【図２】
2004159330.tif 000004
【図３】
2004159330.tif 000005
【図４】
2004159330.tif 000006
【図５】
2004159330.tif 000007
【図６】
2004159330.tif 000008
【図７】
2004159330.tif 000009
【図８】
2004159330.tif 000010
【図９】
2004159330.tif 000011
【図１０】
2004159330.tif 000012
【図１１】
2004159330.tif 000013