JP2010109572A - 画像処理装置、及び方法 - Google Patents

画像処理装置、及び方法 Download PDF

Info

Publication number
JP2010109572A
JP2010109572A JP2008278360A JP2008278360A JP2010109572A JP 2010109572 A JP2010109572 A JP 2010109572A JP 2008278360 A JP2008278360 A JP 2008278360A JP 2008278360 A JP2008278360 A JP 2008278360A JP 2010109572 A JP2010109572 A JP 2010109572A
Authority
JP
Japan
Prior art keywords
image
core
moving image
image processing
dividing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008278360A
Other languages
English (en)
Inventor
Kosuke Uchida
耕輔 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008278360A priority Critical patent/JP2010109572A/ja
Publication of JP2010109572A publication Critical patent/JP2010109572A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】プロセッサが有するコア毎の処理負担を均等にして、各コアのスループットを向上させる。
【解決手段】動画像処理装置100は、コアを複数個有するCPU101と、入力ストリームのピクチャを、均等な画像領域毎に分割する分割部112と、分割された画像領域それぞれを、コア毎に割り当てる割当部113と、割り当てた画像領域のデコード及びスケーリングを、各コアのそれぞれが実行するよう制御する制御部114と、を備える。
【選択図】 図1

Description

本発明は、複数のコアを有するプロセッサを用いて動画像データを処理する画像処理装置、及び方法に関するものである。
近年、動画像データの再生、保管を行うためにHDDを搭載した動画再生装置が普及しつつある。この動画再生装置においては、地上デジタル放送などのコンテンツをHDDに記録し、ユーザの要求に応じてコンテンツの再生を行うことができる。当然ながら、HDDの容量に制限があるため、保管可能なコンテンツの量に限りがある。
そこで、例えば、地上デジタル放送などのMPEG-2 Video(MPEG-2)のコンテンツの場合、圧縮効率の良いH.254フォーマットに変換することで、容量を削減できる。また、さらに容量を小さくしたい場合は、SD解像度など解像度を小さくすることも考えられる。このような変換処理は、CPUに対してかなり処理負担が大きく、時間が掛かる処理である。
一方、最近ではCPUの性能向上のために、マルチコアなど複数のコアを搭載する傾向にある。現在では2〜4個のコアを搭載することが主流になっているが、将来4個よりさらに多いコアを搭載することが予想される。
このようにマルチコアプロセッサ上で、ソフトウェアによるトランスコードを行う場合に、効率的に処理を行うためには、複数のコアそれぞれを有効に利用して、トランスコードを行うことが重要になる。このために、スレッドの分け方が重要になるが、単にスレッドに分けただけでは、効率よくコアに仕事をさせることができない。
トランスコーダに適用されるスレッドの分割手法としては、エンコーダやデコーダなどのモジュール単位でスレッドに分ける技術がよく用いられている。しかしながら、モジュール単位でスレッドを分割する手法の場合、モジュール毎に行う処理が異なるため、スレッドごとの処理量が大きく異なる。このため、コア毎の処理負担が異なることになり、効率的にコアを利用することができない。
ところで、コア毎に処理負担を均等にする技術としては、特許文献1に記載された技術がある。特許文献1の技術は、デコーダの数でピクチャをスライスし、スライスしたピクチャをデコーダに割り当てることにしている。これにより、各デコーダの処理負担を均等にしている。
特開2006−319944号公報
しかしながら、上記の特許文献1の従来技術は、デコード(一つのモジュール)を複数のデコーダで均等に分担する技術であり、トランスコードなど、複数のモジュール(例えば、デコード、スケールなど)が必要な場合まで考慮されていない。このため、特許文献1の技術を用いても、複数のモジュールによる処理が必要な場合には、従来通りモジュール単位でコアを割り当てることしかできないという問題がある。
本発明は、上記に鑑みてなされたものであって、マルチコアプロセッサ上の処理のスループットを向上させる画像処理装置、及び方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる画像処理装置は、コアを複数個有するプロセッサと、動画像データの画面情報を、均等な画像領域毎に分割する分割手段と、分割された前記画像領域を、前記コア毎に割り当てる割当手段と、割り当てた前記画像領域のデコード及びスケーリングを、前記各コアのそれぞれが実行するよう制御する制御手段と、を備えることを特徴とする。
また、本発明にかかる画像処理方法は、コアを複数個有する画像処理装置で実行される画像処理方法であって、動画像データの画面情報を、均等な画像領域毎に分割する分割ステップと、分割された前記画像領域を、前記コア毎に割り当てる割当ステップと、割り当てた前記画像領域のデコード及びスケーリングを、前記各コアのそれぞれが実行するよう制御する制御ステップと、を含むことを特徴とする。
本発明によれば、マルチコアプロセッサ上の処理のスループットを向上させることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる画像処理装置、及び方法の最良な実施の形態を詳細に説明する。本実施の形態では、画像処理装置を動画処理装置に適用した例について説明するが、PCなど画像データの処理が可能な装置であれば良く、さまざまな装置に適用することができる。
(第1の実施の形態)
図1は、第1の実施の形態にかかる動画像処理装置100の構成を示すブロック図である。図1に示すように、動画像処理装置100は、CPU101、ノースブリッジ12、メインメモリ13、グラフィクスコントローラ14、サウスブリッジ15、BIOS−ROM16、ハードディスクドライブ(HDD)17、光ディスクドライブ(ODD)18、デジタルTV放送チューナ19、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)20およびネットワークコントローラ21等を備える。
を備えている。
ノースブリッジ12は、CPU101のローカルバスとサウスブリッジ15との間を接続するブリッジデバイスである。また、ノースブリッジ12は、メインメモリ13をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ12は、AGP(Accelerated Graphics Port)バスなどを介してグラフィクスコントローラ14との通信を実行する機能も有している。
グラフィクスコントローラ14は、動画像処理装置100のディスプレイモニタとして使用されるLCD3を制御する表示コントローラである。このグラフィクスコントローラ14はビデオメモリ(VRAM)14Aに書き込まれた画像データからLCD3に送出すべき表示信号を生成する。
サウスブリッジ15は、LPC(Low Pin Count)バス上の各デバイス、およびPCI(Peripheral Component Interconnect)バス上の各デバイスを制御する。また、サウスブリッジ15は、HDD17、ODD18を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ15は、デジタルTV放送チューナ19を制御する機能、およびBIOS−ROM16をアクセス制御するための機能も有している。
光ディスクドライブ(ODD)18は、ビデオコンテンツが格納されたDVDなどの記憶メディアを駆動するためのドライブユニットである。デジタルTV放送チューナ19は、デジタルTV放送番組のような放送番組データを外部から受信するための受信装置である。
EC/KBC20は、電力管理のためのエンベデッドコントローラと、キーボード(KB)4およびタッチパッド7を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC20は、ユーザによるパワーボタン5の操作に応じて動画像処理装置100を電源オン/オフする機能を有している。さらに、EC/KBC20は、ユーザによるTV起動ボタン6A、DVD起動ボタン6Bの操作に応じて、動画像処理装置100を電源オンすることもできる。
ネットワークコントローラ21は、ネットワークを介して他の通信装置と通信を実行する通信回路とする。本実施の形態にかかるネットワークコントローラ21は、ネットワークを介して接続された通信装置から入力された入力ストリームを受信処理(換言すれば入力処理)する。
なお、本実施の形態は、動画像データの入力処理を、ネットワークを介した入力処理に制限するものではなく、HDD17からの読み出しや、デジタルTV放送チューナ19による受信処理等であってもよい。
HDD17は、各種ソフトウェア及びデータを格納する記憶装置である。HDD17は、OSや動画像処理アプリケーションを記憶している。そして、動画像処理装置100の起動時に、CPU101の制御により、動画像処理アプリケーションがメインメモリ13上に展開される。
メインメモリ13は、後述するCPU101の作業領域として用いられる。そして、動画像処理装置100の起動時には、CPU101の制御により、動画像処理アプリケーション150が、メインメモリ13上に展開される。
動画像処理アプリケーション150は、入力された動画像データである入力ストリームに対してフォーマットの変換処理を行い、出力ストリームを生成するためのソフトウェアとする。本実施の形態においては、入力ストリームのフォーマットを、MPEG−2とし、出力ストリームのフォーマットを、H.264とする。なお、本実施の形態は、変換元のフォーマットをMPEG−2に、変換先のフォーマットをH.264に制限するものではなく、変換元及び変換先のフォーマットとして、様々なフォーマットを用いて良い。
また、動画像処理アプリケーション150は、入力ストリームから出力ストリームを生成する際に、解像度変換を行うものとする。本実施の形態は、1440×1080画素のMPEG−2としの入力ストリームから、720×480画素のH.264の出力ストリームを生成する場合について説明する。なお、本実施の形態は、入力ストリーム及び出力ストリームの画素数を制限するものではなく、フォーマット等に基づく様々な画素数の入力ストリーム及び出力ストリームに適用できる。
CPU101は、第1コア102と、第2コア103と、第3コア104と、第4コア105と、第5コア106と、第6コア107と、を備えたマルチコアプロセッサとする。CPU101は、動画像処理装置100の動作を制御するために設けられたプロセッサとする。本実施の形態においては、これらのコアを用いて均等に処理を分担させるようにする。なお、本実施の形態においては、6個のコアを備えるものとするが、6個に制限するものではなく、複数個コアを備えていればよい。
また、CPU101は、HDD17に格納された、オペレーティングシステム(OS)および動画像処理アプリケーション150のような各種アプリケーションプログラムを、メインメモリ13にロードした後、OS及び各種アプリケーションプログラムを実行する。
そして、CPU101は、メインメモリ13上に展開された動画像処理アプリケーション150との協働により、第1コア102上に、制御部114と、分割部112と、割当部113と、特定部111と、判定部115と、の各機能部を実現すると共に、他のコアによる各動画処理を実現する。
また、CPU101は、BIOS−ROM16に格納されたBIOS(Basic Input Output System)も実行する。BIOSはハードウェア制御のためのプログラムである。
以上の構成を備えた動画像処理装置100が、入力ストリームを出力ストリームにトランスコードする。次にトランスコードに必要な構成(モジュール)について説明する。
図2は、トランスコーダ200の構成を示したブロック図とする。図2に示すように、トランスコーダ200は、モジュールとしてデコーダ201、スケーラ202、及びエンコーダ203を備えている。
デコーダ201は、入力ストリームに対して復号化処理を施して、元の動画像データを抽出するモジュールとする。また、デコーダ201は、圧縮された動画像データの復元や、暗号の解読などを行ってもよい。
図3は、本実施の形態にかかる動画像処理装置100における、デコード処理単位であるスライスを示した図である。図3に示すように、本実施の形態にかかる動画像処理装置100は、デコーダの処理単位を、マクロブロックライン(以下、MBラインとする)毎とする。つまり、本実施の形態にかかる動画像処理装置100が入力処理する入力ストリームは、MPEG−2とした。このMPEG−2は、地上デジタル放送に用いられるビデオコーデックの種類である。そして、MPEG−2の規格においては、1マクロブロックが16×16画素と、1MBラインが高さ16画素×表示領域の横幅と、規定されている。そして、MPEG−2では、1MBラインに独立して処理することが可能である。このため、動画像処理装置100は、入力ストリームに対して、高さ16画素単位で処理を行うことが可能となる。ただし、MBAFF構造の場合は規格上2MBラインで処理する必要がある。この場合、動画像処理装置100は、高さ2MBライン(32画素)単位で並列処理を行うことができる。
また、本実施の形態の出力ストリームはH.264としたが、このH.264もMPEG−2と同様に、基本的に1MBライン単位で処理を可能である。
図2に戻り、スケーラ202は、デコード処理が行われた後の動画像データに対して、スケーリングを行う。スケーリングとしては、フレームレートの変更、解像度の変更、カラーフォーマットの変更などいずれか一つ以上の処理を含むものとする。
エンコーダ203は、スケール変更処理後の動画像データに対して、符号化処理を施す。行う処理としては、動画像データの圧縮や暗号化などを含むものとする。
本実施の形態にかかる動画像処理装置100は、上述したデコーダ201、スケーラ202及びエンコーダ203で示した各モジュールの処理を、動画像処理アプリケーション150により、CPU101の各コアで実行される。
ところで、マルチコアプロセッサの各コアで並列処理をするには各処理が独立性を確保できなければならない。このため、従来のトランスコーダにおいては、上記のモジュール単位でスレッドを分割する技術が用いられていた。しかしながら、モジュール単位の並列処理を行う場合だと、モジュールに応じて処理量が大きく異なるため、バランスが悪くなり効率的に各コアを利用することができない。特に入出力画像のサイズによって大きな影響を受ける。
そこで、本実施の形態にかかる動画像処理装置100においては、1ピクチャを、動画像処理を行うコアの数で分割し、分割した動画像データに対して各コアがデコード、スケール及びエンコード処理を行うこととした。これにより、各コアの処理負担が均等になり、効率的にコアを利用することが可能となる。
また、本実施の形態にかかる動画像処理装置100では、スケーリングに平均画素法を適用する。平均画素法は、入力ストリームの画像サイズの高さと、スケール後の出力ストリームの画像サイズの高さとの最小公倍数をとり、最小公倍数の高さの画像データを生成した後、出力ストリームの画像サイズになるように所定の領域毎に平均値を求めることで、出力ストリームを生成する手法である。当該平均画素手法を用いることで、分割した後の入力ストリームの画像サイズと、スケーリング後で一つのピクチャに結合する前の出力ストリームの画像サイズと、に基づいて、スケーリングを行うことが可能になる。
そして、本実施の形態にかかる動画像処理装置100は、トランスコードで用いるスケーリングを、平均画素(スーパーサンプリング)法に特化したものとする。当該手法を適用することで、分割された他の領域の画像データを参照せずにスケーリングを行うことができる。
なお、他のスケール(例えばバイリニア法、バイキュービック法)手法は、対象画素に対してスケーリングする際に、当該対象画素の1画素上の画素値(分割された他の領域の画像データの画素値)が必要であり、並列処理の独立性を確保できないために適用できない。しかしながら、並列処理の独立性が確保可能、換言すれば分割された他の領域の画像データを参照せずに実行可能なスケーリング手法が提案された場合、当該スケーリング手法を適用しても良い。
図4は、平均画素法を用いた場合のスケーリングを行うマクロブロックライン単位を示した説明図である。図4に示す例では、幅W画素×高さN画素(Iiライン数のMBライン)で分割された入力ストリームに対してスケーリングを行い、幅X画素×高さL画素(Ioライン数のMBライン)の出力ストリームを生成している。
このように、入力ストリーム及び出力ストリームの画像サイズが予め定められている。そこで、特定部111がスケーリング対象として高さN画素(Iiライン数のMBライン)単位と特定し、分割部112が特定された高さN画素(Iiライン数のMBライン)に分割することで、分割された画像領域毎にスケーリングが行われるようになる。そして、図4に示すように入力ストリームで高さN画素毎にスケーリングを行う場合、入力ストリームの画像サイズの高さH画素をN画素で除した数のコアで並列処理を行うことができる。
そして、各コア(第2コア103〜第6コア107)に処理を分担させるため及び実際に動画像データについて処理を行うための構成として、本実施の形態にかかる動画像処理装置100においては、図1に示すCPU101の第1コア102内に、特定部111と、制御部114と、分割部112と、割当部113と、判定部115と、を備えている。
まず、特定部111が、初期化処理の際に入力ストリームの分割数(換言すれば並列処理数)、及び何MBライン毎に入力ストリームを分割するかを特定する。本実施の形態にかかる特定部111は、当該分割数及びMBライン数を、MBラインの画素数、コアの数、入力ストリームの画像サイズの高さ、出力ストリームの画像サイズの高さ、出力ピクチャ構造(MBAFF(MacroBlock Adaptive FrameField)か否か)、及びポスト処理の有無に基づいて特定する。
なお、MBラインの画素数、入力ストリームの画像サイズの高さ、及び出力ストリームの画像サイズの高さは、分割可能なMBラインの最小単位数を特定するために用いられる。このうち、MBラインの高さは、デコード及びエンコード可能な最小の領域を表している。
本実施の形態では、MPEG−2及びH.264の両方のMBのサイズを16画素×16画素と仮定する。この場合、MPEG−2及びH.264の両方のMBラインの高さが16画素となる。この場合、最も小さなスライスの高さが16画素、またはMBAFFの場合には32画素となる。
さらに、MPEG−2の入力ストリームの画像サイズを幅1920×高さ1440画素と、H.264の出力ストリームの画像サイズを幅720×480画素と仮定する。この場合、高さ3画素の入力ストリーム毎にスケーリングを行うことで、高さ1画素の出力ストリームを生成できる。つまり、3画素と1画素との最小公倍数である3画素単位であれば、平均画素法によるスケーリングが可能となる。つまり、本実施の形態では、高さ3画素が、スケーリング可能な最小の領域となる。
この場合、特定部111は、非MBAFF構造の場合、(MBラインの高さを表す画素数)16と、(入力ストリームの高さを表す画素数)3と、(出力ストリームの高さを表す画素数)1との最小公倍数として、48を算出する。つまり、入力ストリームの高さ48画素(3MBライン)の整数倍単位で分割すれば、適切にデコード、スケーリング、エンコードを行うことが可能となる。つまり、デコード、スケーリング、及びエンコードが可能な領域単位での分割が可能となる。
このように、デコード可能とする入力ストリームの画像サイズ(例えば画像の高さ)、スケーリングを可能とする最小の画素サイズ(例えばマクロブロックラインの高さ)、エンコード可能とする出力ストリームの画像サイズ(例えば画像の高さ)の最小公倍数が算出される。そして、算出した最小公倍数の整数倍の画像サイズが、分割する画像サイズとして特定される。
また、MBAFF構造の場合、特定部111は、(2ラインのMBラインの高さを表す画素数)32と、(入力ストリームの高さを表す画素数)3と、(出力ストリームの高さを表す画素数)1との最小公倍数として、96を算出する。なお、以下に示す例では、非MBAFF構造の場合について説明するが、同様の処理をMBAFF構造の場合にも適用できる。
なお、ポスト処理の有無は、ポスト処理用にコアを確保するか否かを判断するために必要となる。本実施の形態においては、ポスト処理を行うものとする。
さらに、特定部111は、各コアの処理負担が均等になるように、入力ストリームを分割する、入力ストリームの高さ48画素(3ラインのMBライン)のN倍数を特定する。本実施の形態では、第1コア102で、入力ストリームの分割処理、ポスト処理及びビットストリーム化処理を行い、第2コア103〜第6コア107で分割された入力ストリームに対してデコード、スケール及びエンコードを行うこととする。このため、5個のコアに均等に処理負担になるように、特定部111がN倍数を特定する。
そこで、本実施の形態の特定部111は、入力ストリームの1ピクチャを、288画素(6MBラインであって48画素×6)毎に、5個に均等に分割すると特定する。これにより、第2コア103〜第6コア107のそれぞれに対して、入力ストリームの1ピクチャについて、6ライン分のMBラインが割り当てられることになる。
なお、本実施の形態とコアの数が異なり、コア毎に均等に入力ストリームを分割できない場合、例えば、いくつかのコアに対して高さ48画素×6の入力ストリームを割り当て、他のコアに対して高さ48画素×5の入力ストリームを割り当てる等をしてもよい。つまり、各コアの処理負担がなるべく均等に掛かるようにするだけでも、目的とする効果は達せられる。
また、分割された入力ストリームが各コアに割り当てられる以上、特定部111が特定する入力ストリームの分割数は、CPU101の総コア数以下となる。
ただし、動画像処理装置100は、全てのピクチャをMBライン単位で分割するのではなく、マクロブロックがインターブロックの場合には、フレーム間で予測する必要があるので分割しないものとする。
そこで、判定部115が、ピクチャ毎に、I(Intra)ピクチャであるか否かを判定する。そして、Iピクチャ以外(例えばPピクチャ、Bピクチャ)の場合に分割し、Iピクチャの場合に分割しないで処理を行うものとする。Iピクチャは、従来通りの処理を行うものとして説明を省略する。Iピクチャとは、他のフレームと依存関係がなく、他のフレームを参照せずに符号化可能なピクチャとする。
また、判定部115は、ピクチャの先頭や、MBラインの先頭の検出等も行うものとする。
そして、分割部112は、入力ストリームの1ピクチャ毎に、MBライン単位、且つ均等な領域で分割する。本実施の形態にかかる分割部112は、特定部111で特定されたように、1ピクチャを6MBライン毎に5個に分割する。そして、分割された数毎に、各コアで動画像データに関する並列処理が行われる。
割当部113は、分割部112により分割された入力ストリームを、各コアに割り当てる。本実施の形態では、入力ストリームの1ピクチャを6MBライン毎に5個に分割されるため、割当部113は、分割された6個の6MBラインの動画像データを、第2コア103〜第6コア107のそれぞれに割り当てる。そして、第2コア103〜第6コア107は、割り当てられた動画像データに対して、デコード、スケーリング及びエンコード処理まで行う。このように、本実施の形態は、モジュール単位で各コアに処理を割り当てるのではなく、動画像データのMBライン単位で各コアが複数のモジュール処理を行うこととする。このように、割当部113は、処理負担が均等になるよう、各コアに対して、分割された入力ストリームのピクチャを割り当てる。
なお、本実施の形態は、6MBライン毎に5個に分割した例について説明したが、このような分割に制限するものではなく、CPUが備えるコアの数や、入力ストリームの画像サイズ、出力ストリームの画像サイズ等に基づいて、適切なMBライン数毎に入力ストリームを分割及び割当を行うものとする。
制御部114は、割り当てた入力ストリームを各コア(第2コア103〜第6コア107)がデコード、スケーリング及びエンコードを実行するように、各コア(第2コア103〜第6コア107)を制御する。
また、制御部114は、第2コア103〜第6コア107でエンコード処理まで行われた後の動画像データに対して、ポスト処理406及びビットストリーム化407を行う。これにより、出力ストリームの生成が終了する。
図5は、動画像処理装置100による1ピクチャに対する処理の概念を示した図である。図5に示すように、第1コア102が1ピクチャを分割した後、分割した入力画像データ毎にスレッドが起動し、各コアが起動した各スレッドの処理を行う。
図5に示した例では、第1スレッド401を第2コア103が処理し、第2スレッド402を第3コア104が処理し、第3スレッド403を第4コア105が処理し、第4スレッド404を第5コア106が処理し、第5スレッド405を第6コア107が処理する。そして、その他の処理(分割処理408、ポスト処理406及びビットストリーム化407)を第1コア102が担当する。
このように、各スレッドを各コアが処理を行うことで、各コアの処理負担を均等にすることが可能となり、効率的なコアの利用を可能とする。
次に、以上のように構成された本実施の形態にかかる動画像処理装置100における出力ストリームを出力するまでの処理について説明する。図6は、本実施の形態にかかる動画像処理装置100における上述した処理の手順を示すフローチャートである。
まず、動画像処理装置100は、初期化処理を行う(ステップS601)。初期化処理はトランスコーダの初期化を意味し、動画像処理アプリケーション150を起動した際に1回だけ行う。
そして、初期化処理の際、特定部111が、入力ストリームの分割数、及び何MBライン毎に入力ストリームのピクチャを分割するかを特定する(ステップS602)。そして、分割数のスレッドが起動し、各スレッドについて並列処理が行われる。
次に、CPU101が、動画像処理装置100の各構成(例えば、ネットワークコントローラ21又はデジタルTV放送チューナ19)が入力ストリームを検出したか否かを判断する(ステップS603)。入力ストリームを検出しなかったと判断した場合(ステップS603:No)、処理を終了する。
入力ストリームを検出したと判断した場合(ステップS603:Yes)、ネットワークコントローラ21や、デジタルTV放送チューナ19などの構成が、入力ストリームを入力処理する(ステップS604)。
その後、判定部115が、入力処理された入力ストリームについて、MBラインの先頭を検出する(ステップS605)。本実施の形態においては、MBライン単位で処理を行うため、MBラインの先頭を検出する。そして、所定の数のMBラインを検出することで、各ピクチャを特定できる。
そして、判定部115が、特定されたピクチャのピクチャタイプが、Iピクチャか否かを判定する(ステップS606)。
判定部115が、Iピクチャであると判定した場合(ステップS606:Yes)、通常通り、CPU101の各コアを用いて、デコード(ステップS607)、スケーリング(ステップS608)及びエンコード(ステップS609)を行う。その後、判定部115が、ポスト処理が必要か否か判定する(ステップS610)。必要ないと判定した場合(ステップS610:No)、特に処理を行わない。一方、必要と判定した場合(ステップS610:Yes)、所定のコアが、ポスト処理を行う(ステップS611)。なお、ステップS607〜S611までの処理は、モジュール単位で各コアに処理を割り当てる等を行うものとする。
一方、判定部115が、Iピクチャでないと判定した場合(ステップS606:No)、分割部112が、各ピクチャを、特定部111により特定されたMBライン単位で分割する(ステップS612)。そして、分割したMBライン単位でスレッドを起動し、スレッド毎にデコード、スケーリング、エンコード処理を各コアに行わせることになる。その後、割当部113が、分割したMBライン毎に、各コアに割り当てる(ステップS613)。
そして、制御部114が、割り当てた入力ストリームを各コア(第2コア103〜第6コア107)がデコード、スケーリング及びエンコードを実行するように制御する。これにより、各コアが、割り当てられたMBライン毎に、デコード、スケーリング、及びエンコードを行う(ステップS614)。なお、詳細な処理は、図5で示した通りなので説明を省略する。
その後、判定部115が、ポスト処理が必要か否かを判定する(ステップS615)。必要ないと判定した場合(ステップS615:No)、ポスト処理を行わない。一方、必要と判定した場合(ステップS615:Yes)、各コアでエンコード処理まで終了した後に、第1コア102の制御部114が、ポスト処理を行う(ステップS616)。これにより、出力ストリームの生成が終了する。なお、ポスト処理としては、ポスト処理は、主にデブロッキング処理とするが、他に画質改善やフィルタ処理等を含めても良い。
その後、ネットワークコントローラ21による出力ストリームの送信や、HDD17に対して出力ストリームを格納するなど、出力ストリームの出力処理を行う(ステップS617)。
そして、判定部115が、入力ストリームに含まれる全てのピクチャの処理が終了したか否かを判定する(ステップS618)。終了していないと判定した場合(ステップS618:No)、ステップS605から処理を開始する。
一方、判定部115が、終了したと判定した場合(ステップS618:Yes)、処理を終了する。
上述した処理手順により、Iピクチャ以外の場合に、各コアでデコード、スケーリング及びエンコードの並列処理を行い、その他のピクチャタイプの場合に通常通りの処理を行うことが可能となる。Iピクチャ以外の場合に、各コアに複数のモジュール処理を行うことで、各コアの処理負担を均等にすることが可能となる。
また、上述した処理手順においては、スレッド単位でポスト処理を行うことができないため、各コアの処理した後に結合した動画データに対して、第1コア102の制御部114がポスト処理を行うこととした。その後、結合した動画データに対してビットストリーム化を行い、出力ストリームを生成した。
これに対し、ピクチャタイプがIピクチャ以外で、ポスト処理を行わない場合、スレッド内でビットストリーム化まで行うことができる。そこで、ポスト処理を行わない場合、ビットストリーム化による出力ストリームの生成まで各スレッド(各コア)で行うものとする。この場合、ビットストリーム化などの処理が第2コア103〜第6コア107に負担されるため、第2コア103〜第6コア107と同じぐらいの処理負担になるように、分割可能なMBライン数単位のMBラインを、第1コア102に対して割り当てても良い。
また、本実施の形態の動画像処理装置100においては、CPU101の複数コアの場合について説明したが、複数のCPUを備え、各CPUの処理負担が均等になるように分担しても良い。
このように、各コアに対して、より詳細にMBラインを割り当てることで、コアのスループットを上げられ、また入力ストリーム及び出力ストリームの画像サイズなど他の要素によるスレッド効率(並列度)が悪くなる可能性を軽減できる。
なお、本実施の形態は、動画像処理装置100を用いた並列処理の例を示したものであり、並列処理数は、適宜プロセッサのコア数、MPEGデコード、エンコード、及びスケールパラメータに応じて決定されるものとする。
本実施の形態にかかる動画像処理装置100においては、MPEGデコードと、スケーリングと、エンコードとによる処理を、MBライン単位で並列化することで、処理効率を向上させることができる。
さらに、本実施の形態にかかる動画像処理装置100においては、トランスコードにおいて、従来通りにモジュール単位で並列処理を行うのではなく、複数のモジュールを含めた上で、分割可能な最小単位数のMBライン毎に各コアに割り当て、並列処理を行うことができる。つまり、最小単位数のMBライン単位で、各コアに割り当てることで、より細かい粒度で並列処理を設定することが可能となる。これにより、並列処理の自由度が増し、効率的にトランスコードすることができる。
特に分割可能な最小単位数のMBライン単位で処理を割り当てることができるため、マルチコア、メニイコアに対して均等な処理負担を行うことが可能となる。また、従来のモジュール単位の並列化した場合に画像サイズが大きい程、各モジュールの処理負担が異なることになっていたが、本実施の形態で示した手法では、画像サイズが大きくなるほど、コア毎の処理負担が異なるものではないため、安定的な並列処理を実現できる。
(変形例)
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
(変形例1)
上述した第1の実施の形態において、一つのピクチャをMBライン毎に分割して各コアに処理を割り当てる場合について説明した。しかしながら、動画像処理装置100が、さらに多くのコアがある場合、複数のピクチャに含まれるMBラインそれぞれを各コアに割り当て、複数のピクチャの処理を並列化してもよい。この場合、複数のピクチャ単位の処理を並列化することで、ポスト処理による待ち状態のタイムロスを軽減することができる。
(変形例2)
また、上述した第1の実施の形態においては、各コアがデコード、スケーリング及びエンコード処理という3つのモジュールの処理を行うこととしたが、3つのモジュール処理を必ず行う必要があるものではない。例えば、トランスコードではなく再生処理を行うものとして、各コアがデコード、スケーリングの2つのモジュール処理を行うことにしてもよい。
上述した実施の形態にかかる動画像処理装置100で実行される動画像処理アプリケーション150は、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供してもよい。
また、上述した実施の形態にかかる動画像処理装置100で実行される動画像処理アプリケーション150を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した実施の形態にかかる動画像処理装置100で実行される動画像処理アプリケーション150をインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、上述した実施の形態の動画像処理アプリケーション150を、ROM等に予め組み込んで提供するように構成してもよい。
第1の実施の形態にかかる動画処理装置の構成を示すブロック図である。 トランスコーダの構成を示したブロック図とする。 第1の実施の形態にかかる動画像処理装置における、デコード処理単位であるスライスを示した図である。 平均画素法を用いた場合のスケーリングを行うマクロブロックライン単位を示した説明図である。 第1の実施の形態にかかる動画像処理装置による1ピクチャに対する処理の概念を示した図である。 第1の実施の形態にかかる動画像処理装置における出力ストリームを出力するまでの処理の手順を示すフローチャートである。
符号の説明
3 LCD
4 KB
5 パワーボタン
6A TV起動ボタン
6B DVD起動ボタン
7 タッチパッド
12 ノースブリッジ
13 メインメモリ
14 グラフィクスコントローラ
14A VRAM
15 サウスブリッジ
16 BIOS−ROM
17 HDD
18 ODD
19 デジタルTV放送チューナ
20 EC/KBC
21 ネットワークコントローラ
100 動画像処理装置
101 CPU
102 第1コア
103 第2コア
104 第3コア
105 第4コア
106 第5コア
107 第6コア
111 特定部
112 分割部
113 割当部
114 制御部
115 判定部
150 動画像処理アプリケーション

