JP6356552B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6356552B2
JP6356552B2 JP2014187568A JP2014187568A JP6356552B2 JP 6356552 B2 JP6356552 B2 JP 6356552B2 JP 2014187568 A JP2014187568 A JP 2014187568A JP 2014187568 A JP2014187568 A JP 2014187568A JP 6356552 B2 JP6356552 B2 JP 6356552B2
Authority
JP
Japan
Prior art keywords
image
image processing
power
image sensor
processing
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.)
Active
Application number
JP2014187568A
Other languages
English (en)
Other versions
JP2016062148A (ja
Inventor
祐介 城田
祐介 城田
金井 達徳
達徳 金井
淳一 瀬川
淳一 瀬川
俊樹 岐津
俊樹 岐津
瑛 武田
瑛 武田
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.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2014187568A priority Critical patent/JP6356552B2/ja
Priority to TW104128714A priority patent/TW201617781A/zh
Priority to US14/847,142 priority patent/US10356320B2/en
Priority to CN201510567697.5A priority patent/CN105430251A/zh
Publication of JP2016062148A publication Critical patent/JP2016062148A/ja
Application granted granted Critical
Publication of JP6356552B2 publication Critical patent/JP6356552B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/65Control of camera operation in relation to power supply
    • H04N23/651Control of camera operation in relation to power supply for reducing power consumption by affecting camera operations, e.g. sleep mode, hibernation mode or power off of selective parts of the camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/64Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/183Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Electromagnetism (AREA)
  • Toxicology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Studio Devices (AREA)
  • Power Sources (AREA)
  • Alarm Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明の実施形態は、情報処理装置に関する。
従来、メガネ型や腕時計型などのウェアラブル機器のカメラ応用アプリやジェスチャなどの認知的(Perceptual)UI、IoT/M2Mシステムでの監視用カメラ、タブレットやスマートフォンのカメラ応用、電子内視鏡などのヘルスケア応用、車載カメラなどイメージセンサを搭載した情報処理装置が知られている。
例えば撮像手段(イメージセンサ)を有する電子内視鏡(上記情報処理装置の一例)において、グリップ部に対して一定時間以上に亘り所定値以上の圧力が検知されない場合、撮像手段に対する電力供給を停止する技術が知られている。
特開2003−144385号公報
しかしながら、例えば、顔認識処理などの高度なカメラ応用では、1回の顔認識処理に時間が掛かるうえに重要なイベントを撮り損ねないようにイメージセンサによる撮像(「キャプチャ」と称する場合もある)を続ける必要があり、その撮像により得られた画像を用いた画像処理(顔認識処理)を常に実行し続けることになるので、アイドル期間(情報処理装置上で実行する処理がない期間)がないかあるいは非常に限定的であるために低消費電力状態に遷移できず、大きな電力を消費し続けてしまうという問題がある。
実施形態の情報処理装置は、イメージセンサから入力する第1の画像の変化がない場合は、第1の画像の変化を判定する第1の処理を実行しているときの電力よりも低い第1電力で次の第1の画像の入力を待つ。イメージセンサから入力する第1の画像は、画像を処理する処理装置内に設けられる内部メモリに格納され、内部メモリに格納された第1の画像の変化を判定する第1の処理の実行中は、処理装置外に設けられる主記憶装置に供給される電力は第6電力である。第1の画像の変化が検出された場合は、第2の画像は主記憶装置に格納され、主記憶装置に供給される電力は、主記憶装置にアクセス可能な第7電力である。第6電力は第7電力よりも小さく、内部メモリの容量は主記憶装置の容量より小さい。第1の画像の変化がない場合は次の第1の画像の入力を第5時間待ち、第1の画像の変化があった場合は次の第1の画像の入力を、第5時間よりも短い第6時間待ち、第1の画像の変化領域が画像の中央付近である場合に、第1の画像よりも解像度の高い第2の画像をイメージセンサから入力し、第2の画像を用いた処理を実行する。次の第1の画像の入力を第5時間待つ場合の情報処理装置の電力は第4電力であり、次の第1の画像の入力を第6時間待つ場合の情報処理装置の電力は、第4電力よりも高い第5電力である。
第1実施形態の情報処理装置の構成を示す図。 第1実施形態のイメージセンサモジュールの構成を示す図。 第1実施形態のイメージセンサモジュールの省電力モードを示す図。 第1実施形態の情報処理装置の消費電力の推移の例を示す図。 第1実施形態のイメージセンサ管理部の構成を示す図。 第1実施形態の画像処理アルゴリズムの設定を説明するための図。 第1実施形態のアプリケーションによる処理を示す図。 第1実施形態のイメージセンサ管理部による処理を示す図。 第4実施形態の第1の画像処理のバリエーションを示す図。 第5実施形態の変化検出対象領域の例を示す図。 第5実施形態の変化検出対象領域を指定する場合を説明するための図。 第6実施形態のイメージセンサの消費電力の推移を示す図。 第7実施形態のイメージセンサの消費電力の推移を示す図。 第7実施形態のイメージセンサ管理部の構成を示す図。 第7実施形態のイメージセンサ管理部による処理を示す図。 第8実施形態の情報処理装置の消費電力の推移を示す図。 第11実施形態のイメージセンサ管理部の構成を示す図。 第11実施形態の統計情報を説明するための図。 第12実施形態の動作例を説明するための図。 第14実施形態のイメージセンサ管理部の構成を示す図。 第14実施形態の動作を示す図。 第15実施形態の情報処理装置の構成を示す図。 第15実施形態のイメージセンサ管理部の構成を示す図。 第15実施形態のイメージセンサ管理部による処理を示す図。 第16実施形態の情報処理装置の構成を示す図。 第16実施形態のイメージセンサモジュールの構成を示す図。 第16実施形態のイメージセンサ管理部の構成を示す図。 第16実施形態のイメージセンサ管理部による処理を示す図。 第18実施形態の情報処理装置の構成を示す図。 第18実施形態の情報処理装置およびスマートフォンの構成を示す図。 第18実施形態のアプリケーションによる処理を示す図。 第18実施形態の同期設定部による設定を説明するための図。
以下、添付図面を参照しながら、本発明に係る情報処理装置の実施形態を詳細に説明する。
(第1実施形態)
図1は、本実施形態の情報処理装置1のハードウェア構成の一例を示す図である。図1に示すように、情報処理装置1は、SoC(System On Chip)10と、電源装置20と、PMIC(Power Management IC)30と、ストレージデバイス40と、メインメモリ50と、ネットワークデバイス60と、イメージセンサデバイス70とを有する。以下の説明では、ストレージデバイス40、メインメモリ50、ネットワークデバイス60およびイメージセンサデバイスを区別しない場合は、単に「I/Oデバイス」と称する場合がある。SoC10は、例えばI2C、SPI、UART、USBなどの汎用で様々な用途に使えるシリアルインタフェースを備えることもでき、I/Oデバイスとしては様々なデバイスを使用することができる。
SoC10は、様々な内部モジュールを有する。図1の例では、SoC10は、内部モジュールとして、プロセッサコア101、SoC10内部の記憶領域であるSRAMなどの内部メモリ(ローカルメモリなどとも呼ばれる)102、GPU(Graphics Processing Unit)やハードウェアエンジンなどのアクセラレータ103、イメージセンサコントローラ104、メインメモリ50を制御するメモリコントローラ105、ネットワークデバイス60を制御するネットワークコントローラ106、ストレージデバイス40を制御するストレージコントローラ107、内部モジュールを接続するバス108、オシレータなどの高周波クロックを生成する高周波発振器109、低周波クロックを生成する低周波発振器110、クロックの周波数の変換やクロック供給の可否(オン/オフ)を制御するクロック制御モジュール111、I/Oデバイスなどからの受信した割込みをプロセッサコア101に送る割込みコントローラ112、計時機能を有するRTC(Real Time Clock)113などを有する。以下の説明では、イメージセンサコントローラ104、メモリコントローラ105、ネットワークコントローラ106およびストレージコントローラ107を互いに区別しない場合は、単に「デバイスコンロトーラ」と称する場合がある。
プロセッサコア101はARMプロセッサなどであり、キャッシュメモリ(L1キャッシュ、L2キャッシュ)114やNEONなどの汎用SIMD(Single Instruction Multiple Data)エンジン115などを備えている。図1に示したSoC10は、プロセッサコア101を1つ持つシングルコアの例である。このほかに、SoC10内に複数のプロセッサコア101を持つマルチコアの構成(マルチコアプロセッサ)をとることもできる。
SoC10は、低い電力で待機可能な省電力モードであるWAITモードとDEEP SLEEPモードなどを備えている。DEEP SLEEPモードは、WAITモードより消費電力が低い。WAITモードでは、プロセッサコア101は停止(クロックゲーティング)しており状態保持できる範囲で供給電圧も下げられているが、キャッシュメモリ114など、イベントを割込みコントローラ112から通知されればすぐに再開できる状態を保持するのに必要な電力を消費している。また、デバイスコントローラなどのペリフェラルの動作に必要な電圧やクロックは供給され続けており、メインメモリ50もアクセス可能な状態が保持されている。一方、DEEP SLEEPモード(STOPモードとも呼ばれる)では、プロセッサコア101の停止に加えて、キャッシュメモリ114への電力供給を停止(パワーゲーティング)し、内部メモリ102の内容や、デバイスコントローラなどのペリフェラルへ供給する電源電圧を、内部レジスタの値を保持できる範囲で下げる。また、メインメモリ50が揮発性の場合は後述の省電力モードに明示的に設定し、メインメモリ50が不揮発性の場合には電源供給を停止する。さらに、消費電力が低い低周波発振器110からクロックを供給されている割込みコントローラ112やRTC113やクロック制御モジュール111などのDEEP SLEEPモードから復帰するために必要な内部モジュールだけ電力供給を継続し、消費電力が高い高周波発振器109やクロック制御モジュール111内のPLL(Phase Locked Loop)を停止させることで、消費電力が極めて低い待機状態にできる。その一方で、DEEP SLEEPモードは、WAITモードよりも状態の遷移に時間を要する。なお、SoC10が有する省電力モードの形態はSoC10によって様々であり、以上の例に限定されるものではない。
電源装置20は、AC電源、一次電池、二次電池などの様々な種類のものを用いることができる。あるいは、太陽電池などのエナジーハーベスト装置と大容量キャパシタなどの蓄電装置の組み合わせなどを用いることもできる。その場合などでは、アイドル期間(情報処理装置1が処理を実行しない期間)に発電した余剰電力を蓄電部に充電しておき、アクティブ期間(情報処理装置1が処理を実行する期間)のピークの消費電力を蓄電部に蓄積している電力と太陽電池などが発電した電力とをあわせて情報処理装置1に供給するピークアシスト型の電源制御を行うこともできる。
PMIC30は、電源装置20の供給する電力を、SoC10やI/Oデバイスに必要な電圧に変換して供給する。
ストレージデバイス40は、情報処理装置1の2次ストレージとして、データやプログラムを記憶するために使用する。ストレージデバイス40は、例えばNANDフラッシュメモリやSDカードなどのメモリカードやハードディスクなどで構成され得る。
メインメモリ50は、DRAMなどの揮発性メモリでもよいし、MRAM(Magnetoresistive Random Access Memory)、PCM(Phase Change Memory)、ReRAM(Resistance Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性メモリでもよい。揮発性メモリの場合は、例えばLPDDR2などのDRAMはセルフリフレッシュモードに遷移させることで消費電力を抑制できる。不揮発性メモリの場合は、電力供給を停止することで省電力化できる。
ネットワークデバイス60は、802.11a、802.11b、802.11g、802.11n、802.11acなどの伝送規格の無線LANデバイスやBluetooth(登録商標)やZigbee(登録商標)などの近距離無線通信デバイスなどでもよい。
イメージセンサデバイス70は、例えば図2のような、CMOSイメージセンサ(撮像素子)を搭載したCMOSイメージセンサモジュールである。以下の説明では、イメージセンサデバイス70を、「CMOSイメージセンサモジュール70」と称する場合がある。CMOSイメージセンサは、CCDイメージセンサなどの他のイメージセンサあってもよい。CMOSイメージセンサモジュール70は、クロックを生成するオシレータ71、クロックを制御するクロック制御部72、CMOSイメージセンサ73、レンズ(不図示)などを有する。以下の説明では、CMOSイメージセンサ73を、「イメージセンサ73」と称する場合がある。ここでは、CMOSイメージセンサモジュール(イメージセンサデバイス)70が「イメージセンサ」に対応していると考えることもできるし、CMOSイメージセンサ73が「イメージセンサ」に対応していると考えることもできる。
なお、イメージセンサ73は、オートフォーカスなどの鮮明な画像を撮像するための自動調整機能等を持っていてもよい。
イメージセンサ73は複数のフレームレートに対応しており、設定されたフレームレートに応じて、画像がSoC10に入力され続ける。フレームレートは、例えば、30fps(frames per second)などである。このように、連続した画像(「ストリーム」や「ビデオ」などと称する場合もある)が到着し続けるため、到着するデータを格納するバッファがあるメインメモリ50もアクセス可能な状態にしておかなければならないし、イメージセンサコントローラ106やデータ転送用のバスにクロックを提供し続けなければならず、SoC10を省電力モードに移行させるアイドル期間が確保できない課題がある。本実施形態では、イメージセンサ73やイメージセンサコントローラ106を細かく制御することにより必要な画像(「静止画」などと称する場合もある)だけ入力してすぐにこれらを停止させることでアイドル期間を確保する。これは、要するに、従来のいわゆる、ビデオを撮影中(あるいは、情報処理装置1の使用中/作動中(アプリケーションは実行を継続しているのでアプリケーションから見ると変化検出処理をし続けている最中)の状況下においても、イメージセンサ73やSoC10やメインメモリ50を(内部的には)細かく停止あるいは省電力モードに遷移させるということになる。
イメージセンサコントローラ104は、イメージセンサ73から画像を入力するためのMIPIのカメラ・シリアル・インターフェイス(CSI)などのインタフェースを備えている。イメージセンサコントローラ104は、到着し続ける画像をストリーム処理する。イメージセンサコントローラ104は、入力した画像の解像度を変化するなどの変換処理機能などを有していてもよい。そのため、イメージセンサコントローラ104はIPU(Image Processing Unit)などとも呼ばれることもある。また、入力した画像をメインメモリ50に転送するDMAコントローラを内蔵していてもよい。また、例えばイメージセンサ73の制御にI2Cインタフェースを用いる場合は、イメージセンサコントローラ104はI2Cコントローラを含んでいてもよいし、I2Cコントローラそのものであってもよい。
また、図3に示すように、CMOSイメージセンサモジュール70は複数の省電力モードを有する。例えば、省電力モードから撮像可能な状態に復帰するまでの復帰時間が短い第1省電力モードや、より復帰時間が長いが待機電力が低い第2省電力モードなどを有する。第1省電力モードは、内部クロックのみを停止(クロックゲーティング)する。第2省電力モードは、内部クロックの停止に加えてオシレータ71も停止させ、さらにCMOSイメージセンサ73の内部レジスタもオフにする(電力供給を停止する)。省電力モードから復帰して撮像可能な状態に復帰するまでに省電力モードごとに必要なレジスタ等の再設定や解像度を動的に変更する際に行うレジスタ等の再設定などの処理も「初期化」と称する。イメージセンサデバイス70が有する省電力モードの形態はイメージセンサデバイス70の種類によって様々であり、以上の例に限定されるものではない。これらの省電力モードを、後述するようにSoC10をDEEP SLEEPモードに遷移させる際に適切に利用することで情報処理装置1の一層の低消費電力化を図ることができる。
なお、情報処理装置1は、9軸センサ、赤外線センサ、音センサ(マイク)、脈拍センサなどの各種センサや、Mirasolなどの各種電子ペーパーや不揮発性ディスプレイ、メモリ液晶ディスプレイやIGZO LCDのような低いリフレッシュレートで動作するディスプレイ、PSR(Panel Self Refresh)対応の液晶ディスプレイ、メガネ型のウェアラブル機器などではヘッドマウントディスプレイのディスプレイデバイス、そして、それらを制御するコントローラを備えていてもよい。以降の全ての実施形態においても同様である。
本実施形態では、イメージセンサデバイス70から取得(入力)した画像に、処理すべき対象が映っていない期間や検出すべき動きのない期間(これらは「画像変化のない、あるいは小さい期間、または、検出すべき画像変化のない、あるいは小さい期間」、要するに「アプリケーションにとって意味のある画像変化」、「アプリケーションが要求する画像変化」のない、あるいは小さい期間であると考えることができる)などに、情報処理装置1を低消費電力化することを目的とし、周辺環境や状況の変化やアプリケーションの高度な画像処理(例えば顔認識処理など)のトリガとなるイベントを、短時間かつ低消費電力で検知可能な待機状態の画像処理(アプリケーションによる処理の前処理)を導入し、アプリケーション側で、トリガとなるイベントが無いのに高度な画像処理を実行してしまうなど本来不必要な高度な画像処理を実行してしまう時間を削減することで、情報処理装置1を低消費電力状態にできるアイドル期間をできるだけ確保する。さらに、導入した待機状態の画像処理を、アプリケーション側で実行せずにOS(オペレーティングシステム)側に分離し、OS側で、僅かなアイドル期間でも積極的にDEEP SLEEPモードなどの省電力モードに遷移させて省電力化する。僅かなアイドル期間とは例えば数ms〜数十msである。さらに、待機状態の画像処理を、イメージセンサデバイス70から取得した、アプリケーションが実行する高度の画像処理に用いられる画像よりも解像度が低い画像(以下の説明では、「低解像度画像」と称する場合がある)を利用して計算処理量を削減し、アクセラレータ103やSIMDエンジン115など(以下、これらを総称して「アクセラレータ」とする場合がある)を利用して高速化することで、短時間で完了させ、アイドル期間をさらに長くすることができる。待機状態の画像処理の結果、環境変化、状況変化、特定の対象物などが検出(総称して「変化検出」と称する)されると、これをトリガとして、アプリケーションに通知し、さらに、アプリケーション側の高度の画像処理に必要な画像(上述の低解像度画像よりも解像度が高い高解像度画像)を渡し、アプリケーションに制御を移す。アプリケーションに渡すのは、アプリケーションの要求に応じて、1枚の画像であってもよいし、ビデオやストリームなど複数の画像でもよい。そして、アプリケーションは、OSから渡された高解像度画像を用いて、独自の高度の画像処理を実行する。
要するに、本実施形態の情報処理装置1は、イメージセンサ73から入力する第1の画像(この例では「低解像度画像」)の変化がない場合は、次の第1の画像の入力を待ち、第1の画像の変化があった場合は、第1の画像よりも解像度の高い第2の画像(この例では「高解像度画像」)をイメージセンサ73から入力し、第2の画像を用いた処理を実行する。本実施形態では、第2の画像の変化を検出するために、第1の画像を用いて第1の画像の変化を判定する処理を行っていると考えることもできる。
ただし、これに限らず、例えばアプリケーションの画像処理に用いられる画像の解像度と、待機状態の画像処理に用いられる画像の解像度とが同じであってもよい。要するに、本実施形態では、常にアプリケーションの画像処理を実行し続けるのではなく、アプリケーションの画像処理の前処理として、アプリケーションの画像処理よりも処理量が少ない画像処理であって、アプリケーションの画像処理の実行の可否を決定するための画像処理を実行する。
なお、OSとは、情報処理装置1が備えるハードウェア資源(イメージセンサデバイス70等)を制御する機能を提供するための基本プログラムである。例えばLinux(登録商標)などである。また、アプリケーションとは、OSを利用して、特定の機能を提供するためのプログラムであり、その種類は任意である。プロセッサコア101が、OSやアプリケーションを実行することにより、各種の機能を実現することができる。また、本明細書において、「撮像」とは、レンズなどの光学系により結像された被写体(撮像対象)の像を、電気信号に変換することなどを指す。
図4は、本実形態の情報処理装置1の利用時に観測される情報処理装置1全体の消費電力の推移の例を示す図である。図4を用いて、本実施形態の概要を説明する。図4に示すように、まずは時刻T0に、アプリケーションが実行を開始すると、アプリケーションの初期化やCMOSイメージセンサ73の初期化などの初期化処理が行われる。なお、初期化処理には、アプリケーションの実行を開始する際に一度行えばよい処理と、イメージセンサ73を省電力モードから復帰させて撮像する度に行う処理や、動的に設定を変更する時に行う処理などがあり、ここにはそれらすべてが含まれてもよい。時刻T1から、アプリケーションは、OS側に対して、環境変化やイベントを検出する(画像変化を検出する)待機状態の画像処理の開始を要求し、OSから画像変化を検出した旨の通知が来るまで待機状態に入る。一方のOS側は、アプリケーションから、待機状態の画像処理の開始を要求されると、CMOSイメージセンサ73から低解像度画像を取り込み、これを入力とする待機状態の画像処理を開始する。
この待機状態の画像処理は、CMOSイメージセンサ73から取得する画像の変化を検出する処理(以下の説明では、「変化検出処理」と称する場合がある)であり、様々な例が考えられる。例えば、アプリケーションで高度な顔認識処理をする場合、この前処理として、人が映っていない期間(アイドル状態にできる期間)を検出するための画像処理が考えられる。本実施形態の情報処理装置1が、監視カメラのような固定型カメラか、あるいは、メガネ型ウェアラブル機器の非固定型カメラでもこれを装着している人が静止しているような場合、待機状態の画像処理の画像処理アルゴリズムの例として、背景画像などの人が入ってくる前の変化がない期間の画像(CMOSイメージセンサ73による撮像で得られた画像)と、CMOSイメージセンサ73から取得できる現在の画像との差分を計算して変化を検出することで、現在の画像に人が映っているか否かを検出することができる。背景画像とは、背景差分法などで一般的に利用されるさまざまな種類のものであってよく、一枚の画像であってもよいし、変化がない期間の複数の入力画像の平均画像でもよいし、平均的な動作や変化を計算しモデル化した画像であってもよいし、入力される画像の多くの画素で値が変化するような場合などに再設定される画像などであってもよいのは言うまでもない。あるいは、CMOSイメージセンサ73から取得できる現在の画像の中に肌色が存在するかを調べることで、当該画像に人が映っているか否かを検出することもできる。また、アプリケーションでバーコードの内容を読み取る高度な画像処理を実行する場合、この前処理として、バーコードが映っていない期間(アイドル状態にできる期間)を検出するための画像処理が考えられる。本実施形態の情報処理装置1がメガネ型ウェアラブル機器の非固定型カメラやスマートフォンなどのカメラ応用で、撮像により得られた画像に映っているバーコードを検出するような場合、待機状態の画像処理アルゴリズムの例としては、例えば、CMOSイメージセンサ73から取得できる現在の画像の中に、バーコードの特徴を表す濃淡の変化が大きい部分が存在するか否かを検出することで、現在の画像にバーコードが存在するか否かを検出することができる。メガネ型ウェアラブル機器やカプセル型の内視鏡などCMOSイメージセンサ73自体が移動する場合は、背景画像と差分を取ることで背景画像を入力した時点から移動したか否かを判定するような処理であってもよい。また、内視鏡のように例えば側方360度の画像が取得できるような場合は、どの方向に高解像度で撮像し保存しておきたいものが写っているのか(撮像目標がどの方向にあるのか)判定するような処理も考えられるし、さらにその方向の画像に変化があるかをさらに検出する処理であってもよい。
また、待機状態の画像処理では、アプリケーション側の高度な画像処理に必要な高解像度画像を利用する必要はない。低消費電力状態にできる期間を可能な限り確保するためのアイドル状態を検出することが可能な範囲であれば、解像度をいくらでも低くすることができる。低解像度画像は、イメージセンサ73が低解像度で撮像したものでもよいし、イメージセンサ73から入力された画像をイメージセンサコントローラ104で低解像度画像に変換したものを用いてもよい。解像度を低くできれば、計算量が減ることにより処理時間を短くできる。また、イメージセンサ73が低解像度で撮像し、それによって高いフレームレートを利用すれば(例えば、高解像度での撮像時は30fpsを利用し、低解像度での撮像時は120fpsを利用する)、イメージセンサ73からSoC10やメインメモリ50のバッファまでの画像データ転送時間を短くできるので、撮像で得られた画像を用いた処理を早く開始できるので待機時の画像処理に要する時間を短くすることができる。さらに、単純に計算量が減ったりするだけでなく、後述の他の実施形態で説明するように一般的に容量の少ない内部メモリ102などを利用し易くなるのでさらに低消費電力化できる。また、後述の他の実施形態で説明するように、内部メモリ(ローカルメモリ)102上では電力効率が高いNEONなどを利用できるようになるのでアクセラレータ103の効率的な利用を促進する。また、後述の他の実施形態で説明するように待機状態の画像処理をマイコンにオフロードする際にはマイコンの負荷を減らすことができるのでよりローパワーなマイコンを利用できる。さらに、他の実施形態で説明するように、待機状態の画像処理をCMOSイメージセンサ73の内部で実行する際にバッファが小さくて済むので実現しやすくなる。以上のように、待機状態の画像処理に用いられる画像の解像度を、アプリケーションの画像処理に用いられる画像の解像度よりも低くする、あるいはフレームレートを高くする(あるいはその両方を行う)ことで、アプリケーションから分離して変化検出処理を行うフレームワークにおける様々な仕掛けとの連携を高める効果があり、変化検出処理の処理時間を大幅に削減し、情報処理装置1を低消費電力状態に出来る期間を最大化できる。
また、待機状態の画像処理では、アプリケーションが必要とするような鮮明な画像を利用する必要がない。変化の有無を検出できる範囲であれば、不鮮明な画像を用いてもよく、変化を検出した場合にはアプリケーション側が必要とする鮮明な画像を改めて取得し直せばよい。鮮明な画像を取得するためにCMOSイメージセンサ73の初期化処理などに時間が掛かるようであれば、初期化処理の時間(以下、「初期化時間」と称する場合がある)を、鮮明な画像を取得するのに必要な時間よりも短い時間に設定して不鮮明な画像を利用することで、変化検出処理を短時間で実行できる。これには、例えば、従来は破棄していた鮮明な画像が取得できるまでに入力されるフレーム(画像)を変化検出処理に利用したり、オートフォーカスをしないように設定しその状態で撮像される画像を利用したり、十分な明るさがない状態で撮像したり、画像の入力が開始されるまでの時間が短い撮像モードを利用するなどが含まれる。
要するに、本実施形態の情報処理装置1において、イメージセンサ73の電力は、画像の入力時には第2電力であり、画像の入力時以外は第2電力よりも低い第3電力であり、第1の画像(この例では「低解像度画像」)の変化がない期間においては、イメージセンサ73は、画像の入力に掛かる時間が第1時間の入力を行い、第1の画像の変化があった場合は、イメージセンサ73は、画像の入力に掛かる時間が第2時間の入力を行い、第1時間は第2時間よりも短いという形態であってもよい。また、例えば第1の画像の変化がない期間においては、第1の画像を入力する際の入力要求処理が開始されてから第1の画像の入力処理が開始されるまでの時間は第3時間であり、第1の画像の変化があった場合は、第2の画像(この例では「高解像度画像」)を入力する際の入力要求処理が開始されてから第2の画像の入力処理が開始されるまでの時間は第4時間であり、第3時間は第4時間よりも短いという形態であってもよい。
以上のようにして、低消費電力状態にできるアイドル期間を長く確保することができる。このような待機状態の画像処理で変化が検出されると、その旨をアプリケーションに通知し、アプリケーション側の画像処理に必要な高解像度画像を撮像して渡し、アプリケーションに制御を移す。そして、アプリケーションは、顔認識処理やバーコードの内容を読み取る処理、あるいは画像をストレージデバイス40などに保存・記録する処理やネットワークデバイス60を介して転送する処理などのアプリケーション独自の画像処理を行う。
以上のように、CMOSイメージセンサ73から順次に取得する画像に変化が現れない期間(画像変化の無い期間)においては、アプリケーションの高度な画像処理を上記のような軽量な前処理に置き換えることで、人やバーコードなどの処理すべき対象物が画像に映っていないときまでアプリケーションの画像処理を実行させ続ける必要がなくなり、画像変化が無い場合には、情報処理装置1を低消費電力状態にできる期間を最大化できる。これにより、一層の低消費電力化を実現できる。待機状態の画像処理に用いられるアルゴリズムは、背景画像との差分を計算するような多くのアプリケーションで共通に利用できるものや、アプリケーションに固有のものでもよく、様々なものがあり、ここに示した限りでない。また、本実施形態のフレームワークにより、多くのアプリケーションで共通に利用できる変化検出処理は、アクセラレータ103やSIMDエンジン115などのアクセラレータに対して最適化された実装をOS内に用意しておくことが可能で、アプリケーションから容易に最適化された実装とそれを用いた変化検出処理を利用することができる利点もある。OS内で変化検出処理を実行するとユーザ空間などへのデータコピーの回数を減らせるなどの利点もある。
図4に戻って説明を続ける。図4に示す時刻T2では、待機状態の画像処理の結果、画像変化を検出しなかったので、即座に情報処理装置1全体を消費電力が極めて低い低消費電力状態に明示的に遷移させる。具体的には、SoC10をDEEP SLEEPモードに遷移させ、CMOSイメージセンサモジュール70を省電力モードに遷移させ、メインメモリ50が揮発性メモリの場合は省電力モード(例えばセルフリフレッシュモード等)に遷移させ、不揮発性メモリの場合は電力供給を停止させる。低消費電力状態のまま一定時間経過するのを待った後、各々を省電力モードから復帰させ、再び待機状態の画像処理を実行する。以上の一連の処理を、待機状態の画像処理で画像変化が検出されるまで繰り返す。
情報処理装置1全体を消費電力が極めて低い低消費電力状態へ高速に遷移させる方法の例を示す。まず、Video for Linux Two(V4L2)などのビデオキャプチャをするLinuxのフレームワークなどのシーケンスでは、画像入力のストリーム処理を開始してから、入力される画像を用いた画像処理を行い、画像処理が完了してからストリーム処理を停止する。しかし、これでは第1の画像処理中もイメージセンサが動作し続けてしまうので、本実施形態では、画像入力のストリーム処理を開始し、必要な画像(例えば1枚)だけ入力し終えたらストリーム処理を停止し、そのあとで入力された画像を用いて第1の画像処理を実行するというシーケンスに変換することで第1の画像処理を実行中でイメージセンサ73の画像入力が必要ない時に(画像入力後すぐに)イメージセンサ73を省電力モードに設定あるいは停止させることで省電力化する。通常、カメラなどではユーザが連写を要求することがあるのでこのような制御はできないが、本実施形態の基本動作は、画像を入力して変化を検出しない場合は待つことが決まっているのでこのような積極的な省電力化が可能になる。また、キャプチャ処理の場合、連続して画像を入力するため、入力処理を効率よくするためにダブルバッファなどを利用することがあるが、画像を1枚利用して変化を検出する場合には、ダブルバッファに画像が2枚入力されるまで待たずに、1枚入力されたら割り込みが発生するように設定し、1枚入力されたら即座にイメージセンサ73やIPUを停止させる。イメージセンサ73の停止が完了するのを待たずにIPUを先に停止させるなどの操作を積極的に行ってもよい。
要するに、情報処理装置1は、第1の画像(この例では「低解像度画像」)の変化がない場合は第1電力で次の第1の画像の入力を待ち、第1電力は、第1の画像の変化を判定する第1の処理(この例では「待機状態の画像処理」)を実行しているときの電力よりも低い。
次に、時刻T4で、待機状態の画像処理の結果、画像変化が検出されると、アプリケーションの画像処理に必要な高解像度画像をCMOSイメージセンサ73から取得し直し、画像変化がOS側で検出されるのを時刻T1から待っているアプリケーションに、画像変化を検出した旨を通知するとともに、取得し直した高解像度画像を渡し、制御をアプリケーションに移す。時刻T4からは、アプリケーションがOS側から受け取った高解像度画像を利用して顔認識処理などのアプリケーション独自の画像処理を行う。時刻T5に、アプリケーションの画像処理が完了すると、再びアプリケーションは、OS側に対して、環境変化やイベントを表す画像変化を検出する待機状態の画像処理の開始を要求し、上述した一連の処理が繰り返される。図4の点線は、本方式を用いずに、常時アプリケーションの高度な画像処理を実行し続けた場合の消費電力を示し、図4の実線は、本方式を用いた場合の消費電力を示している。図4の点線が示す消費電力と実線が示す消費電力との差分が、本方式によって削減できる消費電力に相当する。なお、図4では、アプリケーションの画像処理をした場合に掛かる1回分の時間に1回の待機状態の画像処理を実行しているが、この限りではなく、待機状態の画像処理が何回行われてもよい。このように、本実施形態の構成によれば、従来よりも短い間隔でこまめに多くの画像を処理することができる。そのため、画像変化に素早く反応できるので(応答性を高めることができるので)、認識能力・変化検出能力も高くすることができる。このように、情報処理装置1のユーザビリティを高めることができ、さらにこれを少ない消費電力で実現できることが分かる。なお、図4は、あくまで一例でありこの限りではない。
図5は、本実施形態の情報処理装置1に搭載されたOSによって提供されるイメージセンサ管理部120の機能構成の一例を示す図である。イメージセンサ管理部120は、例えばSoC10上で動作するOSに含まれるデバイスドライバ(CMOSイメージセンサモジュール70のデバイスドライバ)などの形態で実施される。図5の例では、イメージセンサ管理部120は、第1画像処理部121と、待機状態制御部122と、待機状態電力制御部123と、イメージセンサ制御部124とを有する。イメージセンサ制御部124は、CMOSイメージセンサモジュール70(CMOSイメージセンサ73)を制御してI2Cなどのインタフェース経由でレジスタの設定や画像(CMOSイメージセンサ73による撮像で得られた画像)のCSIなどのインタフェース経由での取得などを行う。また、図5に示すように、アプリケーションは、アプリケーション独自の画像処理(以下の説明では、「第2の画像処理」と称する場合がある)を実行する第2画像処理部130を有している。本実施形態では、アプリケーションと、OS内のイメージセンサ管理部120とが連携して、情報処理装置1の低消費電力化を実現する。
第1画像処理部121は、待機状態の画像処理を行う。以下の説明では、待機状態の画像処理を「第1の画像処理」と称する場合がある。第1画像処理部121は、イメージセンサ制御部124がイメージセンサ73から取得した画像を用いて、アプリケーション側の高度な画像処理(以下の説明では、「第2の画像処理」と称する場合がある)の実行の可否を決定するための第1の画像処理を実行する。第1の画像処理(この例では請求項の「第1の処理」に対応)は、第2の画像処理(この例では請求項の「第2の処理」に対応)よりも処理量が少ない、あるいは消費電力が小さい処理である。
要するに、情報処理装置1は、イメージセンサ73から入力する第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)の結果、第1の画像の変化を検出しなかった場合は、次の第1の画像の入力を待ち、第1の画像の変化を検出した場合は、第2の処理(この例では「第2の画像処理」)を実行し、第1の処理を実行するときの電力は、第2の処理を実行するときの電力よりも小さい。また、情報処理装置1は、第1の画像の変化がない場合は第1電力で次の第1の画像の入力を待ち、第1電力は、第1の画像の変化を判定する第1の処理を実行しているときの電力よりも低い。
また、本実施形態の情報処理装置1は、イメージセンサ73から入力する第1の画像の対象物を認識する第1の処理(この例では「第1の画像処理」)の結果、対象物を認識しなかった場合は、次の第1の画像の入力を待ち、対象物を認識した場合は、第1の画像よりも解像度の高い第2の画像をイメージセンサ73から入力し、第2の画像を用いた第2の処理(この例では「第2の画像処理」)を実行する形態であってもよい。また、本実施形態の情報処理装置1は、イメージセンサ73から入力する第1の画像の対象物を認識する第1の処理の結果、対象物を認識しなかった場合は、次の第1の画像の入力を待ち、対象物を認識した場合は、第2の処理を実行し、第1の処理を実行するときの電力は、第2の処理を実行するときの電力よりも小さい形態であってもよい。この場合、第2の処理に用いられる第2の画像の解像度は、本実施形態のように第1の画像よりも高くてもよいし、第1の画像と同じ解像度であってもよい。
本実施形態では、第1画像処理部121は、第2の画像処理に用いられる画像よりも解像度が低い画像(低解像度画像)をイメージセンサ制御部124に取得させ、その取得させた低解像度画像を用いて第1の画像処理を実行する。なお、画像の解像度は第1の画像処理と第2の画像処理で同じであってもよく、その場合は、第1の画像処理で利用した画像をそのまま第2画像処理で利用すればよく、第2の画像処理のために画像を取得しなおす必要はない。これも他の実施例についても同様である。
なお、第1の画像処理は、イメージセンサ制御部124が取得した画像の変化を検出するための処理であり、第1の画像処理によって、イメージセンサ制御部124が取得した画像の変化が検出された場合は、第2の画像処理の実行条件を満たすことになる。ここでは、イメージセンサ制御部124が取得した画像の変化を検出するための処理には、例えばフレーム間の差分を計算して画像変化を検出する処理だけでなく、イメージセンサ制御部124が取得した画像に特定の対象物(例えばバーコード等)が映っているか否かを検出するための処理も含まれる。例えば第1の画像処理が、イメージセンサ制御部124が取得した画像に特定の対象物(例えばバーコード等)が映っているか否かを検出するための処理である場合、この第1の画像処理によって、イメージセンサ制御部124が取得した画像に特定の対象物が映っていることが検出された場合は、第2の画像処理の実行条件を満たすことになる。
待機状態制御部122は、イメージセンサ管理部120の動作を統括的に制御する。本実施形態では、待機状態制御部122は、第1の画像処理の結果が、第2の画像処理の実行条件を満たしている場合(画像変化が検出された場合)は、第2画像処理部130に第2の画像処理を実行させる制御を行う。本実施形態では、待機状態制御部122は、第1の画像処理の結果が、第2の画像処理の実行条件を満たしている場合、第2の画像処理に必要な解像度の画像(高解像度画像)をイメージセンサ制御部124に取得させ、その取得させた画像と、第2の画像処理の実行条件を満たすことを示す情報(画像変化を検出したことを示す情報)とを第2画像処理部130(アプリケーション)に通知する。ここでは、この通知制御が、第2画像処理部130に第2の画像処理を実行させる制御に相当するが、第2画像処理部130に第2の画像処理を実行させる制御の形態はこれに限られるものではない。なお、この例では、待機状態制御部122は、「実行制御部」に対応していると考えることができる。
また、本実施形態では、待機状態制御部122は、アプリケーションからの指定に応じて、予め第1画像処理部121に用意されている複数種類の画像処理アルゴリズムのうちの少なくとも1つを、第1の画像処理に用いる画像処理アルゴリズムとして設定する制御を行う。この例では、待機状態制御部122は、「設定制御部」に対応していると考えることができる。図6の例では、第1画像処理部121には、3種類のアルゴリズムが予め用意されており、それぞれに割り当てられるアルゴリズム識別子(図6の例ではアルゴリズム1〜3)によって識別される。例えば図6に示すアルゴリズム1で識別されるアルゴリズムは、イメージセンサ制御部124が取得した画像に、特定の対象物(例えばバーコード等)が映っているか否かを検出するための処理のアルゴリズムであり、アルゴリズム2で識別されるアルゴリズムは、イメージセンサ制御部124が取得した画像の変化を検出するための処理のアルゴリズムであってもよい。
本実施形態では、OS(見方を変えれば情報処理装置1)は、アプリケーション(この例では第2画像処理部130であると考えてもよい)が、予め第1画像処理部121に用意されている複数種類の画像処理アルゴリズムのうちの少なくとも1つを、第1の画像処理に用いる画像処理アルゴリズムとして指定するためのインタフェース部(API)を有している。例えばアプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、CMOSイメージセンサモジュール70のデバイスドライバ内のイメージセンサ管理部120に対して、第1画像処理部121に用意されている様々な画像処理アルゴリズムからアプリケーションが利用したいものを指定することができる。アプリケーションは、所望のアルゴリズムを識別するアルゴリズム識別子(図6のアルゴリズム1〜3)を選択することで、当該アルゴリズム識別子で識別されるアルゴリズムを指定することができる。また、例えば、人とバーコードのような複数の種類の物体を対象とする高度な画像処理をするために、複数種類の変化などを検出する必要がある場合は、第1画像処理部121で利用するアルゴリズムとして、複数のアルゴリズムを指定することもできる。図6に示すように、例えばアプリケーションAは、図6のアルゴリズム1とアルゴリズム2を指定することもできる。また、画像処理アルゴリズム毎にCMOSイメージセンサ73から取得する画像(第1の画像処理に用いられる画像)の解像度のデフォルト値(例えば96x128)やCMOSイメージセンサ73の初期化の待ち時間(初期化時間)などが定義されているが、デフォルト値以外の値を利用するために、OSは、これらを指定または設定するためのインタフェース部(API)も有している。
また、待機状態制御部122は、アプリケーションからの要求に応じて、第1の画像処理に用いる画像処理アルゴリズムを外部から取得することもできる。この例では、待機状態制御部122は、「取得制御部」に対応していると考えることができる。また、この例では、OSは、アプリケーションが、第1の画像処理に用いる画像処理アルゴリズム(第1画像処理部121が有していない独自のアルゴリズム)を第1画像処理部121に取得させるためのインタフェース部(API)を有している。このインタフェース部は、例えばアプリケーションが独自に作成した、第1の画像処理の画像処理アルゴリズムをOS内にダウンロードするための手段として機能する。これにより、アプリケーションに適した画像処理アルゴリズムが予めOS内に用意されていない場合でも、アプリケーションに適した画像処理アルゴリズムをダウンロードし、そのダウンロードした画像処理アルゴリズムを用いて第1の画像処理を実行することができる。ここで、アプリケーションは、第2の画像処理を行わず、第1の画像処理に用いる画像処理アルゴリズムの追加や、イメージセンサ管理部120のバージョンのアップグレードを行うためだけのソフトウェアなどであってもよい。他の実施形態においても同様である。
アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、CMOSイメージセンサモジュール70のデバイスドライバ内のイメージセンサ管理部120に対して、独自に作成した画像処理アルゴリズムを第1画像処理部121にダウンロードさせることができる。
図6の例では、アプリケーションBが、独自に定義した画像処理アルゴリズム4を第1画像処理部121にダウンロードさせたことを示している。第1画像処理部121が、アプリケーションからの要求に応じて、予め用意された画像処理アルゴリズム以外の画像処理アルゴリズムをダウンロードした場合は、待機状態制御部122は、そのダウンロードした画像処理アルゴリズムを、第1の画像処理に用いる画像処理アルゴリズムのリストに追加登録し、追加登録した画像処理アルゴリズムを識別するアルゴリズム識別子(図6の例ではアルゴリズム4)をアプリケーションに通知する。以降、アプリケーションは、その通知されたアルゴリズム識別子を利用して、当該アルゴリズム識別子で識別されるアルゴリズムを指定することができる。
図5に戻って説明を続ける。待機状態電力制御部123は、情報処理装置1の省電力モードを制御する。本実施形態では、待機状態電力制御部123は、第1の画像処理の結果が、第2の画像処理の実行条件を満たしていない場合は、第1の画像処理を実行可能な第1状態よりも消費電力が小さい第2状態(低消費電力状態)に情報処理装置1を遷移させる制御を行う。この例では、待機状態電力制御部123は、第1の画像処理の結果が、第2の画像処理の実行条件を満たしていない場合は、情報処理装置1の各部に対する電力供給を制御する電力管理部140に対して、情報処理装置1を第2状態に遷移させるように指示する。なお、この例では、待機状態電力制御部123は、「電力制御部」に対応していると考えることができる。
図7は、アプリケーションによる処理の一例を示すフローチャートである。図7に示すように、まず、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどの手段を介して、イメージセンサ管理部120(デバイスドライバ)に対して、必要な様々な初期化処理を要求する(ステップ401)。なお、アプリケーションが、イメージセンサ管理部120の機能(OSの機能)を呼び出すための手段は以降も同様である。例えば、アプリケーションは、CMOSイメージセンサモジュール70のデバイス初期化処理の他、前述したように、所望の画像処理アルゴリズムを識別するアルゴリズム識別子を指定することで、その指定したアルゴリズム識別子で識別される画像処理アルゴリズムを、第1の画像処理に用いる画像処理アルゴリズムとして設定することを要求することができる。また、例えば図6の例では、画像処理アルゴリズム毎に、CMOSイメージセンサ73から取得する画像(第1の画像処理に用いられる画像)の解像度のデフォルト値(例えば96x128)やCMOSイメージセンサ73の初期化の待ち時間(例えば数ms)などが予め定義されているが、デフォルト値から変更する必要があれば、その変更後の値を指定することで、その変更後の値に応じた設定を行うことを要求することもできる。また、例えばアプリケーションが、予め第1画像処理部121に用意された画像処理アルゴリズム以外の独自定義の画像処理アルゴリズムを第1の画像処理に用いる画像処理アルゴリズムとして利用したい場合は、イメージセンサ管理部120に対して、これをダウンロードする処理を要求することもできる。また、アプリケーションは、第2の画像処理に必要な画像の解像度(例えば960x1280)や、第1の画像処理を繰返し実行する際の時間間隔などをイメージセンサ管理部120に通知することもできる。
ステップS401の初期化処理の要求が完了すると、アプリケーションは、イメージセンサ管理部120に対して、ステップS401で指定した画像処理アルゴリズムでの第1の画像処理の実行を要求する(ステップS402)。
ステップS402の後、アプリケーションは、イメージセンサ管理部120から、画像変化を検出した旨の通知(第2の画像処理の実行条件を満たすことを示す情報の通知であると考えることもできる)を待つ(ステップS403)。アプリケーションは、イメージセンサ管理部120から、画像変化を検出した旨の通知を受けると、これと同時に受け取る高解像度画像を利用して、第2画像処理部130でアプリケーション独自の第2の画像処理を実行する(ステップS404)。第2の画像処理終了後、アプリケーションは、再びステップS402以降の処理を繰り返す。なお、アプリケーションが通知を受けた後も画像変化検出の処理が継続される形態でもよく、その場合は、ステップS404終了後にステップS403に戻ってもよい。
図8は、上述のアプリケーションによる処理に連動するイメージセンサ管理部120による処理の一例を示すフローチャートである。図8のフローは、イメージセンサ管理部120は、図7のステップS401のアプリケーションからの要求を受けて、初期化処理を完了していることを前提としている。イメージセンサ管理部120が実行する初期化処理では、前述したアプリケーションから指定された初期化処理の設定内容を受信した待機状態制御部122が、その受信した設定内容に基づく情報を、イメージセンサ管理部120内に記録する、あるいは、イメージセンサ73のレジスタなどに設定していく。例えば、アプリケーションから所定のアルゴリズム識別子を指定された場合、待機状態制御部122は、当該アルゴリズム識別子で識別される画像処理アルゴリズムが指定されたことを、待機状態制御部122内に記録しておく。また、アプリケーションから指定された第1の画像処理に用いられる画像の解像度や初期化の待ち時間がデフォルト値と異なる場合、待機状態制御部122は、これを第1画像処理部121に反映する制御を行う。また、例えばアプリケーションから、予め第1画像処理部121に用意されたもの以外の独自定義の画像処理アルゴリズムのダウンロードを要求された場合、待機状態制御部122は、その要求された画像処理アルゴリズムをダウンロードして第1の画像処理に用いる画像処理アルゴリズムのリストに追加登録し、追加登録したアルゴリズム識別子をアプリケーションに通知する。以降、アプリケーションは、通知されたアルゴリズム識別子を利用して、当該アルゴリズム識別子で識別されるアルゴリズムを指定することができるようになる。また、例えばアプリケーションから、アプリケーションが実行する第2画像処理に用いる画像の解像度が指定された場合、待機状態制御部122は、その指定された情報を待機状態制御部122内に記録する。また、アプリケーションから、第1の画像処理を繰返し実行する際の時間間隔が指定された場合、待機状態制御部122は、その指定された情報を元にタイマー情報を設定し、その設定したタイマー情報を、低消費電力状態から復帰させる制御を行う待機状態電力制御部123に記録しておく。
以下、図8のフローチャートを説明する。まず、図7のステップS402において、アプリケーションが、ステップS401で指定した画像処理アルゴリズムでの第1の画像処理の実行を要求すると、この要求を受けた待機状態制御部122は、指定されたアルゴリズム識別子を用いて、当該アルゴリズム識別子で識別される画像処理アルゴリズムを用いる第1の画像処理を実行することを第1画像処理部121に対して指示する。この指示を受けた第1画像処理部121は、指定されたアルゴリズム識別子で識別される画像処理アルゴリズムを用いる第1の画像処理を実行する(ステップS501)。より具体的には、第1画像処理部121は、指定された画像処理アルゴリズムに設定されている解像度や初期化待ち時間をイメージセンサ制御部124に通知し、画像の取得を指示する。この例では、画像処理アルゴリズムに設定されている解像度は、第2の画像処理に必要な解像度よりも低い解像度に設定され、画像処理アルゴリズムに設定される初期化待ち時間は、鮮明な画像を得るのに必要な時間よりも短い時間に設定されている。第1画像処理部121からの指示を受けたイメージセンサ制御部124は、第1画像処理部121から通知された情報(解像度や初期化待ち時間)を、既に設定されていない場合はCMOSイメージセンサ73のレジスタに設定するなど必要な初期化処理を行い、低解像度画像を取得する。この際に、鮮明な画像の取得が必要な場合には初期化後に十分な時間を待つ必要があるが、この例では、画像変化の検出が可能な画像を取得できればよいので、通知された時間(第2の画像処理で利用する高解像度画像を取得する時間より短い時間)だけ待つようにする。第1画像処理部121は、イメージセンサ制御部124が取得した低解像度画像を用いて、指定された画像処理アルゴリズムを用いる第1の画像処理を行う。
次に、第1の画像処理の結果、画像変化が検出された場合(ステップS502:Yes)、処理はステップS506へ進む。一方、画像変化が検出されなかった場合(ステップS502:No)、待機状態制御部122は、待機状態電力制御部123に対して、情報処理装置1を低消費電力状態に遷移させるように指示する(ステップS503)。この例では、第1の画像処理に用いる画像処理アルゴリズムは、画像変化を高速に検出できるように設計・実装されているので、情報処理装置1全体を低消費電力状態にできる期間が確保できる。待機状態制御部122からの指示を受けた待機状態電力制御部123は、例えば、CMOSイメージセンサモジュール70を第2省電力モードに設定し、SoC10をDEEP SLEEPモードに遷移させるように電力管理部140に指示する。この際に、待機状態電力制御部123に記録されている、第1の画像処理を繰返し実行する際の時間間隔を示す情報を利用して、DEEP SLEEPモードから復帰する時刻をタイマーに設定しておき、タイマーで設定された時刻まで待つ(ステップS504)。このアイドル期間中は、情報処理装置1を非常に消費電力が低い状態にすることができ、第1の画像処理とアイドル期間を繰返す待機状態の平均消費電力を大幅に削減できる。そして、タイマイベントをトリガにSoC10はDEEP SLEEPモードから復帰し、その旨が待機状態電力制御部123に通知される(ステップS505)。低消費電力状態からの復帰後は、ステップS501以降の処理が繰り返される。
一方、ステップS506では、待機状態制御部122は、待機状態制御部122に記録されている第2の画像処理に必要な解像度の画像(高解像度画像)を取得するようにイメージセンサ制御部124に指示する。この指示を受けたイメージセンサ制御部124は、高解像度画像を取得するためにイメージセンサ73のレジスタ等の再設定を行い、高解像度画像をイメージセンサ73から取得し、その取得した高解像度画像を待機状態制御部122へ渡す(I2Cなどのインタフェース経由で再設定するため変化検出時には同インタフェースの信号線の電圧情報から観測できる)。待機状態制御部122は、アプリケーションに対して、画像変化を検出したことを通知し、イメージセンサ制御部124に取得させた高解像度画像を、それを必要としている第2画像処理部130へ渡す(ステップS506)。そして、待機状態制御部122は、アプリケーションがイメージセンサ管理部120に対して第1の画像処理の再開を呼び出す(実行を要求する)まで待ち(ステップS507)、呼び出されたらステップS501以降の処理を繰り返す。
以上のように、本実施形態では、アプリケーションと、OS内のイメージセンサ管理部120とが連携して、情報処理装置1の低消費電力化を実現する。要するに、本実施形態の情報処理装置1は、オペレーティングシステム(OS)が実行する処理部と、アプリケーションとを備える情報処理装置であって、処理部は、アプリケーションから画像入力要求を受けると、イメージセンサ73から第1の画像を入力して、第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)を実行し、第1の処理の結果、第1の画像の変化を検出しなかった場合は、次の第1の画像の入力を待ち、第1の処理の結果、第1の画像の変化を検出した場合は、第1の画像よりも解像度の高い第2の画像をイメージセンサ73から入力して、アプリケーションへ渡し、アプリケーションは、処理部から渡された第2の画像を用いた第2の処理(この例では「第2の画像処理」)を実行する形態であると考えることができる。
また、本実施形態の情報処理装置1は、イメージセンサ73から入力する第1の画像の変化がない場合は、次の第1の画像の入力を待ち、変化があった場合は、第1の画像よりも解像度の高い第2の画像をイメージセンサ73から入力し、その入力した第2の画像を出力(この例ではアプリケーションへ出力)する形態であると捉えることもできる。
さらに、本実施形態の情報処理装置1は、アプリケーションから、第1の画像よりも解像度の高い第2の画像の入力要求を受けてから、イメージセンサ73から繰り返し第1の画像を入力し、第1の画像の変化があった場合にイメージセンサ73から第2の画像を入力してアプリケーションへ渡すまでの間に、イメージセンサ73の電力は、少なくとも、画像を入力しているときの第2電力と、第2電力よりも小さい第3電力とに変化する形態であると捉えることもできる。
以上に説明したように、本実施形態では、CMOSイメージセンサ73から取得する画像の変化がない期間においては、アプリケーションの高度な画像処理(第2の画像処理)を、第2の画像処理よりも処理量が少ない画像処理であって、画像変化を検出するための第1の画像処理(第2の画像処理の実行の可否を決定するための第1の画像処理)に置き換える。これにより、本来不必要な第2の画像処理を実行する時間を削減し、情報処理装置1を低消費電力状態にできる期間を最大限確保することができるので、一層の低消費電力化を実現できる。
なお、本実施形態では、イメージセンサ73を制御するためにSoC10を利用する例を示したが、例えばマイコンなどで同様の省電力制御をしてもよく、この限りではないのは言うまでもない。これは他の実施例についても同様である。
(第2実施形態)
本実施形態では、第1の画像処理に用いられる画像を取得する場合と、第2の画像処理に用いられる画像を取得する場合とで、イメージセンサ73の初期化時間が異なる。ここで初期化とは、前述した通り、イメージセンサ73を省電力モードから復帰させる際に毎回行うレジスタ等の再設定の処理を含んでいる。前述したように、待機状態の画像処理では、アプリケーションが必要とするような鮮明な画像を利用する必要がない。変化の有無を検出できる範囲であれば、不鮮明な画像を用いてもよい。待機状態の画像処理に用いられる画像として、不鮮明な画像を採用する場合、イメージセンサ73の初期化処理の待ち時間(初期化時間)を短くして、例えば本来であればデバイスドライバ側やイメージセンサ73側で待つなどすることで破棄して利用しない最初の何枚かのキャプチャ画像を利用することで、アイドル状態の期間をより長く確保することができる。一方、アプリケーションの画像処理には、鮮明な画像が必要な場合が一般的なので、イメージセンサ73の初期化時間は、待機状態の画像処理に用いられる画像を取得する場合に比べて長くする必要がある。そのため、待機状態の画像処理で利用する画像を取得する場合と、アプリケーション側に渡す画像を取得する場合とで、イメージセンサ73の初期化時間が異なる。例えば、I2Cなどのインタフェース経由で設定するため同インタフェースの信号線の電圧情報で同設定が観測されてから、CSIなどの画像が転送されるインタフェースで転送される連続した画像データの枚数が第1の画像処理に用いられる画像と第2の画像処理に用いられる画像を取得する場合とで異なることなどが同インタフェースの信号線の電圧情報から観測できる。
本実施形態では、イメージセンサ制御部124は、第1の画像処理に用いられる画像を取得する場合のイメージセンサ73の初期化時間を、第2の画像処理に用いられる画像を取得する場合のイメージセンサ73の初期化時間よりも短い値に設定する。
また、本実施形態では、アプリケーションが、イメージセンサ73の初期化時間を指定するためのインタフェース部を備える。この例では、OSは、アプリケーションが、イメージセンサ73の初期化時間を指定するためのインタフェース部を備えている。例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、イメージセンサモジュール70のデバイスドライバ内のイメージセンサ管理部120に対して、イメージセンサ73を初期化する時間を指定することができる。また、上記APIは、アプリケーションで独自の待機状態の画像処理アルゴリズムを開発する際にも利用可能である。ここでは、アプリケーションが、イメージセンサ73の初期化時間を指定するための手段の一例を示したがこの限りではない。イメージセンサ制御部124は、アプリケーションからの指定に応じて、イメージセンサ73の初期化時間を設定する。
(第3実施形態)
本実施形態では、アプリケーションが、第1の画像処理を実行する間隔を指定するためのインタフェース部を備える。待機状態制御部122(この例では「間隔設定制御部」に対応)は、アプリケーションからの指定に応じて、上記間隔を設定する。これにより、アプリケーションに適した時間間隔で待機状態の画像処理(第1の画像処理)を実行することができる。間隔の指定方法は任意であり、例えば1秒間に実行する回数を指定するなどの様々な方法で指定することができる。また、間隔の設定変更は任意のタイミングで指定することができる。これにより、アプリケーションの都合や周辺環境などの状態変化に応じて動的に間隔を変更することが可能になる。なお、周辺環境の状態変化を検出する方法は任意であり、本願明細書中に登場する他の様々なセンサを補助的に利用してもよい。これは他の実施例についても同様である。
例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、イメージセンサモジュール70のデバイスドライバ内のイメージセンサ管理部120に対して、上記間隔を指定することができる。
(第4実施形態)
本実施形態では、待機状態制御部122は、第1の画像処理の結果が、第2の画像処理の実行条件を満たしている場合は、第1の画像処理に用いられた画像のうち、第2の画像処理の実行条件を満たす領域の画像を少なくとも含み、かつ、第1の画像処理に用いられた画像よりも解像度が高い高解像度画像を、イメージセンサ制御部124に取得させてアプリケーションへ通知する。この例では、待機状態制御部122は、「実行制御部」に対応している。
例えば図9の(A)は、第1の画像処理の画像処理アルゴリズムが、バーコードが映っているか否かを検出する処理を示す場合を例示している。まず、アプリケーションが変化検出処理を要求する。この要求を受けて、第1画像処理部121は、CMOSイメージセンサ73から取得した(イメージセンサ制御部124に取得させた)低解像度画像を用いて、その低解像度画像にバーコードが映っているか否かを検出する処理(第1の画像処理)を行い、バーコードが映っていることを検知する。バーコードが映っていることを検知すると、画像の中でバーコードが存在する可能性が高い領域を求める。この例では、図の点線で示している検出領域に映っている可能性が高いと判断する。なお、複数のバーコードを検出した場合、検出領域は複数になってもよい。そして、待機状態制御部122は、全体の高解像度画像を取得し直し、画像変化を検知したことを、高解像度画像(この例では全体の高解像度画像)や検出領域を示す情報とともに第2画像処理部に通知する。つまり、この例では、待機状態制御部122は、イメージセンサ制御部124に取得させた高解像度画像(この例では全体の高解像度画像)と、当該高解像度画像のうち第2の画像処理の実行条件を満たしている領域を示す情報とをアプリケーションに通知していると考えることができる。アプリケーションは、高解像度画像と一緒に検出領域を示す情報(対象物体や変化などの位置情報)も受け取る。この例では、待機状態制御部122は、高解像度画像と、高解像度画像のうち第2の画像処理の実行条件を満たしている領域を示す情報とをアプリケーションに通知している。
また、例えば図9の(B)は、第1の画像処理の画像処理アルゴリズムが、人が映っているか否かを検出する処理を示す場合を例示している。まず、アプリケーションが変化検出処理を要求する。この要求を受けて、第1画像処理部121は、CMOSイメージセンサ73から取得した(イメージセンサ制御部124に取得させた)低解像度画像を用いて、その低解像度画像に人が映っているか否かを検出する処理(第1の画像処理)を行い、人が映っていることを検知する。人が映っていることを検知すると、さらに顔が映っている場所(検出領域)を検出し、検出領域だけを詳細に、第1の画像処理に用いられた画像よりも高解像度の画像で取得し直す。その際には、ズームの倍率の変更やレンズの向きや角度の変更など、検出領域だけを詳細に高解像度で取得し直すのに必要な再設定処理をしてもよい。そして、待機状態制御部122は、画像変化を検出したことを、検出領域の高解像度画像とともに第2画像処理部130に通知する。アプリケーションは、検出領域の高解像度画像を受け取り、その受け取った検出領域の高解像度画像を用いて、独自の高度な画像処理を行う。なお、例えば複数の人が検出された場合は、検出領域の高解像度画像は、それぞれの人を映した複数の画像であってもよい。
このために、本実施形態では、OSは、アプリケーションが、上記高解像度画像(全体の高解像度画像、検出領域の高解像度画像を含む)や、検出領域の高解像度画像などの取得した画像の数、などを取得するためのインタフェース部を備える。例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、高解像度画像(全体の高解像度画像)とその中の変化検出領域の座標などの位置情報や、変化検出領域の高解像度画像を得ることができる。なお、通知を待つAPIと結果の画像等を受け取るAPIは別であってもよいし、単一のAPIであってもよいのは言うまでもない。
(第5実施形態)
待機状態の画像処理で画像変化の有無を検出する場合、イメージセンサ73から取得可能な全体画像の必ずしもすべての領域で変化が起こるわけではない。そこで、本実施形態では、イメージセンサ制御部124は、第1の画像処理に用いられる画像として、イメージセンサ73から取得可能な全体画像のうちの一部の領域の画像を取得する。より具体的には、待機状態の画像処理の入力画像として、イメージセンサ制御部124は、全データを取り出さずにイメージセンサ73が有する部分読み出しや画像間引きの機能を利用して、より解像度が低い(解像度の合計が小さい)画像を取得する。これにより、イメージセンサモジュール70からSoC10に転送されるデータも削減され、転送時間が短くなる。そのため第1の画像処理の開始を早めることができる。また、解像度がさらに低くなるので、第1画像処理の実行時間も短くなり、変化検出処理を軽量化でき、アイドル期間をさらに長く確保することができる。また、解像度を低くできれば、後述の実施形態で説明するように、一般的に容量の少ない内部メモリ102などを利用できる可能性が高まるのでさらに低消費電力化できるし、後述の実施形態で説明するように待機状態の画像処理をマイコンにオフロードする際にはマイコンの負荷を減らすことができるので、よりローパワーなマイコンを採用できシステム全体を低消費電力化できるし、後述の実施形態で説明するように待機状態の画像処理をイメージセンサ73内部で実行する際にバッファが小さくて済むので、実現することが容易になる。
図10は、変化検出処理の対象となる領域(以下の説明では、「変化検出対象領域」と称する)の例を示す。図10では、イメージセンサ73から取得可能な全体画像(イメージセンサ73による撮像で得られる全体画像)のうち、太線で囲まれた領域が、変化検出対象領域を示している。図10の(A)では、変化検出対象領域は一つである。例えば、ドアから室内に入ってくる人を顔認識処理する監視カメラ応用などにおいては、変化検出時はドアノブ付近だけを見ておけばよいので、予め定められた位置に固定されたイメージセンサ73による撮像で得られる全体画像のうち、ドアノブ付近に対応する領域を、変化検出対象領域とすることが好適である。そして、変化検出後は、イメージセンサ73から画像全体を取得して顔認識処理をすればよい。
また、図10の(B)のように、イメージセンサ73による撮像で得られる全体画像のうち、対象物体が映り込む可能性が高い領域が、左右の両端(ここでは、左端の領域を第1対象領域、右端の領域を第2対象領域と称する)である場合は、イメージセンサ73による撮像で得られる全体画像のうち、第1対象領域および第2対象領域の2つの領域を変化検出対象領域とし、第1対象領域および第2対象領域の画像を、イメージセンサ73から部分的に読み出し、その低解像度画像を用いて画像変化を検出すればよい。また、図10の(C)のように、対象物体がどこから映り込むかは分からないが対象物体の大きさがある程度既知な場合などは、対象物体の幅よりも狭い間隔で間引いた領域のみを、変化検出対象領域としてイメージセンサ73から読み出せば、対象物体が検出されないことを防止しつつ(対象物体が検出されることを担保した上で)、変化検出処理を軽量化できる。なお、以上の例は、あくまで一例である。
変化検出対象領域は、アプリケーション側から設定することができる。本実施形態では、OSは、アプリケーションが、変化検出対象領域を指定するためのインタフェース部を備える。例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、イメージセンサモジュール70のデバイスドライバ内のイメージセンサ管理部120に対して、変化検出対象領域を指定することができる。
変化検出対象領域の設定は、イメージセンサ管理部120のイメージセンサ制御部124が、CMOSイメージセンサ73のレジスタに、水平方向の先頭位置と末尾位置と垂直方向の先頭位置と末尾位置などを示す情報を書き込む形式で行う。なお、変化検出対象領域は任意のタイミングで指定できるため、アプリケーションの都合や変化の状況などに応じて動的に変更することもできる。
図11は、変化検出対象領域を指定する場合の一例を示す図である。アプリケーションは、上記APIを利用して、変化検出対象領域を指定する。ここでは、図10の(B)の例を想定しており、イメージセンサ73から取得可能な全体画像の左右の2つの領域である第1対象領域と第2対象領域が指定されている。指定された変化検出対象領域は、第1画像処理部121に記録される。第1画像処理部121は、第1画像処理の実行が指示されると、記録された変化検出対象領域の取得の指示をイメージセンサ制御部124に指示し、イメージセンサ制御部124による取得処理が実行される。なお、第1画像処理の画像処理アルゴリズムごとに変化検出対象領域を設定することも可能である。
(第6実施形態)
本実施形態では、第1の画像処理を実行する間隔(以下の説明では、「実行間隔」と称する場合がある)が動的に変化する。より具体的には、待機状態制御部122は、第1の画像処理の結果に応じて、上記実行間隔を可変に設定する。例えば、人などの対象物体が映っていない、あるいは、動き(変化)のない場合には、第1の画像処理に用いられる画像の取り込み間隔(アイドル状態にできる期間)をさらに長くして、情報処理装置1全体を低消費電力状態にできる期間をさらに長くして省電力化することができる。この例では、待機状態制御部122は、画像変化が検出されなかった場合は、上記実行間隔を、画像変化が検出された場合に比べて長い値に設定することができる。この例では、待機状態制御部122は、「間隔設定制御部」に対応する。
実行間隔が動的に変化すると、情報処理装置1全体やCMOSイメージセンサモジュール70の消費電力も図12のように変化が観測できる。つまり、第1の画像処理を実行可能な第1状態、および、第1状態よりも消費電力が低い第2状態を含む待機状態の消費電力が異なり、これらの間隔が実行間隔に対応しており、この実行間隔が動的に変化することが観測できる。ここでは、待機状態は、アプリケーションによる第2の画像処理の実行待ちの状態であり、情報処理装置1が第2の画像処理を実行する状態とは区別される。
図12の例では、人などの対象物体が映っていない、あるいは、変化がないとき、あるいは組み合わせて利用する他のセンサなどの情報で変化がすぐには起きないことが分かるときなどは、画像の取り込み間隔を長く設定する。逆に、第1画像処理部121による第1の画像処理(待機状態の画像処理)で、例えばイメージセンサ73から取得した画像(この例では全体画像)のうち、左端の領域に人が映っていることを検出すると、実行間隔を短い値に設定して待機状態の画像処理を繰返す。この例では、第2の画像処理の実行条件は、イメージセンサ73による撮像で得られる全体画像のうち中央付近の領域に人が映っていることであるとする。人が映っている領域(変化領域)が画像の中央付近であれば、第2の画像処理の実行条件が成立するので、顔認識処理や人が中央に映っている状態の画像を記録しておくなどの第2の画像処理を実行する第2画像処理部130が要求する高解像度画像を取得し直し、第2画像処理部130に対して、全体画像の中央付近で人を検出したこと(第2の画像処理の実行条件が成立したこと)を通知し、取得し直した高解像度画像を渡す。このように、第1画像処理の画像処理アルゴリズムは、条件ごとに複数の実行間隔を持っていてもよい。例えば第1画像処理部121が待機状態の画像処理終了後に待機状態制御部122に結果を返す際に、同時に、その結果に応じた実行間隔を渡すように実装されていてもよい。対象物体が特定の領域(例えば中央付近の領域)に映った画像を取得し、情報処理装置1にローカルに録画する、あるいは、ネットワークデバイス60を介して外部装置へ転送するような応用では、本実施形態の構成を適用することで、消費電力を下げつつIoT/M2Mシステムやメガネ型のウェアラブル機器で自動的に保存容量や通信量を間引いて省電力化することもできるし余計なデータを減らして効率化する効果も得られる。
要するに、本実施形態の情報処理装置1は、第1の画像の変化がない場合は次の第1の画像の入力を第5時間待ち、第1の画像の変化があった場合は次の第1の画像の入力を第6時間待ち、第6時間は第5時間よりも短い形態とすることができる。
(第7実施形態)
本実施形態では、SoC10をDEEP SLEEPモードに積極的に遷移する際に、CMOSイメージセンサモジュール70の持つ複数の省電力モードをさらに動的に使い分けることでさらなる最適化を実現する。例えば、上述の第6実施形態でも述べた実行間隔に応じて、イメージセンサモジュール70の持つ複数の省電力モードを使い分けることができる。例えば、切換時間(ここでは、イメージセンサ73が画像の取得を行うことができない(撮像を行うことができない)第3状態(省エネ状態)と、イメージセンサ73が画像の取得を行うことが可能な第4状態(通常状態)とを切り換えるのに要する時間)が短い第1省電力モードと、停止させたオシレータ71を安定させる、あるいは、レジスタの初期化などで遷移/復帰時間が長く(切換時間が長く)切り換えに必要な消費電力は高いが待機電力はさらに低い第2省電力モードなどを有するような場合を考える。実行間隔が長い場合は待機電力が低い方が相対的に重要なので第2省電力モードを利用し、実行間隔が短い場合は切り換え時の消費電力が相対的に重要になるので第1省電力モードを利用する。この際の消費電力の推移は図13のように観測される。
つまり、実行間隔に応じて、第1の画像処理に要する時間が変化すると考えることができる。この例では、待機状態制御部122は、実行間隔に応じて、イメージセンサ73の切換時間を可変に設定する。より具体的には、待機状態制御部122は、実行間隔が閾値以上の場合は、アイドル期間(前述の第2状態)におけるイメージセンサ73の状態を第2省電力モードに設定する制御を行い、実行間隔が閾値を下回る場合は、アイドル期間におけるイメージセンサ73の状態を、第2省電力モードよりも切換時間の短い第1省電力モードに設定する制御を行うことができる。つまり、待機状態制御部122は、実行間隔が閾値以上の場合は、イメージセンサ73の切換時間を、実行間隔が閾値を下回る場合に比べて長い値に設定する。この例では、待機状態制御部122は、「切換時間設定部」に対応している。
(第8実施形態)
上述の第1実施形態で説明したように、DEEP SLEEPモードでは、キャッシュメモリ114への電力供給が停止される。そのため、DEEP SLEEPモードに遷移する際にはキャッシュライン上のダーティなデータをメインメモリ50に書き出すクリーン処理、DEEP SLEEPモードから復帰する際はインバリデート処理などのキャッシュに対する処理が必要となり、このキャッシュに対する処理を行うための時間と電力が必要となる。そこで、DEEP SLEEPモードの際に、キャッシュメモリ114への電力供給を停止せずにキャッシュ処理を省略する、待機電力は比較的高いが遷移時間が高速なDEEP SLEEPモードを第2DEEP SLEEPモードとして利用してもよい。これに対して、キャッシュメモリ114への電力供給を停止する、遷移時間は比較的遅いが待機電力はより低いDEEP SLEEPモードを第1DEEP SLEEPモードとする。
本実施形態では、図14に示すように、イメージセンサ管理部120は、キャッシュ電源制御判定部125をさらに有する。キャッシュ電源制御部125は、情報処理装置1全体が低消費電力状態(前述の第2状態)に遷移する際に、第1の画像処理に使用されるキャッシュメモリ114に対する電力の供給を継続するか否かを判定する。この例では、キャッシュ電源制御判定部120は、DEEP SLEEPモードに遷移する際に、第1DEEP SLEEPモードと第2DEEP SLEEPモードを動的に切り替える。
図15は、図8のステップS503において追加で実行される、キャッシュ電源制御判定部125による処理の一例を示すフローチャートである。この処理は、待機状態電力制御部123が、SoC10をDEEP SLEEPモードに遷移させるようとする際に開始される。まず、待機状態電力制御部123が、キャッシュメモリ114に対する電力の供給を継続するか否かの問い合わせを受信する(ステップS901)。次に、キャッシュ電源制御判定部125は、キャッシュメモリ114に対する電力供給を継続するか否かを判定する。つまり、キャッシュ電源制御判定部125は、第1DEEP SLEEPモードに切り替えるか第2DEEP SLEEPモードに切り替えるかを判定する(ステップS902)。次に、キャッシュ電源制御判定部125は、ステップS902の判定結果を待機状態電力制御部123に返す(ステップS903)。
待機状態電力制御部123は、キャッシュ電源制御判定部125からの判定結果を受け取ると、この情報を付加して、SoC10をDEEP SLEEPモードに遷移させるように電力管理部140に指示する。これにより、SoC10が適切なDEEP SLEEPモードに遷移できる。この処理は、DEEP SLEEPモードに遷移するたびに行ってもよいし、情報処理装置1の状態や周辺環境が変化する時だけなどと、様々なタイミングで実行することができる。
上記ステップS902の判定条件は、アプリケーションや利用シーンなどによって様々である。例えば、待機状態の画像処理を行っている時間間隔(前述の実行間隔)とキャッシュ電源制御判定部125に事前に記録されている閾値を比較して判定してもよい。実行間隔が長い場合は、アイドル時の低消費電力状態の消費電力が相対的に重要になる。実行間隔が短い場合は、低消費電力状態(第2状態)から、第1の画像処理を実行可能な状態(第1状態)への遷移回数が増えるので、遷移に必要な消費電力が相対的に重要になる。そのため、キャッシュ電源制御判定部125は、実行間隔が閾値よりも長い場合は、キャッシュメモリ114に対する電力の供給を停止すると判定し、実行間隔が閾値以下の場合は、キャッシュメモリ114に対する電力の供給を継続すると判定する。
一般に、実行すべき処理は非同期的に(不定期に)に起こるため、アイドル状態がどの程度の期間続くのかを正確に予測するのは難しい。しかし、本実施形態においては、変化検出処理を定期的に行う前提があり、システムが次にいつアイドル状態から復帰するのかを当然分かっている(設定されている、待機状態の画像処理の時間間隔を見るだけでよい)ので、適切な消費電力モードに設定することができる。これはキャッシュだけでなく、イメージセンサ73の省電力モードやSoC10の省電力モードについても同じである。これは他の実施例についても同様である。
上記閾値は、例えば、低消費電力状態から、第1の画像処理を実行可能な状態への遷移に必要な電力量の合計と、低消費電力状態時に移行することで削減できる電力量が等しくなる時間のことである。そのため、情報処理装置1を利用する前に、低消費電力状態から、第1の画像処理を実行可能な状態への遷移時の電力量と低消費電力状態に遷移することで削減できる電力量を測定し、その測定結果を用いて閾値を求めておき、その求めた閾値をキャッシュ電源制御判定部125に記録しておけばよい。
本実施形態の情報処理装置1の利用時に観測される情報処理装置1全体の消費電力の推移は、図16のようになる。つまり、実行間隔に応じて、第1の画像処理を実行可能な第1状態、および、第1状態よりも消費電力が低い第2状態を含む待機状態の消費電力が異なり、これらの間隔が実行間隔に対応しており、この間隔が長い時は短い時と比較して待機状態時の情報処理装置の消費電力(あるいは、キャッシュに供給される電力)が低いことが観測できる。
要するに、本実施形態の情報処理装置1は、上述の第6実施形態と同様、第1の画像の変化がない場合は次の第1の画像の入力を第5時間待ち、第1の画像の変化があった場合は次の第1の画像の入力を第6時間待ち、第6時間は第5時間よりも短い形態とすることができる。そして、次の第1の画像の入力を第5時間待つ場合の情報処理装置1の電力は第4電力であり、次の第1の画像の入力を第6時間待つ場合の情報処理装置1の電力は第5電力であり、第4電力は第5電力よりも低い形態とすることができる。
キャッシュ電源制御判定部125による別の判定方法として、繰り返し実行する第1の画像処理に用いる画像処理アルゴリズムの特性(キャッシュメモリ114の利用特性)で判定してもよい。第1の画像処理で背景画像との差分を取るようなアルゴリズムの場合は、背景画像を繰り返し利用するので、キャッシュメモリ114をオンのままにしておいた方がよい(キャッシュメモリ114に対する電力供給を継続する方がよい)。そこで、アプリケーションが、例えば、画像処理アルゴリズムごとに設定できる手段(API)を持っていてもよい。
さらに別の判定方法として、第1の画像処理に用いる画像処理アルゴリズムで使用するデータサイズとキャッシュメモリ114の容量とを比較するなどのヒューリスティックスを用いてイメージセンサ管理部120側で判定してもよいし、使用するすべてのデータのサイズが分からない場合は第1の画像処理で利用する画像の解像度と事前に決定しておく閾値を比較するヒューリスティックスなどを用いて判定してもよい。そのため、アプリケーションが、例えば、第1の画像処理で利用するデータサイズや繰返し同じデータを使用する可能性が高いかなどのアルゴリズムの特性(キャッシュメモリ114の利用特性)を示す情報を、イメージセンサ管理部120に通知する手段(API)を持っていてもよい。
要するに、本実施形態の情報処理装置1は、第1の画像の変化がない場合は、第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)の特性に応じて、メインメモリ50に記憶されるデータの一部を記憶するキャッシュメモリ114への電力供給が停止される期間と継続される期間とが変化する形態とすることができる。
さらに別の判定方法として、情報処理装置1がキャッシュメモリ114を保持することが有意義な状態にあるかを判定してもよい。例えば、第1画像処理に用いる画像処理アルゴリズムが、前述の背景画像を繰り返し利用するような画像処理アルゴリズムの場合でも、この画像処理アルゴリズムを用いる第1の画像処理が、メガネ型のウェアラブル機器(以下、単に「グラス」と称する場合がある)である情報処理装置1で実行される場合、グラスを掛けている(装着している)人が見る方向を変えるために頭の向きを変えている最中は背景画像そのものが変化し続けることにより、キャッシュメモリ114が有効ではない処理となる。このようにグラスを掛けた人の頭が動いている場合は、画像処理アルゴリズムが仮に静的にオンにするように決まっていてもこれに従うのではなく、グラスを掛けた人の頭が動いていることを、第1の画像処理で著しい変化や画像全体がほぼ均一に変化していることを検出することや、9軸センサなどの情報処理装置1に搭載されている他のセンサで検出することで検出し、動的にキャッシュメモリ114をオフにする(キャッシュメモリ114に対する電力供給を停止する)ように切り替えてもよい。つまり、上記のケースと同様に、人の頭の動いている最中もしくは直後の待機状態時には頭が静止している時の待機状態時よりもキャッシュメモリ114に供給される電力あるいは情報処理装置1の消費電力が低いことが観測できる。
要するに、本実施形態の情報処理装置1は、第1の画像の変化を判定する第1の処理に繰り返し利用される背景画像の変化がある場合は、主記憶装置(メインメモリ50)に記憶されるデータの一部を記憶するキャッシュメモリ114への電力供給が停止される形態であってもよい。
また、判定条件は、以上の態様の組み合わせであってもよい。ここでは、判定条件の一例を述べたが、この限りではないのは言うまでもない。
(第9実施形態)
本実施形態では、上記のように、ユーザがメガネ型のウェアラブル機器(グラス)などを装着している場合、グラスを掛けた人の頭が動いている場合などイメージセンサ73自体が移動していること(例えば、一定以上の速度・加速度で動作している、向きや傾きが変化している、振動があるなど)を他のセンサなどイメージセンサ73以外の別の手段で検出している時は、変化検出処理を行わず、グラスを掛けた人の頭が静止するなどイメージセンサ自体が停止したことが確認できたら変化検出処理を再開してもよい。これはイメージセンサ73自体の動きによっては、変化検出処理によっては意味のない画像が入力され続けることがあるので、この期間はイメージセンサ73等を停止させることで低消費電力化する。要するに、イメージセンサ73の動きの変化に応じて、次の第1の画像の入力を待つ時間が変化する形態とすることもできる。あるいは、カプセル型の内視鏡のように移動していない(進んでいない)ことを検出した場合は同じ画像しか得られないことになるので変化検出処理を停止し、移動していることが確認できたら再開してもよい。
(第10実施形態)
本実施形態では、図8に示した全ての処理を、一般的にはサイズが小さいがDEEP SLEEPモードからの復帰後にすぐにアクセスでき、オンチップメモリゆえアクセスレイテンシも低いSoC10内の内部メモリ102を利用して実行することで、第1の画像処理を高速化でき、SoC10をDEEP SLEEPにして情報処理装置1を低消費電力状態にできる期間を最大化できる。これにより、情報処理装置1の消費電力を大幅に削減することができる。DEEP SLEEPモードへの遷移も内部メモリ102を利用して行い、第1の画像処理も内部メモリ102を利用して実行する。また、全てのデータやコードを内部メモリ102に格納することができれば、第1の画像処理の実行中もメインメモリ50が不揮発性の場合はメインメモリ50に対する電力供給を停止することができ、メインメモリ50が揮発性メモリの場合(例えばLPDDR2などのDRAMの場合)はメインメモリ50をセリフリフレッシュモードに遷移させることで消費電力をさらに抑制することができる。
要するに、本実施形態の情報処理装置1では、イメージセンサ73から入力する第1の画像は、画像を処理する処理装置(この例では「SoC10」)内に設けられる内部メモリ102に格納され、内部メモリ102に格納された第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)の実行中は、処理装置外に設けられるメインメモリ50に供給される電力は第6電力であり、第1の画像の変化が検出された場合は、メインメモリ50に供給される電力は、メインメモリ50にアクセス可能な第7電力であり、第6電力は第7電力よりも小さい形態であればよい。
内部メモリ102は、DEEP SLEEPモード中も通電されているので、全部でなくても一部のデータやコードだけでも内部メモリ102に格納しておくことでオフチップのメインメモリ50へのアクセス(メインメモリ50からのデータの読み出し/メインメモリ50に対するデータの書き込み)を抑制でき、特にアクセスペナルティが比較的高い不揮発性メモリの場合は効果が大きい。第1の画像処理で繰り返し読み書きする画像などのデータを内部メモリ102に格納しておくことが好ましい。繰り返し利用するデータとは、例えば、画像の差分を計算する際に利用する背景画像や、動き検出の際の対象物体の画像や、後述の実施形態で説明する統計情報などである。これらのデータを内部メモリ102に保存し、SoC10をDEEP SLEEPモードに遷移させる。DEEP SLEEPモードから復帰後は、CMOSイメージセンサ73から取得した画像を内部メモリ102に保存する。内部メモリ102上に保存されている例えば背景画像と、CMOSイメージセンサ73から内部メモリ102に読み出した現在の画像とを用いて、画像変化を検出するための第1の画像処理を実行することができる。メインメモリ50へのアクセスを抑制するために、第1の画像処理のコードも内部メモリ102上に保存され、そこから実行される。つまり、第1の画像処理のコードや、第1の画像処理に必要な画像やデータをできるだけ比較的小さな内部メモリ102上に配置できるように、第1の画像処理で利用する画像の解像度を低くするなどの調整が重要である。
通常、アプリケーションが利用できるメモリはメインメモリ50であり、サイズが小さい内部メモリ102はカーネルでシステム全体の処理のために管理・利用されるため、アプリケーションからは利用できない。本実施形態では、アプリケーションによる高度な画像処理の実行の可否を決定するための軽量な画像処理(第1の画像処理)を、アプリケーションから分離してカーネル内に組み込むことで、内部メモリ102を利用する省電力制御と連動させることができ、アプリケーションもその恩恵を受けることができるようになる。
つまり、本実施形態では、第1の画像処理を実行する場合のメインメモリ50(請求項の「主記憶装置」に対応)へのアクセス頻度は、第2の画像処理を実行する場合に比べて少ない。なお、第1の画像処理に必要なデータやコードの全てが内部メモリ102に格納できる場合は、第1の画像処理を実行する場合は、メインメモリ50へのアクセスが発生しないことになる。要するに、本実施形態では、第1の画像処理に利用されるデータの少なくとも一部を保存する内部メモリ102を備え、第1画像処理部121は、内部メモリ102に保存されたデータを用いて第1の画像処理を実行する。観測できる消費電力の観点では、第1の画像処理中にメインメモリアクセスを示す消費電力を観測しないことがあることが観測できる。なお、第1の画像処理が消費電力から観測できることはこれまで説明してきた通りである。
(第11実施形態)
本実施形態では、イメージセンサ制御部124が取得する、第1の画像処理に用いられる画像が、時間の経過とともに変化する。本実施形態では、図17に示すように、イメージセンサ管理部120は、統計情報管理部126をさらに有する。この例では、統計情報管理部126は、学習期間内に繰り返し実行された第1の画像処理の結果に基づいて、イメージセンサ73から取得可能な全体画像を構成する複数のサブ領域ごとに、変化が検出された回数を対応付けた統計情報を生成する。そして、第1画像処理部121は、全体画像のうち、変化が検出された回数が閾値以上のサブ領域の画像をイメージセンサ制御部124に取得させ、その取得させた画像を用いて第1の画像処理を実行する。
つまり、本実施形態では、情報処理装置1に、各種の統計情報を利用した学習機能を追加することで、前述の第5実施形態で述べた変化検出対象領域の設定を自動化するとともに、各種の統計情報を利用して変化を検出すべき領域を学習し、第1の画像処理をさらに軽量化し、低消費電力化する。
統計情報としては、様々なものが考えられるが、例えば、固定型カメラにおける画面を構成する複数のサブ領域毎の特徴量を示す情報であってもよく、これを待機状態の画像処理(第1の画像処理)を繰り返しながら蓄積していく。例えば、第1の画像処理で最初の画像変化が検出された時の変化検出領域を記録していく(図18)。図18の(A)では、アプリケーションが行った初期設定では、変化検出対象領域として2つの領域(ここでは2つの領域を「第1変化検出対象領域」と呼ぶ)が指定されているが、アプリケーションなどが設定する学習時間の間、一定時間にわたって画像の変化がない状態から対象物体が映り込んだことにより画像の変化が起きた回数をサブ領域毎に記録していく。図18の(C)に示すような、8つのサブ領域ごとに変化が検出された回数を対応付けた統計情報を参照すると、学習時間が終了した時点で、太線で示すサブ領域200のみが、アプリケーションの高度な画像処理(第2の画像処理)を実行する状態への遷移の契機となる変化が起こっていることが分かる。よって、図18の(B)に示すように、サブ領域200を、新たな変化検出対象領域である第2変化検出対象領域として自動的に再設定することができる。これにより、イメージセンサ73からの画像の転送時間を削減できたり、第1の画像処理に用いる画像処理アルゴリズムで利用する画像の解像度を小さくしたりすることが可能になったり、解像度が小さくなったことで、第1の画像処理に用いられる画像の全部を内部メモリ102に保存できるようになったりするため、フレームワークにより利用可能になる様々な省電力機能と連携性が高まり、さらなる低消費電力化が可能になる。さらに、各種の統計情報を、第1の画像処理に必要なデータとして、前述の第10実施形態で述べた内部メモリ102に蓄積することにより、統計処理に関するメインメモリ50へのメモリアクセスをなくすあるいは低減させることなどで、より低消費電力化を図ることができる。
以上の統計情報を活用した学習機能を利用することで、図18に示すように、学習期間(一定期間)が経過すると、変化検出対象領域が、第1変化検出対象領域から第2変化検出対象領域に変化する。変化検出対象領域の変化に伴い、観測できる消費電力も変化するので、様々な周辺環境で利用すると待機状態の画像処理の消費電力が異なることが観測できる。
上記学習時間は、アプリケーションが指定することができる。本実施形態では、OSは、アプリケーションが、学習期間を指定するためのインタフェース部を備える。例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、イメージセンサモジュールのデバイスドライバ内のイメージセンサ管理部に対して、変化検出対象領域の学習のための時間(学習期間)を指定することができる。
また、本実施形態の統計情報は、第1画像処理部だけが利用するものではなく、第2画像処理部130(アプリケーション)側で利用されてもよい。よって、任意のタイミングで(当然変化が検出されたタイミングであってもよい)、その時点までに蓄積されている統計情報をOSから取得するための手段を提供する。
本実施形態では、OSは、アプリケーションが、上記統計情報を取得するためのインタフェース部を備える。例えば、アプリケーションは、Linuxのioctl(I/O Control)などのシステムコールなどアプリケーションプログラムインタフェース(API)を呼び出して、イメージセンサモジュールのデバイスドライバ内のイメージセンサ管理部120から、統計情報を取得することができる。
なお、上述の第1実施形態では、第1の画像処理(待機状態の画像処理)において、画像変化を検出すると、これをトリガとしてアプリケーションが必要とする高解像度画像をアプリケーションに渡し、その後は、アプリケーションが、渡された高解像度画像を用いて、アプリケーション独自の画像処理(第2の画像処理)を実行していたが、これに限られるものではない。例えばアプリケーションは、高解像度画像は取得せず、本実施形態の統計情報のみを小さい電力で効率よく集めるための画像処理を行う形態であってもよい。そのため、高解像度画像を取得しないことを設定するためのAPIが設けられてもよい。
(第12実施形態)
第1の画像処理(待機状態の画像処理)は、SIMDエンジン115やGPUなどのSoC10に内蔵された、電力効率の優れたアクセラレータ103を使い分けることでさらに低消費電力化できる。
図19に、高速化・省電力化を目的として、SIMDエンジン115とGPUを使い分ける場合の動作例を示している。第1の画像処理(待機状態の画像処理)は、GPUよりは小さいサイズのデータに対しても効果を発揮するNEONを利用してSoC10の内部メモリ102のみを利用して実行することで、DEEP SLEEPから復帰後、直ちに第1の画像処理を開始することができる。また、メインメモリ50が不揮発性メモリで構成される場合は、第1の画像処理中も、メインメモリ50に対する電力供給を停止したままにすることができる。従来のように、アプリケーション側で、高解像度の画像を利用してメインメモリ50上にデータを配置する必要があるGPUを用いて高度な画像処理(第2の画像処理)を実行し続けると、メインメモリ50へのアクセスも継続的に行われることになってしまうが、変化検出処理(第1の画像処理)をカーネル側に分離した本発明のフレームワークにより、内部メモリ102上にデータ(第1の画像処理に必要なデータ)を置いたままNEONを利用することができるので(通常アプリケーションからNEONを利用する際はメインメモリ50上のデータしか利用することができない)、GPUとメインメモリ50の両方を省電力化することが可能になり、消費電力をさらに削減することができる。
要するに、第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)で第1のアクセラレータ(この例では「NEON」)を利用し、第2の画像を用いた第2の処理(この例では「第2の画像処理」)で第2のアクセラレータ(この例では「GPU」)を利用する形態とすることもできる。
(第13実施形態)
本実施形態では、SoC10が、内部に複数のプロセッサコア101を持つマルチコアの構成の場合に、これを効率よく利用することでさらに低消費電力化できる。
具体的には、第1の画像処理では、処理量が少なく複数コアの並列性を十分に活用できない場合があることに加えて、頻繁にSoC10をDEEP SLEEPモードなどへ遷移させる、あるいはDEEP SLEEPモードから復帰させる必要があるため、単一のコアあるいは少ない数のコアを利用することで前述したキャッシュメモリ114に対する処理など遷移処理を簡素化できる。一方で、第2の画像処理は処理量も十分で並列性を十分に活用できることが多く、遷移処理時間は相対的に小さい。そのため、第1の画像処理を単一あるいは少ない数のコアを利用して実行し、第2の画像処理を第1の画像処理で利用する数より多い複数のコアを利用して実行することで、高効率化できる。また、コア数が多いほど遷移処理に時間が掛かるような場合、遷移時間(DEEP SLEEPモードへの遷移時間と同モードからの復帰時間)とコア数を増やした時の並列処理効果(高速化効果)にはトレードオフが存在する。そこで、遷移時と、第1の画像処理あるいは第2の画像処理の並列計算時の消費電力量のそれぞれの合計が小さくなるようなコア数を選択し、それぞれの画像処理を実行する。適切なコア数は第1の画像処理のアルゴリズムをダウンロードする際に決まっていてもよいし、ダウンロードする際にコア数や画像の解像度などを変化させるプログラムを動かして実験的に決定し、プラットフォームごとに適切なコア数を設定してもよい。なお、遷移時間を考慮して適切なコア数を選択する手法は任意の処理に適用できる。
(第14実施形態)
本実施形態では、図20に示すように、イメージセンサ管理部120は、プリロード部127をさらに有する。プリロード部127は、第1の画像処理の開始前に、第1の画像処理に利用されるデータを事前に読み出す(以下、「プリロード」と称する)。
本実施形態では、CMOSイメージセンサ73から、第1の画像処理に用いられる画像(例えば低解像度画像)を転送する間に、第1の画像処理に必要なデータをキャッシュメモリ114へプリロードしておくことで、図21に示すように、データ転送(CMOSイメージセンサ73からの、第1の画像処理に用いられる画像の転送)が完了した後に、第1の画像処理に必要なデータを取得する従来手法に比べて、第1の画像処理を高速に実行できるので、アイドル期間をさらに長くすることができる。プリロードは、プリロード命令などを利用して行い、第1の画像処理が開始するときまでに完了するようにスタートすればよいので、データ転送より前に開始してもよい。待機状態の画像処理に必要なデータとは、例えば、背景画像などの繰り返し利用する画像データや上述の第11実施形態で述べた統計処理情報など様々であり、この限りではない。また、例えば、上述の第8実施形態で説明したDEEP SLEEP時にキャッシュメモリ114に対する電力供給を停止する第1DEEP SLEEPモードでは、DEEP SLEEPモードから復帰後に可能なタイミングでメインメモリ50あるいは内部メモリ112から、第1の画像処理で利用するデータをプリロードすればよい。この場合でも、データ転送を開始する前にプリロードを開始してもよい。
(第15実施形態)
本実施形態では、上述の第1実施形態の構成に、ローパワーなマイコンを追加し、上述の第1実施形態ではSoC10上で実行していた第1の画像処理(待機状態の画像処理)を、マイコンにオフロードする(第1の画像処理をマイコンに行わせる)。つまり、情報処理装置1は、第1画像処理部121を有するマイコンを備える。これにより、変化が検出された場合のみ(第1の画像処理の結果、第2の画像処理の実行条件を満たす場合のみ)、SoC10をDEEP SLEEPモードから復帰させてアプリケーションに高度な画像処理を実行させればよいので、動作時の消費電力が大きいSoC10のアイドル時間をより長く確保することができ、低消費電力化できる。第1の画像処理が繰り返し実行され、画像変化が検出されない間は、SoC10はDEEP SLEEPモードを維持するので、SoC10の消費電力が低いままであることが観測される。
図22は、本実施形態の情報処理装置1の構成の一例を示す図である。図22に示すように、I/Oデバイスとしてマイコン80が新たに追加され、SoC10には、マイコン80を制御するシリアルデバイスコントローラ150が新たに追加される点で上述の第1実施形態の構成と相違する。シリアルバスコントローラ150は、例えばI2C、SPI、UART、GPIOなどで構成され得る。図22の例では、マイコン80が、上述の第1画像処理部121を有していて第1の画像処理を実行し、SoC10が、上述の第2画像処理部130を有していて第2の画像処理を実行する形態である。
図23は、本実施形態のイメージセンサ管理部120の機能構成の一例を示す図である。マイコン80側で第1の画像処理を実行できるよう、イメージセンサ管理部120の機能は、OS側と、マイコン80上で実行するソフトウェア(以下、「マイコンソフトウェア」と称する場合がある)側とに分離されている。図23の例では、OS側のイメージセンサ管理部120を「120A」、マイコンソフトウェア側のイメージセンサ管理部120を「120B」と称している。なお、以下の説明では、両者を区別しない場合は、単に「イメージセンサ管理部120」と称する。
図23に示すように、マイコンソフトウェア側にあるイメージセンサ管理部120Bは、第2待機状態制御部161と、第1画像処理部121と、第2待機状態電力制御部162と、イメージセンサ制御部124とを有する。第2待機状態制御部161は、イメージセンサ管理部120の動作を統括的に制御する。第1画像処理部121は、待機状態の画像処理(第1の画像処理)を実行する。第2待機状態電力制御部162は、イメージセンサ73とマイコン80に供給する電力を制御する。イメージセンサ制御部124は、イメージセンサ73を制御する。
図23に示すように、OS側にあるイメージセンサ管理部120Aは、第1待機状態制御部163と、第1待機状態電力制御部164とを有する。第1待機状態制御部163は、アプリケーションやマイコン側の第2待機状態制御部161と通信する。第1待機状態電力制御部164は、SoC10に供給する電力を制御する。例えば、第1待機状態電力制御部164は、電力管理部140に対して、SoC10のDEEP SLEEPモードへの遷移などを指示する。
図24は、イメージセンサ管理部120による処理の一例を示すフローチャートである。この処理は、アプリケーションから変化検出処理の要求(第1の画像処理の要求)を第1待機状態制御部163が受信すると開始される。第1待機状態制御部163は、マイコン80側に、第1の画像処理の実行を依頼する(ステップS2201)。そして、第1待機状態電力制御部164は、電力管理部140に対して、DEEP SLEEPモードに設定することを指示する(ステップS2202)。
次に、マイコン80側の第1画像処理部121は、第1の画像処理を実行する(ステップS2203)。画像変化を検出した場合(ステップS2204:Yes)、処理はステップS2208に進む。画像変化を検出しなかった場合(ステップS2204:No)、第2待機状態電力制御部162は、マイコン80をローパワーモード(第1の画像処理を実行可能な状態よりも消費電力が少ない省電力状態)に設定する(ステップS2205)。その後、タイマーなどを利用して一定時間待つ(ステップS2206)。一定時間経過すると、第2待機状態電力制御部162は、マイコン80を、ローパワーモードから、第1の画像処理を実行可能な状態へ復帰させる制御を行い(ステップS2207)、処理はステップS2203に戻る。そして、第1画像処理部121は、再び第1の画像処理を実行する。
一方、上述のステップS2204において、画像変化を検出した場合(ステップ2204:Yes)、第2待機状態制御部161は、SoC10を割り込みで復帰させるとともに、イメージセンサ制御部124に高解像度画像を取得させ、その取得させた高解像度画像をSoC10へ転送する制御を行う(ステップS2208)。その後、第2待機状態制御部161は、第1待機状態制御部163(見方を変えればアプリケーション)からの、変化検出処理(第1の画像処理)の要求を待つことになり(ステップS2209)、処理は上述のステップS2201に戻る。なお、ステップ2209の直前にマイコン80をローパワーモードにして、要求が到着したらローパワーモードから復帰するようにしてもよい。
(第16実施形態)
本実施形態では、上述の第1実施形態ではSoC10上で実行していた第1の画像処理(待機状態の画像処理)を、図25のようにイメージセンサデバイス(CMOSイメージセンサモジュール)70内部で行う。つまり、イメージセンサデバイス70は、第1画像処理部121を有する。第1の画像処理の全部あるいは一部をCMOSイメージセンサモジュール70で実行することで、画像変化を検出した場合のみSoC10を動作させればよいので、動作時の消費電力が大きいSoC10のアイドル時間をより長くすることができ、低消費電力化を図ることができる。
図26は、本実施形態のCMOSイメージセンサモジュール70の構成の一例を示す図である。図26に示すように、CMOSイメージセンサモジュール70は、図2に示す構成に、イメージセンサ管理部120を機能統合している。
図27は、本実施形態のイメージセンサ管理部120の機能構成の一例を示す図である。CMOSイメージセンサモジュール70側で第1の画像処理を実行できるよう、イメージセンサ管理部120の機能は、OS側と、CMOSイメージセンサモジュール70側とに分離されている。図27の例では、OS側のイメージセンサ管理部120を「120A」、CMOSイメージセンサモジュール70側のイメージセンサ管理部120を「120C」と称している。なお、以下の説明では、両者を区別しない場合は、単に「イメージセンサ管理部120」と称する。
図27に示すように、CMOSイメージセンサモジュール70側のイメージセンサ管理部120Cは、第2待機状態制御部171と、第1画像処理部121と、第2待機状態電力制御部172と、イメージセンサ制御部124とを有する。第2待機状態制御部171は、イメージセンサ管理部120の動作を統括的に制御する。第1画像処理部121は、待機状態の画像処理(第1の画像処理)を実行する。第2待機状態電力制御部172は、イメージセンサ73に供給する電力を制御する。イメージセンサ制御部124は、CMOSイメージセンサモジュール70を制御する。
図27に示すように、OS側のイメージセンサ管理部120Aは、第1待機状態制御部173と、第1待機状態電力制御部174とを有する。第1待機状態制御部173は、アプリケーションやCMOSイメージセンサモジュール70側の第2待機状態制御部171と通信する。第1待機状態電力制御部174は、SoC10に供給する電力を制御する。例えば、第1待機状態電力制御部174は、電力管理部140に対して、SoC10のDEEP SLEEPモードへの遷移などを指示する。
図28は、イメージセンサ管理部120による処理の一例を示すフローチャートである。この処理は、アプリケーションから変化検出処理の要求(第1の画像処理の要求)を第1待機状態制御部173が受信すると開始される。第1待機状態制御部173は、CMOSイメージセンサモジュール70側に、第1の画像処理の実行を依頼する(ステップS2501)。そして、第1待機状態電力制御部173は、電力管理部140に対して、DEEP SLEEPモードに設定することを指示する(ステップS2502)。
次に、CMOSイメージセンサモジュール70側の第1画像処理部121は、第1の画像処理を実行する(ステップS2503)。画像変化を検出した場合(ステップS2504:Yes)、処理はステップS2508に進む。画像変化を検出しなかった場合(ステップS2504:No)、第2待機状態電力制御部172は、CMOSイメージセンサ73を省電力モードに設定する(ステップS2505)。その後、タイマーなどを利用して一定時間待つ(ステップS2506)。一定時間経過すると、第2待機状態電力制御部172は、CMOSイメージセンサ73を、省電力モードから、第1の画像処理を実行可能な状態へ復帰させる制御を行い(ステップS2507)、処理はステップS2503に戻る。そして、第1画像処理部121は、再び第1の画像処理を実行する。
一方、上述のステップS2504において、画像変化を検出した場合(ステップ2504:Yes)、第2待機状態制御部171は、SoC10を割り込みで復帰させるとともに、イメージセンサ制御部124に高解像度画像を取得させ、その取得させた高解像度画像をSoC10へ転送する制御を行う(ステップS2508)。その後、第2待機状態制御部171は、第1待機状態制御部173(見方を変えればアプリケーション)からの、変化検出処理(第1の画像処理)の要求を待つことになり(ステップS2509)、処理は上述のステップS2501に戻る。なお、ステップS2509の直前にCMOSイメージセンサ73を省電力モードにして、要求が到着したら省電力モードから復帰するようにしてもよい。
要するに、本実施形態のイメージセンサデバイス70は、イメージセンサ73を有する画像入力装置であって、画像入力要求を受け取ると、イメージセンサ73から第1の画像を入力し、第1の画像の変化がない場合は、次の第1の画像の入力を待ち、変化があった場合は、第1の画像よりも解像度の高い第2の画像をイメージセンサ73から入力し、その入力した第2の画像を出力していると考えることができる。また、本実施形態のイメージセンサデバイス70は、第1の画像の変化がない場合は、次の第1の画像の入力を待ち、画像を入力しているときの第2電力から、第2電力よりも低い第3電力に切り替えていると考えることもできる。
なお、後述の実施形態で説明するメガネ型ウェアラブル機器の構成に、本実施形態を適用することも可能である。
本実施形態では、低解像度画像や鮮明でない画像を利用して第1の画像処理(待機状態の画像処理)を実行し、画像変化の有無を検出しているが、同様に、カメラなどセキュリティやプライバシ保護の観点から撮影が禁止される対象物(以下、「禁止対象物」と称する)が映っていないかを検出することもできる。つまり、イメージセンサモジュール70が第1画像処理部121を有する構成においては、第1画像処理部121は、CMOSイメージセンサ制御部124に取得させた画像が、情報処理装置1で取得可能な画像であるか否かを判定する処理を実行することもできる。
例えば第1の画像処理の際に、変化を検出した場合は、さらに禁止対象物が映っているか否かを検出する処理を実行し、禁止対象物が映っている場合は、SoC10への高解像度画像の転送を防止したり、禁止対象物をぼかしたり、セキュリティやプライバシの観点から許容される範囲の低い解像度の画像を返したりすることで、低消費電力、かつ、イメージセンサ73の外にはセキュリティやプライバシの観点から問題となる画像が出力されないセキュアなイメージセンサ搭載型の情報処理装置を実現できる。同様に、撮影が許可される対象物が写っていることを検出しない限りは、イメージセンサ73の外に画像を出力しない形態であってもよい。
(第17実施形態)
本実施形態は、上述の第16実施形態のように第1の画像処理をイメージセンサデバイス70(CMOSイメージセンサモジュール70)内部で行う形態ではないが、本実施形態のイメージセンサデバイス70は、第1実施形態などを効率よく実施するのに適した複数の撮像モードを有する。
具体的には、画像入力要求を受け取ると、CMOSイメージセンサ73からの第1の画像を入力する際に、アプリケーションなどから指定された解像度で指定された枚数の画像だけを指定された間隔で入力する変化検出に特化した省電力な第1の撮像モードを有する。当然、低解像度の画像1枚だけ撮像できてもよい。一般に、撮像を開始するとイメージセンサ73からは連続して画像が入力され続けるので、イメージセンサ73から必要以上に画像が入力されてしまい、イメージセンサ73の動作時間も必要以上に長く消費電力も大きくなってしまうが、第1の撮像モードでは、必要最低限の画像を入力でき、イメージセンサ73の動作時間も最小化できる。第1の撮像モードは、第1の画像処理を行うことを前提としているので、画像入力後にすぐにイメージセンサデバイス70はすぐに省電力モードに自動的に遷移してもよい。第1の画像処理(変化検出処理)に特化したモードであり、オートフォーカスなどの機能を省略していて変化検出処理ができる低解像度で鮮明でない画像だけ撮像できてもよい。当然第1の撮像モードを第2の画像処理で利用してもよい。
第2の撮像モードは、第2の画像処理で利用することを前提としている。第2の撮像モードでは別途指定されるまで連続した画像が入力され続けるので、第2の画像処理で連続した画像を入力したい際には第2の撮像モードを利用すればよい。つまり、イメージセンサ73から指定された第1の画像を返して入力を終了する少ない電力で変化検出可能な第1の撮像モードと、指定された第2の画像を返して別途指定されるまで入力を続ける第2の撮像モード、を有する画像入力装置(イメージセンサモジュール70)である。
第3の撮像モードは、第1の画像処理と第2の画像処理の遅延を小さくするモードである。第1の画像処理が完了してから第2の画像を撮像していると遅延が生じる場合がある。第3の撮像モードは、第1の画像処理で利用する第1の画像(低解像度画像)と、第2の画像処理で利用する第2の画像(高解像度画像)の両方を先に取得しておきイメージセンサデバイス70上のバッファに格納し、低解像度画像だけをまず返す。アプリケーションで第1の画像処理が実行され、変化が検出された場合は、第2の画像の画像入力要求を受け取り、格納してあった第2の画像を返す。このようにすることで、第1の画像と第2の画像の撮像の時間差を非常に小さくできるので、変化検出の可能性が高い場合はこの撮像モードを利用するとよい。
つまり、本実施形態の画像入力装置(イメージセンサモジュール70)は、イメージセンサ73から、第1の画像と、第1の画像よりも解像度の高い第2の画像を連続して入力し、入力した第2の画像を記憶し、第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)の結果、第1の画像の変化が検出された場合、記憶された第2の画像を出力(この例ではアプリケーションへ出力)する形態であってもよい。なお、以上に示した撮像モードの例は一例でありこの限りではない。
(第18実施形態)
本実施形態の情報処理装置1は、メガネ型のウェアラブル機器で構成される。図29に示すように、本実施形態の情報処理装置1は、図1の構成に加えて、センサデバイス210、センサデバイス210を制御するセンサコントローラ211、ディスプレイデバイス220、ディスプレイデバイス220を制御するディスプレイコントローラ221をさらに備える。例えばセンサデバイス210は、3軸ジャイロセンサと3軸加速度センサと3軸電子コンパスを内蔵した9軸センサモジュールで構成される。また、センサデバイス210として、赤外線センサや音センサ(マイク)などの各種センサを備えていてもよい。例えばディスプレイデバイス220は、Mirasolなどの各種電子ペーパーや不揮発性ディスプレイ、IGZOやメモリ液晶のような低いリフレッシュレートで動作するLCDなどを搭載したヘッドマウントディスプレイで構成される。また、本実施形態以外の他の全ての実施形態においても、本実施形態のようなメガネ型のウェアラブル機器で情報処理装置1を構成することもできる。
本実施形態では、第2の画像処理を、情報処理装置1とは異なる第2の情報処理装置に実行させる(第2の画像処理を、第2の情報処理装置にオフロードする)オフロード制御部を備える。例えば無線LANや近距離無線通信などを利用してスマートフォン(第2の情報処理装置に対応)などと連携して、高度な第2の画像処理やその他の負荷が高い処理をスマートフォン(不図示)などにオフロードしてもよい。例えば、メガネ型ウェアラブル機器のSoC10上で実行する第1の画像処理の結果、人を検出した場合は、高度な顔認識処理である第2の画像処理に必要な解像度の高解像度画像をスマートフォンに転送し、スマートフォンに、顔認識処理と、認識した顔が誰であるかなどを検索する処理(これを含めて第2の画像処理であると考えてもよい)とを実行させてもよい。この際に、スマートフォンからさらにクラウドなどの第3の情報処理装置に処理をオフロードしてもよい。スマートフォンは、第2の画像処理の結果を、情報処理装置1(この例ではメガネ型ウェアラブル機器)に返し、情報処理装置1は、スマートフォンから受け取った第2の画像処理の結果を画像に合成した合成画像を生成してLCDに表示する。また、スマートフォン側で第2画像処理を実行中の場合は、情報処理装置1は低消費電力状態に遷移する。
図30は、本実施形態の情報処理装置1と、第2の情報処理装置として機能するスマートフォンの機能構成の一例を示す図である。OSによって提供される機能の中には、イメージセンサ管理部120、ディスプレイデバイス管理部180、電力管理部140、同期設定部190などが含まれる。イメージセンサ管理部120は、第1画像処理部121と、待機状態制御部122と、待機状態電力制御部123と、イメージセンサ制御部124とを有する。これらの機能は、第1実施形態とほぼ同様であり、待機状態制御部122は、第1実施形態と同様にアプリケーションと通信する。
ディスプレイデバイス管理部180は、第2待機状態制御部181と、ディスプレイデバイス制御部182とを有する。第2待機状態制御部181は、ディスプレイデバイス管理部180の動作を統括的に制御する。ディスプレイデバイス制御部182は、ディスプレイデバイス220を制御する。
同期設定部190は、情報処理装置1が有するデバイスが定期的に実行する処理と、第1の画像処理の実行タイミングとを同期させる。この例では、デバイスはディスプレイデバイス220(表示装置)であり、デバイスが定期的に実行する処理は、表示内容を保持するためのリフレッシュ処理であるが、これに限られるものではない。要するに、本実施形態の情報処理装置1は、第1の画像の変化を判定する第1の処理(この例では「第1の画像処理」)の実行タイミングと、情報処理装置1上で実行する第3の処理(この例では「リフレッシュ処理」)の実行タイミングとが同期する形態であればよい。
また、図30の例では、アプリケーションは、第2の画像処理をスマートフォンに実行させる制御を行うオフロード制御部195を有し、スマートフォンは、第2の画像処理を実行する第2画像処理部130を有している。
第1実施形態と同様に、アプリケーションは、イメージセンサ管理部120に対して、第1の画像処理の実行を要求する。この要求を受けた待機状態制御部122は、第1の画像処理を実行することを第1画像処理部121に対して指示し、この指示を受けた第1画像処理部121は第1の画像処理を実行する。第1の画像処理の結果、画像変化が検出された場合、待機状態制御部122は、第2の画像処理に必要な高解像度画像をイメージセンサ制御部124に取得させ、その取得させた高解像度画像と、第2の画像処理の実行条件を満たすことを示す情報とをアプリケーションに通知する。この通知を受けたアプリケーション(オフロード制御部195)は、スマートフォンに対して、高解像度画像を転送し、第2の画像処理の実行を指示する。この指示を受けたスマートフォン(第2画像処理部130)は、第2の画像処理を実行し、第2の画像処理の結果をアプリケーションに返す。アプリケーションは、スマートフォンから受け取った第2の画像処理の結果を画像に合成した合成画像を生成し、ディスプレイデバイスドライバ(ディスプレイデバイス管理部180)へ転送する。合成画像を受け取った第2待機状態制御部181は、ディスプレイデバイス制御部182に対して合成画像の表示を指示し、ディスプレイデバイス制御部182は、第2待機状態制御部181の指示に従って、合成画像をディスプレイデバイス220に表示する制御を行う。
図31は、アプリケーションによる処理の一例を示すフローチャートである。図31に示すように、まずアプリケーションは、イメージセンサ管理部120に対して、第1の画像処理の実行を要求する(ステップS2701)。ステップS2701の後、アプリケーションは、イメージセンサ管理部120から、画像変化を検出した旨の通知(第2の画像処理の実行条件を満たすことを示す情報の通知であると考えることもできる)を待つ(ステップS2702)。アプリケーションは、イメージセンサ管理部120から、画像変化を検出した旨の通知を受けると、これと同時に受け取る高解像度画像をスマートフォンに転送し、第2の画像処理の実行を要求する(ステップS2703)。ステップS2703の後、アプリケーションは、第2の画像処理の実行結果の通知待ちとなる(ステップS2704)。そして、スマートフォンから、第2の画像処理の結果を受け取ると、第2の画像処理の結果を画像に合成した合成画像を生成し、ディスプレイデバイス管理部180へ転送する(ステップS2705)。アプリケーションは以上の処理を繰り返し実行する。なお、イメージセンサ管理部120による処理は、図8の内容とほぼ同様であるので詳細な説明は省略する。
以上のように第2の画像処理をオフロードすると、画像などのデータの転送に伴って電力を消費するが、それと引き換えに第2の画像処理に必要な電力は削減することができるし、スマートフォン側で高速に処理を完了させることができる場合もある。情報処理装置の表示装置ではディスプレイに関連する消費電力が大きいため、表示内容に変化がない場合には電力供給を停止しても(あるいは僅かな電力供給で)表示を保持できる不揮発性の電子ペーパーやメモリ液晶ディスプレイ、PSR(Panel Self Refresh)対応の液晶ディスプレイ、あるいはIGZOなどの低リフレッシュレートで動作する低消費電力ディスプレイを利用することで、情報処理装置のユーザがディスプレイを閲覧している間や表示内容に変化がない場合などの待機時の消費電力を抑制することができる。IGZOなどの低リフレッシュレートで動作する低消費電力ディスプレイでは、例えば1秒に1回、定期的な書換えを実行すれば表示内容が保持される。そのため、図32に示すように、同期設定部190は、第1の画像処理(待機状態の画像処理)の実行間隔(CMOSイメージセンサ73からの画像を取り込むタイミング)を、IGZOなどのディスプレイの表示内容を保持するための定期的なリフレッシュ処理にタイミングを同期させる。これにより、SoC10を、これらの処理のためにDEEP SLEEPモード(あるいはその他の省電力モードでもよいのは言うまでもない)から復帰させる回数を削減できるので、より省電力化を図ることができる。
なお、図32では、2つの処理が完全に同期しているが、リフレッシュ処理間に複数回第1の画像処理が実行されてもよいし、その逆でもよく、またそのようになるように合わせ込みを行ってもよい。このように、消費電力が大きい複数のデバイス(この場合はディスプレイデバイス220とイメージセンサ73)の動作タイミング(あるいはアクティブ時間)を合わせ込んでアイドル時間を最大化することで大きな省電力効果を得ることができる。また、PSRや電子ペーパーで書換処理(表示内容を変更する処理)を非同期的に行う処理についても、SoC10をDEEP SLEEPから復帰させる必要があるので、そのタイミングで第1の画像処理を行うようにしてもよい。当然、9軸センサなどのセンシング処理の実行間隔と、第1の画像処理の実行間隔とを同期させてもよいのは言うまでもない。
(第19実施形態)
上述の第1実施形態において、例えば情報処理装置1が太陽電池で駆動する場合は、キャパシタなどの電力を蓄える蓄電部の残量(あるいは太陽電池の発電量)に応じて、第1の画像処理(待機状態の画像処理)の方法を動的に切り替えることで、厳しい電力制約下でも安定的に情報処理装置1の動作を継続させるようにする。例えば、待機状態制御部122は、蓄電部の残量が閾値を下回ると、画像の取り込み間隔を長くする、あるいは、第1の画像処理に用いる画像処理アルゴリズムを切り替えることで、消費電力を抑制することができる。この例では、待機状態制御部122は、「切替制御部」に対応している。
以上の各実施形態は任意に組み合わせることが可能である。
また、上述の情報処理装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述の情報処理装置1で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述の情報処理装置1で実行されるプログラムを、ROM等の不揮発性の記録媒体に予め組み込んで提供するようにしてもよい。
ここで、以上に説明した各実施形態に記載された情報処理装置の特徴を列記する。
(態様1)
情報処理装置であって、イメージセンサを制御するイメージセンサ制御部と、前記イメージセンサ制御部が前記イメージセンサから取得した画像を用いて、第2の画像処理よりも処理量が少ない画像処理であって、前記第2の画像処理の実行の可否を決定するための第1の画像処理を実行する第1画像処理部と、を備える情報処理装置。
(態様2)
前記第1画像処理部は、前記第2の画像処理に用いられる画像よりも解像度が低い画像を前記イメージセンサ制御部に取得させ、その取得させた画像を用いて前記第1の画像処理を実行する態様1に記載の情報処理装置。
(態様3)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしていない場合は、前記第1の画像処理を実行する第1状態よりも消費電力が小さい第2状態に前記情報処理装置を遷移させる制御を行う電力制御部を備える態様1に記載の情報処理装置。
(態様4)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしている場合は、アプリケーションに前記第2の画像処理を実行させる制御を行う実行制御部を備える態様1に記載の情報処理装置。
(態様5)
前記第1の画像処理は、前記イメージセンサ制御部が取得した画像の変化を検出するための処理であり、前記第1の画像処理によって、前記イメージセンサ制御部が取得した画像の変化が検出された場合は、前記第2の画像処理の実行条件を満たす態様1に記載の情報処理装置。
(態様6)
前記第1の画像処理は、前記イメージセンサ制御部が取得した画像に特定の対象物が映っているか否かを検出するための処理であり、前記第1の画像処理によって、前記イメージセンサ制御部が取得した画像に前記特定の対象物が映っていることが検出された場合は、前記第2の画像処理の実行条件を満たす態様5に記載の情報処理装置。
(態様7)
アプリケーションからの指定に応じて、予め前記第1画像処理部に用意されている複数種類の画像処理アルゴリズムのうちの少なくとも1つを、前記第1の画像処理に用いる画像処理アルゴリズムとして設定する制御を行う設定制御部を備える態様1に記載の情報処理装置。
(態様8)
アプリケーションが、予め前記第1画像処理部に用意されている複数種類の画像処理アルゴリズムのうちの少なくとも1つを、前記第1の画像処理に用いる画像処理アルゴリズムとして指定するためのインタフェース部を備える態様1に記載の情報処理装置。
(態様9)
アプリケーションからの要求に応じて、前記第1の画像処理に用いる画像処理アルゴリズムを外部から取得する取得制御部を備える態様1に記載の情報処理装置。
(態様10)
アプリケーションが、前記第1の画像処理に用いる画像処理アルゴリズムを前記取得制御部に取得させるためのインタフェース部を備える態様1に記載の情報処理装置。
(態様11)
前記第1の画像処理に用いられる画像を取得する場合と、前記第2の画像処理に用いられる画像を取得する場合とで、前記イメージセンサの初期化時間が異なる態様1に記載の情報処理装置。
(態様12)
前記イメージセンサ制御部は、前記第1の画像処理に用いられる画像を取得する場合の前記イメージセンサの初期化時間を、前記第2の画像処理に用いられる画像を取得する場合の前記イメージセンサの初期化時間よりも短い値に設定する態様11に記載の情報処理装置。
(態様13)
アプリケーションが、前記イメージセンサの初期化時間を指定するためのインタフェース部を備える態様1に記載の情報処理装置。
(態様14)
前記イメージセンサ制御部は、アプリケーションからの指定に応じて、前記イメージセンサの初期化時間を設定する態様13に記載の情報処理装置。
(態様15)
アプリケーションが、前記第1の画像処理を実行する間隔を指定するためのインタフェース部を備える態様1に記載の情報処理装置。
(態様16)
アプリケーションからの指定に応じて、前記間隔を設定する間隔設定制御部を備える態様15に記載の情報処理装置。
(態様17)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしている場合は、前記第1の画像処理に用いられた画像のうち、前記第2の画像処理の実行条件を満たす領域の画像を少なくとも含み、前記第1の画像処理に用いられた画像よりも解像度が高い高解像度画像を、前記イメージセンサ制御部に取得させてアプリケーションへ通知する実行制御部を備える態様1に記載の情報処理装置。
(態様18)
前記実行制御部は、前記高解像度画像と、前記高解像度画像のうち前記第2の画像処理の実行条件を満たしている領域を示す情報とを、アプリケーションへ通知する態様17に記載の情報処理装置。
(態様19)
アプリケーションが、前記高解像度画像を取得するためのインタフェース部を備える態様17に記載の情報処理装置。
(態様20)
前記イメージセンサ制御部は、前記第1の画像処理に用いられる画像として、前記イメージセンサから取得可能な全体画像のうちの一部の領域の画像を取得する態様1に記載の情報処理装置。
(態様21)
アプリケーションが、前記一部の領域を指定するためのインタフェース部を備える態様20に記載の情報処理装置。
(態様22)
前記第1の画像処理を実行する間隔が動的に変化する態様1に記載の情報処理装置。
(態様23)
前記第1の画像処理の結果に応じて、前記間隔を可変に設定する間隔設定制御部を備える態様22に記載の情報処理装置。
(態様24)
前記第1の画像処理を実行する間隔に応じて、前記第1の画像処理に要する時間が変化する態様1に記載の情報処理装置。
(態様25)
前記間隔に応じて、前記イメージセンサが画像の取得を行うことができない第3状態と、前記イメージセンサが画像の取得を行うことが可能な第4状態とを切り換えるのに要する時間を示す切換時間を可変に設定する切換時間設定部を備える態様24に記載の情報処理装置。
(態様26)
前記第2状態に遷移する際に、前記第1の画像処理に使用されるキャッシュメモリに対する電力の供給を継続するか否かを判定するキャッシュ電源判定制御部を備える態様3に記載の情報処理装置。
(態様27)
前記キャッシュ電源判定制御部は、前記第1の画像処理を実行する間隔が閾値よりも長い場合は、前記キャッシュメモリに対する電力の供給を停止すると判定し、前記第1の画像処理を実行する間隔が前記閾値以下の場合は、前記キャッシュメモリに対する電力の供給を継続すると判定する態様26に記載の情報処理装置。
(態様28)
前記第1の画像処理を実行する場合の主記憶装置へのアクセス頻度は、前記第2の画像処理を実行する場合に比べて少ない態様1に記載の情報処理装置。
(態様29)
前記第1の画像処理に利用されるデータの少なくとも一部を保存する、前記主記憶装置とは異なる内部メモリを備え、前記第1画像処理部は、前記内部メモリに保存されたデータを用いて前記第1の画像処理を実行する態様28に記載の情報処理装置。
(態様30)
前記イメージセンサ制御部が取得する、前記第1の画像処理に用いられる画像が、時間の経過とともに変化する態様1に記載の情報処理装置。
(態様31)
学習期間内に繰り返し実行された前記第1の画像処理の結果に基づいて、前記イメージセンサから取得可能な全体画像を構成する複数のサブ領域ごとに、変化が検出された回数を対応付けた統計情報を生成する統計情報管理部を備え、前記第1画像処理部は、前記全体画像のうち、変化が検出された回数が閾値以上の前記サブ領域の画像を前記イメージセンサ制御部に取得させ、その取得させた画像を用いて前記第1の画像処理を実行する態様30に記載の情報処理装置。
(態様32)
アプリケーションが、前記学習期間を指定するためのインタフェース部を備える態様31に記載の情報処理装置。
(態様33)
アプリケーションが、前記統計情報を取得するためのインタフェース部を備える態様31に記載の情報処理装置。
(態様34)
前記第1の画像処理の開始前に、前記第1の画像処理に利用されるデータをプリロードするプリロード部を備える態様1に記載の情報処理装置。
(態様35)
前記第1画像処理部を有するマイコンを備える態様1に記載の情報処理装置。
(態様36)
前記イメージセンサは前記第1画像処理部を有する態様1に記載の情報処理装置。
(態様37)
前記第1画像処理部は、前記イメージセンサ制御部に取得させた画像が、前記情報処理装置が取得可能な画像であるか否かを判断する処理を行う態様36に記載の情報処理装置。
(態様38)
前記第2の画像処理を、前記情報処理装置とは異なる第2の情報処理装置に実行させるオフロード制御部を備える態様1に記載の情報処理装置。
(態様39)
前記情報処理装置が有するデバイスが定期的に実行する処理と、前記第1の画像処理の実行タイミングとを同期させる同期設定部を備える態様1に記載の情報処理装置。
(態様40)
前記デバイスは表示装置であり、前記デバイスが定期的に実行する処理は、表示内容を保持するためのリフレッシュ処理である態様39に記載の情報処理装置。
(態様41)
電力を蓄える蓄電部の残量に応じて、前記第1の画像処理の方法を切り替える切替制御部を備える態様1に記載の情報処理装置。
(態様42)
情報処理装置であって、イメージセンサを制御するイメージセンサ制御部と、前記イメージセンサ制御部が前記イメージセンサから取得した画像を用いて、第1の画像処理の実行の可否を決定するための画像処理であって、前記第1の画像処理よりも消費電力が少ない第2の画像処理を実行する第1画像処理部と、を備える情報処理装置。
また、以上に説明した各実施形態に記載された情報処理装置(プロセッサ)が実行する情報処理方法の特徴を列記する。
(態様43)
イメージセンサを制御するイメージセンサ制御ステップと、前記イメージセンサ制御ステップで前記イメージセンサから取得した画像を用いて、第2の画像処理よりも処理量が少ない画像処理であって、前記第2の画像処理の実行の可否を決定するための第1の画像処理を実行する第1画像処理ステップと、を含む情報処理方法。
(態様44)
前記第1画像処理ステップは、前記第2の画像処理に用いられる画像よりも解像度が低い画像を前記イメージセンサ制御部に取得させ、その取得させた画像を用いて前記第1の画像処理を実行する態様43に記載の情報処理方法。
(態様45)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしていない場合は、前記第1の画像処理を実行する第1状態よりも消費電力が小さい第2状態に前記情報処理装置を遷移させる制御を行う電力制御ステップを含む態様43に記載の情報処理方法。
(態様46)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしている場合は、アプリケーションに前記第2の画像処理を実行させる制御を行う実行制御ステップを含む態様43に記載の情報処理方法。
(態様47)
前記第1の画像処理は、前記イメージセンサ制御ステップで取得した画像の変化を検出するための処理であり、前記第1の画像処理によって、前記イメージセンサ制御ステップで取得した画像の変化が検出された場合は、前記第2の画像処理の実行条件を満たす態様43に記載の情報処理方法。
(態様48)
前記第1の画像処理は、前記イメージセンサ制御ステップで取得した画像に特定の対象物が映っているか否かを検出するための処理であり、前記第1の画像処理によって、前記イメージセンサ制御ステップで取得した画像に前記特定の対象物が映っていることが検出された場合は、前記第2の画像処理の実行条件を満たす態様47に記載の情報処理方法。
(態様49)
アプリケーションからの要求に応じて、前記第1の画像処理に用いる画像処理アルゴリズムを外部から取得する取得制御ステップを含む態様43に記載の情報処理方法。
(態様50)
前記第1の画像処理に用いられる画像を取得する場合と、前記第2の画像処理に用いられる画像を取得する場合とで、前記イメージセンサの初期化時間が異なる態様43に記載の情報処理方法。
(態様51)
前記イメージセンサ制御ステップは、前記第1の画像処理に用いられる画像を取得する場合の前記イメージセンサの初期化時間を、前記第2の画像処理に用いられる画像を取得する場合の前記イメージセンサの初期化時間よりも短い値に設定する態様50に記載の情報処理方法。
(態様52)
前記イメージセンサ制御ステップは、アプリケーションからの指定に応じて、前記イメージセンサの初期化時間を設定する態様43に記載の情報処理方法。
(態様53)
アプリケーションからの指定に応じて、前記第1の画像処理を実行する間隔を設定する間隔設定制御ステップを含む態様43に記載の情報処理方法。
(態様54)
前記第1の画像処理の結果が、前記第2の画像処理の実行条件を満たしている場合は、前記第1の画像処理に用いられた画像のうち、前記第2の画像処理の実行条件を満たす領域の画像を少なくとも含み、前記第1の画像処理に用いられた画像よりも解像度が高い高解像度画像を、前記イメージセンサ制御部に取得させてアプリケーションへ通知する実行制御ステップを含む態様43に記載の情報処理方法。
(態様55)
前記実行制御ステップは、前記高解像度画像と、前記高解像度画像のうち前記第2の画像処理の実行条件を満たしている領域を示す情報とを、アプリケーションへ通知する態様54に記載の情報処理方法。
(態様56)
前記イメージセンサ制御ステップは、前記第1の画像処理に用いられる画像として、前記イメージセンサから取得可能な全体画像のうちの一部の領域の画像を取得する態様43に記載の情報処理方法。
(態様57)
前記第1の画像処理を実行する間隔が動的に変化する態様43に記載の情報処理方法。
(態様58)
前記第1の画像処理の結果に応じて、前記間隔を可変に設定する間隔設定制御ステップを含む態様57に記載の情報処理方法。
(態様59)
前記第1の画像処理を実行する間隔に応じて、前記第1の画像処理に要する時間が変化する態様43に記載の情報処理方法。
(態様60)
前記間隔に応じて、前記イメージセンサが画像の取得を行うことができない第3状態と、前記イメージセンサが画像の取得を行うことが可能な第4状態とを切り換えるのに要する時間を示す切換時間を可変に設定する切換時間設定ステップを含む態様59に記載の情報処理方法。
(態様61)
前記第2状態に遷移する際に、前記第1の画像処理に使用されるキャッシュメモリに対する電力の供給を継続するか否かを判定するキャッシュ電源判定制御ステップを含む態様45に記載の情報処理方法。
(態様62)
前記キャッシュ電源判定制御ステップは、前記第1の画像処理を実行する間隔が閾値よりも長い場合は、前記キャッシュメモリに対する電力の供給を停止すると判定し、前記第1の画像処理を実行する間隔が前記閾値以下の場合は、前記キャッシュメモリに対する電力の供給を継続すると判定する態様61に記載の情報処理方法。
(態様63)
前記第1の画像処理を実行する場合の主記憶装置へのアクセス頻度は、前記第2の画像処理を実行する場合に比べて少ない態様43に記載の情報処理方法。
(態様64)
前記第1画像処理ステップは、前記第1の画像処理に利用されるデータの少なくとも一部を保存する、前記主記憶装置とは異なる内部メモリに保存されたデータを用いて前記第1の画像処理を実行する態様63に記載の情報処理方法。
(態様65)
前記イメージセンサ制御ステップで取得する、前記第1の画像処理に用いられる画像が、時間の経過とともに変化する態様43に記載の情報処理方法。
(態様66)
学習期間内に繰り返し実行された前記第1の画像処理の結果に基づいて、前記イメージセンサから取得可能な全体画像を構成する複数のサブ領域ごとに、変化が検出された回数を対応付けた統計情報を生成する統計情報管理ステップを含み、前記第1画像処理ステップは、前記全体画像のうち、変化が検出された回数が閾値以上の前記サブ領域の画像を前記イメージセンサ制御ステップで取得させ、その取得させた画像を用いて前記第1の画像処理を実行する態様65に記載の情報処理方法。
(態様67)
前記第1の画像処理の開始前に、前記第1の画像処理に利用されるデータをプリロードするプリロードステップを含む態様43に記載の情報処理方法。
(態様68)
マイコンが、前記第1画像処理ステップを実行する態様43に記載の情報処理方法。
(態様69)
前記イメージセンサが、前記第1画像処理ステップを実行する態様43に記載の情報処理方法。
(態様70)
前記第1画像処理ステップでは、前記イメージセンサ制御ステップで取得させた画像が、前記情報処理装置が取得可能な画像であるか否かを判断する処理を行う態様69に記載の情報処理方法。
(態様71)
前記第2の画像処理を、前記情報処理装置とは異なる第2の情報処理装置に実行させるオフロード制御ステップを含む態様43に記載の情報処理方法。
(態様72)
前記情報処理装置が有するデバイスが定期的に実行する処理と、前記第1の画像処理の実行タイミングとを同期させる同期設定部を備える態様43に記載の情報処理方法。
(態様73)
前記デバイスは表示装置であり、前記デバイスが定期的に実行する処理は、表示内容を保持するためのリフレッシュ処理である態様72に記載の情報処理方法。
(態様74)
電力を蓄える蓄電部の残量に応じて、前記第1の画像処理の方法を切り替える切替制御ステップを含む態様43に記載の情報処理方法。
(態様75)
イメージセンサを制御するイメージセンサ制御ステップと、前記イメージセンサ制御ステップで前記イメージセンサから取得した画像を用いて、第1の画像処理の実行の可否を決定するための画像処理であって、前記第1の画像処理よりも消費電力が少ない第2の画像処理を実行する第1画像処理ステップと、を含む情報処理方法。
1 情報処理装置
10 SoC
20 電源装置
30 PMIC
40 ストレージデバイス
50 メインメモリ
60 ネットワークデバイス
70 イメージセンサデバイス
71 オシレータ
72 クロック制御部
73 CMOSイメージセンサ
101 プロセッサコア
102 内部メモリ
103 アクセラレータ
104 イメージセンサコントローラ
105 メモリコントローラ
106 ネットワークコントローラ
107 ストレージコントローラ
108 バス
109 高周波発振器
110 低周波発振器
111 クロック制御モジュール
112 割込みコントローラ
113 RTC
114 キャッシュメモリ
115 SIMDエンジン
120 イメージセンサ管理部
121 第1画像処理部
122 待機状態制御部
123 待機状態電力制御部
124 イメージセンサ制御部
125 キャッシュ電源制御判定部
126 統計情報管理部
127 プリロード部
130 第2画像処理部
140 電力管理部

