JP2004012871A - データ転送制御システム、電子機器及びデータ転送制御方法 - Google Patents
データ転送制御システム、電子機器及びデータ転送制御方法 Download PDFInfo
- Publication number
- JP2004012871A JP2004012871A JP2002167095A JP2002167095A JP2004012871A JP 2004012871 A JP2004012871 A JP 2004012871A JP 2002167095 A JP2002167095 A JP 2002167095A JP 2002167095 A JP2002167095 A JP 2002167095A JP 2004012871 A JP2004012871 A JP 2004012871A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- controller
- memory
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】低消費電力のデータ転送を実現でき、メモリ資源を節約できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供すること。
【解決手段】データ転送制御システムは、圧縮画像データを含む圧縮データを、バス200を介してデバイスコントローラ210に転送する転送コントローラ160と、受信された圧縮データを記憶するデバイス側のメモリ290のデータ蓄積状況に基づいて、転送コントローラ160の転送速度を設定する転送速度設定部130を含む。メモリ290の蓄積データ量が、第1のデータ量DA1と第2のデータ量DA2の間のデータ量になるように、転送コントローラ160の転送速度を設定する。転送速度設定部130は、圧縮データを解析し、圧縮データに含まれる画像データ量特定情報(ビットレート)に基づき転送速度を設定する。
【選択図】 図1
【解決手段】データ転送制御システムは、圧縮画像データを含む圧縮データを、バス200を介してデバイスコントローラ210に転送する転送コントローラ160と、受信された圧縮データを記憶するデバイス側のメモリ290のデータ蓄積状況に基づいて、転送コントローラ160の転送速度を設定する転送速度設定部130を含む。メモリ290の蓄積データ量が、第1のデータ量DA1と第2のデータ量DA2の間のデータ量になるように、転送コントローラ160の転送速度を設定する。転送速度設定部130は、圧縮データを解析し、圧縮データに含まれる画像データ量特定情報(ビットレート)に基づき転送速度を設定する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、データ転送制御システム、電子機器及びデータ転送制御方法に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来の液晶表示装置(広義には表示装置)では、表示のため各種制御信号や表示データを、ホストコントローラ(CPU)、デバイスコントローラ(表示コントローラ)間でパラレル転送している。このため、信号線が多くなり、ホストコントローラが実装される基板(circuit board)とデバイスコントローラが実装される基板とを接続するコネクタが大きくなる等の事態が生じ、製造コストの上昇を招く。
【0003】
このような問題を解決するために、制御信号や表示データをシリアル転送する従来技術が知られている。例えば特開平6−9506号では、デバイスコントローラにデータ保持回路を持たせ、ホストコントローラ、デバイスコントローラ間での制御信号、表示データの高速シリアル転送を実現している。
【0004】
一方、近年、静止画のみならず動画も表示できる液晶表示装置への要望が強まっている。しかしながら、動画データをリアルタイムに転送しようとすると、ホストコントローラ、デバイスコントローラ間の転送データ量が更に増加する。このため、より高速なシリアル転送が必要になる。また、この高速シリアル転送が原因となって、消費電力の増加や、EMIノイズの発生などの問題が生じる可能性もある。
【0005】
このような問題を解決する従来技術としては、例えば特開平4−330489、特開平8−202526、特開平11−65535などがある。
【0006】
しかしながら、これらの従来技術によっても、消費電力の低減や、EMIノイズの発生の抑制という技術課題の達成は不十分であった。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、低消費電力のデータ転送を実現できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0008】
また本発明の他の目的は、受信した圧縮データを記憶するメモリの資源を節約できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0010】
本発明では、圧縮画像データを含む圧縮データがバスを介して転送される。ここで、圧縮画像データは、デバイスの1つである表示部の表示に使用されるデータであってもよいし、デバイスの1つである撮像素子により取得されるデータであってもよい。
【0011】
そして本発明では、第1のコントローラ(送信側)の転送コントローラの転送速度が、第2のコントローラ(受信側)の第2のメモリのデータ蓄積状況に基づいて設定される。これにより、第1、第2のコントローラ間の転送速度が最適な速度に設定され、データ転送の低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0012】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度を設定してもよい。
【0013】
このようにすれば、蓄積データ量が、第1のデータ量を上回ったり、第2のデータ量を下回ったりする事態を抑制できる。
【0014】
また本発明では、前記第1のデータ量が、第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定してもよい。
【0015】
なお、第1のデータ量を、第2のメモリがフル状態になる時の蓄積データ量と同じに設定することも可能である。
【0016】
また本発明では、前記第2のデータ量が、圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定してもよい。
【0017】
ここで、伸長処理単位となるデータ量とは、例えば、1フレーム分の画像データ量である。なお、第2のデータ量を、0よりも大きなデータ量(伸長処理単位とは無関係なデータ量)に設定してもよい。
【0018】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラのデータ転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0019】
このようにすれば、転送コントローラの転送速度が速くなりすぎてしまう事態を防止できる。
【0020】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、転送コントローラを転送待ち状態に設定してもよい。
【0021】
なお、転送待ち状態で所与の時間が経過した場合(蓄積データ量が第2のデータ量になった場合)に、転送コントローラの転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0022】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第2のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラの転送速度を、第1の転送速度よりも速い第3の転送速度に設定すしてもよい。
【0023】
このようにすれば、転送コントローラの転送速度が遅くなりすぎてしまう事態を防止できる。
【0024】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のコントローラから第2のメモリのデータ蓄積状況を取得してもよい。
【0025】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、転送速度の設定コマンドを第2のコントローラに知らせてもよい。
【0026】
また本発明では、前記転送速度設定部が、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定してもよい。
【0027】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0028】
本発明では、圧縮データが解析され、圧縮データの中から画像データ量特定情報が取得される(データ伸長処理を行うことなく取得される)。そして、この取得された画像データ量特定情報に基づいて、転送コントローラの転送速度が設定される。
【0029】
このようにすることで、圧縮データに含まれる画像データの量を、ある程度予測することができ、転送コントローラの転送速度を最適な速度に設定できる。
【0030】
また本発明では、前記転送速度設定部が、圧縮データのシーケンス層に含まれるビットレートに基づいて、転送コントローラの転送速度を設定してもよい。
【0031】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、バスを介して第1のコントローラから転送される圧縮データを受信する転送コントローラと、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得するメモリ管理部と、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0032】
本発明によれば、バスを介して第1のコントローラから転送される圧縮データが、第2のコントローラの転送コントローラにより受信され、第2のコントローラの第2のメモリに蓄積される。そして、この第2のメモリのデータ蓄積状況が取得され、第2のコントローラから第1のコントローラに知らされる。
【0033】
第1のコントローラは、このデータ蓄積状況に基づいて転送速度を決定し、決定した転送速度の設定コマンドを第2のコントローラに転送する。すると、第2のコントローラの転送速度設定部が、この転送速度設定コマンドに基づいて、第2のコントローラの転送コントローラの転送速度を設定する。これにより、第1、第2のコントローラ間の転送速度を最適な速度に設定でき、低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0034】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第1のコントローラから転送速度設定コマンドを取得してもよい。
【0035】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のメモリのデータ蓄積状況を第1のコントローラに知らせてもよい。
【0036】
また本発明は、第1のコントローラと、第1のコントローラとバスを介して接続される第2のコントローラと、圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するための上記のいずれかのデータ転送制御システムと、第1のコントローラ又は第2のコントローラにより制御されるデバイスとを含む電子機器に関係する。
【0037】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定するデータ転送制御方法に関係する。
【0038】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0039】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、バスを介して第1のコントローラから転送される圧縮データを転送コントローラにより受信し、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得し、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0040】
【発明の実施の形態】
以下、本実施形態について説明する。
【0041】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0042】
1.構成
図1に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義には表示装置)の構成例を示す。図1において、ホスト側(マスター側、送信側)のデータ転送制御システムは、転送コントローラ160、転送速度設定部130等により構成される。また、デバイス側(スレーブ側、受信側)のデータ転送制御システムは、転送コントローラ260、転送速度設定部230等により構成される。なお、図1の回路ブロック一部を省略する構成としてもよい。
【0043】
1.1 ホストコントローラ
ホストコントローラ110(広義には第1のコントローラ)は、ホスト側(マスター側、送信側)のコントローラであり、処理部120、転送コントローラ160、メモリ190(第1のメモリ)を含む。このホストコントローラ110(第1のコントローラ)は例えば第1の基板(circuit board)に実装される。なお、メモリ190をホストコントローラ110の外付けメモリにしてもよい。
【0044】
処理部120は、ホストコントローラ110内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部120の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0045】
転送コントローラ160(ホスト側、マスター側、或いは送信側の転送コントローラ。シリアル・インターフェース・コントローラ)は、基地局等から送られてくる圧縮データを、バス200(狭義には、双方向シリアルバス)を介してデバイスコントローラ210(広義には第2のコントローラ)に転送する処理を行う。より具体的には、メモリ190から圧縮データを読み出し、この圧縮データ(マックスパケットサイズのデータ)をペイロードとして含むパケットを組み立てる。そして、組み立てられたパケットを、所与のプロトコルに従って、バス200を介してデバイスコントローラ210(転送コントローラ260)に転送(送信)する。
【0046】
メモリ190(ホスト側、マスター側、或いは送信側のメモリ)は、基地局等から送られてくる圧縮データ(例えばMPEGのビットストリーム)を記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0047】
なお、メモリ190に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部120のワーク領域として使用するようにしてもよい。
【0048】
処理部120は転送速度設定部130を含む。この転送速度設定部130(転送速度切り替え部)は、デバイスコントローラ210(第2のコントローラ)が有するメモリ290(第2のメモリ)のデータ蓄積状況(メモリの蓄積データ量、空き容量等)に基づいて、転送コントローラ160の転送速度(パケット転送の速度。単位時間に転送される平均データ量)を設定する。より具体的には、メモリ290のデータ蓄積の程度や空きの程度を表すデータ蓄積状況(メモリ・ステータス)に応じて、転送コントローラ160の転送速度(transfer rate)を切り替え、転送速度を動的に変化させる。
【0049】
更に、転送速度設定部130は、決定した転送速度をデバイスコントローラ210に知らせる。より具体的には、転送速度の設定コマンドをパケット転送等を利用してデバイスコントローラ210(転送コントローラ260)に転送する。この場合の転送速度設定コマンドの転送は、例えばUSBのコントロール転送、或いはこの転送に準じたパケット転送により実現できる。
【0050】
なお、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、転送速度設定コマンドをデバイスコントローラ210に伝えてもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して転送することで、転送速度設定コマンド(転送速度情報)をデバイスコントローラ210に伝えてもよい。
【0051】
また本実施形態の転送速度設定部130は、デバイス側(受信側、スレーブ側)のメモリ290の蓄積データ量(空き容量)が、第1のデータ量DA1(許容される最大の蓄積データ量)と第2のデータ量DA2(許容される最小の蓄積データ量)の間のデータ量DA(DA2≦DA≦DA1)になるように、転送速度を設定する。
【0052】
この場合のデータ量DA1は、例えば、メモリ290がフル状態になる時の蓄積データ量(フル・メモリ容量)よりも小さなデータ量に設定できる。またデータ量DA2は、圧縮データ(MPEG)の伸長処理単位となるデータ量(例えば1フレーム分のデータ量)よりも大きなデータ量に設定できる。
【0053】
なお、メモリ290のデータ蓄積状況(メモリ・ステータス)は、バス200を介したパケット転送により取得することが望ましい。より具体的には、USBのコントロール転送、インタラプト転送或いはこれらの転送に準じたパケット転送によりデータ蓄積状況を取得する。このようにパケット転送を利用することで、データ蓄積状況の効率的な取得が可能になる。
【0054】
但し、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、データ蓄積状況をデバイスコントローラ210から取得してもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して受信することで、データ蓄積状況を取得してもよい。
【0055】
また、転送速度の設定を、ホストコントローラ110(第1のコントローラ)のメモリ190(第1のメモリ)のデータ蓄積状況に基づいて設定してもよい。例えば本実施形態では、基地局等から送られてくる圧縮データ(ビットストリーム)のメモリ190への書き込み処理と並行して、転送コントローラ160のデータ転送処理が行われる。従って、この場合には、転送速度設定部130は、メモリ190のデータ蓄積状況に基づいて、転送コントローラ160の転送速度の設定処理や転送のウェイト処理を行うことが望ましい。
【0056】
また、バス200(転送コントローラ)の転送方式としては、差動信号を用いたシリアル転送方式が望ましい。より具体的には、USB(Universal Serial Bus)、IEEE1394、或いはこれらの転送方式に準じた独自のプロトコルの転送方式(USB、IEEE1394の中から不要な機能を取り除いた転送方式)を採用できる。或いは、物理層の転送方式としてLVDS(Low Voltage Differential Signaling)を採用してもよい。
【0057】
また、バス200の転送方式としてUSB(USB2.0、USB1.1、USB On−The−Go)やそれに準じた転送方式を採用する場合には、転送速度の設定を、転送速度が480Mbpsであるハイスピードモード(HS)、12Mbpsであるフルスピードモード(FS)、1.5Mbpsであるロースピードモード(LS)の切り替えにより実現してもよい。或いは、HS、FS間、或いはFS、LS間の中間の転送速度への切り替えにより実現してもよい。
【0058】
転送速度設定部130が含む解析部132は、メモリ190に書き込まれた圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報を取得する。そして、転送速度設定部130は、この画像データ量の特定情報に基づいて、転送コントローラ160の転送速度を設定する。
【0059】
ここで、画像データ量の特定情報としては、圧縮データのビットレート(例えばMPEGのシーケンス層に含まれるBRV)、画像サイズ(例えばMPEGのシーケンス層に含まれるHSV、VSV)、或いは動きベクトル情報(例えばMEPGのマクロブロック層に含まれるMHC、MVC)などを用いることができる。即ち、ビットレート、画像サイズ、又は動きベクトルを用いることで、圧縮データを伸長することなく、圧縮データ中の画像データの占める割合を予測できる。そして、画像データ量が大きいと予測される場合には転送速度を速くし、画像データ量が小さいと予測される場合には転送速度を遅くする。これにより、最適な転送速度でのデータ転送を実現できる。
【0060】
なお、転送速度設定部130の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部130をハードウェア回路により実現する場合には、転送速度設定部130の一部又は全部を実現する回路を、転送コントローラ160内に設ければよい。
【0061】
1.2 デバイスコントローラ
デバイスコントローラ210(広義には第2のコントローラ)は、デバイス側(スレイブ側、受信側)のコントローラであり、処理部220、転送コントローラ260、メモリ290(第2のメモリ)を含む。また、データ伸長部240、表示コントローラ250を含む。このホストコントローラ210(第2のコントローラ)は例えば第2の基板(circuit board)に実装される。なお、メモリ290をデバイスコントローラ210の外付けメモリにしてもよい。
【0062】
処理部220は、デバイスコントローラ210内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部220の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0063】
データ伸長部240は、メモリ290に記憶された圧縮データを伸長する処理を行う。例えば、圧縮データがMPEGやJPEGにより圧縮されていた場合には、MPEGやJPEGの規格に応じた伸長処理を行う。
【0064】
なお、データ伸長部240の機能は、その一部又は全部をハードウェア回路により実現してもよいし、データ伸長部240を処理部220に含ませ、その機能をファームウェア(プログラム)により実現してもよい。
【0065】
表示コントローラ250は、データ伸長部240により得られた伸長画像データを受け、表示部300(広義にはデバイス)の表示制御を行う。例えば、表示部300に表示データを転送したり、表示部300が含む表示ドライバ304を制御する。
【0066】
表示部300(狭義には液晶表示装置)は、表示パネル300(電気光学パネル)、表示ドライバ304を含む。表示パネル300は、複数の走査線と、複数のデータ線と、複数の画素を含む。表示ドライバ304は、これらの走査線、データ線を駆動し、電気光学物質(液晶素子)を用いた画像表示を実現する。
【0067】
転送コントローラ260(デバイス側、スレイブ側、或いは受信側の転送コントローラ)は、バス200を介してホストコントローラ110(第1のコントローラ)から転送される圧縮データを受信する処理を行う。より具体的には、バス200を介して所与のプロトコルに従って転送されてきたパケットを分解し、パケットのペイロードに含まれる圧縮データを取得する。そして、取得した圧縮データをメモり290に出力する。
【0068】
メモリ290(デバイス側、スレイブ側、或いは受信側のメモリ)は、転送コントローラ260からの圧縮データを記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0069】
なお、メモリ290に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部220のワーク領域として使用するようにしてもよい。
【0070】
処理部220は転送速度設定部230を含む。この転送速度設定部230(転送速度切り替え部)は、転送コントローラ260の転送速度を、メモリ290のデータ蓄積状況に応じた転送速度に設定する。より具体的には、メモリ290のデータ蓄積状況を取得し、ホストコントローラ110(第1のコントローラ)に知らせる。すると、ホストコントローラ110は、このデータ蓄積状況に基づいて転送速度を決定する。そして転送速度設定部230は、ホストコントローラ110から転送速度設定コマンドを受け、この転送速度設定コマンドに基づいて、転送コントローラ260の転送速度を設定する。これにより、メモリ290のデータ蓄積状況に応じて、転送コントローラ260の転送速度を動的に変化させることができる。
【0071】
なお、データ蓄積状況は、バス200を介したパケット転送(コントロール転送、インタラプト転送)によりホストコントローラ110に伝えることが望ましい。或いは、ホストコントローラ110、デバイスコントローラ210間の制御線を用いたり、フォーマットの異なる何種類かのデータパターンを用いて、ホストコントローラ110にデータ蓄積状況を知らせてもよい。また、転送速度設定コマンドも、パケット転送により取得してもよいし、制御線を用いたり、データパターンを用いて取得してもよい。
【0072】
メモリ管理部234はメモリ290のメモリ管理(ポインタ制御、アドレス生成等)を行う。そして、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。より具体的には、メモリ290の読み出しポインタ、書き込みポインタの差分を計算することで、蓄積データ量を取得する。そして、この蓄積データ量がペイロードに設定されたパケットが、ホストコントローラ110に転送され、データ蓄積状況がホストコントローラ110に知らされる。
【0073】
また、転送速度設定部230の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部230をハードウェア回路により実現する場合には、転送速度設定部230の一部又は全部を実現する回路を、転送コントローラ260内に設ければよい。
【0074】
2.データ蓄積状況に応じた転送速度の設定
本実施形態では、メモリ290のデータ蓄積状況に応じて、バス200の転送速度を設定している。
【0075】
図2(A)、(B)に、転送速度とメモリの蓄積データ量の関係を示す。これらの図から明らかなように、転送速度を低くすることで使用メモリ容量を節約できる。
【0076】
例えば図2(A)では、T1、T2、T3に示すように、圧縮データ(ビットストリーム)が、所与の時間間隔でデータパケットとして転送され、転送コントローラ260が受信する。そして、受信された圧縮データがメモリ290に書き込まれる。これにより、A1、A2、A3に示すように、メモリ290の蓄積データ量DAが増加する。この場合に、転送速度を速くすると(TR1)、蓄積データ量DAの増え方も速くなる。
【0077】
そして、T4、T5、T6では、メモリ290の圧縮データがデータ伸長部240により読み出され、メモリデータが消費される。これにより、A4、A5、A6に示すように、メモリ290の蓄積データ量DAが減少する。
【0078】
一方、図2(B)では、図2(A)と同じ時間間隔でデータパケットが転送されている。しかしながら、図2(B)の転送速度TR2は図2(A)の転送速度TR1よりも遅い速度に設定されている。
【0079】
このように、ゆっくりした転送速度でデータを転送することで、図2(A)、(B)を比べれば明らかなように、メモリ290の蓄積データ量DAの最大値DAMAXが少なくなる。従って、メモリ290の最大使用メモリ容量が少なくて済むようになり、メモリ資源の節約や、回路規模の削減を図れる。また、転送速度を低くすることで、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0080】
本実施形態では、このような転送速度と蓄積データ量の関係に着目し、メモリ290のデータ蓄積状況に応じて転送速度を制御している。この本実施形態の転送速度の制御手法を、図3を用いて説明する。
【0081】
図3のB1、B2、B3では、転送速度TR1でパケット転送が行われている。そして、B4では、メモリ290の蓄積データ量DAが第1のデータ量DA1(最大許容蓄積データ量)に達している(DA=DA1或いはDA≧DA1)。この場合に本実施形態では、B5に示すように、転送コントローラ160が転送待ち状態に設定される。また、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、B6、B7に示すように、TR1よりも遅いTR2(第2の転送速度)に設定(変更)される。
【0082】
より具体的には、転送コントローラ160が転送待ち状態に設定された後、B8に示すようにメモリ290の蓄積データ量DA(使用メモリ容量)が第2のデータ量DA2(最小許容蓄積データ量)に達すると(DA=DA2或いはDA≦DA2)、転送コントローラ160の転送速度が、TR1より遅いTR2に設定される。そして、B6、B7に示すように、この遅い転送速度TR2で転送コントローラ160によるパケット転送が行われる。
【0083】
また図4のC1、C2では、転送速度TR1でパケット転送が行われている。そして、C3では、メモリ290の蓄積データ量DAが第2のデータ量DA2(最小許容蓄積データ量)に達している(DA=DA2或いはDA≦DA2)。この場合に本実施形態では、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、C4、C5に示すように、TR1よりも速いTR3(第3の転送速度)に設定(変更)される。
【0084】
以上のようにすることで、メモリ290の蓄積データ量DAが、DA1(第1のデータ量)とDA2(第2のデータ量)の間のデータ量になるように、転送コントローラ160の転送速度が設定されるようになる。
【0085】
このようにすることで、メモリ290の蓄積データ量DAが多くなりすぎたり、少なくなりすぎたりする事態を抑制できる。これにより、メモリ290の資源を節約でき、そのメモリ容量を小さくすることが可能になる。この結果、回路の小規模化を図れる。
【0086】
また本実施形態によれば、バス200を介したデータ転送が不必要に高速になってしまう事態を防止でき、最適な転送速度でのデータ転送が可能になる。これにより、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0087】
なお、第1のデータ量DA1としては、例えば、メモリ290がフル状態になる時の蓄積データ量FDA(フル・メモリ容量)よりも小さなデータ量(DA1<FDA)を採用できる。このようにすれば、蓄積データ量DAがFDAに達する前に、転送コントローラ160を転送待ち状態に設定したり、転送速度を遅くすることが可能になる。これにより、メモリ290がフルになってしまう事態を未然に防止できる。なお、第1のデータ量DA1をFDAと同じにすることも可能である。
【0088】
また、第2のデータ量DA2としては、例えば、0よりも大きなデータ量を採用できる(DA2>0)。更に具体的には、DA2として、圧縮データの伸長処理単位となるデータ量EDA(画像処理に必要なデータ量)よりも大きなデータ量を採用できる(DA2>EDA)。
【0089】
ここで、伸長処理単位となるデータ量EDAは、例えば、1フレーム分の画像データ量、或いはGOP層(MPEG)の数ピクチャ分(I、B、Pピクチャ)の画像データ量などである。このようにすれば、メモリ290には、最低限、EDAの大きさの圧縮データが常に存在するようになる。従って、データ伸長部240(処理部220)は、メモリ290の圧縮データを用いて、データ伸長処理を途切れることなく実行できる。これにより、データ伸長処理の効率化を図れる。
【0090】
3.画像データ量特定情報に基づく転送速度の設定
本実施形態では、圧縮データの画像データ量特定情報に基づいて、バス200を介したデータ転送(パケット転送)の転送速度を設定している。
【0091】
ここで画像データ量特定情報は、圧縮データに含まれる情報である。より具体的には、圧縮データの所与の層(シーケンス層又はマクロブロック層等)に含まれる情報である。また、圧縮データの伸長処理を行うことなく、取り出すことができる情報である。そして、この画像データ量特定情報は、圧縮データの画像データ量を特定(予測)するための情報である。
【0092】
図5に、MPEG(Motion Picture Group)データの階層構造の例を示す。MPEG(MPEG2)データは、シーケンス層、GOP(Group Of Picture)層、ピクチャ層、スライス層、マクロブロック層、ブロック層により構成される。本実施形態では、画像データ量特定情報として、シーケンス層のシーケンスヘッダSHに含まれるビットレート(BRV)や画像サイズ(HSV、VSV)などを採用している。また、マクロブロック層に含まれる動きベクトル情報(MHC、MVC等)を採用している。
【0093】
ここで、BRV(Bit Rate Value)は、発生ビット量に対する制限のためのビットレートの下位18ビットである。ビットレートを用いることで、圧縮データのうちの平均的な画像データ量を知ることができる。そして、ビットレートが高く、画像データ量が多い場合には、データ転送の転送速度を速くする。なお、MPEGのコンテンツのファイル・フォーマットのヘッダに含まれるビットレート(ビットレートの公称値)を用いてもよい。
【0094】
また、HSV(Horizontal Size Value)、VSV(Vertical Size Value)は、画像の横の画素数、縦のライン数の下位12ビットである。画像サイズ(HSV、VSV)を用いることで、各フレームの画像のデータ量を知ることができる。そして、画像サイズが大きく、各フレームの画像データ量が多い場合には、データ転送の転送速度を速くする。
【0095】
また、MHC(Motion Horizontal Code)、MVC(Motion Vertical Code)は、動きベクトルの水平成分、垂直成分と前のベクトルとの差分をVLCで符号化したものである。例えば、表示物の動きが大きいか、小さいかは、動きベクトル情報に基づいて判断できる。そして、動きベクトル情報に基づき、表示物の動きが大きいと判断された場合には、データ転送の転送速度を速くする。
【0096】
以上のように、画像データ量特定情報を用いて、バス200を介したデータ転送(パケット転送)の転送速度を制御することで、画像データ量に応じて、予測的に転送速度を変化させることが可能になる。これにより、更に細かでインテリジェントな転送速度の制御が可能になる。
【0097】
4.データ蓄積状況、転送速度設定コマンドのパケット転送
本実施形態では、データ蓄積状況や転送速度設定コマンドを、パケット転送を利用してバスを介して転送している。
【0098】
例えば図6(A)、(B)に、USBのコントロール転送のタイミングチャートを示す。なお、「H→D」は、ホスト側からデバイス側にパケットが転送されることを示し、「H←D」は、デバイス側からホスト側にパケットが転送されることを示す。
【0099】
まず、図6(A)のセットアップステージにおいては、ホスト側(ホストコントローラ110、第1のコントローラ)がデバイス側(デバイスコントローラ210、第2のコントローラ)に、SETUPトークンパケットを転送する。そして、ホスト側がデバイス側に、デバイスリクエストのデータパケットを転送する。この時に本実施形態では、ホスト側が、データパケットのペイロードにデータ蓄積状況の転送指示コマンドを設定する。そして、データパケットの転送が成功すると、デバイス側がホスト側にACK(ハンドシェークパケット)を返す。
【0100】
次のデータステージおいては、ホスト側がデバイス側にINトークンパケットを転送する。すると、デバイス側が、データ蓄積状況(メモリ290の蓄積データ量等)をデータパケットのペイロードに設定して、ホスト側に転送する。そして、データパケットの転送が成功すると、ホスト側がデバイス側にACKを返す。
【0101】
次のステータスステージにおいては、ホスト側がデバイス側にOUTトークンパケットを転送した後、0長のデータパケットをデバイス側に転送する。そして、デバイス側がホスト側にACKを返すと、コントロール転送が終了する。
【0102】
図6(A)の手法によれば、データ蓄積状況を、パケット転送(コントロール転送)を利用して、デバイス側からホスト側に伝えることができる。これにより、簡素な処理でデータ蓄積状況を伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0103】
一方、図6(B)では、セットアップステージにおいて、ホスト側が、データパケットのペイロードに転送速度設定コマンドを設定して、デバイス側に転送している。そして、次のステータスステージにおいては、ホスト側からのINトークンを受けたデバイス側が、0長のデータパケットをホスト側に転送する。
【0104】
図6(B)の手法によれば、転送速度設定コマンドを、パケット転送(コントロール転送)を利用して、ホスト側からデバイス側に伝えることができる。これにより、簡素な処理で転送速度設定コマンドを伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0105】
なお、図7に示すように、USBのインタラプト転送(或いはこれに準じた転送方式)を利用して、データ蓄積状況をデバイス側からホスト側に伝えてもよい。
【0106】
即ち、インタラプト転送においては、ホスト側が、所与のフレーム間隔(Nフレーム間隔)で、INトークンをデバイス側に転送する(ポーリングを行う)。なお、図7において、SOFは、フレーム毎にホスト側が発生するスタート・オブ・フレーム・パケットである。
【0107】
ホスト側からINトークンを受けたデバイス側は、自身のステータスをホスト側に転送する。この時に本実施形態では、デバイス側が、データ蓄積状況(蓄積データ量等)をステータスに含ませて、ホスト側に転送する。このようにすることで、所与のフレーム毎にデバイス側からホスト側にデータ蓄積状況が自動的に伝えられるようになり、ホスト側の処理負荷等を軽減できる。
【0108】
なお、データ蓄積状況や転送速度設定コマンドの転送を、コントロール転送やインタラプト転送以外のパケット転送で転送してもよい。また、コントロール転送やインタラプト転送を用いる場合(既知のデバイスが繋がりっぱなしの場合)に、転送コントローラ160、260の転送方式は、USB規格に完全に準拠していなくてもよい。例えば、USBの転送方式の機能の一部(プラグ&プレイの機能等)を省略すると共に、コントロール転送、インタラプト転送については、USB規格の転送方式に準拠するようにしてもよい。
【0109】
5.動作
次に、図8、図9のフローチャートを用いて、本実施形態のデータ転送制御システムの動作について説明する。
【0110】
まず、受信した圧縮データ(ビットストリーム)をホスト側のメモリ190に蓄積する(ステップS1)。そして、ホスト側及びデバイス側の転送コントローラ160、260の初期転送速度を設定する(ステップS2)。
【0111】
次に、所与(所定)の転送サイズのデータを、転送コントローラ160のパケットバッファ(FIFO)に取得する(ステップS3)。
【0112】
次に、そのデータにシーケンスヘッダが含まれるか否かを判断し(ステップS4)、含まれる場合には、シーケンスヘッダに含まれるビットレート(BR)を取得する(ステップS5)。そして、ホスト側(送信側)の転送コントローラ160の転送速度をTR1=α×BR(α<1)に設定する(ステップS6)。そして、転送速度が変化した場合には、ホスト側(送信側)の転送コントローラ160からデバイス側(受信側)の転送コントローラ260に、転送速度設定コマンドをパケット転送する(ステップS7、ステップS8)。
【0113】
次に、デバイス側のメモリ290の蓄積データ量DA(データ蓄積状況)をパケット転送により取得する(ステップS9。図6(A)、図7参照)。
【0114】
次に、蓄積データ量DAが第1のデータ量DA1よりも小さいか否かを判断する(ステップS10)。そして、DA<DA1の場合には、DAが第2のデータ量DA2よりも大きいか否かを判断する(ステップS11)。そして、DA>DA2の場合、即ちDA2<DA<DA1の場合には、データをパケット転送する(ステップS12)。そして、全てのデータの転送が終了したか否かを判断し(ステップS13)、終了していない場合には、図8のステップS3に戻る。
【0115】
図9のステップS10で、DA≧DA1と判断された場合には、所与(所定)の時間だけ、データ転送を待ち状態にする(ステップS14。図3のB5参照)。そして、デバイス側の蓄積データ量DAをパケット転送により取得する(ステップS15。図6(A)、図7参照)。
【0116】
次に、DAがDA1に達したか否かを判断する(ステップS16)。そして、DA=DA1になった場合には、ホスト側の転送コントローラ160の転送速度を、TR2=β×TR1(β<1)に設定する(ステップS17。図3のB6、B7参照)。そして、ホスト側からデバイス側に転送速度設定(切り替え)コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0117】
図9のステップS11で、DA≦DA2と判断された場合には、ホスト側の転送コントローラ160の転送速度を、TR3=γ×TR1(γ>1)に設定する(ステップS19.図4のC4、C5参照)。そして、ホスト側からデバイス側に転送速度設定コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0118】
6.変形例
図10に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義にはデジタルカメラなどの撮像装置)の第1の変形例を示す。
【0119】
図10では、デバイスコントローラ210が第1のコントローラ(送信側コントローラ)として機能し、ホストコントローラ110が第2のコントローラ(受信側コントローラ)として機能する。また、デバイス側のメモリ290が第1のメモリとして機能し、ホスト側のメモリ190が第2のメモリとして機能する。
【0120】
そして、デバイスコントローラ210には、CCD等の撮像素子(広義にはデバイス)が接続される。また、デバイスコントローラー210は、データ圧縮部242と撮像素子コントローラ252を含む。
【0121】
データ圧縮部242は、撮像素子コントローラ252を介して撮像素子310から取得された画像データをMPEG、JPEG方式等により圧縮する。そして、圧縮データはメモリ290に蓄積される。
【0122】
転送コントローラ260は、メモリ290に蓄積された圧縮データを、バス200を介して転送する。この時に、転送速度設定部230は、ホスト側のメモリ190のデータ蓄積状況に基づいて、転送速度を設定する。そして、設定された転送速度で、転送コントローラ260、160間でバス200を介したデータ転送が行われる。そして、ホスト側の転送コントローラ160は、圧縮データを受信すると、その圧縮データをメモリ190に蓄積する。
【0123】
図11に、本実施形態のデータ転送制御システム及びこれを含む電子機器の第2の変形例を示す。
【0124】
図11では、ホストコントローラ110、デバイスコントローラ210間において、表示部300に表示する画像データ(圧縮画像データ)が転送されると共に、撮像素子310により取得された画像データも転送される。即ち、バス200を介して双方向で画像データが転送される。
【0125】
そして、表示部300の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第1、第2のコントローラとして機能し、メモリ190、290は、各々、第1、第2のメモリとして機能する。
【0126】
一方、撮像素子310の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第2、第1のコントローラとして機能し、メモリ190、290は、各々、第2、第1のメモリとして機能する。
【0127】
7.詳細な構成例
図12に、ホスト側の転送コントローラ160の詳細な構成例を示す。この転送コントローラ160は、物理層回路162、FIFO168、DMAC170、CPUインターフェース回路172、制御回路174、クロック生成回路180を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。
【0128】
物理層回路162は、バス200を介したシリアル転送(差動信号を用いた転送)を実現するための回路であり、シリアル/パラレル変換回路164、パラレル/シリアル変換回路166を含む。
【0129】
例えば、受信時においては、バス200を介して受信したシリアルデータを、シリアル/パラレル変換回路164がパラレルデータに変換し、FIFO168に出力する。一方、送信時においては、FIFO168からのパラレルデータを、パラレル/シリアル変換回路166がシリアルデータに変換し、バス200を介して転送する。
【0130】
FIFO(First In First Out)168は、物理層回路162により送受信されるデータを一時的に記憶するバッファである。このFIFO168(広義にはパケットバッファ)は、SRAM、DRAM等のメモリにより実現してもよいし、Dフリップフロップ等により実現してもよい。
【0131】
DMAC(Direct Memory Access Controller)170は、処理部120の処理を介在することなく、FIFO168のデータをメモリ190に出力したり、メモリ190のデータを読み込む処理を行う。
【0132】
CPUインターフェース回路172は、処理部120とのインターフェースとして機能する回路である。処理部120は、このCPUインターフェース回路172を介して、FIFO168や制御回路174の制御レジスタ176にアクセスできる。
【0133】
制御回路174は、転送コントローラ160の全体的な制御や各回路ブロックの制御を行う回路であり、制御レジスタ176を含む。
【0134】
制御レジスタ176は、処理部120からのコマンドを設定したり、処理部120にステータスを表示(indicate)するためのレジスタである。
【0135】
クロック生成回路180は、転送コントローラ160の各回路ブロックが使用するクロックを生成する回路であり、PLL(Phase Locked Loop)回路等を内蔵する。
【0136】
図12において、転送速度設定部130は、転送速度設定コマンドをCPUインターフェース回路172を介して制御レジスタ176に書き込む。すると、クロック生成回路180は、制御レジスタ176に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ160は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0137】
また、転送速度設定部130は、転送速度設定コマンドがペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168に書き込む。これにより、デバイスコントローラ210に対して、転送速度設定コマンドをバス200を介してパケット転送できるようになる。
【0138】
また、転送速度設定部130は、蓄積データ量(広義にはデータ蓄積状況)がペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168から読み出す。これにより、デバイスコントローラ210から蓄積データ量を取得できるようになる。
【0139】
図13に、デバイス側の転送コントローラ260の詳細な構成例を示す。この転送コントローラ260は、物理層回路262、FIFO268、DMAC270、CPUインターフェース回路272、制御回路274、クロック生成回路280を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。また、これらの回路ブロックの機能は、図12の同じ名前の回路ブロックと同様であるため、その説明を省略する。
【0140】
図13において、転送速度設定部230は、FIFO268に蓄積されたパケットのデータをCPUインターフェース回路272を介して読み出すことで、ホストコントローラ110からの転送速度設定コマンドを取得する。そして、転送速度設定部230は、取得された転送速度設定コマンドを、CPUインターフェース回路272を介して制御レジスタ276に書き込む。すると、クロック生成回路280は、制御レジスタ276に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ260は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0141】
また、メモリ管理部234は、図14に示すように書き込みポインタWRP、読み出しポインタRDPを管理し、各ポインタ位置に対応するアドレスを発生する。そして、メモリ290の読み出し処理、書き込み処理を管理する。
【0142】
そして、メモリ管理部234は、これらのポインタWRP、RDPを用いて、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。具体的には、これらのポインタWRP、RDPの位置の差を求めることで、蓄積データ量を計算する。
【0143】
そして、転送速度設定部230は、取得された蓄積データ量がペイロードに設定されたパケットを、CPUインターフェース回路272を介してFIFO268に書き込む。これにより、ホストコントローラ110に対して、蓄積データ量をバス200を介してパケット転送できるようになる。
【0144】
図15(A)に、クロック生成回路180、280の構成例を示す。
【0145】
図15(A)のクロック生成回路(PLL回路)は、位相比較器400、チャージポンプ回路402、フィルタ回路404、VCO406、分周器408を含む。なお、これらの回路ブロックの一部(例えばフィルタ回路)を省略する構成とすることもできる。
【0146】
ここで位相比較器400は、基準クロックRCLKと分周器408からのクロックDCLKの位相を比較し、位相誤差信号PUP、PDWを出力する(PUPは位相進み信号、PDWは位相遅れ信号)。
【0147】
チャージポンプ回路402は、位相比較器400からのPUP、PDWに基づいてチャージポンプ動作を行う。より具体的には、PUPがアクティブになると、フィルタ回路404が含むコンデンサを充電する動作を行い、PDWがアクティブになると、コンデンサを放電する動作を行う。そして、フィルタ回路404により平滑化された制御電圧VCがVCO406に与えられる。
【0148】
VCO(Voltage Control Oscillator)406は、制御電圧VCに応じてその発振周波数が可変に制御される発振動作を行い、データ転送用のクロックCLKを生成する。例えば、制御電圧VCが高くなるとCLKの発振周波数も高くなり、制御電圧VCが低くなるとCLKの発振周波数も低くなる。
【0149】
分周器408は、VCO406から入力されるクロックCLKを分周(1/N)して、分周後のクロックDCLKを位相比較器400に出力する。
【0150】
図15(A)のクロック生成回路によれば、分周比Nの設定により、データ転送用のクロックCLKの周波数を可変に制御できる。従って、転送速度設定コマンドに基づいて分周比Nを設定し、その分周比Nで設定されたクロックCLKを用いてデータ転送を行うようにすれば、転送速度設定コマンドに応じた転送速度でデータ転送を実現できるようになる。
【0151】
図15(B)に、クロック生成回路の他の構成例を示す。
【0152】
このクロック生成回路は、高速転送用PLL回路410と、中速転送用PLL回路412と、低速転送用PLL回路414と、セレクタ420を含む。
【0153】
ここで、高速転送用、中速転送用、低速転送用のPLL回路410、412、414は、各々、高速転送用、中速転送用、低速転送用のクロックCLKH、CLKM、CLKLを生成する。なお、これらのPLL回路410、412、414の構成としては、図15(A)に示す構成等を採用できる。
【0154】
セレクタ420は、これらのクロックCLKH、CLKM、CLKLのいずれかを選択して、データ転送用のクロックCLKとして出力する。そして本実施形態では、このCLKを用いてデータ転送が行われる。
【0155】
図15(B)のクロック生成回路によれば、例えば、転送速度設定コマンドにより、高速の転送速度が設定された場合には、セレクタ420がCLKHを選択する。同様に、転送速度設定コマンドにより、中速、低速の転送速度が設定された場合には、セレクタ420がCLKM、CLKLを選択する。これにより、転送速度設定コマンドに応じた転送速度でのデータ転送を実現できる。
【0156】
なお、図15(B)のクロック生成回路では、クロック周波数(発振周波数)が異なる3つのPLL回路を用いているが、クロック周波数が異なる2つのPLL回路を用いたり、クロック周波数が異なる4つ以上のPLL回路を用いてもよい。この場合のクロック周波数(発振周波数)が異なる複数のPLL回路は、図15(A)の分周器408の分周比Nを変えることで実現できる。
【0157】
また、USBによるデータ転送の場合には、PLL410、412、414として、ハイスピードモード(HS)用、フルスピードモード(FS)用、ロースピードモード(LS)用のPLL回路を用いることができる。
【0158】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0159】
例えば、本発明のデータ転送制御システムや電子機器の構成は、図1、図10、図11等で説明した構成に限定されるものではなく、種々の変形実施が可能である。
【0160】
また、転送コントローラやクロック生成回路の構成も、図12、図13、図15(A)、(B)で説明した構成に限定されず、種々の変形実施が可能である。
【0161】
また、本発明の転送速度の設定手法も、図3、図4、図5、図8、図9等で説明した手法に限定されるものではない。
【0162】
また、本発明のデータ転送制御システムを適用できる電子機器も、本実施形態で説明した表示装置、撮像装置に限定されない。例えば、液晶パネル以外のパネル(有機ELパネル等)を用いた表示装置でもよい。また、CCD以外の撮像素子を用いた撮像装置でもよい。また、表示装置、撮像装置以外の電子機器にも本発明は適用できる。
【0163】
また、明細書中の記載において広義な用語(第1のコントローラ、第2のコントローラ、第1のメモリ、第2のメモリ、データ蓄積状況、パケットバッファ、デバイス等)として引用された用語(ホストコントローラ、デバイスコントローラ、ホスト側のメモリ、デイバス側のメモリ、蓄積データ量、FIFO、表示部・撮像素子等)は、明細書中の他の記載においても広義な用語に置き換えることができる。
【0164】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】本実施形態のデータ転送制御システム、電子機器の構成例を示す図である。
【図2】図2(A)、(B)は、転送速度と蓄積データ量の関係を示す図である。
【図3】転送速度の設定手法について説明するための図である。
【図4】転送速度の設定手法について説明するための図である。
【図5】画像データ量特定情報に基づき転送速度を設定する手法について説明するための図である。
【図6】図6(A)、(B)は、データ蓄積状況や転送速度設定コマンドをコントロール転送を用いて転送する手法について説明するための図である。
【図7】データ蓄積状況をインタラプト転送を用いて転送する手法について説明するための図である。
【図8】データ転送制御システムの動作について説明するためのフローチャートである。
【図9】データ転送制御システムの動作について説明するためのフローチャートである。
【図10】データ転送制御システム、電子機器の第1の変形例を示す図である。
【図11】データ転送制御システム、電子機器の第2の変形例を示す図である。
【図12】ホスト側の転送コントローラの構成例を示す図である。
【図13】デバイス側の転送コントローラの構成例を示す図である。
【図14】蓄積データ量の取得手法について説明するための図である。
【図15】図15(A)、(B)は、クロック生成回路の構成例を示す図である。
【符号の説明】
110 ホストコントローラ(第1のコントローラ)
120 処理部
130 速度設定部
132 解析部
134 メモリ管理部
160 転送コントローラ
162 物理層回路
164 シリアル/パラレル変換回路
166 パラレル/シリアル変換回路
168 FIFO(パケットバッファ)
170 DMAC
172 CPUインターフェース回路
174 制御回路
176 制御レジスタ
180 クロック生成回路
190 メモリ(第1のメモリ)
200 バス
210 デバイスコントローラ(第2のコントローラ)
220 処理部
230 速度設定部
234 メモリ管理部
240 データ伸長部
242 データ圧縮部
250 表示コントローラ
252 撮像素子コントローラ
260 転送コントローラ
262 物理層回路
264 シリアル/パラレル変換回路
266 パラレル/シリアル変換回路
268 FIFO(パケットバッファ)
270 DMAC
272 CPUインターフェース回路
274 制御回路
276 制御レジスタ
280 クロック生成回路
290 メモリ(第1のメモリ)
300 表示部(デバイス)
302 表示パネル
304 表示ドライバ
310 撮像素子(デバイス)
【発明の属する技術分野】
本発明は、データ転送制御システム、電子機器及びデータ転送制御方法に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来の液晶表示装置(広義には表示装置)では、表示のため各種制御信号や表示データを、ホストコントローラ(CPU)、デバイスコントローラ(表示コントローラ)間でパラレル転送している。このため、信号線が多くなり、ホストコントローラが実装される基板(circuit board)とデバイスコントローラが実装される基板とを接続するコネクタが大きくなる等の事態が生じ、製造コストの上昇を招く。
【0003】
このような問題を解決するために、制御信号や表示データをシリアル転送する従来技術が知られている。例えば特開平6−9506号では、デバイスコントローラにデータ保持回路を持たせ、ホストコントローラ、デバイスコントローラ間での制御信号、表示データの高速シリアル転送を実現している。
【0004】
一方、近年、静止画のみならず動画も表示できる液晶表示装置への要望が強まっている。しかしながら、動画データをリアルタイムに転送しようとすると、ホストコントローラ、デバイスコントローラ間の転送データ量が更に増加する。このため、より高速なシリアル転送が必要になる。また、この高速シリアル転送が原因となって、消費電力の増加や、EMIノイズの発生などの問題が生じる可能性もある。
【0005】
このような問題を解決する従来技術としては、例えば特開平4−330489、特開平8−202526、特開平11−65535などがある。
【0006】
しかしながら、これらの従来技術によっても、消費電力の低減や、EMIノイズの発生の抑制という技術課題の達成は不十分であった。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、低消費電力のデータ転送を実現できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0008】
また本発明の他の目的は、受信した圧縮データを記憶するメモリの資源を節約できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0010】
本発明では、圧縮画像データを含む圧縮データがバスを介して転送される。ここで、圧縮画像データは、デバイスの1つである表示部の表示に使用されるデータであってもよいし、デバイスの1つである撮像素子により取得されるデータであってもよい。
【0011】
そして本発明では、第1のコントローラ(送信側)の転送コントローラの転送速度が、第2のコントローラ(受信側)の第2のメモリのデータ蓄積状況に基づいて設定される。これにより、第1、第2のコントローラ間の転送速度が最適な速度に設定され、データ転送の低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0012】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度を設定してもよい。
【0013】
このようにすれば、蓄積データ量が、第1のデータ量を上回ったり、第2のデータ量を下回ったりする事態を抑制できる。
【0014】
また本発明では、前記第1のデータ量が、第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定してもよい。
【0015】
なお、第1のデータ量を、第2のメモリがフル状態になる時の蓄積データ量と同じに設定することも可能である。
【0016】
また本発明では、前記第2のデータ量が、圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定してもよい。
【0017】
ここで、伸長処理単位となるデータ量とは、例えば、1フレーム分の画像データ量である。なお、第2のデータ量を、0よりも大きなデータ量(伸長処理単位とは無関係なデータ量)に設定してもよい。
【0018】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラのデータ転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0019】
このようにすれば、転送コントローラの転送速度が速くなりすぎてしまう事態を防止できる。
【0020】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、転送コントローラを転送待ち状態に設定してもよい。
【0021】
なお、転送待ち状態で所与の時間が経過した場合(蓄積データ量が第2のデータ量になった場合)に、転送コントローラの転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0022】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第2のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラの転送速度を、第1の転送速度よりも速い第3の転送速度に設定すしてもよい。
【0023】
このようにすれば、転送コントローラの転送速度が遅くなりすぎてしまう事態を防止できる。
【0024】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のコントローラから第2のメモリのデータ蓄積状況を取得してもよい。
【0025】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、転送速度の設定コマンドを第2のコントローラに知らせてもよい。
【0026】
また本発明では、前記転送速度設定部が、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定してもよい。
【0027】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0028】
本発明では、圧縮データが解析され、圧縮データの中から画像データ量特定情報が取得される(データ伸長処理を行うことなく取得される)。そして、この取得された画像データ量特定情報に基づいて、転送コントローラの転送速度が設定される。
【0029】
このようにすることで、圧縮データに含まれる画像データの量を、ある程度予測することができ、転送コントローラの転送速度を最適な速度に設定できる。
【0030】
また本発明では、前記転送速度設定部が、圧縮データのシーケンス層に含まれるビットレートに基づいて、転送コントローラの転送速度を設定してもよい。
【0031】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、バスを介して第1のコントローラから転送される圧縮データを受信する転送コントローラと、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得するメモリ管理部と、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0032】
本発明によれば、バスを介して第1のコントローラから転送される圧縮データが、第2のコントローラの転送コントローラにより受信され、第2のコントローラの第2のメモリに蓄積される。そして、この第2のメモリのデータ蓄積状況が取得され、第2のコントローラから第1のコントローラに知らされる。
【0033】
第1のコントローラは、このデータ蓄積状況に基づいて転送速度を決定し、決定した転送速度の設定コマンドを第2のコントローラに転送する。すると、第2のコントローラの転送速度設定部が、この転送速度設定コマンドに基づいて、第2のコントローラの転送コントローラの転送速度を設定する。これにより、第1、第2のコントローラ間の転送速度を最適な速度に設定でき、低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0034】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第1のコントローラから転送速度設定コマンドを取得してもよい。
【0035】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のメモリのデータ蓄積状況を第1のコントローラに知らせてもよい。
【0036】
また本発明は、第1のコントローラと、第1のコントローラとバスを介して接続される第2のコントローラと、圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するための上記のいずれかのデータ転送制御システムと、第1のコントローラ又は第2のコントローラにより制御されるデバイスとを含む電子機器に関係する。
【0037】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定するデータ転送制御方法に関係する。
【0038】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0039】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、バスを介して第1のコントローラから転送される圧縮データを転送コントローラにより受信し、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得し、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0040】
【発明の実施の形態】
以下、本実施形態について説明する。
【0041】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0042】
1.構成
図1に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義には表示装置)の構成例を示す。図1において、ホスト側(マスター側、送信側)のデータ転送制御システムは、転送コントローラ160、転送速度設定部130等により構成される。また、デバイス側(スレーブ側、受信側)のデータ転送制御システムは、転送コントローラ260、転送速度設定部230等により構成される。なお、図1の回路ブロック一部を省略する構成としてもよい。
【0043】
1.1 ホストコントローラ
ホストコントローラ110(広義には第1のコントローラ)は、ホスト側(マスター側、送信側)のコントローラであり、処理部120、転送コントローラ160、メモリ190(第1のメモリ)を含む。このホストコントローラ110(第1のコントローラ)は例えば第1の基板(circuit board)に実装される。なお、メモリ190をホストコントローラ110の外付けメモリにしてもよい。
【0044】
処理部120は、ホストコントローラ110内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部120の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0045】
転送コントローラ160(ホスト側、マスター側、或いは送信側の転送コントローラ。シリアル・インターフェース・コントローラ)は、基地局等から送られてくる圧縮データを、バス200(狭義には、双方向シリアルバス)を介してデバイスコントローラ210(広義には第2のコントローラ)に転送する処理を行う。より具体的には、メモリ190から圧縮データを読み出し、この圧縮データ(マックスパケットサイズのデータ)をペイロードとして含むパケットを組み立てる。そして、組み立てられたパケットを、所与のプロトコルに従って、バス200を介してデバイスコントローラ210(転送コントローラ260)に転送(送信)する。
【0046】
メモリ190(ホスト側、マスター側、或いは送信側のメモリ)は、基地局等から送られてくる圧縮データ(例えばMPEGのビットストリーム)を記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0047】
なお、メモリ190に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部120のワーク領域として使用するようにしてもよい。
【0048】
処理部120は転送速度設定部130を含む。この転送速度設定部130(転送速度切り替え部)は、デバイスコントローラ210(第2のコントローラ)が有するメモリ290(第2のメモリ)のデータ蓄積状況(メモリの蓄積データ量、空き容量等)に基づいて、転送コントローラ160の転送速度(パケット転送の速度。単位時間に転送される平均データ量)を設定する。より具体的には、メモリ290のデータ蓄積の程度や空きの程度を表すデータ蓄積状況(メモリ・ステータス)に応じて、転送コントローラ160の転送速度(transfer rate)を切り替え、転送速度を動的に変化させる。
【0049】
更に、転送速度設定部130は、決定した転送速度をデバイスコントローラ210に知らせる。より具体的には、転送速度の設定コマンドをパケット転送等を利用してデバイスコントローラ210(転送コントローラ260)に転送する。この場合の転送速度設定コマンドの転送は、例えばUSBのコントロール転送、或いはこの転送に準じたパケット転送により実現できる。
【0050】
なお、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、転送速度設定コマンドをデバイスコントローラ210に伝えてもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して転送することで、転送速度設定コマンド(転送速度情報)をデバイスコントローラ210に伝えてもよい。
【0051】
また本実施形態の転送速度設定部130は、デバイス側(受信側、スレーブ側)のメモリ290の蓄積データ量(空き容量)が、第1のデータ量DA1(許容される最大の蓄積データ量)と第2のデータ量DA2(許容される最小の蓄積データ量)の間のデータ量DA(DA2≦DA≦DA1)になるように、転送速度を設定する。
【0052】
この場合のデータ量DA1は、例えば、メモリ290がフル状態になる時の蓄積データ量(フル・メモリ容量)よりも小さなデータ量に設定できる。またデータ量DA2は、圧縮データ(MPEG)の伸長処理単位となるデータ量(例えば1フレーム分のデータ量)よりも大きなデータ量に設定できる。
【0053】
なお、メモリ290のデータ蓄積状況(メモリ・ステータス)は、バス200を介したパケット転送により取得することが望ましい。より具体的には、USBのコントロール転送、インタラプト転送或いはこれらの転送に準じたパケット転送によりデータ蓄積状況を取得する。このようにパケット転送を利用することで、データ蓄積状況の効率的な取得が可能になる。
【0054】
但し、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、データ蓄積状況をデバイスコントローラ210から取得してもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して受信することで、データ蓄積状況を取得してもよい。
【0055】
また、転送速度の設定を、ホストコントローラ110(第1のコントローラ)のメモリ190(第1のメモリ)のデータ蓄積状況に基づいて設定してもよい。例えば本実施形態では、基地局等から送られてくる圧縮データ(ビットストリーム)のメモリ190への書き込み処理と並行して、転送コントローラ160のデータ転送処理が行われる。従って、この場合には、転送速度設定部130は、メモリ190のデータ蓄積状況に基づいて、転送コントローラ160の転送速度の設定処理や転送のウェイト処理を行うことが望ましい。
【0056】
また、バス200(転送コントローラ)の転送方式としては、差動信号を用いたシリアル転送方式が望ましい。より具体的には、USB(Universal Serial Bus)、IEEE1394、或いはこれらの転送方式に準じた独自のプロトコルの転送方式(USB、IEEE1394の中から不要な機能を取り除いた転送方式)を採用できる。或いは、物理層の転送方式としてLVDS(Low Voltage Differential Signaling)を採用してもよい。
【0057】
また、バス200の転送方式としてUSB(USB2.0、USB1.1、USB On−The−Go)やそれに準じた転送方式を採用する場合には、転送速度の設定を、転送速度が480Mbpsであるハイスピードモード(HS)、12Mbpsであるフルスピードモード(FS)、1.5Mbpsであるロースピードモード(LS)の切り替えにより実現してもよい。或いは、HS、FS間、或いはFS、LS間の中間の転送速度への切り替えにより実現してもよい。
【0058】
転送速度設定部130が含む解析部132は、メモリ190に書き込まれた圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報を取得する。そして、転送速度設定部130は、この画像データ量の特定情報に基づいて、転送コントローラ160の転送速度を設定する。
【0059】
ここで、画像データ量の特定情報としては、圧縮データのビットレート(例えばMPEGのシーケンス層に含まれるBRV)、画像サイズ(例えばMPEGのシーケンス層に含まれるHSV、VSV)、或いは動きベクトル情報(例えばMEPGのマクロブロック層に含まれるMHC、MVC)などを用いることができる。即ち、ビットレート、画像サイズ、又は動きベクトルを用いることで、圧縮データを伸長することなく、圧縮データ中の画像データの占める割合を予測できる。そして、画像データ量が大きいと予測される場合には転送速度を速くし、画像データ量が小さいと予測される場合には転送速度を遅くする。これにより、最適な転送速度でのデータ転送を実現できる。
【0060】
なお、転送速度設定部130の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部130をハードウェア回路により実現する場合には、転送速度設定部130の一部又は全部を実現する回路を、転送コントローラ160内に設ければよい。
【0061】
1.2 デバイスコントローラ
デバイスコントローラ210(広義には第2のコントローラ)は、デバイス側(スレイブ側、受信側)のコントローラであり、処理部220、転送コントローラ260、メモリ290(第2のメモリ)を含む。また、データ伸長部240、表示コントローラ250を含む。このホストコントローラ210(第2のコントローラ)は例えば第2の基板(circuit board)に実装される。なお、メモリ290をデバイスコントローラ210の外付けメモリにしてもよい。
【0062】
処理部220は、デバイスコントローラ210内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部220の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0063】
データ伸長部240は、メモリ290に記憶された圧縮データを伸長する処理を行う。例えば、圧縮データがMPEGやJPEGにより圧縮されていた場合には、MPEGやJPEGの規格に応じた伸長処理を行う。
【0064】
なお、データ伸長部240の機能は、その一部又は全部をハードウェア回路により実現してもよいし、データ伸長部240を処理部220に含ませ、その機能をファームウェア(プログラム)により実現してもよい。
【0065】
表示コントローラ250は、データ伸長部240により得られた伸長画像データを受け、表示部300(広義にはデバイス)の表示制御を行う。例えば、表示部300に表示データを転送したり、表示部300が含む表示ドライバ304を制御する。
【0066】
表示部300(狭義には液晶表示装置)は、表示パネル300(電気光学パネル)、表示ドライバ304を含む。表示パネル300は、複数の走査線と、複数のデータ線と、複数の画素を含む。表示ドライバ304は、これらの走査線、データ線を駆動し、電気光学物質(液晶素子)を用いた画像表示を実現する。
【0067】
転送コントローラ260(デバイス側、スレイブ側、或いは受信側の転送コントローラ)は、バス200を介してホストコントローラ110(第1のコントローラ)から転送される圧縮データを受信する処理を行う。より具体的には、バス200を介して所与のプロトコルに従って転送されてきたパケットを分解し、パケットのペイロードに含まれる圧縮データを取得する。そして、取得した圧縮データをメモり290に出力する。
【0068】
メモリ290(デバイス側、スレイブ側、或いは受信側のメモリ)は、転送コントローラ260からの圧縮データを記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0069】
なお、メモリ290に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部220のワーク領域として使用するようにしてもよい。
【0070】
処理部220は転送速度設定部230を含む。この転送速度設定部230(転送速度切り替え部)は、転送コントローラ260の転送速度を、メモリ290のデータ蓄積状況に応じた転送速度に設定する。より具体的には、メモリ290のデータ蓄積状況を取得し、ホストコントローラ110(第1のコントローラ)に知らせる。すると、ホストコントローラ110は、このデータ蓄積状況に基づいて転送速度を決定する。そして転送速度設定部230は、ホストコントローラ110から転送速度設定コマンドを受け、この転送速度設定コマンドに基づいて、転送コントローラ260の転送速度を設定する。これにより、メモリ290のデータ蓄積状況に応じて、転送コントローラ260の転送速度を動的に変化させることができる。
【0071】
なお、データ蓄積状況は、バス200を介したパケット転送(コントロール転送、インタラプト転送)によりホストコントローラ110に伝えることが望ましい。或いは、ホストコントローラ110、デバイスコントローラ210間の制御線を用いたり、フォーマットの異なる何種類かのデータパターンを用いて、ホストコントローラ110にデータ蓄積状況を知らせてもよい。また、転送速度設定コマンドも、パケット転送により取得してもよいし、制御線を用いたり、データパターンを用いて取得してもよい。
【0072】
メモリ管理部234はメモリ290のメモリ管理(ポインタ制御、アドレス生成等)を行う。そして、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。より具体的には、メモリ290の読み出しポインタ、書き込みポインタの差分を計算することで、蓄積データ量を取得する。そして、この蓄積データ量がペイロードに設定されたパケットが、ホストコントローラ110に転送され、データ蓄積状況がホストコントローラ110に知らされる。
【0073】
また、転送速度設定部230の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部230をハードウェア回路により実現する場合には、転送速度設定部230の一部又は全部を実現する回路を、転送コントローラ260内に設ければよい。
【0074】
2.データ蓄積状況に応じた転送速度の設定
本実施形態では、メモリ290のデータ蓄積状況に応じて、バス200の転送速度を設定している。
【0075】
図2(A)、(B)に、転送速度とメモリの蓄積データ量の関係を示す。これらの図から明らかなように、転送速度を低くすることで使用メモリ容量を節約できる。
【0076】
例えば図2(A)では、T1、T2、T3に示すように、圧縮データ(ビットストリーム)が、所与の時間間隔でデータパケットとして転送され、転送コントローラ260が受信する。そして、受信された圧縮データがメモリ290に書き込まれる。これにより、A1、A2、A3に示すように、メモリ290の蓄積データ量DAが増加する。この場合に、転送速度を速くすると(TR1)、蓄積データ量DAの増え方も速くなる。
【0077】
そして、T4、T5、T6では、メモリ290の圧縮データがデータ伸長部240により読み出され、メモリデータが消費される。これにより、A4、A5、A6に示すように、メモリ290の蓄積データ量DAが減少する。
【0078】
一方、図2(B)では、図2(A)と同じ時間間隔でデータパケットが転送されている。しかしながら、図2(B)の転送速度TR2は図2(A)の転送速度TR1よりも遅い速度に設定されている。
【0079】
このように、ゆっくりした転送速度でデータを転送することで、図2(A)、(B)を比べれば明らかなように、メモリ290の蓄積データ量DAの最大値DAMAXが少なくなる。従って、メモリ290の最大使用メモリ容量が少なくて済むようになり、メモリ資源の節約や、回路規模の削減を図れる。また、転送速度を低くすることで、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0080】
本実施形態では、このような転送速度と蓄積データ量の関係に着目し、メモリ290のデータ蓄積状況に応じて転送速度を制御している。この本実施形態の転送速度の制御手法を、図3を用いて説明する。
【0081】
図3のB1、B2、B3では、転送速度TR1でパケット転送が行われている。そして、B4では、メモリ290の蓄積データ量DAが第1のデータ量DA1(最大許容蓄積データ量)に達している(DA=DA1或いはDA≧DA1)。この場合に本実施形態では、B5に示すように、転送コントローラ160が転送待ち状態に設定される。また、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、B6、B7に示すように、TR1よりも遅いTR2(第2の転送速度)に設定(変更)される。
【0082】
より具体的には、転送コントローラ160が転送待ち状態に設定された後、B8に示すようにメモリ290の蓄積データ量DA(使用メモリ容量)が第2のデータ量DA2(最小許容蓄積データ量)に達すると(DA=DA2或いはDA≦DA2)、転送コントローラ160の転送速度が、TR1より遅いTR2に設定される。そして、B6、B7に示すように、この遅い転送速度TR2で転送コントローラ160によるパケット転送が行われる。
【0083】
また図4のC1、C2では、転送速度TR1でパケット転送が行われている。そして、C3では、メモリ290の蓄積データ量DAが第2のデータ量DA2(最小許容蓄積データ量)に達している(DA=DA2或いはDA≦DA2)。この場合に本実施形態では、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、C4、C5に示すように、TR1よりも速いTR3(第3の転送速度)に設定(変更)される。
【0084】
以上のようにすることで、メモリ290の蓄積データ量DAが、DA1(第1のデータ量)とDA2(第2のデータ量)の間のデータ量になるように、転送コントローラ160の転送速度が設定されるようになる。
【0085】
このようにすることで、メモリ290の蓄積データ量DAが多くなりすぎたり、少なくなりすぎたりする事態を抑制できる。これにより、メモリ290の資源を節約でき、そのメモリ容量を小さくすることが可能になる。この結果、回路の小規模化を図れる。
【0086】
また本実施形態によれば、バス200を介したデータ転送が不必要に高速になってしまう事態を防止でき、最適な転送速度でのデータ転送が可能になる。これにより、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0087】
なお、第1のデータ量DA1としては、例えば、メモリ290がフル状態になる時の蓄積データ量FDA(フル・メモリ容量)よりも小さなデータ量(DA1<FDA)を採用できる。このようにすれば、蓄積データ量DAがFDAに達する前に、転送コントローラ160を転送待ち状態に設定したり、転送速度を遅くすることが可能になる。これにより、メモリ290がフルになってしまう事態を未然に防止できる。なお、第1のデータ量DA1をFDAと同じにすることも可能である。
【0088】
また、第2のデータ量DA2としては、例えば、0よりも大きなデータ量を採用できる(DA2>0)。更に具体的には、DA2として、圧縮データの伸長処理単位となるデータ量EDA(画像処理に必要なデータ量)よりも大きなデータ量を採用できる(DA2>EDA)。
【0089】
ここで、伸長処理単位となるデータ量EDAは、例えば、1フレーム分の画像データ量、或いはGOP層(MPEG)の数ピクチャ分(I、B、Pピクチャ)の画像データ量などである。このようにすれば、メモリ290には、最低限、EDAの大きさの圧縮データが常に存在するようになる。従って、データ伸長部240(処理部220)は、メモリ290の圧縮データを用いて、データ伸長処理を途切れることなく実行できる。これにより、データ伸長処理の効率化を図れる。
【0090】
3.画像データ量特定情報に基づく転送速度の設定
本実施形態では、圧縮データの画像データ量特定情報に基づいて、バス200を介したデータ転送(パケット転送)の転送速度を設定している。
【0091】
ここで画像データ量特定情報は、圧縮データに含まれる情報である。より具体的には、圧縮データの所与の層(シーケンス層又はマクロブロック層等)に含まれる情報である。また、圧縮データの伸長処理を行うことなく、取り出すことができる情報である。そして、この画像データ量特定情報は、圧縮データの画像データ量を特定(予測)するための情報である。
【0092】
図5に、MPEG(Motion Picture Group)データの階層構造の例を示す。MPEG(MPEG2)データは、シーケンス層、GOP(Group Of Picture)層、ピクチャ層、スライス層、マクロブロック層、ブロック層により構成される。本実施形態では、画像データ量特定情報として、シーケンス層のシーケンスヘッダSHに含まれるビットレート(BRV)や画像サイズ(HSV、VSV)などを採用している。また、マクロブロック層に含まれる動きベクトル情報(MHC、MVC等)を採用している。
【0093】
ここで、BRV(Bit Rate Value)は、発生ビット量に対する制限のためのビットレートの下位18ビットである。ビットレートを用いることで、圧縮データのうちの平均的な画像データ量を知ることができる。そして、ビットレートが高く、画像データ量が多い場合には、データ転送の転送速度を速くする。なお、MPEGのコンテンツのファイル・フォーマットのヘッダに含まれるビットレート(ビットレートの公称値)を用いてもよい。
【0094】
また、HSV(Horizontal Size Value)、VSV(Vertical Size Value)は、画像の横の画素数、縦のライン数の下位12ビットである。画像サイズ(HSV、VSV)を用いることで、各フレームの画像のデータ量を知ることができる。そして、画像サイズが大きく、各フレームの画像データ量が多い場合には、データ転送の転送速度を速くする。
【0095】
また、MHC(Motion Horizontal Code)、MVC(Motion Vertical Code)は、動きベクトルの水平成分、垂直成分と前のベクトルとの差分をVLCで符号化したものである。例えば、表示物の動きが大きいか、小さいかは、動きベクトル情報に基づいて判断できる。そして、動きベクトル情報に基づき、表示物の動きが大きいと判断された場合には、データ転送の転送速度を速くする。
【0096】
以上のように、画像データ量特定情報を用いて、バス200を介したデータ転送(パケット転送)の転送速度を制御することで、画像データ量に応じて、予測的に転送速度を変化させることが可能になる。これにより、更に細かでインテリジェントな転送速度の制御が可能になる。
【0097】
4.データ蓄積状況、転送速度設定コマンドのパケット転送
本実施形態では、データ蓄積状況や転送速度設定コマンドを、パケット転送を利用してバスを介して転送している。
【0098】
例えば図6(A)、(B)に、USBのコントロール転送のタイミングチャートを示す。なお、「H→D」は、ホスト側からデバイス側にパケットが転送されることを示し、「H←D」は、デバイス側からホスト側にパケットが転送されることを示す。
【0099】
まず、図6(A)のセットアップステージにおいては、ホスト側(ホストコントローラ110、第1のコントローラ)がデバイス側(デバイスコントローラ210、第2のコントローラ)に、SETUPトークンパケットを転送する。そして、ホスト側がデバイス側に、デバイスリクエストのデータパケットを転送する。この時に本実施形態では、ホスト側が、データパケットのペイロードにデータ蓄積状況の転送指示コマンドを設定する。そして、データパケットの転送が成功すると、デバイス側がホスト側にACK(ハンドシェークパケット)を返す。
【0100】
次のデータステージおいては、ホスト側がデバイス側にINトークンパケットを転送する。すると、デバイス側が、データ蓄積状況(メモリ290の蓄積データ量等)をデータパケットのペイロードに設定して、ホスト側に転送する。そして、データパケットの転送が成功すると、ホスト側がデバイス側にACKを返す。
【0101】
次のステータスステージにおいては、ホスト側がデバイス側にOUTトークンパケットを転送した後、0長のデータパケットをデバイス側に転送する。そして、デバイス側がホスト側にACKを返すと、コントロール転送が終了する。
【0102】
図6(A)の手法によれば、データ蓄積状況を、パケット転送(コントロール転送)を利用して、デバイス側からホスト側に伝えることができる。これにより、簡素な処理でデータ蓄積状況を伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0103】
一方、図6(B)では、セットアップステージにおいて、ホスト側が、データパケットのペイロードに転送速度設定コマンドを設定して、デバイス側に転送している。そして、次のステータスステージにおいては、ホスト側からのINトークンを受けたデバイス側が、0長のデータパケットをホスト側に転送する。
【0104】
図6(B)の手法によれば、転送速度設定コマンドを、パケット転送(コントロール転送)を利用して、ホスト側からデバイス側に伝えることができる。これにより、簡素な処理で転送速度設定コマンドを伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0105】
なお、図7に示すように、USBのインタラプト転送(或いはこれに準じた転送方式)を利用して、データ蓄積状況をデバイス側からホスト側に伝えてもよい。
【0106】
即ち、インタラプト転送においては、ホスト側が、所与のフレーム間隔(Nフレーム間隔)で、INトークンをデバイス側に転送する(ポーリングを行う)。なお、図7において、SOFは、フレーム毎にホスト側が発生するスタート・オブ・フレーム・パケットである。
【0107】
ホスト側からINトークンを受けたデバイス側は、自身のステータスをホスト側に転送する。この時に本実施形態では、デバイス側が、データ蓄積状況(蓄積データ量等)をステータスに含ませて、ホスト側に転送する。このようにすることで、所与のフレーム毎にデバイス側からホスト側にデータ蓄積状況が自動的に伝えられるようになり、ホスト側の処理負荷等を軽減できる。
【0108】
なお、データ蓄積状況や転送速度設定コマンドの転送を、コントロール転送やインタラプト転送以外のパケット転送で転送してもよい。また、コントロール転送やインタラプト転送を用いる場合(既知のデバイスが繋がりっぱなしの場合)に、転送コントローラ160、260の転送方式は、USB規格に完全に準拠していなくてもよい。例えば、USBの転送方式の機能の一部(プラグ&プレイの機能等)を省略すると共に、コントロール転送、インタラプト転送については、USB規格の転送方式に準拠するようにしてもよい。
【0109】
5.動作
次に、図8、図9のフローチャートを用いて、本実施形態のデータ転送制御システムの動作について説明する。
【0110】
まず、受信した圧縮データ(ビットストリーム)をホスト側のメモリ190に蓄積する(ステップS1)。そして、ホスト側及びデバイス側の転送コントローラ160、260の初期転送速度を設定する(ステップS2)。
【0111】
次に、所与(所定)の転送サイズのデータを、転送コントローラ160のパケットバッファ(FIFO)に取得する(ステップS3)。
【0112】
次に、そのデータにシーケンスヘッダが含まれるか否かを判断し(ステップS4)、含まれる場合には、シーケンスヘッダに含まれるビットレート(BR)を取得する(ステップS5)。そして、ホスト側(送信側)の転送コントローラ160の転送速度をTR1=α×BR(α<1)に設定する(ステップS6)。そして、転送速度が変化した場合には、ホスト側(送信側)の転送コントローラ160からデバイス側(受信側)の転送コントローラ260に、転送速度設定コマンドをパケット転送する(ステップS7、ステップS8)。
【0113】
次に、デバイス側のメモリ290の蓄積データ量DA(データ蓄積状況)をパケット転送により取得する(ステップS9。図6(A)、図7参照)。
【0114】
次に、蓄積データ量DAが第1のデータ量DA1よりも小さいか否かを判断する(ステップS10)。そして、DA<DA1の場合には、DAが第2のデータ量DA2よりも大きいか否かを判断する(ステップS11)。そして、DA>DA2の場合、即ちDA2<DA<DA1の場合には、データをパケット転送する(ステップS12)。そして、全てのデータの転送が終了したか否かを判断し(ステップS13)、終了していない場合には、図8のステップS3に戻る。
【0115】
図9のステップS10で、DA≧DA1と判断された場合には、所与(所定)の時間だけ、データ転送を待ち状態にする(ステップS14。図3のB5参照)。そして、デバイス側の蓄積データ量DAをパケット転送により取得する(ステップS15。図6(A)、図7参照)。
【0116】
次に、DAがDA1に達したか否かを判断する(ステップS16)。そして、DA=DA1になった場合には、ホスト側の転送コントローラ160の転送速度を、TR2=β×TR1(β<1)に設定する(ステップS17。図3のB6、B7参照)。そして、ホスト側からデバイス側に転送速度設定(切り替え)コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0117】
図9のステップS11で、DA≦DA2と判断された場合には、ホスト側の転送コントローラ160の転送速度を、TR3=γ×TR1(γ>1)に設定する(ステップS19.図4のC4、C5参照)。そして、ホスト側からデバイス側に転送速度設定コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0118】
6.変形例
図10に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義にはデジタルカメラなどの撮像装置)の第1の変形例を示す。
【0119】
図10では、デバイスコントローラ210が第1のコントローラ(送信側コントローラ)として機能し、ホストコントローラ110が第2のコントローラ(受信側コントローラ)として機能する。また、デバイス側のメモリ290が第1のメモリとして機能し、ホスト側のメモリ190が第2のメモリとして機能する。
【0120】
そして、デバイスコントローラ210には、CCD等の撮像素子(広義にはデバイス)が接続される。また、デバイスコントローラー210は、データ圧縮部242と撮像素子コントローラ252を含む。
【0121】
データ圧縮部242は、撮像素子コントローラ252を介して撮像素子310から取得された画像データをMPEG、JPEG方式等により圧縮する。そして、圧縮データはメモリ290に蓄積される。
【0122】
転送コントローラ260は、メモリ290に蓄積された圧縮データを、バス200を介して転送する。この時に、転送速度設定部230は、ホスト側のメモリ190のデータ蓄積状況に基づいて、転送速度を設定する。そして、設定された転送速度で、転送コントローラ260、160間でバス200を介したデータ転送が行われる。そして、ホスト側の転送コントローラ160は、圧縮データを受信すると、その圧縮データをメモリ190に蓄積する。
【0123】
図11に、本実施形態のデータ転送制御システム及びこれを含む電子機器の第2の変形例を示す。
【0124】
図11では、ホストコントローラ110、デバイスコントローラ210間において、表示部300に表示する画像データ(圧縮画像データ)が転送されると共に、撮像素子310により取得された画像データも転送される。即ち、バス200を介して双方向で画像データが転送される。
【0125】
そして、表示部300の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第1、第2のコントローラとして機能し、メモリ190、290は、各々、第1、第2のメモリとして機能する。
【0126】
一方、撮像素子310の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第2、第1のコントローラとして機能し、メモリ190、290は、各々、第2、第1のメモリとして機能する。
【0127】
7.詳細な構成例
図12に、ホスト側の転送コントローラ160の詳細な構成例を示す。この転送コントローラ160は、物理層回路162、FIFO168、DMAC170、CPUインターフェース回路172、制御回路174、クロック生成回路180を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。
【0128】
物理層回路162は、バス200を介したシリアル転送(差動信号を用いた転送)を実現するための回路であり、シリアル/パラレル変換回路164、パラレル/シリアル変換回路166を含む。
【0129】
例えば、受信時においては、バス200を介して受信したシリアルデータを、シリアル/パラレル変換回路164がパラレルデータに変換し、FIFO168に出力する。一方、送信時においては、FIFO168からのパラレルデータを、パラレル/シリアル変換回路166がシリアルデータに変換し、バス200を介して転送する。
【0130】
FIFO(First In First Out)168は、物理層回路162により送受信されるデータを一時的に記憶するバッファである。このFIFO168(広義にはパケットバッファ)は、SRAM、DRAM等のメモリにより実現してもよいし、Dフリップフロップ等により実現してもよい。
【0131】
DMAC(Direct Memory Access Controller)170は、処理部120の処理を介在することなく、FIFO168のデータをメモリ190に出力したり、メモリ190のデータを読み込む処理を行う。
【0132】
CPUインターフェース回路172は、処理部120とのインターフェースとして機能する回路である。処理部120は、このCPUインターフェース回路172を介して、FIFO168や制御回路174の制御レジスタ176にアクセスできる。
【0133】
制御回路174は、転送コントローラ160の全体的な制御や各回路ブロックの制御を行う回路であり、制御レジスタ176を含む。
【0134】
制御レジスタ176は、処理部120からのコマンドを設定したり、処理部120にステータスを表示(indicate)するためのレジスタである。
【0135】
クロック生成回路180は、転送コントローラ160の各回路ブロックが使用するクロックを生成する回路であり、PLL(Phase Locked Loop)回路等を内蔵する。
【0136】
図12において、転送速度設定部130は、転送速度設定コマンドをCPUインターフェース回路172を介して制御レジスタ176に書き込む。すると、クロック生成回路180は、制御レジスタ176に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ160は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0137】
また、転送速度設定部130は、転送速度設定コマンドがペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168に書き込む。これにより、デバイスコントローラ210に対して、転送速度設定コマンドをバス200を介してパケット転送できるようになる。
【0138】
また、転送速度設定部130は、蓄積データ量(広義にはデータ蓄積状況)がペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168から読み出す。これにより、デバイスコントローラ210から蓄積データ量を取得できるようになる。
【0139】
図13に、デバイス側の転送コントローラ260の詳細な構成例を示す。この転送コントローラ260は、物理層回路262、FIFO268、DMAC270、CPUインターフェース回路272、制御回路274、クロック生成回路280を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。また、これらの回路ブロックの機能は、図12の同じ名前の回路ブロックと同様であるため、その説明を省略する。
【0140】
図13において、転送速度設定部230は、FIFO268に蓄積されたパケットのデータをCPUインターフェース回路272を介して読み出すことで、ホストコントローラ110からの転送速度設定コマンドを取得する。そして、転送速度設定部230は、取得された転送速度設定コマンドを、CPUインターフェース回路272を介して制御レジスタ276に書き込む。すると、クロック生成回路280は、制御レジスタ276に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ260は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0141】
また、メモリ管理部234は、図14に示すように書き込みポインタWRP、読み出しポインタRDPを管理し、各ポインタ位置に対応するアドレスを発生する。そして、メモリ290の読み出し処理、書き込み処理を管理する。
【0142】
そして、メモリ管理部234は、これらのポインタWRP、RDPを用いて、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。具体的には、これらのポインタWRP、RDPの位置の差を求めることで、蓄積データ量を計算する。
【0143】
そして、転送速度設定部230は、取得された蓄積データ量がペイロードに設定されたパケットを、CPUインターフェース回路272を介してFIFO268に書き込む。これにより、ホストコントローラ110に対して、蓄積データ量をバス200を介してパケット転送できるようになる。
【0144】
図15(A)に、クロック生成回路180、280の構成例を示す。
【0145】
図15(A)のクロック生成回路(PLL回路)は、位相比較器400、チャージポンプ回路402、フィルタ回路404、VCO406、分周器408を含む。なお、これらの回路ブロックの一部(例えばフィルタ回路)を省略する構成とすることもできる。
【0146】
ここで位相比較器400は、基準クロックRCLKと分周器408からのクロックDCLKの位相を比較し、位相誤差信号PUP、PDWを出力する(PUPは位相進み信号、PDWは位相遅れ信号)。
【0147】
チャージポンプ回路402は、位相比較器400からのPUP、PDWに基づいてチャージポンプ動作を行う。より具体的には、PUPがアクティブになると、フィルタ回路404が含むコンデンサを充電する動作を行い、PDWがアクティブになると、コンデンサを放電する動作を行う。そして、フィルタ回路404により平滑化された制御電圧VCがVCO406に与えられる。
【0148】
VCO(Voltage Control Oscillator)406は、制御電圧VCに応じてその発振周波数が可変に制御される発振動作を行い、データ転送用のクロックCLKを生成する。例えば、制御電圧VCが高くなるとCLKの発振周波数も高くなり、制御電圧VCが低くなるとCLKの発振周波数も低くなる。
【0149】
分周器408は、VCO406から入力されるクロックCLKを分周(1/N)して、分周後のクロックDCLKを位相比較器400に出力する。
【0150】
図15(A)のクロック生成回路によれば、分周比Nの設定により、データ転送用のクロックCLKの周波数を可変に制御できる。従って、転送速度設定コマンドに基づいて分周比Nを設定し、その分周比Nで設定されたクロックCLKを用いてデータ転送を行うようにすれば、転送速度設定コマンドに応じた転送速度でデータ転送を実現できるようになる。
【0151】
図15(B)に、クロック生成回路の他の構成例を示す。
【0152】
このクロック生成回路は、高速転送用PLL回路410と、中速転送用PLL回路412と、低速転送用PLL回路414と、セレクタ420を含む。
【0153】
ここで、高速転送用、中速転送用、低速転送用のPLL回路410、412、414は、各々、高速転送用、中速転送用、低速転送用のクロックCLKH、CLKM、CLKLを生成する。なお、これらのPLL回路410、412、414の構成としては、図15(A)に示す構成等を採用できる。
【0154】
セレクタ420は、これらのクロックCLKH、CLKM、CLKLのいずれかを選択して、データ転送用のクロックCLKとして出力する。そして本実施形態では、このCLKを用いてデータ転送が行われる。
【0155】
図15(B)のクロック生成回路によれば、例えば、転送速度設定コマンドにより、高速の転送速度が設定された場合には、セレクタ420がCLKHを選択する。同様に、転送速度設定コマンドにより、中速、低速の転送速度が設定された場合には、セレクタ420がCLKM、CLKLを選択する。これにより、転送速度設定コマンドに応じた転送速度でのデータ転送を実現できる。
【0156】
なお、図15(B)のクロック生成回路では、クロック周波数(発振周波数)が異なる3つのPLL回路を用いているが、クロック周波数が異なる2つのPLL回路を用いたり、クロック周波数が異なる4つ以上のPLL回路を用いてもよい。この場合のクロック周波数(発振周波数)が異なる複数のPLL回路は、図15(A)の分周器408の分周比Nを変えることで実現できる。
【0157】
また、USBによるデータ転送の場合には、PLL410、412、414として、ハイスピードモード(HS)用、フルスピードモード(FS)用、ロースピードモード(LS)用のPLL回路を用いることができる。
【0158】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0159】
例えば、本発明のデータ転送制御システムや電子機器の構成は、図1、図10、図11等で説明した構成に限定されるものではなく、種々の変形実施が可能である。
【0160】
また、転送コントローラやクロック生成回路の構成も、図12、図13、図15(A)、(B)で説明した構成に限定されず、種々の変形実施が可能である。
【0161】
また、本発明の転送速度の設定手法も、図3、図4、図5、図8、図9等で説明した手法に限定されるものではない。
【0162】
また、本発明のデータ転送制御システムを適用できる電子機器も、本実施形態で説明した表示装置、撮像装置に限定されない。例えば、液晶パネル以外のパネル(有機ELパネル等)を用いた表示装置でもよい。また、CCD以外の撮像素子を用いた撮像装置でもよい。また、表示装置、撮像装置以外の電子機器にも本発明は適用できる。
【0163】
また、明細書中の記載において広義な用語(第1のコントローラ、第2のコントローラ、第1のメモリ、第2のメモリ、データ蓄積状況、パケットバッファ、デバイス等)として引用された用語(ホストコントローラ、デバイスコントローラ、ホスト側のメモリ、デイバス側のメモリ、蓄積データ量、FIFO、表示部・撮像素子等)は、明細書中の他の記載においても広義な用語に置き換えることができる。
【0164】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】本実施形態のデータ転送制御システム、電子機器の構成例を示す図である。
【図2】図2(A)、(B)は、転送速度と蓄積データ量の関係を示す図である。
【図3】転送速度の設定手法について説明するための図である。
【図4】転送速度の設定手法について説明するための図である。
【図5】画像データ量特定情報に基づき転送速度を設定する手法について説明するための図である。
【図6】図6(A)、(B)は、データ蓄積状況や転送速度設定コマンドをコントロール転送を用いて転送する手法について説明するための図である。
【図7】データ蓄積状況をインタラプト転送を用いて転送する手法について説明するための図である。
【図8】データ転送制御システムの動作について説明するためのフローチャートである。
【図9】データ転送制御システムの動作について説明するためのフローチャートである。
【図10】データ転送制御システム、電子機器の第1の変形例を示す図である。
【図11】データ転送制御システム、電子機器の第2の変形例を示す図である。
【図12】ホスト側の転送コントローラの構成例を示す図である。
【図13】デバイス側の転送コントローラの構成例を示す図である。
【図14】蓄積データ量の取得手法について説明するための図である。
【図15】図15(A)、(B)は、クロック生成回路の構成例を示す図である。
【符号の説明】
110 ホストコントローラ(第1のコントローラ)
120 処理部
130 速度設定部
132 解析部
134 メモリ管理部
160 転送コントローラ
162 物理層回路
164 シリアル/パラレル変換回路
166 パラレル/シリアル変換回路
168 FIFO(パケットバッファ)
170 DMAC
172 CPUインターフェース回路
174 制御回路
176 制御レジスタ
180 クロック生成回路
190 メモリ(第1のメモリ)
200 バス
210 デバイスコントローラ(第2のコントローラ)
220 処理部
230 速度設定部
234 メモリ管理部
240 データ伸長部
242 データ圧縮部
250 表示コントローラ
252 撮像素子コントローラ
260 転送コントローラ
262 物理層回路
264 シリアル/パラレル変換回路
266 パラレル/シリアル変換回路
268 FIFO(パケットバッファ)
270 DMAC
272 CPUインターフェース回路
274 制御回路
276 制御レジスタ
280 クロック生成回路
290 メモリ(第1のメモリ)
300 表示部(デバイス)
302 表示パネル
304 表示ドライバ
310 撮像素子(デバイス)
Claims (22)
- 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、
前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。 - 請求項1において、
前記転送速度設定部が、
第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。 - 請求項2において、
前記第1のデータ量が、
第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定されることを特徴とするデータ転送制御システム。 - 請求項2又は3において、
前記第2のデータ量が、
圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定されることを特徴とするデータ転送制御システム。 - 請求項2乃至4のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第1のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラのデータ転送速度を、第1の転送速度よりも遅い第2の転送速度に設定することを特徴とするデータ転送制御システム。 - 請求項2乃至5のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第1のデータ量になった場合には、転送コントローラを転送待ち状態に設定することを特徴とするデータ転送制御システム。 - 請求項2乃至6のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第2のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラの転送速度を、第1の転送速度よりも速い第3の転送速度に設定することを特徴とするデータ転送制御システム。 - 請求項1乃至7のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第2のコントローラから第2のメモリのデータ蓄積状況を取得することを特徴とするデータ転送制御システム。 - 請求項1乃至8のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、転送速度の設定コマンドを第2のコントローラに知らせることを特徴とするデータ転送制御システム。 - 請求項1乃至9のいずれかにおいて、
前記転送速度設定部が、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。 - 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。 - 請求項11において、
前記転送速度設定部が、
圧縮データのシーケンス層に含まれるビットレートに基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。 - 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
バスを介して第1のコントローラから転送される圧縮データを受信する転送コントローラと、
受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得するメモリ管理部と、
取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。 - 請求項13において、
第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度が設定されることを特徴とするデータ転送制御システム。 - 請求項14において、
前記第1のデータ量が、
第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定されることを特徴とするデータ転送制御システム。 - 請求項14又は15において、
前記第2のデータ量が、
圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定されることを特徴とするデータ転送制御システム。 - 請求項13乃至16のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第1のコントローラから転送速度設定コマンドを取得することを特徴とするデータ転送制御システム。 - 請求項13乃至17のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第2のメモリのデータ蓄積状況を第1のコントローラに知らせることを特徴とするデータ転送制御システム。 - 第1のコントローラと、
第1のコントローラとバスを介して接続される第2のコントローラと、
圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するための請求項1乃至18のいずれかのデータ転送制御システムと、
第1のコントローラ又は第2のコントローラにより制御されるデバイスと、
を含むことを特徴とする電子機器。 - 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、
前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定することを特徴とするデータ転送制御方法。 - 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御方法。 - 圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
バスを介して第1のコントローラから転送される圧縮データを転送コントローラにより受信し、
受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得し、
取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002167095A JP2004012871A (ja) | 2002-06-07 | 2002-06-07 | データ転送制御システム、電子機器及びデータ転送制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002167095A JP2004012871A (ja) | 2002-06-07 | 2002-06-07 | データ転送制御システム、電子機器及びデータ転送制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004012871A true JP2004012871A (ja) | 2004-01-15 |
Family
ID=30434446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002167095A Withdrawn JP2004012871A (ja) | 2002-06-07 | 2002-06-07 | データ転送制御システム、電子機器及びデータ転送制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004012871A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009195293A (ja) * | 2008-02-19 | 2009-09-03 | Sophia Co Ltd | 遊技機 |
JP4888591B1 (ja) * | 2010-09-17 | 2012-02-29 | オムロン株式会社 | 画像データ伝送システムおよび電子機器 |
JP2012250111A (ja) * | 2012-09-27 | 2012-12-20 | Sophia Co Ltd | 遊技機 |
JP2013063330A (ja) * | 2013-01-11 | 2013-04-11 | Sophia Co Ltd | 遊技機 |
JP5652388B2 (ja) * | 2009-03-06 | 2015-01-14 | 日本電気株式会社 | 通信レート制御方法、送信装置および通信システム |
-
2002
- 2002-06-07 JP JP2002167095A patent/JP2004012871A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009195293A (ja) * | 2008-02-19 | 2009-09-03 | Sophia Co Ltd | 遊技機 |
JP5652388B2 (ja) * | 2009-03-06 | 2015-01-14 | 日本電気株式会社 | 通信レート制御方法、送信装置および通信システム |
JP4888591B1 (ja) * | 2010-09-17 | 2012-02-29 | オムロン株式会社 | 画像データ伝送システムおよび電子機器 |
JP2012250111A (ja) * | 2012-09-27 | 2012-12-20 | Sophia Co Ltd | 遊技機 |
JP2013063330A (ja) * | 2013-01-11 | 2013-04-11 | Sophia Co Ltd | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3649226B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US5801973A (en) | Video decompression | |
US6665810B1 (en) | Interface controller that controls the rate at which data is transfer based on the destination address of the data | |
KR100449102B1 (ko) | 멀티미디어용 시스템온칩 프로세서 | |
US20150220472A1 (en) | Increasing throughput on multi-wire and multi-lane interfaces | |
US10841355B2 (en) | Methods and apparatus for streaming media conversion with reduced buffering memories | |
US6105083A (en) | Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements | |
US20050091564A1 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
KR100944892B1 (ko) | 버스 시스템 및 버스 인터페이스 | |
US7359996B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
CN113099133A (zh) | 串行解串器链路传输高带宽相机数据的方法 | |
JP2005354173A (ja) | 表示コントローラ、電子機器及び画像データ供給方法 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
TW545047B (en) | Data transfer device | |
JP2004012871A (ja) | データ転送制御システム、電子機器及びデータ転送制御方法 | |
JP3614161B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2000057318A (ja) | 動画像復号方法及び装置 | |
US6952222B2 (en) | Image-capturing apparatus, image processing system, control method, and storage medium | |
JP2597040B2 (ja) | Fifoメモリ装置 | |
JP2002027477A (ja) | Mpeg画像処理装置およびそのデータ転送方法 | |
JP3945328B2 (ja) | 画像処理装置及び画像処理方法 | |
CN213365516U (zh) | 一种接口转换电路及接口转换装置 | |
JP3908928B2 (ja) | ネットワークインターフェイス回路 | |
US7350035B2 (en) | Information-processing apparatus and electronic equipment using thereof | |
US6154202A (en) | Image output apparatus and image decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050906 |