JPWO2004093446A1 - 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法 - Google Patents

圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法 Download PDF

Info

Publication number
JPWO2004093446A1
JPWO2004093446A1 JP2004570902A JP2004570902A JPWO2004093446A1 JP WO2004093446 A1 JPWO2004093446 A1 JP WO2004093446A1 JP 2004570902 A JP2004570902 A JP 2004570902A JP 2004570902 A JP2004570902 A JP 2004570902A JP WO2004093446 A1 JPWO2004093446 A1 JP WO2004093446A1
Authority
JP
Japan
Prior art keywords
data
transfer
buffer
uncompressed
video data
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.)
Pending
Application number
JP2004570902A
Other languages
English (en)
Inventor
大塚 竜志
竜志 大塚
高橋 哲
哲 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004093446A1 publication Critical patent/JPWO2004093446A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Abstract

圧縮データ及び非圧縮データをホストシステムと符号化復号化装置間で同時に転送する際に、転送速度が低下しても、ホストシステム側や符号化復号化装置側のバッファがオーバーフローするのを防止するタスクスケジューリング方法を提供する。ホストシステムと符号化復号化装置間で圧縮データ及び非圧縮データを同時転送する際に、圧縮オーディオ・ビデオデータの転送優先度を、非圧縮ビデオデータや非圧縮オーディオデータの転送優先度より高く設定する。

Description

