この出願の実施形態は、伝送資源、伝送レート、およびコーディング圧縮効率の有効利用が、モーション情報が比較的大量の伝送資源を占めるために低下する問題を解決するために、二方向インター予測方法および装置を提供する。
前述の目的を達成するために、この出願の実施態様では、以下の技術的解決策が使用される。
第1の態様によれば、二方向インター予測法が提供される。本方法は、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用される指示情報を取得することであって、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、取得することと、第1のモーション情報を取得することと、取得された第1のモーション情報に基づいて、第2のモーション情報を決定することと、取得された第1のモーション情報および決定された第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することと、を含む。
この出願において提供される二方向インター予測方法によれば、指示情報が取得された後、第1のモーション情報に基づいて、第2のモーション情報が決定される。このように、ビットストリームは、指示情報と第1のモーション情報のみを含む必要があり、もはや第2のモーション情報を含む必要がない。ビットストリームが各方向における各ピクチャブロックのモーション情報を含む従来技術と比較して、この出願において提供される二方向インター予測方法は、ビットストリームに含まれるモーション情報を効果的に低減し、伝送資源、伝送レート、および符号化レートの有効利用を改善する。
任意選択で、この出願の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値を取得し、第1の参照フレームのインデックス値と第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値と第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することであって、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1のモーション情報における、第1のモーションベクトル差および第1のモーションベクトル予測器識別子に基づいて、第1のモーションベクトルを決定することであって、第1のモーションベクトルは、第1の方向におけるカレントピクチャブロックのモーションベクトルである、決定することと、以下の式に従って、第2のモーション情報における第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。
この式では、mv_lYは、第2のモーションベクトルを表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、mv_lXは、第1のモーションベクトルを表す。
任意選択で、この出願の別の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値を取得し、第1の参照フレームのインデックス値と第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値と第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することであって、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1のモーション情報における、第1のモーションベクトル差および第1のモーションベクトル予測器識別子に基づいて、第1のモーションベクトルを決定することであって、第1のモーションベクトルは、第1の方向におけるカレントピクチャブロックのモーションベクトルである、決定することと、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、式mv_lY=-mv_lXに従って、第2のモーション情報における第2のモーションベクトルを決定するであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。この式では、第2のモーションベクトルを表し、第1のモーションベクトルを表す。
任意選択で、この出願の別の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、式mv_lY=-mv_lXに従って、第2のモーション情報における第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。この式では、mv_lYは、第2のモーションベクトルを表し、mv_lXは、第1のモーションベクトルを表す。
「第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合」および「第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合」の両方とも、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0、または式POC_listY=2*POC_Cur-POC_listXを使用して表されてもよい。これは、この出願において特に限定されない。
追加的に、「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合」および「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合」の両方とも、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)<0を使用して表されてもよい。
任意選択で、この出願の別の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値および第1のモーションベクトル差を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することと、第2の参照フレームのインデックス値および第2の候補予測モーションベクトルリストに基づいて、第2の予測モーションベクトルを決定することであって、第2の予測モーションベクトルは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、以下の式に従って、第2のモーション情報における第2のモーションベクトル差を決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。
この式では、mvd_lYは、第2のモーションベクトル差を表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、は、POC_listYは、第2の参照フレームのシーケンス番号を表し、mvd_lXは、第1のモーションベクトル差を表す。
任意選択で、この出願の別の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値および第1のモーションベクトルを取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定し、第2の参照フレームのインデックス値および第2の候補予測モーションベクトルリストに基づいて、第2の予測モーションベクトルを決定することであって、第2の予測モーションベクトルは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、式mvd_lY=-mvd_lXに従って、第2のモーション情報における第2のモーションベクトル差を決定することであって、この式では、mvd_lYは、第2のモーションベクトル差を表し、mvd_lXは、第1のモーションベクトル差を表す、決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。
任意選択で、この出願の別の可能な実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ための方法は、式mvd_lY=-mvd_lXに従って、第2のモーション情報における第2のモーションベクトル差を決定することであって、この式では、mvd_lYは、第2のモーションベクトル差を表し、mvd_lXは、第1のモーションベクトル差を表す、決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することである。
同様に、「第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合」および「第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合」の両方とも、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0、または式POC_listY=2*POC_Cur-POC_listXを使用して表されてもよい。これは、この出願において特に限定されない。
「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合」および「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合」の両方とも、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)<0を使用して表されてもよい。
この出願において提供される二方向インター予測方法は、第1のモーションベクトルに基づいて、第2のモーションベクトルを決定すること、または第1のモーションベクトル差に基づいて、第2のモーションベクトル差を決定し、第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであってもよいと分かる。
任意選択で、この出願の別の可能な実施態様では、「第2の参照フレームのインデックス値を取得する」ための方法は、式POC_listY0=2*POC_Cur-POC_listXに従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第1のシーケンス番号を計算することであって、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listY0は、第1のシーケンス番号を表す、計算することと、第2の参照フレームリストが第1のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第1のシーケンス番号によって表される参照フレームの番号を決定することである。
任意選択で、この出願の別の可能な実施態様では、「第2の参照フレームのインデックス値を取得する」ための方法は、式(POC_Cur-POC_listX)*(POC_listY0’-POC_Cur)>0に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第2のシーケンス番号を計算することであって、POC_listY0’は、第2のシーケンス番号を表す、計算することと、第2の参照フレームリストが第2のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第2のシーケンス番号によって表される参照フレームの番号を決定することである。
任意選択で、この出願の別の可能な実施態様では、「第2の参照フレームのインデックス値を取得する」ための方法は、式POC_listX≠POC_listY0’’に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第3のシーケンス番号を計算することであって、POC_listY0’’は、第3のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームのリストにおける第3のシーケンス番号によって表される参照フレームの番号を決定することである。
任意選択で、この出願の別の可能な実施態様では、「第2の参照フレームのインデックス値を取得する」ための方法は、式POC_listY0=2*POC_Cur-POC_listXに従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第1のシーケンス番号を決定することであって、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listY0は、第1のシーケンス番号を表す、計算することと、第2の参照フレームリストが第1のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第1のシーケンス番号によって表される参照フレームの番号を決定すること、または第2の参照フレームリストが第1のシーケンス番号を含まないときに、式(POC_Cur-POC_listX)*(POC_listY0’-POC_Cur)>0に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第2のシーケンス番号を計算することであって、POC_listY0’は、第2のシーケンス番号を表す、計算することと、第2の参照フレームリストが第2のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第2のシーケンス番号によって表される参照フレームの番号を決定すること、または第2の参照フレームリストが第2のシーケンス番号を含まないときに、式POC_listX≠POC_listY0’’に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第3のシーケンス番号を計算することであって、POC_listY0’’は、第3のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第3のシーケンス番号によって表される参照フレームの番号を決定することである。
任意選択で、この出願の別の可能な実装では、「第2の参照フレームのインデックス値を取得する」ための方法は、第2の参照フレームのインデックス値を取得するためにビットストリームを解析することである。
この出願では、「第2の参照フレームのインデックス値を取得する」ための複数の方法が存在してもよいことが分かる。第2の参照フレームのインデックス値を取得するための具体的な方法は、実際の要件に基づいて決定されるか、またはプリセットされる必要がある。
第2の態様によれば、二方向インター予測装置が提供される。二方向インター予測装置は、取得ユニットと決定ユニットとを含む。
具体的には、取得ユニットは、指示情報を取得することであって、指示情報は、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、取得することと、第1のモーション情報を取得することとを行うように構成されている。決定ユニットは、取得ユニットによって取得された第1のモーション情報に基づいて、第2のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することとを行うように構成されている。
任意選択で、この出願の可能な実施態様では、決定ユニットは、具体的には、第1のモーション情報における第1の参照フレームのインデックス値を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することであって、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1のモーション情報における、第1のモーションベクトル差と第1のモーションベクトル予測器識別子に基づいて、第1のモーションベクトルを決定することであって、第1のモーションベクトルは、第1の方向におけるカレントピクチャブロックのモーションベクトルである、決定することと、以下の式に従って、第2のモーション情報における第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとを行うように構成されている。
mv_lYは、第2のモーションベクトルを表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、mv_lXは、第1のモーションベクトルを表す。
任意選択で、この出願の別の可能な実施態様では、決定ユニットは、具体的には、第1のモーション情報における第1の参照フレームのインデックス値を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することであって、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1のモーション情報における、第1のモーションベクトル差と第1のモーションベクトル予測器識別子に基づいて、第1のモーションベクトルを決定することであって、第1のモーションベクトルは、第1の方向におけるカレントピクチャブロックのモーションベクトルである、決定することと、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、式mv_lY=-mv_lXに従って、第2のモーション情報における第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとを行うように構成されている。この式では、mv_lYは、第2のモーションベクトルを表し、mv_lXは、第1のモーションベクトルを表す。
任意選択で、この出願の別の可能な実施態様では、決定ユニットは、具体的には、式mv_lY=-mv_lXに従って、第2のモーション情報における第2のモーションベクトルを決定するように構成され、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである。この式では、mv_lYは、第2のモーションベクトルを表し、mv_lXは、第1のモーションベクトルを表す。
任意選択で、この出願の別の可能な実施態様では、決定ユニットは、具体的には、第1の参照フレームのインデックス値と、第1のモーション情報における第1のモーションベクトル差を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定し、第2の参照フレームのインデックス値と第2の候補予測モーションベクトルリストに基づいて、第2の予測モーションベクトルを決定することであって、第2の予測モーションベクトルは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、以下の式に従って、第2のモーション情報における第2のモーションベクトル差を決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとを行うように構成されている。
mvd_IYは、第2のモーションベクトル差を表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、mvd_lXは、第1のモーションベクトル差を表す。
任意選択で、この出願の別の可能な実施態様において、決定ユニットは、具体的には、第1のモーション情報における第1の参照フレームのインデックス値および第1のモーションベクトルを取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することであって、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第1の参照フレームのインデックス値は、第1の参照フレームリストにおける第1の参照フレームの番号である、決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定し、第2の参照フレームのインデックス値および第2の候補予測モーションベクトルリストに基づいて、第2の予測モーションベクトルを決定することであって、第2の予測モーションベクトルは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第2の参照フレームのインデックス値は、第2の参照フレームリストにおける第2の参照フレームの番号である、決定することと、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、式mvd_lY=-mvd_lXに従って、第2のモーション情報における第2のモーションベクトル差を決定することであって、mvd_lYは、第2のモーションベクトル差を表し、mvd_lXは、第1のモーションベクトル差を表す、決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとを行うように構成されている。
任意選択で、この出願の別の可能な実施態様では、決定ユニットは、具体的には、式mvd_lY=-mvd_lXに従って、第2のモーション情報における第2のモーションベクトル差を決定することであって、この式では、mvd_IYは、第2のモーションベクトル差を表し、mvd_IXは、第1のモーションベクトル差を表す、決定することとと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとを行うように構成されている。
任意選択で、この出願の別の可能な実施態様では、取得ユニットは、具体的には、式POC_listY0=2*POC_Cur-POC_listXに従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第1のシーケンス番号を計算することであって、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listY0は、第1のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームのリストにおける第1のシーケンス番号によって表される参照フレームの番号を決定することとを行うように構成されている。
任意選択で、この出願の別の可能な実施態様では、取得ユニットは、具体的には、式(POC_Cur-POC_listX)*(POC_listY0’-POC_Cur)>0に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第2のシーケンス番号を計算することであって、POC_listY0’は、第2のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第2のシーケンス番号によって表される参照フレームの番号を決定することとを行うように構成されている。
任意選択で、この出願の別の可能な実施態様では、取得ユニットは、具体的には、式POC_listX≠POC_listY0’’に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第3のシーケンス番号を計算することであって、POC_listY0’’は、第3のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームのリストにおける第3のシーケンス番号によって表される参照フレームの番号を決定することとを行うように構成されている。
第3の態様によれば、二方向インター予測方法が提供される。二方向インター予測法に対して複数の実施態様がある。
実施態様は、第1の識別子を取得するためにビットストリームを解析することであって、第1の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを示すために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、解析することと、第1の識別子の値が第1のプリセット値である場合、第1のモーション情報を取得し、第1のモーション情報に基づいて、第2のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
別の実施態様は、第2の識別子を取得するためにビットストリームを解析することであって、第2の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することと、第2の識別子の値が第2のプリセット値である場合、第3の識別子を取得することであって、第3の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、取得することと、第3の識別子の値が第3のプリセット値である場合、第1のモーション情報を取得し、第1のモーション情報に基づいて、第2のモーション情報を決定することとと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
別の実施態様は、第2の識別子を取得するためにビットストリームを解析することであって、第2の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することと、第2の識別子の値が第2のプリセット値である場合、第1のモーション情報を取得し、第1のモーション情報に基づいて、第2のモーション情報を決定することであって、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
別の実施態様は、第4の識別子を取得するためにビットストリームを解析することであって、第4の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示ために使用される、解析することと、第4の識別子の値が第4のプリセット値である場合、第1の参照フレームリストおよび第2の参照フレームリストに基づいて、第1の参照フレームのインデックス値および第2の参照フレームのインデックス値を決定することであって、第1の参照フレームリストは、第1の方向におけるカレントピクチャブロックの参照フレームリストであり、第2の参照フレームリストは、第2の方向におけるカレントピクチャブロックの参照フレームリストであり、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームである、決定することと、第1のモーションベクトル差および第1のモーションベクトル予測器識別子を取得し、第1のモーション情報に基づいて、第2のモーション情報を決定することであって、第1のモーション情報は、第1の参照フレームのインデックス値、第1のモーションベクトル差、および第1のモーションベクトル予測器識別子を含み、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
別の実施態様は、第1の識別子を取得するためにビットストリームを解析することであって、第1の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、解析することと、第1の識別子の値が第8のプリセット値である場合、第5の識別子を取得することであって、第5の識別子は、第2のモーション情報に基づいて、第1のモーション情報を決定するかどうかを示すために使用される、取得することと、第5の識別子の値が第5のプリセット値である場合、第2のモーション情報を取得し、第2のモーション情報に基づいて、第1のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
別の実施態様は、第2の識別子を取得するためにビットストリームを解析することであって、第2の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することと、第2の識別子の値が第2のプリセット値である場合、第3の識別子を取得することであって、第3の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、取得することと、第3の識別子の値が第6のプリセット値である場合、第2のモーション情報を取得し、第2のモーション情報に基づいて、第1のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することである。
第1の識別子から第4の識別子の具体的な説明については、以下の説明を参照のこと。
この出願に提供される二方向インター予測方法では、ビットストリームを解析することによって識別子が取得された後、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかは、識別子の値に基づいて、決定される。第1のモーション情報に基づいて、第2のモーション情報が決定される必要があると決定された後、第1のモーション情報が取得され、第2のモーション情報が、取得された第1のモーション情報に基づいて、決定される。このように、ビットストリームは、対応する識別子と第1のモーション情報のみを含む必要があり、もはや第2のモーション情報を含む必要はない。ビットストリームが各方向における各ピクチャブロックのモーション情報を含む従来技術と比較して、本出願で提供する二方向インター予測方法は、ビットストリームに含まれるモーション情報を効果的に低減し、伝送資源、伝送レート、および符号化レートの有効利用を改善する。
第4の態様によれば、二方向インター予測装置が提供される。二方向インター予測装置は、取得ユニットと決定ユニットとを含む。
具体的には、実施態様では、取得ユニットは、第1の識別子を取得するためにビットストリームを解析することであって、第1の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、解析することと、第1の識別子の値が第1のプリセット値である場合、第1のモーション情報を取得することとを行うように構成されている。決定ユニットは、取得ユニットによって取得された第1のモーション情報に基づいて、第2のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することとを行うように構成されている。
別の実施形態では、取得ユニットは、第2の識別子を取得するためにビットストリームを解析することであって、第2の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することと、第2の識別子の値が第2のプリセット値である場合、第3の識別子を取得することであって、第3の識別子は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示するために使用され、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、取得することと、第3の識別子の値が第3のプリセット値である場合、第1のモーション情報を取得することとを行うように構成されている。決定ユニットは、取得ユニットによって取得された第1のモーション情報に基づいて、第2のモーション情報を決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することとを行うように構成されている。
別の実施形態では、取得ユニットは、第2の識別子を取得するためにビットストリームを解析することであって、第2の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することと、第2の識別子の値が第2のプリセット値である場合、第1のモーション情報を取得することとを行うように構成されている。決定ユニットは、取得ユニットによって取得された第1のモーション情報に基づいて、第2のモーション情報を決定することであって、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することとを行うように構成されている。
別の実施形態では、取得ユニットは、第4の識別子を取得するためにビットストリームを解析することであって、第4の識別子は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算するかどうかを指示するために使用される、解析することを行うように構成されている。決定ユニットは、取得ユニットによって取得された第4の識別子の値が第4のプリセット値である場合、第1の参照フレームリストおよび第2の参照フレームリストに基づいて、第1の参照フレームのインデックス値および第2の参照フレームのインデックス値を決定することであって、第1の参照フレームリストは、第1の方向におけるカレントピクチャブロックの参照フレームリストであり、第2の参照フレームリストは、第2の方向におけるカレントピクチャブロックの参照フレームリストであり、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームである、決定することを行うように構成されている。取得ユニットは、さらに、第1のモーションベクトル差および第1のモーションベクトル予測器識別子を取得するように構成されている。決定ユニットは、さらに、第1のモーション情報に基づいて、第2のモーション情報を決定することであって、第1のモーション情報は、第1の参照フレームのインデックス値、第1のモーションベクトル差、および第1のモーションベクトル予測器識別子を含み、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報である、決定することと、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定することとを行うように構成されている。
第5の態様によれば、端末が提供される。端末は、1つ以上のプロセッサ、メモリ、および通信インターフェースを含む。メモリおよび通信インターフェースは、1つ以上のプロセッサに結合される。メモリはコンピュータプログラムコードを記憶するように構成されている。コンピュータプログラムコードは、命令を含む。1つ以上のプロセッサが命令を実行するときに、端末は、第1の態様もしくは第1の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行するか、または第3の態様もしくは第3の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行する。
第6の態様によれば、不揮発性記憶媒体および中央処理装置を含むビデオ復号器が提供される。不揮発性記憶媒体は、実行可能プログラムを記憶する。中央処理装置は、不揮発性記憶媒体に接続されており、実行可能なプログラムを実行して、第1の態様もしくは第1の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実施するか、または第3の態様もしくは第3の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実施する。
第7の態様によれば、復号器が提供される。復号器は、第2の態様における二方向インター予測装置と、再構成モジュールとを含み、再構成モジュールは、二方向インター予測装置によって取得された予測サンプルに基づいて、カレントピクチャブロックの再構成サンプル値を決定するように構成されるか、または復号器は、第4の態様における二方向インター予測装置と、再構成モジュールとを含み、再構成モジュールは、二方向インター予測装置によって取得された予測サンプルに基づいて、カレントピクチャブロックの再構成サンプル値を決定するように構成されている。
第8の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体は命令を記憶する。この命令が第5の態様において端末上で動作するときに、端末は、第1の態様もしくは第1の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行するか、または第3の態様もしくは第3の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行することが可能となる。
第9の態様によれば、命令を含むコンピュータプログラム製品が提供される。コンピュータプログラム製品が第5の態様の端末上で動作するときに、端末は、第1の態様もしくは第1の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行するか、または第3の態様もしくは第3の態様の可能な実施態様のいずれか1つに従って、二方向インター予測方法を実行することが可能である。
第10の態様によれば、本発明は、さらに、第1の態様~第9の態様、および第1の態様~第9の態様の可能な実施態様による方法、装置、端末、記憶媒体、およびコーデックを提供する。
この出願では、二方向インター予測装置の名前は、デバイスまたは機能モジュールに限定をもたらさない。実際の実施態様では、デバイスまたは機能モジュールは、異なる名称であってもよい。装置または機能モジュールの機能がこの出願のものと類似している場合、装置または機能モジュールは、この出願の特許請求の範囲およびそれらの同等技術に含まれる。
この出願の第5の態様~第9の態様および第5の態様~第9の態様の実施態様の具体的な説明については、第1の態様および第1の態様の実施態様の詳細な説明、または第3の態様および第3の態様の実施態様の詳細な説明を参照のこと。追加的に、第5の態様~第9の態様および第5の態様~第9の態様の実施態様の有益な効果については、第1の態様および第1の態様の実施態様の有益な効果、または第3の態様および第3の態様の実施態様の有益な効果を参照のこと。詳細は、ここでは再度説明しない。
この出願のこれらの態様または他の態様は、以下の説明において、より簡潔かつ理解可能である。
この出願の明細書、特許請求の範囲および添付の図面において、「第1」、「第2」、「第3」および「第4」のような用語は、異なる対象を区別することを意図しているが、特定の順序を指示するものではない。
この出願の実施態様では、「例」または「例えば」のような語は、例、図示または説明を与えることを表すために使用される。この出願の実施態様における「例」または「例えば」として説明される任意の実施態様または設計スキームは、別の実施態様もしくは設計スキームよりも好ましいか、または利点を有するものとして説明されるべきではない。正確には、「例」または「例えば」のような語の使用は、関連する概念を特定の方式で提示することを意図している。
この出願の実施態様の理解を容易にするために、この出願の実施態様における関連する概念が本明細書において最初に説明される。
ピクチャ符号化(画像符号化):ピクチャシーケンスをビットストリームに圧縮する処理。
画像復号(画像復号):特定の構文規則と特定の処理方法に従ってビットストリームを再構成されたピクチャに復元する処理。
現在、ビデオ画像符号化処理は、符号化器側が、まず、オリジナル画像を重複しない複数の部分に分割し、各部分は、ピクチャブロックとして使用されてもよい。次いで、符号化器側は、予測(Prediction)、変換(Transpform)、量子化(Quantization)などの演算を各ピクチャブロックに対して実行し、ピクチャブロックに対応するビットストリームを取得する。この予測は、ピクチャブロックとピクチャブロックの予測ブロックとの間の差のみが符号化されて、送信されることができるように、ピクチャブロックの予測ブロックを取得することであり、それにより、送信オーバヘッドを低減する。最後に、符号化器側は、ピクチャブロックに対応するビットストリームを復号器側に送信する。
対応して、復号器側は、ビットストリームを受信した後、ビデオ復号処理を実行する。具体的には、復号器側は、受信されたビットストリームに対して予測、逆量子化、逆変換などの演算を実行して、再構成ピクチャブロック(または再構成後のピクチャブロックと呼ばれる)を取得する。この処理は、画像再構成処理(または画像リビルド処理)と呼ばれる。次いで、復号器側は、オリジナル画像における全ての画像ブロックの再構成されたブロックを組み立てて、オリジナル画像の再構成ピクチャを取得し、再構成ピクチャを再生する。
既存のビデオ符号化技術は、イントラ予測とインター予測を含む。インター予測は、カレントフレームとカレントフレームの参照フレームとの間の相関を用いて、ピクチャブロック/復号ピクチャブロックを符号化することによって実行される予測である。カレントフレームは、1つ以上の参照フレームを有してもよい。具体的には、カレントピクチャブロックの予測ピクチャブロックは、カレントピクチャブロックの参照フレームにおけるサンプルに基づいて、生成される。
通常、カレントピクチャブロックの予測ピクチャブロックは、1つの参照ピクチャブロックのみに基づいて、生成されてもよいし、カレントピクチャブロックの予測ピクチャブロックは、少なくとも2つの参照ピクチャブロックに基づいて、生成されてもよい。1つの参照ピクチャブロックに基づいて、カレントピクチャブロックの予測ピクチャブロックを生成することは、一方向予測と呼ばれ、少なくとも2つの参照ピクチャブロックに基づいて、カレントピクチャブロックの予測ピクチャブロックを生成することは、二方向インター予測と呼ばれる。二方向インター予測における少なくとも2つの参照ピクチャブロックは、同一の参照フレームまたは異なる参照フレームからであってもよい。言い換えると、この出願における「方向」は一般化された定義である。この出願における1つの方向は、1つの参照ピクチャブロックに対応する。以下の第1の方向および第2の方向は、異なる参照ピクチャブロックに対応する。2つの参照ピクチャブロックが、カレントピクチャブロックの前方参照フレーム/後方参照フレームに含まれてもよいし、1つの参照ピクチャブロックが、カレントピクチャブロックの前方参照フレームに含まれてもよく、他の参照ピクチャブロックが、カレントピクチャブロックの後方参照フレームに含まれてもよい。
任意選択で、二方向インター予測は、カレントビデオフレームと、カレントビデオフレームの前に符号化されて再生されるビデオフレームとの間の相関、およびカレントビデオフレームと、カレントビデオフレームの前に符号化されて、カレントビデオフレームの後に再生されるビデオフレームとの間の相関を使用することによって実行されるインター予測であってもよい。
二方向インター予測は、通常、前方インター予測と後方インター予測と呼ばれる二方向のインター予測を含むことが分かる。前方インター予測は、カレントビデオフレームと、カレントビデオフレームの前に符号化されて再生されるビデオフレームとの間の相関に基づいて、実行されるインター予測である。後方インター予測は、カレントビデオフレームと、カレントビデオフレームの前に符号化されて、カレントビデオフレームの後に再生されるビデオフレームとの間の相関に基づいて、実行されるインター予測である。
前方インター予測は、前方参照フレームリストL0に対応し、後方インター予測は、後方参照フレームリストL1に対応する。2つの参照フレームリストは、同じ数の参照フレームまたは異なる数の参照フレームを含んでもよい。
モーション補償(Motion Compensation、MC)は、参照ピクチャブロックに基づいて、カレントピクチャブロックを予測する処理である。
ほとんどのコーディングフレームワークでは、ビデオシーケンスは一連のピクチャ(picture)を含み、ピクチャは、少なくとも1つのスライス(slice)に分割され、各スライスはさらに、画像ブロック(block)に分割される。ビデオ符号化/復号は、ピクチャブロックによって実行される。符号化/復号は、ピクチャの左上の位置から左から右および上から下に行毎に実行されてもよい。本明細書において、ピクチャブロックは、ビデオコーディング規格H.264におけるマクロブロック(macro block、MB)であってもよいし、高効率ビデオコーディング(High Efficiency Video Coding、HEVC)規格におけるコーディングユニット(Coding Unit、CU)であってもよい。これは、この出願の実施形態において特に限定されない。
この出願では、符号化/復号されているピクチャブロックは、カレントピクチャブロック(current block)と呼ばれ、カレントピクチャブロックが位置するピクチャは、カレントフレームと呼ばれる。
通常、カレントフレームは、一方向予測フレーム(Pフレーム)であってもよいし、二方向予測フレーム(Bフレーム)であってもよい。カレントフレームがPフレームであるときに、カレントフレームは、1つの参照フレームリストを有する。カレントフレームがBフレームであるときに、カレントフレームは、2つの参照フレームリストを有し、2つのリストは通常L0とL1と呼ばれる。各参照フレームリストは、カレントフレームの参照フレームとして使用される少なくとも1つの再構成フレームを含む。参照フレームは、カレントフレーム上のインター予測のための参照サンプルを提供するために使用される。
カレントフレームでは、カレントピクチャブロックに隣接するピクチャブロック(例えば、カレントブロックの左側、上側、または右側)が符号化/復号されていてもよく、再構成ピクチャが取得される。隣接するピクチャブロックは、再構成ピクチャブロックと呼ばれる。再構成ピクチャブロックのコーディングモード、再構成サンプルなどの情報が利用可能である(available)。
カレントフレームが符号化/復号される前に符号化/復号されたフレームは、再構成フレームと呼ばれる。
モーションベクトル(Motion Vector、MV)は、インター予測処理における重要なパラメータであり、カレントピクチャブロックに対して符号化されるピクチャブロックの空間的変位を表す。通常、モーション探索のようなモーション推定(Motion Estimation、ME)法が、モーションベクトルを取得するために使用されてもよい。予備的なインター予測技術では、符号化器側がカレントピクチャブロックのモーションベクトルをビットストリームにおいて送信し、復号器側がカレントピクチャブロックの予測サンプルを再生して、再構成ブロックを取得する。さらに符号化効率を改善するために、さらに、参照モーションベクトルを使用して、モーションベクトルを差分的に符号化する、すなわち、モーションベクトル差(Motion Vector Difference、MVD)のみを符号化することが提案される。
復号器側と符号化器側が同じ参照ピクチャブロックを使用することを可能にするために、符号化器側は、各ピクチャブロックのモーション情報をビットストリームを通して復号器側に送信する必要がある。符号化器側が各ピクチャブロックのモーションベクトルを直接符号化する場合、大量の伝送資源が消費される。空間的に隣接するピクチャブロックのモーションベクトルは強く相関するため、カレントピクチャブロックのモーションベクトルは、隣接する符号化ピクチャブロックのモーションベクトルに基づいて、予測され得る。予測を通して取得されたモーションベクトルは、MVPと呼ばれ、カレントピクチャブロックのモーションベクトルとMVPとの差は、MVDと呼ばれる。
ビデオコーディング規格H.264では、予測精度を改善するために、モーション推定処理においてマルチ参照フレーム予測が使用される。具体的には、複数の再構成フレームを記憶するバッファが生成され、バッファにおけるすべての再構成フレームが、モーション補償のための最適参照ピクチャブロックについて探索され、時間的冗長性をより良く除去する。ビデオコーディング規格H.264では、インター予測に2つのバッファが使用される。すなわち、参照フレームリスト0(参照リスト0)と参照フレームリスト1(参照リスト1)である。各リストにおける最適な参照ブロックが位置する参照フレームは、インデックス値、すなわち、ref_idx_l0またはref_idx_l1が付与される。各参照フレームリストにおいて、参照ピクチャブロックのモーション情報は、参照フレームのインデックス値(ref_idx_l0またはref_idx_l1)、MVP識別子、およびMVDを含む。復号器側は、参照フレームのインデックス値、MVP識別子、およびMVDに基づいて、選択された参照フレームにおいて正しい参照ピクチャブロックを見つけてもよい。
現在、HEVC規格で頻繁に使用されるインター予測モードは、高度モーションベクトル予測(Advanced Motion Vector Prediction、AMVP)モード、マージ(Merge)モード、および非並進モーションモデル予測モードである。
AMVPモードでは、符号化器側は、カレントピクチャブロックに空間的または時間的に隣接する符号化ピクチャブロックのモーション情報を使用して候補モーションベクトルリストを構成し、レート歪みコストに基づいて、カレントピクチャブロックのMVPとして、候補モーションベクトルリストにおける最適なモーションベクトルを決定する。追加的に、符号化器側は、MVPを中心とした近傍でモーション探索を実行して、カレントピクチャブロックのモーションベクトルを取得する符号化器側は、候補モーションベクトルリストにおけるMVPのインデックス値(すなわちMVP識別子)、参照フレームのインデックス値、MVDを復号器側に送信する。
マージモードでは、符号化器側は、カレントピクチャブロックに空間的または時間的に隣接する符号化ピクチャブロックのモーション情報を使用して候補モーション情報リストを構成し、レート歪みコストに基づいて、カレントピクチャブロックのモーション情報として、候補モーション情報リストにおける最適なモーション情報を決定する。符号化器側は、候補モーション情報リストにおける最適なモーション情報の位置のインデックス値を復号器側に送信する。
非並進モーションモデル予測モードでは、符号化器側と復号器側は、同一のモーションモデルを使用してカレントピクチャブロックの全サブブロックのモーション情報を導出し、全サブブロックのモーション情報に基づいて、モーション補償を実行して、予測ピクチャブロックを取得する。これは、予測効率を改善する。符号化器側と復号器側によって頻繁に使用されるモーションモデルは、4パラメータアフィンモデル、6パラメータアフィン変換モデル、または8パラメータ双線形モデルである。
例えば、4-パラメータアフィン変換モデルは、2つのサンプルのモーションベクトルと、カレントピクチャブロックの左上のサンプルに対する2つのサンプルの座標とを使用して表されてもよい。本明細書において、モーションモデルパラメータを表すために使用されるサンプルは、制御点と呼ばれる。カレントピクチャブロックの左上のサンプル(0,0)と、カレントピクチャブロックの右上のサンプル(W,0)とが制御点であり、かつ、カレントピクチャブロックの左上のサンプルおよび右上のサンプルのモーションベクトルがそれぞれ(vx0,vy0)および(vx1,vy1)である場合、カレントピクチャブロックの各サブブロックのモーション情報は、式(1)に従って、取得される。式(1)において、(x,y)は、カレントピクチャブロックの左上のサンプルに対するサブブロックの座標を表し、(vx,vy)は、サブブロックのモーションベクトルを表し、Wは、カレントピクチャブロックの幅を表す。
例えば、6パラメータアフィン変換モデルは、3つのサンプルのモーションベクトルと、カレントピクチャブロックの左上のサンプルに対する座標を使用して表されてもよい。カレントピクチャブロックの左上のサンプル(0,0)、カレントピクチャブロックの右上のサンプル(W,0)、およびカレントピクチャブロックの左下のサンプル(0,H)が制御点であり、カレントピクチャブロックの左上のサンプル、右上のサンプル、および左下のサンプルのモーションベクトルがそれぞれ(vx0,vy0)、(vx1,vy1)、および(vx2,vy2)である場合、カレントピクチャブロックの各サブブロックのモーション情報は、数(2)に従って、取得される。式(2)において、(x,y)は、カレントピクチャブロックの左上のサンプルに対するサブブロックの座標を表し、(vx,vy)は、サブブロックのモーションベクトルを表し、WとHは、それぞれ、カレントピクチャブロックの幅と高さを表す。
例えば、8パラメータ双線形モデルは、4つのサンプルのモーションベクトルと、カレントピクチャブロックの左上のサンプルに対する4つのサンプルの座標とを使用して表されてもよい。カレントピクチャブロックの左上のサンプル(0,0)、カレントピクチャブロックの右上のサンプル(W,0)、カレントピクチャブロックの左下のサンプル(0,H)、およびカレントピクチャブロックの右下のサンプル(W,H)が制御点であり、カレントピクチャブロックの左上のサンプル、右上のサンプル、左下のサンプル、および右下のサンプルのモーションベクトルがそれぞれ(vx0,vy0)、(vx1,vy1)、(vx2,vy2)、および(vx3,vy3)である場合、カレントピクチャブロックの各サブブロックのモーション情報は、式(3)に従って、取得される。式(3)において、(x,y)は、カレントピクチャブロックの左上のサンプルに対するサブブロックの座標を表し、(vx,vy)は、サブブロックのモーションベクトルを表し、WとHは、それぞれ、カレントピクチャブロックの幅と高さを表す。
前述のインター予測モードのいずれか1つにおいて、インター予測が二方向インター予測である場合、符号化器側は、各方向における各ピクチャブロックのモーション情報を復号器側に送信する必要があることが容易に分かる。その結果、モーション情報は、比較的大量の伝送資源を占める。これは、伝送資源、伝送レート、およびコーディング圧縮効率の有効利用を低下させる。
前述の問題を解決するために、この出願は二方向インター予測法を提供する。二方向インター予測では、符号化器側が第1の方向におけるカレントピクチャブロックのモーション情報を復号器側に送信し、復号器側が第1の方向におけるカレントピクチャブロックのモーション情報を受信した後、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算する。このようにして、カレントピクチャブロックの予測サンプルは、第1の方向におけるカレントピクチャブロックのモーション情報、および第2の方向におけるカレントピクチャブロックのモーション情報に基づいて、計算されてもよい。
この出願において提供される二方向インター予測方法は、二方向インター予測装置、ビデオコーディング装置、ビデオコーデック、またはビデオコーディング機能を有する別のデバイスによって実行されてもよい。
この出願において提供される二方向インター予測法は、ビデオコーディングシステムに適用可能である。ビデオコーディングシステムでは、ビデオ符号化器100およびビデオ復号器200は、この出願において提供される二方向インター予測方法の例に従って、カレントピクチャブロックのモーション情報を計算するように構成される。具体的には、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報が計算されて、第1の方向におけるカレントピクチャブロックのモーション情報および第2の方向におけるカレントピクチャブロックのモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定されるようにする。このようにして、ビデオ符号化器10とビデオ符号化器20との間では、第1の方向におけるカレントピクチャブロックのモーション情報のみが送信される必要がある。これは、伝送資源の利用とコーディング圧縮効率を効果的に改善する。
図1は、ビデオコーディングシステムの構造を示す。図1に示すように、ビデオコーディングシステム1は、送信元装置10と宛先装置20とを含む。送信元装置10は、符号化ビデオデータを生成する。送信元装置10は、ビデオ符号化装置またはビデオ符号化デバイスとも呼ばれることがある。宛先装置20は、送信元装置10によって生成された符号化ビデオデータを復号してもよい。宛先装置20は、ビデオ復号装置またはビデオ復号デバイスとも呼ばれることがある。送信元装置10および/または宛先装置20は、少なくとも1つのプロセッサおよび少なくとも1つのプロセッサに結合されたメモリを含んでもよい。メモリは、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、電気的に消去可能なプログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read-Only Memory、EEPROM)、フラッシュメモリ、またはコンピュータによってアクセス可能な命令またはデータ構造の形態で必要なプログラムコードを記憶するように構成され得る他の任意の媒体を含んでもよいが、これらに限定されない。これは、この出願において特に限定されない。
送信元装置10および宛先装置20は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、「スマートフォン」のようなハンドヘルド電話セット、テレビジョンセット、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、および類似の装置を含む様々な装置を含んでもよい。
宛先装置20は、リンク30を通して送信元装置10から符号化ビデオデータを受信してもよい。リンク30は、符号化ビデオデータを送信元装置10から宛先装置20へ転送することができる1つ以上の媒体および/または装置を含んでもよい。一実施形態では、リンク30は、送信元装置10が符号化ビデオデータを宛先装置20にリアルタイムで直接送信することを可能にする1つ以上の通信媒体を含んでもよい。この例では、送信元装置10は、通信規格(例えば、無線通信プロトコル)に従って符号化ビデオデータを変調し、変調ビデオデータを宛先装置20に送信してもよい。1つ以上の通信媒体は、無線および/または有線通信媒体、例えば、無線周波数(Radio Frequency、RF)スペクトルまたは1つ以上の物理的伝送線を含んでもよい。1つ以上の通信媒体は、パケットベースのネットワークの一部を構成することができ、パケットベースのネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(例えば、インターネット)である。1つ以上の通信媒体は、送信元装置10から宛先装置20への通信を実施するルータ、スイッチ、基地局、または他のデバイスを含んでもよい。
別の例では、符号化ビデオデータは、出力インターフェース103を通して記憶装置40に出力されてもよい。同様に、符号化ビデオデータは、記憶装置40から入力インターフェース240を通してアクセスされてもよい。記憶装置40は、ブルーレイ・ディスク、高密度デジタル・ビデオ・ディスク(Digital Video Disc、DVD)、コンパクト・ディスク読み取り専用メモリ(Compact Disc Read-Only Memory、CD-ROM)、フラッシュ・メモリ、または符号化されたビデオデータを記憶するように構成されている別の適切なデジタル記憶媒体のような、複数のタイプの局所的にアクセス可能なデータ記憶媒体を含んでもよい。
別の例では、記憶装置40は、送信元装置10によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶装置に対応してもよい。この例では、宛先装置20は、ストリーミング送信またはダウンロードを通して記憶されたビデオデータを記憶装置40から取得してもよい。ファイルサーバは、符号化ビデオデータを記憶し、符号化ビデオデータを宛先装置20に送信することができる任意のタイプのサーバとすることができる。例えば、ファイルサーバは、(例えば、ウェブサイトのために使用される)ワールド・ワイド・ウェブ(World Wide Web、Web)サーバ、ファイル転送プロトコル(File Transfer Protocol、FTP)サーバ、ネットワーク接続記憶装置(Network Attached Storage、NAS)、またはローカルディスクドライブを含んでもよい。
宛先装置20は、任意の標準的なデータ接続(例えば、インターネット接続)を通して符号化ビデオデータにアクセスしてもよい。例示のタイプのデータ接続は、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した無線チャネル、有線接続(例えば、ケーブルモデム)、またはそれらの組み合わせを含む。ファイルサーバからの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはそれらの組み合わせであってもよい。
このアプリケーションにおける二方向インター予測法は、無線アプリケーションシナリオに限定されない。例えば、このアプリケーションにおける二方向インター予測方法は、以下のアプリケーションのような複数のマルチメディアアプリケーションをサポートするためのビデオコーディングに使用されてもよい。すなわち、無線テレビジョン放送、ケーブルテレビジョン伝送、衛星テレビジョン伝送、ストリーミングビデオ伝送(例えば、インターネットを通して)、データ記憶媒体に記憶されたビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または別のアプリケーションである。いくつかの例において、ビデオコーディングシステム1は、ストリーミングビデオ伝送、ビデオ再生、ビデオ放送、および/またはビデオテレビ電話のようなアプリケーションをサポートするために、一方向または二方向ビデオ伝送をサポートするように構成されてもよい。
図1に示すビデオコーディングシステム1は、ビデオコーディングシステムの一例にすぎず、本願におけるビデオコーディングシステムに何ら制限をもたらすものではないと留意されたい。この出願で提供される二方向インター予測方法は、さらに、符号化装置と復号装置との間にデータ通信が存在しないシナリオに適用可能である。他の例では、符号化対象ビデオデータまたは符号化ビデオデータをローカルメモリから探索されてもよいし、ネットワーク上でストリーミング方式で送信されたりしてもよい。ビデオ符号化装置は、符号化対象ビデオデータを符号化し、符号化ビデオデータをメモリに記憶してもよい。ビデオ復号装置は、メモリから符号化ビデオデータを取得し、符号化ビデオデータを復号してもよい。
図1において、送信元装置10は、ビデオソース101と、ビデオ符号化器102と、出力インターフェース103とを含む。いくつかの例では、出力インターフェース103は、変調器/復調器(モデム)および/または送信器を含んでもよい。ビデオソース101は、ビデオ・キャプチャ装置(例えば、カメラ)、以前にキャプチャされたビデオデータを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオデータを受信するためのビデオ入力インターフェース、および/またはビデオデータを生成するためのコンピュータ・グラフィックス・システム、または前述のビデオデータソースの組み合わせを含んでもよい。
ビデオ符号化器102は、ビデオソース101からのビデオデータを符号化してもよい。いくつかの例では、送信元装置10は、符号化ビデオデータを出力インターフェース103を通して宛先装置20に直接送信する。他の例では、符号化ビデオデータは、代替的には、記憶装置40に記憶されてもよく、宛先装置20がその後に復号および/または再生のために符号化ビデオデータにアクセスするようにする。
図1の例では、宛先装置20は、表示装置201と、ビデオ復号器202と、入力インターフェース203とを含む。いくつかの例では、入力インターフェース203は、受信機および/またはモデムを含む。入力インターフェース203は、リンク30を通しておよび/または記憶装置40から符号化ビデオデータを受信してもよい。表示装置201は、宛先装置20と一体化されてもよいし、宛先装置20の外側に配置されてもよい。通常、表示装置201は、復号ビデオデータを表示する。表示装置201は、複数のタイプの表示装置、例えば、液晶ディスプレイ、プラズマディスプレイ、有機発光ダイオードディスプレイ、または別のタイプの表示装置を含んでもよい。
任意選択で、ビデオ符号化器102およびビデオ復号器202は、それぞれ、オーディオ符号化器およびオーディオ復号器と一体化されてもよく、適切なマルチプレクサ・デマルチプレクサ・ユニットまたは他のハードウェアおよびソフトウェアを含んでもよく、組み合わされたデータストリームまたは別個のデータストリームにおいてオーディオおよびビデオの両方を符号化する。
ビデオ符号化器102およびビデオ復号器202は、少なくとも1つのマイクロプロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、ディスクリート論理、ハードウェア、またはそれらの任意の組み合わせを含んでもよい。この出願において提供される二方向インター予測方法がソフトウェアを使用して実施される場合、ソフトウェアのために使用される命令は、適切な不揮発性コンピュータ可読記憶媒体に記憶されてもよく、少なくとも1つのプロセッサは、この出願を実施するためにハードウェアにおける命令を実行するために使用されてもよい。前述のコンテンツ(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせ等を含む)のいずれか1つは、少なくとも1つのプロセッサとみなされてもよい。ビデオ符号化器102は符号化器に含まれてもよく、ビデオ復号器202は復号器に含まれてもよく、符号化器または復号器は、対応する装置の組み合わされた符号化器/復号器の一部であってもよい。
この出願におけるビデオ符号化器102およびビデオ復号器202は、ビデオ圧縮規格(例えば、HEVC)に従って演算を実行してもよいし、別の業界規格に従って演算を実行してもよい。これは、この出願において特に限定されない。
ビデオ符号化器102は、カレントピクチャブロックに対して二方向モーション推定を実行して、第1の方向におけるカレントピクチャブロックのモーション情報を決定し、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算するように構成されている。このようにして、ビデオ符号化器102は、第1の方向におけるカレントピクチャブロックのモーション情報および第2の方向におけるカレントピクチャブロックのモーション情報に基づいて、カレントピクチャブロックの予測ピクチャブロックを決定する。さらに、ビデオ符号化器102は、カレントピクチャブロックとカレントピクチャブロックの予測ピクチャブロックとの間の残差について変換および量子化のような演算を実行して、ビットストリームを生成し、そのビットストリームをビデオ復号器202に送信する。ビットストリームは、第1の方向におけるカレントピクチャブロックのモーション情報と、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用される指示情報とを含む。指示情報は、異なる識別子を使用して表わされてもよい。指示情報の表すための方法については、以下の説明を参照のこと。
任意選択で、「ビデオ符号化器102が、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算する」ための方法としては、以下のようであってもよい。すなわち、ビデオ符号化器102が、第1の方向におけるカレントピクチャブロックのモーションベクトルに基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトルを決定するか、またはビデオ符号化器102が、第1の方向におけるカレントピクチャブロックのモーションベクトル差に基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトル差を決定し、第2の方向におけるカレントピクチャブロックのモーションベクトル差、および第2の方向におけるカレントピクチャブロックの予測モーションベクトルに基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトルを決定する。
以下の図4を参照のこと。ビデオ復号器202は、ビットストリームを取得し、ビットストリームを解析して、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用される指示情報を取得すること(S400)、言い換えると、ある方向におけるモーション情報に基づいて、別の方向におけるモーション情報を導出および計算することを決定することであって、第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報であり、本明細書において第1の方向および第2の方向は異なる、決定することと、第1のモーション情報を取得すること(S401)と、取得された第1のモーション情報に基づいて、第2のモーション情報を決定すること(S402)と、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定すること(S403)と、を行うように構成されている。
「ビデオ復号器202が、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算する」ための方法は、以下のようであってもよい。すなわち、ビデオ復号器202が、第1の方向におけるカレントピクチャブロックのモーションベクトルに基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトルを決定するか、または、ビデオ復号器202が、第1の方向におけるカレントピクチャブロックのモーションベクトル差に基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトル差を決定し、第2の方向におけるカレントピクチャブロックのモーションベクトル差、および第2の方向におけるカレントピクチャブロックの予測モーションベクトルに基づいて、第2の方向におけるカレントピクチャブロックのモーションベクトルを決定する。
図2は、この出願の一実施形態によるビデオ符号化器102の概略構造図である。図2に示すように、ビデオ符号化器102は、後処理エンティティ41にビデオを出力するように構成されている。後処理エンティティ41は、ビデオ符号化器102からの符号化ビデオデータを処理することができるビデオエンティティの一例であり、例えば、メディア認識ネットワーク要素(MANE)またはステッチ装置/編集装置である。場合によっては、後処理エンティティ41は、ネットワークエンティティの一例であってもよい。いくつかのビデオ符号化システムでは、後処理エンティティ41およびビデオ符号化器102は、別個の装置の構成要素であってもよい。他の場合には、後処理エンティティ41に関して説明された機能は、ビデオ符号化器100を含む同じ装置によって実行されてもよい。一例において、後処理エンティティ41は、図1の記憶装置40の一例である。
ビデオ符号化器102は、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を導出および計算し、さらに、第1の方向におけるカレントピクチャブロックのモーション情報および第2の方向におけるカレントピクチャブロックのモーション情報に基づいて、カレントピクチャブロックの予測ピクチャブロックを決定して、二方向インター予測符号化を完了してもよい。
図2に示すように、ビデオ符号化器102は、変換器301と、量子化器302と、エントロピー符号化器303と、フィルタ306と、メモリ307と、予測処理ユニット308と、加算器312とを含む。予測処理ユニット308は、イントラ予測器309およびインター予測器310を含む。ピクチャブロックを再構成するために、ビデオ符号化器102は、さらに、逆量子化器304と、逆変換器305と、加算器311とを含む。フィルタ306は、1つ以上のループフィルタ、例えば、デブロッキングフィルタ、適応ループフィルタ、およびサンプル適応オフセットフィルタを表すように指定されている。
メモリ307は、ビデオ符号化器102のコンポーネントによって符号化されたビデオデータを記憶してもよい。メモリ307に記憶されたビデオデータは、ビデオソース101から取得されてもよい。メモリ307は、ビデオ符号化器102がビデオデータをイントラまたはインターコーディングモードで符号化するために使用される参照ビデオデータを記憶する参照ピクチャメモリであってもよい。メモリ307は、同期DRAM (synchronous DRAM、SDRAM)、磁気抵抗RAM (magnetic RAM、MRAM)、抵抗RAM (resistive RAM、RRAM)、または別のタイプのメモリ装置を含むダイナミックランダムアクセスメモリ(dynamic RAM、DRAM)であってもよい。
ビデオ符号化器102は、ビデオデータを受信し、ビデオデータメモリにビデオデータを記憶する。分割ユニットは、ビデオデータを複数のピクチャブロックに分割し、これらのピクチャブロックは、例えば、四分木構造またはバイナリツリー構造に基づいて、分割された、より小さなブロックにさらに分割されてもよい。分割は、スライス(slice)、タイル(tile)、または他のより大きなユニットに分割することをさらに含んでもよい。ビデオ符号化器102は、通常、符号化対象ビデオスライスにおけるピクチャブロックを符号化するための構成要素である。スライスは、複数のピクチャブロックに分割されてもよい(タイルと呼ばれるピクチャブロックセットに分割されてもよい)。
予測処理ユニット308におけるイントラ予測器309は、カレントピクチャブロックと同じフレームまたはスライスにある1つ以上の隣接するピクチャブロックに対して、カレントピクチャブロックについてイントラ予測符号化を実行して、空間的冗長性を除去してもよい。予測処理ユニット308におけるインター予測器310は、1つ以上の参照ピクチャにおける1つ以上の予測ピクチャブロックに対して、カレントピクチャブロックについてインター予測符号化を実行して、時間的冗長性を除去してもよい。
予測処理ユニット308は、取得されたイントラ符号化およびインター符号化ピクチャブロックをビデオ符号化器310に提供して、残差ブロックを生成し、残差ブロックを加算器312に提供して、参照画像として使用される符号化ブロックを再構成してもよい。
予測処理ユニット308は、カレントピクチャブロックの予測ピクチャブロックをインター予測およびイントラ予測を通じて生成した後、ビデオ符号化器102は、符号化対象のカレントピクチャブロックから予測ピクチャブロックを減算することにより、残差ピクチャブロックを生成する。加算器312は、この減算演算を実行する1つ以上の構成要素を表す。残差ブロックにおける残差ビデオデータは、1つ以上の変換ユニット(transform unit、TU)に含まれ、変換器301に適用されてもよい。変換器301は、離散コサイン変換(discrete cosine transform、DCT)または概念的に類似した変換のような変換を通して、残差ビデオデータを残差変換係数に変換する。変換器301は、残差ビデオデータをサンプル値領域から変換領域、例えば周波数領域に変換してもよい。
変換器301は、取得された変換係数を量子化器302に送信してもよい。量子化器302は、変換係数を量子化して、ビットレートをさらに低減する。いくつかの例では、量子化器302は、さらに、量子化された変換係数を含む行列を走査してもよい。代替的には、エントロピー符号化器303は、走査を実行してもよい。
量子化後、エントロピー符号化器303は、量子化された変換係数についてエントロピー符号化を実行する。例えば、エントロピー符号化器303は、文脈適応型可変長コーディング(context-adaptive variable-length coding、CAVLC)、文脈適応型バイナリ算術演算コーディング(context-adaptive variable-length coding、CABAC)、または別のエントロピーコーディング方法または技術を実行してもよい。エントロピー符号化器303がエントロピー符号化を実行した後、符号化されたビットストリームがビデオ復号器202に送信されるか、ビデオ復号器202による後続の送信または後続の探索のためにアーカイブされる。エントロピー符号化器303は、さらに、符号化対象のカレントピクチャブロックの構文要素についてエントロピー符号化を実行してもよい。
逆量子化器304および逆変換器305は、それぞれ逆量子化および逆変換を実行して、例えば、後に参照ピクチャの参照ブロックとして使用される、サンプル領域における残差ブロックを再構成する。加算器311は、インター予測器310またはイントラ予測器309によって生成された予測ピクチャブロックに、再構成された残差ブロックを追加して、再構成ピクチャブロックを生成する。ピクチャブロックの予測ピクチャブロックは、ピクチャブロックの参照ピクチャブロックについて処理(補間等)を実行することによって取得され得る。
ビデオ符号化器102の他の構造的バリエーションは、ビデオストリームを符号化するように構成されてもよいと理解されたい。例えば、いくつかのピクチャブロックまたはピクチャフレームに対して、ビデオ符号化器102は、残差信号を直接量子化してもよく、これに対応して、変換器301および逆変換器305による処理は必要とされない。代替的に、いくつかのピクチャブロックまたはピクチャフレームに対して、ビデオ符号化器102は残差データを生成せず、これに対応して、変換器301、量子化器302、逆量子化器304、および逆変換器305による処理は必要とされない。代替的に、ビデオ符号化器102は、フィルタ306による処理なしに、再構成ピクチャブロックを参照ブロックとして直接記憶してもよい。代替的には、ビデオ符号化器102における量子化器302と逆量子化器304が組み合わせられてもよい。
図3は、この出願の一実施形態によるビデオ復号器202の概略構造図である。図3に示すように、ビデオ復号器202は、エントロピー復号器401と、逆量子化器402と、逆変換器403と、フィルタ404と、メモリ405と、予測処理ユニット406と、加算器409とを含む。予測処理ユニット406は、イントラ予測器407とインター予測器408とを含む。いくつかの例では、ビデオ復号器202は、図2のビデオ符号化器102に関して説明された符号化処理とほぼ逆の復号処理を実行してもよい。
復号処理では、ビデオ復号器202は、ビデオ符号化器102からビットストリームを受信する。ビデオ復号器202は、ネットワークエンティティ42からビデオデータを受信してもよく、任意選択で、さらに、ビデオデータメモリ(図示せず)にビデオデータを記憶してもよい。ビデオデータメモリは、ビデオ復号器202の構成要素、例えば符号化ビットストリームによって復号されるべきビデオデータを記憶してもよい。ビデオデータメモリに記憶されたビデオデータは、例えば、ビデオデータの有線または無線ネットワーク通信を通して、または物理的なデータ記憶媒体をアクセスすることによって、記憶装置40またはカメラのようなローカルビデオソースから取得されてもよい。ビデオデータメモリは図3には示されていないが、ビデオデータメモリおよびメモリ405は、同じメモリであってもよく、または別個のメモリに配置されてもよい。ビデオデータメモリおよびメモリ405は、各々、複数のタイプのメモリ装置、例えば、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または別のタイプのメモリ装置を含むダイナミックランダムアクセスメモリ(DRAM)のいずれかを含んでもよい。様々な例において、ビデオデータメモリは、ビデオ復号器200の他の構成要素と共にチップ上に集積されてもよく、またはこれらの構成要素に対してチップの外側に配置されてもよい。
ネットワークエンティティ42は、例えば、サーバ、MANE、ビデオエディタ/クリッパ、または上述の技術の1つ以上を実施するように構成されている別の装置であってもよい。ネットワークエンティティ42は、ビデオ符号化器、例えば、ビデオ符号化器102を含んでもよいし、含まなくてもよい。ネットワークエンティティ42がビデオ復号器202にビットストリームを送信する前に、ネットワークエンティティ42は、この出願で説明された技術の一部を実施してもよい。いくつかのビデオ復号システムでは、ネットワークエンティティ42およびビデオ復号器202は、別個の装置の構成要素であってもよい。他の場合には、ネットワークエンティティ42に関して説明された機能は、ビデオ復号器202を含む同じ装置によって実行されてもよい。場合によっては、ネットワークエンティティ42は、図1の記憶装置40の一例であってもよい。
ビデオ復号器202のエントロピー復号器401は、ビットストリームについてエントロピー復号を行い、量子化された係数およびいくつかの構文要素を生成する。エントロピー復号器401は、構文要素をフィルタ404に転送する。ビデオ復号器202は、ビデオスライスレベルおよび/またはピクチャブロックレベルで複数の構文要素/1つの構文要素を受信してもよい。この出願において、例では、本明細書における構文要素は、カレントピクチャブロックに関連する指示情報を含んでもよく、指示情報は、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用される。追加的に、いくつかの例では、ビデオ符号化器102は、第1のモーション情報に基づいて、第2のモーション情報を決定するかどうかを指示する特定の構文要素を通知する信号を送信してもよい。
逆量子化器402は、ビットストリームにおいて提供され、エントロピー復号器401によって復号される量子化変換係数について、逆量子化、すなわち、逆量子化を実行する。逆量子化プロセスは、ビデオスライスにおいて各ピクチャブロックに対してビデオ符号化器102によって計算された量子化パラメータを使用して、適用対象の量子化度を決定することと、同様に適用対象の逆量子化度を決定することと、含んでもよい。逆変換器403は、逆変換、例えば逆DCT、逆整数変換、または概念的に類似した逆変換処理を変換係数に適用して、サンプル領域における残差ブロックを生成する。
予測処理ユニット406が、カレントピクチャブロックまたはカレントピクチャブロックのサブブロックに対して予測ピクチャブロックを生成した後、ビデオ復号器202は、逆変換器403からの残差ブロックと、予測処理ユニット406によって生成された対応する予測ピクチャブロックとを合計して、再構成ブロック、すなわち復号ピクチャブロックを取得する。加算器409(再構成器409とも呼ばれる)は、この加算演算を実行する構成要素を表す。必要なときに、サンプルを平滑化するために(復号ループの中またはその後に)フィルタがさらに使用されてもよいし、別の方式でビデオ品質を改善されてもよい。フィルタ404は、例えば、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタである1つ以上のループフィルタであってもよい。
ビデオ復号器202の他の構造的バリエーションは、ビットストリームを復号するように構成されてもよいと理解されたい。例えば、いくつかのピクチャブロックまたはピクチャフレームに対して、ビデオ復号器202のエントロピー復号器401は、復号を通して量子化係数を取得せず、これに対応して、逆量子化器402および逆変換器403による処理は必要とされない。例えば、ビデオ復号器202における逆量子化器402および逆変換器403が組み合わせられてもよい。
図1に示すビデオコーディングシステム1、図2に示すビデオ符号化器102、および図3に示すビデオ復号器202を参照して、以下では、この出願に提供される二方向インター予測方法を詳細に説明する。
図4は、この出願の一実施形態による二方向インター予測方法の概略フローチャートである。図4に示す方法は、二方向インター予測装置によって実行される。二方向インター予測装置は、図1のビデオ復号器202であってもよい。図4は、二方向インター予測装置がビデオ復号器202である例を使用して説明される。
図4に示すように、この出願のこの実施形態における二方向インター予測方法は、以下のステップを含んでもよい。
S400:ビデオ復号器202は、取得されたビットストリームを解析し、指示情報を取得する。
任意選択で、ビデオ復号器202は、ビットストリームを解析し、ビットストリーム内の構文要素の値に基づいて、カレントフレームにおけるカレントピクチャブロックについてインター予測を実行するために使用されるインター予測モードを決定する。ビデオ復号器202は、インター予測モードが二方向インター予測モードであるときに、指示情報を取得する。
ビデオ復号器202は、ビデオ符号化器102によって送信された符号化ビットストリームを受信してもよいし、または記憶装置40から符号化ビットストリームを取得してもよい。
任意選択で、この出願のこの実施形態におけるビデオ復号器202は、構文要素inter_pred_idcの値に基づいて、カレントフレームにおけるカレントピクチャブロックについてインター予測を実行するために使用されるインター予測モードを決定する。前述の説明から、インター予測は、一方向インター予測および二方向インター予測を含むことが分かる。任意選択で、構文要素inter_pred_idcの値が0であるときに、ビデオ復号器202は、カレントフレームにおけるカレントピクチャブロックについてインター予測を実行するために使用されるインター予測モードが前方インター予測であると決定し、構文要素inter_pred_idcの値が1であるときに、ビデオ復号器202は、カレントフレームにおけるカレントピクチャブロックについてインター予測を実行するために使用されるインター予測モードが後方インター予測であると決定し、構文要素inter_pred_idcの値が2であるときに、ビデオ復号器202は、カレントフレームにおけるカレントピクチャブロックについてインター予測を実行するために使用されるインター予測モードが二方向インター予測であると決定する。
任意選択で、構文要素inter_pred_idcの値が2であると決定した後、ビデオ復号器202は、第1のモーション情報に基づいて、第2のモーション情報を決定することを指示するために使用される指示情報を取得する。第1のモーション情報は、第1の方向におけるカレントピクチャブロックのモーション情報であり、第2のモーション情報は、第2の方向におけるカレントピクチャブロックのモーション情報であり、第1の方向は、第2の方向と異なる。
この出願におけるピクチャブロックは、ビデオ符号化またはビデオ復号を実行するための基本単位、例えばコーディングユニット(Coding Unit、CU)であってもよいし、予測演算を実行するための基本単位、例えば予測ユニット(Prediction Unit、PU)であってもよい。これは、この出願のこの実施形態において特に限定されない。
ピクチャブロックがビデオ符号化またはビデオ復号を実行するための基本単位である場合、この出願のこの実施形態におけるカレントピクチャブロックは、少なくとも1つのサブブロックを含む。これに対応して、第1のモーション情報は、第1の方向におけるカレントピクチャブロックにおける少なくとも1つのサブブロックの各々のモーション情報を含み、第2のモーション情報は、第2の方向におけるカレントピクチャブロックにおける少なくとも1つのサブブロックの各々のモーション情報を含み、指示情報は、第1の方向のサブブロックのモーション情報に基づいて、第2の方向のサブブロックのモーション情報を決定することを指示するために使用される。
ビデオ復号器202は、複数の方式で指示情報を取得してもよい。
第1の実施態様では、ビデオ復号器202は第1の識別子を解析する。第1の識別子の値が第1のプリセット値であるときに、ビデオ復号器202は、第1のモーション情報を解析することを決定し、第1のモーション情報に基づいて、第2のモーション情報を決定する。言い換えると、ビデオ復号器202は、指示情報を取得する。第1の識別子の値が第8のプリセット値であるときに、ビデオ復号器202は、第5の識別子を取得するためにビットストリームを解析する。第5の識別子の値が第5のプリセット値であるときに、ビデオ復号器202は、第2のモーション情報を解析することを決定し、第2のモーション情報に基づいて、第1のモーション情報を計算する。第5の識別子の値が第9のプリセット値であるときに、ビデオ復号器202は、第1のモーション情報および第2のモーション情報を取得する。第1のプリセット値および第5のプリセット値は同じであってもよいし、異なってもよい。これは、この出願のこの実施形態において特に限定されない。
例えば、第1の識別子はmv_derived_flag_l0であり、第5の識別子はmv_derived_flag_l1であり、第1のプリセット値および第5のプリセット値の両方とも1であり、第8のプリセット値および第9のプリセット値の両方とも0である。ビデオ復号器202は、最初に、mv_derived_flag_l0を解析する。mv_derived_flag_l0の値が1であるときに、ビデオ復号器202は、第1のモーション情報を解析し、第1のモーション情報に基づいて、第2のモーション情報を決定する。mv_derived_flag_l0の値が0であるときに、ビデオ復号器202は、mv_derived_flag_l1を解析する。mv_derived_flag_l1の値が1であるときに、ビデオ復号器202は、第2のモーション情報を解析し、第2のモーション情報に基づいて、第1のモーション情報を計算する。mv_derived_flag_l0の値とmv_derived_flag_l1の値の両方が0であるときに、ビデオ復号器202は、第1のモーション情報と第2のモーション情報を解析する。
第2の実施態様では、ビデオ復号器202は、第2の識別子を解析する。第2の識別子の値が第2のプリセット値であるときに、ビデオ復号器202は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算することを決定する。次いで、ビデオ復号器202は、第3の識別子を解析する。第3の識別子の値が第3のプリセット値であるときに、ビデオ復号器202は、第1のモーション情報を解析することを決定し、第1のモーション情報に基づいて、第2のモーション情報を決定する。言い換えると、ビデオ復号器202は、指示情報を取得する。第3の識別子の値が第6のプリセット値である場合、ビデオ復号器202は、第2のモーション情報を解析することを決定し、第2のモーション情報に基づいて、第1のモーション情報を計算する。
例えば、第2の識別子はderived_mv_flag、第3の識別子はderived_mv_direction、第3のプリセット値は1、第6のプリセット値は0である。ビデオ復号器202は、最初に、derived_mv_flagを解析する。derived_mv_flagの値が1であるときに、ビデオ復号器202は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算することを決定する。derived_mv_flagの値が0であるときに、ビデオ復号器202は、第1のモーション情報と第2のモーション情報を解析する。derived_mv_directionの値が1であるときに、ビデオ復号器202は、第1のモーション情報を解析し、第1のモーション情報に基づいて、第2のモーション情報を決定する。derived_mv_directionの値が0であるときに、ビデオ復号器202は、第2のモーション情報を解析することを決定し、第2のモーション情報に基づいて、第1のモーション情報を計算する。
第3の実施態様では、ビデオ復号器202は、第2の識別子を解析する。第2の識別子の値が第2のプリセット値であるときに、ビデオ復号器202は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算することを決定する。次いで、ビデオ復号器202は、プリセット導出方向に基づいて、第1のモーション情報を解析することを決定し、第1のモーション情報に基づいて、第2のモーション情報を決定する。言い換えると、ビデオ復号器202は、指示情報を取得する。言い換えると、この実施態様では、「第1のモーション情報に基づいて、第2のモーション情報を決定する」ことがプリセットされている。第2の識別子の値が第7のプリセット値であるときに、ビデオ復号器202は、第1のモーション情報および第2のモーション情報を解析する。
例えば、第2の識別子はderived_mv_flagであり、第2のプリセット値は1であり、第7のプリセット値は0である。ビデオ復号器202は、derived_mv_flagを解析する。derived_mv_flagの値が1であるときに、ビデオ復号器202は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算することを決定する。さらに、ビデオ復号器202は、第1のモーション情報を解析することを決定し、第1のモーション情報に基づいて、第2のモーション情報を決定する。derived_mv_flagの値が0であるときに、ビデオ復号器202は、第1のモーション情報および第2のモーション情報を解析する。
第4の実施態様では、ビデオ復号器202は、第4の識別子(例えば、mv_derived_flag_l0)を解析する。第4の識別子の値が第4のプリセット値であるときに、ビデオ復号器202は、モーション情報導出アルゴリズムに従って、カレントピクチャブロックのモーション情報を計算することを決定し、第1の参照フレームリストおよび第2の参照フレームリストに基づいて、変数derived_ref_numを計算する。変数は、第1の参照フレームおよび第2の参照フレームに基づいて、形成され得るミラー/線形参照フレーム組み合わせの量を表す。参照フレーム組み合わせの量が1であるときに、ビデオ復号器202は、参照フレームのインデックス値を直接決定する。次いで、ビデオ復号器202は、プリセット導出方向に基づいて、第1のモーション情報を解析することを決定し、第1のモーション情報に基づいて、第2のモーション情報を決定する。言い換えると、ビデオ復号器202は、指示情報を取得する。第1の参照フレームリストは、第1の方向におけるカレントピクチャブロックの参照フレームリストであり、第2の参照フレームリストは、第2の方向におけるカレントピクチャブロックの参照フレームリストであり、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームである。この出願のこの実施形態における参照フレームのインデックス値は、対応する参照フレームリストにおける参照フレームの番号である。
例えば、カレントフレームのシーケンス番号は4であり、第1の参照フレームリストは[2,0]であり、第2の参照フレームリストは{6,7}である。条件Bまたは条件Cに基づいて、第1の参照フレームリストにおいてシーケンス番号が2である参照フレームと、第2の参照フレームリストにおいてシーケンス番号が6である参照フレームが参照フレーム組み合わせを構成することができると決定される。この場合、第1の参照フレームのインデックス値および第2の参照フレームのインデックス値の両方とも0である。
カレントフレームのシーケンス番号が4であり、第1の参照フレームリストが{2,0}であり、第2の参照フレームリストが{6,7}である場合、条件Bまたは条件Cに基づいて、第1の参照フレームリストにおいてシーケンス番号が2である参照フレーム、および第2の参照フレームリストにおいてシーケンス番号が6である参照フレームが参照フレーム組み合わせを構成することができ、第1の参照フレームリストにおいてシーケンス番号が0である参照フレーム、および第2の参照フレームリストにおいてシーケンス番号が8である参照フレームも参照フレーム組み合わせを構成することができると決定される。この場合、ビデオ復号器202は、参照フレームのインデックス値を解析する必要がある。
さらに、インター予測モードが二方向インター予測モードであると決定するときに、ビデオ復号器202は、さらに、カレントフレームの特徴情報がプリセット条件を満たすかどうかを決定してもよい。この場合、カレントフレームの特徴情報がプリセット条件を満たすときに、ビデオ復号器202は、指示情報を取得する。言い換えると、S401の具体的な処理は以下のようであってもよい。すなわち、ビデオ復号器202は、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報が第1のプリセット条件を満たすと決定するときに、指示情報を取得する。
カレントフレームの特徴情報は、シーケンス番号、時間レベルID(Temporal Level ID、TID)、および参照フレームの数のうちの少なくとも1つを含む。ビデオ復号器202によって取得されるビットストリームは、シーケンスパラメータセット(Sequence Parameter Set、SPS)、ピクチャパラメータセット(Picture Parameter Set、PPS)、スライスヘッダ(slice header)またはスライスセグメントヘッダ(slice segment header)、および符号化ピクチャデータを含む。次いで、ビデオ復号器202は、カレントフレームの特徴情報を取得するためにビットストリームを解析する。
プリセット条件は、以下の条件の少なくとも1つを含む。
条件A:カレントピクチャブロックが少なくとも2つの参照フレームを有する。
条件B:カレントフレームのシーケンス番号、第1の参照フレームのシーケンス番号、および第2の参照フレームのシーケンス番号が、以下の式を満足する。
POC_Cur-POC_listX=POC_listY-POC_Cur
POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームである。
条件C:カレントフレームのシーケンス番号、第1の参照フレームのシーケンス番号、および第2の参照フレームのシーケンス番号が、以下の式を満足する。
(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0
POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、第1の参照フレームは、第1の方向におけるカレントピクチャブロックの参照フレームであり、第2の参照フレームは、第2の方向におけるカレントピクチャブロックの参照フレームである。
条件D:カレントフレームのTIDがプリセット値以上である。
この出願のこの実施形態におけるプリセット条件は、プリセットであってもよいし、例えば、SPS、PPS、スライスヘッダ(slice header)、またはスライスセグメントヘッダ(slice segment header)のようなパラメータセットにおいて、上位層構文において指定されてもよい。これは、この出願のこの実施形態において特に限定されない。
条件E:カレントフレームのmvd_l1_zero_flagが0である。
mvd_l1_zero_flagは、解析を通してビデオ復号器202によって取得されるフラグである。mvd_l1_zero_flagが1であるときは、List1のMVDが解析される必要はないことを示す。(mvd_l1_zero_flag1が1に等しいと、mvd_coding(x0,y0,1)構文構造が解析されず、MvdL1[x0][y0][compldx]がcompldx=0..1に対して0に等しいように設定されることを指示する。mvd_l1_zero_flag1が0に等しいとは、mvd_coding(x0,y0,1)構文構造が解析されることを指示する。)
具体的には、条件B(または条件C)について、ビデオ復号器202は、第1の参照フレームリストおよび第2の参照フレームリストの各々から参照フレームのシーケンス番号を取得し、取得された参照フレームのシーケンス番号およびカレントフレームのシーケンス番号が条件Bまたは条件Cを満たすかどうかを決定する。指示情報は、条件B(または条件C)が満たされるときに取得される。
任意選択で、条件Aに対して、ビデオ復号器202は、第1の方向における参照フレームのインデックス値(SymRefIdxX)を0に設定し、第2の方向における参照フレームのインデックス値(SymRefIdxY)を0に設定する。
任意選択で、条件Bに対して、ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listXについて第1の参照フレームリストを探索し、ビデオ復号器202は、条件POC_Cur-POC_listX=POC_listY-POC_Curを満たす参照フレームPOC_listYについて第2の参照フレームリストを探索する。要件を満たす参照フレームPOC_listXおよびPOC_listYがこの探索方式で見つかった場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listXのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listYのインデックス値に設定される。任意選択で、要件を満たす参照フレームPOC_listXおよびPOC_listYが見つからない場合、ビデオ復号器202は、さらに、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listXについて探索し、条件POC_Cur-POC_listX=POC_listY-POC_Curを満たす参照フレームPOC_listYについて第2の参照フレームリストを探索する。要件を満たす参照フレームPOC_listXおよびPOC_listYがこの探索方式で見つかった場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listXのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listYのインデックス値に設定される。
任意選択で、条件Cに対して、ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listXについて第1の参照フレームリストを探索し、ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listYについて第2の参照フレームリストを探索する。要件を満たす参照フレームPOC_listXおよびPOC_listYがこの探索方式で見つかった場合、第1の方向の参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listXのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listYのインデックス値に設定される。任意選択で、要件を満たす参照フレームPOC_listXおよびPOC_listYが見つからない場合、ビデオ復号器202は、さらに、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listXについて探索し、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listYについて第2の参照フレームリストを探索する。要件を満たす参照フレームPOC_listXおよびPOC_listYがこの探索方式で見つかった場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listXのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listYのインデックス値に設定される。
任意選択で、第1の方向における参照フレームのインデックス値(SymRefIdxX)および第2の方向における参照フレームのインデックス値(SymRefIdxY)は、代替的に、以下の方式で決定されてもよい。
ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listX_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listX_1について第1の参照フレームリストを探索する。ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listY_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listY_1について第2の参照フレームリストを探索する。
要件満たす参照フレーム組み合わせ(POC_listX_0およびPOC_listY_0)がこの探索方式で見つかった場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_0のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_0のインデックス値に設定される。
そうでなければ、要求を満たす参照フレーム組み合わせ(POC_listX_1およびPOC_listY_1)がこの探索方式で見つかった場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_1のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_1のインデックス値に設定される。
任意選択で、第1の方向における参照フレームのインデックス値(SymRefIdxX)および第2の方向における参照フレームのインデックス値(SymRefIdxY)は、代替的に、以下の方式で決定されてもよい。
ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listX_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listX_1について第1の参照フレームリストを探索する。ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listY_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listY_1について第2の参照フレームリストを探索する。
要件満たす参照フレーム組み合わせPOC_listX_0とPOC_listY_0のみがこの探索方式で見つかる場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_0のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_0のインデックス値に設定される。
要求を満たす参照フレーム組み合わせPOC_listX_1およびPOC_listY_1のみがこの探索方式で見つかる場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_1のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_1のインデックス値に設定される。
要件を満たす参照フレーム組み合わせPOC_listX_0とPOC_listY_0、および要件を満たす参照フレーム組み合わせPOC_listX_1とPOC_listY_1の両方がこの探索方式で見つかる場合、POC_listY_0とPOC_listX_0との間の参照フレーム組み合わせの距離POC_DIS_0(POC_listY_0-POC_listX_0)がさらに計算され、POC_listX_1とPOC_listY_1との間の参照フレーム組み合わせの距離POC_DIS_1(POC_listX_1-POC_listY_1)がさらに計算する。POC_DIS_0がPOC_DIS_1以下である場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_0のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_0のインデックス値に設定される。そうでなければ、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_1のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_1のインデックス値に設定される。
任意選択で、第1の方向における参照フレームのインデックス値(SymRefIdxX)および第2の方向における参照フレームのインデックス値(SymRefIdxY)が、代替的には、以下の方式で決定されてもよい。
ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listX_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listX_1について第1の参照フレームリストを探索する。ビデオ復号器202は、カレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも大きい参照フレームPOC_listY_0、およびカレントフレームに最も近く、かつシーケンス番号がカレントフレームのシーケンス番号よりも小さい参照フレームPOC_listY_1について第2の参照フレームリストを探索する。
要件満たす参照フレーム組み合わせPOC_listX_0とPOC_listY_0のみがこの探索方式で見つかる場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_0のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_0のインデックス値に設定される。
要求を満たす参照フレーム組み合わせPOC_listX_1およびPOC_listY_1のみがこの探索方式で見つかる場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_1のインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_1のインデックス値に設定される。
要件を満たす参照フレーム組み合わせPOC_listX_0とPOC_listY_0、および要件を満たす参照フレーム組み合わせPOC_listX_1とPOC_listY_1の両方がこの探索方式で見つかる場合、カレントフレームPOC_Curと、4つの参照フレームPOC_listY_0、POC_listX_0、POC_listX_1、およびPOC_listY_1との間の絶対距離POC_DIS_listX0、POC_DIS_listY0、POC_DIS_listX1、およびPOC_DIS_listY1が、さらに計算される。4つの距離において、カレントフレームPOC_Curから最小の距離の参照フレームが最適な組み合わせkとして選択され、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおける最適な組み合わせPOC_listX_kのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおける最適な組み合わせPOC_listY_kのインデックス値に設定される。
任意選択で、第1の方向における参照フレームのインデックス値(SymRefIdxX)および第2の方向における参照フレームのインデックス値(SymRefIdxY)は、代替的に、以下の方式で決定されてもよい。
ビデオ復号器202は、POC_Cur-POC_listX_i=POC_listY_i-POC_Curを満足する全ての参照フレームの組み合わせPOC_listX_iおよびPOC_listY_iについて第1の参照フレームリストおよび第2の参照フレームリストを探索し、iは、1~Nの範囲であり、Nは、条件を満足する参照フレームの組み合わせの最大数を表す。見つかった参照フレーム組み合わせの数が1である場合、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_1のインデックス値に直接設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_1のインデックス値に設定される。見つかった参照フレーム組み合わせの数が1よりも多い場合、各参照フレーム組み合わせのPOC_listY_iとPOC_listX_iとの間の絶対距離POC_DIS_i (abs(POC_listY_i-POC_listX_i))がさらに計算され、最小の距離の参照フレーム組み合わせが選択され、第1の方向における参照フレームのインデックス値(SymRefIdxX)が、第1の参照フレームリストにおけるPOC_listX_iのインデックス値に設定され、第2の方向における参照フレームのインデックス値(SymRefIdxY)が、第2の参照フレームリストにおけるPOC_listY_iのインデックス値に設定される。
任意選択で、前述の見つかった参照フレームPOC_listXおよびPOC_listYの両方とも短期参照フレームである。
任意選択で、前述の見つかった参照フレームPOC_listXおよびPOC_listYは、同じ参照フレームタイプのものであり、例えば、両方とも短期参照フレームであるか、または両方とも長期参照フレームである。
この出願のこの実施形態では、「ビデオ復号器202が、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報がプリセット条件を満たすと決定したときに、指示情報を取得する」ための方法は、「ビデオ復号器202が、インター予測モードが二方向インター予測モードであると決定したときに、指示情報を取得する」ための方法と同じである。
前述の説明を参照すると、表1は、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報がプリセット条件を満たすと決定されたときに、第1の実施態様において指示情報を取得するためにビデオ復号器202によって使用される構文テーブルである。prediction_unit()は、予測ピクチャブロックの構文構造を表し、カレントピクチャブロックにおける各サブブロックのモーション情報を決定するための方法を説明する。
表1において、x0およびy0は、それぞれ、カレントピクチャブロックの左上のサンプルに対するカレントピクチャブロックのサブブロックの水平座標オフセットおよび垂直座標オフセットを表し、nPbWは、カレントピクチャブロックの幅を表し、nPbHは、カレントピクチャブロックの高さを表す。inter_pred_idc[x0][y0]の値がPRED_L0であるときに、カレントサブブロックについてのインター予測が前方予測であることを指示する。inter_pred_idc[x0][y0]の値がPRED_L1のであるときに、カレントサブブロックについてのインター予測が後方予測であることを指示する。inter_pred_idc[x0][y0]の値がPRED_BIであるときに、カレントサブブロックについてのインター予測が二方向予測であることを指示する。
二方向インター予測(すなわち、inter_pred_idc[x0][y0]==PRED_BI)に対して、プリセット条件(conditions)が満たされる場合、mv_derived_flag_l0[x0][y0]が解析される。mv_derived_flag_l0の値が第1のプリセット値でない場合、mv_derived_flag_l1[x0][y0]が解析される。mv_derived_flag_l0の値が第1のプリセット値であるとき、またはmv_derived_flag_l1[x0][y0]の値が第5のプリセット値であるときに、カレントピクチャブロックのサブブロックのモーション情報が決定される。具体的には、参照フレームのインデックス値ref_idx_l0[x0][y0]、モーションベクトル予測器識別子mvp_l0_flag[x0][y0]、およびモーションベクトル差mvd_coding(x0,y0,0)が決定される。
前述の説明を参照すると、表2は、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報がプリセット条件を満たすと決定されたときに、第3の実施態様において指示情報を取得するためにビデオ復号器202によって使用される構文テーブルである。
表2では、二方向インター予測(すなわち、inter_pred_idc[x0][y0]==PRED_BI)に対して、プリセット条件(conditions)が満たされる場合、derived_mv_flag[x0][y0]が解析される。derived_mv_flag[x0][y0]の値が第2のプリセット値である場合、カレントピクチャブロックのサブブロックのモーション情報が決定される。具体的には、参照フレームのインデックス値ref_idx_lx[x0][y0]、モーションベクトル予測器識別子mvp_lx_flag[x0][y0]、およびモーションベクトル差mvd_coding(x0,y0,x)が決定される。
前述の説明を参照すると、表3は、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報が第1のプリセット条件を満たすと決定された場合に、第4の実装における指示情報を取得するためにビデオ復号器202によって使用される構文テーブルである。
表3では、二方向インター予測(すなわち、inter_pred_idc[x0][y0]==PRED_BI)に対して、プリセット条件(conditions)が満たされる場合、derived_mv_flag[x0][y0]が解析される。derived_mv_flag[x0][y0]の値が第4のプリセット値である場合、derived_ref_numが決定され、derived_ref_numの値が1よりも大きいときに、カレントピクチャブロックのサブブロックのモーション情報が決定される。具体的には、参照フレームのインデックス値ref_idx_lx[x0][y0]、モーションベクトル予測器識別子mvp_lx_flag[x0][y0]、およびモーションベクトル差mvd_coding(x0,y0,x)が決定される。
第1の識別子、第2の識別子、第3の識別子、および第4の識別子は、すべてプリセットであってもよいし、例えば、SPS、PPS、スライスヘッダ(slice header)、またはスライスセグメントヘッダ(slice segment header)のようなパラメータセットにおいて、上位層構文において指定されてもよい。これは、この出願のこの実施形態において特に限定されない。
ビデオ復号器202は、インター予測モードが二方向インター予測モードであり、カレントフレームの特徴情報がプリセット条件を満たすと決定したときに、指示情報を取得する。これにより、ビデオ復号器202の復号レートが効果的に増加させ、情報冗長性を低減する。
S401:ビデオ復号器202は、第1のモーション情報を取得する。
任意選択で、ビデオ復号器202は、ビットストリームを解析して、第1の参照フレームのインデックス値、第1のモーションベクトル予測器識別子、および第1のモーションベクトル差を取得する、すなわち第1のモーション情報を取得する。第1のモーションベクトル予測器識別子は、第1の候補予測モーションベクトルリストにおける第1の予測モーションベクトルのインデックス値を示すために使用され、第1の予測モーションベクトルは、第1の方向におけるカレントピクチャブロックの予測モーションベクトルであり、第1のモーションベクトル差は、第1の予測モーションベクトルと第1のモーションベクトルとの間の差であり、第1のモーションベクトルは、第1の方向におけるカレントピクチャブロックのモーションベクトルである。
任意選択で、参照フレームリストにおける第1の位置での参照フレームは、通常、カレントフレームに最も近いフレームである。したがって、第1の参照フレームのインデックス値ref_lX_idxが直接0に設定されてもよい。
任意選択で、ビデオ復号器202が、プリセット条件BまたはCに基づいて、指示情報を取得するかどうかを決定するときに、ビデオ復号器202は、第1の参照フレームのインデックス値ref_lX_idxを所定値SymRefIdxXに設定してもよい。
任意選択で、第1の候補予測モーションベクトルリストは、第1の参照フレームのインデックス値に基づいて、構成される。具体的には、第1の候補予測モーションベクトルリストを構成する処理において、カレントピクチャブロックの隣接する復号ピクチャブロックのモーションベクトルが取得される。第1の参照フレームのシーケンス番号は、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、決定される。隣接する復号ピクチャブロックの参照フレームのシーケンス番号が第1の参照フレームのシーケンス番号と異なる場合、隣接する復号ピクチャブロックのモーションベクトルは、第1の参照フレームを指すようにスケーリングされる必要があり、次いで、第1の候補予測されたモーションベクトルリストに追加される。
表1から表3に示す構文テーブルの各々において、ビデオ復号器202は、第1の方向におけるカレントピクチャブロックのサブブロックのモーション情報を決定する。
S402:ビデオ復号器202は、第1のモーション情報に基づいて、第2のモーション情報を決定する。
第1の実施態様では、ビデオ復号器202による第2のモーション情報を決定するための方法は、以下のようである。すなわち、ビデオ復号器202は、第1のモーション情報から第1の参照フレームのインデックス値を選択し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定し、プリセット式に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第2の参照フレームのシーケンス番号を計算し、第2の参照フレームのシーケンス番号および第2の参照フレームリストに基づいて、第2の参照フレームのインデックス値を決定し、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定する。
ここで、プリセット式は、POC_listY=2*POC_Cur-POC_listXであってもよい。POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表す。
例えば、カレントフレームのシーケンス番号が4であり、第1の参照フレームのシーケンス番号が2であり、第2の参照フレームのリストが[6,8]であり、式POC_listY=2*POC_Cur-POC_listXに従って、第2の参照フレームのシーケンス番号が6であると決定される場合、ビデオ復号器202は、第2の参照フレームのインデックス値ref_lY_idxが0であると決定する。
任意選択で、プリセット式は、代替的に、(POC_Cur-POC_listX)* (POC_listY-POC_Cur)>0であってもよい。第2の参照フレームリストにおける複数の参照フレームのシーケンス番号が式を満たす場合、ビデオ復号器202は、最初に、最小のabs((POC_listY-POC_Cur)-(POC_Cur-POC_listX))を有する参照フレームを選択し、次いで、最小のabs(POC_listY-POC_Cur)を有する参照フレームを選択して、第2の参照フレームのインデックス値を決定し、absは絶対値関数を表すと、留意されたい。
例えば、カレントフレームのシーケンス番号が4であり、第1の参照フレームのシーケンス番号が2であり、第2の参照フレームのリストが[5,7,8]であり、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0に従って、第2の参照フレームのシーケンス番号が5であると決定される場合、ビデオ復号器202は、第2の参照フレームのインデックス値ref_lY_idxが0であると決定する。
任意選択で、プリセット式は、代替的に、POC_listX≠POC_listYであってもよい。第2の参照フレームリストにおける複数の参照フレームのシーケンス番号が式を満たす場合、ビデオ復号器202は、最初に、最小のabs((POC_listY-POC_Cur)-(POC_Cur-POC_listX))を有する参照フレームを選択し、次いで、最小のabs(POC_listY-POC_Cur)を有する参照フレームを選択して、第2の参照フレームのインデックス値を決定し、absは絶対値関数を表すと、留意されたい。
例えば、カレントフレームのシーケンス番号が4であり、第1の参照フレームのシーケンス番号が2であり、第2の参照フレームのリストが[3,2,1,0]であり、式POC_listX≠POC_listYに従って、第2の参照フレームのシーケンス番号が3であると決定される場合、ビデオ復号器202は、第2の参照フレームのインデックス値ref_lY_idxが0であると決定する。
任意選択で、プリセット式は、代替的に、POC_listY0=2*POC_Cur-POC_listX、(POC_Cur-POC_listX)*(POC_listY0’-POC_Cur)>0およびPOC_listX≠POC_listY0’’であってもよい。この場合、ビデオ復号器202によって第2の参照フレームのインデックス値を決定するための方法は、具体的には、式POC_listY0=2*POC_Cur-POC_listXに従って、カレントフレームのシーケンス番号と第1の参照フレームのシーケンス番号に基づいて、第1のシーケンス番号を決定することであって、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第1のシーケンス番号を表す、計算することと、第2の参照フレームリストが第1のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第1のシーケンス番号によって表される参照フレームの番号を決定すること、または第2の参照フレームリストが第1のシーケンス番号を含まないときに、式(POC_Cur-POC_listX)*(POC_listY0’-POC_Cur)>0に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第2のシーケンス番号を計算することであって、POC_listY0’は、第2のシーケンス番号を表す、計算することと、第2の参照フレームリストが第2のシーケンス番号を含むときに、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第2のシーケンス番号によって表される参照フレームの番号を決定すること、または第2の参照フレームリストが第2のシーケンス番号を含まないときに、式POC_listX≠POC_listY0’’に従って、カレントフレームのシーケンス番号および第1の参照フレームのシーケンス番号に基づいて、第3のシーケンス番号を計算することであって、POC_listY0’’は、第3のシーケンス番号を表す、計算することと、第2の参照フレームのインデックス値として、第2の参照フレームリストにおける第3のシーケンス番号によって表される参照フレームの番号を決定することである。
任意選択で、参照フレームリストにおける第1の位置での参照フレームは、通常、カレントフレームに最も近いフレームである。したがって、第2の参照フレームのインデックス値ref_lY_idxは、第1の位置を指すことを指示する0に直接設定されてもよい。
任意選択で、ビデオ復号器202が、プリセット条件BまたはCに基づいて、指示情報を取得するかどうかを決定するときに、ビデオ復号器202は、第2の参照フレームのインデックス値ref_lY_idxを所定値SymRefIdxYに設定してもよい。
第2の実施態様では、ビデオ復号器202が第2のモーション情報を決定するために使用される方法は、以下のようである。すなわち、ビデオ復号器202がビットストリームを解析して、第2の参照フレームのインデックス値を取得し、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定する。第2の参照フレームのインデックス値は、プリセットされてもよいし、SPS、PPS、スライスヘッダ(slice header)、またはスライスセグメントヘッダ(slice segment header)のようなパラメータセットにおいて指定されてもよい。これは、この出願のこの実施形態において特に限定されない。
第1の実施態様および第2の実施態様の両方において、ビデオ復号器202は、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定することが分かる。
任意選択で、ビデオ復号器202は、第2の方向におけるカレントピクチャブロックのすべてのモーション情報を計算してもよいし、第2の方向におけるカレントピクチャブロックのモーション情報の一部を計算してもよい。
以下では、ビデオ復号器202が、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定する処理を説明する。
任意に、「ビデオ復号器202が、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することと、第1のモーション情報における、第1のモーションベクトル差および第1のモーションベクトル予測器識別子に基づいて、第1のモーションベクトル(第1の方向におけるカレントピクチャブロックのモーションベクトル)を決定することと、以下の式に従って、第2のモーション情報における第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することとであり得る。
mv_lYは、第2のモーションベクトルを表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、mv_lXは、モーションベクトルを表す。
ビデオ復号器202は、符号化器側がAMVPモードまたはマージモードで候補モーション情報リストを作成する方式と同様の方式で候補モーション情報リストを構成し、第1のモーションベクトル予測器識別子に基づいて、候補モーション情報リストにおける第1の予測モーションベクトルを決定する。このようにして、ビデオ復号器202は、第1の予測モーションベクトルと第1のモーションベクトル差の和を、第1のモーションベクトルとして決定してもよい。
任意、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、ビデオ復号器202は、直接mv_lY=-mv_lXを設定してもよい。
任意選択で、ビデオ復号器202は、決定を実行せずに、直接mv_lY=-mv_lXを設定してもよい。
例えば、「第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合」および「第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合」は、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0または式POC_listY=2*POC_Cur-POC_listXを使用して表されてもよい。
「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合」および「第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合」は、式(POC_Cur-POC_listX)*(POC_listY-POC_Cur)<0を使用して表されてもよい。
任意に、「ビデオ復号器202が、第1のモーション情報および第2の参照フレームのインデックス値に基づいて、第2のモーション情報を決定する」ための方法は、第1のモーション情報における第1の参照フレームのインデックス値および第1のモーションベクトル差を取得し、第1の参照フレームのインデックス値および第1の参照フレームリストに基づいて、第1の参照フレームのシーケンス番号を決定することと、第2の参照フレームのインデックス値を取得し、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、第2の参照フレームのシーケンス番号を決定することと、第2の参照フレームのインデックス値および第2の予測モーションベクトルリストに基づいて、第2の予測モーションベクトルを決定することであって、第2の予測モーションベクトルは、第2の方向におけるカレントピクチャブロックの予測モーションベクトルである、決定することと、以下の式に従って、第2のモーション情報における第2の第2のモーションベクトル差を決定することと、第2の予測モーションベクトルおよび第2のモーションベクトル差に基づいて、第2のモーションベクトルを決定することであって、第2のモーションベクトルは、第2の方向におけるカレントピクチャブロックのモーションベクトルである、決定することであってもよい。
mvd_lYは、第2のモーションベクトル差を表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、mvd_lXは、第1のモーションベクトル差を表す。
任意選択で、第2の候補予測モーションベクトルリストは、第2の参照フレームのインデックス値に基づいて、構成される。具体的には、第2の候補予測モーションベクトルリストを構成する処理において、カレントピクチャブロックの隣接する復号ピクチャブロックのモーションベクトルが取得される。第2の参照フレームのシーケンス番号は、第2の参照フレームのインデックス値および第2の参照フレームリストに基づいて、決定される。隣接する復号ピクチャブロックの参照フレームのシーケンス番号が第2の参照フレームのシーケンス番号と異なる場合、隣接する復号ピクチャブロックのモーションベクトルは、第2の参照フレームを指すようにスケーリングされる必要があり、次いで、第2の候補予測モーションベクトルリストに追加される。
任意に、第1の参照フレームがカレントピクチャブロックの前方参照フレームであり、第2の参照フレームがカレントピクチャブロックの後方参照フレームである場合、第1の参照フレームがカレントピクチャブロックの後方参照フレームであり、第2の参照フレームがカレントピクチャブロックの前方参照フレームである場合、第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの前方参照フレームである場合、または第1の参照フレームおよび第2の参照フレームが各々カレントピクチャブロックの後方参照フレームである場合、ビデオ復号器202は、直接mvd_lY=-mvd_lXを設定してもよい。例えば、(POC_Cur-POC_listX)*(POC_listY-POC_Cur)>0、POC_listY=2*POC_Cur-POC_listX、または(POC_Cur-POC_listX)*(POC_listY-POC_Cur)<0である場合、ビデオ復号器202は、直接mvd_lY=-mvd_lXを設定する。
任意選択で、ビデオ復号器202は、決定を実行せず、直接mvd_lY=-mvd_lXを設定してもよい。
S403:ビデオ復号器202は、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定する。
任意選択で、ビデオ復号器202は、S402において第1のモーションベクトルおよび第2のモーションベクトルを決定する。このようにして、ビデオ復号器202は、第1のモーションベクトル、第1の参照フレームのインデックス値、および第1の参照フレームリストに基づいて、第1の参照ピクチャブロックを決定し、第2のモーションベクトル、第2の参照フレームのインデックス値、および第2の参照フレームリストに基づいて、第2の参照ピクチャブロックを決定し、さらに、第1の参照ピクチャブロックおよび第2の参照ピクチャブロックに基づいて、カレントピクチャブロックの予測サンプルを決定してもよい。すなわち、ビデオ復号器202は、モーション補償処理を完了する。
ビデオ復号器202が第1の参照ピクチャブロックおよび第2の参照ピクチャブロックに基づいて、カレントピクチャブロックの予測サンプルを決定するために使用される方法については、任意の既存の方法を参照のこと。これは、この出願のこの実施形態において特に限定されない。
この出願のこの実施形態において提供される二方向インター予測方法では、ビデオ復号器202は、符号化ビットストリームから第1のモーション情報のみを取得してもよい。第1のモーション情報を取得した後、ビデオ符号化器202は、第1のモーション情報に基づいて、第2のモーション情報を計算し、さらに、第1のモーション情報および第2のモーション情報に基づいて、カレントピクチャブロックの予測サンプルを決定する。従来の技術と比較して、この出願において提供される方法では、全方向の全てのピクチャブロックのモーション情報はもはや送信される必要がない。これは、送信されるモーション情報の量を効果的に低減し、伝送資源、伝送レート、およびコーディング圧縮効率の有効利用を改善する。
図4に示す二方向インター予測方法は、カレントピクチャブロックに対して説明される、すなわち、AMVPモードに基づいて、カレントピクチャブロックについてインター予測を実行すると理解されてもよい。
この出願において提供される二方向インター予測法は、非並進モーションモデル予測モード、例えば、4パラメータアフィン変換モーションモデル、6パラメータアフィン変換モーションモデル、または8パラメータ双線形モーションモデルにも適用可能であると理解することは容易である。このシナリオでは、カレントピクチャブロックは、少なくとも1つのサブブロックを含み、カレントピクチャブロックのモーション情報は、カレントピクチャブロックの全てのサブブロックの各々のモーション情報を含む。ビデオ復号器202が各サブブロックのモーション情報(第1の方向におけるモーション情報および第2の方向におけるモーション情報)を決定するために使用される方法は、カレントピクチャブロックのモーション情報を決定するためにビデオ復号器202によって使用される方法に類似している。
非並進モーションモデル予測モードでは、ビデオ復号器202は、以下の式に従って、第1の方向におけるi番目の制御点のモーションベクトルに基づいて、第2の方向におけるi番目の制御点のモーションベクトルを計算する:
式では、mvi_lYは、第2の方向におけるi番目の制御点のモーションベクトルを表し、mvi_lXは、第1の方向におけるi番目の制御点のモーションベクトルを表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表す。
これに対応して、ビデオ復号器202は、以下の式に従って、第1の方向におけるi番目の制御点のモーションベクトル差に基づいて、第2の方向におけるi番目の制御点のモーションベクトル差を計算する:
式では、mvdi_lYは、第2の方向におけるi番目の制御点のモーションベクトル差を表し、mvdi_lXは、第1の方向におけるi番目の制御点のモーションベクトル差を表し、POC_Curは、カレントフレームのシーケンス番号を表し、POC_listYは、第2の参照フレームのシーケンス番号を表し、POC_listXは、第1の参照フレームのシーケンス番号を表す。
ビデオ復号器202に対応して、この出願のこの実施形態では、ビデオ符号化器102は、カレントピクチャブロックについて二方向モーション推定を実行して、第1の方向におけるカレントピクチャブロックのモーション情報を決定し、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算する。このようにして、ビデオ符号化器102は、第1の方向におけるカレントピクチャブロックのモーション情報および第2の方向におけるカレントピクチャブロックのモーション情報に基づいて、カレントピクチャブロックの予測ピクチャブロックを決定する。次いで、ビデオ符号化器102は、カレントピクチャブロックとカレントピクチャブロックの予測ピクチャブロックとの間の残差について変換、量子化などの演算を実行して、ビットストリームを生成し、そのビットストリームをビデオ復号器202に送信する。ビットストリームは、第1の方向におけるカレントピクチャブロックのモーション情報を含む。
「ビデオ符号化器102が、第1の方向におけるカレントピクチャブロックのモーション情報に基づいて、第2の方向におけるカレントピクチャブロックのモーション情報を計算する」ための方法については、「ビデオ復号器202が、第1のモーション情報に基づいて、第2のモーション情報を決定する」ための前述の方法、すなわち、S402における説明を参照すること。この出願には詳細は説明されない。
結論として、この出願において提供される二方向インター予測方法によれば、二方向インター予測の間に、全ての方向の全てのピクチャブロックのモーション情報が送信される必要がなく、特定の方向におけるモーション情報のみが送信される必要がある。これは、送信されるモーション情報の量を効果的に低減し、伝送資源、伝送レート、およびコーディング圧縮効率の有効利用を改善する。
この出願の一実施形態は、二方向インター予測装置を提供する。二方向インター予測装置は、ビデオ復号器であってもよい。具体的には、二方向インター予測装置は、前述の二方向インター予測方法においてビデオ復号器202によって実行されるステップを実行するように構成されている。この出願のこの実施形態において提供される二方向インター予測装置は、対応するステップのためのモジュールを含んでもよい。
この出願の実施形態では、二方向インター予測装置は、前述の方法の例に基づいて、機能モジュールに分割されてもよい。例えば、各機能モジュールは、対応する機能に基づいて、分割を通して取得されてもよいし、2つ以上の機能が1つの処理モジュールに統合されてもよい。統合モジュールは、ハードウェアの形態で実施されてもよいし、ソフトウェア機能モジュールの形態で実施されてもよい。この出願のこの実施態様では、モジュールへの分割は一例であり、単に論理関数分割である。実際の実装には、別の分割方法があってもよい。
図5は、各機能モジュールが対応する機能に基づいて、分割を通して取得されるときに、前述の実施形態における二方向インター予測装置の可能な概略構造図である。図5に示すように、二方向インター予測装置5は、取得ユニット50と、決定ユニット51とを含む。
取得ユニット50は、前述の実施形態におけるS400、S401など、および/またはこの明細書で説明される技術の他の処理を実行する際に二方向インター予測装置サポートするように構成されている。
決定ユニット51は、前述の実施形態におけるS402、S403など、および/またはこの明細書で説明される技術の他の処理を実行する際に二方向インター予測装置サポートするように構成されている。
前述の方法の実施形態におけるステップの全ての関連する内容は、対応する機能モジュールの機能説明において引用されてもよい。詳細は、ここでは再度説明しない。
確かに、この出願のこの実施形態において提供される二方向インター予測装置は、前述のモジュールを含むが、これらに限定されない。例えば、二方向インター予測装置は、記憶ユニット52をさらに含んでもよい。
記憶ユニット52は、二方向インター予測装置のプログラムコードおよびデータを記憶するように構成されてもよい。
集積ユニットが使用されるときは、図6は、この出願の一実施形態による二方向インター予測装置の概略構造図である。図6に示されるように、二方向インター予測装置6は、処理モジュール60と通信モジュール61とを含む。処理モジュール60は、二方向インター予測装置のアクションを制御および管理するように構成され、例えば、取得ユニット50および決定ユニット51によって実行されるステップを実行するように構成され、および/または本明細書で説明される技術の別のプロセスを実行するように構成されている。通信モジュール61は、二方向インター予測装置と別のデバイスとの間の相互作用をサポートするように構成されている。図6に示すように、二方向インター予測装置は、記憶モジュール62をさらに含んでもよい。記憶モジュール62は、二方向インター予測装置のプログラムコードおよびデータを記憶するように構成され、例えば、記憶ユニット52によって記憶されたコンテンツを記憶するように構成されている。
処理モジュール60は、例えば、中央処理装置(Central Processing Unit、CPU)、汎用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、ASIC、FPGAもしくは別のプログラマブル論理デバイス、トランジスタ論理デバイス、ハードウェアコンポーネント、またはそれらの任意の組み合わせであってもよい。処理モジュール60は、この出願に開示されたコンテンツに関連して説明された様々な例示の論理ブロック、モジュール、および回路を実施または実行してもよい。処理モジュールは、計算機能を実施するプロセッサの組み合わせ、例えば、1つ以上のマイクロプロセッサの組み合わせ、またはDSPとマイクロプロセッサの組み合わせであってもよい。通信モジュール61は、トランシーバ、RF回路、通信インターフェースなどであってもよい。記憶モジュール62はメモリであってもよい。
前述の方法の実施形態におけるシナリオの全ての関連するコンテンツは、対応する機能モジュールの機能説明において引用されてもよい。詳細は、ここでは再度説明しない。
二方向インター予測装置5および二方向インター予測装置6の両方とも、図4に示す二方向インター予測方法を実行してもよい。具体的には、二方向インター予測装置5および二方向インター予測装置6は、ビデオ復号装置またはビデオ符号化機能を有する他のデバイスであってもよい。二方向インター予測装置5および二方向インター予測装置6は、復号処理においてピクチャ予測を実行するように構成されてもよい。
この出願は、さらに、端末を提供する。端末は、1つ以上のプロセッサ、メモリ、および通信インターフェースを含む。メモリおよび通信インターフェースは、1つ以上のプロセッサに結合される。メモリは、コンピュータプログラムコードを記憶するように構成されている。コンピュータプログラムコードは、命令を含む。1つ以上のプロセッサが命令を実行するときに、端末は、この出願の実施形態において二方向インター予測方法を実行する。
本明細書における端末は、ビデオ表示デバイス、スマートフォン、ポータブルコンピュータ、またはビデオを処理または再生することができる別のデバイスであってもよい。
この出願は、さらに、不揮発性記憶媒体および中央処理装置を含むビデオ復号器を提供する。不揮発性記憶媒体は、実行可能なプログラムを記憶する。中央処理装置は、不揮発性記憶媒体に接続され、実行可能プログラムを実行して、この出願の実施形態における二方向インター予測方法を実行する。
この出願は、さらに、復号器を提供する。復号器は、この出願の実施形態において、二方向インター予測装置(二方向インター予測装置5または二方向インター予測装置6)と再構成モジュールとを含む。再構成モジュールは、二方向インター予測装置によって取得された予測サンプルに基づいて、カレントピクチャブロックの再構成サンプル値を決定するように構成されている。
この出願の別の実施形態は、さらに、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、1つ以上のプログラムコードを含む。1つ以上のプログラムは、命令を含む。端末のプロセッサがプログラムコードを実行するときに、端末は、図4に示す二方向インター予測方法を実行する。
この出願の別の実施形態では、コンピュータプログラム製品がさらに提供される。コンピュータプログラム製品は、コンピュータ実行可能な命令を含む。コンピュータ実行可能な命令は、コンピュータ可読記憶媒体に記憶される。端末の少なくとも1つのプロセッサは、コンピュータ可読記憶媒体からコンピュータ実行可能な命令を読んでもよい。少なくとも1つのプロセッサは、コンピュータ実行可能な命令を実行して、端末が、図4に示す二方向インター予測方法においてビデオ復号器202によって実行されるステップを実行することを可能にする。
前述の実施形態の全てまたは一部は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせを使用することによって実施されてもよい。ソフトウェアプログラムが実施形態を実施するために使用されるときに、実施形態の全部または一部は、コンピュータプログラム製品の形態で実施されてもよい。コンピュータプログラム製品は、1つ以上のコンピュータ命令を含む。コンピュータプログラム命令がロードされ、コンピュータ上で実行されるときに、この出願の実施形態による手順または機能は、全部または部分的に生成される。
コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよいし、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバ、またはデータセンタから別のウェブサイト、コンピュータ、サーバ、またはデータセンタへ、有線(例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線(DSL))または無線(例えば、赤外線、無線、またはマイクロ波)方式で送信されてもよい。コンピュータ可読記憶媒体は、コンピュータにアクセス可能な任意の使用可能な媒体、または1つ以上の使用可能媒体を統合する、サーバ、データセンタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、または磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、固体ディスク(Solid State Disk、SSD))などである。
実施に関する前述の説明は、説明を容易にし、簡潔にするために、前述の機能モジュールへの分割が説明の例として使用されると当業者が理解することを可能にする。実際のアプリケーションでは、前述の機能は、異なるモジュールに割り当てられ、必要に応じて実施されてもよい。言い換えると、装置の内部構造が異なる機能モジュールに分割されて、上述した機能の全部または一部を実施する。
この出願において提供されるいくつかの実施形態では、開示された装置および方法は、他の方式で実施されてもよいと理解されたい。例えば、説明された装置の実施形態は単なる例である。例えば、モジュールまたはユニットへの分割は、単に論理関数分割である。実際の実施では、別の分割方式があってもよい。例えば、複数のユニットまたはコンポーネントが組み合わせられてもよいし、別の装置に組み込まれてもよいし、いくつかの特徴が無視されてもよいし、実行されてなくてもよい。追加的に、表示または議論された相互結合、直接結合、または通信接続は、いくつかのインターフェースを介して実施されてもよい。装置またはユニット間の間接結合または通信接続は、電子的、機械的、または他の形態で実施されてもよい。
別個のコンポーネントとして説明されるユニットは、物理的に分離されていても、されていなくてもよく、ユニットとして表示されるコンポーネントは、1つ以上の物理的ユニットであってもよく、すなわち、1つの場所に位置してもよく、複数の異なる場所に分散されていてもよい。ユニットの一部または全部は、実施形態における解決策の目的を達成するために、実際の要件に基づいて、選択されてもよい。
追加的に、この出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、ユニットの各々は、物理的に単独で存在してもよいし、2つ以上のユニットは、1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形態で実施されてもよいし、ソフトウェア機能ユニットの形態で実施されてもよい。
統合されたユニットがソフトウェア機能ユニットの形態で実施され、独立した製品として販売または使用されるときに、統合されたユニットは、可読記憶媒体に記憶されてもよい。このような理解に基づいて、この出願の実施形態における技術的解決策は、本質的に、もしくはカレント技術に寄与する部分、または技術的解決策の全部若しくは一部が、ソフトウェア製品の形態で実施されてもよい。ソフトウェア製品は、記憶媒体に記憶され、デバイス(シングルチップマイクロコンピュータ、チップなどであってもよい)またはプロセッサ(processor)に、この出願の実施形態で説明される方法のステップの全部または一部を実行するように指示するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク、光ディスク等のプログラムコードを記憶することができる様々な媒体を含む。
前述の説明は、この出願の単なる具体的な実施であるが、この出願の保護範囲を限定することを意図するものではない。この出願に開示された技術的範囲内の任意の変更または置換は、この出願の保護範囲内にあるものとする。したがって、この出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。