(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-03
(45)【発行日】2023-10-12
(54)【発明の名称】ビデオエンコードおよびデコード
(51)【国際特許分類】
H04N 19/105 20140101AFI20231004BHJP
H04N 19/167 20140101ALI20231004BHJP
H04N 19/182 20140101ALI20231004BHJP
【FI】
H04N19/105
H04N19/167
H04N19/182
(21)【出願番号】P 2021537882
(86)(22)【出願日】2019-12-11
(86)【国際出願番号】 CN2019124453
(87)【国際公開番号】W WO2020135033
(87)【国際公開日】2020-07-02
【審査請求日】2021-06-25
(31)【優先権主張番号】201811628695.2
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】508219313
【氏名又は名称】杭州海康威視数字技術股▲フン▼有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】▲陳▼ 方▲棟▼
【審査官】坂東 大五郎
(56)【参考文献】
【文献】Ru-Ling Liao et al.,CE10.3.1.b: Triangular prediction unit mode,Joint Video Exploration Team (JVET),2018年10月08日,[JVET-L0124-v2] (version 5)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコード方法であって、
現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たし、かつ前記三角形幾何学的分割モードを呼び出すと判断されると、
現在ブロックの第1の目標運動情報と前記第1の目標運動情報とは異なる第2の目標運動情報とを取得するステップと、前記第1の目標運動情報および前記第2の目標運動情報は、それぞれ、前記現在ブロックを分割して得られた第1の三角サブブロックの運動情報、および、第2の三角サブブロックの運動情報であり、前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対してデコード処理を実行するステップと、を実行し、
前記現在ブロックが前記三角形幾何学的分割モードを呼び出すための特定条件を満たすか否かは、前記現在ブロックが位置している現在フレームのフレームタイプ、前記現在ブロックの運動情報モード、および、前記現在ブロックのサイズ情報が前記特定条件を満たすか否かを判断することによって判断され、
前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対してデコード処理を実行するステップは、前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対して運動補償を実行して、前記現在ブロックの予測値を得るステップを含み、
前記現在ブロックの予測値は、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックの予測値を含み、前記第1の目標運動情報に基づいて当該第1の領域サブブロックに対して運動補償を実行して前記第1の領域サブブロックの予測値を得、前記第2の目標運動情報に基づいて当該第2の領域サブブロックに対して運動補償を実行して前記第2の領域サブブロックの予測値を得、前記第1の目標運動情報および前記第2の目標運動情報に基づいて当該第3の領域サブブロックに対して加重補償を実行して前記第3の領域サブブロックの予測値を得、
前記第1の目標運動情報および前記第2の目標運動情報に基づいて当該第3の領域サブブロックに対して加重補償を実行して第3の領域サブブロックの予測値を得ることは、前記第3の領域サブブロックの予測値は、前記第3の領域サブブロック内の各サブブロックの予測値を含み、前記第3の領域サブブロック内の各サブブロックのサイズは、1*1のピクセルブロックであり、前記第3の領域サブブロック内の各サブブロックに対して、第1の目標運動情報に基づいて前記サブブロックの第1の予測値を確定することと、第2の目標運動情報に基づいて前記サブブロックの第2の予測値を確定することと、第1の予測値、前記第1の予測値に対応する第1の重み係数、第2の予測値、および、前記第2の予測値に対応する第2の重み係数に基づいて、前記サブブロックの加重予測値を得ることと、を含み、前記第1の予測値がP1であり、前記第2の予測値がP2であり、前記第1の重み係数がaであり、前記第2の重み係数がbであると、前記サブブロックの加重予測値は、P1*a+P2*bであり、
前記第3の領域サブブロック内の各サブブロックは、輝度成分を含み、前記輝度成分に用いられる前記第1の重み係数の値セットは、{7/8、6/8、5/8、4/8、3/8、2/8、1/8}
のみである、
ことを特徴とするデコード方法。
【請求項2】
前記現在ブロックが三角形幾何学的分割モードを呼び出すための前記特定条件を満たし、かつ三角形幾何学的分割モードを呼び出すと判断されると、指示情報に指示された分割法に従って前記現在ブロックを前記第1の三角サブブロックと前記第2の三角サブブロックとに分割することをさらに実行する
ことを特徴とする請求項1に記載のデコード方法。
【請求項3】
前記指示情報に指示された分割法に従って前記現在ブロックを前記第1の三角サブブロックと前記第2の三角サブブロックとに分割することは、
前記指示情報に指示された分割法
が第1の方法であると、水平右向きの方向と鋭角を形成する対角線を用いる前記第1の方法に従って前記現在ブロックを前記第1の三角サブブロックと前記第2の三角サブブロックとに分割すること、または、
前記指示情報に指示された分割法が第2の方法であると、水平右向きの方向と鈍角を形成する対角線を用いる前記第2の方法に従って前記現在ブロックを前記第1の三角サブブロックと前記第2の三角サブブロックとに分割することを含む
ことを特徴とする請求項2に記載のデコード方法。
【請求項4】
前記第3の領域サブブロック内の各サブブロックは、輝度成分を含み、輝度成分の場合、前記第1の予測値は、第1の目標運動情報に基づいて確定した輝度成分の予測値であり、前記第2の予測値は、前記第2の目標運動情報に基づいて確定した輝度成分の予測値であり、前記サブブロックに対する加重予測値は、輝度成分の加重予測値である
ことを特徴とする請求項1に記載のデコード方法。
【請求項5】
前記第3の領域サブブロック内の各サブブロックは、クロミナンス成分を含み、クロミナンス成分の場合、前記第1の予測値は、第1の目標運動情報に基づいて確定したクロミナンス予測値であり、前記第2の予測値は、前記第2の目標運動情報に基づいて確定したクロミナンス予測値であり、前記サブブロックの加重予測値は、前記第1の予測値、前記第2の予測値、前記第1の重み係数、および、前記第2の重み係数に基づいて確定したクロミナンス加重予測値である
ことを特徴とする請求項1に記載のデコード方法。
【請求項6】
前記第3の領域サブブロック内の各サブブロックの場合、前記サブブロックが第1の三角サブブロック内に位置していると、前記第1の重み係数は前記第2の重み係数よりも大きいし、前記サブブロックが第2の三角サブブロック内に位置していると、前記第1の重み係数は前記第2の重み係数よりも小さいし、前記サブブロックが分割線上に位置していると、前記第1の重み係数は前記第2の重み係数と等しい
ことを特徴とする請求項2に記載のデコード方法。
【請求項7】
現在ブロックに対して、4*4ブロックを単位として運動情報を記憶することをさらに含み、
前記第1の領域サブブロックの場合、MV1を前記第1の目標運動情報として選択すると、前記第1の領域サブブロックに対して前記MV1を記憶し、その中で、前記MV1は、単一方向予測ブロックからのものであり
、候補リストには、前記MV1が含まれており、
前記第2の領域サブブロックの場合、MV2を前記第2の目標運動情報として選択すると、前記第2の領域サブブロックに対して前記MV2を記憶し、その中で、前記MV2は、単一方向予測ブロックからのものであり、前記候補リストには、前記MV2が含まれている
ことを特徴とする請求項1に記載のデコード方法。
【請求項8】
前記現在ブロックの第1の目標運動情報および第2の目標運動情報を取得することは、
複数の候補運動情報を含む候補リストを構築することと、
前記候補リストから1つの候補運動情報を前記第1の目標運動情報として選択することと、
前記候補リストからもう1つの候補運動情報を前記第2の目標運動情報として選択することと、を含み、
前記現在ブロックの第1の目標運動情報および第2の目標運動情報を取得することは、
複数の候補運動情報を含む候補リストを構築することと、
第3の指示情報に指示されたインデックス値に基づいて、前記候補リストから当該インデックス値に対応する候補運動情報を選択し、当該候補運動情報を第1の目標運動情報とすることと、
第4の指示情報に指示されたインデックス値に基づいて、前記候補リストから当該インデックス値に対応する候補運動情報を選択し、当該候補運動情報を前記第2の目標運動情報とすることと、を含む
ことを特徴とする請求項1に記載のデコード方法。
【請求項9】
エンコード方法であって、
現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たし、かつ前記三角形幾何学的分割モードを呼び出すと判断されると、
現在ブロックの第1の目標運動情報と前記第1の目標運動情報とは異なる第2の目標運動情報とを取得するステップと、前記第1の目標運動情報および前記第2の目標運動情報は、それぞれ、前記現在ブロックを分割して得られた第1の三角サブブロックの運動情報、および、第2の三角サブブロックの運動情報であり、前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対してエンコード処理を実行するステップと、を実行し、
前記現在ブロックが前記三角形幾何学的分割モードを呼び出すための特定条件を満たすか否かは、前記現在ブロックが位置している現在フレームのフレームタイプ、前記現在ブロックの運動情報モード、および、前記現在ブロックのサイズ情報が前記特定条件を満たすか否かを判断することによって判断され、
前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対してエンコード処理を実行するステップは、前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対して運動補償を実行して、前記現在ブロックの予測値を得るステップを含み、
前記現在ブロックの予測値は、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックの予測値を含み、前記第1の目標運動情報に基づいて当該第1の領域サブブロックに対して運動補償を実行して前記第1の領域サブブロックの予測値を得、前記第2の目標運動情報に基づいて当該第2の領域サブブロックに対して運動補償を実行して前記第2の領域サブブロックの予測値を得、前記第1の目標運動情報および前記第2の目標運動情報に基づいて当該第3の領域サブブロックに対して加重補償を実行して前記第3の領域サブブロックの予測値を得、
前記第1の目標運動情報および前記第2の目標運動情報に基づいて当該第3の領域サブブロックに対して加重補償を実行して第3の領域サブブロックの予測値を得ることは、前記第3の領域サブブロックの予測値は、前記第3の領域サブブロック内の各サブブロックの予測値を含み、前記第3の領域サブブロック内の各サブブロックのサイズは、1*1のピクセルブロックであり、前記第3の領域サブブロック内の各サブブロックに対して、第1の目標運動情報に基づいて前記サブブロックの第1の予測値を確定することと、第2の目標運動情報に基づいて前記サブブロックの第2の予測値を確定することと、第1の予測値、前記第1の予測値に対応する第1の重み係数、第2の予測値、および、前記第2の予測値に対応する第2の重み係数に基づいて、前記サブブロックの加重予測値を得ることと、を含み、前記第1の予測値がP1であり、前記第2の予測値がP2であり、前記第1の重み係数がaであり、前記第2の重み係数がbであると、前記サブブロックの加重予測値は、P1*a+P2*bであり、
前記第3の領域サブブロック内の各サブブロックは、輝度成分を含み、前記輝度成分に用いられる前記第1の重み係数の値セットは、{7/8、6/8、5/8、4/8、3/8、2/8、1/8}
のみである、
ことを特徴とするエンコード方法。
【請求項10】
デコード側デバイスであって、
プロセッサと機械可読記録媒体とを備え、
前記機械可読記録媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶されており、
前記プロセッサは、機械実行可能命令を実行することによって、請求項1乃至8のいずれか1項に記載の方法を実現する
ことを特徴とするデコード側デバイス。
【請求項11】
エンコード側デバイスであって、
プロセッサと機械可読記録媒体とを備え、
前記機械可読記録媒体には、前記プロセッサによって実行可能な機械実行可能命令が記憶されており、
前記プロセッサは、機械実行可能命令を実行することによって、請求項9に記載の方法を実現する
ことを特徴とするエンコード側デバイス。
【請求項12】
デコーダーであって、
前記デコーダーは、請求項1乃至8のいずれか1項に記載の方法を実現するように構成される
ことを特徴とするデコーダー。
【請求項13】
機械可読記録媒体であって、
前記機械可読記録媒体には、プロセッサによって実行可能な機械実行可能命令が記憶されており、
前記プロセッサは、機械実行可能命令を実行することによって、請求項1乃至8のいずれか1項に記載の方法を実現する
することを特徴とする機械可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオエンコードおよびデコードに関し、特に三角予測エンコードに関する。
【背景技術】
【0002】
一般的に、ビデオエンコード方法は、予測、変換、量子化、フィルタリング、エントロピーエンコードされたなどのプロセスを含み得る。予測エンコードは、フレーム内予測エンコード、および、フレーム間予測エンコードを含み得る。フレーム間予測エンコードとは、現在ブロックの時間領域隣接ブロック(現在ブロックとは異なるフレーム内に位置する)の再構築ピクセル値を利用して予測エンコードを実行することを意味する。フレーム内予測エンコードとは、現在ブロックの空間領域隣接ブロック(現在ブロックと同一のフレーム内に位置する)の再構築ピクセル値を利用して予測エンコードを実行することを意味する。
【0003】
フレーム間予測エンコードにおいて、運動ベクトル(Motion Vector、MV)を使用して現在フレームの現在ブロックと参考フレームの参考ブロックとの間の相対変位を表すことができる。たとえば、現在フレームAと参考フレームBとの間に強い時間領域相関性が存在すると、現在フレームAの現在ブロックA1を伝送する必要がある場合、参考フレームB内で現在ブロックA1と最も一致する参考ブロックB1を検索し、現在ブロックA1と参考ブロックB1との間の相対変位を現在ブロックA1の運動ベクトルとして確定することができる。
【0004】
物体のエッジに対応する1つのブロック内に2つの異なる対象が存在する場合があり、たとえば、前景の物体と背景とが同時に存在する場合がある。このような場合、長方形のブロックをのみ利用して予測を実行すると、長方形のブロック内の特定の一部の対象に対する予測効果がよくない場合があり、そのエンコード残差より大きくなる。
【発明の概要】
【0005】
本発明は、ビデオエンコードおよびデコード方法を提供し、前記方法は、ビデオエンコーダーまたはビデオデコーダーによって実行されることができ、また、前記方法は、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割するステップと、前記第1の三角サブブロックの第1の目標運動情報と、前記第2の三角サブブロックの、前記第1の目標運動情報とは異なる第2の目標運動情報と、を取得するステップと、前記第1の目標運動情報および前記第2の目標運動情報に基づいて前記現在ブロックに対してエンコードされた処理またはデコード処理を実行するステップと、を含む。
【0006】
本発明は、ビデオデコーダーを提供し、当該ビデオデコーダーは、プロセッサと機械可読記録媒体とを備え、ここで、前記機械可読記録媒体には、前記プロセッサによって実行可能の機械実行可能命令が記録されており、前記プロセッサによって前記機械実行可能命令が実行されるときに、上記した方法が実現される。
【0007】
本発明は、ビデオエンコーダーを提供し、当該ビデオエンコーダーは、プロセッサと機械可読記録媒体とを備え、ここで、前記機械可読記録媒体には、前記プロセッサによって実行可能の機械実行可能命令が記録されており、前記プロセッサによって前記機械実行可能命令が実行されるときに、上記した方法が実現される。
【0008】
本発明は、機械可読記録媒体を提供し、当該機械可読記録媒体には、コンピュータ命令が記録されており、前記コンピュータ命令がプロセッサによって実行されるときに、前記プロセッサが上記した方法を実現するようにする。
【図面の簡単な説明】
【0009】
【
図1】本発明の1実施形態におけるビデオエンコードのアーキテクチャの概略図である。
【
図2】本発明の1実施形態におけるビデオデコード方法のフローチャートである。
【
図3】本発明の1実施形態におけるビデオエンコード方法のフローチャートである。
【
図4A】本発明の1実施形態における現在ブロックの分割の概略図である。
【
図4B】本発明の1実施形態における現在ブロックの分割の概略図である。
【
図5A】本発明の1実施形態における候補ブロックの概略図である。
【
図5B】本発明の1実施形態における候補ブロックの概略図である。
【
図5C】本発明の1実施形態における候補ブロックの概略図である。
【
図6A】本発明の1実施形態における分割サブブロックの概略図である。
【
図6B】本発明の1実施形態における分割サブブロックの概略図である。
【
図6C】本発明の1実施形態における分割サブブロックの概略図である。
【
図7A】本発明の1実施形態における運動情報記憶の概略図である。
【
図7B】本発明の1実施形態における運動情報記憶の概略図である。
【
図8】本発明の1実施形態におけるビデオデコーダーの概略構成図である。
【
図9】本発明の1実施形態におけるビデオエンコーダーの概略構成図である。
【発明を実施するための形態】
【0010】
本発明の実施例で使用される用語の目的は、ただ、特定の実施例を説明するためであり、本発明を限定することではない。本明細書および特許請求の範囲で使用される「1種」、「前記」、および、「当該」などの単数形は、文脈が他の意味を明確に示さない限り、複数形も含むことを意図している。本明細書で使用される「および/または」などの用語は、1つまたは複数のリストされた関連する項目の中の任意の1つまたはそのすべての可能な組み合わせを指すことをさらに理解すべきである。
【0011】
本発明の実施例において、第1、第2、第3などの用語を採用して様々な情報を説明する場合があるが、これら情報は、これら用語によって限定されないことを理解すべきである。これら用語は、ただ、同一のタイプの情報を互いに区別するためにのみ使用される。たとえば、本発明の範囲から逸脱することなく、第1の情報は、第2の情報と呼ばれることもあり、同様に、第2の情報は、第1の情報と呼ばれることもある。なお、使用される「もし」という単語は、「…と」、「…場合」、または、「…ことに応答して」と解釈できる。
【0012】
本発明の実施例は、以下の概念に関する場合がある。
【0013】
フレーム内予測(intra prediction)は、現在ブロックの空間領域隣接ブロック(現在ブロックと同一のフレームに位置する)の再構築ピクセル値を利用して予測エンコードを実行する。すでに複数の種類のフレーム内予測モードが提案されている。DCモード以外の各々のフレーム内予測モードは、いずれも、テクスチャ方向に対応されている。現在ブロックの予測ピクセルは、その予測方向における隣接ブロックの境界再構築ピクセル値から生成できる。たとえば、画像のテクスチャが水平形状を呈すると、水平予測モードを選択して画像情報をより適当に予測できる。
【0014】
フレーム間予測(inter prediction)は、現在ブロックの時間領域隣接ブロック(現在ブロックとは異なるフレームに位置する)の再構築ピクセル値を利用して予測エンコードを実行する。主要なビデオエンコード標準のフレーム間予測部分は、いずれも、ブロックに基づく運動補償技術を採用し、ここで、現在ブロックに対して、参考フレーム内で当該現在ブロックと最も一致するブロックを捜し、当該プロセスは、運動推定(Motion Estimation、ME)と呼ばれる。
【0015】
運動ベクトル(Motion Vector、MV)は、フレーム間予測エンコードにおいて、運動ベクトルを使用して、現在エンコードブロックとその参考フレーム内の最も一致するブロックとの間の相対変位を表す。分割された各々のブロックには、いずれも、デコード側に伝送される該当する運動ベクトルがある。各々のブロックの運動ベクトルに対して個別にエンコードおよび伝送を実行する場合、特に小さなサイズのブロックに分割して実行する場合、非常に多いビットを消費する必要がある。運動ベクトルをエンコードするために使用されるビット数を減らすために、ビデオエンコードでは、隣接画像ブロック同士の間の空間相関性を利用して、隣接するすでにエンコードされたブロックの運動ベクトルに基づいて現在エンコード待ちブロックの運動ベクトルに対して予測を実行した後に、予測差に対してエンコードを実行する。このようにして、運動ベクトルを表すビット数を効果的に減らすことができる。現在画像ブロックの運動ベクトルをエンコードするプロセスにおいて、一般的に、まず、隣接するすでにエンコードされたブロックの運動ベクトルを使用して、現在マクロブロックの運動ベクトルを予測した後、運動ベクトルの予測値(MVP、Motion Vector Prediction)と運動ベクトルの真の推定値との間の差値(MVD、Motion Vector Difference)に対してエンコードを実行することによって、MVのエンコードされたビット数を効果的に減らす。
【0016】
運動情報(Motion Information)は、運動ベクトルが現在画像ブロックのある参考フレーム内のあるブロックに対する変位を表すため、対象となる画像ブロックの情報を正確に取得するために、運動ベクトルに加えて、参考フレームインデックスで現在画像ブロックがどの参考フレームを使用するかを表す必要がある。ビデオエンコード技術において、現在フレームに対して、一般的に、1つの参考フレームリストを構築し、また、参考フレームインデックスを利用して現在画像ブロックが当該参考フレームリストにリストされたどの参考フレームを採用するかを表すことができる。なお、多くのエンコード技術は、さらに複数の参考フレームリストを支援するため、さらに1つのインデックスを利用して、どの参考フレームリストを使用するかを表す必要があり、このインデックスが参考方向と呼ばれることができる。ビデオエンコード技術において、運動ベクトル、参考フレームインデックス、参考方向などの、運動に関連するエンコード情報を運動情報と総称することができる。
【0017】
レート歪み最適化(Rate-Distortion Optimized、RDO)は、ビデオエンコード効率を評価するには、一般的に、ビットレートおよびピーク信号対雑音比(Peak Signal to Noise Ratio、PSNR)のような二つの重要な指標がある。ビットストリームが小さいほど、圧縮率が高くなり、PSNRが大きいほど、再構築画像の品質が向上する。一般的に、両者に対する総合評価に基づいてモードを選択する。たとえば、J(mode)=D+λ*Rのような式に従って、1つのモードに対応するコストを計算することができる。ここで、Dは、歪み(Distortion)を表し、一般的には、再構築画像ブロックと源画像ブロックとの差値の二乗和(SSE)の指標で測定でき、λは、ラグランジュ乗数を表し、Rは、当該モードでの画像ブロックのエンコードに必要な実際のビット数を表し、モード情報、運動情報、残差などのエンコードに必要な合計ビットを含む。RDOの原則を使用してエンコードモードの選択を決定する場合、一般的に良好なエンコード性能を確保できる。
【0018】
図1は、ビデオエンコードのアーキテクチャを概略的に示し、本発明の実施例のエンコード側の処理フローを実現できる。当該ビデオエンコードのアーキテクチャは、フレーム内予測モジュール、運動推定/運動補償モジュール、参考フレームバッファ、インループフィルタリングモジュール、再構築モジュール、変換モジュール、量子化モジュール、逆変換モジュール、逆量子化モジュール、エントロピーエンコードなどを含み得る。同様に、当該ビデオエンコードのアーキテクチャに対応するビデオデコードのアーキテクチャは、本発明の実施例のデコード側の処理フローを実現する。
【0019】
以下、図面を参照して本発明のいくつかの実施例を詳細に説明する。
【0020】
実施例1
【0021】
図2は、本発明の実施例に係るビデオデコード方法のフローチャートである。当該方法は、デコード側に適用され、ステップ201~203を含み得る。
【0022】
ステップ201において、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、ビデオデコーダーにより、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、つまり、現在ブロックを2つの三角サブブロックに分割することができる。
【0023】
ステップ202において、ビデオデコーダーにより、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を取得し、当該第1の目標運動情報は、当該第2の目標運動情報と異なることができる。
【0024】
ステップ203において、ビデオデコーダーにより、第1の目標運動情報および第2の目標運動情報に基づいて現在ブロックに対してデコード処理を実行する。
【0025】
具体的に、ビデオデコーダーは、エンコードされたビットストリームを受信した後、第1の目標運動情報および第2の目標運動情報に基づいて受信したエンコードされたビットストリーム中の現在ブロックに対応するエンコードされたデータに対してデコードを実行することができる。
【0026】
本発明の実施例において、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することによって、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を利用して、現在ブロックに対して予測を実行するため、予測の正確性を向上させ、予測性能を向上させ、エンコード性能を向上させ、エンコード残差を減らすことができる。
【0027】
実施例2
【0028】
図3は、本発明の実施例におけるビデオエンコード方法のフローチャートであり、当該方法は、エンコード側に適用され、ステップ301~303を含み得る。
【0029】
ステップ301において、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、ビデオエンコーダー現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、つまり、現在ブロックを2つの三角サブブロックに分割することができる。
【0030】
ステップ302において、ビデオエンコーダーにより、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を取得し、当該第1の目標運動情報は、当該第2の目標運動情報と異なることができる。
【0031】
ステップ303において、ビデオエンコーダーにより、第1の目標運動情報および第2の目標運動情報に基づいて現在ブロックに対してエンコードされた処理を実行する。
【0032】
具体的に、ビデオエンコーダーは、第1の目標運動情報および第2の目標運動情報に基づいて現在ブロックに対応するビットストリームに対してエンコードを実行してエンコードされたビットストリームを得ることができる。
【0033】
本発明の実施例において、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することによって、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を利用して、現在ブロックに対して予測を実行するため、予測の正確性を向上させ、予測性能を向上させ、エンコード性能を向上させ、エンコード残差を減らすことができる。
【0034】
実施例3
【0035】
ステップ201およびステップ301において、ビデオデコーダー/ビデオエンコーダーは、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たすか否かを判断し、満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、満たさないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。現在ブロックが当該特定条件を満たすか否かを判断することは、現在ブロックが位置している現在フレームのフレームタイプ、現在ブロックの運動情報モード、および/または、現在ブロックのサイズ情報が特定条件を満たすか否かを判断することを含み得る。
【0036】
1例において、現在ブロックが位置している現在フレームのフレームタイプがBフレームまたは非Iフレームであると、フレームタイプが特定条件を満たすと確定することができる。または、現在ブロックが位置している現在フレームのフレームタイプがフレーム内ブロックコピーを許可すると、フレームタイプが特定条件を満たすと確定することができる。
【0037】
1例において、現在ブロックの運動情報モードがマージモードであると、運動情報モードが特定条件を満たすと確定することができる。もちろんながら、現在ブロックの運動情報モードが他のタイプのモード(たとえば高度な運動ベクトル予測(Advanced Motion Vector Prediction、AMVP)モードなど)である場合にも、運動情報モードが特定条件を満たすと確定することができる。
【0038】
1例において、現在ブロックの幅が第1の数値以上であり、且つ、現在ブロックの高さが第2の数値以上であると、現在ブロックのサイズ情報が特定条件を満たすと確定することができる。または、現在ブロックの幅が第3の数値以上であり、または、現在ブロックの高さが第4の数値以上であると、現在ブロックのサイズ情報が特定条件を満たすと確定することができる。または、現在ブロックの幅が第5の数値以上であり、且つ、第6の数値以下であり、また、現在ブロックの高さが第7の数値以上であり、且つ、第8の数値以下であると、現在ブロックのサイズ情報が特定条件を満たすと確定することができる。または、現在ブロックの幅が第9の数値以上であり、且つ、第10の数値以下であり、または、現在ブロックの高さが第11の数値以上であり、且つ、第12の数値以下であると、現在ブロックのサイズ情報が特定条件を満たすと確定することができる。または、現在ブロックの幅が第13の数値以上であり、且つ、第14の数値以下であり、現在ブロックの高さが第15の数値以上であり、且つ、第16の数値以下であり、また、現在ブロックの面積が第17の数値以上であり、且つ、第18の数値以下であると、現在ブロックのサイズ情報が特定条件を満たすと確定することができる。
【0039】
上記各数値は、いずれも、経験に基づいて設定することができ、たとえば、8、16、32、64、128などに設定することができる。可能な1実現形態において、第1の数値は8であり、第2の数値は8であり、第3の数値は8であり、第4の数値は8であり、第5の数値は8であり、第6の数値は128であり、第7の数値は8であり、第8の数値は128であり、第9の数値は8であり、第10の数値は32であり、第11の数値は8であり、第12の数値は32であり、第13の数値は8であり、第14の数値は64であり、第15の数値は8であり、第16の数値は64であり、第17の数値は16であり、第18の数値は1024であることができる。
【0040】
以下、ステップ201およびステップ301に関して、いくつかの具体的な例を説明する。
【0041】
例1において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0042】
現在フレームがBフレームであり、すなわち、現在フレームが、2つの参考フレームリストが存在することを許可することと、
【0043】
現在ブロックの運動情報モードがマージモードであることと、
【0044】
現在ブロックの面積(幅*高さ)がN*N以上であり、たとえばNが8であることと、を含む。
【0045】
例2において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0046】
現在フレームが非Iフレームであり、すなわち、現在フレームが少なくとも1つの参考フレームリストが存在することを許可することと、
【0047】
現在ブロックの運動情報モードがマージモードであることと、
【0048】
現在ブロックの面積(幅*高さ)がN*N以上であり、たとえばNが8であることと、を含む。
【0049】
例3において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0050】
現在フレームがBフレームであり、すなわち、現在フレームが2つの参考フレームリストが存在することを許可することと、
【0051】
現在ブロックの運動情報モードがマージモードであることと、
【0052】
現在ブロックの幅または高さがN以上であり、たとえばNが8であることと、を含む。
【0053】
例4において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0054】
現在フレームが非Iフレームであり、すなわち、現在フレームが少なくとも1つの参考フレームリストが存在することを許可することと、
【0055】
現在ブロックの運動情報モードがマージモードであることと、
【0056】
現在ブロックの幅または高さがN以上であり、たとえばNが8であることと、を含む。
【0057】
例5において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0058】
現在フレームが非Iフレームであり、すなわち、現在フレームが少なくとも1つの参考フレームリストが存在することを許可することと、
【0059】
現在ブロックの運動情報モードがマージモードであることと、
【0060】
現在ブロックの幅または高さがN以上であり、たとえばNが8であることと、
【0061】
現在ブロックの幅または高さがM以下であり、Mはたとえば128であることと、を含む。
【0062】
例6において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0063】
現在フレームが非Iフレームであり、すなわち、現在フレームが少なくとも1つの参考フレームリストが存在することを許可することと、
【0064】
現在ブロックの運動情報モードがマージモードであることと、
【0065】
現在ブロックの幅または高さがN以上であり、たとえばNが8であることと、
【0066】
現在ブロックの面積(すなわち、幅*高さ)がM*M以下であり、Mはたとえば32であることと、を含む。
【0067】
例7において、現在ブロックが以下のすべての条件を満たすと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割し、そうではないと、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。当該すべての条件は、
【0068】
現在フレームが非Iフレームであり、すなわち、現在フレームが少なくとも1つの参考フレームリストが存在することを許可することと、
【0069】
現在ブロックの運動情報モードがマージモードであることと、
【0070】
現在ブロックの幅が[Wmin、Wmax]の範囲内にあり、WmiNはたとえば8であり、Wmaxはたとえば64であることと、
【0071】
現在ブロックの高さが[Hmin、Hmax]の範囲内にあり、HmiNはたとえば8であり、Hmaxはたとえば64であることと、
【0072】
現在ブロックの面積(すなわち、幅*高さ)が[Smin、Smax]の範囲内にあり、Sminはたとえば16であり、Smaxはたとえば1024であることと、含む。
【0073】
例8において、例1乃至例7の中の任意の1つの例に対して、フレームタイプに関する限定条件を、現在フレームがフレーム内ブロックコピーを採用することを許可することに修正することができる(すなわち、現在フレームのすでにデコードされた再構築ブロック内で現在ブロックに類似したブロックを検索することを許可すること)。たとえば、例1に対する修正後の条件は、
【0074】
現在フレームがフレーム内ブロックコピーを採用することを許可することと、
【0075】
現在ブロックの運動情報モードがマージモードであることと、
【0076】
現在ブロックの面積(幅*高さ)がN*N以上であり、たとえばNが8であることと、を含む。
【0077】
例9において、例1乃至例8の中の任意の1つの例に対して、運動情報モードに関する限定条件を、現在ブロックの運動情報モードがマージモードであり、且つ、サブブロック分割モード、フレーム内およびフレーム間ジョイント予測に基づくマルチ仮説モード、エンコード運動情報差のマージモードの中の任意の1種を採用しないことに修正することができる。つまり、現在ブロックに対して、サブブロック分割モード、フレーム内およびフレーム間ジョイント予測に基づくマルチ仮説モード、エンコード運動情報差のマージモードの中の任意の1種のモードをオンにすると、現在ブロック不が特定条件を満たすと確定するため、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割しない。
【0078】
実施例4
【0079】
ステップ201およびステップ301において、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たす同時に、三角形幾何学的分割モードを呼び出すと決定されると、ビデオデコーダー/ビデオエンコーダーは、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割する。具体的に、
図4Aに示すように、第1の対角法(すなわち、水平右向きの方向と鋭角(たとえば45度の夾角)を形成する対角線)に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができる。または、
図4Bに示すように、第2の対角法(すなわち、水平右向きの方向と鈍角(たとえば135度の夾角)を形成する対角線)に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができる。
【0080】
たとえば、デコード側/エンコード側において、以下の方式を採用して、現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができる。
【0081】
方式1において、ビデオエンコーダーにより、デフォルトで第1の対角法に従って現在ブロックの分割を実行することをプロトコル合意し、ビデオデコーダーにより、デフォルトで第1の対角法に従って現在ブロックの分割を実行することをプロトコル合意する。これに基づいて、ビデオエンコーダーは、第1の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができ、ビデオデコーダーは、第1の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができる。
【0082】
方式2において、ビデオエンコーダーにより、デフォルトで第2の対角法に従って現在ブロックの分割を実行することをプロトコル合意し、ビデオデコーダーにより、デフォルトで第2の対角法に従って現在ブロックの分割を実行することをプロトコル合意する。これに基づいて、ビデオエンコーダーは、第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができ、ビデオデコーダーは、第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割することができる。
【0083】
方式3において、ビデオエンコーダーにより、第1の対角法に従う分割に対応するレート歪みコスト1、および、第2の対角法に従う分割に対応するレート歪みコスト2を確定する。レート歪みコスト1がレート歪みコスト2よりも小さいと、ビデオエンコーダー第1の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割する。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第1の対角法に従って現在ブロックの分割を実行するように指示するための第1の指示情報を含む。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第1の指示情報を含むと、第1の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割する。他方、レート歪みコスト1がレート歪みコスト2よりも大きいと、ビデオエンコーダーは、第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割する。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第2の対角法に従って現在ブロックの分割を実行するように指示するための第2の指示情報を含む。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第2の指示情報を含むと、第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割する。
【0084】
実施例5
【0085】
ステップ202およびステップ302において、ビデオデコーダー/ビデオエンコーダーは、以下の方式を採用して、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を取得することができる。
【0086】
方式1において、第1の候補運動情報リストを構築し、当該第1の候補運動情報リストは、複数の候補運動情報を含むことができ、当該第1の候補運動情報リスト内から1つの候補運動情報を第1の三角サブブロックの第1の目標運動情報として選択し、当該第1の候補運動情報リスト内から第1の目標運動情報を排除し、当該第1の候補運動情報リスト内の残りの候補運動情報の中から1つの候補運動情報を第2の三角サブブロックの第2の目標運動情報として選択し、このようにして、当該第1の目標運動情報と当該第2の目標運動情報とが異なるように確保することができる。
【0087】
1例において、第1の候補運動情報リストを構築するために、現在ブロックに対応する各々の候補ブロックを取得し、各々の候補ブロックの運動情報を第1の候補運動情報リスト内に追加することができ、ここで、候補ブロックが単一方向予測ブロックであると、候補ブロックの運動情報は候補ブロックの単一方向運動情報を含み、候補ブロックが双方向予測ブロックであると、候補ブロックの運動情報は候補ブロックの第1の運動情報(すなわち、候補ブロックのL0運動情報)および/または候補ブロックの第2の運動情報(すなわち、候補ブロックのL1運動情報)を含むが、候補ブロックの第1の運動情報と候補ブロックの第2の運動情報の加重運動情報を含まない。
【0088】
たとえば、
図5Aを参照すると、示している7個の位置のブロックを現在ブロックに対応する候補ブロックに設定することができ、ここで、ブロック1、ブロック2、ブロック3、ブロック4、および、ブロック5は、現在フレーム内の候補ブロック(すなわち、空間領域候補ブロック)であり、ブロック6およびブロック7は、参考フレーム内の候補ブロック(すなわち、時間領域候補ブロック)である。この7個の位置の候補ブロックの運動情報を収集して第1の候補運動情報リストを構築することができる。第1の候補運動情報リストの長さが所定の最大長さMaxL(たとえば7である)に達しないと、第1の候補運動情報リストの最後に、いくつかの利用可能な空間領域非隣接サブブロックの運動情報(すなわち、空間領域非隣接サブブロックも現在ブロックに対応する候補ブロックとする)を追加することができる。空間領域非隣接サブブロックとは、現在ブロックと境界線または境界点がないサブブロックを指す。
【0089】
1例において、候補ブロックの運動情報を収集した後に、単一方向運動情報、双方向予測のL0運動情報、双方向予測のL1運動情報の順序、または、双方向予測のL0運動情報、双方向予測のL1運動情報、単一方向運動情報の順序に従って、収集した運動情報をソートし、ソート結果に従って収集した運動情報を1つずつ第1の候補運動情報リスト内に追加する。
【0090】
1例において、第1の候補運動情報リスト内に運動情報を追加するたびに、第1の候補運動情報リスト内の候補運動情報の数量が上限値Mに達したか否かを判断することができる。上限値Mに達した場合、運動情報の追加を拒否して、運動情報の追加プロセスを終了する。上限値Mに達しない場合、運動情報の追加を続行することができ、現在の運動情報の追加が完了した後に、継続して、第1の候補運動情報リストに次の1つの運動情報を追加する。上限値Mの値は、経験に基づいて設定でき、たとえば5である。
【0091】
1例において、第1の候補運動情報リスト内に運動情報を追加するたびに、当該運動情報と第1の候補運動情報リスト内のすでに存在する運動情報とが重複されるか否かを判断することができ、重複されると、当該運動情報を第1の候補運動情報リスト内に追加することを拒否し、重複されないと、当該運動情報を第1の候補運動情報リスト内に追加し、このようにして、第1の候補運動情報リスト内に同一の2つの運動情報が存在することを回避することができる。または、追加待ちの運動情報が第1の候補運動情報リスト内のすでに存在する運動情報と重複されるか否かを判断せずに、直接当該運動情報を第1の候補運動情報リスト内に追加することができる。
【0092】
1例において、収集したすべての運動情報を全部第1の候補運動情報リスト内に追加した後、第1の候補運動情報リスト内の候補運動情報の数量が上限値Mよりも小さいと、ゼロ運動情報を使用して第1の候補運動情報リストを充填することができる。
【0093】
1例において、第1の候補運動情報リストを構築するときに、現在ブロックの候補ブロックの運動情報を収集するたびに、前記候補ブロックの運動情報がすでに現在ブロックによって収集された運動情報と一致するか否かを比較せずに、直接前記候補ブロックの運動情報を収集することができる。
【0094】
以下、方式1中の第1の候補運動情報リストを構築するいくつかの例を説明する。
【0095】
例1において、現在ブロックに対応する候補ブロックの中から、
図5Aに示した位置順序に従って、運動情報(たとえば運動ベクトル)を取得した後、単一方向運動ベクトル、双方向予測のL0運動ベクトル、双方向予測のL1運動ベクトル(双方向予測なしのL0運動ベクトルとL1運動ベクトルとの平均値)の順序に従って、取得した運動情報をソートし、ソート結果に従って取得した運動情報を1つずつ第1の候補運動情報リスト内に追加する。充填プロセスにおいて、第1の候補運動情報リスト内の候補運動情報の数量がM(たとえば5である)に達すると、充填を停止する。充填プロセスで、第1の候補運動情報リスト内に同一の運動情報がないように確保するために、重複チェックを継続的に実行する必要がある。当該充填プロセスが完了した後に当該候補運動情報の数量がMよりも小さいと、零運動ベクトルを使用して充填する。
【0096】
例2において、現在ブロックに対応する候補ブロックの中から、
図5Aに示した位置順序に従って、運動情報(たとえば運動ベクトル)を取得した後、単一方向運動ベクトル、双方向予測のL0運動ベクトル、双方向予測のL1運動ベクトル(双方向予測なしのL0運動ベクトルとL1運動ベクトルとの平均値)の順序に従って、取得した運動情報をソートし、ソート結果に従って取得した運動情報を1つずつ第1の候補運動情報リスト内に追加する。充填プロセスにおいて、第1の候補運動情報リスト内の候補運動情報の数量がM(たとえば5である)に達すると、運動情報の充填プロセスを停止する。充填プロセスにおいて、第1の候補運動情報リスト内の運動情報に対して重複チェックを実行する必要がない。当該充填プロセスが完了した後に当該候補運動情報の数量がMよりも小さいと、零運動ベクトルを使用して充填する。
【0097】
例3において、現在ブロックに対応する候補ブロックの中から、
図5Aに示した位置順序に従って、運動情報(たとえば運動ベクトル)を取得した後、双方向予測のL0運動ベクトル、双方向予測のL1運動ベクトル、単一方向運動ベクトル(双方向予測なしのL0運動ベクトルとL1運動ベクトルとの平均値)の順序に従って、取得した運動情報をソートし、ソート結果に従って取得した運動情報を1つずつ第1の候補運動情報リスト内に追加する。充填プロセスにおいて、第1の候補運動情報リスト内の候補運動情報の数量がM(たとえば5である)に達すると、充填を停止する。充填プロセスで、第1の候補運動情報リスト内に同一の運動情報がないように確保するために、重複チェックを継続的に実行する必要がある。当該充填プロセスが完了した後に当該候補運動情報の数量がMよりも小さいと、零運動ベクトルを使用して充填する。
【0098】
例4において、現在ブロックに対応する候補ブロックの中から、
図5Aに示した位置順序に従って、運動情報(たとえば運動ベクトル)を取得する。候補ブロックが単一方向予測ブロックであると、すなわち候補ブロックが単一方向運動情報を採用すると、直接単一方向運動情報を順序に従って第1の候補運動情報リスト内に追加する。候補ブロックが双方向予測ブロックであると、すなわち候補ブロックが双方向運動情報を採用すると、L0運動情報またはL1運動情報を選択して順序に従って第1の候補運動情報リスト内に追加する。充填プロセスにおいて、第1の候補運動情報リスト内の候補運動情報の数量がM(たとえば5である)に達すると、充填を停止する。充填プロセスで、第1の候補運動情報リスト内に同一の運動情報がないように確保するために、重複チェックを継続的に実行する必要がある。当該充填プロセスが完了した後に当該候補運動情報の数量がMよりも小さいと、零運動ベクトルを使用して充填する。
【0099】
例5において、
図5Aに示したすべての候補ブロックをトラバースした後に構築された第1の候補運動情報リストの長さが所定の最大長さMaxL(たとえば7である)に達しないと、当該第1の候補運動情報リストの最後にいくつかの利用可能な空間領域非隣接サブブロックの運動情報をさらに追加し、ここで、空間領域非隣接サブブロックは、現在ブロックと境界線または境界点がないサブブロックを指す。
【0100】
例6において、現在ブロックに対応する候補ブロックの中から、
図5Aに示した位置順序に従って、運動情報(たとえば運動ベクトル)を取得した後、単一方向運動ベクトル、双方向予測のL0運動ベクトル、双方向予測のL1運動ベクトル(双方向予測なしのL0運動ベクトルとL1運動ベクトルとの平均値)の順序に従って、取得した運動情報をソートし、ソート結果に従って取得した運動情報を1つずつ第1の候補運動情報リスト内に追加する。充填プロセスにおいて、第1の候補運動情報リスト内の候補運動情報の数量がM(たとえば5である)に達すると、運動情報の充填プロセスを停止する。充填プロセスで、単一方向運動ベクトル、および、双方向予測のL0運動ベクトルに対しては、第1の候補運動情報リスト内に同一の運動情報がないように確保するために、第1の候補運動情報リスト内のすでに存在する運動情報と重複チェック処理を実行する必要があるが、双方向予測のL1運動ベクトルに対しては、第1の候補運動情報リスト内の運動情報がより多いし、重複チェックのコストがより高い(第1の候補運動情報リスト内のすべての運動情報と比較する必要がある)ことを考慮して、重複チェック処理を実行しない。
【0101】
例7において、第1の候補運動情報リスト内に運動情報を追加する場合、2つのプロセスに関わり、その1つのプロセスは、運動情報収集プロセスであり、すなわち、候補ブロックの運動情報を収集するプロセスであり、もう1つのプロセスは、運動情報追加プロセスであり、すなわち、運動情報を第1の候補運動情報リスト内に追加するプロセスである。以下、運動情報収集プロセスの実施例を説明する。
【0102】
候補ブロックの運動情報を収集するプロセスにおいて、現在候補ブロックの運動情報とこの前にすでに収集の運動情報とが完全に同一であるか否かを比較し、完全に同一であると、現在候補ブロックの運動情報の収集するプロセスをスキップする。本実施例において、現在候補ブロックの運動情報と現在候補ブロックからより近い候補ブロックの運動情報とをのみ比較することができる。
【0103】
たとえば、
図5Aを参照すると、まず、候補ブロック1の運動情報を収集する。候補ブロック1が1番目の候補ブロックであるため、比較を実行する必要がなく、直接候補ブロック1の運動情報を収集する。
【0104】
この後、候補ブロック2の運動情報を収集するときに、候補ブロック1が利用可能か否かを判断することができる。利用可能であると、候補ブロック2の運動情報と候補ブロック1の運動情報とが完全に同一であるか否かを比較することができる。完全に同一であると、候補ブロック2の運動情報の収集を実行しないし、完全に同一でないと、候補ブロック2の運動情報の収集を実行する。
【0105】
この後、候補ブロック3の運動情報を収集するときに、候補ブロック3からより近い候補ブロック2が利用可能か否かを判断することができる。利用可能であると、候補ブロック3の運動情報と候補ブロック2の運動情報とが完全に同一であるか否かを比較することができる。完全に同一であると、候補ブロック3の運動情報の収集を実行しないし、完全に同一でないと、候補ブロック3の運動情報の収集を実行する。ここで、これからは候補ブロック3の運動情報と候補ブロック3からより遠い候補ブロック1の運動情報とを比較しないことに注目する必要がある。
【0106】
この後、候補ブロック4の運動情報を収集するときに、候補ブロック4からより近い候補ブロック1が利用可能か否かを判断することができる。利用可能であると、候補ブロック4の運動情報と候補ブロック1の運動情報とが完全に同一であるか否かを比較することができる。完全に同一であると、候補ブロック4の運動情報の収集を実行しないし、完全に同一でないと、候補ブロック4の運動情報の収集を実行する。ここで、これからは候補ブロック4の運動情報と候補ブロック4からより遠い候補ブロック2、3の運動情報とを比較しないことに注目する必要がある。
【0107】
この後、候補ブロック5の運動情報を収集するときに、候補ブロック5からより近い候補ブロック1が利用可能か否かを判断することができる。利用可能であると、候補ブロック5の運動情報と候補ブロック1の運動情報とが完全に同一であるか否かを比較することができる。完全に同一であると、候補ブロック5の運動情報の収集を実行しない。完全に同一でないと、候補ブロック5からより近い候補ブロック2が利用可能か否かを判断することができる。利用可能であると、候補ブロック5の運動情報と候補ブロック2の運動情報とが完全に同一であるか否かを比較することができる。完全に同一であると、候補ブロック5の運動情報の収集を実行しないし、完全に同一でないと、候補ブロック5の運動情報の収集を実行する。ここで、これからは候補ブロック5の運動情報と候補ブロック5からより遠い候補ブロック3、4の運動情報とを比較しないことに注目する必要がある。
【0108】
例8において、候補ブロックの運動情報を収集するプロセスにおいて、現在候補ブロックの運動情報とこの前にすでに収集の運動情報とが完全に同一であるか否かを比較する必要がなく、直接現在候補ブロックの運動情報を収集する。すなわち、現在候補ブロックの運動情報がこの前にすでに収集の運動情報と完全に同一であっても、後続で重複チェック操作を通じて第1の候補運動情報リスト内に同一の運動情報が存在することを回避することができる。
【0109】
以下、方式1においての第1の候補運動情報リスト内から1つの候補運動情報を第1の三角サブブロックの第1の目標運動情報として選択するプロセスを説明する。
【0110】
方式a1において、ビデオエンコーダーは、プロトコル合意を通じて第1の目標運動情報をデフォルトにすることができ、たとえば、ビデオエンコーダーは、第1の三角サブブロックの第1の目標運動情報として、第1の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。ビデオデコーダーは、プロトコル合意を通じて第1の目標運動情報をデフォルトにすることができ、たとえば、ビデオデコーダーは、第1の三角サブブロックの第1の目標運動情報として、第1の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。
【0111】
方式a2において、ビデオエンコーダーは、第1の候補運動情報リスト内の各々の候補運動情報に対応するレート歪みコストを確定し、最小レート歪みコストに対応する候補運動情報を第1の三角サブブロックの第1の目標運動情報として使用することができる。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第3の指示情報を含み得、第3の指示情報は、第1の目標運動情報の第1の候補運動情報リストにおけるインデックス値を指示するために使用される。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第3の指示情報を含むと、第3の指示情報が指示するインデックス値を利用して、第1の候補運動情報リスト内から対応する候補運動情報を検索し、当該候補運動情報を第1の目標運動情報として使用することができる。
【0112】
以下、方式1においての第1の候補運動情報リスト内から1つの候補運動情報を第2の三角サブブロックの第2の目標運動情報として選択するプロセスを説明する。
【0113】
方式b1において、ビデオエンコーダーは、プロトコル合意を通じて第2の目標運動情報をデフォルトにすることができ、たとえば、ビデオエンコーダーは、第2の三角サブブロックの第2の目標運動情報として、第1の候補運動情報リスト内の第2の個の候補運動情報をデフォルトにすることができる。ビデオデコーダーは、プロトコル合意を通じて第2の目標運動情報をデフォルトにすることができ、たとえば、ビデオデコーダーは、第2の三角サブブロックの第2の目標運動情報として、第1の候補運動情報リスト内の第2の個の候補運動情報をデフォルトにすることができる。
【0114】
方式b2において、ビデオエンコーダーは、第1の候補運動情報リスト内から第1の目標運動情報を排除し(すなわち、第1の候補運動情報リスト内の第1の目標運動情報を選択しない)、これに基づいて、ビデオエンコーダーは、第1の候補運動情報リスト内の残りの各々の候補運動情報(すなわち、第1の目標運動情報を排除した後の残りの候補運動情報)に対応するレート歪みコストを確定し、最小レート歪みコストに対応する候補運動情報を第2の三角サブブロックの第2の目標運動情報として使用することができる。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第4の指示情報を含み得、第4の指示情報は、第2の目標運動情報の第1の候補運動情報リストにおけるインデックス値を指示するために使用される。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第4の指示情報を含むと、第4の指示情報が指示するインデックス値を利用して、第1の候補運動情報リスト内から対応する候補運動情報を検索し、当該候補運動情報を第2の目標運動情報として使用する。
【0115】
実施例6
【0116】
ステップ202およびステップ302において、ビデオデコーダー/ビデオエンコーダーは、以下の方式を採用して、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を取得することができる。
【0117】
方式2において、第1の三角サブブロックに対応する第2の候補運動情報リストを構築し、第2の三角サブブロックに対応する第3の候補運動情報リストを構築し、第2の候補運動情報リストは、複数の候補運動情報を含み、第3の候補運動情報リストは、複数の候補運動情報を含み、第2の候補運動情報リスト内から1つの候補運動情報を第1の三角サブブロックの第1の目標運動情報として選択し、第3の候補運動情報リスト内から1つの候補運動情報を第2の三角サブブロックの第2の目標運動情報として選択し、第1の目標運動情報は、第2の目標運動情報と異なる。
【0118】
1例において、第1の三角サブブロックに対応する第2の候補運動情報リストを構築するために、第1の三角サブブロックに対応する各々の第1の候補ブロックを取得し、各々の第1の候補ブロックの運動情報を第2の候補運動情報リスト内に追加することができ、ここで、第1の候補ブロックが単一方向予測ブロックであると、第1の候補ブロックの運動情報は第1の候補ブロックの単一方向運動情報を含み、第1の候補ブロックが双方向予測ブロックであると、第1の候補ブロックの運動情報は、第1の候補ブロックの第1の運動情報(すなわち、第1の候補ブロックのL0運動情報)および/または第1の候補ブロックの第2の運動情報(すなわち、第1の候補ブロックのL1運動情報)を含むが、第1の候補ブロックの第1の運動情報および第1の候補ブロックの第2の運動情報の加重運動情報を含まない。
【0119】
1例において、第2の三角サブブロックに対応する第3の候補運動情報リストを構築するために、第2の三角サブブロックに対応する各々の第2の候補ブロックを取得し、各々の第2の候補ブロックの運動情報を第3の候補運動情報リスト内に追加することができ、ここで、第2の候補ブロックが単一方向予測ブロックであると、第2の候補ブロックの運動情報は第2の候補ブロックの単一方向運動情報を含み、第2の候補ブロックが双方向予測ブロックであると、第2の候補ブロックの運動情報は、第2の候補ブロックの第1の運動情報(すなわち、第2の候補ブロックのL0運動情報)および/または第2の候補ブロックの第2の運動情報(すなわち、第2の候補ブロックのL1運動情報)を含むが、第2の候補ブロックの第1の運動情報および第2の候補ブロックの第2の運動情報の加重運動情報を含まない。
【0120】
第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割すると、第1の三角サブブロックは、右上側の三角サブブロックであり、第2の三角サブブロックは、左下側の三角サブブロックである。これに基づいて、第1の三角サブブロックに対応する第1の候補ブロックは、現在ブロックの上側の隣接ブロック、および、現在ブロックが位置している現在フレーム以外の他のフレーム内の時間領域候補ブロックを含み得るが、これらに限定されない。第2の三角サブブロックに対応する第2の候補ブロックは、現在ブロックの左側の隣接ブロック、および、現在ブロックが位置している現在フレーム以外の他のフレーム内の時間領域候補ブロックを含み得るが、これらに限定されない。
【0121】
たとえば、
図5Bに示した5個の位置のブロックを第1の三角サブブロックに対応する第1の候補ブロックとして使用することができ、ここで、ブロック2、ブロック3、および、ブロック5は、現在フレーム内の候補ブロックであり、ブロック6、および、ブロック7は、他のフレーム内の候補ブロック(すなわち、時間領域候補ブロック)である。
図5Cに示した5個の位置のブロックを第2の三角サブブロックに対応する第2の候補ブロックとして使用することができ、ここで、ブロック1、ブロック4、および、ブロック5は、現在フレーム内の候補ブロックであり、ブロック6、および、ブロック7は、他のフレーム内の候補ブロック(すなわち、時間領域候補ブロック)である。
【0122】
1例において、候補ブロックの運動情報を収集することができる。候補ブロックが単一方向予測ブロックであると、候補ブロックの運動情報は候補ブロックの単一方向運動情報を含み、候補ブロックが双方向予測ブロックであると、候補ブロックの運動情報は、候補ブロックのL0運動情報および/または候補ブロックのL1運動情報を含むが、候補ブロックのL0運動情報および候補ブロックのL1運動情報の加重運動情報を含まない。
【0123】
1例において、候補ブロック(たとえば
図5Bまたは
図5Cに示すようである)の運動情報を収集した後、単一方向運動情報、双方向予測のL0運動情報、双方向予測のL1運動情報の順序に従って、収集した運動情報をソートし、ソート結果に従って各々の運動情報を順に第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加することができる。または、双方向予測のL0運動情報、双方向予測のL1運動情報、単一方向運動情報の順序に従って、収集した運動情報をソートし、ソート結果に従って各々の運動情報を順に第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加することができる。
【0124】
1例において、第2の候補運動情報リストまたは第3の候補運動情報リスト内に運動情報を追加するたびに、第2の候補運動情報リストまたは第3の候補運動情報リスト内の運動情報の数量が上限値Mに達したか否かを判断することができる。上限値Mに達した場合は、運動情報の追加を拒否し、運動情報の追加プロセスを終了する。上限値Mに達しない場合は、運動情報の追加を続行し、現在の運動情報の追加が完了された後、第2の候補運動情報リストまたは第3の候補運動情報リストへの次の1つの運動情報の追加を続行する。上限値Mは、たとえば4である。
【0125】
1例において、第2の候補運動情報リストまたは第3の候補運動情報リスト内に運動情報を追加するたびに、当該運動情報が第2の候補運動情報リストまたは第3の候補運動情報リスト内のすでに存在する運動情報と重複されるか否かを判断することができる。重複されると、当該運動情報を第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加することを拒否し、重複されないと、当該運動情報を第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加することができる。このようにして、第2の候補運動情報リストまたは第3の候補運動情報リストに重複する運動情報が存在することを回避することができる。または、運動情報が重複されるか否かを判断しなくて、直接運動情報を第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加することができる。
【0126】
1例において、収集した運動情報を全部第2の候補運動情報リストまたは第3の候補運動情報リスト内に追加した後に、第2の候補運動情報リストまたは第3の候補運動情報リスト内の候補運動情報の数量が上限値Mよりも小さいと、ゼロ運動情報を使用して第2の候補運動情報リストまたは第3の候補運動情報リストを充填することができる。
【0127】
1例において、第2の候補運動情報リストまたは第3の候補運動情報リストを構築するときに、現在ブロックの候補ブロックの運動情報を収集するたびに、前記候補ブロックの運動情報がすでに現在ブロックによって収集された運動情報と一致するか否かを比較せずに、直接前記候補ブロックの運動情報を収集することができる。
【0128】
上記の実施例5の例1乃至例8は、さらに、実施例6にも適用され、ただ、第1の候補運動情報リストが第2の候補運動情報リストまたは第3の候補運動情報リストに変われ、候補ブロックが
図5Aに示した候補ブロックから
図5Bまたは
図5Cに示した候補ブロックに変われただけであり、他のプロセスは類似であるため、ここで繰り返して説明しないことに注目する必要がある。
【0129】
以下、方式2においての第2の候補運動情報リスト内から1つの候補運動情報を第1の三角サブブロックの第1の目標運動情報として選択するプロセスを説明する。
【0130】
方式c1において、ビデオエンコーダーは、プロトコル合意を通じて第1の目標運動情報をデフォルトにすることができ、たとえば、ビデオエンコーダーは、第1の三角サブブロックの第1の目標運動情報として第2の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。ビデオデコーダーは、プロトコル合意を通じて第1の目標運動情報をデフォルトにすることができ、たとえば、ビデオデコーダーは、第1の三角サブブロックの第1の目標運動情報として第2の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。
【0131】
方式c2において、ビデオエンコーダーは、第2の候補運動情報リスト内の各々の候補運動情報に対応するレート歪みコストを確定することができ、最小レート歪みコストに対応する候補運動情報を第1の三角サブブロックの第1の目標運動情報として使用することができる。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第5の指示情報を含み得、第5の指示情報は、第1の目標運動情報の第2の候補運動情報リストにおけるインデックス値を指示するために使用される。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第5の指示情報を含むと、第5の指示情報が指示するインデックス値を利用して、第2の候補運動情報リスト内から対応する候補運動情報を検索し、当該候補運動情報を第1の目標運動情報として使用することができる。
【0132】
以下、方式2においての第3の候補運動情報リスト内から1つの候補運動情報を第2の三角サブブロックの第2の目標運動情報として選択するプロセスを説明する。
【0133】
方式d1において、ビデオエンコーダーは、プロトコル合意を通じて第2の目標運動情報をデフォルトにすることができ、たとえば、ビデオエンコーダーは、第2の三角サブブロックの第2の目標運動情報として、第3の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。ビデオデコーダーは、プロトコル合意を通じて第2の目標運動情報をデフォルトにすることができ、たとえば、デコード側は、第2の三角サブブロックの第2の目標運動情報として、第3の候補運動情報リスト内の1番目の候補運動情報をデフォルトにすることができる。
【0134】
方式d2において、ビデオエンコーダーは、第3の候補運動情報リスト内の各々の候補運動情報に対応するレート歪みコストを確定することができ、最小レート歪みコストに対応する候補運動情報を第2の三角サブブロックの第2の目標運動情報として使用することができる。ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第6の指示情報を含み得、第6の指示情報は、第2の目標運動情報の第3の候補運動情報リストにおけるインデックス値を指示するために使用される。ビデオデコーダーは、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第6の指示情報を含むと、第6の指示情報が指示するインデックス値を利用して、第3の候補運動情報リスト内から対応する候補運動情報を検索し、当該候補運動情報を第2の目標運動情報として使用する。
【0135】
実施例7
【0136】
ステップ201/ステップ301において第1の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割すると、ステップ202/ステップ302において第1の候補運動情報リストを構築し、第1の候補運動情報リストに基づいて第1の目標運動情報および第2の目標運動情報を確定することができ、すなわち、実施例5を採用することができる。ステップ201/ステップ301において第2の対角法に従って現在ブロックを第1の三角サブブロックと第2の三角サブブロックとに分割すると、ステップ202/ステップ302において第1の三角サブブロックに対応する第2の候補運動情報リストを構築し、第2の三角サブブロックに対応する第3の候補運動情報リストを構築し、第2の候補運動情報リストに基づいて第1の目標運動情報を確定し、第3の候補運動情報リストに基づいて第2の目標運動情報を確定することができ、すなわち、実施例6を採用することができる。
【0137】
1例において、第1の対角法に従って現在ブロックを分割するか、第2の対角法に従って現在ブロックを分割するかに関わらず、いずれも、実施例5を採用することができる。もう1例において、第1の対角法に従って現在ブロックを分割すると、すなわち、45度の方向に従って現在ブロックを分割すると、実施例5を採用することができ、上限値Mはたとえば4である。第2の対角法に従って現在ブロックを分割すると、すなわち、135度の方向に従って現在ブロックを分割すると、実施例6を採用することができる。
【0138】
実施例6を参照すると、第1の三角サブブロックは、右上側の三角サブブロックである。
図5Bに示すように、第1の三角サブブロックの第1の候補ブロックは、順に、ブロック2、ブロック3、ブロック5、ブロック6、および、ブロック7であり、すなわち、第1の三角サブブロックからより遠いブロック1およびブロック4を排除する。
図5Cに示すように、第2の三角サブブロックの第2の候補ブロックは、順に、ブロック1、ブロック4、ブロック5、ブロック6、および、ブロック7であり、すなわち、第2の三角サブブロックからより遠いブロック2およびブロック3を排除する。なお、上限値Mは、たとえば4であり得る。
【0139】
1例において、1つのフラグビットをエンコードして45度の角度で分割するか135度の角度で分割するかを示すことができる。45度の角度で分割すると、切り捨てられた単一コードでM*(M-1)個の組み合わせのインデックスをエンコードすることができ、135度の角度で分割すると、切り捨てられた単一コードでM*M個の組み合わせのインデックスをエンコードすることができる。具体的に、45度の角度で分割し、実施例5を採用すると(すなわち、第1の候補運動情報リスト内から第1の目標運動情報および第2の目標運動情報を選択する)、第1の候補運動情報リスト内にM個の(Mはたとえば4である)候補運動情報が存在するため、第1の目標運動情報はM種の可能の選択があり、第1の候補運動情報リスト内から第1の目標運動情報を排除した後、第2の目標運動情報は(M-1)種の可能の選択があるため、運動情報インデックスは、M*(M-1)個の組み合わせのインデックスである。135度の角度で分割し、実施例6を採用すると(すなわち、第2の候補運動情報リスト内から第1の目標運動情報を選択し、第3の候補運動情報リスト内から第2の目標運動情報を選択する)、第2の候補運動情報リスト内にM個の(Mはたとえば4である)候補運動情報が存在するため、第1の目標運動情報はM種の可能の選択があり、第3の候補運動情報リスト内にM個の(Mはたとえば4である)候補運動情報が存在するため、第2の目標運動情報はM種の可能の選択があり、したがって、運動情報インデックスは、M*M個の組み合わせのインデックスである。
【0140】
実施例8
【0141】
第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報を取得した後、さらに、第1の目標運動情報および第2の目標運動情報に基づいて、以下の方式に従って第1の三角サブブロックおよび第2の三角サブブロックに対して運動補償を実行することができる。
【0142】
方式1において、現在ブロックを複数のサブブロックに分割し、各々のサブブロックの幅はいずれも2以上であり、各々のサブブロックの高さはいずれも2以上である。各々のサブブロックごとに、前記サブブロックが第1の三角サブブロック内に位置すると、第1の三角サブブロックの第1の目標運動情報に基づいて前記サブブロックに対して運動補償を実行して、予測値を得、前記サブブロックが第2の三角サブブロック内に位置すると、第2の三角サブブロックの第2の目標運動情報に基づいて前記サブブロックに対して運動補償を実行して、予測値を得、前記サブブロックが第1の三角サブブロック内にも完全に位置しないし、第2の三角サブブロック内にも完全に位置しないと(すなわち、前記サブブロックが第1の三角サブブロックと第2の三角サブブロックとを分割する対角線に位置する)、第1の三角サブブロックの第1の目標運動情報および第2の三角サブブロックの第2の目標運動情報に基づいて前記サブブロックに対して加重補償を実行して、予測値を得る。当該加重補償は、前記第1の目標運動情報に基づいて前記サブブロックの第1の予測値を確定することと、前記第2の目標運動情報に基づいて前記サブブロックの第2の予測値を確定することと、第1の予測値、第1の予測値に対応する第1の重み係数、第2の予測値、および、第2の予測値に対応する第2の重み係数に基づいて、前記サブブロックに対して加重補償を実行することと、を含み得る。
【0143】
たとえば、
図6Aを参照すると、現在ブロックを、サブブロック1、サブブロック2、サブブロック3、および、サブブロック4に分割することができる。実際の適用において、各々のサブブロックの幅がいずれも2以上であり、各々のサブブロックの高さがいずれも2以上である限り、現在ブロックを最も多いサブブロックに分割することができる。以下、
図6Aに示したサブブロック分割を例として説明する。
【0144】
サブブロック2の場合、サブブロック2が第1の三角サブブロック内に位置するため、第1の目標運動情報を利用してサブブロック2に対して運動補償を実行して、予測値を得る。サブブロック3の場合、サブブロック3が第2の三角サブブロック内に位置するため、第2の目標運動情報を利用してサブブロック3に対して運動補償を実行して、予測値を得る。サブブロック1の場合、サブブロック1が第1の三角サブブロック内にも完全に位置しないし、第2の三角サブブロック内にも完全に位置しないため、第1の目標運動情報に基づいてサブブロック1の第1の予測値P1を確定し、第2の目標運動情報に基づいてサブブロック1の第2の予測値P2を確定する。P1に対応する第1の重み係数がa(たとえば0.5)であり、P2に対応する第2の重み係数がb(たとえば0.5)であると想定すると、P1、a、P2、および、bに基づいてサブブロック1に対して加重補償を実行し、加重補償後のサブブロック1の予測値はたとえばP1* a + P2*bである。サブブロック4に対する運動補償は上記のサブブロック1に対する運動補償と類似するため、ここでは繰り返して説明しない。
【0145】
方式2において、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割し、ここで、第1の領域サブブロックは第1の三角サブブロック内に位置し、第2の領域サブブロックは第2の三角サブブロック内に位置し、第3の領域サブブロック内の各々のサブブロックの中心と第1の三角サブブロックと第2の三角サブブロックとを分割する対角線との間の距離は所定の閾値未満であり、第1の三角サブブロックの第1の目標運動情報に基づいて当該第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、第2の三角サブブロックの第2の目標運動情報に基づいて当該第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、当該第1の目標運動情報および当該第2の目標運動情報に基づいて当該第3の領域サブブロック内の各々のサブブロックに対して加重補償を実行する。当該加重補償は、第3の領域サブブロック内の各々のサブブロックに対して、第1の目標運動情報に基づいて前記サブブロックの第1の予測値を確定することと、第2の目標運動情報に基づいて前記サブブロックの第2の予測値を確定することと、前記第1の予測値、前記第1の予測値に対応する第1の重み係数、前記第2の予測値、および、前記第2の予測値に対応する第2の重み係数に基づいて、前記サブブロックに対して加重補償を実行することと、を含み得、ここで、前記サブブロックが第1の三角サブブロック内に位置すると、第1の重み係数は第2の重み係数よりも大きいし、前記サブブロックが第2の三角サブブロック内に位置すると、第1の重み係数は第2の重み係数未満であり、前記サブブロックが第1の三角サブブロックと第2の三角サブブロックとを分割する対角線に位置すると、第1の重み係数は第2の重み係数と等しい。
【0146】
第3の領域サブブロック内の各々のサブブロックは、1*1のサブブロック、すなわち単一ピクセルブロックであってもよいし、N*Mのサブブロックであってもよく、Nは1以上であり得、Mも1以上であり得る。
【0147】
たとえば、
図6Bを参照して、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割する。第1の領域サブブロックが第1の三角サブブロック内に位置するため、第1の三角サブブロックの第1の目標運動情報を利用して第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行して、予測値を得ることができる。第2の領域サブブロックが第2の三角サブブロック内に位置するため、第2の三角サブブロックの第2の目標運動情報を利用して第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行して、予測値を得ることができる。第3の領域サブブロックは、ラベルが1であるサブブロック、ラベルが2であるサブブロック、ラベルが4であるサブブロック、ラベルが6であるサブブロック、および、ラベルが7であるサブブロックを含み得る。
【0148】
ラベルが7である各々のサブブロックに対して、後続ではサブブロック7と呼び、第1の目標運動情報に基づいてサブブロック7の第1の予測値P1を確定し、第2の目標運動情報に基づいてサブブロック7の第2の予測値P2を確定することができる。P1に対応する第1の重み係数がaであり、P2に対応する第2の重み係数がbであると想定すると、加重補償後のサブブロック7の予測値はP1*a +P2*bでありえる。そして、サブブロック7が第1の三角サブブロック内に位置するため、第1の重み係数aは第2の重み係数bよりも大きい。aが7/8であり、bが1/8であると想定すると、加重補償後のサブブロック7の予測値は、P1*7/8+ P2*1/8である。
【0149】
ラベルが6である各々のサブブロックに対して、後続ではサブブロック6と呼び、加重補償処理プロセスは、サブブロック7に対する加重補償処理プロセスと類似する。サブブロック6が第1の三角サブブロック内に位置するため、第1の重み係数aは第2の重み係数bよりも大きい。なお、サブブロック7と比較すると、サブブロック6が第2の領域サブブロックに最も近いため、サブブロック6の第1の重み係数aはサブブロック7の第1の重み係数aよりも小さくてもよい。たとえば、サブブロック6の第1の重み係数aは6/8であり、第2の重み係数bは2/8であり、加重補償後のサブブロック6の予測値は、P1*6/8+P2*2/8である。
【0150】
ラベルが4である各々のサブブロックに対して、後続ではサブブロック4と呼び、加重補償処理プロセスは、サブブロック7に対する加重補償処理プロセスと類似する。サブブロック4が第1の三角サブブロックと第2の三角サブブロックとを分割する対角線に位置するため、第1の重み係数aは第2の重み係数bと等しい。たとえば、aは4/8であり、bは4/8であり、加重補償後のサブブロック4の予測値は、P1*4/8+P2*4/8である。
【0151】
ラベルが2である各々のサブブロックに対して、後続ではサブブロック2と呼び、加重補償処理プロセスは、サブブロック7に対する加重補償処理プロセスと類似する。サブブロック2が第2の三角サブブロック内に位置するため、第1の重み係数aは第2の重み係数bよりも小さい。たとえば、aは2/8であり、bは6/8であり、加重補償後のサブブロック2の予測値は、P1*2/8+P2*6/8である。
【0152】
ラベルが1である各々のサブブロックに対して、後続ではサブブロック1と呼び、加重補償処理プロセスは、サブブロック7に対する加重補償処理プロセスと類似する。サブブロック1が第2の三角サブブロック内に位置するため、第1の重み係数aは第2の重み係数bよりも小さい。なお、サブブロック2と比較すると、サブブロック1が第2の領域サブブロックに最も近いため、サブブロック1の第1の重み係数aはサブブロック2の第1の重み係数aよりも小さくてもよい。たとえば、サブブロック1の第1の重み係数aは1/8であり、第2の重み係数bは7/8であり、加重補償後のサブブロック1の予測値は、P1*1/8+P2*7/8である。
【0153】
上記実施例において、各々のサブブロックの第1の重み係数aと第2の重み係数bの合計は、1である。第1の領域サブブロックに近いサブブロックの場合、その第1の重み係数aが大きいし、第2の重み係数bが小さい。第2の領域サブブロックに近いサブブロックの場合、その第1の重み係数aが小さいし、第2の重み係数bが大きい。
【0154】
1例において、第3の領域サブブロック内の各々のサブブロックに対して、輝度成分に対して第1の組の重み係数を設定することができる。たとえば、第1の領域サブブロックから第2の領域サブブロックへの方向に沿って、各々のサブブロックの輝度成分の第1の重み係数aは、順に、7/8、6/8、4/8、2/8、1/8である。たとえば、
図6Bを参照すると、サブブロック7の輝度成分の第1の重み係数aは7/8であり、サブブロック6の輝度成分の第1の重み係数aは6/8であり、サブブロック4の輝度成分の第1の重み係数aは4/8であり、サブブロック2の輝度成分の第1の重み係数aは2/8であり、サブブロック1の輝度成分の第1の重み係数aは1/8である。
【0155】
もう1例において、第3の領域サブブロック内の各々のサブブロックに対して、輝度成分に対して第2の組の重み係数を設定することができる。たとえば、第1の領域サブブロックから第2の領域サブブロックへの方向に沿って、各々のサブブロックの輝度成分の第1の重み係数aは、順に、7/8、6/8、5/8、4/8、3/8、2/8、1/8である。たとえば、
図6Bを参照すると、サブブロック7の輝度成分の第1の重み係数aは7/8であり、サブブロック6の輝度成分の第1の重み係数aは6/8であり、サブブロック5(サブブロック5はサブブロック4とサブブロック6との間に位置することができ、
図6Bではサブブロック5を示していない)の輝度成分の第1の重み係数aは5/8であり、サブブロック4の輝度成分の第1の重み係数aは4/8であり、サブブロック3(サブブロック3はサブブロック2とサブブロック4との間に位置することができ、
図6Bではサブブロック3を示していない)の輝度成分の第1の重み係数aは3/8であり、サブブロック2の輝度成分の第1の重み係数aは2/8であり、サブブロック1の輝度成分の第1の重み係数aは1/8である。上記輝度成分の場合、第1の予測値P1および第2の予測値P2は、いずれも輝度予測値であり、加重補償後の予測値P1*a+P2*bも輝度予測値である。
【0156】
1例において、第3の領域サブブロック内の各々のサブブロックに対して、クロミナンス成分に対して第1の組の重み係数を設定することができる。たとえば、第1の領域サブブロックから第2の領域サブブロックへの方向に沿って、各々のサブブロックのクロミナンス成分の第1の重み係数aは、順に、7/8、4/8、1/8である。たとえば、
図6Cを参照すると、サブブロック7のクロミナンス成分の第1の重み係数aは7/8であり、サブブロック4のクロミナンス成分の第1の重み係数aは4/8であり、サブブロック1のクロミナンス成分の第1の重み係数aは1/8である。
【0157】
もう1例において、第3の領域サブブロック内の各々のサブブロックに対して、クロミナンス成分に対して第2の組の重み係数を設定することができる。たとえば、第1の領域サブブロックから第2の領域サブブロックへの方向に沿って、各々のサブブロックのクロミナンス成分の第1の重み係数aは、順に、6/8、4/8、2/8である。たとえば、
図6Cを参照すると、サブブロック7のクロミナンス成分の第1の重み係数aは6/8であり、サブブロック4のクロミナンス成分の第1の重み係数aは4/8であり、サブブロック1のクロミナンス成分の第1の重み係数aは2/8である。上記クロミナンス成分の場合、第1の予測値P1および第2の予測値P2は、いずれもクロミナンス予測値であり、加重補償後の予測値P1*a+P2*bもクロミナンス予測値である。
【0158】
以下、上記運動補償プロセスのいくつかの例を説明する。
【0159】
例1において、運動補償の場合、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割することができる。第1の三角サブブロックの第1の目標運動情報に基づいて、第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第2の三角サブブロックの第2の目標運動情報に基づいて、第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第1の目標運動情報および第2の目標運動情報に基づいて、第3の領域サブブロック内の各々のサブブロックに対して加重補償を実行する。
【0160】
具体的に、現在ブロックを複数のM*M(Mはたとえば4である)のサブブロックに均等に分割する。各々のM*Mのサブブロックの場合、当該サブブロックが第1の三角サブブロックと第2の三角サブブロックとを分割する対角線に位置しないと、当該サブブロックに対して単一方向運動情報を利用して運動補償を実行する。当該サブブロックが第1の三角サブブロック内に位置すると、当該サブブロックは、第1の領域サブブロックと呼ばれ、第1の目標運動情報を利用して運動補償を実行し、当該サブブロックが第2の三角サブブロック内に位置すると、当該サブブロックは第2の領域サブブロックと呼ばれ、第2の目標運動情報を利用して運動補償を実行する。当該サブブロックが第1の三角サブブロックと第2の三角サブブロックとを分割する対角線に位置すると、当該サブブロックは、第3の領域サブブロックと呼ばれ、2つの単一方向運動情報(すなわち、第1の目標運動情報および第2の目標運動情報)に基づいて加重補償を実行することができ、具体的な加重方式は上記の実施例を参照できる。
【0161】
例2において、運動補償の場合、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割することができる。第1の三角サブブロックの第1の目標運動情報に基づいて、第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第2の三角サブブロックの第2の目標運動情報に基づいて、第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第1の目標運動情報および第2の目標運動情報に基づいて、第3の領域サブブロック内の各々のサブブロックに対して加重補償を実行する。ここで、重み係数は1セットをのみ使用し、輝度成分のための重み係数は、{7/8、6/8、4/8、2/8、1/8}を使用し、クロミナンス成分のための重み係数は、{7/8、4/8、1/8}を使用する。具体的な加重方式は上記の実施例を参照できる。
【0162】
例3において、運動補償の場合、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割することができる。第1の三角サブブロックの第1の目標運動情報に基づいて、第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第2の三角サブブロックの第2の目標運動情報に基づいて、第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第1の目標運動情報および第2の目標運動情報に基づいて、第3の領域サブブロック内の各々のサブブロックに対して加重補償を実行し、ここで、重み係数は1セットをのみ使用し、輝度成分のための重み係数は、{7/8、6/8、5/8、4/8、3/8、2/8、1/8}を使用し、クロミナンス成分のための重み係数は、{6/8、4/8、2/8}を使用する。具体的な加重方式は上記の実施例を参照できる。
【0163】
方式3において、現在ブロックを、第1の領域サブブロック、第2の領域サブブロック、および、第3の領域サブブロックに分割し、ここで、第1の領域サブブロックは第1の三角サブブロック内に位置し、第2の領域サブブロックは第2の三角サブブロック内に位置し、第3の領域サブブロック内の各々のサブブロックの中心と第1の三角サブブロックと第2の三角サブブロックとを分割する対角線との間の距離は所定の閾値未満である。第1の目標運動情報に基づいて第1の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第2の目標運動情報に基づいて第2の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。第1の目標運動情報または第2の目標運動情報に基づいて第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。
【0164】
たとえば、現在ブロックのサイズ情報が第1の条件を満たすと(たとえば現在ブロックの幅が現在ブロックの高さ以上である)、第1の目標運動情報に基づいて第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、現在ブロックのサイズ情報が第2の条件を満たすと(たとえば現在ブロックの幅が現在ブロックの高さ未満である)、第2の目標運動情報に基づいて第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。もちろんながら、上記は例に過ぎず、他の方式を採用して、第1の目標運動情報と第2の目標運動情報との中のどれに基づいて運動補償を実行するかを確定することができる。
【0165】
第3の領域サブブロック内の各々のサブブロックは、1*1のサブブロック、すなわち単一ピクセルブロックであってもよいし、N*Mのサブブロックであってもよく、Nは1以上であり得、Mも1以上であり得る。
【0166】
当該実施例において、第3の領域サブブロックの場合、これ以上第1の目標運動情報および第2の目標運動情報を利用して加重補償を実行しなく、第1の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行するか、または、第2の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。すなわち、双方向予測を採用して運動補償を実行すべきサブブロックが存在しないため、加重補償は不要である。
【0167】
第1の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行するか、または第2の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行するかについては、以下の任意の1つの方式を採用して確定することができる。(1)デフォルトで第1の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、(2)デフォルトで第2の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、(3)現在ブロックのサイズに基づいて決定し、たとえば、現在ブロックの幅が現在ブロックの高さ以上であると、第1の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行し、現在ブロックの幅が現在ブロックの高さ未満であると、第2の目標運動情報を利用して第3の領域サブブロック内の各々のサブブロックに対して運動補償を実行する。
【0168】
実施例9
【0169】
ビデオエンコーダーは、まず、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たすか否かを判断する。満たさないと、三角形幾何学的分割モードを採用しなく、他のモードを採用すると決定する。満たすと、ビデオエンコーダーは、デフォルトで三角形幾何学的分割モードを呼び出すか、または、三角形幾何学的分割モードを呼び出すか否かを判断することができる。ビデオエンコーダーによって、デフォルトで三角形幾何学的分割モードを呼び出すか、または三角形幾何学的分割モードを呼び出すと判定されると、上記の関連する各実施例における現在ブロックを三角サブブロックに分割する操作およびその後の他の操作を実行し、そうではないと、これら操作を実行しない。
【0170】
三角形幾何学的分割モードを呼び出すか否かを判断するために、ビデオエンコーダーは、三角形幾何学的分割モードに対応するレート歪みコストを確定することができる。三角形幾何学的分割モードに対応するレート歪みコストがすべての他のモードに対応するレート歪みコストよりも小さいと、三角形幾何学的分割モードを呼び出すと判定することができ、そうではないと、三角形幾何学的分割モードを呼び出さないと判定することができる。
【0171】
これに応じて、ビデオエンコーダーがデコード側に送信したエンコードされたビットストリームは、第7の指示情報を含み得、前記第7の指示情報は、三角形幾何学的分割モードを呼び出すことを指示するために使用される。
【0172】
ビデオデコーダーは、まず、現在ブロックが三角形幾何学的分割モードを呼び出すための特定条件を満たすか否かを判断する。満たさないと、三角形幾何学的分割モードを利用しなく、他のモードを利用すると決定する。満たすと、ビデオデコーダーは、デフォルトで三角形幾何学的分割モードを呼び出すか、または、エンコード側からのエンコードされたビットストリームを解析し、エンコードされたビットストリームが第7の指示情報であると、三角形幾何学的分割モードを呼び出すと判定し、そうではないと、三角形幾何学的分割モードを呼び出さないと判定する。ビデオデコーダーがデフォルトで三角形幾何学的分割モードを呼び出すか、または三角形幾何学的分割モードを呼び出すと判定すると、上記の関連する各実施例における現在ブロックを三角サブブロックに分割する操作およびその後の他の操作を実行し、そうではないと、これら操作を実行しない。
【0173】
実施例10
【0174】
ビデオエンコーダー/ビデオデコーダーは、さらに、以下の方式に従って第1の目標運動情報および第2の目標運動情報を記憶することができる。第1の目標運動情報に対応する候補ブロックが単一方向予測ブロックであると、第1の三角サブブロックに対して当該第1の目標運動情報を記憶し、第1の目標運動情報に対応する候補ブロックが双方向予測ブロックであると、第1の三角サブブロックに対して当該第1の目標運動情報および第3の目標運動情報を記憶し、当該第3の目標運動情報は双方向予測ブロックのもう1つの運動情報であり、第2の目標運動情報に対応する候補ブロックが単一方向予測ブロックであると、第2の三角サブブロックに対して当該第2の目標運動情報を記憶し、第2の目標運動情報に対応する候補ブロックが双方向予測ブロックであると、第2の三角サブブロックに対して当該第2の目標運動情報および第4の目標運動情報を記憶し、当該第4の目標運動情報は双方向予測ブロックのもう1つの運動情報である。
【0175】
たとえば、
図7Aに示すように、上記第1の領域サブブロックの場合、第1の領域サブブロックの第1の目標運動情報がMV1であり、且つ、MV1が単一方向予測ブロックR1からのものであり、すなわち単一方向予測ブロックR1が現在ブロックの候補ブロックであり、且つ、上記運動情報リストが単一方向予測ブロックR1の運動情報MV1を含み、且つ、MV1を第1の領域サブブロックの第1の目標運動情報として選択すると、第1の領域サブブロックに対してMV1を記憶する。
図7Aに示すように、上記第2の領域サブブロックの場合、第2の領域サブブロックの第2の目標運動情報がMV2であり、且つ、MV2が単一方向予測ブロックR2からのものであり、すなわち単一方向予測ブロックR2が現在ブロックの候補ブロックであり、且つ、上記運動情報リストが単一方向予測ブロックR2の運動情報MV2を含み、且つ、MV2を第2の領域サブブロックの第2の目標運動情報として選択すると、第2の領域サブブロックに対してMV2を記憶する。
【0176】
また、たとえば、
図7Bに示すように、上記第1の領域サブブロックの場合、第1の領域サブブロックの第1の目標運動情報がMV1であり、且つ、MV1が双方向予測ブロックR3からのものであり、すなわち双方向予測ブロックR3が現在ブロックの候補ブロックであり、且つ、上記運動情報リストが双方向予測ブロックR3の運動情報MV1およびMV2を含み、且つ、MV1を第1の領域サブブロックの第1の目標運動情報として選択すると、第1の領域サブブロックに対してMV1をのみ記憶することでなく、第1の領域サブブロックに対してMV1およびMV2を記憶することができる。
図7Bに示すように、上記第2の領域サブブロックの場合、第2の領域サブブロックの第2の目標運動情報がMV3であり、且つ、MV3が双方向予測ブロックR4からのものであり、すなわち、双方向予測ブロックR4が現在ブロックの候補ブロックであり、且つ、上記運動情報リストが双方向予測ブロックR4の運動情報MV3およびMV4を含み、且つ、MV3を第2の領域サブブロックの第2の目標運動情報として選択すると、第2の領域サブブロックに対してMV3をのみ記憶することでなく、第2の領域サブブロックに対してMV3およびMV4を記憶することができる。
【0177】
上記例において、
図7Aおよび
図7Bに示すように、4*4を単位として運動情報を記憶することができる。
【0178】
実施例11
【0179】
本発明の実施例は、ビデオデコーダーを提供する。
図8は、当該ビデオデコーダーの概略構成図である。
図8を参照すると、当該ビデオデコーダーは、プロセッサ81と機械可読記録媒体82とを備え得る。機械可読記録媒体82には、前記プロセッサ81によって実行可能の機械実行可能命令が記録されている。前記プロセッサ81によって当該機械実行可能命令が実行されるときに、本発明の上記の相関する実施例に記載のビデオデコード方法が実現される。
【0180】
本発明の実施例は、ビデオエンコーダーをさらに提供する。
図9は、当該ビデオエンコーダーの概略構成図である。
図9を参照すると、当該ビデオエンコーダーは、プロセッサ91と機械可読記録媒体92とを備え得る。機械可読記録媒体92には、前記プロセッサ91によって実行可能の機械実行可能命令が記録されている。前記プロセッサ91によって当該機械実行可能命令が実行されるときに、本発明の上記の相関する実施例に記載のビデオエンコード方法が実現される。
【0181】
本発明の実施例は、機械可読記録媒体をさらに提供し、前記機械可読記録媒体には、コンピュータ命令が記録されており、前記コンピュータ命令がプロセッサによって実行されるときに、当該プロセッサが本発明の上記実施例に記載のビデオエンコード/デコード方法を実現するようにすることができる。
【0182】
上記機械可読記録媒体は、電子的、磁気的、光学的、または、他の物理的な記録装置であり得、実行可能命令、データなどの情報を含むか記憶することができる。たとえば、機械可読記録媒体は、揮発性メモリ(たとえば、RAM(Random Access Memory、ランダムアクセスメモリ))、不揮発性メモリ(たとえば、フラッシュメモリ、記憶ドライブ(たとえばハードディスクドライブ)、ソリッドステートハードドライブ、光ストレージ(たとえば、CD-ROM(Compact Disc Read-Only Memory、光学ディスク読み取り専用メモリ)、DVD(Digital Versatile Disc、デジタル多用途ディスク)など))、または、それらの組み合わせを含み得る。
【0183】
上記の実施例によって説明されたシステム、装置、モジュール、または、ユニットは、コンピュータチップまたはエンティティによって実装するか、または、特定の機能を有する製品によって実装することができる。典型的な実装デバイスは、電子デバイスであり、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、カメラ、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤー、ナビゲーションデバイス、電子メールの送受信デバイス、ゲームコンソール、ウェアラブルデバイスまたはその任意の組み合わせを含み得るが、これらに限定されない。
【0184】
説明の便宜上、上記の装置を説明するときに機能を単位として様々なユニットに分割してそれぞれ説明した。もちろんながら、本発明を実施するときに、各ユニットの機能を1つまたは複数のソフトウェアおよび/またはハードウェアに実装できる。
【0185】
当業者は、本発明の実施例が、方法、システム、またはコンピュータプログラム製品として提供され得ることを理解すべきである。したがって、本発明は、完全なハードウェアの実施例、完全なソフトウェアの実施例、または、ソフトウェアとハードウェアの組み合わせの実施例の形態を採用することができる。
【0186】
本発明は、本発明の実施例による方法、デバイス(システム)、および、コンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明された。コンピュータプログラム命令によって、フローチャートおよび/またはブロック図の中の各々のプロセスおよび/またはブロックを実装できることを理解すべきである。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または他のプログラム可能なデータ処理デバイスのプロセッサに提供することによって、当該プロセッサによって当該コンピュータプログラム命令が実行されて、フローチャート中の1つのプロセスまたは複数のプロセスおよび/またはブロック図中の1つのブロックまたは複数のブロックによって指定された機能を実装するための装置が生成される。
【0187】
上記は、ただ本発明のいくつかの実施例であり、本発明を限定するものではない。当業者は、本発明に対して様々な修正および変更を行うことができる。本発明の精神および原理の範囲内で行われたいかなる修正、同等の交換、改良などは、いずれも、本発明の請求の範囲内に含まれるものとする。