(57)【特許請求の範囲】
【請求項１】
映像符号化方法であって、
複数のグループ・オブ・ピクチャ（ＧＯＰ）を形成するステップと、
前記複数のＧＯＰの並列のスレッドによる符号化を開始するステップであって、前記複数のＧＯＰの各々は最初にＩフレームを有し該Ｉフレームの後に一連のＰフレームが続く、ステップと、
先行するＧＯＰに属する符号化されたＰフレームが存在する場合に、該Ｐフレームから導出された第一の基準フレームを利用して、前記先行するＧＯＰ直後のＧＯＰのＩフレームのフリッカを除去するための符号化を施すステップと、
前記先行するＧＯＰ直後のＧＯＰに属する符号化されたＩフレームが存在する場合に、該Ｉフレームから導出された第二の基準フレームを利用して、前記先行するＧＯＰの一連のＰフレームのうちの最後のＰフレームのフリッカを除去するための符号化を施すステップと
を含む映像符号化方法。
【請求項２】
前記第一の基準フレームを近似するため、前記Ｉフレームの符号化において、所定値よりも小さな値の量子化パラメータが使用される、請求項１記載の映像符号化方法。
【請求項３】
前記最後のＰフレームの符号化において前記小さな値より大きな値の量子化パラメータが使用される、請求項２記載の映像符号化方法。
【請求項４】
前記第一の基準フレームは、１つのパスの簡易化されたＰフレームの符号化により生成される、請求項１記載の映像符号化方法。
【請求項５】
前記簡易化されたＰフレームの符号化において、前記Ｉフレームと前記先行するＧＯＰに属する符号化されたフレームとの間の相関が低かった場合、所定値より大きな値のサーチレンジが適用される、請求項４記載の映像符号化方法。
【請求項６】
前記簡易化されたＰフレームの符号化において、前記Ｉフレームと前記先行するＧＯＰに属する符号化されたフレームとの間の相関が高かった場合、所定値より小さな値のサーチレンジが適用される、請求項４記載の映像符号化方法。
【請求項７】
前記簡易化されたＰフレームの符号化において、モード選択におけるスキップモードのチェックを控える、請求項４記載の映像符号化方法。
【請求項８】
前記簡易化されたＰフレームの符号化において、Ｐ１６×１６モードのみをチェックする処理、所定値より小さな値のサーチレンジを使用する処理、現在のフレームのマクロブロックと予測の基準のマクロブロックとの間で整合する歪みを符号化する処理、ＲＤＯ−ＭＳにおいてＲＤコストを修正する処理、並びに、スキップモード及びイントラモードの使用を防止する処理を実行する、請求項４記載の映像符号化方法。
【請求項９】
前記相関は、フレーム間の複雑度の総和により決定される、請求項５記載の方法。
【請求項１０】
前記相関は、フレーム間の複雑度の総和により決定される、請求項６記載の方法。
【請求項１１】
複数のグループ・オブ・ピクチャ（ＧＯＰ）を形成する手段と、
前記複数のＧＯＰの並列のスレッドによる符号化を開始する手段であって、前記複数のＧＯＰの各々は最初にＩフレームを有し該Ｉフレームの後に一連のＰフレームが続く、手段と、
先行するＧＯＰに属する符号化されたＰフレームが存在する場合に、該Ｐフレームから導出された第一の基準フレームを利用して、前記先行するＧＯＰ直後のＧＯＰのＩフレームのフリッカを除去するための符号化を施す手段と、
前記先行するＧＯＰ直後のＧＯＰに属する符号化されたＩフレームが存在する場合に、該Ｉフレームから導出された第二の基準フレームを利用して、前記先行するＧＯＰの一連のＰフレームのうちの最後のＰフレームのフリッカを除去するための符号化を施す手段と
を有する映像符号化装置。
【請求項１２】
映像符号化装置に映像符号化方法を実行させるソフトウェアプログラムであって、前記映像符号化方法は、
複数のグループ・オブ・ピクチャ（ＧＯＰ）を形成するステップと、
前記複数のＧＯＰの並列のスレッドによる符号化を開始するステップであって、前記複数のＧＯＰの各々は最初にＩフレームを有し該Ｉフレームの後に一連のＰフレームが続く、ステップと、
先行するＧＯＰに属する符号化されたＰフレームが存在する場合に、該Ｐフレームから導出された第一の基準フレームを利用して、前記先行するＧＯＰ直後のＧＯＰのＩフレームのフリッカを除去するための符号化を施すステップと、
前記先行するＧＯＰ直後のＧＯＰに属する符号化されたＩフレームが存在する場合に、該Ｉフレームから導出された第二の基準フレームを利用して、前記先行するＧＯＰの一連のＰフレームのうちの最後のＰフレームのフリッカを除去するための符号化を施すステップと
を含む、ソフトウェアプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化に関するものであり、より詳細にはビデオがグループ・オブ・ピクチャ（GOP）に符号化されるIフレームのフリッカアーチファクトの除去に関するものである。
【背景技術】
【０００２】
GOP符号化ビデオを再生するとき、迷惑な振動、いわゆるフリッカによるアーチファクトが同じシーンにおけるGOPについて周期的なIフレームで通常見られる。特に低速又は中側のビットレートのビデオ符号化について、このIフレームのフリッカは、非常に目立って見られ、これは、符号化ビデオの全体の知覚的な品質を大いに妥協させる。
【０００３】
オリジナルのビデオ信号は、自然に滑らかなオプティカルフローを有する。しかし、乏しい品質のビデオ符号化の後、自然のオプティカルフローは、符号化ビデオ信号において歪まされる。符号化されたフレームにわたる結果として時間的な不一致／矛盾は、フリッカによるアーチファクトとして知覚される。実際に、フリッカは、符号化されたビデオの静的又は低速の動きの領域／部分で頻繁に知覚される。たとえば、幾つかの連続するフレームは、同じ静的な背景を共有する場合がある。従って、これらのフレームにわたり静的な背景における全ての配列された画素は、オリジナルの入力ビデオにおいて同じ又は類似の画素値を有する。しかし、ビデオ符号化において、配列された画素は、異なるフレームにおける異なる基準画素から予測される場合があり、従って残差を量子化した後、異なる再構成の値を生じる場合がある。視覚的に、これらのフレームにわたる増加されるフレーム間の差は、符号化ビデオの再生の間にフリッカとして知覚される。
【０００４】
このように、フリッカによるアーチファクトは、粗い量子化による低速又は中速のビットレート符号化について更に激しい。また、Pフレーム又はBフレームに関してよりもIフレームに関して更に明らかに観察される。これは主に、同じ静的領域について、Pフレーム又はBフレームにおけるフレーム間予測から得られる予測残差の結果は、Iフレームにおけるフレーム内予測又は予測なしから得られる結果よりも通常は非常に小さいためである。従って、粗い量子化により、Iフレームにおける再構成された静的領域は、前のP又はBフレームにおける配列された領域よりも顕著な差を示し、従ってより顕著なフリッカによるアーチファクトを示す。従って、Iフレームのフリッカをどのように除去するかは、重要な問題であり、この重要な問題は、全体的な知覚によるビデオ符号化の品質に大いに影響を及ぼす。
【０００５】
大部分の既存のエンコーダを利用したIフレームのフリッカを除去するスキームは、GOPシーケンシャルなシングルスレッドのビデオ符号化のケースについて設計されており、この場合、Iフレームを符号化するとき、その中間の前のフレームは、既に符号化されている。従って、再構成された前のフレームを容易に使用して、現在のフレームについてフリッカのない基準を導出することができ、次いで、このフリッカのない基準は、現在のIフレームのフリッカを除去するために使用することができる。
【０００６】
図１は、GOPシーケンシャルなシングルスレッドの符号化のために一般的に使用される２パスのIフレームのフリッカを除去するアプローチである。この場合、P_last４は、I_next８を符号化する前に常に符号化され、従ってそのフリッカの除去についてI_next８のフリッカのない基準（ref）を導出するために常に利用される。P_last４はI_next８の直前であるため、しばしば２つのフレームは高い相関があり、従って導出されるフリッカのない基準は、一般にフリッカの除去に良好である。
【０００７】
１つのシングルスレッドの代わりに、複数の符号化スレッドを使用することは、リアルタイムのビデオ符号化システムにおいて計算的に集中するビデオ符号化プロセスを大いに加速するため、一般的に使用される効果的な並列化ストラテジである。マルチスレッドが実際に多くの様々なやり方において利用される一方で、１つの簡単、従って一般的に採用されるアプローチは、複数のスレッドに複数のGOPをそれぞれ且つ同時に符号化させることである。これは、GOPパラレル符号化のシナリオである。本明細書を通して、用語「GOPパラレル“GOP  parallel”」及び「マルチスレッド“multi-thread”」は、交換可能に使用され、用語「GOPシーケンシャル“GOP  sequential”」及び「シングルスレッド“single-thread”」は、交換可能に使用される。
【０００８】
マルチスレッド符号化は、Iフレームのフリッカの除去を、GOPシーケンシャルなシングルスレッドの符号化のケースにおいてよりも困難なタスクにする。シングルスレッドの符号化では、Iフレームを符号化するとき、Iフレームの直前にあるフレームは、既に符号化されており、その再構成を容易に利用して、（たとえば最初の符号化パスについて包括的又は簡略化されたPフレーム符号化を介して）現在のIフレームのフリッカ除去の符号化（deflicker  coding）のための良好なフリッカのない基準を導出することができる。しかし、GOPパラレル・マルチスレッド符号化の場合、Iフレームを符号化するとき、２つのフレームは、２つの異なる符号化スレッドにより符号化される２つの異なるGOPに属する場合があるので、その直前のフレームは、未だ符号化されていない可能性が高い。この場合、１つの解決策は、フリッカを除去するため、そのフリッカのない基準を生成するために現在のIフレームに最も近い前のGOPにおける符号化されたフレームを使用することである。しかし、２つのフレームは良好に相関しないように、そのフレームが現在のフレームから余りに離れている場合、良好なフリッカのない基準は、そのフレームから導出されず、従って適切なフリッカの除去は、達成されない場合がある。
【０００９】
一般に、他の符号化アーチファクトと同様にIフレームのフリッカは、符号化プロセスを適切に変更するか、幾つかの効果的な後処理をデコーダに追加するかのいずれかにより除去又は低減することができる。しかし、後処理に基づくフリッカの除去は、実際のビデオ符号化の応用において良好な解決策ではないことがある。これは、符号化されたビデオストリームが様々な異なる製造業者からのデコーダ／プレーヤによりデコードされる場合があり、様々な異なる製造業者のうちの幾つかは（たとえば製造コストを低減するために）特定の後処理技術を採用していない場合があるからである。
【発明の概要】
【課題を解決するための手段】
【００１０】
複数のグループ・オブ・ピクチャ（GOP）が形成され、並列なスレッドにおいて符号化されるビデオ符号化方法が提供される。それぞれの符号化されたGOPは、最初のIフレームと後続する一連のPフレームを有する。それぞれのIフレームは、前のGOPの最も近い符号化されたフレームからの第一の導出されたフリッカのない基準でフリッカ除去の符号化が施され、前のGOPの一連のPフレームにおける最後のPフレームは、フリッカ除去の符号化が施されたIフレームからの第二の導出されたフリッカのない基準でフリッカ除去の符号化が施される。第一のフリッカのない基準を厳密に近似するため、量子化パラメータ（QP）の小さな値がIフレームの符号化において採用される。QPの中間の値は、最後のPフレームを符号化するのに使用される。本方法において、第一の導出されたフリッカのない基準は、１つのパスが簡略化されたPフレーム符号化により生成される。簡略化されたPフレーム符号化は、Iフレームと前のGOPにおいて最も近い符号化されたフレームとの間の低い相関について大きな動きのサーチレンジを適用するステップを含む。簡略化されたPフレームの符号化は、Iフレームと前のGOPにおいて最も近い符号化されたフレームとの間の高い相関について小さな動きのサーチレンジを適用するステップを含むか、又はモード選択においてスキップモードのチェックを控えるステップを含み、相関は、フレーム間の複雑度を合計することで決定される。簡略化されたPフレームの符号化は、P16×16モードのみをチェックするステップ、小さい動きのサーチレンジを使用するステップ、現在のフレームMBと前の基準MBとの間で整合する歪みを符号化するステップ、RDO-MSにおけるRDコストを変更するステップ、これによりスキップ及びイントラモードを防止又は阻止するステップを含む。
【図面の簡単な説明】
【００１１】
本発明は、以下の添付図面を参照して例示を通して記載される。
【図１】GOPシーケンシャル・シングルスレッド符号化について、既存の２パスによるIフレームのフリッカ除去に関する図である。
【図２】本発明に係るGOPパラレル・マルチスレッド符号化について、Iフレームのフリッカ除去に関する図である。
【図３】図２のマルチスレッド・Iフレームのフリッカ除去の解決策に関する結果としてフリッカ除去の性能に関する図である。
【図４】マルチスレッド・Iフレームのフリッカ除去に関する図である。
【図５】図４のdeflicker_bufferからの適切な基準フレームのロードを示すブロック図である。
【図６】図４のdeflicker_bufferへの現在のフレーム符号化の結果の記憶を示す図である。
【図７】I_next  MBのフリッカ除去の符号化を示す図である。
【図８】P_last  MBのフリッカ除去の符号化を示す図である。
【発明を実施するための形態】
【００１２】
GOPパラレルなマルチスレッドビデオ符号化のシナリオでは、GOPは、IDRフレームで開始し、Pフレームで終了する。なお、GOP間予測、すなわちGOPの境界を越える予測は、レンダリングにより多かれ少なかれ符号化効率を改善するが、このGOPパラレル・マルチスレッド符号化アーキテクチャにおいてサポートすることが困難である。従って、先の仮定は常に当てはまる。一般性を欠くことなしに、それぞれのGOPは、１つのIフレームのみを有し、この１つのIフレームは、その最初のフレームでもあることが想定される。
【００１３】
以下の記載では、同じシーンにおける２つの連続するGOPの符号化に焦点が当てられ、従って第二のGOPの最初のIフレームのフリッカ除去について焦点が当てられる。第一のGOP及び第二のGOPの最初のIフレームは、“I_curr”及び“I_next”とそれぞれ示される。最初のGOPにおける最後のPフレームは、“P_last”と示される。一般性を失うことなしに、２つのGOPは、２つの異なる符号化スレッドにより個別に符号化され、一方のスレッドがI_nextを符号化し始めるとき、別のスレッドは、前のGOPを部分的にのみ符号化する。最も高い表示順序を有する最初のGOPにおける符号化されたフレームは、“P_curr”と示される。なお、P_currのフレームは、実際に、Iフレームとは異なるフレームタイプからなる。ここで、P_currの使用は、表記の便宜のためのものである。また、P_currは、I_nextに最も近い前のGOPにおける符号化されたフレームである。これらの表記は、図１及び図２に例示される。
【００１４】
図２を参照して、GOPパラレル・マルチスレッド符号化の場合、２つのGOPが２つの異なる符号化スレッドによりそれぞれ符号化される場合があるので、P_last１４は、I_next１８を符号化するとき、未だ符号化されていない可能性が高い。従って、I_next１８のフリッカ除去は、最も近くの符号化された前のフレーム、すなわちP_curr１２に頼る必要がある。ここでの課題は、以下の通りである。P_curr１２は、P_last１４よりもI_next１８から更に離れているので、I_next１８と非常に相関が低い場合がある。その場合、P_curr１２からI_next１８について良好なフリッカのない基準をどのように導出すべきかは、P_last１４から導出するよりも困難なタスクである。少なくとも１つの実現では、この問題を解決するための新たな簡略化されたPフレーム符号化スキームが提案される。以下に詳細に説明されるように、提案されるスキームは、良好なマルチスレッドのフリッカ除去の性能のために重要な以前の簡略化されたPフレーム符号化スキームとの多くの重要な違いを有する。
【００１５】
I_next１８の新たなフリッカ除去の符号化のほかに、本発明における第二の技術は、P_last１４の提案されるフリッカ除去の符号化である。マルチスレッド符号化では、あるスレッドが現在のGOPにおける最後のフレーム、すなわちP_last１４を符号化しようとしているとき、次のGOPにおける最初のIフレーム、すなわちI_next１８は、別のスレッドにより既に符号化されている。この場合、P_last１４のフリッカ除去の符号化を行うことが提案される。なお、I_next１８のフリッカ除去の符号化において、I_next１８が量子化パラメータ（QP）の小さな値で符号化することができ、従ってそのフリッカのない基準を厳密に近似するように、より多くのビットがフレームに割り当てられる。しかし、新たなP_lastのフリッカ除去の符号化では、フリッカのない基準を厳密に近似することは、それ以上望まれない。これは、P_lastとI_next１８は非常に相関しているが、P_currとP_last１４は相関しておらず、従って時間的な矛盾、すなわちフリッカによるアーチファクトがP_last１４の前のフレームとI_next１８との間に存在する場合があるためである。
【００１６】
従って、この場合、P_last１４について、その符号化された前のフレーム又は符号化されたI_next１８の何れかから導出されたフリッカのない基準を厳密に近似するのではなく、最良のフリッカ除去の性能のため、その符号化された前のフレームと符号化されたI_next１８との間で良好に釣り合いを取ることが好ましい。従って、P_last１４の提案されるフリッカ除去の符号化スキームでは、そのフリッカのない基準は、I_nextのフリッカ除去の符号化におけるのと同じ新たに提案される簡略化されたPフレームの符号化を介して、符号化されたI_next１８から導出される。しかし、適度な更なるビットの量のみがP_last１４に更に割り当てられる。従って、結果として得られる再構成されたP_last１４は、その前のフレーム及びI_next１８の適切な混合を表し、これは、その前のフレームとI_next１８との間の更に平滑な遷移をレンダリングする。
【００１７】
全体の提案されるフリッカ除去の解決策及び所望のフリッカ除去の性能は、図２及び図３にそれぞれ例示される。
【００１８】
提案されるフリッカ除去のスキームの実現は、図４〜図８において更に詳細に説明される。図４は、それぞれのフレームを符号化する提案されるスキームに関する全体のフローチャートである。これは、全ての符号化スレッドのそれぞれにより行われる、提案されるフレーム符号化スキームを示す。ステップ２０で、あるスレッドがあるフレームを符号化しているとき、このスレッドは、適格とされるP_last１４フレーム又はI_next１８フレームであるかをはじめにチェックする。そうである場合、スレッドは、フレームのフリッカ除去の符号化のため、flicker_bufferから適切な基準フレームをロードする。
【００１９】
実現において、deflicker_bufferは、複数のスレッドの全てがI_next１８又はP_last１４のフリッカ除去についてそれらの符号化結果を記憶及び共有するのを支援する重要且つ有効なバッファリングメカニズムである。本発明の実現では、deflicker_bufferは、３つの部分を含む。
【００２０】
１）deflicker_var_buffer：それぞれの符号化スレッドについて１つであり、thread_IDにより索引付けされ、たとえば（“CurrFrmNumber”により示される）現在の符号化フレーム番号、（“SumComplexityFromCurrFrmToGOPEnd”により示される）現在のフレームからGOPの終了までの累積されるフレーム符号化の複雑度といった、あるスレッドの符号化状態の変数を記録する。  
２）deflicker_frm_buffer：全てのスレッドについて１つであり、最後のP_last又はI_next、並びに可能性のあるフリッカ除去の符号化のためのそれらの関連する他の情報を記憶する。  
３）prev_frm_buffer：それぞれの符号化スレッドについて１つであり、それぞれのスレッドについて、最も高い表示順序を有する符号化フレーム及びその関連する他の情報を記憶する。
【００２１】
これらのバッファの使用は、図４〜図８において説明される。なお、簡潔さのため、バッファの初期設定は示されない。ステップ２４で、従来のMB符号化プロセスは、オリジナルのビデオフレームをターゲットフレームとして見なし、次いで、全てのMB符号化モードのオプションから、すなわちフレーム間予測及びフレーム内予測モードの全てから、最小にされる速度歪み（RD:  Rate  Distortion）コストの基準に基づいて、最良の符号化モードを選択する。これは、いわゆるRDについて最適化されたモード選択（RDO-MS）である。次いで、MBは、選択された最良の符号化モードにより出力ビットストリームに符号化される。また、MBの従来の符号化は、Iフレーム及びPフレームのそれぞれにおけるMBについてステップ７８及び９６において説明される。ステップ２６について、P_last  MBのフリッカ除去の符号化は、図８において詳細に説明される。その基準フレームのバッファのロード及びアップデートは、図５及び図６においてステップ４２，４４，４６，４８及び４９に説明される。図６は、ステップ２８の詳細を提供するものであり、SaveCurrFrmの関与する変数は、図５におけるステップ４９，４４及び４０において示されるように管理される。
【００２２】
図５は、deflicker_bufferからの適切な基準フレームのロードを説明する。“curr_thread_ID”は、現在の符号化スレッドを識別するインデックスである。ステップ３０で、“SumComplexityToGOPEnd”は、現在のフレームとI_nextとの間の相関を測定するために採用されるそれぞれのフレームの量である。本発明の実現では、２つの連続するフレーム間の複雑度は、以下のように計算される。
【００２３】
【数１】
0005579731.tif 000002
ここで、Cmplは、後者のフレームの複雑度を示す。
【００２４】
［外１］
0005579731.tif 000003
は、あるフレームにおける全てのMBを通しての平均されたMV符号化ビットを示し、
［外２］
0005579731.tif 000004
は、あるフレームにおける全てのMBを通してのMB動き予測の平均された輝度のMAD（Mean  Absolute  Difference）を示す。なお、図６におけるTH1及び図７におけるTH2は、特定の複雑度の基準に関連する閾値である。式（１）における複雑度の基準によれば、TH1=250，TH2=20である。高い複雑度は、フレーム間の低い相関を意味する。
【００２５】
図５は、P_last１４を符号化するとき、プロセスは、I_next１８が既に符号化されているか（ステップ３２，３４）否かをチェックする。既に符号化されている場合、ステップ３６で、P_lastの符号化が終了されるのを待ち、次いで、P_last１４のフリッカ除去の符号化のためにdeflicker_buffer（ステップ４０）からI_next１８をロードする。さもなければ、ステップ４２，４４で、P_last１４は、従来のPフレーム符号化プロセスを受ける。
【００２６】
I_nextを符号化するとき、ステップ３８で、P_lastが利用可能であるか否かがはじめにチェックされる。利用可能である場合、I_nextをフリッカ除去の符号化のためにP_lastをロードする（ステップ４０）。さもなければ、ステップ４２で、有用なP_currが利用可能であるかが更にチェックされる。ここで、有用なP_currは、SumComplexityToGOPEnd＜TH1をもつP_currフレーム、すなわちI_nextと良好な相関を有するP_currとして定義される。利用可能である場合、ステップ４４で、そのP_currは、I_nextのフリッカ除去のためにロードされる。ステップ４６で、マルチスレッド符号化のため、あるスレッドはステップ４６においてP_lastを符号化している一方で、I_nextは、別のスレッドに割り当てられており、既に符号化されているか、未だ符号化が開始されていないか、又は符号化の途中である場合がある。
【００２７】
ステップ４６は、I_nextが符号化の途中であるかをチェックする。符号化の途中である場合、現在の符号化のスレッドは、他のスレッドがI_nextの符号化を終了するまで待つ。従って、ステップ４６の後、I_nextは、既に完全に符号化されているか、又は未だ符号化を開始していない。次いで、ステップ４８は、どのケースが当てはまるかをチェックする。I_nextが既に符号化されている場合、ステップ４９に進む。さもなければ、ステップ４２に進む。ステップ４９で説明されたように、I_nextが符号化されたとき、符号化されたI_nextを利用して、現在のP_lastフレームのMBフリッカ除去の符号化のため、フリッカのない基準を生成する。オリジナルのフレーム及び再構成された前のフレームは、図５におけるPrevFrmPrig及びPrevFrmRecomとして示される。P_last  MB符号化に関して、PrevFrmRecomは、図８におけるステップ８２で使用され、これらの両者は、P16×16予測の基準MBの関連する再構成歪みを計算するため、ステップ９２で使用される。DeflickerCurrFrmは、現在の実現において使用されるフラグであり、このフラグは、フリッカ除去の符号化が現在のフレーム符号化のために使用されるかを示す。SaveCurrFrmは、deflicker_bufferの更新のために図６のステップ５０でチェックされるフラグである。
【００２８】
図６は、現在のフレーム符号化の結果で更新されるdeflicker_bufferを示す。ステップ５０で、SaveCurrFrmが真である場合、I_next１８又はP_last１４フレームは、ステップ５４で、P_last１４又はI_next１８のそれぞれのフリッカ除去の後でdeflicker_frm_bufferに記録される。さもなければ、現在の符号化されたフレームがI_nextのフリッカ除去のためにこれまでのところ最も有効なフレームである場合、現在のフレーム結果は、ステップ５２，５３で、prev_frm_buffer[curr_thread_ID]に記録され、後に、I_nextフリッカ除去のためにP_currとしてロードされる。なお、図６における全ての４つの条件が満たされたときにのみ、現在のフレームの結果を記憶する必要がある。
【００２９】
図７は、I_next  MBのフリッカ除去の符号化を示す。ここで、QPは、現在のMBの符号化QPを示す。ここで、QP_PrevFrmは、ロードされた基準フレームのMB平均を示す。ME_rangeは、動きベクトルのサーチレンジを示す。ここで、ME_SADは、動き予測後の選択された動きベクトルの予測残差の絶対値の総和（Sum  of  Absolute  Difference）を示す。TH3=10である。この条件は、ステップ６０及び６２で、あるMBが動きを有するか、静止しているかをチェックすることである。QP_Curr  MBは、速度制御から計算された現在のMBの符号化QPを示す。なお、速度制御では、より多くのビットをI_nextに割り当てて、その低いQP符号化を保証し、符号化されたI_nextがそのフリッカのない基準を厳密に近似するようにする。
【００３０】
図７において、ステップ６３で、そのフリッカ除去の符号化のためにI_nextのフリッカのない基準を生成するためにP_lastが使用されル場合、フリッカ除去は、ステップ６４及び７８で示されたGOPシーケンシャル・シングルスレッドスキームと同じであることが期待される。このケースは、GOPパラレル・マルチスレッド符号化の最良の達成可能なフリッカ除去の性能を実際に現す。さもなければ、P_lastの代わりに、P_currは、フリッカのない基準を生成するために使用され、ステップ６６〜７６で説明された、I_nextのフリッカ除去の符号化のために使用される。
【００３１】
図７は、新たに提案される簡略化されたPフレーム符号化の少なくとも1つの実現の詳細を示し、この実現は、シングルスレッド符号化のために簡略化されたPフレーム符号化スキームとは多くの重要な違いを含む。これらの違いは、以下のように要約される。
【００３２】
１）適応MEサーチレンジ：P_currがI_nextと高い相関を有する場合、（たとえば５といった）小さなサーチレンジを使用する。さもなければ、（例えば１０といった）大きなサーチレンジを使用する。  
２）簡略化されたRDの最適化されたモード選択（RDO-MS）におけるスキップモードのチェックを行わない。  
３）現在のMBがスタティックなMBでないか、又はインターモードがRDO-MSを介して選択された場合、フリッカのない基準を生成するため、品質が整合されたQPをもつP16×16を常に使用する。
【００３３】
これらの違いの他に、ステップ６６〜７６におけるP_currを介したI_nextのフリッカ除去の符号化は、従来のシングルスレッドのIフレームのフリッカ除去の符号化におけるのと殆ど同じスキームに従う。要するに、MBのME_SADがある閾値よりも大きく、最良のRDの最適モードがイントラ予測モードである場合、MBは、速い動き（high  motion）として識別され、従ってフリッカ除去の符号化が不要なフリッカに鈍感なMBとして識別され、従って、ステップ９０で示されるように、オリジナルMBをターゲットMBとする従来のやり方で符号化される。さもなければ、MBは、低速の動きとして識別され、従ってフリッカの傾向があるMBとして識別され、フリッカ除去のために符号化されることになる。その場合、フリッカのない基準MBは、ステップ９２で示されるように最初に生成され、次いで、現在のMB符号化のためのターゲットMBとして見なされる。
【００３４】
図８は、P_last  MBのフリッカ除去の符号化を示す。図７におけるようなI_next  MBのフリッカ除去の符号化との違いが以下に示される。
【００３５】
１）P_lastがI_nextの直前にあるとき、両者の間で高度に相関した領域は、フリッカの傾向があるように、低速の動きからなる必要がある。従って、ステップ８０で設定された小さなMEのサーチエリアが適切である。ステップ６６〜７６と同様に、ステップ８４〜９０は、従来のシングルスレッド・Iフレームのフリッカ除去の符号化におけるのと殆ど同じスキームに従う。
【００３６】
２）P_last  MBのフリッカ除去のための速度制御からのQP_CurrMBは、ステップ９２及び９４において示された中央値を有する。先に記載されたように、その再構成を、符号化されたI_nextとその符号化された先行するフレームとの間で適切に釣り合いがとれたものとするか又は両者を混合したものとなるように、P_lastの中位の符号化品質が好まれる。
【００３７】
３）実際の符号化の二番目のパスにおいて、スキップモードが使用されない。代わりに、ステップ９６で、Safe_Skipモードが使用される。Safe_Skipモードは、スキップモードと同じMVをもつ代替的なP16×16モードであり、すなわちMV符号化ビットを受けない。なお、このモードでは、予測残差は、スキップモードの符号化の予期しない悪い品質を防止するように符号化される。スキップモードは、たとえばH.264/AVCといった近年の映像符号化規格の大部分において標準化されたMB符号化モードであり、このH.264/AVCでは、フレーム間予測を使用してMBが符号化されることを規定しているが、動き補償から隣接する符号化されたMBの動きベクトルから予測された正確な動きベクトルを使用し、予測残差の符号化が除かれる。  
従って、スキップモードは、最も少くビットを消費するMB符号化モードを表し、大抵、全ての符号化モードのうちで最も大きな符号化歪みを持つモードである。SafeSkipモードは、本発明で提案される新しいスキップモードに代わるモードであり、スキップモードと同じ動きベクトルを使用するが、P16×16モードにおけるような予測残差を符号化する。従って、たとえばP16×8，8×16，8×8，8×4，4×8，4×4等といった他のインター予測モードに比較して、動きベクトルの符号化にビットを費やすことがない一方で、関連する残差の符号化による類似の符号化歪みを生じる。
【００３８】
また、P_last又はI_next  MBのフリッカのない生成における簡略化されたRDO-MSは、それぞれの候補となるモードについて修正されたRDコストを共に含み、このRDコストは、最終的に優れた、信頼できるフリッカ除去の性能のために重要である。基本的に、RDO-MSにおいてRDコストを修正することにより、スキップ及びイントラモードはより奨励されない一方、インター予測モードがより好ましい。これは、良好なフリッカ除去の性能のために効果的な手段であることがわかる。特に、フリッカのない基準の生成において、インターモードのRDコストは、増加された好み及びP_last  MBについて０．７で乗算され、フリッカのない基準の生成及び実際の符号化の両者において、イントラモードのRDコストは、低減された性能のために２．５で乗算される。
【００３９】
最後に、先に述べたように、速度制御は、I_next１８及びP_last１４のフリッカ除去の符号化と上手く連携する必要がある。基本的に、フレームレベルの速度制御において、より多くのビットがI_nextのフリッカ除去のために割り当てられる必要がある一方、適度な量のビットがP_lastのフリッカ除去のために割り当てられる必要がある。これは、通常、フレームレベルのビット割り当てを行うとき、あるフレームについて適切なQPのオフセットを割り当てることで達成することができる。本発明の実現では、-6及び-2をI_next及びP_lastのQPにそれぞれ割り当てる。
【００４０】
先に提案されたGOPパラレル・マルチスレッドのフリッカ除去の解決策の性能を評価する実験が行われた。結果は、提案されたスキームがマルチスレッド符号化のケースでIフレームのフリッカのアーチファクトを効果的に低減することができ、被った更なる計算の複雑度がリアルタイム符号化の達成について深刻な課題を提起しないことを示す。特に、良好なフリッカ除去の性能のために（たとえば９０を超える）長いGOPの長さよりも（たとえば６０未満の）短いGOPの長さが望まれ、短いGOPの長さと同様に、P_curr１２とI_next１８との間の距離は、同様に短くなる可能性が高く、良好なフリッカ除去のために大いに望まれる。
【００４１】
ここで、特定の特徴及び態様を有する１以上の実現が提供された。記載された実現の特徴及び態様は、他の実現のために適合される場合がある。たとえば、特定の数のパスを参照して本明細書では記載されたが、１つのパス、２つのパス、２を超えるパスを使用して実現が行われる場合がある。さらに、QPは、たとえばMBの特性に基づいて変化するように、所与のピクチャ又はフレームについて変化する場合がある。本明細書で記載された実現は特定の環境で記載されたが、係る記載は、特徴及びコンセプトを係る実現又は環境い限定するものとして解釈されるべきではない。
【００４２】
本明細書で記載される実現は、たとえば方法又はプロセス、装置あるいはソフトウェアプログラムで実現される場合がある。（たとえば方法としてのみ記載された）１つの実現形式の環境において説明されたが、記載される実現又は特徴は、（たとえば装置又はプログラムといった）他の形式で実現される場合がある。装置は、たとえば適切なハードウェア、ソフトウェア及びファームウェアで実現される場合がある。本方法は、たとえば、コンピュータ又は他の処理装置のような装置で実現される場合がある。さらに、本方法は、処理装置又は他の装置により実行される命令により実現される場合があり、係る命令は、例えばCD、他のコンピュータ読み取り可能な記憶装置、或いは集積回路のようなコンピュータ読み取り可能な媒体に記憶される場合がある。さらに、コンピュータ読み取り可能な媒体は、実現により生成されるデータ値を記憶する場合がある。
【００４３】
当業者にとって明らかであるように、実現は、たとえば記憶又は送信される情報を伝送するためにフォーマット化される信号を生成する場合がある。この情報は、たとえば方法を実行する命令、記載された実現のうちの１つにより生成されるデータを含む場合がある。
【００４４】
さらに、多くの実現は、エンコーダ、エンコーダ用のプリプロセッサ、デコーダ、又はデコーダ用のポストプロセッサのうちの１以上で実現される場合がある。
【００４５】
さらに、この開示により他の実現が創作される場合がある。たとえば、更なる実現は、開示された実現の様々な特徴を結合、削除、変更又は補充することで作成される場合がある。
【００４６】
以下の一覧は、様々な実現からなる一覧である。この一覧は、包括的であることが意図されておらず、以下のような小数の可能性のある実現の短い記載を単に提供するものである。
【００４７】
１．GOPパラレルのリアルタイム符号化のための複数の符号化スレッドをもつビデオエンコーダであって、当該エンコーダは、はじめに、前のGOPにおける最も近い符号化されたフレームから導出されたフリッカのない基準フレームによりIフレームのフリッカ除去の符号化を施し、次いで、フリッカ除去の符号化が施されたIフレームから導出されたフリッカのない基準フレームにより前のGOPにおける最後のPフレームにフリッカ除去の符号化を施すことで、Iフレームのフリッカを低減するものである。
【００４８】
２．実現１について、そのフリッカのない基準フレームを厳密に近似するため、１番目のIフレームの実際の符号化において小さなQPが使用される。符号化されたフレームを、次のGOPにおける符号化されたIフレームと現在のGOPにおける符号化された前のフレームとの釣り合いのとれた混合されたフレームにするため、最後のPフレームの実際の符号化において中位のQPが使用される。
【００４９】
３．実現１について、あるフレームのフリッカのない符号化において簡略化されたPフレームの符号化の１つのパスを介してフリッカのない基準フレームが生成される。
【００５０】
４．実現３について、簡略化されたPフレーム符号化は、（i）現在のIフレームと前のGOPにおける最も近い符号化されたフレームとの間の低い相関について大きな動きのサーチレンジ、逆に、現在のIフレームと前のGOPにおける最も近い符号化されたフレームとの間の高い相関について小さな動きのサーチレンジ、（ii）モード選択におけるスキップモードのチェックがないこと、（iii）スキップ及びイントラモードを利用させないRDO-MSにおける修正されたRDコストを含む。
【００５１】
５．実現１について、現在のIフレームと前のGOPにおける最も近い符号化されたフレームとの間の相関レベルを決定するため、フレーム間の複雑度の総和が使用される。
【００５２】
６．実現１について、あるGOPにおける最後のPフレームのフリッカ除去の符号化について、実際のMB符号化において、従来のスキップモードの代わりに、この開示の１以上の実現において定義されたSafe_Skipが使用される。
【００５３】
７．実現１について、この開示の１以上の実現において定義されるマルチスレッドバッファリング及び通信メカニズムが採用され、このメカニズムは、それぞれの符号化スレッドについてあるGOPにおける最も高い表示順序をもつ再構成された符号化されたフレームを個別に記憶し、全てのスレッドについてあるGOPの再構成された最後のPフレーム又は最初のIフレームを記憶する。
【００５４】
８．記載された実現の何れかから生成される信号。
【００５５】
９．この開示において記載された１以上の実現に従ってIフレーム又はPフレームのビデオ符号化情報を作成、アセンブル、記憶、送信、受信、及び／又は処理する方法。
【００５６】
１０．記載された実現のうちの１つに従って、又は記載された実現のうちの１つと通信して、動作可能な（たとえばエンコーダ、デコーダ、プリプロセッサ、又はポストプロセッサのような）装置。
【００５７】
１１．この開示において記載される１以上の実現に従って、Iフレーム又はPフレームの符号化の１つの１つを記憶し、Iフレーム又はPフレームの符号化を実行する命令のセットを記憶する（たとえばコンピュータ読み取り可能な記憶媒体といった）装置。
【００５８】
１２．この開示において記載される１以上の実現に従ってIフレーム又はPフレームの符号化に関する情報を含むようにフォーマット化された信号。
【００５９】
１３．実現１２について、信号は、デジタル情報を表す。
【００６０】
１４．実現１２について、信号は、電磁波である。
【００６１】
１５．実現１２について、信号は、ベースバンド信号である。
【００６２】
１６．実現１２について、情報は、残差データ、動きベクトルデータ、及び基準インジケータデータのうちの１以上を含む。
【００６３】
１７．ビデオのマルチスレッドの符号化についてフリッカを低減する、プロセス、装置、又は、あるプロセスを実現する命令のセット。
【００６４】
記載された実施の形態は、GOPパラレル・マルチスレッドビデオ符号化のために効果的なIフレームのフリッカ除去のスキームを与えるものである。提案されたスキームは、現在のIフレームのフリッカ除去に関して、再構成された直前のフレームが利用可能でないことの影響を低減することができる。また、このスキームは、最低限度の更なる計算及びメモリコストを受け、従ってリアルタイムビデオ符号化システムにおいて非常に良好に適合するので有効である。
【００６５】
要するに、本明細書で提供されたものは、上述された様々なアーチファクトの除去の問題を解決する、より直接的且つ一般的なやり方で、エンコーダ及びその符号化方法を適切に変更する手段である。
【００６６】
Motion  JPEG2000規格又はH.264/AVC規格により、幾つかのスキームが全てのIフレームの符号化ビデオのフリッカ除去に対処するが、この開示における少なくとも１つの実現は、メインストリームのビデオ符号化規格、すなわち動き補償と変換符号化とをもつ公知のハイブリッドパラダイムと互換性があるフリッカ除去の解決策を提供する。さらに、本出願は、それぞれのGOPがIフレームで開始する、GOP符号化映像に関する。
【図１】
0005579731.tif 000005
【図２】
0005579731.tif 000006
【図３】
0005579731.tif 000007
【図４】
0005579731.tif 000008
【図５】
0005579731.tif 000009
【図６】
0005579731.tif 000010
【図７】
0005579731.tif 000011
【図８】
0005579731.tif 000012