JP5444647B2 - データ転送装置、データ転送方法及びデータ転送プログラム - Google Patents

データ転送装置、データ転送方法及びデータ転送プログラム Download PDF

Info

Publication number
JP5444647B2
JP5444647B2 JP2008172626A JP2008172626A JP5444647B2 JP 5444647 B2 JP5444647 B2 JP 5444647B2 JP 2008172626 A JP2008172626 A JP 2008172626A JP 2008172626 A JP2008172626 A JP 2008172626A JP 5444647 B2 JP5444647 B2 JP 5444647B2
Authority
JP
Japan
Prior art keywords
data
encoding
size
block
matrix
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.)
Active
Application number
JP2008172626A
Other languages
English (en)
Other versions
JP2010016484A (ja
Inventor
裕亮 亀山
明久 松園
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008172626A priority Critical patent/JP5444647B2/ja
Priority to US12/493,639 priority patent/US8018967B2/en
Publication of JP2010016484A publication Critical patent/JP2010016484A/ja
Application granted granted Critical
Publication of JP5444647B2 publication Critical patent/JP5444647B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP

Description

本発明は、データ転送装置、データ転送方法及びデータ転送プログラムに係り、特に符号化を行うデータ転送装置、データ転送方法及びデータ転送プログラムに関する。
近年、IPネットワーク等のネットワーク経由で画像や映像などのデータを転送することがよく行われるようになっている。例えば遠隔地のクライアントからネットワーク経由でサーバの画面操作を行うASP(Active Server Pages)システムは、ネットワーク経由で画面データを転送している。
ネットワーク経由でデータを転送する場合は、データの圧縮,データの符号化,データの復号,再送等の技術が一般的に利用されている(例えば特許文献1〜4参照)。
特開平10−285205号公報 特開2007−274309号公報 特開平10−65675号公報 特開平11−17737号公報
例えばIPネットワークにおけるデータ転送では、欠損部分の再送などの機能を持ち信頼性の高いTCPが用いられることが多い。しかし、TCPを用いるデータ転送は応答処理などのオーバーヘッドがあるため転送速度が比較的遅い。特にネットワーク間の距離を表わすRTT(Round Trip Time) の値が大きくなるほど、TCPを用いるデータ転送は低速になりリアルタイム性も低くなる。
これに対して、信頼性が低くても問題のない音声のストリーミングなどのデータ転送の場合には、RTTの影響を受けにくいUDPを用いることによりリアルタイム性を高くしている。
ASPシステムはリアルタイム性が高いことが必要であるが、信頼性が低いと通信の結果(画面)が変わってしまうためTCPが用いられている。その為、ASPシステムでは前述のようにRTTの影響を受け、リアルタイム性が低くなる。
リアルタイム性が低くなるという問題を解決する方法としては、データ転送をUDPで行い、データ転送前、データに冗長度をつけることで欠損が発生しても、その欠損部分を訂正して信頼性を高める手法がある。なお、データを符号化する為には一定のデータサイズが必要となる。
したがって、データ転送をUDPで行い、データ転送前、データに冗長度をつけることで欠損が発生しても、その欠損部分を訂正して信頼性を高める手法は、一定量のデータが常に流れてくるシステムにおいて問題ない。
しかしながら、データ転送をUDPで行い、データ転送前、データに冗長度をつけることで欠損が発生しても、その欠損部分を訂正して信頼性を高める手法は、ASPシステムのように時間によって流れてくるデータの量が変化する場合、データを符号化する為に必要な一定のデータサイズとなるまで待ち時間が発生するという問題があった。
本発明の一実施形態は、上記の点に鑑みなされたもので、リアルタイム性を損なわずにデータロス対策と高速化の為のデータ符号化とを行うデータ転送装置、データ転送方法及びデータ転送プログラムを提供することを目的とする。
上記課題を解決するため、本発明の一実施形態は、データを転送するデータ転送装置であって、転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、前記複数種類のデータサイズのブロック毎に符号化行列を格納する符号化行列格納手段と、前記データを蓄積するデータ蓄積手段に蓄積されたデータのデータサイズに基づき、前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定手段と、決定した前記ブロックに応じた前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータを、決定した前記ブロックのデータサイズ毎に符号化する符号化手段と、符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成手段と、生成した前記パケットを送信する送信手段とを有し、前記符号化サイズ決定手段は、データ蓄積手段に蓄積されたデータよりもデータサイズが小さくなる前記ブロックと、該ブロックのデータサイズを所定の割合だけ小さくした縮小データサイズと前記データ蓄積手段に蓄積されたデータのデータサイズとを比較して前記データ蓄積手段に蓄積されたデータのデータサイズよりも縮小データサイズが小さくなる前記ブロックとのうち、データサイズが最も大きい前記ブロックを決定し、前記縮小データサイズの前記ブロックを決定した場合、前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックの縮小データサイズ分、前記データ蓄積手段から前記データを取得し、前記データ蓄積手段から取得した前記データにダミーデータを追加し、取得した前記符号化行列を用いて前記データ蓄積手段から取得してダミーデータを追加した前記データを符号化する。
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
上述の如く、本発明の一実施形態によれば、リアルタイム性を損なわずにデータロス対策と高速化の為のデータ符号化とを行うデータ転送装置、データ転送方法及びデータ転送プログラムを提供できる。
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例ではデータを転送するデータ転送システムとしてASPシステムを例に説明する。
図1はASPシステムの一例の構成図である。ASPシステム1は、ASPサーバ10と、クライアント20と、データ転送装置30と、データ受信装置40と、ネットワーク50とを有する構成である。ASPシステム1は、遠隔地のクライアント20からネットワーク50経由でASPサーバ10の画面操作を行うものである。
ASPサーバ10は、データ転送装置30と、データ受信装置40と、ネットワーク50とを経由して画面データをクライアント20に転送している。ASPサーバ10がクライアント20に転送している画面データは、単位時間ごとに見た場合、転送するデータサイズが一定でなく、データサイズの変動が大きい。なお、後述するように、データ転送装置30は画面データを転送する際、リアルタイム性を損なわずに、データロス対策と高速化の為のデータ符号化とを行う。
データ転送装置30は、メモリ31と、タイマー32と、符号化装置33と、送信装置34と、受信装置35と、符号化行列データ36とを有する構成である。データ受信装置40は、受信装置41と、送信装置42と、復号装置43とを有する構成である。ASPサーバ10はクライアント20に転送する画面データ(以下、単にデータという)をメモリ31に順次、蓄積していく。
データ転送装置30はメモリ31に蓄積されたデータを、後述のようにデータ受信装置40へ転送する。データ受信装置40はデータ転送装置30から転送されたデータをクライアント20へ後述のように転送する。なお、データ転送装置30及びデータ受信装置40の詳細は後述する。
図2はデータ転送装置の一例のハードウェア構成図である。図2のデータ転送装置30はコンピュータ及びデータ転送プログラムによりデータ転送装置30を実現する例を表している。
データ転送装置30は、それぞれバスBで相互に接続されている入力装置61,出力装置62,ドライブ装置63,補助記憶装置64,主記憶装置65,演算処理装置66及びインターフェース装置67を有する構成である。なお、データ転送装置30は入力装置61及び出力装置62の一方又は両方を有さない構成も可能である。
入力装置61はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置62はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置67は、モデム,ルータ,LANカードなどで構成されており、ネットワーク50に接続する為に用いられる。
データ転送プログラムは、データ転送装置30を制御する各種プログラムの少なくとも一部である。データ転送プログラムは例えば記録媒体68の配布やネットワーク50からのダウンロードなどによって提供される。データ転送プログラムを記録した記録媒体68は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、データ転送プログラムを記録した記録媒体68がドライブ装置63にセットされると、データ転送プログラムは記録媒体68からドライブ装置63を介して補助記憶装置64にインストールされる。ネットワーク50からダウンロードされたデータ転送プログラムは、インターフェース装置67を介して補助記憶装置64にインストールされる。
補助記憶装置64はインストールされたデータ転送プログラムを格納すると共に、必要なファイル,データ等を格納する。主記憶装置65は、コンピュータの起動時などに補助記憶装置64からデータ転送プログラムを読み出して格納する。そして、演算処理装置66は主記憶装置65に格納されたデータ転送プログラムに従って、後述するような各種処理を実現している。
図3はデータ転送装置のメイン処理手順を表した一例のフローチャートである。例えばデータ転送装置30が起動されると、図3のフローチャートに示すメイン処理手順が開始される。
ステップS1に進み、符号化装置33は「k」の値を0に設定する。ステップS2に進み、符号化装置33は送信パケットのパケットサイズ(例えば1000Byte)を決定する。なお、パケットサイズは、送信パケットのデータサイズではなく、送信パケットの送信データ部分のデータサイズ(符号化の単位:サブデータのデータサイズ)を表す。
ステップS3に進み、符号化装置33は、利用する「n」の値(例えばn=8,128及び1024)を複数個、決定しておく。符号化装置33は、符号化に必要なデータサイズ(ブロックのデータサイズ)を「n*パケットサイズ」として決定する。例えばnの値が8,128,1024のとき、符号化に必要なブロックのデータサイズは、それぞれ8KB,128KB,1024KBとなる。以下では、符号化に必要なブロックのデータサイズが、8KB,128KB,1024KBである例を説明する。
ステップS4に進み、符号化装置33は、後述するタイマー処理をタイマー32に開始させる。ステップS5に進み、メモリ31はクライアント20に転送するデータがASPサーバ10によって順次、蓄積される。ステップS6に進み、符号化装置33はメモリ31に蓄積されたデータのデータサイズが、ステップS3で決定したブロックのデータサイズのうち最も小さいデータサイズ(8KB)よりも大きいかを判定する。
メモリ31に蓄積されたデータのデータサイズが、ステップS3で決定したブロックのデータサイズのうち最も小さいデータサイズよりも大きいと判定すると、符号化装置33はステップS7に進み、後述する符号化サイズ決定処理を行ったあと、ステップS5の処理に戻る。
メモリ31に蓄積されたデータのデータサイズが、ステップS3で決定したブロックのデータサイズのうち最も小さいデータサイズよりも大きくないと判定すると、符号化装置33はステップS5の処理に戻る。
図4はタイマー処理手順を表した一例のフローチャートである。タイマー32は前回の送信パケットが送信されてから又はデータ転送装置30の電源が投入されてから経過した時間(無送信時間)を計時している。ステップS11に進み、タイマー32は前回の送信パケットが送信されてから又はデータ転送装置30の電源が投入されてから規定の時間が経過したかを判定する。
前回の送信パケットが送信されてから又はデータ転送装置30の電源が投入されてから規定の時間が経過していなければ、タイマー32はステップS11の処理に戻る。前回の送信パケットが送信されてから又はデータ転送装置30の電源が投入されてから規定の時間が経過していれば、タイマー32はステップS12に進み、後述する符号化サイズ決定処理を符号化装置33に指示したあと、ステップS11の処理に戻る。
図5〜図8は符号化サイズ決定処理手順を表した一例のフローチャートである。符号化装置33はステップS21に進み、メモリ31に蓄積されたデータのデータ量(データサイズ)が、ステップS3で決定したブロックのデータサイズのうち最も大きいデータサイズ(1024KB)よりも大きいかを判定する。
メモリ31に蓄積されたデータのデータ量が、1024KBよりも大きければ、符号化装置33はステップS22に進み、「n」の値を1024に決定し、メモリ31に蓄積されたデータの先頭から1024KBを「k」番目のブロックとする。
ステップS23に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS24に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から1024KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS25に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS21の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が、1024KBよりも大きくなければステップS26に進み、メモリ31に蓄積されているデータのデータ量が、912KB(1024KBの9割のデータサイズ)よりも大きいかを判定する。
メモリ31に蓄積されているデータのデータ量が、912KBよりも大きければ、符号化装置33はステップS27に進み、「n」の値を1024に決定し、メモリ31に蓄積されているデータの先頭から912KBを「k」番目のブロックとする。
ステップS28に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS29に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から912KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS30に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS26の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が、912KBよりも大きくなければステップS31に進み、メモリ31に蓄積されているデータのデータ量が、ステップS3で決定したブロックのデータサイズのうち、2番目に大きいデータサイズ(128KB)よりも大きいかを判定する。
メモリ31に蓄積されているデータのデータ量が、128KBよりも大きければ、符号化装置33はステップS32に進み、「n」の値を128に決定し、メモリ31に蓄積されているデータの先頭から128KBを「k」番目のブロックとする。
ステップS33に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS34に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から128KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS35に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS31の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が、128KBよりも大きくなければステップS36に進み、メモリ31に蓄積されているデータのデータ量が、115KB(128KBの9割のデータサイズ)よりも大きいかを判定する。
メモリ31に蓄積されているデータのデータ量が、115KBよりも大きければ、符号化装置33はステップS37に進み、「n」の値を128に決定し、メモリ31に蓄積されているデータの先頭から115KBを「k」番目のブロックとする。
ステップS38に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS39に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から115KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS40に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS36の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が、115KBよりも大きくなければステップS41に進み、メモリ31に蓄積されているデータのデータ量が、ステップS3で決定したブロックのデータサイズのうち、3番目に大きいデータサイズ(8KB)よりも大きいかを判定する。メモリ31に蓄積されているデータのデータ量が、8KBよりも大きければ、符号化装置33はステップS42に進み、「n」の値を8に決定し、メモリ31に蓄積されているデータの先頭から8KBを「k」番目のブロックとする。
ステップS43に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS44に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から8KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS45に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS41の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が、8KBよりも大きくなければステップS46に進み、メモリ31に蓄積されているデータのデータ量が7KB(8KBの9割のデータサイズ)よりも大きいかを判定する。メモリ31に蓄積されているデータのデータ量が、7KBよりも大きければ、符号化装置33はステップS47に進み、「n」の値を8に決定し、メモリ31に蓄積されているデータの先頭から7KBを「k」番目のブロックとする。
ステップS48に進み、符号化装置33は「k」番目のブロックの符号化と送信処理を後述のように行う。ステップS49に進み、符号化装置33はメモリ31に蓄積されているデータの先頭から7KBを削除する。即ち、「k」番目のブロックとされたデータをメモリ31から削除する。ステップS50に進み、符号化装置33は「k」の値をインクリメントしたあと、ステップS46の処理に戻る。
一方、符号化装置33はメモリ31に蓄積されたデータのデータ量が7KBよりも大きくなければステップS51に進み、メモリ31にデータが残っているかを判定する。メモリ31にデータが残っていれば、符号化装置33はステップS52に進み、メモリ31に残っているデータを「k」番目のブロックとする。
ステップS53に進み、符号化装置33は「k」番目のブロックを符号化せず、送信処理を後述のように行う。ステップS54に進み、符号化装置33は「k」の値をインクリメントする。そして、ステップS55に進み、符号化装置33はメモリ31に残っているデータを削除する。即ち、「k」番目のブロックとされたメモリ31に残っていたデータをメモリ31から削除したあと、符号化サイズ決定処理を終了する。なお、ステップS51においてメモリ31にデータが残っていなければ、符号化装置33は、そのまま符号化サイズ決定処理を終了する。
図9はブロックの符号化と送信処理の手順を表した一例のフローチャートである。図9では「n」の値を符号化レベルと呼んでいる。ステップS61に進み、符号化装置33はブロックのデータサイズが符号化レベルn(1024、128、8)に必要なデータサイズ(1024KB、128KB、8KB)よりも小さい場合、末尾にダミーデータを追加する。
ステップS61の処理は例えば図5〜図8の符号化サイズ決定処理の場合、1024KB,128KB,8KBの9割のデータサイズである912KB,115KB,7KBのデータブロックにダミーデータを追加して1024KB,128KB,8KBのブロックとするものである。
ステップS62に進み、符号化装置33は符号化レベルn(1024、128、8)のデータブロックをn(1024、128、8)個のサブデータに分割する。それぞれのサブデータのデータサイズは前述のパケットサイズとなる。
ステップS63に進み、符号化装置33は符号化レベルnの行列式(符号化行列データ36)を取得する。ここでは、符号化レベルnの行列式が「n×m」の行列式であるとして説明する。
ステップS64に進み、符号化装置33はステップS63で取得した行列式からi行目の行列を取り出す。「i」の初期値は「1」であるとする。ステップS64で取り出される行列は、例えば符号化レベルnが「8」である場合、8つの要素から成る。なお、各要素は「0」又は「1」の値を有する。各要素はサブデータと対応付けられている。ステップS64で取り出される行列は、「1」の値を有する各要素に対応するサブデータ同士の排他的論理和を計算することを表している。
ステップS65に進み、符号化装置33はステップS64で取り出した行列の「1」の値を有する各要素に対応したサブデータ同士の排他的論理和を計算して、i個目の符号化データとする。
ステップS66に進み、符号化装置33はi個目の符号化データにステップS64で取り出された行列を符号化情報として付け加えた送信パケットを作成する。図10は送信パケットの一例の構成図である。図10に示した送信パケットは、ブロック番号、ブロックサイズ、符号化情報、符号化データを有するように構成される。
ブロック番号は「k」の値となる。ブロックサイズは符号化データからダミーデータを除いたデータサイズとなる。符号化情報はステップS64で取り出した行列となる。符号化データはステップS64で取り出した行列の「1」の値を有する各要素に対応したサブデータ同士の排他的論理和を計算したものである。
ステップS67に進み、符号化装置33は送信パケットを送信装置34にUDPで送信させる。ステップS68に進み、符号化装置33はタイマー32をリセットしてステップS64に戻る。なお、「i」の値はステップS64〜S68の処理を1回実行する度に1ずつインクリメントされる。ステップS64〜S68の処理は「i」の値が「m」になるまで繰り返し実行される。
ここでは、図9に示したブロックの符号化と送信処理について図11を参照しつつ説明する。図11はブロックの符号化と送信処理の一例のイメージ図である。図11では説明を容易とするため、符号化レベルnが「4」である例を表している。
符号化装置33はブロック100のデータサイズが符号化レベルn=4に必要なデータサイズ4KBよりも小さい場合、末尾にダミーデータ101を追加して4KBのブロック100とする。符号化装置33は符号化レベルn=4のデータブロックをn=4個のサブデータA〜Dに分割する。サブデータA〜Dのデータサイズは、前述のパケットサイズとなる。
符号化装置33は、符号化レベルn=4の行列式102を取得する。ここでは、符号化レベルn=4の行列式が「4×5」の行列式102であるとして説明する。符号化装置33は取得した行列式102から1行目の行列「1100」を取り出す。なお、行列式102の行の各要素は、左から順番にサブデータA〜Dと対応付けられている。
1行目の行列「1100」は、「1」の値を有する各要素に対応するサブデータA及びBの排他的論理和を計算することを表している。符号化装置33は、計算したサブデータA及びBの排他的論理和である符号化データ103と、行列式102から取り出した1行目の行列104とを有するように送信パケット105を作成する。以下、同様にして、符号化装置33は2行目〜5行目までの行列を順番に取り出し、送信パケット106〜109を作成する。
図12は符号化しないで送信する処理の手順を表した一例のフローチャートである。ステップS71に進み、符号化装置33はブロックのデータサイズをパケットサイズ毎に分割する。例えばブロックのデータサイズが2001Byte、パケットサイズが1000Byteの場合、符号化装置33は1000Byteのサブデータ2個と、1Byteのサブデータ1個とに分割する。
ステップS72に進み、符号化装置33は分割したサブデータのうち、パケットサイズに満たないサブデータの最後の端数の部分をダミーデータで埋め、パケットサイズのサブデータとする。例えばブロックのデータサイズが2001Byte、パケットサイズが1000Byteの場合、符号化装置33は1Byteのサブデータの末尾に、999Byteのダミーデータを追加し、パケットサイズのサブデータとする。
ステップS73に進み、符号化装置33は単位行列式を取得する。単位行列式はi行目の行列の要素のうち、i番目の要素の値が「1」であり、それ以外の要素の値が「0」となるものである。
i番目のサブデータであれば、符号化装置33はi番目の要素の値が「1」、それ以外の要素の値が「0」である行列を符号化情報とし、その符号化情報をi番目のサブデータに付け加えた図10のような送信パケットを作成する。
ステップS74に進み、符号化装置33は送信パケットを送信装置34にTCPあるいはUDPで送信させる。ステップS75に進み、符号化装置33はタイマー32をリセットしてステップS73に戻る。ステップS73〜S75の処理は作成した送信パケットが無くなるまで繰り返し実行される。
ここでは、図12に示した符号化しないで送信する処理について図13を参照しつつ説明する。図13は符号化しないで送信する処理の一例のイメージ図である。図13では説明を容易とする為、ブロックが4つのサブデータA〜Dに分割された例を表している。
符号化装置33はブロック110をサブデータA〜Dに分割し、分割したサブデータのうち、パケットサイズに満たないサブデータDの最後の端数の部分をダミーデータ111で埋めてパケットサイズのサブデータA〜Dとする。
符号化装置33は、単位行列式112を取得する。符号化装置33は取得した単位行列式112から1行目の行列「1000」を取り出す。なお、単位行列式112の行の各要素は、左から順番にサブデータA〜Dと対応付けられている。
1番目のサブデータAであれば、符号化装置33は1行目の行列「1000」を符号化情報114とし、その符号化情報114を1番目のサブデータ113に付け加えた送信パケット115を作成する。以下、同様にして、符号化装置33は2行目〜4行目までの行列を順番に取り出し、送信パケット116〜118を作成する。
次に、データ受信装置40の処理手順について説明する。データ受信装置40の復号装置43はデータ転送装置30からの送信パケットを受信装置41経由で受信し、復号処理を行う。図14は復号装置の復号処理を表した一例のフローチャートである。
ステップS81に進み、復号装置43はデータ転送装置30から転送された図10の送信パケットを受信装置41経由で受信する。ステップS82に進み、復号装置43は送信パケットに含まれる符号化情報の先頭からi番目に「1」がある場合、復号スタックのi番目に、受信した送信パケットの符号化情報及び符号化データを保存する。
ステップS83に進み、復号装置43は復号情報のi番目のビットを「1」にする。復号情報はiビットのビット列であり、そのビット列の初期値を「0」とする。ステップS84に進み、復号装置43は復号情報のビット列を後述のACKとして送信装置42経由でデータ転送装置30に送信する。
ステップS85に進み、復号装置43は既に復号スタックのi番目に、符号化情報及び符号化データが保存されている場合、既に復号スタックのi番目に保存されている符号化情報及び符号化データと、新たに受信した送信パケットの符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。
排他的論理和により計算された符号化情報の先頭からi番目に「1」がある場合、復号装置43は、復号スタックのi番目に、排他的論理和により計算された符号化情報及び符号化データを保存する。なお、復号装置43は既に復号スタックのi番目に、符号化情報及び符号化データが保存されている場合、既に復号スタックのi番目に保存されている符号化情報及び符号化データと排他的論理和により計算された符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。この処理は繰り返し行われる。
ステップS86に進み、復号装置43は復号情報のビット列が全て「1」でなければステップS81の処理に戻る。復号情報のビット列が全て「1」であれば、復号装置43はステップS87に進む。ステップS87では、復号装置43が、i番目の符号化情報のi番目ビットだけが「1」になるように、i番目の符号化情報及び符号化データと他の符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。即ち、ガウス消去法を行う。ステップS88に進み、復号スタックの1〜i番目に保存されている符号化データを合成することで、メモリ31に蓄積されていたデータを復号できる。
ここでは、図14に示した復号処理について図15〜図18を参照しつつ説明する。図15〜図18は復号処理の一例のイメージ図である。図15〜図18では説明を容易とするため、符号化レベルnが「4」である例を表している。
復号装置43はデータ転送装置30から転送された送信パケット121を受信装置41経由で受信する。送信パケット121には、符号化情報「1100」が含まれる。復号装置43は符号化情報「1100」の先頭から1番目に「1」があるため、復号スタック122の1番目に、送信パケット121の符号化情報及び符号化データを保存する。復号装置43は復号情報123の1番目のビットを「1」にする。
送信パケット121の次にデータ転送装置30から転送された送信パケットはロスしたものとする。復号装置43はデータ転送装置30から転送された送信パケット124を受信装置41経由で受信する。送信パケット124には、符号化情報「0010」が含まれる。復号装置43は符号化情報「0010」の先頭から3番目に「1」があるため、復号スタック122の3番目に、送信パケット124の符号化情報及び符号化データを保存する。復号装置43は復号情報123の3番目のビットを「1」にする。
復号装置43はデータ転送装置30から転送された送信パケット125を受信装置41経由で受信する。送信パケット125には、符号化情報「1001」が含まれる。復号装置43は符号化情報「1001」の先頭から1番目に「1」があるが、復号スタック122の1番目に、符号化情報及び符号化データが既に保存されているため、送信パケット125の符号化情報及び符号化データと、復号スタック122の1番目の符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。
復号装置43は、排他的論理和の計算により符号化情報126及び符号化データ127を得る。復号装置43は排他的論理和により計算された符号化情報126「0101」の先頭から2番目に「1」があるため、復号スタック122の2番目に、排他的論理和により計算された符号化情報126及び符号化データ127を保存する。復号装置43は復号情報123の2番目のビットを「1」にする。
復号装置43はデータ転送装置30から転送された送信パケット128を受信装置41経由で受信する。送信パケット128には、符号化情報「1111」が含まれる。復号装置43は符号化情報「1111」の先頭から1番目に「1」があるが、復号スタック122の1番目に、符号化情報及び符号化データが既に保存されているため、送信パケット128の符号化情報及び符号化データと、復号スタック122の1番目の符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。
復号装置43は、排他的論理和の計算により符号化情報129及び符号化データ130を得る。復号装置43は排他的論理和により計算された符号化情報129「0011」の先頭から3番目に「1」があるが、復号スタック122の3番目に、符号化情報及び符号化データが既に保存されているため、符号化情報129及び符号化データ130と、復号スタック122の3番目の符号化情報及び符号化データとのそれぞれについて排他的論理和を計算する。
復号装置43は、排他的論理和の計算により符号化情報131及び符号化データ132を得る。復号装置43は排他的論理和により計算された符号化情報131「0001」の先頭から4番目に「1」があるため、復号スタック122の4番目に、排他的論理和により計算された符号化情報131及び符号化データ132を保存する。復号装置43は復号情報123の4番目のビットを「1」にする。なお、図17の下段に示した復号スタック122は保存された符号化情報が上三角行列となっており、復号成功を表している。
復号装置43は復号情報123のビット列が全て「1」になった為、復号スタック122の1番目の符号化情報の1番目ビット、2番目の符号化情報の2番目ビット、3番目の符号化情報の3番目ビット、4番目の符号化情報の4番目ビットだけが「1」になるように排他的論理和を計算する。
例えば図18の例では復号スタック122の2番目と4番目とで排他的論理和を計算することで2番目の符号化情報が「0100」となる。また、例えば図18の例では2番目と4番目とで排他的論理和を計算したあと、復号スタック122の1番目と2番目とで排他的論理和を計算することで1番目の符号化情報が「1000」となる。
復号装置43は図18の下段に示した復号スタック122の1〜4番目に保存されている符号化データA〜Dを合成することにより、データ転送装置30のメモリ31に蓄積されていたデータを復号できる。
図19は、符号化装置のACKに対する処理の手順を表した一例のフローチャートである。ステップS91に進み、符号化装置33は受信装置35経由でデータ受信装置40から図20に示すようなACKを受信する。図20はACKの一例の構成図である。図20に示したACKは、ブロック番号、復号情報を有するように構成される。
符号化装置33は受信したACKから復号情報のビット列を取得する。ステップS92に進み、符号化装置33は取得したビット列のビットに「0」が含まれており、復号情報に対応する送信パケットの送信中でなければ、ステップS93に進む。符号化装置33は符号情報のビット列のビットのうち、「0」であるビットに対応するサブデータ全ての排他的論理和を計算し、送信パケットで送信する。ステップS94に進み、符号化装置33は符号情報のビット列のビットのうち、「0」であるビットに対応するサブデータを、それぞれ送信する。
(まとめ)
IPネットワークにおけるASPシステム1のデータ転送において、転送するデータを順次メモリ31に蓄積し、符号化に必要なデータ量については何段階か用意しておくことで、蓄積により発生する遅延を削減する。最大のデータ量を必要とする段階までデータが蓄積された場合には直ちに符号化してデータを転送する。まだ、最大のデータ量を必要とする段階までデータが入力されていなかった場合でも、あらかじめ決めておいた時間が経過した場合には、その段階で符号化を行ないそのデータを転送する。もし、最小の段階までデータが入力されていない場合には、そのデータは符号化せずにTCPもしくはUDPを用いた方法で転送を行なう。
蓄積されたデータを符号化するには、蓄積されたデータを符号化の段階ごとに決められた数n個に分割し、n個のデータ同士で排他的論理和を計算することでn×m個の符号化されたデータを作成する。この時、データ同士の組み合わせ方法はn×mの行列式として用意することが可能であるため、あらかじめ消失に対する性能のよい行列を複数個求めておく。例えば、n=8,16,32,64,128,256,512,1024の8種類の行列を用意しておく。パケットサイズを1000Byteとすると、それぞれ符号化の為には最低で8000,16000,32000,64000,12800,256000,512000,1024000Byteのデータサイズのデータの塊(ブロック)が必要である。これまで、上記のデータサイズに満たない場合には、残りをダミーデータで埋めて符号化を行なっていたが、それでは送信するデータ量が増えるため効率が悪い。
そこで蓄積されたデータのデータサイズを大きいブロックサイズの符号化から順に適用していき、どれにも満たない場合に符号化を行なわない方法で無駄を削減する。例えば蓄積されたデータのデータサイズが1234567Byteであった場合、先頭の1024000Byteはn=1024の行列で符号化して送信する。次に残りの210567Byteの先頭の128000Byteはn=128の行列で符号化して送信する。同様に残りの82567Byteの先頭の64000Byteをn=64で符号化、16000Byteをn=16で符号化して送信する。最後に残った2567Byteについては符号化しないで送信する。
データの組み合わせを表わす行列の行はビット列に変換してデータを転送する際に一緒に送信する。n個分は排他的論理和を取らずに元のn個のデータにし、m個の符号化されたデータだけを作成することも可能であり、符号化するより前にn個のデータを転送することが可能であるため遅延をより削減できる。しかし、mの数が小さい場合には消失に対する性能が悪くなることもある。符号化されないデータの場合には、分割したデータが何番目のデータであるかをヘッダに付加して転送する。
受信側のデータ受信装置40では受けとった符号化データの復元を試み、復元状況を返信する。復元状況を受けとった送信側のデータ転送装置30では、受信側のデータ受信装置40がまだ復元できていないデータを、もう送信側のデータ転送装置30が送信してない場合に再送が必要と判断し、復元できていないデータの再送を行なう。この時n+m個のすべてのデータを送信するのではなく、受信した復元状況を元にして復元できていない部分だけを再送する。
本実施例によれば、従来のTCPを使ったデータ転送方法と比較して、RTTが大きい時に、リアルタイム性を確保したまま転送速度を高速化できる。また、本実施例は符号化行列を使い分けることで、符号化して送信する処理系統と符号化しないで送信する処理系統とを同じように構成でき、データを復号する処理系統も同じように構成できる。
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
データを転送するデータ転送装置であって、
転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、前記複数種類のデータサイズのブロック毎に符号化行列を格納する符号化行列格納手段と、
データ蓄積手段に蓄積されたデータのデータサイズに基づき、前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定手段と、
決定した前記ブロックの前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータをデータサイズ毎に符号化する符号化手段と、
符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成手段と、
生成した前記パケットを送信する送信手段と
を有するデータ転送装置。
(付記2)
前記符号化サイズ決定手段は、データ蓄積手段に蓄積されたデータよりもデータサイズが小さくなる前記ブロックのうちデータサイズが最も大きい前記ブロックを決定し、
前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックのデータサイズ分、前記データ蓄積手段から前記データを取得し、取得した前記符号化行列を用いて前記データ蓄積手段から取得した前記データを符号化する
付記1記載のデータ転送装置。
(付記3)
前記符号化サイズ決定手段は、前記ブロックのデータサイズを所定の割合だけ小さくした縮小データサイズと、前記データ蓄積手段に蓄積されたデータのデータサイズとを比較して、前記データ蓄積手段に蓄積されたデータのデータサイズよりも縮小データサイズが小さくなる前記ブロックのうちデータサイズが最も大きい前記ブロックを決定し、
前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックの縮小データサイズ分、前記データ蓄積手段から前記データを取得し、前記データ蓄積手段から取得した前記データにダミーデータを追加し、取得した前記符号化行列を用いて前記データ蓄積手段から取得してダミーデータを追加した前記データを符号化する
付記1又は2記載のデータ転送装置。
(付記4)
前記パケットが連続して送信されない無送信時間を計時するタイマー手段と、
前記データ蓄積手段に蓄積されたデータのデータサイズが前記ブロックのデータサイズのうち最も小さいデータサイズより大きくなったとき又は前記パケットが連続して送信されない無送信時間が所定時間を経過したとき、前記符号化サイズ決定手段に前記ブロックのデータサイズを決定させる符号化サイズ決定指示手段と
を有する付記1乃至3何れか一項記載のデータ転送装置。
(付記5)
前記符号化サイズ決定手段は、前記データ蓄積手段に蓄積されたデータのデータサイズが前記ブロックのデータサイズのうち最も小さいデータサイズより大きくならず、前記パケットが連続して送信されない無送信時間が所定時間を経過したとき、前記データ蓄積手段に蓄積されたデータを符号化しないブロックとし、
前記パケット生成手段は、符号化しないブロックの前記符号化行列として単位行列を取得し、前記データ蓄積手段に蓄積されたデータに、前記符号化情報として前記単位行列に関する情報を付加したパケットを生成する
付記4記載のデータ転送装置。
(付記6)
データを転送するデータ転送装置のデータ転送方法であって、
転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、符号化行列格納手段が、前記複数種類のデータサイズのブロック毎に符号化行列を格納される符号化行列格納ステップと、
符号化サイズ決定手段が、データ蓄積手段に蓄積されたデータのデータサイズに基づき前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定ステップと、
符号化手段が、決定した前記ブロックの前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータをデータサイズ毎に符号化する符号化ステップと、
パケット生成手段が、符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成ステップと、
送信手段が、生成した前記パケットを送信する送信ステップと
を有するデータ転送方法。
(付記7)
データを転送するデータ転送装置として機能するコンピュータを、
転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、前記複数種類のデータサイズのブロック毎に符号化行列を格納する符号化行列格納手段と、
データ蓄積手段に蓄積されたデータのデータサイズに基づき、前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定手段と、
決定した前記ブロックの前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータをデータサイズ毎に符号化する符号化手段と、
符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成手段と、
生成した前記パケットを送信する送信手段と
して機能させるためのデータ転送プログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。データ転送装置30はデータ転送プログラムにより制御されたコンピュータであってもよいし、専用装置、半導体チップ又はPCカードなどであってもよい。
また、転送するデータは画面データの他、監視カメラの画像データや音声データ等のリアルタイム性が高いことが求められ、且つ時間によって流れてくるデータの量が変化する如何なるデータであってもよい。
ASPシステムの一例の構成図である。 データ転送装置の一例のハードウェア構成図である。 データ転送装置のメイン処理手順を表した一例のフローチャートである。 タイマー処理手順を表した一例のフローチャートである。 符号化サイズ決定処理手順を表した一例のフローチャート(1/4)である。 符号化サイズ決定処理手順を表した一例のフローチャート(2/4)である。 符号化サイズ決定処理手順を表した一例のフローチャート(3/4)である。 符号化サイズ決定処理手順を表した一例のフローチャート(4/4)である。 ブロックの符号化と送信処理の手順を表した一例のフローチャートである。 送信パケットの一例の構成図である。 ブロックの符号化と送信処理の一例のイメージ図である。 符号化しないで送信する処理の手順を表した一例のフローチャートである。 符号化しないで送信する処理の一例のイメージ図である。 復号装置の復号処理を表した一例のフローチャートである。 復号処理の一例のイメージ図(1/4)である。 復号処理の一例のイメージ図(2/4)である。 復号処理の一例のイメージ図(3/4)である。 復号処理の一例のイメージ図(4/4)である。 符号化装置のACKに対する処理の手順を表した一例のフローチャートである。 ACKの一例の構成図である。
符号の説明
1 ASPシステム
10 ASPサーバ
20 クライアント
30 データ転送装置
31 メモリ
32 タイマー
33 符号化装置
34 送信装置
35 受信装置
36 符号化行列データ
40 データ受信装置
41 受信装置
42 送信装置
43 復号装置
50 ネットワーク
61 入力装置
62 出力装置
63 ドライブ装置
64 補助記憶装置
65 主記憶装置
66 演算処理装置
67 インターフェース装置

Claims (5)

  1. データを転送するデータ転送装置であって、
    転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、前記複数種類のデータサイズのブロック毎に符号化行列を格納する符号化行列格納手段と、
    前記データを蓄積するデータ蓄積手段に蓄積されたデータのデータサイズに基づき、前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定手段と、
    決定した前記ブロックに応じた前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータを、決定した前記ブロックのデータサイズ毎に符号化する符号化手段と、
    符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成手段と、
    生成した前記パケットを送信する送信手段と
    を有し、
    前記符号化サイズ決定手段は、データ蓄積手段に蓄積されたデータよりもデータサイズが小さくなる前記ブロックと該ブロックのデータサイズを所定の割合だけ小さくした縮小データサイズと前記データ蓄積手段に蓄積されたデータのデータサイズとを比較して前記データ蓄積手段に蓄積されたデータのデータサイズよりも縮小データサイズが小さくなる前記ブロックとのうち、データサイズが最も大きい前記ブロックを決定し、
    前記縮小データサイズの前記ブロックを決定した場合、前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックの縮小データサイズ分、前記データ蓄積手段から前記データを取得し、前記データ蓄積手段から取得した前記データにダミーデータを追加し、取得した前記符号化行列を用いて前記データ蓄積手段から取得してダミーデータを追加した前記データを符号化するデータ転送装置。
  2. 前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックのデータサイズ分、前記データ蓄積手段から前記データを取得し、取得した前記符号化行列を用いて前記データ蓄積手段から取得した前記データを符号化する
    請求項1記載のデータ転送装置。
  3. 前記パケットが連続して送信されない無送信時間を計時するタイマー手段と、
    前記データ蓄積手段に蓄積されたデータのデータサイズが前記ブロックのデータサイズのうち最も小さいデータサイズより大きくなったとき又は前記パケットが連続して送信されない無送信時間が所定時間を経過したとき、前記符号化サイズ決定手段に前記ブロックのデータサイズを決定させる符号化サイズ決定指示手段と
    を有する請求項1又は2記載のデータ転送装置。
  4. データを転送するデータ転送装置のデータ転送方法であって、
    転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、符号化行列格納手段が、前記複数種類のデータサイズのブロック毎に符号化行列を格納される符号化行列格納ステップと、
    符号化サイズ決定手段が、前記データを蓄積するデータ蓄積手段に蓄積されたデータのデータサイズに基づき前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定ステップと、
    符号化手段が、決定した前記ブロックに応じた前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータを、決定した前記ブロックのデータサイズ毎に符号化する符号化ステップと、
    パケット生成手段が、符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成ステップと、
    送信手段が、生成した前記パケットを送信する送信ステップと
    を有し、
    前記符号化サイズ決定ステップは、データ蓄積手段に蓄積されたデータよりもデータサイズが小さくなる前記ブロックと該ブロックのデータサイズを所定の割合だけ小さくした縮小データサイズと前記データ蓄積手段に蓄積されたデータのデータサイズとを比較して前記データ蓄積手段に蓄積されたデータのデータサイズよりも縮小データサイズが小さくなる前記ブロックとのうち、データサイズが最も大きい前記ブロックを決定し、
    前記縮小データサイズの前記ブロックを決定した場合、前記符号化ステップは、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックの縮小データサイズ分、前記データ蓄積手段から前記データを取得し、前記データ蓄積手段から取得した前記データにダミーデータを追加し、取得した前記符号化行列を用いて前記データ蓄積手段から取得してダミーデータを追加した前記データを符号化するデータ転送方法。
  5. データを転送するデータ転送装置として機能するコンピュータを、
    転送するデータの符号化に必要な複数種類のデータサイズのブロックが予め用意されており、前記複数種類のデータサイズのブロック毎に符号化行列を格納する符号化行列格納手段と、
    前記データを蓄積するデータ蓄積手段に蓄積されたデータのデータサイズに基づき、前記ブロックをデータサイズの大きい方から順に決定する符号化サイズ決定手段と、
    決定した前記ブロックに応じた前記符号化行列を取得し、取得した前記符号化行列を用いて前記データ蓄積手段に蓄積されたデータを、決定した前記ブロックのデータサイズ毎に符号化する符号化手段と、
    符号化された符号化データに、符号化に用いた前記符号化行列に関する符号化情報を付加したパケットを生成するパケット生成手段と、
    生成した前記パケットを送信する送信手段と
    して機能させ、
    前記符号化サイズ決定手段は、データ蓄積手段に蓄積されたデータよりもデータサイズが小さくなる前記ブロックと該ブロックのデータサイズを所定の割合だけ小さくした縮小データサイズと前記データ蓄積手段に蓄積されたデータのデータサイズとを比較して前記データ蓄積手段に蓄積されたデータのデータサイズよりも縮小データサイズが小さくなる前記ブロックとのうち、データサイズが最も大きい前記ブロックを決定し、
    前記縮小データサイズの前記ブロックを決定した場合、前記符号化手段は、決定した前記ブロックの前記符号化行列を取得し、決定した前記ブロックの縮小データサイズ分、前記データ蓄積手段から前記データを取得し、前記データ蓄積手段から取得した前記データにダミーデータを追加し、取得した前記符号化行列を用いて前記データ蓄積手段から取得してダミーデータを追加した前記データを符号化するデータ転送プログラム。
JP2008172626A 2008-07-01 2008-07-01 データ転送装置、データ転送方法及びデータ転送プログラム Active JP5444647B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008172626A JP5444647B2 (ja) 2008-07-01 2008-07-01 データ転送装置、データ転送方法及びデータ転送プログラム
US12/493,639 US8018967B2 (en) 2008-07-01 2009-06-29 Data transfer apparatus, data transfer method and computer-readable storage medium storing a data transfer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008172626A JP5444647B2 (ja) 2008-07-01 2008-07-01 データ転送装置、データ転送方法及びデータ転送プログラム

Publications (2)

Publication Number Publication Date
JP2010016484A JP2010016484A (ja) 2010-01-21
JP5444647B2 true JP5444647B2 (ja) 2014-03-19

Family

ID=41464370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008172626A Active JP5444647B2 (ja) 2008-07-01 2008-07-01 データ転送装置、データ転送方法及びデータ転送プログラム

Country Status (2)

Country Link
US (1) US8018967B2 (ja)
JP (1) JP5444647B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5419825B2 (ja) * 2010-02-22 2014-02-19 日本電信電話株式会社 信号処理システム及び信号処理方法
JP5559752B2 (ja) * 2011-01-18 2014-07-23 日本電信電話株式会社 信号処理システム及び信号処理方法
US9242164B2 (en) * 2013-01-14 2016-01-26 John Maurello Mouthguard assembly
JP6001474B2 (ja) * 2013-02-26 2016-10-05 日本電信電話株式会社 ブートイメージ配信方法及びブートイメージ配信システム
JPWO2015133095A1 (ja) * 2014-03-04 2017-04-06 日本電気株式会社 パリティ検査符号生成装置、符号化方法、符号化装置および制御プログラム
JP2017040768A (ja) * 2015-08-19 2017-02-23 ヤマハ株式会社 コンテンツ送信装置
US10944807B2 (en) * 2017-05-09 2021-03-09 EMC IP Holding Company LLC Organizing present and future reads from a tiered streaming data storage layer
CN109756379A (zh) * 2019-01-11 2019-05-14 南京航空航天大学 一种基于矩阵差分分解的网络性能异常检测与定位方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285205A (ja) 1997-04-04 1998-10-23 Casio Comput Co Ltd 電子メール送信・表示装置、電子メール送信・表示方法
JPH10285147A (ja) * 1997-04-09 1998-10-23 Nec Corp データ伝送システム
US6404739B1 (en) 1997-04-30 2002-06-11 Sony Corporation Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method
JPH1117737A (ja) 1997-04-30 1999-01-22 Sony Corp 送信装置および送信方法、受信装置および受信方法、並びに送受信装置および送受信方法
JP4349114B2 (ja) * 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
JP4559126B2 (ja) * 2004-06-01 2010-10-06 日本電信電話株式会社 映像送信方法、映像送信装置、映像送信用プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2006039801A1 (en) * 2004-10-12 2006-04-20 Nortel Networks Limited System and method for low density parity check encoding of data
JP4459794B2 (ja) * 2004-11-30 2010-04-28 日本電信電話株式会社 符号誤り訂正を行うデータ送信方法、受信方法、装置、システム及びプログラム
JP4580278B2 (ja) * 2005-05-20 2010-11-10 財団法人エヌエイチケイエンジニアリングサービス パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法
JP4047879B2 (ja) * 2005-08-23 2008-02-13 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
JP2007274309A (ja) 2006-03-31 2007-10-18 Kddi Corp 送信装置
JP4356742B2 (ja) * 2006-12-25 2009-11-04 ソニー株式会社 データ通信システム、データ送信装置およびデータ送信方法

Also Published As

Publication number Publication date
US20100002726A1 (en) 2010-01-07
JP2010016484A (ja) 2010-01-21
US8018967B2 (en) 2011-09-13

Similar Documents

Publication Publication Date Title
JP5444647B2 (ja) データ転送装置、データ転送方法及びデータ転送プログラム
JP5675876B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
JP5075536B2 (ja) Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム
CN103167359B (zh) Rtp媒体流的传输方法及装置
JP2004165922A (ja) 情報処理装置および方法、並びにプログラム
JP2005503708A (ja) エンコーダ冗長選択システム及び方法
JP2007251737A (ja) データ転送方法及び,これを適用する通信システム及びプログラム
US20030156645A1 (en) Unequal error protection of video based on motion vector characteristics
US10623230B2 (en) Trans-layer robust header-compression technique
CN101783955B (zh) 一种数据异常时的恢复方法和设备
Zhou et al. Fountain code based adaptive multi-hop reliable data transfer for underwater acoustic networks
KR101118194B1 (ko) 손실된 패킷 재건을 위한 방법 및 상기 방법을 수행하기 위한 디바이스
TWI484785B (zh) 提供線性消除碼之方法與裝置
US9774353B2 (en) Generating apparatus, generating method and recording medium
US8615051B2 (en) System and method for effectively transferring electronic information
CN112804028A (zh) 一种数据包的传输方法、设备及存储介质
JP6305398B2 (ja) 送信機に関連する情報を用いたエラー回復のための方法及び装置
JP4440052B2 (ja) 画像符号化装置、画像符号化方法
JP2013544475A (ja) 損失の多いプロトコルでのデータパケット送信を制御する方法およびシステム
Grangetto et al. Ensuring quality of service for image transmission: hybrid loss protection
JP2009152864A (ja) 送信装置および受信装置およびデータ伝送方法
CN113507467A (zh) 一种基于区块链的隐蔽信息传输系统及方法
JP4708216B2 (ja) エラー訂正方法、通信システム、送信装置及び受信装置
JP5744554B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6946826B2 (ja) 映像処理装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110418

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Ref document number: 5444647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150