(57)【要約】【課題】再生途中でピクチャサイズが変化する符号化方式で符号化された動画圧縮ストリームの復号処理を既存の処理方法でそのまま行うと、適切な表示ができなくなる可能性が生じていた。【解決手段】本発明のデータ転送装置は、バスを流れるアドレス情報を取得することにより記憶装置内に記憶されているピクチャデータに対する画像表示装置からのアクセスを監視する監視手段と、取得したアドレス情報に基づいて画像表示装置からのアクセスが終了したピクチャデータを特定する特定手段と、特定手段で特定されたピクチャデータを記憶装置内の所定のアドレスに転送させる転送手段と、を具備する。当該構成により、記憶装置内に残存しているピクチャデータを画像表示装置の表示を乱すことなく適切な位置に転送することができる。【選択図】図１
2012186611.tif 000002
【特許請求の範囲】
【請求項１】
バスを流れるアドレス情報を取得することにより記憶装置内に記憶されているピクチャデータに対する画像表示装置からのアクセスを監視する監視手段と、
前記取得したアドレス情報に基づいて前記画像表示装置からのアクセスが終了した前記ピクチャデータを特定する特定手段と、
前記特定手段で特定されたピクチャデータを前記記憶装置内の所定のアドレスに転送させる転送手段と、
を具備するデータ転送装置。
【請求項２】
転送させるピクチャデータに関する情報を一時記憶する第１記憶手段を更に有し、
前記特定手段は、前記転送させるピクチャデータに関する情報から特定されるデータであって、前記画像表示装置からのアクセスが終了したピクチャデータを、転送可能なピクチャデータとして特定する、
請求項１に記載のデータ転送装置。
【請求項３】
転送させるピクチャデータの転送単位を記憶する第２記憶手段を更に有し、
前記転送手段は、前記特定手段で特定されたピクチャデータを前記転送単位に従って転送させる、
請求項１又は請求項２のいずれかに記載のデータ転送装置。
【請求項４】
前記転送させるピクチャデータに関する情報から特定されるピクチャデータ全てを前記転送手段が転送させた場合に、転送が完了したこと示す情報を設定する設定手段を更に具備する、
請求項２に記載のデータ転送装置。
【請求項５】
前記設定手段は、前記転送させるピクチャデータに関する情報から特定されるピクチャデータ全てを前記転送手段が転送させた場合に、前記画像表示装置のアクセス先アドレスを転送後のピクチャデータの先頭アドレスに設定する、
請求項４に記載のデータ転送装置。
【請求項６】
データ転送が行われているかどうかに関する情報を記憶する第３記憶手段を更に有し、
外部から入力した転送開始指示に基づいて前記第３記憶手段にデータ転送が行われていることを示す情報が記憶され、前記設定手段から入力した転送完了指示に基づいて前記第３記憶手段にデータ転送が行われていないことを示す情報が記憶される、
請求項４に記載のデータ転送装置。
【請求項７】
バスを流れるアドレス情報を取得することにより画像表示装置から記憶装置内に記憶されているピクチャデータに対するアクセスを監視し、
前記取得したアドレス情報に基づいて前記画像表示装置からのアクセスが終了した前記ピクチャデータを特定し、
前記特定されたピクチャデータを前記記憶装置内の所定のアドレスに転送する、
データ転送方法。
【請求項８】
データの転送単位を設定し、
転送させるピクチャデータのうち、前記取得したアドレス情報に基づいて、前記画像表示装置からのアクセスが終了した前記転送単位分のデータを特定し、
前記特定された転送単位分のデータを転送する転送処理を繰り返すことによりピクチャデータを前記記憶装置内の所定のアドレスに転送する、
請求項７に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置及び転送方法に関し、特に記録装置内に一時記憶されているピクチャデータを転送させるデータ転送装置及び転送方法に関する。
【背景技術】
【０００２】
近年、画像に対する高精細化の流れから、高い圧縮率を持つ符号化方式に従って画像が符号化されている。このような高圧縮率の符号化方式には、例えばＩＴＵ−Ｔ（国際電気通信連合）で標準化されたＨ．２６４／ＡＶＣがある。
【０００３】
Ｈ．２６４／ＡＶＣでは、復号した画像を格納するバッファメモリの最大サイズ（ＭａｘＤＰＢ）が規定されている。実際には、この規格で定められるデータ容量に加えて表示装置で表示するピクチャ１枚分のデータ容量を合わせた容量のバッファメモリが画像復号装置に実装される。図７に、ＣＰＵ（Central Processing Unit）が行うメモリ管理の様子を示す。
【０００４】
図７では、ピクチャ４枚分のデータ容量がバッファメモリとして復号に必要であるとして規格で定められているとし、表示用の１枚と合わせたピクチャ５枚分のデータ容量のバッファメモリが実装されている場合について説明する。当該バッファメモリは、ＣＰＵによってピクチャサイズに基づいた５つの領域に区分けされている。ＣＰＵは、読み込んだ圧縮動画ストリームに対して復号処理を行い、復号したピクチャをバッファメモリの上記区分けされた領域へ格納していく（a）。規格で定められる枚数分のピクチャが復号されると、バッファに格納された復号済みのピクチャは、ピクチャの表示順序を表すＰＯＣ（Picture Order Count）の小さいピクチャから表示装置へ出力される（ｂ）。また、ＰＯＣ＝０のピクチャが表示装置で表示されている間に、新たに復号されたピクチャがバッファメモリに格納される（ｃ）。
【０００５】
表示装置は、ＰＯＣ＝０のピクチャの表示が終わるとＰＯＣ＝１のピクチャを表示し、ＣＰＵは、表示が終わったＰＯＣ＝０のピクチャをバッファメモリから削除する（ｄ）。ＣＰＵは、削除した領域に新たに復号したピクチャを格納する（ｅ）。このようにＣＰＵがバッファメモリを管理することで、表示装置において適切に画像が表示される。
【０００６】
一方、高い圧縮率を有する符号化方式に基づいて符号化された画像を復号する画像処理部には、高い処理能力と高いスループットが要求される。例えば、特許文献１には、画像処理を行うＬＳＩに、バッファに所定量のデータが蓄積される前にバースト転送を開始させる制御を行う機能を搭載している。当該機能を搭載することで、データの空読みを防止し、スループットを向上させている。
【０００７】
特許文献２には、フレームメモリとして２つのバッファを備え、当該バッファにそれぞれ専用のアドレスストローブ信号と出力イネーブル信号を設けて独立に制御するメモリ制御方法が開示されている。
【０００８】
また、符号化方式自体にも、より高い圧縮率や柔軟性を実現するために様々な技術開発が行われている。上記の例の符号化方式では、１つのビットストリームの中で、複数のシーケンスを扱うことができ、複数のピクチャサイズで圧縮されたデータを１つのビットストリームの中に含めることができる点を一つの特徴としている。これに対して、非特許文献１には、柔軟性を高めるため再生途中でピクチャサイズを変更することができる符号化方式が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１６５４８５号公報
【特許文献２】特開平６−３３２４１３号公報
【非特許文献】
【００１０】
【非特許文献１】「SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS. Infrastructure of audiovisual services - Coding of moving video. Advanced video coding for generic audiovisual services.」 Recommendation ITU-T H.264  2009年3月発行
【発明の概要】
【発明が解決しようとする課題】
【００１１】
再生途中でピクチャサイズが変化しない符号化方式で符号化された動画圧縮ストリームの復号処理を行うＣＰＵは、復号開始時に動画圧縮ストリームのピクチャサイズを検出し、検出したピクチャサイズ毎にバッファメモリを区分けしてメモリ領域を管理している。
【００１２】
しかしながら、再生途中でピクチャサイズが変化する符号化方式で符号化された動画圧縮ストリームの復号処理を上記ＣＰＵでそのまま行うと、適切な表示ができなくなる可能性が生じる。
【００１３】
図８に、再生途中でピクチャサイズが変化した場合の復号処理の様子を示す。上述の例と同様、ＣＰＵは、復号した画像を予め行った区分けに従ってバッファメモリに格納し、表示装置はＰＯＣが最も小さい画像を表示する（ａ）。ここで、上記非特許文献１のＣ２．３で規定されているように、ピクチャサイズが変更された場合、ＣＰＵは、現在表示中のピクチャを除きバッファメモリからピクチャを削除する（ｂ）。ＣＰＵは、ピクチャサイズ変化後のピクチャサイズに合わせてメモリの再区分けを行い、復号したピクチャを再区分けに従ってバッファメモリに格納していく（ｃ）。
【００１４】
この場合、現在表示されているサイズ変化前のピクチャが残っているため、新たに区分けした領域のうち、第１領域と第２領域にピクチャを格納することができない（ｄ）。従って、規格で定められたピクチャ枚数分、バッファに格納できない事態が生じ得るため、表示装置が適切に画像を表示することができないといった問題が生じていた。
【課題を解決するための手段】
【００１５】
本発明のデータ転送装置は、バスを流れるアドレス情報を取得することにより記憶装置内に記憶されているピクチャデータに対する画像表示装置からのアクセスを監視する監視手段と、前記取得したアドレス情報に基づいて前記画像表示装置からのアクセスが終了した前記ピクチャデータを特定する特定手段と、前記特定手段で特定されたピクチャデータを前記記憶装置内の所定のアドレスに転送させる転送手段と、を具備する。本発明のデータ転送装置によれば、記憶装置内に記憶されているピクチャデータを画像表示装置における画像表示を乱すことなくデータを転送させることができる。
【００１６】
また、本発明のデータ転送方法は、バスを流れるアドレス情報を取得することにより画像表示装置から記憶装置内に記憶されているピクチャデータに対するアクセスを監視する監視ステップと、前記取得したアドレス情報に基づいて前記画像表示装置からのアクセスが終了した前記ピクチャデータを特定する特定ステップと、前記特定手段で特定されたピクチャデータを前記記憶装置内の所定のアドレスに転送させる転送ステップと、を有する。本発明のデータ転送方法によれば、記憶装置内に記憶されているピクチャデータを画像表示装置における画像表示を乱すことなくデータを転送させることができる。
【発明の効果】
【００１７】
本発明によれば、再生中にピクチャサイズが変更された場合にも、メモリ領域の断片化を防ぎ、ピクチャサイズ変更後のピクチャを再区分けに従って格納することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかる画像再生システムの構成を示したブロック図である。
【図２】実施の形態１にかかる画像復号処理の流れを示したフローチャートである。
【図３】実施の形態１にかかる画像復号処理におけるバッファメモリ内のデータの様子を示した概念図である。
【図４】実施の形態１にかかるデータ転送装置の構成を示したブロック図である。
【図５】実施の形態１にかかる制御プログラムの処理フローを示した図である。
【図６】実施の形態１にかかるデータ転送の処理フローを示した図である。
【図７】背景技術にかかる画像復号処理におけるバッファメモリ内のデータの様子を示した概念図である。
【図８】背景技術にかかる画像復号処理におけるバッファメモリ内のデータの様子を示した概念図である。
【発明を実施するための形態】
【００１９】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態１に係る画像再生システムの構成を示したブロック図である。本画像再生システムは、外部バス５００と、バスアービタ５０１と、ＬＣＤ表示装置５０２と、ＬＣＤ（Liquid Crystal Display）５０３と、メモリコントローラ５０４と、バッファメモリ５０５と、ＣＰＵ（Central Processing Unit）５０６と、データ転送装置５０７と、から構成される。以下、各ブロックについて詳細に説明する。
【００２０】
外部バス５００は、各ブロックがデータを交換するための共通の経路であり、アドレス情報をやりとりするアドレスバス、データをやりとりするデータバス、制御情報をやりとりする制御バスを有する。制御バスは、各バスマスタからバスアクセス要求を受けるリクエスト線と各バスマスタにバスアクセスを許可するパーミット線とを含む。
【００２１】
バスアービタ５０１は、外部バス５００に接続された複数のバスマスタに対して、バスの使用権を与える回路である。バスアービタ５０１には、外部バス５００を介してＬＣＤ表示装置５０２と、ＣＰＵ５０６と、データ転送装置５０７がバスマスタとして接続され、また、メモリコントローラ５０４がバススレーブとして接続される。
【００２２】
バスアービタ５０１は、各バスマスタの優先度情報を備え、各バスマスタからリクエスト線を介してリクエスト信号を入力する。バスアービタ５０１は、上記優先度情報と複数のバスマスタから入力した上記リクエスト信号とから、より優先度の高いバスマスタの選択を行い、より優先度の高いバスマスタに対してパーミット線を介してパーミット信号を出力する。パーミット信号が出力されたバスマスタは、アドレスバスを介して、アクセスしたいバッファメモリ５０５のアドレス情報をメモリコントローラ５０４に出力し、当該アドレスに対するデータの読み出しや書き込みを行う。
【００２３】
ＬＣＤ表示装置５０２は、画像表示パネルであるＬＣＤ５０３に画像を表示させるための制御を行う装置である。ＬＣＤ表示装置５０２は、内部にデータ参照アドレスレジスタ及びデータ読み出し制御部を有する。データ参照アドレスレジスタには、現在表示するピクチャのアドレスが一時記憶される。読み出し制御部は、データ参照アドレスレジスタに一時記憶されているアドレスを指定して、バッファメモリ５０５からピクチャを読み出す制御を行い、読み出したピクチャをＬＣＤ５０３に出力する。またＬＣＤ表示装置５０２は、ＣＰＵ５０６に対してピクチャの表示が終わり、バッファメモリ５０５内にピクチャを格納しておく必要がなくなったことを通知するための割り込み線を備える。なお、ここでは表示パネルがＬＣＤであるとし、表示装置がＬＣＤ表示装置であるとして説明するが、これに限るものではない。表示パネルとしてプラズマディスプレイ（ＰＤＰ）、有機ＥＬディスプレイ（ＯＬＥＤ）、その他様々な形態の表示パネルを用いることができ、ＬＣＤ表示装置もこれらの表示パネルに合わせてＰＤＰ表示装置、ＯＬＥＤ表示装置等の表示装置に適宜変更される。
【００２４】
メモリコントローラ５０４は、リード／ライト情報及びアドレス情報をバスマスタから入力し、バッファメモリ５０５からデータの読み出し／書き込みに関する制御を行う。バッファメモリ５０５にデータを書き込む場合は、メモリコントローラ５０４は、ライト情報と、データと、アドレス情報を入力し、指定されたアドレスに当該データを書き込む制御を行う。一方、バッファメモリ５０５からデータを読み出す場合は、メモリコントローラ５０４は、リード情報及びアドレス情報を入力し、指定されたアドレスに格納されているデータを読み出す制御を行う。メモリコントローラ５０４は、読み出したデータをアクセス元のバスマスタへ出力する。
【００２５】
バッファメモリ５０５は、例えばＤＲＡＭ（Dynamic Random Access Memory）などの記憶媒体であり、復号されたピクチャが一時的に格納される。
【００２６】
ＣＰＵ５０６は、所定の符号化方式で符号化されている動画圧縮ストリームを、復号プログラムを用いて復号する。ＣＰＵ５０６は、復号したピクチャをメモリコントローラ５０４を介してバッファメモリ５０５に格納する。また、ＣＰＵ５０６は、データ格納アドレス情報やＰＯＣ情報などを内部に一時記憶する。ここで、データ格納アドレス情報は、復号したピクチャの格納場所を管理するための情報であり、ＰＯＣ情報は格納している各ピクチャの表示順序を管理するための情報である。ＣＰＵ５０６は、ピクチャをバッファメモリ５０５に格納するに先だって、バッファメモリ５０５をピクチャサイズに合わせて区分けする処理を行う。すなわち、ＣＰＵ５０６は、ピクチャサイズに基づいてバッファメモリ５０５における各ピクチャを格納する領域を決定し、当該領域のアドレスを記憶する。ＣＰＵ５０６は、当該区分けに従ってピクチャをバッファメモリ５０５に格納する。また、ＣＰＵ５０６は、バッファメモリ５０５に格納したピクチャのうち、最もＰＯＣが小さい番号のピクチャの格納アドレスをＬＣＤ表示装置５０２内のデータ参照アドレスレジスタに記憶させる。また、ＣＰＵ５０６は、後述する制御プログラムを実行することでデータ転送装置５０７にデータ転送を開始させる。
【００２７】
データ転送装置５０７は、後述するように、ＣＰＵ５０６で実行される制御プログラムに基づいて、バッファメモリ５０５に格納されているピクチャデータをバッファメモリ５０５内の所定の位置に転送する処理を行う。
【００２８】
次に、ＣＰＵ５０６で行われる動画圧縮ストリームの復号処理について説明する。図２は、当該復号処理における処理の流れを示したフローチャートである。ここでＣＰＵ５０６が復号する動画圧縮ストリームは、再生途中でピクチャサイズが変化し得る符号化方式で圧縮されているものとする。
【００２９】
ＣＰＵ５０６は、ピクチャサイズを検出する（Ｓ１０１）。動画圧縮ストリームには、ピクチャサイズに関する情報が付加されており、ＣＰＵ５０６は、当該部分を復号することで動画圧縮ストリームのピクチャサイズを検出する。
【００３０】
ＣＰＵ５０６は、当該検出したピクチャサイズに基づいてバッファメモリ５０５の区分けを行う（Ｓ１０２）。すなわち、ＣＰＵ５０６は、復号した各ピクチャを一時格納するための各々の領域を決定し、当該各々の領域を特定するためのアドレスを管理情報として保管する。
【００３１】
ＣＰＵ５０６は、動画圧縮ストリームに対して復号処理を行う（Ｓ１０３）。ここで、ＣＰＵ５０６は、Ｓ１０２で区分けされた領域に復号したピクチャを格納する。
【００３２】
次にＣＰＵ５０６は、動画圧縮ストリームのピクチャサイズの変更を検出する（Ｓ１０４）。具体的には、動画圧縮ストリームに付加されているピクチャサイズに関する情報を復号し、前に復号したピクチャサイズと異なる場合は、ピクチャサイズが変更されたと判断する。
【００３３】
ＣＰＵ５０６は、ピクチャサイズの変更を検出すると、バッファメモリ５０５に一時格納されている複数のピクチャのうち、現在ＬＣＤ表示装置５０２が参照中のピクチャを除くピクチャを削除する（Ｓ１０５）。当該ピクチャを削除することにより、ピクチャサイズ変更後の復号済みピクチャを格納する領域が確保される。
【００３４】
次に、ＣＰＵ５０６は、バッファメモリ５０５を変更後のピクチャサイズに基づいて再度区分けを行う（Ｓ１０６）。
【００３５】
次に、ＣＰＵ５０６は、図示せぬ記憶部に格納している制御プログラムを読み込んで実行する。データ転送装置５０７は、当該制御プログラムによる制御に基づいて、ＬＣＤ表示装置が参照しているピクチャをバッファメモリ５０５内の所定の場所に転送させる制御を行う（Ｓ１０７）。
【００３６】
ＣＰＵ５０６は、ピクチャサイズ変更後の動画圧縮ストリームに対して復号処理を施す（Ｓ１０８）。前記ピクチャの削除及びピクチャの転送によって確保されたバッファメモリ領域に、復号したピクチャを格納する。
【００３７】
図３に、上記処理におけるバッファメモリ５０５内のピクチャの様子を示した概念図を示す。ここでは、規格で定められているピクチャ枚数が３枚であるとして、説明する。
【００３８】
Ｓ２０１の時点では、現在再生中のピクチャサイズに応じてバッファメモリ５０５が区切られ、区切られた各領域にピクチャが格納されている。ここではピクチャＡ〜Ｄの４枚のピクチャが格納されている。各ピクチャに記されたＰＯＣは表示されるピクチャの順序を示しており、ＰＯＣの小さいピクチャからＬＣＤ表示装置５０２に読み込まれる。ここでは、ピクチャＣのＰＯＣが最も小さいため、ＬＣＤ表示装置５０２が当該ピクチャＣを読み込んでＬＣＤ５０３で表示している。
【００３９】
ＣＰＵ５０６は、次にＰＯＣが小さいピクチャであるピクチャＢの先頭アドレスをＬＣＤ表示装置５０２内のデータ参照アドレスレジスタに記憶させる。ＬＣＤ表示装置５０２は、データ参照アドレスレジスタの変化から、ＣＰＵ５０６によって次のピクチャが指定されたことを検出し、ＣＰＵ５０６に対してピクチャＣの表示が終わったことを示す信号をＣＰＵ５０６に出力する。ＬＣＤ表示装置５０２は、その後、データ参照アドレスレジスタに記憶されたアドレスに基づいて次のピクチャを表示する。ＣＰＵ５０６は、ＬＣＤ表示装置５０２から当該信号を入力すると、表示が終了したピクチャＣをバッファメモリ５０５から削除する（Ｓ２０２）。
【００４０】
ＣＰＵ５０６は、復号処理を継続し、動画圧縮ストリームから新たに復号したピクチャＥをＳ２０２における削除によって空いた領域に格納する（Ｓ２０３）。ＬＣＤ表示装置５０２及びＣＰＵ５０６は、上記Ｓ２０１〜Ｓ２０３の動作を繰り返すことにより、それぞれピクチャの表示および復号処理を継続する。
【００４１】
ここでＣＰＵ５０６は、動画圧縮ストリームに付加されているピクチャサイズに関する情報を復号し、過去のピクチャサイズとの比較によりピクチャサイズが再生中に変更されたことを検出する。ＣＰＵ５０６は、ピクチャサイズが再生中に変更されたことを検出すると、ＬＣＤ表示装置５０２が現在表示しているピクチャＢを除くピクチャをバッファメモリ５０５から削除する（Ｓ２０４）。
【００４２】
ＣＰＵ５０６は、変更後のピクチャサイズに基づいてバッファメモリ５０５の再区分けを行う（Ｓ２０５）。この時点で、ピクチャＢは、未だＬＣＤ表示装置５０２が参照しているためバッファメモリ５０５から削除することができない。従って、Ｓ２０５のケースように、変更後のピクチャサイズに基づいて再度区分けられたバッファメモリにおいて、ピクチャＢが、２つのピクチャ格納領域にまたがって残存してしまう事態が生ずる。従って、この状態では、バッファメモリにおいてピクチャを格納できる領域は３番目と４番目の２つの領域しかないため規格で定められている３枚のピクチャを格納することができない。
【００４３】
そこでＣＰＵ５０６は、制御プログラムを実行し、データ転送装置５０７に、当該バッファメモリに残されているピクチャを転送する制御を行わせる。データ転送装置５０７は、ＣＰＵ５０６からの制御に基づいて、ピクチャＢを、所定の位置に転送させる。ここでは、所定の位置はバッファメモリのアドレスが最も小さい位置（図３において一番上の領域）であるとし、データ転送装置５０７は、設定されたデータ転送単位で、バッファメモリを分断させているピクチャＢをバッファメモリの上記所定の位置に転送する（Ｓ２０６）。
【００４４】
Ｓ２０６における転送により、変更後のピクチャサイズで区分けられたバッファメモリにおいて、新たに２番目の領域が利用可能となっており、３番目、４番目と合わせて３枚のピクチャを格納するための領域が確保されている。ＣＰＵ５０６は、動画圧縮ストリームに対して復号処理を行い、復号後のピクチャを当該空いている領域に格納していく（Ｓ２０７）。
【００４５】
ＣＰＵ５０６は、次にＰＯＣが小さいピクチャ（ここではピクチャＨ）の先頭アドレスをＬＣＤ表示装置５０２内のデータ参照アドレスレジスタに記憶させる。ＬＣＤ表示装置５０２は、データ参照アドレスレジスタの変化から、ＣＰＵ５０６によって次のピクチャが指定されたことを検出し、ＣＰＵ５０６に対してピクチャＢの表示が終わったことを示す信号をＣＰＵ５０６に出力する。ＬＣＤ表示装置５０２は、その後、データ参照アドレスレジスタに記憶されたアドレスに基づいて次のピクチャ（ここではピクチャＨ）を表示する。ＣＰＵ５０６は、ＬＣＤ表示装置５０２から当該信号を入力すると、表示が終了したピクチャＢをバッファメモリ５０５から削除し、空いた領域に新たに復号したピクチャＩを格納する（Ｓ２０８）。
【００４６】
このように、ピクチャサイズが変更されることによりメモリ領域の分断が生じてもバッファメモリ内で残存しているピクチャを適切な位置に転送させることで、変更後のピクチャサイズで復号されるピクチャを必要枚数バッファメモリに格納することができる。
【００４７】
次に、データ転送装置５０７の具体的構成と動作について説明する。
【００４８】
図４は、データ転送装置５０７の構成を示したブロック図である。データ転送装置５０７は、Ｉ／Ｆレジスタ６１０、制御用レジスタ６２０、バスアクセス監視モジュール６３０、データ転送モジュール６４０、アドレス変更モジュール６５０、から構成される。
【００４９】
Ｉ／Ｆレジスタ６１０は、外部モジュールとのインタフェースの役割をもつレジスタ群であり、内部に、先頭アドレス設定レジスタ６１１、最終アドレス設定レジスタ６１２、アドレス差分設定レジスタ６１３、転送単位設定レジスタ６１４、アドレス設定レジスタ６１５、動作状態設定レジスタ６１６、の６個のレジスタを有する。
【００５０】
Ｉ／Ｆレジスタ６１０を構成する上記各レジスタには、後述するデータ転送が行われる場合に、データ転送に必要となる情報が一時的に記憶される。先頭アドレス設定レジスタ６１１は、転送元のデータの先頭アドレスを一時記憶する。最終アドレス設定レジスタ６１２は、転送元のデータの最終アドレスを一時記憶する。アドレス差分設定レジスタ６１３は、転送元のデータの先頭アドレスと転送先のデータの先頭アドレスとの差分を一時記憶する。転送単位設定レジスタ６１４は、データの転送単位を一時記憶する。アドレス設定レジスタ６１５は、ＬＣＤ表示装置５０２内のデータ参照アドレスレジスタのアドレスを設定する。動作状態設定レジスタ６１６は、データ転送装置５０７が動作中であるかどうかを表すフラグを一時記憶する。
【００５１】
制御用レジスタ６２０は、データ転送装置５０７内での各種制御に用いられる情報を一時記憶するレジスタ群であり、内部に、転送開始アドレス保持レジスタ６２１、転送終了アドレス保持レジスタ６２２、転送サイズ保持レジスタ６２３、データ転送状態保持レジスタ６２４、の４個のレジスタを有する。
【００５２】
制御用レジスタ６２０を構成する上記各レジスタには、後述するデータ転送が行われる場合に、データ転送に必要となる情報が一時的に記憶される。転送開始アドレス保持レジスタ６２１は、転送単位毎に転送するデータの先頭アドレスを一時記憶する。転送終了アドレス保持レジスタ６２２は、転送単位毎に転送するデータの最終アドレスを一時記憶する。転送サイズ保持レジスタ６２３は、転送するデータサイズを一時記憶する。データ転送状態保持レジスタ６２４は、全データの転送が完了したかどうかを表すフラグを一時記憶する。
【００５３】
バスアクセス監視モジュール６３０は、外部バス５００を介してバスアービタ５０１に接続されている。バスアクセス監視モジュール６３０は、外部バス５００を流れるアドレス情報を取得することで、ＬＣＤ表示装置５０２のデータ参照完了タイミングを把握する。すなわち、バスアクセス監視モジュール６３０は、外部バス５００を流れるＬＣＤ表示装置５０２からバッファメモリ５０５内に記憶されているデータに対するアクセスを監視する。バスアクセス監視モジュール６３０は、取得したアドレス情報に基づいてＬＣＤ表示装置５０２からのアクセスが終了したデータを特定し、データを転送するタイミングで、データ転送モジュール６４０にデータ転送指示を出す。
【００５４】
データ転送モジュール６４０は、バスアクセス監視モジュール６３０からデータ転送指示を入力すると、制御用レジスタ６２０に記憶されている値に基づいてデータ転送処理を行う。データ転送モジュール６４０は、データ転送が完了するとアドレス変更モジュール６５０にアドレス変更指示を行う。
【００５５】
アドレス変更モジュール６５０は、データ転送モジュール６４０からアドレス変更指示を入力すると、制御用レジスタ６２０内のデータ転送状態保持レジスタ６２４の値を読み込む。データ転送状態保持レジスタ６２４に、ＣＰＵ５０６より指定された全データの転送が完了したことを示す"１"が設定されている場合には、アドレス変更モジュール６５０は、アドレス設定レジスタ６１５に設定されているＬＣＤ表示装置５０２のデータ参照アドレスレジスタのアドレス情報を読み出す。そして、アドレス変更モジュール６５０は、当該データ参照アドレスレジスタに一時記憶されている値を転送後のデータの先頭アドレスに書き換える。一方、データ転送状態保持レジスタ６２４に、ＣＰＵ５０６より指定された全データの転送が完了していないことを示す"０"が設定されている場合には、次の転送に必要となる情報を制御用レジスタ６２０に一時記憶させる。
【００５６】
次に、ＣＰＵ５０６が実行する制御プログラムの処理フローについて説明する。図５は、データ転送装置５０７にデータを転送させる制御を行うためのプログラムである制御プログラムの処理の流れを示したフローチャートである。
【００５７】
ＣＰＵ５０６は、データ転送装置５０７にバッファメモリ５０５内のデータを転送させる制御を行うときに、制御プログラムを実行する。ＣＰＵ５０６は、制御プログラムを実行することにより次の手順で処理を行う。
【００５８】
ＣＰＵ５０６は、Ｉ／Ｆレジスタ６１０を構成する各レジスタ６１１〜６１６に値を設定する。すなわち、ＣＰＵ５０６は、先頭アドレス設定レジスタ６１１に転送元のデータの先頭アドレスを、最終アドレス設定レジスタ６１２に転送元のデータの最終アドレスを、アドレス差分設定レジスタ６１３に転送元と転送先のデータの先頭アドレスの差分を、転送単位設定レジスタ６１４にデータの転送単位を、アドレス設定レジスタ６１５にＬＣＤ表示装置のデータ参照アドレスレジスタのアドレスをそれぞれ設定する。また、ＣＰＵ５０６は、動作状態設定レジスタ６１６にデータ転送装置が動作中であることを示す"１"を設定する（ステップ９００）。ＣＰＵ５０６から行われるこれらの設定が、データ転送装置５０７におけるデータ転送を開始させるための転送開始指示となる。
【００５９】
次に、ＣＰＵ５０６は、動作状態設定レジスタ６１６をポーリングし、データ転送装置の動作完了の判定を行う（ステップ９０１）。動作状態設定レジスタ６１６に、データ転送が行われている、すなわち、データ転送中であることを示す"１"が設定されている場合は、９０１のステップへ移行する。一方、動作状態設定レジスタ６１６に、データ転送が行われていない、すなわち、データ転送が完了したことを示す"０"が設定されている場合は、９０２のステップへ移行する。
【００６０】
ポーリングの結果、動作状態設定レジスタ６１６に"０"が設定されている場合は、ＣＰＵ５０６は、データの転送処理が完了したと判断し、データの格納アドレス情報を、転送元アドレスから転送先アドレスに更新する（ステップ９０２）。
【００６１】
次にデータ転送装置５０７の動作を説明する。図６は、データ転送装置５０７の処理フローである。
【００６２】
バスアクセス監視モジュール６３０は、データ転送装置の動作が開始したかどうかを判定する（ステップ９０３）。具体的には、バスアクセス監視モジュール６３０は、ＬＣＤ表示装置５０２からメモリコントローラ５０４へのアクセスにおけるアドレス情報と動作状態設定レジスタ６１６の設定値とに基づいて動作開始判定を行う。バスアクセス監視モジュール６３０は、外部バス５００を常時監視することにより、バスマスタからメモリコントローラ５０４に対するアクセスを監視する。バスアクセス監視モジュール６３０は、ＬＣＤ表示装置５０２からメモリコントローラ５０４へのアクセスにおけるアドレス情報を外部バス５００から読み出す。バスアクセス監視モジュール６３０は、当該アドレス情報と先頭アドレス設定レジスタ６１１の値が一致しているかを判定する。さらに、バスアクセス監視モジュール６３０は、動作状態設定レジスタ６１６の設定値が、データ転送装置５０７が動作中であることを示す"１"であるかを判定する。判定の結果、取得したアドレス情報と先頭アドレス設定レジスタ６１１の値が一致し、かつ、動作状態設定レジスタ６１６の設定値が、"１"ならば９０４のステップに移行する。それ以外の場合は、９０３のステップに移行する。
【００６３】
バスアクセス監視モジュール６３０は、転送開始アドレス保持レジスタ６２１に、先頭アドレス設定レジスタ６１１の値、すなわち転送するデータの開始アドレスを設定する。バスアクセス監視モジュール６３０は、転送終了アドレス保持レジスタ６２２に、（先頭アドレス設定レジスタ６１１の値）＋（転送単位設定レジスタ６１４の値）−"１"の値を設定する。すなわち、バスアクセス監視モジュール６３０は、一回の転送で転送するデータの最終アドレスを設定する。次に、バスアクセス監視モジュール６３０は、データ転送状態保持レジスタ６２４に全データ転送未完を示す"０"を設定する（ステップ９０４）。
【００６４】
次に、バスアクセス監視モジュール６３０は、ＬＣＤ表示装置５０２からメモリコントローラ５０４へのアクセスにおけるアドレス情報を外部バス５００から取得する。バスアクセス監視モジュール６３０は、そのアドレス情報が転送終了アドレス保持レジスタ６２２の値若しくは最終アドレス設定レジスタ６１２の値と一致しているか判定する（ステップ９０５）。判定の結果、取得したアドレス情報が上記いずれかの値と一致していれば９０６のステップに移行する。一方、判定の結果、一致していなければ９０５のステップに移行する。
【００６５】
次に、バスアクセス監視モジュール６３０は、ステップ９０５において外部バス５００から取得したアドレス情報が、転送終了アドレス保持レジスタ６２２の値と一致している場合は、転送サイズ保持レジスタ６２３にアドレス差分設定レジスタ６１３の値を設定する。一方、バスアクセス監視モジュール６３０は、ステップ９０５において外部バス５００から取得したアドレス情報が、最終アドレス設定レジスタ６１２の値と一致している場合は、転送サイズ保持レジスタ６２３に（最終アドレス設定レジスタ６１２の値）−（転送開始アドレス保持レジスタ６２１の値）を設定する。そして、バスアクセス監視モジュール６３０は、データ転送状態保持レジスタ６２４に全データ転送完了を示す"１"を設定する（ステップ９０６）。
【００６６】
バスアクセス監視モジュール６３０は、データ転送モジュール６４０に対し、先頭アドレス設定レジスタ６１１の値が示すアドレスから、（先頭アドレス設定レジスタ６１１の値）−（アドレス差分設定レジスタ６１３の値）が示すアドレスへ、転送サイズ保持レジスタ６２３の値が示すサイズ分のデータのデータ転送指示を出す。データ転送モジュール６４０は、当該データ転送指示に基づいてデータ転送を実行する（ステップ９０７）。また、データ転送モジュール６４０は、今回のデータ転送が完了したことを示すアドレス変更指示をアドレス変更モジュール６５０に出力する。
【００６７】
アドレス変更モジュール６５０は、データ転送モジュール６４０よりアドレス変更指示を入力すると、全データ転送が完了したかどうかの判定を行う（ステップ９０８）。
【００６８】
ステップ９０８において、データ転送状態保持レジスタ６２４の値が全データ転送完了を示す"１"の場合、９１０のステップに移行する。
【００６９】
アドレス変更モジュール６５０は、アドレス設定レジスタ６１５が示すアドレスのレジスタ内容を、（先頭アドレス設定レジスタ６１１の値）−（アドレス差分設定レジスタ６１３の値）、すなわち転送後のデータの先頭アドレスに変更する。その後、動作状態設定レジスタ６１６に、データ転送装置が動作完了したことを示す"０"を設定し、９０３のステップに移行する（ステップ９１０）。
【００７０】
一方、ステップ９０８において、データ転送状態保持レジスタ６２４の値が全データ転送未完を示す"０"の場合、９０９のステップに移行する。
【００７１】
アドレス変更モジュール６５０は、転送開始アドレス保持レジスタ６２１に、転送開始アドレス保持レジスタ６２１の値＋転送単位設定レジスタ６１４の値、すなわち次のデータ転送におけるデータの先頭アドレスを設定する。次に転送終了アドレス保持レジスタ６２２に、転送開始アドレス保持レジスタ６２１の値＋転送単位設定レジスタ６１４の値−"１"、すなわち次のデータ転送におけるデータの最終アドレスを設定する。その後、９０５のステップに移行する。（ステップ９０９）
【００７２】
以上のように、データ転送装置５０７がデータ転送を行うことにより、ＬＣＤ５０３で表示中であるピクチャデータのメモリ領域の格納位置を、ＬＣＤ表示と同期をとりながらメモリ領域の最適な位置に移動させることができる。従って、メモリの断片化を防ぐことができ、ＬＣＤ表示を乱すことなく、メモリ領域を有効に活用することができる。
【００７３】
以上説明したように、本発明のデータ転送装置は、バスを流れるアドレス情報を取得することにより記憶装置内に記憶されているピクチャデータに対する画像表示装置からのアクセスを監視する監視手段と、前記取得したアドレス情報に基づいて前記画像表示装置からのアクセスが終了した前記ピクチャデータを特定する特定手段と、前記特定手段で特定されたピクチャデータを前記記憶装置内の所定のアドレスに転送させる転送手段と、を具備する。当該構成をとることで、ストリームの途中でピクチャサイズが変化しても、バッファメモリ５０５に格納されているピクチャデータを、ＬＣＤの表示を乱すことなく適切な位置に転送することによって、バッファメモリ５０５が有効に活用することができる。従って、ピクチャサイズが変化した後のピクチャを規格で定められている枚数分メモリ領域に格納できるようになり動画再生を継続させることができる。
【００７４】
また、転送させるピクチャデータの転送単位をあらかじめ設定し、当該設定した転送単位毎にピクチャデータを少しずつ転送させることで、ＬＣＤ表示装置５０２からのピクチャデータの読み出し処理と、データ転送装置５０７からのデータの転送処理を並行して行うことができる。
【００７５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記説明では、バッファメモリ５０５内でアドレスが最も小さい場所に転送する場合について説明したがこれに限るものではない。例えばアドレスが最も大きい場所に転送しても良い。また、ＣＰＵ５０６が変更後のピクチャサイズで新たに区分けした区分に従って適切に転送させても良い。すなわち、ＬＣＤ表示装置５０２で表示しているピクチャが新たな区分けに従った２つピクチャ領域を跨がないように、新たな区分けに従ったいずれかのピクチャ領域の先頭アドレスを転送先とし、Ｉ／Ｆレジスタ６１０内のアドレス差分設定レジスタ６１３の値を設定しても良い。
【００７６】
また、ＣＰＵ５０６は、ピクチャサイズが変更された場合に行う新たな区分けと、バッファメモリ５０５から削除しないＬＣＤ表示装置５０２が表示中のピクチャとの位置関係から当該ピクチャがメモリを分断化しているかどうかを判断し、必要に応じて転送させてもよい。例えば、当該ピクチャがピクチャサイズ変更後の新たな区分けに対して２つのピクチャ領域を跨がない場合には、転送する必要が無いと判断し、制御プログラムを実行しない構成であっても良い。
【００７７】
また、ＣＰＵ５０６は、変更後のピクチャサイズと変更前のピクチャサイズとを比較して制御プログラムを実行するかどうかの判断を行っても良い。例えば、変更後のピクチャサイズが、変更前のピクチャサイズよりも小さい場合は、メモリの断片化が問題となる可能性が低いため、制御プログラムを実行しない判断をしてもよい。
【００７８】
また、外部バス５００、バスアービタ５０１、ＬＣＤ表示装置５０２、メモリコントローラ５０４、バッファメモリ５０５、ＣＰＵ５０６、データ転送装置５０７は、１つのＬＳＩに組み込まれて実装される構成であっても良い。
【符号の説明】
【００７９】
５００  外部バス
５０１  バスアービタ
５０２  ＬＣＤ表示装置
５０３  ＬＣＤ
５０４    メモリコントローラ
５０５    バッファメモリ
５０６  ＣＰＵ
５０７    データ転送装置
６１０    Ｉ／Ｆレジスタ
６１１    先頭アドレス設定レジスタ
６１２    最終アドレス設定レジスタ
６１３    アドレス差分設定レジスタ
６１４    転送単位設定レジスタ
６１５    アドレス設定レジスタ
６１６    動作状態設定レジスタ
６２０    制御用レジスタ
６２１    転送開始アドレス保持レジスタ
６２２    転送終了アドレス保持レジスタ
６２３    転送サイズ保持レジスタ
６２４    データ転送状態保持レジスタ
６３０    バスアクセス監視モジュール
６４０    データ転送モジュール
６５０    アドレス変更モジュール
【図１】
2012186611.tif 000003
【図２】
2012186611.tif 000004
【図３】
2012186611.tif 000005
【図４】
2012186611.tif 000006
【図５】
2012186611.tif 000007
【図６】
2012186611.tif 000008
【図７】
2012186611.tif 000009
【図８】
2012186611.tif 000010