JP2004166156A - Image transmitter, network system, program, and storage medium - Google Patents

Image transmitter, network system, program, and storage medium Download PDF

Info

Publication number
JP2004166156A
JP2004166156A JP2002332424A JP2002332424A JP2004166156A JP 2004166156 A JP2004166156 A JP 2004166156A JP 2002332424 A JP2002332424 A JP 2002332424A JP 2002332424 A JP2002332424 A JP 2002332424A JP 2004166156 A JP2004166156 A JP 2004166156A
Authority
JP
Japan
Prior art keywords
code string
image
creation
code
amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002332424A
Other languages
Japanese (ja)
Inventor
Shogo Oneda
章吾 大根田
Keiichi Suzuki
啓一 鈴木
Yukio Kadowaki
幸男 門脇
Yutaka Sano
豊 佐野
Toru Suino
水納  亨
Takanori Yano
隆則 矢野
Minoru Fukuda
実 福田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002332424A priority Critical patent/JP2004166156A/en
Publication of JP2004166156A publication Critical patent/JP2004166156A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To transmit an image to a delivery destination of moving picture data by dynamically changing the scalability in accordance with the congested traffic of a communication path. <P>SOLUTION: Each client 2 detects the read quantity of code strings received from a server 1 per unit time with a data read quantity detection means 27 and transmits the reading quantity to the server 1. In the server 1, an integration means 25 integrates the read quantity of the code strings received from each client 2 per unit time and a parameter creation means 26 calculates error quantity from an integration result. In the respective code string creation means 231 to 23n, a quantization table is selected based on the error quantity, a new code string is created according to the quantization table and transmitted to the client 2. The error quantity is the one of data between the code strings before creation and the new code strings after creation in the code string creation means 231 to 23n. The quantization table consists of a plurality of tables formed by arranging the number of quantization bits by every wavelet transformation coefficient in an order of visual degradation degree about the respective wavelet transformation coefficients of the code strings. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、画像送信装置、ネットワークシステム、プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
従来、サーバから動画像データを供給し、クライアントからは動画像データの転送要求をサーバに対して行なって、受け取ったデータをもとにクライアントで動画像を再生する、動画像配信技術が存在する。かかる技術において、クライアント側の再生装置がサーバから動画像データを受信して再生する手法には、大別してダウンロード再生とストリーム再生が知られている。
【0003】
ダウンロード再生とは、サーバからクライアントのバッファ上にダウンロードされたデータを再生するものであり、このタイプは、一旦バッファにデータをとりこんだ後に再生するため、バッファの記憶容量の制限により動画像データを再生できる時間が短くなるという短所があるが、すべてのデータを受け取ってから再生すれば、サーバ側の処理負担や伝送路の速度や混雑状況によらず、動画像の再生が行なえる長所がある。
【0004】
一方、ストリーミング再生とは、クライアント側の再生装置がサーバから連続的にデータを要求し、そのデータをバッファ上に取得する作業と並行して動画像の再生処理を行なうものである。このタイプは、クライアントが連続的に動画像データを受け取るため、自己のバッファ上のデータを再生したら放棄する一方で、新たなデータを上書きしていく。従って、バッファの記憶容量の制限を受けることなく長時間の動画像の再生が可能であるという長所がある。
【0005】
しかし、サーバに同時にアクセスしているクライアント数の増加によるサーバ負荷の増大や、伝送線路の速度に影響を受けやすいという短所がある。よって、サーバの負荷増大や、伝送線路の速度低下により動画像の再生がストップしてしまうというような重大な問題を引き起こす可能性がある。一般に、このような重大な影響を回避する手法として、動画像データの容量を変化させるスケーラビリティという手法が知られている。
【0006】
また、従来から、画像圧縮伸長アルゴリズムとして、動画像専用のMPEG1/MPEG2/MPEG4や、静止画像を連続したフレームとして扱うMotion JPEGが使用されているが、最近では、後者のMotion静止画像の符号化については、国際標準としてMotion JPEG2000という新しい方式が規格化されつつある。
【0007】
【特許文献1】
特開2001−274861公報
【0008】
【発明が解決しようとする課題】
しかし、従来の動画像配信技術では、一般にサーバ上に配信コンテンツをあらかじめ複数のスケーラビリティで保存しておき、通信路の送信能力やクライアントの再生能力に応じて、最もふさわしいスケーラビリティをユーザが選択してストリーミング再生を行なうのが普通である。
【0009】
この場合は、クライアントを操作するユーザが通信路の制約等を考慮してスケーラビリティを選択するが、通信路の状態が途中で変化すること、あるいは与えられた選択肢の中に最適な条件があるとは限らず、制約に対して最適な画像を得られるとは限らない。これに対応するためには、用意された元画像を元にサーバの負荷等に応じて動的にスケーラビリティを変化させることが考えられるが、データ量だけに着目して制御すると、複雑なシーンでは画質が悪くなり、複雑でないシーンでは必要以上の符号量を使ってしまい、通信路などの利用効率が悪くなってしまう。
【0010】
この発明の目的は、送信側における処理の負荷に応じて動的にスケーラビリティを変化させた画像の送信を可能とすることである。
【0011】
この発明の別の目的は、動的にスケーラビリティを変化させつつ画質の劣化を防止することである。
【0012】
【課題を解決するための手段】
請求項1に記載の発明は、動画像データをフレームごとに1又は複数の小領域に分割してこの小領域ごとに階層的に圧縮符号化した符号列を対象として、その符号列データの構文を解析する構文解析手段と、この解析結果に基づいて前記符号列から新たな符号列を作成する処理を同時並行的に複数実行できる符号列変換手段と、この作成した各符号列をネットワークを介して各送信先に送信する送信手段と、前記各送信先からそれぞれ当該送信先で前記送信した符号列を受信した際における単位時間当たりのデータ読込量の情報を受信する受信手段と、この受信した各データ読込量の情報を統合して前記ネットワークのトラフィックの混雑状況を検出する統合化手段と、前記作成前の符号列と前記新たな符号列とのデータの誤差量を前記統合の結果に応じて指定して、この指定した誤差量となるように前記符号列変換手段に前記作成を行なわせる誤差量指定手段と、を備えている画像送信装置である。
【0013】
したがって、ネットワークのトラフィックが混雑してきたときは誤差量を大きくして送信する符号列のデータ量を低減することにより、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0014】
請求項2に記載の発明は、請求項1に記載の画像送信装置において、前記誤差量指定手段は、前記誤差量の指定を前記ネットワークを介して前記符号列の送信先から受信する。
【0015】
したがって、ネットワークのトラフィックに応じて送信側で指定してきた誤差量を用いて、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0016】
請求項3に記載の発明は、請求項1又は2に記載の画像送信装置において、前記符号列変換手段は、前記作成前の符号列に含まれている当該符号列の符号を破棄することによる前記誤差量を表わすデータを読取って前記作成を行なう。
【0017】
したがって、新たな符号列の作成前の符号列に含まれている当該符号列の符号を破棄することによる誤差量を表わすデータをヘッダ情報などから読取って新たな符号列を作成し、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0018】
請求項4に記載の発明は、請求項1〜3の何れかの一に記載の画像送信装置において、前記符号列変換手段は、前記作成前の符号列の作成にウェーブレット変換が用いられている場合に、当該符号列の各ウェーブレット変換係数についてウェーブレット変換係数ごとの量子化ビット数を前記作成後の符号列の画像についての視覚的劣化度順に並べた複数のテーブルから、前記誤差量指定手段で指定した前記誤差量に応じてテーブルを選択し、このテーブルのデータに基づいて前記作成を行なう。
【0019】
したがって、ウェーブレット変換係数を調節することで、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0020】
請求項5に記載の発明は、請求項1〜4の何れかの一に記載の画像送信装置において、前記符号列変換手段は、指定された画像のフレームレートに応じて前記作成を行なう。
【0021】
したがって、ネットワークのトラフィックのみならず、フレームレートに応じて動的にスケーラビリティを変化させるので、画像の劣化を防止することができる。
【0022】
請求項6に記載の発明は、請求項1〜5の何れかの一に記載の画像送信装置において、前記作成前の符号列について画像の動き量を検出する動き量検出手段を備え、前記符号列変換手段は、前記検出した動き量に応じて前記作成を行なう。
【0023】
したがって、ネットワークのトラフィックのみならず、画像の動き量に応じて動的にスケーラビリティを変化させるので、画像の劣化を防止することができる。
【0024】
請求項7に記載の発明は、請求項1〜6の何れかの一に記載の画像送信装置と、この画像送信装置がネットワークを介して送信する前記符号列を受信する複数台の画像受信装置と、を備えているネットワークシステムである。
【0025】
したがって、請求項1〜6の何れかの一に記載の発明と同様の作用、効果を奏することができる。
【0026】
請求項8に記載の発明は、請求項1〜6の何れかの一に記載の発明の前記各手段の機能を実行するコンピュータに読取り可能なプログラムである。
【0027】
したがって、請求項1〜6の何れかの一に記載の発明と同様の作用、効果を奏することができる。
【0028】
請求項9に記載の発明は、請求項8に記載のプログラムを記憶している記憶媒体である。
【0029】
したがって、請求項8に記載の発明と同様の作用、効果を奏することができる。
【0030】
【発明の実施の形態】
[JPEG2000アルゴリズムの概要]
まず、本発明の実施の形態における前提技術となるJPEG2000アルゴリズムの概要について説明する。
【0031】
図1は、JPEG2000アルゴリズムの基本を説明するための説明図である。JPEG2000のアルゴリズムは、色空間変換・逆変換部111、2次元ウェーブレット変換・逆変換部112、量子化・逆量子化部113、エントロピー符号化・復号化部114、タグ処理部115で構成されている。
【0032】
図2に示すように、カラー画像は、一般に、原画像の各コンポーネント(ここではRGB原色系)が、矩形をした領域(タイル)123122,123によって分割される。そして、個々のタイル、例えば、R00,R01,…,R15/G00,G01,…,G15/B00,B01,…,B15が、圧縮伸長プロセスを実行する際の基本単位となる。従って、圧縮伸長動作は、コンポーネント毎、そしてタイル毎に、独立に行なわれる。
【0033】
画像データの符号化時には、各コンポーネントの各タイルのデータが、図1の色空間変換・逆変換部111に入力され、色空間変換を施されたのち、2次元ウェーブレット変換・逆変換部112で2次元ウェーブレット変換(順変換)が適用されて周波数帯に空間分割される。
【0034】
図3には、デコンポジション・レベル数が3の場合の、各デコンポジション・レベルにおけるサブ・バンドを示している。すなわち、原画像のタイル分割によって得られたタイル原画像(0LL)(デコンポジション・レベル0(131))に対して、2次元ウェーブレット変換を施し、デコンポジション・レベル1(132)に示すサブ・バンド(1LL,1HL,1LH,1HH)を分離する。そして引き続き、この階層における低周波成分1LLに対して、2次元ウェーブレット変換を施し、デコンポジション・レベル2(133)に示すサブ・バンド(2LL,2HL,2LH,2HH)を分離する。順次、同様に、低周波成分2LLに対しても、2次元ウェーブレット変換を施し、デコンポジション・レベル3(134)に示すサブ・バンド(3LL,3HL,3LH,3HH)を分離する。さらに、図3では、各デコンポジション・レベルにおいて符号化の対象となるサブ・バンドを、斜線で表してある。例えば、デコンポジション・レベル数を3とした時、斜線で示したサブ・バンド(3HL,3LH,3HH,2HL,2LH,2HH,1HL,1LH,1HH)が符号化対象となり、3LLサブ・バンドは符号化されない。
【0035】
次いで、指定した符号化の順番で符号化の対象となるビットが定められ、図1の量子化・逆量子化部113で対象ビット周辺のビットからコンテキストが生成される。量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プレシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図5に示すように、一つのプレシンクトは、空間的に一致した3つの矩形領域からなっている。更に、個々のプレシンクトは、重複しない矩形の「コード・ブロック」に分けられる。これは、エントロピー・コーディングを行なう際の基本単位となる。
【0036】
ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素あるいはコード・ブロック毎に「ビットプレーン」に順位付けを行なうことができる。図6には、その手順を簡単に示した。この例は、原画像(32×32画素)を16×16画素のタイル4つで分割した場合で、デコンポジション・レベル1のプレシンクトとコード・ブロックの大きさは、各々8×8画素と4×4画素としている。プレシンクトとコード・ブロックの番号は、ラスター順に付けられる。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆(5×3)フィルタでウェーブレット変換を行ない、デコンポジションレベル1のウェーブレット係数値を求めている。また、タイル0/プレシンクト3/コード・ブロック3について、代表的な「レイヤー」についての概念図をも併せて示している。レイヤーの構造は、ウェーブレット係数値を横方向(ビットプレーン方向)から見ると理解し易い。1つのレイヤーは任意の数のビットプレーンから構成される。この例では、レイヤー0,1,2,3は、各々、1,3,1の3つのビットプレーンから成っている。そして、LSBに近いビットプレーンを含むレイヤー程、先に量子化の対象となり、逆に、MSBに近いレイヤーは最後まで量子化されずに残ることになる。LSBに近いレイヤーから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【0037】
エントロピー符号化・復号化部114(図1参照)では、コンテキストと対象ビットから確率推定によって、各コンポーネントのタイルに対する符号化を行なう。こうして、原画像の全てのコンポーネントについて、タイル単位で符号化処理が行われる。最後にタグ処理部115は、エントロピコーダ部からの全符号化データを1本のコード・ストリームに結合するとともに、それにタグを付加する処理を行なう。図4には、コード・ストリームの構造を簡単に示した。図4に示すように、コード・ストリームの先頭と各タイルを構成する部分タイルの先頭にはヘッダと呼ばれるタグ情報が付加され、その後に、各タイルの符号化データが続く。そして、コード・ストリームの終端には、再びタグが置かれる。
【0038】
一方、復号化時には、符号化時とは逆に、各コンポーネントの各タイルのコード・ストリームから画像データを生成する。図1を用いて簡単に説明する。この場合、タグ処理部115は、外部より入力したコード・ストリームに付加されたタグ情報を解釈し、コード・ストリームを各コンポーネントの各タイルのコード・ストリームに分解し、その各コンポーネントの各タイルのコード・ストリーム毎に復号化処理が行われる。コード・ストリーム内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部113で、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストが生成される。エントロピー符号化・復号化部114で、このコンテキストとコード・ストリームから確率推定によって復号化を行ない、対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは周波数帯域毎に空間分割されているため、これを2次元ウェーブレット変換・逆変換部112で2次元ウェーブレット逆変換を行なうことにより、画像データの各コンポーネントの各タイルが復元される。復元されたデータは色空間変換・逆変換部111によって元の表色系のデータに変換される。
【0039】
[発明の実施の形態]
本発明の一実施の形態について説明する。
【0040】
図7は、本実施の形態1のネットワークシステム10を示すブロック図である。図7に示すように、本ネットワークシステム10は、動画の画像データをMotion JPEG2000等のアルゴリズムで圧縮符号化した符号列をインターネットなどのネットワーク3を介して送信するサーバ1と、このサーバ1から符号列を受信するクライアント2からなる。クライアント2は、同時に複数台接続され得る(図9に示す、クライアント23n(n=1,2,…))。
【0041】
図8は、サーバ1、クライアント2の電気的な接続を示すブロック図である。図8に示すように、サーバ1、クライアント2は、それぞれ本発明の画像送信装置、画像受信装置を実施するもので、各種演算を行ないサーバ1(またはクライアント2)の各部を集中的に制御するCPU11と、各種のROMやRAMからなるメモリ12とが、バス13で接続されている。
【0042】
バス13には、所定のインターフェイスを介して、記憶装置となるハードディスクなどの磁気記憶装置14と、マウスやキーボードなどで構成される入力装置15と、LCDやCRTなどの表示装置16と、光ディスクなどの本発明の記憶媒体を実施する記憶媒体17を読取る記憶媒体読取装置18と、ネットワーク3と通信を行なう通信装置となる所定の通信インターフェイス19とが接続されている。なお、記憶媒体17としては、CDやDVDなどの光ディスク、光磁気ディスク、フレキシブルディスクなどの各種方式のメディアを用いることができる。また、記憶媒体読取装置18は、具体的には記憶媒体17の種類に応じて光ディスクドライブ、光磁気ディスクドライブ、フレキシブルディスクドライブなどが用いられる。
【0043】
磁気記憶装置14には、本発明のプログラムを実施する画像送信プログラム(または画像受信プログラム)が記憶されている。一般的には、この画像送信プログラム(または画像受信プログラム)は、本発明の記憶媒体を実施する記憶媒体17から記憶媒体読取装置18により読取ることでサーバ1(またはクライアント2)にインストールするが、ネットワーク3からダウンロードするなどして、磁気記憶装置14にインストールしたものである。このインストールによりサーバ1、クライアント2は動作可能な状態となる。この画像送信プログラム、画像受信プログラムは、特定のアプリケーションソフトの一部をなすものであってもよい。また、所定のOS上で動作するものであってもよい。
【0044】
図9は、ネットワークシステム10が画像送信プログラム、画像受信プログラム等に基づいて実行する処理を説明する機能ブロック図である。
【0045】
まず、クライアント2が画像受信プログラム等に基づいて行なう処理について説明する。各クライアント2(クライアント231〜23n)では、送信手段、受信手段である送受信手段31が通信インターフェイス19を介して、サーバ1から画像を圧縮符号化した符号列(後述)を受信し、この受け取った符号列をバッファ32(磁気記憶装置14)に格納後、この符号列を復号手段33で復号し、表示手段34が表示装置16に表示する。
【0046】
また、送受信手段31が受信した符号列を対象として、データ読込量検出手段27が、単位時間当たりに送受信手段31で読み込まれた符号列のデータ量を監視し、これにより、ネットワーク3のトラフィックの混み具合を判断する。この情報(監視情報)は、各クライアント2の送受信手段31からサーバ1に返信される。
【0047】
次に、サーバ1が画像送信プログラム等に基づいて行なう処理について説明する。サーバ1のバッファ21(磁気記憶装置14)には、例えば、Motion JPEG2000アルゴリズムで動画像データを圧縮符号化した符号列が蓄積されており、従って、この符号列は動画像データをフレームごとに1又は複数のタイルという小領域に分割して、このタイルごとに階層的に圧縮符号化されたものである。サーバ1は、かかる符号列を各クライアント201〜20nからの要求に従ってストリーミング配信する。すなわち、バッファ21に格納されている符号列のヘッダ情報から当該符号列の構文を構文解析手段22により解析し、この解析の結果に基づいて符号列作成手段23の個別の各符号列作成手段231〜23nが、当該符号列をMotion JPEG2000アルゴリズムによる新たな符号列に変換し(その詳細については後述する)、この変換後の符号列を、送信手段、受信手段である送受信手段24が、通信インターフェイス19、ネットワーク3を介して、クライアント2に送信する。
【0048】
統合化手段25は、各クライアント201〜20nから受信した監視情報を統合化して、ネットワーク3のトラフィックの混雑状況を総合的に判断して、その結果(統合情報)を出力する。この統合化の処理は、例えば次のようにして行なう。
【0049】
各クライアント201〜20nの1秒当たりのデータの読込量をAn(単位:bps)とすると、各クライアント201〜20nの数はnであるから、
通信回線の使用率C=ΣAn/B
となる。ここで、Bは全回線のデータ転送能力の合計(単位:bps)、すなわち、サーバ1の最大のデータ配信能力である。この通信回線の使用率Cが、統合情報の内容となる。
【0050】
誤差量指定手段となるパラメータ作成手段26は、統合化手段25が作成した統合化情報から、各符号列作成手段231〜23nで符号列を作成する際のパラメータを作成する。このパラメータは、具体的には、各符号列作成手段231〜23nで符号列を作成する際の作成前の符号列と作成後の符号列とのデータの誤差量を指定するか、あるいは、各符号列作成手段231〜23nで作成後の符号列における画像のフレームレートを指定するものである。
【0051】
このパラメータの決定は、より具体的には、例えば次のように行なう。すなわち、統合化手段25による統合情報に閾値を設け、統合情報が閾値を下回っているときは、符号列を送信する際の単位時間当たりのデータ量を多くするように符号列を作成する。すなわち、作成後の符号列における画像のフレームレートを大きくし、あるいは、誤差量を小さくして画像の量子化レベルを細かくするように、パラメータを作成する。
【0052】
また、統合情報が閾値を上回ったときは、符号列作成手段23の負荷が大きいため、送信する際の単位時間当たりのデータ量を少なくするように符号列を作成する。すなわち、フレームレートを小さくし、あるいは、誤差量を大きくして画像の量子化レベルを粗くするように、パラメータを作成する。
【0053】
以下では、パラメータとして前記の誤差量を用いる場合について説明する。図10は、各符号列作成手段231〜23nの一構成例を示すブロック図である。量子化テーブル選択手段41には、パラメータ作成手段26で作成したパラメータが入力する。バッファ21に格納された符号列は構文解析手段22(図9)によりヘッダ情報が解読される。そして、そのヘッダ情報に基づいて、符号列を構成する各符号を部分的に符号破棄したときの元データに対するデータの誤差量が、量子化テーブル選択手段41に入力される。この量子化テーブル選択手段41は、入力された誤差量とパラメータとに基づいて、所定のテーブルデータ(量子化テーブル)を選択し、これを、符号列変換手段である量子化手段42に送る。量子化手段42は、その量子化テーブルのデータに従って符号列から符号を選択的に破棄し、また、ヘッダを書き換えて、新たな符号列を生成する。このように、各符号列作成手段231〜23nにおいて新たな符号列を生成することができるので、新たな符号列を作成する処理は、同時並行的に複数(n個)実行できることになる。
【0054】
量子化テーブルには、図11に例示するような各ウェーブレット変換係数について、図12に示すようにウェーブレット変換係数ごとの量子化ビット数(符号破棄量)が記録されている。この量子化テーブルは、図13に示すように、複数の量子化テーブル(量子化ビット数)を量子化後の視覚的劣化度順にIndexと対応付けて並べた量子化テーブル群として保持されている。量子化テーブル選択手段41は、符号列から符号を部分的に破棄したときの誤差量が、量子化テーブルを組み合わせたときにパラメータで指定されている誤差量となるIndexの量子化テーブルを選択する。
【0055】
したがって、パラメータ作成手段26が作成するパラメータは、統合情報を段階的に(あるいは無段階的に)判断し、段階的に判断するときは、段階に応じた量子化ビット数で誤差量を指定すればよい。例えば、統合情報を5段階で判断し、段階5が最もネットワーク3が混雑している場合であるとすれば、統合情報の段階1〜5を、それぞれ誤差量となる量子化ビット数1〜5に対応させればよい。なお、通常は量子化後の視覚的劣化度合いと前述の誤差量とは単調増加の関係にあるため、パラメータどおりの誤差量になる量子化テーブルを選択することは容易である。この量子化テーブルは、一般的には、視覚的に劣化が目立たないように、高周波成分よりも低周波成分を重要視して量子化するように構成するのが望ましい。
【0056】
図14は、各符号列作成手段231〜23nの別の構成例についての機能ブロック図である。バッファ21に格納された符号列は構文解析手段22(図9)により、ヘッダ情報が解読され、ヘッダ情報中から各符号を部分的に符号破棄したときの元データに対するデータの誤差量が、量子化テーブル選択手段41に入力される。動き量検出手段43は、構文解析手段22で解析された各ウェーブレット変換係数の符号量に基づいて画像の動き量を検出する。量子化テーブル選択手段41は、入力された誤差量と、クライアント2から指定されるフレームレート(この例では、クライアント2側からフレームレートの指定をサーバ1に送信可能であることを前提としている)、及び、動き量検出手段43で検出された動き量に基づいて、前述と同様の量子化テーブルを選択し、これを量子化手段42に送る。量子化手段42は、その量子化テーブルのデータとクライアント2から指定されたフレームレートとに基づいて、符号列から部分的に符号を破棄し、また、ヘッダを書き換えて、新たな符号列を生成する。
【0057】
複数の量子化テーブルからのテーブルの選択は、図11〜図13を参照して説明した前記の例と同様であるが、量子化テーブル選択手段41には複数の量子化テーブル群が保持されており、フレームレート及び動き量により所定のテーブル群を選択し、適応している。
【0058】
動き量検出手段43は、次のようにして画像の動き量を検出する。図15は、Motion JPEG2000方式における画像の動き量の考え方を説明する説明図である。図15に示すように、インターレース画像において、動きが高速な画像は図15(a)のように長い横エッジが発生する(インターレースのくし型と言う)。それに対し、動きが低速な画像は図15(c)のように短い横エッジが発生する。図15(b)は、これらの中間である動きが中速である場合を示している。これらの違いは、高周波成分の横エッジ量をあらわす1LH成分に大きく現れる。つまり、動き量の大きな画像は1LH成分の係数の絶対値が大きくなり、その結果、1LH成分の符号量は大きくなる。但し、1LH成分の符号量のみで画像の動き量を判定すると、画像によって閾値が変わる可能性があるので、1LH成分の符号量を1HL成分の符号量で正規化し、その値を画像の動き量の検出の特徴量としてもよい。
【0059】
さらに、前記の特徴はビットプレーンを削る(ポスト量子化)前の符号量に大きく現れるので、ビットプレーンを削る前の1LHと1HL符号量を符号に記述しておいて、その値を用いて動き量を推定するような構成も可能である。これは、特に画像の圧縮率が大きい場合に有効である。
【0060】
図16は、この場合における画像の動き量の判定処理の一例を示すフローチャートである。
【0061】
図16に示すように、まず、1LHのロスレス符号量の和(sum1LH)を算出し(ステップS1)、また、1HLのロスレス符号量の和(sum1HL)を算出し(ステップS2)、“sum1LH”を“sum1HL”で除算して(ステップS3)、その結果(speed)を所定の閾値(th1)と比較し、“speed>th1”のときは(ステップS3のY)、画像の動き量が大きいと判定する(ステップS4)。“speed≦th1”であるときは(ステップS3のN)、逆に画像の動き量が小さいと判定する(ステップS5)。
【0062】
また、高速な画像の場合、前記のくし型を残すように量子化することで視覚的劣化度合いを抑さえることができる。ただし、フレームを間引いてフレームレートを落としていくと、1フレームが長く表示されることになり、結果的にくし型が目立つことになる。従って、フレームレートを落とす場合には、高速な画像においてもくし型が残らないような量子化をする必要がある。その組み合わせを表1に示す。すなわち、フレームレートが高いときは、動き量が大きいときにくし型を保存し、小さいときには保存しない。フレームレートが低いときは、動き量の大小にかかわらずくし型を保存しない。
【0063】
【表1】

