(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0011】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。
図1に示すように、第1の実施形態による動画圧縮伸長システムは、クライアント装置100および画像生成サーバ200を備え、両者をインターネット500などの通信ネットワークを介して接続可能に構成されている。
【0012】
図2は、第1の実施形態によるクライアント装置100の機能構成例を示すブロック図である。
図2に示すように、第1の実施形態によるクライアント装置100は、その機能構成として、通信I/F部11、要求送信部12、圧縮データ受信部13、圧縮データ保存部14、動画伸長部15および第2の圧縮データ記憶部110を備えて構成されている。動画伸長部15は、その具体的な機能構成として、ハッシュ値読出部15aおよび動画再生部15bを備えている。
【0013】
上記各機能ブロック11〜15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11〜15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0014】
図3は、第1の実施形態による画像生成サーバ200の機能構成例を示すブロック図である。
図3に示すように、第1の実施形態による画像生成サーバ200は、その機能構成として、通信I/F部21、要求受信部22、動画生成部23、動画圧縮部24、圧縮データ送信部25および圧縮データ記憶部210を備えて構成されている。動画圧縮部24は、その具体的な機能構成として、ハッシュ演算部24a、ハッシュテーブル生成部24bおよび画像間引部24cを備えている。
【0015】
上記各機能ブロック21〜25は、ハードウェア、DSP、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック21〜25は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0016】
クライアント装置100の通信I/F部11および画像生成サーバ200の通信I/F部21は、インターネット500を介して互いに通信を行うものである。クライアント装置100の要求送信部12は、インターネット500を介して画像生成サーバ200に画像取得要求を送信する。この画像取得要求は、例えば、クライアント装置100のユーザが図示しない操作部を操作することによって生成される。
【0017】
画像生成サーバ200の要求受信部22は、クライアント装置100からインターネット500を介して送られてきた画像取得要求を受信する。動画生成部23は、要求受信部22により受信された画像取得要求に応じて、動画データを生成する。
【0018】
例えば、動画生成部23は、画像生成サーバ200に接続されたスマートフォン(図示せず)を固定した状態のままカメラ撮影を行うことによって動画データを生成する。または、スマートフォンの画面を順次遷移させ、遷移させた各画面のキャプチャ処理を行うことによって動画データを生成する。
【0019】
ここで、カメラ撮影や画面キャプチャは、クライアント装置100から出力される1回の画像取得要求に対して複数回連続して行う。この場合、動画データの生成を開始してから所定時間が経過した時点で処理を終了するようにしてもよいし、次に処理停止命令がクライアント装置100から出力されるまで処理を継続するようにしてもよい。あるいは、クライアント装置100と画像生成サーバ200とのコネクションが切断されるまで処理を継続するようにしてもよい。
【0020】
このように、スマートフォンによるカメラ撮影や画面キャプチャによって動画データを生成するのは、様々な機種のスマートフォンでカメラ撮影が問題なく行われているか否か、画面遷移が問題なく行われているか否か、スマートフォンにインストールされたアプリケーションが正常に動作しているか否かなどを、クライアント装置100から画像生成サーバ200にアクセスして遠隔から検証することができるようにするためである。
【0021】
動画圧縮部24は、動画圧縮装置に相当するものであり、動画生成部23により生成された動画データに対して、ハッシュ演算部24a、ハッシュテーブル生成部24bおよび画像間引部24cの処理によって画像圧縮を行う。
【0022】
ハッシュ演算部24aは、動画生成部23により生成された動画データを構成する各フレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する。なお、ハッシュ演算そのものに関しては、公知の手法を適用することが可能である。
【0023】
ハッシュテーブル生成部24bは、ハッシュ演算部24aにより各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成し、これを圧縮データ記憶部210に記憶させる。
【0024】
画像間引部24cは、動画生成部23により生成された動画データを構成する各フレーム画像のうち、ハッシュ演算部24aにより算出されたハッシュ値が異なる複数のフレーム画像をそれぞれハッシュテーブル内の異なる各ハッシュ値に関連付けて圧縮データ記憶部210に記憶させる。一方、動画データを構成する各フレーム画像のうち、ハッシュ値が同じ複数のフレーム画像については、その中の1つのみをハッシュテーブル内の同じ各ハッシュ値に関連付けて圧縮データ記憶部210に記憶させる。
【0025】
図4は、圧縮データ記憶部210に記憶されるハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。
図4(a)は、ハッシュテーブル生成部24bにより記憶されるハッシュテーブルの一例を示す。
図4(b)は、画像間引部24cにより記憶されるフレーム画像の一例を示す。このハッシュテーブルおよびフレーム画像のセットを動画の圧縮データとする。
【0026】
図4(a)に示すように、ハッシュテーブル生成部24bは、動画データを構成する各フレーム画像についてハッシュ演算部24aにより算出された複数のハッシュ値を、各フレーム画像の順番に沿って順次記憶させていく。
【0027】
上述のように、動画生成部23がカメラ撮影や画面キャプチャによって動画データを生成する場合、各フレーム画像の中には同じものが多数存在し得る。ただし、ハッシュテーブル生成部24bは、同じフレーム画像であるか否かを問わず、全てのフレーム画像についてハッシュ演算部24aにより算出されたハッシュ値をそのフレーム画像の順序に沿ってリスト化し、ハッシュテーブルに記憶させていく。
【0028】
これに対して、画像間引部24cは、
図4(b)に示すように、ハッシュ値が異なる複数のフレーム画像については、それらを全てハッシュテーブル内の各ハッシュ値に関連付けて記憶させる。一方、ハッシュ値が同じ複数のフレーム画像については、その中の1つのみ(例えば、最初に記憶させたフレーム画像)をハッシュテーブル内の同じ各ハッシュ値に関連付けて記憶させる。
【0029】
すなわち、画像間引部24cは、ハッシュ演算部24aによりハッシュ値が算出される毎に、そのハッシュ値が圧縮データ記憶部210のハッシュテーブルに既に記憶されているか否かを判定し、記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部210に追加して記憶させる。
【0030】
一方、圧縮データ記憶部210のハッシュテーブルにハッシュ値が既に記憶されていると判定された場合、画像間引部24cは当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部210に追加して記憶させず、既に記憶されているフレーム画像とハッシュ値との関連付けのみ行う。このように、圧縮データ記憶部210に記憶させるフレーム画像を間引くことにより画像圧縮を行い、データ容量の削減を図っている。
【0031】
圧縮データ送信部25は、動画圧縮部24により生成されて圧縮データ記憶部210に記憶された圧縮データ、すなわち、ハッシュテーブルおよび当該ハッシュテーブルの各ハッシュ値に関連付けられた複数のフレーム画像を、インターネット500を介してクライアント装置100に送信する。
【0032】
なお、この圧縮データの送信は、圧縮データ記憶部210に記憶されるハッシュテーブルが完成した後に行う必要は必ずしもない。すなわち、1つのハッシュ値が圧縮データ記憶部210のハッシュテーブルに追加される都度、圧縮データを順次送信するようにしてもよい。また、画像間引部24cの処理が行えていればよく、圧縮データ記憶部210に対する圧縮データの記憶については非同期で行ってもよい。また、圧縮データ送信部25は、ハッシュ値およびフレーム画像以外に、フレーム画像の相対時刻等のメタデータを合わせて送信するようにしてもよい。
【0033】
ここで、圧縮データ送信部25は、画像間引部24cによりハッシュ値とフレーム画像との組が圧縮データ記憶部210に記憶された場合には、そのハッシュ値とフレーム画像との組を圧縮データとしてクライアント装置100に送信する。一方、フレーム画像が間引かれてハッシュ値のみが圧縮データ記憶部210に記憶された場合は、そのハッシュ値のみを圧縮データとしてクライアント装置100に送信する。
【0034】
フレーム画像が間引かれてハッシュ値のみが圧縮データ記憶部210に記憶されている場合、それよりも前のフレームで既に同じフレーム画像がクライアント装置100に送信されている。この場合は、データ量の小さいハッシュ値のみを送信してフレーム画像の送信を省略することにより、送信データ量の削減を図っている。
【0035】
クライアント装置100の圧縮データ受信部13は、画像生成サーバ200の圧縮データ送信部25により送信された圧縮データ(ハッシュ値とフレーム画像との組、またはハッシュ値のみ)を受信する。圧縮データ保存部14は、圧縮データ受信部13により受信された圧縮データを第2の圧縮データ記憶部110に記憶させる。
【0036】
ここで、圧縮データ受信部13が圧縮データとしてハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部14は、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる。
【0037】
一方、圧縮データ受信部13が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部14は、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける。これにより、第2の圧縮データ記憶部110に記憶される圧縮データも、
図4に示したのと同様の状態となる。
【0038】
動画伸長部15は、動画伸長装置に相当するものであり、第2の圧縮データ記憶部110に記憶された圧縮データに対して、ハッシュ値読出部15aおよび動画再生部15bの処理によって画像伸長を行う。ハッシュ値読出部15aは、画像生成サーバ200から送信されてきた圧縮データに基づき第2の圧縮データ記憶部110に記憶されたハッシュテーブルから、複数のハッシュ値を順次読み出す。
【0039】
なお、このハッシュ値の読み出しは、第2の圧縮データ記憶部110に記憶されるハッシュテーブルが完成した後に行う必要は必ずしもない。すなわち、圧縮データ保存部14により1つのハッシュ値が第2の圧縮データ記憶部110のハッシュテーブルに追加される都度、そのハッシュ値を順次読み出すようにしてもよい。このようにすれば、クライアント装置100から画像生成サーバ200に画像取得要求を送信してから、該当する動画の再生が開始されるまでの時間を短くすることができる。
【0040】
動画再生部15bは、ハッシュ値読出部15aにより順次読み出された複数のハッシュ値に対応する複数のフレーム画像を第2の圧縮データ記憶部110から順次読み出して動画の再生を実行する。第2の圧縮データ記憶部110に記憶されているハッシュテーブルは、動画を構成する各フレーム画像の順序に沿ってハッシュ値をリスト化したものであるから、このハッシュ値をハッシュ演算部24aにより順番に読み出して、各ハッシュ値に対応するフレーム画像を動画再生部15bが順番に再生することにより、動画の再生を行うことができる。
【0041】
図5は、以上のように構成した第1の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。まず、クライアント装置100の要求送信部12は、インターネット500を介して画像生成サーバ200に画像取得要求を送信する(ステップS1)。画像生成サーバ200では、この画像取得要求を要求受信部22にて受信すると、動画生成部23が画像取得要求に応じた動画データのフレーム画像を生成する(ステップS2)。
【0042】
次に、ハッシュ演算部24aは、動画生成部23により生成された動画データのフレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する(ステップS3)。ここで、ハッシュテーブル生成部24bは、ハッシュ演算部24aにより算出されたハッシュ値と同じハッシュ値が、今回の動画生成に関して圧縮データ記憶部210に記憶されたハッシュテーブル内に既に存在するか否かを判定する(ステップS4)。
【0043】
ハッシュ演算部24aにより算出されたハッシュ値がハッシュテーブル内に既に存在する場合、ハッシュテーブル生成部24bは、そのハッシュ値をハッシュテーブルに追加して記憶させるとともに、ハッシュテーブル内に既に存在するハッシュ値に関連付けて圧縮データ記憶部210に既に記憶されているフレーム画像に対して、新たに追加したハッシュ値を関連付ける(ステップS5)。そして、圧縮データ送信部25は、ステップS3でハッシュ演算部24aにより算出されたハッシュ値のみを、圧縮データ記憶部210から読み出してクライアント装置100に送信する(ステップS6)。
【0044】
一方、ハッシュ演算部24aにより算出されたハッシュ値がハッシュテーブル内に存在しない場合、ハッシュテーブル生成部24bがそのハッシュ値をハッシュテーブルに追加して記憶させる。また、画像間引部24cは、ハッシュテーブルに新たに追加されたハッシュ値に関連付けて、ステップS2で動画生成部23により生成されたフレーム画像を圧縮データ記憶部210に記憶させる(ステップS7)。そして、圧縮データ送信部25は、ステップS2で動画生成部23により生成されたフレーム画像およびステップS3でハッシュ演算部24aにより算出されたハッシュ値との組を、圧縮データ記憶部210から読み出してクライアント装置100に送信する(ステップS8)。
【0045】
その後、動画生成部23は、動画データの生成を終了するか否かを判定する(ステップS9)。すなわち、動画生成部23は、動画データの生成を開始してから所定時間が経過したか否か、処理停止命令がクライアント装置100から送られてきたか否か、クライアント装置100とのコネクションが切断されたか否かなどを判定する。ここで、動画データの生成をまだ終了しない場合、処理はステップS2に戻り、次のフレーム画像の生成を行う。一方、動画データの生成を終了する場合、画像生成サーバ200における処理は終了する。
【0046】
クライアント装置100では、上記ステップS1で画像取得要求を画像生成サーバ200に送信した後、圧縮データ受信部13は、画像生成サーバ200の圧縮データ送信部25により送信された圧縮データ(ハッシュ値とフレーム画像との組、またはハッシュ値のみ)を受信する(ステップS10)。
【0047】
ここで、圧縮データ保存部14は、圧縮データ受信部13が圧縮データとしてハッシュ値とフレーム画像との組を受信したか否かを判定する(ステップS11)。圧縮データ受信部13がハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部14は、第2の圧縮データ記憶部110に対して、ハッシュ値をハッシュテーブルに追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる(ステップS12)。
【0048】
一方、圧縮データ受信部13が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部14は、第2の圧縮データ記憶部110に対して、ハッシュ値をハッシュテーブルに追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける(ステップS13)。
【0049】
次に、ハッシュ値読出部15aは、ステップS12またはステップS13で第2の圧縮データ記憶部110のハッシュテーブルに追加して記憶されたハッシュ値を読み出す(ステップS14)。そして、動画再生部15bは、ハッシュ値読出部15aにより読み出されたハッシュ値に対応するフレーム画像を第2の圧縮データ記憶部110から読み出して再生する(ステップS15)。
【0050】
その後、動画再生部15bは、動画データの再生を終了するか否かを判定する(ステップS16)。すなわち、動画再生部15bは、動画データの生成を開始してから所定時間が経過したか否か、処理停止命令をクライアント装置100に送信したか否か、画像生成サーバ200とのコネクションが切断されたか否かなどを判定する。ここで、動画データの再生をまだ終了しない場合、処理はステップS10に戻り、次のフレームに関する圧縮データの受信を行う。一方、動画データの再生を終了する場合、クライアント装置100における処理は終了する。
【0051】
以上詳しく説明したように、第1の実施形態の動画圧縮伸長システムでは、動画データを構成する各フレーム画像からハッシュ値を算出し、各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して記憶させる。また、各フレーム画像のうち、ハッシュ値が異なる複数のフレーム画像を各ハッシュ値に関連付けて記憶させる一方、ハッシュ値が同じ複数のフレーム画像についてはその中の1つのみを記憶させて他は削除するようにしている。
【0052】
このように構成した第1の実施形態によれば、動画データを構成する各フレーム画像がデータ量の極めて小さいハッシュ値に置き換えられる。元のフレーム画像は、ハッシュ値から再現する際に必要なために保存されるが、ハッシュ値が同じ複数のフレーム画像についてはその中の1つのみが記憶されて他は削除されるので、動画全体としてのデータ量は削減される。また、フレーム画像からハッシュ値への置き換えは可逆圧縮であるから、ハッシュ値から元のフレーム画像を完全に再現することが可能である。
【0053】
これにより、元画像の再現性(画質)を良好に保ったまま動画データの圧縮率を高めることができ、第2の圧縮データ記憶部110,210に記憶する動画データの容量を削減したり、画像生成サーバ200からクライアント装置100に送信するフレーム画像の量を削減して通信速度を速くしたりすることができる。
【0054】
(第2の実施形態)
以下、本発明の第2の実施形態を図面に基づいて説明する。第2の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成は、
図1と同様である。
【0055】
図6は、第2の実施形態によるクライアント装置100機能構成例を示すブロック図である。なお、この
図6において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
図6に示すように、第2の実施形態によるクライアント装置100は、その機能構成として、問い合わせ応答部16を更に備えている。
【0056】
図7は、第2の実施形態による画像生成サーバ200の機能構成例を示すブロック図である。なお、この
図7において、
図3に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
図7に示すように、第2の実施形態による画像生成サーバ200は、その機能構成として、特徴量判定部26を更に備えている。また、画像間引部24cおよび圧縮データ送信部25に代えて、画像間引部24c’および圧縮データ送信部25’を備えている。
【0057】
画像間引部24c’は、今回の動画生成に関して圧縮データ記憶部210に記憶されたハッシュテーブルに限らず、過去の動画生成時に記憶されたハッシュテーブルも含めて圧縮データ記憶部210に既に記憶されている複数のハッシュテーブルを対象として、ハッシュ演算部24aにより今回算出されたハッシュ値と同じハッシュ値が既に記憶されているか否かを判定する。そして、既に同じハッシュ値が記憶されている場合は、そのハッシュ値に対応するフレーム画像の圧縮データ記憶部210への記憶を間引く。
【0058】
すなわち、画像間引部24c’は、ある動画データについてハッシュ演算部24aによりハッシュ値が算出される毎に、そのハッシュ値が、複数の動画データ毎に生成された複数のハッシュテーブルの何れか少なくとも1つに既に記憶されているか否かを判定する。そして、何れのハッシュテーブルにもそのハッシュ値が記憶されていないと判定された場合に限り、当該ハッシュ値に対応するフレーム画像を圧縮データ記憶部210に記憶させる。
【0059】
図8は、第2の実施形態において圧縮データ記憶部210に記憶される複数のハッシュテーブルおよびフレーム画像の一例を模式的に示すイメージ図である。
図8(a)に示すように、ハッシュテーブル生成部24bは、複数の動画データ毎に別のハッシュテーブルを生成して圧縮データ記憶部210に記憶させる。
【0060】
また、
図8(b)に示すように、画像間引部24c’は、全てのハッシュテーブルを通してハッシュ値が異なるフレーム画像については、それらのフレーム画像を全てハッシュテーブル内の各ハッシュ値に関連付けて記憶させる。一方、画像間引部24c’は、同じハッシュテーブル内または異なるハッシュテーブル内でハッシュ値が同じ複数のフレーム画像については、その中の1つのみを同じ各ハッシュ値に関連付けて記憶させる。
【0061】
特徴量判定部26は、ハッシュ演算部24aにより各フレーム画像について順次算出されるハッシュ値が、クライアント装置100に記憶されているか否かを判定する。具体的には、特徴量判定部26は、ハッシュ演算部24aにより算出されたハッシュ値を、通信I/F部21を介してクライアント装置100に送信し、それと同じハッシュ値がクライアント装置100の第2の圧縮データ記憶部110に記憶されているかを問い合わせる。そして、その結果としてクライアント装置100から送られてくる応答内容に基づいて、ハッシュ値がクライアント装置100に記憶されているか否かを判定する。そして、その判定結果を圧縮データ送信部25’に通知する。
【0062】
圧縮データ送信部25’は、特徴量判定部26によりハッシュ値がクライアント装置100に記憶されていないと判定された場合に限り、そのハッシュ値およびそれに関連付けられたフレーム画像をクライアント装置100に送信する。一方、ハッシュ値がクライアント装置100に既に記憶されていると判定された場合、圧縮データ送信部25’は、そのハッシュ値のみをクライアント装置100に送信する。なお、特徴量判定部26による問い合わせの際にハッシュ値はクライアント装置100に既に送信されているので、改めてそのハッシュ値を送信することを省略してもよい。
【0063】
例えば、クライアント装置100が画像生成サーバ200に対して複数の画像取得要求を送信し、複数の動画データに関する圧縮データ(ハッシュテーブルおよびフレーム画像)を取得して第2の圧縮データ記憶部110に記憶させている場合、今回画像生成サーバ200からクライアント装置100に送信しようとしているハッシュ値とフレーム画像が既にクライアント装置100に記憶されている場合があり得る。この場合は、データ量の小さいハッシュ値のみを送信してフレーム画像の送信を省略することにより、送信データ量の削減を図っている。
【0064】
クライアント装置100の問い合わせ応答部16は、画像生成サーバ200の特徴量判定部26から送信されてくる問い合わせに対して応答する処理を行う。すなわち、問い合わせ応答部16は、特徴量判定部26から送信されてくるハッシュ値を受信し、これが第2の圧縮データ記憶部110に既に記憶されているかどうかを確認する。そして、記憶されているか否かの確認結果を画像生成サーバ200の特徴量判定部26に返信する。
【0065】
図9は、以上のように構成した第2の実施形態による動画圧縮伸長システムの動作例を示すフローチャートである。まず、クライアント装置100の要求送信部12は、インターネット500を介して画像生成サーバ200に画像取得要求を送信する(ステップS21)。画像生成サーバ200では、この画像取得要求を要求受信部22にて受信すると、動画生成部23が画像取得要求に応じた動画データのフレーム画像を生成する(ステップS22)。
【0066】
次に、ハッシュ演算部24aは、動画生成部23により生成された動画データのフレーム画像に対してハッシュ演算を行い、フレーム画像の同一性を特定可能な特徴量としてハッシュ値を算出する(ステップS23)。ここで、ハッシュテーブル生成部24bは、ハッシュ演算部24aにより算出されたハッシュ値と同じハッシュ値が、圧縮データ記憶部210に記憶されている複数のハッシュテーブル内に既に存在するか否かを判定する(ステップS24)。
【0067】
ハッシュ演算部24aにより算出されたハッシュ値が何れかのハッシュテーブル内に既に存在する場合、ハッシュテーブル生成部24bは、そのハッシュ値を今回の動画生成に関するハッシュテーブルに追加して記憶させるとともに、それと同じハッシュ値に関連付けて圧縮データ記憶部210に既に記憶されているフレーム画像に対して、新たに追加したハッシュ値を関連付ける(ステップS25)。
【0068】
一方、ハッシュ演算部24aにより算出されたハッシュ値が何れのハッシュテーブル内にも存在しない場合、ハッシュテーブル生成部24bがそのハッシュ値を今回の動画生成に関するハッシュテーブルに追加して記憶させる。また、画像間引部24c’は、ハッシュテーブルに新たに追加されたハッシュ値に関連付けて、ステップS22で動画生成部23により生成されたフレーム画像を圧縮データ記憶部210に記憶させる(ステップS26)。
【0069】
ここで、特徴量判定部26は、ハッシュ演算部24aにより算出された各ハッシュ値をクライアント装置100に送信し、それと同じハッシュ値がクライアント装置100に既に記憶されているかを問い合わせる(ステップS27)。クライアント装置100の問い合わせ応答部16は、画像生成サーバ200から受信したハッシュ値が第2の圧縮データ記憶部110に既に記憶されているかどうかを確認する(ステップS28)。
【0070】
ここで、問い合わせに関するハッシュ値が第2の圧縮データ記憶部110に記憶されている場合、問い合わせ応答部16は、ハッシュ値がクライアント装置100に記憶されていることを、問い合わせに対する確認結果として画像生成サーバ200の特徴量判定部26に返信する(ステップS29)。
【0071】
一方、問い合わせに関するハッシュ値が第2の圧縮データ記憶部110に記憶されていない場合、問い合わせ応答部16は、ハッシュ値がクライアント装置100に記憶されていないことを、問い合わせに対する確認結果として画像生成サーバ200の特徴量判定部26に返信する(ステップS30)。
【0072】
クライアント装置100から問い合わせに対する応答を受け取った画像生成サーバ200では、特徴量判定部26が、その応答内容に基づいて、ハッシュ値がクライアント装置100に記憶されているか否かを判定する(ステップS31)。
【0073】
ここで、ハッシュ値がクライアント装置100に記憶されていると特徴量判定部26にて判定された場合、圧縮データ送信部25’は、ステップS23でハッシュ演算部24aにより算出されたハッシュ値のみを、圧縮データ記憶部210から読み出してクライアント装置100に送信する(ステップS32)。なお、上述したように、このステップS32を省略し、ステップS27で問い合わせの際に送信したハッシュ値をクライアント装置100で利用するようにしてもよい。
【0074】
一方、ハッシュ値がクライアント装置100に記憶されていないと特徴量判定部26にて判定された場合、圧縮データ送信部25’は、ステップ22で動画生成部23により生成されたフレーム画像およびステップS23でハッシュ演算部24aにより算出されたハッシュ値との組を、圧縮データ記憶部210から読み出してクライアント装置100に送信する(ステップS33)。
【0075】
その後、動画生成部23は、動画データの生成を終了するか否かを判定する(ステップS34)。ここで、動画データの生成をまだ終了しない場合、処理はステップS22に戻り、次のフレーム画像の生成を行う。一方、動画データの生成を終了する場合、画像生成サーバ200における処理は終了する。
【0076】
クライアント装置100では、上記ステップS29またはステップS30において応答を行った後、圧縮データ受信部13は、画像生成サーバ200の圧縮データ送信部25’により送信された圧縮データ(ハッシュ値とフレーム画像との組、またはハッシュ値のみ)を受信する(ステップS35)。
【0077】
ここで、圧縮データ保存部14は、圧縮データ受信部13が圧縮データとしてハッシュ値とフレーム画像との組を受信したか否かを判定する(ステップS36)。圧縮データ受信部13がハッシュ値とフレーム画像との組を受信した場合、圧縮データ保存部14は、第2の圧縮データ記憶部110に対して、今回の動画再生に関するハッシュテーブルにハッシュ値を追加して記憶させるとともに、フレーム画像をそのハッシュ値に関連付けて記憶させる(ステップS37)。
【0078】
一方、圧縮データ受信部13が圧縮データとしてハッシュ値のみを受信した場合、圧縮データ保存部14は、第2の圧縮データ記憶部110に対して、今回の動画再生に関するハッシュテーブルにハッシュ値を追加して記憶させるとともに、そのハッシュ値と同じハッシュ値に対して既に関連付けて記憶されているフレーム画像を、ハッシュテーブルに新たに追加したハッシュ値に関連付ける(ステップS38)。
【0079】
次に、ハッシュ値読出部15aは、ステップS37またはステップS38で第2の圧縮データ記憶部110のハッシュテーブルに追加して記憶されたハッシュ値を読み出す(ステップS39)。そして、動画再生部15bは、ハッシュ値読出部15aにより読み出されたハッシュ値に対応するフレーム画像を第2の圧縮データ記憶部110から読み出して再生する(ステップS40)。
【0080】
その後、動画再生部15bは、動画データの再生を終了するか否かを判定する(ステップS41)。ここで、動画データの再生をまだ終了しない場合、処理はステップS35に戻り、次のフレームに関する圧縮データの受信を行う。一方、動画データの再生を終了する場合、クライアント装置100における処理は終了する。
【0081】
以上詳しく説明したように、第2の実施形態の動画圧縮伸長システムでは、ハッシュ演算部24aにより算出されたハッシュ値と同じ値を有するハッシュ値が、圧縮データ記憶部210に記憶されている複数のハッシュテーブルのうち少なくとも何れか1つに含まれている場合は、そのハッシュ値に対応するフレーム画像の圧縮データ記憶部210への記憶を間引くようにしている。
【0082】
また、第2の実施形態では、画像生成サーバ200にて生成された動画のフレーム画像が、それより前の時点で画像生成サーバ200からクライアント装置100に既に送信されて第2の圧縮データ記憶部110に記憶されている場合は、ハッシュ値を用いた問い合せによる結果に基づいて、当該フレーム画像は画像生成サーバ200からクライアント装置100に送信しないようにしている。
【0083】
このように構成した第2の実施形態によれば、第2の圧縮データ記憶部110,210に記憶するフレーム画像の量をより少なくして動画データの容量をさらに削減することができる。また、画像生成サーバ200からクライアント装置100に送信するフレーム画像の量をより少なくして通信速度をさらに速くすることができる。
【0084】
なお、同じハッシュ値に対応するフレーム画像の圧縮データ記憶部210への記憶は間引かず、フレーム画像の送信を間引くのみとすることも可能である。
【0085】
(第3の実施形態)
以下、本発明の第3の実施形態を図面に基づいて説明する。
図10は、第3の実施形態による動画圧縮装置を備えた動画圧縮伸長システムの構成例を示す全体構成図である。なお、この
図10において、
図1に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0086】
図10に示すように、第3の実施形態による動画圧縮伸長システムは、クライアント装置100、画像生成サーバ200および画像保存サーバ300を備えている。クライアント装置100、画像生成サーバ200および画像保存サーバ300は、互いにインターネット500を介して接続可能に構成されている。
【0087】
図11は、第3の実施形態によるクライアント装置100の機能構成例を示すブロック図である。なお、この
図11において、
図6に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0088】
図11に示すように、第3の実施形態によるクライアント装置100は、その機能構成として、ハッシュリスト取得部17、ハッシュ値存否判定部18およびフレーム画像取得部19を更に備えている。また、動画再生部15bに代えて動画再生部15b”を備えている。なお、第1の圧縮データ受信部13および第1の圧縮データ保存部14は、
図6に示した圧縮データ受信部13および圧縮データ保存部14と同じ機能を有するものである。
【0089】
図12は、第3の実施形態による画像生成サーバ200の機能構成例を示すブロック図である。なお、この
図12において、
図7に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0090】
図12に示すように、第3の実施形態による画像生成サーバ200は、その機能構成として、第2の圧縮データ送信部27、ハッシュリスト送信部28および問い合わせ応答部29を更に備えている。なお、第1の圧縮データ送信部25’は、
図7に示した圧縮データ送信部25’と同じ機能を有するものである。
【0091】
図13は、第3の実施形態による画像保存サーバ300の機能構成例を示すブロック図である。
図13に示すように、第3の実施形態による画像保存サーバ300は、その機能構成として、通信インタフェース部31、第2の圧縮データ受信部32、第2の圧縮データ保存部33、要求受信部34、フレーム画像送信部35、問い合わせ応答部36および第3の圧縮データ記憶部310を備えている。
【0092】
画像生成サーバ200の第2の圧縮データ送信部27は、動画圧縮部24により生成され圧縮データ記憶部210に記憶された圧縮データ(ハッシュ値および当該ハッシュ値に関連付けられたフレーム画像)を、インターネット500を介して画像保存サーバ300に送信する。
【0093】
第2の圧縮データ送信部27が画像保存サーバ300に送信する圧縮データは、第1の圧縮データ送信部25’がクライアント装置100に送信する圧縮データと同じではない。また、送信するタイミングも同じではない。例えば、第2の圧縮データ送信部27は、よく使われるフレーム画像とそれに対応するハッシュ値との組を、第1の圧縮データ送信部25’とは非同期で画像保存サーバ300に送信する。
【0094】
具体的には、第2の圧縮データ送信部27は、圧縮データ記憶部210の記憶内容を監視して、1つのフレーム画像に対して関連付けられるハッシュ値の数をカウントし、所定数(例えば、3個)以上となった場合に、そのフレーム画像とハッシュ値との組を画像保存サーバ300に送信する。
【0095】
ハッシュリスト送信部28は、クライアント装置100のハッシュリスト取得部17から送られてくるハッシュリスト取得要求に応じて、圧縮データ記憶部210にハッシュテーブルとして記憶されているハッシュ値のリストをクライアント装置100に送信する。後述するように、ハッシュリスト取得要求の中には、圧縮データ記憶部210に記憶されている複数のハッシュテーブルのうちどのハッシュテーブルの取得を要求するかを特定するための情報が含まれている。
【0096】
画像保存サーバ300の通信I/F部31は、インターネット500を介してクライアント装置100および画像生成サーバ200と互いに通信を行うものである。第2の圧縮データ受信部32は、画像生成サーバ200の第2の圧縮データ送信部27により送信された圧縮データを受信する。第2の圧縮データ保存部33は、第2の圧縮データ受信部33により受信された圧縮データを第3の圧縮データ記憶部310に記憶させる。
【0097】
要求受信部34は、クライアント装置100のフレーム画像取得部19からインターネット500を介してハッシュ値と共に送られてくる画像取得要求を受信する。フレーム画像送信部35は、要求受信部34がハッシュ値と共に画像取得要求を受信した場合、当該ハッシュ値に関連付けられたフレーム画像を第3の圧縮データ記憶部310から読み出してクライアント装置100に送信する。
【0098】
クライアント装置100のハッシュリスト取得部17は、ユーザによる図示しない操作部の操作に応じて、ハッシュリスト取得要求を画像生成サーバ200に送信することにより、画像生成サーバ200から圧縮データ記憶部210のハッシュテーブルに格納されたハッシュ値のリストを取得する。
【0099】
ここで、ユーザは、圧縮データ記憶部210に記憶されている複数のハッシュテーブルの中から所望のハッシュテーブルを指定することが可能である。その指定方法は任意である。例えば、画像生成サーバ200から提供されてクライアント装置100のモニタに表示される所定の入力画面を通じて、圧縮データ記憶部210に記憶されている複数のハッシュテーブルの一覧の中から何れかを指定する操作を行うことにより、所望のハッシュテーブルを指定することが可能である。
【0100】
なお、ハッシュテーブルの一覧として、ハッシュ値を表示したりハッシュテーブルの識別情報等を表示したりしても、ユーザにはそのハッシュテーブルがどの動画に関するものかが分かりにくい。そこで、例えばハッシュテーブルの先頭に記憶されているハッシュ値に関連付けられたフレーム画像をサムネイル画像として一覧表示するようにしてもよい。
【0101】
あるいは、要求送信部12により画像取得要求を画像生成サーバ200に送信する際に、ユーザが図示しない操作部を操作して所望の情報(例えば動画の名称など)を入力することにより、この所望の情報を画像取得要求と共に画像生成サーバ200に送信する。そして、圧縮データ記憶部210に動画データのハッシュテーブルを記憶させる際に、当該所望の情報を関連付けて記憶させ、これをハッシュテーブルの一覧に表示させるようにしてもよい。
【0102】
ハッシュ値存否判定部18は、ハッシュリスト取得部17により取得されたハッシュリストに含まれるハッシュ値が、クライアント装置100の第2の第2の圧縮データ記憶部110、画像保存サーバ300の第3の圧縮データ記憶部310、画像生成サーバ200の圧縮データ記憶部210の何れかに既に記憶されているか否かを、クライアント装置100からのネットワーク距離が近い順に確認する。これを1つ1つのハッシュ値または複数のハッシュ値について順次行う。
【0103】
ここで、ネットワーク距離とは、あるノードから出発して他のあるノードに到達するまでの通信経路の途中に置かれている中継装置を介したラウンドトリップ時間を意味する。クライアント装置100を出発ノードとした場合、ネットワーク距離が最も近いのはクライアント装置100自身である。一方、画像生成サーバ200および画像保存サーバ300のどちらの方がクライアント装置100からのネットワーク距離が近いかは状況による。
【0104】
なお、画像生成サーバ200および画像保存サーバ300が設置されている地域や国の情報をハッシュ値存否判定部18が各サーバ200,300から取得して、その地域や国までの物理的距離に応じて、どちらの方がネットワーク距離が近いかを推定するようにしてもよい。以下では、画像保存サーバ300の方が画像生成サーバ200よりもクライアントからのネットワーク距離が近いものとして説明する。
【0105】
この場合、ハッシュ値存否判定部18は、ハッシュリスト取得部17により取得されたハッシュリスト内の1つ目のハッシュ値について、まずはクライアント装置100の第1の第2の圧縮データ記憶部110に記憶されているか否かを確認する。第1の第2の圧縮データ記憶部110に1つ目のハッシュ値が記憶されていれば、ハッシュ値存否判定部18は当該1つ目のハッシュ値の存否判定動作をその時点で終了する。
【0106】
一方、第1の第2の圧縮データ記憶部110に1つ目のハッシュ値が記憶されていない場合、次にハッシュ値存否判定部18は、画像保存サーバ300の第3の圧縮データ記憶部310に1つ目のハッシュ値が記憶されているか否かを確認する。第3の圧縮データ記憶部310に1つ目のハッシュ値が記憶されていれば、ハッシュ値存否判定部18は当該1つ目のハッシュ値の存否判定動作をその時点で終了する。
【0107】
また、第3の圧縮データ記憶部310にも1つ目のハッシュ値が記憶されていない場合、次にハッシュ値存否判定部18は、ネットワーク距離が最も遠い画像生成サーバ200の圧縮データ記憶部210に1つ目のハッシュ値が記憶されているか否かを確認する。
【0108】
ハッシュ値存否判定部18は、このような動作を、ハッシュリストに含まれる2つ目以降のハッシュ値についても1つ1つ順次行う。あるいは、複数のハッシュ値についてまとめて行ってもよい。また、画像生成サーバ200と画像保存サーバ300とに対して確認を同時に行うことも可能である。
【0109】
ここで、画像生成サーバ200の圧縮データ記憶部210、画像保存サーバ300の第3の圧縮データ記憶部310にハッシュ値が既に記憶されているか否かの確認は、ハッシュ値存否判定部18から通信I/F部11を介して画像生成サーバ200および画像保存サーバ300に対してハッシュ値を送信して問い合わせを行うことによって実現する。
【0110】
画像生成サーバ200の問い合わせ応答部29および画像保存サーバ300の問い合わせ応答部36は、クライアント装置100のハッシュ値存否判定部18から送信されてくる問い合わせに対して応答する処理を行う。すなわち、問い合わせ応答部29,36は、ハッシュ値存否判定部18から送信されてくるハッシュ値を受信し、これが圧縮データ記憶部210,310に既に記憶されているかどうかを確認する。そして、記憶されているか否かの確認結果をクライアント装置100のハッシュ値存否判定部18に返信する。
【0111】
フレーム画像取得部19は、クライアント装置100、画像生成サーバ200および画像保存サーバ300の各ノードのうち、ハッシュ値存否判定部18によりハッシュ値が既に記憶されていると判定されたノードからハッシュ値に関連付けられたフレーム画像を取得する。そして、取得したフレーム画像を順次動画再生部15b”に供給する。
【0112】
動画再生部15b”は、第1および第2の実施形態で説明した機能に加えて、フレーム画像取得部19により取得された複数のフレーム画像を用いて動画の再生を実行する機能を有する。第1および第2の実施形態で説明した動画再生の機能は、動画生成部23により動画データを生成しながらそれを動画圧縮部24により圧縮してクライアント装置100に送信し、リアルタイムに再生する場合に利用する機能である。
【0113】
これに対して、第3の実施形態で追加した動画再生の機能は、過去に生成した動画データを再度確認等のために再生する場合に利用して好適な機能である。この場合、ユーザが所望のハッシュテーブルを指定してハッシュリストを取得し、そのハッシュリスト内の各ハッシュ値に対応するフレーム画像をそれぞれ最もネットワーク距離の近いところから取得するので、各フレーム画像を取得する際の通信時間を短くすることができる。これにより、より短時間で動画の再生を行うことができる。
【0114】
なお、上記第3の実施形態では、クライアント装置100および画像保存サーバ300をそれぞれ1台ずつ備える構成について説明したが、複数のクライアント装置100および複数の画像保存サーバ300を備えてもよい。例えば、複数のクライアント装置100どうしをLAN(Local Area Network)により接続するとともに、当該複数のクライアント装置100、画像生成サーバ200および複数の画像保存サーバ300をインターネット500により接続するようにしてもよい。
【0115】
この場合、ハッシュ値存否判定部18は、自身のクライアント装置100、同じLAN内の別のクライアント装置100の順番でハッシュリスト内のハッシュ値の存否を判定した後、画像生成サーバ200および複数の画像保存サーバ300の中からネットワーク距離が近い方から順にハッシュ値の存否を判定する。
【0116】
また、上記第3の実施形態では、第2の圧縮データ送信部27は、よく使われるフレーム画像とそれに対応するハッシュ値との組を画像保存サーバ300に送信する例について説明したが、本発明はこれに限定されない。例えば、第1の圧縮データ送信部25が送信する圧縮データと同じ圧縮データを画像保存サーバ300に送信して保存するようにしてもよい。
【0117】
上記第1〜第3の実施形態では、動画生成部23により生成された動画データの各フレーム画像をそのまま画像間引部24cにより間引きながら圧縮データ記憶部210に記憶する例について説明したが、本発明はこれに限定されない。例えば、画像生成サーバ200は、動画データを構成する各フレーム画像について、フレーム内圧縮(JPEG、JPEG2000、WebP、HEVC−MSPなど)またはフレーム間圧縮(差分データの生成など)を行うことによってフレーム圧縮画像を生成する圧縮演算部を更に備え、ハッシュ演算部24a、ハッシュテーブル生成部24bおよび画像間引部24cは、フレーム画像に代えてフレーム圧縮画像を用いて処理を行うようにしてもよい。
【0118】
また、上記第1〜第3の実施形態では、クライアント装置100と画像生成サーバ200とがインターネット500で接続されたシステムを例に挙げて説明したが、本発明はこれに限定されない。例えば、
図3の動画生成部23、動画圧縮部24および圧縮データ記憶部210と、
図2の動画伸長部15とを1つのスタンドアロン型端末に備える構成としてもよい。
【0119】
また、上記第1〜第3の実施形態では、スマートフォンのカメラ撮影や画面キャプチャによって動画データを生成する例について説明したが、本発明はこれに限定されない。すなわち、クライアント装置100から出力された画像取得要求に応じて画像生成サーバ200が動画データを生成したりデータベースから読み出したりするように成されたシステムに対して何れにも適用することが可能である。
【0120】
また、上記第1〜第3の実施形態では、クライアント装置100と画像生成サーバ200との間をインターネット500で接続する例について示しているが、本発明はこれに限定されない。例えば、クライアント装置100と画像生成サーバ200との間は、有線・無線、LAN・WAN等を問わず、あらゆる通信ネットワークで接続することが可能である。
【0121】
その他、上記第1〜第3の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
動画データを構成する各フレーム画像からハッシュ値を算出し、各フレーム画像について算出された複数のハッシュ値を各フレーム画像の順番に沿ってリスト化して成るハッシュテーブルを生成して記憶させる。また、各フレーム画像のうち、ハッシュ値が異なる複数のフレーム画像を各ハッシュ値に関連付けて記憶させる一方、ハッシュ値が同じ複数のフレーム画像についてはその中の1つのみを記憶させて他は削除することにより、記憶されるフレーム画像の量を減らして動画全体としてのデータ量を削減できるようにする。