【文献】
宮林 正樹他3名,TCPデータ通信との公平性を考慮した輻輳適応型レート制御によるMPEG−4動画像通信,電子情報通信学会技術研究報告,電子情報通信学会,2001年 3月 2日,vol.100, no.672,pp.193-200
(58)【調査した分野】(Int.Cl.,DB名)
前記領域は、ピクチャグループ、フレームまたはマクロブロックのうち少なくとも一つ以上を備えることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記エンコード統計情報は、前記第1階層での領域別エンコード実行過程で生成されたビット量に関する情報を含むことを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記エンコード統計情報は、前記第1階層でのエンコード処理過程で生成された領域別ビット量に関する情報、領域別に現在フレームと予測フレームとのピクセルの絶対差の和に関する情報、領域別複雑度情報のうち少なくとも2つ以上の情報を含むことを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記第1階層及び第2階層でエンコードされるビデオデータの空間的解像度が異なる場合に空間的解像度を一致させるために、アップスケーリングまたはダウンスケーリング処理されたエンコード統計情報に基づいて前記第2階層での領域別に割り当てられるターゲットビット量を定めることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記第2階層でのマクロブロック別に割り当てられるターゲットビット量は、前記第2階層のマクロブロック位置にマッチングされる第1階層のマクロブロックについてのエンコード過程で生成されたビット量に基づいて定められることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記第2階層でのマクロブロック別に割り当てられるターゲットビット量は、前記第2階層のマクロブロックにマッチングされる第1階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和に基づいて定められることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記第2階層でのマクロブロック別に割り当てられるターゲットビット量は、前記第2階層のマクロブロックにマッチングされる第1階層のマクロブロックについてのエンコード時に生成されたビット量、及び前記第2階層のマクロブロックにマッチングされる第1階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和に基づいて定められることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記第2階層のフレーム別に割り当てられるターゲットビット量は、前記第1階層での領域別複雑度情報、及び第1階層でのピクチャグループでのフレームビット占有情報のうち少なくとも一つの情報に基づいて定められることを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記エンコード処理を行う段階は、前記ターゲットビット量に基づいて量子化パラメータ値を定め、前記量子化パラメータ値を適用して、前記入力ビデオデータについての第2階層のエンコード過程での量子化処理を行うことを特徴とする請求項1に記載の多階層ビデオコーディングのためのレート制御方法。
前記領域別に割り当てられたターゲットビット量と、第2階層のエンコード過程で発生したビット量の差に連動して、領域別に割り当てられたパラメータ値を調節する方式で前記量子化パラメータ値を定めることを特徴とする請求項10に記載の多階層ビデオコーディングのためのレート制御方法。
前記ビット量決定器は、前記第2階層のマクロブロックにマッチングされる第1階層のマクロブロックについてのエンコード時に生成されたビット量に基づいて、前記第2階層でのマクロブロック別に割り当てられるターゲットビット量を定めることを特徴とする請求項15に記載のビデオエンコード装置。
前記ビット量決定器は、前記第2階層のマクロブロックにマッチングされる第1階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和に基づいて、前記第2階層でのマクロブロック別に割り当てられるターゲットビット量を定めることを特徴とする請求項15に記載のビデオエンコード装置。
前記ビット量決定器は、前記第1階層で計算された領域別複雑度情報、及び第1階層でのピクチャグループでフレームビット占有情報のうち少なくとも一つの情報に基づいて、前記第2階層のフレーム別に割り当てられるターゲットビット量を定めることを特徴とする請求項15に記載のビデオエンコード装置。
前記入力ビデオデータについての関心領域を検出し、前記検出された関心領域を示す関心領域情報を生成する関心領域検出部をさらに備え、前記第2レート制御部は、前記関心領域情報に基づいて第2階層での領域別に割り当てられる量子化パラメータ値を定めることを特徴とする請求項13に記載のビデオエンコード装置。
前記多階層エンコーダは、前記ソースビデオデータに関する関心領域情報に基づいて、前記向上階層で領域別に割り当てられる量子化パラメータ値を定めることを特徴とする請求項20に記載のビデオ信号処理システム。
【発明を実施するための形態】
【0019】
以下、添付した図面を参照して本発明の実施形態について詳細に説明する。本発明の実施形態は、当業者に本発明をさらに完全に説明するために提供されるものである。本発明は多様な変更を加えることができ、かついろいろな形態を持つことができるところ、特定実施形態を図面に例示して詳細に説明する。しかし、これは本発明を特定の開示形態について限定しようとするものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物ないし代替物を含むと理解されなければならない。各図面を説明するとき、類似した参照符号を類似した構成要素について使用する。添付した図面において、構造物の寸法は、本発明の明確性を期するために実際より拡大または縮小して示したものである。
【0020】
本出願で使用する用語は、単に特定の実施形態を説明するために使用するものであり、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なって意味しない限り、複数の表現を含む。本出願で、“含む”または“持つ”などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部分品またはこれらを組み合わせたものが存在するということを指定しようとするものであり、一つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部分品またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないと理解しなければならない。
異なって定義されない限り、技術的や科学的な用語を含んでここで使われるあらゆる用語は、当業者によって一般的に理解されるものと同じ意味を持つ。一般的に使われる予め定義されている用語は、関連技術の文脈上持つ意味と一致する意味を持つと解釈されなければならず、本出願で明らかに定義しない限り、理想的または過度に形式的な意味には解釈されない。
【0021】
図1は、本発明の一実施形態によるビデオ信号処理システム1000のブロック構成図である。
図1に示したように、ビデオ信号処理システム1000は、ソースデバイス100及び腕先デバイス200を備える。
図1で、腕先デバイス200は、説明の便宜のために単一の腕先デバイスとして表示したが、複数の腕先デバイスで構成されてもよい。
ソースデバイス100は、一つ以上のビデオソースからデジタルビデオコンテンツを獲得し、獲得されたデジタルビデオコンテンツを腕先デバイス200に送信するために、エンコード処理を行う。デジタルビデオコンテンツは、例えば、リアルタイムでキャプチャリングされることがあり、またプレキャプチャリングされてもよい。
【0022】
ソースデバイス100は、一つ以上のアンテナを用いて、通信チャネルを通じてエンコードされたビデオデータを伝達するために、周波数変調、フィルタリング処理及び増幅処理を行う送信器を備えるか、またはその送信器にカップルリングされてもよい。
ソースデバイス100は、スケーラビリティを持つように多階層エンコード機能を支援する。多階層エンコードは一例であり、スケーラブルエンコードなどが含まれる。
スケーラビリティとは、一つのビデオシーケンスを圧縮して得たストリームから、解像度とフレームレート及び画質を異ならせる多様なビデオシーケンスを復元できる特性を意味する。すなわち、一つのビデオデータを複数のビットストリームにコーディングしてチャネル特性に合わせて伝送することである。例えば、3つのビットストリームにコーディングしたならば、チャネル特性が悪い時は最低品質レベルの最初のビットストリームのみを伝送し、チャネル特性がさらに良好になれば、最初のビットストリームと、最初のビットストリームより上位品質レベルの第2のビットストリームを伝送する。そして、チャネル特性がさらに優秀になれば、品質レベルの最も高い第3のビットストリームを最初のビットストリーム及び第2のビットストリームと共に伝送する。
【0023】
そして、多階層コーディング機能を支援するソースデバイス100は、解像度が低いか、またはサイズの小さな画面で形成された基本階層(base layer)と、これより解像度が高いか、またはサイズの大きい画面で形成された向上階層(enhancement layer)とについてのエンコード処理をそれぞれ行うことができる。基本階層は、独立的に復号可能に符号化されたビットストリームであり、向上階層は、基本階層にあるビットストリームを改善するために使われるビットストリームである。例えば、向上階層で符号化されたデータは、ソースデータと基本階層で符号化されたデータとの差値を細密に符号化したものである。
【0024】
ソースデバイス100は、ビデオの解像度を調節できる空間的スケーラビリティ(spatial scalability)、ビデオの品質を調節できる品質スケーラビリティ(quality scalability)、フレームレートを調節できる時間的スケーラビリティ(temporal scalability)それぞれを支援する。そして、これらの空間的スケーラビリティ、品質スケーラビリティ、時間的スケーラビリティ(temporal scalability)を多様に組み合わせて、多階層コーディング方式でビデオデータをコーディングする。
【0025】
このように、ソースデバイス100は、多階層コーディング機能を支援するために、ソースビデオデータを基本階層及び一つ以上の向上階層にエンコードできる。ソースデバイス100は、基本階層及び向上階層の規格に好適にソースビデオデータを変形してそれぞれの階層に印加する。基本階層では、例えば、基本品質レベルを持つビデオデータをエンコード処理する。そして、一つ以上の向上階層では、基本階層より高い品質レベルを持つビデオデータをエンコード処理する。
例えば、ソースデバイス100は、ITU−T H.264/MPEG−4、Part 10 AVC標準のSVC方式によってソースビデオデータを基本階層としてエンコード処理し、向上階層では、本発明で説明する方式によってエンコード処理できる。
【0026】
本発明で提案する技術は、H.264標準に順応するデバイスについてのビデオスケーラビリティ拡張を行うように適用される。また、本発明で提案する技術は、H.264標準または他の標準であり、組職によって開発されるか、または標準団体によって定義された任意の他のビデオコーディング標準はもとより、MPEG−1及びMPEG−2、ITU−T H.263標準、SMPTE(Society of Motion Picture and Television Engineers)、HEVC(High Efficiency Video Coding)などの多様なビデオコーディング標準によって定義されたような、多様なビデオ圧縮標準及び任意の標準と共に適用される。
【0027】
腕先デバイス200は、エンコードされたビデオデータの有線または無線通信網を通じる受信を支援する。腕先デバイス200は、無線通信デバイス、例えば、携帯電話、無線電話機、無線放送システム、個人携帯情報端末(PDA)、ノート型パソコン、デスクトップコンピュータ、デジタルカメラ、デジタルレコーディングデバイス、ビデオゲームデバイス、デジタルテレビなどのデジタルビデオデータを受信してデコードできるデバイスを備える。
腕先デバイス200は、前述したような多様なビデオ圧縮標準のうち一つの標準によって動作する。
【0028】
ソースデバイス100及び腕先デバイス200は、無線または有線通信デバイスとして具現される。また、ソースデバイス100及び腕先デバイス200は、集積回路チップまたはチップセットなどの集積回路デバイスとして具現してもよい。すなわち、無線または有線通信デバイスにデジタルメディアプレーヤ、個人携帯情報端末(PDA)、携帯電話、デジタルテレビなどとデジタルビデオアプリケーションを支援する他の類型のデバイスに含まれてもよい。
【0029】
図2は、
図1に示したソースデバイス100及び腕先デバイス200についての構成を例示的に示す図である。
図2に示したように、ソースデバイス100は、ビデオソース110、ビデオエンコーダ120及び送信器130を備える。そして、腕先デバイス200は、受信器210、ビデオデコーダ220及びディスプレイデバイス230を備える。
ビデオソース110は、ビデオキャプチャーデバイスであり、例えば、ビデオカメラ、ビデオコンテンツ供給装置、カメラフォン、ビデオフォン、カメラ付き携帯電話などが含まれる。
ビデオエンコーダ120は、ビデオソース110からビデオデータを受信し、受信されたビデオデータを、基本階層ビットストリーム及び一つ以上の向上階層ビットストリームとしてエンコード処理する。ビデオエンコーダ120は、多階層エンコード機能を支援する。
【0030】
図2に示したように、ビデオエンコーダ120は、基本階層エンコーダ121、一つ以上の向上階層エンコーダ122及びフレームバッファ123を備える。
基本階層エンコーダ121及び向上階層エンコーダ122は、ビデオソース110から共通のビデオデータを受信する。
基本階層エンコーダ121は、ビデオデータを第1ビットレートにエンコードし、第1品質レベルのビデオの基本階層ビットストリームを生成する。そして、基本階層エンコーダ121は、基本階層でのエンコード結果に基づいたエンコード統計情報を生成する。例えば、エンコード統計情報は、基本階層での基準サイズ別にエンコード処理のために生成されたビット量に関する情報、基本階層のエンコード実行過程で基準サイズ別に計算される現在フレームと予測フレームとのピクセルの絶対差の和に関する情報、基本階層で計算された基準サイズに関する複雑度情報のうち一つ以上の情報が含まれる。ここで、基準サイズは、ピクチャグループ(GOP;Group of Picture)、フレーム(frame)またはマクロブロック(macroblock)サイズのうち少なくとも一つ以上を含む。
【0031】
基本階層エンコーダ121は、入力されるビデオデータを分析して関心領域情報を生成させる。関心領域情報は、基本階層エンコーダ121の外部に配された関心領域検出手段によって生成してもよい。
フレームバッファ123には、基本階層エンコーダ121でエンコード結果に基づいて生成されたエンコード統計情報が保存される。そして、基本階層エンコーダ121で生成された関心領域情報も保存される。また、H.264標準によって、向上階層エンコーダ122でエンコード処理時に用いられる基本階層エンコーダ121で生成された情報も保存される。例えば、フレームバッファ123には、基本階層エンコーダ121でエンコード処理過程で生成されたフレーム間(inter)またはフレーム内(intra)の予測情報、動き情報、レジデュアル(residual)情報が保存される。
【0032】
向上階層エンコーダ122は、基本階層エンコーダ121でエンコード処理過程で生成されたフレーム間(inter)またはフレーム内(intra)の予測情報、動き情報、レジデュアル(residual)情報を用いてエンコード処理を行うことで圧縮効率を高める。また、向上階層エンコーダ122は、基本階層エンコーダ121でエンコード結果に基づいて生成されたエンコード統計情報を用いてレート制御を行う。基本階層で生成されたエンコード統計情報を用いて向上階層でのレート制御を行う動作については、後述する。
空間的スケーラビリティは、入力されるフレームデータをアップサンプリングまたはダウンサンプリング処理により実現する。
【0033】
基本階層エンコーダ121及び向上階層エンコーダ122は、それぞれフレームのビデオブロックのイントラコーディングまたはインターコーディングを行う。
イントラコーディングは、空間的予測によってフレームまたはマクロブロック内のビデオデータでの空間的冗長を低減または除去する。イントラコーディングは、現在コーディングされているマクロブロックと同じフレーム内の一つ以上の予めエンコードされたマクロブロックに基づいて、空間的予測マクロブロックを形成する。
基本階層エンコーダ121は、イントラコーディングの例であり、現在フレームの基本階層内の一つ以上の予めエンコードされたマクロブロックのピクセル値を用いて補間を行うことで、フレーム内の一つ以上の予めエンコードされたマクロブロックに基づいて予測ブロックを生成する。
【0034】
向上階層エンコーダ122は、イントラコーディングの例であり、フレーム内の一つ以上の予めエンコードされたマクロブロックに基づいて、予測マクロブロックを生成する。向上階層エンコーダ122は、例えば、フレーム内の基本階層及び向上階層から一つ以上の予めエンコードされたマクロブロックに基づいて予測マクロブロックを生成してもよい。例えば、向上階層エンコーダ122は、基本階層から少なくとも一つの予めエンコードされたマクロブロック、及び向上階層からの少なくとも一つの予めエンコードされたマクロブロックについてのピクセル値の加重和(weighted sum)を用いて、予測マクロブロックを生成してもよい。
【0035】
次いで、インターコーディングは、時間的予測に依存してビデオシーケンスの隣接しているフレーム内の時間的冗長を低減または除去する。インターコーディングの場合、基本階層エンコーダ121及び向上階層エンコーダ122は、2つ以上の隣接しているフレーム間のマクロブロックを近くマッチングさせて動きを推定する。インター予測において、基本階層エンコーダ121及び向上階層エンコーダ122は、コーディングされたユニット内の他のフレームから、一つ以上の予めエンコードされたマクロブロックに基づいて時間的予測マクロブロックを生成できる。
【0036】
例えば、基本階層エンコーダ121は、現在のマクロブロックを一つ以上の隣接しているビデオフレーム内のマクロブロックと比べ、現在のマクロブロックに最も近くマッチングされる隣接しているフレーム内のマクロブロックを探し出す。例えば、絶対差の和(SAD;Sum of Absolute Differences)が最小値を持つ隣接しているフレーム内のマクロブロックを時間的予測マクロブロックと定める。
例えば、向上階層エンコーダ122は、現在のマクロブロックを、基本階層及び/または向上階層での一つ以上の隣接しているフレーム内のマクロブロックと比べてもよい。
【0037】
基本階層エンコーダ121及び向上階層エンコーダ122は、マクロブロックのイントラ−基盤予測またはインタ−基盤予測を行った後、元のマクロブロックから予測マクロブロックを引くことでレジデュアルマクロブロックを生成する。レジデュアルマクロブロックは、コーディングされる現在のマクロブロックと予測マクロブロックとの差を示す。
基本階層エンコーダ121及び向上階層エンコーダ122は、変換、量子化及びエントロピコーディング処理によってレジデュアルマクロブロックのビットレートを低減させる。離散コサイン変換(DCT)、整数変換、ウェーブレット変換、方向性変換または他の変換演算を含む変換技術は、ピクセル差値のセットを、周波数ドメインでピクセル差値のエネルギを示すレジデュアル変換係数に変換する。
【0038】
基本階層エンコーダ121及び向上階層エンコーダ122は、量子化パラメータQPを用いてレジデュアル変換係数を量子化処理する。量子化パラメータ値によって、ビデオデータについてのエンコード処理のために生成されるビット量が可変される。例えば、ITU−T H.264標準では、量子化パラメータQP値が大きくなれば、ビデオデータがさらに少ないビットを持つ低品質にエンコードされ、量子化パラメータQP値が小くなれば、ビデオデータがさらに多いビットを持つ高品質にエンコードされる。
基本階層エンコーダ121は、フレームまたはマクロブロック別に初期設定されたターゲットビット量と、基本階層のエントロピコーディング処理で生成されたビット量とに基づいて量子化パラメータ値を定める。
【0039】
そして、向上階層エンコーダ122は、基本階層エンコーダ121で生成されるエンコード統計情報に基づいてフレームまたはマクロブロック別にターゲットビット量を定め、ターゲットビット量と、向上階層のエントロピコーディング処理で生成されたビット量とに基づいて量子化パラメータ値を定める。
品質スケーラビリティは、レジデュアル量子化によって実現される。例えば、最小品質レベルでビデオデータをエンコードする基本階層エンコーダ121は、向上階層の係数を量子化するために、向上階層エンコーダ122によって用いられた量子化パラメータQP値よりさらに大きい量子化パラメータQP値を用いて、基本階層の係数を量子化する。
【0040】
また、向上階層エンコーダ122は、基本階層エンコーダ121で生成されるか、または基本階層エンコーダ121の外部で生成されるビデオデータに関する関心領域情報に基づいて、量子化パラメータQP値を定める。例えば、関心領域内での量子化パラメータQP値を、非関心領域内の量子化パラメータQP値に比べて相対的に小さな値に定める。
基本階層エンコーダ121及び向上階層エンコーダ122は、2次元レジデュアルマクロブロックをスキャニングして係数の1次元ベクトルを生成し、係数ベクトルをエントロピコーディングしてレジデュアル係数をさらに圧縮する。エントロピコーディングは、例えば、可変長コーティング(VLC)、算術コーディング、固定長コーディング、CAVLC(Context−Adaptive VLC)、CABAC(Context−Adaptive Binary Arithmetic Coding)、または他のエントロピコーディング技術を含んでもよい。
【0041】
基本階層エンコーダ121及び向上階層エンコーダ122は、単一のエンコードパスプロセスまたは複数のエンコードパスプロセスを用いて係数ベクトルをエンコードする。
基本階層エンコーダ121は、例えば、係数ベクトルの最初から始めて、ノンゼロ(non−zero)係数それぞれを単一のエンコードパスで一つずつエンコードする。
基本階層エンコーダ121は、ラン・レングスそれぞれを個別的にエンコードするためにVLCテーブルを選択する。基本階層エンコーダ121は、ラン・シンボルの和及びこれまでコーディングされたランの和に基づいて、現在のラン値をエンコードするためにVLCテーブルを選択する。例えば、係数ベクトルが8のランの和を持ち、エンコードされた最後のノンゼロ係数前にエンコードされたランが6ならば、すべての残りのランは0、1または2でなければならない。可能なラン長は、それぞれの付加的なランがエンコードされるにつれて段々短くなるため、基本階層エンコーダ30は、効率的なVLCテーブルを選択してランを示すのに用いられるビットの数を低減させる。
【0042】
向上階層エンコーダ122は、向上階層の量子化されたレジデュアル変換係数をエンコードする。向上階層エンコーダ122は、基本階層のレジデュアル係数とは異なる量子化されたレジデュアル係数を生成する。向上階層の量子化されたレジデュアル係数は、量子化中に基本階層の量子化パラメータQP値とは異なる量子化パラメータQP値を用い、基本階層の量子化されたレジデュアル係数と異なる。
向上階層エンコーダ122は、基本階層のエンコード結果に基づいたエンコード統計情報を用いて、基準サイズ別に割り当てられるターゲットビット量を割り当てる方式でレートを制御することで、向上階層でのエンコード中に係数ベクトルの量子化レジデュアル係数のうち一つ以上を廃棄してもよい。
【0043】
向上階層エンコーダ122は、係数ベクトルの最初から始めて、ノンゼロ係数それぞれを単一のエンコードパスで一つずつエンコードする。
ソースデバイス100は、このようにビデオエンコーダ120でエンコードされたビデオデータを、送信器130を通じて腕先デバイス200に送信する。
腕先デバイス200は、受信器210、ビデオデコーダ220及びディスプレイデバイス230を備える。
受信器210は、チャネル300を通じてソースデバイス100からエンコードされたビデオビットストリームを受信する。前述したように、エンコードされたビデオビットストリームは、基本階層ビットストリーム及び一つ以上の向上階層ビットストリームを含む。そして、チャネル300は、有線または無線通信チャネルで具現される。
【0044】
ビデオデコーダ220は、基本階層及び一つ以上の向上階層でデコードしてビデオデータを獲得する。ビデオデコーダ220は、基本階層デコーダ221及び向上階層デコーダ222を備える。基本階層デコーダ221は、チャネル300を通じて受信された基本階層ビットストリームをデコードして第1品質のビデオデータを生成する。向上階層デコーダ222は、一つ以上の向上階層のビットストリームをデコードして第2品質のビデオデータを生成する。
腕先デバイス200によって受信される向上階層の数はチャネル状態に依存する。
基本階層デコーダ221は、基本階層でエンコードされたビデオビットストリームをデコードし、基本階層の量子化されたレジデュアル係数のベクトルを示すシンボルを獲得する。
【0045】
向上階層デコーダ222は、向上階層でエンコードされたビデオビットストリームをデコードし、向上階層の量子化されたレジデュアル係数のベクトルを示すシンボルを獲得する。
基本階層デコーダ221及び向上階層デコーダ222は、それぞれデコードされた、量子化されたレジデュアル係数を用いて復元された基本階層ビデオデータ、及び復元された向上階層ビデオデータを生成する。すなわち、量子化されたレジデュアル係数を逆量子化し、逆量子化されたレジデュアル係数を逆変換処理し、ピクセル値のレジデュアルマクロブロックを生成する。そして、ピクセル値のレジデュアルマクロブロックに予測マクロブロックを加えてビデオデータを復元する。
復元されたビデオデータは、ディスプレイデバイス230を通じてディスプレイされる。ディスプレイデバイス230は、液晶ディスプレイ(LCD)、陰極線管(CRT)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、有機LEDディスプレイなどの多様なデバイスが適用される。
【0046】
図3ないし
図8は、本発明の実施形態による多階層エンコーダの構成を例示的に示す図である。多階層エンコーダは一例であり、スケーラブルエンコーダなどで具現できる。
まず、
図3に示した本発明の一実施形態による多階層エンコーダについて説明する。
図3は、本発明の一実施形態による空間スケーラビリティを支援する多階層エンコーダの構成図である。
図3に示したように、多階層エンコーダ120Aは、基本階層エンコーダ121A、向上階層エンコーダ122A及びフレームバッファ123Aを備える。
具体的に、基本階層エンコーダ121Aは、第1エンコード処理部10A及び第1レート制御部20Aを備え、向上階層エンコーダ122Aは、第2エンコード処理部30A、第2レート制御部40A及びアップサンプリング部50を備える。
【0047】
図3に示した本発明による実施形態では、アップサンプリング部50を向上階層エンコーダ122A内に配した。また、本発明による他の実施形態として、アップサンプリング部50を向上階層エンコーダ122Aの外部に配してもよい。
多階層エンコーダ120Aに、オリジナル映像の解像度を持つビデオデータが入力されれば、基本階層エンコーダ121Aは、オリジナルビデオデータを直接エンコード処理し、向上階層エンコーダ122Aは、オリジナルビデオデータを、アップサンプリング部50によってアップサンプリング処理して高い解像度を持つビデオデータに変換した後、エンコード処理を行う。
【0048】
例えば、オリジナルビデオデータの解像度がCIF(Common Intermediate Format)ならば、基本階層エンコーダ121Aは、CIF解像度のオリジナルビデオデータをエンコード処理する。そして、向上階層エンコーダ122Aは、アップサンプリングによって解像度を高めたSD(Standard Definition)またはHD(High Definition)のビデオデータをエンコード処理する。また、これと逆に、向上階層エンコーダ122Aで高い解像度を持つオリジナルビデオデータをエンコードし、基本階層エンコーダ121Aでは、ダウンスケーリングされたビデオデータをエンコードしてもよい。これについては、
図4で説明する。
基本階層エンコーダ121Aの第1エンコード処理部10Aは、入力されるフレームデータを、第1レート制御部20Aから印加される量子化パラメータ値QP1に基づいて定められたビットレートにエンコードして、第1解像度を持つ基本階層ビットストリームを生成する。
【0049】
基本階層エンコーダ121Aの第1エンコード処理部10Aは、エンコード結果に基づいたエンコード統計情報を生成する。例えば、エンコード統計情報は、基本階層での領域別にエンコード処理過程で生成されたビット量に関する情報、基本階層のエンコード実行過程で領域別に計算された現在フレームと予測フレームとのピクセルの絶対差の和に関する情報、基本階層で計算された領域別複雑度情報のうち一つ以上の情報が含まれる。ここで、領域のサイズは、ピクチャグループ(GOP;Group of Picture)、フレームまたはマクロブロックサイズのうち少なくとも一つ以上を含む。
第1エンコード処理部10Aで生成されたエンコード統計情報は、フレームバッファ123Aに保存される。
第1レート制御部20Aは、第1ターゲットビットレートによって、第1階層の領域別に割り当てられるターゲットビット量及び量子化パラメータ値を定める。
【0050】
第1レート制御部20Aは、第1ターゲットビットレートによって、マクロブロックについて割り当てられたターゲットビット量と、第1エンコード処理部10Aで基本階層のエントロピコーディング処理で実際に生成されたビット量Bits_INF1との差に連動して、領域別に割り当てられた量子化パラメータ値を調整し、第1エンコード処理部10Aに印加する量子化パラメータ値QP1を定める。例えば、ターゲットビット量が実際に生成されたビット量より大きい場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量より小さな場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次のマクロブロックに割り当てられた量子化パラメータ値をそのまま保持する。
【0051】
向上階層エンコーダ122Aのアップサンプリング部50は、入力されるフレームデータを向上階層の解像度に好適にアップサンプリングする。アップサンプリング部50でアップサンプリング処理されたフレームデータは、第2エンコード処理部30Aに印加される。
向上階層エンコーダ122Aの第2エンコード処理部30Aは、アップサンプリング処理されたフレームデータを、第2レート制御部40Aから印加される量子化パラメータ値QP2に基づいて定められたビットレートにエンコードし、第2解像度を持つ向上階層ビットストリームを生成する。
第2レート制御部40Aは、第2階層の領域別に割り当てられる量子化パラメータ値を定める。例えば、第2ターゲットビットレートによって第2階層での領域別に割り当てられる量子化パラメータ値が定められる。他の例として、関心領域情報によって、第2階層での領域別に割り当てられる量子化パラメータ値が定められてもよい。
【0052】
第2レート制御部40Aは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Aから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定め、定められたマクロブロック及び/またはフレームについてのターゲットビット量と、向上階層のエントロピコーディング処理で実際に生成されたビット量Bits_INF2との差に連動して、領域別に割り当てられた量子化パラメータ値を調整し、第2エンコード処理部30Aに印加する量子化パラメータ値QP2を定める。例えば、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量Bits_INF2と同じ場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値をそのまま維持する。
【0053】
図17Aないし
図17Cは、本発明の一実施形態による空間スケーラビリティを支援する多階層エンコーダでの基本階層のエンコード統計情報を用いて、向上階層のマクロブロックについてのターゲットビット量を定める過程を示す概念図である。
図17Aないし
図17Cは、向上階層でエンコードされるビデオデータによる解像度が、基本階層でエンコードされるビデオデータによる解像度に比べて高い例を示す。
図17A及び
図17Bを参照すれば、基本階層でフレーム別にエンコードを行いつつ生成されたエンコード統計情報を、向上階層に対応するフレームについてのエンコードを行うのに用いるように向上階層に伝送する。エンコード統計情報は、ピクチャまたはマクロブロック単位のSAD値、ピクチャまたはマクロブロック単位で実際に生成されたビット量である。
図17Aは、Iピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示したものであり、
図17Bは、Iピクチャ、Bピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示したものである。
【0054】
図17Cを参照すれば、基本階層で生成されたエンコード統計情報であるマクロブロック単位のSAD値ME_MB_SAD及びピクチャ単位のSAD値ME_PIC_SADをアップスケーリングした値に基づいて、向上階層についてのマクロブロックのターゲットビート値MB_target_bitを定める。例えば、向上階層でエンコードするマクロブロック位置に対応する基本階層のマクロブロックを探し出し、探し出した基本階層のマクロブロックについてのSAD値ME_MB_SADを用いて、向上階層についてのマクロブロックのターゲットビート値MB_target_bitを定める。
【0055】
例えば、
図17Cには、向上階層での一つのピクチャに含まれたマクロブロックの数は、基本階層での一つのピクチャに含まれたマクロブロックの数の4倍に当たる場合を示す。
図17Cでは、基本階層の一つのマクロブロックで算出されたSAD値ME_MB_SADを用いて、向上階層についての4個のマクロブロックのターゲットビート値MB_target_bitを定める事例を示す。
次いで、
図4に示した本発明の他の実施形態による多階層エンコーダについて説明する。
【0056】
図4は、本発明の他の実施形態による空間スケーラビリティを支援する多階層エンコーダの構成図である。
図4に示したように、多階層エンコーダ120Bは、基本階層エンコーダ121B、向上階層エンコーダ122B及びフレームバッファ123Bを備える。
具体的に、基本階層エンコーダ121Bは、第1エンコード処理部10B、第1レート制御部20B及びダウンサンプリング部60を備え、向上階層エンコーダ122Bは、第2エンコード処理部30B及び第2レート制御部40Bを備える。
【0057】
図4に示した本発明による実施形態では、ダウンサンプリング部60を基本階層エンコーダ121B内に配した。また、本発明による他の実施形態として、ダウンサンプリング部60を基本階層エンコーダ121Bの外部に配してもよい。
多階層エンコーダ120Bにオリジナル映像の解像度を持つビデオデータが入力されれば、向上階層エンコーダ122Bは、オリジナルビデオデータを直接エンコード処理し、基本階層エンコーダ121Bは、オリジナルビデオデータをダウンサンプリング処理し、オリジナル映像の解像度より低い解像度を持つビデオデータで変換した後でエンコード処理を行う。
【0058】
例えば、オリジナルビデオデータの解像度がHD(High Definition)ならば、基本階層エンコーダ121Bは、ダウンサンプリングによって解像度を低下させたSD(Standard Definition)またはCIF(Common Intermediate Format)のビデオデータをエンコード処理する。そして、向上階層エンコーダ122Bは、HD解像度のオリジナルビデオデータをエンコード処理する。
基本階層エンコーダ121Bのダウンサンプリング部60は、入力されるフレームデータを、基本階層の解像度に好適にダウンサンプリングする。ダウンサンプリング部60でダウンサンプリング処理されたフレームデータは、第1エンコード処理部10Bに印加される。
【0059】
第1エンコード処理部10Bは、ダウンサンプリング処理されたフレームデータを、第1レート制御部20Bから印加される量子化パラメータ値QP1に基づいて定められたビットレートにエンコードして、第1解像度の基本階層ビットストリームを生成する。
基本階層エンコーダ121Bの第1エンコード処理部10Bは、エンコード結果に基づいたエンコード統計情報を生成する。基本階層エンコーダ121Bで生成されるエンコード統計情報は、
図3に示したエンコード統計情報と同一である。
基本階層エンコーダ121Bで生成されたエンコード統計情報は、フレームバッファ123Bに保存される。
【0060】
第1レート制御部20Bの動作は、
図3に示した第1レート制御部20Aの動作と実質的に同一であるため、省略する。
向上階層エンコーダ122Bの入力されるフレームデータを、第2レート制御部40Bから印加される量子化パラメータ値QP2に基づいて定められたビットレートにエンコードして、第2解像度の向上階層ビットストリームを生成する。
第2レート制御部40Bは、第2階層の領域別に割り当てられる量子化パラメータ値を定める。例えば、第2ターゲットビットレートによって第2階層での領域別に割り当てられる量子化パラメータ値が定められる。他の例として、関心領域情報によって第2階層での領域別に割り当てられる量子化パラメータ値を定めてもよい。
【0061】
第2レート制御部40Bは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Bから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定め、定められたマクロブロック及び/またはフレームについてのターゲットビット量と、向上階層のエントロピコーディング処理で実際に生成されたビット量Bits_INF2との差に連動して、領域別に割り当てられた量子化パラメータ値を調整し、第2エンコード処理部30Bに印加する量子化パラメータ値QP2を定める。例えば、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より大きい場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を減少させ、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より小さな場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量Bits_INF2と同じ場合には、次のマクロブロックについて割り当てられた量子化パラメータ値をそのまま維持する。
【0062】
図5は、本発明の実施形態による品質スケーラビリティを支援する多階層エンコーダの構成図である。
図5に示したように、多階層エンコーダ120Cは、基本階層エンコーダ121C、向上階層エンコーダ122C及びフレームバッファ123Cを備える。
具体的に、基本階層エンコーダ121Cは、第1エンコード処理部10C及び第1レート制御部20Cを備え、向上階層エンコーダ122Cは、第2エンコード処理部30C、第2レート制御部40Cを備える。
品質スケーラビリティを支援する多階層エンコーダで、基本階層と向上階層とでエンコードするビデオデータの解像度が同一であれば、向上階層でのアップ/ダウンサンプリング処理が不要になる。
【0063】
基本階層エンコーダ121Cの第1エンコード処理部10Cは、オリジナルビデオデータを、第1レート制御部20Cから印加される量子化パラメータ値QP1に基づいて定められたビットレートにエンコードして、第1品質の基本階層ビットストリームを生成する。
基本階層エンコーダ121Cは、エンコード結果に基づいたエンコード統計情報を生成する。基本階層エンコーダ121Cで生成されるエンコード統計情報は、
図3に示したエンコード統計情報と同一である。
基本階層エンコーダ121Cで生成されたエンコード統計情報は、フレームバッファ123Cに保存される。
【0064】
第1レート制御部20Cは、第1ターゲットビットレートによってマクロブロックについて割り当てられたターゲットビット量と、第1エンコード処理部10Cで基本階層のエントロピコーディング処理で実際に生成されたビット量Bits_INF1との差に連動して、領域別に割り当てられた量子化パラメータ値を調整し、第1エンコード処理部10Cに印加する量子化パラメータ値QP1を定める。例えば、ターゲットビット量が実際に生成されたビット量より大きい場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量より小さな場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次のマクロブロックに割り当てられた量子化パラメータ値をそのまま維持する。
【0065】
向上階層エンコーダ122Cの第2エンコード処理部30Cは、フレームデータを、第2レート制御部40Cから印加される量子化パラメータ値QP2に基づいて定められたビットレートにエンコードし、第2品質の向上階層ビットストリームを生成する。
第2レート制御部40Cは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Bから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定め、定められたマクロブロック及び/またはフレームについてのターゲットビット量と、向上階層のエントロピコーディング処理で実際に生成されたビット量Bits_INF2との差に連動して、領域別に割り当てられた量子化パラメータ値を調整し、第2エンコード処理部30Cに印加する量子化パラメータ値QP2を定める。
【0066】
例えば、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より大きい場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を減少させ、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量Bits_INF2より小さな場合には、次のマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量Bits_INF2と同じ場合には、次のマクロブロックについて割り当てられた量子化パラメータ値をそのまま維持する。
【0067】
図18Aないし
図18Dは、本発明の一実施形態による品質スケーラビリティを支援する多階層エンコーダでの基本階層のエンコード統計情報を用いて、向上階層のマクロブロックについてのターゲットビット量を定める過程を示す概念図である。
図18Aないし
図18Dは例として、MGS(Medium Grained Scalability)とCGS(Coarse Grained Scalability)基盤などの多様な多階層ビデオコーディング事例を示す。
図18Aないし
図18Cを参照すれば、基本階層でフレーム別にエンコードを行いつつ生成されたエンコード統計情報を、向上階層に対応するフレームについてのエンコードを行うのに用いるように向上階層に伝送する。エンコード統計情報は、ピクチャまたはマクロブロック単位のSAD値及び/または実際に生成されたビット量になる。例えば、基本階層は、MGS quality layer_0に当たり、向上階層は、周波数領域に変換された係数が分割されたMGS quality layerの組み合わせで形成される。
【0068】
図18Dを参照すれば、基本階層でフレーム別にエンコードを行いつつ生成されたエンコード統計情報を、向上階層に対応するフレームについてのエンコードを行うのに用いるように向上階層に伝送する。エンコード統計情報は、ピクチャまたはマクロブロック単位のSAD値及び/または実際に生成されたビット量になる。基本階層は、layer target bit0にエンコードされるCGS quality layer1に当たる。
図18Dを参照すれば、基本階層で生成されたエンコード統計情報であるマクロブロック単位のSAD値ME_MB_SAD及び/またはピクチャ単位のSAD値ME_PIC_SADに基づいて、向上階層についてのマクロブロックのターゲットビート値MB_target_bitを定める。
【0069】
図6は、本発明の実施形態による空間スケーラビリティを支援する多階層エンコーダの構成図である。
図6に示したように、多階層エンコーダ120Dは、基本階層エンコーダ121D、向上階層エンコーダ122D及びフレームバッファ123Dを備える。
具体的に、基本階層エンコーダ121Dは、第1エンコード処理部10A、第1レート制御部20A及び関心領域ROI検出部70を備え、向上階層エンコーダ122Dは、第2エンコード処理部30D、第2レート制御部40D及びアップサンプリング部50を備える。
【0070】
図6に示した本発明による実施形態では、アップサンプリング部50を向上階層エンコーダ122D内に配した。また、本発明による他の実施形態として、アップサンプリング部50を向上階層エンコーダ122Dの外部に配してもよい。
関心領域検出部70は、フレームデータを分析し、映像の複雑度情報、映像の動き量情報または映像の画素分布度情報のうち一つ以上の情報を用いて関心領域ROI情報を算出する。例えば、映像の変化程度または映像の動き量または画素分布度が第1しきい値以上である領域を関心領域と定め、映像の変化程度または映像の動き量または画素分布度が第2しきい値以下である領域を非関心領域と定める。ここで第1しきい値は、第2しきい値より大きい値に設定される。関心領域情報を算出する具体的な方式については、下記の
図9ないし
図11で後述する。
【0071】
基本階層エンコーダ121Dの第1エンコード処理部10A及び第1レート制御部20Aは、
図3に示した基本階層エンコーダ121Aの第1エンコード処理部10A及び第1レート制御部20Aと同じ構成手段に当たる。
これによって、基本階層エンコーダ121Dは、エンコード結果に基づいたエンコード統計情報を生成する。
フレームバッファ123Dには、基本階層エンコーダ121Dで生成されたエンコード統計情報及び関心領域ROI情報が保存される。
【0072】
向上階層エンコーダ122Dのアップサンプリング部50は、入力されるオリジナルビデオデータを、向上階層の解像度に好適にアップサンプリングする。アップサンプリング部50でアップサンプリング処理されたビデオデータは、第2エンコード処理部30Dに印加される。
向上階層エンコーダ122Dの第2エンコード処理部30Dは、アップサンプリング処理されたビデオデータを、第2レート制御部40Dから印加される量子化パラメータ値QP2に基づいて定められたビットレートにエンコードし、第2解像度の向上階層ビットストリームを生成する。
【0073】
一例として、第2レート制御部40Dは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Dから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定める。
他の例として、第2レート制御部40Dは、向上階層の解像度に相応する第2ターゲットビットレートに基づいてマクロブロックについてのターゲットビット量を定めてもよい。
そして、第2レート制御部40Dは、基本階層でエンコーダで生成された関心領域ROI情報に基づいて、向上階層で領域別に割り当てられる量子化パラメータ値を定める。例えば、関心領域内での量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
【0074】
図20Aないし
図20Cは、本発明の一実施形態による空間スケーラビリティを支援する多階層エンコーダでの基本階層の関心領域情報を用いて、向上階層のマクロブロックについての量子化パラメータ値を割り当てる過程を示す概念図である。
図20A及び
図20Bを参照すれば、基本階層でフレーム別エンコードを行いつつ生成された関心領域ROI情報を、向上階層に対応するフレームについての量子化パラメータ値を割り当てるのに用いるように向上階層に伝送する。
図20Aは、Iピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示すものであり、
図20Bは、Iピクチャ、Bピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示すものである。
【0075】
図20Cを参照すれば、基本階層で生成された関心領域情報に基づいて、向上階層のマクロブロックについての量子化パラメータ値を割り当てる。例えば、向上階層でエンコードするマクロブロック位置に対応する基本階層のマクロブロックを探し出し、探し出した基本階層のマクロブロックに関する関心領域情報を用いて向上階層についてのマクロブロックの量子化パラメータ値を割り当てる。
例えば、
図20Cには、向上階層での一つのピクチャに含まれたマクロブロックの数は、基本階層での一つのピクチャに含まれたマクロブロックの数の4倍に当たる場合を示す。
図20Cでは、基本階層の一つのマクロブロックで生成された関心領域情報を用いて、向上階層についての4個のマクロブロックについての量子化パラメータ値を割り当てる。
【0076】
図22は、関心領域情報を用いて向上階層での割り当てられた量子化パラメータ値の例を示す。
図22を参照すれば、関心領域で、量子化パラメータ値は29に割り当てられ、非関心領域では、量子化パラメータ値が51に割り当てられ、関心領域でも非関心領域でもない一般領域では、量子化パラメータ値が40に割り当てられる。
【0077】
第2レート制御部40Dは、現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量Bits_INF2との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整し、第2エンコード処理部30Dに印加する量子化パラメータ値QP2を定める。例えば、ターゲットビット量が実際に生成されたビット量Bits_INF2より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量Bits_INF2より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量Bits_INF2と同じ場合には、次いで処理するマクロブロックに割り当てられている量子化パラメータ値をそのまま維持する。そして、フレーム別最初のマクロブロックについてのエンコード処理時には、関心領域情報によって割り当てられている量子化パラメータ値を適用する。
【0078】
図7は、本発明の他の実施形態による空間スケーラビリティを支援する多階層エンコーダの構成図である。
図7に示したように、多階層エンコーダ120Eは、基本階層エンコーダ121E、向上階層エンコーダ122E及びフレームバッファ123Eを備える。
具体的に、基本階層エンコーダ121Eは、第1エンコード処理部10B、第1レート制御部20B、ダウンサンプリング部60及び関心領域ROI検出部70を備え、向上階層エンコーダ122Eは、第2エンコード処理部30E及び第2レート制御部40Eを備える。
【0079】
図7に示した本発明による実施形態では、ダウンサンプリング部60を基本階層エンコーダ121E内に配した。本発明による他の実施形態として、ダウンサンプリング部60を基本階層エンコーダ121Eの外部に配してもよい。
関心領域検出部70は、
図6で前述したように、入力される映像データを分析して関心領域ROI情報を算出する。
基本階層エンコーダ121Eのダウンサンプリング部60は、入力されるオリジナルビデオデータを基本階層の解像度に好適にダウンサンプリングする。ダウンサンプリング部60でダウンサンプリング処理されたビデオデータは、第1エンコード処理部10Bに印加される。
【0080】
基本階層エンコーダ121Eの第1エンコード処理部10B及び第1レート制御部20Bは、
図4に示した基本階層エンコーダ121Bの第1エンコード処理部10B及び第1レート制御部20Bと同じ構成手段に当たる。これによって、基本階層エンコーダ121Eは、基本階層でのエンコード結果に基づいたエンコード統計情報を生成する。そして、基本階層エンコーダ121Eは、関心領域ROI情報も生成する。
フレームバッファ123Eには、基本階層エンコーダ121Eで生成されたエンコード統計情報及び関心領域ROI情報が保存される。
【0081】
向上階層エンコーダ122Eの第2エンコード処理部30Eは、オリジナルビデオデータを、第2レート制御部40Eから印加される量子化パラメータ値QP2に基づいて定められたビットレートにエンコードし、第2解像度の向上階層ビットストリームを生成する。
一例として、第2レート制御部40Eは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Eから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定める。
【0082】
他の例として、第2レート制御部40Eは、向上階層の解像度に相応する第2ターゲットビットレートによってマクロブロックについてのターゲットビット量を定めてもよい。
そして、第2レート制御部40Eは、基本階層でエンコーダで生成された関心領域ROI情報に基づいて、向上階層で領域別に割り当てられる量子化パラメータ値を定める。例えば、関心領域内の量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
【0083】
図20Aないし
図20Cで説明したような方式で、基本階層の関心領域情報を用いて向上階層のマクロブロックについての量子化パラメータ値を割り当てる。
第2レート制御部40Eは、現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量Bits_INF2との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整する。例えば、ターゲットビット量が実際に生成されたビット量Bits_INF2より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量Bits_INF2より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量Bits_INF2と同じ場合には、次いで処理するマクロブロックに割り当てられている量子化パラメータQP2値をそのまま維持する。そして、フレーム別最初のマクロブロックについてのエンコード処理時には、関心領域情報によって割り当てられている量子化パラメータ値を適用する。
【0084】
図8は、本発明の実施形態による品質スケーラビリティを支援する多階層エンコーダの構成図である。
図8に示したように、多階層エンコーダ120Fは、基本階層エンコーダ121F、向上階層エンコーダ122F及びフレームバッファ123Fを備える。
具体的に、基本階層エンコーダ121Fは、第1エンコード処理部10C、第1レート制御部20C及び関心領域ROI検出部70を備え、向上階層エンコーダ122Eは、第2エンコード処理部30F及び第2レート制御部40Fを備える。
関心領域検出部70は、
図6で前述したように、入力される映像データを分析して関心領域ROI情報を算出する。
【0085】
基本階層エンコーダ121Fの第1エンコード処理部10C及び第1レート制御部20Cは、
図5に示した基本階層エンコーダ121Cの第1エンコード処理部10C及び第1レート制御部20Cと同じ構成手段に当たる。これによって、基本階層エンコーダ121Fは、基本階層でのエンコード結果に基づいたエンコード統計情報を生成する。そして、基本階層エンコーダ121Fは、関心領域ROI情報も生成する。
フレームバッファ123Fには、基本階層エンコーダ121Fで生成されたエンコード統計情報及び関心領域ROI情報が保存される。
向上階層エンコーダ122Fは、入力されるオリジナルフレームデータを、第2レート制御部40Fから印加される量子化パラメータQP2値に基づいて定められたビットレートにエンコードし、第2解像度の向上階層ビットストリームを生成する。
【0086】
一例として、第2レート制御部40Fは、向上階層でエンコード処理するマクロブロックの位置に対応する基本階層のエンコード統計情報をフレームバッファ123Fから読み出し、読み出した基本階層のエンコード統計情報に基づいてマクロブロック及び/またはフレームについてのターゲットビット量を定める。
他の例として、第2レート制御部40Fは、向上階層の解像度に相応する第2ターゲットビットレートによってマクロブロックについてのターゲットビット量を定めてもよい。
そして、第2レート制御部40Fは、基本階層でエンコーダで生成された関心領域ROI情報に基づいて、向上階層についての量子化パラメータ値を割り当てる。例えば、関心領域内での量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
【0087】
図21Aないし
図21Dは、本発明の実施形態による品質スケーラビリティを支援する多階層エンコーダでの基本階層の関心領域情報を用いて、向上階層のマクロブロックについての量子化パラメータ値を割り当てる過程を示す概念図である。
図21Aないし
図21Dは、例えば、MGSとCGS基盤などの多様な多階層ビデオコーディング事例を示す。
【0088】
図21Aを参照すれば、基本階層MSG Quality layer_0でフレーム別にエンコードを行いつつ生成された関心領域ROI情報を、向上階層MSG Quality layer_1及びMSG Quality layer_2に対応するフレームについての量子化パラメータ値を割り当てるのに用いるように向上階層に伝送する。
そして、
図21B及び
図21Cを参照すれば、基本階層Quality layer_0でフレーム別にエンコードを行いつつ生成された関心領域ROI情報を、向上階層Quality layer_1に対応するフレームについての量子化パラメータ値を割り当てるのに用いるように向上階層に伝送する。
【0089】
図21Dを参照すれば、基本階層で生成された関心領域情報に基づいて、向上階層のマクロブロックについての量子化パラメータ値を割り当てる。向上階層でエンコードするマクロブロック位置に対応する基本階層のマクロブロックを探し出し、探し出した基本階層のマクロブロックに関する関心領域情報を用いて、向上階層についてのマクロブロックの量子化パラメータ値を割り当てる。
第2レート制御部40Fは、現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整し、第2エンコード処理部40Fに印加する量子化パラメータ値QP2を定める。
【0090】
例えば、ターゲットビット量が実際に生成されたビット量Bits_INF1より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量Bits_INF1より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量Bits_INF1が実際に生成されたビット量と同じ場合には、次いで処理するマクロブロックに割り当てられている量子化パラメータ値をそのまま維持する。そして、フレーム別最初のマクロブロックについてのエンコード処理時には、関心領域情報によって割り当てられている量子化パラメータ値を適用する。
【0091】
図6ないし
図8に示したように、関心領域ROI検出部70は、基本階層エンコーダ121Dないし121Fの内部に配される。他の例として、関心領域ROI検出部70は、基本階層エンコーダ121Dないし121Fの外部に配されてもよい。
図6ないし
図8に示した関心領域ROI検出部についての構成の例を、
図9ないし
図11に示した。
【0092】
図9を参照すれば、本発明の一実施形態による関心領域検出部70Aは、映像複雑度計算部71A及び領域決定部72Aで構成される。
映像複雑度計算部71Aは、入力フレームデータのマクロブロックごとに境界面(interface)と検出される画素の数を、映像複雑度として計算する。ここで、映像複雑度とは、映像の変化が大きいかどうかを示す尺度を意味する。このために映像複雑度計算部71Aは、キャニーエッジ検出器(Canny Edge Detector)などの境界面検出方法を用いて映像の複雑度を算出する。
領域決定部72Aは、マクロブロックごとに境界面と検出される画素の数が初期設定された第1しきい値より大きい領域、または境界面周辺の画素の画素値が初期設定された第2しきい値より大きい領域を関心領域と定める。
【0093】
図10を参照すれば、本発明の他の実施形態による関心領域検出部70Bは、動き量計算部71B及び領域決定部72Bで構成される。
動き量計算部71Bは、入力フレームデータのマクロブロック別に動きベクトルを検出し、検出されたマクロブロック別動きベクトルの水平方向成分と垂直方向成分それぞれを二乗して加えた値の平方根で動き量を求める。
領域決定部72Bは、マクロブロック別に計算された動き量が初期設定された第3しきい値より大きい領域、または周辺領域の動き量が初期設定された第4しきい値より大きいか、または同じ領域を関心領域と定める。
【0094】
図11を参照すれば、本発明のさらに他の実施形態による関心領域検出部70Cは、画素分布度計算部71C及び領域決定部72Cで構成される。
画素分布度計算部71Cは、入力フレームデータについてヒストグラムインターセクションを適用して各画素値の累積個数を求め、画素分布度を求める。
領域決定部72Cは、マクロブロック別に計算された画素分布度が初期設定された第5しきい値より大きい領域、または周辺領域の画素分布度が初期設定された第6しきい値より大きいか、または同じ画素分布度を持つ領域を関心領域と定める。
【0095】
本発明のさらに他の実施形態では、入力映像の複雑度、入力映像の動き量または入力映像の画素分布度のうち2つ以上を組み合わせて関心領域情報を算出してもよい。
次いで、
図12ないし
図14は、本発明の実施形態による向上階層エンコーダ122Aないし122Fの第2レート制御部40Aないし40Fの詳細的な構成例を示す。
図12を参照すれば、本発明の一実施形態による第2レート制御部40Aないし40Fは、ビット量決定器41A及び量子化パラメータ決定器を備える。
ビット量決定器41Aは、基本階層で生成されたエンコード統計情報に基づいて向上階層の領域別ターゲットビット量を定める。
【0096】
一例として、ビット量決定器41Aは、基本階層でマクロブロック別に生成されたビット量に基づいて、向上階層のマクロブロック別ターゲットビット量を定める。基本階層と向上階層との空間的解像度が異なる場合に、基本階層でマクロブロック別に生成されたビット量をアップスケーリングまたはダウンスケーリング処理して、向上階層に対応するマクロブロックのターゲットビット量と定める。
詳細には、向上階層の解像度が基本階層の解像度より高い場合には、基本階層でマクロブロック別に生成されたビット量を向上階層の解像度に好適にアップスケーリングした結果として、向上階層のマクロブロックについてのターゲットビット量を定める。そして、向上階層の解像度が基本階層の解像度より低い場合には、基本階層でマクロブロック別に生成されたビット量を向上階層の解像度に好適にダウンサンプリングした結果として、向上階層のマクロブロックについてのターゲットビット量を定める。
【0097】
そして、向上階層の解像度と基本階層の解像度とが相等しい場合には、基本階層でマクロブロック別に生成されたビット量として、向上階層のマクロブロックについてのターゲットビット量を定める。
ビット量決定器41Aは、数式1を用いて向上階層のi番目(iは、1以上の整数)のマクロブロックに割り当てられるターゲットビット量T
mb(i)を算出する。
【0099】
ここで、T
picは、向上階層のピクチャに割り当てられたターゲットビット量であり、MB_BITS(i)は、向上階層のi番目のマクロブロックにマッチングされる基本階層のマクロブロックで生成されたビット量であり、PIC_BITS_SUMは、基本階層でピクチャの全体マクロブロックで生成されたビット量の和である。
他の例として、ビット量決定器41Aは、基本階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和SADに基づいて、向上階層のマクロブロックについてのターゲットビット量を定める。
詳細には、ビット量決定器41Aは、数式2を用いて向上階層のi番目(iは、1以上の整数)のマクロブロックに割り当てられるターゲットビット量T
mb(i)を算出する。
【0101】
ここで、T
picは、向上階層のピクチャに割り当てられたターゲットビット量であり、MB_SAD(i)は、向上階層のi番目のマクロブロックにマッチングされる基本階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和であり、PIC_SAD_SUMは、基本階層でピクチャの全体マクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和である。
【0102】
さらに他の例として、ビット量決定器41Aは、向上階層のマクロブロックにマッチングされる基本階層のマクロブロックについてのエンコード時に生成されたビット量、及び向上階層のマクロブロックにマッチングされる基本階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和に基づいて、向上階層のマクロブロックについてのターゲットビット量を定める。
詳細には、ビット量決定器41Aは、数式3を用いて向上階層のi番目(iは、1以上の整数)のマクロブロックに割り当てられるターゲットビット量T
mb(i)を算出する。
【0104】
ここで、T
picは、向上階層のピクチャに割り当てられたターゲットビット量であり、MB_BITS(i)は、向上階層のi番目のマクロブロックにマッチングされる第1階層のマクロブロックで生成されたビット量であり、PIC_BITS_SUMは、基本階層でピクチャの全体マクロブロックで生成されたビット量の和であり、MB_SAD(i)は、向上階層のi番目のマクロブロックにマッチングされる基本階層のマクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和であり、PIC_SAD_SUMは、基本階層でピクチャの全体マクロブロックで計算された現在フレームと予測フレームとのピクセルの絶対差の和であり、Wは、加重係数であって、0<W<1である。
【0105】
さらに他の例として、ビット量決定器41Aは、基本階層で計算された基準サイズについての複雑度、基本階層でのピクチャグループに割り当てられたターゲットビット量についてのフレームに割り当てられたターゲットビット量の割合のうち少なくとも一つの情報に基づいて、向上階層のフレーム別に割り当てられるターゲットビット量を定める。
図19A及び
図19Bは、本発明の実施形態による多階層エンコーダでの基本階層のエンコード統計情報を用いて、向上階層のフレームについてのターゲットビット量を定める方法を示す概念図である。
【0106】
図19Aは、Iピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示したものであり、
図19Bは、Iピクチャ、Bピクチャ及びPピクチャで構成されたGOPでのエンコード実行過程の例を示したものである。
図19A及び
図19Bを参照すれば、基本階層でエンコードを行いつつ算出されたフレーム複雑度及びピクチャグループでのフレームビット占有情報を、向上階層のフレーム別に割り当てられるターゲットビット量の決定に用いるために向上階層に伝送する。
詳細には、ビット量決定器41Aは、数式4を用いて向上階層のi番目(iは、1以上の整数)のフレームに割り当てられるターゲットビット量T
ENH_frame[i]を算出する。
【0108】
ここで、GOP_ALLOC_BITS
ENHは、向上階層のピクチャグループに割り当てられたターゲットビット量であり、PICTURE_TYPEは、ピクチャのタイプであり、COMPLEXITY
BASE[i]は、基本階層のi番目のフレームについての複雑度であり、GOP_ALLOC_BITS
BASEは、基本階層のピクチャグループで生成されたビット量であり、FRAME_BITS
BASE[i]は、基本階層のi番目のフレームで生成されたビット量である。
【0109】
数式4の分母項は、ピクチャのタイプ、基本階層のフレームについての複雑度及び基本階層のi番目のフレームで生成されたビット量を、基本階層のピクチャグループで生成されたビット量で割った値に基づいて算出される値である。
数式4を参照すれば、例えば、ピクチャグループのうちIピクチャがPピクチャに比べて分母値が小くなり、基本階層のフレームについての複雑度が高くなるほど分母値が小くなるようにFRAME_WEIGHT関数を定める。
【0110】
量子化パラメータ決定器42Aは、ビット量決定器41Aで定められたターゲットビット量と、向上階層で向上階層のエントロピコーディング処理で実際に生成されたビット量との差に連動して、量子化パラメータ値QP2を定める。例えば、向上階層のエントロピコーディング処理でのビット発生情報に基づいて実際に生成されたビット量が得られる。
向上階層のターゲットビットレートに基づいて、向上階層でのマクロブロック別に量子化パラメータを初期値に割り当てる。例えば、向上階層のすべてのマクロブロックについて、同じ量子化パラメータ値を初期値に割り当てる。
【0111】
量子化パラメータ決定器42Aは、現在マクロブロックに割り当てられたターゲットビット量が向上階層のエントロピコーディング処理で実際に生成されたビット量より大きい場合には、向上階層の次のマクロブロックに割り当てられた量子化パラメータ値を減少させ、現在マクロブロックに割り当てられたターゲットビット量が向上階層のエントロピコーディング処理で実際に生成されたビット量より小さな場合には、向上階層の次のマクロブロックに割り当てられた量子化パラメータ値を増加させる。そして、現在マクロブロックに割り当てられたターゲットビット量と、向上階層のエントロピコーディング処理で実際に生成されたビット量とが同じ場合には、向上階層の次のマクロブロックに割り当てられた量子化パラメータ値をそのまま維持する。
【0112】
量子化パラメータ決定器42Aは、このように向上階層の現在マクロブロックについてのエンコード結果に基づいて、次のマクロブロックについて適用する量子化パラメータ値QP2を最終的に定める。最終的に定められた、次のマクロブロックについての量子化パラメータ値QP2を適用して向上階層についての量子化処理を行える。
【0113】
図13を参照すれば、本発明の他の実施形態による第2レート制御部40Aないし40Fは、ビット量決定器41B及び量子化パラメータ決定器42Bを備える。
ビット量決定器41Bは、向上階層のピクチャまたはピクチャグループ別に割り当てられたターゲットビット量に基づいて、該ピクチャのマクロブロック別ターゲットビット量を定める。この場合には、基本階層で生成されたエンコード統計情報を用いなくてもよい。
【0114】
量子化パラメータ決定器42Bは、基本階層でエンコード処理したビデオフレームで生成された関心領域情報に基づいて、向上階層についての量子化パラメータ値を割り当てる。例えば、向上階層でエンコードするマクロブロック位置に対応する基本階層のマクロブロックを探し出し、探し出した基本階層のマクロブロックに関する関心領域情報を用いて、向上階層についてのマクロブロックの量子化パラメータ値を割り当てる。例えば、
図24に示したように、関心領域内での量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
【0115】
量子化パラメータ決定器42Bは、現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整し、次のマクロブロックについて適用する量子化パラメータ値QP2を最終的に定める。例えば、ターゲットビット量が実際に生成されたビット量より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次いで処理するマクロブロックに割り当てられている量子化パラメータ値をそのまま維持する。そして、フレーム別最初のマクロブロックについてのエンコード処理時には、関心領域情報によって割り当てられている量子化パラメータ値をそのまま維持する。
【0116】
図14を参照すれば、本発明のさらに他の実施形態による第2レート制御部40Aないし40Fは、ビット量決定器41A及び量子化パラメータ決定器42Bを備える。
ビット量決定器41Aは、
図12に示したビット量決定器41Aと同じ構成手段に当たり、量子化パラメータ決定器42Bは、
図13に示した量子化パラメータ決定器42Bと同じ構成手段に当たる。
これによって、ビット量決定器41Aは、基本階層で生成されたエンコード統計情報に基づいて、向上階層の基準サイズ別にターゲットビット量を定める。例えば、数式1ないし数式3のうち一つの数式を用いて、向上階層のi番目のマクロブロックに割り当てられるターゲットビット量T
mb(i)を算出する。
【0117】
また、ビット量決定器41Aは、数式4を用いて、向上階層のi番目のフレームに割り当てられるターゲットビット量T
ENH_frame[i]を算出する。
そして、量子化パラメータ決定器42Bは、基本階層でエンコード処理したビデオフレームで生成された関心領域情報に基づいて、向上階層のマクロブロックについての量子化パラメータ値を割り当てる。
【0118】
量子化パラメータ決定器42Bは、基本階層のエンコード統計情報に基づいて割り当てられた現在マクロブロックについてのターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整する。量子化パラメータ決定器42Bについての詳細な動作は、
図13に示した量子化パラメータ決定器42Bと同一であるので、重なる説明は省略する。
【0119】
図15及び
図16は、本発明の実施形態による多階層エンコーダの詳細的な構成を例示的に示す図である。
図15を参照すれば、本発明の一実施形態による多階層エンコーダは、基本階層エンコーダ300、向上階層エンコーダ400A、フレームバッファ500及び第1、2メモリ600、700を備える。
【0120】
基本階層エンコーダ300は、関心領域ROI検出部301、第1インタ予測部302、第1イントラ予測部303、第1モード選択部304、第1減算部305、第1加算部306、第1変換部307、第1量子化部308、第1エントロピコーディング部309、第1レート制御部310、第1逆量子化部311、第1逆変換部312及び第1フィルタ313を備える。
【0121】
そして、向上階層エンコーダ400Aは、アップサンプリング部401、第2インタ予測部402、第2イントラ予測部403、第2モード選択部404、第2減算部405、第2加算部406、第2変換部407、第2量子化部408、第2エントロピコーディング部409、第2レート制御部410、第2逆量子化部411、第2逆変換部412及び第2フィルタ413を備える。
【0122】
図15に示した多階層エンコーダは、空間スケーラビリティを支援する多階層エンコーダの一例であり、基本階層エンコーダ300では、オリジナル映像の解像度を持つビデオデータについてのエンコード処理を行い、向上階層エンコーダ400Aでは、オリジナル映像の解像度を高めたビデオについてのエンコード処理を行う。
例えば、オリジナルビデオデータの解像度がCIFならば、基本階層エンコーダ300は、CIF解像度のオリジナルビデオデータをエンコード処理する。そして、向上階層エンコーダ400Aは、アップサンプリングによって解像度を高めたSDまたはHDのビデオデータをエンコード処理する。
【0123】
まず、基本階層エンコーダ300でのエンコード処理について説明する。
関心領域ROI検出部301は、入力されるフレームデータから関心領域を検出し、これを示す関心領域情報を算出する。例えば、
図9ないし
図11に示した関心領域検出部70Aないし70Cの回路構成で具現される。
第1インタ予測部302は、現在フレームのブロックと、一つ以上の隣接フレームでのブロックとを比較して動き情報を生成させ、生成された動き情報に基づいて現在フレームでエンコードするブロックについての予測ブロックを生成する。ここで、一つ以上の隣接フレームは、以前にエンコードされたブロックから復元されたデータを保存する第1メモリ600から提供される。
【0124】
第1イントラ予測部303は、現在コーディングされているブロックと同じフレーム内の基本階層の一つ以上のエンコードされたブロックに基づいて予測ブロックを生成する。
第1モード選択部304は、エンコードされているブロックが含まれたフレームのピクチャタイプがIタイプである場合に、第1イントラ予測部303で生成された予測ブロックを選択して出力し、エンコードされているブロックが含まれたフレームのピクチャタイプがPタイプまたはBタイプである場合に、第1インタ予測部302で生成された予測ブロックを選択して出力する。
【0125】
第1減算部305は、現在フレームのブロックから第1モード選択部304で出力される予測ブロックを引くことでレジデュアルブロックを生成する。レジデュアルブロックは、現在フレームのブロックのピクセル値と予測ブロックのピクセル値との差値のセットを意味する。例えば、レジデュアルブロックは、2次元ブロックフォーマット(例えば、2次元行列またはピクセル値のアレイ)で表現する。
【0126】
第1変換部307は、レジデュアルブロックに変換を適用してレジデュアル変換係数を生成する。第1変換部307は、時間ドメインのピクセル差値のセットを、周波数ドメインでピクセル差値のエネルギを示すレジデュアル変換係数に変換する。例えば、離散コサイン変換(DCT)、整数変換、方向性変換、ウェーブレット変換またはこれらの組み合わせを用いる。
【0127】
第1量子化部308は、第1レート制御部310で定められた量子化パラメータ値QP1を適用して、レジデュアル変換係数を量子化処理する。量子化パラメータは、基本量子化の何倍に量子化するかを示すファクタである。量子化パラメータ値が増加すれば圧縮率が高くなり、量子化パラメータQP1値が減少すれば圧縮率は低くなる。これによって、量子化パラメータ値が増加するにつれて、ブロック当たりコーディングによって生成されるビット量は低減する。
【0128】
第1逆量子化部311は、量子化されたレジデュアル変換係数を逆量子化処理してレジデュアル変換係数を復元する。
第1逆変換部312は、第1逆量子化部311で復元されたレジデュアル変換係数を逆変換処理してレジデュアルブロックを復元する。
第1加算部306は、復元されたレジデュアルブロックと、第1モード選択部304で出力される予測ブロックとを加えてビデオブロックを復元する。
【0129】
復元されたビデオブロックは、第1フィルタ313でデブロッキングフィルタリング処理された後、第1メモリ600に保存される。第1メモリ600に保存されたビデオブロックは、インタ予測の参照フレームデータとして用いられる。
第1エントロピコーディング部309は、量子化されたレジデュアル変化係数を、可変長コーディング(VLC)、算術コーディング、または他のエントロピコーディング技術を用いてエントロピコーディング処理し、ビットストリームに出力する。第1エントロピコーディング部309は、エントロピコーディング処理でビット発生情報を出力する。ビット発生情報は、例えば、領域別に発生したビット量に関する情報でありうる。
【0130】
第1レート制御部310は、基本階層の解像度に相応する第1ターゲットビットレートによって、ブロックについて設定されたターゲットビット量と、基本階層の第1エントロピコーディング部309で実際に生成されたビット量との差に連動して、量子化パラメータ値QP1を定める。例えば、ターゲットビット量が実際に生成されたビット量より大きい場合には、次のブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量より小さな場合には、次のブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次のブロックに割り当てられた量子化パラメータQP1値をそのまま維持する。基本階層では、ブロック別に割り当てられる量子化パラメータ値は、第1ターゲットビットレートによって初期値に設定される。
【0131】
基本階層エンコーダ300は、エンコード結果に基づいてエンコード統計情報を生成する。例えば、ブロック別に生成されたビット量に関する情報、インタ予測処理に基づいて生成されたInterSAD情報、イントラ予測処理に基づいて生成されたIntraSAD情報などが含まれる。
基本階層エンコーダ300で生成されたエンコード統計情報は、フレームバッファ500に保存される。また、基本階層エンコーダ300は、階層間予測のために基本階層のエンコード処理過程で生成されるイントラピクチャ情報、動き情報、レジデュアル情報もフレームバッファ500に保存される。
【0132】
次いで、向上階層エンコーダ400Aでのエンコード処理について説明する。
向上階層エンコーダ400Aは、階層間予測のために基本階層で生成された参照情報であるイントラピクチャ情報、動き情報、レジデュアル情報を用いてエンコード処理を行う。
また、向上階層エンコーダ400Aは、基本階層エンコード結果に基づいて生成されたエンコード統計情報及び/または関心領域情報を用いてビットレートを制御する。
アップサンプリング部401Aは、ビデオフレームデータを、向上階層で規定する解像度を持つビデオフレームデータに変換させるようにアップサンプリング処理する。
【0133】
第2インタ予測部402は、アップサンプリング処理された現在フレームのブロックと、基本階層及び向上階層の一つ以上の隣接フレームでのブロックと、基本階層で生成された動き情報とに基づいて、現在フレームでエンコードするブロックについての予測ブロックを生成する。ここで、予測ブロックの生成に必要な隣接フレームは第1メモリ600から提供され、基本階層で生成された参照情報はバッファメモリ500から提供される。
第2イントラ予測部403は、現在コーディングされているブロックと同じフレーム内の基本階層及び向上階層の一つ以上のエンコードされたブロックに基づいて予測ブロックを生成する。
【0134】
第2モード選択部404は、エンコードされているブロックが含まれたフレームのピクチャタイプがIタイプである場合に、第2イントラ予測部403で生成された予測ブロックを選択して出力し、エンコードされているブロックが含まれたフレームのピクチャタイプがPタイプまたはBタイプである場合に、第2インタ予測部402で生成された予測ブロックを選択して出力する。
【0135】
第2減算部405は、現在フレームのブロックから、第2モード選択部304で出力される予測ブロックを引くことで、レジデュアルブロックを生成する。レジデュアルブロックは、現在フレームのブロックのピクセル値と予測ブロックのピクセル値との差値のセットを意味する。例えば、レジデュアルブロックは、2次元ブロックフォーマット(例えば、2次元行列またはピクセル値のアレイ)で表現する。
【0136】
第2変換部407は、レジデュアルブロックに変換を適用してレジデュアル変換係数を生成する。第2変換部407は、時間ドメインのピクセル差値のセットを、周波数ドメインでピクセル差値のエネルギを示すレジデュアル変換係数に変換する。例えば、離散コサイン変換(DCT)、整数変換、方向性変換、ウェーブレット変換またはこれらの組み合わせを用いる。
【0137】
第2量子化部408は、第2レート制御部410で定められた量子化パラメータ値QP2を適用し、レジデュアル変換係数を量子化処理する。量子化パラメータは、基本量子化の何倍に量子化するかを示すファクタである。量子化パラメータ値が増加すれば圧縮率が高くなり、量子化パラメータ値が減少すれば圧縮率は低くなる。これによって、量子化パラメータ値が増加するにつれて、ブロック当たりコーディングによって生成されるビット量は低減する。
【0138】
第2逆量子化部411は、量子化されたレジデュアル変換係数を逆量子化処理してレジデュアル変換係数を復元する。
第2逆変換部412は、第2逆量子化部411で復元されたレジデュアル変換係数を逆変換処理してレジデュアルブロックを復元する。
第2加算部406は、復元されたレジデュアルブロックと、第2モード選択部404で出力される予測ブロックとを加えてビデオブロックを復元する。
【0139】
復元されたビデオブロックは、第2フィルタ413からデブロッキングフィルタリング処理された後、第2メモリ700に保存される。第2メモリ700に保存されたビデオブロックは、インタ予測の参照フレームデータに用いられる。
第2エントロピコーディング部409は、量子化されたレジデュアル変化係数を、可変長コーディング(VLC)、算術コーディング、または他のエントロピコーディング技術を用いてエントロピコーディング処理し、ビットストリームに出力する。第2エントロピコーディング部409は、エントロピコーディング処理で生成されたビット量を示すビット発生情報(Bit generation information)を生成し、第2レート制御部410に出力する。
【0140】
エントロピコーディング処理で実際に生成されたビット量は、エントロピコーディング部409で生成されたビート生成情報から分かる。
第2レート制御部410は、フレームバッファ500から読み出した基本階層のエンコード統計情報を用いて、マクロブロック及び/またはフレームについてのターゲットビット量を定める。例えば、数式1ないし数式3を用いて、向上階層のi番目のマクロブロックに割り当てられるターゲットビット量T
mb(i)を定める。また、第2レート制御部410は、数式4を用いて、向上階層のi番目のフレームに割り当てられるターゲットビット量T
ENH_frame[i]を定める。
【0141】
また、第2レート制御部410は、フレームバッファ500から読み出した関心領域情報を用いて、向上階層についてのマクロブロックの量子化パラメータ値を割り当てる。例えば、
図24に示したように、関心領域内での量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
そして、第2レート制御部410は、現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整する。エントロピコーディング処理で実際に生成されたビット量は、エントロピコーディング部409で生成されたビート生成情報から分かる。
【0142】
例えば、ターゲットビット量が実際に生成されたビット量より大きい場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を減少させ、ターゲットビット量が実際に生成されたビット量より小さな場合には、次いで処理するマクロブロックについて割り当てられた量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次いで処理するマクロブロックに割り当てられている量子化パラメータ値をそのまま維持する。そして、フレーム別最初のマクロブロックについてのエンコード処理時には、関心領域情報によって割り当てられている量子化パラメータ値をそのまま維持する。
【0143】
図16は、本発明の他の実施形態による多階層エンコーダの詳細的な構成を例示的に示す図である。
図16を参照すれば、本発明の実施形態による多階層エンコーダは、基本階層エンコーダ300、向上階層エンコーダ400B、フレームバッファ500及び第1、2メモリ600、700を含む。
基本階層エンコーダ300は関心領域ROI検出部301、第1インタ予測部302、第1イントラ予測部303、第1モード選択部304、第1減算部305、第1加算部306、第1変換部307、第1量子化部308、第1エントロピコーディング部309、第1レート制御部310、第1逆量子化部311、第1逆変換部312及び第1フィルタ313を備える。
【0144】
そして、向上階層エンコーダ400Bは、ダウンサンプリング部401B、第2インタ予測部402、第2イントラ予測部403、第2モード選択部404、第2減算部405、第2加算部406、第2変換部407、第2量子化部408、第2エントロピコーディング部409、第2レート制御部410、第2逆量子化部411、第2逆変換部412及び第2フィルタ413を備える。
【0145】
図16に示した多階層エンコーダは、空間スケーラビリティを支援する多階層エンコーダの他の例であり、基本階層エンコーダ300では、オリジナル映像の解像度を持つビデオデータについてのエンコード処理を行い、向上階層エンコーダ400Aでは、オリジナル映像の解像度を低下させたビデオについてのエンコード処理を行う。
例えば、オリジナルビデオデータの解像度がHDならば、基本階層エンコーダ300は、HD解像度のオリジナルビデオデータをエンコード処理する。そして、向上階層エンコーダ400Bは、ダウンサンプリングによって解像度を低下させたSDまたはCIFのビデオデータをエンコード処理する。
【0146】
図16に示した多階層エンコーダは、基本階層に比べて解像度の高いビデオデータを向上階層でエンコードするのに対し、
図15に示した多階層エンコーダは、基本階層に比べて解像度の低いビデオデータを向上階層でエンコードするという点で相異なる。
図15に示した多階層エンコーダの向上階層エンコーダ400Aは、フレームデータをアップサンプリング部401Aでアップサンプリング処理して高い解像度を持つフレームデータに変換させた後、エンコード処理を行う。
【0147】
これに対し、
図16に示した多階層エンコーダの向上階層エンコーダ400Bは、フレームデータを、ダウンサンプリング部401Bでダウンサンプリング処理して低い解像度を持つフレームデータに変換させた後、エンコード処理を行う。
これによって、
図16に示した多階層エンコーダの基本階層エンコーダ300は、
図15に示した基本階層エンコーダ300と構成及び動作が同一である。そして、
図16に示した多階層エンコーダの向上階層エンコーダ400Bは、
図15に示した向上階層エンコーダ400Aに適用されたアップサンプリング部401Aの代りにダウンサンプリング部401Bを適用する構成以外の残りの構成及び動作は同一であるので、重なる説明は略する。
【0148】
図15及び
図16で述べたブロックは、マクロブロックでありうる。また、マクロブロックと異なるサイズに設定してもよい。例えば、
図15及び
図16で、第1メモリ600及び第2メモリ700を、それぞれ基本階層エンコーダ300及び向上階層エンコーダ400Aまたは400Bの内部に配してもよい。
参照までに、
図15の多階層エンコーダの向上階層エンコーダ400A構成でアップサンプリング部401Aを削除し、現在フレームデータを第2インタ予測部402、第2イントラ予測部403及び第2減算部405にそれぞれ印加すれば、品質スケーラビリティを支援する多階層エンコーダを具現する。
【0149】
次いで、本発明の一実施形態によるビデオエンコード装置での多階層ビデオコーディングのためのレート制御方法について、
図23のフローチャートを参照して説明する。
まず、多階層エンコーダは、第1階層でのエンコード結果に基づいたエンコード統計情報を生成させる(S110)。第1階層は、ITU−T H.264/MPEG−4、Part 10 AVC標準で規定する基本階層になりうる。また、第1階層は、ITU−T H.264/MPEG−4、Part 10 AVC標準で規定する向上階層のうちの一つの階層になりうる。第1階層は、第2階層に比べて低い階層でなければならない。よって、第1階層を下位階層と称し、第2階層を上位階層と称してもよい。
【0150】
例えば、エンコード統計情報は、第1階層での領域別にエンコード過程で生成されたビット量に関する情報、現在フレームと予測フレームとのピクセルの絶対差の和に関する情報、領域別複雑度情報のうち一つ以上の情報が含まれる。ここで、領域は、GOP、フレームまたはマクロブロックのうち少なくとも一つ以上を含む。
【0151】
次いで、多階層エンコーダは、第1階層のエンコード統計情報に基づいて第2階層の領域別に割り当てられるターゲットビット量を定める(S120)。例えば、多階層エンコーダは、数式1ないし数式4を用いて、第2階層でエンコード処理するマクロブロックの位置に対応する第1階層のエンコード統計情報に基づいて、マクロブロック及び/またはフレームについてのターゲットビット量を定める。数式1ないし数式4で、基本階層は第1階層に当たり、向上階層は第2階層に当たる。
次いで、多階層エンコーダは、段階120(S120)で定められたターゲットビット量を適用し、第2階層でのエンコード処理を行う(S130)。多階層エンコーダは、第2階層で領域別に定められたターゲットビット量に基づいて、ビットレートを調節しつつ第2階層でのエンコード処理を行う。
【0152】
図23に示した段階130(S130)についての詳細なフローチャートを、
図24に示した。
図24を参照すれば、多階層エンコーダは、第2階層について定められた領域別ターゲットビット量と、第2階層のエンコード過程で領域別に発生したビット量との差に連動して、第2階層のエンコード処理に適用される量子化パラメータ値を定める(S210)。多階層エンコーダは、第2階層について定められたマクロブロック及び/またはフレームについてのターゲットビット量と、第2階層のエントロピコーディング処理で実際に生成されたビット量との差に連動して、量子化パラメータ値を定める。例えば、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量より大きい場合には、次いで処理するマクロブロックについての量子化パラメータ値を減少させ、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量より小さな場合には、次いで処理するマクロブロックについての量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次いで処理するマクロブロックについての量子化パラメータ値をそのまま維持する。
【0153】
多階層エンコーダは、段階210(S210)で定められた量子化パラメータ値を適用し、第2階層のエンコード処理過程での量子化処理を行う(S220)。多階層エンコーダは、定められた量子化パラメータ値を適用し、第2階層のエンコード過程で生成されたレジデュアル変換係数を量子化処理する。
次いで、本発明の他の実施形態によるビデオエンコード装置での多階層ビデオコーディングのためのレート制御方法についても、
図25のフローチャートを参照して説明する。
【0154】
多階層エンコーダは、入力映像に関する関心領域情報を生成する(S310)。例えば、多階層エンコーダは、前述した
図6ないし
図8に示した関心領域検出部を用いて関心領域情報を生成する。
多階層エンコーダは、段階310(S310)で生成された関心領域情報に基づいて、第2階層での量子化パラメータ値を割り当てる(S320)。多階層エンコーダは、第1階層で生成された関心領域情報に基づいて、第2階層で領域別に割り当てられるパラメータ値を定める。例えば、第2階層でエンコードするマクロブロック位置に対応する第1階層のマクロブロックを探し出し、探し出した第1階層のマクロブロックに関する関心領域情報を用いて、第2階層についてのマクロブロックの量子化パラメータ値を割り当てる。
図24に示したように、関心領域内での量子化パラメータ値を、非関心領域内の量子化パラメータ値に比べて相対的に小さな値に定める。
【0155】
多階層エンコーダは、段階320(S320)で割り当てられた量子化パラメータ値に基づいて、第2階層での量子化処理を行う(S330)。例えば、多階層エンコーダは、第2階層でエンコードする現在マクロブロックに割り当てられたターゲットビット量と、現在マクロブロックのエントロピコーディング処理で実際に生成されたビット量との差に連動して、次のマクロブロックに割り当てられている量子化パラメータ値を調整し、調整された量子化パラメータ値を適用して、第2階層のエンコード過程で生成されたレジデュアル変換係数を量子化処理する。
【0156】
次いで、本発明のさらに他の実施形態によるビデオエンコード装置での多階層ビデオコーディングのためのレート制御方法について、
図26のフローチャートを参照して説明する。
まず、多階層エンコーダは、第1階層でのエンコード結果に基づいたエンコード統計情報及び関心領域ROI情報を生成する(S410)。第1階層でのエンコード結果に基づいたエンコード統計情報及び関心領域ROI情報を生成するプロセスについては上述したので、重なる説明は略する。
【0157】
次いで、多階層エンコーダは、第1階層のエンコード統計情報に基づいて、第2階層の領域別に割り当てられるターゲットビット量を定める(S420)。例えば、多階層エンコーダは、数式1ないし数式4を用いて、第2階層でエンコード処理するマクロブロックの位置に対応する第1階層のエンコード統計情報に基づいて、マクロブロック及び/またはフレームについてのターゲットビット量を定める。数式1ないし数式4で、基本階層は第1階層に当たり、向上階層は第2階層に当たる。
【0158】
次いで、多階層エンコーダは、第1階層で生成された関心領域情報に基づいて第2階層での量子化パラメータ値を割り当てる(S430)。例えば、第2階層でエンコードするマクロブロック位置に対応する第1階層のマクロブロックを探し出し、探し出した第1階層のマクロブロックに関する関心領域情報を用いて、第2階層についてのマクロブロックの量子化パラメータ値を割り当てる。
【0159】
次いで、多階層エンコーダは、第2階層で領域別に定められたターゲットビット量及び量子化パラメータ値を用いて、第2階層でのエンコード処理を行う(S440)。多階層エンコーダは、第2階層について定められたマクロブロック及び/またはフレームについてのターゲットビット量と、第2階層のエントロピコーディング処理で実際に生成されたビット量との差に連動して、段階430(S430)で割り当てられた量子化パラメータ値を調整する。例えば、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量より大きい場合には、次いで処理するマクロブロックについての量子化パラメータ値を減少させ、基本階層のエンコード統計情報に基づいて定められたターゲットビット量が実際に生成されたビット量より小さな場合には、次いで処理するマクロブロックについての量子化パラメータ値を増加させる。そして、ターゲットビット量が実際に生成されたビット量と同じ場合には、次いで処理するマクロブロックについての量子化パラメータ値をそのまま維持する。多階層エンコーダは、このように調整された量子化パラメータ値を適用して、第2階層のエンコード過程で生成されたレジデュアル変換係数を量子化処理する。
【0160】
図27は、本発明の実施形態によるビデオ提供装置の具現例を示すブロック図である。
図27を参照すれば、本発明の実施形態によるビデオ供給装置2000は、プロセッサ(CPU)810、多階層エンコーダ820、ネットワークインターフェース(I/F)830、ユーザインターフェース(UI)840、ビデオソース850及びバス860を備える。
【0161】
バス860は、ビデオ供給装置2000の構成手段間にデータまたは制御信号を伝送する伝送路である。
ビデオソース850は、ビデオキャプチャーデバイスであり、例えば、ビデオカメラ、ビデオコンテンツ供給装置、カメラフォン、ビデオフォン、カメラ付き携帯電話などが含まれる。
多階層エンコーダ820には、
図2に示したようなビデオエンコーダ120が適用される。
【0162】
ネットワークインターフェース830は、多階層エンコーダ820でエンコード処理された基本階層及び/または向上階層ビットストリームを、有線または無線通信チャネルを通じて腕先デバイスに伝送するソフトウェア及び/またはハードウェアを含む。
ユーザインターフェース840は、プロセッサ810の動作を制御するための制御信号またはプロセッサ810によって処理されるデータを入力できる装置であり、タッチパッド、マウス、キーパッドまたはキーボードで具現される。
【0163】
図28は、本発明の実施形態によるビデオサービスシステムの具現例を示すブロック図である。
図28を参照すれば、
図28は、本発明の実施形態によるビデオサービスシステム3000は、ネットワーク900、ビデオ供給装置910及びネットワーク900に接続された一つ以上の腕先デバイス911ないし917を備える。
ネットワーク900は、有線または無線通信網で具現される。
【0164】
ビデオ供給装置910は、
図27に示したようなビデオ供給装置2000が適用される。
腕先デバイス911ないし917は、テレビ(TV)911、パソコン(PC)912、個人携帯情報端末(PDA)913、携帯電話914、ナビゲーション915、ビデオゲームデバイス916、ノート型パソコン917などが含まれる。腕先デバイスは、これに限定されず、デジタルビデオデータを受信してデコードできる多様なデバイスを含む。
【0165】
以上、図面及び明細書で最適の実施形態が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載した本発明の範囲を制限するために使われたものではない。したがって、当業者ならば、これより多様な変形及び均等な他の実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって定められねばならない。