(57)【特許請求の範囲】
【請求項１】
動画撮影中に静止画を撮影可能な撮像装置であって、
動画処理を含むリアルタイム性が要求される処理のメモリに対するメモリアクセス要求を示す第１要求が実行される際に、複数の同期ポイント間における区間毎のトランザクションを記録する記録部と、
静止画処理に関する処理の前記メモリに対するメモリアクセス要求を示す第２要求を蓄積する蓄積部と、
前記記録部に記録された区間毎のトランザクションを用いて、複数の同期ポイント間における区間毎のトランザクションを累積する累積部と、
累積された複数の同期ポイント間における区間毎のトランザクションに基づいて予測されたメモリアクセスの空き時間に、前記蓄積部に蓄積された第２要求を実行する実行部と、
を備える撮像装置。
【請求項２】
前記累積部は、
前記記録部に記録された各同期ポイント間の区間数を、累積された各同期ポイント間の区間数に合わせるようスケーリングするスケーリング部と、
スケーリング後の各同期ポイント間の区間毎に、該区間と、該区間に対応する累積された区間とのトランザクションの類似度を算出する算出部と、
区間毎の前記類似度に応じて、前記記録部に記録された区間毎のトランザクションを用いて、累積された区間毎のトランザクションを更新する更新部と、
を備える請求項１記載の撮像装置。
【請求項３】
前記累積部は、
画像のピクチャタイプ毎に、複数の同期ポイント間における区間毎のトランザクションを累積し、
前記更新部は、
現在の処理対象画像のピクチャタイプに対応する、累積された複数の同期ポイント間における区間毎のトランザクションを更新する請求項２記載の撮像装置。
【請求項４】
メモリアクセス要求を受けた場合、該メモリアクセス要求を、前記第１要求と前記第２要求とが設定されたテーブルを参照して、前記第１要求か前記第２要求かを判別する判別部をさらに備え、
前記記録部は、
前記判別部により判別された前記第１要求を受け取り、
前記蓄積部は、
前記判別部により判別された前記第２要求を受け取る請求項１乃至３いずれか一項に記載の撮像装置。
【請求項５】
前記同期ポイントを、画像を格納する領域内の特定の領域に対するメモリアクセスにより抽出する抽出部をさらに備える請求項１乃至４いずれか一項に記載の撮像装置。
【請求項６】
前記記録部は、
画像内の所定の領域で抽出された同期ポイント間における区間毎のトランザクションを記録する請求項１乃至５いずれか一項に記載の撮像装置。
【請求項７】
前記実行部により実行される第２要求によるメモリアクセスを、前記空き時間に基づいて分割する分割部をさらに備える請求項１乃至６いずれか一項に記載の撮像装置。
【請求項８】
前記記録部は、
前記第１要求が、動画のビットストリームのＷｒｉｔｅ要求を含む臨時のメモリアクセス要求又は表示系のメモリアクセス要求を含む定期的なメモリアクセス要求ではない場合に、前記トランザクションの記録を行う請求項１乃至７いずれか一項に記載の撮像装置。
【請求項９】
リアルタイム性が要求される動画処理に関する処理のメモリに対するメモリアクセス要求を示す第１要求が実行される際に、複数の同期ポイント間における区間毎のトランザクションを記録部に記録し、
静止画処理に関する処理の前記メモリに対するメモリアクセス要求を示す第２要求を蓄積部に蓄積し、
前記記録部に記録された区間毎のトランザクションを用いて、複数の同期ポイント間における区間毎のトランザクションを累積部に累積し、
前記累積部に累積された複数の同期ポイント間における区間毎のトランザクションに基づいて予測されたメモリアクセスの空き時間に、前記蓄積部に蓄積された第２要求を実行する処理をコンピュータが実行するアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセス制御を行う撮像装置及びアクセス制御方法に関する。
【背景技術】
【０００２】
デジタルカメラや、カムコーダなどを含む撮像装置では、動画像の撮影処理中に、動画処理を継続したまま静止画像を撮影する機能が実現されている。
【０００３】
一般に静止画と動画とでは撮影する解像度が大きく異なる。静止画は１０Ｍ（メガ）〜２４Ｍピクセル、動画はＨＤＴＶ（High Definition Television）で３Ｍピクセル程度である。このような動画処理、静止画処理は、扱う情報が膨大であるため、例えば外部のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）をバッファメモリとして利用する。
【０００４】
動画処理、静止画処理を含む映像処理は、大きく２種類の性質のデータトランザクションが混在する。
【０００５】
ベストエフォート型の処理は、ＳＤＲＡＭのデータトランザクション量として、ほぼ定型の処理パターンとなるが、出来るだけ高速に外部のＳＤＲＡＭを使い切って最短で処理結果を得る静止画を生成するための画像処理である。
【０００６】
リアルタイム型の処理は、ＳＤＲＡＭの帯域について一定量を確保しつつ、入力データによって刻々と変動するデータトランザクションである。また、リアルタイム型の処理は、１／３０ｓなどの等間隔のフレームレート単位に、ワースト時でも遅延なく、一定の間隔で処理を終える、動画処理に関連する画像処理である。
【０００７】
動画処理は、フレームやマクロブロックなどの単位毎にさまざまな圧縮のための方式を変えつつ、もっとも圧縮できるツールセットを適応的に選択し、圧縮、展開を行う。このため、ある瞬間のＳＤＲＡＭの帯域の消費は、画像やＧＯＰ構造やマクロブロックタイプなどの所定単位の圧縮手法等によって大きく変動し、さらに、映像のビットレートや画質制御によっても大きく変動する。
【０００８】
ここで、動画の処理中に、静止画の処理を並行して行うためのメモリアクセスを制御する技術がある。例えば、動画撮影中に静止画を同時撮影する際、動画の処理フレーム、例えばＢピクチャに応じて、静止画の処理タイミングを制御する技術がある。
【０００９】
また、リアルタイム処理と待ち時間クリティカル処理を行い際、リアルタイム処理の所定の時間窓における残余時間に応じて、待ち時間クリティカル処理を許可する技術などがある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−３４７６５号公報
【特許文献２】特表２００８−５１５０７３号公報
【特許文献３】特開２００９−１５８３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ここで、動画処理のメモリアクセスは、処理中の画像データによって適応的に変化するため、静止画処理のメモリアクセスによって、動画処理のメモリアクセスに遅延が生じたり、局所的な帯域不足が生じたりする。この問題に対して、従来技術におけるメモリへのアクセス制御では、効率よく制御することができていなかった。
【００１２】
例えば、動画の処理フレームに応じて静止画処理のタイミングを制御する場合、静止画処理を行うときの動画の処理フレーム、例えばＰピクチャであっても、メモリアクセス量が多い場合があり、リアルタイム性が損なわれる可能性がある。
【００１３】
また、リアルタイム処理の残余時間については、画像データによって処理量が適応的に変化するため所定の時間窓を適切に設定することは困難である。
【００１４】
そこで、開示の技術は、動画処理を優先しつつ、動画処理の間に静止画処理を適切に処理させることで、効率の良いメモリアクセス制御を行うことができる撮像装置及びアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
開示の一態様における撮像装置は、動画撮影中に静止画を撮影可能な撮像装置であって、動画処理を含むリアルタイム性が要求される処理のメモリに対するメモリアクセス要求を示す第１要求が実行される際に、複数の同期ポイント間における区間毎のトランザクションを記録する記録部と、静止画処理に関する処理の前記メモリに対するメモリアクセス要求を示す第２要求を蓄積する蓄積部と、前記記録部に記録された区間毎のトランザクションを用いて、複数の同期ポイント間における区間毎のトランザクションを累積する累積部と、累積された複数の同期ポイント間における区間毎のトランザクションに基づいて予測されたメモリアクセスの空き時間に、前記蓄積部に蓄積された第２要求を実行する実行部と、を備える。
【発明の効果】
【００１６】
開示の技術によれば、動画処理を優先しつつ、動画処理の間に静止画処理を適切に処理させることで、効率の良いメモリアクセス制御を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】実施例における撮像装置の構成の一例を示すブロック図。
【図２】実施例におけるバス制御部の構成の一例を示すブロック図。
【図３】アクセス判別部（その１）の一例を説明するための図。
【図４】アクセス判別部（その２）の一例を説明するための図。
【図５】アクセス種別の判別処理（その１）の一例を説明するための図。
【図６】アクセス種別の判別処理（その２）の一例を説明するための図。
【図７】アクセス種別の判別処理（その３）の一例を説明するための図。
【図８】同期ポイントにより決定される所定領域を説明するための図。
【図９】累積記録データの更新を説明するための図。
【図１０】アクセスパターンの学習対象を説明するための図。
【図１１】バス権付与部の構成の一例を示す図。
【図１２】実施例と従来例との比較を説明するための図。
【図１３】１つのメモリアクセス要求に対する撮像装置のアクセス制御処理の一例を示すフローチャート。
【図１４】ベストエフォート系処理のアクセス実行処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１８】
まず、静止画の処理と動画の処理は、同じ演算内容であっても、性質が異なる場合がある。例えばセンサデータから輝度、色差を有する画像を得るデモザイク処理において、静止画では高品質、動画では簡易処理で行うケースがある。また、ノイズリダクションや各種補正処理についても、その有無やその演算処理の内容、解像度などに動画と静止画とで差をつける事が一般的である。
【００１９】
そこで、以下に示す実施例では、ベストエフォート系処理と、リアルタイム系処理とを次のように定義する。
【００２０】
（ベストエフォート系処理）
ベストエフォート系処理は、静止画処理に関する処理であり、例えば、主に静止画処理の中で、動画撮影と共通で行うリアルタイム性が必要な処理以外の静止画を生成するための処理である。
【００２１】
ベストエフォート系処理は、例えば高品質なノイズ除去、ホワイトバランス検出、欠陥画素補正処理、デモザイク処理、シャープネス処理、手振れ補正処理、静止画符号化処理などを含む。
【００２２】
（リアルタイム系処理）
リアルタイム系処理は、リアルタイム性が要求される処理であり、例えば動画処理に関する処理である。リアルタイム系処理は、例えば、イメージセンサからのキャプチャ処理、簡易的なノイズ除去などの静止画処理と同様の処理、動画圧縮処理、電子ビューファインダーなどの処理を含む。
【００２３】
なお、ＭＰＥＧ（Moving Picture Expert Group）などの動画符号化処理においては、その演算に相関があるため、その演算の間に、等間隔にある程度規則正しいリアルタイム系処理のメモリアクセスが発生するという特徴がある。
【００２４】
しかしながら、このメモリアクセスは、各マクロブロックの符号化タイプによって、様々なアクセス傾向や転送量になる。また、マクロブロックタイプによっては、ある程度似たアクセス傾向となるが、どのようなアクセス傾向となるかは確率的であり、マクロブロックの出現確率や回路構成によっても異なる。
【００２５】
そこで、以下で説明する実施例では、過去のリアルタイム系処理のアクセス傾向を学習し、学習結果に基づいてベストエフォート系処理のメモリアクセスを適切に実行する。
【００２６】
以下、その実施例について、添付図面を参照しながら説明する。
【００２７】
［実施例］
＜構成＞
図１は、実施例における撮像装置１の構成の一例を示すブロック図である。撮像装置１は、例えばデジタルカメラ、デジタルビデオカメラ、又はカムコーダである。図１に示す撮像装置１は、イメージセンサ１０、キャプチャ処理部２０、メモリ２５、静止画向け処理部３０、動画向け処理部４０、電子ビューファインダー用映像処理部５０、電子ビューファインダー５１、バス制御部６０、メモリ７０、ＤＭＡエンジン８１、制御ＣＰＵ（Central Processing Unit）８２、メディアＲＷ８３、記録メディア８４を有する。上記各部の一部は、半導体集積回路により実装される。
【００２８】
なお、図１に示す太線矢印は、リアルタイム処理が必要なパスである。点線矢印は、ベストエフォート処理のパスである。細線矢印は、その他のローカルパスであり、バス制御部６０により制御されるバスには接続されていない。
【００２９】
イメージセンサ１０は、レンズから入射した光を取り込み、電気信号に変換する半導体素子である。キャプチャ処理部２０は、イメージセンサ１０から取得した電気信号に基づき、静止画用データ、動画用データのキャプチャ処理を行う。
【００３０】
キャプチャ処理部２０は、リアルタイム処理が必要な静止画用データをメモリ７０にバッファリングするようバス制御部６０に要求する。例えば、キャプチャ処理部２０からのメモリ７０へのアクセス要求は、リアルタイム系処理のメモリアクセス要求である。また、キャプチャ処理部２０は、動画用データをメモリ２５に格納する。
【００３１】
メモリ２５は、例えば、ＳＲＡM（Static Random Access Memory）であり、動画用データを格納する。
【００３２】
静止画向け処理部３０は、メモリ７０に画像データをバッファリングしながら、静止画用の処理を行う。このとき、静止画向け処理部３０は、バス制御部６０に対してメモリ７０へのメモリアクセス要求を行う。
【００３３】
静止画向け処理部３０は、ノイズ除去、ホワイトバランス検出部３１、欠陥画素補正、デモザイク処理部３２、ノイズ除去、シャープネス処理、手振れ補正処理部３３、静止画符号化処理、メディア書き込み部３４を有する。
【００３４】
ノイズ除去、ホワイトバランス検出部３１は、画像データからノイズを除去し、ＲＧＢの３原色のバランスをとるホワイトバランス処理を行う。欠陥画素補正、デモザイク処理部３２は、欠陥画素を補正し、ＲＧＢのセンサデータから輝度、色差の画像データに変換する。
【００３５】
ノイズ除去、シャープネス処理、手振れ補正処理部３３は、画像データからノイズを除去し、輪郭を強調し、手振れ補正処理を行う。静止画符号化処理、メディア書き込み部３４は、静止画の符号化標準技術であるＪＰＥＧ（Joint Photographic Experts Group）などの符号化処理を行い、符号化した静止画データを、メディアＲＷ８３を用いて記録メディア８４に書き込む。
【００３６】
例えば、静止画向け処理部３０によるメモリ７０へのメモリアクセス要求は、ベストエフォート系処理のメモリアクセス要求である。
【００３７】
なお、静止画向け処理部３０の各部３１〜３４は、それぞれ細分化されたり、複数の部をまとめて処理されたりしてもよい。また、静止画向け処理部３０の各部３１〜３３は、後述する動画向け処理部４０の各部４１〜４３よりも高品質の処理を行う。各部３１〜３３の処理は、リアルタイム性が要求されないからである。
【００３８】
動画向け処理部４０は、メモリ７０に画像データをバッファリングしながら、動画用の処理を行う。このとき、動画向け処理部４０は、バス制御部６０に対してメモリ７０へのメモリアクセス要求を行う。
【００３９】
動画向け処理部４０は、ノイズ除去、ホワイトバランス検出部４１、欠陥画素補正、デモザイク処理部４２、ノイズ除去、シャープネス処理、手振れ補正処理部４３、動画符号化処理、メディア書き込み部４４を有する。
【００４０】
上記の各部４１〜４３は、静止画向け処理部３０の各部３１〜３３とそれぞれ同様の処理を簡易的に行う。各部４１〜４３の処理は、リアルタイム性が要求されるからである。
【００４１】
動画符号化処理、メディア書き込み部４４は、動画の符号化標準技術であるＭＰＥＧなどの符号化処理を行い、符号化した動画データを、メディアＲＷ８３を用いて記録メディア８４に書き込む。
【００４２】
動画向け処理部４０によるメモリ７０へのメモリアクセス要求は、リアルタイム系処理のメモリアクセス要求である。なお、動画向け処理部４０の各部４１〜４４は、それぞれ細分化されたり、複数の部をまとめて処理されたりしてもよい。
【００４３】
電子ビューファインダー用映像処理部５０は、ＯＳＤ（オンスクリーンディスプレイ）機能を有し、画像データを電子ビューファインダー５１に表示するための映像処理を行う。例えば、電子ビューファインダー用映像処理部５０からのメモリ７０へのメモリアクセス要求は、リアルタイム系処理のメモリアクセス要求である。
【００４４】
電子ビューファインダー５１は、電子ビューファインダー用映像処理部５０により処理された画像データを表示する。電子ビューファインダー５１は、液晶ディスプレイなどでもよい。
【００４５】
バス制御部６０は、アクセス元からのメモリ７０へのメモリアクセス要求に対し、リアルタイム系処理のメモリアクセス要求を優先しつつ、適切なタイミングでベストエフォート系処理のメモリアクセス要求を実行するようアクセス制御する。ここで、アクセス元とは、各部２０、３１〜３４、４１〜４４、５０をいう。なお、バス制御部６０の詳細については、図２を用いて後述する。
【００４６】
メモリ７０は、例えばＳＤＲＡＭなどのメモリであり、各部で処理されたデータを一時的に格納する。メモリ７０は、各部でシェアして使用される。
【００４７】
ＤＭＡ（Direct Memory Access）エンジン８１は、バスに直結され、このバスを操作してＤＭＡを実現する。制御ＣＰＵ８２は、撮像装置１のシステム制御を行う。
【００４８】
メディアＲＷ８３は、記録メディア８４に対して、データのＲｅａｄ／Ｗｒｉｔｅを行う。記録メディア８４は、例えばＳＤカードなどの記録メディアであり、静止画用データや動画用データを記録する。
【００４９】
＜バス制御部＞
次に、実施例におけるバス制御部６０について説明する。図２は、実施例におけるバス制御部６０の構成の一例を示すブロック図である。図２に示すバス制御部６０は、アクセス判別部１００、固定／臨時データ検出部１１０、同期ポイント抽出部１１１、Ｐｉｃｔｕｒｅ処理終了検出部１１２、粗密記録部１２０、バス権付与部１３０、ＭＵＸ（マルチプレクサ）１４０、メモリコントローラ１５０を有する。
【００５０】
アクセス判別部１００は、静止画系システムからのメモリアクセス要求、動画系システムからのメモリアクセス要求を受ける。静止画系システムは、例えば静止画向け処理部３０に対応し、動画系システムは、例えば動画向け処理部４０などに対応する。
【００５１】
アクセス判別部１００は、取得したアクセス要求に対し、リアルタイム系処理のメモリアクセス要求か、ベストエフォート系処理のメモリアクセス要求かを判別する。
【００５２】
アクセス判別部１００は、例えば、アクセス元に基づき、メモリアクセス要求にメモリアクセスの種別を示すＩＤ（IDentification）を付加する。アクセス判別部１００は、ＩＤ毎にリアルタイム系処理か、ベストエフォート系処理かが設定されたテーブルを参照して、メモリアクセスの種別を判別してもよい。なお、ＩＤは、アクセス元が付与するようにしてもよい。
【００５３】
また、アクセス判別部１００は、メモリアクセス要求のＲｅａｄ／Ｗｒｉｔｅ種別と、アドレス範囲とからアクセスの種別が設定されたテーブルを参照して、メモリアクセスの種別を判別してもよい。
【００５４】
また、アクセス判別部１００は、リアルタイム系処理について、定常データトランザクションか、臨時データトランザクションか、固定スロットかを判別してもよい。
【００５５】
定常データトランザクション（単に定常とも呼ぶ）とは、後述する粗密記録部１２０で学習の対象となるトランザクションである。臨時データトランザクション（単に臨時とも呼ぶ）は、例えば動画系のビットストリームをＷｒｉｔｅする要求のトランザクションである。動画系のビットストリームは、所定量溜まった場合にＷｒｉｔｅ要求されるものであり、所定量溜まる時間は画像データの処理量に依存して一定ではない。固定スロット（単に固定とも呼ぶ）は、例えば表示系のリアルタイムアクセスのトランザクションである。
【００５６】
なお、アクセス判別部１００は、アクセス元がそれぞれの属性を明示的に示す場合には無くてもよい。属性とは、リアルタイム系か、ベストエフォート系かを表すものである。また、属性は、リアルタイム系の定常か、臨時か、固定かを表してもよい。
【００５７】
固定／臨時データ検出部１１０は、アクセス判別部１００によりリアルタイム系処理の中から固定と臨時を検出し、検出したメモリアクセス要求を粗密記録部１２０、バス権付与部１３０に通知する。
【００５８】
同期ポイント抽出部１１１は、メモリアクセス要求されているデータから、同期ポイントを抽出する。この同期ポイントは、実施例におけるアクセス制御のシステムをリアルタイム系処理に同期させるためのポイントである。例えば、ＭＢ（マクロブロック）、ＭＢＬｉｎｅ、Ｐｉｃｔｕｒｅ単位で同期ポイントを抽出する。
【００５９】
同期ポイント抽出部１１１は、例えば、画像データの特定の領域に対するアクセスにより、同期ポイントを抽出する。また、同期ポイント抽出部１１１は、動画処理回路の内部信号を読み取ることができる場合、内部信号から同期信号を直接取得するようにしてもよい。同期ポイント抽出部１１１は、抽出した同期ポイントを粗密記録部１２０に通知する。
【００６０】
Ｐｉｃｔｕｒｅ処理終了検出部１１２は、ピクチャの処理終了を、抽出した同期ポイントの数などにより検出する。Ｐｉｃｔｕｒｅ処理終了検出部１１２は、検出したピクチャの処理終了を、粗密記録部１２０に通知する。
【００６１】
粗密記録部１２０は、記録部１２１、累積部１２２を有し、メモリアクセスを実行する際、同期ポイント間のトランザクションを記録し、複数の同期ポイント間のアクセスパターンを学習する。また、粗密記録部１２０は、Ｐｉｃｔｕｒｅ処理終了検出部１１２からピクチャの処理終了を通知されることで、ピクチャの最後を判断することができる。
【００６２】
記録部１２１は、リアルタイム系処理のメモリアクセスに対し、処理対象のピクチャの複数の同期ポイント間における区間毎のトランザクションを記録する。記録部１２１は、例えば、区間毎にデータバスの占有割合を記録する。１区間は、例えば１０サイクルであり、同期ポイント間は、例えば３００〜１２００サイクルである。記録部１２１により記録される複数の同期ポイント間における区間毎のトランザクションは、記録データとも呼ぶ。
【００６３】
なお、記録部１２１は、固定／臨時データ検出部１１０により検出された固定、臨時のメモリアクセスについては、トランザクションの記録を行わないようにしてもよい。固定、臨時のメモリアクセスは、アクセスパターンの学習にふさわしくないからである。
【００６４】
累積部１２２は、過去にアクセスした複数の同期ポイント間における区間毎のトランザクションを累積し、アクセスパターンを学習する。累積された複数の同期ポイント間における区間毎のトランザクションは、累積記録データとも呼ぶ。
【００６５】
なお、累積部１２２は、例えばＩ、Ｐ、Ｂのピクチャタイプ毎に、メモリのアクセスパターンの学習を行ってもよい。累積記録データを更新することは、アクセスパターンの学習とも呼ぶ。累積部１２２は、適切に学習を行うため、スケーリング部１２３、算出部１２４、更新部１２５を有する。
【００６６】
スケーリング部１２３は、記録部１２１により記録された記録データを、累積記録データの時間軸に合わせるため、スケーリングを行う。
【００６７】
スケーリングを行うのは、同期ポイント間の区間数が動画処理の処理量に依存して変動するため、累積された累積記録データを基準として、アクセスパターンを学習する必要があるからである。
【００６８】
算出部１２４は、スケーリング後の記録データと、累積記録データとの区間毎のトランザクションの類似度を算出する。具体的には、算出部１２４は、データバスの占有割合の類似度を求める。類似度は、例えば、区間毎にトランザクションのＳＡＤ（Sum of Absolute Differences）である。算出部１２４は、算出した類似度を更新部１２５に出力する。
【００６９】
更新部１２５は、累積記録データを類似度に応じてＩＩＲ（Infinite Impulse
Response）的に更新する。更新部１２５は、例えば次の式（１）により区間毎のトランザクションを更新する。
ｖ（ｔ）＝（１−α）×ｖ（ｔ）＋α×ｃ（ｔ）  ・・・式（１）
α：係数
ｖ（ｔ）：累積部１２２に累積されているトランザクション
ｃ（ｔ）：記録部１２１に記録されたトランザクション
なお、αは、ＳＡＤに応じて変更される。例えば、ＳＡＤが閾値以下の場合、αは、例えば０．２であり、ＳＡＤが閾値より大きい場合、αは、例えば０．０５〜０．１のいずれかの値である。
【００７０】
これにより、累積部１２２では、より典型的な同期ポイント間のアクセスパターンを得ることができる。よって、累積部１２２で学習されたアクセスパターンを参照すれば、メモリアクセスの空き時間を予測することができるようになる。
【００７１】
粗密記録部１２０は、予測したメモリアクセスの空き時間に、ベストエフォート系処理のメモリアクセス要求を実行させるための許可信号を、バス権付与部１３０に出力する。
【００７２】
バス権付与部１３０は、ベストエフォート系処理のメモリアクセス要求を少なくとも１つ以上蓄積し、累積部１２２で学習されたアクセスパターンの空き時間に、蓄積しているメモリアクセス要求にバスの使用権を付与して実行する。バス権付与部１３０は、例えば、粗密記録部１２０から取得する許可信号がＯＮの時に、ベストエフォート系処理のメモリアクセス要求を実行する。
【００７３】
ＭＵＸ１４０は、ベストエフォート系処理のメモリアクセス要求と、リアルタイム系処理のメモリアクセス要求とを入力し、それぞれのメモリアクセス要求をメモリコントローラ１５０に出力する。
【００７４】
メモリコントローラ１５０は、取得したメモリアクセス要求に対して、メモリ７０を制御する。
【００７５】
以上の構成を有することで、リアルタイム系処理の過去のメモリアクセスからアクセスパターンを学習し、学習の結果に基づいて推定したメモリアクセスの空き時間に、ベストエフォート系処理のメモリアクセスを実行することができる。
【００７６】
＜各処理の概要＞
次に、実施例のアクセス制御に関する各処理の概要について説明する。
【００７７】
（アクセス判別処理）
図３は、アクセス判別部１００（その１）の一例を説明するための図である。図３に示す例では、アクセス判別部１００は、複数のアクセス元からメモリアクセス要求を受ける。アクセス判別部１００は、メモリアクセス要求をＭＵＸｅｒ（マルチプレクサ）から受ける場合もある。
【００７８】
このような場合、アクセス判別部１００は、後述するテーブルを参照して、メモリアクセス要求に対し、リアルタイム系かベストエフォート系かを判別する。アクセス判別部１００は、リアルタイム系をさらに、定常、臨時、固定の３種類に分けて判別してもよい。
【００７９】
アクセス判別部１００は、判別したメモリアクセス要求を、判別した種類に応じて後段の処理に出力する。
【００８０】
図４は、アクセス判別部１００（その２）の一例を説明するための図である。図４に示す例では、ベストエフォート系と、リアルタイム系とでバスが分離されている例である。この場合、アクセス判別部１００は、複数のアクセス元から取得したリアルタイム系のメモリアクセスに対し、後述するテーブルを参照して、定常、臨時、固定のいずれかに判別する。
【００８１】
なお、図４に示す例で、定常、臨時、固定を判別しない場合、又は定常、臨時、固定でバスが分離されている場合には、アクセス判別部１００は必要ない。アクセス判別部１００は、リアルタイム系かベストエフォート系かが設定されたテーブルを有してもよい。
【００８２】
次に、アクセス判別部１００がテーブルを用いてアクセス種別を判別する具体例について説明する。
【００８３】
図５は、アクセス種別の判別処理（その１）の一例を説明するための図である。図５に示す例では、アクセス判別部１００は、コンパレータａ１〜ａｎ、プライオリティエンコーダＰＥＮＣ、テーブル参照部ＲＥ、選択部ＳＬを有する。
【００８４】
コンパレータａ１は、リクエストアドレスと比較するためのアクセス開始位置を示すアドレスｓ１とリクエストアドレスとを比較し、比較結果を出力する。
【００８５】
コンパレータａ２，．．．，ａｎは、リクエストアドレスと比較するためのそれぞれのアドレスｓ２，．．．，ｓｎと、リクエストアドレスとを比較し、比較結果を出力する。
【００８６】
プライオリティエンコーダＰＥＮＣは、各コンパレータａ１〜ａｎから比較結果を取得し、設定された優先順に基づいてテーブルアドレスを出力する。
【００８７】
テーブル参照部ＲＥは、取得したテーブルアドレスに記憶されているＲｅａｄ（リード）時のアクセス種別及びＷｒｉｔｅ（ライト）時のアクセス種別をテーブルＴｂから取得する。テーブルＴｂには、テーブルアドレス毎に、リード時のアクセス種別及びライト時のアクセス種別が記憶されている。
【００８８】
アクセス種別は、リアルタイム系又はベストエフォート系である。アクセス種別は、リアルタイム系について、さらに定常、臨時、固定に細分化してもよい。
【００８９】
選択部ＳＬは、リード時のアクセス種別及びライト時のアクセス種別を取得し、リードかライトかの種別をメモリアクセス要求から取得すると、メモリアクセス要求に対応するアクセス種別を選択し、出力する。
【００９０】
図６は、アクセス種別の判別処理（その２）の一例を説明するための図である。図６に示す例では、アクセス判別部１００は、コンパレータｂ１〜ｂｎ、プライオリティエンコーダＰＥＮＣ、テーブル参照部ＲＥ、選択部ＳＬを有する。
【００９１】
コンパレータｂ１は、リクエストアドレスと比較するためのアクセス開始位置を示すアドレスｓ１及び終了位置を示すアドレスｅ１との間に、リクエストアドレスが含まれるかを判定し、判定結果を出力する。
【００９２】
コンパレータｂ２，．．．，ｂｎは、リクエストアドレスと比較するためのアクセス開始位置を示すアドレスｓ２，．．．，ｓｎと終了位置を示すアドレスｅ２，．．．，ｅｎとの間に、リクエストアドレスが含まれるかを判定し、判定結果を出力する。
【００９３】
プライオリティエンコーダＰＥＮＣは、各コンパレータｂ１〜ｂｎから判定結果を取得し、設定された優先順に基づいてテーブルアドレスを出力する。
【００９４】
テーブル参照部ＲＥや選択部ＳＬの処理は、図５で説明した処理と同様であるため、その説明を省略する。
【００９５】
図７は、アクセス種別の判別処理（その３）の一例を説明するための図である。図７に示す例では、アクセス判別部１００は、コンパレータｃ１〜ｃｎ、プライオリティエンコーダＰＥＮＣ、テーブル参照部ＲＥ、選択部ＳＬを有する。
【００９６】
コンパレータｃ１は、リクエストアドレスからアクセス開始位置を示すアドレスｓ１をマスクしたアドレスを出力する。このとき、出力結果は、２のべき乗の粒度になる。
【００９７】
コンパレータｃ２，．．．，ｃｎは、リクエストアドレスから、それぞれのアドレスｓ２，．．．，ｓｎをマスクして出力する。
【００９８】
プライオリティエンコーダＰＥＮＣは、各コンパレータｃ１〜ｃｎからの出力を取得し、設定された優先順に基づいてテーブルアドレスを出力する。
【００９９】
テーブル参照部ＲＥや選択部ＳＬの処理は、図５で説明した処理と同様であるため、その説明を省略する。
【０１００】
アクセス種別の判別処理は、その３が計算量の観点からは好適であるが、いずれの方法であってもよい。また、メモリアクセス要求にＩＤが付与され、このＩＤに対応するアクセス種別を保持するテーブルを用いてアクセス種別を判別してもよい。
【０１０１】
（同期ポイントの抽出における所定領域の決定処理）
次に、同期ポイントの抽出における所定領域の決定処理について説明する。決定された所定領域は、粗密記録部１２０によるアクセスパターンの学習に用いられたり、ベストエフォート系のメモリアクセスの挿入に用いられたりする。
【０１０２】
図８は、同期ポイントにより決定される所定領域を説明するための図である。図８に示すｐｃ１は、１つのピクチャの領域を示す。ｐｃ１は、Ｘ方向に処理されていくとする。ａｒ１は、ベストエフォート系の挿入エリアを示す。ａｒ２は、１つのＭＢＬｉｎｅの処理が終わった後の空き時間となる領域を示す。ａｒ３は、ピクチャの処理が終わった後の空き時間となる領域を示す。
【０１０３】
ａｒ１は、記録部１２１によるトランザクションの記録を行い、メモリアクセスパターンの学習を行い、また、ベストエフォート系のメモリアクセスを挿入する領域である。ピクチャの端部では、動画処理が定常状態ではないため、この端部は、メモリアクセスパターンの学習には適していない。よって、この端部をメモリアクセスパターンの学習に含めないことで、学習の精度を向上させる。
【０１０４】
このａｒ１は、例えば粗密記録部１２０により次のようにして決定される。
・ＭＢＬｉｎｅの同期ポイントを起点にｎ１個のＭＢの同期ポイントを無視し、ｍ１個以上のＭＢの同期ポイントを無視する。これにより、ピクチャの左右の端部を排除することができる。
・ピクチャの同期ポイントを起点にｎ２個のＭＢの同期ポイントを無視し、ｍ２個以上のＭＢＬｉｎｅの同期ポイントを無視し、かつＭＢＬｉｎｅに含まれるＭＢの同期ポイントを無視する。これにより、ピクチャの上下の端部を排除することができる。
【０１０５】
また、ａｒ２、ａｒ３の期間は、リアルタイム系処理が空き時間となりやすい時間帯である。よって、粗密記録部１２０は、積極的にベストエフォート系処理のメモリアクセスを実行するため、その指示（例えば許可信号）をバス権付与部１３０に出力する。
【０１０６】
ａｒ２は、例えば粗密記録部１２０により次のようにして判断される。
・ＭＢＬｉｎｅの同期ポイントを起点にｍ３個のＭＢの同期ポイントを検出してから、次のＭＢＬｉｎｅ同期のポイント又はピクチャの同期ポイントまでとする。これにより、ＭＢＬｉｎｅ間の空き時間を特定することができる。
【０１０７】
ａｒ３は、例えば粗密記録部１２０により次のようにして判断される。
・ピクチャの同期ポイントを起点にｍ４個以上のＭＢＬｉｎｅの同期ポイントを検出してから、次のピクチャの同期ポイントまでとする。これにより、ピクチャ間の空き時間を特定することができる。
【０１０８】
なお、ａｒ１〜ａｒ３の領域の起点において、リアルタイム系処理が優先されるべき期間が存在する場合がある。よって、粗密記録部１２０は、ａｒ１〜ａｒ３の起点を検出してから一定サイクル後に、ａｒ１〜ａｒ３の領域が始まると判断してもよい。
【０１０９】
これにより、ａｒ１の領域で累積記録データの更新を行い、ベストエフォート系のメモリアクセスを挿入することができる。また、ａｒ２、ａｒ３の領域で、ベストエフォート系のメモリアクセスを積極的に挿入することが可能となる。
【０１１０】
（累積記録データの更新処理）
次に、累積記録データの更新処理について説明する。図９は、累積記録データの更新を説明するための図である。図９（Ａ）に示す例では、１つのＭＢＬｉｎｅを１つの同期ポイント間とし、４つの同期ポイント間のデータバス占有割合を累積記録データとする。
【０１１１】
なお、同期ポイント間は、所定数のＭＢや所定数のＭＢＬｉｎｅにしてもよい。また、図９（Ａ）に示す例では、４つの同期ポイント間を累積するようにしているが、１ピクチャ分の同期ポイント間を累積するようにしてもよい。
【０１１２】
また、累積部１２２は、累積記録データをピクチャタイプごとに記録する。図９（Ａ）に示す例では、Ｉ、Ｐ、Ｂのピクチャタイプに分けているが、これに限られない。
【０１１３】
同期ポイント間は、複数の区間を含む。１つの区間は、所定数のサイクルに対するデータバスの占有割合の平均を表す。１つの区間の色は、黒に近いほどデータバスの占有割合が大きいことを表す。
【０１１４】
図９（Ｂ）に示す例では、記録部１２１は、現在の処理対象のピクチャに対し、抽出された同期ポイント間における複数の区間のデータバスの占有割合を記録する。図９（Ｂ）に示す例では、例えば４つのＭＢＬｉｎｅ毎に、累積記録データを学習する。なお、記録部１２１は、図８に示すａｒ１の領域で、トランザクションの記録を行うようにしてもよい。
【０１１５】
図９（Ｂ）に示すように、スケーリング部１２３は、記録部１２１により記録された同期ポイント間の区間数を、累積記録データの同期ポイント間の区間数に合わせるため、スケーリングを行う。これは、動画処理においては、同期ポイント間のマクロブロックに応じて処理量や処理時間が異なるので、記録データと累積記録データとの時間軸を合わせるためである。
【０１１６】
算出部１２４は、例えば、スケーリングされた区間のデータバス占有割合と、対応する累積記録データの区間のデータバス占有割合とのＳＡＤを算出する。
【０１１７】
更新部１２５は、算出部１２４により算出された区間毎のＳＡＤに基づいて、累積記録データを区間毎に更新する。
【０１１８】
これにより、累積記録データを更新することで、処理対象のマクロブロックと近傍の過去に処理されたマクロブロックのメモリアクセスに基づくアクセスパターンを学習することができる。
【０１１９】
なお、図９に示す白の区間が空き時間を示す。粗密記録部１２０は、現在処理されているマクロブロックのトランザクションが累積記録データのどこに対応するかを判断することで、次に空き時間となる図９に示す白の区間を予測することができる。
【０１２０】
また、メモリアクセスの学習の精度を上げるため、記録部１２１は、定常以外の臨時、固定については、記録を行わないとすることもできる。累積記録データは、動画処理の各マクロブロックに対する符号化時のアクセスパターンを知るためのものであるので、定期的にアクセスがある固定スロットと、臨時にアクセスされる臨時データトランザクションとを学習対象から除外する。
【０１２１】
図１０は、アクセスパターンの学習対象を説明するための図である。図１０に示すように、動画処理のＭＢＬｉｎｅの処理の間に臨時又は固定のメモリアクセスが発生する。表示系のリアルタイム処理は、定期的にアクセスされるが、図１０に示すように動画処理を基準に考えれば、各マクロブロックの処理量や処理時間は異なるため、不定期にアクセスされるようにみえる。
【０１２２】
よって、粗密記録部１２０は、固定／臨時データ検出部１１０により検出された固定及び臨時のメモリアクセスについては、そのデータバスの占有割合については記録を行わない。
【０１２３】
（ベストエフォート系アクセスの実行処理）
次に、ベストエフォート系のメモリアクセスが実行される処理について説明する。図１１は、バス権付与部１３０の構成の一例を示す図である。図１１に示すバス権付与部１３０は、ＦＩＦＯ１３１、実行部１３２、分割部１３３を有する。
【０１２４】
ＦＩＦＯ１３１は、ベストエフォート系のメモリアクセス要求を１つ以上連続して蓄積する蓄積部である。このとき、粗密記録部１２０は、ＦＩＦＯ１３１の先頭に蓄積されているメモリアクセスのサイズを取得してもよい。
【０１２５】
実行部１３２は、例えばスイッチであり、粗密記録部１２０から受けた許可信号がＯＮの場合に、ＦＩＦＯ１３１の先頭に蓄積されているメモリアクセス要求にバス権を付与し、このメモリアクセスを実行する。
【０１２６】
許可信号は、リアルタイム系処理の累積記録データに基づいて予測された空き時間にＯＮになる。また、許可信号は、リアルタイム系処理の累積記録データでバスデータの占有割合が空いていない時間、又は臨時のリアルタイム系処理があった場合にＯＦＦになる。
【０１２７】
また、バス権付与部１３０は、図１１に示す分割部１３３を有してもよい。分割部１３３は、粗密記録部１２０から空き時間のサイズを取得する。分割部１３３は、ベストエフォート系のメモリアクセスによるバスの占有時間が、取得した空き時間よりも大きい場合、このメモリアクセスを分割する。
【０１２８】
これにより、ベストエフォート系のメモリアクセス要求のサイズが大きい場合に、このメモリアクセスがなかなか実行されないという事態を避けることができる。
【０１２９】
＜比較＞
次に、実施例におけるベストエフォート系のメモリアクセスの実行タイミングと、従来例におけるベストエフォート系のメモリアクセスの実行タイミングとの比較について説明する。
【０１３０】
図１２は、実施例と従来例との比較を説明するための図である。図１２（Ａ）は、上述した実施例によるベストエフォート系のメモリアクセスのタイミングを示す。また、実施例では、リアルタイム系処理のメモリアクセスのパターンを学習する。実施例では、学習したメモリアクセスのパターンから、ベストエフォート系のメモリアクセスを実行することが可能な空き時間があるかを予測する。図１２（Ａ）に示すように、実施例では、予測した空き時間に、ベストエフォート系のメモリアクセスを実行する。
【０１３１】
図１２（Ｂ）は、従来例によるベストエフォート系のメモリアクセスのタイミングを示す。従来例は、一般的なアービターを想定する。一般的なアービターは、バスの占有時間に空き時間があればメモリアクセスを実行する。
【０１３２】
図１２（Ｂ）に示すように、従来例では、データ転送の占有割合に対する考慮がなく、空き時間にベストエフォート系のメモリアクセスを実行してしまうと、その後のリアルタイム系処理を待たせてしまう場合がある。
【０１３３】
一方、実施例では、リアルタイム系処理のアクセスパターンを学習することで、空き時間があった場合に、その空き時間でベストエフォート系のメモリアクセスを処理完了することができるかを予測することができる。
【０１３４】
よって、実施例では、予測された空き時間があっても、その後のリアルタイム系処理を遅延させると判断された場合には、ベストエフォート系処理のメモリアクセスを実行しない。
【０１３５】
＜動作＞
次に、実施例における撮像装置１の動作について説明する。図１３は、１つのメモリアクセス要求に対する撮像装置１のアクセス制御処理の一例を示すフローチャートである。図１３に示すステップＳ１０１で、アクセス判別部１００は、アクセス要求元から取得したメモリアクセス要求が、リアルタイム系かベストエフォート系かを判別する。メモリアクセス要求がリアルタイム系である場合はステップＳ１０２に進み、メモリアクセス要求がベストエフォート系である場合はステップＳ１０６に進む。
【０１３６】
ステップＳ１０２で、記録部１２１は、要求されたメモリアクセスのトランザクションを記録する。例えば、記録部１２１は、同期ポイント間の区間毎のデータバスの占有割合を記録する。
【０１３７】
ステップＳ１０３で、スケーリング部１２３は、記録部１２１により記録された記録データの同期ポイント間を、累積記録データの同期ポイント間の時間軸に合わせるため、スケーリングを行う。
【０１３８】
ステップＳ１０４で、算出部１２４は、記録データと累積記録データとの同期ポイント間の区間毎に、データバスの占有割合の類似度を算出する。
【０１３９】
ステップＳ１０５で、更新部１２５は、算出された類似度に基づいて、記録データを用いて累積記録データを更新する。この累積記録データが、リアルタイム系処理のアクセスパターンを表す。
【０１４０】
ステップＳ１０６で、バス権付与部１３０は、ベストエフォート系のメモリアクセス要求を蓄積する。例えば、ＦＩＦＯ１３１が、ベストエフォート系のメモリアクセス要求を蓄積する。
【０１４１】
図１４は、ベストエフォート系処理のアクセス実行処理の一例を示すフローチャートである。図１４に示すステップＳ２０１で、実行部１３２は、粗密記録部１２０から取得した許可信号がＯＮであるかを判定する。許可信号がＯＮであれば（ステップＳ２０１−ＹＥＳ）ステップＳ２０２に進み、許可信号がＯＦＦであれば（ステップＳ２０１−ＮＯ）ステップＳ２０１に戻る。
【０１４２】
なお、許可信号は、粗密記録部１２０において、ＦＩＦＯ１３１先頭のメモリアクセスサイズを実行可能な空き時間が累積記録データにある場合に、ＯＮとなる。
【０１４３】
ステップＳ２０２で、実行部１３２は、ＦＩＦＯ１３１先頭のメモリアクセス要求を実行する。なお、実行されるベストエフォート系のメモリアクセスは、空き時間に基づいて分割されてもよい。
【０１４４】
以上、実施例によれば、リアルタイム系処理を優先しつつ、リアルタイム系処理の間にベストエフォート系処理を適切に処理させることで、効率の良いメモリアクセス制御を行うができる。
【０１４５】
以上、実施例について詳述したが、上記の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１４６】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
動画撮影中に静止画を撮影可能な撮像装置であって、
動画処理を含むリアルタイム性が要求される処理のメモリアクセス要求を示す第１要求が実行される際に、複数の同期ポイント間における区間毎のトランザクションを記録する記録部と、
静止画処理に関する処理のメモリアクセス要求を示す第２要求を蓄積する蓄積部と、
前記記録部に記録された区間毎のトランザクションを用いて、複数の同期ポイント間における区間毎のトランザクションを累積する累積部と、
累積された複数の同期ポイント間における区間毎のトランザクションに基づいて予測されたメモリアクセスの空き時間に、前記蓄積部に蓄積された第２要求を実行する実行部と、
を備える撮像装置。
（付記２）
前記累積部は、
累積された各同期ポイント間の区間数に応じて、前記記録部に記録された各同期ポイント間の区間数をスケーリングするスケーリング部と、
スケーリング後の各同期ポイント間の区間毎に、該区間と、該区間に対応する累積された区間とのトランザクションの類似度を算出する算出部と、
区間毎の前記類似度に応じて、累積された区間毎のトランザクションを更新する更新部と、
を備える付記１記載の撮像装置。
（付記３）
メモリアクセス要求を受けた場合、該メモリアクセス要求を、前記第１要求と前記第２要求とが設定されたテーブルを参照して、前記第１要求か前記第２要求かを判別する判別部をさらに備え、
前記記録部は、
前記判別部により判別された前記第１要求を受け取り、
前記蓄積部は、
前記判別部により判別された前記第２要求を受け取る付記１又は２記載の撮像装置。
（付記４）
前記同期ポイントを、画像を格納する領域内の特定の領域に対するメモリアクセスにより抽出する抽出部をさらに備える付記１乃至３いずれか一項に記載の撮像装置。
（付記５）
前記記録部は、
画像内の所定の領域で抽出された同期ポイント間における区間毎のトランザクションを記録する付記１乃至４いずれか一項に記載の撮像装置。
（付記６）
前記実行部により実行される第２要求によるメモリアクセスを、前記空き時間に基づいて分割する分割部をさらに備える付記１乃至５いずれか一項に記載の撮像装置。
（付記７）
前記累積部は、
画像のピクチャタイプ毎に、複数の同期ポイント間における区間毎のトランザクションを累積し、
前記更新部は、
現在の処理対象画像のピクチャタイプに対応する、累積された複数の同期ポイント間における区間毎のトランザクションを更新する付記１乃至６いずれか一項に記載の撮像装置。
（付記８）
前記記録部は、
前記第１要求が、動画のビットストリームのＷｒｉｔｅ要求を含む臨時のメモリアクセス要求又は表示系のメモリアクセス要求を含む定期的なメモリアクセス要求ではない場合に、前記トランザクションの記録を行う請求項１乃至７いずれか一項に記載の撮像装置。
（付記９）
リアルタイム性が要求される動画処理に関する処理のメモリアクセス要求を示す第１要求が実行される際に、複数の同期ポイント間における区間毎のトランザクションを記録部に記録し、
静止画処理に関する処理のメモリアクセス要求を示す第２要求を蓄積部に蓄積し、
前記記録部に記録された区間毎のトランザクションを用いて、複数の同期ポイント間における区間毎のトランザクションを累積部に累積し、
前記累積部に累積された複数の同期ポイント間における区間毎のトランザクションに基づいて予測されたメモリアクセスの空き時間に、前記蓄積部に蓄積された第２要求を実行する処理をコンピュータが実行するアクセス制御方法。
【符号の説明】
【０１４７】
１  撮像装置
２０  キャプチャ処理部
３０  静止画向け処理部
４０  動画向け処理部
５０  電子ビューファインダー用映像処理部
６０  バス制御部
７０  メモリ
１００  アクセス判別部
１１０  固定／臨時データ検出部
１１１  同期ポイント抽出部
１２０  粗密記録部
１２１  記録部
１２２  累積部
１２３  スケーリング部
１２４  算出部
１２５  更新部
１３０  バス権付与部
１３１  ＦＩＦＯ
１３２  実行部
１３３  分割部
【図１】
0005838716.tif 000002
【図２】
0005838716.tif 000003
【図３】
0005838716.tif 000004
【図４】
0005838716.tif 000005
【図５】
0005838716.tif 000006
【図６】
0005838716.tif 000007
【図７】
0005838716.tif 000008
【図８】
0005838716.tif 000009
【図１０】
0005838716.tif 000010
【図１１】
0005838716.tif 000011
【図１３】
0005838716.tif 000012
【図１４】
0005838716.tif 000013
【図９】
0005838716.tif 000014
【図１２】
0005838716.tif 000015