本発明は、圧縮ビデオ・オーディオデータと非圧縮のビデオ・オーディオデータをホストシステムと符号化復号化装置間で同時転送する場合のタスクスケジューリング方法に関するものである。
従来のシステムにおいて、圧縮符号化されたデータである圧縮ビデオ・オーディオデータと、圧縮符号化前のデータ、又は分離復号化されたデータである非圧縮ビデオ・オーディオデータを、ホストシステム(PC等)と符号化復号化装置(MPEG2_PS/TS_CODEC等)間で転送する際に、下記の4種類の転送を同時に実行する場合がある。
1)符号化復号化装置側から非圧縮のビデオデータを、USB(universal_serial_bus)等のバスを介してホストシステムのメインメモリ内のバッファへ転送する。
2)符号化復号化装置側から非圧縮のオーディオデータを、USB等のバスを介してホストシステムのメインメモリ内のバッファへ転送する。
3)符号化復号化装置から圧縮されたオーディオ・ビデオデータ(AVストリーム)を、USB等のバスを介してホストシステムのメインメモリ内のバッファへ転送する。
4)ホストシステムのメインメモリ内のバッファ側から圧縮されたオーディオ・ビデオデータを、USB等のバスを介して符号化復号化装置側へ転送する。
各転送は、USB等のバス上で別々のエンドポイントを使用して、バルク転送/インタラプト転送/アイソクロナス転送等により実行される。
上記した従来のシステムにおいて、符号化復号化装置の動作制御は次のように実行される。
USBホストシステムがユーザー定義の制御コマンドをバルク転送やコントロール転送を使用してUSBデバイスコントローラへ出力する。この制御コマンドを受信すると、USBデバイスコントローラは、受信した制御コマンドに従って、ASIC回路、MPEG2_CODEC、ビデオエンコーダ/デコーダ、オーディオADC/DAC等の制御をそれぞれ行う。
以下の説明では、便宜上、圧縮されたオーディオ・ビデオデータを単に圧縮データといい、圧縮されていないオーディオ・ビデオデータを単に非圧縮データという。
従来のシステムでは、圧縮データと非圧縮データをホストシステムと符号化復号化装置間で同時に転送する場合に、ホストシステム上のCPUの負荷が増大するとホストシステムのバッファから外部への転送速度が低下したり、USB等のバス上での転送速度が低下する場合がある。このように転送速度が低下した場合に、ホストシステム側や符号化復号化装置側のバッファがオーバーフローして、転送すべき情報を全て転送できなくなるという問題があった。
非圧縮データは主にリアルタイムの視聴を目的としているのに対し、圧縮データはHDD等に記録して、後から何度も復号化して視聴することが主な目的である。このため、ホストシステム上のCPUの負荷が増大してバッファがオーバーフローしデータが失われた場合、非圧縮データに関してはリアルタイムで視聴している映像や音声が一時的に途切れることになる。また、圧縮データに関しては、HDD等に記録すべきデータが一部失われることになる。
データが失われないことが理想であるが、システム能力的にそれが困難な場合、圧縮してHDD等に記録したデータが正しく残っていれば、リアルタイムの視聴が一時的に途切れても許容しうる。
本発明は、上記の課題に鑑みてなされたものであって、圧縮データと非圧縮データをホストシステムと符号化復号化装置間で同時に転送する際に、転送速度が低下した場合でも、ホストシステム側や符号化復号化装置側のバッファにおける圧縮データのオーバーフローを防止することができるタスクスケジューリング方法を提供することを目的とする。
上記課題を解決するために、本発明のタスクスケジューリング方法は、ホストシステムと符号化復号化装置間で圧縮データ及び非圧縮データを同時に転送する際に、前記ホストシステムのバッファから外部へ圧縮オーディオ・ビデオデータを第1の転送優先度で転送する手順と、非圧縮オーディオ・ビデオデータを前記バッファから外部へ、前記第1の転送優先度より低い第2の転送優先度で転送する手順とを有することを特徴とする。
本発明のタスクスケジューリング方法によれば、圧縮データと非圧縮データを同時に転送する際に、ホストシステムのCPU負荷が増大して転送速度が低下した場合でも、ホストシステム側や符号化復号化装置側のバッファにおける圧縮データのオーバーフローを防止することができる。したがって、重要な圧縮データが失われるという問題が解消される。
本発明の他の目的、特徴及び利点については、添付の図面に基づき下記の発明の詳細な説明を参照することにより明確となる。
図1は、本発明のタスクスケジューリング方法が適用される、ホストシステムと符号化復号化装置を含むシステムの一例を示すブロック図である。
図2は、図1のシステムにおけるMPEG2_CODECを示すブロック図である。
図3は、図1のシステムにおけるASIC回路を示すブロック図である。
図4は、図1のシステムにおけるホストシステムのバッファの構成を示す図である。
図5は、本発明のタスクスケジューリング方法が適用される、ホストシステムと符号化復号化装置を含むシステムの他の例を示すブロック図である。
図6Aは、圧縮データと非圧縮データを同じ転送優先度で転送する場合の例を説明するためのフロー図である。
図6Bは、本発明のタスクスケジューリング方法の一実施例を説明するためのフロー図である。
図7Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
図7Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図8Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
図8Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図9Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
図9Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図10Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
図10Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図11は、本発明のタスクスケジューリング方法の他の実施例を説明するための図である。
図12A、図12B及び図12Cは、ホストシステム側のバッファの圧縮データのための領域サイズを変更する場合を説明するための図である。
図13Aは、図5のシステムに適用した場合の例を説明するためのフロー図である。
図13Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
本発明の実施の形態を添付の図面を用いて説明する。
図1は、本発明のタスクスケジューリング方法が適用される、ホストシステムと符号化復号化装置を含むシステムの一例を示す。
図1のシステムは、ホストシステム側の構成と、符号化復号化装置(CODECデバイス)側の構成とを含む。ホストシステム側には、ホストシステムのCPU(図示なし)を含むUSBホストシステム16と、ホストシステムのメインメモリ内のバッファ18とが設けてある。
図1の符号化復号化装置側には、ビデオデコーダ(NTSC_DECODER等)2と、オーディオADC(analog−to−digital_converter)4と、オーディオDAC(digital−to−analog_converter)6と、ビデオエンコーダ(NTSC_ENCODER等)8と、MPEG2_CODEC(MPEG2_PS/TS_CODEC等)10と、ASIC回路12と、USBデバイスコントローラ14とが設けてある。
ビデオデコーダ2は、カメラ等の入力装置(図示なし)からのアナログビデオ信号を受取って非圧縮ビデオデータVを出力する。オーディオADC4は、マイク等の入力装置(図示なし)からのアナログオーディオ信号を受取って非圧縮オーディオデータAを出力する。
オーディオDAC6は、非圧縮オーディオデータAを受取ってアナログオーディオ信号を外部へ出力する。ビデオエンコーダ8は、非圧縮ビデオデータVを受取ってアナログビデオ信号を外部へ出力する。
図1のシステムにおいては、USBホストシステム16とUSBデバイスコントローラ14は、USBバスで互いに接続されている。USBホストシステム16のCPUは、ユーザー定義の制御コマンドをバルク転送やコントロール転送を使用してUSBデバイスコントローラ14へ出力する。
あるいは、USBバスの代わりに、IEEE1394等のシリアルバスを用いてホストシステム16とデバイスコントローラ14を互いに接続するシステムに、本発明のタスクスケジューリング方法を適用することも可能である。
USBデバイスコントローラ14は、USBホストシステム16から受取った制御コマンドに従って、ASIC回路12、MPEG2_CODEC10、ビデオデコーダ2、ビデオエンコーダ8、オーディオADC4及びオーディオDAC6の制御をそれぞれ行う。
MPEG2_CODEC10については、図2を用いて後述する。また、ASIC回路12についても、図3を用いて後述する。
図1において、Vは非圧縮ビデオデータ(YUVビデオ信号等)を示し、Aは非圧縮オーディオデータ(LPCMオーディオ信号等)を示し、M1はMPEG2_CODEC10で圧縮符号化された圧縮オーディオ・ビデオデータ(MPEG2_PS又はTS等)を示し、M2は外部からバッファ18を介してMPEG2_CODEC10へ転送される圧縮オーディオ・ビデオデータ(MPEG2_PS又はTS等)を示す。
図2は、図1のシステムにおけるMPEG2_CODEC10を示す。
図2のMPEG2_CODEC10は、MPEG2エンコーダ21と、MPEG2デコーダ22と、スイッチSW1と、スイッチSW2と、スイッチSW3と、スイッチSW4とを含む。
MPEG2エンコーダ21は、ビデオデコーダ2からの非圧縮ビデオデータVと、オーディオADC4からの非圧縮オーディオデータAを受取って圧縮符号化し、圧縮オーディオ・ビデオデータM1を出力する。非圧縮ビデオデータVと非圧縮オーディオデータAは、スイッチSW1とスイッチSW2により適宜選択されて、MPEG2エンコーダ21に入力される。
MPEG2デコーダ22は、外部からバッファ18を介してMPEG2_CODEC10へ転送される圧縮オーディオ・ビデオデータM2を受取って復号化して、非圧縮ビデオデータVと非圧縮オーディオデータAを出力する。
また、MPEG2デコーダ22から出力される、非圧縮ビデオデータVと非圧縮オーディオデータAは、スイッチSW3とスイッチSW4により適宜選択されて、ビデオエンコーダ8とオーディオDAC6へ出力されると共に、ASIC回路12へも出力される。
図3は、図1のシステムにおけるASIC回路12を示す。
図3のASIC回路12は、マルチプレクサに設けられた、スイッチSW5と、スイッチSW5の切替え動作を制御するためのレジスタ23とを含む。このASIC回路12の動作については、後述する。
図1のシステムにおいて、USBデバイスコントローラ14へ転送されるデータの選択は、ASIC回路12内のマルチプレクサで行われる。このマルチプレクサは、スイッチSW5とレジスタ23とを含み、どのデータが選択されるかは、端子(図示なし)によってUSBデバイスコントローラ14へ通知される。
図4は、図1のシステムにおけるUSBホストシステム16のメインメモリ内のバッファ18の構成を示す。
図4に示したように、USBホストシステム16のメインメモリ内のバッファ18は、保持するデータの種類に応じて、所定のサイズ(記録容量)をもつバッファ領域がそれぞれ割当てられている。バッファ18は、非圧縮オーディオデータAを保持するためのバッファ領域(A_BUF)であるオーディオバッファ部18aと、非圧縮ビデオデータVを保持するためのバッファ領域(V_BUF)であるビデオバッファ部18bと、符号化復号化装置側からの圧縮オーディオ・ビデオデータM1を保持するためのバッファ領域(M1_BUF)であるM1バッファ部18cと、外部からの圧縮オーディオ・ビデオデータM2を保持するためのバッファ領域(M2_BUF)であるM2バッファ部18dとを含む。
図1のシステムにおいて、USBコントローラは、各データに対し割当てられたエンドポイントを使用して、USBホストシステム16とUSBデバイスコントローラ14間のデータ転送を行う。
図5は、本発明のタスクスケジューリング方法が適用される、ホストシステムと符号化復号化装置を含むシステムの他の例を示す。
図1のシステムはUSBインターフェイスを利用して、USBホストシステム16とUSBデバイスコントローラ14をUSBバスで接続することにより、ホストシステムと符号化復号化装置間のデータ転送を行っている。本発明のタスクスケジューリング方法は、前述の実施例のみに限られるものではない。例えば、PCI(peripheral_component_interconnect)インターフェイス等を利用する他のシステムにも同様に適用することができる。
図5のシステムにおいて、PCIバスを用いて、ホストシステム側のPCIインターフェイス(PCI_I/F)36と符号化復号化装置側のPCIインターフェイス(PCI_I/F)34間が接続されている。図5のシステムでは、このPCIバスを使用して、ホストシステムと符号化復号化装置間のデータ転送を行う。
図5のシステムのその他の構成は、図1のシステムと同一であるので、同一の構成要素には同じ参照番号を付し、それらの構成についての説明は省略する。
図6Aは、圧縮データと非圧縮データを同じ転送優先度で転送する場合の例を説明するためのフロー図である。図6Bは、本発明のタスクスケジューリング方法の一実施例を説明するためのフロー図である。
マルチタスクOSなどでは、各データについての転送優先度の調整方法は、各OSによって異なる。
図6A及び図6Bの処理手順では、典型的な例として、図1のUSBホストシステム16のCPUがシングルタスクOSの下で処理を実行する場合を想定して説明する。
しかし、この実施例に限定されるものではなく、マルチタスクOSの下で実行する場合にも、本発明のタスクスケジューリング方法は図6Bの処理手順と同様の原理で実現できる。
以下の各ステップにおいて、USBホストシステム16のCPU(以下、単にCPUという)がバッファ18内の転送可能なデータの有無について判定する場合は、1回で転送されるデータ量の単位を、例えば32Kbyteとした場合に、バッファ18内に保持されているデータ量が32Kbyteに満たないときは、転送可能なデータがない(NO)と判定される。バッファ18内に保持されているデータ量が32Kbyteを超えるときは、転送可能なデータがある(YES)と判定される。
図6Aに示した、圧縮データと非圧縮データを同じ転送優先度で転送する場合の処理手順について説明する。
図6Aの処理手順は、図1のUSBホストシステム16のCPUが、圧縮データと非圧縮データをUSBホストシステムと符号化復号化装置間で同時に転送する要求を受け付けると開始される。
まず、ステップS11において、CPUはバッファ18のM1バッファ部18cに転送可能なデータがあるか否かを判定する。
ステップS11の判定結果がYESである場合、ステップS2において、CPUはM1バッファ部18cのデータを外部のハードディスクドライブ(HDD)等へ転送する。ステップS2が終了すると、次のステップS13を実行する。
ステップS11の判定結果がNOである場合、上記ステップS2を行わずに次のステップS13を実行する。
ステップS13において、CPUはバッファ18のM2バッファ部18dに転送可能な空きがあるか否かを判定する。
ステップS13の判定結果がYESである場合、ステップS4において、CPUは外部のHDDからデータを読み出してM2バッファ部18dへ転送する。ステップS4が終了すると、次のステップS15を実行する。
ステップS13の判定結果がNOである場合、上記ステップS4を行わずに次のステップS15を実行する。
ステップS15において、CPUはバッファ18のオーディオバッファ部18aに転送可能なデータがあるか否かを判定する。
ステップS15の判定結果がYESである場合、ステップS6において、CPUはオーディオバッファ部18aのデータを外部のオーディオカード(Audio_Card)等へ転送する。ステップS6が終了すると、次のステップS17を実行する。
ステップS15の判定結果がNOである場合、上記ステップS6を行わずに次のステップS17を実行する。
ステップS17において、CPUはバッファ18のビデオバッファ部18bに転送可能なデータがあるか否かを判定する。
ステップS17の判定結果がYESである場合、ステップS8において、CPUはビデオバッファ部18bのデータを外部のビデオカード(Video_Card)等へ転送する。ステップS8が終了すると、次のステップS19を実行する。
ステップS17の判定結果がNOである場合、上記ステップS8を行わずに次のステップS19を実行する。
ステップS19において、CPUは、上記した以外の、その他の処理を実行する。ステップS19が終了すると、上記のステップS11に戻って同様の処理手順を繰り返し実行する。
図6Aの処理手順では、M1バッファ部18cのデータの転送処理の後、M2バッファ部18d、オーディオバッファ部18a及びビデオバッファ部18bの各データの転送処理が終了するまで、M1バッファ部18cのデータは転送処理の機会がない。この間に、USBバスからの圧縮データがバッファ18へ転送されると、バッファ18がオーバーフローしてしまう可能性がある。バッファ18のオーバーフローが発生した場合、転送すべき情報を全て転送できないという問題がある。
次に、図6Bの処理手順について説明する。図6Bの処理手順は、本発明のタスクスケジューリング方法の一実施例を示す。
図6Bの処理手順は、図1のUSBホストシステム16のCPUが、圧縮データと非圧縮データをUSBホストシステムと符号化復号化装置間で同時に転送する要求を受け付けると開始される。
まず、ステップS11において、CPUはバッファ18のM1バッファ部18cに転送可能なデータがあるか否かを判定する。
ステップS11の判定結果がYESである場合、ステップS12において、CPUはM1バッファ部18cのデータを外部のハードディスクドライブ(HDD)等へ転送する。ステップS12が終了すると、ステップS19において、CPUは、その他の処理を実行する。ステップS19が終了すると、上記のステップS11に戻って同様の処理手順を繰り返し実行する。
ステップS11の判定結果がNOである場合、上記ステップS12を行わずに次のステップS13を実行する。ステップS13において、CPUはバッファ18のM2バッファ部18dに転送可能な空きがあるか否かを判定する。
ステップS13の判定結果がYESである場合、ステップS14において、CPUは外部のHDDからデータを読み出してM2バッファ部18dへ転送する。ステップS14が終了すると、上記のステップS19を実行する。
ステップS13の判定結果がNOである場合、上記ステップS14を行わずに次のステップS15を実行する。ステップS15において、CPUはバッファ18のオーディオバッファ部18aに転送可能なデータがあるか否かを判定する。
ステップS15の判定結果がYESである場合、ステップS16において、CPUはオーディオバッファ部18aのデータを外部のオーディオカード(Audio_Card)等へ転送する。ステップS16が終了すると、上記のステップS19を実行する。
ステップS15の判定結果がNOである場合、上記ステップS16を行わずに次のステップS17を実行する。ステップS17において、CPUはバッファ18のビデオバッファ部18bに転送可能なデータがあるか否かを判定する。
ステップS17の判定結果がYESである場合、ステップS18において、CPUはビデオバッファ部18bのデータを外部のビデオカード(Video_Card)等へ転送する。ステップS18が終了すると、上記のステップS19を実行する。
ステップS17の判定結果がNOである場合、上記ステップS18を行わずに上記のステップS19を実行する。
図6Bの処理手順では、M1バッファ部18cに転送可能な圧縮データM1がある限り、圧縮データM1の外部への転送が優先して処理される。ここで、M1バッファ部18cに転送可能な圧縮データM1がない場合に、他のデータM2、A、Vの転送処理が行われたと仮定する。その場合にも、他のデータが転送された後に必ず、M1バッファ部18cに転送可能な圧縮データM1の有無を判定する。圧縮データM1があると再度判定した場合には、他のデータM2、A、Vの転送処理の後、直ちにその圧縮データM1を外部へ転送する。
従って、図6Bの処理手順を実行することにより、圧縮オーディオ・ビデオデータM1の転送優先度(AVCOMP1)を、非圧縮ビデオデータVの転送優先度(VRAW)や非圧縮オーディオデータAの転送優先度(ARAW)より高く設定するタスクスケジューリング方法が実現される。
この実施例のタスクスケジューリング方法によれば、圧縮データと非圧縮データをホストシステムと符号化復号化装置間で同時転送する際に、バッファ18から外部のハードディスクドライブ等へ圧縮データを転送する場合の転送優先度を高くすることができ、バッファ18からハードディスクドライブ等へ記録すべき圧縮データを全て記録することが確実に行える。また、バッファ18のオーバーフローを確実に防止することができる。
また、一般に、転送すべき非圧縮ビデオデータVのデータ量は、転送すべき非圧縮オーディオデータAのデータ量より格段に大きいため、バッファ18のオーバーフローを防止する目的を達成するためには、非圧縮オーディオデータAの転送優先度ARAWを、非圧縮ビデオデータVの転送優先度VRAW以上に設定することが望ましい。
図6Bの処理手順においては、ステップS11−S12、ステップS15−S16、ステップS17−S18をこの順序で実行することにより、AVCOMP1>ARAW≧VRAWの条件を満足するように、圧縮データと非圧縮データをホストシステムと符号化復号化装置間で同時転送することができる。
さらに、図6Bの処理手順においては、ステップS11−S12、ステップS13−S14をこの順序で実行することにより、圧縮オーディオ・ビデオデータM1の転送優先度AVCOMP1を、外部からの圧縮オーディオ・ビデオデータM2をバッファ18を介して符号化復号化装置側へ転送するタスクの転送優先度AVCOMP2より高く設定される。
すなわち、図6Bの処理手順を実行することにより、AVCOMP1>AVCOMP2の条件を満足するように、圧縮データと非圧縮データをホストシステムと符号化復号化装置間で同時転送することができる。
図7Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
前述の図6Bの処理手順の場合、バッファ18に転送可能なデータがあれば、そのデータを次々に転送することになり、転送優先度の低い非圧縮ビデオデータVの転送機会が少なくなり過ぎる場合がある。
この問題を回避するため、1回のデータ転送単位を、例えば32Kbyte等の、所定のデータサイズ(バイト数)に制限して、残りのデータは次の転送機会に転送することで、各データの転送効率を向上させることができる。優先した転送については、バッファ18におけるデータの有無を判定する機会を増やすことにより、圧縮データと非圧縮データの各転送について異なる転送優先度をつける方法がある。図7Aの処理手順はこの方法を用いた例である。
図7Aの処理手順では、まず、ステップS21において、CPUはバッファ18のM1バッファ部18cに転送可能なデータがあるか否かを判定する。
ステップS21の判定結果がYESである場合、ステップS22において、CPUはM1バッファ部18cのデータをnM1バイトだけ、外部のハードディスクドライブ(HDD)等へ転送する。ステップS22が終了すると、次のステップS23を実行する。
ステップS21の判定結果がNOである場合、上記ステップS22を行わずに次のステップS23を実行する。
ステップS23において、CPUはバッファ18のM2バッファ部18dに転送可能な空きがあるか否かを判定する。
ステップS23の判定結果がYESである場合、ステップS24において、CPUはHDDからデータを読み出してnM2バイトだけ、M2バッファ部18dへ転送する。ステップS24が終了すると、次のステップS25を実行する。
ステップS23の判定結果がNOである場合、上記ステップS24を行わずに次のステップS25を実行する。
ステップS25において、CPUはバッファ18のオーディオバッファ部18aに転送可能なデータがあるか否かを判定する。
ステップS25の判定結果がYESである場合、ステップS26において、CPUはオーディオバッファ部18aのデータをnAバイトだけ外部のオーディオカード(Audio_Card)等へ転送する。ステップS26が終了すると、次のステップS27を実行する。
ステップS25の判定結果がNOである場合、上記ステップS26を行わずに次のステップS27を実行する。
ステップS27において、CPUはバッファ18のM1バッファ部18cに転送可能なデータがあるか否かを判定する。
ステップS27の判定結果がYESである場合、ステップS28において、CPUはM1バッファ部18cのデータをnM1バイトだけ、外部のハードディスクドライブ(HDD)等へ転送する。ステップS28が終了すると、次のステップS29を実行する。
ステップS27の判定結果がNOである場合、上記ステップS28を行わずに次のステップS29を実行する。
ステップS29において、CPUはバッファ18のビデオバッファ部18bに転送可能なデータがあるか否かを判定する。
ステップS29の判定結果がYESである場合、ステップS30において、CPUはビデオバッファ部18bのデータをnVバイトだけ、外部のビデオカード(Video_Card)等へ転送する。ステップS30が終了すると、次のステップS19を実行する。
ステップS29の判定結果がNOである場合、上記ステップS30を行わずに次のステップS19を実行する。
ステップS19において、CPUは、上記した以外の、その他の処理を実行する。ステップS19が終了すると、上記のステップS21に戻って同様の処理手順を繰り返し実行する。
図7Aの処理手順では、圧縮データM1の転送機会を他のデータの転送機会より多く設定することにより、圧縮データM1の転送優先度を最も高く設定している。ここで、各データの1回のデータ転送単位(バイト数)である、nM1、nM2、nA、nVの具体的な数値は、処理の都合や処理バランス等により決定される。
図7Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
マルチタスクOSの場合は、一般に、各転送処理ごとにタスクを割り当て、各々のタスクで1回の転送処理が終了したら、そのタスクに所定のスリープ時間を設定して、他の転送処理のタスクにCPU時間を割当てる方式がとられている。各転送処理ごとのタスクについて、このスリープ時間を、転送優先度の高いものは短く、転送優先度の低いものは長く設定することにより、圧縮データと非圧縮データの各転送について異なる転送優先度をつける方法がある。
図7Bの処理手順はこの方法を用いた例であり、圧縮データM1の転送処理の手順のみ示している。
図7Bの処理手順では、ステップS21Aにおいて、CPUはバッファ18のM1バッファ部18cに転送可能なデータがあるか否かを判定する。
ステップS21Aの判定結果がYESである場合、ステップS22Aにおいて、CPUはM1バッファ部18cのデータをnM1バイトだけ、外部のハードディスクドライブ(HDD)等へ転送する。ステップS22Aが終了すると、ステップS22Bにおいて、CPUは、tM1時間のスリープ時間を圧縮データM1の転送処理のタスクに設定する。
ステップS21Aの判定結果がNOである場合、上記ステップS22Aを行わずに上記のステップS22Bを実行する。ステップS22Bで設定されたtM1時間のスリープ時間が経過すると、上記のステップS21Aに戻って同様の処理手順を繰り返し実行する。
図7Bの処理手順と同様に、CPUはマルチタスクOSの下で、圧縮データM2、非圧縮オーディオデータA、非圧縮ビデオデータVの各転送処理の手順を実行して、それぞれtM2、tA、tV時間のスリープ時間を設定する。これらのスリープ時間を、条件tM1<tM2<tA≦tVを満足するように設定しておくことにより、単位時間あたりに実行される各転送処理の頻度が変わる。このようにして、図6Bの実施例と同様に、圧縮データと非圧縮データの各転送について異なる転送優先度を設定することができる。
図8Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。図7Aの処理手順のように、最優先の転送処理以外の転送処理も少しづつ行う方式の場合、転送処理量の総和がCPUの能力を超えなければ問題ない。しかし、その他の処理の負荷が増大するなどして、全てのデータの転送処理を並行して実行することが困難となる場合がある。
このような場合に、緊急の措置として、最優先の転送処理以外の転送処理を一時停止する制御を行う方式が望ましい。これを実現するため、最優先の転送処理に係るM1バッファ部18cのデータ量について所定の閾値を設定しておき、M1バッファ部18cのデータ量がこの閾値を超えているか否かを判定する手順を追加する。この方式では、閾値を超えている(緊急状態)という判定結果が出された場合に、最優先の転送処理以外の転送処理を一時停止する。
図8Aの処理手順はこの方式を用いた例である。
図8Aの処理手順において、ステップS31−S34及びステップS36−S41は、図7AのステップS21−S24及びステップS25−S30とそれぞれ同一であるので、それらの説明は省略する。
図8Aの処理手順では、ステップS33−S34の転送処理が終了すると、ステップS35において、CPUは、M1バッファ部18cのデータ量が所定の閾値を超えているか否かを判定する。ステップS35の判定結果がNOである場合、ステップS36−S41の各転送処理を実行する。
逆に、ステップS35の判定結果がYESである場合、ステップS36−S41の各転送処理を行わずに、次のステップS19(図7Aと同一のステップS19)を実行する。すなわち、最優先の転送処理(ステップS31−S34)以外の転送処理(ステップS36−S41)を一時停止する。
上記した図8Aの処理手順では、ステップS35をステップS33−S34の転送処理の後に追加している。しかし、本発明のタスクスケジューリング方法はこの実施例に限定されるものではない。例えば、上記のステップS35をステップS36−S37の転送処理の後に追加すれば、緊急状態でも、オーディオバッファ部18aから外部への非圧縮オーディオデータの転送処理は一時停止されずに続行される。
非圧縮オーディオデータは非圧縮ビデオデータよりもはるかにデータ量が少ないため、緊急状態でも非圧縮オーディオデータの転送はあまり負荷にならない。このため、このような対応も可能である。また、ステップS33−S34及びステップS36−S37の両方に閾値比較を入れ、ステップS33−S34の間の閾値比較の閾値よりステップS36−S37の間の閾値比較の閾値を低く設定し、最初にステップS36−S37の間の閾値比較で閾値を超えたら、非圧縮ビデオデータの転送をやめ、それでもM1−BUFのデータ量が増え続け、次のステップS33−S34の間の閾値比較でも閾値を超えるようなら、非圧縮オーディオデータの転送も停止するような構成も可能である。
図8Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図8Bの処理手順は、非圧縮ビデオデータVの転送処理の手順のみ示している。
図8Bの処理手順では、ステップS40Aにおいて、CPUはバッファ18のビデオバッファ部18bに転送可能なデータがあるか否かを判定する。
ステップS40Aの判定結果がYESである場合、ステップS41Aにおいて、CPUはビデオバッファ部18bのデータをnVバイトだけ、外部のビデオカード(Video_Card)等へ転送する。ステップS41Aが終了すると、CPUは次のステップS42を実行する。
ステップS40Aの判定結果がNOである場合、上記のステップS41Aを行わずに、次のステップS42を実行する。
ステップS42において、CPUはビデオバッファ部18bのデータ量が所定の閾値を超えているか否かを判定する。ステップS42の判定結果がNOである場合、ステップS43において、CPUは、tV1時間のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。ステップS43で設定されたtV1時間のスリープ時間が経過すると、上記のステップS40Aに戻って同様の処理手順を繰り返し実行する。
ステップS42の判定結果がYESである場合(緊急状態)、ステップS44において、CPUは、tV2時間のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。ステップS44で設定されたtV2時間のスリープ時間が経過すると、上記のステップS40Aに戻って同様の処理手順を繰り返し実行する。
図8Bの処理手順と同様に、CPUはマルチタスクOSの下で、圧縮データM1、圧縮データM2、非圧縮オーディオデータAの各転送処理の手順を実行して、それぞれtM1、tM2、tA時間のスリープ時間を設定する。これらのスリープ時間を、条件tM1<tM2<tA≦tV1を満足するように設定しておくことにより、単位時間あたりに実行される各転送処理の頻度が変わる。
図8Bの処理手順では、緊急状態でない場合のスリープ時間tV1と、緊急状態である場合のスリープ時間tV2を、条件tV1<<tV2を満足するように設定している。この設定を行うことで、緊急状態にはビデオバッファ部18bから外部への非圧縮ビデオデータVの転送処理の頻度を下げて、相対的に他のデータの転送処理の優先度を上げている。
また、図8Bの処理手順におけるステップS42−S44と同様の判定ステップを、圧縮データM2や非圧縮オーディオデータAの各転送処理に追加することにより、圧縮データM1の転送優先度をさらに上げることも可能である。
図9Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
前述の図8Aの処理手順では、ステップS35においてホストシステム側のバッファ18のM1バッファ部18c内のデータ量が閾値を超えるか否かを判定している。これに対し、図9Aの処理手順の違いは、ステップS55において符号化復号化装置側(MPEG2_CODEC10、ASIC回路12、USBデバイスコントローラ14等を含む)の内部バッファ内の圧縮データM1のデータ量が所定の閾値を超えるか否かを判定している点のみである。
ホストシステム側のCPU負荷が増大して、符号化復号化装置からの転送自体が停滞するような場合、M1−BUFのデータ量が増えないため、図8のようなM1−BUFの閾値比較ではチェックできず、符号化復号化装置側のバッファがオーバーフローしてやはりデータが失われる恐れがある。このため、符号化復号化装置側のバッファを監視して、閾値を超えたら転送を制限するように構成したのが図9Aである。PCIバスでのバスマスタ転送のように、符号化復号化装置からの転送がCPU負荷と関係しないようなシステム構成では、図8でも実用的な場合がある。
図9Aの処理手順における、その他のステップS51−S54及びステップS56−S61は、図8Aの処理手順におけるステップS31−S34及びステップS36−S41とそれぞれ同一であるので、それらの説明は省略する。
前述の図8Aと同様に、図9Aの処理手順において、上記のステップS55をステップS56−S57の転送処理の後に追加すれば、緊急状態でも、オーディオバッファ部18aから外部への非圧縮オーディオデータの転送処理は一時停止されずに続行される。
図9Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図9Bの処理手順は、非圧縮ビデオデータVの転送処理の手順のみ示している。
図9Bの処理手順では、ステップS60Aにおいて、CPUはバッファ18のビデオバッファ部18bに転送可能なデータがあるか否かを判定する。
ステップS60Aの判定結果がYESである場合、ステップS61Aにおいて、CPUはビデオバッファ部18bのデータをnVバイトだけ、外部のビデオカード(Video_Card)等へ転送する。ステップS61Aが終了すると、CPUは次のステップS62を実行する。
ステップS60Aの判定結果がNOである場合、上記のステップS61Aを行わずに、次のステップS62を実行する。
ステップS62において、CPUは符号化復号化装置側(MPEG2_CODEC10、ASIC回路12、USBデバイスコントローラ14等を含む)の内部バッファ内の圧縮データM1のデータ量が所定の閾値を超えるか否かを判定する。ステップS62の判定結果がNOである場合、ステップS63において、CPUは、tV1時間のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。ステップS43で設定されたtV1時間のスリープ時間が経過すると、上記のステップS60Aに戻って同様の処理手順を繰り返し実行する。
ステップS62の判定結果がYESである場合(緊急状態)、ステップS64において、CPUは、tV2時間のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。ステップS64で設定されたtV2時間のスリープ時間が経過すると、上記のステップS60Aに戻って同様の処理手順を繰り返し実行する。
図9Bの処理手順と同様に、CPUはマルチタスクOSの下で、圧縮データM1、圧縮データM2、非圧縮オーディオデータAの各転送処理の手順を実行して、それぞれtM1、tM2、tA時間のスリープ時間を設定する。これらのスリープ時間を、条件tM1<tM2<tA≦tV1を満足するように設定しておくことにより、単位時間あたりに実行される各転送処理の頻度が変わる。
図9Bの処理手順では、緊急状態でない場合のスリープ時間tV1と、緊急状態である場合のスリープ時間tV2を、条件tV1<<tV2を満足するように設定している。この設定を行うことで、緊急状態にはビデオバッファ部18bから外部への非圧縮ビデオデータVの転送処理の頻度を下げて、相対的に他のデータの転送処理の優先度を上げている。
図10Aは、本発明のタスクスケジューリング方法の他の実施例を説明するためのフロー図である。
図10Aの処理手順は、USBデバイスコントローラ14側で保持している圧縮データM1、非圧縮ビデオデータV、非圧縮オーディオデータAを、ホストシステム側のバッファ18へ転送する際の転送優先度を調整する方法である。
図10Aの処理手順では、まず、ステップS71において、CPUは、USBデバイスコントローラ14側からホストシステム側のバッファ18への圧縮データM1の転送処理を試みる。
USBインターフェイスの特徴として、転送を試みて、有効な転送データがあれば、ACK信号(acknowledge)が、有効な転送データがなければ、NAK信号(negative−acknowledge)が返される。
ステップS72において、ホストシステム側のバッファ18からUSBデバイスコントローラ14側への圧縮データM2の転送処理を試みる。
ステップS73において、CPUは、USBデバイスコントローラ14側からホストシステム側のバッファ18への圧縮データM1の転送処理を試みる。
ステップS74において、CPUは、USBデバイスコントローラ14側からホストシステム側のバッファ18への非圧縮オーディオデータAの転送処理を試みる。
ステップS75において、CPUは、USBデバイスコントローラ14側からホストシステム側のバッファ18への圧縮データM1の転送処理を試みる。
ステップS76において、CPUは、USBデバイスコントローラ14側からホストシステム側のバッファ18への非圧縮ビデオデータVの転送処理を試みる。
ステップS19において、CPUは、その他の処理を実行する。ステップS19が終了すると、上記のステップS71に戻って同様の処理手順を繰り返し実行する。
図10Aの処理手順では、予めデータの有無は不明であるため、ステップS71、S73及びS75のように、圧縮データM1の転送処理を試みる回数を増やすことによって、圧縮データM1の転送優先度を上げている。
前述の実施例と同様に、ホストシステム側のバッファ18のM1バッファ部18cのデータ量が閾値を超えているか否かの判定を行う方式や、USBデバイスコントローラ14側の内部バッファの圧縮データM1のデータ量過多の通知(緊急状態)に応じて、その他のデータの転送処理を一時停止する方式を用いることも可能である。
図10Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図10Bの処理手順では、ステップS71Aにおいて、CPUはUSBデバイスコントローラ14側からホストシステム側のバッファ18への圧縮データM1の転送処理を試みる。
ステップS71Bにおいて、CPUは、tM1時間のスリープ時間を圧縮データM1の転送処理のタスクに設定する。ステップS71Bで設定されたtM1時間のスリープ時間が経過すると、上記のステップS71Aに戻って同様の処理手順を繰り返し実行する。
図10Bの処理手順と同様に、CPUはマルチタスクOSの下で、圧縮データM2、非圧縮オーディオデータA、非圧縮ビデオデータVの各転送処理の手順を実行して、それぞれtM2、tA、tV時間のスリープ時間を設定する。これらのスリープ時間を、条件tM1<tM2<tA≦tVを満足するように設定しておくことにより、単位時間あたりに実行される各転送処理の頻度を変えることができる。
前述の実施例と同様に、ホストシステム側のバッファ18のM1バッファ部18cのデータ量が閾値を超えているか否かの判定を行う方式や、USBデバイスコントローラ14側の内部バッファの圧縮データM1のデータ量過多の通知(緊急状態)に応じて、その他のデータの転送処理を一時停止する方式を用いることも可能である。
図11は、本発明のタスクスケジューリング方法の他の実施例を説明するための図である。
図1のシステムにおいて、符号化復号化装置側のASIC回路12内のスイッチSW5とレジスタ23を制御することによって、各データの転送優先度を変えることが可能である。USBデバイスコントローラ14は、レジスタ設定信号をレジスタ23へ出力することによって、スイッチSW5の切替え動作を制御する。
図11に示したように、スイッチSW5の切替え動作は、MPEG2_CODEC10側の、圧縮データM1の入力端子T1、非圧縮オーディオデータAの入力端子T3、非圧縮ビデオデータVの入力端子T4の中のいずれか1つを選択して、USBデバイスコントローラ14側への出力端子T2と導通状態にする機能を有する。このスイッチSW5の切替え動作は、USBデバイスコントローラ14から出力され、レジスタ23に保持されるスイッチ切替え情報に基づいて行われる。USBデバイスコントローラ14からレジスタ23へ出力されるレジスタ設定信号に応じて、上記のスイッチ切替え情報がレジスタ23に保持される。
レジスタ23の設定モードとしては、定期的にスイッチSW5を切り替えるモードと、圧縮データM1の転送を優先にするモードと、圧縮データM1の転送を最優先にするモード等がある。
レジスタ23に保持されたスイッチ切替え情報に基づいて、圧縮データM1、非圧縮オーディオデータA、非圧縮ビデオデータVの中のどのデータをUSBデバイスコントローラ14側へ転送するかが決定される。
例えば、USBホストシステム16から圧縮データM1の転送要求が来ている状態で、スイッチSW5が端子T1と端子T2を導通状態にする切替え動作が設定されていると、圧縮データM1がUSBホストシステム16側へ転送される。このとき、圧縮データM1の転送要求に対し、ACK信号が返される。
また、USBホストシステム16から、圧縮データM1、非圧縮オーディオデータA、非圧縮ビデオデータVの各転送要求が均等に来ている状態でも、スイッチSW5が端子T1と端子T2を導通状態にする切替え動作が設定されていると、圧縮データM1が優先されてUSBホストシステム16側へ転送される。このとき、非圧縮オーディオデータA、非圧縮ビデオデータVの各転送要求に対しては、NAK信号が返され、これらのデータの転送は行われない。結果として、圧縮データM1のUSBホストシステム16側への転送が優先される。
なお、データ転送の優先度を変えるレジスタ設定をホストシステム側から制御するということには限定されず、符号化復号化装置内で、装置内のバッファを監視してデータ転送の優先度を自立的に変える構成も可能である。
図12A、図12B及び図12Cは、ホストシステム側のバッファの圧縮データのための領域サイズを変更する場合を説明するための図である。
ホストシステム(PC)側のバッファ18内における、非圧縮オーディオデータAを保持するオーディオバッファ部18aと、非圧縮ビデオデータVを保持するビデオバッファ部18bと、外部からの圧縮オーディオ・ビデオデータM2を保持するM2バッファ部18dと、符号化復号化装置側からの圧縮オーディオ・ビデオデータM1を保持するM1バッファ部18cの各領域のサイズは、本来、単位時間あたりに発生するデータ量の比率に応じて割当てるべきである。
具体的なデータ量を一例として挙げれば、非圧縮ビデオデータVは約200Mbit/sec、非圧縮オーディオデータAは約1.5Mbit/sec、圧縮データM1、M2は圧縮率により異なるが、約1−30Mbit/secである。従って、通常状態において、非圧縮オーディオデータAのサイズを1とすれば、非圧縮ビデオデータVは133程度、圧縮データM1、M2はそれぞれ20程度が目安となる。
図12Aは、通常状態におけるバッファ18内の各領域のサイズ配分を示す。
しかし、各データの転送処理以外の、他の処理の負荷増大などによって、バッファ18から外部のHDD、Audio_CardやVideo_Cardへ転送されていく処理が停滞する場合が生じる。このような場合、バッファ18内のデータ量が増加していく。
前述の各実施例のタスクスケジューリング方法は、非圧縮ビデオデータVや非圧縮オーディオデータAの転送処理の頻度を低下させて(もしくは、一時停止させて)、M1バッファ部18cから外部への圧縮データM1の転送を優先することで、バッファ18がオーバーフローするのを防止することを目的としている。
しかし、上記のように、他の処理の負荷増大などによって、M1バッファ部18cの所定の領域サイズ(容量)を超えそうな場合(緊急状態)に、この実施例のタスクスケジューリング方法では、バッファ18において最も優先度の低いビデオバッファ部18bの領域サイズを減少させて、その分をM1バッファ部18cの領域サイズを拡大させるのに使用する。
図12Bは、この実施例のタスクスケジューリング方法に従い、緊急状態においてM1バッファ部18cの領域サイズを拡大させた場合の、バッファ18内の各領域のサイズ配分を示す。図12Bに示した、ビデオバッファ部18bの領域サイズが100、M1バッファ部18cの領域サイズが153といった数値は単に一例を示したものである。
図12Cは、この実施例のタスクスケジューリング方法に従い、緊急状態においてM1バッファ部18cの領域サイズをさらに拡大させた場合の、バッファ18内の各領域のサイズ配分を示す。図12Cに示した数値も単に一例を示したものであり、ビデオバッファ部18bの領域サイズを0にすることや、オーディオバッファ部18aやM2バッファ部18dをM1バッファ部18cに再配分することも可能である。
同様に、符号化復号化装置内のバッファについても、圧縮データ用のデータ領域を拡大することで、バッファオーバーフローを回避する機構をもつことも可能である。
図13Aは、図5のシステムに適用した場合の例を説明するためのフロー図である。
図5のシステムにおいて、図示を省略するが、PCIインターフェイス36はバスマスタDMA(direct_memory_access)を有し、このDMAがホストシステムのCPUを介さずに、符号化復号化装置側とホストシステムのバッファ18間の圧縮データ及び非圧縮データの各転送を制御する。
PCIバスを使用した図5のシステムの場合、バスマスタDMAを起動(kick)したら、DMAの完了をポーリングで待つか、DMAの完了の割り込みに応じて当該タスクが起動するように設定して、その他の処理の実行を開始する方式が適用されている。
この実施例のタスクスケジューリングの転送優先度の変更方法は、基本的に、USBバスを使用した前述の実施例の場合と同様である。図13Aの処理手順は、ホストシステムのCPUが実行する。
図13Aの処理手順では、ステップS81において、CPUはDMAがM1バッファ部18cの圧縮データM1を外部のハードディスクドライブ(HDD)等へ転送を実行中であるか否かを判定する。
ステップS11の判定結果がNOである場合、ステップS82において、CPUはDMAを起動して、M1バッファ部18cのデータの、ハードディスクドライブ等への転送を開始させる。ステップS82が終了すると、次のステップS83を実行する。
ステップS81の判定結果がYESである場合、上記ステップS82を行わずに次のステップS83を実行する。
ステップS83において、CPUはDMAが外部からの圧縮データM2をM2バッファ部18dへ転送を実行中であるか否かを判定する。
ステップS83の判定結果がNOである場合、ステップS84において、CPUはDMAを起動して、外部のHDDから圧縮データM2を読み出し、M2バッファ部18dへの転送を開始させる。ステップS84が終了すると、次のステップS85を実行する。
ステップS83の判定結果がYESである場合、上記ステップS84を行わずに次のステップS85を実行する。
ステップS85において、CPUはDMAがバッファ18のオーディオバッファ部18aのデータAを外部のHDDへ転送を実行中であるか否かを判定する。
ステップS85の判定結果がNOである場合、ステップS86において、CPUは、M1バッファ部18cのデータ量が所定の閾値を超えているか否かを判定する。ステップS86の判定結果がNOである場合、ステップS87において、CPUはDMAを起動して、オーディオバッファ部18aのデータAの、外部のHDDへの転送を開始させる。ステップS87が終了すると、次のステップS88を実行する。
ステップS85又はステップS86の判定結果がYESである場合、上記のステップS87を行わずに、次のステップS88を実行する。
ステップS88において、CPUはDMAがバッファ18のビデオバッファ部18bのデータVを外部のHDDへ転送を実行中であるか否かを判定する。
ステップS88の判定結果がNOである場合、ステップS89において、CPUは、M1バッファ部18cのデータ量が所定の閾値を超えているか否かを判定する。ステップS89の判定結果がNOである場合、ステップS90において、CPUはDMAを起動して、ビデオバッファ部18bのデータVの、外部のHDDへの転送を開始させる。ステップS90が終了すると、次のステップS19を実行する。
ステップS88又はステップS89の判定結果がYESである場合、上記のステップS90を行わずに、次のステップS19を実行する。
ステップS19において、CPUは、上記した以外の、その他の処理を実行する。ステップS19が終了すると、上記のステップS81に戻って同様の処理手順を繰り返し実行する。
図13Bは、マルチタスクOSの場合にスリープ時間を変更することで転送優先度を調整する例を説明するためのフロー図である。
図13Bの処理手順は、非圧縮ビデオデータVの転送処理の手順のみ示している。
図13Bの処理手順では、ステップS91において、CPUはDMAを起動して、ビデオバッファ部18bのデータVの、外部のHDDへの転送を開始させる。
ステップS92において、CPUは、無限(infinite)のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。
ステップS93において、CPUは、M1バッファ部18cのデータ量が所定の閾値を超えているか否かを判定する。ステップS93の判定結果がNOである場合、上記のステップS91に戻って同じ処理手順を繰り返し実行する。
ステップS93の判定結果がYESである場合、ステップS94において、CPUは、tV時間のスリープ時間を非圧縮ビデオデータVの転送処理のタスクに設定する。ステップS93で設定されたtV時間のスリープ時間が経過すると、上記のステップS93に戻って同様の処理手順を繰り返し実行する。
図13Bの処理手順と同様に、CPUはマルチタスクOSの下で、圧縮データM1、圧縮データM2、非圧縮オーディオデータAの各転送処理の手順を実行して、それぞれ無限のスリープ時間、無限のスリープ時間、tA時間のスリープ時間を設定する。この実施例の処理手順では、tA時間とtV時間だけ、DMAの起動を遅らせることで、非圧縮オーディオデータAと非圧縮ビデオデータVの各転送処理の頻度を下げて、相対的に圧縮データデータM1、M2の転送処理の優先度を上げている。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、下記請求項に記載した範囲内で様々な変形が可能である。

