特許第6738091号(P6738091)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社アクセルの特許一覧

特許6738091動画データの圧縮装置、動画データの圧縮方法
<>
  • 特許6738091-動画データの圧縮装置、動画データの圧縮方法 図000005
  • 特許6738091-動画データの圧縮装置、動画データの圧縮方法 図000006
  • 特許6738091-動画データの圧縮装置、動画データの圧縮方法 図000007
  • 特許6738091-動画データの圧縮装置、動画データの圧縮方法 図000008
  • 特許6738091-動画データの圧縮装置、動画データの圧縮方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6738091
(24)【登録日】2020年7月21日
(45)【発行日】2020年8月12日
(54)【発明の名称】動画データの圧縮装置、動画データの圧縮方法
(51)【国際特許分類】
   H04N 19/567 20140101AFI20200730BHJP
【FI】
   H04N19/567
【請求項の数】3
【全頁数】15
(21)【出願番号】特願2017-6670(P2017-6670)
(22)【出願日】2017年1月18日
(65)【公開番号】特開2018-117239(P2018-117239A)
(43)【公開日】2018年7月26日
【審査請求日】2019年4月2日
(73)【特許権者】
【識別番号】398034168
【氏名又は名称】株式会社アクセル
(74)【代理人】
【識別番号】100104776
【弁理士】
【氏名又は名称】佐野 弘
(74)【代理人】
【識別番号】100119194
【弁理士】
【氏名又は名称】石井 明夫
(72)【発明者】
【氏名】客野 一樹
【審査官】 坂東 大五郎
(56)【参考文献】
【文献】 特開平08−116542(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも一部に、RGB色空間又はYUV色空間における、画素情報と透明度の情報とが設定されたフレーム画像データを用いて構成される動画データを圧縮する動画データの圧縮装置であって、
特定のフレーム画像と、該特定のフレーム画像の前方向、及び/又は、後方向に存在する他のフレーム画像データとの間で動きベクトルを検出する動きベクトル検出手段と、
検出された前記動きベクトルを用いて前記フレーム画像データを圧縮する圧縮手段とを備え、
該動きベクトル検出手段は、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する前記透明度の情報を用いた第一の情報と、
前記特定のフレーム画像データの前記画素情報、及び、前記他のフレーム画像データの前記画素情報に、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する透明度の情報で補正する演算、を用いた第二の演算を行って得た第二の情報とを用いた演算であって、
前記第二の情報として、前記透明度の高さに依存して小さくなる情報を用いた演算により、前記特定のフレーム画像データと前記他のフレーム画像データとの間の前記動きベクトルを検出することを特徴とする動画データの圧縮装置。
【請求項2】
前記動きベクトル検出手段は、前記特定のフレーム画像データの色情報に前記特定のフレーム画像データの前記透明度の情報を乗算した値、及び/又は、前記他のフレーム画像データの色情報に前記他のフレーム画像データの前記透明度の情報を乗算した値の、絶対値誤差又は二乗誤差を用いて前記動きベクトルを検出することを特徴とする請求項1に記載の動画データの圧縮装置。
【請求項3】
少なくとも一部に、RGB色空間又はYUV色空間における、画素情報と透明度の情報とが設定されたフレーム画像データを用いて構成される動画データを圧縮するための動画データの圧縮方法であって、
特定のフレーム画像データと、該特定のフレーム画像データの前方向、及び/又は、後方向に存在する他のフレーム画像データとの間で動きベクトルが検出される動きベクトル検出手順と、
検出された前記動きベクトルを用いて前記フレーム画像データが圧縮される圧縮手順とを備え、
該動きベクトル検出手順においては、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する前記透明度の情報を用いた第一の情報と、
前記特定のフレーム画像データの前記画素情報、及び、前記他のフレーム画像データの前記画素情報に、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する透明度の情報で補正する演算、を用いた第二の演算を行って得た第二の情報とを用いた演算であって、
前記第二の情報として、前記透明度の高さに依存して小さくなる情報を用いた演算により、前記特定のフレーム画像データと前記他のフレーム画像データとの間の前記動きベクトルが検出されることを特徴とする動画データの圧縮方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、透明度の情報が設定された動画データのフレーム画像データを圧縮する動画データの圧縮装置、動画データの圧縮方法に関する。
【背景技術】
【0002】
従来、動画データを圧縮する際に用いられる手法としてフレーム間予測が知られている(例えば、特許文献1参照)。これは、符号化対象フレーム(例えば時系列順に並んだフレームの中で最新のフレーム)と、符号化対象フレームとは異なる時刻の参照フレーム(例えば最新のフレームの1つ前の過去のフレーム)から生成された予測画像との差分画像を符号化することで、動画データのデータ量を削減するための技術である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−200357号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、フレーム間予測においてフレーム間の差分を符号化する際の処理としては、符号化対象フレームに含まれる画像情報と参照フレームに含まれる画像情報を数値化し、所定の演算に基づく処理によって画像情報の動きの方向や大きさとしての動きベクトルを求め、求めた動きベクトルを符号化することが考えられる。
【0005】
一方、近年、画像情報には、色情報(例えば、RGB色空間を形成するR,G,Bの情報や、それを輝度情報(Y)と色差情報(U,V)とに変換したY,U,Vの情報など)に加え、透明度(複数の画像を重ね合わせる際の、重ねられた他の画像の透過度のこと)を規定する透明度の情報が含まれる場合がある。そして、画像情報が色情報に加えて透明度の情報を有する場合、単に色情報のみの場合とは画像情報の特質が異なる場合があるので、単に色情報の場合の演算や処理と同じ処理を行うことは必ずしも適切ではない。即ち、符号化対象フレームと参照フレームとに透明な部分や、透明度が高い部分が含まれる場合、符号化対象フレームや参照フレームの色情報は、不透明な画像情報に比べ、動きベクトルを求める際の演算や処理における重要度が高くない場合が多い。
【0006】
しかし、上記特許文献1においては、画像情報として透明度を有する場合や、画像情報同士の透明度の大きさが相違する場合について考慮されていない。そのため、特許文献1においては、透明な画像も不透明な画像と同様の演算や処理によって動きベクトルを求めることになる。そのため、特許文献1においては、透明な部分を有する動画データについて、色情報の重要度が高くない場合であっても、色情報を中心にした演算や処理を行って動きベクトルを求めることになる。これは、いたずらに演算量を増加させ、かつ、いたずらに符号量を増加させることになり、動画の圧縮率の向上を抑止させてしまうという問題がある。
【0007】
本発明はこのような課題に鑑みてなされたものであり、透明度の情報を含む動画の圧縮率を向上させることのできる動画データの圧縮装置、動画データの圧縮方法を提供することを課題としている。
【課題を解決するための手段】
【0008】
かかる課題を解決するために、請求項1に記載の発明は、少なくとも一部に、RGB色空間又はYUV色空間における、画素情報と透明度の情報が設定されたフレーム画像データを用いて構成される動画データを圧縮する動画データの圧縮装置であって、特定のフレーム画像と、該特定のフレーム画像の前方向、及び/又は、後方向に存在する他のフレーム画像データとの間で動きベクトルを検出する動きベクトル検出手段と、検出された前記動きベクトルを用いて前記フレーム画像データを圧縮する圧縮手段とを備え、該動きベクトル検出手段は、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する前記透明度の情報を用いた第一の情報と、前記特定のフレーム画像データの前記画素情報、及び、前記他のフレーム画像データの前記画素情報に、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する透明度の情報で補正する演算、を用いた第二の演算を行って得た第二の情報とを用いた演算であって、前記第二の情報として、前記透明度の高さに依存して小さくなる情報を用いた演算により、前記特定のフレーム画像データと前記他のフレーム画像データとの間の前記動きベクトルを検出することを特徴とする。
【0012】
請求項2に記載の発明は、請求項1に記載の構成に加え、前記動きベクトル検出手段は、前記特定のフレーム画像データの色情報に前記特定のフレーム画像データの前記透明度の情報を乗算した値、及び/又は、前記他のフレーム画像データの色情報に前記他のフレーム画像データの前記透明度の情報を乗算した値の、絶対値誤差又は二乗誤差を用いて前記動きベクトルを検出することを特徴とする。
【0014】
請求項に記載の発明は、少なくとも一部に、RGB色空間又はYUV色空間における、画素情報と透明度の情報が設定されたフレーム画像データを用いて構成される動画データを圧縮するための動画データの圧縮方法であって、特定のフレーム画像データと、該特定のフレーム画像データの前方向、及び/又は、後方向に存在する他のフレーム画像データとの間で動きベクトルが検出される動きベクトル検出手順と、検出された前記動きベクトルを用いて前記フレーム画像データが圧縮される圧縮手順とを備え、該動きベクトル検出手順においては、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する前記透明度の情報を用いた第一の情報との前記画素情報、及び、前記他のフレーム画像データの前記画素情報に、前記特定のフレーム画像データ、及び/又は、前記他のフレーム画像データの有する透明度の情報で補正する演算、を用いた第二の演算を行って得た第二の情報とを用いた演算であって、前記第二の情報として、前記透明度の高さに依存して小さくなる情報を用いた演算により、前記特定のフレーム画像データと前記他のフレーム画像データとの間の前記動きベクトルが検出されることを特徴とする。
【発明の効果】
【0015】
請求項1、請求項に記載の発明によれば、特定のフレーム画像データ、及び/又は、他のフレーム画像データの有する透明度の情報を用いて、特定のフレーム画像データと他のフレーム画像データとの間の動きベクトルを検出することにより、透明度の情報が設定された動画データのフレーム画像において、設定された透明度の情報に依存した形で動きベクトルを検出し、フレーム画像データを圧縮することができる。そして、動きベクトルを透明度の情報に依存して検出できるので、透明な部分を有するフレーム画像データの動きベクトルの検出と符号化における、透明な部分の検出に際して重要度の低い色情報が、動きベクトルの検出と符号化に反映する度合いを低減させることが可能になる。これにより、透明度の情報を含む動画の圧縮率を向上させることができる。
【0019】
請求項に記載の発明によれば、色情報に透明度の情報を乗算した値の、絶対値誤差又は二乗誤差によって動きベクトルを検出することにより、透明度の情報を反映させた値に基づいて精度の高い演算処理を行い、適切な動きベクトルを検出することができる。
【図面の簡単な説明】
【0021】
図1】この実施の形態に係る動画圧縮装置における全体構成を説明する機能ブロック図である。
図2】同上動画圧縮装置における予測処理部の詳細を示す機能ブロック図である。
図3】同上動画圧縮装置における動きベクトルの算出の原理を模式的に示す図である。
図4】同上動画圧縮装置における動きベクトル検出部での演算における、色情報と透明度の情報の相関関係を模式的に示す図である。
図5】同上動画圧縮装置における処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態について図を用いて詳細に説明する。なお、本実施形態ではMPEGの符号化方式に適用した例に基づき説明するが、MPEG以外のどのような画像の符号化方式に本発明が適用されてもよい。
【0023】
[この実施の形態で用いられる動画データ]
この実施の形態で用いられる動画データは、透明度(α値)の情報を有する動画データである。具体的には、例えば、動画データを構成する「フレーム画像データ」としてのフレームのそれぞれの画素の画像情報としてに、RGB色空間の「R」情報、「G」情報、「B」情報に加え、透明度(α値)を規定する「A」情報が、0〜255の値で設定されている場合(ただし、「A」情報は0が透明度最大(透明度100%)、255が透明度最小(透明度0%))がこれに相当する。
【0024】
この実施の形態においては、動画圧縮装置10(図1参照)において、この透明度情報を含むフレームを圧縮する。なお、動画圧縮装置10(図1参照)においては、透明度(α値)の情報を含むフレーム全てを圧縮の対象としてもよいし、一部のみを圧縮の対象としてもよい。また、動画圧縮装置10において圧縮の対象とされる動画データは、全てのフレームが透明度(α値)の情報を有していてもよいし、少なくとも一部のフレームのみが透明度(α値)の情報を有していてもよい。また、動画圧縮装置10(図1参照)においては、透明度(α値)の情報を用いた圧縮(後述)と、透明度(α値)の情報を用いた圧縮以外の圧縮方法とを併用して動画データの圧縮を行うものであってもよい。
【0025】
[動画圧縮装置の基本構成]
図1に、この実施の形態の動画圧縮装置10の機能ブロック図を、図2はこの実施の形態の動画圧縮装置の予測処理部を示す機能ブロック図をそれぞれ示す。この実施の形態の「動画データの圧縮装置」としての動画圧縮装置10は、エンコーダとしての機能を有し、透明度の情報を有する動画データを圧縮符号化する。具体的には、例えばこの動画圧縮装置は、別個の動画が複数重ね合わされ、かつ重ね合わされた際に透明度に応じてアルファブレンドして表示され、その部分から後側で表示される動画の一部が透過した状態でディスプレイに表示される、遊技機の動画の圧縮符号化に用いられる。ただし、遊技機以外に用いられる、複数重ね合わされて表示される、透明度の情報を有するいかなる動画の圧縮符号化に用いられてもよい。
【0026】
この動画圧縮装置10においては、動画データが所定の矩形領域の単位で、即ち所定数の画素からなるマトリックスの単位で処理される(詳しくは後述する)。
【0027】
一方の画像と他方の画像とを重ね合わせたフレーム画像データにおいて、画像データを透明度に応じて圧縮する場合、一方の画像の透明度に応じて、一方の画像のフレーム画像データを圧縮しても、他方の画像のフレーム画像データを圧縮しても、両方の画像のフレーム画像データを圧縮してもよい。
【0028】
この実施の形態では、一方の画像の透明度に応じて一方の画像のフレーム画像データを圧縮する装置の例を用いて説明する。
【0029】
この実施の形態の動画圧縮装置10は、エンコーダとしての圧縮符号化を行うための構成として、予測処理部11、DCT部12、符号生成部13、フレームメモリ14を有する。また、動画圧縮装置10は、デコーダとしての圧縮データの復号処理を行うための構成として、逆量子化部15、逆DCT部16をも有する。
【0030】
予測処理部11は、「動画データ」としてのフレームを複数用いてフレーム間予測を行うための処理を行う。具体的には、入力画像としての動画データから予測画像(過去の動画フレームに対して所定の予測処理を行って生成された動画フレーム)を生成して出力する。この予測画像は、入力画像を減算されて生成された予測誤差としてDCT部12に供給されると共に、逆DCT部16で生成されたDCTデータに加算されて参照画像を生成してフレームメモリ14に記憶される。
【0031】
DCT部12は、各画像データのDCT(離散コサイン変換)を行う。具体的には、各画像データに対してブロックの単位で離散コサイン変換等の周波数変換を行うことで周波数成分に分解し、係数化されたDCTデータを生成する。この実施の形態のDCT部12は、予測処理部11におけるフレーム間予測処理の結果としての、入力画像と予測画像との差分により形成された予測誤差の周波数変換を行うことで、DCTデータを生成する。なお、この実施の形態のDCT部12は構成の一例であり、DCT(離散コサイン変換)に替えて、ウェーブレット変換やアダマール変換を利用することは勿論のこと、DPCM(Differential Pulse Code Modulation:差分パルス符号変調)を用いることも可能である。
【0032】
符号生成部13は、所定の符号化方式により処理された画像データを量子化係数に基づいて量子化することで量子化データを生成して符号化する。なお、ここでの「所定の符号化方式」とは、直前の構成であるDCT部12における離散コサイン変換等の周波数変換に基づく変換符号化方式を指す。
【0033】
なお、図1に示す通り、符号生成部13は、DCTデータを量子化係数等を用いて量子化し量子化データを生成する量子化部19と、ハフマン符号や算術符号等のエントロピー符号化を用いて量子化データをさらに圧縮して符号化データを生成する可変長符号化部20とを備えている。
【0034】
フレームメモリ14は、RAM、キャッシュ等の各種記憶媒体であって、各種の動画データを記憶する。ここでは、予測処理部11におけるフレーム間予測処理の結果生成された動画データが記憶される。また、逆DCT部16における逆DCT処理の結果生成された動画データも記憶される。
【0035】
逆量子化部15は、既定の量子化係数を用い、入力された量子化データを逆量子化することで、DCTデータを復号する。この実施の形態において逆量子化部15に入力される量子化データは、量子化部19から出力されたもの(図1参照)である。逆DCT部16は、逆量子化部15から出力されたDCTデータに逆DCT処理を行う。逆量子化部から出力された動画データは、予測処理部11から出力された予測画像(後述)と合成されて過去の動画フレームとしての参照画像(後述)を形成し、フレームメモリ14に記憶される。
【0036】
予測処理部11は、「動きベクトル検出手段」としての動きベクトル検出部17と、動き補償部18とを有する。
【0037】
動きベクトル検出部17は、複数の動画フレームの間で動きベクトルを検出する。具体的には、動きベクトル検出部17は、特定のフレーム画像データと、特定のフレーム画像データの前方向、及び/又は、後方向に存在する他のフレーム画像データとの間で動きベクトルを検出する。この実施の形態においては、特定の時間、例えば現在のフレーム画像と、その一つ前のフレーム画像とをそれぞれ略矩形の複数のブロックに区分し、特定の時間のフレーム画像の基準位置となるブロックの画像情報(色情報や透明度情報)が、他のフレーム画像のどのブロックから移動したものかを探索し、それらのブロック同士の移動方向や移動量としての動きベクトルを検出する。
【0038】
動き補償部18は、参照画像(過去の動画フレーム)から、動きのある画像を動きベクトル分移動させる動き補償の処理を行う。
【0039】
図2は、予測処理部11の詳細を示す機能ブロック図である。同図に示す通り、予測処理部11の動きベクトル検出部17は、動き探索制御部21、動きベクトル探索部22、符号化コスト算出部23を備えている。また、動きベクトル探索部22は、二乗誤差演算部221、動きベクトル決定部222を備えている。
【0040】
動き探索制御部21は、動きベクトル探索部22や符号化コスト算出部23の処理を制御し、動きベクトル探索部22で探索された動きベクトルの中から最も適切なものを検出する。
【0041】
動きベクトル探索部22は、動きベクトルの探索のための処理を行う。具体的には、符号化コスト算出部23の算出したコストを用いて、現在のフレーム画像の一つ前のフレーム画像(参照画像)の基準位置のブロックに表示された画像が、現在のフレーム画像(符号化対象画像)のどのブロックに移動したかを探索するための処理を行う。
【0042】
二乗誤差演算部221は、動きベクトルを算出する際に二乗誤差を用いた演算を行うことで、現在のフレーム画像の一つ前のフレーム画像の基準位置のブロックと現在のフレーム画像のブロックとの間の誤差を演算する処理を行う。
【0043】
動きベクトル決定部222は、二乗誤差演算部221の演算結果に基づいて、符号化コスト算出部23で計算されるコストが小さくなるよう、現在のフレーム画像の一つ前のフレーム画像の基準位置から、現在のフレーム画像のブロックにおける移動位置までの位置と方向とに基づく動きベクトルを決定する。
【0044】
符号化コスト算出部23は、現在のフレーム画像の一つ前のフレーム画像の基準位置の有する情報と、現在のフレーム画像のブロックの有する情報とに基づいて、それらのブロック同士の距離を決定するための情報としての符号化コストの値を演算する。
【0045】
[動きベクトルの算出]
以下、この実施の形態における動きベクトルの算出の原理について、図3の模式図を参酌して説明する。この実施の形態の動画圧縮装置10においては、この原理に基づいて動きベクトルの算出を行う。
【0046】
例えば、図3に示すように、参照画像である最新のフレーム画像の一つ前の過去のフレーム画像(以下「直前フレーム31」と称する)と、符号化対象画像である最新のフレーム画像(以下「最新フレーム32」と称する)とを所定の数の矩形ブロックのマトリックス(例えばm行×n列(ただしm>1,n>1))に区分して、それぞれのフレーム画像のブロックの近似の度合いを対比することで動きベクトルを算出する場合を考える。この場合、過去の直前フレーム31の特定のブロック例えばブロック311に最も画像情報が近似した現在のフレーム画像のブロックを選択し、双方のブロックの距離や方向に基づいて動きベクトルが決定される。
【0047】
このように動きベクトルを算出する場合、一般に、下記式(1)に示すような二乗誤差を用いた式で算出されていた(なお、この式は色情報がRGB色空間の「R」「G」「B」である場合を示す)。
ただし、
SSD:Sum of Squared Difference(二乗誤差)
Σ:ブロック内の全ての画素の値の総和
Rdst:符号化対象フレームの特定の画素の色情報としてのR情報
Rsrc:参照フレームの特定の画素の色情報としてのR情報
Gdst:符号化対象フレームの特定の画素の色情報としてのG情報
Gsrc:参照フレームの特定の画素の色情報としてのG情報
Bdst:符号化対象フレームの特定の画素の色情報としてのB情報
Bsrc:参照フレームの特定の画素の色情報としてのB情報
^:乗算記号。たとえば「○○^2」は「○○の2乗」を示す。
【0048】
また、画素情報に透明度情報が含まれている場合には、画素毎の透明度情報を二乗誤差を算出する一要素として単純に利用することが考えられ、その場合には下記(2)に示すような式となる。
ただし、
SSD:Sum of Squared Difference(二乗誤差)
Σ:ブロック内の全ての画素の値の総和
Adst:符号化対象フレームの特定の画素の透明度情報(α値の情報)
Asrc:参照フレームの特定の画素の透明度情報(α値の情報)
Rdst:符号化対象フレームの特定の画素の色情報としてのR情報
Rsrc:参照フレームの特定の画素の色情報としてのR情報
Gdst:符号化対象フレームの特定の画素の色情報としてのG情報
Gsrc:参照フレームの特定の画素の色情報としてのG情報
Bdst:符号化対象フレームの特定の画素の色情報としてのB情報
Bsrc:参照フレームの特定の画素の色情報としてのB情報
^:乗算記号。たとえば「○○^2」は「○○の2乗」を示す。
【0049】
また、符号化対象フレーム中の最も近似したブロックを探索する際は、上記式(2)で算出したSSDの値に、動きベクトルの大きさに関する値を加算した、コストの値が用いられる場合が多い。このコストの値(以下「コスト値」と称する)は、例えば下記式(3)で求められる。そして、コスト値が最小となるブロックが動きベクトルの始点と終点として検出される。
コスト値=SSD+λ動きベクトルの消費ビット・・・(3)
ただし
λ:ビット数の単位をSSDの単位に揃えるための所定の係数
上記式(2)においても画素の透明度情報を二乗誤差を算出する際に利用することになるが、透明度情報をより一層活用するため、この実施の形態においては、動きベクトル探索部22の動きベクトル決定部222は、下記の式(4)によってブロック同士の近似の値を求める。
ただし、
SSD’:Sum of Squared Difference(二乗誤差)
Σ:ブロック内の全ての画素の値の総和
Adst:符号化対象フレームの特定の画素の透明度情報(α値の情報)
Asrc:参照フレームの特定の画素の透明度情報(α値の情報、ただし0≦Asrc≦255)
Rdst:符号化対象フレームの特定の画素の色情報としてのR情報
Rsrc:参照フレームの特定の画素の色情報としてのR情報
Gdst:符号化対象フレームの特定の画素の色情報としてのG情報
Gsrc:参照フレームの特定の画素の色情報としてのG情報
Bdst:符号化対象フレームの特定の画素の色情報としてのB情報
Bsrc:参照フレームの特定の画素の色情報としてのB情報
^:乗算記号。たとえば「○○^2」は「○○の2乗」を示す。
【0050】
そして、符号化コスト算出部23は、上記式(3)の「SSD」に替えて、上記式(4)で算出した「SSD’」を用い、下記式(5)のコスト値が最小となるブロックを動きベクトルの始点と終点として検出する。
コスト値=SSD’+λ動きベクトルの消費ビット・・・(5)
ただし
λ:ビット数の単位をSSD’の単位に揃えるための所定の係数
上記式(4)においては、右辺の「R」「G」「B」の各項に「Asrc/255(ただし0≦Asrc≦255)」を乗算している点が上記式(2)と異なる。
【0051】
上記式(4)は、画素ごとに0≦Asrc≦255(0:完全に透明な状態、255:完全に不透明な状態)で透明度が設定されている場合が該当する。例えば、特定の画素が完全に透明(つまりAsrc=0)であれば、「R」「G」「B」の項の値は全て「0」になる。また例えば、特定の画素が半透明(つまり0<Asrc<255)であれば、「R」「G」「B」の項の値は、完全不透明な場合(つまりAsrc=255の場合)の値よりも小さくなる。かつ、特定の画素が半透明の場合、透明度が高いほど「R」「G」「B」の項の値は小さくなる。つまり、動きベクトルを決定する際に、対比する画素同士やブロック同士の色情報の誤差よりも、透明度の誤差の方が、動きベクトルの決定において重要度が高くなる。そして、色情報の誤差を無視したり、色情報の誤差が値全体の中で占める比率を低くしたりする方が、符号化する際の符号量が小さくなる場合が多い。
【0052】
ここで、画像の透明度が高いほど、色情報は、画像上の位置を特定する上での重要度が低くなる。しかし、従来の、上記(2)の式における演算においては、ブロックに含まれる画素の画像情報が完全に透明である場合や透明度が高い場合であっても、常に「R」「G」「B」の値が演算され、式(2)によって得られる値全体の中で「R」「G」「B」の値が高い比率を占めることになる。この場合、重要度が低い色情報を無視したり値全体の中で占める比率を低くすることはできないので、符号化する際の符号量を小さくすることが抑止されてしまう。
【0053】
一方、上記式(4)の演算においては、透明度が高いほど「R」「G」「B」の項の値が「SSD’」の値全体に占める比率は小さくなる。つまり、式(4)の演算によって得られる値は、画像の透明度が高いほど、位置情報を特定する際に、色情報よりも透明度の重要度の高さが反映されたものとなり、R、G、Bで表現される画質による寄与度が補正される。そして、式(4)の演算結果は、色情報の誤差を無視したり、色情報の誤差が値全体の中で占める比率を低くしたりすることができるので、符号化する際の符号量が小さくなって、圧縮率を高くすることが可能になる。
【0054】
[色情報と透明度の相関関係]
図4は、この実施の形態の動画圧縮装置10における色情報と透明度の相関関係の事例を模式的に示す図である。同図は、横軸が透明度(α値、ただし0≦α値≦255)、縦軸が色情報の寄与度又は画質の寄与度(RGBの寄与度又はYUVの寄与度、ただし0%≦寄与度≦100%)を示している。
【0055】
同図に示す通り、この実施の形態の動画圧縮装置10の二乗誤差演算部221においては、上記式(3)に基づいて動きベクトルが検出されることにより、動きベクトルを探索する際の色情報と透明度の相関関係は、図4に示す第一の関数101のように、α値が0/255のとき(つまり透明度が100%の全透明の場合)は色情報の寄与度は0、α値が127/255(つまり透明度が50%のとき)は色情報の寄与度は50%、α値が255/255(つまり透明度0%の完全不透明のとき)は色情報の寄与度が100%になる。つまりα値と色情報とは比例関係にある。
【0056】
ただし、この実施の形態において、動画圧縮装置10の二乗誤差演算部221における演算は、完全な比例関係でなくてもよい。例えば、図4に示す第二の関数102、第三の関数103、第八の関数108のように、透明度と色情報とが、α値が0/255のときの色情報の寄与度は0、α値が255/255の色情報の寄与度が100%となり、その途中(0/255<α値<255/255,0%<色情報<100%のとき)は概ねの相関関係を持った状態で透明度と色情報とが推移するように設定されていてもよく、第四の関数104のように、α値が0/255以上127/255未満のときは色情報の寄与度が0%で、α値が127/255以上255/255以下のときは色情報の寄与度が100%になるように設定されていてもよい。
【0057】
また、この実施の形態において、動画圧縮装置10の二乗誤差演算部221における演算は、透明度や色情報の最小値が0/255や0%以外の値でもよいし、最大値が255/255や100%以外の値でもよい。例えば、図4に示す第五の関数105のように、透明度と色情報とが概ねの相関関係を持った状態で、色情報の最大値が100%未満の値となるように設定されていてもよい。また、第六の関数106のように、透明度と色情報とが概ねの相関関係を持った状態で、色情報の最小値が0%より上の値となるように設定されていてもよい。また、第七の関数107のように、透明度と色情報とが概ねの相関関係を持った状態で、色情報の最小値が0%より上の値となり、最大値が100未満の値となるように設定されていてもよい。さらに、第一の関数101乃至第七の関数107以外のいかなる関数にて、これらの関数と同様に設定されていてもよい。すなわち、二乗誤差演算で利用するα値の範囲(本実施の形態では0〜255)において、α値と色情報の寄与度との関係が右肩上がりの傾向を有していれば、α値を考慮した動きベクトル検出となり、符号量を低減することができる。なお、“右肩上がり”とは関数101、103、105、106、107のように単調な上昇のものや、関数102、108のように増減を伴いつつ上昇するものや、関数104のように所定のα値を境に急激に色情報寄与度が変化するものも含む。
【0058】
[処理手順]
図5は、この実施の形態の動画圧縮装置10の処理手順の一例を示すフローチャートである。以下、図5及び図1乃至図4に基づいて、「動画データの圧縮方法」としての、この実施の形態の処理手順の一例を説明する。なお、図5の処理手順では、いわゆる「ダイヤモンドサーチ」に基づいて動きベクトルを探索する処理を記載しているが、これに限らず、たとえば、処理対象のフレームの全てのブロックを総当たり的に探索する「フルサーチ」等、他のあらゆる処理方法によって動きベクトルの探索が行われてもよい。
【0059】
動きベクトル検出部17の動き探索制御部21は、動きベクトル探索部22を制御して動きベクトルの探索を開始する。動きベクトル探索部22の動きベクトル決定部222は、参照画像としての直前フレーム31(以下「直前フレーム」と称する。)を所定の数の矩形ブロックのマトリックス(例えばm行×n列(ただしm>1,n>1))に区分し、所定の位置のブロック(例えば一番右下のブロック311)を探索して基準位置とする。
【0060】
次に、動きベクトル決定部222は、符号化対象画像としての最新フレーム32を直前フレーム31と同じ矩形ブロックのマトリックス(例えばm行×n列のマトリックス)に区分し、最新フレーム32の直前フレーム31と同じ位置(例えば一番右下のブロック321)を探索する。そして、動きベクトル決定部222は、直前フレーム31と最新フレーム32の探索したブロック311,321をベクトルの始点と終点とする、初期動きベクトルとして決定する。
【0061】
そして、動きベクトル決定部222は、初期動きベクトルの始点と終点である直前フレーム31のブロック311と最新フレーム32のブロック321とから画像情報(それぞれのブロックを構成する複数の画素のそれぞれの有する、色情報(R,G,Bの値)と透明度の情報(Aの値))を抽出する。抽出された情報は二乗誤差演算部221に送られ、二乗誤差演算部221は取得した情報を上記式()に代入し演算を行う。動きベクトル決定部222と二乗誤差演算部221におけるこの処理と演算は、初期動きベクトルの始点と終点である直前フレーム31のブロック311と最新フレーム32のブロック321を構成する画素それぞれについて繰り返し行われ、その総和が式()の「SSD’」の値として算出される。
【0062】
そして、動きベクトル探索部22は、算出した「SSD’」の値を符号化コスト算出部23に送る。動きベクトル探索部22は、取得した値を上記式()に代入し、「コスト」の値を算出する(ステップS1、動きベクトル検出手順)。
【0063】
動きベクトル探索部22は、算出した「コスト」の値を動きベクトル探索部22に送る。動きベクトル探索部22は、取得した「コスト」の値を一時記憶する。
【0064】
次に、動きベクトル探索部22は、動きベクトルを上下左右に移動したコストを計算する(ステップS2、動きベクトル検出手順)。具体的には、動きベクトル決定部222は、(直前フレーム31の基準位置のブロック311は固定したままで)最新フレーム32において決定されているブロック321の一つ上隣のブロック322、一つ下隣のブロック(図5においては存在せず)、一つ左隣のブロック323、一つ右隣のブロック(図5においては存在せず)をそれぞれ探索し、直前フレーム31の基準位置のブロック311とそれら探索したブロック322,323とを両端とした動きベクトルを決定する。そして、二乗誤差演算部221は、決定された動きベクトルの両端のブロック322,323についてそれぞれ式()を用いた「SSD’」の値を算出する。さらに、符号化コスト算出部23は、それらの「SSD’」の値を式()に代入して「コスト」の値を算出する。動きベクトル決定部222は、算出されたそれぞれの「コスト」の値を記憶する。
【0065】
そして、動きベクトル決定部222は、最新フレーム32のブロック321を上下左右に移動させた後のブロック322,323によって決定される「コスト」の値をそれぞれ対比し、その中で「コスト」の値が最小のものを検出し、その「コスト」の値が最小の方向を、最新フレーム32のブロック321を移動させる方向として採用する(ステップS3、動きベクトル検出手順)。例えば、移動させた後の最新フレーム32のブロック322,323の中で、当初のブロック321よりも一つ上隣のブロック322の「コスト」が最小である場合、動きベクトル決定部222は、一つ上隣のブロック322の方向、即ち上方向を、最新フレーム32におけるブロック321の移動方向として採用する。
【0066】
そして、動きベクトル決定部222は、初期動きベクトルの「コスト」と、ステップS3で移動方向の採用に用いられた、移動させた後のブロック322における最小の「コスト」とを対比する。移動させた後の最小の「コスト」が初期動きベクトルの「コスト」よりも小さい場合(ステップS4の“NO”)、その移動方向のブロック322を最新フレーム32の新たな基準となるブロックに設定し、そのブロック322の「コスト」と、そのブロック322の上下左右のブロック(上隣のブロック324、左隣のブロック325、下隣のブロック321)との動きベクトルの「コスト」を算出し(ステップS2,S3)、コストの比較を行うことを、ブロック321の「コスト」より移動させた後のブロック322の「コスト」の方が小さくなる間は繰り返し行う(ステップS4の“NO”
、動きベクトル検出手順)。一方、初期動きベクトルの「コスト」の方が移動させた後のブロック322最小の「コスト」よりも小さい場合(ステップS4の“YES”)は、動きベクトル決定部222はステップS3にて「コスト」を採用したブロック322への移動は行わず、移動させる前のブロック321を動きベクトルの終点(又は始点)として検出し、処理は終了する。
【0067】
動きベクトル検出部17は、直前フレーム31の各フレームを順番に基準位置として設定しながらステップS1〜S4の処理を行っていく。この処理が完了すると、予測処理部11は、動き補償部18における動き補償の処理ののち、生成された予測画像を送信する。動画圧縮装置10は、この予測画像と入力画像とによって予測誤差を生成してDCT部12でDCT処理を行う。DCT部12で生成されたDCTデータは符号生成部13に供給され、符号生成部13の量子化部19における処理によって量子化データが生成され、可変長符号化部20において符号化データが生成されて、データの圧縮符号化が行われる(圧縮手順)。
【0068】
以上、この実施の形態においては、特定の動画データ、及び/又は、他の動画データの有する透明度の情報を用いて、特定の動画データと他の動画データとの間の動きベクトルを検出することにより、透明度の情報が設定された動画データにおいて、設定された透明度の情報に依存した形で動きベクトルを検出し、動画データを圧縮することができる。そして、動きベクトルを透明度の情報に依存して検出できるので、透明な部分を有する動画データの動きベクトルの検出と符号化における、透明な部分の検出に際して重要度の低い色情報が、動きベクトルの検出と符号化に反映する度合いを低減させることが可能になる。これにより、透明度の情報を含む動画の圧縮率を向上させることができる。
【0069】
この実施の形態においては、透明度の高さの値に依存して、特定の動画データの位置情報と他の動画データの位置情報とによって形成されるベクトルの大きさを補正することで動きベクトルを検出することにより、透明度の高さの値を動きベクトルの検出と符号化に反映させて、透明度の情報を含む動画の圧縮率を向上させることができる。
【0070】
この実施の形態においては、動画データの透明度の情報の規定する透明度が高いほど、動画データの色情報が動きベクトルの大きさに与える影響が小さくなるようにすることにより、動画データの透明度が高くなって動きベクトルの検出に際して色情報の重要度が低くなるほど、動きベクトルの検出と符号化に色情報が反映される度合いを低下させることができる。これにより、透明度の情報を含む動画の圧縮において、重要度の低い情報を削減しつつ、圧縮率を向上させることができる。
【0071】
この実施の形態においては、動画データの色情報に基づいて得られる値を透明度の情報に基づいて補正することで、動きベクトルを検出することができるので、透明度の情報を含む動画の圧縮において、透明度の大きさを動きベクトルの検出と符号化における具体的な演算処理に反映させることができる。これにより、透明度の大きさに基づいて重要度の低いデータを削減しつつ、圧縮率を向上させることを、具体的な演算処理において実現することができる。
【0072】
この実施の形態においては、色情報に透明度の情報を乗算した値の、絶対値誤差又は二乗誤差によって動きベクトルを検出することにより、透明度の情報を反映させた値に基づいて精度の高い演算処理を行い、適切な動きベクトルを検出することができる。
【0073】
この実施の形態においては、透明度の情報を用いて動きベクトルを検出することにより、透明度の情報を反映させた値に基づいて精度の高い演算処理を行い、適切な動きベクトルを検出することができる。
【0074】
なお、この実施の形態においては、最新フレームを符号化対象画像、直前フレームを参照画像としたが、これに限定されず、過去の特定のフレームを符号化対象画像、この特定のフレームの一つ後(時系列的に後)のフレームを参照画像として処理を行ってもよい。また、符号化対象フレームの一つ前や一つ後のフレームのみならず、複数枚前や複数枚後(例えば特定のフレームの二つ前のフレームや二つ後のフレーム)を参照画像として処理を行ってもよいし、所定の時間のフレームの前のフレームと後のフレームとを参照画像として処理を行ってもよい。
【0075】
上記の実施の形態は本発明の例示であり、本発明が上記の実施の形態のみに限定されることを意味するものではないことは、いうまでもない。
【符号の説明】
【0076】
10・・・動画圧縮装置(動画データの圧縮装置)
11・・・符号生成部(圧縮手段)
17・・・動きベクトル検出部(動きベクトル検出手段)
図1
図2
図3
図4
図5