(57)【要約】【課題】ノイズによる画質の劣化を防ぐサーバ装置、差分データ生成方法及びプログラムを提供する。【解決手段】第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段と、を有し、前記差分データ生成手段は、前記移動領域検出手段により移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成する。【選択図】図８
2012044546.tif 000002
【特許請求の範囲】
【請求項１】
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段と、を有し、
前記差分データ生成手段は、
前記移動領域検出手段により移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とするサーバ装置。
【請求項２】
前記移動領域検出手段により移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶手段をさらに有することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記差分データ生成手段は、
前記記憶手段により記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項２に記載のサーバ装置。
【請求項４】
前記差分データ生成手段は、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項３に記載のサーバ装置。
【請求項５】
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段と、を有し、
前記差分データ生成手段は、
前記移動領域検出手段により検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とするサーバ装置。
【請求項６】
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出ステップと、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成ステップと、を有し、
前記差分データ生成ステップは、
前記移動領域検出ステップにより移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とする差分データ生成方法。
【請求項７】
前記移動領域検出ステップにより移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶ステップをさらに有することを特徴とする請求項６に記載の差分データ生成方法。
【請求項８】
前記差分データ生成ステップは、
前記記憶ステップにより記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項７に記載の差分データ生成方法。
【請求項９】
前記差分データ生成ステップは、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項８に記載の差分データ生成方法。
【請求項１０】
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出ステップと、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成ステップと、を有し、
前記差分データ生成ステップは、
前記移動領域検出ステップにより検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とする差分データ生成方法。
【請求項１１】
サーバ装置を、
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段として機能させ、
前記差分データ生成手段は、
前記移動領域検出手段により移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とするプログラム。
【請求項１２】
前記サーバ装置を、
前記移動領域検出手段により移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶手段をしても機能させることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記差分データ生成手段は、
前記記憶手段により記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記差分データ生成手段は、
前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成することを特徴とする請求項１３に記載のプログラム。
【請求項１５】
サーバ装置を、
第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、
前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段として機能させ、
前記差分データ生成手段は、
前記移動領域検出手段により検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間の差分データを生成するサーバ装置、差分データ生成方法及びプログラムに関する。
【背景技術】
【０００２】
ネットワークの発達により、あらゆる場所でネットワークに接続できる環境が整ってきている。このため、あらゆる場所で使用できるように、機能を落とし、できる限り軽量化したクライアント装置と、そのクライアント装置に入力された操作の情報を、ネットワークを介して受け取り、その入力された操作に対する処理を行うサーバ装置と、により構成されるクライアントサーバシステムが実用的になってきている。
【０００３】
このようなクライアントサーバシステムでは、クライアント装置に入力された操作の処理結果を示す画面は、サーバ装置により生成される。このため、サーバ装置は、生成した画面の情報を、所定の時間間隔で、クライアント装置に送信し、クライアント装置は、この送信された画面を、入力された操作の処理結果して表示する。
【０００４】
このとき、所定間隔で送られる画面のデータであるフレームデータのデータサイズやネットワークの混雑具合によっては、クライアント装置に操作情報が入力されてから、この操作情報を反映したフレームデータがクライアント装置に表示されるまでに、遅延が生じることがある。
【０００５】
この遅延を小さくするためには、サーバ装置からクライアント装置に送信されるフレームデータのデータサイズはできる限り小さくする必要がある。そこで、フレームデータは、圧縮処理が施され、データサイズを小さくしてから送信される。また、送信するデータの量を少なくするために、連続するフレーム間において変化した部分だけを送信する差分伝送も用いられている。
【０００６】
また、図１９に示すようなフレーム上でのウィンドウ部分の移動の場合などには、動き補償（Motion Compensation）を行うことにより、送信するデータの量をさらに少なくすることができる。
【０００７】
動き補償を行わない差分伝送では、図１９に示すようなフレーム上でのウィンドウ部分の移動の場合、時間的に後のフレームのうちの時間的に前のフレームから変化した領域、つまり、図２０に示すように、時間的に後のフレームのうちの移動前のウィンドウ部分に対応する領域と移動後のウィンドウ部分の領域とを差分領域として検出し、この差分領域のデータを差分データとしてサーバ装置からクライアント装置に送信している。
【０００８】
しかし、移動するウィンドウ部分の画像が変化しない場合は、そのウィンドウ部分の画像のデータは、すでにクライアント装置を格納されている。この場合、クライアント装置は、このウィンドウ部分の画像がどの位置に移動したかの情報を得ることができれば、このウィンドウ部分の画像のデータを、移動後の位置にコピーすることが可能であり、ウィンドウ部分の画像のデータを差分データとして受信する必要がない。
【０００９】
つまり、サーバ装置において、動き補償を行い、ウィンドウ部分の移動に関する情報を得て、この移動に関する情報をクライアント装置に送信し、そして、図２１に示すように、ウィンドウ部分以外のデータだけを差分データとしてサーバ装置からクライアント装置に送信することで、クライアント装置において、ウィンドウ部分が移動した後の画像を再現することが可能になる。つまり、動き補償を行うことにより、図２２に示すように、ウィンドウ部分の移動前の位置情報とウィンドウ部分の移動先についての情報と、残りの差分データを送信するだけで、ウィンドウ部分が移動した後のフレームデータをクライアント装置側で再現することが可能になる。
【００１０】
ここで、ウィンドウ部分の移動前の位置情報としては、ウィンドウ部分の左上端点の座標と右下端点の座標の組み合わせや、左上端点の座標とウィンドウ部分のサイズ（ウィンドウ部分の水平方向の長さと垂直方向の長さ）の組み合わせを送信すれば良い。つまり、ウィンドウ部分の移動前の位置情報としては、４つの数値データを送信するだけで良い。また、ウィンドウ部分の移動先の情報としては、例えば、移動前のウィンドウ部分の左上端点の座標と移動後のウィンドウ部分の左上端点の座標とを結ぶベクトル、つまり、移動ベクトルの情報を送信すれば良い。つまり、ウィンドウ部分の移動先の情報としては、移動ベクトルの座標値である２つの数値データを送信するだけで良い。よって、動き補償を行うことで、移動後のウィンドウ部分のデータを送信する代わりに、６つの数値データを送信すれば良いことになり、送信するデータのデータサイズがかなり小さくすることができる。
【００１１】
例えば、特許文献１では、動き補償を行う具体的な方法、つまり、ウィンドウ部分などの移動領域や、その移動領域の移動ベクトル、差分データを検出する方法などが開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−１９４６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
フレームデータは、フレームを複数の画素からなるブロックに分割し、このブロック単位で圧縮が行われる。このとき、例えば、図７に示すように、圧縮によるノイズが発生することがある。例えば、図７は、１ブロックが８画素×８画素の１６画素であり、画素Ａと画素Ａ以外の画素とが異なる色であるブロックを圧縮した場合の例を示している。この例では、圧縮後のブロックにおいて、画素Ａ以外の画素Ｂ、Ｃ、Ｄにおいて色の変化が生じている。図７の例では、この色の変化した画素は、圧縮に際して画素Ａとの関係で色の変化したものであり、画素Ａに付随して生じるノイズである。画像の圧縮では、色の変化の大きいエッジ部分において、このようなノイズが発生することがある。
【００１４】
このようなノイズは、ノイズを生ずる原因となった画素とともに表示されるときは、目立たず、大きな画質の劣化を生じることはない。つまり、図７の例では、画素Ａにより生じたノイズは、画素Ａとともに表示するときは、目立たず、大きな画質の劣化を生じることはない。
【００１５】
しかしながら、特許文献１に開示された方法では、ウィンドウ部分などの移動領域は、画素単位で検出され、クライアント装置において、この移動領域のコピーが行われる。つまり、フレームデータを圧縮する際の単位と、移動領域のコピーが行われる単位と、が異なる。このため、例えば、図８に示すように、ノイズのみが移動領域に含まれるような場合は、移動領域のコピーの結果、ノイズを生じる原因となった画素Ａと、ノイズである画素Ｂ、Ｃ、Ｄと、が離れて位置してしまうことがある。このような場合、ノイズのみが独立して存在することになり、ノイズが目立ってしまい、画質が劣化してしまう。つまり、特許文献１に開示された方法では、ノイズのみが独立して存在する場合が生じてしまい、画質に劣化を起こすことがある。
【００１６】
そこで本発明は、上記問題点に鑑みてなされたもので、ノイズによる画質の劣化を防ぐサーバ装置、差分データ生成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記課題を解決するため、本発明におけるサーバ装置は、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段と、を有し、前記差分データ生成手段は、前記移動領域検出手段により移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とする。
【００１８】
また、本発明におけるサーバ装置は、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段と、を有し、前記差分データ生成手段は、前記移動領域検出手段により検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とする。
【００１９】
また、本発明における差分データ生成方法は、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出ステップと、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成ステップと、を有し、前記差分データ生成ステップは、前記移動領域検出ステップにより移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とする。
【００２０】
また、本発明における差分データ生成方法は、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出ステップと、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成ステップと、を有し、前記差分データ生成ステップは、前記移動領域検出ステップにより検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とする。
【００２１】
また、本発明におけるプログラムは、サーバ装置を、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として複数の画素からなるブロック単位で検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段として機能させ、前記差分データ生成手段は、前記移動領域検出手段により移動領域が検出されたときは、前記異なる画像領域から前記移動領域を除いた領域を差分領域として検出し、当該差分領域と前記移動領域の枠部分を含むブロックとを合わせた領域のデータを差分データとして生成することを特徴とする。
【００２２】
また、本発明におけるプログラムは、サーバ装置を、第１のフレームと第２のフレームの２つのフレームを比較することにより、当該２つのフレームの何れにも存在する画像領域であってフレーム上での位置が移動している領域である移動領域を検出する移動領域検出手段と、前記第２のフレームのうちで前記第１のフレームとは異なる画像領域を差分領域として検出し、当該差分領域のデータを差分データとして生成する差分データ生成手段として機能させ、前記差分データ生成手段は、前記移動領域検出手段により検出された移動領域の移動画素数に応じて、差分領域として検出する範囲を変更することを特徴とする。
【発明の効果】
【００２３】
本発明により、ノイズによる画質の劣化を防ぐことができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態に係るクライアントサーバシステムの構成例を示す図である。
【図２】本発明の実施形態に係るサーバ装置の構成例を示す図である。
【図３】本発明の実施形態に係る移動領域と移動ベクトルとを説明する図である。
【図４】本発明の実施形態に係る移動領域のコピーを説明する図である。
【図５】本発明の実施形態に係る差分領域の検出を説明する図である。
【図６】ノイズのみがコピーされる状況を説明する図である。
【図７】ブロック単位での圧縮とノイズの発生とを説明する図である。
【図８】本発明の実施形態に係る差分データ生成部により生成される差分データを説明する図である。
【図９】本発明の実施形態に係る差分データ生成部による差分データの生成の方法例を説明する図である。
【図１０】本発明の実施形態に係る差分データ生成部による差分データの生成の方法例を説明する図である。
【図１１】ノイズとノイズの発生原因である画素とが異なるブロックにコピーされた状況を説明する図である。
【図１２】ノイズの発生原因である画素のみが差分データにより書き換えられる状況を説明する図である。
【図１３】差分領域の検出例を示す図である。
【図１４】本発明の実施形態に係る差分データ生成部による生成される差分データを説明する図である。
【図１５】ノイズの発生原因である画素のみが差分データのうちの拡大された部分に含まれている状況を説明する図である。
【図１６】差分領域の検出例を示す図である。
【図１７】本発明の実施形態に係る差分データ生成部による生成される差分データを説明する図である。
【図１８】本発明の実施形態に係る差分データ生成部による生成される差分データを説明する図である。
【図１９】ウィンドウ部分の移動を説明する図である。
【図２０】差分領域を説明する図である。
【図２１】差分領域を説明する図である。
【図２２】移動領域の位置情報と移動ベクトルと差分データによるフレームの再現を説明する図である。
【発明を実施するための形態】
【００２５】
次に、本発明を実施するための形態について図面を参照して詳細に説明する。
【００２６】
＜クライアントサーバシステムの構成例＞
図１は、本発明の実施形態に係るクライアントサーバシステムの構成例である。本実施形態に係るクライアントサーバシステムは、サーバ装置１００と、クライアント装置２００と、を有して構成される。サーバ装置１００とクライアント装置２００とはネットワークを介して接続されている。図１では、クライアント装置２００は、一台であるが、複数台であっても良い。
【００２７】
＜サーバ装置１００の構成例＞
図２は、本発明の実施形態に係るサーバ装置１００の構成例を示す図である。本実施形態に係るサーバ装置１００は、記憶部１１０と、移動ベクトル検出部１２０と、移動領域検出部１３０と、差分データ生成部１４０と、圧縮部１５０と、送信部１６０と、を有して構成される。サーバ装置１００は、このような構成で、図３に示すように、２つの時間的に連続したフレームを比較し、それぞれのフレームのうちで移動した移動領域と、この移動領域の移動距離と移動方向を示す移動ベクトルと、を検出する。そして、移動ベクトルと移動領域と時間的に前のフレームとを用いて差分データを生成し、移動ベクトルの情報と移動領域の情報と差分データとをクライアント装置２００に送信する。
【００２８】
以降、この比較される２つの時間的に連続したフレームのうち、時間的に前のフレームを移動前フレーム、時間的に後のフレームを移動後フレームと呼ぶことにする。つまり、サーバ装置１００は、記憶部１１０に記憶された移動前フレームと移動後フレームを用いて、移動ベクトル検出部１２０により移動ベクトルを検出し、移動領域検出部１３０により移動領域を検出し、差分データ生成部１４０により差分データを生成し、圧縮部１５０により差分データを圧縮し、移動ベクトルの情報と移動領域の情報と圧縮された差分データとを送信部１６０によりクライアント装置２００に送信する。
【００２９】
記憶部１１０は、移動前フレームや移動後フレームなどを記録する。記憶部１１０は、１つでも良いし、記憶するデータごとに用意されるようにしても良い。例えば、記憶部１１０として、ＲＡＭやハードディスクなどを備えるようにし、頻繁に読み書きを行う必要のあるデータは、ＲＡＭなどに記憶するようにし、頻繁に読み書きを行う必要のないデータは、ハードディスクなどに記憶するようにしても良い。
【００３０】
移動ベクトル検出部１２０は、記憶部１１０に記憶された移動前フレームと移動後フレームとに基づき、移動ベクトルを検出する。
【００３１】
移動領域検出部１３０は、記憶部１１０に記憶された移動前フレーム、移動後フレームと、移動ベクトル検出部１２０により検出された移動ベクトルに基づき、移動領域を検出する。
【００３２】
差分データ生成部１４０は、記憶部１１０により記憶された移動前フレームと移動後フレームと、移動ベクトル検出部１２０により検出された移動ベクトルと、移動領域検出部１２０により検出された移動領域と、を用いて、差分データを生成する。
【００３３】
圧縮部１５０は、差分データ生成部１４０により生成された差分データをブロック単位で圧縮する。
【００３４】
送信部１６０は、移動ベクトル検出部１２０により検出された移動ベクトルの情報と、移動領域検出部１３０により検出された移動領域の情報と、圧縮部１５０により圧縮された差分データと、をクライアント装置２００に送信する。
【００３５】
クライアント装置２００は、サーバ装置１００から送信された移動ベクトルの情報と、移動領域の情報と、差分データと、クライアント装置２００に格納された移動前フレームのフレームデータと、により、移動後フレームを再現する。つまり、クライアント装置２００は、移動前フレームの移動領域に対応する部分を移動ベクトルだけ移動させた位置にコピーし、差分データに対応する部分を差分データで書き換えることで、移動後フレームを再現する。
【００３６】
＜差分データの生成（１）＞
差分データ生成部１４０は、動き補償を伴う場合、移動後フレームのうちで移動前フレームと異なる領域から移動領域を除いた領域のデータを差分データとして生成する。このとき、差分データ生成部１４０は、例えば、図４に示すように、移動前フレームの移動領域を、移動前フレームの、移動ベクトルで移動させた位置にコピーしたフレームを生成し、このフレームと移動後フレームとを比較することにより、図５に示すような差分領域を検出し、この差分領域のデータを差分データとして生成すると良い。
【００３７】
この差分データは、圧縮部１５０によりブロック単位で圧縮され、送信部１６０によりサーバ装置１００からクライアント装置２００に送信される。このため、差分領域は、ブロック単位で検出する必要がある。一方、移動領域のコピーは、クライアント装置内で行われる処理であり、クライアント装置２００に格納されたデータは、圧縮されたデータである。このため、移動領域は、画素単位で検出を行えば良い。
【００３８】
この圧縮される単位と移動領域を検出する単位との違いにより、図５に示すように差分データを生成した場合には、次のような問題が生じる。
【００３９】
動き補償を伴う際、クライアント装置２００では、格納しているデータ上で、移動領域を移動ベクトルだけ移動した位置にコピーする。このとき、例えば、移動領域の端の部分に、図６に示すようなブロックがあったとする。このブロックは、画素Ａと画素Ａ以外の画素とが異なる色であるブロックを圧縮した結果、図７に示すように、画素Ａに付随するノイズ（画素Ｂ、Ｃ、Ｄ）が発生したブロックである。図７に示すように、画素Ａとノイズとが近くに位置するときは、このノイズは目立つことはなく、画質の劣化に大きな影響を及ぼすことはない。
【００４０】
しかし、図６に示すように、画素Ａが移動領域に含まれず、ノイズのみが移動領域含まれた場合には、ノイズのみが移動領域としてコピーされることになる。このとき、図６に示すように、このノイズは、画素Ａとは離れて位置することになる。つまり、ノイズのみが独立して存在することになり、ノイズが目立つようになり、画質の劣化に大きな影響を及ぼすことになる。
【００４１】
そこで、本実施形態に係る差分データ生成部１３０は、図８に示すように、コピーされた移動領域の枠部分の画素を含むブロック部分も含めて、差分データを生成する。
【００４２】
これにより、図６に示すように、ノイズのみがコピーされたとしても、このノイズ部分は、差分データにより書き換えられることになる。よって、ノイズを発生させた画素から離れた位置にノイズのみが存在することがなくなり、圧縮のノイズの残存による画質の劣化を防ぐことが可能になる。
【００４３】
このような差分データを得るために、差分データ生成部１３０は、例えば、図４に示すように、移動前フレームの移動領域を、移動前フレームの、移動ベクトルで移動させた位置にコピーしたフレームを生成した後に、図９に示すように、コピーされた移動領域の枠部分の画素を、本来のデータと違うデータに置き換えるようにすると良い。そして、この移動領域の枠部分の置き換えを行ったフレームと、移動後フレームと、を比較することにより、図１０に示すように、差分領域を検出し、この差分領域のデータを差分データとして生成することにより、図８に示すような差分データを生成することが可能になる。
【００４４】
＜差分データの生成（２）＞
上述したように、クライアント装置２００における移動領域のコピーは、画素単位で行われる。このため、例えば、図７に示すように、ノイズが発生したブロック部分がコピーを経験した結果、クライアント装置２００に格納されたフレームデータ上では、図１１に示すように、画素Ａと、画素Ａに付随するノイズと、が異なるブロックに含まれることになることがある。このとき、図１２に示すように、画素Ａが含まれたブロックのみが差分データに書き換えられた場合、ノイズのみが残ってしまうことになる。このように、ノイズのみが残ると、ノイズが目立つことになってしまい、画質を劣化させてしまう。
【００４５】
そこで、本実施形態に係る差分データ生成部１３０は、このノイズが含まれるブロックに対しても差分データを生成し、その差分データにより書き換えることにする。
【００４６】
このために、本実施形態では、クライアント装置２００に格納されたフレームデータのブロックそれぞれが、コピーされた画素を含んでいるのかどうかを示すコピー情報を、サーバ装置１００の記憶部１１０が記憶するようにする。このコピー情報は、例えば、フレーム上の各ブロックに対して用意したフラグにより構成することができる。そして、動き補償を行う際に、この動き補償のために、コピーされた画素を含むことになるブロックに対しては、フラグを立てるようにする。また、差分データにより書き換えられ、コピーされた画素を含まない状態に戻ったブロックに対しては、フラグを降ろすようにするようにする。このようにすることで、クライアント装置２００に格納されたフレームデータの各ブロックのブロックそれぞれが、コピーされた画素を含んでいるのかどうかをサーバ装置１００において知ることが可能になる。
【００４７】
そして、本実施形態では、差分データ生成部１４０は、連続する２つのフレーム間の差分領域を検出し、その検出された差分領域の各辺において、１つだけ外側のブロック列のなかに、コピーされた画素が含まれているのかを、この記憶部１１０に記憶されたコピー情報により確認する。差分データ生成部１４０は、コピーされた画素が含まれているブロック列の辺に対しては、差分領域にこのブロック列も加えた部分に対して差分データを生成する。このようにすることにより、ノイズのみが含まれるブロックも差分データにより書き換えられることになり、ノイズのみが残存することを防ぐことが可能になる。
【００４８】
例えば、図１３に示すように、差分領域の右側のブロック列に、コピーを経験した画素を含んだブロックがあるときには、図１４に示すように、このブロックを含む領域に対して差分データを生成することにする。これにより、図１２のようにノイズのみが残存することを防ぐことが可能になる。
【００４９】
なお、差分領域を拡大して差分データを生成する際、図１４に示した例のように、この拡大された差分データの１つだけ外側のブロック列のなかに、コピーされた画素が含まれているような場合もある。しかし、このような場合は、以下に示すように、図１２に示した場合とは異なり、差分データによる書き換えにより画質が劣化することはない。
【００５０】
例えば、拡大された差分データが占める領域の１つだけ外側のブロック列のなかに、コピーされた画素が含まれている例として、図１５に示すように、画素Ａが、拡大された差分データのうちの拡大された部分にあり、画素Ａに付随するノイズが、拡大された差分データが占める領域外にある場合を考える。このとき、画素Ａの位置は、差分データが占める領域内ではあるが、差分領域外である。よって、画素Ａの位置では、移動前フレームと移動後フレームとの間では、変化がない。よって、画素Ａが含まれるブロックにおいて、サーバ装置１００からクライアント装置２００に送信されるデータと、クライアント装置２００が格納しているデータと、は、圧縮の関係で正確には異なるが、ほぼ同じデータである。このため、画素Ａが含まれるブロックが差分データにより書き換えられたとしても、そのブロックから画素Ａが消えることはない。よって、このようなときは、画素Ａに付随するノイズのみが残るようなことが起きず、差分データによる書き換えにより画質が劣化することはない。
【００５１】
また、この差分領域を拡大して差分データを生成する処理は、動き補償を伴う場合も行うと良い。本実施形態では、上述したように、差分データ生成部１４０は、動き補償を伴う場合、図８に示すように、コピーされた移動領域の枠部分の画素を含むブロック部分も含めて、差分データを生成する。このとき、差分データ生成部１４０は、さらに、この生成した差分データが占める領域の１つ外側のブロック列にコピーされた画素を含むブロックが存在するかどうかの確認もし、存在する場合には、上述したように、この存在するブロック列も含む領域に対して差分データを生成するようにすると良い。
【００５２】
＜差分データの生成（３）＞
差分領域にブロック列を加える際、図１６に示すような場合には、差分領域の辺に接するブロックをすべて加える必要はない。そこで、図１７に示すように、差分領域の辺に接するブロックのうち、コピーを経験した画素を含むブロックを覆う最小限のブロック列だけを差分データに加えるようにすると良い。このようにすることにより、サーバ装置１００からクライアント装置２００に送信するデータの量を減らすことが可能になり、ネットワークにかかる負荷を低減することが可能になる。
【００５３】
また、コピーされた領域が複数ある場合も同様に、図１８に示すように、差分領域の辺に接するブロックのうち、コピーされた画素を含むブロックを覆う最小限のブロック列だけを差分データに加えるようにすると良い。このようにすることにより、差分データを生成する処理時間の増大を抑えつつ、サーバ装置１００からクライアント装置２００に送信するデータの量を減らすことが可能になり、ネットワークにかかる負荷を低減することが可能になる。
【００５４】
上述した実施形態における処理動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【００５５】
なお、ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムが格納されているＲＯＭ（Read Only Memory）から、専用のハードウェアに組み込まれているコンピュータ内のメモリ（ＲＡＭ）にプログラムを読み込んで実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００５６】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭに予め記録しておくことが可能である。あるいは、プログラムは、フロッピー（登録商標）ディスク等の磁気ディスク、ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)等の光ディスク、ＭＯ（Magneto Optical）ディスク等の光磁気ディスクなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。
【００５７】
このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することが可能である。
【００５８】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送したりし、コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【００５９】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【００６０】
また、上記実施形態で説明したシステムは、複数の装置の論理的集合構成にしたり、各装置の機能を混在させたりするように構築することも可能である。
【００６１】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更が可能である。
【００６２】
また、本発明におけるサーバ装置は、前記移動領域検出手段により移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶手段をさらに有するようにしても良い。
【００６３】
また、本発明におけるサーバ装置は、前記差分データ生成手段は、前記記憶手段により記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【００６４】
また、本発明におけるサーバ装置は、前記差分データ生成手段は、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【００６５】
また、本発明における差分データ生成方法は、前記移動領域検出ステップにより移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶ステップをさらに有するようにしても良い。
【００６６】
また、本発明における差分データ生成方法は、前記差分データ生成ステップは、前記記憶ステップにより記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【００６７】
また、本発明における差分データ生成方法は、前記差分データ生成ステップは、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【００６８】
また、本発明におけるプログラムは、前記サーバ装置を、前記移動領域検出手段により移動領域が検出されたときに、前記第２のフレームのうちで当該移動領域を含むブロックを、コピーされた画素を含むブロックとして記憶する記憶手段をしても機能させるようにしても良い。
【００６９】
また、本発明におけるプログラムは、前記差分データ生成手段は、前記記憶手段により記憶された情報に基づき、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素が含むブロックが存在するのかを確認し、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該差分領域と当該コピーされた画素を含むブロックが存在するブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【００７０】
また、本発明におけるプログラムは、前記差分データ生成手段は、前記検出した差分領域の各辺において、１つだけ外側のブロック列に、前記コピーされた画素を含むブロックが存在するブロック列が存在するときは、当該コピーされた画素を含むブロックが存在するブロック列のうち、当該差分領域と当該コピーされた画素を含むブロックを覆う最小限のブロック列とを合わせた領域のデータを差分データとして生成するようにしても良い。
【符号の説明】
【００７１】
１００    サーバ装置
１１０    記憶部
１２０    移動ベクトル検出部
１３０    移動領域検出部
１４０    差分データ生成部
１５０    圧縮部
１６０    送信部
２００    クライアント装置
【図１】
2012044546.tif 000003
【図２】
2012044546.tif 000004
【図３】
2012044546.tif 000005
【図４】
2012044546.tif 000006
【図５】
2012044546.tif 000007
【図６】
2012044546.tif 000008
【図７】
2012044546.tif 000009
【図８】
2012044546.tif 000010
【図９】
2012044546.tif 000011
【図１０】
2012044546.tif 000012
【図１１】
2012044546.tif 000013
【図１２】
2012044546.tif 000014
【図１３】
2012044546.tif 000015
【図１４】
2012044546.tif 000016
【図１５】
2012044546.tif 000017
【図１６】
2012044546.tif 000018
【図１７】
2012044546.tif 000019
【図１８】
2012044546.tif 000020
【図１９】
2012044546.tif 000021
【図２０】
2012044546.tif 000022
【図２１】
2012044546.tif 000023
【図２２】
2012044546.tif 000024