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 PDF

Info

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
Application number
JP2003185505A
Other languages
Japanese (ja)
Inventor
Tsukasa Sako
司 酒向
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2003185505A priority Critical patent/JP2005018631A/en
Publication of JP2005018631A publication Critical patent/JP2005018631A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processor and an information processing method, capable of sequentially processing pieces of data from the head thereof without changing the order in which they have been received after receiving them in parallel, and to provide a recording medium and a program for the method. <P>SOLUTION: A communication means 10 communicates with a Web server. A control means 11 virtually divides a piece of data into two or more blocks to generate two or more pieces of block data. Two or more reception means 12 receive some of the two or more pieces of block data in parallel through the communication means 10. Two or more FIFO means 13 store the block data received by each of the two or more reception means 12, and output the pieces of block data in the order in which they have been stored. A processing means 14 reads out the pieces of block data selectively from the two or more FIFO means 13 according to the row of the pieces of block data in the pieces of data, and processes the piece of block data. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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 information processing apparatus 1 includes a communication unit 10, a control unit 11, reception units 1 and 12, reception units 2 and 12, reception units N and 12 (hereinafter simply referred to as reception unit 12). ), FIFO (First-In First-Out) means 1, 13, FIFO means 2, 13,..., FIFO means N · 13 (hereinafter referred to as FIFO means 13), and processing means 14. The communication means 10 receives various data from a web server (not shown) on the Internet, or accesses the web server (information providing device) to set the transfer speed and the type of operating system (OS) software of the web server. I will investigate.
[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 means 12 are activated, and the like. In the present embodiment, the control unit 11 determines a block capacity that is a data capacity of the block and divides the block into blocks.
[0015]
The receiving unit 12 receives the block data divided into blocks by the control unit 11. As shown in FIG. 1, the receiving means 12 is composed of N (N is a natural number of 2 or more) receiving means 1 and 12 to receiving means N and 12. The FIFO means 13 is a memory which exists corresponding to each of the N receiving means 12 and sequentially stores the data received by the receiving means 12 and sequentially outputs the previously stored data. The FIFO means 13 is composed of N FIFO1 · 13 to FIFOON · 13 as shown in FIG.
[0016]
The processing unit 14 collects JPEG spatially compressed image data output from the FIFO unit 13 and performs a decoding process. The display unit 15 is a display device such as a CRT (Cathode Ray Tube) or a liquid crystal display, and displays the image data decoded by the processing unit 14. In this embodiment, the image data processed by the processing unit 14 is displayed on the display unit 15. However, the present invention is not limited to this, and the image data processed by the processing unit 14 is printed by a printing unit such as a printer. It may be a form.
[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 information processing apparatus 1 includes two or more CPUs (central processing units), threads up to the number of CPUs included are processed in parallel instead of time division.
[0018]
The control unit 11 determines the number of receiving units 12 to be actually used and the block capacity of the transfer source file based on external factors. When the block capacity is determined, the control unit 11 determines a divided block from the file size to be transferred. The external factors described above are, for example, the type of OS of the Web server that is the transfer source and the session establishment time. Information regarding the session establishment time can be acquired when accessing the Web server prior to data transfer.
[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 item 31 “Web server OS type” and an item 32 “session establishment time” as external factors. Further, there are an item 33 “number of receiving means” and an item 34 “number of divisions” as division examples, and an item 35 “block capacity” as an example of block capacity.
[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 information processing apparatus 1 according to the present embodiment has the ability to download 1 M (mega) bytes of data (block data) in 5 seconds.
[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 session 3 times. . In this way, increasing the number of sessions reduces the time required for the processing means 14 to start data processing because the one-block download time is shortened. However, if the number of sessions is increased too much, the time required for the session establishment time SB increases. Therefore, it is necessary to balance the information processing apparatus 1 and the download destination Web server in consideration of the communication state and communication capability.
[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 information processing apparatus 1 in the case of the pattern B or the pattern C, for example, when downloading a plurality of compressed image data, the image data that has been downloaded halfway is compressed and decompressed. By displaying in this manner, it is possible to realize a faster image display than before. Further, by detecting the OS of the download destination Web server, the information processing apparatus 1 can cope with an OS that does not permit multi-session download, such as Pattern A. However, in the case of pattern A, the download time of the information processing apparatus 1 is not different from the conventional one.
[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 information processing apparatus 1 in the case of the pattern C illustrated in FIG. 2 will be described, and a specific example of the above-described embodiment will be described.
FIG. 4 shows a specific configuration example of the information processing apparatus 1 in the case of the pattern C shown in FIG. In the present embodiment, as shown in FIG. 4, a process in which a receiving thread 42 as three receiving means 12 downloads a JPEG spatially compressed data file 41 (data length 5.23 Mbytes) on the network in parallel processing. A process in which the decoding thread as the processing unit 14 reads and decodes data downloaded from the plurality of FIFO units 13 will be described.
[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 reception thread # 0 • 42 (reception means 1 • 12) sequentially downloads the first and fourth blocks and inputs them to the FIFOs 1 • 13. Similarly, the reception threads # 1 and 42 (reception means 2 and 12) sequentially download the second and fifth blocks and input them to the FIFOs 2 and 13, respectively. Similarly, the reception thread # 2 • 42 (reception means 3 • 12) sequentially downloads the third and sixth blocks and inputs the data to the FIFOs 3 • 13.
[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 reception threads # 0 and 42, the reception threads # 1 and 42, and the reception threads # 2 and 42 are collectively referred to as a reception thread 42. Further, as described above, the FIFOs 1 and 13, the FIFOs 2 and 13, and the FIFOs 3 and 13 are collectively used as the FIFO unit 13.
[0036]
Next, when downloading, the reception thread 42 can instruct the Web server from which byte of the compressed file (data file 41) to be transferred, and uses this mechanism. When the necessary amount, in this case, 1 Mbyte (however, 0.23 Mbyte in the case of the sixth block) is received, the session is disconnected and no further downloading is performed, so that the transfer source file (data file 41) Can get any part of. That is, the information processing apparatus 1 can transfer a desired block in the transfer source file from the Web server.
[0037]
Further, the process of inserting the data downloaded by the reception thread 42 into the FIFO means 13 is a process of inserting in 128 Kbyte buffer units. The capacity of each FIFO means 13 is configured according to the block size of data to be downloaded (= block capacity of blocks in the data file 41). In this embodiment, since the block size is 1 Mbyte, as shown in FIG. 4, the FIFO means 13 has a configuration including eight 128 Kbyte buffers 13c, and thus has a configuration for 1 byte. . Here, it should be noted that each receiving thread 42 does not download and insert all 1 Mbytes of data into the buffer, but downloads them in units of 128 Kbytes and inserts them into the FIFO means 13.
[0038]
Each FIFO means 13 stores a written position variable wrPosition in the variable storage area 13d and indicates how many buffers 13c have been written in each FIFO means 13. The written position variable wrPosition is a number starting from 0, and when it is incremented by 1, it is the buffer number of the buffer 13c (1 to 8 in this embodiment). That is, since there are eight buffers 13c, when the writing to the eighth buffer 13c of the FIFO means 13 is completed, the written position variable wrPosition = 7. Further, the writing to the buffer 13c exceeding the eighth one is performed again from the top buffer 13c on the assumption that the data has already been taken out from the buffer 13c. In this case, the written position variable wrPosition can be discriminated whether or not the writing is performed for the second time (or more times) by indicating the number after 8 as a number.
[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 FIFOs 2 and 13 and FIFOs 3 and 13 are written to the fifth buffer 13c for the first time and written to the fourth buffer 13c for the first time, the written position variable wrPosition is written. = 3.
[0040]
In the present embodiment, the decode thread 44 extracts data from the FIFO means 13. The decode thread 44 (the processing means 14 in FIG. 1) sequentially retrieves received data 1M at a time, FIFO1 · 13 → FIFO2 · 13 → FIFO3 · 13⇒FIFO1 · 13⇒FIFO2 · 13⇒FIFO3 · 13⇒. At the time of extraction, a maximum of 128 Kbytes of buffer unit is extracted, and a maximum of eight are extracted from each FIFO means 13. By this extraction, the decode thread 44 can decode the data in the same configuration as the file configuration order in the Web server on the network side.
[0041]
The position variable rdPosition stored in the variable storage area 43 indicates how many of the buffers 13c in the FIFO means 13 have been read out. One variable storage area 43 is provided for all the three FIFO units 13 described above. The position variable rdPosition is recorded with a number starting from 0. That is, as shown in FIG. 4, when the decode thread 44 is reading the fifth buffer 13c of the FIFOs 1 and 13, since the fourth buffer has been read, the position variable rdPosition = 3 is stored. ing.
[0042]
In FIG. 4, first, data starts to be accumulated in the FIFOs 1 and 13, and the decode thread 44 takes it out. In the meantime, data starts to be accumulated in the reception threads # 1 and 42 and the reception threads # 2 and 42 by time-division parallel processing. The time-series parallel processing here refers to a write waiting time that occurs when the reception thread # 1 • 42 sequentially downloads the second block of the data file 41 and writes the data to the first buffer 13c of the FIFO2 • 13. , The receiving thread # 2 • 43 sequentially downloads the third block of the data file 41 and writes the data to the first buffer 13c of the FIFO 3 • 13. Here, when all the data is read from a certain buffer 13c, it is not necessary to hold the data in the buffer 13c anymore, so that the buffer 13c is released. Further, the reception thread 42 overwrites the newly received data in the released buffer 13c.
[0043]
Here, description will be made with attention paid to the reception threads # 0 and 42 and FIFOs 1 and 13 shown in FIG. Since the FIFOs 1 and 13 in FIG. 4 have been read up to the fourth buffer 13c from the top, the first to fourth buffers 13c have been released. As a result, the reception thread # 0 • 42 performs the second writing to the first and second buffers 13c. That is, the reception thread # 0 • 42 starts reading data from the data file 41 on the Web server side after the 4M byte. As shown in FIG. 4, the reception threads # 0 and 42 have already received data from 4 M bytes to 128 K bytes, and have already been recorded in the top buffer of the FIFOs 1 and 13. In addition, the receiving thread # 0 • 42 is currently downloading 4M and 128K byte and subsequent data and recording it in the second buffer 13c of the FIFO1 • 13.
[0044]
As described above, since the newly received data is accumulated in the other FIFO unit 13 while the decode thread 44 is reading data from one FIFO unit 13, the information processing apparatus 1 waits for reception. Data can be received without time. That is, the data received by the receiving thread 42 and inserted into the FIFO means 13 is sequentially decoded by the decoding thread 44 in the order of FIFO1 · 13⇒FIFO2 · 13⇒FIFO3 · 13⇒FIFO1 · 13⇒FIFO2 · 13⇒FIFO3 · 13⇒. It can be said that there is a high possibility of reading. As a result, the decode thread 44 can perform high-speed decode processing.
[0045]
The maximum data storage size of each of the FIFOs 1 and 13, the FIFOs 2 and 13, and the FIFOs 3 and 13 is 1 Mbyte, and is configured according to the block size received by the reception thread 42. As a result, the decoding processing speed in the decoding thread 44 catches up with the receiving speed by the reception thread 42, so that it is difficult to wait for reception from the FIFO means 13 for data reception.
[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 reception thread 42, the following problems may occur. For example, when the reception thread 42 inserts reception data into the FIFO means 13 in units of the storage size of the 128 Kbyte buffer 13c, if the decoding process of the decode thread 44 is slow, the storage capacity of the FIFO means 13 is full (maximum storage capacity). A state in which the data to be stored is stored), and there is a waste that the received data cannot be inserted.
[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 reception thread 42, the following problems may occur. For example, when the receiving thread 42 inserts the received data into the FIFO means 13, the receiving thread 42 inserts the data after the 4M byte of the data file 41 to be downloaded into the FIFO data storage area larger than the received block size. However, for the decoding thread 44, the data required from 1M to 2M is necessary after the data of 1M bytes from the beginning, and the data after the 4M bytes is not required immediately. , Some waste. For this reason, it is optimal that the maximum data storage size of the FIFO means 13 is configured in accordance with the block size received by the reception thread 42.
[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 write permission semaphore 13a and a read permission semaphore 13b. The write permission semaphore 13a and the read permission semaphore 13b are counting semaphores and are used for writing / reading control to the buffer 13c of the FIFO means 13.
[0049]
The initial count value of the write enable semaphore 13a is 8, which is the same as the number of buffers 13c, and the initial count value of the read enable semaphore 13b is 0. When the receiving thread 42 acquires a semaphore, the count value of the write permission semaphore 13a decreases by one, and when it becomes 0, the semaphore cannot be acquired. As a result, a wait occurs until the reception thread 42 releases the semaphore of the write permission semaphore 13a, and exclusive control is achieved. When the reception thread 42 releases the semaphore of the write permission semaphore 13a, the count value of the read permission semaphore 13b increases by one.
[0050]
Next, a process in which the reception thread 42 writes data to the FIFO unit 13 will be described.
FIG. 5 is a flowchart showing a process in which the reception thread 42 writes data to the FIFO unit 13. First, prior to the data writing process, the reception thread 42 establishes a session with the Web server via the network in order to receive 1 Mbyte of data from the Web server. After the session is established, it is possible to specify from which part of the data file 41 on the Web server side the data file 41 is read.
[0051]
Next, in step 401, when a session with the Web server is established, the reception thread 42 calculates which buffer 13c is to be written with data to be downloaded by referring to the written position variable wrPosition, and applies. The buffer 13c is searched. Specifically, the reception thread 42 calculates the buffer number from the head of the FIFO means 13 by the following equation 1 using the written position variable wrPosition of each FIFO means 13.
Buffer number = (wrPosition + 1)% 8 Equation 1
In Equation 1, “%” is an operator that indicates the remainder when X is divided by Y when X% Y is set for arbitrary variables X and Y, for example. Thereby, the reception thread 42 searches the buffer 13c having the calculated buffer number.
[0052]
Next, in step 402, the reception thread 42 acquires the write permission semaphore 13a in order to determine whether or not the retrieved buffer 13c is free. That is, if the write permission semaphore 13a can be acquired, the buffer 13c is free and can be used. If the write permission semaphore 13a cannot be acquired, the read task cannot read the FIFO means 13, and the buffer 13c of the FIFO means 13 is full of data. At this time, the receiving thread 42 waits for a semaphore.
[0053]
Next, in step 403, the reception thread 42 writes data to the FIFO unit 13. Specifically, since the initial value of the write permission semaphore 13a is 8, the reception thread 42 can write at least eight buffers 13c without waiting for the semaphore. That is, the receiving thread 42 can acquire a semaphore 8 times, and writes a maximum of 128 Kbytes of data to the buffer 13c from the network. After the completion of writing, the startPos variable 13e in the buffer management table shown in FIG. 4 indicates the number of bytes from which data is written when the beginning of the file is 0 bytes. The endPos variable 13f describes how many bytes of data have been written.
[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 symbols 13e and 13f for the sake of clarity, but as is apparent from FIG. Each of the other seven buffers 13c has a startPos variable 13e and an endPos variable 13f.
[0055]
Next, in step 404, the reception thread 42 increments the written position variable wrPosition when the writing of data to the buffer 13c is completed. Next, in step 405, the reception thread 42 releases the read permission semaphore 13b. If the read permission semaphore 13b is released, the semaphore of the read permission semaphore 13b can be acquired when the decode thread 44 described below is waiting to be read, and can be read immediately.
[0056]
Next, a process in which the decode thread 44 reads and decodes data from the buffer 13c will be described.
FIG. 6 is a flowchart showing a process in which the decode thread 44 reads and decodes data from the buffer 13c. Here, since the data read from the buffer 13c is a part of an image file subjected to JPEG spatial compression, it is necessary to sequentially decode the data from the beginning of the file. Accordingly, in step 501, the decode thread 44 searches the buffer 13c to be read with reference to the position variable rdPosition.
[0057]
Specifically, the decode thread 44 calculates a FIFO number indicating which FIFO unit 13 is read using the following Expression 2, based on the position variable rdPosition indicating the buffer number that has already been read.
FIFO number = ((rdPosition + 1) / 8)% 3 Equation 2
However, “%” in Equation 2 is the same as the operator shown in Equation 1 above.
Next, the decode thread 44 uses the following Expression 3 to determine the read buffer number indicating which data is read from which buffer 13c in the buffer group (eight buffers 13c) in the FIFO means 13 specified by the FIFO number. calculate.
Read buffer number = (rdPosition + 1)% 8 Equation 3
However, “%” in Expression 3 is the same as the operator shown in Expression 1 described above.
Based on the FIFO number and the buffer number obtained by the above formulas 2 and 3, the decode thread 44 searches the buffer 13c.
[0058]
Next, in step 502, the decode thread 44 obtains the semaphore of the read permission semaphore 13b of the FIFO means 13 having the searched buffer 13c as to whether or not data can be read from the searched buffer 13c. judge. Here, when the decode thread 44 can acquire the semaphore of the read permission semaphore 13b, since the data has already been written in the buffer 13c, the data can be read from the buffer 13c. If the decode thread 44 cannot acquire the semaphore of the read permission semaphore 13b, the data has not been written in the buffer 13c and the read is not ready, so that waiting for the semaphore occurs.
[0059]
If the semaphore can be acquired, the process advances to step 503, and the decode thread 44 determines whether or not the data in the buffer 13c to be read is data necessary for the decoding process. Specifically, when data is decoded, all the data is necessary, but if all of the file formats that do not need to be read in the header of the data happen to be the data of the target buffer 13c (in step 503) In No), the decode thread 44 skips reading of data from the buffer 13 c and proceeds to Step 505. If the data in the target buffer 13c is necessary for decoding (Yes in step 503), the process proceeds to step 504, where the decode thread 44 reads the data from the buffer 13c and uses it for the decoding process.
[0060]
Next, in step 505, the decode thread 44 increments rdPosition for reading the next data after using the data for the decoding process. Next, in step 506, the decode thread 44 releases the write permission semaphore 13a so that the reception thread 42 can reuse the buffer 13c currently handled as an unnecessary buffer 13c. If the write permission semaphore 13a is released, the reception thread 42 can write data as described above. If further data decoding processing is necessary, the decoding thread 44 performs steps 501 to 506 shown in FIG. 6 again.
[0061]
As described above, in the information processing apparatus 1 according to the present embodiment, data in the Web server can be received in parallel at high speed and processed from the top without changing the data order. As a result, the information processing apparatus 1 can display an image at a higher speed than the conventional one when downloading, decoding, and displaying the compressed image.
In the above-described embodiment, each process performed by the information processing apparatus 1 has been described as a software process. However, the present invention is not limited to this, and a part or all of each process may be achieved by a hardware process. . Further, although not shown, the information processing apparatus 1 may include an input device such as a mouse or a keyboard.
[0062]
Further, each processing unit of the information processing apparatus 1 illustrated in FIG. 1 may be realized by dedicated hardware, and each processing unit includes a memory and a CPU, and functions of each processing unit. The function may be realized by reading a program for realizing the above into a memory and executing the program.
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 information processing apparatus 1 in the case of the pattern C illustrated in FIG.
FIG. 5 is a flowchart showing a process in which the receiving thread 42 writes data to the FIFO means 13;
FIG. 6 is a flowchart showing a process in which the decode thread 44 reads and decodes data from the buffer 13c.
[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 reception thread # 0, reception thread # 1, reception thread # 2
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に記載の情報処理装置。2. The information processing apparatus according to claim 1, wherein the maximum data amount that can be stored in the plurality of temporary storage units and the data amount of the block data are the same. 前記複数の受信手段は、前記複数のブロックデータの一部を時分割して受信することを特徴とする請求項1または請求項2に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the plurality of receiving units receive a part of the plurality of block data in a time-sharing manner. 前記処理手段は、前記複数の一時記憶手段より時分割で選択的に前記ブロックデータを読み出して処理することを特徴とする請求項1から請求項3のいずれか1項に記載の情報処理装置。4. The information processing apparatus according to claim 1, wherein the processing unit selectively reads out and processes the block data from the plurality of temporary storage units in a time division manner. 5. 前記分割手段は、前記データを分割することによるブロック数が前記複数の受信手段の数より多くなるように分割することを特徴とする請求項1から請求項4のいずれか1項に記載の情報処理装置。5. The information according to claim 1, wherein the dividing unit divides the data so that a number of blocks is larger than a number of the plurality of receiving units. Processing equipment. 前記複数の受信手段の内利用する受信手段の数、前記ブロック数、前記ブロックデータのデータ容量を前記受信手段により受信を開始する前に決定する制御手段を更に具備し、
前記分割手段は、前記制御手段の決定に応じて前記データの分割を行なうことを特徴とする請求項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.
前記制御手段は、前記通信手段が前記ネットワークを介して前記情報提供装置と通信する際の通信速度を基に、前記複数の受信手段の内利用する受信手段の数、前記ブロック数、前記ブロックデータのデータ容量を決定することを特徴とする請求項6に記載の情報処理装置。The control means includes the number of receiving means used among the plurality of receiving means, the number of blocks, and the block data based on a communication speed when the communication means communicates with the information providing apparatus via the network. The information processing apparatus according to claim 6, wherein the data capacity of the information processing apparatus is determined. 前記制御手段は、前記情報提供装置のオペレーティングシステムの種類を基に、前記複数の受信手段の内利用する受信手段の数、前記ブロック数、前記ブロックデータのデータ容量を決定することを特徴とする請求項6または請求項7に記載の情報処理装置。The control means determines the number of receiving means used among the plurality of receiving means, the number of blocks, and the data capacity of the block data based on the type of operating system of the information providing apparatus. The information processing apparatus according to claim 6 or 7. 前記一時記憶手段はFIFOであることを特徴とする請求項1から請求項8のいずれか1項に記載の情報処理装置。The information processing apparatus according to any one of claims 1 to 8, wherein the temporary storage unit is a FIFO. データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置を用いた情報処理方法であって、
前記データを複数のブロックに分割して複数のブロックデータとする第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.
前記複数の一時記憶手段における記憶可能な最大のデータ量と、前記ブロックデータのデータ量とが同じ大きさであることを特徴とする請求項10に記載の情報処理方法。11. The information processing method according to claim 10, wherein the maximum data amount that can be stored in the plurality of temporary storage units and the data amount of the block data are the same. データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記データを複数のブロックに分割して複数のブロックデータとする第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.
前記複数の一時記憶手段における記憶可能な最大のデータ量と、前記ブロックデータのデータ量とが同じ大きさであることを特徴とする請求項12に記載の記録媒体。13. The recording medium according to claim 12, wherein the maximum data amount that can be stored in the plurality of temporary storage units and the data amount of the block data are the same. データを提供する情報提供装置よりネットワークを介して所望のデータを取得する通信手段を備える情報処理装置用のプログラムであって、
前記データを複数のブロックに分割して複数のブロックデータとする第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.
前記複数の一時記憶手段における記憶可能な最大のデータ量と、前記ブロックデータのデータ量とが同じ大きさであることを特徴とする請求項14に記載のプログラム。15. The program according to claim 14, wherein the maximum data amount that can be stored in the plurality of temporary storage units and the data amount of the block data are the same.
JP2003185505A 2003-06-27 2003-06-27 Information processor, information processing method, its recording medium, and its program Pending JP2005018631A (en)

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)

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