(57)【要約】【課題】フレームメモリを効率的に利用する。【解決手段】フレームメモリ制御部１４が、ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリ１３に格納されるビデオデータのビデオサイズの変更を検出し、ビデオサイズの変更が検出された場合、フレームメモリ制御部１４は、フレームメモリ１３中におけるデータ格納エリアをビデオサイズごとに管理する管理情報を格納する記憶部１５から、変更後のビデオサイズの管理情報を参照して、変更前のデータ格納エリアに格納されたデータを、変更後のデータ格納エリアに乗せ替える。【選択図】図１
2010282553.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリと、
前記フレームメモリ中における前記データ格納エリアを、ビデオサイズごとに管理する管理情報を格納する記憶部と、
前記フレームメモリに格納されるビデオデータの前記ビデオサイズの変更を検出した場合、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えるフレームメモリ制御部と、
を有することを特徴とする半導体集積回路。
【請求項２】
前記フレームメモリ制御部は、前記管理情報に含まれる前記データ格納エリアの使用サイズを参照して、前記データの乗せ替え先の前記データ格納エリアを特定することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記フレームメモリ制御部は、特定された前記データの乗せ替え先の前記データ格納エリアに対応する前記フレームメモリの記憶領域に、乗せ替え前のデータが存在する場合には、前記乗せ替え前のデータを他の記憶部に一旦退避させた後、前記データの乗せ替えを行うことを特徴とする請求項１または２に記載の半導体集積回路。
【請求項４】
前記フレームメモリ制御部は、前記データを１つの前記データ格納エリアに乗せ替えることができない場合には、前記データを分割して、複数の前記データ格納エリアに跨った乗せ替えを行うことを特徴とする請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項５】
前記フレームメモリ制御部は、前記データの乗せ替え時に、前記データに対してアクセスがなされていた場合には前記アクセスを待機させ、前記記憶部は、待機直前のアクセス位置を示すアクセス管理情報を保持し、前記フレームメモリ制御部は、前記データの乗せ替え後に、乗せ替え先の前記データ格納エリアの前記フレームメモリ上での位置に応じて、前記アクセス管理情報を更新し、更新された前記アクセス管理情報をもとに前記アクセスを再開させることを特徴とする請求項１乃至４のいずれかに記載の半導体集積回路。
【請求項６】
フレームメモリ制御部は、ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリに格納されるビデオデータのビデオサイズの変更を検出し、
前記フレームメモリ制御部は、前記ビデオサイズの変更を検出した場合、前記フレームメモリ中における前記データ格納エリアを前記ビデオサイズごとに管理する管理情報を格納する記憶部から、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えることを特徴とするフレームメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像データを扱う半導体集積回路及びフレームメモリ制御方法に関する。
【背景技術】
【０００２】
動画像データを処理するシステムＬＳＩ（Large Scale Integrated circuit）は、ビデオフレームを格納するフレームメモリを有している。ビデオフレームにおいて、デコードするビデオサイズごとに、トップ／ボトムフィールドの映像の色差データと輝度データの使用量は固定となっている。そのため、フレームメモリには、一定容量のビデオデータの未使用エリアが存在する。
【０００３】
図２０は、フレームメモリ内に格納されるビデオフレームの一例と、ビデオサイズ変更前後のフレームメモリの様子を示す図である。
ビデオサイズ変更前のフレームメモリ８０内には、ビデオフレームＶＦ１，ＶＦ２，…，ＶＦｎが格納されている。各ビデオフレームＶＦ１〜ＶＦｎ内においては、トップ／ボトムフィールドの映像の色差データと輝度データなどのビデオデータ（図中の網掛けの領域）が所定の場所に格納される。各ビデオデータの間の領域は、未使用エリアとなっている。
【０００４】
たとえば、解像度がＨＤ（High Definition）からＳＤ（Standard Definition）に変更されるなどして、ビデオサイズが変更されると、フレームメモリ８０において格納されるビデオフレームＶＦ１１，ＶＦ１２，…，ＶＦｍが変更される。また、フレームメモリ８０内における未使用エリアの位置も変更される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１３２３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
フレームメモリの未使用エリアは、データ領域として利用することが考えられるが、図２０のようにビデオサイズの変更があった場合に、未使用エリアも変更されるので、そこに格納していたデータが使用できなくなる問題があった。
【０００７】
上記の点を鑑みて、本発明は、フレームメモリを効率的に利用可能な半導体集積回路及びフレームメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、以下のような半導体集積回路が提供される。
この半導体集積回路は、ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリと、前記フレームメモリ中における前記データ格納エリアを、ビデオサイズごとに管理する管理情報を格納する記憶部と、前記フレームメモリに格納されるビデオデータの前記ビデオサイズの変更を検出した場合、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えるフレームメモリ制御部と、を有する。
【発明の効果】
【０００９】
開示の半導体集積回路及びフレームメモリ制御方法によれば、ビデオサイズの変更後も、フレームメモリのデータ格納エリアに格納されたデータが利用可能となり、フレームメモリを効率的に利用可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態の半導体集積回路の構成を示す図である。
【図２】記憶部に格納されるデータ構成の一例を示す図である。
【図３】アクセス管理情報と、データ格納エリア管理情報の内容を示す図である。
【図４】ビデオサイズ変更時におけるデータ乗せ替え制御を説明する図である。
【図５】データの乗せ替え制御時のデータ格納エリア管理情報の更新の様子を示す図である。
【図６】フレームメモリのデータ格納エリアへの書き込み処理の流れを示すフローチャートである。
【図７】データ格納エリアへのデータの書き込みの一例を示す模式図である。
【図８】フレームメモリのデータ格納エリアからの読み出し処理の流れを示すフローチャートである。
【図９】ビデオフレーム作成処理の流れを示すフローチャートである。
【図１０】データ乗せ替え制御の流れを示すフローチャートである（その１）。
【図１１】データ乗せ替え制御の流れを示すフローチャートである（その２）。
【図１２】データの競合を検出する処理の一例を示す図である。
【図１３】競合発生時のデータ格納エリア管理情報の状態の一例を示す図である。
【図１４】ヒープメモリへ競合するデータを退避する様子を示す図である。
【図１５】データ格納エリア管理情報の更新の様子を示す図である。
【図１６】データの乗せ替え先のデータ格納エリアのサイズが、乗せ替えを行うデータよりも小さい場合のデータ乗せ替え制御を説明する図である。
【図１７】データ乗せ替え時のデータ格納エリア管理情報の状態の一例を示す図である。
【図１８】待機中のアクセスが存在する場合のアクセス管理情報の更新の様子を示す図である。
【図１９】デジタル放送受信装置の概略の構成を示す図である。
【図２０】フレームメモリ内に格納されるビデオフレームの一例と、ビデオサイズ変更前後のフレームメモリの様子を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一観点である実施の形態を、図面を参照して詳細に説明する。
図１は、本実施の形態の半導体集積回路の構成を示す図である。
半導体集積回路１０は、たとえば、デジタル放送受信装置に用いられるシステムＬＳＩであって、ＴＳ分離部１１、ビデオデコーダ１２、フレームメモリ１３、フレームメモリ制御部１４、記憶部１５、ヒープメモリ１６を有している。
【００１２】
ＴＳ分離部１１は、たとえば、図示しない復調回路で受信信号を復調した結果得られるＴＳ（Transport Stream）を入力する。そして、ＴＳ分離部１１は、ＴＳを構成するＴＳパケットのヘッダに記載されている識別情報から、多重化されたＴＳをビデオストリームやオーディオストリームなどに分離する。オーディオストリームを処理する構成については、図示を省略している。
【００１３】
ビデオデコーダ１２は、ビデオストリームを解析し、デコードしてビデオフレームを作成する。
フレームメモリ１３は、ビデオデータを格納するビデオデータ格納エリアと、未使用エリアとを有する。本実施の形態の半導体集積回路１０は、この未使用エリアをデータ格納エリアとして用いる。データ格納エリアには、他のシステムからのデータが、フレームメモリ制御部１４の制御のもと書き込まれる。他のシステムとは、他のアプリケーションを実行するデジタル放送受信装置内のＣＰＵ（Central Processing Unit）などである。
【００１４】
フレームメモリ制御部１４は、ビデオデコーダ１２によるビデオストリームの解析の結果をもとに、ビデオサイズの変更を検出した場合、変更前のビデオフレームのデータ格納エリアに格納されていたデータの乗せ替え制御などを行う。ビデオサイズが変更されると、データ格納エリアのフレームメモリ１３中における位置や大きさが変わるからである。
データの乗せ替え制御の詳細は後述する。フレームメモリ制御部１４は、回路またはソフトウェアにより実現可能である。
【００１５】
記憶部１５は、フレームメモリ中におけるデータ格納エリアを、ビデオサイズごとに管理するデータ格納エリア管理情報を格納する。データ格納エリア管理情報には、たとえば、データ格納エリアの位置、大きさまたは格納されたデータによる使用サイズなどが含まれている。また、記憶部１５は、データ格納エリアへの他のシステムからのアクセスに関するアクセス管理情報を記憶する。
【００１６】
ヒープメモリ１６は、データの乗せ替え制御の際に、後述するデータの競合などが発生した場合に、データの退避先として用いられる。
図２は、記憶部に格納されるデータ構成の一例を示す図である。
【００１７】
アクセス管理情報２０−１〜２０−ｍは、フレームメモリ１３のデータ格納エリアに対して、他のシステムからのアクセスが発生するたびに、フレームメモリ制御部１４によって作成される。
【００１８】
データ格納エリア管理情報２１−１〜２１−ｎは、ビデオデータのビデオサイズごと、且、ビデオフレームに含まれるデータ格納エリアごとに作成されている。後述のデータの乗り換え制御の際に、フレームメモリ制御部１４によって更新される。
【００１９】
図３は、アクセス管理情報と、データ格納エリア管理情報の内容を示す図である。
図３（Ａ）がアクセス管理情報の内容を示し、図３（Ｂ）がデータ格納エリア管理情報の内容を示している。
【００２０】
アクセス管理情報は、ライトポインタ、リードポインタ及びアクセス対象のデータ格納エリアのデータ格納エリア管理情報の位置（たとえば、記憶部１５上におけるアドレス）を有している。アクセスが完了すると、フレームメモリ制御部１４は、そのアクセス管理情報を破棄する。
【００２１】
データ格納エリア管理情報は、データ格納エリアの先頭アドレスを示すフレームメモリ１３の先頭アドレスからのオフセット値、データ格納エリアのサイズ、データ格納エリアに格納されているデータが使用しているサイズを含む。データ格納エリア管理情報は、さらに、後述のデータの乗せ替え制御で、データをヒープメモリ１６に退避させる場合の、ヒープメモリ１６のアドレス（退避先アドレス）を有している。
【００２２】
以下、図１で示した半導体集積回路１０の動作を説明するとともに、本実施の形態のフレームメモリ１３の制御方法を説明する。
まず、ビデオサイズ変更時のデータ乗せ替え制御を説明する。
【００２３】
図４は、ビデオサイズ変更時におけるデータ乗せ替え制御を説明する図である。
ビデオサイズ１の場合において、フレームメモリ１３には、ビデオデータ格納エリアＶＡ１，ＶＡ２，ＶＡ３，ＶＡ４，…，ＶＡｘと、データ格納エリアＤＡ１，ＤＡ２，ＤＡ３，ＤＡ４，…，ＤＡｘが設けられている。
【００２４】
各データ格納エリアＤＡ１〜ＤＡｘは、図２、図３で示したように、データ格納エリア管理情報により管理されている。
ビデオデコーダ１２のデコード中にビデオサイズ１がビデオサイズ２に変更された場合、フレームメモリ制御部１４は、データ格納エリアＤＡ１〜ＤＡｘに格納されているデータの乗せ替え制御を行う。データの乗せ替え制御は、たとえば、ビデオサイズ変更後のビデオデータ格納エリアＶＢ１，ＶＢ２，ＶＢ３，ＶＢ４，…，ＶＢｙへの、ビデオデータの書き込みより前に行う。
【００２５】
まず、フレームメモリ制御部１４は、ビデオサイズ１のデータ格納エリアＤＡ１〜ＤＡｘのデータ格納エリア管理情報を順に参照し、データが格納されているデータ格納エリアを探索する。具体的には、フレームメモリ制御部１４は、図３で示したデータ格納エリア管理情報において、使用サイズが０より大きいものを探索する。この探索によって、たとえば、図４に示すようにデータ格納エリアＤＡ３に、サイズＡのデータ１が格納されていることが検出される。
【００２６】
次に、フレームメモリ制御部１４は、データ１を移すべき、ビデオサイズ２のデータ格納エリアＤＢ１，ＤＢ２，ＤＢ３，ＤＢ４，…，ＤＢｙを探索する。具体的には、フレームメモリ制御部１４は、ビデオサイズ２のデータ格納エリアＤＢ１〜ＤＢｙのデータ格納エリア管理情報を順に参照し、使用サイズが、自身のデータ格納エリアのサイズ以下のものを探索する。すなわち、フレームメモリ制御部１４は、空き容量があるデータ格納エリアＤＢ１〜ＤＢｙを探索する。
【００２７】
この探索によって、たとえば、図４のデータ格納エリアＤＢ３がデータ１を格納可能なエリアとして検出される。そして、フレームメモリ制御部１４は、データ１の乗せ替えを行う。
【００２８】
なお、ここでは、データ格納エリアＤＢ３にデータ１がすべて格納できる場合について示しているが、１つのデータ格納エリアＤＢ３に入りきらない場合の乗せ替え制御については、後述する。
【００２９】
データ１の乗せ替え後、フレームメモリ制御部１４は、データ格納エリア管理情報の更新を行う。
図５は、データの乗せ替え制御時のデータ格納エリア管理情報の更新の様子を示す図である。
【００３０】
図５（Ａ）は、データ格納エリアＤＡ３のデータ格納エリア管理情報の更新の様子を示している。フレームメモリ制御部１４は、データ１の乗せ替え後、データ格納エリア管理情報の使用サイズをＡから０に更新する。
【００３１】
図５（Ｂ）は、データ格納エリアＤＢ３のデータ格納エリア管理情報の更新の様子を示している。フレームメモリ制御部１４は、データ１の乗せ替え後、データ格納エリア管理情報の使用サイズを０からＡに更新する。
【００３２】
ビデオサイズ１のデータ格納エリアＤＡ１〜ＤＡｘに格納されているデータの乗せ替えが終了すると、フレームメモリ制御部１４は、ビデオサイズ２のビデオデータを、ビデオデコーダ１２からビデオデータ格納エリアＶＢ１〜ＶＢｙに格納させる。
【００３３】
このように、本実施の形態の半導体集積回路１０は、フレームメモリ１３の未使用エリアであるデータ格納エリアをビデオサイズごとに管理して、ビデオサイズ変更時にデータ格納エリア管理情報を参照して、データを変更後のデータ格納エリアに乗せ替える。これにより、リアルタイムにビデオサイズが変更されるような場合でも、データ格納エリアに格納していたデータを、サイズ変更後にも継続的に利用することができ、フレームメモリ１３を効率的に利用可能となる。
【００３４】
以下、本実施の形態の半導体集積回路１０によるフレームメモリ１３の制御方法を、フローチャートを用いて詳細に説明する。
まず、フレームメモリ１３のデータ格納エリアへのデータの書き込み処理を説明する。
【００３５】
図６は、フレームメモリのデータ格納エリアへの書き込み処理の流れを示すフローチャートである。
たとえば、デジタル放送受信装置のＣＰＵなどの他のシステムから、フレームメモリ制御部１４に対して、アクセスのためのＯｐｅｎ要求がなされると（ステップＳ１）、フレームメモリ制御部１４は、そのＯｐｅｎ要求を受け付ける（ステップＳ２）。Ｏｐｅｎ要求は、他のシステムからデータ書き込み、または他のシステムへのデータの読み出しなどのアクセスが発生するごとにフレームメモリ制御部１４に対して発行される。なお、以下では簡単のため、１つの書き込み要求がなされた場合の書き込み処理について説明する。
【００３６】
Ｏｐｅｎ要求を受け付けたフレームメモリ制御部１４は、図３（Ａ）で示したようなアクセス管理情報を生成する（ステップＳ３）。このときフレームメモリ制御部１４は、データ格納エリア管理情報を参照して、最も小さい値のオフセットをアクセス管理情報のライトポインタとして設定する。また、フレームメモリ制御部１４は、データ格納エリア管理情報位置として、ライトポイントが設定されたデータ格納エリアのデータ格納エリア管理情報の、記憶部１５上の位置を設定する。
【００３７】
その後、他のシステムからデータ書き込み要求が発行されると（ステップＳ４）、フレームメモリ制御部１４は、データ書き込み要求を受け付ける（ステップＳ５）。そして、フレームメモリ制御部１４は、アクセス管理情報で指定されたライトポインタから、データエリア管理情報を参照しつつ、データ格納エリアへのデータの書き込み制御を開始する（ステップＳ６）。
【００３８】
図７は、データ格納エリアへのデータの書き込みの一例を示す模式図である。
ここでは、書き込みデータ“ａａａａａａａａ”，“ｂｂｂｂｂｂｂｂ”，“ｃｃｃｃｃｃｃｃ”，“ｄｄｄｄｄｄｄｄ”，“ｅｅｅｅｅｅｅｅ”，“ｆｆｆｆｆｆｆｆ”をフレームメモリ１３に書き込む場合について示している。
【００３９】
フレームメモリ制御部１４は、書き込みデータが大きい場合には、ビデオデータ格納エリアＶＡ１，ＶＡ２，ＶＡ３，ＶＡ４に書き込まないように、複数のデータ格納エリアＤＡ１，ＤＡ２，ＤＡ３に分割して書き込む。
【００４０】
書き込み実施後、フレームメモリ制御部１４は、アクセス管理情報のライトポインタを更新し、次の書き込み位置を設定する（ステップＳ７）。
次に、フレームメモリ１３のデータ格納エリアからのデータの読み出し処理を説明する。
【００４１】
図８は、フレームメモリのデータ格納エリアからの読み出し処理の流れを示すフローチャートである。
他のシステムからフレームメモリ制御部１４に対して、リードアクセスのためのＯｐｅｎ要求がなされると（ステップＳ１０）、フレームメモリ制御部１４は、そのＯｐｅｎ要求を受け付ける（ステップＳ１１）。Ｏｐｅｎ要求を受け付けたフレームメモリ制御部１４は、図３（Ａ）で示したようなアクセス管理情報を生成する（ステップＳ１２）。このときフレームメモリ制御部１４は、たとえば、他のシステムから指定された読み出し位置を、リードポインタに設定する。また、フレームメモリ制御部１４は、データ格納エリア管理情報位置として、リードポインタが設定されたデータ格納エリアのデータ格納エリア管理情報の、記憶部１５上での位置を設定する。
【００４２】
その後、他のシステムからデータ読み出し要求が発行されると（ステップＳ１３）、フレームメモリ制御部１４は、データ読み出し要求を受け付ける（ステップＳ１４）。そして、フレームメモリ制御部１４は、アクセス管理情報で指定されたリードポインタから、データエリア管理情報を参照しつつ、データ格納エリアからのデータの読み出し制御を開始する（ステップＳ１５）。
【００４３】
以上のようにして、データ格納エリアへのデータ書き込み、またはデータ格納エリアからのデータの読み出しが行われる。
次に、ビデオフレーム作成時の半導体集積回路１０の動作を説明する。
【００４４】
図９は、ビデオフレーム作成処理の流れを示すフローチャートである。
図１のＴＳ分離部１１によりビデオストリームがＴＳから分離されると、フレームメモリ制御部１４は、ビデオデコーダ１２に対してデコードの開始要求を行う（ステップＳ２０）。要求を受けたビデオデコーダ１２は、ビデオストリームの解析を行い（ステップＳ２１）、ビデオサイズを決定する（ステップＳ２２）。そして、フレームメモリ制御部１４は、ビデオサイズの変更が行われたか否かを判定する（ステップＳ２３）。変更が行われた場合、フレームメモリ制御部１４は、データの乗せ替え制御を行う（ステップＳ２４）。フレームメモリ制御部１４は、ステップＳ２３の処理で、ビデオサイズに変更がないと判定した場合、またはステップＳ２４の処理後、ビデオデコーダ１２にビデオデータのデコードを行わせ、ビデオフレームを作成させる（ステップＳ２５）。
【００４５】
次に、上記のステップＳ２４の処理であるデータの乗せ替え制御の詳細を説明する。
図１０、図１１は、データ乗せ替え制御の流れを示すフローチャートである。
まず、フレームメモリ制御部１４は、ビデオデータまたはデータのリードまたはライト処理中であるか否かを判定する（ステップＳ３０）。ビデオサイズの変更中は、リード及びライト処理を禁止するため、フレームメモリ制御部１４は、リードまたはライト処理中の場合には、リードまたはライトアクセスを待機させ、アクセス管理情報の更新を行う（ステップＳ３１）。具体的には、フレームメモリ制御部１４は、アクセス管理情報のリードポインタ、ライトポインタの設定や、アクセスしていたデータ格納エリアのデータ格納エリア管理情報の記憶部１５上での位置を設定する。
【００４６】
ステップＳ３０またはステップＳ３１の処理の後、フレームメモリ制御部１４は、フレームメモリ１３へのアクセスを禁止する（ステップＳ３２）。
次に、フレームメモリ制御部１４は、データの乗せ替え先となるデータ格納エリアに対応するフレームメモリ１３の記憶領域に、乗せ替え前のデータであるか否か判定する（ステップＳ３３）。データの乗せ替えの際、フレームメモリ１３の乗せ替え先となるアドレスに、乗せ替え前のデータがあると、上書きされてしまう（以下、この事象をデータの競合という）。
【００４７】
図１２は、データの競合を検出する処理の一例を示す図である。
また、図１３は、競合発生時のデータ格納エリア管理情報の状態の一例を示す図である。
【００４８】
図１３（Ａ）は、ビデオサイズ１のデータ格納エリアＤＡ１，ＤＡ２，ＤＡ３のデータ格納エリア管理情報の状態を示し、図１３（Ｂ）は、ビデオサイズ２のデータ格納エリアＤＢ１のデータ格納エリア管理情報の状態を示す図である。各データ格納エリア管理情報には、オフセット、サイズ、使用サイズが設定され、退避先アドレスは設定されていない状態（ＮＵＬＬ）となっている。
【００４９】
たとえば、図１２に示すように、データ格納エリアＤＡ１に格納されたデータ１を、ビデオサイズ２のデータ格納エリアＤＢ１に乗せ替える場合、フレームメモリ制御部１４は、データ格納エリアＤＢ１におけるデータ格納予定領域を算出する。
【００５０】
フレームメモリ制御部１４は、データ格納エリアＤＡ１のデータ格納エリア管理情報と、データ格納エリアＤＢ１のデータ格納エリア管理情報を参照してデータ格納予定領域を算出する。図１３（Ａ），（Ｂ）に示す例では、データ１のサイズは０ｘ１６バイトで、データ格納エリアＤＢ１のオフセットは０ｘ１１２であるので、データ格納予定領域は０ｘ１１２〜０ｘ１２８となる。
【００５１】
データ格納予定領域の算出後、フレームメモリ制御部１４は、図１３（Ａ）の矢印で示すように、ビデオサイズ１におけるデータ格納エリアＤＡ１，ＤＡ２，ＤＡ３…の順序で、データ格納エリア管理情報の探索を行う。そして、フレームメモリ制御部１４は、使用サイズが０より大きく、且、オフセットが、算出したデータ格納予定領域内のデータ格納エリアを探す。図１３（Ａ）の例では、データ格納エリアＤＡ１，ＤＡ２がこれに該当する。
【００５２】
そこで、フレームメモリ制御部１４は、データ格納エリアＤＡ１，ＤＡ２における、データ１，データ２のデータ格納アドレスを算出する。データ格納エリアＤＡ３については、図１３（Ａ）に示すように、オフセットが０ｘ１５２で、データ格納予定領域０ｘ１１２〜０ｘ１２８の範囲外であり、データの競合は発生しないのでデータ格納アドレスの算出は行われない。
【００５３】
このように、フレームメモリ制御部１４は、データ格納予定領域を算出して、その範囲に、乗せ替え前のデータを含むデータ格納エリアの先頭アドレスがあるか否かを判定することで、データの競合を検出することができる。図１２、図１３の場合には、データ格納エリアＤＡ１のデータ１と、データ格納エリアＤＡ２のデータ２とが、データ１の乗せ替え時に競合することが検出される。
【００５４】
フレームメモリ制御部１４は、データの競合を検出した場合、ヒープメモリ１６に、競合するデータをコピーするとともに、データ格納エリア管理情報の更新を行う（ステップＳ３４）。
【００５５】
図１４は、ヒープメモリへ競合するデータを退避する様子を示す図である。
また、図１５は、データ格納エリア管理情報の更新の様子を示す図である。
図１２、図１３の例のように、データ格納エリアＤＡ１，ＤＡ２のデータ１とデータ２が競合すると検出された場合、フレームメモリ制御部１４は、データ１を、ヒープメモリ１６のアドレスＸから書き込み、データ２をアドレスＹから書き込む。その後、図１５（Ａ）に示すように、データ格納エリアＤＡ１のデータ格納エリア管理情報の退避先アドレスをＮＵＬＬから、ヒープメモリ１６のアドレスＸに更新する。同様に、フレームメモリ制御部１４は、図１５（Ｂ）に示すように、データ格納エリアＤＢ１のデータ格納エリア管理情報の退避先アドレスをＮＵＬＬから、ヒープメモリ１６のアドレスＹに更新する。
【００５６】
ステップＳ３３の処理で、乗せ替え先データ格納エリアのデータが乗せ替え前のデータでない（データの競合が発生しない）と判定された場合、あるいはステップＳ３４の処理の後、データの乗せ替えを実行する（ステップＳ３５）。
【００５７】
データの競合が発生しない場合には、フレームメモリ制御部１４は、図４で示したようなデータの乗せ替え処理を実行する。
ただし、乗せ替え先のデータ格納エリアのサイズが、乗せ替えを行うデータよりも小さい場合、フレームメモリ制御部１４は、以下のようなデータの乗せ替え制御を行う。
【００５８】
図１６は、データの乗せ替え先のデータ格納エリアのサイズが、乗せ替えを行うデータよりも小さい場合のデータ乗せ替え制御を説明する図である。
また、図１７は、データ乗せ替え時のデータ格納エリア管理情報の状態の一例を示す図である。
【００５９】
図１６では、データ格納エリアＤＡ１に格納された、サイズが０ｘ１２バイトのデータ１に対する、ビデオサイズ変更時の乗せ替え制御の様子が示されている。図１７（Ａ）において、データ格納エリアＤＡ１のオフセットの初期値は０ｘ１００、サイズは０ｘ１２バイト、使用サイズの初期値は０ｘ１２バイトとなっている。
【００６０】
フレームメモリ制御部１４は、データ１を移すべき、データ格納エリアＤＢ１，ＤＢ２，ＤＢ３…を探索する。ここで、たとえば、図１７（Ｂ）に示すような、使用サイズの初期値が０ｘ０バイトである、データ格納エリアＤＢ１が選択される。
【００６１】
ただし、データ格納エリアＤＢ１のサイズは、０ｘ８バイトであるため、０ｘ１２バイトのデータ１をすべて格納できない。そこで、フレームメモリ制御部１４は、ステップＳ３３の処理で、データの競合が検出されなければ、まず、データ格納エリアＤＡ１の先頭アドレスから０ｘ８バイトのデータをデータ格納エリアＤＢ１に乗せ替える。そして、フレームメモリ制御部１４は、図１７（Ａ）に示すように、データ格納エリアＤＡ１のオフセットを一時的に、０ｘ１００から０ｘ１０８に変更する。また、フレームメモリ制御部１４は、データ格納エリアＤＡ１の使用サイズを、０ｘ１２バイトから０ｘ４バイトに変更し、図１７（Ｂ）に示すように、データ格納エリアＤＢ１の使用サイズを０ｘ０バイトから０ｘ８バイトに変更する。
【００６２】
その後、フレームメモリ制御部１４は、０ｘ１０８のオフセットからの残りの０ｘ４バイト分のデータを移すべき、データ格納エリアＤＢ２，ＤＢ３…を探索する。たとえば、図１７（Ｃ）に示すような、使用サイズの初期値が０ｘ０のデータ格納エリアＤＢ２が選択される。
【００６３】
フレームメモリ制御部１４は、０ｘ１０８のオフセットからの０ｘ４バイト分のデータを、データ格納エリアＤＢ２に乗せ替える際に、ステップＳ３３の処理によりデータの競合が発生しないか検出する。そして、データの競合が検出されなければ、フレームメモリ制御部１４は、データ１の残りの０ｘ４バイトを、データ格納エリアＤＢ２に乗せ替える。そして、フレームメモリ制御部１４は、図１７（Ａ）に示すように、データ格納エリアＤＡ１のオフセットを、０ｘ１００に戻すとともに、使用サイズを０ｘ０バイトとする。また、フレームメモリ制御部１４は、データ格納エリアＤＢ２の使用サイズを、図１７（Ｃ）に示すように、０ｘ０バイトから０ｘ４バイトに変更する。
【００６４】
以上のように、半導体集積回路１０は、乗せ替え先のデータ格納エリアのサイズが、データのサイズよりも小さい場合でも、データを分割して複数のデータ格納エリアに跨って乗せ替えるようにしたので、フレームメモリ１３を効率よく使用することができる。
【００６５】
一方、ステップＳ３３の処理で、データの競合が検出された場合、前述したように、フレームメモリ制御部１４は、データをヒープメモリ１６に一旦退避させたのち、ヒープメモリ１６からデータを取得して、乗せ替え先のデータ格納エリアに乗せ替える。
【００６６】
次に、フレームメモリ制御部１４は、データの乗せ替え元がヒープメモリ１６か否かを判定する（ステップＳ３６）。乗せ替え元がヒープメモリ１６であった場合には、フレームメモリ制御部１４は、ヒープメモリ１６を解放し、図１５に示したようなデータ格納エリア管理情報で管理されている退避先アドレスを、再びＮＵＬＬに戻す（ステップＳ３７）。
【００６７】
次に、フレームメモリ制御部１４は、ステップＳ３０の処理における判定結果から、リードアクセスやライトアクセスが待機中であるか否かを判定する（ステップＳ３８）。リードアクセスやライトアクセスが待機中の場合、フレームメモリ制御部１４は、アクセス管理情報の更新を行う（ステップＳ３９）。
【００６８】
図１８は、待機中のアクセスが存在する場合のアクセス管理情報の更新の様子を示す図である。
図１８（Ａ）では、ビデオサイズ１のデータ格納エリアＤＡ３からビデオサイズ２のデータ格納エリアＤＢ４に、０ｘ４０バイトのデータ１を乗せ替えた様子を示している。また、データ格納エリアＤＡ３のオフセットは０ｘ１００であり、データ格納エリアＤＢ４のオフセットは０ｘ１２０である。
【００６９】
図１８（Ｂ）では、図１８（Ａ）で示されるようなデータ１の乗せ替えが行われた後に、アクセス管理情報が更新される様子を示している。図１８（Ｂ）で示される例において、更新前のアクセス管理情報では、フレームメモリ１３の０ｘ１２０の位置にライトポインタが設定されている。リードポインタはＮＵＬＬである。また、データ格納エリア管理情報位置として、ビデオサイズ１のデータ格納エリアＤＡ３の位置が設定されている。
【００７０】
フレームメモリ制御部１４は、データの乗せ替え後、図１８（Ｂ）に示すようなアクセス管理情報において、ライトポインタとデータ格納エリア管理情報位置を更新する。
ビデオサイズ１のデータ格納エリアＤＡ３に設定されたライトポインタ０ｘ１２０は、オフセット０ｘ１２０が先頭アドレスのデータ格納エリアＤＢ４では、０ｘ１４０にあたる。そのため、フレームメモリ制御部１４は、ライトポインタを０ｘ１２０から、０ｘ１４０に更新し、データ格納エリア管理情報位置を、ビデオサイズ１のデータ格納エリアＤＡ３のものから、ビデオサイズ２のデータ格納エリアＤＢ４のものに更新する。
【００７１】
フレームメモリ制御部１４は、上記のようなアクセス管理情報の更新処理を行うことによって、データの乗せ替え後も、そのデータに対して、待機中のアクセスを継続して行わせることができる。
【００７２】
ステップＳ３８，Ｓ３９の処理が終了すると、フレームメモリ制御部１４は、全データ格納エリアのデータの乗せ替えが完了したか否かを判定し（ステップＳ４０）、完了していなければ、ステップＳ３３からの処理を繰り返す。全データ格納エリアのデータの乗せ替えが完了した場合には、フレームメモリ制御部１４は、フレームメモリ１３へのアクセス禁止を解除する（ステップＳ４１）。
【００７３】
さらに、フレームメモリ制御部１４は、リードアクセスやライトアクセスが待機中であるか否かを判定する（ステップＳ４２）。リードアクセスやライトアクセスが待機中の場合、フレームメモリ制御部１４は、アクセス管理情報に設定されたライトポインタまたはリードポインタから、ライト処理またはリード処理を再開し（ステップＳ４３）、データの乗せ替え制御を終了する。リードアクセスやライトアクセスが待機中でない場合には、そのままデータの乗せ替え制御を終了する。
【００７４】
以上のように、本実施の形態の半導体集積回路１０では、フレームメモリ１３の未使用エリアであるデータ格納エリアをビデオサイズごとに管理して、ビデオサイズ変更時にデータ格納エリア管理情報を参照して、データを変更後のデータ格納エリアに乗せ替える。これにより、リアルタイムにビデオサイズが変更されるような場合でも、データ格納エリアに格納していたデータを、サイズ変更後にも継続的に利用することができ、フレームメモリ１３を効率的に利用可能となる。
【００７５】
ところで、図１のような半導体集積回路１０は、たとえば、以下のようなデジタル放送受信装置に搭載される。
図１９は、デジタル放送受信装置の概略の構成を示す図である。
【００７６】
デジタル放送受信装置５０は、図１で示した半導体集積回路１０と、選局／復調回路５１と、オーディオデコーダ５２と、ＣＰＵ５３と、メモリ５４を有している。
選局／復調回路５１は、アンテナ５１ａと接続され、選局及び復調処理などを行う。
【００７７】
オーディオデコーダ５２は、図１に示した半導体集積回路１０のＴＳ分離部１１において分離されたオーディオストリームをデコードして、オーディオデータを出力する。
ＣＰＵ５３は、デジタル放送受信装置５０の各部を制御する。
【００７８】
メモリ５４は、ＣＰＵ５３が実行するプログラムやデータなどを格納している。
このようなデジタル放送受信装置５０において、選局／復調回路５１は、アンテナ５１ａを介して選局された放送信号を受信すると、放送信号を復調し、多重化されたデジタル放送のＴＳを出力する。半導体集積回路１０は、ＴＳをビデオストリームとオーディオストリームに分離するとともに、ビデオストリームをデコードしてビデオデータを出力する。オーディオストリームはオーディオデコーダ５２に入力されデコーダされ、オーディオデータとして出力される。また、半導体集積回路１０は、前述したように、フレームメモリ１３内のデータ格納エリアに、たとえば、ＣＰＵ５３が実行するアプリケーションのデータなどを格納できる。
【００７９】
たとえば、受信中の放送信号の解像度がＨＤからＳＤに変更されるなどして、ビデオサイズが変更されると、半導体集積回路１０は、図１１、図１２で示したようなデータの乗せ替え制御を行う。これにより、データ格納エリアに格納したデータが、サイズ変更後にも引き続き、ＣＰＵ５３などで利用可能になる。
【００８０】
以上、実施の形態に基づき、本発明の半導体集積回路及びフレームメモリ制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００８１】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリと、
前記フレームメモリ中における前記データ格納エリアを、ビデオサイズごとに管理する管理情報を格納する記憶部と、
前記フレームメモリに格納されるビデオデータの前記ビデオサイズの変更を検出した場合、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えるフレームメモリ制御部と、
を有することを特徴とする半導体集積回路。
【００８２】
（付記２）  前記フレームメモリ制御部は、前記管理情報に含まれる前記データ格納エリアの使用サイズを参照して、前記データの乗せ替え先の前記データ格納エリアを特定することを特徴とする付記１記載の半導体集積回路。
【００８３】
（付記３）  前記フレームメモリ制御部は、特定された前記データの乗せ替え先の前記データ格納エリアに対応する前記フレームメモリの記憶領域に、乗せ替え前のデータが存在する場合には、前記乗せ替え前のデータを他の記憶部に一旦退避させた後、前記データの乗せ替えを行うことを特徴とする付記１または２に記載の半導体集積回路。
【００８４】
（付記４）  前記フレームメモリ制御部は、乗せ替え先の前記データ格納エリアにおけるデータ格納予定領域を算出して、前記データ格納予定領域内に、前記乗せ替え前のデータを有した前記データ格納エリアの先頭アドレスが存在する場合には、前記乗せ替え前のデータを前記他の記憶部に退避させることを特徴とする付記３記載の半導体集積回路。
【００８５】
（付記５）  前記フレームメモリ制御部は、前記データを１つの前記データ格納エリアに乗せ替えることができない場合には、前記データを分割して、複数の前記データ格納エリアに跨った乗せ替えを行うことを特徴とする付記１乃至３のいずれかに記載の半導体集積回路。
【００８６】
（付記６）  前記フレームメモリ制御部は、前記データの乗せ替え時に、前記データに対してアクセスがなされていた場合には前記アクセスを待機させ、前記記憶部は、待機直前のアクセス位置を示すアクセス管理情報を保持し、前記フレームメモリ制御部は、前記データの乗せ替え後に、乗せ替え先の前記データ格納エリアの前記フレームメモリ上での位置に応じて、前記アクセス管理情報を更新し、更新された前記アクセス管理情報をもとに前記アクセスを再開させることを特徴とする付記１乃至５のいずれかに記載の半導体集積回路。
【００８７】
（付記７）  前記アクセス管理情報は、待機直前のライトポインタまたはリードポインタと、前記アクセスがなされた前記データ格納エリアの前記管理情報が格納されている前記記憶部上での位置と、を含むことを特徴とする付記６記載の半導体集積回路。
【００８８】
（付記８）  フレームメモリ制御部は、ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリに格納されるビデオデータのビデオサイズの変更を検出し、
前記フレームメモリ制御部は、前記ビデオサイズの変更を検出した場合、前記フレームメモリ中における前記データ格納エリアを前記ビデオサイズごとに管理する管理情報を格納する記憶部から、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えることを特徴とするフレームメモリ制御方法。
【００８９】
（付記９）  ビデオデータ格納エリアとデータ格納エリアとを有するフレームメモリと、
前記フレームメモリ中における前記データ格納エリアを、ビデオサイズごとに管理する管理情報を格納する記憶部と、
前記フレームメモリに格納されるビデオデータの前記ビデオサイズの変更を検出した場合、変更後の前記ビデオサイズの前記管理情報を参照して、変更前の前記データ格納エリアに格納されたデータを、変更後の前記データ格納エリアに乗せ替えるフレームメモリ制御部と、
を有することを特徴とするデジタル放送受信装置。
【符号の説明】
【００９０】
１０  半導体集積回路
１１  ＴＳ分離部
１２  ビデオデコーダ
１３  フレームメモリ
１４  フレームメモリ制御部
１５  記憶部
１６  ヒープメモリ
【図１】
2010282553.tif 000003
【図２】
2010282553.tif 000004
【図３】
2010282553.tif 000005
【図４】
2010282553.tif 000006
【図５】
2010282553.tif 000007
【図６】
2010282553.tif 000008
【図７】
2010282553.tif 000009
【図８】
2010282553.tif 000010
【図９】
2010282553.tif 000011
【図１０】
2010282553.tif 000012
【図１１】
2010282553.tif 000013
【図１２】
2010282553.tif 000014
【図１３】
2010282553.tif 000015
【図１４】
2010282553.tif 000016
【図１５】
2010282553.tif 000017
【図１６】
2010282553.tif 000018
【図１７】
2010282553.tif 000019
【図１８】
2010282553.tif 000020
【図１９】
2010282553.tif 000021
【図２０】
2010282553.tif 000022