(57)【特許請求の範囲】
【請求項１】
動画データを構成する各フレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出するハッシュ演算部と、
上記ハッシュ演算部により上記各フレーム画像について算出された複数のハッシュ値を上記各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して圧縮データ記憶部に記憶させるハッシュテーブル生成部と、
上記各フレーム画像のうち、上記ハッシュ演算部により算出されたハッシュ値が異なる複数のフレーム画像をそれぞれ上記ハッシュテーブル内の異なる各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させ、上記ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを上記ハッシュテーブル内の同じ各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させる画像間引部とを備え、
上記ハッシュテーブル生成部は、複数の動画データ毎に別のハッシュテーブルを生成して上記圧縮データ記憶部に記憶させ、
上記画像間引部は、ある動画データについて上記ハッシュ演算部により算出されたハッシュ値が、上記複数の動画データ毎に生成された複数のハッシュテーブルの何れか少なくとも１つに既に記憶されているか否かを判定し、何れのハッシュテーブルにも記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を上記圧縮データ記憶部に記憶させることを特徴とする動画圧縮装置。
【請求項２】
動画圧縮装置を有する画像生成サーバと、動画伸長装置を有するクライアント装置とを備えて構成される動画圧縮伸長システムであって、
上記動画圧縮装置は、
動画データを構成する各フレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出するハッシュ演算部と、
上記ハッシュ演算部により上記各フレーム画像について算出された複数のハッシュ値を上記各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して圧縮データ記憶部に記憶させるハッシュテーブル生成部と、
上記各フレーム画像のうち、上記ハッシュ演算部により算出されたハッシュ値が異なる複数のフレーム画像をそれぞれ上記ハッシュテーブル内の異なる各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させ、上記ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを上記ハッシュテーブル内の同じ各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させる画像間引部とを備え、
上記画像生成サーバは、
上記動画圧縮装置により生成された上記ハッシュテーブルおよび当該ハッシュテーブルの各ハッシュ値に関連付けられた複数のフレーム画像を圧縮データとして上記クライアント装置に送信する圧縮データ送信部とを更に備え、
上記クライアント装置は、
上記画像生成サーバの上記圧縮データ送信部により送信された上記圧縮データを受信する圧縮データ受信部と、
上記圧縮データ受信部により受信された上記圧縮データを第２の圧縮データ記憶部に記憶させる圧縮データ保存部と、
上記第２の圧縮データ記憶部に記憶された上記圧縮データを伸長する上記動画伸長装置とを備え、
上記動画伸長装置は、
上記第２の圧縮データ記憶部に記憶されている上記ハッシュテーブルから上記複数のハッシュ値を順次読み出すハッシュ値読出部と、
上記ハッシュ値読出部により読み出された上記複数のハッシュ値に対応する複数のフレーム画像を上記第２の圧縮データ記憶部から順次読み出して動画の再生を実行する動画再生部とを備え、
上記動画圧縮装置が備える上記ハッシュテーブル生成部は、複数の動画データ毎に別のハッシュテーブルを生成して上記圧縮データ記憶部に記憶させ、
上記画像間引部は、ある動画データについて上記ハッシュ演算部により算出されたハッシュ値が、上記複数の動画データ毎に生成された複数のハッシュテーブルの何れか少なくとも１つに既に記憶されているか否かを判定し、何れのハッシュテーブルにも記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を上記圧縮データ記憶部に記憶させることを特徴とする動画圧縮伸長システム。
【請求項３】
上記画像生成サーバは、
上記ハッシュ演算部により算出されたハッシュ値が上記クライアント装置の上記第２の圧縮データ記憶部に記憶されているか否かを判定する特徴量判定部を更に備え、
上記圧縮データ送信部は、上記特徴量判定部により上記ハッシュ値が上記クライアント装置の上記第２の圧縮データ記憶部に記憶されていないと判定された場合に限り、上記フレーム画像およびそれに対応するハッシュ値を上記圧縮データとして上記クライアント装置に送信する一方、上記特徴量判定部により上記ハッシュ値が上記クライアント装置の上記第２の圧縮データ記憶部に記憶されていると判定された場合、上記ハッシュ値のみを上記圧縮データとして上記クライアント装置に送信することを特徴とする請求項２に記載の動画圧縮伸長システム。
【請求項４】
動画圧縮装置を備えた画像生成サーバと、画像保存サーバ装置と、クライアント装置とを備えて構成される動画圧縮伸長システムであって、
上記動画圧縮装置は、
動画データを構成する各フレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出するハッシュ演算部と、
上記ハッシュ演算部により上記各フレーム画像について算出された複数のハッシュ値を上記各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して圧縮データ記憶部に記憶させるハッシュテーブル生成部と、
上記各フレーム画像のうち、上記ハッシュ演算部により算出されたハッシュ値が異なる複数のフレーム画像をそれぞれ上記ハッシュテーブル内の異なる各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させ、上記ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを上記ハッシュテーブル内の同じ各ハッシュ値に関連付けて上記圧縮データ記憶部に記憶させる画像間引部とを備え、
上記画像生成サーバは、
圧縮対象の動画データに対して、上記ハッシュ演算部、上記ハッシュテーブル生成部および上記画像間引部の処理によって画像圧縮を行う上記動画圧縮装置と、
上記動画圧縮装置により生成された上記ハッシュテーブルおよび当該ハッシュテーブルの各ハッシュ値に関連付けられた複数のフレーム画像を圧縮データとして上記クライアント装置に送信する第１の圧縮データ送信部と、
上記動画圧縮装置により生成されたハッシュ値およびそれに関連付けられたフレーム画像を上記画像保存サーバに送信する第２の圧縮データ送信部とを備え、
上記画像保存サーバは、
上記画像生成サーバの上記第２の圧縮データ送信部により送信された上記圧縮データを受信する第２の圧縮データ受信部と、
上記第２の圧縮データ受信部により受信された上記圧縮データを第３の圧縮データ記憶部に記憶させる第２の圧縮データ保存部と、
上記クライアント装置からハッシュ値と共に画像取得要求が送られてきた場合、当該ハッシュ値に関連付けられたフレーム画像を上記第３の圧縮データ記憶部から読み出して上記クライアント装置に送信するフレーム画像送信部とを備え、
上記クライアント装置は、
上記画像生成サーバの上記第１の圧縮データ送信部により送信された上記圧縮データを受信する第１の圧縮データ受信部と、
上記第１の圧縮データ受信部により受信された上記圧縮データを第２の圧縮データ記憶部に記憶させる第１の圧縮データ保存部と、
上記画像生成サーバから上記ハッシュテーブルに格納されたハッシュ値のリストを取得するハッシュリスト取得部と、
上記ハッシュリスト取得部により取得されたハッシュリストに含まれるハッシュ値が、上記画像生成サーバの上記圧縮データ記憶部、上記クライアント装置の上記第２の圧縮データ記憶部、上記画像保存サーバの上記第３の圧縮データ記憶部の何れかに既に記憶されているか否かを、上記クライアント装置からのネットワーク距離が近い順に確認するハッシュ値存否判定部と、
上記画像生成サーバ、上記クライアント装置および上記画像保存サーバの各ノードのうち、上記ハッシュ値存否判定部により上記ハッシュ値が既に記憶されていると判定されたノードから上記ハッシュ値に関連付けられたフレーム画像を取得するフレーム画像取得部と、
上記フレーム画像取得部により取得された複数のフレーム画像を用いて動画の再生を実行する動画再生部とを備えたことを特徴とする動画圧縮伸長システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画圧縮装置および動画圧縮伸長システムに関するものである。
【背景技術】
【０００２】
近年、ウェブサイトでの動画広告やウェブサービスなど、動画データの利用シーンが急増している。通常、動画データはデータ量が膨大なため、保存したり通信したりしやすいようにデータ圧縮が施される（例えば、特許文献１参照）。
【特許文献１】特開２００６−１９１５３４号公報
【０００３】
この特許文献１に記載のデータ処理装置では、供給されたビデオ信号を圧縮符号化して圧縮された符号化データを生成し、これにより通信されるデータ量を低減している。また、圧縮符号化データの選択したデータビットを安全なハッシュ値のデータビットに置換することによって、保護された圧縮符号化データを生成するようにしている。【０００４】
ところで、データ圧縮には大きく分けて可逆圧縮と非可逆圧縮とがある。可逆圧縮は、統計的冗長性を特定・除去することでビット数を削減する方式であり、情報が失われることはない。一方、非可逆圧縮は、不必要な情報を特定・除去することでビット数を削減する方式であり、一部の情報が圧縮によって失われる。そのため、非可逆圧縮では、圧縮の際に失われた情報を伸長の際に補完して元画像を再現する必要がある。【０００５】
一般的に、動画圧縮は、各フレームを構成する静止画の圧縮（フレーム内圧縮）と時系列の圧縮（フレーム間圧縮）とを組み合わせて行う。フレーム間圧縮は、フレーム列を前後で比較し、変化のある領域だけを差分データとして保存するようにした手法である。これらの仕組みを用いた動画圧縮アルゴリズムのほとんどが非可逆圧縮である。この種の動画圧縮アルゴリズムの代表的なものとして、ＭＰＥＧ、Ｍｏｔｉｏｎ−ＪＰＥＧ、Ｈ．２６４、ＶＣ−２などが知られている。
【発明の開示】
【０００６】
しかしながら、非可逆圧縮方式を採用したＭＰＥＧ等に代表される従来の動画圧縮アルゴリズムでは、圧縮率が高すぎると元画像の再現性（画質）が悪くなるため、圧縮率と画質とのトレードオフを考慮してアルゴリズムが設計される。そのため、画質を良好に保ったまま圧縮率を高め、動画データの記憶容量を削減したり通信速度を速くしたりすることが難しいという問題があった。
【０００７】
本発明は、このような問題を解決するために成されたものであり、元画像の再現性（画質）を良好に保ったまま、動画データの記憶容量を削減したり通信速度を速くしたりすることができるようにすることを目的とする。
【０００８】
上記した課題を解決するために、本発明では、動画データを構成する各フレーム画像からハッシュ値を算出し、各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して記憶させる。また、各フレーム画像のうち、ハッシュ値が異なる複数のフレーム画像を各ハッシュ値に関連付けて記憶させる一方、ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを記憶させて他は削除するようにしている。
特に、複数の動画データ毎に別のハッシュテーブルを生成して記憶させ、ある動画データについて算出されたハッシュ値が、複数の動画データ毎に生成された複数のハッシュテーブルの何れか少なくとも１つに既に記憶されているか否かを判定し、何れのハッシュテーブルにも記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を記憶させるようにしている。
【０００９】
上記のように構成した本発明によれば、動画データを構成する各フレーム画像がデータ量の極めて小さいハッシュ値に置き換えられる。元のフレーム画像は、ハッシュ値から再現する際に必要なために保存されるが、ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみが記憶されて他は削除されるので、動画全体としてのデータ量は削減される。また、フレーム画像からハッシュ値への置き換えは可逆圧縮であるから、ハッシュ値から元のフレーム画像を完全に再現することが可能である。これにより、元画像の再現性（画質）を良好に保ったまま動画データの圧縮率を高めることができ、動画データの記憶容量を削減したり通信速度を速くしたりすることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。
【図２】第１の実施形態によるクライアント装置の機能構成例を示すブロック図である。
【図３】第１の実施形態による画像生成サーバの機能構成例を示すブロック図である。
【図４】第１の実施形態において圧縮データ記憶部に記憶されるハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。
【図５】第１の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。
【図６】第２の実施形態によるクライアント装置の機能構成例を示すブロック図である。
【図７】第２の実施形態による画像生成サーバの機能構成例を示すブロック図である。
【図８】第２の実施形態において圧縮データ記憶部に記憶される複数のハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。
【図９】第２の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。
【図１０】第３の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。
【図１１】第３の実施形態によるクライアント装置の機能構成例を示すブロック図である。
【図１２】第３の実施形態による画像生成サーバの機能構成例を示すブロック図である。
【図１３】第３の実施形態による画像保存サーバの機能構成例を示すブロック図である。
【発明を実施するための最良の形態】
【００１１】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、第１の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。図１に示すように、第１の実施形態による動画圧縮伸長システムは、クライアント装置１００および画像生成サーバ２００を備え、両者をインターネット５００などの通信ネットワークを介して接続可能に構成されている。【００１２】
図２は、第１の実施形態によるクライアント装置１００の機能構成例を示すブロック図である。図２に示すように、第１の実施形態によるクライアント装置１００は、その機能構成として、通信Ｉ／Ｆ部１１、要求送信部１２、圧縮データ受信部１３、圧縮データ保存部１４、動画伸長部１５および第２の圧縮データ記憶部１１０を備えて構成されている。動画伸長部１５は、その具体的な機能構成として、ハッシュ値読出部１５ａおよび動画再生部１５ｂを備えている。【００１３】
上記各機能ブロック１１〜１５は、ハードウェア、ＤＳＰ（Digital Signal Processor）、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック１１〜１５は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。【００１４】
図３は、第１の実施形態による画像生成サーバ２００の機能構成例を示すブロック図である。図３に示すように、第１の実施形態による画像生成サーバ２００は、その機能構成として、通信Ｉ／Ｆ部２１、要求受信部２２、動画生成部２３、動画圧縮部２４、圧縮データ送信部２５および圧縮データ記憶部２１０を備えて構成されている。動画圧縮部２４は、その具体的な機能構成として、ハッシュ演算部２４ａ、ハッシュテーブル生成部２４ｂおよび画像間引部２４ｃを備えている。【００１５】
上記各機能ブロック２１〜２５は、ハードウェア、ＤＳＰ、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック２１〜２５は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。【００１６】
クライアント装置１００の通信Ｉ／Ｆ部１１および画像生成サーバ２００の通信Ｉ／Ｆ部２１は、インターネット５００を介して互いに通信を行うものである。クライアント装置１００の要求送信部１２は、インターネット５００を介して画像生成サーバ２００に画像取得要求を送信する。この画像取得要求は、例えば、クライアント装置１００のユーザが図示しない操作部を操作することによって生成される。【００１７】
画像生成サーバ２００の要求受信部２２は、クライアント装置１００からインターネット５００を介して送られてきた画像取得要求を受信する。動画生成部２３は、要求受信部２２により受信された画像取得要求に応じて、動画データを生成する。【００１８】
例えば、動画生成部２３は、画像生成サーバ２００に接続されたスマートフォン（図示せず）を固定した状態のままカメラ撮影を行うことによって動画データを生成する。または、スマートフォンの画面を順次遷移させ、遷移させた各画面のキャプチャ処理を行うことによって動画データを生成する。【００１９】
ここで、カメラ撮影や画面キャプチャは、クライアント装置１００から出力される１回の画像取得要求に対して複数回連続して行う。この場合、動画データの生成を開始してから所定時間が経過した時点で処理を終了するようにしてもよいし、次に処理停止命令がクライアント装置１００から出力されるまで処理を継続するようにしてもよい。あるいは、クライアント装置１００と画像生成サーバ２００とのコネクションが切断されるまで処理を継続するようにしてもよい。【００２０】
このように、スマートフォンによるカメラ撮影や画面キャプチャによって動画データを生成するのは、様々な機種のスマートフォンでカメラ撮影が問題なく行われているか否か、画面遷移が問題なく行われているか否か、スマートフォンにインストールされたアプリケーションが正常に動作しているか否かなどを、クライアント装置１００から画像生成サーバ２００にアクセスして遠隔から検証することができるようにするためである。【００２１】
動画圧縮部２４は、動画圧縮装置に相当するものであり、動画生成部２３により生成された動画データに対して、ハッシュ演算部２４ａ、ハッシュテーブル生成部２４ｂおよび画像間引部２４ｃの処理によって画像圧縮を行う。【００２２】
ハッシュ演算部２４ａは、動画生成部２３により生成された動画データを構成する各フレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する。なお、ハッシュ演算そのものに関しては、公知の手法を適用することが可能である。【００２３】
ハッシュテーブル生成部２４ｂは、ハッシュ演算部２４ａにより各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成し、これを圧縮データ記憶部２１０に記憶させる。【００２４】
画像間引部２４ｃは、動画生成部２３により生成された動画データを構成する各フレーム画像のうち、ハッシュ演算部２４ａにより算出されたハッシュ値が異なる複数のフレーム画像をそれぞれハッシュテーブル内の異なる各ハッシュ値に関連付けて圧縮データ記憶部２１０に記憶させる。一方、動画データを構成する各フレーム画像のうち、ハッシュ値が同じ複数のフレーム画像については、その中の１つのみをハッシュテーブル内の同じ各ハッシュ値に関連付けて圧縮データ記憶部２１０に記憶させる。【００２５】
図４は、圧縮データ記憶部２１０に記憶されるハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。図４（ａ）は、ハッシュテーブル生成部２４ｂにより記憶されるハッシュテーブルの一例を示す。図４（ｂ）は、画像間引部２４ｃにより記憶されるフレーム画像の一例を示す。このハッシュテーブルおよびフレーム画像のセットを動画の圧縮データとする。【００２６】
図４（ａ）に示すように、ハッシュテーブル生成部２４ｂは、動画データを構成する各フレーム画像についてハッシュ演算部２４ａにより算出された複数のハッシュ値を、各フレーム画像の順番に沿って順次記憶させていく。【００２７】
上述のように、動画生成部２３がカメラ撮影や画面キャプチャによって動画データを生成する場合、各フレーム画像の中には同じものが多数存在し得る。ただし、ハッシュテーブル生成部２４ｂは、同じフレーム画像であるか否かを問わず、全てのフレーム画像についてハッシュ演算部２４ａにより算出されたハッシュ値をそのフレーム画像の順序に沿ってリスト化し、ハッシュテーブルに記憶させていく。【００２８】
これに対して、画像間引部２４ｃは、図４（ｂ）に示すように、ハッシュ値が異なる複数のフレーム画像については、それらを全てハッシュテーブル内の各ハッシュ値に関連付けて記憶させる。一方、ハッシュ値が同じ複数のフレーム画像については、その中の１つのみ（例えば、最初に記憶させたフレーム画像）をハッシュテーブル内の同じ各ハッシュ値に関連付けて記憶させる。【００２９】
すなわち、画像間引部２４ｃは、ハッシュ演算部２４ａによりハッシュ値が算出される毎に、そのハッシュ値が圧縮データ記憶部２１０のハッシュテーブルに既に記憶されているか否かを判定し、記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部２１０に追加して記憶させる。【００３０】
一方、圧縮データ記憶部２１０のハッシュテーブルにハッシュ値が既に記憶されていると判定された場合、画像間引部２４ｃは当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部２１０に追加して記憶させず、既に記憶されているフレーム画像とハッシュ値との関連付けのみ行う。このように、圧縮データ記憶部２１０に記憶させるフレーム画像を間引くことにより画像圧縮を行い、データ容量の削減を図っている。【００３１】
圧縮データ送信部２５は、動画圧縮部２４により生成されて圧縮データ記憶部２１０に記憶された圧縮データ、すなわち、ハッシュテーブルおよび当該ハッシュテーブルの各ハッシュ値に関連付けられた複数のフレーム画像を、インターネット５００を介してクライアント装置１００に送信する。【００３２】
なお、この圧縮データの送信は、圧縮データ記憶部２１０に記憶されるハッシュテーブルが完成した後に行う必要は必ずしもない。すなわち、１つのハッシュ値が圧縮データ記憶部２１０のハッシュテーブルに追加される都度、圧縮データを順次送信するようにしてもよい。また、画像間引部２４ｃの処理が行えていればよく、圧縮データ記憶部２１０に対する圧縮データの記憶については非同期で行ってもよい。また、圧縮データ送信部２５は、ハッシュ値およびフレーム画像以外に、フレーム画像の相対時刻等のメタデータを合わせて送信するようにしてもよい。【００３３】
ここで、圧縮データ送信部２５は、画像間引部２４ｃによりハッシュ値とフレーム画像との組が圧縮データ記憶部２１０に記憶された場合には、そのハッシュ値とフレーム画像との組を圧縮データとしてクライアント装置１００に送信する。一方、フレーム画像が間引かれてハッシュ値のみが圧縮データ記憶部２１０に記憶された場合は、そのハッシュ値のみを圧縮データとしてクライアント装置１００に送信する。【００３４】
フレーム画像が間引かれてハッシュ値のみが圧縮データ記憶部２１０に記憶されている場合、それよりも前のフレームで既に同じフレーム画像がクライアント装置１００に送信されている。この場合は、データ量の小さいハッシュ値のみを送信してフレーム画像の送信を省略することにより、送信データ量の削減を図っている。【００３５】
クライアント装置１００の圧縮データ受信部１３は、画像生成サーバ２００の圧縮データ送信部２５により送信された圧縮データ（ハッシュ値とフレーム画像との組、またはハッシュ値のみ）を受信する。圧縮データ保存部１４は、圧縮データ受信部１３により受信された圧縮データを第２の圧縮データ記憶部１１０に記憶させる。【００３６】
ここで、圧縮データ受信部１３が圧縮データとしてハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部１４は、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる。【００３７】
一方、圧縮データ受信部１３が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部１４は、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける。これにより、第２の圧縮データ記憶部１１０に記憶される圧縮データも、図４に示したのと同様の状態となる。【００３８】
動画伸長部１５は、動画伸長装置に相当するものであり、第２の圧縮データ記憶部１１０に記憶された圧縮データに対して、ハッシュ値読出部１５ａおよび動画再生部１５ｂの処理によって画像伸長を行う。ハッシュ値読出部１５ａは、画像生成サーバ２００から送信されてきた圧縮データに基づき第２の圧縮データ記憶部１１０に記憶されたハッシュテーブルから、複数のハッシュ値を順次読み出す。【００３９】
なお、このハッシュ値の読み出しは、第２の圧縮データ記憶部１１０に記憶されるハッシュテーブルが完成した後に行う必要は必ずしもない。すなわち、圧縮データ保存部１４により１つのハッシュ値が第２の圧縮データ記憶部１１０のハッシュテーブルに追加される都度、そのハッシュ値を順次読み出すようにしてもよい。このようにすれば、クライアント装置１００から画像生成サーバ２００に画像取得要求を送信してから、該当する動画の再生が開始されるまでの時間を短くすることができる。【００４０】
動画再生部１５ｂは、ハッシュ値読出部１５ａにより順次読み出された複数のハッシュ値に対応する複数のフレーム画像を第２の圧縮データ記憶部１１０から順次読み出して動画の再生を実行する。第２の圧縮データ記憶部１１０に記憶されているハッシュテーブルは、動画を構成する各フレーム画像の順序に沿ってハッシュ値をリスト化したものであるから、このハッシュ値をハッシュ演算部２４ａにより順番に読み出して、各ハッシュ値に対応するフレーム画像を動画再生部１５ｂが順番に再生することにより、動画の再生を行うことができる。【００４１】
図５は、以上のように構成した第１の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。まず、クライアント装置１００の要求送信部１２は、インターネット５００を介して画像生成サーバ２００に画像取得要求を送信する（ステップＳ１）。画像生成サーバ２００では、この画像取得要求を要求受信部２２にて受信すると、動画生成部２３が画像取得要求に応じた動画データのフレーム画像を生成する（ステップＳ２）。【００４２】
次に、ハッシュ演算部２４ａは、動画生成部２３により生成された動画データのフレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する（ステップＳ３）。ここで、ハッシュテーブル生成部２４ｂは、ハッシュ演算部２４ａにより算出されたハッシュ値と同じハッシュ値が、今回の動画生成に関して圧縮データ記憶部２１０に記憶されたハッシュテーブル内に既に存在するか否かを判定する（ステップＳ４）。【００４３】
ハッシュ演算部２４ａにより算出されたハッシュ値がハッシュテーブル内に既に存在する場合、ハッシュテーブル生成部２４ｂは、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、ハッシュテーブル内に既に存在するハッシュ値に関連付けて圧縮データ記憶部２１０に既に記憶されているフレーム画像に対して、新たに追加したハッシュ値を関連付ける（ステップＳ５）。そして、圧縮データ送信部２５は、ステップＳ３でハッシュ演算部２４ａにより算出されたハッシュ値のみを、圧縮データ記憶部２１０から読み出してクライアント装置１００に送信する（ステップＳ６）。【００４４】
一方、ハッシュ演算部２４ａにより算出されたハッシュ値がハッシュテーブル内に存在しない場合、ハッシュテーブル生成部２４ｂがそのハッシュ値をハッシュテーブルに追加して記憶させる。また、画像間引部２４ｃは、ハッシュテーブルに新たに追加されたハッシュ値に関連付けて、ステップＳ２で動画生成部２３により生成されたフレーム画像を圧縮データ記憶部２１０に記憶させる（ステップＳ７）。そして、圧縮データ送信部２５は、ステップＳ２で動画生成部２３により生成されたフレーム画像およびステップＳ３でハッシュ演算部２４ａにより算出されたハッシュ値との組を、圧縮データ記憶部２１０から読み出してクライアント装置１００に送信する（ステップＳ８）。【００４５】
その後、動画生成部２３は、動画データの生成を終了するか否かを判定する（ステップＳ９）。すなわち、動画生成部２３は、動画データの生成を開始してから所定時間が経過したか否か、処理停止命令がクライアント装置１００から送られてきたか否か、クライアント装置１００とのコネクションが切断されたか否かなどを判定する。ここで、動画データの生成をまだ終了しない場合、処理はステップＳ２に戻り、次のフレーム画像の生成を行う。一方、動画データの生成を終了する場合、画像生成サーバ２００における処理は終了する。【００４６】
クライアント装置１００では、上記ステップＳ１で画像取得要求を画像生成サーバ２００に送信した後、圧縮データ受信部１３は、画像生成サーバ２００の圧縮データ送信部２５により送信された圧縮データ（ハッシュ値とフレーム画像との組、またはハッシュ値のみ）を受信する（ステップＳ１０）。【００４７】
ここで、圧縮データ保存部１４は、圧縮データ受信部１３が圧縮データとしてハッシュ値とフレーム画像との組を受信したか否かを判定する（ステップＳ１１）。圧縮データ受信部１３がハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部１４は、第２の圧縮データ記憶部１１０に対して、ハッシュ値をハッシュテーブルに追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる（ステップＳ１２）。【００４８】
一方、圧縮データ受信部１３が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部１４は、第２の圧縮データ記憶部１１０に対して、ハッシュ値をハッシュテーブルに追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける（ステップＳ１３）。【００４９】
次に、ハッシュ値読出部１５ａは、ステップＳ１２またはステップＳ１３で第２の圧縮データ記憶部１１０のハッシュテーブルに追加して記憶されたハッシュ値を読み出す（ステップＳ１４）。そして、動画再生部１５ｂは、ハッシュ値読出部１５ａにより読み出されたハッシュ値に対応するフレーム画像を第２の圧縮データ記憶部１１０から読み出して再生する（ステップＳ１５）。【００５０】
その後、動画再生部１５ｂは、動画データの再生を終了するか否かを判定する（ステップＳ１６）。すなわち、動画再生部１５ｂは、動画データの生成を開始してから所定時間が経過したか否か、処理停止命令をクライアント装置１００に送信したか否か、画像生成サーバ２００とのコネクションが切断されたか否かなどを判定する。ここで、動画データの再生をまだ終了しない場合、処理はステップＳ１０に戻り、次のフレームに関する圧縮データの受信を行う。一方、動画データの再生を終了する場合、クライアント装置１００における処理は終了する。【００５１】
以上詳しく説明したように、第１の実施形態の動画圧縮伸長システムでは、動画データを構成する各フレーム画像からハッシュ値を算出し、各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して記憶させる。また、各フレーム画像のうち、ハッシュ値が異なる複数のフレーム画像を各ハッシュ値に関連付けて記憶させる一方、ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを記憶させて他は削除するようにしている。【００５２】
このように構成した第１の実施形態によれば、動画データを構成する各フレーム画像がデータ量の極めて小さいハッシュ値に置き換えられる。元のフレーム画像は、ハッシュ値から再現する際に必要なために保存されるが、ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみが記憶されて他は削除されるので、動画全体としてのデータ量は削減される。また、フレーム画像からハッシュ値への置き換えは可逆圧縮であるから、ハッシュ値から元のフレーム画像を完全に再現することが可能である。【００５３】
これにより、元画像の再現性（画質）を良好に保ったまま動画データの圧縮率を高めることができ、第２の圧縮データ記憶部１１０，２１０に記憶する動画データの容量を削減したり、画像生成サーバ２００からクライアント装置１００に送信するフレーム画像の量を削減して通信速度を速くしたりすることができる。【００５４】
（第２の実施形態）
以下、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成は、図１と同様である。【００５５】
図６は、第２の実施形態によるクライアント装置１００機能構成例を示すブロック図である。なお、この図６において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図６に示すように、第２の実施形態によるクライアント装置１００は、その機能構成として、問い合わせ応答部１６を更に備えている。【００５６】
図７は、第２の実施形態による画像生成サーバ２００の機能構成例を示すブロック図である。なお、この図７において、図３に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図７に示すように、第２の実施形態による画像生成サーバ２００は、その機能構成として、特徴量判定部２６を更に備えている。また、画像間引部２４ｃおよび圧縮データ送信部２５に代えて、画像間引部２４ｃ’および圧縮データ送信部２５’を備えている。【００５７】
画像間引部２４ｃ’は、今回の動画生成に関して圧縮データ記憶部２１０に記憶されたハッシュテーブルに限らず、過去の動画生成時に記憶されたハッシュテーブルも含めて圧縮データ記憶部２１０に既に記憶されている複数のハッシュテーブルを対象として、ハッシュ演算部２４ａにより今回算出されたハッシュ値と同じハッシュ値が既に記憶されているか否かを判定する。そして、既に同じハッシュ値が記憶されている場合は、そのハッシュ値に対応するフレーム画像の圧縮データ記憶部２１０への記憶を間引く。【００５８】
すなわち、画像間引部２４ｃ’は、ある動画データについてハッシュ演算部２４ａによりハッシュ値が算出される毎に、そのハッシュ値が、複数の動画データ毎に生成された複数のハッシュテーブルの何れか少なくとも１つに既に記憶されているか否かを判定する。そして、何れのハッシュテーブルにもそのハッシュ値が記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部２１０に記憶させる。【００５９】
図８は、第２の実施形態において圧縮データ記憶部２１０に記憶される複数のハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。図８（ａ）に示すように、ハッシュテーブル生成部２４ｂは、複数の動画データ毎に別のハッシュテーブルを生成して圧縮データ記憶部２１０に記憶させる。【００６０】
また、図８（ｂ）に示すように、画像間引部２４ｃ’は、全てのハッシュテーブルを通してハッシュ値が異なるフレーム画像については、それらのフレーム画像を全てハッシュテーブル内の各ハッシュ値に関連付けて記憶させる。一方、画像間引部２４ｃ’は、同じハッシュテーブル内または異なるハッシュテーブル内でハッシュ値が同じ複数のフレーム画像については、その中の１つのみを同じ各ハッシュ値に関連付けて記憶させる。【００６１】
特徴量判定部２６は、ハッシュ演算部２４ａにより各フレーム画像について順次算出されるハッシュ値が、クライアント装置１００に記憶されているか否かを判定する。具体的には、特徴量判定部２６は、ハッシュ演算部２４ａにより算出されたハッシュ値を、通信Ｉ／Ｆ部２１を介してクライアント装置１００に送信し、それと同じハッシュ値がクライアント装置１００の第２の圧縮データ記憶部１１０に記憶されているかを問い合わせる。そして、その結果としてクライアント装置１００から送られてくる応答内容に基づいて、ハッシュ値がクライアント装置１００に記憶されているか否かを判定する。そして、その判定結果を圧縮データ送信部２５’に通知する。【００６２】
圧縮データ送信部２５’は、特徴量判定部２６によりハッシュ値がクライアント装置１００に記憶されていないと判定された場合に限り、そのハッシュ値およびそれに関連付けられたフレーム画像をクライアント装置１００に送信する。一方、ハッシュ値がクライアント装置１００に既に記憶されていると判定された場合、圧縮データ送信部２５’は、そのハッシュ値のみをクライアント装置１００に送信する。なお、特徴量判定部２６による問い合わせの際にハッシュ値はクライアント装置１００に既に送信されているので、改めてそのハッシュ値を送信することを省略してもよい。【００６３】
例えば、クライアント装置１００が画像生成サーバ２００に対して複数の画像取得要求を送信し、複数の動画データに関する圧縮データ（ハッシュテーブルおよびフレーム画像）を取得して第２の圧縮データ記憶部１１０に記憶させている場合、今回画像生成サーバ２００からクライアント装置１００に送信しようとしているハッシュ値とフレーム画像が既にクライアント装置１００に記憶されている場合があり得る。この場合は、データ量の小さいハッシュ値のみを送信してフレーム画像の送信を省略することにより、送信データ量の削減を図っている。【００６４】
クライアント装置１００の問い合わせ応答部１６は、画像生成サーバ２００の特徴量判定部２６から送信されてくる問い合わせに対して応答する処理を行う。すなわち、問い合わせ応答部１６は、特徴量判定部２６から送信されてくるハッシュ値を受信し、これが第２の圧縮データ記憶部１１０に既に記憶されているかどうかを確認する。そして、記憶されているか否かの確認結果を画像生成サーバ２００の特徴量判定部２６に返信する。【００６５】
図９は、以上のように構成した第２の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。まず、クライアント装置１００の要求送信部１２は、インターネット５００を介して画像生成サーバ２００に画像取得要求を送信する（ステップＳ２１）。画像生成サーバ２００では、この画像取得要求を要求受信部２２にて受信すると、動画生成部２３が画像取得要求に応じた動画データのフレーム画像を生成する（ステップＳ２２）。【００６６】
次に、ハッシュ演算部２４ａは、動画生成部２３により生成された動画データのフレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する（ステップＳ２３）。ここで、ハッシュテーブル生成部２４ｂは、ハッシュ演算部２４ａにより算出されたハッシュ値と同じハッシュ値が、圧縮データ記憶部２１０に記憶されている複数のハッシュテーブル内に既に存在するか否かを判定する（ステップＳ２４）。【００６７】
ハッシュ演算部２４ａにより算出されたハッシュ値が何れかのハッシュテーブル内に既に存在する場合、ハッシュテーブル生成部２４ｂは、そのハッシュ値を今回の動画生成に関するハッシュテーブルに追加して記憶させるとともに、それと同じハッシュ値に関連付けて圧縮データ記憶部２１０に既に記憶されているフレーム画像に対して、新たに追加したハッシュ値を関連付ける（ステップＳ２５）。【００６８】
一方、ハッシュ演算部２４ａにより算出されたハッシュ値が何れのハッシュテーブル内にも存在しない場合、ハッシュテーブル生成部２４ｂがそのハッシュ値を今回の動画生成に関するハッシュテーブルに追加して記憶させる。また、画像間引部２４ｃ’は、ハッシュテーブルに新たに追加されたハッシュ値に関連付けて、ステップＳ２２で動画生成部２３により生成されたフレーム画像を圧縮データ記憶部２１０に記憶させる（ステップＳ２６）。【００６９】
ここで、特徴量判定部２６は、ハッシュ演算部２４ａにより算出された各ハッシュ値をクライアント装置１００に送信し、それと同じハッシュ値がクライアント装置１００に既に記憶されているかを問い合わせる（ステップＳ２７）。クライアント装置１００の問い合わせ応答部１６は、画像生成サーバ２００から受信したハッシュ値が第２の圧縮データ記憶部１１０に既に記憶されているかどうかを確認する（ステップＳ２８）。【００７０】
ここで、問い合わせに関するハッシュ値が第２の圧縮データ記憶部１１０に記憶されている場合、問い合わせ応答部１６は、ハッシュ値がクライアント装置１００に記憶されていることを、問い合わせに対する確認結果として画像生成サーバ２００の特徴量判定部２６に返信する（ステップＳ２９）。【００７１】
一方、問い合わせに関するハッシュ値が第２の圧縮データ記憶部１１０に記憶されていない場合、問い合わせ応答部１６は、ハッシュ値がクライアント装置１００に記憶されていないことを、問い合わせに対する確認結果として画像生成サーバ２００の特徴量判定部２６に返信する（ステップＳ３０）。【００７２】
クライアント装置１００から問い合わせに対する応答を受け取った画像生成サーバ２００では、特徴量判定部２６が、その応答内容に基づいて、ハッシュ値がクライアント装置１００に記憶されているか否かを判定する（ステップＳ３１）。【００７３】
ここで、ハッシュ値がクライアント装置１００に記憶されていると特徴量判定部２６にて判定された場合、圧縮データ送信部２５’は、ステップＳ２３でハッシュ演算部２４ａにより算出されたハッシュ値のみを、圧縮データ記憶部２１０から読み出してクライアント装置１００に送信する（ステップＳ３２）。なお、上述したように、このステップＳ３２を省略し、ステップＳ２７で問い合わせの際に送信したハッシュ値をクライアント装置１００で利用するようにしてもよい。【００７４】
一方、ハッシュ値がクライアント装置１００に記憶されていないと特徴量判定部２６にて判定された場合、圧縮データ送信部２５’は、ステップ２２で動画生成部２３により生成されたフレーム画像およびステップＳ２３でハッシュ演算部２４ａにより算出されたハッシュ値との組を、圧縮データ記憶部２１０から読み出してクライアント装置１００に送信する（ステップＳ３３）。【００７５】
その後、動画生成部２３は、動画データの生成を終了するか否かを判定する（ステップＳ３４）。ここで、動画データの生成をまだ終了しない場合、処理はステップＳ２２に戻り、次のフレーム画像の生成を行う。一方、動画データの生成を終了する場合、画像生成サーバ２００における処理は終了する。【００７６】
クライアント装置１００では、上記ステップＳ２９またはステップＳ３０において応答を行った後、圧縮データ受信部１３は、画像生成サーバ２００の圧縮データ送信部２５’により送信された圧縮データ（ハッシュ値とフレーム画像との組、またはハッシュ値のみ）を受信する（ステップＳ３５）。【００７７】
ここで、圧縮データ保存部１４は、圧縮データ受信部１３が圧縮データとしてハッシュ値とフレーム画像との組を受信したか否かを判定する（ステップＳ３６）。圧縮データ受信部１３がハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部１４は、第２の圧縮データ記憶部１１０に対して、今回の動画再生に関するハッシュテーブルにハッシュ値を追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる（ステップＳ３７）。【００７８】
一方、圧縮データ受信部１３が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部１４は、第２の圧縮データ記憶部１１０に対して、今回の動画再生に関するハッシュテーブルにハッシュ値を追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける（ステップＳ３８）。【００７９】
次に、ハッシュ値読出部１５ａは、ステップＳ３７またはステップＳ３８で第２の圧縮データ記憶部１１０のハッシュテーブルに追加して記憶されたハッシュ値を読み出す（ステップＳ３９）。そして、動画再生部１５ｂは、ハッシュ値読出部１５ａにより読み出されたハッシュ値に対応するフレーム画像を第２の圧縮データ記憶部１１０から読み出して再生する（ステップＳ４０）。【００８０】
その後、動画再生部１５ｂは、動画データの再生を終了するか否かを判定する（ステップＳ４１）。ここで、動画データの再生をまだ終了しない場合、処理はステップＳ３５に戻り、次のフレームに関する圧縮データの受信を行う。一方、動画データの再生を終了する場合、クライアント装置１００における処理は終了する。【００８１】
以上詳しく説明したように、第２の実施形態の動画圧縮伸長システムでは、ハッシュ演算部２４ａにより算出されたハッシュ値と同じ値を有するハッシュ値が、圧縮データ記憶部２１０に記憶されている複数のハッシュテーブルのうち少なくとも何れか１つに含まれている場合は、そのハッシュ値に対応するフレーム画像の圧縮データ記憶部２１０への記憶を間引くようにしている。【００８２】
また、第２の実施形態では、画像生成サーバ２００にて生成された動画のフレーム画像が、それより前の時点で画像生成サーバ２００からクライアント装置１００に既に送信されて第２の圧縮データ記憶部１１０に記憶されている場合は、ハッシュ値を用いた問い合せによる結果に基づいて、当該フレーム画像は画像生成サーバ２００からクライアント装置１００に送信しないようにしている。【００８３】
このように構成した第２の実施形態によれば、第２の圧縮データ記憶部１１０，２１０に記憶するフレーム画像の量をより少なくして動画データの容量をさらに削減することができる。また、画像生成サーバ２００からクライアント装置１００に送信するフレーム画像の量をより少なくして通信速度をさらに速くすることができる。【００８４】
なお、同じハッシュ値に対応するフレーム画像の圧縮データ記憶部２１０への記憶は間引かず、フレーム画像の送信を間引くのみとすることも可能である。【００８５】
（第３の実施形態）
以下、本発明の第３の実施形態を図面に基づいて説明する。図１０は、第３の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。なお、この図１０において、図１に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。【００８６】
図１０に示すように、第３の実施形態による動画圧縮伸長システムは、クライアント装置１００、画像生成サーバ２００および画像保存サーバ３００を備えている。クライアント装置１００、画像生成サーバ２００および画像保存サーバ３００は、互いにインターネット５００を介して接続可能に構成されている。【００８７】
図１１は、第３の実施形態によるクライアント装置１００の機能構成例を示すブロック図である。なお、この図１１において、図６に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。【００８８】
図１１に示すように、第３の実施形態によるクライアント装置１００は、その機能構成として、ハッシュリスト取得部１７、ハッシュ値存否判定部１８およびフレーム画像取得部１９を更に備えている。また、動画再生部１５ｂに代えて動画再生部１５ｂ”を備えている。なお、第１の圧縮データ受信部１３および第１の圧縮データ保存部１４は、図６に示した圧縮データ受信部１３および圧縮データ保存部１４と同じ機能を有するものである。【００８９】
図１２は、第３の実施形態による画像生成サーバ２００の機能構成例を示すブロック図である。なお、この図１２において、図７に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。【００９０】
図１２に示すように、第３の実施形態による画像生成サーバ２００は、その機能構成として、第２の圧縮データ送信部２７、ハッシュリスト送信部２８および問い合わせ応答部２９を更に備えている。なお、第１の圧縮データ送信部２５’は、図７に示した圧縮データ送信部２５’と同じ機能を有するものである。【００９１】
図１３は、第３の実施形態による画像保存サーバ３００の機能構成例を示すブロック図である。図１３に示すように、第３の実施形態による画像保存サーバ３００は、その機能構成として、通信インタフェース部３１、第２の圧縮データ受信部３２、第２の圧縮データ保存部３３、要求受信部３４、フレーム画像送信部３５、問い合わせ応答部３６および第３の圧縮データ記憶部３１０を備えている。【００９２】
画像生成サーバ２００の第２の圧縮データ送信部２７は、動画圧縮部２４により生成され圧縮データ記憶部２１０に記憶された圧縮データ（ハッシュ値および当該ハッシュ値に関連付けられたフレーム画像）を、インターネット５００を介して画像保存サーバ３００に送信する。【００９３】
第２の圧縮データ送信部２７が画像保存サーバ３００に送信する圧縮データは、第１の圧縮データ送信部２５’がクライアント装置１００に送信する圧縮データと同じではない。また、送信するタイミングも同じではない。例えば、第２の圧縮データ送信部２７は、よく使われるフレーム画像とそれに対応するハッシュ値との組を、第１の圧縮データ送信部２５’とは非同期で画像保存サーバ３００に送信する。【００９４】
具体的には、第２の圧縮データ送信部２７は、圧縮データ記憶部２１０の記憶内容を監視して、１つのフレーム画像に対して関連付けられるハッシュ値の数をカウントし、所定数（例えば、３個）以上となった場合に、そのフレーム画像とハッシュ値との組を画像保存サーバ３００に送信する。【００９５】
ハッシュリスト送信部２８は、クライアント装置１００のハッシュリスト取得部１７から送られてくるハッシュリスト取得要求に応じて、圧縮データ記憶部２１０にハッシュテーブルとして記憶されているハッシュ値のリストをクライアント装置１００に送信する。後述するように、ハッシュリスト取得要求の中には、圧縮データ記憶部２１０に記憶されている複数のハッシュテーブルのうちどのハッシュテーブルの取得を要求するかを特定するための情報が含まれている。【００９６】
画像保存サーバ３００の通信Ｉ／Ｆ部３１は、インターネット５００を介してクライアント装置１００および画像生成サーバ２００と互いに通信を行うものである。第２の圧縮データ受信部３２は、画像生成サーバ２００の第２の圧縮データ送信部２７により送信された圧縮データを受信する。第２の圧縮データ保存部３３は、第２の圧縮データ受信部３３により受信された圧縮データを第３の圧縮データ記憶部３１０に記憶させる。【００９７】
要求受信部３４は、クライアント装置１００のフレーム画像取得部１９からインターネット５００を介してハッシュ値と共に送られてくる画像取得要求を受信する。フレーム画像送信部３５は、要求受信部３４がハッシュ値と共に画像取得要求を受信した場合、当該ハッシュ値に関連付けられたフレーム画像を第３の圧縮データ記憶部３１０から読み出してクライアント装置１００に送信する。【００９８】
クライアント装置１００のハッシュリスト取得部１７は、ユーザによる図示しない操作部の操作に応じて、ハッシュリスト取得要求を画像生成サーバ２００に送信することにより、画像生成サーバ２００から圧縮データ記憶部２１０のハッシュテーブルに格納されたハッシュ値のリストを取得する。【００９９】
ここで、ユーザは、圧縮データ記憶部２１０に記憶されている複数のハッシュテーブルの中から所望のハッシュテーブルを指定することが可能である。その指定方法は任意である。例えば、画像生成サーバ２００から提供されてクライアント装置１００のモニタに表示される所定の入力画面を通じて、圧縮データ記憶部２１０に記憶されている複数のハッシュテーブルの一覧の中から何れかを指定する操作を行うことにより、所望のハッシュテーブルを指定することが可能である。【０１００】
なお、ハッシュテーブルの一覧として、ハッシュ値を表示したりハッシュテーブルの識別情報等を表示したりしても、ユーザにはそのハッシュテーブルがどの動画に関するものかが分かりにくい。そこで、例えばハッシュテーブルの先頭に記憶されているハッシュ値に関連付けられたフレーム画像をサムネイル画像として一覧表示するようにしてもよい。【０１０１】
あるいは、要求送信部１２により画像取得要求を画像生成サーバ２００に送信する際に、ユーザが図示しない操作部を操作して所望の情報（例えば動画の名称など）を入力することにより、この所望の情報を画像取得要求と共に画像生成サーバ２００に送信する。そして、圧縮データ記憶部２１０に動画データのハッシュテーブルを記憶させる際に、当該所望の情報を関連付けて記憶させ、これをハッシュテーブルの一覧に表示させるようにしてもよい。【０１０２】
ハッシュ値存否判定部１８は、ハッシュリスト取得部１７により取得されたハッシュリストに含まれるハッシュ値が、クライアント装置１００の第２の第２の圧縮データ記憶部１１０、画像保存サーバ３００の第３の圧縮データ記憶部３１０、画像生成サーバ２００の圧縮データ記憶部２１０の何れかに既に記憶されているか否かを、クライアント装置１００からのネットワーク距離が近い順に確認する。これを１つ１つのハッシュ値または複数のハッシュ値について順次行う。【０１０３】
ここで、ネットワーク距離とは、あるノードから出発して他のあるノードに到達するまでの通信経路の途中に置かれている中継装置を介したラウンドトリップ時間を意味する。クライアント装置１００を出発ノードとした場合、ネットワーク距離が最も近いのはクライアント装置１００自身である。一方、画像生成サーバ２００および画像保存サーバ３００のどちらの方がクライアント装置１００からのネットワーク距離が近いかは状況による。【０１０４】
なお、画像生成サーバ２００および画像保存サーバ３００が設置されている地域や国の情報をハッシュ値存否判定部１８が各サーバ２００，３００から取得して、その地域や国までの物理的距離に応じて、どちらの方がネットワーク距離が近いかを推定するようにしてもよい。以下では、画像保存サーバ３００の方が画像生成サーバ２００よりもクライアントからのネットワーク距離が近いものとして説明する。【０１０５】
この場合、ハッシュ値存否判定部１８は、ハッシュリスト取得部１７により取得されたハッシュリスト内の１つ目のハッシュ値について、まずはクライアント装置１００の第１の第２の圧縮データ記憶部１１０に記憶されているか否かを確認する。第１の第２の圧縮データ記憶部１１０に１つ目のハッシュ値が記憶されていれば、ハッシュ値存否判定部１８は当該１つ目のハッシュ値の存否判定動作をその時点で終了する。【０１０６】
一方、第１の第２の圧縮データ記憶部１１０に１つ目のハッシュ値が記憶されていない場合、次にハッシュ値存否判定部１８は、画像保存サーバ３００の第３の圧縮データ記憶部３１０に１つ目のハッシュ値が記憶されているか否かを確認する。第３の圧縮データ記憶部３１０に１つ目のハッシュ値が記憶されていれば、ハッシュ値存否判定部１８は当該１つ目のハッシュ値の存否判定動作をその時点で終了する。【０１０７】
また、第３の圧縮データ記憶部３１０にも１つ目のハッシュ値が記憶されていない場合、次にハッシュ値存否判定部１８は、ネットワーク距離が最も遠い画像生成サーバ２００の圧縮データ記憶部２１０に１つ目のハッシュ値が記憶されているか否かを確認する。【０１０８】
ハッシュ値存否判定部１８は、このような動作を、ハッシュリストに含まれる２つ目以降のハッシュ値についても１つ１つ順次行う。あるいは、複数のハッシュ値についてまとめて行ってもよい。また、画像生成サーバ２００と画像保存サーバ３００とに対して確認を同時に行うことも可能である。【０１０９】
ここで、画像生成サーバ２００の圧縮データ記憶部２１０、画像保存サーバ３００の第３の圧縮データ記憶部３１０にハッシュ値が既に記憶されているか否かの確認は、ハッシュ値存否判定部１８から通信Ｉ／Ｆ部１１を介して画像生成サーバ２００および画像保存サーバ３００に対してハッシュ値を送信して問い合わせを行うことによって実現する。【０１１０】
画像生成サーバ２００の問い合わせ応答部２９および画像保存サーバ３００の問い合わせ応答部３６は、クライアント装置１００のハッシュ値存否判定部１８から送信されてくる問い合わせに対して応答する処理を行う。すなわち、問い合わせ応答部２９，３６は、ハッシュ値存否判定部１８から送信されてくるハッシュ値を受信し、これが圧縮データ記憶部２１０，３１０に既に記憶されているかどうかを確認する。そして、記憶されているか否かの確認結果をクライアント装置１００のハッシュ値存否判定部１８に返信する。【０１１１】
フレーム画像取得部１９は、クライアント装置１００、画像生成サーバ２００および画像保存サーバ３００の各ノードのうち、ハッシュ値存否判定部１８によりハッシュ値が既に記憶されていると判定されたノードからハッシュ値に関連付けられたフレーム画像を取得する。そして、取得したフレーム画像を順次動画再生部１５ｂ”に供給する。【０１１２】
動画再生部１５ｂ”は、第１および第２の実施形態で説明した機能に加えて、フレーム画像取得部１９により取得された複数のフレーム画像を用いて動画の再生を実行する機能を有する。第１および第２の実施形態で説明した動画再生の機能は、動画生成部２３により動画データを生成しながらそれを動画圧縮部２４により圧縮してクライアント装置１００に送信し、リアルタイムに再生する場合に利用する機能である。【０１１３】
これに対して、第３の実施形態で追加した動画再生の機能は、過去に生成した動画データを再度確認等のために再生する場合に利用して好適な機能である。この場合、ユーザが所望のハッシュテーブルを指定してハッシュリストを取得し、そのハッシュリスト内の各ハッシュ値に対応するフレーム画像をそれぞれ最もネットワーク距離の近いところから取得するので、各フレーム画像を取得する際の通信時間を短くすることができる。これにより、より短時間で動画の再生を行うことができる。【０１１４】
なお、上記第３の実施形態では、クライアント装置１００および画像保存サーバ３００をそれぞれ１台ずつ備える構成について説明したが、複数のクライアント装置１００および複数の画像保存サーバ３００を備えてもよい。例えば、複数のクライアント装置１００どうしをＬＡＮ（Local Area Network）により接続するとともに、当該複数のクライアント装置１００、画像生成サーバ２００および複数の画像保存サーバ３００をインターネット５００により接続するようにしてもよい。【０１１５】
この場合、ハッシュ値存否判定部１８は、自身のクライアント装置１００、同じＬＡＮ内の別のクライアント装置１００の順番でハッシュリスト内のハッシュ値の存否を判定した後、画像生成サーバ２００および複数の画像保存サーバ３００の中からネットワーク距離が近い方から順にハッシュ値の存否を判定する。【０１１６】
また、上記第３の実施形態では、第２の圧縮データ送信部２７は、よく使われるフレーム画像とそれに対応するハッシュ値との組を画像保存サーバ３００に送信する例について説明したが、本発明はこれに限定されない。例えば、第１の圧縮データ送信部２５が送信する圧縮データと同じ圧縮データを画像保存サーバ３００に送信して保存するようにしてもよい。【０１１７】
上記第１〜第３の実施形態では、動画生成部２３により生成された動画データの各フレーム画像をそのまま画像間引部２４ｃにより間引きながら圧縮データ記憶部２１０に記憶する例について説明したが、本発明はこれに限定されない。例えば、画像生成サーバ２００は、動画データを構成する各フレーム画像について、フレーム内圧縮（ＪＰＥＧ、ＪＰＥＧ２０００、ＷｅｂＰ、ＨＥＶＣ−ＭＳＰなど）またはフレーム間圧縮（差分データの生成など）を行うことによってフレーム圧縮画像を生成する圧縮演算部を更に備え、ハッシュ演算部２４ａ、ハッシュテーブル生成部２４ｂおよび画像間引部２４ｃは、フレーム画像に代えてフレーム圧縮画像を用いて処理を行うようにしてもよい。【０１１８】
また、上記第１〜第３の実施形態では、クライアント装置１００と画像生成サーバ２００とがインターネット５００で接続されたシステムを例に挙げて説明したが、本発明はこれに限定されない。例えば、図３の動画生成部２３、動画圧縮部２４および圧縮データ記憶部２１０と、図２の動画伸長部１５とを１つのスタンドアロン型端末に備える構成としてもよい。【０１１９】
また、上記第１〜第３の実施形態では、スマートフォンのカメラ撮影や画面キャプチャによって動画データを生成する例について説明したが、本発明はこれに限定されない。すなわち、クライアント装置１００から出力された画像取得要求に応じて画像生成サーバ２００が動画データを生成したりデータベースから読み出したりするように成されたシステムに対して何れにも適用することが可能である。【０１２０】
また、上記第１〜第３の実施形態では、クライアント装置１００と画像生成サーバ２００との間をインターネット５００で接続する例について示しているが、本発明はこれに限定されない。例えば、クライアント装置１００と画像生成サーバ２００との間は、有線・無線、ＬＡＮ・ＷＡＮ等を問わず、あらゆる通信ネットワークで接続することが可能である。【０１２１】
その他、上記第１〜第３の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２２】
１３  圧縮データ受信部
１４  圧縮データ保存部
１５  動画伸長部
１５ａ  ハッシュ値読出部
１５ｂ，１５ｂ”  動画再生部
１６  問い合わせ応答部
１７  ハッシュリスト取得部
１８  ハッシュ値存否判定部
１９  フレーム画像取得部
２３  動画生成部
２４  動画圧縮部
２４ａ  ハッシュ演算部
２４ｂ  ハッシュテーブル生成部
２４ｃ，２４ｃ’  画像間引部
２５，２５’  圧縮データ送信部（第１の圧縮データ送信部）
２６  特徴量判定部
２７  第２の圧縮データ送信部
２８  ハッシュリスト送信部
２９  問い合わせ応答部
３２  第２の圧縮データ受信部
３３  第２の圧縮データ保存部
３５  フレーム画像送信部
３６  問い合わせ応答部
【要約】
動画データを構成する各フレーム画像からハッシュ値を算出し、各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して記憶させる。また、各フレーム画像のうち、ハッシュ値が異なる複数のフレーム画像を各ハッシュ値に関連付けて記憶させる一方、ハッシュ値が同じ複数のフレーム画像についてはその中の１つのみを記憶させて他は削除することにより、記憶されるフレーム画像の量を減らして動画全体としてのデータ量を削減できるようにする。【図１】
0005739079.tif 000002
【図２】
0005739079.tif 000003
【図３】
0005739079.tif 000004
【図４】
0005739079.tif 000005
【図５】
0005739079.tif 000006
【図６】
0005739079.tif 000007
【図７】
0005739079.tif 000008
【図８】
0005739079.tif 000009
【図９】
0005739079.tif 000010
【図１０】
0005739079.tif 000011
【図１１】
0005739079.tif 000012
【図１２】
0005739079.tif 000013
【図１３】
0005739079.tif 000014