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

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

<>
  • 特許5778299-動きベクトル予測 図000002
  • 特許5778299-動きベクトル予測 図000003
  • 特許5778299-動きベクトル予測 図000004
  • 特許5778299-動きベクトル予測 図000005
  • 特許5778299-動きベクトル予測 図000006
  • 特許5778299-動きベクトル予測 図000007
  • 特許5778299-動きベクトル予測 図000008
  • 特許5778299-動きベクトル予測 図000009
  • 特許5778299-動きベクトル予測 図000010
  • 特許5778299-動きベクトル予測 図000011
  • 特許5778299-動きベクトル予測 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5778299
(24)【登録日】2015年7月17日
(45)【発行日】2015年9月16日
(54)【発明の名称】動きベクトル予測
(51)【国際特許分類】
   H04N 19/52 20140101AFI20150827BHJP
   H04N 19/70 20140101ALI20150827BHJP
【FI】
   H04N19/52
   H04N19/70
【請求項の数】36
【全頁数】42
(21)【出願番号】特願2013-550480(P2013-550480)
(86)(22)【出願日】2011年12月28日
(65)【公表番号】特表2014-509116(P2014-509116A)
(43)【公表日】2014年4月10日
(86)【国際出願番号】US2011067547
(87)【国際公開番号】WO2012099692
(87)【国際公開日】20120726
【審査請求日】2013年9月20日
(31)【優先権主張番号】61/435,204
(32)【優先日】2011年1月21日
(33)【優先権主張国】US
(31)【優先権主張番号】61/449,991
(32)【優先日】2011年3月7日
(33)【優先権主張国】US
(31)【優先権主張番号】13/245,668
(32)【優先日】2011年9月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100088683
【弁理士】
【氏名又は名称】中村 誠
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100140176
【弁理士】
【氏名又は名称】砂川 克
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100172580
【弁理士】
【氏名又は名称】赤穂 隆雄
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100124394
【弁理士】
【氏名又は名称】佐藤 立志
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(74)【代理人】
【識別番号】100111073
【弁理士】
【氏名又は名称】堀内 美保子
(72)【発明者】
【氏名】チエン、ウェイ−ジュン
(72)【発明者】
【氏名】チェン、ペイソン
(72)【発明者】
【氏名】カークゼウィックズ、マルタ
【審査官】 岩井 健二
(56)【参考文献】
【文献】 国際公開第2011/034148(WO,A1)
【文献】 国際公開第2009/041215(WO,A1)
【文献】 Jian-Liang Lin et al.,Improved Advanced Motion Vector Prediction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, KR,2011年 1月,JCTVC-D125,pp.1-8
【文献】 Joonyoung Park et al.,Improvements on median motion vectors of AMVP,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, KR,2011年 1月,JCTVC-D095,pp.1-5
【文献】 Steffen Kamp et al.,Description of video coding technology proposal by RWTH Aachen University,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,1st Meeting: Dresden, DE,2010年 4月,JCTVC-A112,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを符号化する方法であって、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記1つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記1つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を備え、前記動きベクトル予測プロセスは、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を備える、方法。
【請求項2】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照フレームを参照する、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項1に記載の方法。
【請求項4】
前記候補部分は前記現在部分に隣接する、請求項3に記載の方法。
【請求項5】
前記候補動きベクトルのうちの前記選択された1つに関連する前記動きベクトル差分がゼロの動きベクトル差分に対応する場合、前記方法は、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングすることがゼロの前記動きベクトル差分を示すフラグをシグナリングすることを備える、をさらに備える請求項1に記載の方法。
【請求項6】
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを備える、請求項1に記載の方法。
【請求項7】
ビデオデータを復号する方法であって、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行することと、
を備え、前記動きベクトル予測プロセスは、
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号化されるときに既に復号されており
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を備える、方法。
【請求項8】
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をさらに備える、請求項7に記載の方法。
【請求項9】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することは、前記候補部分に関連する前記候補動きベクトルをコピーすることを備える、請求項7に記載の方法。
【請求項10】
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記1つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記1つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を行うように構成されたビデオエンコーダを備え、
前記ビデオエンコーダは、さらに、
前記現在動きベクトルと前記候補動きベクトルのそれぞれの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行うように構成された、装置。
【請求項11】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項10に記載の装置。
【請求項12】
前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項10に記載の装置。
【請求項13】
前記候補部分は前記現在部分に隣接する、請求項12に記載の方法。
【請求項14】
前記候補動きベクトルのうちの前記選択された1つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、前記ビデオエンコーダは、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングするように構成された、請求項10に記載の装置。
【請求項15】
前記ビデオエンコーダは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択するようにさらに構成された、請求項10に記載の装置。
【請求項16】
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行するように構成されたビデオデコーダを備え、前記ビデオデコーダは、さらに、
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を行うように構成された、装置。
【請求項17】
前記ビデオデコーダは、
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を行うようにさらに構成された、請求項16に記載の装置。
【請求項18】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記ビデオデコーダは、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定するようにさらに構成された、請求項16に記載の装置。
【請求項19】
ビデオデータを符号化するように構成された装置であって、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定する手段と、前記1つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており
前記現在部分のための現在動きベクトルを決定するための手段と、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記1つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行する手段と、
を備え、前記動きベクトル予測プロセスを実行する手段は、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算する手段と、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する手段と、
前記現在動きベクトルに関連する参照インデックスまたは予測方向をシグナリングしない手段と、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングする手段と、
を備える、装置。
【請求項20】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項19に記載の装置。
【請求項21】
前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項19に記載の装置。
【請求項22】
前記候補部分は前記現在部分に隣接する、請求項21に記載の装置。
【請求項23】
前記候補動きベクトルのうちの前記選択された1つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングする前記手段は、ゼロの前記動きベクトル差分を示すフラグをシグナリングする手段を備える、請求項19に記載の装置。
【請求項24】
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する前記手段は、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択する手段を備える、請求項19に記載の装置。
【請求項25】
ビデオデータを復号するように構成された装置であって、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行する手段と、
を備え、前記動きベクトル予測プロセスを実行する手段は、
ビデオフレームの候補部分を識別するインデックスを受信する手段と、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており
動きベクトル差分を受信する手段と、
前記候補部分に関連する候補動きベクトルを取り出す手段と、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出す手段と、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定する手段と、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行する手段と、
を備える、装置。
【請求項26】
前記現在部分のビデオデータをエントロピー復号する手段と、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換する手段と、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成する手段と、
をさらに備える、請求項25に記載の装置。
【請求項27】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定する前記手段は、前記候補部分に関連する前記候補動きベクトルをコピーする手段を備える、請求項25に記載の装置。
【請求項28】
実行されたとき、ビデオデータを符号化するためのデバイスの1つまたは複数のプロセッサに、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、前記1つまたは複数の候補部分は、現在ビデオフレームの現在部分が符号化されるときに既に符号化されており
前記現在部分のための現在動きベクトルを決定することと、
前記候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスのシグナリングが、ビデオデコーダで前記1つまたは複数の候補部分の前記候補動きベクトルから前記参照インデックスを推測することによって避けられる、動きベクトル予測プロセスを実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体であって、
前記動きベクトル予測プロセスは、前記プロセッサに、さらに、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行わせる、コンピュータ可読記憶媒体。
【請求項29】
前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、請求項28に記載のコンピュータ可読記憶媒体。
【請求項30】
前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、請求項28に記載のコンピュータ可読記憶媒体。
【請求項31】
前記候補部分は前記現在部分に隣接する、請求項30に記載のコンピュータ可読記憶媒体。
【請求項32】
前記候補動きベクトルのうちの前記選択された1つに関連する前記動きベクトル差分が、ゼロの動きベクトル差分に対応する場合、
前記コンピュータ可読記憶媒体は、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングすることを前記1つまたは複数のプロセッサに行わせる命令をさらに含む、請求項28に記載のコンピュータ可読記憶媒体。
【請求項33】
最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを前記1つまたは複数のプロセッサに行わせる命令をさらに含む、請求項28に記載のコンピュータ可読記憶媒体。
【請求項34】
実行されたとき、ビデオデータを復号するためのデバイスの1つまたは複数のプロセッサに、
複数の候補動きベクトルのそれぞれが同じ参照ビデオフレームを参照する場合、参照ビデオフレームを示す参照インデックスの受信が避けられる動きベクトル予測プロセスを実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体であって、
前記動きベクトル予測プロセスは、前記プロセッサに、さらに
ビデオフレームの候補部分を識別するインデックスを受信することと、前記候補部分は、現在ビデオフレームの現在部分が復号されるときに既に復号されており
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記候補部分に関連する動き予測方向と参照フレームインデックスとを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて前記現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルと、前記取り出された動き予測方向と、取り出された参照フレームインデックスとを使用して前記現在部分に対して動き補償を実行することと、
を行わせることを備える、コンピュータ可読記憶媒体。
【請求項35】
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を前記1つまたは複数のプロセッサに行わせる命令をさらに含む、請求項34に記載のコンピュータ可読記憶媒体。
【請求項36】
前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、
前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することを前記1つまたは複数のプロセッサに行わせる命令をさらに含む、請求項34に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【0001】
本出願は、どちらもそれぞれの全体が参照により本明細書に組み込まれる、2011年1月21日に出願された米国仮出願第61/435,204号、および2011年3月7日に出願された米国仮出願第61/449,991号の利益を主張する。
【技術分野】
【0002】
本開示は、ビデオコーディングに関し、より詳細には、ビデオデータをコーディングするときに動きベクトル予測、動き推定および動き補償を実行するための技法に関する。
【背景技術】
【0003】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するための、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,Advanced Video Coding(AVC)によって定義された規格、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【0005】
[0005]インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は2次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の1次元ベクトルが生成され得る。
【発明の概要】
【0006】
[0006]概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、インターモードコーディング(すなわち、他のフレームのブロックに対して現在ブロックをコーディング)するときに動きベクトル予測、動き推定および動き補償を実行するための技法について説明する。いくつかの例では、本技法は、現在ブロックをコーディングするときに、隣接ブロックから予測方向と参照フレームインデックスとをコピーすることを含み得る。さらに、本技法は、より効率的なコーディングを可能にするために、現在ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の動きベクトル差分を使用することを含み得る。
【0007】
[0007]本開示の一例では、ビデオデータを符号化する方法は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することとを含む。現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。本方法はまた、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択することと、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングすることと、を含む。
【0008】
[0008]本開示の別の例では、ビデオデータを符号化するように構成された装置が提示される。本装置は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定し、現在フレームの現在部分のための現在動きベクトルを決定するように構成されたビデオエンコーダを備え、現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。ビデオエンコーダはさらに、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算し、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択し、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングし、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングするように構成される。
【0009】
[0009]本開示の別の例では、ビデオデータを復号する方法は、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すこと(retrieving)と、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することと、を含む。
【0010】
[0010]本開示の別の例では、ビデオデータを復号するように構成された装置が提示される。本装置は、フレームの候補部分を識別するインデックスを受信し、動きベクトル差分を受信するように構成されたビデオデコーダを含む。ビデオデコーダはさらに、候補部分に関連する候補動きベクトルを取り出し、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定し、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行するように構成される。
【0011】
[0011]1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0012】
図1A】コーディングユニット分割の例を示す概念図。
図1B】コーディングユニット分割の例を示す概念図。
図2A】予測シンタックスコーディングの例の概念図。
図2B】予測シンタックスコーディングの例の概念図。
図3】例示的なビデオ符号化および復号システムを示すブロック図。
図4】例示的なビデオエンコーダを示すブロック図。
図5】例示的なビデオデコーダを示すブロック図。
図6】ビデオを符号化する例示的な方法を示すフローチャート。
図7】ビデオを復号する例示的な方法を示すフローチャート。
図8】ビデオを復号する別の例示的な方法を示すフローチャート。
図9】ビデオを復号する別の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【0013】
[0021]概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、ビデオデータをインターモードコーディングする(すなわち、他のフレームのブロックに対してコーディングする)ときに動き推定および動き補償を実行するための技法について説明する。特に、本開示は、現在ブロックをコーディングするときに、隣接ブロックから予測方向と参照フレームインデックスとをコピーすることを提案する。さらに、本開示は、よりフレキシブルで効率的なコーディングを可能にするために、現在ブロックの動きベクトルと隣接ブロックの動きベクトルとの間の動きベクトル差分を使用することを提案する。動きベクトル全体の代わりに動きベクトル差分を送ることにより、シグナリングされるビットがより少なくなり得る。さらに、予測方向と参照フレームインデックスとをコピーすることとともに、動きベクトル差分を使用することにより、すでに復号された予測シンタックスの効率的な再利用を実現しながら、現在ブロックの動きベクトルのより正確な再生が実現される。
【0014】
[0022]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(フレーム内)予測および/または時間的(フレーム間)予測技法を適用し得る。
【0015】
[0023]一例として、Joint Cooperative Team for Video Coding(JCT−VC)によって現在開発中の高効率ビデオコーディング(HEVC)規格に従うビデオコーディングでは、ビデオフレームがコーディングユニットに区分され得る。コーディングユニット(CU:coding unit)は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。CUは、通常、Yとして示されるルミナンス成分と、UおよびVとして示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるUおよびV成分のサイズは、Y成分のサイズと同じであるかまたはそれとは異なり得る。CUは、一般に方形であり、たとえば、ITU−T H.264などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のHEVC規格の現在提案されている態様のいくつかに従うコーディングについて説明する。ただし、本開示で説明する技法は、H.264または他の規格に従って定義されるビデオコーディングプロセスあるいはプロプライエタリ(proprietary)ビデオコーディングプロセスなど、他のビデオコーディングプロセスのために有用であり得る。
【0016】
[0024]HEVCの規格化の取り組みは、HEVCテストモデル(HM:HEVC Test Model)と呼ばれるビデオコーディングデバイスのモデルに基づく。HMは、たとえば、ITU−T H.264/AVCによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは34個ものイントラ予測符号化モードを提供する。
【0017】
[0025]HMによれば、CUは、1つまたは複数の予測ユニット(PU:prediction unit)および/または1つまたは複数の変換ユニット(TU:transform unit)を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大CUである最大コーディングユニット(LCU:largest coding unit)を定義し得る。概して、CUは、CUがサイズの差異を有しないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUはさらにサブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。本開示ではまた、CU、PU、またはTUのいずれかを指すために「ブロック」または「部分」という用語を使用する。概して、「部分」は、ビデオフレームの任意のサブセットを指し得る。
【0018】
[0026]LCUは4分木データ構造に関連付けられ得る。図1Aは、4分木分割の概念図である。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しなくても、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
【0019】
[0027]その上、リーフCUのTUもそれぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。本開示では、LCUがどのように区分されるかを示す4分木をCU4分木と呼び、リーフCUがどのようにTUに区分されるかを示す4分木をTU4分木と呼ぶ。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してLCUに対応する。分割されないTU4分木のTUはリーフTUと呼ばれる。
【0020】
[0028]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含み得る。たとえば、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルがポイントする参照フレーム、および/または動きベクトルの参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。(1つまたは複数の)PUを定義するリーフCUのデータはまた、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、PUは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【0021】
[0029]ビデオフレーム間の動き推定および補償を伴うインター予測では、追加のタイプの分割が提案されている。この追加のタイプのPU分割は、幾何学的分割または区分と呼ばれ、厳密に水平および/または垂直でない動き境界を識別することを可能にする。幾何学的分割の概念図を図1Bに示す。幾何学的分割では、サブCUは、θおよびρの関数として定義された直線によって2つのパーティション(予測ユニット(PU)と呼ばれることもある)に分割される。θは、x軸から測定され、中心(0,0)から延びるパーティション線に直角な線の角度を定義し、ρは、パーティション線までのこの線の距離または長さを定義する。
【0022】
[0030]実行される分割のタイプにかかわらず、エンコーダは、サブCUを分割した後に形成される得られた各部分(たとえば、PU)について動きベクトルを決定するために、「動き推定」と通常呼ばれるプロセスを実行し得る。エンコーダは、一例として、エンコーダが時間的に後続のあるいは将来の参照フレーム中の各部分について探索する、参照フレーム中の「動き探索」と呼ばれ得るものを実行することによってこれらの動きベクトルを決定する。現在部分に最も良く一致する参照フレームの部分を見つけると、エンコーダは、現在部分の現在動きベクトルを、現在部分から参照フレーム中の一致する部分までの(すなわち、現在部分の中心から一致する部分の中心までの)ロケーションの差分として決定する。
【0023】
[0031]いくつかの従来の例では、エンコーダは、符号化ビデオビットストリーム中で、各部分について動きベクトルをシグナリングし得る。シグナリングされた動きベクトルは、ビデオデータを復号するために、デコーダによって動き補償を実行するために使用される。ただし、動きベクトル全体をシグナリングすると、動きベクトルは一般に多数のビットによって表されるので、コーディングがあまり効率的でなくなることがある。
【0024】
[0032]いくつかの事例では、動きベクトル全体をシグナリングするのではなく、エンコーダは、各パーティションについて動きベクトルを予測し得る。この動きベクトル予測を実行する際に、エンコーダは、現在部分と同じフレーム中の空間的に隣接するPUについて決定される候補動きベクトルのセット、あるいは別の参照フレーム中のコロケートPUについて決定される候補動きベクトルを選択し得る。エンコーダは、シグナリングにおける複雑さおよびビットレートを低減するために、動きベクトル全体をシグナリングするのではなく動きベクトル予測を実行し得る。
【0025】
[0033]従来では、動きベクトル予測の2つの異なるモードまたはタイプが使用される。一方のモードは「マージ」モードと呼ばれる。他方のモードは適応動きベクトル予測(AMVP:adaptive motion vector prediction)と呼ばれる。マージモードでは、エンコーダは、フレームの現在部分のための選択された候補動きベクトルから、動きベクトルと、(所与の参照ピクチャリストにおいて動きベクトルがポイントする参照フレームを識別する)参照インデックスと、(すなわち、参照フレームが時間的に現在フレームに先行するかまたは後続するかに関して、参照ピクチャリストを識別する)動き予測方向とをコピーするように、予測シンタックスのビットストリームシグナリングを通してデコーダに命令する。これは、選択された候補動きベクトルを有する候補部分を識別するインデックスをビットストリーム中でシグナリングすることによって達成される。したがって、マージモードでは、予測シンタックスは、モード(この場合は「マージ」モード)を識別するフラグと、候補部分のロケーションを識別するインデックスとを含み得る。いくつかの事例では、候補部分は、現在部分に関する因果的部分になる。すなわち、候補部分は、デコーダによってすでに復号されていることになる。したがって、デコーダは、候補部分のための動きベクトル、参照インデックス、および動き予測方向をすでに受信および/または決定している。したがって、デコーダは、単に、メモリから、候補部分に関連する動きベクトル、参照インデックス、および動き予測方向を取り出し、現在部分についてこれらの値をコピーし得る。
【0026】
[0034]AMVPでは、エンコーダは、候補部分から動きベクトルのみをコピーするようにビットストリームシグナリングを通してデコーダに命令し、参照フレームおよび予測方向を別々にシグナリングする。AMVPでは、コピーされるべき動きベクトルは、動きベクトル差分(MVD:motion vector difference)を送ることによってシグナリングされ得る。MVDは、現在部分の現在動きベクトルと、候補部分の候補動きベクトルとの間の差分である。このように、デコーダは、現在動きベクトルのために候補動きベクトルの厳密なコピーを使用する必要はないが、むしろ、現在動きベクトルに値が「近接」した候補動きベクトルを使用し、現在動きベクトルを再生するためにMVDを加算し得る。たいていの状況では、MVDは、シグナリングするために現在動きベクトル全体よりも少ないビットを必要とする。したがって、AVMPは、動きベクトル全体を送ることに勝るコーディング効率を維持しながら、現在動きベクトルをより正確にシグナリングすることを可能にする。対照的に、マージモードはMVDの指定に対応しておらず、したがって、マージモードは、シグナリング効率の増加(すなわち、ビットの低減)のために動きベクトルシグナリングの精度を犠牲にする。AVMPの予測シンタックスは、モード(この場合はAMVP)のフラグと、候補部分のインデックスと、現在動きベクトルと候補部分の候補動きベクトルとの間のMVDと、参照インデックスと、動き予測方向とを含み得る。
【0027】
[0035]部分の各々について動きベクトルを決定するために動き推定が実行されると、エンコーダは、(動き探索が実行された場合は)参照フレーム中の一致する部分または(動きベクトル予測が実行された場合は)予測動きベクトルによって識別される参照フレームの部分を現在部分と比較する。この比較は、一般に、現在部分から参照フレーム中の(「参照サンプル」と通常呼ばれる)部分を減算することを伴い、いわゆる残差データを生じる。残差データは、現在部分と参照サンプルとの間のピクセル差分値を示す。エンコーダは、次いで、この残差データを空間領域から周波数領域に変換する。通常、エンコーダは、この変換を達成するために、残差データに離散コサイン変換(DCT)を適用する。エンコーダは、残差データが全体としてではなく得られた変換係数が変換後に符号化されるだけで済むように残差データをさらに圧縮するために、この変換を実行する。
【0028】
[0036]一般に、得られた変換係数は、特に変換係数が最初に量子化される(丸められる)場合、ランレングス符号化を可能にする方法で一緒にグループ化される。エンコーダは、量子化変換係数についてこのランレングス符号化を実行し、次いで、ランレングスコーディングされた量子化変換係数をさらに圧縮するために統計的ロスレス(またはいわゆる「エントロピー」)符号化を実行する。
【0029】
[0037]ロスレス統計的コーディングを実行した後に、エンコーダは、符号化ビデオデータを含むビットストリームを生成する。このビットストリームはまた、いくつかの事例では、たとえば、動きベクトル予測が実行されたかどうかと、動きベクトルモードと、動きベクトル予測子(MVP:motion vector predictor)インデックス(すなわち、選択された動きベクトルをもつ候補部分のインデックス)とを指定するいくつかの予測シンタックス要素を含む。MVPインデックスは、それのシンタックス要素変数名「mvp_idx」として呼ばれることもある。
【0030】
[0038]高効率ビデオコーディング(HEVC)と呼ばれる、ITU−T/ISO/IEC Joint Collaborative Team on Video Coding(JCT−VC)によって採用のために提案されている現在の設計では、エンコーダは、上記で説明した1)AMVPおよび2)マージモードを含む、現在部分の動きベクトルをそれによって予測するためのいくつかの動きベクトル予測モードを実行する。これらの2つのモードは同様であるが、AMVPは、MVD、動き予測方向および参照インデックスを定義することが可能であることに関してより多くのフレキシビリティを提供し、マージモードは、単にこの動きベクトル情報(すなわち、動きベクトル、動き予測方向、および参照インデックス)をコピーし、MVDの精度の増加に対応しない。別の違いは、AMVPは、参照フレーム中のコロケートPUからの時間的候補動きベクトルと、現在フレーム中の近接または隣接するPUからの動きベクトルとを考慮するが、マージモードは、現在フレーム中の近接または隣接するPUからの動きベクトルのみを考慮することである。
【0031】
[0039]これらの動きベクトル予測モードの両方は、動き情報のシグナリングを可能にするために提供される。AMVPは、動きベクトル自体ではなく、MVDのみが指定されることを必要とすることによって、この動き情報をシグナリングすることに関連するコストを低減する。マージモードは、現在部分のためにコピーするために、隣接する空間的候補動きベクトルのうちのどの1つが選択されたかのみをシグナリングすることによって、これらの同じシグナリングコストをなお一層低減する。しかし、マージモードは、現在部分が現在部分の動きベクトルをそれから継承する隣接部分のみを指定することを可能にし、AMVPによって提供されるフレキシビリティを可能にしないという点で、限定的である。
【0032】
[0040]本開示に記載する技法によれば、動きベクトルと他の予測シンタックスとをコーディングするための追加の動きベクトル予測モードが提示される。例示のために、エンコーダは、1つまたは複数の候補部分の各々のための候補動きベクトルを決定し得る。一例では、候補部分は、現在部分と同じフレーム中にあり得る。候補部分は現在部分に隣接する部分であり得る。特に、候補部分は、現在部分に対して因果的である隣接部分であり得る。すなわち、隣接する候補部分は、現在ブロックを符号化するときにエンコーダにおいてすでに符号化されていることがある。逆に、デコーダにおいて、隣接する候補部分は、現在ブロックを復号するときにすでに復号されている。候補部分のロケーションにかかわらず、エンコーダは、次いで、現在フレームの現在動きベクトルを決定する。エンコーダは、参照フレーム中の一致する部分についての全動き探索を採用することによってこの現在動きベクトルを決定し得る。
【0033】
[0041]候補動きベクトルと現在動きベクトルとを決定した後に、エンコーダは、動きベクトル差分(MVD)を決定するために、現在動きベクトルを隣接動きベクトルの各々と比較する。所定のアルゴリズムに従って、エンコーダは、次いで、候補動きベクトルのうちの1つと、関連するMVCとを選択する。概して、候補動きベクトルを選択するアルゴリズムは、最少のビットで表され得るMVDを生成する候補動きベクトルを選択することを試み得る。すなわち、エンコーダは、候補動きベクトルの対応するMVDが、他の決定される動きベクトル差分のすべてと比較して(シグナリングすべきビットに関して)最小となるように、候補動きベクトルのうちの1つを選択し得る。
【0034】
[0042]いくつかの事例では、開示する動きベクトル予測モードは、候補部分の候補動きベクトルがすべて同じ参照フレームを逆参照する事例への動きベクトル予測モードの適用をエンコーダが制限するように実装され得る。隣接動きベクトルのすべてが同じ参照フレームを参照するとき、隣接動きベクトルから参照が推測され得るので、本技法は、参照インデックスをシグナリングする必要を回避するためにこの点において実装を制限し得る。
【0035】
[0043]図2Aは、すべての候補動きベクトルが同じ参照フレームを逆参照するときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス6は、動きベクトル予測モードを示すモードフラグ1と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス3と、動きベクトル差分7(すなわち、選択された候補動きベクトルに関して決定された対応するMVD)とを含み得る。開示する動きベクトル予測モードが使用される唯一のモードである場合、モードフラグ1は随意であり得る。すなわち、モードフラグ1は、開示する動きベクトル予測モードを、たとえば、マージモードまたはAMVPと区別するために使用され得る。予測シンタックス6はまた、随意のMVD=0フラグ5を含み得る。このフラグは、MVDが0である(すなわち、現在動きベクトルと選択された候補動きベクトルとが同じである)ときに使用され得る。このフラグは、シグナリングのために必要とされるビットをさらに低減し得る。代替的に、このフラグは使用されず、MVD7としてすべて0が送られることがある。本開示のこの態様は、(MVD、および候補部分のうちのどれが選択された候補動きベクトルを有するかを識別するインデックスとともに、参照インデックスと動き予測方向の両方がシグナリングされる必要がある)AMVPと、(選択された候補動きベクトルを有する候補部分を識別するインデックスだけがシグナリングされる)マージモードとの間の平衡を与える。
【0036】
[0044]他の事例では、候補動きベクトルに同じ参照をポイントさせるこの制限は削除され得る。図2Bは、すべての候補動きベクトルが同じ参照フレームを逆参照するとは限らないときの、予測シンタックスコーディングの一例の概念図である。予測シンタックス8は、動きベクトル予測モードを示すモードフラグ1と、選択された候補動きベクトルを有する候補部分を識別する予測ユニットインデックス3と、動きベクトル差分7(すなわち、選択された候補動きベクトルに関して決定された対応するMVD)とを含み得る。図2Aの例示的な予測シンタックス6とは対照的に、図2Bの予測シンタックス8は、選択された候補動きベクトルがポイントする参照フレームを識別する参照フレームインデックス9をさらに含む。この場合も、モードフラグ1は随意であり得る。また、予測シンタックス8は、MVD=0フラグ5を随意に含み得る。この例では、開示する動きベクトル予測モードは、AMVPモードとマージモードの両方を包含するように非常に一般的になり得る。これらの2つのモード間の差異をなくすことにより、単一のモードが残るので、動きベクトル予測を実行するために使用されるモードをシグナリングすることに関連するシグナリングコストが低減され得る。
【0037】
[0045]図2Aの予測シンタックス6と図2Bの予測シンタックス8は、相互排他的でなく、同じシステムにおいて使用され得ることを理解されたい。この点について、これらの2つのモード間で区別するためにモードフラグ1が使用され得る。すなわち、動きベクトル予測モードは、そのすべてが同じ参照フレームを逆参照する候補動きベクトルに制限されるか、そのような制限がないかに応じて、モードフラグ1は異なる値をとり得る。
【0038】
[0046]図5に関して以下でより詳細に説明するように、デコーダは、現在フレームに対して動き補償を実行するために、シグナリングされた予測シンタックスを使用して動きベクトルと動き予測方向と参照インデックスとを取り出し得る。概して、デコーダは、予測ユニットインデックス3と動きベクトル差分7とを含む図2Aの予測シンタックスを受信し得る。候補部分に関連する候補動きベクトルが、候補部分を識別する予測ユニットインデックス3に基づいて取り出され得る。いくつかの例では、候補部分は、復号されている現在部分に対して因果的であり得る(すなわち、候補部分はすでに復号されている)。したがって、候補部分に関連する動きベクトルはメモリからアクセスされ得る。候補部分が因果的でない場合、デコーダは、候補部分が復号された状態になるまで、候補部分に関連する候補動きベクトルを取り出すのを待つ。
【0039】
[0047]候補動きベクトルが取り出されると、デコーダは、受信された動きベクトル差分7と、取り出された候補動きベクトルとに基づいて現在部分の現在動きベクトルを決定する。すなわち、現在動きベクトルは、候補動きベクトルに動きベクトル差分を加算することによって決定され得る。別の例では、受信された動きベクトル差分は、図2A図2BのMVD=0フラグ5であり得る。この場合、候補部分に関連する候補動きベクトルは、単に現在部分にコピーされる。デコーダはまた、候補部分に関連する参照インデックスおよび動き予測方向を取り出し得る。いくつかの例では、デコーダに、シグナリングされた予測ユニットインデックスに関連する参照フレームから参照フレームインデックスをコピーさせる代わりに、参照フレームインデックスは明示的にシグナリングされる(たとえば、図2Bの例)。次いで、決定された現在動きベクトルと動き予測方向と参照インデックスを使用して、現在部分に対して動き補償が実行される。
【0040】
[0048]概して、本開示は、ビデオデータを符号化する方法であって、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することとを含む方法を提案する。現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する。本方法はまた、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択することと、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングすることを含む。この符号化方法はビデオエンコーダによって実行され得る。
【0041】
[0049]本開示はまた、ビデオデータを復号する方法であって、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを含む方法を提案する。この復号方法はビデオデコーダによって実行され得る。
【0042】
[0050]図3は、本開示の例による動きベクトル予測のための技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。図3に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。符号化ビデオデータはまた、記憶媒体34またはファイルサーバ36に記憶され得、必要に応じて宛先デバイス14によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ20は、コード化ビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク(CD)、ブルーレイ(登録商標)またはデジタルビデオディスク(DVD)バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化ビデオデータを与え得る。同様に、ネットワークインターフェース、CDまたはDVDリーダーなど、ビデオデコーダ30とは別個のデバイスが、記憶媒体からコード化ビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与え得る。
【0043】
[0051]ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。
【0044】
[0052]本開示の例による、動きベクトル予測のための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0045】
[0053]図3の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【0046】
[0054]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0047】
[0055]ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
【0048】
[0056]ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、または両方の組合せを含み得る。
【0049】
[0057]図3の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0050】
[0058]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0051】
[0059]図3の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0052】
[0060]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格、またはそのような規格の拡張など、他のプロプライエタリまたは業界標準に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG−2およびITU−T H.263がある。
【0053】
[0061]図3には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0054】
[0062]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0055】
[0063]ビデオエンコーダ20は、ビデオ符号化プロセスにおける動きベクトル予測のための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオコーディングプロセスにおける動きベクトル予測のためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【0056】
[0064]本開示の一例では、ソースデバイス12のビデオエンコーダ20は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定することと、現在フレームの現在部分のための現在動きベクトルを決定することと、現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別し、現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算することと、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択することと、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングすることと、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングすることとを行うように構成され得る。
【0057】
[0065]本開示の別の例では、宛先デバイス14のビデオデコーダ30は、フレームの候補部分を識別するインデックスを受信することと、動きベクトル差分を受信することと、候補部分に関連する候補動きベクトルを取り出すことと、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定することと、予測ビデオデータを生成するために、決定された現在動きベクトルを使用して現在部分に対して動き補償を実行することとを行うように構成され得る。
【0058】
[0066]図4は、本開示で説明する動きベクトル予測のための技法を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVCコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【0059】
[0067]図4に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図4の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームバッファ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。図5に示す変換ユニット52は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、CUの変換ユニット(TU)と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図4に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。
【0060】
[0068]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【0061】
[0069]モード選択ユニット40は、たとえば、各モードについての誤差(すなわち、ひずみ)結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック(たとえば、予測ユニット(PU))を、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器62に与える。加算器62は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換ユニット60からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。
【0062】
[0070]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定(または動き探索)は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of squared difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック(たとえば、コーディングユニット)境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【0063】
[0071]動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって識別される参照サンプルを取り出すことによって、現在CUの予測ユニットについての予測値を計算し得る。
【0064】
[0072]本開示の技法によれば、動き推定ユニット42が現在部分の現在動きベクトルを決定すると、動き推定ユニット42は、その現在動きベクトルをそれぞれのあるいは1つまたは複数の候補部分における動きベクトル(すなわち、候補動きベクトル)と比較する。現在動きベクトルと、候補動きベクトルの各々との間の動きベクトル差分が計算される。特定の候補動きベクトルが、たとえば、それの関連する動きベクトル差分のいくつかの基準に基づいて選択される。たとえば、最小のMVDを生成する候補動きベクトルが選択され得る。
【0065】
[0073]候補動きベクトルが選択されると、動き推定ユニット42は、符号化ビットストリーム中で、関連するMVDと、関連する予測シンタックスとをシグナリングし得る。一例では、候補部分の各々は、同じ参照フレームをポイントする動きベクトルを有する候補部分に制限される。この例では、動き推定ユニット42は、選択された動きベクトルを有する候補部分を識別するインデックスと、MVDとをシグナリングする。デコーダは、次いで、選択された動きベクトルを有する候補部分から残りの予測シンタックス(すなわち、参照インデックスおよび動き予測方向)をコピーし得る。さらに、開示する動きベクトル予測方法が使用されているというモードフラグ指示もシグナリングされ得る。随意に、MVDが0である(すなわち、現在動きベクトルが、選択された候補動きベクトルに正確に一致する)状況では、MVDの代わりにMVD=0フラグがシグナリングされ得る。上記で説明したように、図2Aは、この例のためのシグナリングの概念例を示している。
【0066】
[0074]別の例では、候補部分の動きベクトルは、同じ参照フレームのみをポイントすることに制限されない。この場合、参照フレームインデックスもシグナリングされる。上記で説明したように、図2Bはこのシグナリングの概念例を示している。
【0067】
[0075]このコンテキストでは、符号化ビットストリーム中で動きベクトル差分と他の予測シンタックスとをシグナリングすることは、エンコーダからデコーダへのそのような要素のリアルタイム送信を必要とするのではなく、そのようなシンタックス要素がビットストリーム中に符号化され、任意の方法でデコーダにとってアクセス可能にされることを意味する。これは、(たとえば、ビデオ会議における)リアルタイム送信、ならびに(たとえば、ストリーミング、ダウンロード、ディスクアクセス、カードアクセス、DVD、ブルーレイなどにおける)デコーダによる将来の使用のために符号化ビットストリームをコンピュータ可読媒体に記憶することを含み得る。
【0068】
[0076]イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測ユニット46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測ユニット46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、34個の方向性予測モードで構成され得る。
【0069】
[0077]イントラ予測ユニット46は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成(combine)し、その合成された値をPU中の1つまたは複数のピクセル位置に適用するための機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット46は、PUと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット46は、次いで、PUを加算器50に送り得る。
【0070】
[0078]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測ユニット46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【0071】
[0079]変換ユニット52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成し得る。変換ユニット52は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性に基づいて選択され得る。変換ユニット52は、次いで、選択された変換をTUに適用して、変換係数の2次元アレイを備えるビデオブロックを生成する。
【0072】
[0080]変換ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット56が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行し得ることを理解されたい。
【0073】
[0081]変換係数が1次元アレイに走査されると、エントロピー符号化ユニット56は、CAVLC、CABAC、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【0074】
[0082]CAVLCを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【0075】
[0083]CABACを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロであるか否かに関係し得る。エントロピー符号化ユニット56はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット56は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および/または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【0076】
[0084]エントロピー符号化ユニット56によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ30などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【0077】
[0085]場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、CUおよびPUのコード化ブロックパターン(CBP:coded block pattern)値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は係数のランレングスコーディングを実行し得る。
【0078】
[0086]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0079】
[0087]図5は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図5の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図4参照)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【0080】
[0088]エントロピー復号ユニット70は、変換係数の1次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ20によって使用されたエントロピーコーディング(たとえば、CABAC、CAVLCなど)に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【0081】
[0089]いくつかの例では、エントロピー復号ユニット70(または逆量子化ユニット76)は、ビデオエンコーダ20のエントロピー符号化ユニット56(または量子化ユニット54)によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は互いに高度に統合され得る。
【0082】
[0090]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、HEVCのために提案されたプロセスまたはH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断し、同様に、適用されるべき逆量子化の程度を判断するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1次元アレイから2次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【0083】
[0091]逆変換ユニット78は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換ユニット78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの1つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換ユニット78は、現在ブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。代替的に、変換は、LCU4分木中のリーフノードCUのためのTU4分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換ユニット78は、逆変換ユニット78が、復号されている現在ブロックの変換係数に2つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【0084】
[0092]本開示の例によれば、ビデオデコーダ30は、符号化ビットストリームから、動きベクトル差分と他の予測シンタックスとを識別するシグナリング情報を受信し得る。MVDおよび予測シンタックスは、エントロピー復号ユニット70またはビデオデコーダ30の別のユニットによって動き補償ユニット72に受け渡され得る。
【0085】
[0093]イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【0086】
[0094]本開示の例によれば、動き補償ユニット72は、エントロピー復号ユニット70から受信されたMVDおよび予測シンタックスに基づいて予測データを生成し得る。動き補償ユニット72は、符号化ビットストリーム中でMVDと予測シンタックスとを受信する。図2Aの例では、予測シンタックスは、シグナリングされたMVDを作成するために使用される候補動きベクトルを有する候補部分を識別するインデックスを含む。動き補償ユニット72は、シグナリングされた候補部分に関連する候補動きベクトル(すなわち、候補部分のインデックス)をメモリから取り出すためにこのインデックスを使用し得る。動きベクトルは、参照フレームバッファ82などのメモリに記憶され得る。動き補償ユニット72は、次いで、シグナリングされたMVDを、取り出された候補動きベクトルに加算することによってフレームの現在部分のための現在動きベクトルを計算し得る。図2Aを参照しながら上記で説明したように、いくつかの例では、MVDを送るのではなく、ゼロのMVDがフラグとしてシグナリングされ得る。この状況では、動き補償ユニット72は、現在動きベクトルとして単に候補動きベクトルをコピーし得る。
【0087】
[0095]動き補償ユニット72はまた、候補部分に関連する動き予測方向および参照インデックスを取り出し得る。参照予測方向は、インター予測モードが単方向である(たとえば、Pフレーム)か、双方向である(Bフレーム)かを示す。参照インデックスは、候補動きベクトルがどの参照フレームに基づくかを示す。図2Bなどに示す他の例では、参照フレームインデックスは、デコーダにシグナリングされ、取り出される必要がないことがある。
【0088】
[0096]取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償ユニットは現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【0089】
[0097]動き補償ユニット72は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0090】
[0098]さらに、動き補償ユニット72およびイントラ予測ユニット74は、HEVCの例では、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されたLCUのサイズを決定し得る。動き補償ユニット72およびイントラ予測ユニット74はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード(たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化PUについての1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【0091】
[0099]加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって生成される対応する予測ブロックと合成(combine)して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、その後の動き補償のための参照ブロックを与え、また、(図3のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号ビデオを生成する。
【0092】
[0100]上述のように、本開示において提示する、動きベクトル予測、動き補償および動き推定のための技法は、エンコーダとデコーダの両方に適用可能である。概して、上記の説明に従って、エンコーダは、ビデオフレームの現在部分の現在動きベクトルのための動きベクトル予測子として使用すべき候補動きベクトルを決定し得る。エンコーダは、選択された候補動きベクトルと現在ベクトルとの間の動きベクトル差分をシグナリングする。エンコーダはまた、選択された候補動きベクトルを有する候補部分を識別するインデックスをシグナリングする。デコーダは、次いで、候補部分に関連する動き予測方向および参照フレームインデックスを取り出し、現在部分のためにそれらをコピーし得る。デコーダはまた、候補部分に関連する候補動きベクトルを取り出し、その候補動きベクトルに、シグナリングされた動きベクトル差分を加算して、現在部分の現在動きベクトルを生成する。次いで、現在動きベクトル、動きベクトル予測、および参照フレームインデックスを使用した動き補償プロセスを通して、デコーダによって予測データが形成され得る。
【0093】
[0101]図6は、図4のビデオエンコーダ20などのビデオエンコーダによって実行され得る、ビデオを符号化する例示的な方法を示すフローチャートである。ビデオデータを符号化する方法は、ビデオフレームの1つまたは複数の候補部分の各々のための候補動きベクトルを決定する(120)。一例では、候補部分は、同じフレーム中の現在部分に隣接する部分である。上記で説明したように、候補動きベクトルは、動き探索プロセスを通して前もって決定され、メモリに記憶された動きベクトルであり得る。次に、エンコーダは、現在フレームの現在部分のための現在動きベクトルを決定し、この現在動きベクトルは、現在フレームの現在部分に少なくとも部分的に一致する参照フレームの部分を識別する(122)。この場合も、このプロセスは動き探索プロセスであり得る。
【0094】
[0102]現在動きベクトルと候補動きベクトルの各々との間の動きベクトル差分を計算する(124)。MVDを計算した後に、エンコーダは、計算された動きベクトル差分に基づいて候補動きベクトルのうちの1つを選択する(126)。選択される候補動きベクトルは、最小の動きベクトル差分を生成する候補動きベクトルであり得る。候補動きベクトルが選択されると、エンコーダは、たとえば符号化ビットストリーム中で、候補動きベクトルのうちの選択された1つを有する候補部分を識別するインデックスをシグナリングし、候補動きベクトルのうちの選択された1つに関して計算された対応する動きベクトル差分をシグナリングする(128)。ステップ128のシグナリングは、候補動きベクトルの各々が現在動きベクトルと同じ参照フレームを参照する場合に適用可能である。
【0095】
[0103]別の随意の例では、候補動きベクトルのうちの少なくとも1つが、現在動きベクトルとは異なる参照フレームを参照する。この場合、エンコーダは、選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングし得る(130)。
【0096】
[0104]いくつかの例では、候補動きベクトルのうちの選択された1つは、ゼロの動きベクトル差分に対応する。その場合、候補動きベクトルのうちの選択された1つに関して決定された対応する動きベクトル差分をシグナリングすることは、動きベクトル差分自体をシグナリングするのではなく、動きベクトル差分を示すフラグをシグナリングすることを含み得る。
【0097】
[0105]図7は、図5のビデオデコーダ30などのビデオデコーダによって実行され得る、ビデオを復号する例示的な方法を示すフローチャートである。ビデオデータを復号する方法は、フレームの候補部分を識別するインデックスを受信し、動きベクトル差分を受信することと(136)、候補部分に関連する候補動きベクトルを取り出すことと(138)を含む。候補動きベクトルは、すでに復号されている候補部分(すなわち、因果的部分)のためのメモリから取り出され得る。いくつかの例では、受信された動きベクトル差分は、動きベクトル差分がゼロであることを示すフラグによって示され得る。ビデオデコーダはまた、候補部分に関連する動き予測方向および参照フレームインデックスを取り出す(140)。ビデオデコーダは、受信された動きベクトル差分と候補動きベクトルとに基づいて現在フレームの現在部分のための現在動きベクトルを決定する(142)。これは、候補動きベクトルに動きベクトル差分を加算することによって達成され得る。ビデオデコーダは、次いで、予測ビデオデータを生成するために、決定された現在動きベクトル、動き予測方向および参照フレームインデックスを使用して現在部分に対して動き補償を実行する(144)。
【0098】
[0106]図8は、図7に示す方法のわずかな変形態である、ビデオを復号する例示的な方法を示すフローチャートである。図8の例では、ビデオデコーダは、動きベクトル差分、およびフレームの候補部分を識別するインデックスとともに、参照フレームインデックスを受信する(137)。したがって、動きベクトル(138)および動き予測方向(141)のみを取り出す必要がある。
【0099】
[0107]図9は、ビデオを復号する別の例示的な方法を示すフローチャートである。図7図8に示す方法の前にまたはそれと並列に、ビデオデコーダは、現在部分のビデオデータをエントロピー復号し(146)、残差データを生成するために、エントロピー復号されたビデオデータを逆量子化し、逆変換する(148)。図7または図8に示す方法によって予測データが生成されると、ビデオデコーダは、復号されたビデオデータを形成するために予測ビデオデータを残差ビデオデータと合成(combine)する(150)。
【0100】
[0108]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0101】
[0109]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)(登録商標)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0102】
[0110]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0103】
[0111]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0104】
[0112]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータを符号化する方法であって、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を備える、方法。
[2] 前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照フレームを参照する、[1]に記載の方法。
[3] 前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、[1]に記載の方法。
[4] 前記候補部分は前記現在部分に隣接する、[3]に記載の方法。
[5] 前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングすることは、ゼロの前記動きベクトル差分を示すフラグをシグナリングすることを備える、[1]に記載の方法。
[6] 前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することを備える、[1]に記載の方法。
[7] 前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすること、をさらに備える、[1]に記載の方法。
[8] ビデオデータを復号する方法であって、
ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を備える、方法。
[9] 前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をさらに備える、[8]に記載の方法。
[10] 前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことをさらに備え、動き補償を実行することは、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用することをも備える、[8]に記載の方法。
[11] 参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
をさらに備え、動き補償を実行することは、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用することを備える、[8]に記載の方法。
[12] 前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することは、前記候補部分に関連する前記候補動きベクトルをコピーすることを備える、[8]に記載の方法。
[13] ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行うように構成されたビデオエンコーダを備える装置。
[14] 前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、[13]に記載の装置。
[15] 前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、[13]に記載の装置。
[16] 前記候補部分は前記現在部分に隣接する、[15]に記載の方法。
[17] 前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記ビデオエンコーダは、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングするように構成された、[13]に記載の装置。
[18] 前記ビデオエンコーダは、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択するようにさらに構成された、[13]に記載の装置。
[19] 前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記ビデオエンコーダは、前記選択された候補動きベクトルに関連する参照ビデオフレームを識別する参照インデックスをシグナリングするようにさらに構成された、[13]に記載の装置。
[20] ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を行うように構成されたビデオデコーダを備える、装置。
[21] 前記ビデオデコーダは、
前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
を行うようにさらに構成された、[20]に記載の装置。
[22] 前記ビデオデコーダは、
前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、
前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、
を行うようにさらに構成された、[20]に記載の装置。
[23] 前記ビデオデコーダは、
参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとをも使用して動き補償を実行することと、
を行うようにさらに構成された、[20]に記載の装置。
[24] 前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記ビデオデコーダは、前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定するようにさらに構成された、[20]に記載の装置。
[25] ビデオデータを符号化するように構成された装置であって、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定する手段と、
現在ビデオフレームの現在部分のための現在動きベクトルを決定するための手段と、前記現在動きベクトルは参照フレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算する手段と、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する手段と、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングする手段と、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングする手段と、
を備える、装置。
[26] 前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、[25]に記載の装置。
[27] 前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、[25]に記載の装置。
[28] 前記候補部分は前記現在部分に隣接する、[27]に記載の方法。
[29] 前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、前記候補動きベクトルのうちの前記選択された1つに関して決定された前記対応する動きベクトル差分をシグナリングする前記手段は、ゼロの前記動きベクトル差分を示すフラグをシグナリングする手段を備える、[25]に記載の装置。
[30] 前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択する前記手段は、最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択する手段を備える、[25]に記載の装置。
[31] 前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングする手段をさらに備える、[25]に記載の装置。
[32] ビデオデータを復号するように構成された装置であって、
ビデオフレームの候補部分を識別するインデックスを受信する手段と、
動きベクトル差分を受信する手段と、
前記候補部分に関連する候補動きベクトルを取り出す手段と、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定する手段と、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行する手段と、
を備える、装置。
[33] 前記現在部分のビデオデータをエントロピー復号する手段と、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換する手段と、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成する手段と、
をさらに備える、[32]に記載の装置。
[34] 前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出す手段をさらに備え、動き補償を実行する前記手段は、前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用する手段をも備える、[32]に記載の装置。
[35] 参照ビデオフレームを識別する参照インデックスを受信する手段と、
前記候補部分に関連する動き予測方向を取り出す手段と、
をさらに備え、動き補償を実行する前記手段は、予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用する手段をも備える、[32]に記載の装置。
[36] 前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定する前記手段は、前記候補部分に関連する前記候補動きベクトルをコピーする手段を備える、[32]に記載の装置。
[37] 実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオフレームの1つまたは複数の候補部分のそれぞれのための候補動きベクトルを決定することと、
現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、前記現在動きベクトルは参照ビデオフレームの部分を識別し、
前記現在動きベクトルと前記候補動きベクトルのそれぞれとの間の動きベクトル差分を計算することと、
前記計算された動きベクトル差分に基づいて前記候補動きベクトルのうちの1つを選択することと、
前記候補動きベクトルのうちの前記選択された1つを有する前記候補部分を識別するインデックスをシグナリングすることと、
前記候補動きベクトルのうちの前記選択された1つに関して計算された前記動きベクトル差分をシグナリングすることと、
を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[38] 前記候補動きベクトルのそれぞれは、前記現在動きベクトルと同じ参照ビデオフレームを参照する、[37]に記載のコンピュータプログラム製品。
[39] 前記1つまたは複数の候補部分は前記現在ビデオフレーム中にある、[37]に記載のコンピュータプログラム製品。
[40] 前記候補部分は前記現在部分に隣接する、[39]に記載のコンピュータプログラム製品。
[41] 前記候補動きベクトルのうちの前記選択された1つは、ゼロの動きベクトル差分に対応し、
前記コンピュータプログラム製品は、前記動きベクトル差分を、ゼロの前記動きベクトル差分を示すフラグとしてシグナリングすることをプロセッサに行わせる命令をさらに含む、[37]に記載のコンピュータプログラム製品。
[42] 最小の計算された動きベクトル差分をもつ前記候補動きベクトルを選択することをプロセッサに行わせる命令をさらに含む、[37]に記載のコンピュータプログラム製品。
[43] 前記候補動きベクトルのうちの少なくとも1つは、前記現在動きベクトルとは異なる参照ビデオフレームを参照し、前記コンピュータプログラム製品は、
前記選択された候補動きベクトルに関連する参照フレームを識別する参照インデックスをシグナリングすることをプロセッサに行わせる命令をさらに含む、[37]に記載のコンピュータプログラム製品。
[44] 実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオフレームの候補部分を識別するインデックスを受信することと、
動きベクトル差分を受信することと、
前記候補部分に関連する候補動きベクトルを取り出すことと、
前記受信された動きベクトル差分と前記候補動きベクトルとに基づいて現在ビデオフレームの現在部分のための現在動きベクトルを決定することと、
予測ビデオデータを生成するために、前記決定された現在動きベクトルを使用して前記現在部分に対して動き補償を実行することと、
を行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[45] 前記現在部分のビデオデータをエントロピー復号することと、
残差データを生成するために、前記エントロピー復号されたビデオデータを逆量子化し、逆変換することと、
復号されたビデオデータを形成するために、前記予測ビデオデータと前記残差データとを合成することと、
をプロセッサに行わせる命令をさらに含む、[44]に記載のコンピュータプログラム製品。
[46] 前記候補部分に関連する動き予測方向および参照フレームインデックスを取り出すことと、
前記予測ビデオデータを生成するために、前記取り出された動き予測方向と前記取り出された参照フレームインデックスとを使用して動き補償を実行することと、
をプロセッサに行わせる命令をさらに含む、[44]に記載のコンピュータプログラム製品。
[47] 参照ビデオフレームを識別する参照インデックスを受信することと、
前記候補部分に関連する動き予測方向を取り出すことと、
予測ビデオデータを生成するために、前記取り出された動き予測方向と前記受信された参照フレームインデックスとを使用して動き補償を実行することと、
をプロセッサに行わせる命令をさらに含む、[44]に記載のコンピュータプログラム製品。
[48] 前記受信された動きベクトル差分は、ゼロ動きベクトル差分を示すフラグであり、
前記候補部分に関連する前記候補動きベクトルをコピーすることによって前記現在ビデオフレームの前記現在部分のための前記現在動きベクトルを決定することをプロセッサに行わせる命令をさらに含む、[44]に記載のコンピュータプログラム製品。
図1A
図1B
図2A
図2B
図3
図4
図5
図6
図7
図8
図9