Claims (14)

  1. ホストシステムと符号化復号化装置間で圧縮データ及び非圧縮データを同時に転送する際に、前記ホストシステムのバッファから外部へ圧縮オーディオ・ビデオデータを第1の転送優先度で転送する手順と、
    非圧縮オーディオ・ビデオデータを前記バッファから外部へ、前記第1の転送優先度より低い第2の転送優先度で転送する手順と
    を有することを特徴とするタスクスケジューリング方法。
  2. 外部からの圧縮オーディオ・ビデオデータを、前記バッファを介して前記符号化復号化装置側へ、前記第1の転送優先度より低く、前記第2の転送優先度より高い第3の転送優先度で転送する手順を有することを特徴とする請求項1記載のタスクスケジューリング方法。
  3. 前記非圧縮オーディオ・ビデオデータは非圧縮オーディオデータと非圧縮ビデオデータの少なくとも一方を含み、かつ、前記非圧縮オーディオデータの前記バッファから外部への転送優先度は前記非圧縮ビデオデータの前記バッファから外部への転送優先度以上となるように設定されることを特徴とする請求項1記載のタスクスケジューリング方法。
  4. 前記ホストシステムの前記バッファに保持される圧縮オーディオ・ビデオデータ量が所定の閾値を超えているか否かを判定する手順を有し、前記閾値を超えている場合には、前記非圧縮オーディオ・ビデオデータの前記ホストシステム側の前記バッファから外部への転送を制限もしくは停止することを特徴とする請求項1記載のタスクスケジューリング方法。
  5. 前記符号化復号化装置のバッファに保持される圧縮オーディオ・ビデオデータ量が所定の閾値を超えているか否かを判定する手順を有し、前記閾値を超えている場合には、前記非圧縮オーディオ・ビデオデータの前記ホストシステム側の前記バッファから外部への転送を制限もしくは停止することを特徴とする請求項1記載のタスクスケジューリング方法。
  6. 前記ホストシステムと前記符号化復号化装置間の圧縮データ及び非圧縮データの転送を、USB、IEEE1394等のシリアルバスを用いて行うことを特徴とする請求項1記載のタスクスケジューリング方法。
  7. 前記ホストシステムと前記符号化復号化装置間の圧縮データ及び非圧縮データの転送を、PCI等のパラレルバスを用いて行うことを特徴とする請求項1記載のタスクスケジューリング方法。
  8. 前記符号化復号化装置内のバッファから前記ホストシステム側の前記バッファへの圧縮オーディオ・ビデオデータの転送を要求する頻度を、非圧縮オーディオ・ビデオデータの転送頻度より高く設定することにより、前記第1の転送優先度を前記第2の転送優先度より高くすることを特徴とする請求項6記載のタスクスケジューリング方法。
  9. 前記符号化復号化装置側のスイッチの切替え動作を制御することにより、前記第1の転送優先度を前記第2の転送優先度より高くすることを特徴とする請求項6記載のタスクスケジューリング方法。
  10. 前記ホストシステム側の前記バッファ内の圧縮オーディオ・ビデオデータを保持するための第1の領域が所定の閾値を超えた場合に、前記第1の領域を拡大して、前記ホストシステム側の前記バッファ内の非圧縮オーディオ・ビデオデータを保持するための第2の領域を縮小することを特徴とする請求項1記載のタスクスケジューリング方法。
  11. 前記圧縮オーディオ・ビデオデータを前記バッファから外部へ所定のデータ量だけ転送する毎に設定する第1のスリープ時間を、前記非圧縮オーディオ・ビデオデータを前記バッファから外部へ所定のデータ量だけ転送する毎に設定する第2のスリープ時間より小さく設定することにより、前記第1の転送優先度を前記第2の転送優先度より高くすることを特徴とする請求項1記載のタスクスケジューリング方法。
  12. ホストシステムと符号化復号化装置間で圧縮データ及び非圧縮データを同時に転送する際に、前記ホストシステムのバッファから外部へ圧縮オーディオ・ビデオデータを第1の転送優先度で転送する第1の手段と、
    非圧縮オーディオ・ビデオデータを前記バッファから外部へ、前記第1の転送優先度より低い第2の転送優先度で転送する第2の手段と
    を備えることを特徴とするデータ処理装置。
  13. ホストシステムと符号化復号化装置間で圧縮オーディオ・ビデオデータ及び非圧縮オーディオ・ビデオデータの転送を行う転送手段と、
    前記ホストシステムからの指示もしくは前記符号化復号化装置内のバッファの状態に応じて、前記転送手段の転送優先度を変更して圧縮データのバッファオーバーフローを回避する手段と
    を備えることを特徴とするデータ処理装置。
  14. 前記符号化復号化装置側の圧縮オーディオ・ビデオデータを保持する第1の領域が所定の閾値を超えた場合に、前記第1の領域を拡大して、前記符号化復号化装置側の圧縮オーディオ・ビデオデータを保持する第2の領域を縮小することを特徴とする請求項13記載のデータ処理装置。