Claims (11)

  1. コアを複数個有するプロセッサと、
    動画像データの画面情報を、均等な画像領域毎に分割する分割手段と、
    分割された前記画像領域を、前記コア毎に割り当てる割当手段と、
    割り当てた前記画像領域のデコード及びスケーリングを、前記各コアのそれぞれが実行するよう制御する制御手段と、
    を備えることを特徴とする画像処理装置。
  2. 前記分割手段は、デコード及びスケーリングが可能な画像領域単位で分割すること、
    を特徴とする請求項1に記載の画像処理装置。
  3. 前記制御手段による制御により、前記各コアが割り当てられた前記画像領域に対して行うスケーリング手法として、他の前記コアに割り当てられた前記画像領域を参照せずに実行可能なスケーリング手法を用いること、
    を特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記制御手段は、前記画像領域のエンコードを各コアが実行するように制御すること、
    を特徴とする請求項2又は3に記載の画像処理装置。
  5. 前記分割手段は、前記動画像データのデコード可能な最小の画像サイズ、前記動画像データのスケーリング可能な最小の画像サイズ、前記動画像データのエンコード可能な最小の画像サイズによる最小公倍数の整数倍となる画像サイズの画像領域に、前記動画像データを分割すること、
    を特徴とする請求項4に記載の画像処理装置。
  6. 入力処理された前記動画像データの、画面情報毎に、他の画像領域の画素値を参照せずに符号化可能なIピクチャであるか否かを判定する判定手段をさらに備え、
    分割手段は、Iピクチャが含まれていると判断した場合に、前記画像領域毎に分割を行なわず、
    前記プロセッサは、分割が行われていない前記画面情報に対して、デコード及びスケーリングを行うこと、
    を特徴とする請求項1乃至5のいずれか一つに記載の画像処理装置。
  7. 前記分割手段は、前記動画像データを、前記プロセッサが有するコアの数以下の数で分割すること、
    を特徴とする請求項2に記載の画像処理装置。
  8. コアを複数個有する画像処理装置で実行される画像処理方法であって、
    動画像データの画面情報を、均等な画像領域毎に分割する分割ステップと、
    分割された前記画像領域を、前記コア毎に割り当てる割当ステップと、
    割り当てた前記画像領域のデコード及びスケーリングを、前記各コアのそれぞれが実行するよう制御する制御ステップと、
    を含むことを特徴とする画像処理方法。
  9. 前記分割ステップは、さらに、デコード及びスケーリングが可能な画像領域単位で分割すること、
    を特徴とする請求項8に記載の画像処理方法。
  10. 前記制御ステップは、さらに、前記画像領域のエンコードを各コアが実行するように制御すること、
    を特徴とする請求項9に記載の画像処理方法。
  11. 前記分割ステップは、前記動画像データのデコード可能な最小の画像サイズ、前記動画像データのスケーリング可能な最小の画像サイズ、前記動画像データのエンコード可能な最小の画像サイズによる最小公倍数の整数倍となる画像サイズの画像領域に、前記動画像データを分割すること、
    を特徴とする請求項10に記載の画像処理方法。
