JP2005018631A - Information processor, information processing method, its recording medium, and its program - Google Patents
Information processor, information processing method, its recording medium, and its program Download PDFInfo
- Publication number
- JP2005018631A JP2005018631A JP2003185505A JP2003185505A JP2005018631A JP 2005018631 A JP2005018631 A JP 2005018631A JP 2003185505 A JP2003185505 A JP 2003185505A JP 2003185505 A JP2003185505 A JP 2003185505A JP 2005018631 A JP2005018631 A JP 2005018631A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block data
- information processing
- block
- receiving means
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、データの送受信および処理が可能な情報処理装置、情報処理方法、その記録媒体およびプログラムに関するものである。
【0002】
【従来の技術】
近年、World Wide Webなどの普及により、インターネットではWebサーバを利用した情報の閲覧が可能である。また、利用者は、インターネット経由でWebサーバが提供するデータやプログラムなどをダウンロードすることもできる。この際、インターネット経由でのデータ利用は、ローカルコンピュータからのデータ利用にくらべダウンロード等のスピードが非常に遅いことが多い。この対策として、より早くデータをダウンロードする為、Webサーバにあるデータを受信する際に、複数のHTTPプロトコルに準拠した通信回線(セッション)を複数開き同一のデータを分割して、分割したデータを並列にダウンロードする技術が利用されている。
【0003】
具体的には、FTPプロトコルによりファイルを転送する際に、ファイルの分割数及びTCPセッションの数を、TCPプロトコルのウインドウサイズと、ネットワークの往復遅延時間及び回線速度とに基づいて決定し、この数でファイルを分割すると共にTCPセッションをデータ転送用に複数確立して、データ転送を行なうことが開示されている(例えば、特許文献1参照。)。
【0004】
【特許文献1】
特開平8−305643号公報
【0005】
【発明が解決しようとする課題】
しかしながら、データをダウンロードして直ちに利用したい場合であって、そのデータが例えば圧縮状態にある場合には、ダウンロードしたデータに対して直ちにデコード処理をしなければならない。そのため、上述したように分割したデータを並列してダウンロードしても、分割したデータが揃って初めてデータがデコード処理可能となる。すなわち、分割したデータが揃うまで待つために、デコード処理が始まる迄の時間がかかってしまうという問題がある。
【0006】
この発明は、上述した事情を考慮してなされたもので、データを並列受信して、受信したデータ順を変えずに先頭より処理することができる情報処理装置、情報処理方法、その記録媒体およびプログラムを提供することを目的とする。
【0007】
【課題を解決するための手段】
この発明は、上述した課題を解決すべくなされたもので、本発明による情報処理装置においては、データを提供する情報提供装置よりネットワークを介して所望のデータを取得し処理する情報処理装置であって、情報提供装置と通信を行なう通信手段と、データを複数のブロックに分割して複数のブロックデータとする分割手段と、通信手段を介して複数のブロックデータの一部を受信する複数の受信手段と、複数の受信手段の各々に対して設置され、受信手段が受信したブロックデータを記憶し、記憶した順にブロックデータを出力する複数の一時記憶手段と、データにおけるブロックデータの並びに応じて複数の一時記憶手段からブロックデータを読み出して処理する処理手段とを具備することを特徴とする。
【0008】
また、本発明による情報処理方法においては、データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置を用いた情報処理方法であって、データを複数のブロックに分割して複数のブロックデータとする第1のステップと、通信手段を介して複数のブロックデータの一部を複数の受信手段から受信する第2のステップと、複数の受信手段が受信したブロックデータを、受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、データにおけるブロックデータの並びに応じて複数の一時記憶手段からブロックデータを読み出して処理する第4のステップとを有することを特徴とする。
【0009】
また、本発明による記録媒体は、データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、データを複数のブロックに分割して複数のブロックデータとする第1のステップと、通信手段を介して複数のブロックデータの一部を複数の受信手段から受信する第2のステップと、複数の受信手段が受信したブロックデータを、受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、データにおけるブロックデータの並びに応じて複数の一時記憶手段からブロックデータを読み出して処理する第4のステップとを情報処理装置に実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0010】
また、本発明によるプログラムは、データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置用のプログラムであって、データを複数のブロックに分割して複数のブロックデータとする第1のステップと、通信手段を介して複数のブロックデータの一部を複数の受信手段から受信する第2のステップと、複数の受信手段が受信したブロックデータを、受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、データにおけるブロックデータの並びに応じて複数の一時記憶手段からブロックデータを読み出して処理する第4のステップとを情報処理装置に実行させるためのプログラムである。
【0011】
これにより、本発明の情報処理装置、情報処理方法、その記録媒体およびプログラムにおいては、データを複数のブロックに分割して複数のブロックデータとして、通信手段を介して複数のブロックデータの一部を複数の受信手段により受信して、複数の受信手段が受信したブロックデータを、受信手段に対応して設置された複数の一時記憶手段に記憶して、データにおけるブロックデータの並びに応じて複数の一時記憶手段より選択的にブロックデータを読み出して処理するので、データを受信して、受信したデータ順を変えずに先頭より処理することができる。これにより、例えばデータが受信した順に処理可能なデータである場合には、データ全てを受信し終える前に、ブロックデータ単位での処理が可能となる。すなわち、データの処理を高速化することができる。
【0012】
【発明の実施の形態】
以下、図面を用いて本発明の実施形態について説明する。
まず、本発明の一実施形態としてJPEG圧縮された画像データをネットワーク経由で受信してデコード処理する情報処理装置の概略構成について説明する。本実施形態では、特に、情報処理装置は、ネットワーク経由でJPEGスペーシャル圧縮された画像データを分割して並列に受信し、受信したJPEGスペーシャル圧縮された画像データに対してデコード処理を行なう。このJPEGスペーシャル圧縮された画像データのデコード処理には、画像データの先頭から順次データが必要となるため、分割ダウンロードを並行処理で行なう場合には、データの先頭からデコード処理が必要となる。この為、本発明の効果を示す実施形態としては格好のものである。
【0013】
図1は、本発明の一実施形態における情報処理装置の概略構成を示す図である。図1に示すように、情報処理装置1は、通信手段10と、制御手段11と、受信手段1・12、受信手段2・12、…受信手段N・12(以下、単に受信手段12とする)と、FIFO(First−In First−Out)手段1・13、FIFO手段2・13、…、FIFO手段N・13(以下、FIFO手段13とする)と処理手段14とを備える構成である。通信手段10は、種々のデータをインターネット上のWebサーバ(不図示)より受信したり、Webサーバ(情報提供装置)にアクセスして転送速度やWebサーバのオペレーティングシステム(OS)ソフトウエアの種別を調べたりする。
【0014】
また、制御手段11は、通信手段10を介してダウンロードするファイルデータを適切なブロックに分割したり、N個ある受信手段12の内の幾つを起動するかなどを決定したりする。尚、本実施形態においては、制御手段11は、ブロックのデータ容量であるブロック容量を定めてブロックに分割する。
【0015】
また、受信手段12は、制御手段11によりブロックに分割されたブロックデータを受信する。尚、受信手段12は、図1に示すようにN個(Nは2以上の自然数)の受信手段1・12〜受信手段N・12から構成される。FIFO手段13は、N個の受信手段12にそれぞれに対応して存在し、受信手段12が受信したデータを順次記憶し、先に記憶したデータから順次出力するメモリである。尚、FIFO手段13は、図1に示すようにN個のFIFO1・13〜FIFON・13より構成されている。
【0016】
処理手段14は、FIFO手段13が其々出力するJPEGスペーシャル圧縮された画像データをまとめて、デコード処理を行なう。表示手段15は、CRT(Cathode Ray Tube)や液晶ディスプレイなどの表示装置であり、処理手段14がデコード処理した画像データを表示する。尚、本実施形態においては、処理手段14が処理した画像データを表示手段15において表示しているが、この限りではなく、処理手段14が処理した画像データをプリンタなどの印刷手段で印刷するなどの形態であってもよい。
【0017】
上述した受信手段12と処理手段14は、OSが1つのアプリケーションの処理を行なう場合の最小単位であるスレッドでそれぞれ構成され、時分割並列処理が可能である。また、情報処理装置1が、2つ以上のCPU(中央演算装置)を具備する場合には、備えるCPUの個数までのスレッドを時分割ではなく、並列に処理する。
【0018】
また、制御手段11は、外部の要因に基づき、実際に利用する受信手段12の個数や、転送元ファイルのブロック容量を決定する。このブロック容量が決まることにより、制御手段11は、転送すべきファイルサイズから分割ブロックを決定する。尚、上述した外部の要因とは、例えば転送元となるWebサーバのOSの種類と、セッションの確立時間である。このセッションの確立時間に関する情報は、データ転送に先立ってWebサーバにアクセスする際に、取得可能である。
【0019】
以下に、本実施形態における外部の要因(WebサーバのOSの種類と、セッションの確立時間)に応じたブロック容量例および分割例を示し説明する。
図2は、本実施形態における外部の要因に応じたブロック容量例および分割例を示す図である。図2においては、外部の要因に応じたブロック容量例および分割例としてパタンA、B、Cの3種類を示している。図2に示すように外部の要因の項目として項目31「WebサーバのOSの種類」と項目32「セッション確立時間」がある。また、分割例として項目33「受信手段数」と項目34「分割数」があり、ブロック容量例として項目35「ブロック容量」がある。
【0020】
まず、各パタンにおける外部の要因例について説明する。パタンAでは、WebサーバのOS(項目31)=XX2000であり、セッション確立時間(項目32)は1秒である。また、パタンBでは、WebサーバのOS(項目31)=ABCであり、セッション確立時間(項目32)が0.999秒であるので1秒未満としている。また、パタンCでは、WebサーバのOS(項目31)=XYZであり、セッション確立時間(項目32)が1.001秒であるので1秒以上としている。また、本実施形態における情報処理装置1は、1M(メガ)バイトのデータ(ブロックデータ)を5秒でダウンロードする能力があるとする。
【0021】
次に、上述した外部の要因を基に制御手段11が決定する分割例およびブロック容量例について説明する。図2に示すように、パタンAの場合には、制御手段11は、転送元ファイルのブロック容量(項目35)=xxおよびセッション回数=1を決定することで、利用する受信手段12の個数(項目33)=1を決定する。これにより、制御手段11は、転送元ファイルの分割数(項目34)=1を定める。
【0022】
また、パタンBの場合には、制御手段11は、利用する受信手段12の個数(項目33)=4、転送元ファイルのブロック容量(項目35)=yyと決定する。これにより、制御手段11は、転送元ファイルの分割数(項目34)=12も定める。
【0023】
同様に、パタンCの場合には、制御手段11は、利用する受信手段12の個数(項目33)=3、転送元ファイルのブロック容量(項目35)=zzと決定する。これにより、制御手段11は、転送元ファイルの分割数(項目34)=6も定める。
【0024】
尚、図2に示す関係はデータのダウンロードが開始される前に制御手段11が予め決定する。また、制御手段11が決定するブロック容量は、ダウンロード対象となるファイルサイズを分割数で除算したバイト数以上のバイト数であって、1Mバイト単位の値となる。
【0025】
次に、図2に示した各パタンにおける具体例を示し、各パタンにおける通信時間例および受信例について説明する。図3は、図2に示した各パタンにおける通信時間例および受信例を示す図である。図3に示すように、パタンA〜Cの全てにおいてダウンロード対象となるファイルの容量は12Mバイトである。また、制御手段11が、パタンAでブロック容量=12Mバイト、パタンBでブロック容量=1Mバイト、パタンCでブロック容量=2Mバイトと決定しているとする。
【0026】
また、図3において、taは、パタンAにおける1つの受信手段12のダウンロード時間(セッション確立時間を含む)を示し、約61秒である。また、tb1〜tb4は、パタンBにおける4つの受信手段12のダウンロード時間を示し、約18秒である。また、tc1〜tc3は、パタンCにおける3つの受信手段12のダウンロード時間を示し、約22秒である。ここで、ダウンロード時間ta、tb1〜tb4、tc1〜tc3の本数の違いは、図2に示した受信手段12の利用数の違いである。
【0027】
また、ダウンロード時間taにおいて、SAは、パタンAにおけるセッション確立時間であり、DAは、パタンAにおけるセッション確立後の1ブロック容量分のデータ(ブロックデータ)をダウンロード処理するために要する時間(以下、1ブロックダウンロード時間とする)である。同様に、ダウンロード時間tb1〜tb4およびtc1〜tc3において、SBおよびSCは、パタンBおよびパタンCのセッション確立時間であり、DBおよびDCは、パタンBおよびパタンCの1ブロックダウンロード時間を示している。
【0028】
これにより、パタンAにおいては、セッション確立時間SA=1秒であり1ブロックダウンロード時間DA=12Mバイト*5秒=60秒なので、ダウンロード時間は約61秒となる。尚、パタンAにおいて受信手段数=1なのは、WebサーバのOSであるXX2000が、例えば、Windows(登録商標)2000のような、複数セッションの同時ダウンロードを許していないOSである為である。また、この場合にはダウンロードするファイルを分割する意味が無い為、分割数は1である。
【0029】
パタンBにおいては、セッション確立時間SB=1秒未満であり1ブロックダウンロード時間DB=1Mバイト*5秒=5秒でセッション回数=3回なので、ダウンロード時間tb1〜tb4の各々は、約18秒となる。ここで、セッション回数が3回であるのは、セッション確立時間SBが1秒未満と短い為、1つの受信手段12が3回セッションを確立しても無駄がないという設計思想があるためである。このように、セッション回数を増やすことは、1ブロックダウンロード時間が短縮されるので、処理手段14がデータ処理を開始する時間がより短縮される。但し、セッション回数を増やしすぎるとセッション確立時間SBに要する時間が増えるので、情報処理装置1とダウンロード先のWebサーバ間の通信状態や通信能力を考慮してバランスをとることが必要である。
【0030】
パタンCにおいては、セッション確立時間SC=1秒以上であり1ブロックダウンロード時間DC=2Mバイト*5秒=10秒でセッション回数=2回なので、ダウンロード時間tc1〜tc3の各々は、約22秒となる。ここで、セッション回数が2回であるのは、セッション確立時間SCが1秒以上と長い為、1つの受信手段12が2回セッションとなるようにセッションの確立のしなおす回数を抑えた設計思想があるためである。この場合であっても、セッションの確立のしなおしがない場合に比べると、1回目の1ブロックダウンロードを終えた時点で処理手段14がデータ処理を開始できるので、データ処理の効率が向上している。
【0031】
以上に示したように、パタンBやパタンCの場合の情報処理装置1においては、例えば、圧縮処理された複数枚の画像データをダウンロードする場合に、途中までダウンロードした分の画像データを圧縮解凍して表示することで、従来より高速な画像表示が実現できる。また、ダウンロード先のWebサーバのOSを検知することで、情報処理装置1は、パタンAのように、マルチセッションダウンロードを許していないOSにも対応することができる。但し、パタンAの場合は、情報処理装置1のダウンロード時間は従来と変わらない。
【0032】
尚、上述したパタンA〜Cにおいては、パタンBが最も早くダウンロードできるが、現実的には、受信処理などを時分割処理する為、図3に示した理論値以上のダウンロード時間を要することに注意する必要がある。
【0033】
次に、図2に示したパタンCの場合における情報処理装置1の具体的な構成例を示し、上述した実施形態の具体的な実施例の説明を行う。
図4は、図2に示したパタンCの場合における情報処理装置1の具体的な構成例である。本実施例では、図4に示すように、ネットワーク上のJPEGスペーシャル圧縮されたデータファイル41(データ長5.23Mバイト)を3つの受信手段12である受信スレッド42が並列処理にてダウンロードする処理および、処理手段14であるデコードスレッドが複数のFIFO手段13よりダウンロードされたデータを読み出してデコードする処理について説明する。
【0034】
また、本実施例では、パタンCに示すように、ネットワーク側のデータファイル41は、1M単位で、6つの仮想的なブロック(1M×5と0.23M×1)に分割される。図4には、データファイル41が上から順に1番目から6番目までの仮想的な6つのブロックに分割されている様子を示している。また、受信スレッド#0・42(受信手段1・12)は、1番目と4番目のブロックを順次ダウンロードしFIFO1・13へ入力する。同様に、受信スレッド#1・42(受信手段2・12)は、2番目と5番目のブロックを順次ダウンロードしFIFO2・13へ入力する。同様に、受信スレッド#2・42(受信手段3・12)は、3番目と6番目のブロックを順次ダウンロードしFIFO3・13へデータを入力する。
【0035】
この時、データファイル41の6番目のブロックは、ファイルサイズが端数となり、0.23Mバイトである。尚、以下の説明において受信スレッド#0・42、受信スレッド#1・42、受信スレッド#2・42をまとめて受信スレッド42と呼ぶこととする。また、上述したようにFIFO1・13、FIFO2・13、FIFO3・13をまとめてFIFO手段13とする。
【0036】
次に、ダウンロードに際して、受信スレッド42は、Webサーバに対し、転送すべき圧縮ファイル(データファイル41)の何バイト目からダウンロードするかの指示が可能であるため、この仕組みを利用する。必要な量、この場合では1Mバイト(但し、6番目のブロックの時は0.23Mバイト)を受信したところでセッションを切断し、これ以上ダウンロードしないようにすれば、転送元ファイル(データファイル41)の任意の部分を取得することができる。すなわち、情報処理装置1は、Webサーバより転送元ファイルにおける所望のブロックを転送することが可能となる。
【0037】
また、受信スレッド42がダウンロードしたデータを、FIFO手段13へ挿入する処理は、128Kバイトのバッファ単位で挿入する処理である。各FIFO手段13の容量は、ダウンロードされるデータのブロックサイズ(=データファイル41におけるブロックのブロック容量)に応じて構成される。本実施例では、ブロックサイズは1Mバイトであるため、図4に示すように、FIFO手段13は、128Kバイトのバッファ13cを8個備える構成であり、これにより1バイト分の構成となっている。ここで、注意すべき点は、各受信スレッド42は、1Mバイトのデータを全てダウンロードしてバッファに挿入するのでなく、最大128Kバイト単位でダウンロードしてFIFO手段13に挿入する。
【0038】
各FIFO手段13には、変数記憶領域13dに書き込み済ポジション変数wrPositionが格納されていて、各FIFO手段13内でいくつバッファ13cに書き込みが完了したかを示す。尚、書き込み済ポジション変数wrPositionは、0から開始する番号であり、+1するとバッファ13cのバッファ番号(本実施形態では1〜8)となる。すなわち、各バッファ13cは8個である為、FIFO手段13の8個目のバッファ13cに書き込み完了した場合は、書き込み済ポジション変数wrPosition=7である。また、8個目を超えたバッファ13cへの書き込みは、すでにデータがバッファ13cより取り出されていることを前提に再度先頭のバッファ13cから書き込みを行なう。この場合、書き込み済ポジション変数wrPositionは、8以降の数字で示すことで、2度目(またはそれ以上の回数)の書き込みであるか否かを判別できる。
【0039】
実施例である図4においては、FIFO1・13については、2番目のバッファ13cに対して2度目の書き込み中で、1番目のバッファ13cに対して2度目の書き込み済みなので、書き込み済ポジション変数wrPosition=8である。また、FIFO2・13およびFIFO3・13については、双方ともに、5番目のバッファ13cに対して1度目の書き込み中で、4番目のバッファ13cに対して1度目の書き込み済みなので、書き込み済ポジション変数wrPosition=3である。
【0040】
FIFO手段13からのデータの取出しは、本実施例ではデコードスレッド44が行なう。デコードスレッド44(図1の処理手段14)は、FIFO1・13⇒FIFO2・13⇒FIFO3・13⇒FIFO1・13⇒FIFO2・13⇒FIFO3・13⇒、…と受信済みのデータを順次1Mづつ取り出す。取り出す際には、最大128Kバイトのバッファ単位で取り出し、それを各FIFO手段13から最大8個取り出す。この取り出しにより、デコードスレッド44は、ネットワーク側のWebサーバにあるファイル構成順序とおなじ構成でデータをデコードできる。
【0041】
FIFO手段13内のバッファ13cの内いくつ読み出し完了したかは、変数記憶領域43に格納されるポジション変数rdPositionで示される。変数記憶領域43は、上述した3つのFIFO手段13の全体につき一つ備えられている。また、ポジション変数rdPositionは、0から開始する番号で記録されている。すなわち、図4のように、デコードスレッド44が、FIFO1・13の5番目のバッファ13cを読み込み中の場合には、4番目のバッファを読み込み完了しているため、ポジション変数rdPosition=3が格納されている。
【0042】
図4では、初めにFIFO1・13にデータが蓄積され始め、それをデコードスレッド44が取り出している。その間には、時分割並列処理にて受信スレッド#1・42、受信スレッド#2・42にもデータが蓄積し始める。ここでいう時系列並行処理とは、受信スレッド#1・42がデータファイル41の2番目のブロックを順次ダウンロードして、FIFO2・13の1番目のバッファ13cにデータを書き込むときに生じる書き込み待ち時間を利用して、受信スレッド#2・43がデータファイル41の3番目のブロックを順次ダウンロードして、FIFO3・13の1番目のバッファ13cにデータを書き込む処理のこという。ここで、あるバッファ13cより全てのデータが読み出された場合には、もうそのバッファ13c内にデータを保持している必要が無いため、そのバッファ13cは開放される。また、受信スレッド42は、開放されたバッファ13cに新たに受信したデータの上書きをする。
【0043】
ここで、図4に示した受信スレッド#0・42およびFIFO1・13に注目して説明する。図4のFIFO1・13は、上から4番目のバッファ13cまで読み込み完了しているので、1〜4番目のバッファ13cを開放済みである。これにより、受信スレッド#0・42が、1〜2番目のバッファ13cに2度目の書き込みを行なっている。すなわち、受信スレッド#0・42が、Webサーバ側のデータファイル41から、4Mバイト目以降のデータの読み込みを開始している。図4に示すように、受信スレッド#0・42は、既に4Mバイトから128Kバイト分はデータを受信済みでありFIFO1・13の先頭のバッファに記録済みである。更に、現在、受信スレッド#0・42は、4Mと128Kバイト目以降のデータをダウンロードして、FIFO1・13の2番目のバッファ13cに記録中である。
【0044】
以上に示したように、デコードスレッド44が一つのFIFO手段13からデータの読み込み中に、他のFIFO手段13に新たに受信したデータが蓄積されているため、情報処理装置1としては、受信待ち時間無くデータ受信ができている。すなわち、受信スレッド42が受信しFIFO手段13に挿入したデータを、デコードスレッド44が、FIFO1・13⇒FIFO2・13⇒FIFO3・13⇒FIFO1・13⇒FIFO2・13⇒FIFO3・13⇒、…と順次読み込める可能性が高いといえる。これにより、デコードスレッド44は、高速なデコード処理を行なうことができる。
【0045】
また、FIFO1・13、FIFO2・13、FIFO3・13の各データ格納最大サイズは1Mバイトであり、受信スレッド42の受信するブロックサイズに合わせて構成されている。これにより、デコードスレッド44におけるデコード処理速度が受信スレッド42による受信速度に追いついてしまうことで、データの受信の為のFIFO手段13からの受信待ちとなりにくい構成となっている。
【0046】
また、仮に、FIFO手段13のデータ格納最大サイズが例えば512Kバイトであって、受信スレッド42が受信するブロックサイズの1Mバイトより小さい場合には、以下の不具合が起こり得る。例えば、受信スレッド42がFIFO手段13に128Kバイトのバッファ13cの格納サイズ単位で受信データを挿入する際に、デコードスレッド44のデコード処理が遅い場合にはFIFO手段13の記憶容量フル(最大記憶容量となるデータを記憶した状態)となる状態が発生し、受信データを挿入できない無駄が発生する。
【0047】
また、仮に、FIFO手段13のデータ格納最大サイズが例えば2Mバイトと、受信スレッド42が受信するブロックサイズの1Mバイトより大きい場合には、以下の不具合が起こり得る。例えば、受信スレッド42がFIFO手段13に受信データを挿入する際、受信するブロックサイズ以上のFIFOデータ格納領域には、ダウンロード対象であるデータファイル41の4Mバイト目以降のデータを受信スレッド42が挿入することになるが、デコードスレッド44にとっては、最初から1Mバイト分のデータの次に必要なデータは1Mから2Mまでのデータが必要なのであり、4Mバイト目以降のデータは早急に必要ではないため、多少の無駄となる。このため、FIFO手段13のデータ格納最大サイズは、受信スレッド42の受信するブロックサイズに合わせて構成されていることが最適である。
【0048】
次に、FIFO手段13における、データ書き込みとデータ取り出しについて詳細に説明する。データの書き込み、読み出しに関連するFIFO手段13の排他制御に関してはカウンティングセマフォを利用する。図4に示すように、各FIFO手段13について、書込許可セマフォ13a、読出許可セマフォ13bが存在する。これらの書込許可セマフォ13aおよび読出許可セマフォ13bは、カウンティングセマフォであり、FIFO手段13のバッファ13cに対する書き込み/読み出し制御に利用されている。
【0049】
書込許可セマフォ13aのカウント初期値はバッファ13cの数と同じ8であり、読出許可セマフォ13bのカウント初期値は0となっている。受信スレッド42がセマフォを取得すると書込許可セマフォ13aのカウント値がひとつ減り、0になると、セマフォ取得ができなくなる。これにより、受信スレッド42が書込許可セマフォ13aのセマフォを開放するまで待ちが発生し排他制御が達成される。また、受信スレッド42が書込許可セマフォ13aのセマフォを開放すると、読出許可セマフォ13bのカウント値がひとつ増える。
【0050】
次に、受信スレッド42がFIFO手段13にデータ書込みを行なう処理について説明する。
図5は、受信スレッド42がFIFO手段13にデータ書込みを行なう処理を示すフローチャートである。まず、データ書込みの処理に先立って、受信スレッド42は、Webサーバから1Mバイト分のデータを受信する為に、ネットワークを介してWebサーバとセッションを確立する。尚、セッションの確立後には、Webサーバ側のデータファイル41のどの部分から読み込むかの指定が可能である。
【0051】
次に、ステップ401において、受信スレッド42は、Webサーバとのセッションが確立したら、これからダウンロードするデータを、どのバッファ13cに書き込むかについて、書き込み済ポジション変数wrPositionを参照することで算出し、該当するバッファ13cを検索する。具体的には、受信スレッド42は、各FIFO手段13の書き込み済ポジション変数wrPositionを用いて以下の式1により、FIFO手段13の先頭からのバッファ番号を算出する。
バッファ番号=(wrPosition+1)%8 … 式1
尚、式1において、「%」は、たとえば任意の変数X,Yに対してX%Yとした場合に、XをYで除算した際の余りの値を示す演算子であるとする。これにより、受信スレッド42は、算出したバッファ番号のバッファ13cを検索する。
【0052】
次に、ステップ402において、受信スレッド42は、検索したバッファ13cが空いているか否かを判定するため、書込許可セマフォ13aを取得する。すなわち、書込許可セマフォ13aが取得できれば、バッファ13cが空いていて利用できることになる。また、書込許可セマフォ13aが取得できない場合は、読み込みタスクがFIFO手段13を読みきれず、FIFO手段13のバッファ13cがデータで一杯の状態である。この時、受信スレッド42において、セマフォ待ちが発生する。
【0053】
次に、ステップ403において、受信スレッド42は、FIFO手段13にデータの書込みを行なう。具体的には、受信スレッド42は、書込許可セマフォ13aの初期値は8なので、少なくともバッファ13cの8個分はセマフォ待ちが発生することなく書き込みが可能となる。すなわち、受信スレッド42は、8回セマフォを取得でき、ネットワーク上から当該バッファ13cへ最大128Kバイトのデータの書き込みを行なう。書き込み完了後、図4に示した各バッファ13cに存在するバッファマネジメントテーブル内のstartPos変数13eにファイルの先頭を0バイトとしたときに、何バイト目からデータが書き込まれているか記載され、endPos変数13fに、何バイト目までデータが書き込まれているかを記載する。
【0054】
上述したstartPos変数13eとendPos変数13fは、ファイルの末尾などに端数が存在するとき、バッファ13cの記憶領域が完全に埋まらないため、どこまでデータが書き込まれているかを指定する必要が有る為に管理する変数である。尚、図4においては、図を見やすくするためにFIFO手段13中の一番上のバッファ13cのstartPos変数とendPos変数にのみ符号13e、13fを付与したが、図4からも明らかなように、他の7つのバッファ13cの其々が、startPos変数13eとendPos変数13fを有する。
【0055】
次に、ステップ404において、受信スレッド42は、バッファ13cへのデータの書き込みを終えると、書き込み済ポジション変数wrPositionをインクリメントする。次に、ステップ405において、受信スレッド42は、読出許可セマフォ13bを開放する。読出許可セマフォ13bが開放されれば、下記に説明するデコードスレッド44が読み出し待ちとなっている場合、読出許可セマフォ13bのセマフォが取得できるようになり、ただちに読み出しが可能となる。
【0056】
次に、デコードスレッド44がバッファ13cよりデータを読み出してデコードする処理について説明する。
図6は、デコードスレッド44がバッファ13cよりデータを読み出してデコードする処理を示すフローチャートである。ここで、バッファ13cより読み出すデータは、JPEGスペーシャル圧縮された画像ファイルの一部なので、ファイルの先頭から順次デコード処理する必要がある。そこで、ステップ501において、デコードスレッド44は、上記ポジション変数rdPositionを参照してデータを読み出す対象となるバッファ13cを検索する。
【0057】
具体的には、デコードスレッド44は、既に読み込みを終えたバッファ番号を示すポジション変数rdPositionを基に、どのFIFO手段13を読み出すかを示すFIFO番号を以下の式2を用いて算出する。
FIFO番号=((rdPosition+1)/8)%3 … 式2
但し式2の「%」は、上述した式1で示した演算子と同じである。
次に、デコードスレッド44は、FIFO番号で指定されたFIFO手段13におけるバッファグループ(8つのバッファ13c)内の何れのバッファ13cよりデータを読み出すかを示す読み出しバッファ番号を以下の式3を用いて算出する。
読み出しバッファ番号=(rdPosition+1)%8 … 式3
但し式3の「%」は、上述した式1で示した演算子と同じである。
以上の式2および式3により求めたFIFO番号およびバッファ番号を基に、デコードスレッド44は、バッファ13cを検索する。
【0058】
次に、ステップ502において、デコードスレッド44は、検索したバッファ13cに対してデータが読み出せる状態か否かを、検索したバッファ13cを有するFIFO手段13の読出許可セマフォ13bのセマフォを取得することで判定する。ここで、デコードスレッド44が読出許可セマフォ13bのセマフォを取得できた場合には、データがバッファ13cに書き込み済みの状態なので、そのバッファ13cからデータ読み出しに移行できる。また、デコードスレッド44が読出許可セマフォ13bのセマフォを取得できない場合には、データがバッファ13cにまだ書き込まれておらず、読み出しの用意ができていない為、セマフォ待ちが発生する。
【0059】
セマフォが取得できた場合には、ステップ503に進み、デコードスレッド44は、読み出し対象となるバッファ13cのデータがデコード処理のために必要なデータであるか否かを判定する。具体的には、データのデコードに際して、データは全て必要であるが、ファイルフォーマットのうち、データのヘッダにおいて読み込む必要の無いものがたまたま全て今対象としているバッファ13cのデータである場合(ステップ503のNo)には、デコードスレッド44は、バッファ13cからのデータの読み出しをスキップして、ステップ505へ進む。また、対象としているバッファ13cのデータがデコードに必要な場合(ステップ503のYes)には、ステップ504に進み、デコードスレッド44は、バッファ13cからデータの読み出しを行いデコード処理に利用する。
【0060】
次に、ステップ505において、デコードスレッド44は、データをデコード処理に利用した後、次のデータ読み出しのため、rdPositionをインクリメントする。次に、ステップ506において、デコードスレッド44は、今扱っているバッファ13cを不要なバッファ13cとして受信スレッド42が再利用できる様に書込許可セマフォ13aを開放する。書込許可セマフォ13aが開放されれば、上述したように、受信スレッド42がデータを書き込むことが可能となる。また、データのデコード処理が更に必要であれば、デコードスレッド44は、図6に示したステップ501〜506の処理を再度行なう。
【0061】
以上に示すように、本実施形態の情報処理装置1においては、Webサーバにあるデータを高速に並列受信し、しかもデータ順を変えずに先頭より処理することができる。これにより、情報処理装置1は、圧縮画像などをダウンロードしてデコードして表示するときに、従来と比べて高速な画像表示を行なうことができる。
尚、上述した実施形態では、情報処理装置1が行なう各処理は、ソフトウエア処理として説明を行ったが、この限りではなく、各処理の一部もしくは全てがハードウェア処理において達成されてもよい。また、情報処理装置1は、図示していないが、マウスやキーボードなどの入力装置を具備してもよい。
【0062】
また、図1に示した情報処理装置1の各処理部は、専用のハードウェアにより実現されるものであってもよく、また、各処理部はメモリおよびCPUにより構成され、各処理部の機能を実現する為のプログラムをメモリに読み込んで実行することによりその機能を実現させるものであってもよい。
また、上記メモリは、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CD−ROM等の読み出しのみが可能な記録媒体、RAM(Random Access Memory)のような揮発性のメモリ、あるいはこれらの組み合わせによるコンピュータ読み取り、書き込み可能な記録媒体より構成されるものとする。
【0063】
また、図1において各種処理を行なう処理部の機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0064】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0065】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0066】
また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体およびプログラムプロダクトは、本発明の範疇に含まれる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0067】
【発明の効果】
以上説明したように、本発明の情報処理装置、情報処理方法、その記録媒体およびプログラムにおいては、データを複数のブロックに分割して複数のブロックデータとして、通信手段を介して複数のブロックデータの一部を複数の受信手段により受信して、複数の受信手段が受信したブロックデータを、受信手段に対応して設置された複数の一時記憶手段に記憶して、データにおけるブロックデータの並びに応じて複数の一時記憶手段より選択的にブロックデータを読み出して処理するので、データを受信して、受信したデータ順を変えずに先頭より処理することができる。これにより、例えばデータが受信した順に処理可能なデータである場合には、データ全てを受信し終える前に、ブロックデータ単位での処理が可能となる。すなわち、データの処理を高速化することができる。具体的には、圧縮画像などをダウンロードしてデコードして表示するときに、高速な表示を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態における情報処理装置の概略構成を示す図である。
【図2】本実施形態における外部の要因に応じたブロック容量例および分割例を示す図である。
【図3】図2に示した各パタンにおける通信時間例および受信例を示す図である。
【図4】図2に示したパタンCの場合における情報処理装置1の具体的な構成例を示す図である。
【図5】受信スレッド42がFIFO手段13にデータ書込みを行なう処理を示すフローチャートである。
【図6】デコードスレッド44がバッファ13cよりデータを読み出してデコードする処理を示すフローチャートである。
【符号の説明】
1 情報処理装置
10 通信手段
11 制御手段
12 受信手段1、受信手段2、…、受信手段N
13 FIFO1、FIFO2、…、FIFON
13a 書込許可セマフォ
13b 読出許可セマフォ
13c バッファ
13d 変数記憶領域
13e startPos変数
13f endPos変数
14 処理手段
15 表示手段
41 データファイル
42 受信スレッド#0、受信スレッド#1、受信スレッド#2
43 変数記憶領域
44 レコードスレッド[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus capable of transmitting / receiving and processing data, an information processing method, a recording medium thereof, and a program.
[0002]
[Prior art]
In recent years, with the spread of World Wide Web and the like, it is possible to browse information using a Web server on the Internet. In addition, the user can download data, programs, and the like provided by the Web server via the Internet. At this time, the use of data via the Internet is often much slower in downloading than the use of data from a local computer. As a countermeasure, when receiving data on the Web server in order to download data faster, multiple communication lines (sessions) conforming to the HTTP protocol are opened, the same data is divided, and the divided data is The technology to download in parallel is used.
[0003]
Specifically, when transferring a file by the FTP protocol, the number of file divisions and the number of TCP sessions are determined based on the TCP protocol window size, the round-trip delay time of the network, and the line speed. And dividing the file and establishing a plurality of TCP sessions for data transfer to perform data transfer (see, for example, Patent Document 1).
[0004]
[Patent Document 1]
Japanese Patent Laid-Open No. 8-305643
[0005]
[Problems to be solved by the invention]
However, if it is desired to download the data and use it immediately, and the data is in a compressed state, for example, the downloaded data must be immediately decoded. Therefore, even if the divided data is downloaded in parallel as described above, the data can be decoded only after the divided data are prepared. That is, there is a problem that it takes time until the decoding process starts in order to wait for the divided data to be prepared.
[0006]
The present invention has been made in consideration of the above-described circumstances. An information processing apparatus, an information processing method, a recording medium thereof, and an information processing apparatus that can receive data in parallel and process the data from the top without changing the order of the received data. The purpose is to provide a program.
[0007]
[Means for Solving the Problems]
The present invention has been made to solve the above-described problems, and the information processing apparatus according to the present invention is an information processing apparatus that acquires and processes desired data from an information providing apparatus that provides data via a network. Communication means for communicating with the information providing apparatus, dividing means for dividing the data into a plurality of blocks to obtain a plurality of block data, and a plurality of receptions for receiving a part of the plurality of block data via the communication means. Means, a plurality of temporary storage units installed for each of the plurality of receiving means, storing the block data received by the receiving means, and outputting the block data in the order of storage, and a plurality of blocks according to the arrangement of the block data in the data And processing means for reading out and processing the block data from the temporary storage means.
[0008]
The information processing method according to the present invention is an information processing method using an information processing apparatus including a communication unit that acquires desired data from a information providing apparatus that provides data via a network. The first step of dividing the block into a plurality of block data, the second step of receiving a part of the plurality of block data from the plurality of receiving means via the communication means, and the plurality of receiving means received A third step of storing the block data in a plurality of temporary storage means installed corresponding to the receiving means, and a fourth step of reading the block data from the plurality of temporary storage means in accordance with the arrangement of the block data in the data and processing the fourth block data These steps are included.
[0009]
A recording medium according to the present invention is a computer-readable recording medium in which a program for an information processing apparatus including a communication unit that acquires desired data via a network from an information providing apparatus that provides data is recorded. A first step of dividing the data into a plurality of blocks to form a plurality of block data; a second step of receiving a part of the plurality of block data from the plurality of reception means via the communication means; and a plurality of receptions The block data received by the means is stored in a plurality of temporary storage means installed corresponding to the reception means, and the block data is read from the plurality of temporary storage means in accordance with the arrangement of the block data in the data. A computer-readable recording of a program for causing the information processing apparatus to execute the fourth step to be processed It is a function of the recording medium.
[0010]
A program according to the present invention is a program for an information processing apparatus including a communication unit that acquires desired data via a network from an information providing apparatus that provides data, and the program is divided into a plurality of blocks. A first step of setting the block data as a block data, a second step of receiving a part of the plurality of block data from the plurality of receiving means via the communication means, and receiving the block data received by the plurality of receiving means. A third step of storing in a plurality of temporary storage means installed corresponding to the data, and a fourth step of reading and processing the block data from the plurality of temporary storage means according to the arrangement of the block data in the data A program for causing a device to execute the program.
[0011]
Thereby, in the information processing apparatus, the information processing method, the recording medium, and the program of the present invention, the data is divided into a plurality of blocks as a plurality of block data, and a part of the plurality of block data is transmitted via the communication means. Block data received by a plurality of receiving means and received by a plurality of receiving means are stored in a plurality of temporary storage means installed corresponding to the receiving means, and a plurality of temporary data are arranged according to the arrangement of block data in the data. Since the block data is selectively read from the storage means and processed, the data can be received and processed from the beginning without changing the order of the received data. As a result, for example, when the data is data that can be processed in the order received, it is possible to perform processing in units of block data before receiving all the data. That is, data processing can be speeded up.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, a schematic configuration of an information processing apparatus that receives and decodes JPEG-compressed image data as an embodiment of the present invention will be described. In the present embodiment, in particular, the information processing apparatus divides JPEG spatially compressed image data via the network, receives the image data in parallel, and performs decoding processing on the received JPEG spatially compressed image data. In the decoding process of the image data subjected to the JPEG spatial compression, data is sequentially required from the head of the image data. Therefore, when the divided download is performed in parallel processing, the decoding process is required from the head of the data. For this reason, the embodiment showing the effect of the present invention is suitable.
[0013]
FIG. 1 is a diagram showing a schematic configuration of an information processing apparatus according to an embodiment of the present invention. As shown in FIG. 1, the
[0014]
Further, the control means 11 divides the file data to be downloaded via the communication means 10 into appropriate blocks, determines how many of the N receiving
[0015]
The receiving
[0016]
The processing unit 14 collects JPEG spatially compressed image data output from the
[0017]
The receiving means 12 and the processing means 14 described above are each constituted by a thread that is a minimum unit when the OS processes one application, and can perform time-division parallel processing. When the
[0018]
The control unit 11 determines the number of receiving
[0019]
Hereinafter, a block capacity example and a division example according to external factors (the Web server OS type and session establishment time) in the present embodiment will be described and described.
FIG. 2 is a diagram showing an example of block capacity and an example of division according to external factors in the present embodiment. In FIG. 2, three types of patterns A, B, and C are shown as block capacity examples and division examples according to external factors. As shown in FIG. 2, there are an
[0020]
First, an example of external factors in each pattern will be described. In pattern A, the Web server OS (item 31) = XX2000, and the session establishment time (item 32) is 1 second. In pattern B, the Web server OS (item 31) = ABC, and the session establishment time (item 32) is 0.999 seconds, so that it is less than 1 second. In Pattern C, since the Web server OS (item 31) = XYZ and the session establishment time (item 32) is 1.001 seconds, it is set to 1 second or longer. Further, it is assumed that the
[0021]
Next, an example of division and an example of block capacity determined by the control unit 11 based on the external factors described above will be described. As shown in FIG. 2, in the case of pattern A, the control unit 11 determines the block capacity (item 35) = xx and the number of sessions = 1 of the transfer source file, thereby determining the number of receiving units 12 ( Item 33) = 1 is determined. Thereby, the control means 11 determines the division number (item 34) = 1 of the transfer source file.
[0022]
In the case of pattern B, the control means 11 determines that the number of receiving means 12 to be used (item 33) = 4 and the block capacity of the transfer source file (item 35) = yy. Thereby, the control means 11 also determines the division number (item 34) = 12 of the transfer source file.
[0023]
Similarly, in the case of pattern C, the control means 11 determines that the number of receiving means 12 to be used (item 33) = 3 and the block capacity of the transfer source file (item 35) = zz. Thereby, the control means 11 also determines the division number (item 34) = 6 of the transfer source file.
[0024]
The relationship shown in FIG. 2 is determined in advance by the control means 11 before data download is started. The block capacity determined by the control means 11 is the number of bytes equal to or greater than the number of bytes obtained by dividing the file size to be downloaded by the number of divisions, and is a value in units of 1 Mbyte.
[0025]
Next, a specific example of each pattern shown in FIG. 2 will be shown, and a communication time example and a reception example in each pattern will be described. FIG. 3 is a diagram showing an example of communication time and reception in each pattern shown in FIG. As shown in FIG. 3, the capacity of a file to be downloaded in all patterns A to C is 12 Mbytes. Further, it is assumed that the control unit 11 determines that the block capacity is 12 MB for pattern A, the block capacity is 1 MB for pattern B, and the block capacity is 2 MB for pattern C.
[0026]
In FIG. 3, ta represents the download time (including the session establishment time) of one receiving means 12 in the pattern A, and is about 61 seconds. Further, tb1 to tb4 indicate download times of the four receiving means 12 in the pattern B, which is about 18 seconds. Further, tc1 to tc3 indicate download times of the three receiving means 12 in the pattern C, which is about 22 seconds. Here, the difference in the number of download times ta, tb1 to tb4, and tc1 to tc3 is the difference in the number of uses of the receiving means 12 shown in FIG.
[0027]
Also, at the download time ta, SA is the session establishment time in pattern A, and DA is the time required to download data (block data) for one block capacity after session establishment in pattern A (hereinafter referred to as “data”). 1 block download time). Similarly, at download times tb1 to tb4 and tc1 to tc3, SB and SC are session establishment times of pattern B and pattern C, and DB and DC indicate one block download times of pattern B and pattern C. .
[0028]
Thereby, in the pattern A, since the session establishment time SA = 1 second and 1 block download time DA = 12 Mbytes * 5 seconds = 60 seconds, the download time is about 61 seconds. In Pattern A, the number of receiving means = 1 is because XX2000, which is the OS of the Web server, is an OS that does not allow simultaneous downloading of a plurality of sessions, such as Windows (registered trademark) 2000, for example. In this case, the number of divisions is 1 because there is no point in dividing the file to be downloaded.
[0029]
In pattern B, since the session establishment time SB is less than 1 second, 1 block download time DB = 1 Mbyte * 5 seconds = 5 seconds, and the number of sessions = 3, each of the download times tb1 to tb4 is about 18 seconds. Become. Here, the number of sessions is 3 because the session establishment time SB is as short as less than 1 second, and there is a design philosophy that there is no waste even if one receiving means 12 establishes a
[0030]
In the pattern C, since the session establishment time SC is 1 second or more and 1 block download time DC = 2 Mbytes * 5 seconds = 10 seconds and the number of sessions = 2 times, each of the download times tc1 to tc3 is about 22 seconds. Become. Here, the number of sessions is two. Since the session establishment time SC is as long as 1 second or more, the design philosophy is to reduce the number of session reestablishment so that one receiving means 12 has two sessions. Because there is. Even in this case, the processing means 14 can start data processing at the time when the first one-block download is completed, compared with the case where the session is not re-established, so that the data processing efficiency is improved. .
[0031]
As described above, in the
[0032]
In the patterns A to C described above, the pattern B can be downloaded the earliest, but in reality, since the reception process and the like are time-division processed, a download time longer than the theoretical value shown in FIG. 3 is required. You need to be careful.
[0033]
Next, a specific configuration example of the
FIG. 4 shows a specific configuration example of the
[0034]
In the present embodiment, as shown in pattern C, the data file 41 on the network side is divided into 6 virtual blocks (1M × 5 and 0.23M × 1) in 1M units. FIG. 4 shows a state in which the data file 41 is divided into six virtual blocks from the first to the sixth in order from the top. Further, the
[0035]
At this time, the sixth block of the data file 41 has a file size that is a fraction and is 0.23 Mbytes. In the following description, the
[0036]
Next, when downloading, the
[0037]
Further, the process of inserting the data downloaded by the
[0038]
Each FIFO means 13 stores a written position variable wrPosition in the
[0039]
In FIG. 4, which is an embodiment, since FIFO1 and 13 are being written to the second buffer 13c for the second time and written to the first buffer 13c for the second time, the written position variable wrPosition is used. = 8. In addition, since both
[0040]
In the present embodiment, the
[0041]
The position variable rdPosition stored in the
[0042]
In FIG. 4, first, data starts to be accumulated in the
[0043]
Here, description will be made with attention paid to the
[0044]
As described above, since the newly received data is accumulated in the
[0045]
The maximum data storage size of each of the
[0046]
Also, if the maximum data storage size of the FIFO means 13 is, for example, 512 Kbytes and is smaller than 1 Mbyte of the block size received by the
[0047]
Further, if the maximum data storage size of the FIFO means 13 is larger than 2 Mbytes, for example, and 1 Mbyte of the block size received by the
[0048]
Next, data writing and data extraction in the FIFO means 13 will be described in detail. A counting semaphore is used for exclusive control of the FIFO means 13 related to data writing and reading. As shown in FIG. 4, for each FIFO means 13, there is a
[0049]
The initial count value of the write enable
[0050]
Next, a process in which the
FIG. 5 is a flowchart showing a process in which the
[0051]
Next, in
Buffer number = (wrPosition + 1)% 8
In
[0052]
Next, in
[0053]
Next, in
[0054]
The startPos variable 13e and the endPos variable 13f described above are managed because it is necessary to specify how much data has been written since the storage area of the buffer 13c is not completely filled when there is a fraction at the end of the file. Variable. In FIG. 4, only the startPos variable and the endPos variable of the uppermost buffer 13c in the FIFO means 13 are assigned the
[0055]
Next, in
[0056]
Next, a process in which the
FIG. 6 is a flowchart showing a process in which the
[0057]
Specifically, the
FIFO number = ((rdPosition + 1) / 8)% 3
However, “%” in
Next, the
Read buffer number = (rdPosition + 1)% 8
However, “%” in
Based on the FIFO number and the buffer number obtained by the
[0058]
Next, in
[0059]
If the semaphore can be acquired, the process advances to step 503, and the
[0060]
Next, in step 505, the
[0061]
As described above, in the
In the above-described embodiment, each process performed by the
[0062]
Further, each processing unit of the
The memory includes a non-volatile memory such as a hard disk device, a magneto-optical disk device, and a flash memory, a recording medium such as a CD-ROM that can only be read, and a volatile memory such as a RAM (Random Access Memory). Or a computer-readable / writable recording medium based on a combination thereof.
[0063]
1 is recorded on a computer-readable recording medium, and the program recorded on the recording medium is read into a computer system and executed. Each process may be performed. The “computer system” here includes an OS and hardware such as peripheral devices.
[0064]
The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Further, the “computer-readable recording medium” refers to a volatile memory (RAM) in a computer system serving as a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, those holding a program for a certain period of time are also included.
[0065]
The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, what is called a difference file (difference program) may be sufficient.
[0066]
A program product such as a computer-readable recording medium in which the above program is recorded can also be applied as an embodiment of the present invention. The above program, recording medium, transmission medium, and program product are included in the scope of the present invention.
The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes designs and the like that do not depart from the gist of the present invention.
[0067]
【The invention's effect】
As described above, in the information processing apparatus, the information processing method, the recording medium, and the program according to the present invention, the data is divided into a plurality of blocks as a plurality of block data, and a plurality of block data is transmitted via communication means. A part is received by a plurality of receiving means, the block data received by the plurality of receiving means is stored in a plurality of temporary storage means installed corresponding to the receiving means, and the block data is arranged in accordance with the arrangement of the block data Since block data is selectively read from a plurality of temporary storage means and processed, the data can be received and processed from the top without changing the order of the received data. As a result, for example, when the data is data that can be processed in the order received, it is possible to perform processing in units of block data before receiving all the data. That is, data processing can be speeded up. Specifically, when a compressed image or the like is downloaded, decoded, and displayed, high-speed display can be realized.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a schematic configuration of an information processing apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of block capacity and an example of division according to external factors in the present embodiment.
3 is a diagram illustrating an example of communication time and an example of reception in each pattern illustrated in FIG. 2. FIG.
4 is a diagram illustrating a specific configuration example of the
FIG. 5 is a flowchart showing a process in which the receiving
FIG. 6 is a flowchart showing a process in which the
[Explanation of symbols]
1 Information processing equipment
10 Communication means
11 Control means
12 receiving means 1, receiving means 2,..., Receiving means N
13 FIFO1, FIFO2, ..., FIFON
13a Write permission semaphore
13b Read permission semaphore
13c buffer
13d variable storage area
13e startPos variable
13f endPos variable
14 Processing means
15 Display means
41 Data files
42
43 Variable storage area
44 record thread
Claims (15)
前記情報提供装置と通信を行なう通信手段と、
前記データを複数のブロックに分割して複数のブロックデータとする分割手段と、
前記通信手段を介して複数の前記ブロックデータの一部を受信する複数の受信手段と、
複数の前記受信手段の各々に対して設置され、前記受信手段が受信した前記ブロックデータを記憶し、記憶した順に前記ブロックデータを出力する複数の一時記憶手段と、
前記データにおける前記ブロックデータの並びに応じて前記複数の一時記憶手段から前記ブロックデータを読み出して処理する処理手段と
を具備することを特徴とする情報処理装置。An information processing apparatus that acquires and processes desired data from an information providing apparatus that provides data via a network,
A communication means for communicating with the information providing device;
Dividing means for dividing the data into a plurality of blocks to form a plurality of block data;
A plurality of receiving means for receiving a part of the plurality of block data via the communication means;
A plurality of temporary storage means installed for each of the plurality of receiving means, storing the block data received by the receiving means, and outputting the block data in the order of storage;
An information processing apparatus comprising: processing means for reading and processing the block data from the plurality of temporary storage means according to the arrangement of the block data in the data.
前記分割手段は、前記制御手段の決定に応じて前記データの分割を行なうことを特徴とする請求項1から請求項5のいずれか1項に記載の情報処理装置。And further comprising a control means for determining the number of receiving means used among the plurality of receiving means, the number of blocks, and the data capacity of the block data before starting reception by the receiving means,
6. The information processing apparatus according to claim 1, wherein the dividing unit divides the data according to the determination of the control unit.
前記データを複数のブロックに分割して複数のブロックデータとする第1のステップと、
前記通信手段を介して複数の前記ブロックデータの一部を複数の受信手段から受信する第2のステップと、
複数の前記受信手段が受信した前記ブロックデータを、前記受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、
前記データにおける前記ブロックデータの並びに応じて前記複数の一時記憶手段から前記ブロックデータを読み出して処理する第4のステップと
を有することを特徴とする情報処理方法。An information processing method using an information processing apparatus including a communication unit that acquires desired data via a network from an information providing apparatus that provides data,
A first step of dividing the data into a plurality of blocks to form a plurality of block data;
A second step of receiving a part of the plurality of block data from the plurality of receiving means via the communication means;
A third step of storing the block data received by a plurality of receiving means in a plurality of temporary storage means installed corresponding to the receiving means;
And a fourth step of reading and processing the block data from the plurality of temporary storage means according to the arrangement of the block data in the data.
前記データを複数のブロックに分割して複数のブロックデータとする第1のステップと、
前記通信手段を介して複数の前記ブロックデータの一部を複数の受信手段から受信する第2のステップと、
複数の前記受信手段が受信した前記ブロックデータを、前記受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、
前記データにおける前記ブロックデータの並びに応じて前記複数の一時記憶手段から前記ブロックデータを読み出して処理する第4のステップと
を情報処理装置に実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium recording a program for an information processing device including a communication unit that acquires desired data from a data providing device via a network,
A first step of dividing the data into a plurality of blocks to form a plurality of block data;
A second step of receiving a part of the plurality of block data from the plurality of receiving means via the communication means;
A third step of storing the block data received by a plurality of receiving means in a plurality of temporary storage means installed corresponding to the receiving means;
A computer-readable recording medium storing a program for causing an information processing apparatus to execute a fourth step of reading and processing the block data from the plurality of temporary storage units according to the arrangement of the block data in the data.
前記データを複数のブロックに分割して複数のブロックデータとする第1のステップと、
前記通信手段を介して複数の前記ブロックデータの一部を複数の受信手段から受信する第2のステップと、
複数の前記受信手段が受信した前記ブロックデータを、前記受信手段に対応して設置された複数の一時記憶手段に記憶する第3のステップと、
前記データにおける前記ブロックデータの並びに応じて前記複数の一時記憶手段から前記ブロックデータを読み出して処理する第4のステップと
を情報処理装置に実行させるためのプログラム。A program for an information processing apparatus including a communication unit that acquires desired data via a network from an information providing apparatus that provides data,
A first step of dividing the data into a plurality of blocks to form a plurality of block data;
A second step of receiving a part of the plurality of block data from the plurality of receiving means via the communication means;
A third step of storing the block data received by a plurality of receiving means in a plurality of temporary storage means installed corresponding to the receiving means;
A program for causing an information processing device to execute a fourth step of reading and processing the block data from the plurality of temporary storage means according to the arrangement of the block data in the data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003185505A JP2005018631A (en) | 2003-06-27 | 2003-06-27 | Information processor, information processing method, its recording medium, and its program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003185505A JP2005018631A (en) | 2003-06-27 | 2003-06-27 | Information processor, information processing method, its recording medium, and its program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005018631A true JP2005018631A (en) | 2005-01-20 |
Family
ID=34184934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003185505A Pending JP2005018631A (en) | 2003-06-27 | 2003-06-27 | Information processor, information processing method, its recording medium, and its program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005018631A (en) |
-
2003
- 2003-06-27 JP JP2003185505A patent/JP2005018631A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0753820B1 (en) | Multimedia playing apparatus utilizing synchronization of scenario-defined processing time points with playing of finite-time monomedia item | |
JP4642697B2 (en) | Image display device having image cache memory | |
US6708233B1 (en) | Method and apparatus for direct buffering of a stream of variable-length data | |
US5946318A (en) | Method and apparatus for processing and packetizing data from a data stream | |
US7561573B2 (en) | Network adaptor, communication system and communication method | |
CN101217638A (en) | A downloading method, system and device of video file fragmentation | |
JP2004046375A (en) | Business form processing device, business form processing method and program | |
JP6882992B2 (en) | How and devices to preview moving images, and how and devices to display representation packages | |
DE112005001364T5 (en) | Processing receive log data units | |
JP2001159996A5 (en) | ||
US20030065839A1 (en) | System and method for supporting split transactions on a bus | |
JP2006302246A (en) | Network adaptor, communication system and communication method | |
US6101546A (en) | Method and system for providing data files that are partitioned by delivery time and data type | |
CN110225399B (en) | Streaming media processing method and device, computer equipment and storage medium | |
JP3506130B2 (en) | Buffering device and buffering method | |
JP2005182691A (en) | Data storage system using network | |
JP2005018631A (en) | Information processor, information processing method, its recording medium, and its program | |
US10915270B2 (en) | Random file I/O and chunked data upload | |
JP2018526700A (en) | System and method for content storage and retrieval | |
JP2006146294A (en) | Data storage control system | |
US8898339B2 (en) | Method of transferring data implying a network analyser card | |
TWI242131B (en) | Method and related circuit for increasing network transmission efficiency by speeding data updating rate of memory | |
JP2004303239A (en) | Method for processing a plurality of outstanding data requests | |
JP2003527704A (en) | Apparatus and method for displaying scene | |
CN113127064A (en) | Method and related device for concurrently scheduling and executing time sequence data |