(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】ビデオ復号方法並びにその、ビデオ符号化方法、装置、コンピュータデバイス及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/46 20140101AFI20240507BHJP
H04N 19/593 20140101ALI20240507BHJP
【FI】
H04N19/46
H04N19/593
(21)【出願番号】P 2022559390
(86)(22)【出願日】2021-07-15
(86)【国際出願番号】 CN2021106598
(87)【国際公開番号】W WO2022022297
(87)【国際公開日】2022-02-03
【審査請求日】2022-09-28
(31)【優先権主張番号】202010747005.6
(32)【優先日】2020-07-29
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】王 英彬
(72)【発明者】
【氏名】▲許▼ ▲曉▼中
(72)【発明者】
【氏名】▲劉▼ 杉
【審査官】鉢呂 健
(56)【参考文献】
【文献】特表2016-532377(JP,A)
【文献】ZOU, Feng et al.,Pixel-based 1D Dictionary Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 17th Meeting: Valencia, ES, 27 March - 4 April 2014, [JCTVC-Q0149],JCTVC-Q0149 (version 2),ITU-T,2014年03月31日,<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q0149-v2.zip>: JCTVC-Q0149r1.doc: pp.1-7
【文献】WANG, Wei et al.,AHG8: String match in coding of screen content,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 17th Meeting: Valencia, ES, 27 March - 4 April 2014, [JCTVC-Q0176-r1],JCTVC-Q0176 (version 2),ITU-T,2014年03月25日,<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q0176-v2.zip>: JCTVC-Q0176_r1.doc: pp.1-12
【文献】LIN, Tao et al.,AHG8: P2M based dual-coder extension of HEVC,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Geneva, CH, 14-23 Jan. 2013, [JCTVC-L0303],JCTVC-L0303 (version 3),ITU-T,2013年01月21日,<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L0303-v3.zip>: JCTVC-L0303-r1.doc: pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
電子デバイスが実行するビデオ復号方法であって、
ストリームから現在列の列長情報を復号して取得するステップであって、前記列長情報は前記現在列の列長に関連する情報
と、前記現在列が前記現在列の属する復号ブロックにおける最後の列であるか否かを指示する剰余列フラグと、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コード又は前記剰余画素数コードから第1値を減算したものと、を含む、ステップと、
前記現在列の列長分解能を決定するステップと、
前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定する
ステップであって、
前記現在列が属する復号ブロックの総画素数を取得し、
前記現在列が属する復号ブロックの復号済み画素数を取得し、
前記剰余列フラグが前記現在列が前記最後の列であることを指示すれば、
前記総画素数と前記復号済み画素数を減算し、前記現在列の列長を取得し、
前記剰余列フラグが前記現在列が前記最後の列でないことを指示すれば、
前記剰余画素数コードと前記列長分解能を乗算し、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得し、
前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づき、前記現在列の列長を決定することを含むステップと、を含む、
ビデオ復号方法。
【請求項2】
電子デバイスが実行するビデオ復号方法であって、
ストリームから現在列の列長情報を復号して取得するステップであって、前記列長情報は前記現在列の列長に関連する情報と、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードとを含む、ステップと、
前記現在列の列長分解能を決定するステップと、
前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定するステップであって、
前記現在列が属する復号ブロックの総画素数を取得し、
前記現在列が属する復号ブロックの復号済み画素数を取得し、
前記剰余画素数コードと前記列長分解能を乗算して、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得し、
前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づき、前記現在列の列長を決定することを含むステップと、を含む、
ビデオ復号方法。
【請求項3】
前記現在列の列長分解能を決定する前記ステップは、
予め設定された第1参照値を前記現在列の列長分解能として決定するステップ、
又は、前記現在列が属する画像シーケンスのシーケンスヘッダから、復号して前記現在列の列長分解能を取得するステップであって、前記現在列が属する画像シーケンスに含まれる各列の列長分解能は同じである、ステップ、
又は、前記現在列が属する画像の画像ヘッダから、復号して前記現在列の列長分解能を取得
するステップであって、前記現在列が属する画像に含まれる各列の列長分解能は同じである、ステップ、
又は、前記現在列が属するパッチのパッチヘッダから、復号して前記現在列の列長分解能を取得ステップであって、前記現在列が属するパッチに含まれる各列の列長分解能は同じである、ステップ、
又は、前記現在列が属する最大符号化ユニットLCUの符号化情報から、復号して前記現在列の列長分解能を取得
するステップであって、前記現在列が属するLCUに含まれる各列の列長分解能は同じである、ステップ、
又は、前記現在列が属する符号化ユニットCUの符号化情報から、復号して前記現在列の列長分解能を取得
するステップであって、前記現在列が属する符号化ユニットCUに含まれる各列の列長分解能は同じである、ステップ、
又は、前記現在列の符号化情報から、復号して前記現在列の列長分解能を取得するステップ、
又は、前記現在列が属する復号ブロックのサイズに基づいて、前記現在列の列長分解能を決定するステップ、
又は、前記現在列に対応する色成分及びクロマフォーマットに基づいて、前記現在列の列長分解能を決定するステップ、
又は、前記現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、
予め設定された第2参照値を前記現在列の列長分解能として決定するステップ、
又は、前記現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、
予め設定された第3参照値を前記現在列の列長分解能として決定するステップ、
又は、前記現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、
予め設定された第4参照値を前記現在列の列長分解能として決定するステップ
、を含む、
請求項1
又は2に記載の方法。
【請求項4】
前記第1参照値、前記第2参照値、前記第3参照値又は前記第4参照値のうちの少なくとも1つはプロトコルにおいて予め規定されている、請求項3に記載の方法。
【請求項5】
許容される列長分解能セットを決定するステップであって、前記列長分解能セットはインデックス値と列長分解能との間の少なくとも1組の対応関係を含む、ステップをさらに含み、
前記現在列の列長分解能を決定する前記ステップは、
第1インデックス値を復号して取得するステップであって、前記第1インデックス値は前記現在列の列長分解能に対応するインデックス値である、ステップと、
前記第1インデックス値の前記列長分解能セットにおける対応する列長分解能を、前記現在列の列長分解能として決定するステップと、を含む、
請求項1
又は2に記載の方法。
【請求項6】
前記列長分解能セットに含まれる列長分解能は、1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む、
請求項
5に記載の方法。
【請求項7】
現在のCUが水平方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの幅を含み、
現在のCUが垂直方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの高さを含む、
請求項
6に記載の方法。
【請求項8】
前記現在列に対応する列マッチングフラグを復号するステップであって、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられる、ステップと、
前記現在列が前記未マッチング画素を含む場合、前記現在列の列長はNであると決定するステップであって、前記Nは前記現在列の列長分解能である、ステップと、
前記現在列が前記未マッチング画素を含まない場合、前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定する前記ステップを実行するステップと、をさらに含む、
請求項1
又は2に記載の方法。
【請求項9】
前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定する前記ステップの後に、
前記現在列の列長がNより大きい場合、前記現在列が未マッチング画素を含まないと決定するステップと、
前記現在列の列長がNに等しい場合、前記現在列に対応する列マッチングフラグを復号するステップであって、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられる、ステップと、をさらに含み、
前記Nは前記現在列の列長分解能である、
請求項1
又は2に記載の方法。
【請求項10】
前記現在列が未マッチング画素を含む場合、前記方法は、
前記現在列に含まれる各画素に対応する未マッチング画素フラグを復号するステップであって、前記未マッチング画素フラグは対応する画素が未マッチング画素であるか否かを指示するために用いられる、ステップ、
又は、
前記現在列に含まれる未マッチング画素の数及び未マッチング画素位置フラグを復号して取得するステップであって、前記未マッチング画素位置フラグは前記未マッチング画素の前記現在列における位置を指示するために用いられる、ステップ、
又は、
前記現在列に含まれる各画素はいずれも未マッチング画素であると決定するステップ、をさらに含む、
請求項1
又は2に記載の方法。
【請求項11】
前記現在列が未マッチング画素を含まない場合、前記現在列の列ベクトルを復号して取得するステップと、
前記現在列の列ベクトルに基づいて、前記現在列の参照列を決定するステップと、
前記現在列の参照列の画素値を、前記現在列の予測値として決定するステップと、をさらに含む、
請求項1~
10のいずれか一項に記載の方法。
【請求項12】
前記現在列が未マッチング画素を含む場合、前記現在列の列ベクトルを復号して取得するステップと、
前記現在列の列ベクトルに基づいて、前記現在列の参照列を決定するステップと、
前記現在列における前記未マッチング画素に対して、ストリームから前記未マッチング画素の画素値を復号して取得するステップと、
前記現在列におけるマッチング画素に対して、前記参照列における前記マッチング画素に対応する画素値を、前記マッチング画素の予測値として決定するステップと、をさらに含む、
請求項1~
10のいずれか一項に記載の方法。
【請求項13】
前記現在列が未マッチング画素を含む場合、前記現在列の列ベクトルを復号して取得するステップと、
前記現在列の列ベクトルに基づいて、前記現在列の参照列を決定するステップと、
前記現在列における前記未マッチング画素に対して、
ストリームから前記未マッチング画素の予測差分を復号して取得し、
前記予測差分及び前記参照列における前記未マッチング画素に対応する画素値に基づき、前記未マッチング画素の再構成値を取得する、ステップと、
前記現在列におけるマッチング画素に対して、前記参照列における前記マッチング画素に対応する画素値を、前記マッチング画素の予測値として決定するステップと、をさらに含む、
請求項1~
10のいずれか一項に記載の方法。
【請求項14】
電子デバイスが実行するビデオ符号化方法であって、
現在列の列長分解能を決定するステップと、
前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定するステップであって、前記列長情報は前記現在列の列長に関連する情報
と、前記現在列が前記現在列の属する復号ブロックにおける最後の列であるか否かを指示する剰余列フラグと、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を前記列長分解能で除算した剰余画素数コード又は前記剰余画素数コードから第1値を減算したものと、を含む、ステップと、
列長情報を符号化するステップと、を含む、
ビデオ符号化方法。
【請求項15】
ストリームから現在列の列長情報を復号して取得する
ために用いられる列情報復号モジュールであって、前記列長情報は前記現在列の列長に関連する情報
と、前記現在列が前記現在列の属する復号ブロックにおける最後の列であるか否かを指示する剰余列フラグと、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コード又は前記剰余画素数コードから第1値を減算したものと、を含む、列情報復号モジュールと、
前記現在列の列長分解能を決定するために用いられる分解能決定モジュールと、
前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定するために用いられる列長決定モジュールと、を含
み、
前記列長決定モジュールが、
前記現在列が属する復号ブロックの総画素数を取得し、
前記現在列が属する復号ブロックの復号済み画素数を取得し、
前記剰余列フラグが前記現在列が前記最後の列であることを指示すれば、
前記総画素数と前記復号済み画素数を減算して、前記現在列の列長を取得し、
前記剰余列フラグが前記現在列が前記最後の列でないことを指示すれば、
前記剰余画素数コードと前記列長分解能を乗算して、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得し、
前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づき、前記現在列の列長を決定するために用いられる、 ビデオ復号装置。
【請求項16】
ストリームから現在列の列長情報を復号して取得するために用いられる列情報復号モジュールであって、前記列長情報は前記現在列の列長に関連する情報と、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードと、を含む、列情報復号モジュールと、
前記現在列の列長分解能を決定するために用いられる分解能決定モジュールと、
前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定するために用いられる列長決定モジュールと、を含み、
前記列長決定モジュールが、
前記現在列が属する復号ブロックの総画素数を取得し、
前記現在列が属する復号ブロックの復号済み画素数を取得し、
前記剰余画素数コードと前記列長分解能を乗算して、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得し、
前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づき、前記現在列の列長を決定するために用いられる、
ビデオ復号装置。
【請求項17】
現在列の列長分解能を決定するために用いられる分解能決定モジュールと、
前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定するために用いられる列情報決定モジュールであって、前記列長情報は前記現在列の列長に関連する情報
と、前記現在列が前記現在列の属する復号ブロックにおける最後の列であるか否かを指示する剰余列フラグと、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を前記列長分解能で除算した剰余画素数コード又は前記剰余画素数コードから第1値を減算したものと、を含む、列情報決定モジュールと、
前記列長情報を符号化するために用いられる列情報符号化モジュールと、を含む、
ビデオ符号化装置。
【請求項18】
プロセッサ及びメモリを含み、前記メモリに少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットは前記プロセッサによってロードされ且つ実行され、請求項1~
13のいずれか一項に記載のビデオ復号方法を実現させ、又は請求項
14に記載のビデオ符号化方法を実現させる、
コンピュータデバイス。
【請求項19】
コンピュータコマンドを含み、前記コンピュータコマンドはコンピュータ読み取り可能な記憶媒体に記憶され、コンピュータデバイスのプロセッサは前記コンピュータ読み取り可能な記憶媒体から前記コンピュータコマンドを読み取り、前記プロセッサは前記コンピュータコマンドを実行し、前記コンピュータデバイスに請求項1~
13のいずれか一項に記載のビデオ復号方法を実現させ、又は請求項
14に記載のビデオ符号化方法を実現させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
<相互の参照>
本願は2020年7月29日に出願された、出願番号202010747005.6、発明の名称「ビデオ復号方法、ビデオ符号化方法、装置、デバイス及び記憶媒体」の中国特許出願の優先権を主張し、その内容全体は参照により本願に組み込まれる。
【0002】
本願の実施例はビデオコーデック技術分野に関し、特にビデオ復号方法、ビデオ符号化方法、装置、デバイス及び記憶媒体に関する。
【背景技術】
【0003】
現在のビデオコーデック規格において、VVC(Versatile Video Coding、汎用ビデオ符号化)及びAVS3(Audio Video coding Standard 3、オーディオビデオ符号化規格3)などは、ISC(Intra String Copy、イントラストリングコピー)技術を導入している。
【0004】
関連するイントラストリングコピー技術においては、ある走査順序に従って1つの符号化ブロックを一連の画素列又は未マッチング画素に分割し、実質的に符号化ブロックを任意の整数画素長の画素列に分割することを許容し、例えば1つの未マッチング画素は長さが1の画素列であるとみなすことができる。このように、画素列長は1、2、3、4等の任意の正の整数であってもよい。
【0005】
関連技術には、画素列が揃っておらず、復号効率が低いという問題が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願の実施例は、画素列の整列度及び画素列の復号効率を向上させることができるビデオ復号方法、ビデオ符号化方法、装置、デバイス及び記憶媒体を提供する。その技術的解決手段は以下のとおりである。
【課題を解決するための手段】
【0007】
本願の実施例の一態様は、電子デバイスが実行するビデオ復号方法であって、
ストリームから現在列の列長情報を復号して取得するステップであって、前記列長情報は前記現在列の列長に関連する情報を含む、ステップと、
前記現在列の列長分解能を決定するステップと、
前記列長情報及び前記列長分解能に基づき、前記現在列の列長を決定するステップと、を含む、ビデオ復号方法を提供する。
【0008】
本願の実施例の一態様は、電子デバイスが実行するビデオ符号化方法であって、
現在列の列長分解能を決定するステップと、
前記現在列の列長及び前記列長の分解能に基づき、前記現在列の列長情報を決定するステップであって、前記列長情報は前記現在列の列長に関連する情報を含む、ステップと、
前記列長情報を符号化するステップと、を含む、ビデオ符号化方法を提供する。
【0009】
任意選択的に、
前記現在列の列長分解能は第1参照値であり、
又は、前記現在列が属する画像シーケンスに含まれる各列の列長分解能は同じであり、前記列長分解能が符号化後に前記現在列が属する画像シーケンスのシーケンスヘッダに追加し、
又は、前記現在列が属する画像に含まれる各列の列長分解能は同じであり、前記列長分解能が符号化後に前記現在列が属する画像の画像ヘッダに追加し、
又は、前記現在列が属するパッチに含まれる各列の列長分解能は同じであり、前記列長分解能が符号化後に前記現在列が属するパッチのパッチヘッダに追加し、
又は、前記現在列が属するLCU(Large Coding Unit、最大符号化ユニット)に含まれる各列の列長分解能は同じであり、前記列長分解能が符号化後に前記現在列が属するLCUの符号化情報に追加し、
又は、前記現在列が属するCU(Coding Unit、符号化ユニット)に含まれる各列の列長分解能は同じであり、前記列長分解能が符号化後に前記現在列が属するCUの符号化情報に追加し、
又は、前記現在列の列長分解能が符号化後に前記現在列の符号化情報に追加し、又は、前記現在列の列長分解能は前記現在列が属する復号ブロックのサイズに基づいて決定され、
又は、前記現在列の列長分解能は前記現在列に対応する色成分及びクロマフォーマットに基づいて決定され、
又は、前記現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、前記現在列の列長分解能は第2参照値であり、
又は、前記現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、前記現在列の列長分解能は第3参照値であり、
又は、前記現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、前記現在列の列長分解能は第4参照値である。
【0010】
任意選択的に、前記列長情報は前記現在列の列長コードを含み、前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定する前記ステップは、前記現在列の列長を前記列長分解能で割り、前記現在列の列長コードを取得するステップを含む。
【0011】
任意選択的に、前記列長情報は前記現在列が属する符号化ブロックにおいて、前記現在列を符号化した後の剰余画素数コードを含み、前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定する前記ステップは、前記現在列が属する符号化ブロックの総画素数を取得するステップと、前記現在列が属する符号化ブロックの符号化済み画素数を取得するステップと、前記総画素数と前記符号化済み画素数と前記現在列の列長とに基づき、前記現在列が属する符号化ブロックにおいて、前記現在列を符号化した後の剰余画素数を決定するステップと、前記現在列を符号化した後の前記剰余画素数を前記列長分解能で除算し、前記剰余画素数コードを取得するステップと、を含む。
【0012】
任意選択的に、前記列長情報は剰余列フラグを含み、前記剰余列フラグは前記現在列が、前記現在列の属する符号化ブロックにおける最後の列であるか否かを指示するために用いられ、前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定する前記ステップは、前記現在列が前記最後の列であれば、前記現在列に対応する剰余列フラグを第1数値として決定し、前記第1数値は前記現在列が、前記現在列の属する符号化ブロックにおける最後の列であることを示すために用いられるステップと、前記現在列に対応する剰余列フラグを符号化するステップと、前記現在列が前記最後の列でなければ、前記現在列が属する符号化ブロックの総画素数と符号化済み画素数と前記現在列の列長とに基づき、前記現在列が属する符号化ブロックの剰余画素数を決定するステップと、前記剰余画素数を前記列長分解能で除算し、前記現在列が属する符号化ブロックにおいて、前記現在列を符号化した後の剰余画素数コードを取得するステップと、前記現在列に対応する剰余列フラグを第2数値として決定し、前記第2数値は前記現在列が、前記現在列の属する符号化ブロックにおける最後の列ではないことを示すために用いられるステップと、前記現在列に対応する剰余列フラグを符号化するステップと、を含み、ここで、前記列長情報はさらに前記剰余画素数コードを含み、又は、前記列長情報はさらに前記剰余画素数コードから第1値を減算することを含む。例えば、第1値は1である。
【0013】
任意選択的に、前記方法はさらに、許容される列長分解能セットを決定し、前記列長分解能セットはインデックス値と列長分解能との間の少なくとも1組の対応関係を含むステップと、第1インデックス値を符号化し、前記第1インデックス値は前記現在列の列長分解能に対応するインデックス値であるステップと、を含む。
【0014】
任意選択的に、前記列長分解能セットに含まれる列長分解能は1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む。
【0015】
任意選択的に、現在のCUが水平方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの幅を含み、現在のCUが垂直方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの高さを含む。
【0016】
任意選択的に、前記方法はさらに、前記現在列に対応する列マッチングフラグを符号化し、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられるステップを含み、ここで、前記現在列が前記未マッチング画素を含む場合、前記現在列の列長はNであり、前記Nは前記現在列の列長分解能である。
【0017】
任意選択的に、前記現在列の列長がNより大きい場合、前記現在列は未マッチング画素を含まず、且つ前記現在列のために対応する列マッチングフラグを符号化する必要がなく、前記現在列の列長がNに等しい場合、前記現在列に対応する列マッチングフラグを符号化し、ここで、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられ、前記Nは前記現在列の列長分解能である。
【0018】
任意選択的に、前記現在列が未マッチング画素を含む場合、前記方法はさらに、前記現在列に含まれる各画素に対応する未マッチング画素フラグを符号化し、前記未マッチング画素フラグは前記画素が未マッチング画素であるか否かを指示するために用いられるステップ、又は、前記現在列に含まれる未マッチング画素の数及び未マッチング画素位置フラグを符号化し、前記未マッチング画素位置フラグは前記未マッチング画素の前記現在列における位置を指示するために用いられるステップ、又は、前記現在列に含まれる各画素がいずれも未マッチング画素であると決定するステップを含む。
【0019】
任意選択的に、前記方法はさらに、前記現在列が未マッチング画素を含まない場合、前記現在列の参照列を決定するステップと、前記現在列の参照列に基づき、前記現在列の列ベクトルを決定するステップと、前記現在列の列ベクトルを符号化するステップと、を含む。
【0020】
任意選択的に、前記方法はさらに、
前記現在列が未マッチング画素を含む場合、前記現在列の参照列を決定するステップと、前記現在列の参照列に基づき、前記現在列の列ベクトルを決定するステップと、前記現在列の列ベクトルを符号化するステップと、前記現在列における前記未マッチング画素に対して、前記未マッチング画素の画素値を符号化した後にストリームに追加するステップと、前記現在列におけるマッチング画素に対して、符号化を行わないステップと、を含む。
【0021】
任意選択的に、前記方法はさらに、前記現在列が未マッチング画素を含む場合、前記現在列の参照列を決定するステップと、前記現在列の参照列に基づき、前記現在列の列ベクトルを決定するステップと、前記現在列の列ベクトルを符号化するステップと、前記現在列における前記未マッチング画素に対して、前記未マッチング画素の予測差分を取得するステップと、前記未マッチング画素の予測差分を符号化した後にストリームに追加するステップと、前記現在列におけるマッチング画素に対して、符号化を行わないステップと、を含む。
【0022】
本願の実施例の一態様は、
ストリームから現在列の列長情報を復号して取得するために用いられる列情報復号モジュールであって、前記列長情報は前記現在列の列長に関連する情報を含む、列情報復号モジュールと、
前記現在列の列長分解能を決定するために用いられる分解能決定モジュールと、
前記列長情報及び前記列長分解能に基づき、前記現在列の列長を決定するために用いられる列長決定モジュールと、を含むビデオ復号装置を提供する。
【0023】
本願の実施例の一態様は、
現在列の列長分解能を決定するために用いられる分解能決定モジュールと、
前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定するために用いられる列情報決定モジュールであって、前記列長情報は前記現在列の列長に関連する情報を含む、列情報決定モジュールと、
前記列長情報を符号化するために用いられる列情報符号化モジュールと、を含む、ビデオ符号化装置を提供する。
【0024】
本願の実施例の一態様は、プロセッサ及びメモリを含み、前記メモリに少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットは、前記プロセッサによってロードされ且つ実行され、上記ビデオ復号方法を実現する、コンピュータデバイスを提供する。
【0025】
本願の実施例の一態様は、プロセッサ及びメモリを含み、前記メモリに少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットは前記プロセッサによってロードされ且つ実行され、上記ビデオ符号化方法を実現する、コンピュータデバイスを提供する。
【0026】
本願の実施例の一態様は、少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットはプロセッサによってロードされ且つ実行され、上記ビデオ復号方法を実現する、コンピュータ読み取り可能な記憶媒体を提供する。
【0027】
本願の実施例の一態様は、少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットはプロセッサによってロードされ且つ実行され、上記ビデオ符号化方法を実現する、コンピュータ読み取り可能な記憶媒体を提供する。
【0028】
本願の実施例の一態様は、コンピュータコマンドを含み、該コンピュータコマンドはコンピュータ読み取り可能な記憶媒体に記憶され、コンピュータデバイスのプロセッサはコンピュータ読み取り可能な記憶媒体から該コンピュータコマンドを読み取り、プロセッサは該コンピュータコマンドを実行し、該コンピュータデバイスに上記ビデオ復号方法を実行させる、コンピュータプログラム製品又はコンピュータプログラムを提供する。
【0029】
本願の実施例の一態様は、コンピュータコマンドを含み、該コンピュータコマンドはコンピュータ読み取り可能な記憶媒体に記憶され、コンピュータデバイスのプロセッサはコンピュータ読み取り可能な記憶媒体から該コンピュータコマンドを読み取り、プロセッサは該コンピュータコマンドを実行し、該コンピュータデバイスに上記ビデオ符号化方法を実行させる、コンピュータプログラム製品又はコンピュータプログラムを提供する。
【発明の効果】
【0030】
本願の実施例が提供する技術的解決手段は少なくとも以下の有益な効果を含むことができる。
【0031】
まずストリームから列長情報を復号して取得して、且つ現在列の列長分解能を決定し、次に列長情報及び列長分解能に基づいて現在列の列長を決定し、列長分解能を画素列の分割及び復号の根拠とすることにより、符号化ブロックにおける画素列長を列長分解能の倍数に制限することができ、画素列の整列度を向上させ、復号側は、メモリにマッチした条件で復号することができ、画素列の復号効率を向上させる。
【図面の簡単な説明】
【0032】
【
図1】
図1は本願が例示的に示すビデオ符号化プロセスの基本フローチャートである。
【
図2】
図2は本願の一実施例が提供するインター予測モードの概略図である。
【
図3】
図3は本願の一実施例が提供する候補動きベクトルの概略図である。
【
図4】
図4は本願の一実施例が提供するイントラブロックコピーモードの概略図である。
【
図5】
図5は本願の一実施例が提供するイントラ列コピーモードの概略図である。
【
図6】
図6は本願の一実施例が提供する通信システムの簡易ブロック図である。
【
図7】
図7は本願が例示的に示すビデオエンコーダ及びビデオデコーダのストリーミング環境における配置方式の概略図である。
【
図8】
図8は本願の一実施例が提供するビデオ復号方法のフローチャートである。
【
図9】
図9は本願の別の実施例が提供するビデオ復号方法のフローチャートである。
【
図10】
図10は本願の別の実施例が提供するビデオ復号方法のフローチャートである。
【
図11】
図11は本願の別の実施例が提供するビデオ復号方法のフローチャートである。
【
図12】
図12は本願の一実施例が提供するビデオ符号化方法のフローチャートである。
【
図13】
図13は本願の一実施例が提供するビデオ復号装置のブロック図である。
【
図14】
図14は本願の別の実施例が提供するビデオ復号装置のブロック図である。
【
図15】
図15は本願の一実施例が提供するビデオ符号化装置のブロック図である。
【
図16】
図16は本願の別の実施例が提供するビデオ符号化装置のブロック図である。
【
図17】
図17は本願の一実施例が提供するコンピュータデバイスの構造ブロック図である。
【発明を実施するための形態】
【0033】
本願の目的、技術的解決手段及び利点をより明確にするために、以下に図面を参照しながら、本願の実施形態をさらに詳細に説明する。
【0034】
本願の実施例を説明する前に、まず
図1を参照してビデオ符号化技術を簡単に説明する。
図1はビデオ符号化プロセスの基本フローチャートを例示したものである。
【0035】
ビデオ信号とは、複数のフレームを含む画像シーケンスを指す。フレーム(frame)は、ビデオ信号空間情報の表現である。YUVモードを例とすると、1つのフレームは1つの輝度サンプル行列(Y)及び2つの色度サンプル行列(Cb及びCr)を含む。ビデオ信号の取得方式から見ると、カメラで撮影された方式及びコンピュータで生成された方式の2種類に分けることができる。統計特性の違いにより、ビデオ信号に対応する圧縮符号化方式も区別されることがある。
【0036】
いくつかの主流のビデオ符号化技術、例えばH.265/HEVC(High Efficient Video Coding、高効率ビデオ圧縮符号化)、H.266/VVC(Versatile Video Coding、汎用ビデオ符号化)規格、AVS(Audio Video coding Standard、オーディオビデオ符号化規格)(AVS3など)においては、混合符号化フレームワークを採用し、入力された元のビデオ信号に対して以下の一連の操作及び処理を行う。
【0037】
<1> ブロック分割構造(block partition structure
入力画像は複数の重複しない処理ユニットに分割され、各処理ユニットは同様の圧縮操作を行う。この処理ユニットはCTU(Coding Tree Unit、符号化ツリーユニット)、又はLCUと呼ばれる。CTUをさらに細かく分割し続けて、1つ又は複数の基本コードであるユニットを取得することができ、それはCUと呼ばれる。各CUは、1つの符号化プロセスにおける最も基本的な要素である。以下の説明は、各CUに対して採用され得る様々な符号化方式である。
【0038】
<2> 予測符号化(Predictive Coding)
イントラ予測及びインター予測等の方式を含み、元のビデオ信号は選択された再構成済みビデオ信号による予測を経た後、差分ビデオ信号を取得する。符号化側は多くの可能な予測符号化モードのうち、現在のCUに最適な予測符号化モードを選択し、且つ選択された予測符号化モードを復号側に知らせる必要がある。ここで、イントラ予測とは、予測された信号が、同じ画像内の符号化されて再構成された領域からのものであることを意味する。インター予測とは、予測された信号が、現在の画像とは異なる符号された他の画像(参照画像と呼ばれる)からのものであることを意味する。
【0039】
<3> 変換符号化及び量子化(Transform & Quantization)
差分ビデオ信号はDFT(Discrete Fourier Transform、離散フーリエ変換)、DCT(Discrete Cosine Transform、離散コサイン変換)等の変換操作により、変換領域に変換され、変換係数と呼ばれる。変換領域における信号は、さらに損失のある量子化操作を行い、一定の情報を失い、量子化後の信号は圧縮表現に有利である。いくつかのビデオ符号化規格において、複数の変換方式を選択することができ、従って、符号化側も現在のCUのためにそのうちの1つの変換方式を選択し、且つ選択された変換方式を復号側に知らせる必要がある。量子化の精細度は、一般的に量子化パラメータによって決定される。QP(Quantization Parameter、量子化パラメータ)の値が大きい場合、より大きな値の範囲の係数が同一の出力に量子化されることを示し、従って一般的により大きな歪みと、低い符号化率をもたらし、逆に、QP値が小さい場合、小さい値の範囲の係数が同一の出力に量子化されることを示し、従って一般的に小さい歪みをもたらし、同時に高い符号化率に対応する。
【0040】
<4> エントロピー符号化(Entropy Coding)又は統計符号化
量子化された変換領域信号は、各値の出現する周波数に基づき、統計圧縮符号化を行い、最後に2値化(0又は1)された圧縮ストリームを出力する。同時に、符号化は他の情報、例えば選択されたモードや動きベクトル等を生成し、エントロピー符号化を行って符号化率を低下させる必要もある。統計符号化は可逆符号化方式であり、同じ信号を表現するために必要な符号化率を効果的に低減することができる。一般的な統計符号化方式は可変長符号化(Variable Length Coding、略称VLC)又はコンテキスト適応型2値算術符号化(Content Adaptive Binary Arithmetic Coding、略称CABAC)を有する。
【0041】
<5> ループフィルタリング(Loop Filtering)
符号化済み画像は、逆量子化、逆変換及び予測補償の操作(上記2~4の逆方向操作)により、再構成された復号画像、すなわち再構成画像を取得することができる。再構成画像は元の画像に比べて、量子化の影響があるため、一部の情報は元の画像と異なり、歪み(distortion)が発生する。再構成画像に対してフィルタリング操作を行い、例えばデブロッキングフィルタリング(deblocking)、SAO(Sample Adaptive Offset、サンプル適応オフセット量)又はALF(Adaptive Lattice Filter、適応格子型フィルタ)等のフィルタは、量子化による歪みの程度を効果的に低減することができる。これらのフィルタリングされた再構成画像は、後続の符号化画像の参照として、将来の信号を予測するために用いられ、そのため上記フィルタリング操作はループフィルタリング、及び符号化ループ内のフィルタリング操作とも呼ばれる。
【0042】
上記符号化プロセスから分かるように、復号側において、各CUに対して、デコーダは圧縮ストリームを取得した後、まずエントロピー復号を行い、様々なモード情報及び量子化後の変換係数を取得する。各変換係数は逆量子化及び逆変換を経て、差分ビデオ信号を取得する。一方では、既知の符号化モード情報に基づいて、該CUに対応する予測信号を取得することができ、両者を加算することで、再構成信号を取得することができる。最後に、復号画像の再構成値は、ループフィルタリングの操作を経て、最終的な出力信号を生成する必要がある。
【0043】
いくつかの主流のビデオ符号化規格、例えばHEVC、VVC、AVS3等の規格においては、いずれもブロックに基づく混合符号化フレームワークを採用する。それらは元のビデオデータを一連の符号化ブロックに分け、予測、変換及びエントロピー符号化等のビデオ符号化方法を組み合わせて、ビデオデータの圧縮を実現する。ここで、動き補償はビデオ符号化の一般的な予測方法であり、動き補償はビデオコンテンツの時間領域又は空間領域における冗長特性に基づき、符号化済み領域から現在の符号化ブロックの予測値を導出する。該方法は、インター予測、イントラブロックコピー予測、イントラストリングコピー予測等を含み、具体的な符号化の実現において、これらの予測方法を単独又は組み合わせて用いることができる。これらの予測方法を使用した符号化ブロックについて、一般的にはストリームにおいて1つ又は複数の二次元の変位ベクトルを明示的又は暗黙的に符号化して、現在ブロック(又は現在ブロックの同位ブロック)のその1つ又は複数の参照ブロックに対する変位を示す必要がある。
【0044】
注意すべきこととして、異なる予測モード及び異なる実現方式において、変位ベクトルは異なる名称を有する可能性があり、本明細書では以下の方式で統一し説明する。1) インター予測モードにおける変位ベクトルは動きベクトル(Motion Vector、略称MV)と称する。2) IBC(Intra Block Copy、イントラブロックコピー)予測モードにおける変位ベクトルはブロックベクトル(Block Vector、略称BV)と称する。3) ISC(Intra String Copy、イントラストリングコピー)予測モードにおける変位ベクトルはストリングベクトル(String Vector、略称SV)と称する。イントラストリングコピーは、「列予測」又は「列マッチング」などとも呼ばれる。
【0045】
MVは、インター予測モードに用いられる変位ベクトルを指し、現在の画像から参照画像に向けて、値が現在ブロックと参照ブロックとの間の座標オフセット量であり、ここで、現在ブロックと参照ブロックとは2つの異なる画像内にある。インター予測モードにおいて、動きベクトル予測を導入し、現在ブロックの動きベクトルを予測することにより、現在ブロックに対応する予測動きベクトルを取得することができる。現在ブロックに対応する予測動きベクトルと実際の動きベクトルとの間の差分値を符号化して伝送することは、現在ブロックに対応する実際の動きベクトルを直接符号化して伝送することに比べて、オーバーヘッドビットの節約に役立つ。本願の実施例において、予測動きベクトルは、動きベクトル予測技術により得られた現在ブロックの動きベクトルの予測値を指す。
【0046】
BVはIBC予測モードに用いられる変位ベクトルを指し、その値は現在ブロックと参照ブロックとの間の座標オフセット量であり、ここで、現在ブロックと参照ブロックとはいずれも現在の画像内にある。IBCモードにおいて、ブロックベクトル予測を導入し、現在ブロックのブロックベクトルを予測することにより、現在ブロックに対応する予測ブロックベクトルを取得することができる。現在ブロックに対応する予測ブロックベクトルと実際のブロックベクトルとの間の差分値を符号化して伝送することは、現在ブロックに対応する実際のブロックベクトルを直接符号化して伝送することに比べて、オーバーヘッドビットの節約に役立つ。本願の実施例において、予測ブロックベクトルは、ブロックベクトル予測技術により得られた現在ブロックのブロックベクトルの予測値を指す。
【0047】
SVは、ISC予測モードに用いられる変位ベクトルを指し、値が現在列と参照列との間の座標オフセット量であり、ここで、現在列と参照列とはいずれも現在の画像内にある。ISCモードにおいて、列ベクトル予測を導入し、現在列の列ベクトルを予測することにより、現在列に対応する予測列ベクトルを取得することができる。現在列に対応する予測列ベクトルと実際の列ベクトルとの間の差分値を符号化して伝送することは、現在列に対応する実際の列ベクトルを直接符号化して伝送することに比べて、オーバーヘッドビットの節約に役立つ。本願の実施例において、予測列ベクトルは列ベクトル予測技術により得られた現在列の列ベクトルの予測値を指す。
【0048】
以下にいくつかの異なる予測モードについて説明する。
【0049】
<1 インター予測モード>
図2に示すように、インター予測はビデオ時間領域の相関性と、隣接する符号化済み画像の画素とに基づき現在の画像の画素を予測することで、ビデオ時間領域の冗長を効果的に除去する目的を達成し、符号化差分データのビットを効果的に節約することができる。ここで、Pは現在のフレームであり、Prは参照フレームであり、Bは現在の符号化対象ブロックであり、BrはBの参照ブロックである。B’のPr画像における位置はBのP画像における座標位置と同じであり、Br座標は(xr、yr)であり、B’座標は(x、y)である。現在の符号化対象ブロックとその参照ブロックとの間の変位は、動きベクトル(MV)と呼ばれ、即ちMV=(xr-x、yr-y)である。
【0050】
時間領域又は空間領域の隣接ブロックが強い相関性を有することを考慮し、MV予測技術は、MVを符号化するために必要なビットをさらに低減することができる。H.265/HEVCにおいて、インター予測は、Merge及びAMVP(Advanced Motion Vector Prediction、高度動きベクトル予測)の2つのMV予測技術を含む。
【0051】
Mergeモードは現在のPU(Prediction Unit、予測ユニット)のために1つのMV候補リストを確立し、そこでは5つの候補MV(及びその対応する参照画像)が存在する。この5つの候補MVをトラバースし、レート歪みコストが最も小さいものを最適なMVとして選択する。コーデックが同じ方式で候補リストを確立する場合、エンコーダは最適なMVの候補リストにおけるインデックスを伝送すればよい。なお、HEVCのMV予測技術はさらにskipモードを有し、Mergeモードの特例である。Mergeモードで最適なMVを見つけた後、現在ブロックと参照ブロックが基本的に同じであれば、差分データを伝送する必要がなく、MVのインデックスと1つのskip flagを伝送するだけでよい。
【0052】
Mergeモードで確立されたMV候補リストは空間領域及び時間領域の2種類の状況を含み、B Slice(Bフレーム画像)に対して、組み合わせリスト方式をさらに含む。ここで、空間領域は最大4つの候補MVを提供し、その確立は
図3における(a)部分に示すとおりである。空間領域リストはA1→B1→B0→A0→B2の順に従って確立され、ここでB2は代替であり、即ちA1、B1、B0、A0のうちの1つ又は複数が存在しない場合、B2の動き情報を使用する必要がある。時間領域に最大でも1つの候補MVだけを提供し、その確立は
図3における(b)部分に示すとおりであり、同位PUのMVから式curMV=td * colMV / tbに従って伸縮して得られる。
【0053】
ここで、curMVは現在のPUのMVを表し、colMVは同位PUのMVを表し、tdは現在の画像と参照画像との間の距離を表し、tbは同位画像と参照画像との間の距離を表す。同位ブロック上のD0位置のPUが利用できない場合、D1位置の同位PUで置き換える。B SliceにおけるPUに対して、2つのMVが存在するため、そのMV候補リストも2つのMVP(Motion Vector Predictor、予測動きベクトル)を提供する必要がある。HEVCは、MV候補リスト内の最初の4つの候補MVを2つずつ組み合わせることによって、B Sliceのための組み合わせリストを生成する。
【0054】
同様に、AMVPモードは空間領域及び時間領域の隣接ブロックのMV相関性に基づき、現在のPUのためにMV候補リストを確立する。Mergeモードと異なり、AMVPモードのMV候補リストから最適な予測MVを選択し、現在の符号化対象ブロックの動き検索によって取得した最適なMVと差分符号化を行い、すなわちMVD=MV-MVPのように符号化し、ここでMVDは動きベクトル差分(Motion Vector Difference)であり、復号側は同じリストを確立することにより、MVDとMVPの該リストにおける番号だけで現在の復号ブロックのMVを計算することができる。AMVPモードのMV候補リストも空間領域及び時間領域の2種類の状況を含み、異なるのはAMVPモードのMV候補リストの長さが2のみであることである。
【0055】
上述したように、HEVCのAMVPモードでは、MVD(Motion Vector Difference、動きベクトル差分)を符号化する必要がある。HEVCにおいて、MVDの分解能はslice_headerにおけるuse_integer_mv_flagによって制御され、該フラグの値が0である場合、MVDは1/4(輝度)画素分解能で符号化され、該フラグの値が1である場合、MVDは整数(輝度)画素分解能を用いて符号化される。VVCでは適応動きベクトル精度(Adaptive Motion Vector Resolution、略称AMVR)の方法を用いる。この方法は、各CUが符号化MVの分解能を適応選択することを許容する。通常のAMVPモードでは、任意選択される分解能は、1/4、1/2、1及び4画素分解能を含む。少なくとも1つのゼロではないMVD成分を有するCUの場合、最初に、1つのフラグはCUのための1/4輝度サンプリングMVD精度が使用されるか否かを示すように符号化される。該フラグが0である場合、現在のCUのMVDは、1/4画素分解能で符号化される。そうでなければ、CUが1/2画素分解能又は他のMVD分解能を使用することを示すために、第2のフラグを符号化する必要がある。そうでなければ、第3のフラグを符号化することで、1画素分解能又は4画素分解能がCUに使用されるか否かを示す。
【0056】
<2 IBC予測モード>
IBCは、HEVCスクリーンコンテンツ符号化(Screen Content Coding、略称SCC)拡張において採用されたイントラ符号化ツールであり、スクリーンコンテンツの符号化効率を顕著に向上させる。AVS3及びVVCにおいても、IBC技術はスクリーンコンテンツ符号化の性能を向上させるために採用されている。IBCはスクリーンコンテンツビデオの空間における相関性と、現在の画像における符号化済み画像の画素に基づき現在の符号化対象ブロックの画素を予測して、符号化画素に必要なビットを効果的に節約することができる。
図4に示すように、IBCにおける現在ブロックとその参照ブロックとの間の変位は、BV(ブロックベクトル)と呼ばれる。H.266/VVCは、インター予測に類似したBV予測技術を採用して、BVを符号化するために必要なビットをさらに節約し、1又は4画素分解能でBVD(Block Vector Difference、ブロックベクトル差分)を符号化することを許容する。
【0057】
<3 ISC予測モード>
ISC技術はある走査順序(例えばラスタースキャン、往復スキャン及びジグザグスキャン等)に従って1つの符号化ブロックを一連の画素列又は未マッチング画素に分割する。IBCに類似し、各列は現在の画像の符号化済み領域において同じ形状の参照列を探し、現在列の予測値を導出し、現在列の画素値と予測値との間の差分を符号化することにより、画素値を直接符号化することの代わりとして、ビットを効果的に節約することができる。
図5はイントラストリングコピーの概略図を示し、濃い灰色の領域は符号化済み領域であり、白色の28個の画素は列1であり、薄い灰色の35個の画素は列2であり、黒色の1個の画素は未マッチング画素を示す。列1とその参照列との間の変位は、すなわち
図4における列ベクトル1であり、列2とその参照列との間の変位は、すなわち
図4における列ベクトル2である。
【0058】
イントラストリングコピー技術は、現在の符号化ブロックにおける各列に対応するSVや列長及びマッチングする列があるか否かのフラグ等を符号化する必要がある。ここで、SVは符号化対象の列からその参照列への変位を表す。列長は、該列に含まれる画素数を示す。異なる実現方式において、列長の符号化には複数の方式があり、以下にいくつかの例を示す(一部の例は組み合わせて使用することができる)。1) ストリームにおいて列長を直接符号化する。2) ストリームにおいて該列の後続の処理対象画素数を符号化処理し、復号側は現在ブロックの大きさN、処理済み画素数N1、復号して得られた処理対象画素数N2に基づき、L=N-N1-N2であるように、現在列長を算出する。3) ストリームにおいて1つのフラグを符号化し、該フラグは、該列が最後の列であるか否かを指示し、最後の列であれば、現在ブロックの大きさN、処理済み画素数N1に基づき、L=N-N1であるように現在列長を計算して取得する。1つの画素が参照可能な領域において対応する参照を見つけられない場合、未マッチング画素の画素値を直接符号化する。
【0059】
列予測技術は、2020年6月のAVSワーキンググループ第73回会議において規格に採用された。以下に現在の解決手段における列予測の復号フローを示す(下線付き太字のフィールドは復号を必要とするシンタックス要素を表し、下線なしで頭文字が大文字のフィールドは変数を表し、変数の値はシンタックス要素を復号して取得することができ、以下のフローは本願と無関係のいくつかの詳細を省略している)。
【0060】
【0061】
セマンティックス関連の説明は以下のとおりである。
【0062】
<1 イントラストリングコピー予測のマッチングタイプフラグisc_match_type_flag[i]>
isc_match_type_flag[i]は2値変数である。値「1」は現在の符号化ユニットの第i部分が列であることを示し、値「0」は現在の符号化ユニットの第i部分が未マッチング画素であることを示す。IscMatchTypeFlag[i]はisc_match_type_flag[i]の値に等しい。ビットストリームにisc_match_type_flag[i]が存在しない場合、IscMatchTypeFlag[i]の値は0である。
【0063】
<2 次の剰余画素数next_remaining_pixel_in_cu[i]>
next_remaining_pixel_in_cu[i]の値は、現在の符号化ユニットの第i部分の復号が完了した後、現在の符号化ユニットに残っているまだ復号が完了していない画素数を示す。Next Remaining Pixel In Cu[i]の値はnext_remaining_pixel_in_cu[i]の値に等しい。
【0064】
<3 イントラストリングコピー予測の未マッチング画素のY成分の値isc_unmatched_pixel_y[i]、イントラストリングコピー予測の未マッチング画素のU成分の値isc_unmatched_pixel_u[i]、イントラストリングコピー予測の未マッチング画素のV成分の値isc_unmatched_pixel_v[i]>
isc_unmatched_pixel_y[i]、isc_unmatched_pixel_u[i]、isc_unmatched_pixel_v[i]はいずれも10ビット符号なし整数であり、現在の符号化ユニットの第i部分の未マッチング画素のY、Cb又はCr成分の値を表す。IscUnmatchedPixelY[i]、IscUnmatchedPixelU[i]、IscUnmatchedPixelV[i]はそれぞれisc_unmatched_pixel_y[i]、isc_unmatched_pixel_u[i]、isc_unmatched_pixel_v[i]の値に等しい。
【0065】
現在のイントラストリングコピーの手段において、列長の分解能は1画素であり、符号化ユニットを任意の整数画素長のサブ列に分割することが許容される(すなわち符号化が許容される列長は、1、2、3、...であってもよい)。該解決手段において符号化ユニットは細分化された画素列に分割される可能性があり、且つ画素列の位置がメモリにマッチしない可能性があり、画素列の再構成時にメモリアクセスを頻繁に行う必要があり、符号化効率に影響を及ぼす。例えば、メモリセルが4つの画素に対応するデータを同時に並列処理できると仮定し、現在列の列長が7である場合、現在列における画素に対応するデータが2つ又は3つのメモリセルに割り当てられる状況が存在する可能性があり、この場合、復号側はメモリセルに2回又は3回アクセスしなければ現在列に対する復号を完了することができない。
【0066】
本願は、画素列の整列度及び画素列の復号効率を向上させるビデオ復号方法及びビデオ符号化方法を提供する。ストリームから現在列の列長情報を復号することにより、現在列の列長分解能を決定し、次に列長情報及び列長分解能に基づいて現在列の列長を決定し、列長分解能を画素列の分割及び復号の根拠とすることにより、符号化ブロックにおける画素列長を列長分解能の倍数に制限することができ、画素列の整列度を向上させ、復号側はメモリにマッチした条件で復号することができ、画素列の復号効率を向上させる。例えば、メモリセルが4つの画素に対応するデータを同時に並列処理できると仮定し、対応する設定された列長分解能が4であれば、画素列長は4の整数倍だけになり、メモリセルにマッチしないという状況は生じない。現在列の列長が8であると仮定すると、現在列における画素のデータは2つのセルのみに存在し、且つ2つのセルの領域が満たされており、3つのメモリセルに割り当てられて復号側がメモリセルに1回多くアクセスする必要が生じる可能性がない。
【0067】
図6は本願の一実施例が提供する通信システムの簡易ブロック図を示す。通信システム600は、例えばネットワーク650を介して相互に通信することができる複数のデバイスを含む。例として、通信システム600は、ネットワーク650を介して相互接続された第1デバイス610及び第2デバイス620を含む。
図6の実施例において、第1デバイス610及び第2デバイス620は、単方向のデータ伝送を実行する。例として、第1デバイス610は、第1デバイス610によって収集されたビデオピクチャストリームなどのビデオデータを符号化しネットワーク650を介して第2デバイス620に送信することができる。符号化済みビデオデータは、1つ又は複数の符号化ビデオストリームの形態で送信される。第2デバイス620はネットワーク650から符号化済みビデオデータを受信し、符号化済みビデオデータを復号してビデオデータを復元し、且つ復元されたビデオデータに基づいてビデオピクチャを表示することができる。単方向のデータ伝送はメディアサービスなどのアプリケーションにおいて一般的である。
【0068】
別の実施例において、通信システム600は、符号化済みビデオデータの双方向データ伝送を実行する第3デバイス630及び第4デバイス640を含み、双方向データ伝送は、例えばビデオ会議の間に起こり得る。双方向データ送信について、第3デバイス630及び第4デバイス640の各デバイスは、ビデオデータ(デバイスによって収集されたビデオピクチャストリームなど)を符号化し、ネットワーク650を介して第3デバイス630及び第4デバイス640のうちの相手のデバイスに送信することができる。第3デバイス630及び第4デバイス640の各デバイスはさらに、第3デバイス630及び第4デバイス640のうちの相手のデバイスから伝送された符号化済みビデオデータを受信し、且つ符号化済みビデオデータを復号してビデオデータを復元し、且つ復元されたビデオデータに基づいてアクセス可能なディスプレイ装置にビデオピクチャを表示することができる。
【0069】
図6の実施例において、第1デバイス610、第2デバイス620、第3デバイス630及び第4デバイス640はサーバ、パーソナルコンピュータ及びスマートフォン等のコンピュータデバイスであってもよいが、本願が開示する原理はこれに限定されない。本願の実施例はPC(Personal Computer、パーソナルコンピュータ)、携帯電話、タブレットコンピュータ、メディアプレーヤ及び/又はテレビ会議専用デバイスに適用される。ネットワーク650は、第1デバイス610、第2デバイス620、第3デバイス630、第4デバイス640の間で符号化済みビデオデータを伝送する有線及び/又は無線通信ネットワークなどを含む任意の数のネットワークを示す。通信ネットワーク650は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換することができる。該ネットワークは電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含むことができる。本願の目的において、ネットワーク650のアーキテクチャ及びトポロジーは、以下で説明されない限り、本願で開示される動作にとって重要ではない場合がある。
【0070】
実施例として、
図7はビデオエンコーダ及びビデオデコーダのストリーミング環境における配置方式を示す。本願が開示する主題は、ビデオをサポートする他のアプリケーション、例えばビデオ会議、デジタルTV(テレビ)、或いは、CD(Compact Disc、コンパクトディスク)、DVD(Digital Versatile Disc、デジタルバーサタイルディスク)、メモリスティックなどを含むデジタル媒体に圧縮したビデオを保存することなどに等しく適用可能である。
【0071】
ストリーミングシステムは収集サブシステム713を含むことができ、該収集サブシステム713はデジタルカメラ等のビデオソース701を含むことができ、ビデオソース701は圧縮されていないビデオピクチャストリーム702を作成する。実施例では、ビデオピクチャストリーム702は、デジタルカメラによって撮影されたサンプルを含む。ビデオピクチャストリーム702は、符号化済みビデオデータ704(又は符号化済みビデオストリーム)と比較して、高データ量のビデオピクチャストリームであることを強調するために太線で描写され、ビデオピクチャストリーム702は電子デバイス720によって処理することができ、該電子デバイス720はビデオソース701に結合されたビデオエンコーダ703を含む。ビデオエンコーダ703は、以下でより詳細に説明される本開示の主題の各態様を実現又は実施するためのハードウェア、ソフトウェア、又はソフトウェアとハードウェアとの組み合わせを含んでもよい。符号化済みビデオデータ704(又は符号化済みビデオストリーム704)は、ビデオピクチャストリーム702と比較して、低データ量の符号化済みビデオデータ704(又は符号化済みビデオストリーム704)であることを強調するために細線で描写され、将来の使用のためにストリーミングサーバ705に保存されてもよい。1つ又は複数のストリーミングクライアントサブシステム、例えば、
図7のクライアントサブシステム706及びクライアントサブシステム708は、符号化済みビデオデータ704のコピー707及びコピー709を検索するためにストリーミングサーバ705にアクセスすることができる。クライアントサブシステム706は、例えば、電子デバイス730内のビデオデコーダ710を含んでもよい。ビデオデコーダ710は、符号化済みビデオデータの転送コピー707を復号し、ディスプレイ712(例えばディスプレイパネル)又は別のレンダリングデバイス(図示せず)にレンダリングされる出力ビデオピクチャストリーム711を生成することができる。いくつかのストリーミングシステムでは、符号化済みビデオデータ704、ビデオデータのコピー707及びビデオデータのコピー709(例えばビデオストリーム)は、何らかのビデオ符号化/圧縮規格に従って符号化される。
【0072】
なお、電子デバイス720及び電子デバイス730は他のアセンブリ(図示せず)を含んでもよい。例として、電子デバイス720はさらにビデオデコーダ(図示せず)を含んでもよく、電子デバイス730はさらにビデオエンコーダ(図示せず)を含んでもよい。ここで、ビデオデコーダは受信した符号化済みビデオデータを復号するために用いられ、ビデオエンコーダは、ビデオデータを符号化するために用いられる。
【0073】
なお、本願の実施例が提供する技術的解決手段はH.266/VVC規格、H.265/HEVC規格、AVS(AVS3など)又は次世代ビデオコーデック規格に応用することができ、本願の実施例はこれについて限定しない。
【0074】
なお、本願の実施例が提供するビデオ復号方法は、各ステップの実行主体が復号側デバイスであってもよい。本願の実施例が提供するビデオ符号化方法は、各ステップの実行主体が符号化側デバイスであってもよい。ISCモードでのビデオ復号プロセスにおいて、本願の実施例が提供する復号手段を用いて、現在列の列長を復号して取得することができる。ISCモードでのビデオ符号化プロセスにおいて、本願の実施例が提供する符号化手段を用いて、現在列の列長を符号化することができる。復号側デバイス及び符号化側デバイスはいずれもコンピュータデバイスであってもよく、該コンピュータデバイスは、例えばPC、携帯電話、タブレットパソコン、メディアプレーヤ、ビデオ会議専用デバイス、サーバ等のデータの計算、処理及び記憶能力を有する電子機器を指す。
【0075】
さらに、本願が提供する方法は、単独で、又は任意の順序で他の方法と組み合わせて使用することができる。本願が提供する方法に基づくエンコーダ及びデコーダは、1つ又は複数のプロセッサ又は1つ又は複数の集積回路で実現することができる。以下に、幾つかの実施例によって本願の技術的解決手段を紹介し説明する。
【0076】
図8を参照し、これは本願の一実施例が提供するビデオ復号方法のフローチャートである。該方法は復号側デバイスに適用することができる。該方法は以下の複数のステップ(801~803)を含むことができる。
【0077】
ステップ801では、ストリームから現在列の列長情報を復号して取得する。
【0078】
ストリームとはビデオが符号化された後に生成されたデータストリームを指し、それは0と1による一連のバイナリデータを用いて表示することができる。いくつかの規格でビットストリーム(bitstream)とも呼ばれるストリームは、符号化画像によって形成されるバイナリデータストリームである。
【0079】
現在列とは、現在復号された画素列を指す。画素列とは、一定数の画素からなる画素シーケンスである。任意選択的に、画素列は有限個のバイナリビットのデータからなる規則的シーケンスである。ISCモードでは、1つのCUは、いくつかの画素列に分割されてもよい。ビデオ復号においては、画素列における各画素の画素値を復元するために、まず各画素列の列長を決定する必要がある。
【0080】
列長情報とはストリームにおける画素列の列長に関する情報であり、画素列の列長を決定するために用いられる。任意選択的に、現在列の列長情報は現在列の列長に関連する情報を含み、画素列の列長を決定するために用いられる。
【0081】
ステップ802では、現在列の列長分解能を決定する。
【0082】
列長分解能(String Length Resolution、略称SLR)とは、CUを画素列の最小列長、すなわち列長に許容される最小値に分割する。例えば、列長分解能が4の場合、画素列の最小列長が4であることを示す。
【0083】
任意選択的に、列長分解能はNで表すことができ、Nは正の整数である。任意選択的に、Nは1より大きい整数である。列長分解能がNである場合、画素列の列長はNの整数倍であり、例えば画素列の列長はN、2N、3N、4N、5N等であってもよく、以下同様である。例えば、列長分解能が4の場合、画素列の列長は4、8、12、16、20等であってもよい。
【0084】
本願の実施例では、現在列の列長分解能を決定する以下のいくつかの方式が例示的に提供される。
【0085】
<方式1>
第1参照値を現在列の列長分解能として決定する。上記第1参照値とは予め設定された列長分解能の数値を指し、例えば、該第1参照値はプロトコルにおいて予め定義することができる。復号側は現在列を復号する時、第1参照値を現在列の列長分解能として決定し、ストリームから現在列の列長分解能を取得する必要がない。
【0086】
<方式2>
現在列が属する画像シーケンスのシーケンスヘッダから、復号して現在列の列長分解能を取得する。いくつかの規格において、上記画像シーケンスはビデオシーケンス(sequence)とも呼ばれ、符号化ビットストリームの最上位層シンタックス構造であり、1つ又は複数の連続した符号化画像を含む。任意選択的に、画像シーケンスは最初のシーケンスヘッダから開始し、シーケンス終了コード又はビデオ編集コードは1つの画像シーケンスの終了を表す。画像シーケンスの最初のシーケンスヘッダから最初に出現するシーケンス終了コード又はビデオ編集コードまでのシーケンスヘッダは、繰り返しシーケンスヘッダである。任意選択的に、各シーケンスヘッダの後に1つ又は複数の符号化画像が続き、各画像の前に画像ヘッダがあるべきである。好ましくは、符号化画像はビットストリームにおいてビットストリーム順序に配列され、ビットストリーム順序は復号順序と同じであるべきである。復号順序は、表示順序と同じでなくてもよい。上記画像シーケンスのシーケンスヘッダに該画像シーケンスを復号するための関連する情報が含まれる。例えば、画像シーケンスのシーケンスヘッダは上記画像シーケンスのストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。本例では、画像シーケンスのシーケンスヘッダには、列長分解能も含まれる。任意選択的に、現在列が属する画像シーケンスに含まれる各列の列長分解能は同じであり、いずれも該画像シーケンスのシーケンスヘッダから復号して得られた列長分解能である。一例では、復号側は画像システムのシーケンスヘッダ内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は該画像シーケンス内の全ての列の列長分解能を指示する。
【0087】
<方式3>
現在列が属する画像の画像ヘッダから、復号して現在列の列長分解能を取得する。上記画像はビデオにおける単一の画像フレームを指す。いくつかの規格では、画像はフレーム又はフィールドであってもよい。任意選択的に、上記画像は符号化画像であり、上記符号化画像は1つの画像の符号化表示である。上記画像の画像ヘッダに該画像シーケンスを復号するための関連する情報が含まれる。例えば、画像の画像ヘッダは上記画像のストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。本例では、画像の画像ヘッダには、列長分解能も含まれる。任意選択的に、現在列が属する画像に含まれる各列の列長分解能は同じであり、いずれも該画像の画像ヘッダから復号して取得した列長分解能である。一例では、復号側は画像の画像ヘッダ内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は該画像の全ての列の列長分解能を指示する。
【0088】
<方式4>
現在列が属するパッチのパッチヘッダから、復号して現在列の列長分解能を取得する。上記パッチ(patch)は、ラスタースキャンの順番に配列された隣接する複数の最大符号化ユニットを指す。上記ラスタースキャン(raster scan)は2次元矩形ラスターを1次元ラスターにマッピングすることを指し、1次元ラスターの入口は2次元ラスターの第1行から開始し、次いで第2行、第3行をスキャンし、以下同様である。ラスター内の行は、左から右にスキャンされる。上記パッチのパッチヘッダに該画像を復号するための関連する情報が含まれる。例えば、パッチのパッチヘッダは上記パッチのストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。本例では、パッチのパッチヘッダには、列長分解能も含まれる。任意選択的に、現在列が属するパッチに含まれる各列の列長分解能は同じであり、いずれも該パッチのパッチヘッダから復号して取得した列長分解能である。一例では、復号側はパッチのパッチヘッダ内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は該パッチの全ての列の列長分解能を指示する。
【0089】
<方式5>
現在列が属する最大符号化ユニットLCUの符号化情報から、復号して現在列の列長分解能を取得する。いくつかの規格では、LCUは、画像分割から得られるL*Lの輝度サンプル値ブロック及び対応する色度サンプル値ブロックを含む。上記LCUの符号化情報に該LCUを復号するための関連する情報が含まれる。例えば、上記LCUの符号化情報は上記LCUのストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。1つのLCUは複数のCUを含むことができる。本例では、上記LCUの符号化情報には、列長分解能も含まれる。任意選択的に、現在列が属するLCUに含まれる各列の列長分解能は同じであり、いずれもLCUの符号化情報から復号して取得した列長分解能である。一例では、復号側はLCUの符号化情報内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は該LCUの全ての列の列長分解能を指示する。
【0090】
<方式6>
現在列が属する符号化ユニットCUの符号化情報から、復号して現在列の列長分解能を取得する。上記CUの符号化情報に該CUを復号するための関連する情報が含まれる。例えば、上記CUの符号化情報は上記CUのストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。本例では、上記CUの符号化情報には、列長分解能も含まれる。任意選択的に、現在列が属するCUに含まれる各列の列長分解能は同じであり、いずれもCUの符号化情報から復号して取得した列長分解能である。一例では、復号側はCUの符号化情報内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は該CUの全ての列の列長分解能を指示する。
【0091】
<方式7>
現在列の符号化情報から、復号して現在列の列長分解能を取得する。上記現在列の符号化情報に現在列を復号するための関連する情報が含まれる。例えば、現在列の符号化情報は現在列のストリームにおける対応するデータシーケンスの前に付加され、ビット長を定義する特殊予約フィールドであってもよい。本例では、現在列の符号化情報には、現在列の列長分解能も含まれる。一例では、復号側は現在列の符号化情報内で指示情報(例えばインデックス、シンタックス要素又は他の指示情報)を復号し、該指示情報は現在列の列長分解能を指示する。これにより、異なる列の列長分解能はそれぞれの符号化情報においてそれぞれ指示を与えることができ、適応性がある。
【0092】
<方式8>
現在列が属する復号ブロックのサイズに基づいて、現在列の列長分解能を決定する。いくつかの規格では、上記復号ブロック(block)は、M*N(M列N行)のサンプル行列又は変換係数行列である。任意選択的に、現在列が属する復号ブロックは現在列が属するCUであってもよい。好ましくは、現在列が属する復号ブロックのサイズを取得し、ここで現在列が属する復号ブロックのサイズは現在列が属する復号ブロックの高さ又は幅を含む。一例では、サイズ4x4のブロックにおいて、列長分解能N=1であり、サイズ16x16のブロックの場合、列長分解能N=2であり、面積(幅x高さ)が128より大きいブロックの場合、列長分解能N=2である。
【0093】
<方式9>
現在列に対応する色成分及びクロマフォーマットに基づいて、現在列の列長分解能を決定する。上記クロマフォーマットは画素が採用する色符号化フォーマットを指す。いくつかの規格では、クロマフォーマット(chroma_format)は、クロマ成分のフォーマットを規定する2ビット符号なし整数である。上記色成分はクロマフォーマットにおける画素のクロマ成分を指す。好ましくは、現在のビデオにおける画素はRGBフォーマット又はYUVフォーマットを採用する。一例では、YUV 4:2:0フォーマットのビデオにおいて、輝度成分の列長分解能N=4が決定されていれば、クロマ成分の列長分解能N=2である。
【0094】
<方式10>
現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、第2参照値を現在列の列長分解能として決定する。上記第1閾値は参照値であり、本方式において現在列の列長分解能を決定するための根拠である。任意選択的に、上記第1閾値はCUの規格に基づいて決定することができ、異なる規格のCUに対応する第1閾値は同じであってもよく、異なっていてもよい。上記第2参照値は予め設定された列長分解能の数値であり、現在列が属するCUにおける復号済み列の数が第1閾値以上である場合に適用され、該第2参照値は、プロトコルにおいて予め規定されていてもよい。一例では、現在のCUにおける復号済み列の数がN1であると仮定すると、N1が第1閾値以上である場合、現在列の列長分解能は第2参照値4であると決定できる。また、現在列が属するCUにおける復号済み列の数が第1閾値より小さい場合、本願の実施例で紹介した他の方式で現在列の列長分解能を決定してもよく、又は第2参照値と異なる他の参照値を現在列の列長分解能として決定してもよく、本願の実施例はこれを限定しない。
【0095】
<方式11>
現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、第3参照値を現在列の列長分解能として決定する。上記未マッチング画素とはマッチングに成功していない画素を指し、即ち現在列の参照列における対応する位置の画素とマッチングしない画素である。上記第2閾値は参照値であり、本方式において現在列の列長分解能を判断するための根拠である。任意選択的に、上記第2閾値は現在列が属するCUにおける復号済み未マッチング画素の数に基づいて決定することができ、異なるCUにおける数のCUに対応する第2閾値は同じであってもよく、異なっていてもよい。上記第3参照値は予め設定された列長分解能の数値であり、現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合に適用され、該第3参照値は、プロトコルにおいて予め規定されていてもよい。一例では、現在のCUにおける復号済み未マッチング画素の数がN2であると仮定すると、N2が第2閾値以上である場合、現在列の列長分解能は第3参照値であると判断できる。また、現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値より小さい場合、本願の実施例で紹介した他の方式で現在列の列長分解能を決定してもよく、又は第3参照値と異なる他の参照値を現在列の列長分解能として決定してもよく、本願の実施例はこれを限定しない。
【0096】
<方式12>
現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、第4参照値を現在列の列長分解能として決定する。上記第3閾値は参照値であり、本方式において現在列の列長分解能を判断するための根拠である。任意選択的に、上記第3閾値は現在列が属するCUにおける復号済み未マッチング画素の数に基づいて決定することができ、異なるCUにおける数のCUに対応する第3閾値は同じであってもよく、異なっていてもよい。上記第4参照値は予め設定された列長分解能の数値であり、現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合に適用され、該第4参照値は、プロトコルにおいて予め規定されていてもよい。また、現在列が属するCUにおける復号されていない画素の数が第3閾値より大きい場合、本願の実施例で紹介した他の方式で現在列の列長分解能を決定してもよく、又は第4参照値と異なる他の参照値を現在列の列長分解能として決定してもよく、本願の実施例はこれを限定しない。
【0097】
ステップ803では、列長情報及び列長分解能に基づき、現在列の列長を決定する。
【0098】
現在列の列長とは、現在列に含まれる画素の数量を指す。
【0099】
例示的な実施例では、列長情報は現在列の列長コードを含む。復号側は現在列の列長コードと列長分解能を乗算して、現在列の列長を取得する。一例では、ストリームから現在列の列長コードL0を復号して取得し、復号側は現在列の列長コードL0と列長分解能Nを乗算し、現在列の列長Lを得て、即ちL=L0*Nである。
【0100】
任意選択的に、復号側はストリームから現在列の列長コードを取得する。上記列長コードは、ストリームにおいて列長を示すデータである。
【0101】
一例では、列長の分解能が4であり、列長が4の整数倍であり、符号化側は列長を右に2ビットシフトした後に符号化を行って、列長コードを生成し、復号側はストリームから取得した列長コードを左に2ビットシフトして実際の列長の数値を復元する。例えば、現在列の列長の最小列長が4(すなわちバイナリ数100)であれば、符号化側は列長100(バイナリ数)を右に2ビットシフトした後に符号化を行い、現在列の列長コード1(バイナリ数)を生成し、復号側はストリームから取得した列長コード1を左に2ビットシフトして符号化されていない列長の数値100(すなわち4)を復元する。さらに、現在列の列長が8(すなわちバイナリ数1000)であれば、符号化側は列長1000(バイナリ数)を右に2ビットシフトした後に符号化を行い、現在列の列長コード10(バイナリ数)を生成し、復号側はストリームから取得した列長コード10を左に2ビットシフトして符号化されていない列長の数値1000(すなわち8)を復元する。
【0102】
例示的な実施例では、列長情報は、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数コードを含む。
【0103】
現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数コードとは、現在列を復号した後、現在列が属する復号ブロックにおける残りの復号されていない画素数の、ストリームにおけるコード表示を指す。任意選択的に、上記剰余画素数コードはストリーム内のデータシーケンスのシーケンスヘッダに記憶され、上記データシーケンスは上記画像のストリームにおける対応するデータシーケンスであってもよく、現在列のストリームにおける対応するデータシーケンスであってもよく、さらには上記符号化ブロックのストリームにおける対応するデータシーケンス等であってもよく、本願の実施例はこれを限定しない。一例では、現在列が属する復号ブロックにおける各列の列長分解能は4であり、復号側が現在列を復号した後、現在列が属する復号ブロックにおける残りの復号されていない画素の数量が4、すなわちバイナリ数100であると仮定すると、それに対応するコード表示(すなわち剰余画素数コード)は1である。任意選択的に、上記剰余画素数コードをM0と表記する。
【0104】
任意選択的に、上記ステップ803は以下の複数のサブステップ(8031~8034)を含むことができる。
【0105】
ステップ8031では、現在列が属する復号ブロックの総画素数を取得する。
【0106】
任意選択的に、復号ブロックの総画素数は、復号ブロックの高さと幅とを乗算することによって得られる。任意選択的に、現在列が属する復号ブロックの総画素数をMと表記する。
【0107】
ステップ8032では、現在列が属する復号ブロックの復号済み画素数を取得する。
【0108】
任意選択的に、上記復号済み画素数は、復号側が復号済み画素列の長さを累積加算することによって得られる。任意選択的に、現在列が属する復号ブロックの復号済み画素数をM2と表記する。
【0109】
ステップ8033では、剰余画素数コードと列長分解能を乗算し、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数を取得する。
【0110】
任意選択的に、剰余画素数コードM0と列長分解能Nを乗算して、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数M1を取得し、すなわちM1=M0*Nである。
【0111】
ステップ8034では、総画素数、復号済み画素数及び現在列を復号した後の剰余画素数に基づき、現在列の列長を決定する。
【0112】
任意選択的に、上記総画素数から復号済み画素数及び剰余画素数を減算して、現在列の列長Lを取得し、すなわちL=M-M1-M2である。
【0113】
例示的な実施例では、列長情報は剰余列フラグを含み、該剰余列フラグは、現在列が、現在列の属する復号ブロックにおける最後の列であるか否かを指示するために用いられる。
【0114】
任意選択的に、剰余列フラグは、1ビットのバイナリ数で表される2値変数である。任意選択的に、剰余列フラグが0であれば、現在列は現在列が属する復号ブロックにおける最後の列であり、剰余列フラグが1であれば、現在列は現在列が属する復号ブロックにおける最後の列ではない。
【0115】
任意選択的に、上記ステップ803は以下の複数のサブステップ(803a~803d)を含むことができる。
【0116】
ステップ803aでは、現在列が属する復号ブロックの総画素数を取得する。
【0117】
ステップ803bでは、現在列が属する復号ブロックの復号済み画素数を取得する。
【0118】
ステップ803cでは、現在列が最後の列であれば、総画素数と復号済み画素数を減算し、現在列の列長を取得する。
【0119】
任意選択的に、総画素数Mと復号済み画素数M2を減算し、現在列の列長Lを得て、すなわちL=M-M2である。
【0120】
ステップ803dでは、現在列が最後の列でなければ、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数コードを取得し、剰余画素数コードと列長分解能を乗算し、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数を得て、総画素数、復号済み画素数及び現在列を復号した後の剰余画素数に基づき、現在列の列長を決定する。
【0121】
ここで、列長情報は現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数コードをさらに含み、又は、列長情報は現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数コードから第1値を減算することをさらに含み、例えば該第1値は1である。
【0122】
任意選択的に、上記剰余画素数コードから第1値、例えば1を減算した後のコードをM0と表記する。任意選択的に、剰余画素数コードから第1値、例えば1を減算した後のコードM0に第1値、例えば1を加算した後に列長分解能と乗算して、現在列が属する復号ブロックにおける現在列を復号した後の剰余画素数M1を取得し、すなわちM1=(M0+1)*Nである。任意選択的に、上記総画素数から上記復号済み画素数及び上記剰余画素数を減算して、現在列の列長Lを取得し、すなわちL=M-M1-M2である。
【0123】
要約すると、本願の実施例が提供する技術的解決手段は、まずストリームから現在列の列長情報を復号して、現在列の列長分解能を決定し、次に列長情報及び列長分解能に基づいて現在列の列長を決定し、列長分解能を画素列の分割及び復号の根拠とすることにより、符号化ブロックにおける画素列長を列長分解能の倍数に制限することができ、画素列の整列度を向上させ、復号側はメモリにマッチした条件で復号することができ、画素列の復号効率を向上させる。
【0124】
また、さらに列長分解能の制限範囲を設定することにより、画素列の復号効率をさらに向上させ、且つ列長分解能に基づいて予め符号化された列長に関連するコードデータを復号して、復号データ量を効果的に低減し、復号効率を向上させる。
【0125】
図9を参照し、これは本願の別の実施例が提供するビデオ復号方法のフローチャートである。該方法は復号側デバイスに適用することができる。該方法は以下の複数のステップ(901~905)を含むことができる。
【0126】
ステップ901では、許容される列長分解能セットを決定する。
【0127】
列長分解能セットとは、列長分解能からなるセットである。任意選択的に、許容される列長分解能セットとは許容される列長分解能からなるセットを指し、符号化側/復号側で使用が許容される列長分解能の範囲を指示するために用いられ、許容される列長分解能セット外の列長分解能はいずれも使用することができない。任意選択的に、許容される列長分解能セットは、1つ又は複数の列長分解能を含む。
【0128】
任意選択的に、許容される列長分解能セットは、インデックス値と列長分解能との間の少なくとも1組の対応関係を含む。好ましくは、ある列長分解能に対応するインデックス値は、該列長分解能の唯一の識別子を指し、異なる列長分解能は異なるインデックス値を有する。任意選択的に、列長分解能セットにおけるインデックス値と列長分解能との間は一対一の対応関係である。
【0129】
任意選択的に、上記列長分解能セットに含まれる列長分解能は1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む。
【0130】
任意選択的に、列長分解能は、1つ又は複数の参照値である。任意選択的に、上記参照値は、1.任意の定数、2.現在のCUの幅と現在のCUの高さとの積の半分、のうちの少なくとも1つを含む。任意選択的に、上記任意の定数は1、2、4......等の正の整数であり、簡略化して2kで表すことができ、ここでkは0以上の整数である。任意選択的に、現在のCUの幅がWであり、高さがHであると仮定すると、列長分解能は1、2、4、...、W*H/2を含む。
【0131】
任意選択的に、列長分解能は現在のCUの幅である。任意選択的に、現在のCUが水平方向にスキャンされる場合、列長分解能セットに含まれる列長分解能のうちの1つは、現在のCUの幅である。
【0132】
任意選択的に、列長分解能は現在のCUの高さである。任意選択的に、現在のCUが垂直方向にスキャンされる場合、列長分解能セットに含まれる列長分解能のうちの1つは、現在のCUの高さである。
【0133】
ステップ902では、第1インデックス値を復号して取得する。
【0134】
任意選択的に、現在列のストリームにおける対応するデータシーケンスのシーケンスヘッダ(上述したシーケンスヘッダ、画像ヘッダ、パッチヘッダ等)を復号して第1インデックス値を取得する。上記第1インデックス値は現在列の列長分解能に対応するインデックス値である。
【0135】
ステップ903では、第1インデックス値の列長分解能セットにおける対応する列長分解能を、現在列の列長分解能として決定する。
【0136】
任意選択的に、インデックス値と列長分解能との対応関係に基づき、上記第1インデックス値の列長分解能セットにおける対応する列長分解能を現在列の列長分解能として決定する。
【0137】
ステップ904では、ストリームから現在列の列長情報を復号して取得する。
【0138】
ステップ905では、列長情報及び列長分解能に基づき、現在列の列長を決定する。
【0139】
ステップ905の紹介と説明については、上記
図8の実施例におけるステップ803に対する紹介と説明を参照することができ、本実施例はここでの説明を省略する。
【0140】
要約すると、本願の実施例が提供する技術的解決手段は、列長分解能の値を合理的に取得することにより許容される列長分解能セットを決定し、さらにストリームから取得したインデックス値に基づいて対応する列長分解能を選択して、画素列を復号し、復号データ量をさらに低減させ、且つ復号プロセスにおいてデバイスがメモリにアクセスする回数をさらに低減して、復号効率を向上させる。
【0141】
図10を参照し、これは本願の別の実施例が提供するビデオ復号方法のフローチャートである。該方法は復号側デバイスに適用することができる。該方法は以下の複数のステップ(1001~1006)を含むことができる。
【0142】
ステップ1001では、ストリームから現在列の列長情報を復号して取得する。
【0143】
ステップ1002では、現在列の列長分解能を決定する。
【0144】
ステップ1003では、現在列に対応する列マッチングフラグを復号し、該列マッチングフラグは現在列が未マッチング画素を含むか否かを指示するために用いられる。
【0145】
上記列マッチングフラグは、1ビットのバイナリ数で表される2値変数である。任意選択的に、列マッチングフラグが0であれば、現在列は未マッチング画素を含まず、列マッチングフラグが1であれば、現在列は未マッチング画素を含む。
【0146】
ステップ1004では、現在列が未マッチング画素を含む場合、現在列の列長はNであると決定し、Nは現在列の列長分解能である。
【0147】
任意選択的に、上記ステップ1004を実行した後、現在列における未マッチング画素の位置を導出するステップ1006をさらに含む。
【0148】
ステップ1005では、現在列が未マッチング画素を含まない場合、現在列の列長情報及び列長分解能に基づいて、現在列の列長を決定する。
【0149】
例示的な実施例において、現在列が未マッチング画素を含む場合、上記ステップ1006は以下の方式によって実現することができる。
【0150】
<方式a> 現在列に含まれる各画素に対応する未マッチング画素フラグを復号する。
【0151】
上記未マッチング画素フラグは画素が未マッチング画素であるか否かを指示するために用いられる。上記未マッチング画素フラグは、1ビットのバイナリ数で表される2値変数である。任意選択的に、未マッチング画素フラグが0であれば、該画素は未マッチング画素ではないことを示し、未マッチング画素フラグが1であれば、該画素は未マッチング画素であることを示す。任意選択的に、ストリームから現在列に含まれる各画素に対応する未マッチング画素フラグを復号して取得する。任意選択的に、現在列の列長がNである場合、現在列におけるN-1個前の画素に対応する未マッチング画素フラグがいずれも、対応する画素がマッチング画素であることを示す場合、最後の画素が未マッチング画素であると決定し、すなわち第N個の画素が未マッチング画素であり、この場合、第N個の画素に対応する未マッチング画素フラグは符号化してもよく符号化しなくてもよい。
【0152】
<方式b> 現在列に含まれる未マッチング画素の数及び未マッチング画素位置フラグを復号して取得し、未マッチング画素位置フラグに基づいて現在列に含まれる各未マッチング画素の位置を決定する。
【0153】
任意選択的に、列長情報から現在列に含まれる未マッチング画素数コードを復号して取得し、現在列に含まれる未マッチング画素数コードに基づいて、現在列に含まれる未マッチング画素の数を決定する。任意選択的に、上記現在列に含まれる未マッチング画素数コードはストリームにおけるデータシーケンスのシーケンスヘッダに記憶され、上記データシーケンスは上記画像のストリームにおける対応するデータシーケンスであってもよく、現在列のストリームにおける対応するデータシーケンスであってもよく、さらには上記符号化ブロックのストリームにおける対応するデータシーケンス等であってもよく、本願の実施例はこれを限定しない。
【0154】
任意選択的に、復号して取得した現在列に含まれる未マッチング画素の数がNであれば、現在列における全ての画素がいずれも未マッチング画素であると決定し、ここで、Nは列長分解能である。この場合、現在列に含まれる各未マッチング画素の位置を復号する必要がない。
【0155】
未マッチング画素位置フラグは、現在列における未マッチング画素の位置を指示するために用いられる。未マッチング画素位置フラグの数は、1つであってもよいし、複数であってもよい。
【0156】
一例では、現在列に対応する未マッチング画素位置フラグの数は、現在列における未マッチング画素の数と同じである。現在列におけるある未マッチング画素について言えば、それに対応する未マッチング画素位置フラグは該未マッチング画素の現在列における位置を指示するために用いられる。
【0157】
一例では、各未マッチング画素に対応する未マッチング画素位置フラグのビット数は同じである。任意選択的に、未マッチング画素位置フラグに必要なビット数は現在列の列長に基づいて決定することができる。例えば、現在列の列長が4である場合、未マッチング画素位置フラグは2ビットのバイナリ数であってもよい。例えば、00は現在列の1番目の位置を表し、01は現在列の2番目の位置を表し、10は現在列の3番目の位置を表し、11は現在列の4番目の位置を表す。現在列における未マッチング画素の数が2であり、それぞれ現在列の1番目の位置及び3番目の位置にあると仮定する。この場合、1番目の未マッチング画素に対応する未マッチング画素位置フラグは00であってもよく(現在列の1番目の位置を表す)、2番目の未マッチング画素に対応する未マッチング画素位置フラグは10であってもよい(現在列の3番目の位置を表す)。
【0158】
別の例では、各未マッチング画素に対応する未マッチング画素位置フラグのビット数は異なってもよい。任意選択的に、現在列に含まれる各未マッチング画素の数を決定した後、現在列における未マッチング画素の位置を1つずつ順に決定する。現在列の列長が4であり、現在列における未マッチング画素の数が2であると再び仮定する。まず2ビットのバイナリ数を用いて1番目の未マッチング画素の位置を確認し(1番目の未マッチング画素に対応する未マッチング画素位置フラグが01であれば、該1番目の未マッチング画素は現在列の2番目の位置にあることを表す)、次に残りの未マッチング画素の数(すなわちこの時に現在列における未マッチング画素位置フラグが割り当てられていない未マッチング画素の数)に基づき、次の未マッチング画素に対応する未マッチング画素位置フラグに必要なバイナリ数のビット数を確認する。例えば、1番目の未マッチング画素が該列の2番目の位置にある場合、1ビットのバイナリ数を用いて該列の残りの画素における2番目の未マッチング画素の位置を確認するだけでよく、例えば該2番目の未マッチング画素に対応する未マッチング画素位置フラグが0である場合、該2番目の未マッチング画素は現在列の3番目の位置にあることを示しており、又は該2番目の未マッチング画素に対応する未マッチング画素位置フラグが1である場合、該2番目の未マッチング画素は現在列の4番目の位置にあることを示す。
【0159】
<方式c> 現在列に含まれる各画素はいずれも未マッチング画素であると決定する。
【0160】
任意選択的に、現在列の列長が最小列長である場合、現在列に含まれる各画素はいずれも未マッチング画素であると決定する。
【0161】
要約すると、本願の実施例が提供する技術的解決手段は、画素列の中に未マッチング画素が含まれるか否かを判断し、且つ未マッチング画素が含まれる場合、列における未マッチング画素の位置を決定する解決手段を提供することにより、各画素のタイプを正確に決定して、正確な復号を行うことを保証する。
【0162】
図11を参照し、これは本願の一実施例が提供するビデオ復号方法のフローチャートである。該方法は復号側デバイスに適用することができる。該方法は以下の複数のステップ(1101~1106)を含むことができる。
【0163】
ステップ1101では、ストリームから現在列の列長情報を復号して取得する。
【0164】
ステップ1102では、現在列の列長分解能を決定する。
【0165】
ステップ1103では、列長情報及び列長分解能に基づき、現在列の列長を決定する。
【0166】
ステップ1104では、現在列の列長がNより大きい場合、現在列が未マッチング画素を含まないと決定する。
【0167】
任意選択的に、Nは現在列の列長分解能であり、Nは列長分解能がNである場合の最小列長でもある。
【0168】
ステップ1105では、現在列の列長がNに等しい場合、現在列に対応する列マッチングフラグを復号する。
【0169】
任意選択的に、上記列マッチングフラグは現在列が未マッチング画素を含むか否かを指示するために用いられる。任意選択的に、現在列の列長が最小列長に等しい場合、現在列に対応する列マッチングフラグを復号する。任意選択的に、上記現在列に対応する列マッチングフラグを復号することは、上記実施例が提供する方法に基づいて復号することができる。
【0170】
例示的な実施例では、上記ステップ1105を実行した後、現在列が未マッチング画素を含む場合、現在列における未マッチング画素の位置を導出するステップ1106をさらに含む。
【0171】
任意選択的に、上記現在列における未マッチング画素の位置を導出することは、前の実施例で説明した現在列における未マッチング画素の位置を導出する方法を参照することができ、本実施例はここでの説明を省略する。
【0172】
要約すると、本願の実施例が提供する技術的解決手段は、列長分解能を根拠として、画素列の列長によって画素列の中に未マッチング画素が含まれるか否かを判断し、さらに未マッチング画素の位置を決定することにより、画素列を復号しやすく、未マッチング画素フラグ(すなわち列マッチングフラグ)が占めるデータ空間を節約し、復号の効率を向上させる。
【0173】
例示的な実施例において、上記ビデオ復号方法はさらに以下のステップを含むことにより、現在列における各画素の画素値を決定する。
【0174】
ISCブロックの差分符号化を行わない解決手段について言えば、予測値は再構成値である。
【0175】
現在列が未マッチング画素を含まない場合、現在列の列ベクトルを復号し取得するステップと、現在列の列ベクトルに基づき、現在列の参照列を決定するステップと、現在列の参照列の画素値を、現在列の予測値として決定するステップと、である。
【0176】
現在列が未マッチング画素を含む場合、現在列の列ベクトルを復号し取得するステップと、現在列の列ベクトルに基づき、現在列の参照列を決定するステップと、現在列における未マッチング画素に対して、ストリームから未マッチング画素の画素値を復号して取得するステップと、現在列におけるマッチング画素に対して、参照列におけるマッチング画素に対応する画素値を、マッチング画素の予測値として決定するステップと、である。
【0177】
上記列ベクトルはISC予測モードにおいて、現在列の参照列を決定するために用いられる変位ベクトルである。任意選択的に、現在列は複数の候補列ベクトルを有する。任意選択的に、現在列の複数の候補列ベクトルは現在列の候補列ベクトルセット(リスト)を構成することができる。現在列の候補列ベクトルセットはインデックス値と列ベクトルとの間の少なくとも1組の対応関係を含む。
【0178】
例示的に、現在列の列長が4であると仮定すると、該現在列の参照列の列長も4である。現在列の参照列における4つの画素の画素値をそれぞれA、B、C及びDと仮定する。現在列が未マッチング画素を含まない場合、現在列における4つの画素の予測値はそれぞれA、B、C及びDであり、該予測値は再構成値である。現在列が未マッチング画素を含む場合、未マッチング画素が2番目の画素であると仮定すると、復号側はストリームから該未マッチング画素の画素値Eを復号して取得し、且つ参照列を参照することで現在列における4つの画素の再構成値をそれぞれA、E、C及びDとして取得することができる。
【0179】
ISCブロックの差分符号化を行う解決手段について言えば、再構成値は予測値及び予測差分に基づいて計算される。例えば、予測値と予測差分とを加算して再構成値を取得する。
【0180】
現在列が未マッチング画素を含まない場合、現在列の列ベクトルを復号して取得するステップと、現在列の列ベクトルに基づき、現在列の参照列を決定するステップと、現在列の参照列の画素値を、現在列の予測値として決定するステップと、現在列の予測値及び対応する予測差分に基づき、現在列の再構成値を取得するステップと、である。
【0181】
現在列が未マッチング画素を含む場合、現在列の列ベクトルを復号して取得するステップと、現在列の列ベクトルに基づき、現在列の参照列を決定するステップと、現在列における未マッチング画素に対して、ストリームから未マッチング画素の予測差分を復号して取得し、予測差分及び参照列における未マッチング画素に対応する画素値に基づき、未マッチング画素の再構成値を取得するステップと、現在列におけるマッチング画素に対して、参照列におけるマッチング画素に対応する画素値を、マッチング画素の予測値として決定し、マッチング画素の予測値及び対応する予測差分に基づき、マッチング画素の再構成値を取得するステップと、である。
【0182】
要約すると、本願の実施例が提供する技術的解決手段は、ISCブロックの差分符号化を行わない解決手段、及びISCブロックの差分符号化を行う解決手段に対して、それぞれ現在列の再構成値を決定する解決手段を提供し、ISCモードでの効果的な復号を実現する。
【0183】
図12を参照し、これは本願の一実施例が提供するビデオ復号方法のフローチャートである。該方法は符号化側デバイスに適用することができる。該方法は以下の複数のステップ(1210~1230)を含むことができる。
【0184】
ステップ1210では、現在列の列長分解能を決定する。
【0185】
本願の実施例では、現在列の列長分解能を決定する以下のいくつかの方式が例示的に提供される。
【0186】
<方式1> 現在列の列長分解能は第1参照値である。
【0187】
<方式2> 現在列が属する画像シーケンスに含まれる各列の列長分解能は同じであり、現在列の列長分解能が符号化後に現在列が属する画像シーケンスのシーケンスヘッダに追加する。
【0188】
<方式3> 現在列が属する画像に含まれる各列の列長分解能は同じであり、現在列の列長分解能を符号化した後に現在列が属する画像の画像ヘッダに追加する。
【0189】
<方式4> 現在列が属するパッチに含まれる各列の列長分解能は同じであり、現在列の列長分解能を符号化した後に現在列が属するパッチのパッチヘッダに追加する。
【0190】
<方式5> 現在列が属するLCUに含まれる各列の列長分解能は同じであり、現在列の列長分解能を符号化した後に現在列が属するLCUの符号化情報に追加する。
【0191】
<方式6> 現在列が属する符号化ユニットCUに含まれる各列の列長分解能は同じであり、現在列の列長分解能を符号化した後に現在列が属するCUの符号化情報に追加する。
【0192】
<方式7> 現在列の列長分解能を符号化した後に現在列の符号化情報に追加する。
【0193】
<方式8> 現在列の列長分解能は現在列が属する復号ブロックのサイズに基づいて決定される。
【0194】
<方式9> 現在列の列長さ分解能は現在列に対応する色成分及びクロマフォーマットに基づいて決定される。
【0195】
<方式10> 現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、現在列の列長分解能は第2参照値である。
【0196】
<方式11> 現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、現在列の列長分解能は第3参照値である。
【0197】
<方式12> 現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、現在列の列長分解能は第4参照値である。
【0198】
ステップ1220では、現在列の列長及び列長分解能に基づき、現在列の列長情報を決定する。
【0199】
列長情報は現在列の列長に関する情報を含む。
【0200】
例示的な実施例において、列長情報は現在列の列長コードを含み、復号側は現在列の列長と列長分解能を除算して、現在列の列長コードを取得する。
【0201】
ステップ1230では、列長情報を符号化する。
【0202】
例示的な実施例では、列長情報は、現在列が属する符号化ブロックにおける現在列を符号化した後の剰余画素数コードを含む。
【0203】
任意選択的に、上記ステップ1220は以下の複数のサブステップ(1~4)を含むことができる。
【0204】
ステップ1では、現在列が属する符号化ブロックの総画素数を取得する。
【0205】
ステップ2では、現在列が属する符号化ブロックの符号化済み画素数を取得する。
【0206】
ステップ3では、総画素数、復号済み画素数及び現在列の列長に基づき、現在列が属する符号化ブロックにおける現在列を符号化した後の剰余画素数を決定する。
【0207】
ステップ4では、現在列を符号化した後の剰余画素数と列長分解能を除算し、剰余画素数コードを取得する。
【0208】
例示的な実施例では、列長情報は剰余列フラグを含み、剰余列フラグは、現在列が、現在列の属する符号化ブロックにおける最後の列であるか否かを指示するために用いられる。
【0209】
任意選択的に、上記ステップ1220は以下の複数のサブステップ(5~6)を含むことができる。
【0210】
ステップ5は、現在列が最後の列であれば、現在列に対応する剰余列フラグを第1数値として決定し、第1数値は現在列が、現在列の属する符号化ブロックにおける最後の列であることを示すために用いられるステップと、現在列に対応する剰余列フラグを符号化するステップと、を含む。
【0211】
ステップ6は、現在列が最後の列でなければ、現在列が属する符号化ブロックの総画素数、符号化済み画素数及び現在列の列長に基づき、現在列が属する符号化ブロックの剰余画素数を決定するステップと、剰余画素数と列長分解能を除算し、現在列が属する符号化ブロックにおける現在列を符号化した後の剰余画素数コードを取得するステップと、現在列に対応する剰余列フラグが第2数値であると決定し、第2数値は現在列が、現在列の属する符号化ブロックにおける最後の列ではないことを示すために用いられるステップと、現在列に対応する剰余列フラグを符号化するステップと、を含む。
【0212】
ここで、列長情報は現在列が属する符号化ブロックにおける現在列を符号化した後の剰余画素数コードをさらに含み、又は、列長情報は現在列が属する符号化ブロックにおける現在列を符号化した後の剰余画素数コードから第1値を減算することをさらに含み、例えば第1値は1である。
【0213】
例示的な実施例において、上記ビデオ符号化方法は、許容される列長分解能セットを決定し、列長分解能セットはインデックス値と列長分解能との間の少なくとも1組の対応関係を含むステップと、第1インデックス値を符号化し、第1インデックス値は現在列の列長分解能に対応するインデックス値であるステップと、をさらに含む。
【0214】
例示的な実施例において、列長分解能セットに含まれる列長分解能は1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む。
【0215】
例示的な実施例において、現在のCUが水平方向にスキャンされる場合、列長分解能セットは現在のCUの幅を含み、現在のCUが垂直方向にスキャンされる場合、列長分解能セットは前記現在のCUの高さを含む。
【0216】
例示的な実施例において、上記ビデオ符号化方法は、現在列に対応する列マッチングフラグを符号化し、列マッチングフラグは現在列が未マッチング画素を含むか否かを指示するために用いられるステップと、ここで、現在列が未マッチング画素を含む場合、現在列の列長はNであり、Nは現在列の列長分解能であるステップと、をさらに含む。
【0217】
例示的な実施例において、前記現在列の列長がNより大きい場合、前記現在列は未マッチング画素を含まず、且つ前記現在列のために対応する列マッチングフラグを符号化する必要がなく、前記現在列の列長がNに等しい場合、前記現在列に対応する列マッチングフラグを符号化し、ここで、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられ、前記Nは前記現在列の列長分解能である。
【0218】
例示的な実施例において、現在列が未マッチング画素を含む場合、上記ビデオ符号化方法は、前記現在列に含まれる各画素に対応する未マッチング画素フラグを符号化し、前記未マッチング画素フラグは対応する画素が未マッチング画素であるか否かを指示するために用いられるステップ、又は、前記現在列に含まれる未マッチング画素の数を符号化し、前記数は前記現在列に含まれる各未マッチング画素の位置を決定するために用いられるステップ、又は、前記現在列に含まれる各画素がいずれも未マッチング画素であると決定するステップをさらに以下を含む。
【0219】
例示的な実施例において、上記ビデオ符号化方法はさらに以下のステップを含むことにより、現在列における各画素の画素値を符号化する。
【0220】
ステップ1では、現在列の参照列を決定する。
【0221】
ステップ2では、現在列の参照列に基づき、現在列の列ベクトルを決定する。
【0222】
ステップ3では、現在列の列ベクトルを符号化する。
【0223】
ISCブロックの差分符号化を行わない解決手段について言えば、予測値は再構成値である。現在列における未マッチング画素については、未マッチング画素の画素値を符号化した後にストリームに追加する。未マッチング画素の画素値は、ストリームから直接復号し復元してもよい。現在列におけるマッチング画素については、符号化しない。現在列におけるマッチング画素の画素値は、参照列におけるマッチング画素に対応する参照画素によって決定することができる。
【0224】
ISCブロックの差分符号化を行う解決手段について言えば、再構成値は予測値及び予測差分に基づいて計算される。例えば、予測値と予測差分とを加算して再構成値を取得する。現在列における未マッチング画素について未マッチング画素の予測差分を取得し、未マッチング画素の予測差分を符号化した後にストリームに追加する。未マッチング画素の画素値はコードストリームから予測差分を取得することができ、予測残差と参照列における未マッチング画素に対応する画素値とを加算し、未マッチング画素の再構成値を取得する。現在列におけるマッチング画素については、符号化しない。
【0225】
上記ビデオ符号化方法の実施例において詳細に説明されていない内容については、本願のビデオ復号の実施例を参照されたい。
【0226】
要約すると、本願の実施例が提供する技術的解決手段は、列長分解能を設定して、符号化ブロックを長さが揃った画素列に分割し、次に列長及び列長分解能を列長情報に符号化することにより、画素列の整列度を向上させ、同時に画素列の符号化効率を向上させる。
【0227】
以下は本願の装置の実施例であり、本願方法の実施例を実行するために用いることができる。本願の装置の実施例に開示されていない詳細については、本願の方法の実施例を参照されたい。
【0228】
図13を参照し、これは本願の一実施例が提供するビデオ復号装置のブロック図である。該装置は上記ビデオ復号方法の例を実現する機能を有し、前記機能はハードウェアによって実現してもよく、ハードウェアが対応するソフトウェアを実行することにより実現してもよい。該装置は上述したコンピュータデバイスであってもよく、コンピュータデバイスに設置されてもよい。該装置1300は、列情報復号モジュール1310、分解能決定モジュール1320及び列長決定モジュール1330を含むことができる。
【0229】
列情報復号モジュール1310は、ストリームから現在列の列長情報を復号して取得し、前記列長情報は前記現在列の列長に関連する情報を含むステップに用いられる。
【0230】
分解能決定モジュール1320は、前記現在列の列長分解能を決定するステップに用いられる。
【0231】
列長決定モジュール1330は、前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定するステップに用いられる。
【0232】
例示的な実施例では、前記分解能決定モジュール1320は、第1参照値を前記現在列の列長分解能として決定するステップ、又は、前記現在列が属する画像シーケンスのシーケンスヘッダから、復号して前記現在列の列長分解能を取得し、ここで、前記現在列が属する画像シーケンスに含まれる各列の列長分解能は同じであるステップ、又は、前記現在列が属する画像の画像ヘッダから、復号して前記現在列の列長分解能を取得し、ここで、前記現在列が属する画像に含まれる各列の列長分解能は同じであるステップ、又は、前記現在列が属するパッチのパッチヘッダから、復号して前記現在列の列長分解能を取得し、ここで、前記現在列が属するパッチに含まれる各列の列長分解能は同じであるステップ、又は、前記現在列が属する最大符号化ユニットLCUの符号化情報から、復号して前記現在列の列長分解能を取得し、ここで、前記現在列が属するLCUに含まれる各列の列長分解能は同じであるステップ、又は、前記現在列が属する符号化ユニットCUの符号化情報から、復号して前記現在列の列長分解能を取得し、ここで、前記現在列が属する符号化ユニットCUに含まれる各列の列長分解能は同じであるステップ、又は、前記現在列の符号化情報から、復号して前記現在列の列長分解能を取得するステップ、又は、前記現在列が属する復号ブロックのサイズに基づいて、前記現在列の列長分解能を決定するステップ、又は、前記現在列に対応する色成分及びクロマフォーマットに基づいて、前記現在列の列長分解能を決定するステップ、又は、前記現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、第2参照値を前記現在列の列長分解能として決定するステップ、又は、前記現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、第3参照値を前記現在列の列長分解能として決定するステップ、又は、前記現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、第4参照値を前記現在列の列長分解能として決定するステップに用いられる。
【0233】
例示的な実施例では、前記列長情報は前記現在列の列長コードを含む。前記列長決定モジュール1330は、前記現在列の列長コードと前記列長分解能を乗算し、前記現在列の列長を取得するために用いられる。
【0234】
例示的な実施例では、前記列長情報は、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードを含む。前記列長決定モジュール1330は、前記現在列が属する復号ブロックの総画素数を取得するステップと、前記現在列が属する復号ブロックの復号済み画素数を取得するステップと、前記剰余画素数コードと前記列長分解能を乗算し、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得するステップと、前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づいて、前記現在列の列長を決定するステップと、に用いられる。
【0235】
例示的な実施例では、前記列長情報は剰余列フラグを含み、前記剰余列フラグは、前記現在列が、前記現在列の属する復号ブロックにおける最後の列であるか否かを指示するために用いられる。前記列長決定モジュール1330は、前記現在列が属する復号ブロックの総画素数を取得するステップと、前記現在列が属する復号ブロックの復号済み画素数を取得するステップと、前記現在列が前記最後の列であれば、前記総画素数と前記復号済み画素数を減算し、前記現在列の列長を取得するステップと、前記現在列が前記最後の列でなければ、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードを取得するステップと、前記剰余画素数コードと前記列長分解能を乗算し、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数を取得するステップと、前記総画素数、前記復号済み画素数及び前記現在列を復号した後の前記剰余画素数に基づき、前記現在列の列長を決定するステップと、に用いられ、ここで、前記列長情報は、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードをさらに含み、又は、前記列長情報は、前記現在列が属する復号ブロックにおける前記現在列を復号した後の剰余画素数コードから第1値を減算することをさらに含み、例えば該第1値は1である。
【0236】
例示的な実施例では、前記装置1300は、許容される列長分解能セットを決定するための分解能セット決定モジュール1340であって、前記列長分解能セットはインデックス値と列長分解能との間の少なくとも1組の対応関係を含む分解能セット決定モジュール1340をさらに含む。
【0237】
前記分解能決定モジュール1320は、第1インデックス値を復号して取得し、前記第1インデックス値は前記現在列の列長分解能に対応するインデックス値であるステップと、前記第1インデックス値の前記列長分解能セットにおける対応する列長分解能を、前記現在列の列長分解能として決定するステップと、に用いられる。
【0238】
例示的な実施例において、前記列長分解能セットに含まれる列長分解能は1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む。
【0239】
例示的な実施例において、現在のCUが水平方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの幅を含み、現在のCUが垂直方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの高さを含む。
【0240】
例示的な実施例では、前記装置1300は、前記現在列に対応する列マッチングフラグを復号し、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するフラグ復号モジュール1350をさらに含む。
【0241】
前記列長決定モジュール1330は、前記現在列が前記未マッチング画素を含む場合、前記現在列の列長はNであると決定し、前記Nは前記現在列の列長分解能であるステップと、前記現在列が前記未マッチング画素を含まない場合、前記列長情報及び前記列長分解能に基づいて、前記現在列の列長を決定するステップを実行するためにさらに用いられる。
【0242】
例示的な実施例では、前記装置1300は、前記現在列の列長がNより大きい場合、前記現在列は未マッチング画素を含まないと決定し、前記現在列の列長がNに等しい場合、前記現在列に対応する列マッチングフラグを復号し、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示し、ここで、前記Nは前記現在列の列長分解能である画素決定モジュール1360をさらに含み。
【0243】
例示的な実施例では、前記現在列が未マッチング画素を含む場合、前記装置1300は、前記現在列に含まれる各画素に対応する未マッチング画素フラグを復号し、前記未マッチング画素フラグは前記画素が未マッチング画素であるか否かを指示するために用いられるステップ、又は、前記現在列に含まれる未マッチング画素の数及び未マッチング画素位置フラグを復号して取得し、前記未マッチング画素位置フラグは前記未マッチング画素の前記現在列における位置を指示するために用いられるステップ、又は、前記現在列に含まれる各画素がいずれも未マッチング画素であると決定するステップに用いられる位置決定モジュール1370をさらに含む。
【0244】
例示的な実施例では、前記装置1300は、列ベクトル復号モジュール1380、参照列決定モジュール1390及び予測値決定モジュール1391をさらに含む。
【0245】
列ベクトル復号モジュール1380は、前記現在列が未マッチング画素を含まない場合、前記現在列の列ベクトルを復号して取得するステップに用いられる。
【0246】
参照列決定モジュール1390は、前記現在列の参照列に基づき、前記現在列の参照列を決定するステップに用いられる。
【0247】
予測値決定モジュール1391は、前記現在列の参照列の画素値を、前記現在列の予測値として決定するステップに用いられる。
【0248】
例示的な実施例では、前記装置1300は、列ベクトル復号モジュール1380、参照列決定モジュール1390、画素値復号モジュール1392及び画素値予測モジュール1393をさらに含む。
【0249】
列ベクトル復号モジュール1380は、前記現在列が未マッチング画素を含む場合、前記現在列の列ベクトルを復号して取得するステップに用いられる。
【0250】
参照列決定モジュール1390は、前記現在列の参照列に基づき、前記現在列の参照列を決定するステップに用いられる。
【0251】
画素値復号モジュール1392は、現在列における前記未マッチング画素に対して、ストリームから前記未マッチング画素の画素値を復号して取得するステップに用いられる。
【0252】
画素値予測モジュール1393は、前記現在列におけるマッチング画素に対して、前記参照列における前記マッチング画素に対応する画素値を、前記マッチング画素の予測値として決定するステップに用いられる。
【0253】
例示的な実施例では、前記装置1300は、列ベクトル復号モジュール1380、参照列決定モジュール1390、画素値予測モジュール1393及び差分値復号モジュール1394をさらに含む。
【0254】
列ベクトル復号モジュール1380は、前記現在列が未マッチング画素を含む場合、前記現在列の列ベクトルを復号して取得するステップに用いられる。
【0255】
参照列決定モジュール1390は、前記現在列の参照列に基づき、前記現在列の参照列を決定するステップに用いられる。
【0256】
差分値復号モジュール1394は、現在列における前記未マッチング画素に対して、ストリームから前記未マッチング画素の予測差分を復号して取得するステップと、前記予測差分及び前記参照列における前記未マッチング画素に対応する画素値に基づき、前記未マッチング画素の再構成値を取得するステップと、に用いられる。
【0257】
画素値予測モジュール1393は、前記現在列におけるマッチング画素に対して、前記参照列における前記マッチング画素に対応する画素値を、前記マッチング画素の予測値として決定するステップに用いられる。
【0258】
要約すると、本願の実施例が提供する技術的解決手段は、まずストリームにおける列情報から参照する列長分解能を復号し、次に列長情報及び列長分解能に基づいて現在列の列長を決定し、列長分解能を画素列の分割及び復号の根拠とすることにより、符号化ブロックにおける画素列長を列長分解能の倍数に制限することができ、画素列の整列度を向上させ、復号側はメモリにマッチした条件で復号することができ、画素列の復号効率を向上させる。
【0259】
また、さらに列長分解能の制限範囲を設定することにより、画素列の復号効率をさらに向上させ、且つ列長分解能に基づいて予め符号化された列長に関連するコードデータを復号して、復号データ量を効果的に低減し、復号効率を向上させる。
【0260】
図15を参照し、これは本願の別の実施例が提供するビデオ復号装置のブロック図である。該装置は上記ビデオ符号化方法の例を実現する機能を有し、前記機能はハードウェアによって実現してもよく、ハードウェアが対応するソフトウェアを実行することにより実現してもよい。該装置は上述したコンピュータデバイスであってもよく、コンピュータデバイスに設置されてもよい。該装置1500は、分解能決定モジュール1510、列情報決定モジュール1520及び列情報符号化モジュール1530を含むことができる。
【0261】
分解能決定モジュール1510は、現在列の列長分解能を決定するステップに用いられる。
【0262】
列情報決定モジュール1520は、前記現在列の列長及び前記列長分解能に基づき、前記現在列の列長情報を決定し、前記列長情報は前記現在列の列長に関連する情報を含むステップに用いられる。
【0263】
列情報符号化モジュール1530は、前記列長情報を符号化するステップに用いられる。
【0264】
例示的な実施例では、前記現在列の列長分解能は第1参照値である。又は、前記現在列が属する画像シーケンスに含まれる各列の列長分解能は同じであり、前記現在列の列長分解能が符号化後に前記現在列が属する画像シーケンスのシーケンスヘッダに追加する。又は、前記現在列が属する画像に含まれる各列の列長分解能は同じであり、前記現在列の列長分解能を符号化した後に前記現在列が属する画像の画像ヘッダに追加する。又は、前記現在列が属するパッチに含まれる各列の列長分解能は同じであり、前記現在列の列長分解能を符号化した後に前記現在列が属するパッチのパッチヘッダに追加する。又は、前記現在列が属するLCUに含まれる各列の列長分解能は同じであり、前記現在列の列長分解能を符号化した後に前記現在列が属するLCUの符号化情報に追加する。又は、前記現在列が属する符号化ユニットCUに含まれる各列の列長分解能は同じであり、前記現在列の列長分解能を符号化した後に前記現在列が属するCUの符号化情報に追加する。又は、前記現在列の列長分解能を符号化した後に前記現在列の符号化情報に追加する。又は、前記現在列の列長分解能は前記現在列が属する復号ブロックのサイズに基づいて決定する。又は、前記現在列の列長分解能は前記現在列に対応する色成分及びクロマフォーマットに基づいて決定する。又は、前記現在列が属するCUにおける復号済み列の数が第1閾値以上である場合、前記現在列の列長分解能は第2参照値である。又は、前記現在列が属するCUにおける復号済み未マッチング画素の数が第2閾値以上である場合、前記現在列の列長分解能は第3参照値である。又は、前記現在列が属するCUにおける復号されていない画素の数が第3閾値以下である場合、前記現在列の列長分解能は第4参照値である。
【0265】
例示的な実施例では、前記列長情報は前記現在列の列長コードを含む。前記列情報決定モジュール1520は、前記現在列の列長と前記列長分解能を除算し、前記現在列の列長コードを取得するステップに用いられる。
【0266】
例示的な実施例では、前記列長情報は、前記現在列が属する符号化ブロックにおける前記現在列を符号化した後の剰余画素数コードを含む。前記列長決定モジュール1520は、前記現在列が属する符号化ブロックの総画素数を取得するステップと、前記現在列が属する符号化ブロックの符号化済み画素数を取得するステップと、前記総画素数、前記復号済み画素数及び前記現在列の列長に基づき、前記現在列が属する符号化ブロックにおける前記現在列を符号化した後の剰余画素数を決定するステップと、前記現在列を符号化した後の前記剰余画素数と前記列長分解能を除算し、前記剰余画素数コードを取得するステップと、に用いられる。
【0267】
例示的な実施例では、前記列長情報は剰余列フラグを含み、前記剰余列フラグは、前記現在列が、前記現在列の属する符号化ブロックにおける最後の列であるか否かを指示するために用いられる。前記列長決定モジュール1520は、前記現在列が前記最後の列であれば、前記現在列に対応する剰余列フラグを第1数値として決定し、前記第1数値は前記現在列が、前記現在列の属する符号化ブロックにおける最後の列であることを示すために用いられるステップと、前記現在列に対応する剰余列フラグを符号化するステップと、前記現在列が前記最後の列でなければ、前記現在列が属する符号化ブロックの総画素数、符号化済み画素数及び前記現在列の列長に基づき、前記現在列が属する符号化ブロックにおける剰余画素数を決定するステップと、前記剰余画素数コードと前記列長分解能を除算し、前記現在列が属する符号化ブロックにおける前記現在列を符号化した後の剰余画素数コードを取得するステップと、前記現在列に対応する剰余列フラグを第2数値として決定し、前記第2数値は前記現在列が、前記現在列の属する符号化ブロックにおける最後の列ではないことを示すために用いられるステップと、現在列に対応する剰余列フラグを符号化するステップと、に用いられ、ここで、前記列長情報は、前記現在列が属する符号化ブロックにおける前記現在列を符号化した後の剰余画素数コードをさらに含み、又は、前記列長情報は、前記現在列が属する符号化ブロックにおける前記現在列を符号化した後の剰余画素数コードから第1値を減算し、例えば該第1値は1であることをさらに含む。
【0268】
例示的な実施例では、前記装置1500は、セット決定モジュール1540及びインデックス符号化モジュール1550をさらに含む。
【0269】
セット決定モジュール1540は、許容される列長分解能セットを決定し、前記列長分解能セットはインデックス値と列長分解能との間の少なくとも1組の対応関係を含むステップに用いられる。
【0270】
インデックス符号化モジュール1550は、第1インデックス値を符号化し、前記第1インデックス値は前記現在列の列長分解能に対応するインデックス値であるステップに用いられる。
【0271】
例示的な実施例において、前記列長分解能セットに含まれる列長分解能は1つ又は複数の参照値、現在のCUの幅、現在のCUの高さのうちの少なくとも1つを含む。
【0272】
例示的な実施例において、現在のCUが水平方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの幅を含み、現在のCUが垂直方向にスキャンされる場合、前記列長分解能セットは前記現在のCUの高さを含む。
【0273】
例示的な実施例において、前記装置1500はさらに、前記現在列に対応する列マッチングフラグを符号化し、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられるステップに用いられるフラグ符号化モジュール1560であって、前記現在列が前記未マッチング画素を含む場合、前記現在列の列長はNであり、前記Nは前記現在列の列長分解能であるフラグ符号化モジュール1560を含む。
【0274】
例示的な実施例において、前記装置1500はさらに、前記現在列の列長がNより大きい場合、前記現在列は未マッチング画素を含まず、且つ前記現在列のために対応する列マッチングフラグを符号化する必要がなく、前記現在列の列長がNに等しい場合、前記現在列に対応する列マッチングフラグを符号化するフラグ符号化モジュール1560であって、ここで、前記列マッチングフラグは前記現在列が未マッチング画素を含むか否かを指示するために用いられ、前記Nは前記現在列の列長分解能であるフラグ符号化モジュール1560を含む。
【0275】
例示的な実施例では、前記装置1500は、前記現在列に含まれる各画素に対応する未マッチング画素フラグを符号化し、前記未マッチング画素フラグは対応する画素が未マッチング画素であるか否かを指示するステップ、又は、前記現在列に含まれる未マッチング画素の数及び未マッチング画素位置フラグを符号化し、前記未マッチング画素位置フラグは前記未マッチング画素の前記現在列における位置を指示するために用いられるステップ、又は、前記現在列に含まれる各画素がいずれも未マッチング画素であると決定するステップに用いられるフラグ符号化モジュール1560を含む。
【0276】
例示的な実施例では、前記装置1500は、参照列決定モジュール1570、列ベクトル決定モジュール1580及び列ベクトル符号化モジュール1590をさらに含む。
【0277】
参照列決定モジュール1570は、前記現在列が未マッチング画素を含まない場合、前記現在列の参照列を決定するステップに用いられる。
【0278】
列ベクトル決定モジュール1580は、前記現在列の参照列に基づいて、前記現在列の列ベクトルを決定するステップに用いられる。
【0279】
列ベクトル符号化モジュール1590は、前記現在列の列ベクトルを符号化するステップに用いられる。
【0280】
例示的な実施例では、前記装置1500は、参照列決定モジュール1570、列ベクトル決定モジュール1580、列ベクトル符号化モジュール1590及び画素符号化モジュール1591をさらに含む。
【0281】
前記参照列決定モジュール1570は、前記現在列が未マッチング画素を含む場合、前記現在列の参照列を決定するステップに用いられる。
【0282】
前記列ベクトル決定モジュール1580は、前記現在列の参照列に基づいて、前記現在列の列ベクトルを決定するステップに用いられる。
【0283】
前記列ベクトル符号化モジュール1590は、前記現在列の列ベクトルを符号化するステップに用いられる。
【0284】
前記画素値復号モジュール1591は、前記現在列における前記未マッチング画素に対して、前記未マッチング画素の画素値を符号化した後にストリームに追加するステップと、前記現在列におけるマッチング画素に対して、符号化を行わないステップと、に用いられる。
【0285】
例示的な実施例では、前記装置1500は、参照列決定モジュール1570、列ベクトル決定モジュール1580、列ベクトル符号化モジュール1590及び差分符号化モジュール1592をさらに含む。
【0286】
前記参照列決定モジュール1570は、前記現在列が未マッチング画素を含む場合、前記現在列の参照列を決定するステップに用いられる。
【0287】
前記列ベクトル決定モジュール1580は、前記現在列の参照列に基づいて、前記現在列の列ベクトルを決定するステップに用いられる。
【0288】
前記列ベクトル符号化モジュール1590は、前記現在列の列ベクトルを符号化するステップに用いられる。
【0289】
前記差分符号化モジュール1592は、前記現在列における前記未マッチング画素に対して、前記未マッチング画素の予測差分を取得するステップと、前記未マッチング画素の予測差分を符号化した後にストリームに追加するステップと、前記現在列におけるマッチング画素に対して、符号化を行わないステップと、に用いられる。
【0290】
要約すると、本願の実施例が提供する技術的解決手段は、符号化ブロックを長さが揃った画素列に分割する列長分解能を設定することで、次に列長及び列長分解能を列長情報に符号化することにより、画素列の整列度を向上させ、同時に画素列の符号化効率を向上させる。
【0291】
なお、上記実施例が提供する装置は、その機能を実現する時に上記各機能モジュールを区分した場合のみを例として説明しており、実際の応用においては、必要に応じて上記機能を異なる機能モジュールに配分して完了し、すなわち装置の内部構造を異なる機能モジュールに分割して、以上の説明の全て又は一部の機能を完了することができる。また、上記実施例が提供する装置と方法の実施例は同じ構想に属し、その具体的な実現過程は方法の実施例を参照されたく、ここでは説明を省略する。
【0292】
図17を参照し、これは本願の一実施例が提供するコンピュータデバイスの構造ブロック図である。該コンピュータデバイスは上述した符号化側デバイスであってもよく、上述した復号側デバイスであってもよい。該コンピュータデバイス170はプロセッサ171、メモリ172、通信インタフェース173、エンコーダ/デコーダ174及びバス175を含むことができる。
【0293】
プロセッサ171は1つ以上の処理コアを含み、プロセッサ171はソフトウェアプログラム及びモジュールを実行することにより、様々な機能アプリケーション及び情報処理を実行する。
【0294】
メモリ172はコンピュータプログラムを記憶するために用いられ、プロセッサ171は該コンピュータプログラムを実行ために用いられ、それにより上記ビデオ復号化方法を実現し、又は上記ビデオ符号化方法を実現する。
【0295】
通信インタフェース173は、オーディオビデオデータの送受信など、他のデバイスと通信するために用いることができる。
【0296】
エンコーダ/デコーダ174はオーディオビデオデータの符号化及び復号などの符号化及び復号機能を実現するために用いることができる。
【0297】
メモリ172は、バス175を介してプロセッサ171に接続される。
【0298】
また、メモリ172は任意のタイプの揮発性又は不揮発性記憶デバイス又はそれらの組み合わせによって実現することができ、揮発性又は不揮発性記憶デバイスは、磁気ディスク又は光ディスク、EEPROM(Electrically Erasable Programmable Read-Only Memory、電気的消去可能プログラマブル読み出し専用メモリ)、EPROM(Erasable Programmable Read-Only Memory、消去可能プログラマブル読み出し専用メモリ)、SRAM(Static Random-Access Memory、スタティックランダムアクセスメモリ)、ROM(Read-Only Memory、読み出し専用メモリ)、磁気メモリ、フラッシュメモリ、PROM(Programmable Read-Only Memory、プログラマブル読み出し専用メモリ)を含むが、これらに限定されない。
【0299】
当業者であれば理解できるように、
図17に示す構造は、コンピュータデバイス170を限定するものではなく、図示より多い又は少ないアセンブリを含むことができ、又は特定のアセンブリを組み合わせることができ、又は異なるアセンブリ配置を採用することができる。
【0300】
例示的な実施例において、コンピュータ読み取り可能な記憶媒体をさらに提供し、前記コンピュータ読み取り可能な記憶媒体に少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又は前記コマンドセットはプロセッサにおいて実行される時に上記ビデオ復号方法を実現する。
【0301】
例示的な実施例において、少なくとも1つのコマンド、少なくとも1つのプログラム、コードセット又はコマンドセットが記憶され、前記少なくとも1つのコマンド、前記少なくとも1つのプログラム、前記コードセット又はコマンドセットはプロセッサによってロードされ且つ実行されて上記ビデオ符号化方法を実現するコンピュータ読み取り可能な記憶媒体をさらに提供する。
【0302】
例示的な実施例において、コンピュータコマンドを含むコンピュータプログラム製品又はコンピュータプログラムをさらに提供し、該コンピュータコマンドはコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータデバイスのプロセッサはコンピュータ読み取り可能な記憶媒体から該コンピュータコマンドを読み取り、プロセッサは該コンピュータコマンドを実行し、該コンピュータデバイスに上記ビデオ復号方法を実行させる。
【0303】
例示的な実施例において、コンピュータコマンドを含むコンピュータプログラム製品又はコンピュータプログラムをさらに提供し、該コンピュータコマンドはコンピュータ読み取り可能な記憶媒体に記憶される。コンピュータデバイスのプロセッサはコンピュータ読み取り可能な記憶媒体から該コンピュータコマンドを読み取り、プロセッサは該コンピュータコマンドを実行し、該コンピュータデバイスに上記ビデオ符号化方法を実行させる。
【0304】
本明細書で言及される「複数」は、2つ以上を指すことが理解されるべきである。「及び/又は」という用語は、関連対象の関連関係を説明しており、3種類の関係が存在可能であることを示し、例として、A及び/又はBは、Aが単独で存在する、AとBが同時に存在する、Bが単独で存在する、という3つの状況を示すことができる。記号「/」は、一般的に前後の関連対象が「又は」の関係であることを示す。
【0305】
以上の記載は本願の例示的な実施例に過ぎず、本願を限定するものではなく、本願の主旨及び原則の範囲内でなされる任意の修正、等価置換、改良等は、いずれも本願の保護範囲内に含まれるべきである。
【符号の説明】
【0306】
600 通信システム
610 第1デバイス
620 第2デバイス
630 第3デバイス
640 第4デバイス
650 ネットワーク
701 ビデオソース
702 ビデオピクチャストリーム
703 ビデオエンコーダ
704 符号化済みビデオデータ
705 ストリーミングサーバ
706 クライアントサブシステム
707 コピー
708 クライアントサブシステム
709 コピー
710 ビデオデコーダ
711 出力ビデオピクチャストリーム
712 ディスプレイ
713 収集サブシステム
720 電子デバイス
730 電子デバイス