JP2008278360A 2008-10-29 2008-10-29 画像処理装置、及び方法 Pending JP2010109572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008278360A JP2010109572A (ja) 2008-10-29 2008-10-29 画像処理装置、及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008278360A JP2010109572A (ja) 2008-10-29 2008-10-29 画像処理装置、及び方法

Publications (1)

Publication Number Publication Date
JP2010109572A true JP2010109572A (ja) 2010-05-13

Family

ID=42298592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008278360A Pending JP2010109572A (ja) 2008-10-29 2008-10-29 画像処理装置、及び方法

Country Status (1)

Country Link
JP (1) JP2010109572A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012014471A1 (ja) * 2010-07-30 2012-02-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
WO2014141773A1 (ja) * 2013-03-14 2014-09-18 株式会社 東芝 情報処理装置及びそのコンテンツファイル変換処理方法
JP2016051228A (ja) * 2014-08-28 2016-04-11 京セラドキュメントソリューションズ株式会社 電子機器
JP5945779B2 (ja) * 2010-06-14 2016-07-05 パナソニックIpマネジメント株式会社 マルチスレッド並列実行装置、放送ストリーム再生装置、放送ストリーム蓄積装置、蓄積ストリーム再生装置、蓄積ストリーム再符号化装置、集積回路、マルチスレッド並列実行方法、マルチスレッドコンパイラ
WO2016129031A1 (ja) * 2015-02-09 2016-08-18 株式会社日立情報通信エンジニアリング 画像圧縮伸長装置
US10277913B2 (en) 2014-10-22 2019-04-30 Samsung Electronics Co., Ltd. Application processor for performing real time in-loop filtering, method thereof and system including the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003502958A (ja) * 1999-06-23 2003-01-21 ジェネラル・インスツルメント・コーポレイション 多重プログラマブル・プロセッサを使用する多重チャネルmpegビデオ・トランスコーダの実行アーキテクチャー

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003502958A (ja) * 1999-06-23 2003-01-21 ジェネラル・インスツルメント・コーポレイション 多重プログラマブル・プロセッサを使用する多重チャネルmpegビデオ・トランスコーダの実行アーキテクチャー

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5945779B2 (ja) * 2010-06-14 2016-07-05 パナソニックIpマネジメント株式会社 マルチスレッド並列実行装置、放送ストリーム再生装置、放送ストリーム蓄積装置、蓄積ストリーム再生装置、蓄積ストリーム再符号化装置、集積回路、マルチスレッド並列実行方法、マルチスレッドコンパイラ
WO2012014471A1 (ja) * 2010-07-30 2012-02-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
JPWO2012014471A1 (ja) * 2010-07-30 2013-09-12 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
JP5656879B2 (ja) * 2010-07-30 2015-01-21 パナソニックIpマネジメント株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
US9307260B2 (en) 2010-07-30 2016-04-05 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus, image decoding method, image coding apparatus, and image coding method
WO2014141773A1 (ja) * 2013-03-14 2014-09-18 株式会社 東芝 情報処理装置及びそのコンテンツファイル変換処理方法
JP2014178871A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 情報処理装置及びそのコンテンツファイル変換処理方法
JP2016051228A (ja) * 2014-08-28 2016-04-11 京セラドキュメントソリューションズ株式会社 電子機器
US10277913B2 (en) 2014-10-22 2019-04-30 Samsung Electronics Co., Ltd. Application processor for performing real time in-loop filtering, method thereof and system including the same
WO2016129031A1 (ja) * 2015-02-09 2016-08-18 株式会社日立情報通信エンジニアリング 画像圧縮伸長装置
JP6085065B2 (ja) * 2015-02-09 2017-02-22 株式会社日立情報通信エンジニアリング 画像圧縮伸長装置
JPWO2016129031A1 (ja) * 2015-02-09 2017-04-27 株式会社日立情報通信エンジニアリング 画像圧縮伸長装置