Claims (6)

  1. イメージセンサから入力する第1の画像の変化がない場合は、前記第1の画像の変化を判定する第1の処理を実行しているときの電力よりも低い第1電力で次の前記第1の画像の入力を待ち
    前記イメージセンサから入力する前記第1の画像は、画像を処理する処理装置内に設けられる内部メモリに格納され、
    前記内部メモリに格納された前記第1の画像の変化を判定する第1の処理の実行中は、前記処理装置外に設けられる主記憶装置に供給される電力は第6電力であり、
    前記第1の画像の変化が検出された場合は、
    前記第2の画像は前記主記憶装置に格納され、前記主記憶装置に供給される電力は、前記主記憶装置にアクセス可能な第7電力であり、
    前記第6電力は前記第7電力よりも小さく、
    前記内部メモリの容量は前記主記憶装置の容量より小さく、
    前記第1の画像の変化がない場合は次の前記第1の画像の入力を第5時間待ち、
    前記第1の画像の変化があった場合は次の前記第1の画像の入力を、前記第5時間よりも短い第6時間待ち、前記第1の画像の変化領域が画像の所定の領域である場合に、前記第1の画像よりも解像度の高い第2の画像を前記イメージセンサから入力し、前記第2の画像を用いた処理を実行し、
    次の前記第1の画像の入力を前記第5時間待つ場合の情報処理装置の電力は第4電力であり、
    次の前記第1の画像の入力を前記第6時間待つ場合の情報処理装置の電力は、前記第4電力よりも高い第5電力である、
    情報処理装置。
  2. 次の前記第1の画像の入力を前記第5時間待つ場合は、前記主記憶装置に記憶されるデータの一部を記憶するキャッシュメモリへの電力供給を停止する省電力モードを利用し、
    次の前記第1の画像の入力を前記第6時間待つ場合は、前記キャッシュメモリへの電力供給を停止しない省電力モードを利用する、
    請求項1に記載の情報処理装置。
  3. 次の前記第1の画像の入力を前記第5時間待つ場合は、キャッシュメモリへの電力供給を停止する省電力モードを利用し、
    次の前記第1の画像の入力を前記第6時間待つ場合は、前記キャッシュメモリへの電力供給を停止しない省電力モードを利用し、
    前記第1の処理に背景画像との差分をとる処理がある場合は、主記憶装置に記憶されるデータの一部を記憶する前記キャッシュメモリへ電力供給する、
    請求項1または2に記載の情報処理装置。
  4. 次の前記第1の画像の入力を前記第5時間待つ場合は、前記主記憶装置に記憶されるデータの一部を記憶するキャッシュメモリへの電力供給を停止する省電力モードを利用し、
    次の前記第1の画像の入力を前記第6時間待つ場合は、前記キャッシュメモリへの電力供給を停止しない省電力モードを利用し、
    ウェアラブル機器である前記情報処理装置を装着したユーザが動いている場合は前記キャッシュメモリへの電力供給を停止する、
    請求項1乃至3のうちの何れか1項に記載の情報処理装置。
  5. 前記第2の画像を用いた処理を実行するアプリケーションから前記第1の処理を分離してオペレーティングシステムのカーネル内で実行する、
    請求項3または4に記載の情報処理装置。
  6. 前記第2の画像を用いた処理で必要とする鮮明な画像を取得するのに必要な時間よりも短い時間で取得できる画像であって、前記第2の画像を用いた処理では前記イメージセンサから入力され破棄される不鮮明な画像を、前記第1の処理に用いる前記第1の画像として利用する、
    請求項5に記載の情報処理装置。