JP2004570902A 2003-04-17 2003-04-17 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法 Pending JPWO2004093446A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/004920 WO2004093446A1 (ja) 2003-04-17 2003-04-17 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法

Publications (1)

Publication Number Publication Date
JPWO2004093446A1 true JPWO2004093446A1 (ja) 2006-07-13

Family

ID=33193253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004570902A Pending JPWO2004093446A1 (ja) 2003-04-17 2003-04-17 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法

Country Status (3)

Country Link
US (1) US7533192B2 (ja)
JP (1) JPWO2004093446A1 (ja)
WO (1) WO2004093446A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050070953A (ko) * 2003-12-31 2005-07-07 삼성전자주식회사 아날로그 입력 신호에 포함된 복제 방지 신호를손상시키지 않고 출력할 수 있는 아날로그/디지털 신호처리 장치 및 그 방법
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
JP4536633B2 (ja) * 2005-10-17 2010-09-01 シャープ株式会社 記録装置、並びにプログラムおよびその記録媒体
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8090884B2 (en) * 2005-11-25 2012-01-03 Samsung Electronics Co., Ltd. Apparatus and method for interfacing between A/V system and portable device
KR101351585B1 (ko) * 2005-11-25 2014-01-16 삼성전자주식회사 A/v 시스템과 휴대형 기기 간의 인터페이스를 위한 장치및 방법
JP2007293502A (ja) * 2006-04-24 2007-11-08 Nec Electronics Corp マルチメディア処理システム、そのバッファ管理方法およびプログラム
US7783799B1 (en) * 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
JP5221562B2 (ja) * 2007-01-10 2013-06-26 クゥアルコム・インコーポレイテッド マルチメディア電話のためのコンテンツ依存およびリンク依存のコード化適応
TWI366101B (en) 2007-12-31 2012-06-11 High Tech Comp Corp Method for transmitting audio streams and audio stream transmitting system thereof
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
DE102008009634A1 (de) * 2008-02-15 2009-08-27 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop
US8468572B2 (en) * 2008-03-26 2013-06-18 Cisco Technology, Inc. Distributing digital video content to multiple end-user devices
WO2010147263A1 (en) * 2009-06-16 2010-12-23 Lg Electronics Inc. Method of exchanging messages, sink device and source device
WO2014061481A1 (ja) * 2012-10-19 2014-04-24 日本電気株式会社 適応的圧縮アルゴリズムを用いたデータ転送装置及びデータ転送システム
CN106033371B (zh) * 2015-03-13 2019-06-21 杭州海康威视数字技术股份有限公司 一种视频分析任务的调度方法及系统
JP6729412B2 (ja) * 2017-01-18 2020-07-22 富士通株式会社 データ出力制御装置、情報処理装置及びデータ出力制御方法
US11917072B2 (en) * 2020-12-03 2024-02-27 International Business Machines Corporation Implementing opportunistic authentication of encrypted data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339442A (en) * 1992-09-30 1994-08-16 Intel Corporation Improved system of resolving conflicting data processing memory access requests
JPH07274104A (ja) 1994-03-29 1995-10-20 Canon Inc 記録再生装置
JPH09128327A (ja) 1995-10-27 1997-05-16 Hitachi Cable Ltd バス調停回路
JP3695352B2 (ja) * 1995-12-15 2005-09-14 株式会社日立製作所 画像取り込み装置、画像記録再生装置及び画像入力装置
US6269215B1 (en) * 1999-03-02 2001-07-31 Hitachi, Ltd. Information processing system
US5899575A (en) * 1996-09-04 1999-05-04 Hitachi, Ltd. Video capture device, video recording/playing apparatus having the video capture device attached thereto, and video input device
JP3912841B2 (ja) * 1997-04-10 2007-05-09 キヤノン株式会社 データ通信装置
US6453071B2 (en) * 1997-04-04 2002-09-17 Canon Kabushiki Kaisha Data communication apparatus, method and system and programs for data communication process stored in computer readable storage medium
US6167027A (en) * 1997-09-09 2000-12-26 Cisco Technology, Inc. Flow control technique for X.25 traffic in a high speed packet switching network
JP2000286877A (ja) 1999-03-31 2000-10-13 Hitachi Ltd データ伝送システム
JP2000298935A (ja) 1999-04-13 2000-10-24 Hitachi Ltd ディスク装置
JP2001204006A (ja) * 2000-01-20 2001-07-27 Fujitsu General Ltd カメラ監視システム
US7260826B2 (en) * 2000-05-31 2007-08-21 Microsoft Corporation Resource allocation in multi-stream IP network for optimized quality of service
JP2002288013A (ja) 2001-03-28 2002-10-04 Toshiba Corp 計算機システムおよびファイル圧縮制御方法
JP2003046737A (ja) 2001-08-01 2003-02-14 Sharp Corp 画像処理装置およびそれを備える画像形成装置
US6877048B2 (en) * 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler

