(57)【要約】【課題】  画像処理を行った画像データをメモリへ書き戻すことなく、そのまま符号化処理に対する入力とする。【解決手段】  入力した画像データのラインが重なりラインである場合には、当該重なりラインのデータを共有ラインバッファ７０４、７２４に格納する。そして、処理対象のラインが、重なりラインである場合には、自コア１０１ａ、１０１ｂに隣接するコア１０１ｂ、１０１ａ内の共有ラインバッファ７２４、７０４から、当該重なりラインのデータを読み出す。そして、当該重なりラインのデータを使って解像度変換処理を行う。【選択図】  図７
2016092736.tif 000002
【特許請求の範囲】
【請求項１】
画像データを並列に処理する複数の画像処理手段を用いて画像処理を行う画像処理システムであって、
前記画像処理手段に対する記憶手段であって、前記画像データのうち、当該画像処理手段で使用されるデータを記憶する第１の記憶手段と、
前記画像処理手段に対する記憶手段であって、前記画像データのうち、当該画像処理手段と異なる他の前記画像処理手段で使用されるデータを記憶する第２の記憶手段と、
前記画像処理手段ごとに前記第１の記憶手段および前記第２の記憶手段の何れかを選択する第１の選択手段と、を有し、
前記画像処理手段は、前記第１の記憶手段と前記第２の記憶手段とのうち、前記第１の選択手段により選択された記憶手段に記憶されたデータを処理することを特徴とする画像処理システム。
【請求項２】
前記画像データの領域であって、少なくとも２つの前記画像処理手段で重複して参照される領域を導出する第１の導出手段をさらに有し、
前記第２の記憶手段は、前記画像データのうち、前記第１の導出手段により導出された前記領域のデータを記憶し、
前記第１の選択手段は、前記第１の導出手段により導出された前記領域が処理の対象の領域である場合に、前記他の前記画像処理手段に対する前記第２の記憶手段であって、当該領域のデータを記憶している前記第２の記憶手段を選択することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記画像データの領域のうち、処理に使用されない領域を前記画像処理手段ごとに導出する第２の導出手段と、
前記画像データのうち、前記画像処理手段で処理されるデータの転送を指示する指示手段と、をさらに有し、
前記指示手段は、前記第２の導出手段により導出された前記領域のデータを飛ばして前記画像処理手段へ前記画像データの転送を指示することを特徴とする請求項１または２に記載の画像処理システム。
【請求項４】
前記画像データの領域のうち、前記画像データを所定のサイズに分割したブロックにおける処理を前記画像処理手段が行うために必要となる領域を、前記画像処理手段ごとに導出する第３の導出手段をさらに有し、
前記画像処理手段は、前記画像データのうち、前記第３の導出手段により導出された前記領域のデータを入力して処理を行うことを特徴とする請求項１〜３の何れか１項に記載の画像処理システム。
【請求項５】
前記画像処理手段に入力されるデータの数と、当該画像処理手段で当該データが処理されたることにより得られるデータの数とが異なることを特徴とする請求項１〜４の何れか１項に記載の画像処理システム。
【請求項６】
前記画像処理手段で行われる前記処理は、解像度変換処理を含むことを特徴とする請求項１〜５の何れか１項に記載の画像処理システム。
【請求項７】
前記複数の画像処理手段のうち、前記画像処理に使用する画像処理手段の数を設定する設定手段と、
前記設定手段により設定された数に応じて、前記第１の選択手段における選択の対象となる前記第２の記憶手段を変更する第２の選択手段と、をさらに有することを特徴とする請求項１〜６の何れか１項に記載の画像処理システム。
【請求項８】
前記第２の選択手段は、前記複数の画像処理手段のうち前記設定手段により設定された数の前記画像処理手段から得られる２つの前記画像処理手段の一方に対する前記第２の記憶手段であって、前記画像データのうち相互に隣接する領域のデータを処理する２つの前記画像処理手段の一方に対する前記第２の記憶手段を選択の対象とすることを特徴とする請求項７に記載の画像処理システム。
【請求項９】
画像データを並列に処理する複数の画像処理手段を用いて画像処理を行う画像処理方法であって、
前記画像データのうち、前記画像処理手段で使用されるデータを、当該画像処理手段に対する第１の記憶手段に記憶する第１の記憶工程と、
前記画像データのうち、前記画像処理手段と異なる他の前記画像処理手段で使用されるデータを、当該画像処理手段に対する第２の記憶手段に記憶する第２の記憶工程と、
前記画像処理手段ごとに前記第１の記憶手段および前記第２の記憶手段の何れかを選択する第１の選択工程と、を有し、
前記画像処理手段は、前記第１の記憶手段と前記第２の記憶手段とのうち、前記第１の選択工程により選択された記憶手段に記憶されたデータを処理することを特徴とする画像処理方法。
【請求項１０】
前記画像データの領域であって、少なくとも２つの前記画像処理手段で重複して参照される領域を導出する第１の導出工程をさらに有し、
前記第２の工程は、前記画像データのうち、前記第１の導出工程により導出された前記領域のデータを記憶し、
前記第１の選択工程は、前記第１の導出工程により導出された前記領域が処理の対象の領域である場合に、前記他の前記画像処理手段に対する前記第２の記憶手段であって、当該領域のデータを記憶している前記第２の記憶手段を選択することを特徴とする請求項９に記載の画像処理方法。
【請求項１１】
前記画像データの領域のうち、処理に使用されない領域を前記画像処理手段ごとに導出する第２の導出工程と、
前記画像データのうち、前記画像処理手段で処理されるデータの転送を指示する指示工程と、をさらに有し、
前記指示工程は、前記第２の導出工程により導出された前記領域のデータを飛ばして前記画像処理手段へ前記画像データの転送を指示することを特徴とする請求項９または１０に記載の画像処理方法。
【請求項１２】
前記画像データの領域のうち、前記画像データを所定のサイズに分割したブロックにおける処理を前記画像処理手段が行うために必要となる領域を、前記画像処理手段ごとに導出する第３の導出工程をさらに有し、
前記画像処理手段は、前記画像データのうち、前記第３の導出工程により導出された前記領域のデータを入力して処理を行うことを特徴とする請求項９〜１１の何れか１項に記載の画像処理方法。
【請求項１３】
前記画像処理手段に入力されるデータの数と、当該画像処理手段で当該データが処理されたることにより得られるデータの数とが異なることを特徴とする請求項９〜１２の何れか１項に記載の画像処理方法。
【請求項１４】
前記画像処理手段で行われる前記処理は、解像度変換処理を含むことを特徴とする請求項９〜１３の何れか１項に記載の画像処理方法。
【請求項１５】
前記複数の画像処理手段のうち、前記画像処理に使用する画像処理手段の数を設定する設定工程と、
前記設定工程により設定された数に応じて、前記第１の選択工程における選択の対象となる前記第２の記憶手段を変更する第２の選択工程と、をさらに有することを特徴とする請求項９〜１４の何れか１項に記載の画像処理方法。
【請求項１６】
前記第２の選択工程は、前記複数の画像処理手段のうち前記設定工程により設定された数の前記画像処理手段から得られる２つの前記画像処理手段に対する前記第２の記憶手段の組み合わせであって、前記画像データのうち相互に隣接する領域のデータを処理する２つの前記画像処理手段に対する前記第２の記憶手段の組み合わせを選択の対象とすることを特徴とする請求項１５に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システムおよび画像処理方法に関し、特に、画像データを処理するために用いて好適なものである。
【背景技術】
【０００２】
動画像の圧縮記録に用いられる符号化方式として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣが知られている（非特許文献１を参照）。尚、以下の説明では、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣを必要に応じてＨ．２６４と称する。
近年、Ｈ．２６４の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されている。このような背景のもと、ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）がＩＳＯ／ＩＥＣとＩＴＵ−Ｔの間で設立された。ＪＣＴ−ＶＣでは、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ符号化方式の標準化がなされた（非特許文献２を参照）。尚、以下の説明では、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ符号化方式を必要に応じてＨＥＶＣと称する。
【０００３】
ＨＥＶＣの標準化にあたっては、種々の符号化ツールが、符号化効率の向上のみならず実装の容易性や処理時間の短縮といった観点も含めて幅広く採用された。処理時間の短縮の観点では、マルチコアのプロセッサや複数のハードウェア等で動作させる事を想定した、並列性を高めるための手法が採用されている。その手法の一つに、コンテキスト適応型算術符号化処理（ＣＡＢＡＣ）を並列に処理するためのＷＰＰ（Ｗａｖｅｆｒｏｎｔ  Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ）と呼ばれる手法や、Ｔｉｌｅと呼ばれる手法がある。
【０００４】
ＨＥＶＣでは、ＣＴＵ（Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｕｎｉｔ）と呼ばれる所定のサイズのブロックを単位として符号化を行う。ＷＰＰでは、高さを１個のＣＴＵとする横長の矩形にピクチャを区切って、符号化を行う。尚、以下の説明では、高さを１個のＣＴＵとする横長の矩形を、必要に応じて、ＣＴＵラインと称する。
一方、Ｔｉｌｅでは、縦と横の長さがそれぞれ複数のＣＴＵから成る矩形にピクチャを区切って符号化を行う。尚、以下の説明では、縦と横の長さがそれぞれ複数のＣＴＵから成る矩形を、必要に応じて、タイルと称する。
いずれの手法においても、各矩形（ＣＴＵラインあるいはタイル）を並列に処理することができる。
【０００５】
一方、動画像の圧縮前の画像に、解像度変換処理を行うという構成が必要となることがある（特許文献１を参照）。
前述のＨＥＶＣで並列処理を行う際に、解像度変換処理を行った後に圧縮を行うという構成を考えた場合、従来の例を元に構成すると、以下のような構成が考えられる。即ち、解像度変換処理を行った画像データを一旦メモリに格納し、しかるのちに処理毎に必要な画像データを読み込んで圧縮を行う構成である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−４０５０５号公報
【非特許文献】
【０００７】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４  （０３／２０１０）  Ａｄｖａｎｃｅｄｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【非特許文献２】ＩＴＵ−Ｔ  Ｈ．２６５  （０４／２０１３）  Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述の構成では、解像度変換処理を行うために、まず画像データをメモリから読み込んで解像度変換処理を行い、解像度変換処理を行ったデータをメモリに書き込み、当該データを、符号化処理を行うために再度メモリから読み込む必要がある。そのため、メモリ帯域が増加する課題がある。
本発明は、以上の課題に鑑みてなされたものであり、画像処理を行った画像データをメモリへ書き戻すことなく、そのまま符号化処理に対する入力とすることができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の画像処理システムは、画像データを並列に処理する複数の画像処理手段を用いて画像処理を行う画像処理システムであって、前記画像処理手段に対する記憶手段であって、前記画像データのうち、当該画像処理手段で使用されるデータを記憶する第１の記憶手段と、前記画像処理手段に対する記憶手段であって、前記画像データのうち、当該画像処理手段と異なる他の前記画像処理手段で使用されるデータを記憶する第２の記憶手段と、前記画像処理手段ごとに前記第１の記憶手段および前記第２の記憶手段の何れかを選択する第１の選択手段と、を有し、前記画像処理手段は、前記第１の記憶手段と前記第２の記憶手段とのうち、前記第１の選択手段により選択された記憶手段に記憶されたデータを処理することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画像処理を行った画像データをメモリへ書き戻すことなく、そのまま符号化処理に対する入力とすることができる。したがって、利用メモリ帯域を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理システムの構成を示す図である。
【図２】ＷＰＰを用いた画像処理を説明する図である。
【図３】入力画素と出力画素との関係の第１の例を示す図である。
【図４】入力画素と出力画素との関係の第２の例を示す図である。
【図５】入力画素と出力画素との関係の第３の例を示す図である。
【図６】入力ライン数と、重なりライン数を示す図である。
【図７】解像度変換処理装置の構成の第１の例を示す図である。
【図８】画像処理システムの動作の第１の例を説明するフローチャートである。
【図９】セレクタに対する制御を説明するフローチャートである。
【図１０】共有ラインバッファに対する制御を説明するフローチャートである。
【図１１】解像度変換処理装置の構成の第２の例を示す図である。
【図１２】解像度変換処理装置の構成の第３の例を示す図である。
【図１３】画像処理システムの動作の第２の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明の実施形態を説明する。
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、画像処理装置を含む画像処理システムのハードウェア構成の一例を示すブロック図である。
解像度変換処理装置１０１は、内部に複数のコア（処理部）１０１ａ、１０１ｂを備える。これら複数のコア１０１ａ、１０１ｂを用いることにより、解像度変換処理装置１０１は、複数の画像データを同時に解像度変換処理することが可能である。
【００１３】
画像符号化装置（エンコーダ）１０２は、解像度変換処理装置１０１と同様に、複数のコア１０２ａ、１０２ｂを備える。これら複数のコア１０２ａ、１０２ｂを用いることにより、画像符号化装置１０２は、複数のＣＴＵを同時に符号化処理することが可能である。
【００１４】
ＤＭＡコントローラ（ＤＭＡＣ）１０３〜１０６は、画像データの転送を行う。
画像入力部１０７は、外部から画像データを入力する。
ＣＰＵ１０８は、システム全体を制御する。ＲＯＭ１０９は、システムを制御するプログラム等を格納する。ＲＡＭ１１０は、画像入力部１０７から入力された画像データや、符号化処理後の画像データ等を格納する。
【００１５】
図２は、ＷＰＰを用いた画像処理の一例を概念的に説明する図である。図中の各々の四角形は、符号化を行う際の所定サイズの単位ブロックであり、ＣＴＵと呼ばれるものである。ＷＰＰでは、ＣＴＵ１個分の高さの横長な矩形であるＣＴＵラインと呼ばれる単位に、ピクチャを区切って符号化を行う。本実施形態では、２系統で並列処理を行う場合を例に挙げて説明する。したがって、図２に示すように、１、３、５、・・・番目のＣＴＵラインを系統１（コア１０１ａ、１０２ａ）で処理し、２、４、６、・・・番目のＣＴＵラインを系統２（コア１０１ｂ、１０２ｂ）で処理する。
【００１６】
図２において、系統２でＣＴＵ２００を処理する際には、直前のＣＴＵ２１０以外に、１つ上のＣＴＵラインに属するＣＴＵ２１１、２１２、２１３の処理後の画像を参照する必要がある。このため、系統２でＣＴＵ２００を処理するまでに、系統１ではＣＴＵ２１３の処理まで終了している必要がある。つまり、ＷＰＰでは、処理対象ＣＴＵが属するＣＴＵラインの１つ上のＣＴＵラインの処理は、当該ＣＴＵに対し２ＣＴＵ以上先行している必要がある。
尚、ＣＴＵライン内の処理順序はラスター順である。即ち、図２において、上方向にあるラインからライン順に処理が行われる。
【００１７】
以上の通り、画像符号化装置１０２には、ＣＴＵ単位で各系統１、２に、画像処理（本実施形態では解像度変換処理）が行われた後の画像データの入力を行うことが求められる。即ち、解像度変換処理装置１０１の出力をＣＴＵ単位で行うことが必要である。
このことから解像度変換処理装置１０１には、解像度変換処理（縮小或いは拡大）によるサイズの変更を考慮に入れたサイズの画像データを入力することが必要である。
【００１８】
図３〜図５は、解像度変換処理で一般的に使用されるバイリニア処理を利用した場合の入力画素と出力画素（バイリニア補間画素）との関係の一例を示す図である。
図３〜図５では、入力画素ｉ０〜ｉ２３を丸で示す。また、図３〜図５では、出力画素ｏ０〜ｏ１７を四角で示す。また、ここでは、説明を簡単にするため、縦方向の変倍のみを行う場合を例に挙げて示す。
【００１９】
図３に示す例では、入力画素ｉ０、ｉ１、ｉ４、ｉ５の４画素から出力画素ｏ０が算出される。
ここで、図３に示す例では、入力画素ｉ１２〜ｉ１５のラインと、入力画素ｉ１６〜ｉ１９のラインとの間には出力画素が存在しない。
また、図４に示す例では、入力画素ｉ４〜ｉ７のラインと、入力画素ｉ８〜ｉ１１のラインとの間と、入力画素ｉ８〜ｉ１１のラインと、入力画素ｉ１２〜ｉ１５のラインとの間には、出力画素が存在しない。つまり、図４に示す例では、一点鎖線で囲まれている入力画素ｉ８〜ｉ１１のラインは、出力画素を算出するに当たり、使用されないライン（画素）ということになる。
【００２０】
さらに、図５に示す例では、入力画素ｉ１２〜ｉ１５のラインと、入力画素ｉ１６〜ｉ１９のラインとの間には、４つの入力画素に対して２つ出力画素が存在する。例えば、４つの入力画素ｉ１２、ｉ１３、ｉ１６、ｉ１７の領域に属する補間画素は、２つの出力画素ｏ９、ｏ１２である。
以上のことは、出力をＣＴＵ単位とする場合には、必要な入力画素（ライン）の数は、ＣＴＵラインによって異なることを示す。
さらに、解像度変換処理を複数のコア１０１ａ、１０１ｂで分割して処理する場合では、コア１０１ａ、１０１ｂにおける入力ラインの関係であって、画像データの境界部分に対する入力ラインの関係として、以下の三通りの場合が考えられる。
１．各コア１０１ａ、１０１ｂで共通に必要な入力ラインが存在する場合。
２．各コア１０１ａ、１０１ｂで必要な入力ラインが分割され、かつ不必要な入力ラインが存在しない場合。
３．いずれのコア１０１ａ、１０１ｂにも不必要な入力ラインが存在する場合。
【００２１】
図６は、各ＣＴＵライン（ＣＴＵライン番号）で必要な入力ライン数と、重なりライン数の一例を示す図である。重なりライン数とは、相互に隣り合うＣＴＵラインで重なり合うラインの数をいう。図６では、入力ライン数を１２８０、出力ライン数を８００とした場合、即ち縮小処理を想定した場合を例に挙げて示す。また、図６ではＣＴＵラインのライン数を６４とした場合の例を示している。従って、８００ラインを出力するために必要な縦方向のＣＴＵライン数は１３である。
【００２２】
ここで、図３〜図５を参照しながら、縦方向の変倍のみを行う場合の入力ライン数と重なりライン数の導出方法の一例を概念的に説明する。
図３〜図５において、縦方向に座標軸（Ｙ軸）を設定する。図３〜図５に示す例では、入力画素ｉ０の位置を原点（０）とし、入力画素ｉ４、ｉ８、・・・の座標を、各々１、２、・・・とする。
【００２３】
まず、入力ライン数の導出方法の一例を説明する。
変倍後の出力画素ｏ０の位置は、変倍率をαとすると、αとなる。例えば、変倍率が０．６である場合、変倍後の出力画素ｏ０の位置は、０．６（＝０．６×１）になる。
また、縦方向（Ｙ軸の正の方向）において２番目の出力画素ｏ３の位置は、変倍率をαとすると、α×２となる。例えば、変倍率が０．６である場合、変倍後の出力画素ｏ０の位置は、１．２（＝０．６×２）になる。
即ち、縦方向においてｎ番目の出力画素の位置Ｙnは、Ｙn＝α×ｎとなる。
【００２４】
ここで、縦方向においてｎ番目の出力画素の位置Ｙnを整数部Ｉnと小数部Ｄnに分けて表現する（Ｙn＝Ｉn＋Ｄn)。
まず、縦方向においてｎ番目の出力画素の位置Ｙnと、縦方向においてｎ＋１番目の出力画素の位置Ｙn+1とで整数部が同じである場合、即ち、Ｉn+1＝Ｉnの場合がある。この場合、縦方向の２つの入力画素から２つの出力画素が生成可能であることを示す。例えば、図５における出力画素ｏ９、ｏ１２が、この場合（Ｉ5＝Ｉ4の場合）に該当する。
【００２５】
また、縦方向においてｎ＋１番目の出力画素の位置Ｙn+1の整数部Ｉn+1が、縦方向においてｎ番目の出力画素の位置Ｙnの整数部Ｉnよりも２大きい場合、即ち、Ｉn+1＝Ｉn＋２となる場合がある。この場合、入力画素は処理に使用されるが、縦方向における或る２つの入力画素から出力画素が一つも生成されないことを示す。例えば、図３における出力画素ｏ６、ｏ９が、この場合（Ｉ4＝Ｉ3＋２）に該当する。
【００２６】
また、縦方向においてｎ＋１番目の出力画素の位置Ｙn+1の整数部Ｉn+1が、縦方向においてｎ番目の出力画素の位置Ｙnの整数部ＩnよりもＴ（Ｔ＞２）大きい場合、即ち、Ｉn+1＞Ｉn＋２となる場合がある。この場合、途中の入力画素は処理に使用されないことを示す。例えば、図４における出力画素ｏ０、ｏ３が、この場合（Ｉ2＞Ｉ1＋２）に該当する。
【００２７】
また、縦方向においてｎ＋１番目の出力画素の位置Ｙn+1の整数部Ｉn+1が、縦方向においてｎ番目の出力画素の位置Ｙnの整数部Ｉnよりも１大きい場合、即ち、Ｉn+1＝Ｉn＋１となる場合がある。この場合、縦方向の２つの入力画素から１つの出力画素が生成可能であることを示す。例えば、図３における出力画素ｏ０、ｏ３が、この場合（Ｉ2＝Ｉ1＋１の場合）に該当する。
【００２８】
ＣＰＵ１０８は、整数部Ｉn+1、Ｉnの関係（Ｉn+1＝Ｉn、Ｉn+1＝Ｉn＋２、Ｉn+1＞Ｉn＋２、Ｉn+1＝Ｉn＋１）を判定し、判定した結果に応じて当該ｎ番目の出力画素に対し必要な入力ラインを特定する。ＣＰＵ１０８は、ｎがＣＴＵサイズに相当する数になるまで、ｎをインクリメントして、各ｎ番目の出力画素に対し必要な入力ラインを特定し、当該特定した入力ラインの数の総数を、１つのＣＴＵライン番号における入力ライン数とする。ＣＰＵ１０８は、以上のような入力ライン数の導出を、ｎをインクリメントしながら順次行うことにより、全てのＣＴＵライン番号における入力ライン数を導出する。
【００２９】
次に、重なりライン数の導出方法の一例を説明する。
ＣＴＵライン番号がｍであるＣＴＵラインの縦方向の最後の出力画素Ｙnは、（縦方向の）ＣＴＵサイズをｋとすると、Ｙn＝Ｙm×kと表わされる。
ＣＰＵ１０８は、ＣＴＵライン番号ｍのＣＴＵラインの縦方向の最後の出力画素Ｙnと、縦方向において当該出力画素Ｙnの次の出力画素Ｙn+1とで、前述したように整数部Ｉn、Ｉn+1の関係を判断する。ＣＰＵ１０８は、この判断の結果に基づいて、各ＣＴＵライン番号ｍ、ｍ＋１における重なりライン数を導出する。
【００３０】
即ち、Ｉn+1＝Ｉnの場合は、重なりライン数＝２、Ｉn+1＝Ｉn+１の場合は、重なりライン数＝１、Ｉn+1＝Ｉn＋２の場合は、重なりライン数＝０となる。またＩn+1＞Ｉn＋２の場合は、重なりライン数＝０であり、かつ、処理に使用されない画素があるため、転送不要な入力ラインが存在することになる。
【００３１】
図７は、解像度変換処理装置１０１のより詳細なハード構成の一例を示すブロック図である。前述したように本実施形態では、解像度変換処理装置１０１が、その内部に２つのコアを備える場合を例に挙げて説明する。
画像入力部となるラインバッファ７０１〜７０３、７２１〜７２３は、入力画像データをラインごとに格納する第１の記憶処理を行う。図７では、各コア１０１ａ、１０１ｂに３ライン分のバッファを備える構成を例に挙げて示す。これは後段のプレフィルタで３タップ分のフィルタ処理を仮定しているためである。即ち、各コア１０１ａ、１０１ｂで格納するラインの数は、フィルタ処理の内容に応じて変動する。
【００３２】
共有ラインバッファ７０４、７２４は、入力画像データを格納する第２の記憶処理を行う。共有ラインバッファ７０４、７２４に格納された入力画像データは、自コア内での処理に利用されると共に、自コアに隣接するコア（自コアが解像度変換処理を行う領域に隣接する領域の解像度変換処理を行うコア）でも利用されることが可能である。
セレクタ７０５、７２５は、後段へ転送する画像データを、自コア内のラインバッファ７０３、７２３の入力画像データとするか、それとも自コアに隣接するコアの共有ラインバッファ７２４、７０４の入力画像データとするかを選択する第１の選択処理を行う。
【００３３】
プレフィルタ７０６、７２６は、入力画像データに対し、解像度変換処理における画質劣化を防止する効果を施すためのものである。プレフィルタ７０６、７２６としては、例えば、ローパスフィルタが使用される。
中間バッファ７０７、７２７は、プレフィルタ処理を施したデータを格納する。
バイリニア処理部７０８、７２８は、中間バッファ７０７、７２７に格納されたデータに対し解像度変換処理（本実施形態ではバイリニア処理）を行う。
出力バッファ７０９、７２９は、バイリニア処理部７０８で解像度変換処理が行われたデータを格納する。出力バッファ７０９、７２９から、画像符号化装置１０２のコア１０２ａ、１０２ｂにそれぞれデータが出力される。
【００３４】
共有バッファ制御部７１０、７３０は、セレクタ７０５、７２５および共有ラインバッファ７０４、７２４の制御を司る。
コア制御部７１１、７３１は、各コア１０１ａ、１０１ｂの全体を制御するとともに、前段のＤＭＡコントローラ１０３、１０４に対して各コア１０１ａ、１０１ｂに必要な画像データの転送指示を行う。
ラインカウンタ７１２、７３２は、各コア１０１ａ、１０１ｂが、一画面内のどのラインの画像データを処理しているかを計数する。
【００３５】
次に、共有ラインバッファ７０４の制御を考慮しない場合の入力から出力までの流れの一例を、コア１０１ａを例に挙げて説明する。
前段のＤＭＡコントローラ１０３から画像データがＣＴＵ毎に順次入力される。このときＣＴＵ内の画像データの入力順序は前述の通りラスター順（ライン順）である。
入力画像データはライン毎にラインバッファ７０１〜７０３に格納される。ラインバッファ７０１〜７０３から、縦方向に３ライン分の画素のデータがプレフィルタ７０６に供給され、プレフィルタ処理が行われる。
【００３６】
プレフィルタ処理が行われたデータは一旦中間バッファ７０７に格納される。
そして、バイリニア処理部７０８で処理するために必要な画素が揃ったところで、バイリニア処理部７０８にデータが供給され、解像度変換処理が行われる。
解像度変換処理が行われたデータは、出力バッファ７０９に格納され、後段の画像符号化装置１０２のコア１０２ａに供給される。
【００３７】
次に、図８のフローチャートを参照しながら、本実施形態の画像処理システムおける動作の一例を説明する。
ここでは、処理に必要な現画像は画像入力部１０７を通して、既にＲＡＭ１１０に格納されているものとする。
ステップＳ８０１では、ＣＰＵ１０８は、処理に必要なパラメータを設定する。パラメータとしては、例えば、一画面の画像サイズ、ＣＴＵライン番号、変倍後に必要なＣＴＵのサイズ、変倍率、コア数Ｎ、自コア番号Ｍ（０、・・・、Ｎ−１）がある。
本実施形態では、コア数Ｎとして２が設定される（Ｎ＝２）。また、自コア番号Ｍとして、コア１０１ａに対しては０（Ｍ＝０）、コア１０１ｂに対しては１（Ｍ＝１）がそれぞれ設定される。
当該パラメータは、コア制御部７１１、７３１内の不図示のレジスタに格納される。
【００３８】
次に、ステップＳ８０２では、コア制御部７１１、７３１は、ＣＴＵライン番号をカウントするＣＴＵラインカウンタと、各ＣＴＵライン内のラインをカウントするラインカウンタに対して初期値をセットする。さらにコア制御部７１１、７３１は、横方向のＣＴＵライン処理数をカウントするＣＴＵカウンタに対しても初期値をセットする。これらのＣＴＵラインカウンタおよびラインカウンタは、ラインカウンタ７１２、７３２内に設けられる。
ここで、各ＣＴＵライン内のラインをカウントするラインカウンタと、横方向のＣＴＵライン処理数をカウントするＣＴＵカウンタの初期値はゼロである。これに対し、ＣＴＵライン番号をカウントするＣＴＵラインカウンタの初期値は自コア番号Ｍである。
【００３９】
次に、ステップＳ８０３では、コア制御部７１１、７３１は、ステップＳ８０１で設定したパラメータと、ＣＴＵラインカウンタの値とに基づき、以下の第１〜第３の導出処理を行う。第１の導出処理は、重なりライン数を導出する処理である。第２の導出処理は、出力画素の導出に使用されないラインを導出する処理である。第３の導出処理は、各ＣＴＵライン（ＣＴＵライン番号）で必要な入力ライン数を導出する処理である。
次に、ステップＳ８０４では、コア制御部７１１、７３１は、ステップＳ８０３で算出した値に基づき前段のＤＭＡコントローラ１０３、１０４に対して画像転送指示を行う。このときコア制御部７１１、７３１は、出力画素の導出に使用されないラインについては、当該ラインを飛ばして画像転送指示を行う。
【００４０】
次に、ステップＳ８０５では、コア制御部７１１、７３１は、１ライン分の画像データが入力されるまで待機する。１ライン分の画像データが入力されると、ステップＳ８０６へ移行する。
ステップＳ８０６では、共有バッファ制御部７１０、７３０は、セレクタ７０５、７２５および共有ラインバッファ７０４、７２４に対する制御（セレクタ・共有ラインバッファ制御処理）を行う。かかる制御は、ステップＳ８０３で算出された値と、ＣＴＵラインカウンタ、ラインカウンタ、およびＣＴＵカウンタの値とに基づいて行われる。
【００４１】
ここで、図９および図１０を参照しながら、ステップＳ８０６における制御の一例を説明する。
図９は、セレクタ７０５、７２５にバッファを選択させるための制御の一例を説明するフローチャートである。
ステップＳ９０１では、共有バッファ制御部７１０、７３０は、自コア１０１ａ、１０１ｂで処理中のＣＴＵラインに、処理順で当該ＣＴＵラインよりも１つ前のＣＴＵラインとの重なりラインがあるか否かを判定する。この判定の結果、重なりラインがない場合には、ステップＳ９０２へ進む。一方、重なりラインがある場合には、ステップＳ９０３へ進む。
【００４２】
ステップＳ９０２では、共有バッファ制御部７１０、７３０は、自コア１０１ａ、１０１ｂ内のラインバッファ７０３、７２３を選択することをセレクタ７０５、７２５に指示する。そして、図９のフローチャートを終了する。
ステップＳ９０３では、共有バッファ制御部７１０、７３０は、現在処理中のラインが重なりラインであるか否かを判定する。この判定の結果、現在処理中のラインが重なりラインでない場合には、前述したステップＳ９０２へ進む。一方、現在処理中のラインが重なりラインである場合は、ステップＳ９０４へ進む。
【００４３】
ステップＳ９０４では、共有バッファ制御部７１０、７３０は、自コア１０１ａ、１０１ｂに隣接するコア１０１ｂ、１０１ａ内の共有ラインバッファ７２４、７０４を選択することをセレクタ７０５、７２５に指示する。さらに、共有バッファ制御部７１０、７３０は、自コア１０１ａ、１０１ｂに隣接するコア１０１ｂ、１０１ａ内の共有バッファ制御部７３０、７１０に対して共有バッファ読み出し信号を送信する。これにより、共有バッファ制御部７１０、７３０は、共有ラインバッファ７２４、７０４からデータを自コア１０１ａ、１０１ｂ内に取り込む。そして、図９のフローチャートを終了する。
【００４４】
図１０は、共有ラインバッファ７０４、７２４にデータを格納するための制御の一例を説明するフローチャートである。
ステップＳ１００１では、共有バッファ制御部７１０、７３０は、自コア１０１ａ、１０１ｂで処理中のＣＴＵラインに、処理順で次のＣＴＵラインとの重なりラインがあるか否かを判定する。この判定の結果、重なりラインがない場合には、図１０のフローチャートを終了する。この場合には、共有ラインバッファ７０４、７２４は使用されず、共有ラインバッファ７０４、７２４に対する制御は行われない。一方、重なりラインがある場合には、ステップＳ１００２へ進む。
【００４５】
ステップＳ１００２では、共有バッファ制御部７１０、７３０は、ＤＭＡコントローラ１０３、１０４からの入力画像データが、重なりラインの入力であるか否かを判定する。この判定の結果、重なりラインの入力でない場合には、図１０のフローチャートを終了する。この場合には、共有ラインバッファ７０４、７２４は使用されず、共有ラインバッファ７０４、７２４に対する制御は行われない。一方、重なりラインの入力である場合には、ステップＳ１００３へ進む。
【００４６】
ステップＳ１００３では、共有バッファ制御部７１０、７３０は、入力画像データを、自コア１０１ａ、１０１ｂに隣接するコア１０１ｂ、１０１ａで使用させる為に、共有ラインバッファ７０４、７２４に格納する。そして、図１０のフローチャートを終了する。
【００４７】
図８の説明に戻り、ステップＳ８０７では、バイリニア処理部７０８、７２８は、入力された画像データに基づき解像度変換処理を行う。
ステップＳ８０８では、コア制御部７１１、７３１は、ステップＳ８０３で導出された入力ライン数分の入力を完了したか否か、即ち１ＣＴＵ分の入力を完了したか否かを判定する。この判定の結果、１ＣＴＵ分の入力を完了していない場合には、ステップＳ８０９へ進み、１ＣＴＵ分の入力を完了したと場合には、ステップＳ８１０へ進む。
【００４８】
ステップＳ８０９では、コア制御部７１１、７３１は、ラインカウンタをカウントアップ（＋１）する。
ステップＳ８１０では、コア制御部７１１、７３１は、ラインカウンタの値をゼロに戻すとともに、ＣＴＵカウンタをカウントアップ（＋１）する。
次に、ステップＳ８１１では、コア制御部７１１、７３１は、ＣＴＵカウンタの値に基づいて、１ＣＴＵラインの横方向の全ての入力を完了したか否かを判定する。この判定の結果、１ＣＴＵラインの横方向の全ての入力を完了した場合には、ステップＳ８１２に進む。一方、１ＣＴＵラインの横方向の全ての入力を完了していない場合には、ステップＳ８１３へ進む。
【００４９】
ステップＳ８１２では、コア制御部７１１、７３１は、ＣＴＵカウンタの値をゼロに戻すとともに、ＣＴＵラインカウンタをカウントアップ（＋Ｎ）する。
ステップＳ８１３では、コア制御部７１１、７３１は、１フレームの画像データに対し、自コア１０１ａ、１０１ｂで処理すべき全ての処理を完了したか否かを判定する。この判定の結果、全ての処理を完了していれば図８のフローチャートを終了する。一方、全ての処理を完了していなければ、ステップＳ８０３へ戻る。
【００５０】
以上のように本実施形態では、変倍前の画像データと、変倍率と、変倍後に必要なＣＴＵのサイズとを含むパラメータに基づいて、各ＣＴＵライン番号における入力ライン数と、重なりライン数と、出力画素の導出に使用されないラインと、を導出する。
そして、１ラインずつ画像データを入力する。このとき、出力画素の導出に使用されないラインの画像データについては入力しない。また、入力した画像データのラインが重なりラインである場合には、当該重なりラインのデータを共有ラインバッファ７０４、７２４に格納する。
【００５１】
そして、処理対象のラインが、重なりラインである場合には、自コア１０１ａ、１０１ｂに隣接するコア１０１ｂ、１０１ａ内の共有ラインバッファ７２４、７０４から、当該重なりラインのデータを読み出す。そして、当該重なりラインのデータを使って解像度変換処理を行う。
以上の処理を、前記入力ライン数のラインの画像データの全てについて行うことで、１つのＣＴＵライン番号における解像度変換処理を行う。
【００５２】
したがって、解像度変換処理を行った画像データをメモリへ書き戻すことなく、そのまま符号化処理に対する入力とすることができる。よって、利用メモリ帯域を削減する効果がある。また、２つのコア１０１ａ、１０１ｂで重複して必要な入力画素についてもＲＡＭ１１０からの転送は１回で済むため、さらに利用メモリ帯域を削減することができる。また、出力画素の算出に使用されない入力画素が存在する場合は、ＲＡＭ１１０から転送を行わないようにするため、さらに利用メモリ帯域を削減することができる。
【００５３】
（第２の実施形態）
次に、第２の実施形態を説明する。前述した第１の実施形態では、解像度変換処理装置１０１が備えるコアの数が２つである場合を例に挙げて説明した。しかしながら、解像度変換処理装置１０１が備えるコアの数は２つに限定されない。本実施形態では、解像度変換処理装置１０１が備えるコアの数が３つである場合について説明する。このように本実施形態と第１の実施形態とは、解像度変換処理装置１０１が備えるコアの数が異なることによる構成および処理が主として異なる。したがって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図１０に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００５４】
図１１は、解像度変換処理装置１１００のより詳細なハード構成の一例を示すブロック図である。
図１１において、解像度変換処理装置１１００は、図７に示した第１の実施形態の解像度変換処理装置１０１が備える２つのコア１０１ａ、１０１ｂに加えて３つ目のコア１０１ｃを備える。
コア１０１ｃは、コア１０１ａ、１０１ｂと同じ構成を有する。即ち、コア１０１ｃは、ラインバッファ１１０１〜１１０３、共有ラインバッファ１１０４、セレクタ１１０５、プレフィルタ１１０６、中間バッファ１１０７、バイリニア処理部１１０８、および出力バッファ１１０９を有する。さらにコア１０１ｃは、共有バッファ制御部１１１０、コア制御部１１１１、およびラインカウンタ１１１２を有する。各々のブロックは、前述した第１の実施形態における同じ名称のブロックと同じ機能を有する。
【００５５】
前述した第１の実施形態では、共有ラインバッファおよび共有バッファ制御部の接続が２つのコア１０１ａ、１０１ｂ間のみで行われる。これに対し本実施形態では、共有ラインバッファおよび共有バッファ制御部の接続が、相互に隣接する２つのコア間（コア１０１ａとコア１０１ｂ、コア１０１ｂとコア１０１ｃ、コア１０１ｃとコア１０１ａ）での接続となっている点である。
【００５６】
本実施形態の動作は、図８に示したフローチャートにおいて、コア数Ｎ＝３、自コア番号Ｍを各コア１０１ａ、１０１ｂ、１０１ｃに対して０、１、２とすることで実現することができる。尚、画像符号化装置１０２が備えるコアの数も解像度変換処理装置１１００が備えるコアの数と同様に３つになる。
【００５７】
以上のように構成することで、３つのコアを備える構成（３つの系統を並列処理する場合）であっても、第１の実施形態で説明した効果と同じ効果を奏する。即ち、解像度変換処理を行った画像データをメモリへ書き戻すことなく、そのまま符号化処理に対する入力とすることができるため、利用メモリ帯域を削減することができる。
また、コアの並列度を上げることで処理速度を向上させることが可能となる。
【００５８】
尚、本実施形態では、コアの数を３つにする場合を例に挙げて説明した。しかしながら、コアの数は４つ以上であってもよい。このようにする場合でも、前述したように、共有ラインバッファおよび共有バッファ制御部の接続が、相互に隣接する２つのコア間での接続になる。
また、本実施形態および第１の実施形態では、各コアに共有バッファ制御部７１０、７３０、１１１０を設ける場合を例に挙げて説明した。しかしながら、解像度変換処理装置１０１、１１００全体で１つの共有バッファ制御部を設けてもよい。このようにする場合、当該１つの共有バッファ制御部により、各コアを制御する構成になる。
また、本実施形態および第１の実施形態では、各コアに共有ラインバッファ７０４、７２４、１１０４を設ける場合を例に挙げて説明した。しかしながら、解像度変換処理装置１０１、１１００全体で複数の共有ラインバッファを備える構成としてもよい。
【００５９】
（第３の実施形態）
次に、第３の実施形態を説明する。第１および第２の実施形態では、全てのコアを使用する場合を例に挙げて説明した。しかしながら、処理する画像データのサイズが小さい場合には、全てのコアを使用せずに一部のコアのみを使用して動作させることができる。そこで、本実施形態では、解像度変換処理装置に搭載されるコアの数よりも少ない数のコアを使用して解像度変換処理を行う場合について説明する。このように本実施形態と第１および第２の実施形態とは、解像度変換処理装置で使用するコアの数が異なることによる構成および処理が主として異なる。したがって、本実施形態の説明において、第１および第２の実施形態と異なる部分については、図１〜図１１に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００６０】
本実施形態では、第２の実施形態で説明した３つのコア１０１ａ〜１０１ｃを有する解像度変換処理装置１２００の構成を用いて２つのコアのみを使用する場合を例に挙げて説明する。
図１２は、解像度変換処理装置１２００のより詳細なハード構成の一例を示すブロック図である。
図１２において、セレクタ１２０１は、コア１０１ａのセレクタ７０５へ入力するデータを、共有ラインバッファ７２４からとするか共有ラインバッファ１１０４からとするかを選択する第２の選択処理を行う。
使用コア数設定部１２０２は、解像度変換処理装置１２００で使用するコア数を設定する。
【００６１】
図１３は、本実施形態の画像処理システムおける動作の一例を説明するフローチャートである。
図１３に示すフローチャートでは、図８に示したフローチャートのステップＳ８０１とステップＳ８０２の間にステップＳ１３０１、Ｓ１３０２が追加される。また、ステップＳ８１２の代わりにステップＳ１３０３が行われる。図１３に示すフローチャートのその他の部分は、図８に示すフローチャートと同じである。
【００６２】
ステップＳ１３０１では、ＣＰＵ１０８は、使用コア数設定部１２０２に対して、使用コア数Ｌを設定する。本実施形態では、使用コア数Ｌとして２（Ｌ＝２）を設定する。
ステップＳ１３０２では、ＣＰＵ１０８は、ステップＳ１３０１での設定に応じてセレクタ１２０１の選択を行う。使用コア数Ｌが２である場合（Ｌ＝２の場合）、ＣＰＵ１０８は、共有ラインバッファ７２４の使用が選択されるように、セレクタ１２０１の選択を行う。
【００６３】
また、ステップＳ１３０３では、コア制御部７１１、７３１、１１１１は、図８のステップＳ８１２と同様に、ＣＴＵカウンタの値をゼロに戻すとともに、ＣＴＵラインカウンタのカウントアップを行う。ただし、ステップＳ１３０３では、コア数のＮではなく、使用コア数のＬ（本実施形態では２）だけカウントアップする。
【００６４】
以上のように本実施形態では、解像度変換処理装置１２００で使用するコア数に応じて、コア１０１ａで使用される共有ラインバッファ７２４、１１０４の何れかを選択する。したがって、第１および第２の実施形態で説明した効果に加え、必要な画像サイズや性能に応じて使用コア数を限定することが可能となる効果を奏する。
また、使用しないコア１０１ｃに関してはクロックの供給や電源の供給を停止することで画像システムの消費電力を低減することができる。
【００６５】
本実施形態では、使用コア数Ｌ２である場合に、コア１０１ａ、１０１ｂを選択の対象とする場合を例に挙げて説明した。しかしながら、使用コア数設定部１２０２で設定された数のコアのうち、相互に隣接する２つのコアの共有ラインバッファの組み合わせの全てを選択の対象としていれば、選択の対象とするコアはコア１０１ａ、１０１ｂに限定されない。本実施形態で説明した例では、コア１０１ａ、１０１ｂではなく、コア１０１ｂ、１０１ｃを使用してもよい。
【００６６】
前述した第１〜第３の実施形態では、画像処理が解像度変換処理である場合を例に挙げて説明した。しかしながら、前述の通り、画像処理は、解像度変換処理に限定されるものではない。例えば、サブサンプリング処理を含めた色空間変換処理などを画像処理として適用することが可能である。
【００６７】
ここで、メモリ帯域を増加させないために、解像度変換処理を行ったデータをメモリに書き戻さずにそのまま符号化処理部へ入力し、符号化処理を行う構成が考えられる。
しかしながら、解像度変換処理で出力される画像サイズは画面内の位置によって変動してしまうことから、解像度変換処理を行ったデータをそのまま符号化処理部へ入力することはできない。
このようなことは、解像度変換処理のみでなく、入力データ数と出力データ数とが異なる画像処理に対して共通する。したがって、入力データ数と出力データ数とが異なる画像処理に前述した実施形態の手法を適用することが好ましい。
【００６８】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００６９】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００７０】
１０１：解像度変換処理装置、１０１ａ〜１０１ｂ：コア、１０２：画像符号化装置、１０２ａ〜１０２ｂ：コア
【図１】
2016092736.tif 000003
【図３】
2016092736.tif 000004
【図５】
2016092736.tif 000005
【図７】
2016092736.tif 000006
【図８】
2016092736.tif 000007
【図９】
2016092736.tif 000008
【図１０】
2016092736.tif 000009
【図１１】
2016092736.tif 000010
【図１２】
2016092736.tif 000011
【図１３】
2016092736.tif 000012
【図２】
2016092736.tif 000013
【図４】
2016092736.tif 000014
【図６】
2016092736.tif 000015