Figure 2004166156
【0064】
以上のクライアント2、サーバ1の処理を、図17、図18のフローチャートに整理して説明すると次のようになる。まず、図17に示すように、クライアント2は、サーバ1から符号列の受信があるときは(ステップS11のY)、データ読込量検出手段27で単位時間当たりの符号列の読込量を検出し(ステップS12)、誤差量作成手段28が、この検出値から誤差量のパラメータを作成し(ステップS13)、サーバ1に送信する(ステップS14)。
【0065】
図18に示すように、サーバ1は、送信すべき符号列があるときは(ステップS21のY)、各クライアント2から受信した誤差量(図14の例の場合は、さらに、フレームレート、画像の動き量)を統合して統合情報を作成し(ステップS22)、この統合情報に基づいて前述のように量子化テーブルを選択して(ステップS23)、この量子化テーブルに従って新たな符号列を作成し(ステップS24)、この作成後の符号列を送信する(ステップS25)。
【0066】
このように、本ネットワークシステム10によれば、ネットワーク3のトラフィックが混雑してきたときは誤差量を大きくして、送信する符号列のデータ量を低減することにより、ネットワーク3のトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0067】
また、図14以下を参照して説明した構成例によれば、ネットワーク3のトラフィックのみならず、フレームレートや画像の動き量に応じて動的にスケーラビリティを変化させるので、画像の劣化を防止することができる。
【0068】
【発明の効果】
請求項1に記載の発明は、ネットワークのトラフィックが混雑してきたときは誤差量を大きくして送信する符号列のデータ量を低減することにより、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0069】
請求項2に記載の発明は、請求項1に記載の発明において、ネットワークのトラフィックに応じて送信側で指定してきた誤差量を用いて、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0070】
請求項3に記載の発明は、請求項1又は2に記載の発明において、新たな符号列の作成前の符号列に含まれている当該符号列の符号を破棄することによる誤差量を表わすデータをヘッダ情報などから読取って新たな符号列を作成し、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0071】
請求項4に記載の発明は、請求項1〜3の何れかの一に記載の発明において、ウェーブレット変換係数を調節することで、ネットワークのトラフィックに応じて動的にスケーラビリティを変化させて画像の送信を行なうことができる。
【0072】
請求項5に記載の発明は、請求項1〜4の何れかの一に記載の発明において、ネットワークのトラフィックのみならず、フレームレートに応じて動的にスケーラビリティを変化させるので、画像の劣化を防止することができる。
【0073】
請求項6に記載の発明は、請求項1〜4の何れかの一に記載の発明において、ネットワークのトラフィックのみならず、画像の動き量に応じて動的にスケーラビリティを変化させるので、画像の劣化を防止することができる。
【0074】
請求項7〜9に記載の発明は、請求項1〜6の何れかの一に記載の発明と同様の作用、効果を奏することができる。
【図面の簡単な説明】
【図1】JPEG2000アルゴリズムの基本を説明するための説明図である。
【図2】カラー画像の各コンポーネントについて説明するための説明図である。
【図3】デコンポジション・レベル数が3の場合の、各デコンポジション・レベルにおけるサブ・バンドを示す説明図である。
【図4】コード・ストリームの構造の説明図である。
【図5】一つのプレシンクトが空間的に一致した3つの矩形領域からなっていることの説明図である。
【図6】係数値をビットプレーン単位に分解し、画素あるいはコード・ブロック毎にビットプレーンに順位付けを行なうことの説明図である。
【図7】本発明の一実施の形態であるネットワークシステムの概略構成のブロック図である。
【図8】サーバ、クライアントの電気的な接続のブロック図である。
【図9】ネットワークシステムの機能ブロック図である。
【図10】符号列作成手段を説明する機能ブロック図である。
【図11】各ウェーブレット変換係数の説明図である。
【図12】ウェーブレット変換係数と量子化ビット数の関係を示す説明図である。
【図13】量子化テーブルの説明図である。
【図14】符号列作成手段の他の例を説明する機能ブロック図である。
【図15】インターレースのくし型の説明図である。
【図16】画像の動き量を判断する処理のフローチャートである。
【図17】サーバが行なう処理のフローチャートである。
【図18】クライアントが行なう処理のフローチャートである。
【符号の説明】
1 画像送信装置
2 画像受信装置
3 ネットワーク
10 ネットワークシステム
17 記憶媒体
22 構文解析手段
24 送信手段、受信手段
25 統合化手段
31 受信手段、送信手段
35 データ読込量検出手段
41 誤差量作成手段
42 符号列変換手段[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image transmission device, a network system, a program, and a storage medium.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, there is a moving image distribution technology in which moving image data is supplied from a server, a transfer request of moving image data is issued from a client to a server, and a moving image is reproduced by a client based on the received data. . In this technique, download reproduction and stream reproduction are generally known as methods in which a reproduction device on the client side receives and reproduces moving image data from a server.
[0003]
Download reproduction is to reproduce the data downloaded from the server to the buffer of the client. This type is to reproduce the data once it is loaded into the buffer. There is a disadvantage that the playback time is short, but if all the data is received and then played back, there is an advantage that the moving image can be played regardless of the processing load on the server side, the speed of the transmission path, and the congestion situation. .
[0004]
On the other hand, in the streaming reproduction, a reproduction device on the client side continuously requests data from a server and performs a reproduction process of a moving image in parallel with an operation of acquiring the data on a buffer. In this type, since the client continuously receives moving image data, the data in its own buffer is reproduced and discarded, while new data is overwritten. Therefore, there is an advantage that a long-time moving image can be reproduced without being limited by the storage capacity of the buffer.
[0005]
However, there are disadvantages in that the server load increases due to an increase in the number of clients accessing the server at the same time, and the transmission line is easily affected by the speed. Therefore, there is a possibility that a serious problem that reproduction of a moving image is stopped due to an increase in a load on a server or a decrease in speed of a transmission line. In general, as a method for avoiding such a serious influence, a method called scalability for changing the capacity of moving image data is known.
[0006]
Conventionally, MPEG1 / MPEG2 / MPEG4 dedicated to moving images and Motion JPEG which treats still images as continuous frames have been used as image compression / decompression algorithms. Recently, however, the encoding of the latter Motion still images has been used. As for, a new method called Motion JPEG2000 is being standardized as an international standard.
[0007]
[Patent Document 1]
JP 2001-274861 A
[Problems to be solved by the invention]
However, in the conventional moving image distribution technology, distribution contents are generally stored on a server in advance with a plurality of scalabilities, and a user selects the most suitable scalability according to a transmission capability of a communication path and a reproduction capability of a client. It is common to perform streaming playback.
[0009]
In this case, the user who operates the client selects scalability in consideration of the restrictions on the communication path, etc., but if the state of the communication path changes on the way, or if there is an optimal condition among the given options. However, it is not always possible to obtain an optimal image for the constraints. In order to cope with this, it is conceivable to dynamically change the scalability according to the load of the server based on the prepared original image. The image quality is degraded, and an unnecessarily large amount of code is used in a scene that is not complicated, resulting in poor utilization efficiency of a communication path or the like.
[0010]
An object of the present invention is to enable transmission of an image whose scalability is dynamically changed according to a processing load on a transmission side.
[0011]
Another object of the present invention is to prevent image quality deterioration while dynamically changing scalability.
[0012]
[Means for Solving the Problems]
According to the first aspect of the present invention, the syntax of the code string data is divided into one or a plurality of small areas for each frame, and a code string hierarchically compression-coded for each of the small areas is targeted. Syntactic analysis means for analyzing a code string, code string conversion means capable of simultaneously and concurrently performing a plurality of processes for creating a new code string from the code string based on the analysis result, Transmitting means for transmitting to the respective destinations, receiving means for receiving information on the amount of data read per unit time when the transmitted code string is received at the respective destinations from the respective destinations, and Integrating means for integrating the information of each data read amount and detecting the traffic congestion state of the network; and integrating the error amount of data between the code string before creation and the new code string. Results and specified according to an image transmission apparatus and a, and the error amount specifying means for causing the creation to the code sequence conversion means such that the specified amount of error.
[0013]
Therefore, when network traffic becomes congested, the amount of error is increased to reduce the amount of data in the code string to be transmitted, so that scalability is dynamically changed according to network traffic to transmit images. Can be.
[0014]
According to a second aspect of the present invention, in the image transmission device according to the first aspect, the error amount designating unit receives the designation of the error amount from a transmission destination of the code string via the network.
[0015]
Therefore, it is possible to transmit the image while dynamically changing the scalability according to the network traffic, using the error amount designated on the transmission side according to the network traffic.
[0016]
According to a third aspect of the present invention, in the image transmission device according to the first or second aspect, the code string conversion unit discards a code of the code string included in the code string before creation. The creation is performed by reading data representing the error amount.
[0017]
Therefore, a new code string is created by reading data representing an error amount due to discarding the code of the code string included in the code string before creation of the new code string from the header information or the like, and creating a new code string. The image can be transmitted by dynamically changing the scalability according to the image data.
[0018]
According to a fourth aspect of the present invention, in the image transmission device according to any one of the first to third aspects, the code string conversion unit uses a wavelet transform to create the code string before the creation. In this case, the error amount designating unit uses a plurality of tables in which the number of quantization bits for each wavelet transform coefficient for each wavelet transform coefficient of the code sequence is arranged in the order of visual deterioration degree for the image of the created code sequence. A table is selected according to the specified error amount, and the creation is performed based on the data of the table.
[0019]
Therefore, by adjusting the wavelet transform coefficient, it is possible to dynamically change the scalability according to the traffic of the network and transmit the image.
[0020]
According to a fifth aspect of the present invention, in the image transmitting apparatus according to any one of the first to fourth aspects, the code string conversion unit performs the creation according to a frame rate of a specified image.
[0021]
Therefore, since the scalability is dynamically changed according to not only the traffic of the network but also the frame rate, it is possible to prevent image deterioration.
[0022]
According to a sixth aspect of the present invention, in the image transmitting apparatus according to any one of the first to fifth aspects, the image transmitting apparatus further includes a motion amount detecting unit configured to detect a motion amount of an image with respect to the code sequence before creation. The column conversion means performs the creation according to the detected amount of motion.
[0023]
Therefore, the scalability is dynamically changed according to not only the traffic of the network but also the amount of motion of the image, so that the deterioration of the image can be prevented.
[0024]
According to a seventh aspect of the present invention, there is provided the image transmitting apparatus according to any one of the first to sixth aspects, and a plurality of image receiving apparatuses receiving the code string transmitted by the image transmitting apparatus via a network. And a network system comprising:
[0025]
Therefore, the same operation and effect as the invention according to any one of claims 1 to 6 can be obtained.
[0026]
According to an eighth aspect of the present invention, there is provided a computer-readable program for executing the function of each of the means according to any one of the first to sixth aspects.
[0027]
Therefore, the same operation and effect as the invention according to any one of claims 1 to 6 can be obtained.
[0028]
According to a ninth aspect of the present invention, there is provided a storage medium storing the program according to the eighth aspect.
[0029]
Therefore, the same operation and effect as the invention described in claim 8 can be obtained.
[0030]
BEST MODE FOR CARRYING OUT THE INVENTION
[Overview of JPEG2000 algorithm]
First, an outline of a JPEG2000 algorithm which is a prerequisite technique in an embodiment of the present invention will be described.
[0031]
FIG. 1 is an explanatory diagram for explaining the basics of the JPEG2000 algorithm. The JPEG2000 algorithm includes a color space conversion / inverse conversion unit 111, a two-dimensional wavelet conversion / inverse conversion unit 112, a quantization / inverse quantization unit 113, an entropy encoding / decoding unit 114, and a tag processing unit 115. I have.
[0032]
As shown in FIG. 2, in the color image, generally, each component (here, the RGB primary color system) of the original image is divided by rectangular regions (tiles) 123122, 123. Each of the tiles, for example, R00, R01, ..., R15 / G00, G01, ..., G15 / B00, B01, ..., B15 is a basic unit when executing the compression / decompression process. Therefore, the compression / expansion operation is performed independently for each component and for each tile.
[0033]
When encoding the image data, the data of each tile of each component is input to the color space conversion / inverse conversion unit 111 of FIG. 1 and subjected to color space conversion. A two-dimensional wavelet transform (forward transform) is applied to perform spatial division into frequency bands.
[0034]
FIG. 3 shows subbands at each decomposition level when the number of decomposition levels is three. That is, a two-dimensional wavelet transform is performed on the tile original image (0LL) (decomposition level 0 (131)) obtained by the tile division of the original image, and the sub-level shown in the decomposition level 1 (132) Separate the bands (1LL, 1HL, 1LH, 1HH). Subsequently, two-dimensional wavelet transform is performed on the low-frequency component 1LL in this layer to separate the sub-bands (2LL, 2HL, 2LH, 2HH) indicated by the decomposition level 2 (133). Similarly, two-dimensional wavelet transform is similarly performed on the low-frequency component 2LL to separate the sub-bands (3LL, 3HL, 3LH, 3HH) indicated by the decomposition level 3 (134). Further, in FIG. 3, the sub-bands to be encoded at each decomposition level are indicated by oblique lines. For example, when the number of decomposition levels is 3, the sub-bands (3HL, 3LH, 3HH, 2HL, 2LH, 2HH, 1HL, 1LH, 1HH) indicated by oblique lines are to be encoded, and the 3LL sub-band is Not encoded.
[0035]
Next, bits to be encoded are determined in the specified encoding order, and the quantization / inverse quantization unit 113 in FIG. 1 generates a context from bits around the target bit. The wavelet coefficients after the quantization process are divided into non-overlapping rectangles called “precincts” for each subband. This was introduced to make efficient use of memory in the implementation. As shown in FIG. 5, one precinct is formed of three spatially coincident rectangular areas. Further, each precinct is divided into non-overlapping rectangular "code blocks". This is a basic unit when performing entropy coding.
[0036]
The coefficient value after wavelet transform can be quantized and encoded as it is. However, in JPEG2000, in order to increase the encoding efficiency, the coefficient value is decomposed into “bit plane” units, and each pixel or code block is decomposed. "Bit planes" can be ranked. FIG. 6 briefly shows the procedure. In this example, the original image (32 × 32 pixels) is divided by four tiles of 16 × 16 pixels, and the size of the precinct and the code block at the decomposition level 1 are 8 × 8 pixels and 4 pixels, respectively. × 4 pixels. Precincts and code blocks are numbered in raster order. The pixel expansion outside the tile boundary is performed using a mirroring method, and a wavelet transform is performed by a reversible (5 × 3) filter to obtain a wavelet coefficient value of decomposition level 1. In addition, a conceptual diagram of a representative “layer” for tile 0 / precinct 3 / code block 3 is also shown. The layer structure is easy to understand when the wavelet coefficient values are viewed from the horizontal direction (bit plane direction). One layer is composed of an arbitrary number of bit planes. In this example, layers 0, 1, 2, and 3 are each composed of three bit planes of 1, 3, and 1. Then, a layer including a bit plane closer to the LSB is subject to quantization first, and conversely, a layer closer to the MSB remains without being quantized to the end. A method of discarding from a layer close to the LSB is called truncation, and it is possible to finely control the quantization rate.
[0037]
The entropy encoding / decoding unit 114 (see FIG. 1) encodes each component tile by probability estimation from the context and the target bit. In this way, the encoding process is performed for all the components of the original image in tile units. Finally, the tag processing unit 115 combines all encoded data from the entropy coder unit into one code stream, and performs a process of adding a tag to the code stream. FIG. 4 briefly shows the structure of the code stream. As shown in FIG. 4, tag information called a header is added to the head of the code stream and the head of the partial tiles constituting each tile, followed by the encoded data of each tile. Then, the tag is placed again at the end of the code stream.
[0038]
On the other hand, at the time of decoding, image data is generated from the code stream of each tile of each component, contrary to the encoding. This will be briefly described with reference to FIG. In this case, the tag processing unit 115 interprets the tag information added to the code stream input from the outside, decomposes the code stream into a code stream of each tile of each component, and Decoding processing is performed for each code stream. The position of the bit to be decoded is determined in the order based on the tag information in the code stream, and the quantization / dequantization unit 113 sets the peripheral bits of the target bit position (decoding has already been completed). ) Generates a context. The entropy coding / decoding unit 114 performs decoding by probability estimation from the context and the code stream, generates a target bit, and writes it to the position of the target bit. Since the data decoded in this way is spatially divided for each frequency band, the two-dimensional wavelet transform / inverse transform unit 112 performs an inverse two-dimensional wavelet transform on each of the components, thereby obtaining each component of the image data. The tile is restored. The restored data is converted by the color space conversion / inverse conversion unit 111 into the original color system data.
[0039]
[Embodiment of the invention]
An embodiment of the present invention will be described.
[0040]
FIG. 7 is a block diagram illustrating the network system 10 according to the first embodiment. As shown in FIG. 7, the network system 10 includes a server 1 that transmits a code string obtained by compressing and encoding moving image data using an algorithm such as Motion JPEG2000 via a network 3 such as the Internet, and a code from the server 1. It consists of a client 2 receiving the queue. A plurality of clients 2 can be connected simultaneously (clients 23n (n = 1, 2,...) Shown in FIG. 9).
[0041]
FIG. 8 is a block diagram showing an electrical connection between the server 1 and the client 2. As shown in FIG. 8, the server 1 and the client 2 implement the image transmitting apparatus and the image receiving apparatus of the present invention, respectively, and perform various operations to centrally control each unit of the server 1 (or the client 2). A CPU 11 and a memory 12 including various ROMs and RAMs are connected by a bus 13.
[0042]
The bus 13 is provided with a magnetic storage device 14 such as a hard disk serving as a storage device, an input device 15 including a mouse and a keyboard, a display device 16 such as an LCD and a CRT, an optical disk A storage medium reading device 18 that reads a storage medium 17 that implements the storage medium of the present invention, and a predetermined communication interface 19 that is a communication device that communicates with the network 3 are connected. As the storage medium 17, various types of media such as optical disks such as CDs and DVDs, magneto-optical disks, and flexible disks can be used. Further, as the storage medium reading device 18, specifically, an optical disk drive, a magneto-optical disk drive, a flexible disk drive, or the like is used according to the type of the storage medium 17.
[0043]
The magnetic storage device 14 stores an image transmission program (or an image reception program) for executing the program of the present invention. Generally, the image transmission program (or the image reception program) is installed in the server 1 (or the client 2) by reading from the storage medium 17 embodying the storage medium of the present invention by the storage medium reading device 18, It is installed on the magnetic storage device 14 by downloading from the network 3 or the like. With this installation, the server 1 and the client 2 become operable. The image transmission program and the image reception program may be a part of specific application software. Further, it may operate on a predetermined OS.
[0044]
FIG. 9 is a functional block diagram illustrating processing executed by the network system 10 based on an image transmission program, an image reception program, and the like.
[0045]
First, processing performed by the client 2 based on an image receiving program or the like will be described. In each of the clients 2 (clients 231 to 23n), the transmission / reception unit 31, which is a transmission unit and a reception unit, receives a code string (to be described later) obtained by compressing and encoding an image from the server 1 via the communication interface 19, and receives the code string. After storing the code string in the buffer 32 (magnetic storage device 14), the code string is decoded by the decoding means 33, and the display means 34 displays it on the display device 16.
[0046]
In addition, for the code string received by the transmission / reception means 31, the data read amount detection means 27 monitors the data amount of the code string read by the transmission / reception means 31 per unit time, whereby the traffic of the network 3 is reduced. Determine the degree of crowding. This information (monitoring information) is returned to the server 1 from the transmission / reception means 31 of each client 2.
[0047]
Next, processing performed by the server 1 based on an image transmission program or the like will be described. In the buffer 21 (magnetic storage device 14) of the server 1, for example, a code string obtained by compressing and coding moving image data by the Motion JPEG2000 algorithm is stored. Alternatively, the tiles are divided into small areas of a plurality of tiles, and are compression-encoded hierarchically for each tile. The server 1 performs streaming distribution of the code string according to a request from each of the clients 201 to 20n. That is, the syntax of the code string is analyzed by the syntax analysis means 22 from the header information of the code string stored in the buffer 21, and the individual code string creation means 231 of the code string creation means 23 are analyzed based on the result of the analysis. To 23n convert the code string into a new code string according to the Motion JPEG2000 algorithm (the details will be described later), and transmit / receive the converted code string to a communication interface, which is a transmission unit and a reception unit. 19. Send to the client 2 via the network 3.
[0048]
The integrating means 25 integrates the monitoring information received from each of the clients 201 to 20n, comprehensively determines the traffic congestion state of the network 3, and outputs the result (integrated information). This integration process is performed, for example, as follows.
[0049]
Assuming that the amount of data read per second by each of the clients 201 to 20n is An (unit: bps), the number of each of the clients 201 to 20n is n.
Communication line utilization rate C = ΣAn / B
It becomes. Here, B is the total (unit: bps) of the data transfer capabilities of all the lines, that is, the maximum data distribution capability of the server 1. The usage rate C of the communication line is the content of the integrated information.
[0050]
The parameter creating means 26 serving as an error amount designating means creates parameters for creating a code string in each of the code string creating means 231 to 23n from the integrated information created by the integrating means 25. Specifically, this parameter specifies an error amount of data between a code string before creation and a code string after creation when each of the code string creation units 231 to 23n creates a code string. This specifies the frame rate of the image in the code string created by the code string creation means 231 to 23n.
[0051]
The determination of the parameter is more specifically performed, for example, as follows. That is, a threshold value is provided for the integrated information by the integrating means 25, and when the integrated information is lower than the threshold value, the code string is created so as to increase the data amount per unit time when transmitting the code string. That is, the parameters are created so that the frame rate of the image in the created code sequence is increased, or the amount of error is reduced and the quantization level of the image is reduced.
[0052]
When the integrated information exceeds the threshold value, the load on the code string creating unit 23 is large, so that the code string is created so as to reduce the amount of data per unit time at the time of transmission. That is, the parameters are created so that the frame rate is reduced or the error amount is increased to coarsen the quantization level of the image.
[0053]
Hereinafter, a case where the above-described error amount is used as a parameter will be described. FIG. 10 is a block diagram showing an example of a configuration of each of the code string creation units 231 to 23n. The parameters created by the parameter creation means 26 are input to the quantization table selection means 41. The header information of the code string stored in the buffer 21 is decoded by the syntax analysis means 22 (FIG. 9). Then, based on the header information, the error amount of the data with respect to the original data when each code constituting the code string is partially discarded is input to the quantization table selecting means 41. The quantization table selection unit 41 selects predetermined table data (quantization table) based on the input error amount and the parameter, and sends the selected table data to a quantization unit 42 that is a code string conversion unit. The quantization means 42 selectively discards the code from the code sequence according to the data of the quantization table, and rewrites the header to generate a new code sequence. As described above, since a new code string can be generated in each of the code string generation units 231 to 23n, a plurality of (n) processes for generating a new code string can be executed simultaneously and in parallel.
[0054]
In the quantization table, for each wavelet transform coefficient as exemplified in FIG. 11, the quantization bit number (code discard amount) for each wavelet transform coefficient is recorded as shown in FIG. As shown in FIG. 13, this quantization table is held as a quantization table group in which a plurality of quantization tables (quantization bit numbers) are arranged in order of visual deterioration degree after quantization in association with Index. . The quantization table selection means 41 selects an Index quantization table in which the error amount when the code is partially discarded from the code string becomes the error amount specified by the parameter when the quantization tables are combined. .
[0055]
Therefore, the parameter created by the parameter creation means 26 determines the integrated information stepwise (or steplessly), and when determining stepwise, the error amount is specified by the number of quantization bits according to the step. Just fine. For example, if the integrated information is determined in five stages, and if the stage 5 is the case where the network 3 is the most congested, the stages 1 to 5 of the integrated information are respectively replaced with the quantization bit numbers 1 to 5 which are error amounts. Should be made to correspond. Since the degree of visual deterioration after quantization and the above-described error amount usually have a monotonically increasing relationship, it is easy to select a quantization table having an error amount according to a parameter. In general, it is desirable that the quantization table is configured to quantize the low-frequency component more importantly than the high-frequency component so that deterioration is not visually noticeable.
[0056]
FIG. 14 is a functional block diagram of another configuration example of each of the code string creation units 231 to 23n. The header information of the code string stored in the buffer 21 is decoded by the syntax analysis means 22 (FIG. 9), and the error amount of the data with respect to the original data when each code is partially discarded from the header information is quantized. Is input to the conversion table selection means 41. The motion amount detection means 43 detects the motion amount of the image based on the code amount of each wavelet transform coefficient analyzed by the syntax analysis means 22. The quantization table selection unit 41 determines the input error amount and the frame rate specified by the client 2 (this example assumes that the client 2 can transmit the frame rate specification to the server 1). , And based on the motion amount detected by the motion amount detecting means 43, the same quantization table as described above is selected and sent to the quantization means 42. The quantization means 42 generates a new code string by partially discarding the code from the code string and rewriting the header based on the data of the quantization table and the frame rate specified by the client 2. I do.
[0057]
The selection of a table from the plurality of quantization tables is the same as in the example described with reference to FIGS. 11 to 13, but the quantization table selection unit 41 holds a plurality of quantization table groups. Thus, a predetermined table group is selected and adapted according to the frame rate and the amount of motion.
[0058]
The motion amount detecting means 43 detects the motion amount of the image as follows. FIG. 15 is an explanatory diagram for explaining the concept of the amount of motion of an image in the Motion JPEG2000 system. As shown in FIG. 15, in an interlaced image, a fast moving image has a long horizontal edge as shown in FIG. 15A (referred to as an interlaced comb type). On the other hand, an image having a slow motion has a short horizontal edge as shown in FIG. FIG. 15B shows a case where the intermediate movement is a medium speed. These differences appear greatly in the 1LH component representing the horizontal edge amount of the high frequency component. That is, in an image having a large amount of motion, the absolute value of the coefficient of the 1LH component increases, and as a result, the code amount of the 1LH component increases. However, if the motion amount of the image is determined only by the code amount of the 1LH component, the threshold value may vary depending on the image. Therefore, the code amount of the 1LH component is normalized by the code amount of the 1HL component, and the value is calculated by May be used as the feature amount of the detection of.
[0059]
Further, since the above-mentioned feature is greatly exhibited in the code amount before cutting the bit plane (post-quantization), the code amount is written with the 1LH and 1HL code amounts before cutting the bit plane, and the motion is calculated using the value. A configuration for estimating the amount is also possible. This is particularly effective when the image compression ratio is high.
[0060]
FIG. 16 is a flowchart illustrating an example of a process of determining the amount of motion of an image in this case.
[0061]
As shown in FIG. 16, first, the sum (sum1LH) of the lossless code amounts of 1 LH is calculated (step S1), and the sum (sum1HL) of the lossless code amounts of 1HL is calculated (step S2), and “sum1LH” is obtained. Is divided by "sum1HL" (step S3), and the result (speed) is compared with a predetermined threshold (th1). If "speed>th1" (Y in step S3), the amount of motion of the image is large. Is determined (step S4). If “speed ≦ th1” (N in step S3), it is determined that the amount of motion of the image is small (step S5).
[0062]
Further, in the case of a high-speed image, the degree of visual deterioration can be suppressed by performing quantization so as to leave the above-mentioned comb shape. However, when the frame rate is reduced by thinning out the frames, one frame is displayed longer, and as a result, the comb shape becomes conspicuous. Therefore, when the frame rate is reduced, it is necessary to perform quantization so that the comb pattern does not remain even in a high-speed image. Table 1 shows the combinations. That is, when the frame rate is high, the comb pattern is stored when the motion amount is large, and not when the motion amount is small. When the frame rate is low, the comb type is not saved regardless of the amount of motion.
[0063]
[Table 1]
Figure 2004166156
[0064]
The processing of the client 2 and the server 1 described above will be described below in the form of flowcharts shown in FIGS. First, as shown in FIG. 17, when a code string is received from the server 1 (Y in step S11), the client 2 detects the amount of code string read per unit time by the data read amount detecting means 27. (Step S12) The error amount creating means 28 creates an error amount parameter from the detected value (Step S13) and transmits it to the server 1 (Step S14).
[0065]
As shown in FIG. 18, when there is a code string to be transmitted (Y in step S21), the server 1 receives an error amount received from each client 2 (in the example of FIG. Are integrated (step S22), a quantization table is selected based on the integrated information as described above (step S23), and a new code string is formed according to the quantization table. It is created (step S24), and the created code string is transmitted (step S25).
[0066]
As described above, according to the present network system 10, when the traffic of the network 3 becomes congested, the error amount is increased and the data amount of the code string to be transmitted is reduced, so that the network 3 operates according to the traffic of the network 3. The image can be transmitted while the scalability is changed.
[0067]
Further, according to the configuration example described with reference to FIG. 14 and subsequent figures, the scalability is dynamically changed according to not only the traffic of the network 3 but also the frame rate and the amount of motion of the image. be able to.
[0068]
【The invention's effect】
According to the first aspect of the invention, when network traffic becomes congested, the amount of error is increased to reduce the data amount of a code string to be transmitted, thereby dynamically changing scalability in accordance with network traffic. Image transmission.
[0069]
According to a second aspect of the present invention, in the first aspect of the present invention, the scalability is dynamically changed according to the network traffic by using the error amount designated by the transmission side according to the network traffic. Images can be transmitted.
[0070]
According to a third aspect of the present invention, in the first or second aspect, data representing an error amount due to discarding a code of the code string included in the code string before creation of a new code string. Can be read from header information or the like to create a new code string, and the image can be transmitted while dynamically changing the scalability according to network traffic.
[0071]
The invention according to claim 4 is the invention according to any one of claims 1 to 3, wherein the scalability is dynamically changed according to network traffic by adjusting the wavelet transform coefficient. Transmission can be performed.
[0072]
The invention according to claim 5 is the invention according to any one of claims 1 to 4, wherein the scalability is dynamically changed according to the frame rate as well as the network traffic. Can be prevented.
[0073]
In the invention according to claim 6, in the invention according to any one of claims 1 to 4, the scalability is dynamically changed according to not only the traffic of the network but also the amount of motion of the image. Deterioration can be prevented.
[0074]
The inventions according to claims 7 to 9 can provide the same functions and effects as the inventions according to any one of claims 1 to 6.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram for explaining the basics of a JPEG2000 algorithm.
FIG. 2 is an explanatory diagram for describing each component of a color image.
FIG. 3 is an explanatory diagram showing sub-bands at each decomposition level when the number of decomposition levels is three.
FIG. 4 is an explanatory diagram of a structure of a code stream.
FIG. 5 is an explanatory diagram showing that one precinct is formed of three spatially coincident rectangular regions.
FIG. 6 is an explanatory diagram of decomposing a coefficient value in units of bit planes and ranking the bit planes for each pixel or code block.
FIG. 7 is a block diagram of a schematic configuration of a network system according to an embodiment of the present invention.
FIG. 8 is a block diagram of electrical connection between a server and a client.
FIG. 9 is a functional block diagram of a network system.
FIG. 10 is a functional block diagram illustrating a code string creating unit.
FIG. 11 is an explanatory diagram of each wavelet transform coefficient.
FIG. 12 is an explanatory diagram showing the relationship between wavelet transform coefficients and the number of quantization bits.
FIG. 13 is an explanatory diagram of a quantization table.
FIG. 14 is a functional block diagram illustrating another example of a code string creating unit.
FIG. 15 is an explanatory diagram of an interlace comb type.
FIG. 16 is a flowchart of a process of determining a motion amount of an image.
FIG. 17 is a flowchart of a process performed by a server.
FIG. 18 is a flowchart of a process performed by a client.
[Explanation of symbols]
REFERENCE SIGNS LIST 1 image transmission device 2 image reception device 3 network 10 network system 17 storage medium 22 syntax analysis unit 24 transmission unit, reception unit 25 integration unit 31 reception unit, transmission unit 35 data read amount detection unit 41 error amount creation unit 42 code string Conversion means

Claims (9)

動画像データをフレームごとに1又は複数の小領域に分割してこの小領域ごとに階層的に圧縮符号化した符号列を対象として、その符号列データの構文を解析する構文解析手段と、
この解析結果に基づいて前記符号列から新たな符号列を作成する処理を同時並行的に複数実行できる符号列変換手段と、
この作成した各符号列をネットワークを介して各送信先に送信する送信手段と、
前記各送信先からそれぞれ当該送信先で前記送信した符号列を受信した際における単位時間当たりのデータ読込量の情報を受信する受信手段と、
この受信した各データ読込量の情報を統合して前記ネットワークのトラフィックの混雑状況を検出する統合化手段と、
前記作成前の符号列と前記新たな符号列とのデータの誤差量を前記統合の結果に応じて指定して、この指定した誤差量となるように前記符号列変換手段に前記作成を行なわせる誤差量指定手段と、
を備えている画像送信装置。
Syntax analysis means for dividing the video data into one or a plurality of small areas for each frame and analyzing the syntax of the code string data for a code string hierarchically compression-coded for each of the small areas;
Code string conversion means capable of simultaneously and concurrently executing a plurality of processes for creating a new code string from the code string based on the analysis result,
Transmitting means for transmitting each of the created code strings to each destination via a network;
Receiving means for receiving information on the amount of data read per unit time when receiving the transmitted code string at each of the destinations from each of the destinations,
Integrated means for integrating the information of the received data read amounts to detect the traffic congestion state of the network;
An error amount of data between the code string before creation and the new code string is specified according to the result of the integration, and the code string conversion unit is made to perform the creation so as to have the specified error amount. Error amount designating means;
An image transmission device comprising:
前記誤差量指定手段は、前記誤差量の指定を前記ネットワークを介して前記符号列の送信先から受信する、請求項1に記載の画像送信装置。The image transmitting apparatus according to claim 1, wherein the error amount specifying unit receives the specification of the error amount from a transmission destination of the code string via the network. 前記符号列変換手段は、前記作成前の符号列に含まれている当該符号列の符号を破棄することによる前記誤差量を表わすデータを読取って前記作成を行なう、請求項1又は2に記載の画像送信装置。The method according to claim 1, wherein the code string conversion unit performs the creation by reading data representing the amount of error caused by discarding a code of the code string included in the code string before creation. Image transmission device. 前記符号列変換手段は、前記作成前の符号列の作成にウェーブレット変換が用いられている場合に、当該符号列の各ウェーブレット変換係数についてウェーブレット変換係数ごとの量子化ビット数を前記作成後の符号列の画像についての視覚的劣化度順に並べた複数のテーブルから、前記誤差量指定手段で指定した前記誤差量に応じてテーブルを選択し、このテーブルのデータに基づいて前記作成を行なう、請求項1〜3の何れかの一に記載の画像送信装置。The code string transforming means, when a wavelet transform is used to create the code string before creation, calculates the number of quantization bits for each wavelet transform coefficient for each wavelet transform coefficient of the code string after the creation. A table is selected from a plurality of tables arranged in the order of visual deterioration degree of the image in the row according to the error amount specified by the error amount specifying means, and the creation is performed based on the data of the table. The image transmission device according to any one of claims 1 to 3. 前記符号列変換手段は、指定された画像のフレームレートに応じて前記作成を行なう、請求項1〜4の何れかの一に記載の画像送信装置。The image transmission device according to claim 1, wherein the code string conversion unit performs the creation according to a frame rate of a designated image. 前記作成前の符号列について画像の動き量を検出する動き量検出手段を備え、
前記符号列変換手段は、前記検出した動き量に応じて前記作成を行なう、請求項1〜5の何れかの一に記載の画像送信装置。
A motion amount detection unit that detects a motion amount of an image with respect to the code string before creation,
The image transmission device according to claim 1, wherein the code string conversion unit performs the creation according to the detected amount of motion.
請求項1〜6の何れかの一に記載の画像送信装置と、
この画像送信装置がネットワークを介して送信する前記符号列を受信する複数台の画像受信装置と、
を備えているネットワークシステム。
An image transmitting device according to any one of claims 1 to 6,
A plurality of image receiving devices that receive the code string transmitted by the image transmitting device via a network,
A network system comprising:
請求項1〜6の何れかの一に記載の発明の前記各手段の機能を実行するコンピュータに読取り可能なプログラム。A non-transitory computer-readable program that executes a function of each of the means according to any one of claims 1 to 6. 請求項8に記載のプログラムを記憶している記憶媒体。A storage medium storing the program according to claim 8.
JP2002332424A 2002-11-15 2002-11-15 Image transmitter, network system, program, and storage medium Pending JP2004166156A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002332424A JP2004166156A (en) 2002-11-15 2002-11-15 Image transmitter, network system, program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002332424A JP2004166156A (en) 2002-11-15 2002-11-15 Image transmitter, network system, program, and storage medium

Publications (1)

Publication Number Publication Date
JP2004166156A true JP2004166156A (en) 2004-06-10

Family

ID=32809512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002332424A Pending JP2004166156A (en) 2002-11-15 2002-11-15 Image transmitter, network system, program, and storage medium

Country Status (1)

Country Link
JP (1) JP2004166156A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008034939A (en) * 2006-07-26 2008-02-14 Oki Electric Ind Co Ltd Data distribution system, distribution server, and server and receiving terminal
JP2011507401A (en) * 2007-12-14 2011-03-03 マイクロソフト コーポレーション Communication of changing visual content

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008034939A (en) * 2006-07-26 2008-02-14 Oki Electric Ind Co Ltd Data distribution system, distribution server, and server and receiving terminal
JP4569535B2 (en) * 2006-07-26 2010-10-27 沖電気工業株式会社 Data distribution system and server
JP2011507401A (en) * 2007-12-14 2011-03-03 マイクロソフト コーポレーション Communication of changing visual content
US8890874B2 (en) 2007-12-14 2014-11-18 Microsoft Corporation Changing visual content communication
US9082337B2 (en) 2007-12-14 2015-07-14 Microsoft Technology Licensing, Llc Changing visual content communication
US9330634B2 (en) 2007-12-14 2016-05-03 Microsoft Technology Licensing, Llc Changing visual content communication

Similar Documents

Publication Publication Date Title
US7386176B2 (en) Image sending apparatus and image receiving apparatus for sending and receiving code sequence data
JP4755148B2 (en) Method for providing interactive remote browsing of compressed digital video signals
JP4392783B2 (en) Movie reproduction system, movie transmission device, movie transmission method, program, and recording medium
JP2004192140A (en) Data communication system, data transmitting device, data receiving device and method, and computer program
US7970220B2 (en) Image processing apparatus and method for performing decoding process on coded data of motion picture based on a plurality of attributes thereof
JP5515758B2 (en) Image processing apparatus and method
JP4151963B2 (en) Image server device, client device, moving image distribution method, program, and information recording medium
WO2011037049A1 (en) Image processor and image processing method
JP3952459B2 (en) Image processing apparatus, program, storage medium, and image processing method
JP2004221633A (en) Image processing apparatus, image processing program, and storage medium
JP2004214828A (en) Image processing apparatus, image processing method, computer program for image processing, and storage medium for storing the image processing computer program
US7409095B2 (en) Image processing apparatus and method for scalable encoded image data
JP2011147050A (en) Image processing apparatus and method
JP2004166156A (en) Image transmitter, network system, program, and storage medium
JP2004166132A (en) Image transmitter, network system, program and storage medium
JP2004166107A (en) Image transmitter, image receiver, network system, program and storage medium
JP2004040526A (en) System for distributing image and system for distributing and reproducing image
JP4124436B2 (en) Motion estimation device, program, storage medium, and motion estimation method
JP2004072147A (en) Image distribution system, image reproducing system, and image distribution reproducing system
JP2006303669A (en) Encoded data processor and processing program
JP2004260539A (en) Image decoding system and program
JP2004166096A (en) Image transmitter, image receiver, network system, program, storage medium, image transmission method and image reception method
JP4520499B2 (en) Image processing apparatus, image processing program, and storage medium
JP2004007163A (en) Image distributing system and image reproducing system
JP2004336405A (en) Dynamic image processing apparatus, program, storage medium, and dynamic image processing method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041007

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050414

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050414

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20060925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070518

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071030