(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-07
(45)【発行日】2023-07-18
(54)【発明の名称】画像デコーディング方法、デコーダおよび記憶媒体
(51)【国際特許分類】
H04N 19/119 20140101AFI20230710BHJP
H04N 19/157 20140101ALI20230710BHJP
H04N 19/176 20140101ALI20230710BHJP
【FI】
H04N19/119
H04N19/157
H04N19/176
(21)【出願番号】P 2021562351
(86)(22)【出願日】2019-04-23
(86)【国際出願番号】 CN2019083966
(87)【国際公開番号】W WO2020215226
(87)【国際公開日】2020-10-29
【審査請求日】2022-03-29
(73)【特許権者】
【識別番号】516227559
【氏名又は名称】オッポ広東移動通信有限公司
【氏名又は名称原語表記】GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
【住所又は居所原語表記】No. 18 Haibin Road,Wusha, Chang’an,Dongguan, Guangdong 523860 China
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100152205
【氏名又は名称】吉田 昌司
(74)【代理人】
【識別番号】100137523
【氏名又は名称】出口 智也
(74)【代理人】
【識別番号】100096921
【氏名又は名称】吉元 弘
(72)【発明者】
【氏名】マー、イェンチュオ
(72)【発明者】
【氏名】フオ、チュンイェン
(72)【発明者】
【氏名】カオ、チアン
(72)【発明者】
【氏名】ヤン、フーチョン
(72)【発明者】
【氏名】ワン、シューアイ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/215216(WO,A1)
【文献】国際公開第2019/009314(WO,A1)
【文献】国際公開第2019/001006(WO,A1)
【文献】米国特許出願公開第2017/0347128(US,A1)
【文献】米国特許出願公開第2017/0272750(US,A1)
【文献】米国特許出願公開第2017/0208336(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像デコーディング方法であって、
ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得することと、
コーディングツリーユニットに対応す
る層のノードを解析して
、ノードに対応す
る状態パラメータおよ
びマークパラメータを
決定することであって
、前記状態パラメータは、前
記ノードが、リフレッシュをサポートするか否かを判断するために使用され、前
記マークパラメータは、前
記ノードがリフレッシュを有効にするか否かを判断するために使用されることと、
前記ノードに対応するリーフパラメータを決定することであって、前記リーフパラメータは、前記ノードを分割し続けるか否かを判断するために使用されることと、
前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、前
記ノードに対して検出処理を実行して
、検出結果を取得することと、
前
記検出結果に従って、前記コーディングツリーユニットに対応する
次の層
のノードを取得
し続けることと、
前記
次の層のノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得す
ることと、
前
記ノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成することと、を含む、前記画像デコーディング方法。
【請求項2】
前
記ノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成することは、
前
記ノードに基づいて、前記すべてのコーディングユニットデータに対してデコーディング処理を実行して、前記コーディングツリーユニットに対応するすべてのピクセルデータを取得することと、
前記すべてのピクセルデータに従って、前記ビットストリームデータに対応する前記デコーディング画像を生成することと、を含む、
請求項
1に記載の画像デコーディング方法。
【請求項3】
前記
次の層のノードに対して前記検出処理を実行し続ける前に、前記画像デコーディング方法は、
前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、
次の層の状態パラメータを伝送することをさらに含む、
請求項
1に記載の画像デコーディング方法。
【請求項4】
前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、
次の層の状態パラメータを伝送することは、
前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、状態リフレッシュを実行するか否かを判断することと、
デフォルトの状態リフレッシュを実行すると判定する場合、前
記状態パラメータに対してリフレッシュ処理を実行して、前記
次の層の状態パラメータを取得することと、
状態リフレッシュを実行しないと判定する場合、前
記状態パラメータを前記
次の層の状態パラメータに決定することと、を含む、
請求項
3に記載の画像デコーディング方法。
【請求項5】
前記ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得した後、前記画像デコーディング方法は、
プリセットのリフレッシュモードを開始することをさらに含み、前記プリセットのリフレッシュモードは、コーディングユニット間で重複デコーディングを実行するために使用される、
請求項1に記載の画像デコーディング方法。
【請求項6】
受信部、解析部、検出部、取得部および生成部を備える、デコーダであって、
前記受信部は、ビットストリームデータを受信するように構成され、
前記解析部は、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得するように構成され、
前記解析部は、さらに、コーディングツリーユニットに対応す
る層のノードを解析して
、ノードに対応す
る状態パラメータおよ
びマークパラメータを
決定するように構成され
、前記状態パラメータは、前
記ノードが、リフレッシュをサポートするか否かを判断するために使用され、前
記マークパラメータは、前
記ノードがリフレッシュを有効にするか否かを判断するために使用され、
前記検出部は、
リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、前
記ノードに対して検出処理を実行して
、検出結果を取得するように構成され、
前記取得部は、前
記検出結果に従って、前記コーディングツリーユニットに対応する
次の層のノードを取得するように構成され、
前記検出部は、さらに、前記
次の層のノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得す
るように構成され、
前記生成部は、前
記ノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成するように構成される、前記デコーダ。
【請求項7】
前記生成部は、具体的に、前
記ノードに基づいて、前記すべてのコーディングユニットデータに対してデコーディング処理を実行して、前記コーディングツリーユニットに対応するすべてのピクセルデータを取得し、前記すべてのピクセルデータに従って、前記ビットストリームデータに対応する前記デコーディング画像を生成するように構成される、
請求項
6に記載のデコーダ。
【請求項8】
前記デコーダは、さらに、伝送部を備え、
前記伝送部は、前記
次の層のノードに対して前記検出処理を実行し続ける前に、前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、
次の層の状態パラメータを伝送するように構成される、
請求項
6に記載のデコーダ。
【請求項9】
前記伝送部は、具体的に、前記リーフパラメータ、前
記状態パラメータおよび前
記マークパラメータに従って、状態リフレッシュを実行するか否かを判断し、デフォルトの状態リフレッシュを実行すると判定する場合、前
記状態パラメータに対してリフレッシュ処理を実行して、前記
次の層の状態パラメータを取得し、状態リフレッシュを実行しないと判定する場合、前
記状態パラメータを前記
次の層の状態パラメータに決定するように構成される、
請求項
8に記載のデコーダ。
【請求項10】
前記デコーダは、さらに、開始部を備え、
前記開始部は、ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得した後、プリセットのリフレッシュモードを開始するように構成され、前記プリセットのリフレッシュモードは、コーディングユニット間で重複デコーディングを実行するために使用される、
請求項
6に記載のデコーダ。
【請求項11】
プロセッサ、前記プロセッサの実行可能命令を記憶するメモリ、通信インターフェース、および前記プロセッサ、前記メモリおよび前記通信インターフェースを接続するバスを備える、デコーダであって、
前記命令が、前記プロセッサによって実行されるときに、請求項1ないし
5のいずれか一項に記載の画像デコーディング方法を実現する、前記デコーダ。
【請求項12】
プログラムを記憶する、コンピュータ可読記憶媒体であって、デコーダに適用され、前記プログラムが、プロセッサによって実行されるとき、請求項1ないし
5のいずれか一項に記載の画像デコーディング方法を実現する、前記コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願実施例は、ビデオコーデック技術分野に関し、特に、画像デコーディング方法、デコーダおよび記憶媒体に関する。
【背景技術】
【0002】
現在、ビデオコーディングの技術的解決策は、主に、分割技術を使用して画像の空間領域を重複しない小さいブロックに分割して、コーディングの基本ユニットとして使用し、その後、それに対してコーディングする。ここで、使用されるマルチタイプツリー分割技術(MTT:multi-type-tree)は、四分木分割ブロックの分割技術(QT:Quadtree)から、四分木および二分木分割ブロックの分割技術(QTBT:Quad-Tree-Binary-Tree)へ、さらに三分木分割ブロック分割技術(TT:Ternary tree)と組み合わせて段階的に進化して来たものであるため、QT、QTBTおよびMTTの区別は、画像分割を実行するときの異なる分割方式であり、三者の分割原理は、同じである。
【0003】
より良いコーディングの効果を取得するために、ビデオコーディングのとき、常に、画像の各フレームを細かく分割する必要があり、同時に、現在のビデオコーディング技術の固定分割方案において、細かい分割は、より多くのヘッダー情報と繰り返し情報の表示が生成され、それにより、コーディング効率を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、細かすぎるブロック分割を回避し、ヘッダー情報の数を効果的に減らして、コーディング効率を向上させることができる。
【課題を解決するための手段】
【0005】
本願実施例の技術的解決策は、以下のように実現される。
【0006】
画像デコーディング方法であって、前記方法は、
ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得することと、
コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得することであって、ここで、前記iは、0より大きい整数であり、前記第i状態パラメータは、前記第iノードが、リフレッシュをサポートするか否かを判断するために使用され、前記第iマークパラメータは、前記第iノードがリフレッシュを有効にするか否かを判断するために使用されることと、
前記第i状態パラメータおよび前記第iマークパラメータに従って、前記第iノードに対して検出処理を実行して、第i検出結果を取得することと、
前記第i検出結果に従って、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得することと、
前記第i+1ノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、前記コーディングツリーユニットに対応するすべてのノードをトラバースすることと、
前記すべてのノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成することと、を含む。
【発明の効果】
【0007】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットとの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対
応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【図面の簡単な説明】
【0008】
【
図4】ビデオコーディングシステムの構成の例示的な構造図である。
【
図5】ビデオデコーディングシステムの構成の例示的な構造図である。
【
図6】本願実施例による画像デコーディング方法の例示的な実現フローチャートである。
【
図7】先行技術におけるコーディングツリーユニットの例示的な構造図である。
【
図8】本願実施例におけるコーディングツリーユニットの例示的な構造図である。
【
図9】本願実施例による画像デコーディング方法の例示的なフローチャート1である。
【
図10】本願実施例による画像デコーディング方法の例示的なフローチャート2である。
【
図11】本願実施例における状態パラメータおよびマークパラメータの概略図である。
【
図18】本願実施例による画像コーディング方法の概略図である。
【
図23】本願実施例によるデコーダの構成の例示的な構造
図1である。
【
図24】本願実施例によるデコーダの構成の例示的な構造
図2である。
【発明を実施するための形態】
【0009】
以下、本願実施例における図面を参照して、本願実施例における技術的解決策を明確且つ完全に説明する。ここで説明される具体的な実施例は、関連付けされるアプリケーションを説明するためにのみ使用され、当該アプリケーションを限定するものではないことを理解されたい。さらに、説明の容易のために、図面には、関連するアプリケーションに関連付けされる部分のみ示す。
【0010】
ビデオをコーディングすることは、画像の各フレームをコーディングすることであり、同様に、ビデオをコーディングして圧縮した後のビデオビットストリームをデコーディングすることは、画像の各フレームのビットストリームをデコーディングすることである。ビデオ画像コーディングのほぼすべての国際規格では、一フレームの画像をコーディングするとき、一フレームの画像をいくつかのブロックM×Mピクセルのサブ画像に分割する必要があり、コーディングユニット(CU:Coding Unit)と称され、CUを基本コーディング単位として、サブ画像を一ブロックずつコーディングする。通常のMのサイズは、4、8、16、32、64である。そのため、1つのビデオ画像シーケンスをコーディングすることは、画像の各フレームの各コーディングユニット、即ち、各CUを順次にコーディングすることであり、1つのビデオ画像シーケンスのビットストリームをデコーディングすることも、画像の各フレームの各CUを順次にデコーディングすることであり、最終的に、ビデオ画像シーケンス全体を再構築する。
【0011】
一フレームの画像内の画像の各部分の異なるコンテンツと性質に適応するために、ターゲットを絞って最も効果的なコーディングを実行し、一フレームの画像内の各CUのサイズは、異なってもよく、一部は8×8、一部は64×64であり得る。異なるサイズのCUをシームレスに繋ぎ合わせるために、一フレームの画像は、通常、まず、同じサイズのN×Nピクセルを有する最大のコーディングユニット(LCU:Largest Coding Unit)、またはコーディングツリーユニット(CTU:Coding Tree Unit)に分割され、その後、各LCUは、さらに、複数のサイズが必ずしも同じではないCUに分割される。例えば、一フレームの画像は、まず、同じサイズの64×64ピクセルのLCUに分割され、即ち、N=64であり、ここで、特定のLCUは、3つの32×32ピクセルのCUと、4つの16×16ピクセルのCUによって構成され、別のLCUは、2つの32×32ピクセルのCU、3つの16×16ピクセルのCUおよび20個の8×8ピクセルのCUによって構成される。CUは、さらに、いくつかのサブ領域に分割されることもできる。サブ領域は、予測ユニット(PU:Prediction unit)、変換ユニット(TU:Transformation unit)を含むが、これに限定されない。まとめると、コーディングブロックまたはデコーディングブロックは、一フレームの画像をコーディングするかデコーディングする当該一フレームの画像内の領域を指す。
【0012】
CUは、いくつかのピクセル値によって構成される1つの領域である。CUの形状は、長方形であり得、一フレームの画像では、各CUは、互いに異なる形状とサイズを有し得る。
【0013】
H.265/ビデオ圧縮規格(HEVC:High Efficiency Video Coding)では、QT技術を採用して、コーディングユニットまたはコーディングブロックに対して重複しない分割を実行することができる。
図1は、QT技術で分割する概略
図1であり、
図1に示されたように、一フレームの画像は、まず、行と列に従って複数の同じサイズの領域に分割され、各領域は、1つのCTUに呼ばれ、ここで、1つのCTUの辺の長さは、128個のピクセル、64個のピクセルなどであり得、当該分割は、水平方向と垂直方向の固定分割であるため、CTUとCTUは、重複しない。
図2は、QT技術で分割する概略
図2であり、
図2に示されたように、1つのCTU内部では、QTの方式で、それを複数のCUに再帰的に分割し、且つ、複数のCUのサイズは、完全に同じではなく、8×8ピクセルのCUがあり、16×16ピクセルのCUもあり、さらに、32×32ピクセルのCUもある。ここで、各CUとCU間には、重複領域がなく、すべて四分木分割のリーフノードである。同様に、水平方向と垂直方向の固定分割であるため、任意の1つのCTUから分割されたCUとCUは、重複しない。
【0014】
既存のH.266/多用途ビデオコーディング(VVC:Versatile Video Coding)のビデオコーディング技術は、QTの基で二分木分割ブロック分割技術(BT:BinaryTree)を追加して、QTBT分割技術を形成し、および、TTの分割技術案をさらに追加して、MTTを形成する。QT分割、垂直BT分割、水平BT分割、垂直中央-両側TT分割、水平中央-両側TT分割などの、MTTにおける様々な分割方法は、すべてCTU内の各層で使用される。
【0015】
これから分かるように、現在のMTT方案は、QTからQTBTへ、さらに、TTを組み合わせて段階的に進化されて得られた技術案である。それらは、分割方式に区別があるが、3者の分割原理は、同じであり、すべて、CU間で重複しない。すなわち、現在の分割方案は、すべて、CU間で重複する領域が許可されておらず、固定の分割方式のため、より良いビデオコーディングの効果を取得するために、物体の不規則なエッジを、細かく分割する必要があり、一方、細かい分割は、より多くのヘッダー情報が生成され、コーディング効率を低下させることができる。分割モードの多様化に伴い、いくつかの細かい分割の問題を部分的に解决したが、仍然として、過剰分割の問題がある。
図3は、過剰分割の概略図であり、
図3に示されたように、右側プレーヤの手にボールを持つ上端の領域を分割して拡大した後、ほとんどの領域は、すべて類似の背景の平らな領域であり、ボールの上部のみが、ブロック内の他の領域と異なるコンテンツであることが分かることができる。それに対応する領域を分割するために、最終的な分割結果は、非常に細かい。これから分かるように、ビデオコーディングのとき、既存のコーデック技術は、常に、より良いコーディングの効果を取得するために、画像の各フレームを細かく分割する必要があるが、細かい分割は、より多くのヘッダー情報と繰り返し情報の表示が生成され、それにより、コーディング効率を低下させることができる。
【0016】
本願実施例は、画像デコーディング方法を提案し、画像の細かすぎるブロック分割を回避し、ヘッダー情報の数を効果的に減らし、繰り返し情報の表示を回避して、コーディング効率を向上させることができる。ここで、コーディング方法は、ビデオコーディングハイブリッドフレームワーク内のブロック分割、イントラとインター予測信号の組み合わせ部分に適用されることができ、具体的には、デコーディング方法は、さらに、ビデオコーディングハイブリッドフレームワーク内のバッファ部分に適用されることができる。例えば、
図4は、ビデオコーディングシステムの構成の例示的な構造図であり、
図4に示されたように、ビデオコーディングシステム200は、変換と量子化ユニット201、イントラ推定ユニット202、イントラ予測ユニット203、運動補償ユニット204、運動推定ユニット205、逆変換と逆量子化ユニット206、フィルタ制御分析ユニット207、フィルタリングユニット208、エントロピコーディングユニット209およびデコーディング画像バッファユニット210などを備え、ここで、フィルタリングユニット208は、ブロック解除フィルタリングおよびサンプル適応オフセット(SAO:Sample Adaptive 0ffset)フィルタリングを実現でき、エントロピコーディングユニット209は、ヘッダー情報コーディングおよびコンテキスト適応型バイナリ算術コーディング(CABAC:Context-based Adaptive Binary Arithmatic Coding)を実現できる。
【0017】
元のビデオ信号を受信したと検出された場合、入力される原ビデオ信号に対して、コーディングツリーユニットの分割を介して、1つのビデオコーディングブロックを取得でき、その後、イントラ予測またはインタ予測後に得た残差ピクセル情報に対して、変換と量子化ユニット201を介して当該ビデオコーディングブロックを変換し、残差情報をピクセルフィールドから変換フィールドに変換し、ビット率を減らすために、取得された変換係数を量子化することを含む。イントラ推定ユニット202およびイントラ予測ユニット203は、当該ビデオコーディングブロックに対してイントラ予測を実行するように構成され、明確には、イントラ推定ユニット202およびイントラ予測ユニット203は、当該ビデオコーディングブロックをコーディングするために使用されるイントラ予測モードを決定するように構成され、運動補償ユニット204および運動推定ユニット205は、時間予測情報を提供するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対する受信されたビデオコーディングブロックのインタ予測コーディングを実行するように構成され、運動推定ユニット205によって実行される運動推定は、運動ベクトルを生成するプロセスであり、前記運動ベクトルは、当該ビデオコーディングブロックの運動を推定でき、その後、運動補償ユニット204が、運動推定ユニット205によって決定される運動ベクトルに基づいて、運動補償を実行する。イントラ予測モードを決定した後、イントラ予測ユニット203は、さらに、選択されたイントラ予測データをエントロピデコーディングユニット209に提供するように構成され、運動推定ユニット205は、計算して決定された運動ベクトルデータもエントロピデコーディングユニット209に送信する。なお、逆変換と逆量子化ユニット206は、当該ビデオコーディングブロックを再構築し、ピクセルフィールドで残差ブロックを再構築するように構成され、当該再構築残差ブロックは、フィルタ制御分析ユニット207およびフィルタリングユニット208を介して、ブロック効果アーチファクトを除去し、その後、再構築されたビデオコーディングブロックを生成するために、当該再構築残差ブロックをデコーディング画像キャッシュユニット210のフレーム内の1つの予測ブロックに追加する。エントロピデコーディングユニット209は、様々なコーディングパラメータおよび量子化された変換係数をコーディングするように構成され、CABACに基づくコーディングアルゴリズムでは、コンテキストの内容は、隣接コーディングブロックに基づくことができ、決定されたイントラ予測モードを指示する情報をコーディングし、当該ビデオ信号のコードストリームを出力するように構成され、デコーディング画像キャッシュユニット210は、参照を予測するために、再構築されたビデオコーディングブロックを格納するように構成される。ビデオ画像コーディングの実行に伴い、新しい再構築されたビデオコーディングブロックを継続的に生成し、これらの再構築されたビデオコーディングブロックは、すべて、デコーディング画像キャッシュユニット210に格納される。
【0018】
図5は、ビデオデコーディングシステムの構成の例示的な構造図であり、
図5に示されたように、当該ビデオデコーディングシステム300は、エントロピデコーディングユニット301、逆変換と逆量子化ユニット302、イントラ予測ユニット303、運動補償ユニット304、フィルタリングユニット305およびデコーディング画像バッファユニット306などを備え、ここで、エントロピデコーディングユニット301は、ヘッダー情報デコーディングおよびCABACデコーディングを実現でき、フィルタリングユニット305は、ブロック解除フィルタリングおよびSAOフィルタリングを実現できる。入力されたビデオ信号は、
図4のコーディング処理を実行された後、当該ビデオ信号のコードストリームを出力し、当該コードストリームは、ビデオデコーディングシステム300に入力され、デコーディングされた変換係数を取得するために、まず、エントロピデコーディングユニット301を通過し、ピクセルフィールドで残差ブロックを生成するために、当該変換係数に対して逆変換と逆量子化ユニット302を介して処理する。イントラ予測ユニット303は、決定されたイントラ予測モードおよび現在のフレームまたは写真からの前のデコーディングブロックを経由したデータに基づいて、現在のビデオデコーディングブロックの予測データを生成するように構成され、運動補償ユニット304は、運動ベクトルおよび他の関連する文法要素を分析することにより、ビデオデコーディングブロックのための予測情報を決定し、当該予測情報を使用して、デコーディングされているビデオデコーディングブロックの予測ブロックを生成するように構成される。逆変換と逆量子化ユニット302からの残差ブロックと、イントラ予測ユニット303または運動補償ユニット304によって生成される対応する予測ブロックを加算して、デコーディングのビデオブロックを形成し、当該デコーディングのビデオ信号は、フィルタリングユニット305を介して、ブロック効果アーチファクトを除去し、ビデオ品質を改善できる。その後、デコーディングされたビデオブロックをデコーディング画像キャッシュユニット306に記憶し、デコーディング画像キャッシュユニット306は、後続のイントラ予測または運動補償のための参照画像を記憶し、同時に、ビデオ信号を出力するように構成され、即ち、回復された原ビデオ信号を取得する。
【0019】
本願による画像デコーディング方法は、上記の
図4および上記の
図5のコーデックフレームワークに適用されることができるが、本願実施例は、これに対して具体的に限定しない。
【0020】
以下、本願実施例における図面を参照して、本願実施例における技術的解決策を明確に且つ完全に説明する。
【0021】
本願の一実施例において、
図6は、本願実施例による画像デコーディング方法の例示的な実現フローチャートであり、
図6に示されたように、本願の実施例において、デコーダが画像デコーディングを実行する方法は、以下のステップを含み得る。
【0022】
ステップ101において、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得する。
【0023】
本願の実施例において、デコーダは、ビットストリームデータを受信し、その後、受信されたビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得することができる。ここで、デコーダは、ビットストリームデータを解析した後、同じサイズの少なくとも1つのコーディングツリーユニットを取得することができる。
【0024】
本願の実施例において、エンコーダがビデオコーディングを実行するとき、ビデオ内の画像の複数のフレームに対してフレームごとにコーディングすることであることに留意されたい。任意の瞬間に、コーディングされている一フレームの画像は、現在のコーディング画像と呼ばれることができる。エンコーダが、ビデオ内の現在のコーディング画像をコーディングするとき、まず、現在のコーディング画像を同じサイズのコーディングツリーユニットに分割し、その後、コーディングツリーユニットを、サイズが必ずしも同じではないコーディングユニットにさらに分割し続けてコーディングする必要がある。例えば、エンコーダは、現在のコーディング画像を分割して、同じサイズの64x64ピクセルのコーディングツリーユニットを取得し、即ち、64x64個のピクセルポイントによって構成されるコーディングツリーユニットを取得することができる。ここで、本願の実施例において、エンコーダが、現在のコーディング画像に対して重複分割を実行するとき、コーディングユニットとコーディングユニットとの間に重複があることを許可し、並行処理とコーディングの複雑さの低下のニーズのために、コーディングツリーユニットとコーディングツリーユニットとの間に重複しない。
【0025】
本願の実施例において、エンコーダは、マルチタイプツリー分割技術(MTT)を介して、現在のコーディング画像に対して重複分割を実行し、コーディングし、その後、現在のコーディング画像に対応するビットストリームデータを取得することができ、デコーダは、ビットストリームデータに従って、現在のコーディング画像をデコーディングして、コーディングツリーユニットを取得し、さらに、コーディングユニットを取得することができることに留意されたい。
【0026】
さらに、本願の実施例において、デコーダが、ビデオデコーディングを実行するとき、ビデオ内の画像の複数のフレームのビットストリームデータに対してフレームごとにデコーディングすることである。任意の瞬間に、デコーディングされている一フレームの画像は、現在のデコーディング画像と呼ばれることができる。
【0027】
本願の実施例において、デコーダが、現在のデコーディング画像をデコーディングするとき、コーディングツリーユニットとコーディングツリーユニットとの間には重複がないが、コーディングユニットとコーディングユニットとの間に重複があることは許可することに留意されたい。すなわち、本願の実施例において、デコーダが、デコーディングするとき、再構築のフレームバッファの該位置に、同じ領域のデコーディングピクセルデータを同時に搬送する複数のコーディングユニットがあり得、その中の1つのコーディングユニットは大きく、背景コーディングユニットと見なされることができ、1つのコーディングユニットは小さく、リフレッシュコーディングユニットと見なされることができる。背景コーディングユニットは、再構築データをデコーディングし、リフレッシュコーディングユニットによって搬送される該位置のピクセルデータによってカバーされることができ、すなわち、リフレッシュプロセスである。本願において、このようなリフレッシュコーディングユニットを使用して、背景コーディングユニットをリフレッシュするデコーディングモードは、リフレッシュデコーディングモードである。
【0028】
さらに、本願の実施例において、デコーダが、ビデオデコーディングを実行するとき、コーディングユニットのリフレッシュを実行するために使用されるリフレッシュデコーディングモードを開始するように選択できる。具体的に、デコーダは、上位層制御構文を設定することができ、画像パラメータセット(PPS)またはシーケンスパラメータセット(SPS)では、1つのイネーブルスイッチ構文PPSRfrsEnblまたはSPSRfrsEnblで、現在リフレッシュデコーディングモードをサポートするか否かを説明することができる。
【0029】
すなわち、本願の実施例において、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得した後、即ち、ステップ101の後、プリセットのリフレッシュモードを開始することができる。具体的に、プリセットのリフレッシュモードは、コーディングユニット間に重複デコーディングを実行するために使用されることができる。
【0030】
ステップ102において、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードが、リフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用される。
【0031】
本願の実施例において、デコーダは、まず、コーディングツリーユニットに対応する第i層の第iノードに対して解析処理を実行して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得することができる。具体的に、iは、0より大きい整数であり、例えば、iは、1、2、3などであり得る。
【0032】
本願の実施例において、第i状態パラメータは、第iノードのデフォルト状態を決定するために使用されることができることに留意されたい。ここで、第i状態パラメータは、第iサブツリーデフォルト状態と第iデータデフォルト状態を含み得る。具体的に、第iサブツリーデフォルト状態は、第iノードが、リフレッシュの状態をサポートするか否かを示すために使用され、第iデータデフォルト状態は、第iノードに源データがあるか否かを決定するために使用される。
【0033】
さらに、本願の実施例において、ビデオコーデックの具体的な構文では、bRfrsEnblFlagを介して、第iサブツリーデフォルト状態を決定することができ、即ち、bRfrsEnblFlagは、コーディングツリーユニットの現在のノードが、リフレッシュの状態をサポートするか否かを示すことができ、具体的に、bRfrsEnblFlagに、値0が割り当てられた場合、コーディングツリーユニットの現在のノードは、リフレッシュをサポートしないと見なされ、bRfrsEnblFlagに、値1が割り当てられた場合、コーディングツリーユニットの現在のノードは、リフレッシュをサポートすると見なされる。
【0034】
さらに、本願の実施例において、コーディングツリーユニットの第1層の第1ノードに対して、即ち、i=1である場合、第iサブツリーデフォルト状態のデフォルト値は、SPSRfrsEnblであり、ここで、SPSRfrsEnblは、SPS層で宣言される、リフレッシュをサポートするか否かのマークであり、PPS層でイネーブル制御決定を実行することであってもよく、iが、1ではない場合、第iサブツリーデフォルト状態は、前の層のサブツリーデフォルト状態を介して決定されることができ、即ち、第iサブツリーデフォルト状態は、第i-1サブツリーデフォルト状態に従って決定されることができる。
【0035】
さらに、本願の実施例において、ビデオコーデックの具体的な構文では、bAncFlagを介して、第iデータデフォルト状態を決定することができ、即ち、bAncFlagは、コーディングツリーユニットの現在のノードに源データがあるか否かを示すことができ、具体的に、bAncFlagに、値0が割り当てられた場合、コーディングツリーユニットの現在のノードに源データがないと見なされ、bAncFlagに、値1が割り当てられた場合、コーディングツリーユニットの現在のノードに源データがあると見なされる。
【0036】
さらに、本願の実施例において、コーディングツリーユニットの第1層の第1ノードに対して、即ち、i=1である場合、第iデータデフォルト状態のデフォルト値は、0であり、iが、1ではない場合、第iデータデフォルト状態は、前の層のデータデフォルト状態を介して決定されることができ、即ち、第iデータデフォルト状態は、第i-1データデフォルト状態に従って決定されることができる。
【0037】
本願の実施例において、第iマークパラメータは、第iノードのデータマークを決定するために使用されることができることに留意されたい。ここで、第i状態パラメータは、第iサブツリー識別子と第iデータ識別子を含み得る。具体的に、第iサブツリー識別子は、第iノードのサブツリーにリフレッシュできるコーディングユニットがあるか否かを示すために使用され、第iデータ識別子は、第iノードにデータがあるか否かを決定するために使用される。
【0038】
さらに、本願の実施例において、ビデオコーデックの具体的な構文では、Refresh_CU_enable_flag[x0][y0]を介して第iサブツリー識別子を決定することができ、即ち、Refresh_CU_enable_flag[x0][y0]は、コーディングツリーユニットの現在のノードにリフレッシュできるコーディングユニットがあるか否かを示すことができ、具体的に、Refresh_CU_enable_flag[x0][y0]に、値0が割り当てられた場合、コーディングツリーユニットの現在のノードにリフレッシュできるコーディングユニットがないと見なされ、Refresh_CU_enable_flag[x0][y0]に、値1が割り当てられた場合、コーディングツリーユニットの現在のノードにリフレッシュできるコーディングユニットがあると見なされる。
【0039】
さらに、本願の実施例において、ビデオコーデックの具体的な構文では、Refresh_CU_flag[x0][y0]を介して第iデータ識別子を決定することができ、即ち、Refresh_CU_flag[x0][y0]は、コーディングツリーユニットの現在のノードにデータがあるか否かを示すことができ、具体的に、Refresh_CU_flag[x0][y0]に、値0が割り当てられた場合、コーディングツリーユニットの現在のノードにデータがないと見なされ、Refresh_CU_flag[x0][y0]に、値1が割り当てられた場合、コーディングツリーユニットの現在のノードにデータがあるとと見なされる。
【0040】
さらに、本願の実施例において、ビデオコーデックの具体的な構文伝送では、bAncFlag、Refresh_CU_enable_flag[x0][y0]およびRefresh_CU_flag[x0][y0]に、伝送されていない場合があり得る。具体的に、Refresh_CU_flag[x0][y0]およびRefresh_CU_flag[x0][y0]が、あるか否かは、常に、現在ののノードが、リーフノード、bRfrsEnblFlagおよびbAncFlagの値であるか否かを前提とする。
【0041】
本願の実施例において、コーディングツリーユニットは、少なくとも一層のノードに対応でき、各層の任意の1つのノードには、すべてデータがある可能性があり、ここで、祖先ノードのデータは、その子孫ノードのデータによってカバーされることができ、そのため、デコーダは、コーディングツリーユニットをデコーディングするとき、ノードにデータがあるか否かをレイヤーごとに検出する必要があり、さらに、データのノードに対してデコーディング処理を実行し、対応するコーディングユニットを構築することができることに留意されたい。それに比べて、先行技術において、1つのコーディングツリーユニットに対して、データは、ツリー構造内の分割し続けることができないノードにのみあり、即ち、リーフにのみあり、そのため、デコーダは、各リーフを解析し、デコーディング処理を実行する必要がある。
図7は、先行技術のコーディングツリーユニットの例示的な構造図であり、
図8は、本願実施例のコーディングツリーユニットの例示的な構造図であり、
図7および
図8に示されたように、同様のコーディングツリーユニットに対して、先行技術のコーディングユニットおよびコーディングユニットは、重複分割できないため、コーディングツリーユニットに対応するツリー構造では、リーフにのみデータがあり、デコーダが、デコーディングするときには、すべてのリーフに対してデータ解析を実行して、コーディングユニットを構築する必要がある。本願の実施例において、コーディングユニットおよびコーディングユニットは、重複分割できるため、コーディングツリーユニットに対応するツリー構造では、任意の1つの中間ノードにすべてデータがある可能性があり、任意の1つのコーディングツリーユニットに対して、各ノードにデータがあるか否かを検出し、データがある場合、すべてのリーフに対してデータ解析を実行する必要なく、デコーディングを実行して、対応するコーディングユニットを取得し、それにより、大量の小さいブロック分割を回避して、デコーディング効率を向上させる。さらに、本願の実施例において、エンコーダは、画像コーディングを実行するとき、リーフノードをコーディングユニットとして使用するだけでなく、中間ノードに対して圧縮コーディングを実行することができる。しかし、中間ノードから子孫ノードの一部のノード情報を除去する必要があり、例えば、マスクを介し、ゼロパディング、補間または外部拡張の方式で実行される。
図7と
図8を比べると、エンコーダは、不規則な複数の領域を1つの領域に集めてコーディングして、コーディング分割の細かい程度を軽減することができ、ここで、元々背景と異なった領域は、データの拡張によって一時的に他の背景領域と同じと見なされて、表示に使用されるビット数を減らし、背景と異なるブロックは、さらに、独立してコーディングし、背景ブロックをカバーするようにリフレッシュすることにより、元と同じである画像コンテンツを取得する必要がある。それにより、元の分割ツリーのある分割は、分割する必要なく、ヘッダー情報の一部を減らし、さらに、平らな画像領域は、低周波成分をメインとし、対応するエネルギは、すべて領域の左上隅に集まれ、分割の減少は、エネルギの集中により役立ち、過剰分割と比べても、ピクセルドメインの一部を変換した後の周波数領域データを節約する。具体的に、
図8の分割ツリーのうちの点線部分には、有効なデータがないため、この部分の分割情報は、省略することができる。
【0042】
さらに、本願の実施例において、コーディングツリーユニットに対応する第i層データには、少なくとも1つのノードがあることができ、そのため、コーディングツリーユニットに対応する第i層の第iノードは、第i層内のすべてのノードであり、すなわち、デコーダは、コーディングツリーユニットに対応する第i層内のすべての第iノードに対して検出処理を実行して、各第iノードに対応する検出結果を取得することができ、即ち、検出することにより、第i層のすべてのノードに対応するすべての検出結果を取得することができる。
【0043】
ステップ103において、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得する。
【0044】
本願の実施例において、デコーダは、コーディングツリーユニットに対応する第i層の第iノードに対して解析処理を実行し、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得した後、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得することができる。
【0045】
本願の実施例において、デコーダが、第i状態パラメータおよび第iマークパラメータを決定した後、さらに、第iノードのリーフパラメータを組み合わせ、第i状態パラメータおよび第iマークパラメータに従って、第iノードにデータがあるか否かを判断することができることに留意されたい。
【0046】
さらに、本願の実施例において、第iノードのリーフパラメータは、第iノードが、コーディングツリーユニット内のリーフであるか否かを判断するために使用されることができる。
【0047】
本願の実施例において、デコーダが、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得するとき、まず、第iノードに対応するリーフパラメータを決定することができ、ここで、リーフパラメータは、第iノードが分割し続けるか否かを判断するために使用され、その後、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、第i検出結果を取得することができることに留意されたい。すなわち、デコーダは、第iノードに対応するリーフパラメータに従って、第iノードが分割し続けることができるか否かを決定することができる。
【0048】
さらに、本願の実施例において、第iノードにデータがあるか否かおよび分割し続けることができるか否かを決定するために、デコーダは、第iノードに対して検出処理を実行し、対応的に、第i検出結果は、データがあり且つ分割することと、データがなく且つ分割することと、データがあり且つ分割しないことと、データがなく且つ分割しないことと、の4つを含み得る。
【0049】
本願の実施例において、ビデオコーデックの具体的な構文伝送では、bAncFlag、Refresh_CU_enable_flag[x0][y0]およびRefresh_CU_flag[x0][y0]に、伝送されていない場合がある可能性があるため、デコーダは、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、さらに、第iノードにデータがあるか否かを推測して決定する必要があることに留意されたい。
【0050】
ステップ104において、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得する。
【0051】
本願の実施例において、デコーダが、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得した後、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得することができる。
【0052】
本願の実施例において、デコーダが、検出処理を実行して第i検出結果を取得した後、第i検出結果が、データがあり且つ分割することと、データがなく且つ分割することと、データがあり且つ分割しないことと、データがなく且つ分割しないこととの4つを含み得るため、デコーダは、異なる検出結果に従って、さらに、第iノードを対応的に処理することができることに留意されたい。
【0053】
さらに、本願の実施例において、第i検出結果が、データがあり且つ分割することである場合、デコーダは、第i層の第iコーディングユニットデータを取得し、その後、第iノードに対して分割処理を実行して、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得することができる。
【0054】
本願の実施例において、デコーダが、第iノードに対して検出処理を実行した後、第iノードにデータがあり、第iノードは、分割処理を実行し続けることができると決定した場合、デコーダは、まず、対応するデータを取得する必要があり、即ち、コーディングツリーユニット内の第iノードに対応する第iコーディングユニットデータを取得する必要があることに留意されたい。ここで、コーディングツリーユニットに対応する第i層には、少なくとも1つの第iノードがあることができるため、デコーダは、第i層のすべての第iノードに対して検出処理を順次に実行した後、検出結果が、データがあることである第iノードに対してデータを取得して、第iノードに対応する第iコーディングユニットデータを取得することができる。さらに、デコーダは、対応する第iコーディングユニットデータを取得した後、第iノードに対して分割処理を実行し続けて、第i層の次の層のノードを取得し、即ち、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得することができる。
【0055】
さらに、本願の実施例において、第i検出結果が、データがなく且つ分割することである場合、第iノードに対して分割処理を実行して、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得する。本願の実施例において、デコーダが、コーディングツリーユニットに対応する第i層の第iノードに対して検出処理を実行して、第i検出結果を取得した後、第i検出結果が、データがなく且つ分割することである場合、デコーダは、データの取得を実行する必要なく、分割処理を直接に実行して、次の層のノード、即ち、第i+1層の第i+1ノードを取得する。
【0056】
さらに、本願の実施例において、コーディングツリーユニットに対応する第i層には、少なくとも1つの第iノードがあることができるため、デコーダは、第i層のすべての第iノードに対して検出処理を順次に実行した後、検出結果が、分割し続けることができることである第iノードに対して分割処理を実行して、各第iノードに対応する第i+1層の第i+1ノードを取得することができ、すなわち、分割し続けることができる各第iノードに対して、デコーダは、すべて分割することにより少なくとも1つ第i+1ノードを取得することができる。
【0057】
これから分かるように、本願の実施例において、第iノードが分割できる限り、第iノードにデータがあるかないかに関係なく、デコーダは、第iノードに対して分割処理を実行して、第i+1層の第i+1ノードを取得する必要がある。
【0058】
さらに、本願の実施例において、第i検出結果が、データがあり且つ分割しないことである場合、第i層の第iコーディングユニットデータを取得し、第iノードの解析処理を終了する。
【0059】
本願の実施例において、デコーダが、第iノードに対して検出処理を実行した後、第iノードにデータがあり、第iノードは、分割処理を実行し続けることができないと決定した場合、デコーダは、まず、対応するデータを取得する必要があり、即ち、コーディングツリーユニット内の第iノードに対応する第iコーディングユニットデータを取得する必要があることに留意されたい。ここで、コーディングツリーユニットに対応する第i層には、少なくとも1つの第iノードがあることができるため、デコーダは、第i層のすべての第iノードに対して検出処理を順次に実行した後、検出結果が、データがあることである第iノードに対してデータを取得して、第iノードに対応する第iコーディングユニットデータを取得することができる。さらに、第iノードを分割し続けることができないため、デコーダは、対応する第iコーディングユニットデータを取得した後、第iノードの解析処理を終了することができる。
【0060】
さらに、本願の実施例において、第i検出結果が、データがなく且つ分割しないことである場合、デコーダは、データの取得を実行する必要がない同時に、分割処理を実行する必要もなく、第iノードの解析処理を直接に終了する。
【0061】
本願の実施例において、エンコーダは、分割によって生成される各長方形領域で、データがあるか否かの判断を実行し、データがある場合に、当該ノードに対応するコーディングユニットデータを取得することができ、例えば、データのある第iノードに対して、第iノードの第iコーディングユニットデータを取得することができ、さらに、本願の実施例において、第iコーディングユニットデータは、識別子情報、予測情報および変換係数などを含み得ることに留意されたい。さらに、デコーダは、第iコーディングユニットデータに従って、対応する第i背景ピクセルデータを取得することができる。
【0062】
ステップ105において、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースする。
【0063】
本願の実施例において、デコーダが、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得した後、第i+1ノードに対して検出処理を実行し続け、その後、コーディングツリーユニットに対応するすべてのノードをトラバースすることができ、即ち、コーディングツリーユニットが、すべてのコーディングユニットに対応するまで、コーディングツリーユニットのすべてのノードに対して検出処理を実行することができる。
【0064】
本願の実施例において、デコーダは、分割することにより第i+1層の第i+1ノードを取得した後、上記のステップ101ないし上記のステップ104の方法に従って、第i+1ノードに対して検出処理を実行し続けて、第i+1ノードに対応するi+1コーディングユニットデータおよび第i+2層の第i+2ノードを取得することができ、上記のステップ101ないし上記のステップ104の方法に従って、再帰処理を実行した後、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得することができることに留意されたい。
【0065】
さらに、本願の実施例において、コーディングツリーユニットの任意の1層のノードに対して、デコーダは、上記のステップ101ないし上記のステップ104の方法に従って再帰処理を実行することができ、即ち、任意の1つのノードに対して、デコーダは、まず、状態パラメータおよびマークパラメータに従って検出処理を実行し、その後、データがあり且つ分割するノードに対してデータの取得を実行し、対応するコーディングユニットデータを取得し、分割処理を実行し続けて次の層のノードを取得し、データがなく且つ分割するノードに対して、直接に分割処理を実行して、次の層のノードを取得し、データがあり且つ分割しないノードに対してデータの取得を実行して、対応するコーディングユニットデータを取得し、デコーディング処理を終了し、データがなく且つ分割しないノードに対して、直接にデコーディング処理を終了することができる。まとめると、デコーダは、上記のステップ101ないし上記のステップ104の方法に従って、コーディングツリーユニットに対して、層ごとの再帰処理を実行した後、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得することができる。
【0066】
ステップ106において、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。
【0067】
本願の実施例において、デコーダは、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得した後、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成することができる。
【0068】
本願の実施例において、デコーダは、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成するとき、まず、すべてのコーディングユニットデータに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのピクセルデータを取得することができ、その後、すべてのピクセルデータに従って、ビットストリームデータに対応するデコーディング画像を生成することができることに留意されたい。
【0069】
さらに、本願の実施例において、デコーダは、すべてのコーディングユニットデータに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのピクセルデータを取得するとき、第iノードにデータがあり且つ分割しない場合、デコーダは、第iコーディングユニットデータをデコーディングして、第iピクセルデータを取得し、第iノードにデータがあり且つ分割する場合、第iコーディングユニットデータをデコーディングして、第i背景ピクセルデータを取得し、第i+1コーディングユニットデータをデコーディングして、第iリフレッシュピクセルデータを取得して、第iピクセルデータを取得し、すべてのピクセルデータを取得するまで、すべてのノードをトラバースすることができる。
【0070】
さらに、本願の実施例において、デコーダは、すべてのピクセルデータに従って、ビットストリームデータに対応するデコーディング画像を生成するとき、第iノードにデータがあり且つ分割する場合、第iリフレッシュピクセルデータに従って、第i背景ピクセルデータに対してリフレッシュ処理を実行して、リフレッシュされたピクセルデータを取得し、即ち、第iピクセルデータを取得し、デコーディング画像を取得するまで、すべてのノードをトラバースし続ける。
【0071】
すなわち、第iノードが分割し続けることができない場合、即ち、第iノードが、コーディングツリーユニットではリーフノードである場合、デコーダがデコーディングすることにより取得される第iピクセルデータは、第iコーディングユニットに対応するピクセルデータであり、第iノードを分割し続けることができる場合、即ち、第iノードが、コーディングツリーユニットではリーフノードでない場合、デコーダは、第i+1ノードの第i+1コーディングユニットに対応するピクセルデータを取得し、その後、第i+1ノードの第i+1コーディングユニットに対応するピクセルデータで、第iコーディングユニットに対応するピクセルデータの対応する領域をリフレッシュして、第iコーディングユニットに対応するピクセルデータを取得する。
【0072】
本願の実施例において、デコーダは、すべてのコーディングユニットデータに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのピクセルデータを取得するとき、まず、次の層のデータをデコーディングしてから、前の層のデータをデコーディングすることもできることに留意されたい。具体的に、デコーダが、すべてのコーディングユニットデータに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのピクセルデータを取得するとき、第iノードにデータがあり且つ分割する場合、デコーダは、第i+1コーディングユニットデータを取得し、第i+1コーディングユニットデータをデコーディングして、第iノードに対応する第iリフレッシュピクセルデータを取得し、その後、第iコーディングユニットデータをデコーディングして、第i背景ピクセルデータを取得し、次に、第i背景ピクセルデータを第iリフレッシュピクセルデータの背景に設定して、第iコーディングユニットを取得することができ、エンコーダは、すべてのピクセルデータを取得するまで、すべてのノードをトラバースすることができる。
【0073】
本願の実施例において、第i検出結果が、データがないことである場合、第i背景ピクセルデータは、アイドルの状態を維持することに留意されたい。
【0074】
本願の実施例において、デコーダが、すべてのコーディングユニットデータに従って、デコーディング画像を生成するとき、まず、すべてのコーディングユニットデータに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのピクセルデータを取得することができ、すべてのピクセルデータのうちの背景コーディングユニットに対応する背景ピクセルデータと、リフレッシュコーディングユニットに対応するリフレッシュピクセルデータに重複する領域がある場合、デコーダは、リフレッシュコーディングユニットのピクセルデータに従って、背景コーディングユニットに対応する領域ピクセルデータを切り替えることができ、即ち、リフレッシュコーディングユニットで、背景コーディングユニットをリフレッシュすることができることに留意されたい。
【0075】
すなわち、本願の実施例において、デコーダは、すべてのコーディングユニットに従って、ビットストリームデータに対応するデコーディング画像を生成するとき、すべてのコーディングユニットのうちの第mコーディングユニットに対応するピクセルデータと、第nコーディングユニットに対応するピクセルデータに重複する領域がある場合、デコーダは、第nコーディングユニットに対応するピクセルデータに従って、第mコーディングユニットに対応するピクセルデータに対してリフレッシュ処理を実行して、デコーディング画像を生成することができる。ここで、mは、0より大きい整数であり、nは、mより大きい整数であり、即ち、第nコーディングユニットは、第mコーディングユニットのリフレッシュコーディングユニットである。
【0076】
先行技術において、エンコーダが、ビデオ画像のコーディングを実行するとき、コーディングユニットとコーディングユニットは、重複しないため、任意の小さい画像情報もすべて細かいコーディングユニットの分割をする必要があり、対応的に、デコーダが、ビデオ画像デコーディングを実行するとき、デコーディングして取得されるコーディングユニットにも領域が重複する場合がない。それに比べて、本願実施例による画像デコーディング方法は、エンコーダが、画像コーディングを実行するとき、コーディングユニットとコーディングユニットが重複することをサポートするため、グラフィックの細かい分割を回避でき、対応的に、デコーダが、ビデオ画像のデコーディングを実行するとき、すべてのピクセルデータのうちの背景コーディングユニットに対応する背景ピクセルデータと、リフレッシュコーディングユニットに対応するリフレッシュピクセルデータに重複する領域がある場合、デコーダは、リフレッシュコーディングユニットのピクセルデータに従って、背景コーディングユニットの対応する領域ピクセルデータを切り替えることができ、即ち、リフレッシュコーディングユニットで、背景コーディングユニットをリフレッシュすることができる。
【0077】
さらに、本願の実施例において、デコーディングプロセスでは、予測情報、識別子情報および変換係数などの背景コーディングユニットのデータは、リフレッシュコーディングユニットデータによってリフレッシュし切り替われることができる。
【0078】
すなわち、本願の実施例において、デコーダは、デコーディングプロセスでは、バッファのピクセルデータ、予測情報、識別子情報および変換係数に関係なく、すべて現在の最新データを使用し、ここで、最新データは、コーディングツリーユニット背景コーディングユニットに対応するピクセルデータであり得、リフレッシュによってカバーされていない背景コーディングユニットのデータであってもよく、リフレッシュコーディングユニットのデコーディング画像によって切り替えられたデータであってもよい。
【0079】
本願の実施例において、エンコーダおよびデコーダは、予測および/または変換中に、コーディングユニットの領域重複を許可し、それに対応して、1つのコーディングツリーユニットには、対応する背景予測ユニットとリフレッシュ予測ユニットがあり得、対応する背景変換ユニットとリフレッシュ変換ユニットがあり得ることに留意されたい。
【0080】
さらに、本願の実施例において、デコーディングプロセスでは、デコーダは、後続のブロック予測に使用される情報を早速にリフレッシュするかまたは早速にリフレッシュしないことができる。
【0081】
上記のステップ101ないしステップ106によって提案される画像デコーディング方法に基づいて、
図9は、本願実施例による画像デコーディング方法の例示的なフローチャート1であり、
図9に示されたように、コーディングツリーユニットのうちの任意の1つの分割し続けることができるノードに対して、デコーダは、まず、解析処理を実行し、解析処理によって取得される状態パラメータおよびマークパラメータに従って、当該ノードにデータがあるか否かを判断することができ、検出結果が、データがあることである場合、デコーダは、データを取得し、対応する識別子情報、予測情報および変換係数を取得して、デコーディング処理を介して対応するコーディングユニットを取得し、その後、分割処理プロセスに進入することができ、検出結果が、データがないことである場合、デコーダは、分割処理プロセスに直接に進入することができる。分割処理プロセスでは、デコーダは、まず、当該ノードが、四分木分割を実行できるか否かを判断し、四分木分割を実行できないと判定した場合、デコーダは、当該ノードが、二分木分割または三分木分割を実行できるか否かを判断し、四分木分割を実行できる場合、当該ノードに対して四分木分割を実行した後、分割された各ノードに対して、四分木分割を実行できるか否かをさらに判断し、実行できる場合、各ノードを再帰デコーディングし、実行できない場合、分割された各ノードが、二分木分割または三分木分割を実行するか否かを判断し続けることができ、二分木分割または三分木分割を決定する場合、二分木分割または三分木分割の分割方向を決定する必要があり、即ち、垂直分割であるか水平分割であるかを決定し、最後に、分割されたノードに対して再帰デコーディングを実行する。最終的に、当該コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得することができる。
【0082】
本願の実施例において、データが、コーディングツリーユニットに対応する左上側にある場合に対して、デコーダは、まず、左上側のコーディングユニットに対して再帰デコーディングを実行した後、データを解析することができ、データが、コーディングツリーユニットに対応する左側にある場合に対して、デコーダは、まず、左側のコーディングユニットに対して再帰デコーディングを実行した後、データを解析することができ、データが、コーディングツリーユニットに対応する上側にある場合に対して、デコーダは、まず、上側のコーディングユニットに対して再帰デコーディングを実行した後、データを解析することができることに留意されたい。
【0083】
さらに、本願の実施例において、デコーダが、画像デコーディングを実行するとき、さらに、1つのノードに対してデータがあるか否かを判断するプロセスを、当該ノードに対して分割識別解析を実行した後の各ブランチに配置して、信号を伝送するビット数を効果的に節約することができる。上記の
図9に基づいて、
図10は、本願実施例による画像デコーディング方法の例示的なフローチャート2であり、
図10に示されたように、任意の1つのコーディングツリーユニットのうちの分割し続けることができるノードに対して、デコーダは、まず、当該ノードが、四分木分割を実行するか否かを判断することができ、四分木分割を実行できないと判定した場合、デコーダは、当該ノードが、二分木分割または三分木分割を実行することができるか否かを判断し続けることができる。四分木分割を実行することができる場合、当該ノードに対して四分木分割を実行した後、分割された各ノードに対して、四分木分割を実行することができるか否かをさらに判断し、実行できる場合、各ノードに対して再帰デコーディングを実行して、当該ノード上のブランチの分割識別子を取得し、実行できない場合、分割された各ノードが、二分木分割または三分木分割を実行するか否かの判定を判断し続けて、当該ノード上のブランチの分割識別子を取得し、解析して当該ノードの各ブランチ上の分割識別子を取得した後、デコーダは、各ブランチに対して解析処理を実行し、その後、解析処理によって取得された状態パラメータおよびマークパラメータに従って、当該ノードにデータがあるか否かを判断することができ、データがある場合、デコーダは、データを取得して、対応する識別子情報、予測情報および変換係数を取得して、当該ノードに対応するコーディングユニットを取得し、分割された各ブランチに対して再帰デコーディングを実行することができ、データがない場合、デコーダは、分割された各ブランチに対して再帰デコーディングを直接に実行することができる。最終的に、当該コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得することができる。
【0084】
本願実施例は、画像デコーディング方法を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【0085】
本願の別の一実施例において、上記の実施例に基づいて、上記のステップ102に対して、デコーダは、第i状態パラメータおよび第iマークパラメータに従って、第iノードにデータがあるか否かを判断する方法は、以下のステップを含み得る。
【0086】
ステップ103aにおいて、第iノードに対応するリーフパラメータを決定し、ここで、リーフパラメータは、第iノードが分割し続けるか否かを判断するために使用される。
【0087】
本願の実施例において、デコーダは、まず、第iノードのリーフパラメータを決定することができ、具体的に、リーフパラメータは、第iノードが分割し続けることができるか否かを判断するために使用されることができ、即ち、デコーダは、まず、第iノードが、コーディングツリーユニットのリーフであるか否かを決定する。
【0088】
本願の実施例において、第iノードが、リーフである場合、即ち、第iノードにブランチがない場合、デコーダは、第iノードに対してリフレッシュの処理を実行する必要なく、通常のデコーディングプロセスを直接に実行することができることに留意されたい。
【0089】
本願の実施例において、第iノードが、リーフでない場合、即ち、第iノードにブランチがある場合、デコーダは、第iノードに対してリフレッシュの処理を実行するか否かをさらに決定することができることに留意されたい。
【0090】
さらに、本願の実施例において、リーフパラメータに、値0が割り当てられた場合、リーフノードではないと示すことができ、リーフパラメータに、値1が割り当てられた場合、リーフノードであると示すことができる。
【0091】
ステップ103bにおいて、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、第i検出結果を取得する。
【0092】
本願の実施例において、デコーダは、第iノードのリーフパラメータを決定した後、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、第i検出結果を取得することができる。
【0093】
本願の実施例において、ビデオコーデックの具体的な構文伝送では、bAncFlag、Refresh_CU_enable_flag[x0][y0]およびRefresh_CU_flag[x0][y0]に、伝送されていない場合がある可能性があり、同時に、Refresh_CU_flag[x0][y0]およびRefresh_CU_flag[x0][y0]が、あるか否かは、常に、現在ののノードが、リーフノード、bRfrsEnblFlagおよびbAncFlagの値であるか否かを前提とするため、デコーダは、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、さらに、第iノードにデータがあるか否かを推測し決定する必要があることに留意されたい。
【0094】
本願の実施例において、さらに、デコーダが、第i+1ノードに対して解析処理、分割処理および/またはデコーディング処理を実行し続ける前に、まず、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、第i+1状態パラメータを伝送する必要がある。
【0095】
本願の実施例において、第i+1状態パラメータは、第i+1ノードのデフォルト状態を決定するために使用されることができることに留意されたい。ここで、第i+1状態パラメータは、第i+1サブツリーデフォルト状態と第i+1データデフォルト状態を含み得る。具体的に、第i+1サブツリーデフォルト状態は、第iノードが、リフレッシュの状態をサポートするか否かを示すために使用され、第i+1データデフォルト状態は、第iノードに源データがあるか否かを決定するために使用される。
【0096】
さらに、本願の実施例において、コーディングツリーユニットの第i+1ノードに対して、第i+1サブツリーデフォルト状態は、前の層のサブツリーデフォルト状態を介して決定されることができ、即ち、第i+1サブツリーデフォルト状態は、第iサブツリーデフォルト状態に従って決定されることができる。
【0097】
さらに、本願の実施例において、コーディングツリーユニットの第i+1ノードに対して、第i+1データデフォルト状態は、前の層のデータデフォルト状態を介して決定されることができ、即ち、第i+1データデフォルト状態は、第iデータデフォルト状態に従って決定されることができる。
【0098】
本願の実施例において、さらに、デコーダは、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、第i+1状態パラメータを伝送するとき、まず、リーフパラメータ、第i状態パラメータおよび第iマークパラメータに従って、状態リフレッシュを実行するか否かを判断することができ、デフォルト状態リフレッシュを実行すると判定した場合、デコーダは、第i状態パラメータに対してリフレッシュ処理を実行して、第i+1状態パラメータを取得することができ、状態リフレッシュを実行しないと判定した場合、デコーダは、第i状態パラメータを第i+1状態パラメータに決定することができる。
【0099】
表1は、本願実施例の構文伝送および状態リフレッシュの状況を組み合わせた分析表であり、表1に示されたように、デコーダは、1つのノードのリーフパラメータ、bRfrsEnblFlagによって示されるサブツリーデフォルト状態、bAncFlagによって示されるデータデフォルト状態、Refresh_CU_enable_flag[x0][y0]によって示されるサブツリーマークおよびRefresh_CU_flag[x0][y0]によって示されるデータマークである5つのパラメータに従って、当該ノードにデータがあるか否かをさらに判断し、即ち、当該ノードに対してデコーディングを実行するか否かを決定することができる。同時に、デコーダは、さらに、当該ノードのこの5つのパラメータを介して、次の層のノードのサブツリーデフォルト状態およびデータデフォルト状態を決定することができる。ここで、コーディングツリーユニットの第1層の第1ノードに対して、即ち、i=1である場合、第1サブツリーデフォルト状態のデフォルト値は、SPSRfrsEnblであり、ここで、SPSRfrsEnblは、SPS層で宣言される、リフレッシュをサポートするか否かのマークであり、PPS層でイネーブル制御決定を実行することであってもよく、第1データデフォルト状態のデフォルト値は、0である。
【表1】
さらに、上記の表1に基づいて、コーディングツリーユニットのうちの1つのノードが、リーフノードではなく、即ち、リーフパラメータが、0であり、サブツリーデフォルト状態bRfrsEnblFlagに、値1が割り当てられ、即ち、サブツリーが、コーディングユニットのリフレッシュ処理を実行するようにサポートし、データデフォルト状態bAncFlagが、0であり、即ち、当該ノードに源データがなく、サブツリーマークRefresh_CU_enable_flag[x0][y0]が、0であり、即ち、当該ノードのサブツリーにリフレッシュできるコーディングユニットがなく、データマークRefresh_CU_flag[x0][y0]が、伝送されていない場合、以上の5つのパラメータに従って、デコーダは、当該ノードにデータがないと決定し、そのため、当該ノードに対してデコーディング処理を実行しないと決定することができ、さらに、デコーダは、さらに、当該ノードのサブツリーデフォルト状態bRfrsEnblFlagに従って、次の層のサブツリーデフォルト状態をリフレッシュし、即ち、次の層に伝送されるサブツリーデフォルト状態は、1に割り当てられることができ、同時に、デコーダは、次の層のデータデフォルト状態をリフレッシュしないと決定することができ、即ち、次の層に伝送されうデータデフォルト状態は、依然として0であることができる。
【0100】
上記の表1に基づいて、
図11は、本願実施例の状態パラメータおよびマークパラメータの概略図であり、
図11に示されたように、コーディングツリーユニット第1層の第1ノードに対して、当該第1ノードのサブツリーデフォルト状態bRfrsEnblFlagに、値1が割り当てられ、即ち、サブツリーがコーディングユニットのリフレッシュ処理を実行するようにサポートし、且ち、当該第1ノードの異なるサブツリーに異なるサポート状況があり、データデフォルト状態bAncFlagは、0であり、即ち、当該ノードに源データがなく、サブツリーマークRefresh_CU_enable_flag[x0][y0]は、1であり、即ち、当該第1ノードのサブツリーに、リフレッシュできるコーディングユニットがあり、データマークRefresh_CU_flag[x0][y0]は、0であり、即ち、当該第1ノードにデータがない。第1ノードが、リーフノードではないため、即ち、リーフパラメータが、0であるため、デコーダは、上記の表1に基づいて、第1ノードに対してデコーディング処理を実行しないと判定することができ、同時に、次の層に伝送されるノードのサブツリーデフォルト状態が、1であり、データデフォルト状態が、0であると決定することができる。これから分かるように、コーディングツリーユニットの第2層の4つの第2ノードに対して、サブツリーデフォルト状態は、すべての1であり、データデフォルト状態もすべて0である。
【0101】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【0102】
上記の実施例に基づいて、デコーダは、第iノードに対して分割処理を実行して、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得する方法は、以下のステップを含み得る。
【0103】
ステップ201において、第iノードに対応する第i分割モードを取得する。
【0104】
本願の実施例において、デコーダは、第iノードを分割するとき、まず、第iノードに対応する第i分割モードを取得することができる。
【0105】
本願の実施例において、第i分割モードは、QT、QTBT、TTおよびBTなどのうちの1つの分割モードを含み得ることに留意されたい。第i分割モードは、MTTであってもよく、ここで、MTTは、QT、BT、TTと並列する技術案ではなく、複数の分割方法を含み、すなわち、QT、BT、TTが共存する総称であることに留意されたい。QTBTは、それと類似し、QT、BTと並列する技術案であり、複数の分割方法を含み、QT、BTが共存する総称である。
【0106】
ステップ202において、第i分割モードに従って第iノードに対して分割処理を実行して、第i+1ノードを取得する。
【0107】
本願の実施例において、デコーダは、第iノードに対応する第i分割モードを取得した後、第i分割モードに従って、第iノードに対して分割処理を実行することができ、それにより、第i+1ノードを取得することができる。
【0108】
本願の実施例において、デコーダは、第i分割モードに基づいて、第iノードに対して分割処理を実行し、各第iノードはすべて、分割して少なくとも2つのリーフを取得することができ、即ち、少なくとも2つの第i+1ノードを取得することができることに留意されたい。
【0109】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【0110】
本願のさらに別の一実施例において、上記の実施例に基づいて、上記のステップ101ないし上記のステップ106の画像デコーディング方法に従って、デコーダに対して画像デコーディングを実行するときの分割処理に対して例示的に説明する。
【0111】
図12は、分割処理の概略
図1であり、
図13は、分割処理の概略
図2であり、
図12および
図13に示されたように、コーディングツリーユニットが、データがない第1ノードA11に対してQT分割を実行した後、取得された左上側コーディングブロックA21、右上側コーディングブロックA22、左下側コーディングブロックA23および右下側コーディングブロックA24にはすべてデータがあり、即ち、コーディングツリーユニットの第2層の4つの第2ノードにはすべてデータがあり、A23は、分割処理をさらに実行することができるため、エンコーダは、A23に対してQT分割を実行して、第3層の4つの第3ノードを取得することができ、ここで、4つの第3ノードにはすべてデータがなく、1つの第3ノードは、さらに、垂直BT分割を実行することができ、分割した後に取得される第4層の2つの第4ノードは、それぞれ、A41とA42であり、ここで、A41およびA42は、両方とも分割できなく、A42にはデータがある。これから分かるように、本願による画像デコーディング方法は、データがあるA21、A22、A23、A24およびA42にのみデコーディング処理を実行して、対応するコーディングユニットを取得する必要があり、ここで、A42およびA23には、重複する領域があるため、デコーダは、A42に対応するコーディングユニットに従って、A23に対応するコーディングユニットをリフレッシュすることができ、最後に、コーディングツリーに対応するデコーディング画像を取得することができる。
【0112】
図14は、分割処理の概略
図3であり、
図15は、分割処理の概略
図4であり、
図14および
図15に示されたように、コーディングツリーユニットの第1層の第1ノードにデータがあり、且つ、第1ノードB11に対してQT分割を実行した後、取得されry左上側コーディングブロックB21、右上側コーディングブロックB22、左下側コーディングブロックB23および右下側コーディングブロックB24のうち、B23にデータがあり、B23は、分割処理をさらに実行できるため、エンコーダは、B23に対してQT分割を実行して、第3層の4つの第3ノードを取得することができ、ここで、4つの第3ノードにはすべてデータがなく、1つの第3ノードは、さらに、垂直BT分割を実行することができ、分割された後取得される第4層の2つの第4ノードは、それぞれB41およびB42であり、ここで、B41およびB42は、両方ともさらに分割できなく、B42にはデータがある。これから分かるように、本願による画像デコーディング方法は、データのあるB11、B23およびB42にのみデコーディング処理を実行して、対応するコーディングユニットを取得する必要があり、ここで、B23およびB11に重複する領域があり、B23およびB42に重複する領域があるため、デコーダは、B23に対応するコーディングユニットに従って、B11に対応するコーディングユニットをリフレッシュして、B23に対応するリフレッシュされたコーディングユニットを取得し、その後、B42に対応するコーディングユニットに従って、B23に対応するリフレッシュされたコーディングユニットをリフレッシュすることができ、最後の、コーディングツリーに対応するデコーディング画像を取得することができる。
【0113】
図16は、分割処理の概略
図5であり、
図17は、分割処理の概略
図6であり、
図16および
図17に示されたように、コーディングツリーユニットの第1層の第1ノードにデータがあり、且つ、第1ノードC11に対してQT分割を実行した後、取得される左上側コーディングブロックC21、右上側コーディングブロックC22、左下側コーディングブロックC23および右下側コーディングブロックC24にはすべてデータがなく、C23およびC23は、分割処理をさらに実行することができるため、エンコーダは、C22およびC23に対してそれぞれQT分割を実行して、C22に対応する4つの第3ノードおよびC23に対応する4つの第3ノードを含む、第3層の8つの第3ノードを取得することができ、ここで、8つの第3ノードにはすべてのデータがなく、そのうちの2つの第3ノードは、さらに、垂直CT分割を実行することができ、分割した後取得される第4層の4つの第4ノードは、それぞれ、C41、C42、C43およびC44であり、ここで、C41、C42、C43およびC44は、さらに分割できなく、C41およびC44にはデータがある。これから分かるように、本願による画像デコーディング方法は、データのあるC11、C41およびC44にのみデコーディング処理を実行して、対応するコーディングユニットを取得する必要があり、ここで、C41、C44は、それぞれC11と重複する領域があるため、デコーダは、C41に対応するコーディングユニットに従って、C11に対応するコーディングユニットをリフレッシュし、同時に、C44に対応するコーディングユニットに従って、C11に対応するコーディングユニットをリフレッシュすることができ、最後に、コーディングツリーに対応するデコーディング画像を取得することができる。
【0114】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【0115】
本願の別の一実施例において、上記の実施例による画像デコーディング方法は、エンコーダが、画像コーディングを実行するとき、コーディングユニットとコーディングユニットの重複をサポートすることに基づいて提案され、エンコーダは、コーディングするとき、コーディングユニット間の重複をサポートし、グラフィックの細かい分割を回避でき、対応的に、デコーダが、ビデオ画像のデコーディングを実行するとき、すべてのピクセルデータのうちの背景コーディングユニットに対応する背景ピクセルデータと、リフレッシュコーディングユニットに対応するリフレッシュピクセルデータに重複する領域がある場合、デコーダは、リフレッシュコーディングユニットのピクセルデータに従って、背景コーディングユニットの対応する領域ピクセルデータを切り替えることができ、即ち、リフレッシュコーディングユニットで、背景コーディングユニットをリフレッシュすることができる。
【0116】
まとめると、図18は、本願実施例による画像コーディング方法の概略図であり、図18に示されたように、エンコーダが、画像コーディングを実行する方法は、以下のステップを含み得る。
【0117】
ステップ301において、現在のコーディング画像を分割して、現在のコーディング画像に対応するコーディングツリーユニットを取得する。
【0118】
本願の実施例において、エンコーダは、まず、現在のコーディング画像を分割して、現在のコーディング画像に対応するコーディングツリーユニットを取得することができる。
【0119】
さらに、本願の実施例において、エンコーダがビデオコーディングを実行するとき、ビデオ内のマルチフレームの画像に対してフレームごとにコーディングすることである。任意の瞬間に、コーディングされている一フレームの画像は、現在のコーディング画像と呼ばれることができる。エンコーダが、ビデオ内の現在のコーディング画像をコーディングするとき、まず、現在のコーディング画像を同じサイズのコーディングツリーユニットに分割する必要がある。例えば、エンコーダは、現在のコーディング画像を分割して、同じサイズの64×64ピクセルのコーディングツリーユニットを取得し、即ち、64×64個のピクセルポイントによって構成されるコーディングツリーユニットを取得することができる。
【0120】
本願の実施例において、エンコーダは、現在のコーディング画像に対して重複分割を実行することができることに留意されたい。具体的に、エンコーダは、マルチタイプツリー分割技術を介して、現在のコーディング画像に対して重複分割を実行することができる。
【0121】
本願の実施例において、エンコーダは、プリセットのリフレッシュコーディングモードと通常のコーディングモードにそれぞれ設定することができることに留意されたい。ここで、通常のコーディングモードは、一般的に、コーディングツリーユニットとコーディングツリーユニット間の重複を許可せず、且ち、コーディングユニットとコーディングツリーユニット間にも重複しないコーディングモードであり、それに比べて、プリセットのリフレッシュコーディングモードは、コーディングツリーユニットとコーディングツリーユニット間の重複を許可するコーディングモードである。即ち、プリセットのリフレッシュコーディングモードと通常のコーディングモードに関係なく、コーディングツリーユニットとコーディングツリーユニット間は重複しない。
【0122】
さらに、本願の実施例において、エンコーダは、ビデオコーディングを実行するとき、プリセットのリフレッシュコーディングモードを開始するか通常のコーディングモードを開始するかを選択することができる。コーディング側から見ると、プリセットのリフレッシュコーディングモードは、既存の方法とレート歪み最適化(RDO:Rate Distortion Optimization)を介してモードを選択し、異なる層で比較したり判断することができる。実現のプロセスでは、サポートされるリフレッシュ層数、領域数などを柔軟に選択することもできる。
【0123】
さらに、本願の実施例において、エンコーダは、現在のコーディング画像を分割して、現在のコーディング画像に対応するコーディングツリーユニットを取得する前に、即ち、ステップ401の前に、まず、コーディングモードをプリセットのリフレッシュコーディングモードに切り替えることができる。
【0124】
本願の実施例において、エンコーダが、現在のコーディング画像を分割するとき、ラスター順序の並べ替えに従って、コーディングツリーユニットの分割を実行することができ、且つ、エンコーダの分割の後、複数のコーディングツリーユニットを取得することができることに留意されたい。
【0125】
さらに、本願の実施例において、現在のコーディング画像が、コーディングツリーユニットに分割された後、MTT技術または他の分割技術を使用してさらに分割することができ、最終的に、コーディングユニットを単位としてコーディングする。
【0126】
ステップ302において、コーディングツリーユニットを分割し続けて、コーディングツリーユニットに対応する背景コーディングユニットおよびリフレッシュコーディングユニットを取得し、ここで、リフレッシュコーディングユニットは、背景コーディングユニットの領域の一部をカバーするために使用される。
【0127】
本願の実施例において、エンコーダは、現在のコーディング画像を分割して、現在のコーディング画像に対応するコーディングツリーユニットを取得した後、コーディングツリーユニットを分割し続けて、コーディングツリーユニットに対応する背景コーディングユニットとリフレッシュコーディングユニットを取得することができる。ここで、背景コーディングユニットおよびリフレッシュコーディングユニットは、両方とも、コーディングツリーユニットに対してさらに分割して取得され、画像コーディングに使用されるコーディングユニットである。
【0128】
本願の実施例において、リフレッシュコーディングユニットは、背景コーディングユニットの領域の一部をカバーするために使用されることができることに留意されたい。
【0129】
さらに、本願の実施例において、エンコーダは、コーディングツリーユニットを取得した後、プリセットのリフレッシュコーディングモードに従って、コーディングツリーユニットを分割し続けることができ、それにより、コーディングツリーユニットに対応する背景コーディングユニットとリフレッシュコーディングユニットを取得することができる。具体的に、エンコーダは、まず、コーディングツリーユニット内のピクセル情報を抽出することができ、その後、ピクセル情報に従って、コーディングツリーユニットを分割することができ、それにより、コーディングツリーユニットを背景コーディングユニットとリフレッシュコーディングユニットに分割することができる。すなわち、エンコーダは、コーディングツリーユニット内のピクセル情報に従って、コーディングツリーユニットをさらに、背景コーディングユニットとリフレッシュコーディングユニットに分割することができ、それにより、背景コーディングユニットおよびリフレッシュコーディングユニットに従って画像コーディングを実行することができる。ここで、背景コーディングユニットの領域の一部は、リフレッシュコーディングユニットによってカバーされrリフレッシュされることができる。
【0130】
図18は、重複分割しない概略
図1であり、
図19は、重複分割しない概略
図2であり、
図18および
図19に示されたように、既存のビデオコーディング方式に従って、他の領域コンテンツと異なる小さい領域に対して、例えば領域aと他の領域コンテンツと異なることに対して、エンコーダは、コーディングツリーユニットを分割するとき、コーディングユニットは重複を許可しないため、
図18または
図19の方式に従って、コーディングツリーユニットを細かく分割する必要があり、それにより、良好なビデオコーディングの効果を取得することができる。
図20は、重複分割する概略
図1であり、
図21は、重複分割する概略
図2であり、
図20および
図21に示されたように、同じ領域aに対して、エンコーダは、コーディングツリーユニットを分割するとき、コーディングユニットが重複することを許可するため、具体的に、コーディングツリーユニットをリフレッシュコーディングユニットに分割して、背景コーディングユニットをカバーし、切り替え、リフレッシュコーディングユニットを使用して、背景コーディングユニットの領域の一部をカバーし、切り替えて、細かすぎるブロック分割を回避することができるため、ヘッダー情報の数を効果的に減らすことができる。
【0131】
さらに、本願の実施例において、ピクセルドメインのデータは、離散コサイン変換(DCT:Discrete Cosine Transform)および離散サイン変換(DST:Discrete SineTransform)を介して周波数ドメインに変換し、量子化コーディングを実行して伝送される。例えば、現在の画像の一フレームでは、ピクセル情報が少ない平らな画像領域は、低周波成分をメインとするため、当該平らな画像領域の変換されたエネルギは、すべて左上隅の位置に集まれ、すなわち、画像コーディング伝送を実行するとき、左上隅のいくつかの値以外に、他の領域の数値はいずれも基本的に0である。このようにして、伝送するとき、このいくつかの値のみを伝送することができ、即ち、すべての領域のピクセルデータを示すことができる。対応的に、当該平らな画像領域をコーディングし伝送するのにn個のデータが必要とする場合、当該平らな画像領域を4つのサブ領域を分割した後、コーディング伝送を実行すると、当該領域を示すためには、4n個のゼロ以外のデータを必要とする可能性があり、情報の観点から見ると、同じ情報を繰り返して表現することである。
【0132】
さらに、本願の実施例において、MTT分割およびQTBT分割は、両方とも、まずQT分割を実行し、その後、QTの各リーフノードで他のタイプの分割を実行することである。
【0133】
さらに、本願の実施例において、エンコーダが、コーディングツリーユニットを分割して取得される背景コーディングユニットおよびリフレッシュコーディングユニットでは、1つの背景コーディングユニットが、複数のリフレッシュコーディングユニットによってリフレッシュされることを許可し、リフレッシュコーディングユニットが、背景コーディングユニットとして、次の層のリフレッシュコーディングユニットによってリフレッシュされることも許可する。すなわち、本願の実施例において、プリセットのリフレッシュコーディングモードは、マルチ領域のリフレッシュと、マルチ層のリフレッシュを許可することができる。
【0134】
本願の実施例において、エンコーダが、コーディングツリーユニットを分割して、コーディングツリーユニットに対応する背景コーディングユニットおよびリフレッシュコーディングユニットを取得する方法は、具体的に、以下のステップを含み得ることに留意されたい。
【0135】
ステップ302aにおいて、コーディングツリーユニットを分割して、第j層に対応する第j背景コーディングユニットおよび第jリフレッシュコーディングユニットを取得し、ここで、jは、0より大きい整数である。
【0136】
本願の実施例において、エンコーダは、現在のコーディング画像を分割して、現在のコーディング画像に対応するコーディングツリーユニットを取得した後、MTTに従って、コーディングツリーユニットを分割することができ、それにより、第j層に対応する第j背景コーディングユニットおよび第jリフレッシュコーディングユニットを取得することができ、ここで、jは、0より大きい整数である。
【0137】
本願の実施例において、プリセットのリフレッシュコーディングモードは、マルチ層のリフレッシュを許可できるため、エンコーダが、コーディングツリーユニットを分割した後、少なくとも一層のコーディングユニットを取得することができることに留意されたい。
【0138】
ステップ302bにおいて、第jリフレッシュコーディングユニットを分割して、第j+1層に対応する第j+1背景コーディングユニットおよび第j+1リフレッシュコーディングユニットを取得する。
【0139】
本願の実施例において、エンコーダは、MTTに従って、コーディングツリーユニットを分割して、第j層に対応する第j背景コーディングユニットおよび第jリフレッシュコーディングユニットを取得した後、さらに、MTTに従って、第jリフレッシュコーディングユニットを分割し続けて、第j+1層に対応する第j+1背景コーディングユニットおよび第j+1リフレッシュコーディングユニットを取得することができる。
【0140】
本願の実施例において、コーディングツリーユニットにマルチ層のコーディングユニットがある場合、第j層の第jリフレッシュコーディングユニットは、第j+1層に対応する第j+1背景コーディングユニットおよび第j+1リフレッシュコーディングユニットを分割し続けることができることに留意されたい。即ち、エンコーダが、コーディングツリーユニットを分割して取得される背景コーディングユニットおよびリフレッシュコーディングユニットでは、1つの背景コーディングユニットが、複数のリフレッシュコーディングユニットによってリフレッシュされることを許可し、リフレッシュコーディングユニットが、背景コーディングユニットとして、次の層のリフレッシュコーディングユニットによってリフレッシュされることも許可する。
【0141】
ステップ303において、背景コーディングユニットおよびリフレッシュコーディングユニットに従って、コーディングツリーユニットをコーディングして、現在のコーディング画像に対応するビットストリームデータを生成する。
【0142】
本願の実施例において、エンコーダは、コーディングツリーユニットを分割して、コーディングツリーユニットに対応する背景コーディングユニットおよびリフレッシュコーディングユニットを取得した後、背景コーディングユニットおよびリフレッシュコーディングユニットに従って、現在のコーディング画像をコーディングして、現在のコーディング画像に対応するビットストリームデータを生成することができる。
【0143】
さらに、本願の実施例において、エンコーダは、背景コーディングユニットおよびリフレッシュコーディングユニットに従って、コーディングツリーユニットをコーディングするとき、まず、背景コーディングユニットをコーディングし、その後、リフレッシュコーディングユニットをコーディングすることができる。即ち、エンコーダは、背景コーディングユニットをコーディングして、背景ビットストリームデータを生成した後に、リフレッシュコーディングユニットをコーディングして、リフレッシュビットストリームデータを生成する。
【0144】
本願の実施例において、ビットストリームデータは、背景ビットストリームデータおよびリフレッシュビットストリームデータを含むことに留意されたい。
【0145】
さらに、本願の実施例において、エンコーダは、背景コーディングユニットおよびリフレッシュコーディングユニットに従って、現在のコーディング画像をコーディングして、現在のコーディング画像に対応するビットストリームデータを生成した後、ビットストリームデータを伝送することができる。具体的に、本願の実施例において、エンコーダは、ビットストリームデータを伝送するとき、まず、背景ビットストリームデータを伝送した後、リフレッシュビットストリームデータを伝送することができる。即ち、エンコーダは、ビットストリームデータを伝送するとき、背景ビットストリームデータを伝送した後、リフレッシュビットストリームデータを伝送する。
【0146】
これから分かるように、本願の実施例において、エンコーダは、プリセットのリフレッシュコーディングモードに従って、コーディングツリーユニットをコーディングするとき、まず、背景コーディングユニットをコーディングし伝送し、その後、リフレッシュコーディングユニットをコーディングし伝送することができ、対応的に、デコーディングするときも、まず、背景コーディングユニットをデコーディングした後、リフレッシュコーディングユニットをデコーディングする。
【0147】
さらに、本願によるコーディング方式は、不規則な形状分割を実現できる方式として理解されることができ、コーディングユニットを単位としてコーディングするプロセスでは、コーディングユニットとコーディングユニットは重複することなく、エンコーダは、コーディングツリーユニットを背景コーディングユニットとリフレッシュコーディングユニットに分割することであり、ここで、背景コーディングユニットの領域の一部は、リフレッシュコーディングユニットによってカバーされ、カバーされていない領域は、不規則な形状であり、この部分が、背景コーディングユニットによって表示する必要のある領域であり、カバーされた領域は、仮想拡張データに属する。ここで、QTBTは、MTTの1つの特別な場合として見なされることができるため、VVCにMTTを導入した後、提案される方法の実施も類似している。
【0148】
さらに、本願の実施例において、エンコーダおよびデコーダは、予測および/または変換中に、コーディングユニットの領域重複を許可し、それに対応して、1つのコーディングツリーユニットには、対応する背景予測ユニットとリフレッシュ予測ユニットがあり得、対応する背景変換ユニットとリフレッシュ変換ユニットがあり得る。
【0149】
さらに、本願の実施例において、エンコーダは、ブロック減算を介して、不規則な領域分割方法を実現することができる。
【0150】
本願実施例による画像コーディング方法は、ビデオ内の画像に対してコーデックを実行するプロセスでは、エンコーダは、現在のコーディング画像に対してコーディングユニットの分割を実行するとき、プリセットのリフレッシュコーディングモードを介して、領域の一部が重複する背景コーディングユニットおよびリフレッシュコーディングユニットを取得し、その後、コーディングを実行することができる。対応的に、デコーダが、プリセットのリフレッシュデコーディングモードに従って、現在のデコーディング画像をデコーディングするとき、リフレッシュコーディングユニットが、背景コーディングユニットのうちの部分的な領域でリフレッシュすることを許可して、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、さらに、コーディング効率を向上させることができる。
【0151】
上記の実施例に基づいて、本願のさらに別の一実施例において、
図23は、本願実施例によるデコーダの構成の例示的な構造
図1であり、
図23に示されたように、本願実施例によるデコーダ100は、受信部101、解析部102、検出部103、取得部104、生成部105、シグナルリング部106および開始部107を備えることができる。
【0152】
前記受信部101は、ビットストリームデータを受信するように構成される。
【0153】
前記解析部102は、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得するように構成される。
【0154】
前記解析部102は、さらに、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得するように構成され、ここで、前記iは、0より大きい整数であり、前記第i状態パラメータは、前記第iノードが、リフレッシュをサポートするか否かを判断するために使用され、前記第iマークパラメータは、前記第iノードがリフレッシュを有効にするか否かを判断するために使用される。
【0155】
前記検出部103は、前記第i状態パラメータおよび前記第iマークパラメータに従って、前記第iノードに対して検出処理を実行して、第i検出結果を取得するように構成される。
【0156】
前記取得部104は、前記第i検出結果に従って、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得するように構成される。
【0157】
前記検出部103は、さらに、前記第i+1ノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、前記コーディングツリーユニットに対応するすべてのノードをトラバースするように構成される。
【0158】
前記生成部105は、前記すべてのノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成するように構成される。
【0159】
さらに、本願の実施例において、前記取得部104は、具体的に、前記第iノードに対応するリーフパラメータを決定し、ここで、前記リーフパラメータは、前記第iノードを分割し続けるか否かを判断するために使用され、前記リーフパラメータ、前記第i状態パラメータおよび前記第iマークパラメータに従って、前記第i検出結果を取得するように構成される。
【0160】
さらに、本願の実施例において、前記取得部104は、さらに、具体的に、前記第i検出結果が、データがあり且つ分割することである場合、前記第i層の第iコーディングユニットデータを取得し、前記第iノードに対して分割処理を実行して、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、前記第i検出結果が、データがなく且つ分割することである場合、前記第iノードに対して分割処理を実行して、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、前記第i検出結果が、データがあり且つ分割しないことである場合、前記第i層の第iコーディングユニットデータを取得し、第iノードの解析処理を終了し、前記第i検出結果が、データがなく且つ分割しないことである場合、第iノードの解析処理を終了するように構成される。
【0161】
さらに、本願の実施例において、前記生成部105は、具体的に、前記すべてのノードに基づいて、前記すべてのコーディングユニットデータに対してデコーディング処理を実行して、前記コーディングツリーユニットに対応するすべてのピクセルデータを取得し、前記すべてのピクセルデータに従って、前記ビットストリームデータに対応する前記デコーディング画像を生成するように構成される。
【0162】
さらに、本願の実施例において、前記伝送部106は、前記第i+1ノードに対して前記検出処理を実行し続ける前に、前記リーフパラメータ、前記第i状態パラメータおよび前記第iマークパラメータに従って、第i+1状態パラメータを伝送するように構成される。
【0163】
さらに、本願の実施例において、前記伝送部106は、具体的に、前記リーフパラメータ、前記第i状態パラメータおよび前記第iマークパラメータに従って、状態リフレッシュを実行するか否かを判断し、デフォルトの状態リフレッシュを実行すると判定する場合、前記第i状態パラメータに対してリフレッシュ処理を実行して、前記第i+1状態パラメータを取得し、状態リフレッシュを実行しないと判定する場合、前記第i状態パラメータを前記第i+1状態パラメータに決定するように構成される。
【0164】
さらに、本願の実施例において、前記取得部104は、具体的に、前記第iノードに対応する第i分割モードを取得し、前記第i分割モードに従って、前記第iノードに対して分割処理を実行して、前記第i+1ノードを取得するように構成される。
【0165】
さらに、本願の実施例において、前記取得部104は、さらに、具体的に、第iノードにデータがあり且つ分割しない場合、前記第iコーディングユニットデータをデコーディングして第iピクセルデータを取得し、第iノードにデータがあり且つ分割する場合、前記第iコーディングユニットデータをデコーディングして、第i背景ピクセルデータを取得し、第i+1コーディングユニットデータをデコーディングして、第iリフレッシュピクセルデータを取得して、第iピクセルデータを取得し、前記すべてのピクセルデータを取得するまで、前記すべてのノードをトラバースするように構成される。
【0166】
さらに、本願の実施例において、前記取得部104は、さらに具体的に、前記第iリフレッシュピクセルデータに従って、前記第i背景ピクセルデータに対してリフレッシュ処理を実行して、第iピクセルデータを取得し、前記デコーディング画像を取得するまで、前記すべてのノードをトラバースするように構成される。
【0167】
さらに、本願の実施例において、前記取得部104は、さらに具体的に、第iノードにデータがあり且つ分割する場合、第i+1コーディングユニットデータを取得し、前記第i+1コーディングユニットデータをデコーディングして、前記第iノードに対応する第iリフレッシュピクセルデータを取得し、前記第iコーディングユニットデータをデコーディングして、第i背景ピクセルデータを取得し、前記第i背景ピクセルデータを前記第iリフレッシュピクセルデータの背景に設定して、第iピクセルデータを取得し、前記すべてのピクセルデータを取得するまで、前記すべてのノードをトラバースするように構成される。
【0168】
さらに、本願の実施例において、前記取得部104は、さらに具体的に、第iノードにデータがない場合、前記第i背景ピクセルデータをアイドルに設定するように構成される。
【0169】
さらに、本願の実施例において、前記生成部105は、さらに具体的に、前記第i+1ノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、前記コーディングツリーユニットに対応するすべてのノードをトラバースした後、第i+1コーディングユニットデータに従って、第iコーディングユニットデータに対してリフレッシュ処理を実行するように構成される。
【0170】
さらに、本願の実施例において、前記開始部107は、ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得した後、プリセットのリフレッシュモードを開始するように構成され、ここで、前記プリセットのリフレッシュモードは、コーディングユニット間で重複デコーディングを実行するために使用される。
【0171】
図24は、本願実施例によるデコーダの構成の例示的な構造
図2であり、
図24に示されるように、本願実施例によるデコーダ100は、さらに、プロセッサ108、プロセッサ108実行可能命令を記憶するメモリ109、通信インターフェース110、プロセッサ108、メモリ109および通信インターフェース110を接続するように構成されるバス111と、を備える。
【0172】
さらに、本願の実施例において、上記のプロセッサ108は、ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、前記iは、0より大きい整数であり、前記第i状態パラメータは、前記第iノードがリフレッシュをサポートするか否かを判断するために使用され、前記第iマークパラメータは、前記第iノードがリフレッシュを有効にするか否かを判断するために使用され、前記第i状態パラメータおよび前記第iマークパラメータに従って、前記第iノードに対して検出処理を実行して、第i検出結果を取得し、前記第i検出結果に従って、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、前記第i+1ノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、前記コーディングツリーユニットに対応するすべてのノードをトラバースし、前記すべてのノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成するように構成される。
【0173】
本願の実施例において、前記プロセッサ108は、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、デジタル信号プロセッサ(DSP:Digital Signal Processor)、デジタル信号処理装置(DSPD:Digital Signal Processing Device)、プログラマブルロジック装置(PLD:Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA:Field ProgRAMmable Gate Array)、中央プロセッサ(CPU:Central Processing Unit)、コントローラ、マイクロコントローラ、マイクロプロセッサのうちの少なくとも1つであり得る。異なる機器に対して、前記プロセッサの機能を実現するために使用される電子デバイスは、他でもあり得、本願実施例は、具体的に限定しないことを理解されたい。メモリ109は、プロセッサ108と接続でき、ここで、メモリ109は、実行可能なプログラムコードを記憶するように構成され、当該プログラムコードは、コンピュータ動作命令を含み、メモリ109は、高速RAMメモリを含み得、少なくとも2つのディスクメモリなどの、非揮発性メモリも含み得る。
【0174】
本願の実施例において、バズ111は、通信インターフェース110、プロセッサ108およびメモリ109およびこれらのコンポーネント間の通信を接続するように構成される。
【0175】
本願の実施例において、メモリ109は、命令およびデータを記憶するように構成される。
【0176】
実際の適用において、前記メモリ109は、ランダムアクセメモリ(RAM:Random-Access Memory)などの揮発性メモリ(volatile memory)であり得、または、読み取り専用第1メモリ(ROM:Read-Only Memory)、フラッシュメモリ(flash memory)、ハードディスク(Hard Disk Drive、HDD)またはソリッドステートハードディスク(SSD:Solid-State Drive)などの、不揮発性メモリ(non-volatile memory)であり得、または上記のタイプのメモリの組み合わせであり得、プロセッサに命令およびデータを提供する。
【0177】
さらに、本実施例における各機能モジュールは、1つの処理ユニットに統合され得、各ユニットが、物理的に別々に存在することもでき、2つまたは2つ以上のユニットを1つのユニットに統合することができる。前記統合されるユニットは、ハードウェアの形を使用して実装されることができ、ソフトウェア機能モジュールの形を使用して実装されることもできる。
【0178】
統合されるユニットが、ソフトウェア機能モジュールの形で実装され、独立した製品として販売または使用されていない場合、1つのコンピュータ可読記憶媒体に記憶されることができ、このような理解に基づいて、本実施例の技術的解決策は、本質でまたは先行技術に対して貢献のある部分、または当該技術的解決策の全部または一部は、ソフトウェア製品の形で具現されることができ、前記コンピュータソフトウェア製品は、1つの記憶媒体に記憶されて、一台のコンピュータ機器(パーソナルコンピュータ、サーバ、またはネットワーク機器などであリ得る)、またはprocessor(プロセッサ)が、本実施例の方法のステップの全部または一部を実行させるために、いくつかの命令を含む。前記記憶媒体は、Uディスク、モバイルハードディスク、読み取り専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスクまたは光ディスク等のプログラムコードを記憶することができる様々な媒体を含む。
【0179】
本願実施例は、デコーダを提供し、当該デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。
【0180】
本願実施例は、プログラムが記憶されるコンピュータ可読記憶媒体およびコンピュータ可読記憶媒体を提供し、前記プログラムは、プロセッサによって実行されるときに、上記の実施例に記載の方法を実現する。
【0181】
具体的には、本実施例における画像デコーディング方法に対応するプログラム命令は、光ディスク、ハードディスク、Uディスクなどの記憶媒体に記憶され得、記憶媒体中の1つの画像デコーディング方法に対応するプログラム命令が、電子機器によって読み取されるかまたは実行されるとき、
ビットストリームデータを受信し、前記ビットストリームデータを解析して、前記ビットストリームデータに対応するコーディングツリーユニットを取得することと、
コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得することであって、ここで、前記iは、0より大きい整数であり、前記第i状態パラメータは、前記第iノードが、リフレッシュをサポートするか否かを判断するために使用され、前記第iマークパラメータは、前記第iノードがリフレッシュを有効にするか否かを判断するために使用されることと、
前記第i状態パラメータおよび前記第iマークパラメータに従って、前記第iノードに対して検出処理を実行して、第i検出結果を取得することと、
前記第i検出結果に従って、前記コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得することと、
前記第i+1ノードに対して前記検出処理を実行し続け、前記コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、前記コーディングツリーユニットに対応するすべてのノードをトラバースすることと、
前記すべてのノードおよび前記すべてのコーディングユニットデータに従って、前記ビットストリームデータに対応するデコーディング画像を生成することと、を含む。
【0182】
当業者は、本願の実施例を、方法、システム、またはコンピュータプログラム製品として提供できることを理解するであろう。したがって、本願は、ハードウェアの実施例、ソフトウェアの実施例、またはソフトウェアとハードウェアの組み合わせの実施例の形を採用することができる。さらに、本願は、コンピュータ利用可能なプログラムコードを含む1つまたは複数のコンピュータ利用可能な記憶媒体(ディスクメモリおよび光学メモリなどを含むが、これらに限定されない)で実施されるコンピュータプログラム製品の形を採用することができる。
【0183】
本願は、本願の実施例に係る方法、機器(システム)、およびコンピュータプログラム製品の例示的な実現フローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令によって、例示的な実現フローチャートおよび/またはブロック図の各プロセスおよび/またはブロック、および例示的な実現フローチャートおよび/またはブロック図のプロセスおよび/またはブロックの組み合わせを実現することができることを理解するであろう。1つの機械を生成するために、これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、組み込みプロセッサまたは他のプログラマブルデータ処理装置のプロセッサに提供することにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令を、例示的な実現フローチャートの1つのプロセスまたは複数のプロセスおよび/またはブロック図の1つのブロックまたは複数のブロックに指定される機能を実行するための装置を生成させる。
【0184】
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置に特定の方法で動作することができるコンピュータ可読メモリに記憶することもでき、前記コンピュータ可読メモリに記憶される命令に、命令装置を備える製品を生成させるようにし、前記命令装置は、例示的な実現フローチャートの1つのプロセスまたは複数のプロセスおよび/またはブロック図の1つのブロックまたは複数のブロックで指定される機能を具現する。
【0185】
これらのコンピュータプログラム命令は、さらにコンピュータまたは他のプログラマブルデータ処理装置にロードすることもでき、コンピュータまたは他のプログラマブル装置に一連の操作ステップを実行させて、コンピュータで実現される処理を生成するようにし、それにより、コンピュータまたは他のプログラマブル装置で実行される命令は、例示的な実現フローチャートの1つのプロセスまたは複数のプロセスおよび/またはブロック図の1つのブロックまたは複数のブロックで指定される機能を具現するためのステップを提供する。
【0186】
上記は、本願の好ましい実施例に過ぎず、本願の保護範囲を限定することを意図するものではない。
【産業上の利用可能性】
【0187】
本願実施例は、画像デコーディング方法、デコーダおよび記憶媒体を提供し、デコーダは、ビットストリームデータを受信し、ビットストリームデータを解析して、ビットストリームデータに対応するコーディングツリーユニットを取得し、コーディングツリーユニットに対応する第i層の第iノードを解析して、第iノードに対応する第i状態パラメータおよび第iマークパラメータを取得し、ここで、iは、0より大きい整数であり、第i状態パラメータは、第iノードがリフレッシュをサポートするか否かを判断するために使用され、第iマークパラメータは、第iノードがリフレッシュを有効にするか否かを判断するために使用され、第i状態パラメータおよび第iマークパラメータに従って、第iノードに対して検出処理を実行して、第i検出結果を取得し、第i検出結果に従って、コーディングツリーユニットに対応する第i+1層の第i+1ノードを取得し、第i+1ノードに対して検出処理を実行し続け、コーディングツリーユニットに対応するすべてのコーディングユニットデータを取得するまで、コーディングツリーユニットに対応するすべてのノードをトラバースし、すべてのノードおよびすべてのコーディングユニットデータに従って、ビットストリームデータに対応するデコーディング画像を生成する。これから分かるように、本願の実施例において、ビデオ内の画像をデコーディングするプロセスでは、ビットストリームデータを受信し、解析して、コーディングツリーユニットを取得した後、コーディングツリーユニットに対応する各層のノードに対して解析処理を実行して、当該層ノードの状態パラメータおよびマークパラメータを取得し、その後、状態パラメータおよびマークパラメータに従って、ノードに対して検出処理を実行し、次に、データのあるノードに対してデコーディング処理を実行して、コーディングツリーユニットに対応するすべてのコーディングユニットを取得して、対応するデコーディング画像を取得することができる。ここで、コーディングするとき、コーディングユニットとコーディングユニットの重複分割をサポートするため、デコーダは、データのあるノードをデコーディングして得られたすべてのコーディングユニットに、領域が重複される少なくとも2つのコーディングユニットがある場合、デコーダは、リフレッシュコーディングユニットに対応する画像情報に従って、背景コーディングユニットに対応する画像情報に対してリフレッシュ処理を実行することができ、それにより、ビデオ画像の過剰分割を回避し、不必要なヘッダー情報を減らし、同じ領域内の同様の特性を持つデータの分散および繰り返し表示を回避し、さらに、コーディング効率を向上させることができる。