(57)【要約】【課題】送信遅延を低減しつつ、より高画質な画像を送信することができる画像送信装置および方法、画像受信装置および方法を提供する。【解決手段】圧縮部は、入力された画像を可逆圧縮して、画像の圧縮データを得る。送信部は、圧縮データを、複数に分割したデータパケットとして、上位ビット側から順次送信する。判定部は、受信側で画像の表示が一定時間以上停止するか否かを判定する。判定部が、受信側で画像の表示が一定時間以上停止すると判定した場合、送信部は、送信中の前記圧縮データの送信を継続する。【選択図】図１
2012138851.tif 000002
【特許請求の範囲】
【請求項１】
圧縮した動画像を受信側に送信する画像送信装置であって、
入力された画像を可逆圧縮して、前記画像の圧縮データを得る圧縮部と、
前記圧縮データを、複数に分割したデータパケットとして、上位ビット側から順次送信する送信部と、
受信側で前記画像の表示が一定時間以上停止するか否かを判定する判定部と
を備え、
前記判定部が、受信側で前記画像の表示が一定時間以上停止すると判定した場合、前記送信部は、送信中の前記圧縮データの送信を継続する、
画像送信装置。
【請求項２】
受信側からコマンドを受信するコマンド受信部をさらに備え、
前記コマンドは、
送信が再生状態か一時停止状態かを示す再生コマンドを含み、
前記判定部は、
前記再生コマンドが一時停止状態である場合、受信側で前記画像の表示が一定時間以上停止すると判定する、請求項１記載の画像送信装置。
【請求項３】
前記コマンドは、前記圧縮データを全て送信するロスレスモードか、前記圧縮データの下位ビット側を切り捨てた非可逆圧縮データを送信するロッシーモードかを示す伝送モードを含み、
前記判定部は、
前記伝送モードがロスレスモードである場合、受信側で前記画像の表示が一定時間以上停止すると判定する、請求項１又は２記載の画像送信装置。
【請求項４】
前記判定部は、
前記圧縮部に入力される連続する複数の前記画像が実質的に同一である場合、受信側で前記画像の表示が一定時間以上停止すると判定する、請求項１から３記載の画像送信装置。
【請求項５】
前記圧縮データは、切捨て不可能なデータと、切捨て可能なデータとを含み、
前記送信部が切捨て不可能なデータを送信中、前記判定部は、受信側で前記画像の表示が一定時間以上停止すると判定する、請求項１から４記載の画像送信装置。
【請求項６】
前記送信部は、
前記圧縮データの前記データパケットが、前記圧縮データの先頭であるか否かを示すフレーム先頭情報と、前記圧縮データの送信が停止された際の終端データであるか否かを示すフレーム終端情報と、前記圧縮データの末尾であるか否かを示すロスレス情報とを前記圧縮データの先頭に付加して送信する、請求項１から５記載の画像送信装置。
【請求項７】
動画像を送信側から受信する画像受信装置であって、
前記動画像の各フレームの圧縮データの一部を先頭から順次を受信する受信部と、
プログレッシブモードか否かを表す再生モードに基づいて、任意のタイミングで受信済みの１フレームの圧縮データの一部を伸張するか、前記圧縮データの全てを受信してから伸張するかを選択し、受信済みの前記圧縮データを伸張する伸張部と、
送信側に再生状態か一時停止状態かを示す再生コマンドを送信するコマンド送信部と
を備え、
前記伝送コマンド送信部が一時停止状態の前記再生コマンドを送信した場合、前記受信部は、受信中の前記圧縮データを全て受信するまでは前記圧縮データの受信を継続し、
前記伸張部は、受信した前記圧縮データの伸張を継続する、画像受信装置。
【請求項８】
前記再生モードがプログレッシブモードでない場合、
前記伸長部は、１フレームの前記圧縮データを全て受信してから伸張し、
前記再生モードがプログレッシブモードである場合、
前記伸長部は、受信済みの前記圧縮データの一部を伸張する、請求項７記載の画像受信装置。
【請求項９】
圧縮した動画像を受信側に送信する画像送信方法であって、
入力された画像を可逆圧縮して、前記画像の圧縮データを得、
前記圧縮データを、複数に分割したデータパケットとして、上位ビット側から順次送信し、
受信側で前記画像の表示が一定時間以上停止するか否かを判定し、
受信側で前記画像の表示が一定時間以上停止すると判定した場合、送信中の前記圧縮データの送信を継続する、
画像送信方法。
【請求項１０】
動画像を送信側から受信する画像受信方法であって、
前記動画像の各フレームの圧縮データの一部を先頭から順次を受信し、
プログレッシブモードか否かを表す再生モードに基づいて、任意のタイミングで受信済みの１フレームの圧縮データの一部を伸張するか、前記圧縮データの全てを受信してから伸張するかを選択し、受信済みの前記圧縮データを伸張し、
送信側に再生状態か一時停止状態かを示す再生コマンドを送信し、
一時停止状態の前記再生コマンドを送信した場合、前記受信の際は、受信中の前記圧縮データを全て受信するまでは前記圧縮データの受信を継続し、
前記伸張の際は、受信した前記圧縮データの伸張を継続する、画像受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像送信装置および方法、画像受信装置および方法に関する。
【背景技術】
【０００２】
階層符号化やＪＰＥＧ２０００、プログレッシブＪＰＥＧ等の追加データを受信すれば画質が向上する符号化方式を用いて、送信遅延を低減しかつ高画質な画像を送信する画像送信装置がある。例えば、時系列に入力されるフレームの圧縮データを順次送信する際、次のフレームを送信すべきタイミングに、現在送信中のフレームが未だ送信中であっても、当該送信中のフレームが所定の画質を満たしていれば送信を中止して次のフレームの送信を開始し、所定の画質を満たしていない場合は送信を継続する。
【０００３】
このような画像送信装置では、送信遅延を低減しつつ、より高画質な画像を送信することができるものが望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５９２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明が解決しようとする課題は、送信遅延を低減しつつ、より高画質な画像を送信することができる画像送信装置および方法、画像受信装置および方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一の実施形態に係る画像送信装置は、圧縮した動画像を受信側に送信する画像送信装置であって、圧縮部と、判定部と、送信部とを備える。
【０００７】
圧縮部は、入力された画像を可逆圧縮して、前記画像の圧縮データを得る。送信部は、前記圧縮データを、複数に分割したデータパケットとして、上位ビット側から順次送信する。判定部は、受信側で前記画像の表示が一定時間以上停止するか否かを判定する。前記判定部が、受信側で前記画像の表示が一定時間以上停止すると判定した場合、前記送信部は、送信中の前記圧縮データの送信を継続する。
【０００８】
また、本発明の他の実施形態に係る画像受信装置は、動画像を送信側から受信する画像受信装置であって、受信部と、伸長部と、コマンド送信部とを備える。
【０００９】
受信部は、前記動画像の各フレームの圧縮データの一部を先頭から順次を受信する。伸張部は、プログレッシブモードか否かを表す再生モードに基づいて、任意のタイミングで受信済みの１フレームの圧縮データの一部を伸張するか、前記圧縮データの全てを受信してから伸張するかを選択し、受信済みの前記圧縮データを伸張する。コマンド送信部は、送信側に再生状態か一時停止状態かを示す再生コマンドを送信する。前記伝送コマンド送信部が一時停止状態の前記再生コマンドを送信した場合、前記受信部は、受信中の前記圧縮データを全て受信するまでは前記圧縮データの受信を継続し、前記伸張部は、受信した前記圧縮データの伸張を継続する。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係る画像送信装置１を表すブロック図。
【図２】データバッファ１２１の構造を表す一例図。
【図３】圧縮データパケット１０２の説明図。
【図４】圧縮部１１の処理を表すフローチャート。
【図５】データ送信部１２２の処理を表すフローチャート。
【図６】第２の実施の形態に係る画像送信装置２を表すブロック図。
【図７】判定部２４及び圧縮部１１の処理を表すフローチャート。
【図８】第３の実施の形態に係る画像受信装置３を表すブロック図。
【図９】受信部３０の処理を表すフローチャート。
【図１０】伸長部３２の処理を表すフローチャート。
【図１１】画像送信装置１及び画像受信装置３を用いたシステムの効果の説明図。
【図１２】画像送信装置２及び画像受信装置３を用いたシステムの効果の説明図。
【発明を実施するための形態】
【００１１】
（第１の実施の形態）
第１の実施の形態に係る画像送信装置１は、動画像を非可逆圧縮したデータで受信側の装置（画像受信装置）に送信するものである。画像送信装置１は、例えば、シンクライアントシステム等に用いることができる。
【００１２】
画像送信装置１は、入力画像として動画像の各フレームを受け取って、例えば可逆圧縮する。この可逆圧縮したデータの下位ビット側を任意の位置で切り捨てることにより、非可逆圧縮のデータを生成する。このような非可逆圧縮のデータを生成可能な圧縮方式を、以下、特定圧縮方式と呼ぶ。画像送信装置１は、特定圧縮方式で得た圧縮データを上位ビット側から順に任意のデータサイズで受信側に送信する。
【００１３】
画像受信装置において動画像が再生状態の場合、画像送信装置１はフレームレートに応じたデータサイズの圧縮データを受信側に順次送信する。画像受信装置において動画像が一時停止された場合には、画像送信装置１が一時停止された際の画像の圧縮データの送信を継続する。
【００１４】
これにより、画像送信装置１は、送信遅延を低減しつつ、より高画質な画像を送信することができる。
【００１５】
図１は、画像送信装置１を表すブロック図である。画像送信装置１は、入力部１０と、圧縮部１１と、送信部１２と、コマンド受信部１３と、判定部１４とを備える。送信部１２は、データバッファ１２１と、データ送信部１２２とを含む。
【００１６】
入力部１０は、圧縮対象となる入力画像１００を入力する。
【００１７】
圧縮部１１は、特定圧縮方式を用いて、動画像として順次入力される入力画像１００を圧縮する。特定圧縮方式には、例えばＪＰＥＧ２０００等がある。
【００１８】
データバッファ１２１は、複数のフレーム（（Ｎ＋１）フレーム）の圧縮データのストリーム（圧縮データストリーム５０）を格納する。圧縮データストリーム５０は、圧縮データ１０１を含む。
【００１９】
データバッファ１２１は、例えば図２に示すような構造であり、（Ｎ＋１）フレームの圧縮データストリーム５０を格納可能であってよい。画像送信装置１が起動されると、データバッファ１２１は（Ｎ＋１）の圧縮データストリーム５０のバッファを準備する。圧縮部１１は、圧縮データストリーム５０を格納するインデックスを示す「stored_Idx」を保持するレジスタ（不図示）を初期化する。圧縮部１１は、現在格納されている圧縮データストリーム５０の数を示す「stored_Num」を保持するレジスタ（不図示）を初期化する。図２では、stored_Idx=３、stored_Num=３の例を示している。
【００２０】
データ送信部１２２は、データバッファ１２１に格納された圧縮データストリーム５０の一部を、圧縮データパケット１０２にパケット化して受信側に送信する。本実施形態では、伝送プロトコルとしてＴＣＰ／ＩＰを用いるが、別の伝送プロトコルを用いて送信してよい。圧縮データパケット１０２については後述する。
【００２１】
コマンド受信部１３は、受信側からの要求（送信要求）や受信側での機器操作を示すコマンド１０３を受信する。コマンド１０３には、例えば、セッション開始コマンド、セッション終了コマンド、伝送モード、受信したい動画像のフレームレート、画質、再生コマンド（一時停止／再生開始）等がある。
【００２２】
ここで、伝送モードは、圧縮データを全て送信する「ロスレスモード」、及び、圧縮データの下位ビット側を切り捨てた非可逆圧縮データを送信する「ロッシーモード」の２つのモードを含む。受信側は伝送モードを、任意のタイミングでコマンド１０３として入力することにより、ロスレスモードとロッシーモードとを切り換えることが可能であってよい。
【００２３】
なお、伝送モードでロッシーモードが指定された場合には、受信側はさらに伝送画質を示す情報をコマンド１０３で送信してもよい。伝送画質を示す情報とは、例えば、圧縮データがビットプレーンで圧縮されている場合に、ＭＳＢ側から何ビット目までは切り捨てない等の情報や、入力画像１００とのＰＳＮＲ（Peak Signal to Noise Ratio）を指定する情報等、送信する画像の画質を示す情報であればどのような情報でもよい。
【００２４】
再生コマンドとは、受信側で受信した画像の再生開始や一時停止を指示するコマンドである。なお、画像送信装置１の状態は、起動されたときには初期状態（ＩＮＩＴ）となっており、セッションを開始するコマンド（セッション開始コマンド）をコマンド受信部１３が受信すると、圧縮に必要な初期化を行った後、再生待ち状態（ＲＥＡＤＹ）となる。
【００２５】
再生開始コマンドをコマンド受信部１３が受信すると、圧縮部１１は入力画像１００の入力を開始し、画像送信装置１は再生状態（ＰＬＡＹ）となる。一時停止コマンドをコマンド受信部１３が受信すると、圧縮部１１は入力画像１００の入力を一時停止し、画像送信装置１は一時停止状態（ＰＡＵＳＥ）となる。
【００２６】
セッションを終了するコマンド（セッション終了コマンド）をコマンド受信部１３が受信すると、圧縮部１１は圧縮を中止する。データ送信部１２２は送信を中止し、データバッファ１２１に残っているデータを破棄する。そして、画像送信装置１の状態は再び初期状態（ＩＮＩＴ）に戻る。
【００２７】
判定部１４は、受信側で表示される動画像が、一定時間以上停止するか否かを判定する。本実施形態において、判定部１４は、再生コマンドに基づき、データ送信部１２２が現在送信中の画像の圧縮データパケット１０２の送信を継続するか否かを判定する。
【００２８】
判定部１４による判定がＮＯ（偽）の場合（すなわち、再生状態の場合）、データ送信部１２２は、データバッファ１２１に格納されている圧縮データストリーム５０の一部を先頭から順次読み出し、圧縮データパケット１０２として送信する。判定部１４による判定がＹＥＳ（真）の場合（すなわち、一時停止の場合）、データ送信部１２２は、送信中の画像の各圧縮データパケット１０２の送信を継続する。  入力部１０と、圧縮部１１と、送信部１２と、コマンド受信部１３と、判定部１４とは、中央演算処理装置（ＣＰＵ）及びＣＰＵが用いるメモリにより実現されてよい。また、グラフィックスプロセッシングユニット（ＧＰＵ）を用いてもよい。
【００２９】
以上、画像送信装置１の構成について説明した。
【００３０】
ここで、圧縮データパケット１０２について説明する。図３は圧縮データパケット１０２の説明図である。圧縮データストリーム５０において、圧縮データ１０１の先頭には、圧縮データ１０１を識別するためのtime_stampと、基本レイヤのデータサイズを示すmin_sizeとが付加されている。ここで、基本レイヤとは、圧縮データのうち、例えば圧縮データを伸張するために必ず必要なデータを含むデータであり、切り捨てると伸張が不可能となる切捨て不可能なデータである。
【００３１】
圧縮データパケット１０２とは、圧縮データストリーム５０を任意のデータサイズでパケット化されたものである。圧縮データパケット１０２の先頭には、パケットヘッダが付加されている。
【００３２】
パケットヘッダは、圧縮データパケット１０２のサイズを示すパケットサイズと、付加された圧縮データパケット１０２がフレームの先頭であるか否かを示すフレーム先頭情報と、付加された圧縮データパケット１０２がフレームの終端であるか否かを示すフレーム終了情報とを含む。
【００３３】
フレーム終了情報は、付加された圧縮データパケット１０２がフレームの終端であるか（ＴＲＵＥ）否か（ＦＡＬＳＥ）のフラグであるエンドフラグ（end_flag）と、圧縮データパケットが圧縮データの終端を含むか否かを示すロスレスフラグとを含む。
【００３４】
以上、圧縮データパケット１０２について説明した。
【００３５】
図４は、圧縮部１１の処理を表すフローチャートである。
【００３６】
図４のフローチャートは、入力部１０が圧縮対象となる入力画像１００を入力し、圧縮部１１に供給した状態からスタートする。なお、入力画像１００は、受信側から指定されるか、又は予め設定されたフレームレートで入力される。
【００３７】
圧縮部１１は、データバッファ１２１に空きがあるか否かを判定する（Ｓ３０１）。これは、stored_Numの値がＮより小さいか否かで判定することができる。すなわち、stored_Num＞Ｎの場合はデータバッファ１２１に空きがないと判定し、stored_Num≦Ｎの場合はデータバッファ１２１に空きがあると判定してよい。
【００３８】
ステップＳ３０１における判定がＮＯの場合、圧縮部１１は入力画像１００を破棄し（Ｓ３０２）、処理を終了する。
【００３９】
ステップＳ３０１における判定がＹＥＳの場合、圧縮部１１は、入力画像１００を特定圧縮方式により圧縮し、圧縮データ１０１を生成する（Ｓ３０３）。圧縮部１１は、圧縮データ１０１をデータバッファ１２１のstored_Idx番目に格納する（Ｓ３０４）。なお、図３では、stored_Idx番目のバッファアドレスをbuf[stored_Idx]と表記している。圧縮部１１は、stored_Idxを更新し（Ｓ３０５）、処理を終了する。例えば、stored_Idx＜Ｎの場合、圧縮部１１は、stored_Idxに１加算し、stored_IdxがＮの場合、stored_Idxを０とする。そして、またstored_Numの値を１インクリメントする。
【００４０】
圧縮部１１の処理について説明した。
【００４１】
図５は、データ送信部１２２の処理を表すフローチャートである。データ送信部１２２は、画像送信装置１が起動され、受信側からのセッション開始コマンドをコマンド受信部１３が受信することにより、処理を開始する。
【００４２】
データ送信部１２２は、データバッファ１２１内の圧縮データストリーム５０上で次に送信する圧縮データパケット１０２の先頭アドレスを示す「bufptr」を初期化する。データバッファ１２１の何番目のインデックスに格納された圧縮データストリーム５０から圧縮データパケット１０２を送信するかを示す「data_Idx」を初期化する。1フレームの圧縮データの送信を停止するかどうかを示す「end_flag」を初期化する（Ｓ４０１）。データ送信部１２２は、例えば、bufptr＝０、data_Idx＝０、end_flag＝ＦＡＬＳＥとして初期化してよい。
【００４３】
データ送信部１２２は、セッションが終了しているか否かを判定する（Ｓ４０２）。ステップＳ４０２における判定がＹＥＳの場合、データ送信部１２２は処理を終了する。
【００４４】
ステップＳ４０２における判定がＮＯの場合、データ送信部１２２は、データバッファ１２１に圧縮データがあるか否かを判定する（Ｓ４０３）。例えば、データバッファ１２１に圧縮データがあるか否かを判定してよい。その場合は、例えばstored_Num＞０であるか否かで判定すればよい。
【００４５】
ステップＳ４０３における判定がＮＯ（stored_Num＝０）の場合、データ送信部１２２は、一定時間待機した後、ステップＳ４０２に遷移する。
【００４６】
ステップＳ４０３における判定がＹＥＳ（stored_Num＞０）の場合、データ送信部１２２は、画像送信装置１の状態が再生状態（ＰＬＡＹ）であるか否かを判定する（Ｓ４０５）。
【００４７】
ステップＳ４０５における判定がＹＥＳ（再生状態）の場合、データ送信部１２２は、前回送信した圧縮データパケット１０２がフレームの終端であったか否かを判定する（Ｓ４０６）。これはend_flagがＴＲＵＥであるか否かで判定してよい。
【００４８】
ステップＳ４０６における判定がＮＯ（end_flag＝ＦＡＬＳＥ）の場合、データ送信部１２２は、伝送モードがロスレスモードであるかロッシーモードであるかを判定する（Ｓ４０９）。
【００４９】
ステップＳ４０６における判定がＹＥＳ（end_flag＝ＴＲＵＥ）の場合、データ送信部１２２は、end_flagをＦＡＬＳＥにセットし（ステップ４０７）、ステップＳ４０９に遷移する。
【００５０】
ステップＳ４０５における判定がＮＯ（再生状態でない）の場合、一時停止状態で、かつ前回送信した圧縮データパケット１０２がフレームの終端でなかったか否か（end_flagがＦＡＬＳＥか否か）を判定する（Ｓ４０８）。ステップＳ４０８における判定がＮＯ（一時停止状態でない、又は、一時停止状態でかつend_flagがＴＲＵＥである）の場合、データ送信部１２２は、一定時間待機し（Ｓ４０４）、ステップ４０２に遷移する。
【００５１】
ステップＳ４０９における判定がロッシーモードの場合、データ送信部１２２は、送信中のフレームの送信を停止するか否かを判定する（Ｓ４１０）。この判定は、再生状態である場合、例えば、stored_Num＞１となった場合に打ち切りとしてend_flagをＴＲＵＥとしてもよい。
【００５２】
また、伝送帯域を監視し、指定されたフレームレートに基づいて計算されるフレーム間隔で送信可能なデータ量を、次に生成する圧縮データパケット１０２のペイロードサイズ（payload_size）で送信し終えるか否かを判定し、送信し終える場合に打ち切りと判定してもよい。ここで、ペイロードサイズとは、圧縮データパケット１０２からパケットヘッダを除いたデータ本体のサイズを示すものである。
【００５３】
この際に、伝送画質をなるべく一定とするように、前のフレームと同じ画質となるまでは送信を打ち切らないと判定してもよい。また、ロッシーモードで画質が指定されている場合には、その画質を達成するデータサイズを、次に生成する圧縮データパケット１０２のペイロードサイズで送信し終えるか否かを判定し、送信し終える場合に打ち切りとしてend_flagをＴＲＵＥとしてもよい。
【００５４】
ステップＳ４１０における判定がＹＥＳ（送信を停止する）の場合、データ送信部１２２は、end_flagをＴＲＵＥにセットし（Ｓ４１１）、送信する圧縮データパケット１０２がフレームの圧縮データストリーム５０の終端か否かを判定する（Ｓ４１２）。終端か否かは、送信中のフレームの次に送信する圧縮データパケット１０２の先頭位置を示すbufptrにパケットのペイロードサイズ(payload_size)を加えた値が、圧縮データストリーム５０全体のサイズ(stream_size)より大きいか否かで判定してよい。
【００５５】
また、フレームレートを維持できるように送信打ち切りを行う手法であれば、ここに述べた以外の方法で判定してもかまわない。一時停止状態の場合には、送信打ち切りは行わないと判定する。
【００５６】
ステップＳ４１０における判定がＮＯ（送信を打ち切らない）の場合、ステップＳ４１２に遷移する。ステップＳ４０９における判定がロスレスモードの場合、ステップＳ４１２に遷移する。
【００５７】
ステップＳ４１２における判定がＹＥＳ（終端）の場合、データ送信部１２２は、end_flagをＴＲＵＥにセットする（Ｓ４１３）。なお、ペイロードサイズは予め決められた一定の値（１０２４byteなど）でもよいし、伝送帯域以下で、１フレーム間隔で十分に送ることができるサイズを圧縮データパケット１０２毎に計算して用いてもよい。例えば伝送帯域がbandwidth(bps)であり、フレームレートがframerate(fps)であった場合、payload_size(byte)は例えば式１により算出されてよい。
【数１】
2012138851.tif 000003
【００５８】
ここで、右辺の数字「８」は、byte単位をbit単位に変換する値である。ステップＳ４１３でend_flagをＴＲＵＥにセットした場合、ペイロードサイズは例えば式２で算出される値に変更してよい。
【数２】
2012138851.tif 000004
【００５９】
データ送信部１２２は、圧縮データパケット１０２を生成する（Ｓ４１４）。圧縮データストリーム５０は、例えば図３に示すように、圧縮データ１０１の前に例えば４byteのタイムスタンプと４byteのミニマムサイズ（min_size）が付加されてデータバッファ１２１に格納されているとする。
【００６０】
ここで、min_sizeは圧縮データ１０１のうち、切り捨て不可能なデータのサイズを示す値である。bufptrはtime_stamp及びmin_sizeが付与された圧縮データ１０１上のアドレスを示しており、最初は０すなわち先頭を示す。
【００６１】
ステップＳ４１４では、データ送信部１２２は、bufptrが指し示すアドレスからpayload_sizeで示されたデータサイズ分だけデータを切り出し、データの先頭に例えば４byteのパケットサイズおよび１byteのフレーム先頭情報と１byteのフレーム終端情報を付加して圧縮データパケット１０２とする。
【００６２】
パケットサイズは、パケットサイズ、フレーム先頭情報、フレーム終了情報および切り出した圧縮データの全てを含むデータのバイト数としてもよいし、切り出した圧縮データ１０１のバイト数としてもよい。
【００６３】
フレーム先頭情報は、例えばbufptrが０であれば１とし、bufptrが非０であれば０とする。フレーム終端情報は、例えばend_flagが０の場合には０とする。end_flagが１で、かつ圧縮データの末尾が切り出した圧縮データに含まれない場合、すなわち該パケットを送信しても可逆の圧縮データを送信することが不可能であれば１とする。end_flagが１で、かつ圧縮データの末尾が切り出した圧縮データに含まれる場合、すなわち該パケットを送信することで可逆のデータを送信することが可能であれば２とする。
【００６４】
データ送信部１２２は、生成した圧縮データパケット１０２を受信側に送信する（Ｓ４１５）。送信が終了すると、データ送信部１２２は、end_flagがＴＲＵＥであれば、buf[stored_Idx]に格納された圧縮データ１０１を破棄し、bufptr=0とする。また、データ送信部１２２は、stored_IdxがNであればstored_Idx＝０とし、Ｎより小さければstored_Idxを１インクリメントし、stored_Numをデクリメントする。一方、end_flagがＦＡＬＳＥであれば、bufptrをペイロードサイズ分だけインクリメントする（Ｓ４１６）。その後、ステップ４０２に遷移する。
【００６５】
データ送信部１２２の処理について説明した。
【００６６】
以上、本実施形態について説明した。
【００６７】
例えば、遠隔画像診断システムにおける画像伝送に従来技術を用いると、診断者（受信側）が動画像による診断を行う際に、伝送帯域に対して所定の画質を満たすデータ量が多い場合に、十分なフレームレートで再生することができない。
【００６８】
また、従来技術では、静止画像が入力されたり、診断者（受信側）が一時停止指示を行ったりすることで、あるフレームの画像をより詳細に評価したい場合に、ロスレス画像を表示できない。
【００６９】
本実施形態では、受信側がロスレスモードを選択した場合には入力画像をロスレスで送信でき、ロッシーモードを選択した場合には送信打ち切り処理によってフレームレートを維持した送信を行うことができる。
【００７０】
また、一時停止が指示された場合には、フレームの圧縮データの送信を打ち切らず、送信を継続することにより、より高画質な画像を送信することができる。すなわち、一時停止状態が一定時間以上継続される場合、ロスレス画像を送信することができる。
【００７１】
（第２の実施の形態）
第２の実施の形態に係る画像送信装置２は、連続して入力される２枚以上の入力画像１００が実質的に同一の場合（すなわち、静止画像が入力される場合）に、当該入力画像１００の圧縮データ１０１の送信を継続する点が、画像送信装置１と主に異なる。
【００７２】
図６は画像送信装置２を表すブロック図である。画像送信装置２は、判定部２４と、画像バッファ２５と、圧縮部１１と、送信部１２とを備える。また、図６において、画像送信装置２は、画像送信装置１におけるコマンド受信部１３を含んでいるが、含んでいなくても構わない。
【００７３】
画像バッファ２５は、入力画像１００よりも過去の時刻のフレーム（例えば、直前のフレーム）の過去画像２００を格納する。
【００７４】
判定部２４は、受信側で表示される動画像が、一定時間以上停止するか否かを判定する。本実施形態において、判定部２４は、画像バッファ２５に格納されている過去画像２００と、入力画像１００とを比較して、入力画像１００が過去画像２００と実質的に同一であるか否か（すなわち静止画像であるか否か）を判定する。判定部２４は、判定結果を圧縮部１１に通知する。
【００７５】
以上、画像送信装置２の構成（画像送信装置１と主に異なる点）について説明した。
【００７６】
図７は、判定部２４及び圧縮部１１の処理を表すフローチャートである。図７のフローチャートは、図４のフローチャートにステップＳ７０１と、ステップＳ７０２とが加わる。
【００７７】
ステップＳ７０１について説明する。ステップＳ３０１において、圧縮部１１がデータバッファ１２１に空きがあると判定した場合、判定部２４は、画像バッファ２５に格納されている過去画像２００と、入力画像１００とを比較して、入力画像１００が過去画像２００と実質的に同一であるか否か（すなわち静止画像であるか否か）を判定する（Ｓ７０１）。ステップＳ７０１における判定がＹＥＳ（静止画像）の場合は、ステップＳ３０２に遷移する。ステップＳ７０１における判定がＮＯ（静止画像でない）の場合は、ステップＳ３０３に遷移する。
【００７８】
ステップＳ７０２について説明する。ステップＳ３０５の処理が終了すると、圧縮部１１は、入力画像１００を画像バッファ２５に格納する（Ｓ７０２）。格納された入力画像１００が過去画像２００となる。
【００７９】
判定部２４及び圧縮部１１の処理について説明した。
【００８０】
データ送信部１２２の処理については、図５にしめすフローチャートと同様である。ただし、ステップＳ４１０における処理において、送信中のフレームの次に入力されたフレームが静止画像であると判定された場合には送信を打ち切らない点が異なる。
【００８１】
以上説明したように、本実施形態によれば、静止画像が入力された場合、次に異なる画像が入力されるまでは送信中のフレームの圧縮データ１０１を最後まで送信し続けることにより、より可逆に近い圧縮データを送信することができる。さらに、静止画像の時間が継続すれば、最終的に可逆の画像を送信することができる。
【００８２】
（第３の実施の形態）
第３の実施の形態に係る画像受信装置３は、送信側である上述の画像送信装置１又は画像送信装置２からの圧縮データパケット１０２を受信し、圧縮データパケット１０２を伸長した画像を生成するものである。
【００８３】
図８は、画像受信装置３を表すブロック図である。画像受信装置３は、受信部３０と、データバッファ３１と、伸長部３２と、コマンド送信部３３とを備える。画像受信装置３は、インターネット、イントラネット、無線ＬＡＮ等のネットワークを介して、画像送信装置１又は画像送信装置２に接続されてよい。
【００８４】
受信部３０は、送信側からの圧縮データパケット１０２を受信し、圧縮データ１０１を取り出す。データバッファ３１は、圧縮データ１０１を格納する。伸長部３２は、データバッファ３１から圧縮データ１０１を読み出して伸長画像３００を生成する。コマンド送信部３３は、伝送要求を送信側に送信する。伝送要求は、上述した伝送モード、送信する動画像のフレームレート、動画像の画質、再生コマンドを含む。
【００８５】
コマンド送信部３３は、受信側のユーザが用いるＵＩ（不図示）から指定されるコマンド１０４のうち、送信に関連する伝送要求を画像送信装置に送信する。なお、コマンド１０４は、さらに再生モードを指定するコマンドを含む。再生モードは、フルフレームモードとプログレッシブモードとを含む。
【００８６】
受信側のユーザによりフルフレームモードが選択された場合、伸張部３２は、１フレームの圧縮データ１０１を全て受信した後に、圧縮データ１０１伸張する。プログレッシブモードが選択された場合、伸張部３２は、受信済みの１フレームの圧縮データ１０１の一部を伸張する。なお、１フレームの圧縮データのすべてを受信したか否かは、図３に示すパケットヘッダのフレーム終了情報から判断してよい。
【００８７】
以上、画像送受信装置３の構成について説明した。
【００８８】
画像受信装置３の状態は、起動時には初期状態（ＩＮＩＴ）となっており、セッション開始コマンドをコマンド送信部３３が送信すると、伸張に必要な初期化を行った後、再生待ち状態（ＲＥＡＤＹ）となる。
【００８９】
再生開始コマンドをコマンド送信部３３が送信すると、受信部３０は圧縮データパケット１０２の受信を開始し、画像受信装置３は再生状態（ＰＬＡＹ）となる。取り出した圧縮データ１０１はデータバッファ３１に格納される。データバッファ３１は上述のデータバッファ１２１と同様に、例えば図２に示す構造となっており、初期化時にstored_Idx＝０、stored_Num＝０と、圧縮データ１０１を格納するインデックスと、格納されている圧縮データのフレーム数を初期化する。
【００９０】
一時停止コマンドをコマンド送信部３３が送信すると、画像受信装置３の状態は一時停止状態（ＰＡＵＳＥ）となる。伸張部３２は再生状態（ＰＬＡＹ）のときにデータバッファ３１に一時保存されている圧縮データ１０１を伸張し、伸張画像３００を図示しない表示装置へ出力する。
【００９１】
一時停止状態（ＰＡＵＳＥ）の場合には、データバッファ３１内の圧縮データ１０１が可逆圧縮データとなるまで、すなわち可逆となる伸張画像３００を図示しない表示装置へ出力するまで伸張処理を継続する。
【００９２】
セッション終了コマンドをコマンド送信部３３が送信すると、伸張部３２による伸張と、受信部３０による受信とを中止し、データバッファ３１に残っているデータを破棄する。そして、画像受信装置３の状態は再び初期状態（ＩＮＩＴ）に戻る。
【００９３】
図９は、受信部３０の処理を表すフローチャートである。受信部３０の処理は、ＵＩ（不図示）からセッション開始コマンドが入力され、コマンド送信部３３がセッション開始コマンドをコマンド１０３として送信側に送信した状態からスタートする。
【００９４】
受信部３０は、データバッファ３１内で、圧縮データ１０１を格納する先頭アドレスを示すbufptr及びデータバッファ３１の何番目のインデックスに格納するかを示すstored_Idxを、初期化する（Ｓ９０１）。例えば、bufptr＝０、stored_Idx＝０としてよい。
【００９５】
受信部３０は、セッションが終了したかどうかを判定する（Ｓ９０２）。ステップＳ９０２における判定がＹＥＳ（セッション終了）の場合、処理を終了する。ステップＳ９０２における判定がＮＯ（セッションは終了していない）の場合、受信部３０は、データバッファ３１に空きがあるか否かを判定する（Ｓ９０３）。該判定は、図４のステップＳ３０１と同様の方法で行うことができる。
【００９６】
ステップＳ９０３における判定がＮＯ（空きなし）の場合、受信部３０は一定時間待機し（Ｓ９１０）、ステップＳ９０２に遷移する。ステップＳ９０３における判定がＹＥＳ（空きあり）の場合、受信部３０は、画像受信装置３が再生状態（ＰＬＡＹ）か一時停止状態（ＰＡＵＳＥ）かを判定する（Ｓ９０４）。ステップＳ９０４における判定がＮＯ（再生状態でも一時停止状態でもない）場合、ステップＳ９１０に遷移する。
【００９７】
ステップＳ９０４における判定がＹＥＳ（再生状態か一時停止状態である）場合、受信部３０は、パケットヘッダを受信する（Ｓ９０５）。受信部３０は、ペイロードサイズ分のデータを受信する（Ｓ９０６）。図３に示すとおり、パケットヘッダにはペイロードサイズが含まれている。
【００９８】
ステップＳ９０５及びステップＳ９０６で受信したパケットより、図３に示すパケットサイズ、フレーム先頭情報およびフレーム終了情報を削除すると、圧縮データ１０１の一部が得られる。
【００９９】
受信部３０は、圧縮データ１０１をデータバッファ３１のstored_Idx番目のbufptrが示すアドレスに格納し、bufptrを圧縮データのサイズ分だけインクリメントする（Ｓ９０７）。そして、受信部３０は、フレーム終了情報に含まれるend_flagの値により、圧縮データ１０１が１フレームの圧縮データの終端であるか否かを判定する（Ｓ９０８）。
【０１００】
ステップＳ９０８における判定がＹＥＳ（終端であった）の場合（すなわちend_flagがＴＲＵＥであった場合）、受信部３０は、次に格納するインデックスを示すstored_Idxを更新し、bufptrを０にセットし（Ｓ９０９）、ステップＳ９０２に遷移する。受信部３０は、例えば、stored_Idx＜Ｎの場合にstored_Idxを１加算した値とし、stored_IdxがＮの場合はstored_Idxを０としてよい。ステップＳ９０８における判定がＮＯ（終端でない）の場合は、ステップＳ９０２に遷移する。
【０１０１】
以上、受信部３０の処理について説明した。
【０１０２】
図１０は、伸張部３２の処理を表すフローチャートである。伸張部３２の処理は、ＵＩ（不図示）からセッション開始コマンドが入力され、コマンド送信部３３がセッション開始コマンドをコマンド１０３として送信側に送信した状態からスタートする。
【０１０３】
伸張部３２は、data_idxの値を初期化する（Ｓ１００１）。伸張部３２は、セッションが終了しているか否かを判定する（Ｓ１００２）。ステップＳ１００２における判定がＹＥＳ（セッション終了）の場合は、処理を終了する。
【０１０４】
ステップＳ１００２における判定がＮＯ（セッションが終了していない）場合、伸張部３２は、タイマをセットする（Ｓ１００３）。ここで、タイマにセットされる値は、ＵＩなどより指定されるか、あらかじめ設定されているフレームレートに基づいて計算されたフレーム間隔を指定してもよい。例えばフレームレートが３０ｆｐｓにセットされている場合には、タイマの値は３３ｍｓにセットされる。
【０１０５】
伸張部３２は、データバッファ３１のdata_Idx番目のインデックス（buf[data_Idx]）に圧縮データ１０１が格納されているか否かを判定する（Ｓ１００４）。ステップＳ１００４における判定がＮＯ（圧縮データが格納されていない）場合、伸張部３２は、タイマが終了するのを待機し（Ｓ１０１２）、ステップＳ１００２に遷移する。
【０１０６】
ステップＳ１００４における判定がＹＥＳ（圧縮データが格納されている）の場合、伸張部３２は、画像受信装置３が再生状態又は一時停止状態かを判定する（Ｓ１００５）。ステップＳ１００５における判定がＮＯ（再生状態でも一時停止状態でもない）の場合、ステップＳ１０１２に遷移する。
【０１０７】
ステップＳ１００５における判定がＹＥＳ（再生状態又は一時停止状態である）場合、伸張部３２は、プログレッシブモードか否かを判定する（Ｓ１００６）。ステップＳ１００６における判定がＹＥＳ（プログレッシブモード）である場合、伸張部３２は、buf[data_Idx]に格納されている圧縮データ１０１を(min_size)byte以上受信しているか否か（すなわち圧縮データ１０１のうち、切り捨て不可能なデータを全て受信しているか否か）を判定する（Ｓ１００７）。
【０１０８】
ステップＳ１００７における判定がＮＯ（受信していない）の場合、ステップＳ１０１２に遷移する。ステップＳ１００７における判定がＹＥＳ（受信している）の場合、伸張部３２は、buf[data_Idx]内に格納されている圧縮データ１０１を伸張する。伸張部３２は、伸長した伸長画像３００を、例えば表示装置等へ出力する（Ｓ１００９）。ここで、伸張画像の出力先は表示装置としたがこれに限られない。例えば、ハードディスク等の補助記憶装置等に出力してもよい。
【０１０９】
この際、伸張部３２に供給される圧縮データ１０１は、先頭から受信できたところまでを供給してもよいし、前回の伸張で入力したデータ以降に受信したデータのみを入力してもよい。
【０１１０】
ステップＳ１００６における判定がＮＯ（フルフレームモード）である場合、伸張部３２は、buf[data_Idx]に格納されている圧縮データ１０１のend_flagがＴＲＵＥであるか否か（すなわち、該フレームの圧縮データ１０１の受信を終えているか否か）を判定する（Ｓ１００８）。ステップＳ１００８における判定がＹＥＳ（受信を終えている）の場合、ステップＳ１００９に遷移する。ステップＳ１００８における判定がＮＯ（受信を終えていない）の場合、ステップＳ１０１２に遷移する。
【０１１１】
ステップＳ１００９の後、伸張部３２は、buf[data_Idx]に格納されている圧縮データ１０１のend_flagがＴＲＵＥであるか否か（すなわち、該フレームの圧縮データ１０１の受信を終えているか否か）を判定する（Ｓ１０１０）。ステップＳ１０１０における判定がＹＥＳ（受信を終えている）の場合、伸張部３２は、buf[data_Idx]に格納されている圧縮データを破棄し、data_Idxの値を更新する（Ｓ１０１１）。data_Idxの更新方法は、図９のステップＳ９０９のstored_Idxの更新方法と同様である。ステップＳ１０１０における判定がＮＯ（受信を終えていない）の場合は、ステップＳ１０１２に遷移する。
【０１１２】
以上、伸張部３２の処理について説明した。
【０１１３】
以上、本実施形態について説明した。
【０１１４】
本実施形態によれば、プログレッシブモードを選択した場合には、1フレーム分の圧縮データを途中までしか受信していなくても、指定されたフレームレートに従って順次伸張・表示を行うことができる。
【０１１５】
また、ロスレスモードを選択した場合にはロスレスで送信される圧縮データをプログレッシブモードあるいはフルフレームモードで伸張・表示が可能であり、ロッシーモードを選択した場合には送信打ち切り処理によってフレームレートを維持して送信される圧縮データを受信し、フレームレートを維持して再生することができる。
【０１１６】
また、一時停止指示が行われた場合でも、指定されたフレームレートに基づいたフレーム間隔等で伸張表示処理を行うことで、最終的には送信側から送信される可逆画像を表示することができる。
【０１１７】
また、送信側で静止画像が入力された場合でも、送信側が次に異なる画像が入力されるまでは送信中のフレームの圧縮データを最後まで送信し続けるため、指定されたフレームレートに基づいたフレーム間隔等で伸張・表示処理を行うことでより可逆に近い圧縮データを送信することが可能となる。さらに静止の時間が続けば、最終的には可逆の画像を伸張表示することが可能となる。
【０１１８】
（効果の説明）
図１１は、画像送信装置１及び画像受信装置３を用いたシステムの効果の説明図である。図１１は末尾からトランケーション可能な圧縮ストリームをframe0から例えば33msの間隔で圧縮送信する際の模式図を示している。各矩形は圧縮ストリームを示しており、横の長さがデータ長である。
【０１１９】
例えばframe0の圧縮ストリームをすべて送信すればロスレスとなり、ある一定のところまで送信すれば所定の画質となる伸張画像が得られる。送信されるデータが多ければ多いほど、画質が向上し、より可逆に近い伸張画像が得られる。
【０１２０】
このような圧縮方式を用いた圧縮伝送方式の従来例として、図１１には３つの例を図示している。従来例１は、フレームレートを優先した伝送方式であり、例えば帯域下で33msの間隔で伝送できるデータサイズで送信することでフレームレートを維持する方式であるが、本方式では一時停止指示を行った際でも圧縮データの一部しか送信されないため、一時停止時に表示される画像の画質は低下する。
【０１２１】
従来例２は、すべての画像をロスレスで送信する方式である。フレーム間隔で送信が間に合わない場合は、フレームをスキップするか、1フレームの送信が終わるまで次のフレームを送信しない。このような伝送方式では、常にロスレスで画像を表示することが可能であるが、フレームレートを維持することができない。
【０１２２】
従来例３（特許文献１）は、所定の画質を満たしつつ送信を行う方式であり、フレームレートをある程度維持しつつ高画質で送信が可能であるが、一時停止を行った際も所定の画質でしか送信されず、ロスレスで画像を表示することができないし、フレームレートを維持することもできない。
【０１２３】
図１１に示す、本実施形態を用いたシステムであれば、フレームレートを維持しつつ送信が可能であり、なおかつ一時停止コマンドが入力された場合にはロスレスの画像を送信・表示することが可能となる。
【０１２４】
図１２は、画像送信装置２及び画像受信装置３を用いたシステムの効果の説明図である。
【０１２５】
図１２は、frame２，３，４，〜（ｎ−１）が静止画像である場合の例である。図１１に示す従来例３では静止画を判定しないため、静止画像が入力されても所定の画質でしか表示ができない。
【０１２６】
本実施形態を用いたシステムであれば、frame２の送信が開始された後、frame３〜（ｎ−１）までは静止画像と判定され、圧縮を行わずにframe２の圧縮データの送信が継続され、frame2の圧縮データはロスレスとなるまで送信される。
【０１２７】
また、画像受信装置３においてプログレッシブモードが選択されていると、フレーム間隔に基づいて伸張・表示処理を行うことで、frame２の画像を高速に表示でき、かつ表示画像がロスレスとなるまで徐々に画質が向上するような再生が可能となる。
【０１２８】
以上、上述した実施形態により、送信遅延を低減しつつ、より高画質な画像を送信することができる画像送信装置および方法、画像受信装置および方法を提供することができる。
【０１２９】
なお、この画像送信装置および画像受信装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、入力部１０、圧縮部１１、送信部１２、コマンド受信部１３、判定部１４、判定部２４、コマンド送信部３３、画像受信部３０、伸張部３２は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。またデータバッファ１２１、データバッファ３１、画像バッファ２５は上記コンピュータ装置に搭載されたメモリなどに実現することができる。このとき、画像送信装置および画像受信装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、データバッファ１２１、データバッファ３１および、画像バッファ２５は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【０１３０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１３１】
１、２  画像送信装置
３  画像受信装置
１０  入力部
１１  圧縮部
１２  送信部
１３  コマンド受信部
１４、２４  判定部
２５  画像バッファ
３０  受信部
３１、１２１  データバッファ
３２  伸長部
１２２  データ送信部
【図１】
2012138851.tif 000005
【図２】
2012138851.tif 000006
【図３】
2012138851.tif 000007
【図４】
2012138851.tif 000008
【図５】
2012138851.tif 000009
【図６】
2012138851.tif 000010
【図７】
2012138851.tif 000011
【図８】
2012138851.tif 000012
【図９】
2012138851.tif 000013
【図１０】
2012138851.tif 000014
【図１１】
2012138851.tif 000015
【図１２】
2012138851.tif 000016