(57)【要約】【課題】  並列にビデオフレームをエンコードする際、各ビデオフレームをエンコード中に生成したビット量に基づいて量子化パラメータを最適化する制御を行うことができる情報処理装置、制御方法およびプログラムを提供することを目的とする。【解決手段】  複数の動画フレームを並列にエンコードを行う際に、エンコードされている動画フレーム中の生成ビット量のフォートバック情報に基づいてレート制御を行い、動画フレームのエンコードと、同期ポイント６−２におけるレート制御を並行して行う。【選択図】      図６
2007166192.tif 000002
【特許請求の範囲】
【請求項１】
イントラ予測を用いて複数の動画フレームのエンコードを行い、エンコードされた動画フレームを出力する情報処理装置であって、
前記複数の動画フレームを並列にエンコードを行う並列エンコード手段と、
前記並列エンコード手段によってエンコードされている動画フレーム中の生成ビット量のフォートバック情報に基づいてレート制御を行うレート制御手段とを備え、
前記並列エンコード手段による動画フレームのエンコードと、前記レート制御手段によるレート制御を並行して行うことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記レート制御手段は、前記並列エンコード手段によるエンコード中の動画フレームの生成ビット量のフォートバック情報に基づいて、量子化パラメータを制御することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記並列エンコード手段は、前記動画フレームを複数のパーティションに分割し、各パーティションごとに並列にエンコードを行うことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の情報処理装置において、
前記複数の動画フレームをエンコードして生成する所望のビット量を目的ビット量とし、
前記並列エンコード手段による前記複数の動画フレームの並列エンコード中の任意の時点において、
前記レート制御手段は、各動画フレーム中の未エンコードのパーティション量をエンコードした場合の生成ビット量を第１の生成ビットとし、前記各動画フレーム中のエンコード済みの生成ビット量を第２のビット量とし、
前記第１および第２のビット量の合計ビット量が前記目的ビット量よりも大きい場合は、前記量子化パラメータを大きくする制御を行い、前記合計ビット量が前記目的ビット量よりも小さい場合は、前記量子化パラメータを小さくする制御を行うことを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、
前記レート制御手段は、前記並列エンコード手段によってエンコードされている前記複数の動画フレームのうち、１つ以上の任意の動画フレームについての生成ビット量のフォートバック情報に基づいてレート制御を行うことを特徴とする情報処理装置。
【請求項６】
イントラ予測を用いて複数の動画フレームのエンコードを行い、エンコードされた動画フレームを出力する情報処理装置の制御方法であって、
前記複数の動画フレームを並列にエンコードを行う並列エンコードステップと、
前記並列エンコードステップと並行して、前記並列エンコードステップによってエンコードされている動画フレーム中の生成ビット量のフォートバック情報に基づいてレート制御を行うレート制御ステップと、
を含むことを特徴とする制御方法。
【請求項７】
請求項６に記載の制御方法において、
前記レート制御ステップは、前記並列エンコードステップによるエンコード中の動画フレームの生成ビット量のフォートバック情報に基づいて、量子化パラメータを制御することを特徴とする制御方法。
【請求項８】
請求項６に記載の制御方法において、
前記並列エンコードステップは、前記動画フレームを複数のパーティションに分割し、各パーティションごとに並列にエンコードを行うことを特徴とする制御方法。
【請求項９】
イントラ予測を用いて複数の動画フレームのエンコードを行い、エンコードされた動画フレームを出力する情報読み取り装置で用いられるプログラムあって、
前記複数の動画フレームを並列にエンコードを行う並列エンコード手順と、
前記並列エンコード手順と並行して、前記並列エンコード手順によってエンコードされている動画フレーム中の生成ビット量のフォートバック情報に基づいてレート制御を行うレート制御手順と、
をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムにおいて、
前記レート制御手順は、前記並列エンコード手順によるエンコード中の動画フレームの生成ビット量のフォートバック情報に基づいて、量子化パラメータを制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イントラ予測を用いた動画データのエンコードに係り、特に、複数の動画データを並列でエンコードできる情報処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ビデオデータのエンコードは、ビデオフレームを一枚ずつ、順にエンコードしてビットストリーム変換している。このとき、エンコードして出力するビットストリームのビットレートにあわせるために、それまでにエンコードしたビット量を元に、現在エンコードしているデータのビット量を調整する、レート制御を行っている。また、エンコードの処理速度を向上させた技術としては、ビデオフレームを上下２つの領域に分割し、それぞれの領域に対し、パイプライン制御を行い、１つのビデオフレームのエンコードを行う技術が開示されている（特許文献１参照）。
【特許文献１】特開平８−２６５１６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した技術では、パイルライン処理を行い、並列にビデオフレームをエンコードするが、各ビデオフレームをエンコード中に生成したビット量から量子化パラメータを最適化することは行われておらず、エンコード中に最適なレート制御で画質の向上を行うことが困難である。
【０００４】
本発明は上述の事情を考慮してなされたものであり、並列にビデオフレームをエンコードする際、各ビデオフレームをエンコード中に生成したビット量に基づいて量子化パラメータを最適化する制御を行うことができる情報処理装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本願発明の一態様によれば、イントラ予測を用いて複数の動画フレームのエンコードを行い、エンコードされた動画フレームを出力する情報処理装置であって、前記複数の動画フレームを並列にエンコードを行う並列エンコード手段と、前記並列エンコード手段によってエンコードされている動画フレーム中の生成ビット量のフォートバック情報に基づいてレート制御を行うレート制御手段とを備え、前記並列エンコード手段による動画フレームのエンコードと、前記レート制御手段によるレート制御を並行して行うことを特徴とする情報処理装置が提供される。
【発明の効果】
【０００６】
本発明によれば、並列にビデオフレームをエンコードする際、各ビデオフレームをエンコード中に生成したビット量に基づいて量子化パラメータを最適化する制御を行うことができることができる情報処理装置、制御方法およびプログラムを提供することが可能である。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して本発明の実施形態を説明する。
【０００８】
図１には、本発明の一実施形態に係る情報処理装置のシステム構成図が示されている。この情報処理装置は、バッテリ駆動可能なノートブック型のコンピュータ１０として実現されている。なお、本発明の実施形態では、入力された動画フレームを並列にエンコードを行いながら、並列エンコード中のビット量を計算して量子化パラメータを決定し、レート制御を行うものである。
【０００９】
図１に示すように、コンピュータ１０は、コンピュータ本体と、ディスプレイユニット１１とから構成されている。ディスプレイユニット１１にはＬＣＤ（Liquid Crystal Display）からなる表示装置が組み込まれており、そのＬＣＤの表示画面１２はディスプレイユニット１１のほぼ中央に位置されている。
【００１０】
ディスプレイユニット１１は、コンピュータ１０に対して解放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ１０の本体側は薄い箱形の筐体を有しており、その上面にはキーボード１３、パームレスト上にはタッチパッド１４、および左右２つのボタン１４ａ、１４ｂ、側面には光学ドライブユニット１５等が配置されている。
【００１１】
図２は、コンピュータ１０の構成を示したブロック図である。
【００１２】
コンピュータ１０は、ＣＰＵ（Central Processing Unit）２０、Root Complex２１、主メモリ２４、グラフィクスコントローラ(End Point)２３、Root Complex２１とグラフィクスコントローラ２３とを接続するPCI Express Link２２、ディスプレイユニット１１、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）２７、ハードディスクドライブ（ＨＤＤ）２５、ＢＩＯＳ−ＲＯＭ２６、ＥＣ／ＫＢＣ２７に接続された入力デバイス２８、２９、動画データ等の画像データをエンコードするエンコーダ１９などを備えている。
【００１３】
エンコーダ１９は、例えばＨ．２６４ビデオエンコーダであり、動画フレームをエンコードする。
【００１４】
Root Complex２１、グラフィクスコントローラ２３等は、PCI EXPRESS規格に準拠したデバイス（デバイス）である。Root Complex２１とグラフィクスコントローラ２３との間の通信は、Root Complex２１とグラフィクスコントローラ２３との間に配設されたPCI Express Link２２を介して実行される。
【００１５】
ＣＰＵ２０は、本コンピュータの動作を制御するプロセッサであり、ＨＤＤ２５から主メモリ２４にロードされる各種プログラム（オペレーティングシステム、アプリケーションプログラム）を実行する。また、ＣＰＵ２０は、ＢＩＯＳ−ＲＯＭ２６に格納されたＢＩＯＳ（Basic Input Output System）も実行する。ＢＩＯＳはハードウェアを制御するためのプログラムである。
【００１６】
Root Complex２１は、ＣＰＵ２０のローカルバスとグラフィクスコントローラ２３との間を接続するブリッジデバイスである。また、Root Complex２１は、PCI Express Link２２を介してグラフィクスコントローラ２３との通信を実行する機能も有している。
【００１７】
グラフィクスコントローラ２３は、本コンピュータのディスプレイモニタとして使用されるディスプレイユニット１１を制御する表示コントローラである。
【００１８】
ＥＣ／ＫＢＣ２７は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）２５およびタッチパッド１４を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このＥＣ／ＫＢＣ２７は、ユーザによるパワーボタンの操作に応じて、電源コントローラと共同して、本コンピュータ１０をパワーオン／パワーオフする機能を有している。
【００１９】
図３は、エンコーダ１９の構成を示した構成図である。
【００２０】
エンコーダ１９は、入力された動画フレーム（Video Frame）３０の整数変換および量子化を行う整数変換／量子化手段（DCT/Q）３１、エントロピー符号化を行うエントロピー符号化手段（CABAC）３２、逆量子化および逆整数変換を行う逆量子化／逆整数変換手段（IQ/IDCT）３３、動画フレームのイントラ予測を行うイントラ予測手段（IntraPre）３４、動画フレームの動き予測を行う動き予測手段（Motion Estimation）３５、動画フレームの動き補償を行う動き補償手段（ＭＣ：(Motion Compensation））３６、電圧を周波数に変換するデブロッキング・フィルタ（Deblock Filter）３７、動画フレームを蓄積するフレームを蓄積手段（Local Decoded Frame）３８等から構成されている。
【００２１】
ここで、イントラ予測とは、エンコードする画素の予測を行うのに、その画素の周辺部分のエンコード済み画素αの値を利用する技術である（図４（ａ）参照）。
【００２２】
図４（ｂ）〜（ｉ）に示すように、イントラ予測には様々なモードがあるが、エンコード済みの周辺画素を利用するために、1フレームのエンコードは、ラスタ順序を守って行う必要がある。
【００２３】
また、ビデオエンコード／デコードの処理単位にスライスがある。ビデオコーデックの規格として、この処理単位のスライスをまたがったイントラ予測はできないようになっている。すなわち、ビデオフレームをスライスに分割することにより、並列にエンコードすることが可能となる。しかし、ビデオフレームを複数のスライスに分割した場合、各スライス間の境界で、イントラ予測ができなくなってしまうためにビデオデータの圧縮率が悪くなってしまうという問題がある。
【００２４】
このため、ビデオフレームをスライスではない複数の処理単位に分割する。本実施形態では、パーティションと呼ぶ単位に分割する。そして、パーティションをまたがってイントラ予測できるようにするには、パーティションの処理の順序を、ラスタ順序で行うようにする。このときの処理手順を図５に示す。
【００２５】
図５に示すように、複数の動画フレームのうちの隣接する２つの動画フレームを第１フレームおよび第２フレームとする。各フレームは、上述したパーティション単位に分割されており、図５では、横長に分割されて表示されている。各パーティションは、並列にパイプライン処理を用いてエンコードされる。例えば第１フレームの第１パーティションの処理５−１が行われ、処理５−１のME：動き検出（MotionEstimation）処理が行われると、続いて、第１フレームの第２パーティションの処理５−２が行われる、といった具合に並列にパイプライン処理を用いてエンコードを行う。
【００２６】
なお、COは、モード判定や量子化、トランスフォームを行うコーディング（Coding）のフェーズ、FIは、デブロックフィルタ（Deblock Filter）を行うフェーズ、CAは、コンテキスト適応型算術符号化（Cabac）を行うフェーズである。
【００２７】
上述したように、各フレーム内のパーティション単位でエンコード処理を行っていくため、第１フレームのFI処理が終わると直ちに、第１フレームのエンコードの完了を待つことなく、第２フレームのエンコード処理であるME処理を開始することができる。
【００２８】
このため、複数のプロセッサを利用可能なシステムにおいては、複数のフレームを少しの時間差をおいて、同時にエンコードする（例えば、ME処理を並列に行う処理５−０等）ことが可能である（図５および図６参照）。もちろん、単一プロセッサのシステムにおいても、複数スレッドを起動して、時分割で見かけ上、並列に複数フレームを処理することが可能である。なお、並列処理においては、同時に処理を行うための同期ポイントを設定して処理を行う。例えば、処理５−１および処理５−２においては、CO処理およびME処理が、同時に処理を行うための同期ポイントとして処理を行う。また、例えば、処理５−１、処理５−２、処理５−３においては、FI処理、CO処理およびME処理が、同時に処理を行うための同期ポイントとして処理を行う。さらに、例えば、処理５−１〜処理５−４においては、CA処理、FI処理、CO処理およびME処理が、同時に処理を行うための同期ポイントとして処理を行うことになる。
【００２９】
次に図６は、複数フレームの並列処理によるエンコードの概念図である。
【００３０】
同図に示すように、最初の３つのフレーム６−１は、エンコードが完了しており、その後の７個のフレームを同時にエンコードしている様子を示している（さらに、その後の３つのフレームは全くの未エンコード）。また、各フレームは複数のパーティションから構成されており、各フレームの上から下に向けてパーティションをエンコードしている。エンコード中の各フレームの同期ポイント６−２は、面として示されている。
【００３１】
同期ポイント６−２において、最適なレート制御を実行し、各フレームの生成ビット量を調整する。
【００３２】
生成ビット量の調整は、量子化ステップのＱＰ（量子化パラメータ）の値を増減することで行う。ＱＰを大きくすれば、生成ビット量は削減できるが、画質が劣化し、ＱＰを小さくすれば、ビット量が増大するものの、画質が向上する、という関係がある。
【００３３】
図７は、１フレーム内のエンコードされたパーティションと未エンコードのパーティションとを示した模式図である。エンコードされたパーティションのビット生成量をＢｉ、未エンコードのパーティション数をＲｉとしている。
【００３４】
次に図８は、本発明の情報処理装置を適用した制御方法であるレート制御を説明したフローチャートである。
【００３５】
まず、ＣＰＵ２０は、動画フレームのエンコードを行った後の所望のビット量を目的ビット量として設定する。さらに、各同期ポイントにおいて、各フレームの生成したビット量Ｂｉと、残りのパーティション数Ｒｉとを入力する（ステップＳ１）。
【００３６】
次に、ＣＰＵ２０は、次式を用いて、各フレームでの残りのパーティションの生成ビット量を計算、予測する（ステップＳ２）。
【数１】
2007166192.tif 000003
【００３７】
ＣＰＵ２０は、同期ポイントにおいて、生成されたビット量Ｂｉと、上述したPredBitsとの和を計算し、この和と上述した目的ビット量とを比較し、目的ビット量と比べて、大きい場合には、ＱＰを大きくすることによって、生成ビット量を削減する。一方、ＣＰＵ２０は、目的ビット量と比べて小さい場合は、ＱＰを小さくする（ステップＳ３）。
【００３８】
以上より、並列にビデオフレームをエンコードする際、各ビデオフレームをエンコード中に生成したビット量に基づいて量子化パラメータを最適化する制御を行い、生成ビット量を増やして画質の向上を行うことが可能となる。このため、1パスビデオエンコーダでのレート制御を、より安定的に行うことができ、変化の激しいビデオコンテンツのエンコードにおいても、レート制御に起因する画像の乱れを削減することができる。
【００３９】
（変形例）
また、上述した実施形態の変形例としては、すべての動画フレームについて、ＱＰを同じにして制御するようにしてもよい。
【００４０】
さらに、参照フレームになりうるフレームのＱＰを、参照フレームになりえないフレームより例えば１〜３程度、小さくするように、制御してもよい。
【００４１】
また、生成ビット量の予測の方法は、上述した実施形態では、直前のパーティションの生成ビット量を元に算出したが、直前のパーティション以外にも２つ前やさらに前の生成ビット量を参考にして予測することや、これからエンコードしようとしているデータの特性を分析することで、予測する方法も可能である。例えば、エンコード済みの動きベクトルの大きさから、動きが少ないと判断できる場合は、生成ビット量を、前のフレームの同じ位置のパーティションの符号化量をもとに、予測値を補正することなどが考えられる。
【００４２】
また上述した実施形態では、Ｂピクチャの場合の図を示していないが、Ｂピクチャの場合であっても、ME処理におけるフレームの参照関係および依存関係に従うようにすれば、複数フレームの同時処理を実現することが可能であり、上述した同じ方法でレート制御を行うことが可能である。
【００４３】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１実施形態に係る情報処理装置を適用したノートＰＣの構成を示す斜視図。
【図２】ノートＰＣの構成を示したブロック図。
【図３】Ｈ．２６４の構成を示すブロック図。
【図４】イントラ予測について説明した概念図。
【図５】動画フレームをパーティション単位で処理を行う場合、ラスタ順序に従って処理を行う場合の概念図。
【図６】複数フレームの並列処理によるエンコードを行う場合の概念図
【図７】１フレーム内のエンコードされたパーティションと未エンコードのパーティションとを示した模式図。
【図８】本発明の情報処理装置を適用した制御方法であるレート制御を説明したフローチャート。
【符号の説明】
【００４５】
６−２…同期ポイント、１０…コンピュータ、１１…ディスプレイユニット、１２…表示画面、１３…キーボード、１４…タッチパッド、１５…光学ドライブユニット、１９…エンコーダ、２０…ＣＰＵ、２３…グラフィクスコントローラ、２４…主メモリ、２５…ＨＤＤ、２６…ＲＯＭ、２７…ＥＣ／ＫＢＣ、２８、２９…入力デバイス、３０…動画フレーム、３１…量子化手段、３２…エントロピー符号化手段、３３…逆整数変換手段、３４…イントラ予測手段、３５…動き予測手段、３６…動き補償手段、３７…デブロッキング・フィルタ、３８…蓄積手段。
【図１】
2007166192.tif 000004
【図２】
2007166192.tif 000005
【図３】
2007166192.tif 000006
【図４】
2007166192.tif 000007
【図５】
2007166192.tif 000008
【図６】
2007166192.tif 000009
【図７】
2007166192.tif 000010
【図８】
2007166192.tif 000011