JP2014187568A 2014-09-16 2014-09-16 情報処理装置 Active JP6356552B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014187568A JP6356552B2 (ja) 2014-09-16 2014-09-16 情報処理装置
TW104128714A TW201617781A (zh) 2014-09-16 2015-08-31 資訊處理裝置及圖像輸入裝置
US14/847,142 US10356320B2 (en) 2014-09-16 2015-09-08 Information processing device and image input device
CN201510567697.5A CN105430251A (zh) 2014-09-16 2015-09-09 信息处理设备和图像输入设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014187568A JP6356552B2 (ja) 2014-09-16 2014-09-16 情報処理装置

Publications (2)

Publication Number Publication Date
JP2016062148A JP2016062148A (ja) 2016-04-25
JP6356552B2 true JP6356552B2 (ja) 2018-07-11

Family

ID=55456086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014187568A Active JP6356552B2 (ja) 2014-09-16 2014-09-16 情報処理装置

Country Status (4)

Country Link
US (1) US10356320B2 (ja)
JP (1) JP6356552B2 (ja)
CN (1) CN105430251A (ja)
TW (1) TW201617781A (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
KR102586962B1 (ko) * 2016-04-07 2023-10-10 한화비전 주식회사 감시 시스템 및 그 제어 방법
JP2017208699A (ja) 2016-05-18 2017-11-24 ソニー株式会社 制御装置、制御方法、およびプログラム
US11184851B2 (en) * 2016-07-18 2021-11-23 Netgear, Inc. Power management techniques for a power sensitive wireless device
US10999793B2 (en) 2016-07-18 2021-05-04 Netgear, Inc. Power management techniques for a power sensitive wireless device
US9735950B1 (en) * 2016-10-18 2017-08-15 Omnivision Technologies, Inc. Burst mode clock data recovery circuit for MIPI C-PHY receivers
KR20180056962A (ko) * 2016-11-21 2018-05-30 삼성전자주식회사 전원 제어 회로를 포함하는 이벤트 기반 센서
KR102396500B1 (ko) * 2017-03-02 2022-05-11 소니 세미컨덕터 솔루션즈 가부시키가이샤 화상 센서, 및 제어 시스템
JP2018160799A (ja) * 2017-03-23 2018-10-11 ソニーセミコンダクタソリューションズ株式会社 制御装置、制御方法、プログラム、及び、電子機器システム
CN110799085B (zh) * 2017-05-10 2022-12-16 奥林巴斯株式会社 无线内窥镜和无线内窥镜系统
JP2018197628A (ja) * 2017-05-24 2018-12-13 東芝ライフスタイル株式会社 冷蔵庫
CN110663247A (zh) * 2017-06-27 2020-01-07 索尼半导体解决方案公司 成像设备、车辆使用系统和车辆监控系统
US10708496B2 (en) * 2018-03-01 2020-07-07 Cisco Technology, Inc. Analytics based power management for cameras
CN108711054B (zh) * 2018-04-28 2020-02-11 Oppo广东移动通信有限公司 图像处理方法、装置、计算机可读存储介质和电子设备
WO2019205889A1 (zh) * 2018-04-28 2019-10-31 Oppo广东移动通信有限公司 图像处理方法、装置、计算机可读存储介质和电子设备
CN110519503B (zh) * 2018-05-22 2021-06-22 维沃移动通信有限公司 一种扫描图像的获取方法及移动终端
JP7115058B2 (ja) * 2018-06-21 2022-08-09 日本電気株式会社 画像処理装置、画像処理方法、プログラム、および画像処理システム
US11064113B1 (en) 2018-12-27 2021-07-13 Gopro, Inc. Image capture device with an automatic image capture capability
JP2020136900A (ja) * 2019-02-19 2020-08-31 ソニーセミコンダクタソリューションズ株式会社 撮像装置、画像記録装置、および撮像方法
CN111623810A (zh) * 2019-02-27 2020-09-04 多方科技(广州)有限公司 移动侦测方法及其电路
KR20200141338A (ko) * 2019-06-10 2020-12-18 삼성전자주식회사 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 이미지 처리 시스템
US11438508B2 (en) * 2019-06-11 2022-09-06 Arizona Board Of Regents On Behalf Of Arizona State University Systems, methods, and apparatuses for implementing an image sensor reconfiguration framework for seamless resolution-based tradeoffs
US11580765B2 (en) 2019-09-02 2023-02-14 Tobii Ab Method and system for detecting physical presence
JP6918886B2 (ja) * 2019-09-30 2021-08-11 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、及び制御方法
CN111464679B (zh) * 2020-04-09 2021-05-25 Oppo广东移动通信有限公司 电子设备及其监控方法
CN115699012A (zh) * 2020-06-02 2023-02-03 索尼集团公司 信息处理装置、信息处理方法及程序
JP7008104B2 (ja) * 2020-06-22 2022-01-25 レノボ・シンガポール・プライベート・リミテッド 電子機器、及び制御方法
JP2022018997A (ja) * 2020-07-17 2022-01-27 ソニーセミコンダクタソリューションズ株式会社 固体撮像素子、撮像装置、および、情報処理システム
WO2022081142A1 (en) * 2020-10-13 2022-04-21 Google Llc Distributed sensor data processing using multiple classifiers on multiple devices
JP2022110719A (ja) * 2021-01-19 2022-07-29 キヤノン株式会社 撮像装置、撮像装置の制御方法およびプログラム
CN113657263A (zh) * 2021-08-16 2021-11-16 深圳多模智能科技有限公司 唤醒终端识别生物特征信息的方法、装置、终端及介质
CN117859108A (zh) * 2021-08-31 2024-04-09 索尼半导体解决方案公司 电子装置、处理方法和记录介质
US11696011B2 (en) 2021-10-21 2023-07-04 Raytheon Company Predictive field-of-view (FOV) and cueing to enforce data capture and transmission compliance in real and near real time video
US11792499B2 (en) * 2021-10-21 2023-10-17 Raytheon Company Time-delay to enforce data capture and transmission compliance in real and near real time video
US20230152989A1 (en) * 2021-11-15 2023-05-18 Samsung Electronics Co., Ltd. Memory controller adjusting power, memory system including same, and operating method for memory system
US11700448B1 (en) 2022-04-29 2023-07-11 Raytheon Company Computer/human generation, validation and use of a ground truth map to enforce data capture and transmission compliance in real and near real time video of a local scene

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7098899B1 (en) * 1999-09-21 2006-08-29 Intel Corporation Dual form low power, instant on and high performance, non-instant on computing device
JP2003144385A (ja) 2001-11-13 2003-05-20 Pentax Corp 電子内視鏡
JP4113387B2 (ja) * 2002-07-24 2008-07-09 シャープ株式会社 携帯端末装置並びに情報読取プログラム及びそのプログラムを記録した記録媒体
US20040212678A1 (en) * 2003-04-25 2004-10-28 Cooper Peter David Low power motion detection system
JP2005033649A (ja) * 2003-07-09 2005-02-03 Hirobumi Matsuo 監視回路,監視カメラおよび監視システム
JP4668095B2 (ja) * 2006-03-08 2011-04-13 シャープ株式会社 記録装置
WO2007105270A1 (ja) * 2006-03-10 2007-09-20 Fujitsu Limited 情報処理装置,動作態様制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2007318262A (ja) * 2006-05-23 2007-12-06 Sanyo Electric Co Ltd 撮像装置
US7966458B2 (en) * 2007-03-31 2011-06-21 Intel Corporation Method and apparatus for controlling a primary operating system and an appliance operating system on the same machine
JP2010124381A (ja) * 2008-11-21 2010-06-03 Hitachi Kokusai Electric Inc 監視システム
JP2010154070A (ja) 2008-12-24 2010-07-08 Olympus Imaging Corp カメラ
JP5640586B2 (ja) * 2010-09-07 2014-12-17 株式会社リコー 画像撮像システム
WO2012090310A1 (ja) * 2010-12-28 2012-07-05 ソシエテ ド テクノロジー ミシュラン 空気入りタイヤ
US9936132B2 (en) * 2012-10-26 2018-04-03 The Regents Of The University Of Michigan CMOS image sensors with feature extraction
US9298457B2 (en) * 2013-01-22 2016-03-29 Altera Corporation SIMD instructions for data compression and decompression
KR20150026395A (ko) * 2013-09-02 2015-03-11 삼성전자주식회사 이미지 촬영 방법 및 그 전자 장치
WO2015055655A1 (en) * 2013-10-14 2015-04-23 Narrative AB Method of operating a wearable lifelogging device
KR102209729B1 (ko) * 2014-04-04 2021-01-29 삼성전자주식회사 인식 영역에 기반하여 콘텐트를 검출하는 전자 장치 및 방법
US9544497B2 (en) * 2014-05-21 2017-01-10 Qualcomm Incorporated System and method for determining image resolution

Also Published As

Publication number Publication date
US10356320B2 (en) 2019-07-16
TW201617781A (zh) 2016-05-16
US20160080652A1 (en) 2016-03-17
JP2016062148A (ja) 2016-04-25
CN105430251A (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
JP6356552B2 (ja) 情報処理装置
WO2020187157A1 (zh) 一种控制方法和电子设备
US11102398B2 (en) Distributing processing for imaging processing
US10198070B2 (en) Fast wake-up in a gaze tracking system
CN111586286A (zh) 利用多个相机改变图像的倍率的电子装置及方法
JP5782061B2 (ja) 移動物体の動作を認識する方法および携帯式コンピュータ
US9665155B2 (en) Techniques for increasing energy efficiency of sensor controllers that receive data from one or more sensors
WO2014177049A1 (zh) 录像帧率调整方法和装置
JP5741568B2 (ja) 携帯端末、動作間隔設定方法及びプログラム
CN101282265B (zh) 一种基于无线传感器网络节点的视觉传感器驱动方法
CN111783375A (zh) 芯片系统及相关装置
CN113986002A (zh) 帧处理方法、装置及存储介质
CN110968252B (zh) 交互系统的显示方法、交互系统及电子设备
CN113014804A (zh) 图像处理方法、装置、电子设备和可读存储介质
CN108337442A (zh) 拍摄预览显示方法、装置、终端及存储介质
KR20160109586A (ko) 이미지 처리 시스템, 및 이를 포함하는 모바일 컴퓨팅 장치
CN111316631B (zh) 拍摄装置的控制方法和拍摄装置
EP3284263A1 (en) Media hub device and cache
Kim et al. Low-Power Always-on Camera (AoC) System with Workload Offloading to CMOS Image Sensor
RU2782960C1 (ru) Способ управления и электронное устройство
US9946956B2 (en) Differential image processing
KR101286328B1 (ko) 멀티미디어 스토리지 카드 시스템
KR101393793B1 (ko) 3차원 그래픽 구현 기반의 cpu 부하 최적화 방법 및 3차원 그래픽 구현 기반의 cpu 부하 최적화 장치
JP2010015233A (ja) 集積回路及び電子機器
CN117114964A (zh) 一种缓存图像帧的方法、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160912

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180614

R150 Certificate of patent or registration of utility model

Ref document number: 6356552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350