Similar Documents

Publication Publication Date Title
US11949878B2 (en) Method and system for picture segmentation using columns
US10869046B2 (en) Image encoding apparatus, image encoding method, recording medium and program, image decoding apparatus, image decoding method, and recording medium and program
US8121191B1 (en) AVC to SVC transcoder
US9247264B2 (en) Method and system for parallel encoding of a video
US8140818B2 (en) Method and system for scalable video data width
JP6315911B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2013219727A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2010109572A (ja) 画像処理装置、及び方法
JP2006197587A (ja) デュアルビデオデコーディングシステム及び方法
JP2010141821A (ja) ストリーミングプロセッサおよびプロセッサシステム
JP5324431B2 (ja) 画像復号装置、画像復号システム、画像復号方法、及び集積回路
US20220264129A1 (en) Video decoder chipset
JP2013038768A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2015012410A (ja) 画像復号装置
JP2008022475A (ja) 再生装置および再生方法、並びにプログラム
JP2009246539A (ja) 符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
JP2008141276A (ja) Tv信号処理回路
JP5321895B2 (ja) 情報処理装置および方法
JP4476065B2 (ja) 画像処理システム
JP2007274229A (ja) 情報処理装置および情報処理方法、並びにプログラム
TW202101995A (zh) 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法
JP4621629B2 (ja) 画像復号装置
US20130107971A1 (en) Image encoding apparatus, image encoding method and program, image decoding apparatus, image decoding method and program
CN114584786B (zh) 基于视频解码的内存分配方法及系统
US10904578B2 (en) Video processing apparatus and video processing circuits thereof

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100525