(57)【要約】【課題】  独立的にアクセス可能なメモリバンク構造を利用して、メモリに映像データを記録し、またはメモリから映像データを再生するのにかかる総サイクル数を減少させるビデオデコーダ／エンコーダでのメモリマッピング装置及びその方法を提供する。【解決手段】  映像データを符号化の基本単位であるマクロブロックに分け、それぞれのマクロブロックを所定サイズのパーティションに分割する分割部１１００と、それぞれ独立的にアクセス可能な少なくとも一つ以上のメモリバンクを備える保存部１１２０と、パーティションのうち互いに隣接したパーティションを、メモリバンクのうち相異なるメモリバンクに対応させるメモリ割り当て部１１１０と、を備える。【選択図】  図１１Ａ
2006042364.tif 000002
【特許請求の範囲】
【請求項１】
映像データを符号化の基本単位であるマクロブロックに分け、前記それぞれのマクロブロックを所定サイズのパーティションに分割する分割部と、
それぞれ独立的にアクセス可能な一つ以上のメモリバンクを備える保存部と、
前記パーティションのうち互いに隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させるメモリ割り当て部と、
を備えることを特徴とするビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項２】
前記メモリ割り当て部は、前記パーティションと前記メモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項３】
前記分割部は、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズのパーティションに前記マクロブロックを分割することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項４】
前記分割部は、映像を１６×１６バイトサイズのマクロブロックに分割し、このマクロブロックを４×８バイトサイズのパーティションに分割することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項５】
前記保存部は、４個のメモリバンクで構成され、それぞれのメモリバンクは、独立的にデータを記録／再生することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項６】
前記分割部は、ｃｈｒｏｍａデータのＣｂ及びＣｒ成分を飛越し走査方法で配置した映像データを作った後、前記映像データをマクロブロックに分け、前記マクロブロックを所定サイズのパーティションに分割することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項７】
前記分割部は、前記映像データを第１マクロブロックに分割し、この第１マクロブロックを奇数フィールド及び偶数フィールドに区分した後、前記奇数フィールド及び前記偶数フィールドで構成される第２マクロブロックを、所定サイズのパーティションに分割することを特徴とする請求項１に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項８】
それぞれ独立的にアクセス可能な一つ以上のメモリバンクで構成される保存部と、
映像データのマクロブロックを構成するパーティションのうち、隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させ、前記パーティションと前記メモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理するメモリ割り当て部と、
前記映像データの所定位置のデータが属するマクロブロック及びパーティション位置を把握し、前記把握されたマクロブロック及びパーティションの位置情報に基づいて前記アドレス対応参照表を参照して、前記所定位置のデータが保存された前記メモリバンクのアドレスを生成するアドレス発生部と、
を備えることを特徴とするビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項９】
前記映像データの所定位置のデータが位置したメモリバンクのアドレスが、前記アドレス発生部により生成されれば、この生成されたアドレスに基づいて前記保存部から該当するデータを読み出すデータアクセス部をさらに備えることを特徴とする請求項８に記載のデコーダ／エンコーダでのメモリマッピング装置。
【請求項１０】
前記メモリ割り当て部は、前記映像データを構成するそれぞれのマクロブロック及び前記マクロブロックを構成するパーティションに対して、それぞれ固有のインデックス番号を付与し、このインデックス番号と前記メモリバンクのアドレスとの関係を表すアドレス対応参照表を生成し、かつ管理することを特徴とする請求項８に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項１１】
前記パーティションの大きさは、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズであることを特徴とする請求項８に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項１２】
映像データの符号化方式がフレーム単位であるか、フィールド単位であるかを把握する符号化方法把握部と、
前記映像データを符号化の基本単位であるマクロブロックに分割し、前記符号化方式がフレーム単位であれば、前記マクロブロックを前記フレーム単位のパーティションに分割し、前記符号化方式がフィールド単位であれば、前記マクロブロックを前記フィールド単位のパーティションに分割する分割部と、
それぞれ独立的にアクセス可能な一つ以上のメモリバンクを備える保存部と、
前記パーティションのうち互いに隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させるメモリ割り当て部と、
を備えることを特徴とするビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項１３】
前記パーティションと前記メモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理するアドレス対応部をさらに備えることを特徴とする請求項１２に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項１４】
前記分割部は、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズのパーティションに前記マクロブロックを分割することを特徴とする請求項１２に記載のビデオデコーダ／エンコーダでのメモリマッピング装置。
【請求項１５】
映像データを符号化の基本単位であるマクロブロックに分けるステップと、
前記マクロブロックを所定サイズのパーティションに分割するステップと、
前記パーティションのうち隣接したパーティションを、それぞれ独立的にアクセス可能な一つ以上のメモリバンクのうち、相異なるメモリバンクに対応させるステップと、
前記パーティションと対応するメモリバンクのアドレスと、前記パーティションの対応関係を表すアドレス対応参照表とを生成し、かつ管理するステップと、
を含むことを特徴とするビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項１６】
前記パーティションの大きさは、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズであることを特徴とする請求項１５に記載のビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項１７】
前記パーティション分割ステップは、前記マクロブロックを奇数フィールド及び偶数フィールドに区分した後、前記奇数フィールド及び偶数フィールド別に前記マクロブロックを所定サイズのパーティションに分割することを特徴とする請求項１５に記載のビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項１８】
映像データのマクロブロックを構成するパーティションのうち隣接したパーティションを、それぞれ独立的にアクセス可能なメモリバンクのうち、相異なるメモリバンクに保存するステップと、
前記パーティションと対応するメモリバンクのアドレスと、前記パーティション間の対応関係を表すアドレス対応参照表とを生成し、かつ管理するステップと、
前記映像データの所定位置のデータが属するマクロブロック及びパーティションの位置を把握し、前記把握したパーティション位置情報に基づいて、前記所定位置のデータを含むパーティションが位置したメモリバンクのアドレスを、前記アドレス対応参照表を参照して生成するステップと、
を含むことを特徴とするビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項１９】
前記映像データの所定位置のデータが位置した前記メモリバンクのアドレスが生成されれば、この生成したアドレスに基づいて、前記メモリバンクから該当するデータを読み出すステップをさらに含むことを特徴とする請求項１８に記載のデコーダ／エンコーダでのメモリマッピング方法。
【請求項２０】
前記パーティションの大きさは、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズであることを特徴とする請求項１８に記載のビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項２１】
映像データの符号化方式がフレーム単位であるか、フィールド単位であるかを把握するステップと、
前記映像データを符号化の基本単位であるマクロブロックに分割し、前記符号化方式がフレーム単位であれば、前記マクロブロックをフレーム単位のパーティションに分割し、前記符号化方式がフィールド単位であれば、前記マクロブロックを前記フィールド単位のパーティションに分割するステップと、
前記パーティションのうち互いに隣接したパーティションを、それぞれ独立的にアクセス可能なメモリバンクのうち、相異なるメモリバンクに対応させるステップと、
を含むことを特徴とするビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項２２】
前記パーティションと対応される前記メモリバンクのアドレスと、前記パーティション間の対応関係を表すアドレス対応参照表とを生成し、かつ管理するステップをさらに含むことを特徴とする請求項２１に記載のビデオデコーダ／エンコーダでのメモリマッピング方法。
【請求項２３】
前記パーティションの大きさは、バーストモードで１回のアドレス割り当て後、連続してアクセス可能なデータサイズであることを特徴とする請求項２１に記載のビデオデコーダ／エンコーダでのメモリマッピング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオデコーダ／エンコーダでのメモリマッピング装置及びその方法に係り、より詳細には、独立的にアクセス可能なメモリバンク構造を利用したメモリマッピング装置及びビデオデコーダ／エンコーダでのメモリマッピング方法に関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣは、国際標準化機構であるＩＳＯ／ＩＥＣ  ＭＰＥＧ及びＩＴＵ−Ｔ  ＶＣＥＧの協力プロジェクトであるＪＶＴ（Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ）の標準化技術である（‘Ｔｅｘｔ  ｏｆ  ＩＳＯ／ＩＥＣ  ＦＤＩＳ  １４４９６−１０：Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｏｎｏｌｏｇｙ−Ｃｏｄｉｎｇ  ｏｆ  ａｕｄｉｏ−ｖｉｓｕａｌ  ｏｂｊｅｃｔｓ−Ｐａｒｔ  １０：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ’、ＩＳＯ／ＩＥＣ  ＪＴＣ  １／ＳＣ  ２９／ＷＧ  １１．ｎ５５５５、Ｍａｒｃｈ  ２００３）。
【０００３】
図１は、Ｈ．２６４／ＡＶＣ標準によるデコーダの概略的なブロック図である。
図１に示すように、デコーダの速度を向上させるために、エントロピー復号化器（Ｐ１）１０５、予測部（Ｐ２）１１０及びデブロックフィルタ（Ｐ３）１１５が、マクロブロック単位のパイプラインを通じて動作する。マクロブロック単位のパイプライン動作のコントロールと、映像データのヘッダ情報の解析は、ＲＩＳＣコア（Ｐ０）１００が担当する。
【０００４】
コデック（ｃｏｄｅｃ）には、２つのバスが存在する。一つは、外部バッファ（図示せず）、ＲＩＳＣコア１００、予測部１１０及びデブロックフィルタ１１５を連結する外部バス１３５であり、他の一つは、それぞれのモジュール（Ｐ０ないしＰ３）１００、１０５、１１０、１１５とオンチップ（ｏｎ−ｃｈｉｐ）ＳＲＡＭ  １２０とを連結する内部バス１３０である。そして、パーサバッファ（ｐａｒｓｅｒ  ｂｕｆｆｅｒ）１４０とＰＣＩユニット１４５とが、内部バス１３０に連結される。
【０００５】
ＲＩＳＣコア１００をはじめとする各モジュール１０５、１１０、１１５は、バスマスタとして動作するので、連結されたバスに対するマスタを持つラッパー（ｗｒａｐｐｅｒ）が必要である。ＲＩＳＣコア１００はインストラクションＳＲＡＭ１５５に直接連結される。
【０００６】
以下、Ｈ．２６４／ＡＶＣ規格に従ったデコーダの操作を説明する。
ＰＣＩスレーブインターフェースを通じてＮＡＬ（Ｎｅｔｗｏｒｋ  Ａｂｓｔｒａｃｔｉｏｎ  Ｌａｙｅｒ）ビデオビットストリームが入力される。このストリームは、ＲＩＳＣコア１００により必要なデータ単位に分離され、エントロピー復号化器（Ｐ１）１０５でエントロピーデコーディングされて、パーサバッファ１４０に保存される。速い処理を実現するために、ＲＩＳＣコア１００とエントロピー復号化器１０５とは、別途のパーサバッファにデータを保存する。
【０００７】
パーサバッファ１４０は、一つのマクロブロックをデコーディングするために必要な程度の大きさを持つ。パーサバッファ１４０に保存されたデータは、一つのマクロブロック単位でエントロピー復号化器１０５により読み取られ、シンタックス（ｓｙｎｔａｘ）別にパージングが進む。
【０００８】
パージングでは、ＣＡＶＬＤ（Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｄｉｎｇ）とＣＡＢＡＤ（Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｄｅｃｏｄｉｎｇ）とが主な計算である。ＣＡＶＬＤユニットは、ＲＩＳＣコア１００におけるパージング過程でＥｘｐ−Ｇｏｌｏｍｂ  ｃｏｄｅ演算を助けることもある。エントロピー復号化器１０５でデコーディングされたデータは、予測部（Ｐ２）１１０に伝えられる。エントロピー復号化器１０５と予測部１１０とは、両者間に位置したデュアルオンチップＳＲＡＭ１０７を通じてデータを送受信することによって、両者間のデータ伝達時に内部バス１３０を使用しない。エントロピー復号化器１０５は、エントロピーデコーディングを行う途中に必要な情報を、内部バス１３０を通じてオンチップＳＲＡＭ１２０にアクセスして得る。一般的に、オンチップＳＲＡＭ１２０の大きさは、約１６ＫＢ程度である。
【０００９】
予測部１１０は、デュアルオンチップＳＲＡＭ１０７に保存されたデータを伝達され、外部バッファから参照するデータを、メモリコントローラ１２５を通じて得る。予測部１１０は、外部バス１３５を通じて外部バッファのデータにアクセスする場合、帯域幅がかなり広い。すなわち、予測部１１０は、リアルタイム処理のために同時にアクセスしなければならないデータ量がかなり多い。特に、Ｈ．２６４／ＡＶＣコデックの場合、従来の他のビデオ標準に比べてアクセスしなければならないデータ量が多い。
【００１０】
予測が終わってデュアルオンチップＳＲＡＭ１１２に保存されたデータが、デブロックフィルタ１１５に伝送される。デブロックフィルタ１１５は、予測部１１０で得た復元されたデータのブロック効果を減らすためのフィルタ計算を行い、その結果をＳＲＡＭに保存する。ＳＲＭＡに保存された結果は、外部バッファに保存される。ＳＲＡＭに保存された計算結果を外部バッファに伝送する部分を、一つのパイプラインステップに独立させて進める。
【００１１】
図２は、予測に必要な基本単位であるマクロブロック及びサブマクロブロックのパーティションを示す図面である。
図１及び図２に示すように、予測部１１０は、最小４×４バイトサイズのパーティションから１６×１６バイトサイズのパーティションまで、多様なブロックの大きさ単位で予測を行う。例えば、サブマクロブロックは、マクロブロックを８×８バイトサイズ単位のパーティションに分割した場合に、それぞれの８×８単位ブロックを示し、必要に応じて予測部１１０は、サブマクロブロックを８×４、４×８または４×４バイトサイズに分けて予測に利用する。
【００１２】
Ｈ．２６４コデックで、予測部１１０は、ｌｕｍａデータの場合には６タップフィルタを使用し、ｃｈｒｏｍａデータの場合には二進補間フィルタを使用するので、パーティションデータだけでなく周囲のデータをさらに外部バッファで読み取らなければならない。
【００１３】
予測部１１０が４×４ブロック単位で動き予測する場合は、１６×１６または８×８ブロック単位を利用する他のコデックよりデータアクセス量が多くなる。したがって、相互予測（ｉｎｔｅｒ−ｐｒｅｄｉｃｔｉｏｎ）の場合、外部バッファでデータを読み取るとき、効果的なメモリ管理が非常に重要である。
【００１４】
図３Ａないし図３Ｃは、バーストモードのタイムダイヤグラムを示す図面である。
バーストモード（連続記録／再生方法）は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を通じて外部バッファで１回に多量のデータを読み取ることによって、バスの使用効率を向上させる方法である。
【００１５】
６４ビット（８バイト）のデータバスを使用する場合、図３Ａでは、１回に６４ビットのデータ（ＤＡＴＡ）にアクセスし、図３Ｂでは、６４ビットのデータに４回同時にアクセスし、図３Ｃでは、６４ビットのデータに８回同時にアクセスする。図３Ｂ及び図３Ｃの場合に、バーストモードを使用するためには、記録／再生しようというデータが互いに連続した位置にある必要がある。
【００１６】
データが保存される外部のバッファのアドレスが要求される場合には、メモリコントローラ１２５は、要求されたアドレスに対応するデータにアクセスして、連続して要求されたアドレスと６４ビットである次のアドレスに対応する次のデータにアクセスする。この次のアドレスに対応する次のデータと要求されたアドレスに対応するデータは連続した位置にあるので、６４ビットサイズに増加したアドレスを通じて、該当するデータに連続的にアクセスする。
【００１７】
図３Ａないし図３Ｃの場合に、メモリコントローラ１２５は、アクセスするデータが保存されたアドレスを要請されれば、一定時間が遅延した後、該当データにアクセスする。したがって、同じ量のデータにアクセスする場合に、図３Ａに比べて図３Ｂ及び図３Ｃの場合の方が、はるかに短時間で済む。これは、アドレスを要請してデータを得るまでの遅延時間が、いろいろなデータに同時にアクセスする場合には色々なデータにその都度アクセスする場合に比べはるかに短くて済むからである。
【００１８】
もし、特定外部バッファの遅延時間が６サイクルかかり、６４ビットのデータにアクセスするのに１サイクルかかると仮定すれば、図３Ａの場合には、６４ビットのデータにアクセスするのに７サイクルかかり、図３Ｂの場合には、２５６ビット（６４×４ビット）のデータにアクセスするのに１０サイクルかかり、図３Ｃの場合には、５１２ビット（６４×８ビット）のデータにアクセスするのに１４サイクルかかる。もし、５１２ビットのデータに図３Ａの方法でアクセスするとすれば、５６サイクル（７×８サイクル）かかり、図３Ｂの方法でアクセスするとすれば、２０サイクル（１０×２サイクル）かかる。したがって、１回のアドレスを要請し、いろいろなデータに同時にアクセスできれば、バスの使用率を高めることができる。
【００１９】
一般的に、ＤＭＡを通じて外部バッファでデータを読み取るとき、バーストモードを使用すれば、１回に多くのデータを読み取ることができて、同じサイクルの間にさらに多くのデータを読み取ることができて、効率的である。しかし、１回のアドレス割り当て後、連続的に読み取れるデータ量には限界があるので、バーストモードを使用するとしても、データにアクセスするのに発生する遅延問題が依然としてバスの使用効率を落とす。また、ブロック単位のデータにアクセスするので、データの連続性が保証されず、バーストモードの効率的使用が困難である。
【００２０】
図４ないし図６は、従来の映像データをメモリに保存してアクセスする方法を示す図面である。
図４は、映像（ＰＩＣＴＵＲＥ）データをメモリ（ＭＥＭＯＲＹ）に保存する方法を示す図面である。図４に示す映像データをメモリに保存する方法は、Ｍ×Ｎサイズの映像データを順次走査の順に読みとってメモリに順次に保存する。
【００２１】
図５は、図４の映像マップで映像の特定領域をアクセスする過程を示す図面である。最初のブロックをアクセスしようとする場合に、ブロックの各ラインはメモリで互いに隣接した位置に存在していないので、各ラインを読み取る度に新たなアドレスを要請するので、多くの遅延が発生する。
【００２２】
図６は、図５のピクチャーマップで映像の特定領域をアクセスする場合のタイムダイヤグラムを示す図面である。図６に示すピクチャーマップで映像の特定領域をアクセスする場合には、それぞれのラインを読み取る度に遅延が発生し、１６×１６マクロブロックのデータにアクセスしようとする場合には、１６回の遅延が発生する。
【発明の開示】
【発明が解決しようとする課題】
【００２３】
本発明が解決しようとする技術的課題は、独立的にアクセス可能なメモリバンク構造を利用して、メモリに映像データを記録し、またはメモリから映像データを再生するのにかかる総サイクル数を減少させるビデオデコーダ／エンコーダでのメモリマッピング装置及びビデオデコーダ／エンコーダでのメモリマッピング方法を提供するところにある。
【００２４】
本発明が解決しようとする他の技術的課題は、映像データの符号化方法によって、フレーム単位メモリマッピング及びフィールド単位メモリマッピングをそれぞれ区分して適用することによって、メモリに映像データを記録し、またはメモリから映像データを再生するのにかかる総サイクル数を減少させるビデオコーダ／エンコーダでのメモリマッピング装置及びビデオデコーダ／エンコーダでのメモリマッピング方法を提供するところにある。
【課題を解決するための手段】
【００２５】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング装置の一実施形態は、映像データを符号化の基本単位であるマクロブロックに分け、前記それぞれのマクロブロックを所定サイズのパーティションに分割する分割部と、それぞれ独立的にアクセス可能な少なくとも一つ以上のメモリバンクを備える保存部と、前記パーティションのうち互いに隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させるメモリ割り当て部と、を備える。
【００２６】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング装置の他の実施形態は、それぞれ独立的にアクセス可能な少なくとも一つ以上のメモリバンクで構成される保存部と、映像データのマクロブロックを構成するパーティションのうち、隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させ、前記パーティションと前記メモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理するメモリ割り当て部と、前記映像データの所定位置のデータが属するマクロブロック及びパーティション位置を把握し、前記把握されたマクロブロック及びパーティション位置情報に基づいて前記アドレス対応参照表を参照して、前記所定位置のデータが保存された前記メモリバンクのアドレスを生成するアドレス発生部と、を備える。
【００２７】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング装置の他の実施形態は、映像データの符号化方式がフレーム単位であるか、フィールド単位であるかを把握する符号化方法把握部と、前記データを符号化の基本単位であるマクロブロックに分割し、前記符号化方式がフレーム単位であれば、前記それぞれのマクロブロックをフレーム単位パーティションに分割し、前記符号化方式がフィールド単位であれば、前記それぞれのマクロブロックを前記フィールド単位パーティションに分割する分割部と、それぞれ独立的にアクセス可能な少なくとも一つ以上のメモリバンクを備える保存部と、前記パーティションのうち互いに隣接したパーティションを、前記メモリバンクのうち相異なるメモリバンクに対応させるメモリ割り当て部と、を備える。
【００２８】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング方法の一実施形態は、映像データを符号化の基本単位であるマクロブロックに分けるステップと、前記それぞれのマクロブロックを所定サイズのパーティションに分割するステップと、前記パーティションのうち隣接したパーティションを、それぞれ独立的にアクセス可能な少なくとも一つ以上のメモリバンクのうち、相異なるメモリバンクに対応させるステップと、前記パーティションと対応するメモリバンクのアドレスと、前記パーティションの対応関係を表すアドレス対応参照表と、を生成し、かつ管理するステップと、を含む。
【００２９】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング方法の他の実施形態は、映像データのマクロブロックを構成するパーティションのうち隣接したパーティションを、それぞれ独立的にアクセス可能なメモリバンクのうち、相異なるメモリバンクに保存するステップと、前記パーティションと対応する前記メモリバンクのアドレスと、前記パーティション間の対応関係を表すアドレス対応参照表とを生成し、かつ管理するステップと、前記映像データの所定位置のデータが属するマクロブロック及びパーティション位置を把握し、前記把握されたパーティション位置情報に基づいて、前記所定位置のデータを含むパーティションが位置したメモリバンクのアドレスを、前記アドレス対応参照表を参照して生成するステップと、を含む。
【００３０】
前記の技術的課題を達成するための、本発明によるビデオデコーダ／エンコーダでのメモリマッピング方法の他の実施形態は、映像データの符号化方式がフレーム単位であるか、フィールド単位であるかを把握するステップと、前記データを符号化の基本単位であるマクロブロックに分割し、前記符号化方式がフレーム単位であれば、前記それぞれのマクロブロックをフレーム単位でパーティションし、前記符号化方式がフィールド単位であれば、前記それぞれのマクロブロックを前記フィールド単位にパーティションするステップと、前記パーティションのうち互いに隣接したパーティションを、それぞれ独立的にアクセス可能なメモリバンクのうち、相異なるメモリバンクに対応させるステップと、を含む。
これにより、映像データの記録／再生にかかる総サイクル数を減少できる。
【発明の効果】
【００３１】
本発明によれば、メモリバンク構造を利用して、デコーダ／エンコーダが動き予測補償に必要なデータをメモリに記録し、またはメモリから再生する場合にかかる総サイクル数を、従来技術より約２倍程度減少できる。また、本発明は、フレーム単位の動き予測補償またはフィールド単位の動き予測補償によって、マクロブロックをそれぞれフレーム単位またはフィールド単位のパーティションに分割して、それぞれ隣接しないようにメモリバンクに保存することによって、動き予測補償のためにデコーダがメモリからデータを再生するのにかかる総サイクル数を減少できる。
【発明を実施するための最良の形態】
【００３２】
以下、添付された図面を参照して、本発明によるビデオデコーダ／エンコーダでのメモリマッピング装置及びビデオデコーダ／エンコーダでのメモリマッピング方法について詳細に説明する。
図７及び図８は、本発明によるメモリマッピング方法の一実施形態を示す図面である。
【００３３】
図７に示すように、映像は、エンコーディングの基本単位であるマクロブロックに分けられる。マクロブロックは、一般的に１６×１６バイトのサイズを持つ。本発明によるメモリマッピング方法は、映像をそれぞれのマクロブロック単位にスキャンした後、マクロブロック単位で順次にメモリにマッピングする。言い換えれば、最初のマクロブロック内の映像をスキャンして得たデータをメモリの最初の位置にマッピングし、２番目のマクロブロック内の映像をスキャンして得たデータをメモリの２番目の位置にマッピングする。このような方法で、映像の最後のマクロブロックまでメモリマッピングを行う。
【００３４】
図８に示すように、図７の示したメモリマッピング方法は、従来のメモリ保存方法（図４及び図５）と違って、１回の遅延（ＬＡＴＥＮＣＹ）だけで一つのマクロブロック内の映像データをメモリから読み取ることができる。したがって、本発明によるメモリマッピング方法は、効率的なバス活用が可能であり、同一時間に従来のメモリマッピング方法より多くのデータのアクセスが可能である。すなわち、図８は、１回のバーストモード演算で一つのマクロブロックをいずれもアクセスできる。
【００３５】
しかし、バーストモードが６４ビットのバスを使用し、図３Ｂ及び図３Ｃに示したバーストモード方法を通じて、メモリから１６×１６バイトサイズのマクロブロックを読み取る場合には、追加的な遅延が発生する。
【００３６】
まず、図３Ｂのバーストモードを使用する場合を説明すれば、１回のバーストモードで読み取れるデータのサイズは、３２バイト（８バイト（６４ビット）×４）であるので、マクロブロック（１６×１６バイト）をすべて読み取るのに８回（（１６×１６）／３２）の遅延が発生する。
【００３７】
図３Ｃのバーストモードを使用する場合を説明すれば、１回のバーストモードで読み取れるデータのサイズは６４バイト（８バイト（６４ビット）×８）であるので、マクロブロックをすべて読み取るのに４回（（１６×１６）／６４）の遅延が発生する。このような、追加的な遅延を防止するための構成が図９、図１０Ａ及び図１０Ｂに図示されている。
【００３８】
図９、図１０Ａ及び図１０Ｂは、インターリービングされたメモリ構造を利用して、メモリをマッピングしてアクセスする方法を示す図面である。
図９に示すように、メモリ（ＭＥＭＯＲＹ）９２０は互いに独立したアドレスアクセス構造を持つ４個のメモリバンク（ＢＡＮＫ）９２２、９２４、９２６、９２８で構成される。デコーダコア９００とメモリコントローラ９１０とは、ｍビットサイズのバスで連結され、メモリコントローラ９１０とメモリ９２０とは、ｎビットサイズのバスで連結される。メモリとしてＳＤＲＡＭを使用する場合に、ｍとｎとは同じ値を持ち、ＤＤＲ（Ｄｏｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭを使用する場合、ｍはｎの２倍である。なぜなら、ＤＤＲ  ＳＤＲＡＭは、一クロックサイクルに２回のデータアクセスが可能であるからである。
【００３９】
図１０Ａ及び図１０Ｂには、図９に示したメモリ９２０にアクセスする具体的な過程が図示されている。デコーダコア９００が、メモリ９２０のそれぞれのメモリバンク９２２、９２４、９２６、９２８で、それぞれ一定サイズのデータ１０００、１００２、１００４、１００６をアクセスしようとする場合に、メモリコントローラ９１０は、アクセスしようとするデータが位置した場所のアドレス（ＡＤＤＲ０〜３）１０２０、１０２２、１０２４、１０２６を、アドレスバス１００８を通じてそれぞれのメモリバンク９２２、９２４、９２６、９２８に伝送する。
【００４０】
メモリコントローラ９１０は、メモリバンク０  ９２２のデータ１０００をアクセスするために、アドレスバス１００８を通じてアドレス１０２０を伝送し、データ１０００のアクセスまでの遅延時間の間に、メモリバンク１  ９２４、メモリバンク２  ９２６、メモリバンク３  ９２８に対するそれぞれのアドレス１０２２、１０２４、１０２６を順にアドレスバス１００８を通じてそれぞれのメモリバンク９２４、９２６、９２８に伝送する。したがって、順次にメモリバンク０  ９２２からメモリバンク３  ９２８に位置したデータ１０００、１００２、１００４、１００６をアクセスできる。すなわち、メモリバンク構造を使用しない場合には４回の遅延が発生するが、インターリービングされたメモリバンク構造を使用すれば、１回の遅延で４個のメモリバンクに位置したデータにアクセスできる。
【００４１】
したがって、インターリービングされたメモリバンク構造のメモリを使用すれば、図８で説明した追加的な遅延を防止し、１回の遅延でメモリに保存されたマクロブロックのデータをアクセスできる。
図１１Ａは、本発明によるメモリマッピング装置の構成を示す図面である。
【００４２】
図１１Ａに示すように、メモリマッピング装置は、分割部１１００、メモリ割り当て部１１１０及び保存部１１２０で構成される。
分割部１１００は、映像データを符号化の基本単位であるマクロブロックに分割する。一般的に、マクロブロックのサイズは１６×１６バイトである。なお、マクロブロックについては、図２で説明した。また分割部１１００は、それぞれのマクロブロックを所定サイズのパーティションに分割する。パーティションのサイズは、バーストモードで１回のアドレス要請後、連続してアクセス可能なデータのサイズである。例えば、６４ビット（８バイト）のデータバスを使用して、図３Ａに示したバーストモード方法を使用する場合に、パーティションのサイズは８バイトであり、図３Ｂの場合には、３２バイト（８×４）であり、図３Ｃの場合には、６４バイト（８×８）である。
【００４３】
そして、分割部１１００は、映像データの複数のマクロブロック及び複数のパーティションを区分するために、それぞれのマクロブロック及びパーティションにインデックス番号を付与する。例えば、分割部１１００は、映像データをマクロブロックに分割した後、上方から下方に、左側から右側にそれぞれのマクロブロックに０〜ｎまで順次にインデックス番号を割り当て、それぞれのマクロブロック内のパーティションも、メモリバンクに対応する順序によって、０〜ｎまで順次にインデックス番号を割り当てる。
【００４４】
また、分割部１１００は、映像データの符号化方式がフレーム単位であるか、フィールド単位であるかによって、フレーム単位またはフィールド単位で映像データを分割する。フレーム単位またはフィールド単位の映像データ分割については、図２２Ａ及び図２２Ｂを参照して後述する。
【００４５】
保存部１１２０は、それぞれ独立的にアクセス可能ないろいろなメモリバンクで構成される。なお、メモリバンクの構造は図９及び図１０Ａで説明した。図１０Ａで説明したように、それぞれのメモリバンクはそれぞれ独立的にアドレスを伝送されて、アドレスに該当する位置のデータを出力する。したがって、図１０Ｂに示すように、１回の遅延で複数のメモリバンクに位置したデータをアクセスできる。一方、保存部１１２０は、それぞれのメモリバンクにパーティション単位でデータを保存する。
【００４６】
メモリ割り当て部１１１０は、それぞれのマクロブロックのパーティションを、保存部１１２０のそれぞれのメモリバンクに割り当てる。このとき、メモリ割り当て部１１１０は、マクロブロック内の複数のパーティションのうち隣接したパーティションを、相異なるメモリバンクに割り当てる。例えば、図１４に示すように、パーティション０は、パーティション１、２と隣接するので、パーティション０をメモリバンク０に割り当てれば、パーティション１、２をメモリバンク０以外の他のメモリバンクに割り当てる。これについては、図１４ないし図２１を参照して後述する。
【００４７】
一方、メモリ割り当て部１１１０は、パーティションとそれぞれのメモリバンクとの対応関係を表すアドレス対応参照表を生成し、かつ管理する。すなわち、メモリ割り当て部１１１０は、マクロブロック及びパーティションのインデックス番号とメモリバンクのアドレスとを対応させたアドレス対応参照表を生成し、かつ管理する。これにより、デコーダまたはエンコーダが映像データの所定位置のデータをメモリバンクに記録し、またはメモリバンクを再生しようとする場合、該当するアドレス対応参照表を通じてメモリバンクの実際アドレスを把握できる。
なお、メモリマッピング装置は、パーティションとメモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理するアドレス対応部をさらに備えていてもよい。
【００４８】
図１１Ｂは、本発明によるメモリマッピング装置の他の実施形態の構成を示す図面である。
図１１Ｂを参照すれば、メモリマッピング装置は、メモリ割り当て部１１５０、アドレス発生部１１６０、保存部１１７０及びデータアクセス部１１８０で構成される。
【００４９】
メモリ割り当て部１１５０及び保存部１１７０は、図１１Ａで説明したメモリ割り当て部１１１０及び保存部１１２０とその機能及び構成が同一であるので、ここでは詳細な説明を省略する。
【００５０】
データアクセス部１１８０が映像データの所定位置（ｘ，ｙ）のデータを保存部１１７０に記録し、または再生しようとする場合に、データアクセス部１１８０は、アドレス発生部１１６０に、所定位置のデータに対応するメモリバンクのアドレスを要請する。
【００５１】
それにより、アドレス発生部１１６０は、所定位置（ｘ，ｙ）のデータを保存する保存部１１７０のメモリバンクのアドレスを生成する。バーストモードでは、ピクセル単位でデータにアクセスせずに、１回でアクセスできる基本データ単位であるパーティション単位でデータにアクセスするので、所定位置のピクセルデータが位置したパーティションが保存されたメモリバンクのアドレスを求めなければならない。
【００５２】
具体的に説明すれば、アドレス発生部１１６０は、所定位置（ｘ，ｙ）のピクセルデータを含むマクロブロックのインデックス番号を探す。そして、アドレス発生部１１６０は、所定位置（ｘ，ｙ）のピクセルデータを含むアクセス基本単位であるパーティション領域を求め、このパーティション領域が属するマクロブロックを把握する。例えば、パーティションのサイズが４×８バイトであれば、アドレス発生部１１６０は、（ｘ，ｙ）位置から水平方向に４バイト、垂直方向に８バイトのサイズからなる矩形の領域を求め、この領域が属するマクロブロック及びパーティションのインデックス番号を求める。そして、アドレス発生部１１６０は、把握したマクロブロック及びパーティションのインデックス番号に基づいて、メモリ割り当て部１１５０のアドレス対応参照表を参照して、実際のメモリバンクのアドレスを求める。
【００５３】
データアクセス部１１８０は、映像データの所定位置のデータが必要である場合、所定位置の実際のアドレスを、アドレス発生部１１６０を通じて求め、この求めた実際のアドレスに基づいて保存部１１７０にデータを要請して、データを受信する。この場合に、隣接したパーティションはそれぞれ他のメモリバンクに保存されるので、図１０Ｂに示すように、１回の遅延で複数のメモリバンクに保存されたデータにアクセスできる。
【００５４】
データアクセス部１１８０は、映像データのエンコーディングまたはデコーディングを行うエンコーダまたはデコーダであり、その他に映像データを必要とする他のモジュールでもある。
【００５５】
図１２は、本発明によるメモリマッピング方法の一実施形態を示すフローチャートである。
図１２に示すように、分割部１１００は、映像データをマクロブロックに区分する（Ｓ１２００）。そして、分割部１１００は、マクロブロックを、バーストモードでのデータ基本伝送単位であるパーティションに分割する（Ｓ１２１０）。
【００５６】
メモリ割り当て部１１１０は、隣接するパーティションが相異なるメモリバンクのアドレスに割り当てられるように、それぞれのパーティションをメモリバンクに割り当てる（Ｓ１２２０）。また、メモリ割り当て部１１１０は、パーティションとメモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理する（Ｓ１２３０）。
なお、映像データの所定位置のデータが必要ならば、所定位置の実際のアドレスを求め、この求めた実際のアドレスに基づいて保存部１１２０にデータを要請して、データを受信するステップを含んでいても良い。
また、ステップＳ１２１０は、それぞれのマクロブロックを奇数フィールド及び偶数フィールドに区分した後、奇数フィールド及び偶数フィールド別にマクロブロックを所定サイズのパーティションに分割してもよい。
【００５７】
図１３は、本発明によるメモリマッピング方法の他の実施形態の一部を示すフローチャートである。
映像データをマクロブロックに区分する。そして、マクロブロックを、バーストモードでのデータ基本伝送単位であるパーティションに分割する。
【００５８】
メモリ割り当て部１１５０は、隣接するパーティションが相異なるメモリバンクのアドレスに割り当てられるように、それぞれのパーティションをメモリバンクに割り当てる。また、メモリ割り当て部１１５０は、パーティションとメモリバンクのアドレスとの対応関係を表すアドレス対応参照表を生成し、かつ管理する。
【００５９】
そして、図１３に示すように、アドレス発生部１１６０は、保存部１１７０に記録し、または再生しようとする映像データの所定位置のピクセルデータ（ｘ，ｙ）が属するマクロブロックの位置を求める（Ｓ１３００）。アドレス発生部１１６０は、ピクセルデータ（ｘ，ｙ）が属するパーティションの水平位置及び垂直位置（ｘｐ，ｙｐ）を求める（Ｓ１３１０）。アドレス発生部１１６０は、マクロブロック内のパーティションのインデックスを求める（Ｓ１３２０）。メモリ割り当て部１１１０は、ピクセルデータ（ｘ，ｙ）が属するパーティションのメモリバンクのアドレスを、アドレス対応参照表を参照して求める（Ｓ１３３０）。
【００６０】
なお、データアクセス部１１８０は、映像データの所定位置のデータが必要ならば、所定位置の実際のアドレスを、アドレス発生部１１６０を通じて求め、この求めた実際のアドレスに基づいて保存部１１７０にデータを要請して、データを受信するステップを含んでいても良い。
【００６１】
以下、図１４ないし図２１では、映像データの基本符号化単位は１６×１６バイトサイズのマクロブロックであり、バーストモードの基本伝送単位であるパーティションのサイズは６４ビット（８バイト、図３Ｂ）であり、メモリは、４個のメモリバンク（図９、図１０Ａ）からなる場合を仮定する。
【００６２】
図１４は、フレームｌｕｍａデータをフレーム単位でメモリに割り当てる方法の一実施形態を示す図面である。
図１４に示すように、バーストモードは６４ビットのデータバスを使用し、図３Ｂのバーストモードを使用する。したがって、バーストモードのアクセス基本単位であるパーティションのサイズは４×８バイトである。したがって、マクロブロックは、８個のパーティションに分割される。
【００６３】
８個のそれぞれのパーティションは、４個のメモリバンク０〜３からなる保存部１１２０にそれぞれ対応する。このとき、隣接するパーティションは相異なるメモリバンク０〜３に対応する。すなわち、パーティション０はパーティション１及びパーティション２と隣接するので、パーティション０はメモリバンク０に対応し、パーティション１及びパーティション２はそれぞれメモリバンク１及びメモリバンク２に対応する。
【００６４】
図１５は、フレームｃｈｒｏｍａデータをフレーム単位でメモリにマッピングする方法の一実施形態を示す図面である。
図１５に示すように、４：２：０  ｃｈｒｏｍａサンプリング方式により映像情報を表示する場合、８×８バイトサイズのＣｂ及びＣｒ成分の各ラインは互いに対をなして配置される。それにより、図１５に示すように８×１６バイトサイズのブロックが生成され、分割部１１００は、このブロックを４×８バイトサイズのパーティションに分割する。そして、メモリ割り当て部１１１０は、隣接したパーティションを相異なるメモリバンク０〜３に対応させる。
【００６５】
図１６は、本発明によるフレーム単位メモリマッピング方法で、フレーム単位の動き予測補償を行うために、ビデオデコーダが、４×４バイトサイズのパーティションに対してフレーム構造の参照ブロックをアクセスする一実施形態を示す図面である。
【００６６】
Ｈ．２６４標準は、６タップフィルタを使用するので、４×４バイトのパーティションに対する動き予測補償を行うために、デコーダが実際にアクセスするブロックのサイズは９×９バイトである。そして、動きベクトルによってアクセスしなければならない領域が、マクロブロックやパーティションの境界と正確に一致しないこともあり、最悪の場合、図１６に示すように、６個のパーティションをいずれもアクセスしなければならない場合がある。
【００６７】
図１６に示すように、デコーダは動き予測補償を行うためには、パーティション０〜６までのあらゆるパーティションをアクセスしなければならない。このとき、アクセスされるメモリバンクは、０、１、２、３、０、２の順序である。図１４に示すように、隣接したパーティションは相異なるメモリバンクに対応するので、１回の遅延でメモリバンク０、１、２、３、０、２に保存されたデータをアクセスできる。したがって、図１６の場合には、一つのメモリバンクを連続してアクセスしないので、１回の遅延だけであらゆるパーティションをアクセスできる。
【００６８】
例えば、遅延に６サイクルかかるとすれば、３０サイクルが４×４ブロックの動き予測補償のために必要である。
図１７は、本発明によるフレーム単位メモリマッピング方法で、フィールド単位の動き予測補償を行うために、ビデオデコーダが４×４サイズのパーティションに対してフィールド構造の参照ブロックをアクセスする方法の一実施形態を示す図面である。
【００６９】
デコーダはフィールド単位の動き予測補償のために映像データの偶数フィールド及び奇数フィールドのうちいずれか一つのフィールドデータだけにアクセスする。したがって、フィールド単位の動き予測補償のためには、９×９サイズではない垂直方向に２倍のサイズである９×１８サイズの参照領域が必要である。最悪の場合、図１７に示すように１２個のパーティションをアクセスしなければならない。
【００７０】
図１７に示すように、４×４サイズのパーティションに対する動き予測補償のために必要なパーティションは、０、１、２、３、４、６、０、１、２、３、４、６パーティションであり、そのためにアクセスされるメモリバンクは、０、１、２、３、０、２、０、１、２、３、０、２の順序である。フィールド単位の動き予測補償のために発生する遅延は１回であり、遅延に６サイクルかかるならば、動き予測補償のためにかかる総サイクルは、５４サイクル（遅延６サイクル＋１２×４サイクル）である。
なお、分割部１１００は、映像データを第１マクロブロックに分割し、第１マクロブロックを奇数フィールド及び偶数フィールドに区分した後、奇数フィールド及び偶数フィールドで構成される第２マクロブロックを、所定サイズのパーティションに分割する。
【００７１】
図１８は、フィールドｌｕｍａデータをメモリにマッピングする方法を示す図面である。
図１８に示すように、映像データをパリティのフィールドデータ同士で集束して４×８バイトサイズのパーティションに分ける。基本的にＨ．２６４の場合は、４×４ブロックの小さなブロックのアクセスも必要であるので、図１８では、４×４より大きくて最も小さな基本単位の４×８サイズのブロックに分けた。この場合に、一つのマクロブロックは、８個のパーティションに分けられる。
【００７２】
隣接するパーティションを相異なるメモリバンクに位置させるために、メモリバンク０とメモリバンク２には偶数フィールドを対応させ、メモリバンク１とメモリバンク３には奇数フィールドを対応させる。
図１９は、フィールドｃｈｒｏｍａデータをメモリにマッピングする方法を示す図面である。
【００７３】
図１９に示すように、４：２：０  ｈｒｏｍａサンプリング方式により映像情報を表示する場合、８×８バイトサイズのＣｂ及びＣｒの各ラインを互いに対をなして図１９のように構成する。この場合、１個のマクロブロックを４個のパーティションに分けることができ、４個のパーティションは４個のメモリバンクにそれぞれ対応する。Ｃｂ及びＣｒは常に同じ位置をアクセスするので、図１９のように、Ｃｂ及びＣｒ成分を飛越し走査方式で構成する。
【００７４】
図２０は、本発明によるフィールド単位のメモリマッピング方法で、動き予測補償を行うために、ビデオデコーダが４×４サイズのパーティションに対してフレーム構造の参照ブロックをアクセスする一実施形態を示す図面である。
【００７５】
デコーダは、Ｈ．２６４の場合に６タップフィルタを使用するので、動き予測補償を行うために実際アクセスしなければならないブロックのサイズは９×９である。そして、動きベクトルによってアクセスしなければならない領域が、マクロブロックやパーティションの境界に正確に一致しないこともあり、最悪の場合、動き予測補償のために、図２０に示すように１２個のパーティションが必要である。
【００７６】
図１６と違って、アクセスしなければならないパーティションの数が増加したことは、図１８のようにフィールドデータ別にパーティションを分け、それぞれをメモリバンクで対応したからである。図２０に示すように、４×４サイズのパーティションに対する動き予測補償のために必要なパーティションは、０、１、２、３、４、５、０、１、２、３、４、５のパーティションであり、そのためにアクセスされるメモリバンクは０、１、２、３、０、１、０、１、２、３、０、１の順序である。隣接したパーティションをアクセスする場合、相異なるメモリバンクをアクセスするので、図１０のように遅延発生を減少させる。
【００７７】
図２０では１回の遅延のみ発生するので、遅延が６サイクルかかるならば、動き予測補償のためにパーティションをアクセスするのにかかる総サイクルは、５４サイクル（遅延６サイクル＋１２×４サイクル）である。
【００７８】
図２１は、本発明によるフィールド単位のメモリマッピング方法で、動き予測補償を行うために、ビデオデコーダが４×４サイズのパーティションに対してフィールド構造の参照ブロックをアクセスする一実施形態を示す図面である。
【００７９】
デコーダは、フィールド単位の動き予測補償を行うために、映像データの偶数フィールド及び奇数フィールドのうちいずれか一つのフィールドデータのみをアクセスするので、９×９サイズではない垂直方向に二倍のサイズである９×１８サイズの参照領域が必要である。動きベクトルによってアクセスしなければならない領域が、マクロブロックやパーティションの境界と正確に一致しないこともあり、最悪の場合、デコーダは、４×４サイズのパーティションに対して、動き予測補償のために図２１に示すように６個のパーティションをアクセスしなければならない。
【００８０】
図２１に示すように、偶数フィールドの動き予測補償のために必要なパーティションが０、２、４、０、２、４パーティションであれば、このときにアクセスされるメモリバンクは０、２、０、０、２、０の順序である。隣接したパーティションは相異なるメモリバンクに対応するので、図１０に示すように遅延発生が減少する。図２１では、パーティションにアクセスを始める時に１回の遅延が発生し、パーティションアクセス過程で０回のメモリバンクを連続してアクセスするので、１回の遅延がさらに発生する。したがって、１回の遅延に６サイクルかかるならば、４×４ブロックの動き予測補償のためにかかる総サイクルは、３６サイクル（６×２＋６×４）である。
【００８１】
もし、奇数フィールドをアクセスする場合には、パーティション１、３、５、１、３、５の順序でアクセスすれば、このときにアクセスされるメモリバンクは、１、３、１、１、３、１の順序からなる。偶数フィールドの場合と同じく、アクセスを始める時に１回の遅延が発生し、中間に１番メモリバンクの連続的なアクセスにより１回の遅延が発生する。したがって、偶数フィールドの場合と同じく、奇数フィールドの場合にも総３６サイクルかかる。
【００８２】
図１４ないし図２１に示すように、フレーム単位のデータをアクセスしようとする場合には、フレーム単位でパーティションを分け、フィールド単位のデータをアクセスしようとする場合には、フィールド単位でパーティションを分けてそれぞれをメモリバンクに対応させることが効率的であるということが分かる。このような特徴を反映したメモリマッピング装置及びメモリマッピング方法の一実施形態を、図２２Ａ及び図２２Ｂを参照して詳細に説明する。
【００８３】
図２２Ａは、本発明によるメモリマッピング装置の他の実施形態の構成を示す図面である。
図２２Ａに示すように、メモリマッピング装置は、符号化方法把握部２２７０、分割部２２７５、メモリ割り当て部２２８０、保存部２２８５で構成される。
保存部２２８５は、図１１Ａで説明した保存部１１２０とその構成と機能が同一であるので、ここで詳細な説明は省略する。
【００８４】
符号化方法把握部２２７０は、映像データの符号化方法を把握する。符号化方法には、フレーム単位の符号化方法及びフィールド単位の符号化方法がある。
分割部２２７５は、映像データをマクロブロックに分割する。そして、符号化方法把握部２２７０により映像データの符号化方法がフレーム単位の符号化方法と把握されれば、分割部２２７５は、マクロブロックをフレーム単位のパーティションに分割する（図１４及び図１５）。一方、符号化方法把握部２２７０により、映像データの符号化方法がフィールド単位の符号化方法と把握されれば、分割部２２７５は、マクロブロックをフィールド単位のパーティションに分割する（図１８及び図１９）。
【００８５】
メモリ割り当て部２２８０は、フレーム単位パーティションまたはフィールド単位パーティションを、保存部２２８５のメモリバンクに対応させる。このとき、メモリ割り当て部２２８０は、隣接したパーティションを相異なるメモリバンクに対応させる。
【００８６】
図２２Ｂは、本発明によるメモリマッピング方法の他の実施形態を示すフローチャートである。
図２２Ｂに示すように、符号化方法把握部２２７０は、映像データの符号化方法を解析する（Ｓ２２００）。分割部２２７５は、ブロック単位のビデオ予測符号化器に適用するために、映像データを符号化の基本単位であるマクロブロックに区分する（Ｓ２２０５）。符号化方法把握部２２７０は、符号化された映像にフレームデータのみ存在しているかどうかを検査する（Ｓ２２１０）。ここで、フレームデータは、偶数フィールド及び奇数フィールドからなり、動き補償時、フレーム単位の予測のみ行われるとき、フレーム映像のみ存在するものとする。
【００８７】
フレームデータだけ存在する場合（Ｓ２２１０で「はい」）に、分割部２２７５は、図１４及び図１５のように、フレーム単位のパーティションにマクロブロックを分割する（Ｓ２２２０）。メモリ割り当て部２２８０は、フレーム単位のパーティションを複数のメモリバンクで構成された保存部に対応させる（Ｓ２２３０）。このとき、メモリ割り当て部２２８０は、隣接するパーティションを相異なるメモリバンクに対応させる。
【００８８】
また、映像データが、フレームデータ以外にフィールドデータ予測を行う場合（Ｓ２２１０で「いいえ」）に、分割部２２７５は、図１８及び図１９のように、フィールド単位のパーティションにマクロブロックを分ける（Ｓ２２４０）。メモリ割り当て部２２８０は、フィールド単位のパーティションを複数のメモリバンクに対応させる（Ｓ２２５０）。このとき、メモリ割り当て部２２８０は、隣接するパーティションを相異なるメモリバンクに対応させる。
【００８９】
また、メモリ割り当て部２２８０は、フレーム単位パーティションまたはフィールド単位パーティションに分けられたパーティションがメモリバンクに対応した後に、それぞれの対応関係を表すアドレス対応参照表を生成し、かつ管理する（Ｓ２２６０）。それにより、デコーダ／エンコーダは、生成したアドレス対応参照表を通じて映像データの所定位置のデータが保存されたメモリバンクの実際アドレスを把握できる。
【００９０】
図２３は、デコーダのメモリバス構造を示す図面である。
図１０に示した独立的にアクセス可能なメモリバンクを利用して遅延発生を減らすためには、特定ハードウェアモジュールが現在メモリをアクセスする途中で、他のモジュールがメモリをアクセスしてはならないという仮定が必要である。そのために、メモリアクセスが多く必要なデータと、そうでないデータとを分離して、独立したメモリに保存する必要がある。
【００９１】
図２３を参照すれば、デコーダコア２３００は、２つの独立したバス２３３０、２３４０を通じて、それぞれ独立したメモリ２３１０、２３２０に連結される。ここで、メモリアクセスが過度な動き予測補償に必要な以前復元映像データは、他のデータと別途のメモリ２３１０に保存する。それにより、デコーダコア２３００が動き予測補償のために以前復元映像データにアクセスする間に、他の必要なデータのために他のメモリ２３２０をアクセスできる。
【００９２】
図２４は、本発明によるメモリマッピング方法で動き予測補償に必要な総サイクルと、従来技術で動き予測補償に必要な総サイクルとを比較した図面である。
図２４を参照すれば、４×４サイズのパーティションから１６×１６サイズのパーティションに対する動き予測補償にかかる総サイクルが図示されており、あらゆる場合において、本発明によるメモリマッピング方法で総サイクルが顕著に減少するということが分かる。
【産業上の利用可能性】
【００９３】
本発明によるメモリマッピング装置及び方法に関する技術分野に適用可能である。
【図面の簡単な説明】
【００９４】
【図１】Ｈ．２６４／ＡＶＣ標準によるデコーダの概略的なブロック図である。
【図２】マクロブロック及びサブマクロブロックのパーティションを示す図面である。
【図３Ａ】バーストモードのタイムダイヤグラムを示す図面である。
【図３Ｂ】バーストモードのタイムダイヤグラムを示す図面である。
【図３Ｃ】バーストモードのタイムダイヤグラムを示す図面である。
【図４】従来の映像データをメモリに保存してアクセスする方法を示す図面である。
【図５】従来の映像データをメモリに保存してアクセスする方法を示す図面である。
【図６】従来の映像データをメモリに保存してアクセスする方法を示す図面である。
【図７】本発明によるメモリマッピング方法の一実施形態を示す図面である。
【図８】本発明によるメモリマッピング方法の一実施形態を示す図面である。
【図９】インターリービングされたメモリ構造を利用したメモリマッピング方法及びアクセス方法を示す図面である。
【図１０Ａ】インターリービングされたメモリ構造を利用したメモリマッピング方法及びアクセス方法を示す図面である。
【図１０Ｂ】インターリービングされたメモリ構造を利用したメモリマッピング方法及びアクセス方法を示す図面である。
【図１１Ａ】本発明によるメモリマッピング装置の一実施形態の構成を示す図面である。
【図１１Ｂ】本発明によるメモリマッピング装置の一実施形態の構成を示す図面である。
【図１２】本発明によるメモリマッピング方法の一実施形態を示すフローチャートである。
【図１３】本発明によるメモリマッピング方法の一実施形態の一部を示すフローチャートである。
【図１４】フレームｌｕｍａデータをメモリにマッピングする方法の一実施形態を示す図面である。
【図１５】フレームｃｈｒｏｍａデータをメモリにマッピングする方法の一実施形態を示す図面である。
【図１６】本発明によるフレーム単位のメモリマッピング方法で、フレーム単位の動き予測補償を行うためにフレーム構造の参照ブロックをアクセスする方法の一実施形態を示す図面である。
【図１７】本発明によるフレーム単位のメモリマッピング方法で、フィールド単位の動き予測補償を行うためにフィールド構造の参照ブロックをアクセスする方法の一実施形態を示す図面である。
【図１８】フィールドｌｕｍａデータをメモリにマッピングする方法を示す図面である。
【図１９】フィールドｃｈｒｏｍａデータをメモリにマッピングする方法を示す図面である。
【図２０】本発明によるフィールド単位のメモリマッピング方法で、フレーム単位の動き予測補償を行うためにフレーム構造の参照ブロックをアクセスする方法の一実施形態を示す図面である。
【図２１】本発明によるフィールド単位のメモリマッピング方法で、フィールド単位の動き予測補償を行うためにフィールド構造の参照ブロックをアクセスする方法の一実施形態を示す図面である。
【図２２Ａ】本発明によるメモリマッピング装置の他の実施形態の構成を示す図面である。
【図２２Ｂ】本発明によるメモリマッピング方法の他の実施形態を示すフローチャートである。
【図２３】デコーダのメモリバス構造を示す図面である。
【図２４】本発明によるメモリマッピング方法で、動き予測補償に必要な総サイクル数と、従来技術で動き予測補償に必要な総サイクル数とを比較した図面である。
【符号の説明】
【００９５】
９００  デコーダコア
９１０  メモリコントローラ
９２０  メモリ
９２２，９２４，９２６，９２８  メモリバンク
１００８  アドレスバス
１１００,２２７５  分割部
１１１０，１１５０  メモリ割り当て部
１１２０，１１７０，２２８５  保存部
１１６０  アドレス発生部
１１８０  データアクセス部
２２７０  符号化方法把握部
２２８０  メモリ割り当て部
２３００  デコーダコア
２３１０，２３１０  メモリ
２３３０，２３４０  バス
【図１】
2006042364.tif 000003
【図２】
2006042364.tif 000004
【図３Ａ】
2006042364.tif 000005
【図３Ｂ】
2006042364.tif 000006
【図３Ｃ】
2006042364.tif 000007
【図４】
2006042364.tif 000008
【図５】
2006042364.tif 000009
【図６】
2006042364.tif 000010
【図７】
2006042364.tif 000011
【図８】
2006042364.tif 000012
【図９】
2006042364.tif 000013
【図１０Ａ】
2006042364.tif 000014
【図１０Ｂ】
2006042364.tif 000015
【図１１Ａ】
2006042364.tif 000016
【図１１Ｂ】
2006042364.tif 000017
【図１２】
2006042364.tif 000018
【図１３】
2006042364.tif 000019
【図１４】
2006042364.tif 000020
【図１５】
2006042364.tif 000021
【図１６】
2006042364.tif 000022
【図１７】
2006042364.tif 000023
【図１８】
2006042364.tif 000024
【図１９】
2006042364.tif 000025
【図２０】
2006042364.tif 000026
【図２１】
2006042364.tif 000027
【図２２Ａ】
2006042364.tif 000028
【図２２Ｂ】
2006042364.tif 000029
【図２３】
2006042364.tif 000030
【図２４】
2006042364.tif 000031