(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-07
(45)【発行日】2022-11-15
(54)【発明の名称】ビデオフレームの符号化単位の分割方法、装置、記憶媒体及び電子装置
(51)【国際特許分類】
H04N 19/119 20140101AFI20221108BHJP
H04N 19/147 20140101ALI20221108BHJP
H04N 19/159 20140101ALI20221108BHJP
H04N 19/176 20140101ALI20221108BHJP
【FI】
H04N19/119
H04N19/147
H04N19/159
H04N19/176
(21)【出願番号】P 2020543747
(86)(22)【出願日】2019-04-03
(86)【国際出願番号】 CN2019081211
(87)【国際公開番号】W WO2019214373
(87)【国際公開日】2019-11-14
【審査請求日】2020-08-17
(31)【優先権主張番号】201810444914.5
(32)【優先日】2018-05-10
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲張▼ 宏▲順▼
【審査官】坂東 大五郎
(56)【参考文献】
【文献】中国特許出願公開第107396121(CN,A)
【文献】中国特許出願公開第107295336(CN,A)
【文献】Kiho Choi et al.,Coding tree pruning based CU early termination,Joint Collaborative Team on Video Coding (JCT-VC),2011年07月15日,[JCTVC-F092] (version 3)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
電子装置に適用される、ビデオフレームの符号化ユニットの分割方法であって、
フレームタイプ及び符号化ユニットタイプの予め作成された対応関係に基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することであって、
前記対応関係では、異なるフレームタイプに対して異なる符号化ユニットタイプのセットが設定されており、前記ターゲット符号化ユニットタイプは前記ターゲットフレームを分割するときの分割深度を指示する、ターゲット符号化ユニットタイプを決定することと、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプに属するターゲット符号化ユニットを分割するときに、前記ターゲット符号化ユニットの符号化ユニット情報に基づき、前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定し、ターゲット結果を得ることであって、前記ターゲット結果は、前記ターゲット符号化ユニットが前記ターゲット条件を満たす場合に、前記ターゲット符号化ユニットに対して分割を行うことを停止することを指示することに使用され、前記ターゲット結果は、前記ターゲット符号化ユニットがターゲット条件を満たさない場合に、前記ターゲット符号化ユニットを分割することを指示することに使用される、ことと、
前記ターゲット符号化ユニットに対して、前記ターゲット結果に応じて分割操作を実行することと、を含む方法。
【請求項2】
フレームタイプを取得することであって、前記フレームタイプはフレーム符号化プロセスにおけるフレーム間の参照関係に基づき分割して得られたものである、フレームタイプを取得することと、
前記フレームタイプに対応する符号化ユニットタイプを取得することと、
対応関係を有するフレームタイプ及び符号化ユニットタイプを保存することと、を含む方式によって、前記対応関係を有するフレームタイプ及び符号化ユニットタイプを作成する請求項1に記載の方法。
【請求項3】
前記フレームタイプを取得することは、
前記フレームタイプを決定することを含み、
前記フレームタイプは、第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプを含み、
前記第1フレームタイプのフレームはフレーム符号化プロセスにおいてほかのフレームを参照せず、
前記第2フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレームを参照し、
前記第3フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレーム及び前記第2フレームタイプのフレームを参照し、
前記第4フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレーム及び前記第3フレームタイプのフレームを参照し、又は、前記第2フレームタイプのフレーム及び前記第3フレームタイプのフレームを参照する請求項2に記載の方法。
【請求項4】
前記フレームタイプに対応する符号化ユニットタイプを取得することは、
前記第2フレームタイプに対応する符号化ユニットタイプが第1符号化ユニットタイプであると決定することであって、前記第1符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニットを含む、ことと、
前記第3フレームタイプに対応する符号化ユニットタイプが第2符号化ユニットタイプであると決定することであって、前記第2符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニット及び32×32符号化ユニットを含む、ことと、
前記第4フレームタイプに対応する符号化ユニットタイプが第3符号化ユニットタイプであると決定することであって、前記第3符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニット、32×32符号化ユニット及び64×64符号化ユニットを含む、ことと、を含む請求項3に記載の方法。
【請求項5】
前記ターゲット符号化ユニットの符号化ユニット情報に基づき前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定することは、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプで指示される分割深度に適合する符号化ユニットを、前記ターゲット符号化ユニットとして決定することと、
前記ターゲット符号化ユニットを分割するときに、前記ターゲット符号化ユニットの符号化ユニット情報を取得することと、
前記符号化ユニット情報に基づき、前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定することと、を含む請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記ターゲット符号化ユニットの符号化ユニット情報を取得することは、前記ターゲット符号化ユニットの最適モード及び前記最適モードのレート歪みコスト(Rate Distortion Cost)を取得することを含み、
前記符号化ユニット情報に基づき、前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定することは、
前記最適モードがskipモードであり、且つ前記レート歪みコストがターゲット閾値範囲内にある場合に、前記ターゲット符号化ユニットが前記ターゲット条件を満たすと決定すること、及び/又は、
前記最適モードがskipモードではない、又は、前記レート歪みコストが前記ターゲット閾値範囲内にない場合に、前記ターゲット符号化ユニットが前記ターゲット条件を満たさないと決定することを含む請求項5に記載の方法。
【請求項7】
ビデオフレームの符号化ユニットの分割装置であって、
フレームタイプ及び符号化ユニットタイプの予め作成された対応関係に基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することに用いられる第1決定モジュールであって、
前記対応関係では、異なるフレームタイプに対して異なる符号化ユニットタイプのセットが設定されており、前記ターゲット符号化ユニットタイプは前記ターゲットフレームを分割するときの分割深度を指示する、第1決定モジュールと、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプに属するターゲット符号化ユニットを分割するときに、前記ターゲット符号化ユニットの符号化ユニット情報に基づき、前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定し、ターゲット結果を得ることであって、前記ターゲット結果は、前記ターゲット符号化ユニットが前記ターゲット条件を満たす場合に、前記ターゲット符号化ユニットに対して分割を行うことを停止することを指示することに使用され、前記ターゲット結果は、前記ターゲット符号化ユニットがターゲット条件を満たさない場合に、前記ターゲット符号化ユニットを分割することを指示することに使用される、ことに用いられる第2決定モジュールと、
前記ターゲット符号化ユニットに対して、前記ターゲット結果に応じて分割操作を実行することに用いられる処理モジュールと、を含む装置。
【請求項8】
前記装置はさらに、
フレームタイプを取得することに用いられ、前記フレームタイプはフレーム符号化プロセスにおけるフレーム間の参照関係に基づき分割して得られたものである第1取得モジュールと、
前記フレームタイプに対応する符号化ユニットタイプを取得することに用いられる第2取得モジュールと、
対応関係を有するフレームタイプ及び符号化ユニットタイプを記憶することに用いられる記憶モジュールと、を含む請求項7に記載の装置。
【請求項9】
前記第1取得モジュールは、
前記フレームタイプを決定することに用いられ、前記フレームタイプは、第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプを含み、
前記第1フレームタイプのフレームは符号化を行うプロセスにおいてほかのフレームを参照せず、
前記第2フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレームを参照し、
前記第3フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレーム及び前記第2フレームタイプのフレームを参照し、
前記第4フレームタイプのフレームは符号化プロセスにおいて前記第1フレームタイプのフレーム及び前記第3フレームタイプのフレームを参照し、又は、前記第2フレームタイプのフレーム及び前記第3フレームタイプのフレームを参照する請求項8に記載の装置。
【請求項10】
前記第2取得モジュールは、
前記第2フレームタイプに対応する符号化ユニットタイプが第1符号化ユニットタイプであると決定することに用いられる第2決定ユニットであって、前記第1符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニットを含む、第2決定ユニットと、
前記第3フレームタイプに対応する符号化ユニットタイプが第2符号化ユニットタイプであると決定することに用いられる第3決定ユニットであって、前記第2符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニット及び32×32符号化ユニットを含む、第3決定ユニットと、
前記第4フレームタイプに対応する符号化ユニットタイプが第3符号化ユニットタイプであると決定することに用いられる第4決定ユニットであって、前記第3符号化ユニットタイプに属する符号化ユニットは16×16符号化ユニット、32×32符号化ユニット及び64×64符号化ユニットを含む、第4決定ユニットと、を含む請求項9に記載の装置。
【請求項11】
前記第2決定モジュールは、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプで指示される分割深度に適合する符号化ユニットを、前記ターゲット符号化ユニットとして決定することに用いられる第9決定ユニットと、
前記ターゲット符号化ユニットを分割するときに、前記ターゲット符号化ユニットの符号化ユニット情報を取得することに用いられる取得ユニットと、
前記符号化ユニット情報に基づき、前記ターゲット符号化ユニットがターゲット条件を満たすか否かを決定することに用いられる第10決定ユニットと、を含む請求項7~10のいずれか一項に記載の装置。
【請求項12】
コンピュータプログラムが記憶された記憶媒体であって、前記コンピュータプログラムは、演算のときに、前記請求項1~6のいずれか一項に記載の方法を実行するように構成される記憶媒体。
【請求項13】
電子装置であって、メモリ及びプロセッサを含み、前記メモリにコンピュータプログラムが記憶されており、前記プロセッサは、前記コンピュータプログラムによって前記請求項1~6のいずれか一項に記載の方法を実行するように構成される電子装置。
【請求項14】
命令を含むコンピュータプログラムであって、コンピュータによって演算されるときに、前記コンピュータに請求項1~6のいずれか一項に記載のビデオフレームの符号化ユニットの分割方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願はコンピュータの分野に関し、具体的には、ビデオフレームの符号化単位の分割方法、装置、記憶媒体及び電子装置に関する。
【0002】
本願は、2018年05月10日に中国特許庁に提出された、出願番号が第201810444914.5号、発明の名称が「ビデオフレームの符号化単位の分割方法、装置、記憶媒体及び電子装置」である中国特許出願の優先権を主張し、その全内容が引用により本願に組み込まれている。
【背景技術】
【0003】
将来のビデオの発展は高解像度、高フレームレート、高圧縮率の傾向にあり、高圧縮率のビデオ符号化の場合に、現状では層ごとに上から下へ現在の符号化単位(Coding Unit、CU)を、いずれもCUのサイズが8になるまで4個のサブブロックに分割し、次に、さらに下から上へ層ごとに比較を行い、最適モードのCU分割状況を選択することを採用している状況であり、このような方式は低符号化速度を招いている。
【0004】
上記課題に対して、現在では効果的な解決手段がまだ提案されていない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願の実施例はビデオフレームの符号化単位の分割方法、装置、記憶媒体及び電子装置を提供し、関連技術におけるフレームの符号化速度が比較的低いという技術的課題を少なくとも解決する。
【課題を解決するための手段】
【0006】
本願の実施例の一態様によれば、ビデオフレームの符号化単位の分割方法を提供し、
対応関係を有するフレームタイプ及び所定の符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することであって、前記ターゲット符号化ユニットタイプは前記ターゲットフレームを分割するときの分割深度を指示することに用いられる、ターゲット符号化ユニットタイプを決定することと、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、前記ターゲット符号化単位の符号化単位情報に基づき、前記ターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得ることと、
前記ターゲット符号化単位に対して、前記ターゲット結果に対応する分割操作を実行することと、を含む。
【0007】
本願の実施例の別の態様によれば、さらにビデオフレームの符号化単位の分割装置を提供し、
対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することに用いられる第1決定モジュールであって、前記ターゲット符号化ユニットタイプは前記ターゲットフレームを分割するときの分割深度を指示することに用いられる、第1決定モジュールと、
前記ターゲットフレーム中の、前記ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、前記ターゲット符号化単位の符号化単位情報に基づき、前記ターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得ることに用いられる第2決定モジュールと、
前記ターゲット符号化単位に対して、前記ターゲット結果に対応する分割操作を実行する処理モジュールと、を含む。
【0008】
本願の実施例の別の態様によれば、さらにコンピュータプログラムが記憶された記憶媒体を提供し、前記コンピュータプログラムは演算のときに、上記いずれか一項に記載の方法を実行するように構成される。
【0009】
本願の実施例の別の態様によれば、さらに電子装置を提供し、メモリ及びプロセッサを含み、前記メモリにコンピュータプログラムが記憶されており、前記プロセッサは、前記コンピュータプログラムによって上記いずれか一項に記載の方法を実行するように構成される。
【0010】
本願の実施例の別の態様によれば、さらに命令を含むコンピュータプログラムを提供し、コンピュータによって演算されるときに、前記コンピュータに本願の前記ビデオフレームの符号化単位の分割方法を実行させる。
【0011】
本願の実施例では、CU深度の誤差の累積は主に2つの要素によると考えられる。1つは現在のフレームのフレームタイプであり、異なるタイプのフレームは参照フレームとしての重みが異なり、誤差の累積は異なるタイプにおいては拡散程度も異なることにある。もう1つは、符号化単位のサイズであり、異なるサイズの符号化単位の分割を誤ると、その影響範囲も異なることにある。従って、異なるフレームタイプ及び異なるサイズのCUに応じて個別処理を行う。具体的には、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定し、当該ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられ、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得て、次に、ターゲット符号化単位に対して、ターゲット構造に対応する分割操作を実行し、それにより異なるフレームタイプに対して、異なる分割方式を採用でき、各ビデオフレームをいずれも分割するという操作も回避し、それによりフレームの符号化速度を向上させる技術的効果を実現し、関連技術におけるフレームの符号化速度が比較的低いという技術的課題を解決する。更に、異なるフレームタイプのフレームの符号化単位を分割するときの異なる状況を十分に考慮し、異なるフレームタイプのフレームについて分割深度を決定し、誤差の累積の拡散を回避し、それにより符号化誤差の発生を減少させる。
【0012】
ここで説明される図面は本願に対するさらなる理解を提供するためのものであって本願の一部を構成し、本願の例示的な実施例及びその説明は本願を解釈することに用いられるが、本願に対する不当な限定を構成したりするものではない。
【図面の簡単な説明】
【0013】
【
図1】
図1は本願の実施例による選択可能なビデオフレームの符号化単位の分割方法の模式図である。
【
図2】
図2は本願の実施例による選択可能なビデオフレームの符号化単位の分割方法の応用環境の模式図である。
【
図3】
図3は本願の選択可能な実施形態による選択可能なビデオフレームの符号化単位の分割方法の模式図である。
【
図4】
図4は本願の選択可能な実施形態による別の選択可能なビデオフレームの符号化単位の分割方法の模式図である。
【
図5】
図5は本願の実施例による選択可能なビデオフレームの符号化単位の分割装置の模式図である。
【
図6】
図6は本願の実施例による選択可能なビデオフレームの符号化単位の分割方法の応用場面の模式図である。
【
図7】
図7は本願の実施例による選択可能な電子装置の模式図である。
【発明を実施するための形態】
【0014】
当業者が本発明の解決手段をよりよく理解するようにするために、以下、本発明の実施例の図面を参照しながら、本発明の実施例における技術的解決手段を明瞭かつ完全に説明する。明らかなように、説明される実施例は単に本発明の一部の実施例であり、すべての実施例ではない。本発明の実施例に基づいて、当業者が創造的な努力をしない前提で想到し得るすべてのほかの実施例は、いずれも本発明の保護範囲に属する。
【0015】
なお、本発明の明細書と特許請求の範囲及び上記図面中の用語「第1」、「第2」等は類似する対象を区別することに用いられ、必ずしも特定の順序又は前後の順序を説明することに用いられるものではない。このように使用される数字は、ここで説明される本発明の実施例をここで図示又は説明された順序以外の順序で実施できるように、適宜交換可能であると理解できる。また、用語「含む」や「有する」及びそれらの任意の変形は、非排他的な包含を含むことを意図している。たとえば、一連のステップ又はユニットを含むプロセス、方法、システム、製品又は機器は、明確に列記されているそれらのステップ又はユニットには必ずしも限定されず、明確に列記されていない、又はこれらのプロセス、方法、製品又は機器に固有のほかのステップ又はユニットを含んでもよい。
【0016】
本願の実施例の一態様によれば、ビデオフレームの符号化単位の分割方法を提供し、
図1に示すように、当該方法は、以下を含む。
【0017】
S102、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定する。ここで、ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられる。
【0018】
S104、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得る。
【0019】
S106、ターゲット符号化単位に対して、ターゲット結果に対応する分割操作を実行する。
【0020】
選択可能に、本実施例では、上記ビデオフレームの符号化単位の分割方法は、
図2に示されるターゲット機器202から構成されるハードウェア環境に適用できる。
図2に示すように、ターゲット機器202は、対応関係を有するフレームタイプと符号化ユニットタイプに基づき、分割待ちのターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することに用いられる。ここで、ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられ、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得て、ターゲット符号化単位に対して、ターゲット結果に対応する分割操作を実行する。
【0021】
選択可能に、本実施例では、上記ビデオフレームの符号化単位の分割方法はフレームの符号化単位分割を行う場面に適用できるが、それに限定されない。ここで、上記ビデオフレームの符号化単位の分割方法は様々なタイプのビデオ符号化を行うことができるクライアント端末に適用できるが、それに限定されず、たとえば、上記クライアント端末は、オンライン教育アプリケーション、インスタントメッセージングクライアント端末、コミュニティスペースクライアント端末、ゲームクライアント端末、ショッピングクライアント端末、ブラウザクライアント端末、金融クライアント端末、マルチメディアクライアント端末、ビデオライブクライアント端末等を含んでもよいが、それらに限定されない。具体的には、上記マルチメディアクライアント端末でビデオ符号化を行うときにビデオリソース中のフレームに対して符号化単位分割を行う場面に適用できるが、それに限定されず、又はさらに上記ゲームクライアント端末でビデオ符号化を行うときにビデオリソース中のフレームに対して符号化単位分割を行う場面に適用でき、それによってフレームの符号化速度を向上させるが、それに限定されない。上記は単に一例であり、これに対し本実施例ではいかなる限定もしていない。
【0022】
選択可能に、本実施例では、上記ビデオフレームの符号化単位の分割方法はクライアント端末側、又は、サーバ側に適用でき、又はクライアント端末側とサーバ側との対話によって実行される。
【0023】
選択可能に、本実施例では、フレームタイプはフレームの符号化プロセスにおけるフレーム間の参照関係に応じて分割されてもよいが、それに限定されない。たとえば、
図3に示すように、フレームタイプはIフレーム、Pフレーム、Bフレーム及びbフレームを含む。ここで、Iフレームはフレーム内符号化フレームであり、このフレーム画面は完全に保留され、復号時に、本フレームデータだけで完成することができるものとして理解できる。Pフレームは前方予測符号化フレームであり、当該フレームと前のキーフレームとの差を識別し、復号時に、この前にキャッシュされた画面に本フレームで定義された差を重ね合わせて最終画面を生成する必要があり、換言すれば、Pフレームは完全な画面データは有さず、具体的には、前のキーフレームの画面との差となるデータである。Bフレームは双方向予測補間符号化フレームであり、本フレームと前後フレームとの差を記録し、圧縮率が比較的高く、復号時に、本フレームの前のキャッシュ画面を必要とするだけでなく、本フレームの後の画面も復号することを必要とし、前後の画面に本フレームデータを重ね合わせることにより最終画面を得る。PフレームはIフレームを参照し、BフレームはPフレーム又はIフレームを参照し、bフレームはIフレーム又はPフレーム又はBフレームを参照するが、bフレームは参照フレームとして使用しない。
図3中の矢印で示されるフレームが、参照フレームである。
【0024】
選択可能に、本実施例では、分割深度は符号化単位のサイズに応じて決定できる。たとえば、ビデオ符号化プロセスにおいてフレーム内・フレーム間予測を行う場合に、
図4に示すように、最大符号化単位(LCU、Largest Code Unit)から開始し、各層を四分木にしたがって一層ごとに下へ分割し、再帰計算を行う。符号化木単位(Coding Tree Unit、CTU)ごとに、CU64×64からCU32×32へ、CU32×32からCU16×16へ、及びCU16×16からCU8×8への計3回の階層の再帰プロセスを行う。
【0025】
ここで、符号化単位のサイズは2N×2Nで表され、たとえば、上記64×64、32×32、16×16、8×8は符号化単位のサイズを表す。サイズが64×64の符号化単位の分割深度は0であり、サイズが32×32の符号化単位CUの分割深度は1であり、サイズが16×16の符号化単位CUの分割深度は2であり、サイズが8×8の符号化単位CUの分割深度は3である。
【0026】
符号化単位の分割は、また分割する層数を表現する形式を採用してもよく、たとえば、64×64の符号化単位から32×32の符号化単位は第0層であり、32×32の符号化単位から16×16の符号化単位は第1層とし、16×16の符号化単位から8×8の符号化単位は第2層とする。
【0027】
分割深度の等級付けは分割深度の値に基づいて決定されてもよい。分割深度の値が小さいほど、等級が高く、たとえば、サイズが64×64の符号化単位の分割深度は、サイズが32×32の符号化単位の分割深度よりも小さい。従って、サイズが64×64の符号化単位の分割深度の等級はサイズが32×32の符号化単位の分割深度の等級よりも高く、同様に、サイズが32×32の符号化単位の分割深度の等級はサイズが16×16の符号化単位の分割深度の等級よりも高く、サイズが16×16の符号化単位の分割深度の等級はサイズが8×8の符号化単位の分割深度の等級よりも高い。
【0028】
選択可能に、本実施例では、フレームタイプごとに、対応する符号化ユニットタイプを設定できる。以下に例を示す。誤差の累積は1つのIフレーム周期内に拡散する。PフレームはIフレームを参照し、BフレームはPフレーム又はIフレームを参照し、bフレームはIフレーム又はPフレーム又はBフレームを参照する。bフレームは参照フレームとして使用されない。上記4種のフレームタイプのうち重みは大から小へ並べると、Iフレーム>Pフレーム>Bフレーム>bフレームとなる。また、CUを最大CU64からCU32への分割において、一旦誤ると、対応するCUは後の4個のCU32からCU16への分割、及び16個のCU16からCU8への分割を行わない。同様に、CU32からCU16への分割において、一旦誤ると、対応するCUは後の4個のCU16からCU8への分割を行わず、CU16からCU8への分割において、一旦誤ると、それ自体のみに影響する。従って、CUのサイズの影響の重みは大から小へ並べるとCU64>CU32>CU16となる。
【0029】
以上の2つの特性を組み合わせて、以下の方法を採用し、異なる重みのフレームタイプに対して異なる重みの分割深度を割り当てることができる。Iフレームについて、Iフレームは一旦誤ると後のすべてのフレームに影響するため、IフレームのすべてのCUブロックに対していずれもCU64からCU8への分割を行い、Iフレームが符号化ユニットタイプには対応しないように設定するか、又はIフレームに対応する符号化ユニットタイプで指示される分割深度が0よりも低い又は3よりも高くなるように設定する。Pフレームについて、Pフレームの重みはIフレームに次いでおり、影響も非常に大きいため、Pフレームに対応する符号化ユニットタイプで指示される分割深度が2となるように設定する。Bフレームについて、その影響範囲が1個のPフレーム周期内のみであるため、Bフレームに対応する符号化ユニットタイプで指示される分割深度が1及び2となるように設定する。bフレームについては、誤差がほかのフレームに影響しないため、bフレームに対応する符号化ユニットタイプで指示される分割深度が0、1及び2となるように設定する。
【0030】
選択可能に、本実施例では、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属しない符号化単位を分割するときに、従来技術における分割方式を採用できるが、それに限定されない。たとえば、Iフレームの符号化単位の分割に対してはいずれも従来技術の分割方式を採用する。すなわち、CU64×64からCU32×32へ、CU32×32からCU16×16へ、及びCU16×16からCU8×8への計3回行われる階層の分割は、いずれも従来技術の分割方式を採用する。Pフレームの符号化単位分割プロセスについては、深度が2の符号化単位に対しては深度の高速分割を行う。深度が0及び1の符号化単位に対しては従来技術の分割方式を採用する。すなわち、従来技術を採用してCU64×64からCU32×32へ、CU32×32からCU16×16への分割を行い、次にCU16×16が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU16×16からCU8×8に分割し続ける。Bフレームの符号化単位分割プロセスについては、深度が1及び2の符号化単位に対して深度の高速分割を行い、深度が0の符号化単位に対しては従来技術の分割方式を採用する。すなわち、従来技術の分割方式を採用してCU64×64からCU32×32への分割を行い、次にCU32×32が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU32×32をCU16×16に分割し続け、次にCU16×16が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU16×16をCU8×8に分割し続ける。bフレームの符号化単位分割プロセスについては、深度が0、1及び2の符号化単位に対して深度の高速分割を行う。つまり、すべての分割プロセスはいずれも深度の高速分割を行い、CU64×64が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU64×64をCU32×32に分割し、次に、CU32×32が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU32×32をCU16×16に分割し続け、次に、CU16×16が高速分割の条件を満たすか否かを判断し、もし満たせば、その分割を停止し、もし満たさなければ、CU16×16をCU8×8に分割し続ける。
【0031】
選択可能に、本実施例では、ターゲット符号化単位の符号化単位情報は、ターゲット符号化単位の最適モード、ターゲット符号化単位の最適モードのレート歪みコスト(Rate Distortion Cost)等を含んでもよいが、それらに限定されない。
【0032】
選択可能に、本実施例では、ターゲット条件は、ターゲット符号化単位の最適モードがskipモードであること、ターゲット符号化単位の最適モードのレート歪みコストがターゲット閾値範囲内にあることを含んでもよいが、それらに限定されない。
【0033】
明らかなように、上記ステップによって、フレームに対して符号化単位分割を行うプロセスにおいては、フレームのフレームタイプ及び符号化ユニットタイプの対応関係に基づき、符号化単位に対して分割深度の高速な決定を行うか否かを決定する。上記対応関係に記載された符号化ユニットタイプに属する符号化単位に対して分割を行うときに、当該符号化単位の符号化単位情報に基づき当該符号化単位に対して分割を行うことを停止するか否かを決定し、得られたターゲット結果に基づき、後続の分割操作を実行することにより、異なるフレームタイプに対して、異なる分割深度に対しての分割を行うときに、異なる分割方式を採用することができる。また、すべての各ビデオフレームをいずれも分割するという操作も回避することにより、フレームの符号化速度を向上させる技術的効果を実現し、関連技術におけるはフレームの符号化速度が比較的低いという技術的課題を解決する。更に、異なるフレームタイプのフレームの符号化単位を分割するときの異なる状況を十分に考慮し、異なるフレームタイプのフレームに対して分割を継続するか否かの分割深度を決定することにより、符号化誤差の発生を減少させる。
【0034】
1つの選択可能な解決手段として、上記ターゲット符号化単位に対して、上記ターゲット結果に対応する分割操作を実行することは、以下を含む。
【0035】
S1、ターゲット結果が、ターゲット符号化単位がターゲット条件を満たす場合に、ターゲット符号化単位に対して分割を行うことを停止することを指示することに使用される。
【0036】
S2、ターゲット結果が、ターゲット符号化単位がターゲット条件を満たさない場合に、ターゲット符号化単位を分割することを指示することに使用される。
【0037】
選択可能に、本実施例では、ターゲット符号化単位がターゲット条件を満たす場合に、当該ターゲット結果に対応する分割操作は、ターゲット符号化単位に対して分割を行うことを停止することを含んでもよいが、それに限定されない。
【0038】
選択可能に、本実施例では、ターゲット符号化単位がターゲット条件を満たす場合に、当該ターゲット結果に対応する分割操作は、ターゲット符号化単位を分割し続けることを含んでもよいが、それに限定されない。
【0039】
1つの選択可能な解決手段として、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、分割待ちのターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定する前に、さらに以下の方式によって、上記対応関係を有するフレームタイプ及び符号化ユニットタイプを作成してもよく、具体的には、それは、以下のステップを含む。
【0040】
S1、フレームタイプを取得する。ここで、フレームタイプはフレーム符号化プロセスにおけるフレーム間の参照関係に基づき分割して得られたものである。
【0041】
S2、フレームタイプに対応する符号化ユニットタイプを取得する。
【0042】
ここで、符号化ユニットタイプはフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられ、又は、符号化ユニットタイプはフレームタイプに属するフレームを分割するときの第2深度値とターゲット深度値との間の深度関係を指示することに用いられる。
【0043】
S3、対応関係を有するフレームタイプ及び符号化ユニットタイプを保存する。
【0044】
選択可能に、本実施例では、符号化ユニットタイプは1つ又は複数の具体的な深度値(たとえば、3、2、1、0等)を指示することに用いられてもよく、又は、さらに深度関係(たとえば、最高深度値よりも低いこと、最高深度値と最低深度値との間にあること、最高深度値のみよりも低いこと等)を指示することに用いられてもよい。
【0045】
1つの選択可能な実施形態では、深度値が4種のタイプを含み、それぞれ3、2、1、0である例において、符号化ユニットタイプがフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられる場合に、対応関係を有するフレームタイプ及び符号化ユニットタイプは以下の表1に示されるものであってもよい。
【0046】
【0047】
選択可能に、本実施例では、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット符号化単位がターゲット条件を満たす場合に、ターゲット符号化単位に対して分割を行うことを停止し、ターゲット符号化単位がターゲット条件を満たさない場合に、ターゲット符号化単位を分割するプロセスを、符号化単位深度高速決定プロセスと呼んでもよい。異なるフレームタイプに対して異なる符号化ユニットタイプを設定し、ターゲット符号化単位の深度を高速に決定するプロセスにおいて、フレーム間の参照関係に応じて異なるタイプのフレームに対して高速決定プロセスに入る分割深度を割り当てることにより、符号化の精度を確保するとともに、符号化速度を大幅に向上できるようにする。
【0048】
1つの選択可能な解決手段として、フレームタイプを取得することは、以下を含む。
【0049】
S1、フレームタイプを決定する。ここで、フレームタイプは第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプを含む。第1フレームタイプは符号化を行うプロセスにおいてほかのフレームを参照しないフレームタイプであり、第2フレームタイプは符号化を行うプロセスにおいて第1フレームタイプに属するフレームを参照するフレームタイプであり、第3フレームタイプは符号化を行うプロセスにおいて第1フレームタイプに属するフレーム及び第2フレームタイプに属するフレームを参照するフレームタイプであり、第4フレームタイプは符号化を行うプロセスにおいて第1フレームタイプに属するフレーム及び第3フレームタイプに属するフレームを参照する、又は、第2フレームタイプに属するフレーム及び第3フレームタイプに属するフレームを参照するフレームタイプである。
【0050】
選択可能に、本実施例では、第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプのフレーム間は以下の参照関係を有してもよいが、これらに限定されない。第2フレームタイプのフレームは第1フレームタイプのフレームを参照し、第3フレームタイプのフレームは第1フレームタイプのフレーム及び第2フレームタイプのフレームを参照し、第4フレームタイプのフレームは第1フレームタイプのフレーム及び第3フレームタイプのフレームを参照し、又は、第4フレームタイプのフレームは第2フレームタイプのフレーム及び第3フレームタイプのフレームを参照する。
【0051】
たとえば、上記第1フレームタイプのフレームはIフレームであってもよく、第2フレームタイプのフレームはPフレームであってもよく、第3フレームタイプのフレームはBフレームであってもよく、第4フレームタイプのフレームはbフレームであってもよい。
【0052】
1つの選択可能な解決手段として、上記フレームタイプに対応する符号化ユニットタイプを取得することは、以下を含む。
【0053】
S1、上記第1フレームタイプが上記符号化ユニットタイプを有しないと決定する。
【0054】
S2、上記第2フレームタイプに対応する符号化ユニットタイプが第1符号化ユニットタイプであると決定し、上記第1符号化ユニットタイプに属する符号化単位は16×16符号化単位を含む。
【0055】
S3、上記第3フレームタイプに対応する符号化ユニットタイプが第2符号化ユニットタイプであると決定し、上記第2符号化ユニットタイプに属する符号化単位は16×16符号化単位及び32×32符号化単位を含む。
【0056】
S4、上記第4フレームタイプに対応する符号化ユニットタイプが第3符号化ユニットタイプであると決定し、上記第3符号化ユニットタイプに属する符号化単位は16×16符号化単位、32×32符号化単位及び64×64符号化単位を含む。
【0057】
選択可能に、本実施例では、第1フレームタイプはIフレームであってもよく、Iフレームに対しては符号化単位の高速分割の判断を行わなくてもよい。つまり、Iフレームの各層の符号化単位をいずれも直接分割し、それを最小の符号化単位まで分割する。
【0058】
選択可能に、本実施例では、第2フレームタイプはPフレームであってもよく、Pフレームに対して16×16符号化単位のみに高速分割の判断を行うようにしてもよい。つまり、Pフレームに対して、それを64×64符号化単位から32×32符号化単位に分割し、さらに32×32符号化単位から16×16符号化単位に分割し、さらに16×16符号化単位の符号化単位情報に基づいてそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、16×16符号化単位を8×8符号化単位に分割し続ける。
【0059】
選択可能に、本実施例では、第3フレームタイプはBフレームであってもよく、Bフレームに対して32×32符号化単位及び16×16の符号化単位に高速分割の判断を行うようにしてもよい。つまり、Bフレームに対して、それを64×64符号化単位から32×32符号化単位に分割し、さらに32×32符号化単位の符号化単位情報に基づきそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、32×32符号化単位を16×16符号化単位に分割し続ける。16×16符号化単位に分割されたもの対しては、16×16符号化単位の符号化単位情報に基づきそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、16×16符号化単位を8×8符号化単位に分割し続ける。
【0060】
選択可能に、本実施例では、第4フレームタイプはbフレームであってもよく、bフレームに対して、64×64符号化単位、32×32符号化単位及び16×16符号化単位に高速分割の判断を行うようにしてもよい。つまり、bフレームに対して、64×64符号化単位の符号化単位情報に基づきそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、それを64×64符号化単位から32×32符号化単位に分割する。32×32符号化単位に分割されたものに対しては、32×32符号化単位の符号化単位情報に基づきそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、32×32符号化単位を16×16符号化単位に分割し続ける。16×16符号化単位に分割されたものに対しては、16×16符号化単位の符号化単位情報に基づきそれがターゲット条件を満たすか否かを決定し、もし満たせば、分割を停止し、もし満たさなければ、16×16符号化単位を8×8符号化単位に分割し続ける。
【0061】
1つの選択可能な解決手段として、符号化ユニットタイプはさらにフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられてもよく、この場合に、フレームタイプに対応する符号化ユニットタイプを取得することは以下を含む。
【0062】
S1、第1フレームタイプに対応する符号化ユニットタイプが第1符号化ユニットタイプであると決定する。ここで、第1符号化ユニットタイプで指示される第1深度値は第1ターゲット値であり、第1ターゲット値は空(ヌル)に設定されてもよい。
【0063】
S2、第2フレームタイプに対応する符号化ユニットタイプが第2符号化ユニットタイプであると決定する。ここで、第2符号化ユニットタイプで指示される第1深度値は第2ターゲット値であり、第2ターゲット値は最高深度値のみよりも低い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値である。
【0064】
S3、第3フレームタイプに対応する符号化ユニットタイプが第3符号化ユニットタイプであると決定する。ここで、第3符号化ユニットタイプで指示される第1深度値は第3ターゲット値であり、第3ターゲット値は最高深度値よりも低く、且つ最低深度値よりも高い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値であり、最低深度値はフレームを分割できる最大符号化単位の深度値である。
【0065】
S4、第4フレームタイプに対応する符号化ユニットタイプが第4符号化ユニットタイプであると決定する。ここで、第4符号化ユニットタイプで指示される第1深度値は第4ターゲット値であり、第4ターゲット値は最高深度値よりも低い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値である。
【0066】
選択可能に、本実施例では、ほかのフレームを参照フレームとしない第1フレームタイプのフレームについては、当該タイプのフレームはほかのタイプのフレームの参照フレームとなるため、当該タイプのフレームの重要度はより一層高い。従って第1フレームタイプのフレームに対しては、対応する符号化ユニットタイプを設定しなくてもよく、又はそれに対応する符号化ユニットタイプを、予め設定した分割深度に含まれていない分割深度を指示することに用いられるように設定してもよい。そのように設定することで当該タイプのフレームは符号化単位分割のときに符号化単位の深度の高速決定のプロセスを行わずに、直接最低深度から最高深度まで分割するようにする。
【0067】
選択可能に、本実施例では、第2フレームタイプのフレームは第1フレームタイプのフレームのみを参照フレームとし、第3フレームタイプのフレーム及び第4フレームタイプのフレームはいずれも第2フレームタイプのフレームを参照フレームとすることができる。第2フレームタイプのフレームの重要度は第1フレームタイプのフレームに次ぐため、第2フレームタイプのフレームに対して、最高分割深度の上の層のみにおいて符号化単位の深度の高速決定のプロセスを行うようにしてもよい。最高深度値のみよりも低い深度値を第2フレームタイプで指示される深度値として設定してもよい。最高深度値のみよりも低い深度値は、1つの深度値である。
【0068】
選択可能に、本実施例では、第3フレームタイプのフレームは第1フレームタイプのフレーム及び第2フレームタイプのフレームを参照フレームとし、第3フレームタイプのフレームは第4フレームタイプのフレームの参照フレームである。第3フレームタイプのフレームに対しては、最高分割深度と最低分割深度との間の各層で符号化単位の深度の高速決定のプロセスを行うようにしてもよい。最高深度値よりも低く、且つ最低深度値よりも高い深度値を第3フレームタイプで指示される深度値として設定してもよい。最高深度値よりも低く、且つ最低深度値よりも高い深度値は、複数の深度値であってもよい。
【0069】
選択可能に、本実施例では、第4フレームタイプのフレームは、第1フレームタイプのフレーム及び第3フレームタイプのフレームを参照フレームとし、又は、第2フレームタイプのフレーム及び第3フレームタイプのフレームを参照フレームとする。一方、第4フレームタイプのフレームはほかのフレームタイプのフレームを参照フレームとせず、第4フレームタイプのフレームに対しては、最高分割深度から開始し、層ごとに符号化単位の深度の高速決定のプロセスを行うようにしてもよい。最高深度値よりも低い深度値を第3フレームタイプで指示される深度値として設定してもよい。最高深度値よりも低い深度値は、複数の深度値であってもよい。
【0070】
1つの選択可能な解決手段として、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定することは、以下を含む。
【0071】
S1、ターゲットフレーム中の、ターゲット符号化ユニットタイプで指示される分割深度に適合する符号化単位を、ターゲット符号化単位として決定する。
【0072】
S2、ターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報を取得する。
【0073】
S3、符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定する。
【0074】
選択可能に、本実施例では、ターゲットフレームを分割するときに、決定されたターゲットフレームに対応するターゲット符号化ユニットタイプに基づき、当該ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を取得し、分割プロセスがターゲット符号化単位まで行われるときに、当該ターゲット符号化単位に対して符号化単位の深度の高速決定プロセスを行うようにしてもよい。そのようにすることにより取得された符号化単位情報に基づき、当該ターゲット符号化単位を分割し続けるか否かを決定する。
【0075】
選択可能に、本実施例では、取得されたターゲット符号化単位の符号化単位情報は、ターゲット符号化単位の最適モード及び最適モードのレート歪みコストを含んでもよいが、それらに限定されない。
【0076】
選択可能に、本実施例では、ターゲット条件は、ターゲット符号化単位の最適モードがskipモードであること、及び、ターゲット符号化単位の最適モードのレート歪みコストがターゲット閾値範囲内にあること等を含んでもよいが、それらに限定されない。
【0077】
選択可能に、本実施例では、上記2つのターゲット条件を同時に満たせば、ターゲット条件を満たすと決定してもよく、両方のうちの一方を満たさない場合、すなわち、上記最適モードがskipモードではない場合、又は上記レート歪みコストが上記ターゲット閾値範囲内にない場合に、上記ターゲット符号化単位が上記ターゲット条件を満たさないと決定する。
【0078】
選択可能に、本実施例では、上記ターゲット閾値範囲は予め設定されてもよく、また符号化プロセスで取得された情報に基づき決定されてもよい。
【0079】
たとえば、現在のCTUの隣接する位置(左側、上側、左上角及び右上角)にあるCTUのうち利用可能なCTUの個数、及び隣接するCTU中のskipモードで且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_skip_adjacent、samecudepth_num_skip_adjacent、samecudepth_avgcost_skip_adjacentとする。そして現在のCTU中の処理済みのCUのうちskipモードで且つCU深度が同一であるCUの個数、及びレート歪みコストの平均値を統計化し、それぞれsamecudepth_num_skip_curr、samecudepth_avgcost_skip_currとする。
【0080】
現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、もし以下のように比較してcheckがtrueであれば、現在のCU最適モードのレート歪みコストがターゲット条件を満たすと決定する。
【0081】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_skip_adjacent > 0) // 隣接するCTUが利用可能である
{
// もし現在のCTUに条件を満たすCUがなければ、隣接するCTUの平均レート歪みコストのみを取る
avgcost = samecudepth_avgcost_skip_adjacent;
if(samecudepth_num_skip_curr >0) // 現在のCTU内に、CU深度が同一であり且つskipモードであるものが含まれていれば、平均レート歪みコストは、隣接するCTUと現在のCTU中の処理済みの同一深度のCUとで重み付けする必要がある
{
avgcost = (9*samecudepth_avgcost_skip_curr + samecudepth_avgcost_skip_adjacent)/16;
}
if(bestcost <= avgcost && samecudepth_num_skip_adjacent>3.5*ctu_validnum_skip_adjacent )
{
check = true;
}
}
else // 隣接するCTUはいずれも利用不可能である
{
if(bestcost <= samecudepth_avgcost_skip_curr && samecudepth_num_skip_curr>3.5)// 現在のCTU中の処理済みの同一深度のCUの平均値、及び個数と比較する
{
check = true;
}
}
【0082】
なお、上記各方法の実施例について、説明しやすいように、それらをすべて一連の動作組合せとして記載しているが、当業者であれば、本願は説明された動作順序には限定されないと理解すべきである。本願によれば、いくつかのステップをほかの順序で又は同時に行うようにしてもよいからである。さらに、当業者であれば、明細書に説明される実施例はいずれも好適実施例に属し、係る動作及びモジュールは必ずしも本願に必須なものではないことも理解できる。
【0083】
以上のように実施形態を説明することにより、当業者は上記実施例による方法を、ソフトウェアと必須な汎用ハードウェアプラットフォームを組み合わせることで実現してもよいことを明確に理解でき、また、勿論ハードウェアによって実行してもよいが、多くの場合は前者の方がより好ましい実施形態であることを明確に理解することができる。このような理解に基づいて、本願の技術的解決手段は本質的に、又は従来技術に貢献する部分において、ソフトウェア製品の形態で具現化することができる。当該コンピュータソフトウェア製品は1つの記憶媒体(たとえば、ROM/RAM、磁気ディスク、光ディスク)に記憶され、複数の命令を含むことによって1台の端末機器(携帯電話、コンピュータ、サーバ、又はネットワーク機器等であってもよい)に本願の各実施例に記載の方法を実行させることに用いられる。
【0084】
本願の実施例の別の態様によれば、さらに上記ビデオフレームの符号化単位の分割方法を実施するためのビデオフレームの符号化単位の分割装置を提供し、
図5に示すように、当該装置は、第1決定モジュール52、第2決定モジュール54、及び処理モジュール56を含み、
1)第1決定モジュール52は、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定することに用いられる。ここで、ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられ、
2)第2決定モジュール54は、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得ることに用いられ、
3)処理モジュール56は、上記ターゲット符号化単位に対して、ターゲット結果に対応する分割操作を実行することに用いられる。
【0085】
1つの選択可能な解決手段として、処理モジュールは、第1処理ユニット、及び/又は、第2処理ユニットを含み、
第1処理ユニットは、ターゲット結果が、ターゲット符号化単位がターゲット条件を満たすことを指示することに用いられる場合に、ターゲット符号化単位に対して分割を行うことを停止することに用いられ、
第2処理ユニットは、ターゲット結果が、ターゲット符号化単位がターゲット条件を満たさないことを指示することに用いられる場合に、ターゲット符号化単位を分割することに用いられる。
【0086】
選択可能に、本実施例では、ターゲット符号化単位がターゲット条件を満たす場合に、当該ターゲット結果に対応する分割操作は、ターゲット符号化単位に対して分割を行うことを停止することを含んでもよいが、それに限定されない。
【0087】
選択可能に、本実施例では、ターゲット符号化単位がターゲット条件を満たす場合に、当該ターゲット結果に対応する分割操作は、ターゲット符号化単位を分割し続けることを含んでもよいが、それに限定されない。
【0088】
1つの選択可能な解決手段として、上記装置はさらに第1取得モジュール、第2取得モジュール、及び記憶モジュールを含み、
1)第1取得モジュールは、フレームタイプを取得することに用いられる。ここで、フレームタイプはフレーム符号化プロセスにおけるフレーム間の参照関係に基づき分割して得られたものであり、
2)第2取得モジュールは、フレームタイプに対応する符号化ユニットタイプを取得することに用いられる。
ここで、符号化ユニットタイプはフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられ、又は、符号化ユニットタイプはフレームタイプに属するフレームを分割するときの第2深度値とターゲット深度値との間の深度関係を指示することに用いられ、
3)記憶モジュールは、対応関係を有するフレームタイプ及び符号化ユニットタイプを記憶することに用いられる。
【0089】
選択可能に、本実施例では、符号化ユニットタイプは1つ又は複数の具体的な深度値(たとえば、3、2、1、0等)を指示することに用いられてもよく、又は、さらに深度関係(たとえば、最高深度値よりも低いこと、最高深度値と最低深度値との間にあること、最高深度値のみよりも低いこと等)を指示することに用いられてもよい。
【0090】
1つの選択可能な実施形態では、深度値が4種のタイプを含み、それぞれ3、2、1、0である例において、符号化ユニットタイプはフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられる場合に、対応関係を有するフレームタイプ及び符号化ユニットタイプは表1に示されるものであってもよい。
【0091】
1つの選択可能な解決手段として、第1取得モジュールは、以下に用いられる。
1)フレームタイプを決定することに用いられ、フレームタイプは第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプを含み、第1フレームタイプのフレームはフレーム符号化プロセスにおいてほかのフレームを参照しないフレームタイプであり、第2フレームタイプのフレームはフレーム符号化プロセスにおいて第1フレームタイプに属するフレームを参照するフレームタイプであり、第3フレームタイプのフレームはフレーム符号化プロセスにおいて第1フレームタイプに属するフレーム及び第2フレームタイプに属するフレームを参照するフレームタイプであり、第4フレームタイプのフレームはフレーム符号化プロセスにおいて第1フレームタイプに属するフレーム及び第3フレームタイプに属するフレームを参照する、又は、第2フレームタイプに属するフレーム及び第3フレームタイプに属するフレームを参照するフレームタイプである。
【0092】
選択可能に、本実施例では、第1フレームタイプ、第2フレームタイプ、第3フレームタイプ及び第4フレームタイプのフレーム間は以下の参照関係を有してもよいが、これらに限定されない。第2フレームタイプのフレームは第1フレームタイプのフレームを参照する。第3フレームタイプのフレームは第1フレームタイプのフレーム及び第2フレームタイプのフレームを参照する。第4フレームタイプのフレームは第1フレームタイプのフレーム及び第3フレームタイプのフレームを参照し、又は、第4フレームタイプのフレームは第2フレームタイプのフレーム及び第3フレームタイプのフレームを参照する。
【0093】
たとえば、上記第1フレームタイプのフレームはIフレームであってもよく、第2フレームタイプのフレームはPフレームであってもよく、第3フレームタイプのフレームはBフレームであってもよく、第4フレームタイプのフレームはbフレームであってもよい。
【0094】
1つの選択可能な解決手段として、第2取得モジュールは第1決定ユニット、第2決定ユニット、第3決定ユニット、及び第4決定ユニットを含み、
第1決定ユニットは、上記第1フレームタイプが上記符号化ユニットタイプを有しないと決定することに用いられ、
第2決定ユニットは、上記第2フレームタイプに対応する上記符号化ユニットタイプが第1符号化ユニットタイプであると決定することに用いられ、ここで、上記第1符号化ユニットタイプの符号化単位は16×16符号化単位を含み、
第3決定ユニットは、上記第3フレームタイプに対応する上記符号化ユニットタイプが第2符号化ユニットタイプであると決定することに用いられ、ここで、上記第2符号化ユニットタイプの符号化単位は16×16符号化単位及び32×32符号化単位を含み、
第4決定ユニットは、上記第4フレームタイプに対応する上記符号化ユニットタイプが第3符号化ユニットタイプであると決定することに用いられ、ここで、上記第3符号化ユニットタイプの符号化単位は16×16符号化単位、32×32符号化単位及び64×64符号化単位を含む。
【0095】
1つの選択可能な解決手段として、符号化ユニットタイプはさらにフレームタイプに属するフレームを分割するときに分割深度が第1深度値であることを指示することに用いられてもよい。この場合、第2取得モジュールは第5決定ユニット、第6決定ユニット、第7決定ユニット、及び第8決定ユニットを含む。
1)第5決定ユニットは、第1フレームタイプに対応する符号化ユニットタイプが第1符号化ユニットタイプであると決定することに用いられる。ここで、第1符号化ユニットタイプで指示される第1深度値は第1ターゲット値であり、第1ターゲット値は最低深度値よりも低い又は最高深度値よりも高い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値であり、最低深度値はフレームの深度値である。
2)第6決定ユニットは、第2フレームタイプに対応する符号化ユニットタイプが第2符号化ユニットタイプであると決定することに用いられる。ここで、第2符号化ユニットタイプで指示される第1深度値は第2ターゲット値であり、第2ターゲット値は最高深度値のみよりも低い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値である。
3)第7決定ユニットは、第3フレームタイプに対応する符号化ユニットタイプが第3符号化ユニットタイプであると決定することに用いられる。ここで、第3符号化ユニットタイプで指示される第1深度値は第3ターゲット値であり、第3ターゲット値は最高深度値よりも低く、且つ最低深度値よりも高い深度値であり、最高深度値はフレームを分割できる最小符号化単位の深度値であり、最低深度値はフレームの深度値である。
4)第8決定ユニットは、第4フレームタイプに対応する符号化ユニットタイプが第4符号化ユニットタイプであると決定することに用いられる。
【0096】
1つの選択可能な解決手段として、第2決定モジュールは第9決定ユニット、取得ユニット、及び第10決定ユニットを含む。
1)第9決定ユニットは、ターゲットフレーム中の、ターゲット符号化ユニットタイプで指示される分割深度に適合する符号化単位を、ターゲット符号化単位として決定することに用いられる。
2)取得ユニットは、ターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報を取得することに用いられる。
3)第10決定ユニットは、符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定することに用いられる。
【0097】
1つの選択可能な解決手段として、取得ユニットは、ターゲット符号化単位の最適モード及び最適モードのレート歪みコストを取得することに用いられる。
第10決定ユニットは、最適モードがskipモードであり、且つレート歪みコストがターゲット閾値範囲内にある場合に、ターゲット符号化単位がターゲット条件を満たすと決定し、及び/又は、最適モードがskipモードではない、若しくは、レート歪みコストがターゲット閾値範囲内にない場合に、ターゲット符号化単位がターゲット条件を満たさないと決定することに用いられる。
【0098】
本願の実施例の応用環境は上記実施例の応用環境を参照できるが、それに限定されず、本実施例ではそれについてさらに詳細に説明しない。本願の実施例は上記リアルタイム通信の接続方法を実施するための1つの選択可能な具体的な応用例を提供する。
【0099】
1つの選択可能な実施例として、上記ビデオフレームの符号化単位の分割方法は
図6に示されるフレーム符号化の場面に適用できるが、それに限定されない。ビデオ符号化における予測プロセスを完全に正確にすることは不可能であり、一旦予測が誤ると、必ず圧縮比損失を引き起こし、且つ誤差の累積によって、徐々に拡大する。CUの深度の誤差の累積は主に2つの要素に関し、1つは現在のフレームのフレームタイプであり、誤差の累積は1つのIフレーム周期内に拡散する。PフレームはIフレームを参照し、BフレームはPフレーム又はIフレームを参照し、bフレームはIフレーム又はPフレーム又はBフレームを参照する。bフレームは参照フレームとして使用されない。4種のフレームタイプのうち重みは大から小へ並べると、Iフレーム>Pフレーム>Bフレーム>bフレームである。また、もう1つはCUのサイズに関し、CUの最大CU64からCU32への分割において、一旦誤ると、対応するCUは後の4個のCU32からCU16への分割、及び16個のCU16からCU8への分割を行わない。同様に、CU32からCU16への分割において、一旦誤ると、対応するCUは後の4個のCU16からCU8への分割を行わない。CU16からCU8への分割において、一旦誤ると、それ自体のみに影響する。従って、CUのサイズの影響の重みは大から小へ並べると、CU64>CU32>CU16となる。本場面では、ビデオフレームの符号化単位分割プロセスについて、上記2つの特性に合わせて、異なるCUのサイズ及び現在のフレームのフレームタイプに応じて個別処理する。
【0100】
Iフレームについて、Iフレームは一旦誤ると後のすべてのフレームに影響するため、IフレームのすべてのCUブロックに対していずれもCUの深度の高速決定を行わない。Pフレームについて、Pフレームの重みはIフレームに次いでおり、影響も非常に大きいため、Pフレームに対してCU16からCU8への層のみで深度の高速決定を行う。Bフレームについて、その影響範囲が1つのPフレーム周期内のみであり、CU32からCU16への層、CU16からCU8への層という2層で高速決定を行うようにしてもよい。bフレームについて、誤差がほかのフレームに影響しないため、すべての層においていずれも高速決定を行う。
【0101】
選択可能に、本場面では、深度の高速決定プロセスは、CUに残差があるか否か、及び周辺CTUの同一深度の残差なしのブロックの個数、及び平均レート歪みコストと現在のCU最適モードでのレート歪みコストに基づき判断を行い、また、現在のCUがskipモードであるか否か、及び周辺CTUの同一深度のskipモードでのブロックの個数、及び平均レート歪みコストと現在のCU最適モードでのレート歪みコストに基づき、分割し続けるか否かを判断する。
【0102】
1つのフレームをエンコーダ(符号化器)に送り、まず、フレーム内又はフレーム間予測を行った後、予測値を得て、予測値と入力データを減算して残差を得る。次に、離散コサイン変換(Discrete Cosine Transform、DCT)及び量子化を行って残差係数を得て、次に、エントロピー符号化モジュールに送りストリームを出力する。同時に、残差係数に対して逆量子化・逆変換を行って再構成画像の残差値を得て、さらにフレーム内又はフレーム間の予測値と加算して、それにより再構成画像を得て、再構成画像をさらにループ内フィルタリングした後、参照フレームキューに入れ、次のフレームの参照画像とし、それによりフレームごとに後へ符号化していく。ここで、フレーム内・フレーム間予測のときに、最大符号化単位(LCU、Largest Code Unit)から開始し、各層を四分木にしたがって一層ごとに下へ分割し、再帰計算を行う。CTUごとに、CU64×64からCU32×32へ、CU32×32からCU16×16へ、及びCU16×16からCU8×8への計3回の階層の再帰プロセスを行い、次に層ごとに比較し、最適モードのCU分割状況を選択する。
【0103】
本場面では、現在のCUの周辺CTUの情報、現在のフレームが参照フレームとして使用されるか否か、又は参照フレームとして使用される重みであるか否か、計算された現在のCUの最適情報を利用し、異なるサイズのCUに応じて、異なる戦略を採用して、現在の符号化単位の分割状況を予測する。このようにして符号化単位深度の高速選択を実現し、更に符号化の複雑さを低減させ、符号化速度を向上させている。
【0104】
本場面では、
図6に示すように、フレームを符号化するときに、サブブロックSubCUを再帰的に繰り上げて予測単位(Predict Unit、PU)2N×2Nの後に配置することがある。符号化単位の深度の高速決定プロセスは、現在のCUが4個のサブブロック分割を行うか否かを判断するステップで実行される。すなわち、現在のCUの深度を分割し続けるか否かを判断するときに、PU merge及びskip計算、及びPU 2N×2Nの予測が既に行われている。以下に言及する最適モードはPU 2N×2Nフレーム間予測を行い、且つ最適化された最適モードである。
【0105】
符号化単位の深度の高速決定のプロセスでは、Iフレームに対しては判断を行わず、元々のCU64からCU32へ、CU32からCU16へ、CU16からCU8へ層ごとに判断することを採用する。
【0106】
Pフレームに対して、CU16からCU8への分割深度のときの判断のみを行う。判断プロセスは以下のステップを含む。
【0107】
ステップ1、現在のCTUの隣接する位置の左側、上側、左上角及び右上角にあるCTUのうち利用可能なCTUの個数、及び隣接するCTU中のskipモードで且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_skip_adjacent、 samecudepth_num_skip_adjacent、 samecudepth_avgcost_skip_adjacentとし、
ステップ2、現在のCTU中の処理済みのCUのうちskipモードで且つCU深度が同一であるCUの個数、及びレート歪みコストの平均値を統計化し、それぞれsamecudepth_num_skip_curr、 samecudepth_avgcost_skip_currとし、
ステップ3、以下のすべての条件を満たす場合に、現在のCUは4個のサブブロック分割を行わず、そうでない場合に、4個のサブブロック分割を行う。
【0108】
条件1:現在のCU最適モードはskipモードである。
条件2:現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、比較の結果、checkがtrueである。比較プロセスは以下の通りである。
【0109】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_skip_adjacent > 0) // 隣接するCTUが利用可能である
{
// もし現在のCTUに条件を満たすCUがなければ、隣接するCTUの平均レート歪みコストのみを取る
avgcost = samecudepth_avgcost_skip_adjacent;
if(samecudepth_num_skip_curr >0) // 現在のCTU内に、CU深度が同一であり且つskipモードであるものが含まれていれば、平均レート歪みコストは、隣接するCTUと現在のCTU中の処理済みの同一深度のCUとで重み付けする必要がある
{
avgcost=(9*samecudepth_avgcost_skip_curr+samecudepth_avgcost_skip_adjacent)/16;
}
if(bestcost<=avgcost&&samecudepth_num_skip_adjacent>3.5*ctu_validnum_skip_adjacent )
{
check = true;
}
}
else // 隣接するCTUはいずれも利用不可能である
{
if(bestcost<=samecudepth_avgcost_skip_curr&&samecudepth_num_skip_curr>3.5)// 現在のCTU中の処理済みの同一深度のCUの平均値、及び個数と比較する
{
check = true;
}
}
【0110】
Bフレームについて、その影響範囲は1つのPフレーム周期内であり、CU32からCU16へ及びCU16からCU8への分割深度のときの判断を行うことができる。CTU32からCU16への分割深度のときの判断について、採用する方法は係数を3.5から1.5に変更する以外、その他はPフレームの方式と同様であり、ここでは重複説明を省略する。
【0111】
CTU16からCTU8への分割深度のときの判断に対応するように、方法はCTU32からCU16への分割深度のときの判断と類似しており、相違点としては、統計化情報は量子化後の残差係数が0であることを満たす必要があり、判断プロセスは以下のステップを含む。
【0112】
ステップ1、現在のCTUの隣接する位置の左側、上側、左上角及び右上角にあるCTUのうち利用可能なCTUの個数、及び隣接するCTU中の量子化後の残差係数が0で且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_cbf_adjacent、 samecudepth_num_cbf_adjacent、 samecudepth_avgcost cbf_adjacentとし、
ステップ2、現在のCTU中の処理済みのCUのうちskipモードで且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれsamecudepth_num_cbf_curr、 samecudepth_avgcost_cbf_currとし、
ステップ3、以下のすべての条件を満たす場合に、現在のCUが4個のサブブロック分割を行わず、そうでない場合に、4個のサブブロック分割を行う。
【0113】
条件1:現在のCU最適モードはskipモードである。
条件2:現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、比較の結果、checkがtrueである。比較プロセスは以下の通りである。
【0114】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_cbf_adjacent > 0) // 隣接するCTUが利用可能である
{
//もし現在のCTUに条件を満たすCUがなければ、隣接するCTUの平均レート歪みコストのみを取る
avgcost = samecudepth_avgcost_cbf_adjacent;
if(samecudepth_num_cbf_curr >0) //現在のCTU内に、CU深度が同一であり且つ量子化後の残差係数が0であるものが含まれていれば、平均レート歪みコストは、隣接するCTUと現在のCTU中の処理済みの同一深度のCUとで重み付けする必要がある
{
avgcost = (9*samecudepth_avgcost_cbf_curr + samecudepth_avgcost_cbf_adjacent)/16;
}
if(bestcost <= avgcost && samecudepth_num_cbf_adjacent>3.5*ctu_validnum_cbf_adjacent )
{
check = true;
}
}
else // 隣接するCTUはいずれも利用不可能である
{
if(bestcost <= samecudepth_avgcost_cbf_curr && samecudepth_num_cbf_curr>3.5)// 現在のCTU中の処理済みの同一深度のCUの平均値、及び個数と比較する
{
check = true;
}
}
【0115】
なお、もしもskipモードであれば、必ず量子化後の残差係数が0であることを満たすが、量子化後の残差係数が0であることは、必ずしもskipモードであるということではない。
【0116】
bフレームについて、bフレームは参照フレームとして使用せず、それ自身の損失がほかのフレームに影響しないため、すべての層に対していずれも符号化単位の深度の高速決定のプロセスを行う。
【0117】
CU64からCU32への高速決定(skipに基づき決定され、且つ個数に制限される)判断プロセスは以下のステップを含む。
【0118】
ステップ1、現在のCTUの隣接する位置の左側、上側、左上角及び右上角にあるCTUのうち利用可能なCTUの個数、及び隣接するCTU中のskipモードで、且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_skip_adjacent、 samecudepth_num_skip_adjacent、 samecudepth_avgcost_skip_adjacentとし、
ステップ2、以下のすべての条件を満たす場合に、現在のCUが4個のサブブロック分割を行わず、そうでない場合に、4個のサブブロック分割を行う。
【0119】
条件1:現在のCU最適モードはskipモードである。
条件2:現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、比較の結果、checkがtrueである。比較プロセスは以下の通りである。
【0120】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_skip_adjacent > 0 && bestcost <= samecudepth_avgcost_skip_adjacent && samecudepth_num_skip_adjacent>0.35*ctu_validnum_skip_adjacent )//
{
check = true;
}
}
【0121】
CU32からCU16への高速決定(skipモードに基づき決定されるが、個数に制限されない)判断プロセスは以下のステップを含む。
【0122】
ステップ1、現在のCTUの隣接する位置の左側、上側、左上角及び右上角にあるCTUのうち利用可能なCTUの個数、及び隣接するCTU中のskipモードで、且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_skip_adjacent、 samecudepth_num_skip_adjacent、 samecudepth_avgcost_skip_adjacentとし、
ステップ2、現在のCTU中の処理済みのCUのうちskipモードで且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれsamecudepth_num_skip_curr、 samecudepth_avgcost_skip_currとし、
ステップ3、以下のすべての条件を満たす場合に、現在のCUが4個のサブブロック分割を行わず、そうでない場合に、4個のサブブロック分割を行う。
【0123】
条件1:現在のCU最適モードはskipモードである。
条件2:現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、比較の結果、checkがtrueである。比較プロセスは以下の通りである。
【0124】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_skip_adjacent > 0) // 隣接するCTUが利用可能である
{
// もし現在のCTUに条件を満たすCUがなければ、隣接するCTUのものを直接取る
avgcost = samecudepth_avgcost_skip_adjacent;
if(samecudepth_num_skip_curr >0) //現在のCTU内に、CU深度が同一であり且つskipモードであるものが含まれていれば、平均レート歪みコストは、隣接するCTUと現在のCTU中の処理済みの同一深度のCUとで重み付けする必要がある
{
avgcost = (9*samecudepth_avgcost_skip_curr + samecudepth_avgcost_skip_adjacent)/16;
}
if(bestcost <= avgcost )
{
check = true;
}
}
else // 隣接するCTUはいずれも利用不可能である
{
if(bestcost <= samecudepth_avgcost_skip_curr)// 現在のCTU中の処理済みの同一深度のCUの平均値と比較する
{
check = true;
}
}
【0125】
CU16からCU8への高速決定(量子化後の残差係数に基づき決定されるが、個数に制限されない)判断プロセスは以下のステップを含む。
【0126】
Bフレーム中のCU16からCU8と類似するが、個数に制限されず、すなわち、以下の通りである。
【0127】
ステップ1、現在のCTUの隣接する位置の左側、上側、左上角及び右上角にあるCTUのうち利用可能なCTUの数、及び隣接するCTU中の量子化後の残差係数が0で且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれctu_validnum_cbf_adjacent、 samecudepth_num_cbf_adjacent、 samecudepth_avgcost cbf_adjacentとし、
ステップ2、現在のCTU中の処理済みのCUの量子化後の残差係数が0で且つ同一のCU深度を有するものの個数、及びレート歪みコストの平均値を統計化し、それぞれsamecudepth_num_cbf_curr、 samecudepth_avgcost_cbf _ currとし、
ステップ3、以下のすべての条件を満たす場合に、現在のCUが4個のサブブロック分割を行わず、そうでない場合に、4個のサブブロック分割を行う。
【0128】
条件1:現在のCU最適モードはskipモードである。
条件2:現在のCU最適モードのレート歪みコストをbestcostとし、初期checkをfalseとし、比較の結果、checkがtrueである。比較プロセスは以下の通りである。
【0129】
check = false; // デフォルトでは4個のサブブロック分割を行う必要がある
if(ctu_validnum_cbf_adjacent > 0) // 隣接するCTUが利用可能である
{
// もし現在のCTUに条件を満たすCUがなければ、隣接するCTUのものを直接取る
avgcost = samecudepth_avgcost_cbf_adjacent;
if(samecudepth_num_cbf_curr >0) // 現在のCTU内に、CUの量子化後のパラメータ係数が0で且つCU深度が同一であるCUが含まれていれば、平均レート歪みコストは、隣接するCTUと現在のCTU中の処理済みの同一深度のCUとで重み付けする必要がある
{
avgcost = (9*samecudepth_avgcost_cbf_curr + samecudepth_avgcost_cbf_adjacent)/16;
}
if(bestcost <= avgcost )
{
check = true;
}
}
else // 隣接するCTUはいずれも利用不可能である
{
if(bestcost <= samecudepth_avgcost_cbf_curr)// 現在のCTU中の処理済みの同一深度のCUの平均値、及び個数と比較する
{
check = true;
}
}
【0130】
本場面で提供される方式によって、符号化速度を大幅に向上させることができる。CU深度が32であり4個のサブブロック分割を行わない場合のように、対応するCUの4個のサブCU(CUのサイズは16である)、及び各CU16に含まれる4個のサブCU(CUのサイズは8である)はいずれもPUの各種の計算を行う必要がなく、計算量を大幅に減少させることができる。
【0131】
本願の実施例のさらに別の態様によれば、さらに上記ビデオフレームの符号化単位の分割方法を実施するための電子装置を提供する。
図7に示すように、当該電子装置は、1つ又は複数の(図中では1つのみを示す)プロセッサ702、メモリ704、センサ706、エンコーダ708及び伝送装置710を含み、当該メモリにコンピュータプログラムが記憶されており、当該プロセッサは、コンピュータプログラムによって上記いずれか一項に記載の方法の実施例のステップを実行するように構成される。
【0132】
選択可能に、本実施例では、上記電子装置はコンピュータネットワークの複数のネットワーク機器のうちの、少なくとも1つネットワーク機器に位置してもよい。
【0133】
選択可能に、本実施例では、上記プロセッサは、コンピュータプログラムによって以下のステップを実行するように構成されてもよい。
【0134】
S1、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定する。ここで、ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられる。
S2、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定する。
S3、ターゲット符号化単位に対して、ターゲット結果に対応する分割操作を実行する。
【0135】
選択可能に、当業者であれば、
図7に示される構造は単に例示的なものであり、電子装置はスマートフォン(たとえば、Android携帯電話、iOS携帯電話等)、タブレットPC、パームトップパソコン及びモバイルインターネットデバイス(Mobile Internet Devices、MID)、PAD等の端末機器であってもよいと理解できる。
図7は上記電子装置の構造に対する限定を構成しない。たとえば、電子装置はさらに
図7に示されるものよりも多い又は少ない構成部材(たとえば、ネットワークインタフェース、表示装置等)を含み、又は
図7に示されるものと異なる構成を有するようにしてもよい。
【0136】
ここで、メモリ704はソフトウェアプログラム及びモジュール、たとえば、本願の実施例におけるビデオフレームの符号化単位の分割方法及び装置に対応するプログラム命令/モジュールを記憶することに用いられてもよく、プロセッサ702はメモリ704内に記憶されたソフトウェアプログラム及びモジュールを演算することで、各種の機能アプリケーション及びデータ処理を実行し、すなわち上記のターゲットする構成部材の制御方法を実現する。メモリ704は高速ランダムアクセスメモリを含んでもよく、さらに不揮発性メモリや、たとえば1つ又は複数の磁気記憶装置、フラッシュメモリ、又はほかの不揮発性固体メモリを含んでもよい。いくつかの例では、メモリ704は更にプロセッサ702に対して遠隔設置されるメモリを含んでもよく、これらの遠隔メモリはネットワークによって端末に接続され得る。上記ネットワークの例はインターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワーク及びそれらの組み合わせを含むが、それに制限されない。
【0137】
上記伝送装置710は1つのネットワークを経由してデータを受信又は送信することに用いられる。上記ネットワークの具体例は有線ネットワーク及び無線ネットワークを含んでもよい。一例では、伝送装置710は1つのネットワークインタフェースコントローラ(Network Interface Controller、NIC)を含み、それはケーブルを介してほかのネットワーク機器及びルータに結合され、それによりインターネット又はローカルエリアネットワークと通信可能である。一例では、伝送装置710は無線周波数(Radio Frequency、RF)モジュールであり、それは無線方式でインターネットと通信することに用いられる。
【0138】
ここで、具体的には、メモリ704はアプリケーションプログラムを記憶することに用いられる。
【0139】
本願の実施例はさらにコンピュータプログラムが記憶された記憶媒体を提供し、当該コンピュータプログラムは、演算のときに、上記いずれか一項に記載の方法の実施例のステップを実行するように構成される。
【0140】
選択可能に、本実施例では、上記記憶媒体は、以下のステップを実行するためのコンピュータプログラムを記憶するように構成されてもよい。
【0141】
S1、対応関係を有するフレームタイプ及び符号化ユニットタイプに基づき、ターゲットフレームが属するターゲットフレームタイプに対応するターゲット符号化ユニットタイプを決定する。ここで、ターゲット符号化ユニットタイプはターゲットフレームを分割するときの分割深度を指示することに用いられ、
S2、ターゲットフレーム中の、ターゲット符号化ユニットタイプに属するターゲット符号化単位を分割するときに、ターゲット符号化単位の符号化単位情報に基づきターゲット符号化単位がターゲット条件を満たすか否かを決定し、ターゲット結果を得て、
S3、ターゲット符号化単位に対して、ターゲット結果に対応する分割操作を実行する。
【0142】
選択可能に、記憶媒体はさらに、上記実施例の方法に含まれるステップを実行するためのコンピュータプログラムを記憶するように構成されてもよいが、本実施例ではそれについてさらに詳細に説明しない。
【0143】
本願の実施例はさらに、命令を含むコンピュータプログラムを提供し、コンピュータによって演算されるときに、上記コンピュータに本願の上記ビデオフレームの符号化単位の分割方法を実行させることができる。
【0144】
選択可能に、本実施例では、上記実施例の各種の方法のすべて又は一部のステップがプログラムが端末機器に関するハードウェアに命令を出すことで完了でき、当該プログラムはコンピュータ読み取り可能な記憶媒体に記憶されてもよく、記憶媒体はフラッシュドライブ、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスク等を含んでもよいと、当業者であれば理解することができる。
【0145】
上記本願の実施例の番号は単に説明用のものであり、実施例の品質を示すものではない。
【0146】
上記実施例における集積されたユニットは、ソフトウェア機能ユニットの形態で実現され、且つ独立した製品として販売又は使用される場合には、上記コンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づき、本願の技術的解決手段は、本質的、若しくは従来技術に貢献する部分において、又は当該技術的解決手段のすべて、若しくは一部はソフトウェア製品の形態で実施されてもよい。ここで、当該コンピュータソフトウェア製品は記憶媒体に記憶され、複数の命令を含み、1台又は複数台のコンピュータ装置(パーソナルコンピュータ、サーバ又はネットワーク機器等であってもよい)に本願の各実施例の上記方法のすべて又は一部のステップを実行させることに用いられてもよい。
【0147】
本願の上記実施例では、各実施例についての説明はそれぞれの重点に置かれて行われており、ある実施例において詳細に説明されていない部分は、ほかの実施例の関連説明を参照することができる。
【0148】
本願により提供されるいくつかの実施例では、開示されているクライアント端末は、ほかの形態で実現できると理解すべきである。ここで、上記において説明される装置の実施例は単に例示的なものであり、たとえば、上記単位の分割は、単に1種の論理機能の分割であり、実際に実現する際には別の分割方式を採用してもよい。たとえば、複数のユニット又はユニットを別のシステムと結合又は集積してもよく、又はいくつかの特徴を無視したり実行しなかったりしてもよい。また、表示又は検討された相互の結合又は直接結合又は通信接続はいくつかのインタフェース、ユニット又はモジュールを介した間接結合又は通信接続であってもよく、電気的な、又はその他の形態としてもよい。
【0149】
上記において分離した部材として説明されたユニットは物理的に分離しているものであってもよく、物理的に分離しているものでなくてもよく、ユニットとして表示される部材は物理ユニットであってもよく物理ユニットでなくてもよい。すなわち、1つの場所に位置してもよく、複数のネットワークユニットに分散していてもよい。実際の必要に応じて、そのうちの一部又はすべてのユニットを選択して本実施例の解決手段の目的を実現することができる。
【0150】
また、本願の各実施例における各機能ユニットは1つの処理ユニットに集積されてもよく、各ユニットは別々に物理的に存在してもよく、また2つ又は2つ以上のユニットは1つのユニットに集積されてもよい。上記集積されたユニットはハードウェアの形態で実現されてもよく、ソフトウェア機能ユニットの形態で実現されてもよい。
【0151】
以上は単に本願の好適な実施形態であるが、指摘すべき点としては、当業者であれば、本願の原理を逸脱しないことを前提に、さらに若干の改良や修飾を行うことができ、これらの改良や修飾も本願の保護範囲に属するとみなされるべきである。
【符号の説明】
【0152】
52 第1決定モジュール
54 第2決定モジュール
56 処理モジュール
202 ターゲット機器
702 プロセッサ
704 メモリ
706 センサ
708 エンコーダ
710 伝送装置