Also Published As

Publication number Publication date
US7533192B2 (en) 2009-05-12
WO2004093446A1 (ja) 2004-10-28
US20050149635A1 (en) 2005-07-07

Similar Documents

Publication Publication Date Title
US7533192B2 (en) Task scheduling method in case of simultaneous transfer of compressed data and non-compressed data
JP3926873B2 (ja) コンピュータシステム
US7389366B2 (en) System and method for dual IDE channel servicing using single multiplexed interface having first and second channel transfer over a common bus
KR100311706B1 (ko) 데이터 통신 시스템, 데이터 통신 방법,데이터 통신 장치 및 디지털 인터페이스
TWI264635B (en) Information-processing apparatus and method of controlling power saving
US20030229749A1 (en) Data transfer control device, electronic equipment, and data transfer control method
JP2004070571A (ja) データ転送制御システム、電子機器、プログラム及びデータ転送制御方法
US7359996B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US20080311857A1 (en) Receiver, transmitter, communication system, method for controlling receiver, and communication method
JP4750379B2 (ja) 電子機器
JP2002300532A (ja) 画像記録装置
JP4728083B2 (ja) メディア処理装置
JPH10108172A (ja) Mpegシステムの優先順位処理回路
JP2002354051A (ja) データ転送処理装置、データ転送方法およびデータ転送プログラム
WO2003088246A1 (fr) Dispositif et procede d'enregistrement
JP2005026777A (ja) 情報記録装置、その方法、そのプログラム、および、そのプログラムを記録した記録媒体
JP2002027477A (ja) Mpeg画像処理装置およびそのデータ転送方法
JPH11234315A (ja) 通信装置、方法、システム及び記録媒体
JP2005316781A (ja) 記憶媒体のマルチホスト切替え方法
JP2002208983A (ja) 符号化復号化装置
WO2000033199A1 (fr) Circuit de traitement de signal
JP2000092471A (ja) ビデオサーバ装置、その帯域管理方法、及び帯域管理プログラムを記録した記録媒体
JPH08129522A (ja) マルチメディアデータの転送方法
JP2001337913A (ja) データ転送システムとそのデバイス
WO2001033372A1 (fr) Support de stockage et procede et dispositif de traitement d'informations

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407