(57)【要約】【課題】特定のメモリへのアクセスの集中による処理性能の低下を抑制することができる。【解決手段】参照画像内の参照範囲を読み出す時に、前記参照範囲が複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定する。【選択図】図８
2017050697.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の領域に分割した複数の符号化対象領域のそれぞれを符号化する複数の符号化処理部と、
前記複数の符号化処理部のそれぞれに対応する複数のメモリと
を備え、
前記複数のメモリのそれぞれは、対応する符号化処理部の符号化領域と、前記符号化領域と前記符号化領域の周辺を含む参照画像と、を格納し、
前記複数の符号化処理部のそれぞれは、前記参照画像内の参照範囲を読み出す時に、前記参照範囲が前記複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定することを特徴とする符号化装置。
【請求項２】
前記複数の符号化処理部のそれぞれに対応する複数のメモリ管理部をさらに備え、
前記複数のメモリ管理部の各々は、前記複数の符号化処理部の各々に対応するメモリに対するリクエストを受信し、処理中又は処理予定の前記リクエストのサイズの合計を問い合わせの送信元の符号化処理部に送信することを特徴とすることを特徴とする請求項１記載の符号化装置。
【請求項３】
前記複数の符号化処理部の各々は、前記２つ以上のメモリそれぞれに対する前記リクエストのサイズの前記合計と前記参照範囲のサイズとに基づいて、前記参照範囲を読み出すメモリを決定することを特徴とする請求項２記載の符号化装置。
【請求項４】
画像を複数の領域に分割した複数の符号化対象領域のそれぞれを符号化する複数の符号化処理部と、前記複数の符号化処理部のそれぞれに対応する複数のメモリと、を備え、前記複数のメモリのそれぞれは、対応する符号化処理部の符号化領域と、前記符号化領域と前記符号化領域の周辺を含む参照画像と、を格納することを特徴とする符号化装置が実行する符号化方法であって、
前記参照画像内の参照範囲を読み出す時に、前記参照範囲が前記複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定し、
読み出した前記参照範囲を用いて符号化を行う
処理を含む符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および符号化方法に関する。
【背景技術】
【０００２】
現在、画像の精細化に伴い、符号化装置は、画像を分割し、複数の符号化部で並列に符号化している。複数の符号化部のそれぞれは、外部メモリを持ち、外部メモリに自身の符号化対象の画像と符号化対象の周囲を含む参照画像を記憶している。例えば、８Ｋ放送では、図１に示すような7680x4320画素の画面が使用され、１６個の領域に画面が分割され、分割された領域のそれぞれがフルHigh Definition（ＨＤ）（1920x1080画素）のデータを処理する１６個の符号化部＃１〜＃１６により符号化が行われる。
【０００３】
符号化部は、ブロックノイズ除去の平滑化フィルタをかけるデブロッキングフィルタ処理のために、自身の符号化対象の周辺の領域の画像も隣接する符号化部からコピーすることで自身の外部メモリに格納している。例えば、図２に示すように、符号化部＃４は、灰色で示される領域の画像を自身の外部メモリに格納する。すなわち、符号化部＃４の外部メモリには、符号化部＃４の符号化対象の領域とその周辺の符号化部＃１〜３、＃５、＃７、＃９、＃１０、＃１３の領域の一部を含む画像が格納される。
【０００４】
このように、各符号化部の外部メモリは、自身の符号化対象の周辺の領域の画像を持つため、ある領域が複数の符号化部の外部メモリに共通して格納されることになる。例えば、図３に示すように、符号化部＃４の外部メモリに格納される灰色と斜線で示される領域の画像のうち、灰色で示される領域は符号化部＃４の外部メモリにのみ格納される。一方、斜線で示される領域は、符号化部＃４の外部メモリだけでなく、他の符号化部の外部メモリにも格納される。
【０００５】
また、符号化装置は、Moving Picture Experts Group（ＭＰＥＧ）２やＨ．２６４等の規格が定める動画像符号化方式に従って、動き検出を行う。さらに、符号化装置は、階層型の動き検出を行う。
【０００６】
ここで、階層型の動き検出とは、原画像を縮小した縮小画像と参照画像を縮小した縮小画像とを用いて動き検出処理を行い、検出した動きベクトルから特定される参照画像上の探索範囲について原画像の動き検出処理を行う手法である。以下、原画像の縮小画像に対する動き検出処理を、縮小Motion Estimation（ＭＥ）処理と呼ぶ。また、原画像に対する動き検出処理を、等倍ＭＥ処理と呼ぶ。
【０００７】
動き検出処理とは、対象画像から分割された元ブロックと類似するブロックを参照画像から探索し、元ブロックとの空間的な位置の差を動きベクトルとして出力する処理である。ここで、対象画像は、縮小ＭＥ処理であれば、縮小画像であり、等倍ＭＥ処理であれば、原画像である。ブロックとは、対象画像や参照画像を、たとえば、８×８［画素］や１６×１６［画素］などの単位で区切って分割した画像であり、いわゆるマクロブロックである。図４は、階層型動き検出を説明する図である。
【０００８】
符号化装置は、縮小ＭＥ処理において、所定の縮小率で原画像１００１を縮小した縮小画像１０１１と参照画像１００２を縮小した画像１０１２とを用いて、動きベクトルを検出する。縮小ＭＥ処理において検出した動きベクトルを、以下、縮小動きベクトルと呼ぶ。より具体的には、符号化装置は、動きベクトルの候補となる候補ベクトルごとに、候補ベクトルに対応する参照ブロックと元ブロックとの違いを示す評価値を算出する。そして、符号化装置は、例えば、算出した評価値が最小となる候補ベクトルを縮小動きベクトルとして出力する。
【０００９】
続けて、符号化装置は、等倍ＭＥ処理において、原画像１００１と参照画像１００２を用いて、縮小動きベクトルが指定する参照画像１００２上の探索起点１０２１を含む参照範囲１０２２から動きベクトルを再探索する。
【００１０】
複数の部分画像データの各々を復号する複数の画像復号手段と前記複数の画像復号手段によって復号された前記複数の部分画像データの各々を格納する複数のメモリ手段とを備える復号装置が知られている（例えば、特許文献１参照）。また、特許文献２、３に記載の復号装置が知られている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−２９６１６９号公報
【特許文献２】国際公開第２０１１／４５７７号パンフレット
【特許文献３】特開平８−７０４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
複数の符号化部を有する符号化装置において、各符号化部が階層型の動き検出処理を行うと、参照画像上の探索起点を含む参照範囲から動きベクトルを再探索するために、他の符号化部の外部メモリから参照範囲のデータを読み出す場合がある。
【００１３】
従来の符号化装置では、ある領域に対応するデータをどの外部メモリから読み出すかは固定されているため、特定の外部メモリにアクセスが集中することがある。その場合、アクセスが集中した外部メモリから読み出せる参照画像の量に制約がかかり、符号化装置全体の処理性能が低下する。
【００１４】
１つの側面では、本発明は、特定のメモリへのアクセスの集中による処理性能の低下を抑制することを目的とする。
【課題を解決するための手段】
【００１５】
一つの態様では、符号化装置は、画像を複数の領域に分割した複数の符号化対象領域のそれぞれを符号化する複数の符号化処理部と、前記複数の符号化処理部のそれぞれに対応する複数のメモリとを備える。
【００１６】
前記複数のメモリのそれぞれは、対応する符号化処理部の符号化領域と、前記符号化領域と前記符号化領域の周辺を含む参照画像と、を格納する
前記複数の符号化処理部のそれぞれは、前記参照画像内の参照範囲を読み出す時に、前記参照範囲が前記複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定する。
【発明の効果】
【００１７】
特定のメモリへのアクセスの集中による処理性能の低下を抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】８Ｋ放送の画面の分割を示す図である。
【図２】符号化部＃４の外部メモリが格納する領域を示す図である。
【図３】符号化部＃４の外部メモリが格納する領域のうち他の符号化部と共通して格納される領域を示す図である。
【図４】階層型の動き検出を説明する図である。
【図５】実施の形態に係る動画像符号化装置の構成図である。
【図６】実施の形態に係る動画像符号化装置が処理する画像を示す図である。
【図７Ａ】外部メモリ＃１に格納される参照画像の領域を示す図である。
【図７Ｂ】外部メモリ＃２に格納される参照画像の領域を示す図である。
【図７Ｃ】外部メモリ＃３に格納される参照画像の領域を示す図である。
【図７Ｄ】外部メモリ＃４に格納される参照画像の領域を示す図である。
【図８】実施の形態に係る符号化部の詳細な構成図である。
【図９】実施の形態に係るメモリアクセス制御処理のフローチャートである。
【図１０】メモリアクセス制御処理の例を説明する図である。
【図１１】メモリアクセス制御処理の例を説明する図である。
【図１２】メモリアクセス制御処理の例を説明する図である。
【図１３】メモリアクセス制御処理の例を説明する図である。
【図１４】メモリアクセス制御処理の例を説明する図である。
【図１５】メモリアクセス制御処理の例を説明する図である。
【図１６】メモリアクセス制御処理の例を説明する図である。
【図１７】メモリアクセス制御処理の例を説明する図である。
【図１８】従来および実施の形態の参照画像の読み出し量を示す図ある。
【図１９】情報処理装置（コンピュータ）の構成図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しながら実施の形態について説明する。
図５は、実施の形態に係る動画像符号化装置の構成図である。
【００２０】
動画像符号化装置１０１は、符号化部１１１−ｉ（ｉ＝１〜４）、外部メモリ２０１−ｉ、およびバスブリッジ４０１−ｊ（ｊ＝１〜６）を備える。
【００２１】
符号化部１１１−ｉは、符号化処理部１２１−ｉと外部メモリ管理部１５１−ｉを備える。符号化部１１１−ｉは、自身に割り当てられた符号化対象の領域の符号化処理を行う。符号化部１１１−ｉは、バス３０１−ｉを介して、外部メモリ２０１−１と接続する。以下、符号化部１１１−１〜１１１−４は、それぞれ符号化部＃１〜＃４と表記する場合がある。
【００２２】
符号化処理部１２１−ｉは、Ｈ．２６４やＨ．２６５等の規格に基づく符号化処理を行う。
【００２３】
外部メモリ管理部１５１−ｉは、外部メモリ２０１−ｉへのアクセスの調停を行う。すなわち、参照画像をどの外部メモリ２０１−ｉから読み出すか決定し、リクエストを生成および送信する。
【００２４】
外部メモリ２０１−ｉは、符号化部１１１−ｉに割り当てられた符号化対象の領域の画像と、符号化処理により生成されたローカルデコード画像の符号化対象の領域とその周辺の領域を含む参照画像を格納する。以下、外部メモリ２０１−１〜２０１−４は、それぞれ外部メモリ＃１〜＃４と表記する場合がある。また、符号化部１１１−ｉに対する外部メモリ２０１−ｉをそれぞれ、符号化部１１１−ｉに対応する外部メモリ２０１−ｉ、符号化部１１１−ｉが持つ外部メモリ２０１−ｉ、または符号化部１１１−ｉの外部メモリ２０１−ｉと表記する場合がある。
【００２５】
バスブリッジ４０１−ｊは、バス間のデータの受け渡しを行う。バスブリッジ４０１−１は、バス３０１−１とバス３０１−２を接続する。バスブリッジ４０１−２は、バス３０１−１とバス３０１−３を接続する。バスブリッジ４０１−３は、バス３０１−２とバス３０１−４を接続する。バスブリッジ４０１−４は、バス３０１−３とバス３０１−４を接続する。バスブリッジ４０１−５、４０１−６は、それぞれバス３０１−２、３０１−４と接続し、さらに動画像符号化装置１０１内または動画像符号化装置１０１外の不図示のCentral Processing Unit（ＣＰＵ）や記憶部等の装置と接続する。
【００２６】
尚、実施の形態の符号化部１１１−ｉの数は、一例であり、４つに限られず任意の数でよい。
【００２７】
ここで、外部メモリ２０１−ｉが格納する参照画像の領域について説明する。
図６は、実施の形態に係る動画像符号化装置が処理する画像を示す図である。
【００２８】
動画像符号化装置１０１が処理する画像６０１は、４つの領域６０２−ｉに分割される。符号化部１１１−１〜１１１−４は、それぞれ領域６０２−１〜６０２−４に対する符号化を行う。符号化部１１１−１〜１１１−４は、符号化処理において生成されるローカルデコード画像から各領域６０２−１〜６０２−４の周辺を含む参照画像を生成する。
【００２９】
図７Ａ〜７Ｄは、外部メモリ＃１〜＃４それぞれに格納される参照画像の領域を示す図である。
【００３０】
上述のように、外部メモリ２０１−ｉは、符号化部１１１−ｉに割り当てられた符号化対象の領域の画像とその周辺の領域の含む参照画像を格納する。詳細には、図７Ａに示すように、外部メモリ２０１−１には、領域６０２−１の画像と、ローカルデコード画像の灰色で示された領域６０２−１とその周辺の領域である領域６０２−２〜６０２−４の一部を含む参照画像が格納される。図７Ｂに示すように、外部メモリ２０１−２には、領域６０２−２の画像と、ローカルデコード画像の灰色で示された領域６０２−２とその周辺の領域である領域６０２−１、６０２−３、６０２−４の一部を含む参照画像が格納される。図７Ｃに示すように、外部メモリ２０１−３には、領域６０２−３の画像と、ローカルデコード画像の灰色で示された領域６０２−３とその周辺の領域である領域６０２−１、６０２−２、６０２−４の一部を含む参照画像が格納される。図７Ｄに示すように、外部メモリ２０１−４には、領域６０２−４の画像と、ローカルデコード画像の灰色で示された領域６０２−４とその周辺の領域である領域６０２−１〜６０２−３の一部を含む参照画像が格納される。
【００３１】
上述のように、外部メモリ２０１−１〜２０１−４それぞれに、符号化対象の領域６０１−１〜６０１−４とその周辺の領域の画像が格納されることにより、参照画像の一部分の領域（各領域６０１−ｉの周辺の領域）は、複数の外部メモリ２０１−ｉに格納されることになる。
【００３２】
図８は、実施の形態に係る符号化部の詳細な構成図である。
符号化部１１１−ｉは、符号化処理部１２１−ｉと外部メモリ管理部１５１−ｉを備える。符号化処理部１２１−ｉと外部メモリ管理部１５１−ｉは、バス１６１−ｉを介して接続している。
【００３３】
符号化処理部１２１−ｉは、縮小ＭＥ部１３１−ｉ、等倍ＭＥ部１３２−ｉ、フレーム内予測部１３３−ｉ、動き補償部１３４−ｉ、予測画像選択部１３５−ｉ、誤差画像生成部１３６−ｉ、直交変換／量子化部１３７−ｉ、逆量子化／逆直交変換再構成部１３８−ｉ、デブロッキングフィルタ部１３９−ｉ、エントロピー符号化部１４０−ｉ、原画像管理部１４１−ｉ、および参照画像管理部１４２−ｉを含む。
【００３４】
縮小ＭＥ部１３１−ｉは、外部メモリ２０１−ｉから縮小された符号化対象画像、縮小された参照画像を読み込み、縮小ＭＥ処理を行う。等倍ＭＥ部１３２−ｉは、元の解像度の原画像と元の解像度の参照画像から、等倍ＭＥ処理を行う。フレーム内予測部１３３−ｉは、フレーム内予測処理を行い、フレーム内予測画像を予測画像選択部１３５−ｉに出力する。
【００３５】
動き補償部１３４−ｉは、等倍ＭＥ部１３２−ｉで決定された動きベクトルに基づいて、フレーム間予測画像を生成し、予測画像選択部１３５−ｉに出力する。
【００３６】
予測画像選択部１３５−ｉは、符号化処理制御に応じて、フレーム間予測画像か、フレーム内予測画像かのうちどちらか一方を選択する。誤差画像生成部１３６−ｉは、予測画像選択部１３５で出力された予測画像と原画像の差分を算出する。
【００３７】
直交変換／量子化部１３７−ｉは、差分画像に対して直交変換、量子化処理を行う。逆量子化／逆直交変換再構成部１３８は、量子化後の係数に対して逆量子化、逆直交変換を行い、予測画像と足し合わせて再構成画像を得る。
【００３８】
デブロッキングフィルタ部１３９−ｉは、ブロックノイズを除去するデブロッキングフィルタ処理を行い、次の符号化処理で参照画像として用いられるローカルデコード画像を生成し、外部メモリ２０１−ｉに書き込む。尚、デブロッキングフィルタ部１３９−ｉで生成されたローカルデコード画像は、符号化対象領域と同じ領域の画像である。デブロッキングフィルタ部１３９−ｉは、参照画像が符号化対象領域の周辺の領域を含むように、他の符号化部１１１−ｉの外部メモリ２０１−ｉに、ローカルデコード画像の縁部分を書き込む。自身の符号化対象領域のローカルデコード画像と他のデブロッキングフィルタブ１３９−ｉにより書き込まれたローカルデコード画像の一部を組み合わせることにより、符号化対象領域と符号化対象領域の周辺の領域を含む参照画像が生成される。例えば、符号化部１１１−１〜１１１−４のそれぞれで領域６０２−１〜６０２−４に対する符号化が行われると、デブロッキングフィルタ１３９−１〜１３９−４のそれぞれで領域６０２−１〜６０２−４のローカルデコード画像が生成される。デブロッキングフィルタ１３９−１は、生成した領域６０２−１のローカルデコード画像を外部メモリ２０１−１に格納する。デブロッキングフィルタ１３９−２は、生成した領域６０２−２のローカルデコード画像の左端の領域を外部メモリ２０１−１に書き込む。デブロッキングフィルタ１３９−３は、生成した領域６０２−３のローカルデコード画像の上端の領域を外部メモリ２０１−１に書き込む。デブロッキングフィルタ１３９−４は、生成した領域６０２−４のローカルデコード画像の左上端の領域を外部メモリ２０１−１に書き込む。これにより、外部メモリ２０１−１には、図７Ａの灰色で示される領域６０２−１とその周辺の領域である領域６０２−２〜６０２−４の一部を含む参照画像が格納される。尚、デブロッキングフィルタ部１３９−ｉが他の符号化部１１１−ｉの外部メモリ２０１−ｉに書き込むのではなく、他の符号化部１１１−ｉの外部メモリ２０１−ｉから符号化対象領域の周辺の領域のローカルデコード画像を読み出して、自身が生成したローカルデコード画像と組み合わせて参照画像を生成し、外部メモリ２０１−ｉに格納しても良い。
【００３９】
エントロピー符号化部１４０−ｉでは、予測情報や係数情報を入力として、エントロピー符号化処理を行い、符号化ストリームを生成する。
【００４０】
原画像管理部１４１−ｉは、外部メモリ２０１−ｉから原画像を読み出し、等倍ＭＥ部１３２−ｉ、フレーム内予測部１３３−ｉ、および誤差画像生成部１３６−ｉに出力する。実施の形態において、現画像は、分割された画面のうちの一つの領域に対応する符号化対象領域の画像である。
【００４１】
参照画像管理部１４２−ｉは、内部メモリ１４３−ｉ、参照範囲決定部１４４−ｉ、参照範囲分類部１４５−ｉ、外部メモリ選択部１４６−ｉ、および予約状況取得部１４７−ｉを含む。
【００４２】
内部メモリ１４３−ｉは、外部メモリ２０１−ｉよりも高速で容量が小さいメモリである。内部メモリ１４３−ｉには、参照される確率の高い領域や直近で利用した領域のデータが格納される。
【００４３】
参照範囲決定部１４４−ｉは、階層型の動き検出や予測隣接ベクトルに基づいて、参照画像の参照範囲を求める。
【００４４】
参照範囲分類部１４５−ｉは、参照範囲が、どの符号化部１１１−ｉの符号化対象領域に含まれるか、すなわち参照範囲のデータがどの外部メモリ２０１−ｉに格納されているか分類する。
【００４５】
外部メモリ選択部１４６−ｉは、取得した予約状況に基づいて、読み出し先の外部メモリ２０１−ｉを選択（決定）する。そして、外部メモリ選択部１４６−ｉは、参照画像として取得する参照範囲のアドレス（例えば、参照範囲の左上の座標と幅と高さ）とサイズを含むリクエストを読み出し先の外部メモリ２０１−ｉに対応する外部メモリ管理部１５１−ｉに送信する。
【００４６】
予約状況取得部１４７−ｉは、同じ符号化部１１１−ｉ内の外部メモリ管理部１５１−ｉと他の符号化部１１１−ｉ内の外部メモリ管理部１５１−ｉに問い合わせを行い、同じ符号化部１１１−ｉ内の外部メモリ管理部１５１−ｉと他の符号化部１１１−ｉ内の外部メモリ管理部１５１−ｉから予約状況を取得する。
【００４７】
外部メモリ管理部１５１−ｉは、外部メモリ２０１−ｉへのアクセスの調停を行う。外部メモリ管理部１５１−ｉは、リクエストの管理のため、内部にキューをもつ。外部メモリ管理部１５１−ｉは、リクエストを受信し、受信した順にリクエストをキューに格納する。外部メモリ管理部１５１−ｉは、キューの先頭のリクエストに書かれたアドレスとサイズのデータを外部メモリ２０１−ｉから読出し、要求元の符号化部１１１−ｉに送る。外部メモリ管理部１５１−ｉは、完了したリクエストを削除し、次の先頭のリクエストを処理する。外部メモリ管理部１５１−ｉは、問い合わせを受信した場合、予約状況として、キューに残ったリクエストの合計サイズを問い合わせの送信元の予約状況取得部１４７−ｉに応答する。尚、リクエストのサイズは、例えば、当該リクエストにより読み出される画像（領域）の画素数やバイト数である。
【００４８】
図９は、実施の形態に係るメモリアクセス制御処理のフローチャートである。
実施の形態に係るメモリアクセス制御処理は、例えば、階層型の動き検出処理において、参照画像上の探索起点を含む参照範囲から動きベクトルを再探索するために、参照範囲のデータを読み出す場合に実施される。
【００４９】
ステップＳ５０１において、参照範囲決定部１４４−ｉは、縮小ＭＥ１３１−ｉで算出された探索起点に基づいて、参照範囲を決定する。
【００５０】
ステップＳ５０２において、参照範囲分類部１４５−ｉは、参照範囲の各画素がどの外部メモリ２０１−ｉに格納されているかに基づいて、参照範囲を複数の領域に分類（分割）する。
【００５１】
ステップＳ５０３において、参照範囲分類部１４５−ｉは、未選択の分類結果（領域）のうちから１つを選択する。
【００５２】
ステップＳ５０４において、参照範囲分類部１４５−ｉは、選択した分類結果、すなわち選択した分類結果に対応する参照範囲内のある領域が複数の外部メモリ２０１−ｉで共通に格納されている部分であるか判定する。選択した分類結果が複数の外部メモリ２０１−ｉで共通に格納されている部分である場合、制御はステップＳ５０５に進み、選択した分類結果が複数の外部メモリ２０１−ｉで共通に格納されていない部分である場合、制御はステップＳ５０６に進む。
【００５３】
ステップＳ５０５において、参照範囲分類部１４５−ｉは、選択した分類結果を未決定領域リストに追加する。以下、追加された分類結果は、未決定領域と呼ぶ。
【００５４】
ステップＳ５０６において、外部メモリ選択部１４６−ｉは、選択した分類結果を当該分類結果を格納する外部メモリ２０１−ｉから読み出すリクエストを生成し、送信する。
【００５５】
ステップＳ５０７において、全ての分類結果を選択済みの場合、制御はステップＳ５０８に進み、全ての分類結果を選択していない場合、制御はステップＳ５０３に戻る。
【００５６】
ステップＳ５０８において、未決定領域リストが空の場合、メモリアクセス制御処理は終了し、未決定領域リストが空でない場合、制御はステップＳ５０９に進む。
【００５７】
ステップＳ５０９において、予約状況取得部１４７−ｉは、自身を含む符号化部１１１−ｉの外部メモリ２０１−ｉおよび自身を含む符号化部１１１−ｉと隣接する符号化部１１１−ｉの外部メモリ２０１−ｉについて、予約状況（処理中および未処理のリクエストの合計サイズ）を取得する。詳細には、予約状況取得部１４７−ｉは、自身を含む符号化部１１１−ｉ内の外部メモリ管理部１５１−ｉおよび隣接する符号化部１１１−ｉの外部メモリ管理部１５１−ｉに予約状況を問い合わせ、問い合わせた外部メモリ管理部１５１−ｉからそれぞれの予約状況を取得する。隣接する符号化部１１１−ｉは、自身の符号化対象領域の上下左右の符号化対象領域をそれぞれ符号化する符号化部１１１−ｉである。さらに、自身の符号化対象領域の右上、右下、左上、および左下の符号化対象領域をそれぞれ符号化する符号化部１１１−ｉも隣接する符号化部１１１−ｉとしてよい。
【００５８】
ステップＳ５１０において、外部メモリ選択部１４６−ｉは、取得した予約状況と未決定領域リストに追加した分類結果のサイズから目標値を算出する。詳細には、外部メモリ選択部１４６−ｉは、取得した処理中および未処理のリクエストの合計サイズと未決定領域リストに追加した分類結果のサイズを合計し、合計値を予約状況を問い合わせた符号化部の数（すなわち、隣接する符号化部１１１−ｉの数に１を加算した値）で除算し、除算した値を目標値とする。
【００５９】
ステップＳ５１１において、外部メモリ選択部１４６−ｉは、未決定領域リストに含まれる未決定領域の中から未選択の未決定領域を一つ選択する。
【００６０】
ステップＳ５１２において、外部メモリ選択部１４６−ｉは、選択した未決定領域のサイズを残りサイズとして設定する。
【００６１】
ステップＳ５１３において、外部メモリ選択部１４６−ｉは、隣接する符号化部１１１−ｉの外部メモリ２０１−ｉの中から、未選択の外部メモリ２０１−ｉを一つ選択する。
【００６２】
ステップＳ５１４において、外部メモリ選択部１４６−ｉは、選択した外部メモリ２０１−ｉに未決定領域のデータが格納されているか判定する。選択した外部メモリ２０１−ｉに未決定領域のデータが格納されている場合、制御はステップＳ５１５に進み、選択した外部メモリ２０１−ｉに未決定領域のデータが格納されていない場合、制御はステップＳ５１８に進む。
【００６３】
ステップＳ５１５において、外部メモリ選択部１４６−ｉは、割り当てサイズを残りサイズ、または目標値から選択した外部メモリ２０１−ｉに対する予約状況（処理中および未処理のリクエストの合計サイズ）を減算した値のうちの小さいほうに設定する。
【００６４】
ステップＳ５１６において、外部メモリ選択部１４６−ｉは、選択した外部メモリ２０１−ｉに対する新たな予約状況（リクエストの合計サイズ）に現在の予約状況に割り当てサイズを加算した値を設定する。外部メモリ選択部１４６−ｉは、新たな残りサイズに現在の残りサイズから割り当てサイズを減算した値を設定する。
【００６５】
ステップＳ５１７において、外部メモリ選択部１４６−ｉは、選択した外部メモリ２０１−ｉから未決定領域のうちの割り当てサイズ分の領域を読み出すリクエストを生成し、送信する。
【００６６】
ステップＳ５１８において、全ての隣接する外部メモリを選択済みの場合、制御はステップＳ５１９に進み、全ての隣接する外部メモリを選択済みでない場合、制御はステップＳ５１３に戻る。
【００６７】
ステップＳ５１９において、外部メモリ選択部１４６−ｉは、残りサイズが０より大きいか判定し、残りサイズが０より大きい場合、制御はステップＳ５２０に進み、残りサイズが０以下の場合、制御はステップＳ５２１に進む。
【００６８】
ステップＳ５２０において、外部メモリ選択部１４６−ｉは、未決定領域のうち、残りサイズに対応する領域を、自身を含む符号化部１１１−ｉの外部メモリ２０１−ｉから読み出すリクエストを生成し、送信する。
【００６９】
ステップＳ５２１において、全ての未決定領域を選択済みの場合、メモリアクセス制御処理は終了し、全ての未決定領域を選択済みでない場合、制御はステップＳ５１１に戻る。
【００７０】
以降、符号化処理部１２１−ｉは、読み出された参照範囲を参照画像として用いて符号化を行う。
【００７１】
次に、上述のメモリアクセス制御処理の具体例を図１０〜１７を用いて説明する。
ここでは、符号化部＃３において、符号化部＃３の符号化対象領域６０２−３の上隣の領域６０２−１を符号化する符号化装置＃１の外部メモリ２０１−１、および符号化対象領域６０２−３の右隣の領域６０２−４を符号化する符号化装置＃４の外部メモリ２０１−４と共通して格納される部分(図１０の白い箇所)を含む領域６１１を参照画像として読み出すケースを説明する。すなわち、参照範囲決定部１４４−３により、領域６１１が参照画像として読み出す参照範囲として決定されたとする（図１０）。
【００７２】
参照範囲分類部１４５−３は、参照範囲の各画素がどの外部メモリ２０１−ｉに格納されているかに基づいて、参照範囲を複数の領域に分類する（図１１）。ここでは、参照範囲の領域が４つの領域６１１−１〜６１１−４に分類されたとする。図１１の各領域内の数値は、当該領域のサイズを示し、領域６１１−１〜６１１−４のサイズはそれぞれ２００、１００、１００、５０である。領域６１１−１は外部メモリ２０１−３にのみ格納され、領域６１１−２は外部メモリ２０１−１と外部メモリ２０１−３に共通に格納されている。また、領域６１１−３は外部メモリ２０１−３と外部メモリ２０１−４に共通に格納されており、領域６１１−４は外部メモリ２０１−１、外部メモリ２０１−３、および外部メモリ２０１−４に共通に格納されている。
【００７３】
外部メモリ選択部１４６−３は、１つの外部メモリ２０１−３にのみ格納されている領域６１１−１は、当該外部メモリ２０１−３から読み出すようにリクエストを生成し送信する（図１２）。
【００７４】
予約状況取得部１４７−３は、同じ符号化部１１１−３内の外部メモリ管理部１５１−３および隣接する符号化部１１１−１、１１１−４の外部メモリ管理部１５１−１、１５１−４に予約状況を問い合わせ、外部メモリ管理部１５１−１、１５１−３、１５１−４からそれぞれの予約状況（処理中および未処理のリクエストの合計サイズ）を取得する（図１３）。ここでは、外部メモリ管理部１５１−１、１５１−３、１５１−４からそれぞれ予約状況として、３５０、４００、４５０を取得したとする。外部メモリ選択部１４６−３は、取得した予約状況と未処理の領域６１１−２〜６１１−４のサイズの和を予約状況を問い合わせた符号化部の数で割った平均値を求め、算出した平均値を目標値とする。予約状況取得部１４７−３は、符号化部１１１−３内の外部メモリ管理部１５１−３および隣接する符号化部１１１−１、１１１−４の外部メモリ管理部１５１−１、１５１−４に予約状況を問い合わせているので、予約状況を問い合わせた符号化部の数（すなわち、予約状況を問い合わせた外部メモリ管理部の数）は３となる。ここでは、目標値＝（３５０＋４００＋４５０＋１００＋１００＋５０）／３＝４８３となる。
【００７５】
外部メモリ選択部１４６−３は、隣接外部メモリと共通して格納されている領域について、目標値になるまで、隣接外部メモリに対するリクエストとして生成し、生成したリクエストを送信する。すなわち、図１４に示すように、外部メモリ選択部１４６−３は、外部メモリ＃１と共通して格納されている領域６１１−２について、現在の外部メモリ管理部１５１−１の予約状況（３５０）に領域６１１−２のサイズ（１００）を追加しても目標値（４８３）以下である。よって、外部メモリ選択部１４６−３は、外部メモリ２０１−１に対して領域６１１−２の全てを読み出すリクエストを生成して送信する。
【００７６】
続いて、外部メモリ選択部１４６−３は、外部メモリ＃４と共通して格納されている領域６１１−３について、現在の外部メモリ管理部１５１−４の予約状況（４５０）に領域６１１−４のサイズ（１００）を追加すると、目標値（４８３）を超えてしまう。そこで、外部メモリ選択部１４６−３は、領域６１１−３のうち、サイズが３３（＝目標値−現在の外部メモリ管理部１５１−４の予約状況）となる領域を外部メモリ２０１−４から読み出し、残りのサイズ６７に対応する領域を外部メモリ２０１−３から読み出すリクエストをそれぞれ生成して送信する（図１５）。
【００７７】
同様に、図１６において、外部メモリ選択部１４６−３は、外部メモリ＃１、＃４と共通して格納されている領域６１１−４について、読み出す外部メモリを決定する。図１５の処理の結果、外部メモリ管理部１５１−４の予約状況は目標値に到達しているので、領域６１１−４は、外部メモリ２０１−４からは読み出さない。外部メモリ選択部１４６−３は、領域６１１−４のうち、サイズが３３（＝目標値−現在の外部メモリ管理部１５１−１の予約状況）となる領域を外部メモリ２０１−１から読み出し、残りのサイズ１７に対応する領域を外部メモリ２０１−３から読み出すリクエストをそれぞれ生成して送信する（図１６）。
【００７８】
上述の処理により、参照画像が読み出される外部メモリ２０１−ｉの割り当てが決定される。また、各外部メモリ２０１−１、２０１−３、２０１−４に対する予約状況のサイズは、ほぼ同じになる（図１７）。すなわち、特定の外部メモリ２０１−ｉに対するアクセスの集中が無くなる。
【００７９】
図１８は、従来および実施の形態の参照画像の読み出し量を示す図ある。
図１８において、縦軸は参照画像の読み出し量、横軸は時間を示す。
【００８０】
図１８において、線７０１は従来の外部メモリの参照画像の最大読み出し量、線７０２は従来の外部メモリの参照画像の最小読み出し量を示す。また、線７１１は実施の形態の外部メモリの参照画像の最大読み出し量、線７１２は実施の形態の外部メモリの参照画像の最小読み出し量を示す。また、点線は平均を示す。
【００８１】
図１８に示すように、実施の形態の外部メモリの参照画像の最大読み出し量は、従来の外部メモリの参照画像の最大読み出し量より減少し、実施の形態外部メモリの参照画像の最小読み出し量は、従来の外部メモリの参照画像の最小読み出し量より増大している。図１８に示すように、外部メモリの参照画像の読出し量のばらつきが、約50%〜60%に縮小しており、特定の外部メモリに対するアクセスの集中が低減されている。
【００８２】
実施の形態の動画像符号化装置によれば、ボトルネックとなる特定の外部メモリのアクセス集中を防ぐことにより、処理性能の低下を抑制することができる。また、実施の形態の動画像符号化装置によれば、画像端付近に対する処理で特に高い効果を示すが、画像中央付近でも複数の外部メモリに記憶される共通部分を参照するため、効果がある。
【００８３】
図１９は、情報処理装置（コンピュータ）の構成図である。
実施の形態の動画像符号化装置１０１は、例えば、図１９に示すような情報処理装置１に適用される。情報処理装置１は、例えば、デジタルカメラ、デジタルビデオカメラ、映像伝送装置、映像録画装置、またはパーソナルコンピュータ等である。
【００８４】
情報処理装置１は、Central Processing Unit（ＣＰＵ）２、メモリ３、入力部４、出力部５、記憶部６、記録媒体駆動部７、ネットワーク接続部８、及び符号化装置１１を備え、それらはバス９により互いに接続されている。
【００８５】
ＣＰＵ２は、情報処理装置１全体を制御する中央処理装置である。
メモリ３は、プログラム実行の際に、記憶部６（あるいは可搬記録媒体１０）に記憶されているプログラムあるいはデータを一時的に格納するRead Only Memory(ROM)やRandom Access Memory(ＲＡＭ)等のメモリである。ＣＰＵ２は、メモリ３を利用してプログラムを実行することにより、上述した各種処理を実行してもよい。
【００８６】
この場合、可搬記録媒体１０等から読み出されたプログラムコード自体が実施の形態の機能を実現する。
【００８７】
入力部４は、例えば、キーボード、マウス、タッチパネル等である。
出力部５は、例えば、ディスプレイ、プリンタ等である。
【００８８】
記憶部６は、例えば、磁気ディスク装置、光ディスク装置、テープ装置等である。情報処理装置１は、記憶部６に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【００８９】
記録媒体駆動部７は、可搬記録媒体１０を駆動し、その記録内容にアクセスする。可搬記録媒体としては、メモリカード、フレキシブルディスク、Compact Disk Read Only Memory(ＣＤ−ＲＯＭ)、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１０に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【００９０】
ネットワーク接続部８は、Local Area Network（ＬＡＮ）やWide Area Network（ＷＡＮ）等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。
【００９１】
符号化装置１１は、動画像の符号化を行う。符号化装置１１は、符号化装置１０１に対応する。符号化装置１１は、例えば、Large Scale Integration（ＬＳＩ）、Application Specific Integrated Circuit（ＡＳＩＣ）、またはField-Programmable Gate Array（ＦＰＧＡ）等によって実現することができる。
【００９２】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
画像を複数の領域に分割した複数の符号化対象領域のそれぞれを符号化する複数の符号化処理部と、
前記複数の符号化処理部のそれぞれに対応する複数のメモリと
を備え、
前記複数のメモリのそれぞれは、対応する符号化処理部の符号化領域と、前記符号化領域と前記符号化領域の周辺を含む参照画像と、を格納し、
前記複数の符号化処理部のそれぞれは、前記参照画像内の参照範囲を読み出す時に、前記参照範囲が前記複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定することを特徴とする符号化装置。
（付記２）
前記複数の符号化処理部のそれぞれに対応する複数のメモリ管理部をさらに備え、
前記複数のメモリ管理部の各々は、前記複数の符号化処理部の各々に対応するメモリに対するリクエストを受信し、処理中又は処理予定の前記リクエストのサイズの合計を問い合わせの送信元の符号化処理部に送信することを特徴とする付記１記載の符号化装置。
（付記３）
前記複数の符号化処理部の各々は、前記２つ以上のメモリそれぞれに対する前記リクエストのサイズの前記合計と前記参照範囲のサイズとに基づいて、前記参照範囲を読み出すメモリを決定することを特徴とする付記２記載の符号化装置。
（付記４）
画像を複数の領域に分割した複数の符号化対象領域のそれぞれを符号化する複数の符号化処理部と、前記複数の符号化処理部のそれぞれに対応する複数のメモリと、を備え、前記複数のメモリのそれぞれは、対応する符号化処理部の符号化領域と、前記符号化領域と前記符号化領域の周辺を含む参照画像と、を格納することを特徴とする符号化装置が実行する符号化方法であって、
前記参照画像内の参照範囲を読み出す時に、前記参照範囲が前記複数のメモリのうちの２つ以上のメモリに格納されている場合、前記２つ以上のメモリに対する処理中又は処理予定のリクエストに基づいて、前記参照範囲を読み出すメモリを決定し、
読み出した前記参照範囲を用いて符号化を行う
処理を含む符号化方法。
（付記５）
前記複数の符号化処理部の各々に対応するメモリに対するリクエストを受信し、
処理中又は処理予定の前記リクエストのサイズの合計を問い合わせの送信元の符号化処理部に送信する
処理をさらに含むことを特徴とする付記４記載の符号化方法。
（付記６）
前記決定する処理は、前記２つ以上のメモリそれぞれに対する前記リクエストのサイズの前記合計と前記参照範囲のサイズとに基づいて、前記参照範囲を読み出すメモリを決定することを特徴とする付記５記載の符号化方法。
【符号の説明】
【００９３】
１０１    動画像符号化装置
１１１    符号化部
１２１    符号化処理部
１５１    外部メモリ管理部
２０１    外部メモリ
４０１    バスブリッジ
１２１    符号化処理部
１５１    外部メモリ管理部
【図１】
2017050697.tif 000003
【図４】
2017050697.tif 000004
【図５】
2017050697.tif 000005
【図６】
2017050697.tif 000006
【図８】
2017050697.tif 000007
【図９】
2017050697.tif 000008
【図１０】
2017050697.tif 000009
【図１１】
2017050697.tif 000010
【図１２】
2017050697.tif 000011
【図１３】
2017050697.tif 000012
【図１４】
2017050697.tif 000013
【図１５】
2017050697.tif 000014
【図１６】
2017050697.tif 000015
【図１７】
2017050697.tif 000016
【図１９】
2017050697.tif 000017
【図２】
2017050697.tif 000018
【図３】
2017050697.tif 000019
【図７Ａ】
2017050697.tif 000020
【図７Ｂ】
2017050697.tif 000021
【図７Ｃ】
2017050697.tif 000022
【図７Ｄ】
2017050697.tif 000023
【図１８】
2017050697.tif 000024