(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-118101(P2019-118101A)
(43)【公開日】2019年7月18日
(54)【発明の名称】ビデオコーディング方法及びその画像処理装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20190627BHJP
H04N 19/513 20140101ALI20190627BHJP
【FI】
H04N19/70
H04N19/513
【審査請求】有
【請求項の数】32
【出願形態】OL
【外国語出願】
【全頁数】20
(21)【出願番号】特願2018-233087(P2018-233087)
(22)【出願日】2018年12月13日
(31)【優先権主張番号】62/597,938
(32)【優先日】2017年12月13日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100134577
【弁理士】
【氏名又は名称】石川 雅章
(72)【発明者】
【氏名】蔡 懿▲亭▼
(72)【発明者】
【氏名】林 敬傑
(72)【発明者】
【氏名】林 俊隆
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA05
5C159PP04
5C159SS10
5C159SS26
5C159TA62
5C159TB08
5C159TC42
5C159TC47
5C159TD16
5C159UA02
5C159UA05
5C159UA22
(57)【要約】 (修正有)
【課題】ビデオ画像のコーディング効果を有効的に向上させることができるビデオコーディング方法及びその画像処理装置を提供する。
【解決手段】画像処理装置によるビデオコーディング方法は、現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定する。ここで、制御点の数は3以上である。次いで、制御点の数に基づき、少なくとも1つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する。さらに、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットについて画面間予測コーディングを行う。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像処理装置に適用されるビデオコーディング方法であって、
現在のコーディングユニット(coding unit)の制御点の数を受信並びに設定し、ここで、前記制御点の数は3以上であり、
前記制御点の数に基づき、少なくとも1つのアフィンモデルを生成し、
各前記アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、
前記アフィン運動ベクトルに基づき、前記現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって前記現在のコーディングユニットに画面間予測コーディングを行うことを含む方法。
【請求項2】
前記制御点の数は為1+2Nであり、Nは正の整数である請求項1に記載の方法。
【請求項3】
N=1の時、前記アフィンモデルの数は1である請求項2に記載の方法。
【請求項4】
N>1の時、前記アフィンモデルの数は1+2N−1である請求項2に記載の方法。
【請求項5】
前記現在のコーディングユニットの前記制御点の数を設定するステップは、
前記制御点の数に対する設定値を取得する請求項1に記載の方法。
【請求項6】
前記制御点の数の前記設定値が3である時、前記方法は、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左上角、右上角及び左下角に設置すること、を更に含む請求項5に記載の方法。
【請求項7】
前記アフィンモデルを生成するステップは、
前記第一制御点の運動ベクトル、前記第二制御点の運動ベクトル及び前記第三制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は1である請求項6に記載の方法。
【請求項8】
前記制御点の数の前記設定値が1+2N且つN>1である時、前記アフィンモデルを生成するステップの前に、前記方法は、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置することと、
第四制御点を前記第一制御点と前記第二制御点の間に設置し、第五制御点を前記第二制御点と前記第三制御点の間に設置することと、
前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達したか否か判断することと、
達していない場合、前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達するまで、新たな制御点を各2つの隣接して設置された制御点の間に繰り返し設置することと、を更に含む請求項5に記載の方法。
【請求項9】
前記アフィンモデルを生成するステップは、
前記現在のコーディングユニットに設置される各前記制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は1+2N−1であり、各前記アフィンモデルは、異なる組合わせのうち3つの前記制御点の運動ベクトルによって構築されている請求項8に記載の方法。
【請求項10】
前記方法は、
それぞれ第一初期制御点、第二初期制御点及び第三初期制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置することを更に含む請求項1に記載の方法。
【請求項11】
前記現在のコーディングユニットの前記制御点の数を設定するステップは、
前記第一初期制御点の運動ベクトルと前記第二初期制御点の運動ベクトルの第一運動ベクトル差を計算することと、
前記第二初期制御点の前記運動ベクトルと前記第三初期制御点の運動ベクトルの第二運動ベクトル差を計算することと、
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに複数の新たな制御点を増やすか否か判断することと、を含む請求項10に記載の方法。
【請求項12】
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに前記新たな制御点を増やすか否か判断するステップは、
前記第一運動ベクトル差及び前記第二運動ベクトル差がいずれもプリセット差より小さい時、前記新たな制御点を増やさず、前記制御点の数は、前記現在のコーディングユニットに設置される前記初期制御点の数に設定される請求項11に記載の方法。
【請求項13】
前記アフィンモデルを生成するステップは、
前記第一初期制御点の運動ベクトル、前記第二初期制御点の運動ベクトル及び前記第三初期制御点の運動ベクトルを用いて、前記アフィンモデルを構築することを含み、ここで、前記アフィンモデルの数は1である請求項12に記載の方法。
【請求項14】
前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに前記新たな制御点を増やすか否か判断するステップは、
前記第一運動ベクトル差及び前記第二運動ベクトル差の少なくとも1つがプリセット差より大きい時、第四初期制御点を前記第一初期制御点と前記第二初期制御点の間に新設し、第五初期制御点を前記第二初期制御点と前記第三初期制御点の間に新設することを含む請求項11に記載の方法。
【請求項15】
前記現在のコーディングユニットに設置される各2つの隣接する前記初期制御点の運動ベクトル差がいずれもプリセット差より小さいか否か判断することと、
小さくない場合、前記現在のコーディングユニットに設置される各2つの隣接する前記初期制御点の前記運動ベクトル差がいずれもプリセット差より小さくなるか、前記現在のコーディングユニットに設置される前記初期制御点の数が現在のコーディングユニットの上方及び左方に位置する複数の隣接サブブロックの数に達するまで、新たな制御点を各2つの隣接して設置された初期制御点の間に繰り返し設置することと、を更に含む請求項14に記載の方法。
【請求項16】
前記アフィンモデルを生成するステップは、
前記現在のコーディングユニットに設置される各前記初期制御点の前記運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は1+2N−1であり、各前記アフィンモデルは、異なる3つの前記初期制御点の前記運動ベクトルによって構築される請求項15に記載の方法。
【請求項17】
データを保存するのに用いられるメモリと、
前記メモリに結合され、
現在のコーディングユニットの制御点の数を受信並びに設定し、ここで、前記制御点の数は3以上であり、
前記制御点の数に基づき、少なくとも1つのアフィンモデルを生成し、
各前記アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、
前記アフィン運動ベクトルに基づき、前記現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって前記現在のコーディングユニットに画面間予測コーディングを行うように配置されるプロセッサと、を含む画像処理装置。
【請求項18】
前記制御点の数は為1+2Nであり、Nは正の整数である請求項17に記載の画像処理装置。
【請求項19】
N=1の時、前記アフィンモデルの数は1である請求項18に記載の画像処理装置。
【請求項20】
N>1の時、前記アフィンモデルの数は1+2N−1である請求項18に記載の画像処理装置。
【請求項21】
前記プロセッサは、前記制御点の数に対する設定値を取得し、前記現在のコーディングユニットの前記制御点の数を設定する請求項17に記載の画像処理装置。
【請求項22】
前記制御点の数の前記設定値が3である時、前記プロセッサは、更に、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左上角、右上角及び左下角に設置するのに用いられる請求項21に記載の画像処理装置。
【請求項23】
前記プロセッサは、前記第一制御点の運動ベクトル、前記第二制御点の運動ベクトル及び前記第三制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は1である請求項22に記載の画像処理装置。
【請求項24】
前記制御点の数の前記設定値が1+2N且つN>1である時、前記プロセッサは、更に、
それぞれ第一制御点、第二制御点及び第三制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置し、
第四制御点を前記第一制御点と前記第二制御点の間に設置し、第五制御点を前記第二制御点と前記第三制御点の間に設置し、
前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達したか否か判断し、
達していない場合、前記現在のコーディングユニットに設置される前記制御点の数が前記制御点の数の前記設定値に達するまで、新たな制御点を各2つの隣接して設置された制御点の間に繰り返し設置するのに用いられる請求項21に記載の画像処理装置。
【請求項25】
前記プロセッサは、前記現在のコーディングユニットに設置される各前記制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、其中前記アフィンモデルの数は1+2N−1であり、各前記アフィンモデルは、異なる組合わせのうち3つの前記制御点の運動ベクトルによって構築されている請求項24に記載の画像処理装置。
【請求項26】
前記プロセッサは、更に、
それぞれ第一初期制御点、第二初期制御点及び第三初期制御点を前記現在のコーディングユニットの左下角、左上角及び右上角に設置するのに用いられる請求項17に記載の画像処理装置。
【請求項27】
前記プロセッサは、前記第一初期制御点の運動ベクトルと前記第二初期制御点の運動ベクトルの第一運動ベクトル差を計算し、前記第二初期制御点の前記運動ベクトルと前記第三初期制御点の運動ベクトルの第二運動ベクトル差を計算し、前記第一運動ベクトル差及び前記第二運動ベクトル差に基づき、前記現在のコーディングユニットに複数の新たな制御点を増やすか否か判断する請求項26に記載の画像処理装置。
【請求項28】
前記第一運動ベクトル差及び前記第二運動ベクトル差がいずれもプリセット差より小さい時、前記プロセッサは、前記新たな制御点を増やさず、前記制御点の数は、前記現在のコーディングユニットに設置される前記初期制御点の数に設定される請求項27に記載の画像処理装置。
【請求項29】
前記プロセッサは、前記第一初期制御点の運動ベクトル、前記第二初期制御点の運動ベクトル及び前記第三初期制御点の運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は1である請求項28に記載の画像処理装置。
【請求項30】
前記第一運動ベクトル差及び前記第二運動ベクトル差の少なくとも1つがプリセット差より大きい時、前記プロセッサは、第四初期制御点を前記第一初期制御点と前記第二初期制御点の間に新設し、第五初期制御点を前記第二初期制御点と前記第三初期制御点の間に新設する請求項27に記載の画像処理装置。
【請求項31】
前記プロセッサは、更に、
前記現在のコーディングユニットに設置される各2つの隣接する前記初期制御点の運動ベクトル差がいずれもプリセット差より小さいか否か判断し、
小さくない場合、前記現在のコーディングユニットに設置される各2つの隣接する前記初期制御点の前記運動ベクトル差がいずれもプリセット差より小さくなるか、前記現在のコーディングユニットに設置される前記初期制御点の数が現在のコーディングユニットの上方及び左方に位置する複数の隣接サブブロックの数に達するまで、新たな制御点を各2つの隣接して設置された初期制御点の間に繰り返し設置するのに用いられる請求項30に記載の画像処理装置。
【請求項32】
前記プロセッサは、前記現在のコーディングユニットに設置される各前記初期制御点の前記運動ベクトルを用いて、前記アフィンモデルを構築し、ここで、前記アフィンモデルの数は1+2N−1であり、各前記アフィンモデルは、異なる3つの前記初期制御点の前記運動ベクトルによって構築される請求項31に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオコーディングの技術に関する。
【背景技術】
【0002】
仮想現実及び拡張現実のオーディオビジュアルエンターテイメント産業における迅速な発展とともに、仮想環境を順応、探索及び操作して、あたかも傍にあるように感じるように、消費者の高品質画像に対する要求は日増しに増加している。スムーズで高画質の画像画面を提供するために、限られた容量及びネットワーク帯域幅で画像データを送受信し、画像コーディングの技術は、キーとなるコアの1つである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
これに鑑みて、本発明は、ビデオ画像のコーディング効果を有効的に向上させることができるビデオコーディング方法及びその画像処理装置を提供する。
【0004】
本発明の例示的な実施形態において、上記方法は、画像処理装置に適用され、下記ステップを含む。現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定し、ここで、制御点の数は、3以上である。次いで、制御点の数に基づき、少なくとも1つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する。それから、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットに画面間予測コーディングを行う。
【0005】
本発明の例示的な実施形態において、上記画像処理装置は、メモリ及びプロセッサを含み、ここで、プロセッサは、メモリに結合される。メモリは、データを保存するのに用いられる。プロセッサは、現在のコーディングユニットを受信し、現在のコーディングユニットの制御点の数を設定し、ここで、制御点の数は、3以上であり、制御点の数に基づき、少なくとも1つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって、現在のコーディングユニットに画面間予測コーディングを行うのに用いられる。
【発明の効果】
【0006】
上述に基づき、本発明が提出するビデオコーディング技術は、高解像度ビデオの2つの制御点と1つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【0007】
本発明の上述した特徴と利点を更に明確化するために、以下に、実施例を挙げて図面と共に詳細な内容を説明する。
【図面の簡単な説明】
【0008】
【
図1】
図1A〜
図1Bは、1つのブロックの運動ベクトルフィールドの概略図である。
図1Cは、複数の移動物体を有する1つのコーディングユニットの概略図である。
【
図2】
図2は、本発明の例示的な実施形態が図示する画像処理装置のブロック図である。
【
図3】
図3は、本発明の例示的な実施形態が図示するビデオコーディング方法のフロー図である。
【
図4】
図4A〜
図4Dは、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。
【
図5A】
図5Aは、本発明の例示的な実施形態が図示する制御点の隣接運動ベクトルの検索方法の概略図である。
【
図5B】
図5Bは、本発明の例示的な実施形態が図示する3つの制御点を有する現在のコーディングユニットの概略図である。
【
図5C】
図5Cは、本発明の例示的な実施形態が図示する5つの制御点を有する現在のコーディングユニットの概略図である。
【
図6】
図6は、本発明の例示的な実施形態が図示する制御点の設定方法のフロー図である。
【
図7】
図7は、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。
【発明を実施するための形態】
【0009】
本発明の一部の例示的な実施形態は、以下に、図面をあわせて詳細に記述する。以下の記述で引用する部材番号は、異なる図面で同じ部材番号として出現し、同じ又は相似する部材とみなす。これらの例示的な実施形態は、本発明の一部でしかなく、全ての本発明の実施可能なものを開示していない。更に正確には、これらの例示的な実施形態は、本発明の特許請求の範囲の方法と装置の例でしかない。
【0010】
現在、国際電気通信連合電気通信標準化部門(Telecommunication Standardization Sector,ITU−T)及び動画専門家グループ(Moving Picture Experts Group, MPEG)が共通して構成する連合ビデオ専門家チーム(Joint Video Expert Team,JVET)会議において、次世代ビデオコーディング(Versatile Video Coding,H.266/VVC)を提出し、高効率ビデオコーディング(High Efficiency Video Coding,H.265/HEVC)より高いコーディング効果の標準を提供している。JVET会議に回答する圧縮技術効果募集コンテスト(Call for Proposal,CfP)において、主に、スタンダードダイナミックレンジ(standard dynamic range,SDR)動画、ハイダイナミックレンジ(high dynamic range,HDR)動画及び360度動画等3種類の技術項目について検討し、この3種類の技術は、画面データのコーディングを行うには、いずれも予測を必要とする。
【0011】
上記予測方法は、大まかに、画面内予測(intra−prediction)と画面間予測(inter−prediction)に分けられ、前者は、主に、空間ドメインにおける画面の隣接ブロックに関連性分析を行い、後者は、主に、時間ドメインにおける画面の間のブロックに関連性分析を行って、動き補正予測(motion−compensation prediction,MCP)を行う。動き補正予測は、並進運動モデル(translation motion model)に基づき、ブロックの画面の間の運動ベクトルを計算できる。ブロックのオリジナルデータ伝送に対して、運動ベクトルの伝送は、必要なコーディングビット数を大幅に減少する。しかしながら、実世界では、例えば、拡大(zoom in)、縮小(zoom out)、旋回(rotation)、相似変換(similarity transformation)、螺旋相似(spiral similarity)、透視(perspective motion)又はその他の不規則な動きが存在する。したがって、並進運動モデルに基づく動き補正予測メカニズムは、コーディング効果に大幅に影響する。
【0012】
現在、連合探索測定プラットフォーム(Joint Exploration Test Model,JEM)は、アフィン動き補正予測(affine motion compensation prediction)を提出しており、2つの制御点に基づき、1つのアフィンモデルで1つのブロックの運動ベクトルフィールド(motion vector field,MVF)を記述して、旋回、ズーム、並進するシーンの予測効果を向上している。
図1Aの1つのブロック100を例とすると、ブロック100のサンプル位置である(x,y)の運動ベクトルフィールドは、方程式(1)のアフィンモデルで記述できる。
【数1】
【0013】
動き補償予測を更に簡略化するために、ブロック100をM×N個のサブブロックに分けて(例として、
図1Bでは、ブロック100を4×4個のサブブロックに分けている)、方程式(1)に基づき、各サブブロックの中心サンプリングの運動ベクトルを導出できる。次いで、動き補償補間フィルタ(motion compensation interpolation filter)を各サブブロックの運動ベクトルに用いて、各サブブロックの予測が得られる。動き補償予測の後、各サブブロックの高精度を有する運動ベクトルは、丸められ(rounded)、一般の運動ベクトルと同じ精度に保存される。
【0014】
しかしながら、消費者の高品質ビデオに対する要求を満たすために、ビデオの解像度は相対的に向上し、各コーディングユニット(coding unit,CU)のサイズも相対的に向上し、実施形態において、128×128まで大きい可能性がある。現行のアフィン動き補償予測は、1つのコーディングユニット全てが1つの物体に属する仮定の下で行われる。しかしながら、コーディングユニットは、1つの物体を含むだけではなく、異なる動作を含む時(例えば、
図1CのコーディングユニットCU1は、異なる旋回方向の移動物体OB1、OB2、OB3を有し、例えば、移動物体OB1は反時計回りに旋回し、移動物体OB2、OB3は時計周りに旋回するが、旋回速度は異なる)、現行のメカニズムでは、誤った予測を生み出す可能性がある。本発明の例示的な実施形態が提出するビデオコーディング技術は、高解像度ビデオの2つの制御点と1つのアフィンモデルによる効果が不足する問題を解決できる。
【0015】
図2は、本発明の例示的な実施形態が図示する画像処理装置のブロック図であるが、これは説明をしやすくするためだけであって、本発明を限定するものではない。実施形態において、画像処理装置200は、エンコーダ及び/またはデコーダであってもよい。
【0016】
図2を参照すると、本例示的な実施形態において、画像処理装置200は、少なくともメモリ210と、プロセッサ220と、を含み、プロセッサ220はメモリ210に結合される。例示的な実施形態において、画像処理装置200は、パソコン、ノートブック型パソコン、サーバーコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルデバイス、ワークステーション等の電子デバイスであってもよい。
【0017】
メモリ210は、画像、数値データ、プログラムコード等のデータを保存するのに用いられ、例えば、任意のタイプの固定型又は移動型ランダムアクセスメモリ(random access memory,RAM)、リードオンリーメモリ(read−only memory,ROM)、フラッシュメモリ(flash memory)、ハードディスク又はその他の類似の装置、集積回路及びその組合わせであってもよい。
【0018】
プロセッサ220は、画像処理装置200全体の動作を制御して、ビデオコーディングを実行するのに用いられ、例えば、中央処理ユニット(central processing unit,CPU)、アプリケーションプロセッサ(application processor,AP)、又はその他のプログラマブルな一般用途又は特殊用途のマイクロプロセッサ(microprocessor)、デジタル信号プロセッサ(digital signal processor,DSP)、画像信号プロセッサ(image signal processor,ISP)、図形処理ユニット(graphics processing unit,GPU)又はその他の類似の装置、集積回路及びその組合わせであってもよい。
【0019】
追加で説明することとして、例示的な実施形態において、画像処理装置200は、画像取り込み装置、伝送インターフェース、ディスプレイ、通信ユニットを選択的に含んでもよい。画像取り込み装置は、例えば、デジタルカメラ、デジタルカムコーダ、ネットワークカメラ、モニターカメラであってもよく、画像データを取り込むのに用いられる。伝送インターフェースは、I/Oインターフェースであってもよく、プロセッサ220に画像データ及び関連データを受信させる。ディスプレイは、処理後の画像データを表示するのに用いられる任意のスクリーンであってもよい。通信ユニットは、任意の有線接続または無線通信標準を支援するモデム、送受信器であってもよく、外部ソースからオリジナル画像データを受信し、処理後の画像データをその他の装置又はプラットフォームに送信するのに用いられる。当業者は以下について明瞭である。エンコードの観点からすると、プロセッサ220がエンコード完了した後、エンコード後のビットストリーム及び関連データを通信ユニットによってその他のデコーダを有する装置又はプラットフォームに送信する。また、プロセッサ220は、例えば、DVDディスク、従来のハードディスク、ポータブルハードドライブ、メモリカード等の保存記録媒体にエンコード後のビットストリーム及び関連データを保存することもできるが、本発明はこれに限定しない。デコードの観点からすると、プロセッサ220がエンコードされたビットストリーム及び関連データを受信した後、関連データに基づき、エンコードされたビットストリーム及び関連データをデコードして、プレイヤーに出力して再生する。
【0020】
図3は、本発明の例示的な実施形態が図示するビデオコーディング方法のフロー図であり、
図3の方法フローは、
図2の画像処理装置200によって実現できる。本発明の実施形態において、コーディングは、エンコード及び/又はデコードであってもよく、コーディング方法は、エンコード方法及び/又はデコード方法であってもよい。
【0021】
本例示的な実施形態において、プロセッサ220は、画像処理装置200のエンコードフロー及び/またはデコードフローを実行できる。例を挙げると、
図3の方法フローは、プログラムコード形式でメモリ210に保存し、プロセッサ220は、プログラムコードを実行して、
図3の各ステップを実行することができる。プロセッサ220がエンコードフローを実行する時、
図3のフローを実行する前に、オリジナルビデオストリーム/画面を受信してから、このオリジナルビデオストリーム/画面にエンコードプログラムを行う。プロセッサ220がデコードフローを実行する時、
図3のフローを実行する前に、エンコードされたビットストリームを受信してから、このエンコードされたビットストリームにデコードプログラムを行う。以下の説明では、受信したオリジナルビデオストリーム/画面又はエンコードされたビットストリームの複数を、基本処理ユニット(basic processing unit)のコーディングツリーユニット(Coding Tree Unit,CTU)のうちの1つのコーディングユニット(coding unit,CU)として説明し、これをまとめて「現在のコーディングユニット」と称する。
【0022】
図2と
図3を同時に参照すると、まず、画像処理装置200のプロセッサ220は、現在のコーディングユニットを受信し(ステップS302)、現在のコーディングユニットの制御点の数を設定する。ここで、制御点の数は、3以上である(ステップS304)。制御点の数は、ユーザーが予め入力装置(不図示)によって入力したデフォルト値、システムデフォルト値、又は現在のコーディングユニットの物体移動状態に基づき適切に設定したものであってもよい。
【0023】
次いで、プロセッサ220は、制御点の数に基づき、少なくとも1つのアフィンモデルを生成し(ステップS306)、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算する(ステップS308)。その後、プロセッサ220は、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットの画面間予測コーディングを行う(ステップS310)。ここで、プロセッサ220は、全てのアフィンモデルを現在のコーディングユニットの全てのサブブロックに適用し、各サブブロックは、異なる重み付けによって全てのアフィン運動ベクトルを分配し、対応する運動ベクトル予測因子を得て、現在のコーディングユニットの画面間予測コーディングを行う。下記例示的な実施形態によりステップS304〜S310の詳細について説明する。
【0024】
図4A〜
図4Dは、本発明の例示的な実施形態が図示する制御点の設定方法であり、これらの例示は、
図2のエンコード及び/またはデコードするのに用いられる画像処理装置200によって実現できる。
【0025】
本例示的な実施形態において、プロセッサ220は、ユーザー設定又はシステムプリセットに基づき、制御点の数及び参照範囲を設定し、この制御点の数は、1+2
Nを満たし、Nは正の整数である。制御点の参照範囲は、現在のコーディングユニットの左方及び上方の隣接サブブロックの列数と行数であり、Mで表すことができ、Mは正の整数である。
図4Aを例とすると、M=1の時、現在のコーディングユニットCU4Aの制御点の参照範囲は、左方に隣接する1行と上方に隣接する1列の隣接サブブロック(番号1〜9)であり、M=2の時、現在のコーディングユニットCU4Aの制御点の参照範囲は、左方に隣接する2行と上方に隣接する2列の隣接サブブロック(番号1〜20)であり、これにより類推される。
【0026】
プロセッサ220は、制御点の数及び参照範囲を設定した後、制御点の位置を設定する。まず、プロセッサ220は、3つの制御点を現在のエンコードブロックの左下角、左上角及び右上角に設置する。
図4Bを例とすると、40B、41B、42Bは、それぞれ現在のコーディングユニットCU4Bの左上角、右上角及び左下角に位置する3つの制御点であり、即ち、番号5、9、1のサブブロックに対応する。別の観点から見ると、番号1〜9のサブブロックが参照線RBに配列する場合、現在のコーディングユニットCU4Bは正方形であることに基づき、3つの制御点40B、41B、42Bは、それぞれ参照線RBの両端点及び中点に位置する。また、
図4Cを例とすると、40C、41C、42Cは、現在のコーディングユニットCU4Cの左上角、右上角及び左下角に位置する3つの制御点であり、即ち、番号5、13、1のサブブロックに対応する。別の観点から見ると、番号1〜13のサブブロックが参照線RCに配列する場合、現在のコーディングユニットCU4Cは、幅が長さより大きい非正方形であることに基づき、3つの制御点40C、41C、42Cは、それぞれ参照線RCの両端点及び左半分に位置する。
【0027】
プロセッサ220は、Nの数値に基づき、各2つの制御点の間に新たな制御点を新設するか否か決定する。別の観点から見ると、プロセッサ220は、現在のコーディングユニットに設置される制御点の数が、制御点の数の設定値に達したか否か判断する。詳細には、N=1の時、即ち、制御点の数は3であることを表し、現在のコーディングユニットに設置された制御点の数は、制御点の数の設定値に達し、したがって、制御点の設置を完了する。N=2の時、制御点の数は5であることを表し、即ち、現在のコーディングユニットに設置された制御点の数は、制御点の数の設定値に達しておらず、したがって、プロセッサ220は、2つの制御点を現在のコーディングユニットの各隣接する制御点の間に新設する。
図4Dを例とすると、
図4Bに続き、40B、41B、42Bは、それぞれ現在のコーディングユニットCU4Dに設置される3つの制御点であり、プロセッサ220は、制御点43を制御点40Bと制御点41Bの中点に追加で設置し、制御点44を制御点42Bと制御点40Bの中点に追加で設置する。N=3の時、即ち、制御点の数は9であることを表し、プロセッサ220は、4つの制御点をそれぞれ各2つの隣接する制御点の間、例えば、制御点42Bと制御点44の中点、制御点44と制御点40Bの中点、制御点40Bと制御点43の中点及び制御点43と制御点41Bの中点に追加で設置する。これにより類推され、プロセッサ220は、現在のコーディングユニット420に設置される制御点の数が制御点の数の設定値に達していないと判定する時、現在のコーディングユニット420に設置される制御点の数が制御点の数の設定値に達するまで、新たな制御点を各2つの隣接して設置された制御点の中点に繰り返し設置する。
【0028】
次いで、プロセッサ220は、制御点の運動ベクトルに基づき、アフィンモデルを生成する。本例示的な実施形態において、N=1(即ち、制御点の数は3である)の時、アフィンモデルの数は1であり、N>1(即ち、制御点の数は3より大きい)の時、アフィンモデルの数は1+2
N−1である。制御点の運動ベクトルは、コーディングされた隣接運動ベクトルに基づき計算でき、このコーディングされたの隣接運動ベクトルの参照画面と制御点の参照画面は同じである。
【0029】
図5Aの本発明の例示的な実施形態が図示する制御点の隣接運動ベクトルの検索方法の概略図を例とすると、M=1の時、プロセッサ220は、それぞれ現在のコーディングユニットCU5Aの制御点50A、51A、52Aの隣接サブブロックからコーディングされた運動ベクトルを検索する。サブブロックDに位置する制御点50Aからすると、プロセッサ220は、サブブロックA〜Cがコーディング済されたサブブロックであると検索したと仮定すると、制御点50Aの運動ベクトルは、サブブロックA〜Cの運動ベクトルの中から選択できる。例を挙げると、プロセッサ220は、1つの固定順序により、サブブロックA〜Cが現在のコーディングユニットCU5Aと同じ参照画面を有するか否かを逐一判断して、この設定に適合すると最初に判定するサブブロックの運動ベクトルは、制御点50Aの運動ベクトルの設定根拠とする。
【0030】
一方、サブブロックGに位置する制御点51Aからすると、プロセッサ220は、サブブロックE〜Fがコーディングされたサブブロックであると検索したと仮定すると、その運動ベクトルは、サブブロックE〜Fの運動ベクトルの中から選択でき、サブブロックHは、コーディングしていないことから、制御点51Aの運動ベクトルの選択根拠としない。サブブロックKに位置する制御点52Aからすると、プロセッサ220は、サブブロックI〜Jがコーディングされたサブブロックであると検索したと仮定すると、その運動ベクトルは、サブブロックI〜Jの運動ベクトルの中から選択でき、サブブロックLは、コーディングしていないことから、制御点52Aの運動ベクトルの選択根拠としない。
【0031】
また、M=2の時、プロセッサ220は、それぞれ現在のコーディングユニットCU5Aの制御点50A、51A、52Aの隣接サブブロックから、アフィン運動モデルによってコーディングされた運動ベクトルを検索できる。M=1に対して、制御点50Aは、更に多くの隣接サブブロックを参照して制御点50A、51A、52Aの運動ベクトルの選択及び設定根拠を検出することができ、例えば、制御点50Aが参照できる隣接サブブロックはA〜C、M〜Qであり、制御点51Aが参照できる隣接サブブロックはE〜F、H、R〜Vであり、制御点52Aが参照できる隣接サブブロックはI、J、L、W〜ZZである。制御点50A、51A、52Aの運動ベクトルの選択及び設定方式は、M=1に関する説明を参考にでき、ここでは繰り返さない。
【0032】
例示的な実施形態において、制御点の運動ベクトルは、その他の制御点の運動ベクトルから計算してもよく、例えば、制御点52Aの運動ベクトルが隣接サブブロックから知り得ることができない場合、制御点50A及び制御点51Aの運動ベクトルから計算し、制御点52Aの運動ベクトルは、例えば、方程式(2.01)により計算できる。
【数2】
【0033】
別の例示的な実施形態において、制御点51Aの運動ベクトルが隣接サブブロックから知り得ることができない場合、制御点50A及び制御点52Aの運動ベクトルは、例えば、方程式(2.02)により計算できる。
【数3】
【0036】
図6は、本発明の例示的な実施形態が図示する制御点の設定方法のフロー図である。
図7は、本発明の例示的な実施形態が図示する制御点の設定方法の概略図である。以下の設定方法は、
図2のエンコードまたはデコードするのに用いられる画像処理装置200によって実現できる。本例示的な実施形態において、プロセッサ220は、現在のコーディングユニットの物体移動状態に基づき、制御点の数を適切に設定する。
【0037】
図2、
図6を同時に参照すると、まず、プロセッサ220は、現在のコーディングユニットの3つの初期制御点を設定する(ステップS602)。本例示的な実施形態において、参照範囲M=1をデフォルト値として説明し、この3つの初期制御点は、現在のエンコードブロックの左下角、左上角及び右上角に順に設置し、以下、それぞれ第一初期制御点、第二初期制御点及び第三初期制御点と称する。
図7を例とすると、現在のコーディングユニットCU7の7A、7B、7Cは、それぞれ第一初期制御点、第二初期制御点及び第三初期制御点である。追加で説明することとして、そのほかの例示的な実施形態において、プロセッサ220は、ステップS602の前に、ユーザー設定又はシステムプリセットに基づき参照範囲を設定することもできる。
【0038】
次いで、プロセッサ220は、各初期制御点の運動ベクトルを計算し(ステップS604)、各2つの隣接する初期制御点の運動ベクトル差を計算し(ステップS606)、いかなる運動ベクトル差もプリセット差より大きいか否かと、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さいか否か判断する(ステップS608)。説明が必要なこととして、ここで言う2つの隣接する初期制御点とは、現在のコーディングユニットの角に順に配列した2つの隣接する初期制御点を指す。
図7を例とすると、プロセッサ220は、第一初期制御点7Aの運動ベクトルV
Aと第二初期制御点7Bの運動ベクトルV
Bの間の運動ベクトル差||V
A−V
B||(「第一運動ベクトル差」と称する)を計算し、第二初期制御点7Bの運動ベクトルV
Bと第三初期制御点7Cの運動ベクトルV
Cの間の運動ベクトル差||V
B−V
C||「第二運動ベクトル差」と称する)を計算し、第一運動ベクトル差||V
A−V
B||及び第二運動ベクトル差||V
B−V
C||のいずれかがプリセット差dより大きいか否か判断する。
【0039】
プロセッサ220は、いかなる運動ベクトル差もプリセット差より大きくないと判定する時、例示的な実施形態において、全ての運動ベクトルは、高い類似性を有し、現在の初期制御点は、同じ移動物体に対応することを表すため、制御点を新設する必要は無い。また、現在のコーディングユニットに設置される初期制御点の数が、現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さくない(すでに達した)時も制御点を新設する必要は無い。プロセッサ220は、ここで、制御点の設定フローを終了して、これらの初期制御点の運動ベクトルに基づき、アフィンモデルの生成を開始することができる。
図7を例とすると、プロセッサ220は、||V
A−V
B||<d且つ、||V
B−V
C||<dと判定すると、第一初期制御点7Aの運動ベクトルV
A、第二初期制御点7Bの運動ベクトルV
B及び第三初期制御点7Cの運動ベクトルV
Cを用いて1つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算して、これによって現在のコーディングユニットの画面間予測エンコードを行う。
【0040】
一方、プロセッサ220は、いかなる運動ベクトル差もプリセット差より大きいと判定する時、例示的な実施形態において、現在の初期制御点は、異なる移動物体に対応することを表すことから、制御点を増やして、現在のコーディングユニットの全ての移動物体を完全に記述して、後続の予測を更に正確にする。ここで、プロセッサ220は、更に、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数より小さい(まだ達していない)と判定する時、プロセッサ220は、各2つの隣接する初期制御点の間に制御点を1つ増やし(ステップS610)、増やされた制御点を初期制御点に加える(ステップS612)。換言すると、第一初期制御点と第二初期制御点の間に新設した制御点は、第四初期制御点となり、第二初期制御点と第三初期制御点の間に新設した制御点は、第五初期制御点となる。その後、プロセッサ220は、ステップS604に戻って、各2つの隣接する初期制御点の運動ベクトル差がいずれもプリセット差より小さくなるか、現在のコーディングユニットに設置される初期制御点の数が現在のコーディングユニットの上方及び左方に位置する隣接サブブロックの数に達するまで継続するフローを繰り返す。
【0041】
図7を例とすると、プロセッサ220は、||V
A−V
B||>d及び/又は、||V
B−V
C||>dと判定した場合、プロセッサ220は、第一初期制御点7Aと第二初期制御点7Bの中点に制御点7Dを新設し、第二初期制御点7Bと第三初期制御点7Cの中点に制御点7Eを新設してもよい。その後、プロセッサ220は、第一初期制御点7Aの運動ベクトルV
Aと第四初期制御点7Dの運動ベクトルV
Dの間の運動ベクトル差||V
A−V
D||、第四初期制御点7Dの運動ベクトルV
Dと第二初期制御点7Bの運動ベクトルV
Bの間の運動ベクトル差||V
D−V
B||、第二初期制御点7Bの運動ベクトルV
Bと第五初期制御点7Eの運動ベクトルV
Eの間の運動ベクトル差||V
B−V
E||、第五初期制御点7Eの運動ベクトルV
Eと第三初期制御点7Cの運動ベクトルV
Cの間の運動ベクトル差||V
E−V
C||を計算し、この4つの運動ベクトル差の中に、プリセット差dより大きいものがあるか否か判断する。この4つの運動ベクトル差の中に、プリセット差dより大きいものがある場合、プロセッサ220は、更にそれぞれこの5つの初期制御点7A〜7E中の各2つの隣接する制御点の中点に制御点を新設する。換言すると、プロセッサ220は、いかなる現在のコーディングユニットCU7に設置される各2つの隣接する初期制御点の運動ベクトル差がプリセット差より小さくないと判定する時、現在のコーディングユニットCU7に設置される各2つの隣接する初期制御点の運動ベクトル差がいずれもプリセット差より小さくなるか、現在のコーディングユニットCU7に設置される初期制御点の数が、現在のコーディングユニットCU7の上方及び左方に位置する隣接サブブロックの数に達する(例えば、
図7が設置できる初期制御点の数は最多で9である)まで、新たな制御点を各2つの隣接して設置された初期制御点の中点に繰り返し設置する。
【0042】
この4つの差がいずれもプリセット差dより小さい場合、プロセッサ220は、第一初期制御点7Aの運動ベクトルV
A、第二初期制御点7Bの運動ベクトルV
B、第三初期制御点7Cの運動ベクトルV
C、第四初期制御点7Dの運動ベクトルV
D、第五初期制御点7Eの運動ベクトルV
Eを用いて3つのアフィンモデルを生成し、各アフィンモデルがそれぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、現在のコーディングユニットの運動ベクトル予測因子を計算し、これによって現在のコーディングユニットの画面間予測コーディングを行う。
【0043】
以上より、本発明が提出するビデオコーディング方法及びその画像処理装置は、コーディングユニットにおいて、3つ以上の制御点により少なくとも1つのアフィンモデルを生成して、それぞれ対応するアフィン運動ベクトルを計算し、全てのアフィン運動ベクトルに基づき、コーディングユニットの運動ベクトル予測因子を計算する。本発明が提出するビデオコーディング技術は、高解像度ビデオの2つの制御点と1つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【0044】
本文は以上の実施例のように示したが、本発明を限定するためのものではなく、当業者が本発明の精神の範囲から逸脱しない範囲において、変更又は修正することが可能であるが故に、本発明の保護範囲は後続の特許請求の範囲に定義しているものを基準とする。
【産業上の利用可能性】
【0045】
本発明が提出するビデオコーディング技術は、高解像度ビデオの2つの制御点と1つのアフィンモデルによる効果が不足する問題を解決でき、画面間予測コーディングの正確性及びビデオ画像のコーディング効果を向上させる。
【符号の説明】
【0046】
100:ブロック
110、120、40B、41B、42B、40C、41C、42C、43、44、50A、51A、52A、50B、51B、52B、50C、51C、52C、7A、7B、7C、7D、7E:制御点
200:画像処理装置
210:メモリ
220:プロセッサ
S302〜S310、S602〜S612:ステップ
CU1:コーディングユニット
CU4A、CU4B、CU4C、CU4D、CU5A、CU7:現在のコーディングユニット
1〜20:番号
RB、RC、R7:参照線
A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z、ZZ:サブブロック
【外国語明細書】