以下、図面を参照して本発明の実施例を詳細に説明するが、この発明は以下の実施の形態に限定されない。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
なお、本実施例において説明される各機能ブロックは必ずしも個別のハードウェアである必要はない。すなわち、例えばいくつかの機能ブロックの機能は、1つのハードウェアにより実行されても良い。また、いくつかのハードウェアの連係動作により1つの機能ブロックの機能または、複数の機能ブロックの機能が実行されても良い。また、各機能ブロックの機能は、CPUがメモリ上に展開したコンピュータプログラムにより実行されても良い。
(実施例1)
本実施例では、撮像装置を例にとって説明するが、入力された画像信号を符号化し、符号化された静止画データ、符号化された動画データを生成することができる装置であればどのような装置でも良い。たとえば、携帯電話、スマートフォン、タブレット型情報端末、ノート型情報端末、コンピュータ等であってもよい。
本実施例の撮像装置は、撮像部、符号化(復号化)部、を有する。撮像部は、レンズにより取得された被写体の光学像を光電変換し、得られたアナログ画像信号をデジタル画像信号に変換する。そして、符号化(復号化)部は、撮像部により得られたデジタル画像信号を符号化する。本実施例の撮像装置は、動画記録モードにおいて、動画記録開始の指示があると、符号化(復号化)部は、順次取得される画像信号を動画として符号化するとともに、動画記録開始の指示に対応する画像信号を静止画として符号化をする。動画として符号化する場合は、撮像部により得られた画像信号をフレーム内予測符号化処理およびフレーム間予測符号化処理の両方を用いて符号化する。一方、静止画として符号化する場合は、撮像部により得られた画像信号をフレーム内予測符号化処理を用いて符号化する。静止画データは、サムネイル画像として動画データとともに動画ファイルに格納して記録媒体に記録されるほか、動画データとは別の静止画ファイルとして記録媒体に記録されてもよい。または、動画データが階層符号化されている場合には、動画として符号化された画像に対応する動画データとは別の階層に静止画データが含まれるように階層構造を決定する。なお、サムネイル画像として静止画データを符号化する場合には、画像信号を縮小してから静止画として符号化してもよい。
また、本実施例の撮像装置は、さらに画像処理部を有する。動画記録モードにおいて、動画記録開始の指示があると、符号化(復号化)部は、順次取得される画像信号を動画として符号化するとともに、動画記録開始の指示に対応する画像信号を静止画として符号化をする。このとき、画像処理部は、静止画として符号化される画像信号に、動画と異なる所定のフォーマットに変換する処理を実行する。たとえば、動画として符号化される画像信号がRGBの色信号で表現されるRGBフォーマットであったとすると、静止画として符号化する画像信号については、輝度信号と色差信号で表現されるYUVフォーマットに変換する。なお、動画として符号化される画像信号がYUVフォーマットであれば、静止画として符号化される画像信号を変換しなくてもよい。また、たとえば、動画として符号化される画像信号がYUVフォーマットの4:4:4フォーマットであったとすると、静止画として符号化する画像信号については、YUVフォーマットの4:2:0フォーマットに変換する。すなわち、輝度成分と色差成分の割合を変換する。なお、動画として符号化される画像信号が4:2:0フォーマットであれば、静止画として符号化される画像信号を変換しなくてもよい。また、たとえば、動画として符号化される画像信号の輝度成分のビット深度が10bitであったとすると、静止画として符号化する画像信号については、輝度成分のビット深度を8bitに変換する。すなわち、輝度成分のビット深度を変換する。なお、動画として符号化される画像信号の輝度成分が8bitであれば、静止画として符号化される画像信号を変換しなくてもよい。また、たとえば、動画として符号化される画像信号の色差成分のビット深度が10bitであったとすると、静止画として符号化する画像信号については、色差成分のビット深度を8bitに変換する。すなわち、色差成分のビット深度を変換する。なお、動画として符号化される画像信号の色差成分が8bitであれば、静止画として符号化される画像信号を変換しなくてもよい。
また、本実施例の撮像装置は、符号化部においても、動画として符号化する場合と静止画として符号化する場合とで、異なる符号化パラメータを設定する。たとえば、静止画として符号化する際の符号化ユニットの最大サイズを、動画として符号化する際の符号化ユニットの最大サイズをよりも小さくする。また、たとえば、静止画として符号化する際の符号化ユニットの最初サイズを、動画として符号化する際の符号化ユニットの最小サイズをよりも大きくする。
また、本実施例の撮像装置の符号化部においては、動画として符号化する際には、符号化部で量子化された画像を復号して得られた画像に対してデブロッキングフィルタ処理および/またはSAO処理を行う。一方で、静止画として符号化する際には、符号化部で量子化された画像を復号して得られた画像に対してデブロッキングフィルタ処理およびSAO処理を行わない。
このような構成とすることで、本実施例の撮像装置は、簡易的な構成で動画データと静止画データを生成することができる。また、そのため、装置のコスト高を抑制することができる。また、このように静止画として符号化する際に、画像を動画と異なるフォーマットに変換することで、静止画として符号化した画像データに関しては、今後登場してくる他の再生機器で再生できる可能性を上げることができる。
なお、静止画として符号化する画像信号は、動画記録開始の指示に応じたタイミングで撮像された画像データであるが、たとえば、動画記録開始の指示の直後に撮像された1フレーム目、2フレーム目の画像であってもよいし、静止画記録開始の指示が入力されるよりも前に撮像された画像であってもよい。また、この場合、静止画として符号化したときの符号化パラメータや符号量の情報に基づいて、動画として符号化する際の符号化パラメータ、量子化ステップ等を決定してもよい。このような構成とすることで、動画データの最初の画質とデータ量を最適な状態に近づけることができる。
また、本実施例の撮像装置は、画像信号を動画データとして符号化する際に、フレーム内予測符号化処理のみを用いてもよい。また、本実施例の撮像装置は、記録媒体に記録された動画データ、静止画データを復号化して表示部表示させることもできる。
以下、このような撮像装置について説明する。
<全体構成>
まず、図1を用いて、本実施例の撮像装置100の構成を説明する。
本実施例の撮像装置100は、図1に示すように、CPU101と、RAM102と、ROM103と、操作部104とを有する。また、撮像装置100は、撮像部110と、画像処理部111と、マイクユニット120と、音声処理部121と、スピーカユニット122とを有する。また、撮像装置100は、符号化復号化処理部130と、表示部140と、表示制御部141と、記録再生部150と、記録媒体151と、通信部160とを有する。
なお、CPUは、Central Processing Unitの略称である。RAMは、Random Access Memoryの略称である。ROMは、Read Only Memoryの略称である。
本実施例の撮像装置100において、CPU101は、RAM102をワークメモリとしてROM103に記録された各種プログラムをRAM102に展開し、プログラムに応じて撮像装置100の各ブロックを制御する。操作部104は、例えば、電源ボタン、記録ボタン、ズーム調整ボタン、オートフォーカスボタン、メニュー表示ボタン、モード切替スイッチ、決定ボタン等の各種操作を入力するスイッチ類を有する。また、カーソルキー、ポインティングデバイス、タッチパネル、ダイヤル等のどのようなタイプの操作子であってもよい。操作部104は、ユーザによりこれらのキーやボタン、タッチパネルが操作されるとCPU101に操作信号を送信する。操作部104の各操作部材は、表示部に表示される種々の機能アイコンを選択操作することなどにより、場面ごとに適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとしては、例えば終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン等がある。例えば、メニューボタンが押されると各種の設定可能なメニュー画面が表示部に表示される。利用者は、表示部に表示されたメニュー画面と、上下左右の4方向ボタンやSETボタンとを用いて直感的に各種設定を行うことができる。なお、操作部104は、表示部に対する接触を検知可能なタッチパネルであってもよい。タッチパネルは、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサ方式等、様々な方式のタッチパネルのうちいずれの方式のものを用いても良い。
撮像部110は、レンズにより取り込まれた被写体の光学像を、絞りにより光量を制御して、CCDセンサやCMOSセンサ等の撮像素子により画像信号に変換し、得られたアナログ画像信号をデジタル画像信号に変換して一時的にRAM102に記憶する。RAM102に記憶されたデジタル画像信号は、その後、画像処理部111に送信される。画像処理部111は、デジタル画像信号のホワイトバランスや色、明るさなどをユーザに設定された設定値や画像の特性から自動的に判定した設定値に基づいて調整する画質調整処理を行い、処理をしたデジタル画像信号を再びRAM102に記憶する。また、画質調整処理済みまたは未処理のデジタル画像信号を、後述の表示制御部141に送信し、表示部140に撮像中の画像として表示することもできる。また、再生時においては、画像処理部111は、記録媒体151から記録再生部150によって読出され、符号化復号化処理部130において復号化された静止画ファイルや動画ファイルに含まれる画像データの画質調整等を行う。そして、画質調整済みまたは未処理のデジタル画像信号を、後述の表示制御部141に送信し、表示部140に画像として表示することもできる。
符号化復号化処理部130では、記録時においては、画像処理部111により処理されRAM102に記憶されたデジタル画像信号に対して、画像圧縮処理を行い、圧縮された動画データや静止画データを生成し、RAM102に一時的に記憶する処理を行う。また、再生時においては、記録媒体151から読出された画像ファイルの圧縮された動画データや静止画データを復号してデジタル画像信号を抽出し、RAM102に記憶していく処理を行う。符号化復号化処理部130の詳細な動作については後述する。本実施例においては、特に符号化復号化処理部130は、様々な圧縮符号化方式の動画データ、静止画データを生成することができる。なお、一般に、フレーム内符号化されたフレーム画像データをIピクチャと呼び、前方のフレームとの差分を用いてフレーム間符号化された画像データをPピクチャと呼び、前方後方のフレームとの差分を用いてフレーム間符号化された画像データをBピクチャと呼ぶ。
マイクユニット120は、たとえば、撮像装置100のハウジング内に内蔵された無指向性のマイクとAD変換部を有する。マイクユニット120では、マイクにより周囲の音声を集音(収音)し、取得したアナログ音声信号をAD変換部で、デジタル信号に変換してRAM102に一時的に記憶させる。RAM102に記憶されたデジタル音声信号は、その後、音声処理部121に送信される。音声処理部121では、記録時においては、RAM102に記憶されたデジタル音声信号の、レベルの適正化処理や雑音低減処理等の処理を行い、処理をしたデジタル音声信号を再びRAM102に記憶する。また、必要に応じて、音声信号を圧縮する処理を行う。音声圧縮方式については、AC3、AAC等の公知の一般的な音声圧縮方式を用いているため説明を省略する。また、再生時においては、記録媒体151から記録再生部150によって読出された音声ファイルや動画ファイルに含まれる圧縮音声データ復号する処理や音声レベルの適正化処理、なども行い、順次RAM102に記憶する処理も行う。スピーカユニット122は、スピーカとDA変換部とを有する。スピーカユニット122では、音声処理部121によりRAM102に記憶されたデジタル音声信号を読出してアナログ音声信号に変換し、アナログ音声信号によりスピーカから音声を出力する。
表示部140は、例えば、液晶表示デバイス、または有機EL表示デバイスなどからなり、表示制御部141の制御により画像を表示する。表示部140は、LEDディスプレイなど、ユーザに画像を提供することができればどのようなものであっても良い。表示制御部141では、画像処理部111により処理され、RAM102に記憶されたデジタル画像信号に基づいて、表示部140に画像を表示する。また、表示制御部141は、表示部140に表示するデジタル画像信号に基づく映像信号に対し、マトリクス変換、ブライト調整、コントラスト調整、ガンマ調整、クロマゲイン調整、シャープネス調整等の画像信号処理を行ってもよい。
記録再生部150では、動画記録時においては、RAM102に記憶されている、符号化復号化処理部130により生成された動画データ、静止画データ及び、音声処理部121で生成された音声データをよみだす。そして、撮影日等の各種情報とともに、動画ファイルとして記録媒体151に書き込む。また静止画記録時においては、RAM102に記憶されている静止画データを撮影日等の各種情報とともに静止画ファイルとして記録媒体151に記録する。動画ファイルを記録媒体151に記録する際は、圧縮動画データと音声データとからなるデータストリームを形成し、順次記録媒体151に記録していき、ファイルヘッダ等を付加してFATやexFAT等のファイルフォーマットに適合した形で動画ファイルを記録媒体に記録する。また、再生時においては、記録媒体151に記録された動画ファイルや静止画ファイルを前述のファイルフォーマットに従って読出す。読出された動画ファイルや静止画ファイルは、CPU101によりヘッダが解析され、圧縮された動画データ、静止画データが抽出される。抽出された圧縮動画データ、静止画データは、RAM102に記憶されて、符号化復号化処理部130により復号される。
また、記録媒体151は、撮像装置に内蔵された記録媒体でも、取外し可能な記録媒体でもよい。例えば、ハードディスク、光ディスク、光磁気ディスク、CD−R、DVD−R、磁気テープ、不揮発性の半導体メモリ、フラッシュメモリ、などのあらゆる方式の記録媒体を含む。取り外し可能な記録媒体を用いる場合には、記録再生部150は、それらの取り外し可能な記録媒体を装着、排出するための機構を含む。
また、通信部160は、撮像装置100とは異なる外部装置との間で、制御信号や動画ファイル、静止画ファイル、各種データ等を送受信するものであり、有線接続、無線接続を問わず接続可能である。なお、通信方式はどのような方式であっても良い。
ここで、前述の画像処理部111、音声処理部121、符号化復号化処理部130、表示し制御部141、記録再生部150は、それぞれ、前述の各機能を実行するプログラムを搭載したマイクロコンピュータであってもよい。また、CPU101がROM103に記録された前述の処理を実行する為のプログラムをRAM102に展開して実行するようにしてもよい。
なお、本実施例では記録媒体151のファイル管理システムは組み込み機器で一般的に使用されているFATファイルシステムを使用するものとして説明をする。FATファイルシステムの技術自体は広く公知であるので、本実施例の特徴的な動作でのみその説明をする。また、FATファイルフォーマットであるNTFSフォーマットやexFATフォーマットなどを用いても良い。
<基本動作>
次に、本実施例の撮像装置100の動作について説明する。
本実施例の撮像装置100において、CPU101は、ユーザによって操作部104が操作され電源を投入する指示が捜査部104から入力されると、不図示の電源供給部を撮像装置100の各ブロックに電源を供給するように制御する。
次に、CPU101は、操作部104により設定されたカメラのモードが、再生モードであるか、静止画記録モード、動画記録モードであるかを判定する。
まず、動画記録モードについて説明する。
操作部104により設定されたカメラのモードが、動画記録モードである場合、CPU101は、撮像装置100の各ブロックを制御し、以下の動作を実行させる。
まず、撮像部110は、得られたデジタル画像信号をRAM102に送信し、一時的に記憶させる。次に、画像処理部111は、設定された撮影設定に従って、RAM102に記憶されたデジタル画像信号に、前述の各種画質調整処理を行い、処理をしたデジタル画像信号を再びRAM102に記憶する。また、表示制御部141は、RAM102に記憶された処理済みのデジタル画像信号または未処理のデジタル画像信号を読み出して表示部140に表示させる。
すなわち、操作部104から動画記録開始の指示が入力されるまでは、表示部140に撮像部110により撮像された画像に基づく画像が表示される。
次に、操作部104から動画記録開始の指示が入力されると、撮像部110は、得られたデジタル画像信号をRAM102に送信し、一時的に記憶させる。次に、画像処理部111は、設定された撮影設定に従って、RAM102に記憶されたデジタル画像信号に、前述の各種画質調整処理を行い、処理をしたデジタル画像信号を再びRAM102に記憶する。また、表示制御部141は、RAM102に記憶された処理済みのデジタル画像信号または未処理のデジタル画像信号を読み出して表示部140に表示させる。さらに、符号化復号化処理部130は、画像処理部111によって処理されたデジタル画像信号を符号化するための符号化処理を行う。なお、記録時の符号化復号化処理部130の詳細な動作については後述する。なお、本実施例の符号化復号化処理部130は、RAM102に記録された画像信号を動画として符号化するとともに、静止画として符号化する。
また、音声処理部121は、マイクユニットから入力されたデジタル音声信号に対して種々の調整処理を適用し、処理をしたデジタル音声信号を再びRAM102に記憶する。さらに、必要に応じて、予め設定された音声用の符号化方式に従って符号化処理を実行し、得られた符号化された音声データをRAM102に記憶させる。なお、以後の説明では、音声データについては説明を省略するが、動画データとともに処理されるものとする。
次に、記録再生部150は、RAM102に一時記憶されている符号化済みの動画データを、記録媒体151のファイルシステムに適合する動画ファイルとして記録する。また、CPU101により生成された必要な管理情報を動画ファイルに含めて記録する。
CPU101は、動画記録終了の指示が入力されるまでは、これら一連の処理を撮像装置100の各ブロックに実行させる。
次に、操作部104から動画記録終了の指示が入力されると、符号化復号化処理部130は、記録終了の指示が入力されるまでのデジタル画像信号を符号化し終わるまで動作し、その後動作を終了する。また、記録再生部150も、RAM102に一時記憶されている符号化済みの動画データを記録媒体151に記録し終わるまで動作し、その後、動作を終了する。それ以外の撮像部110、画像処理部111、表示部140、表示制御部141、は動作を継続する。
以上のように、本実施例の撮像装置100は、動画記録モードにおいて動画ファイルを記録媒体151に記録してゆく。
次に、静止画記録モードについて説明する。
操作部104により設定されたカメラのモードが、静止画記録モードである場合、CPU101は、撮像装置100の各ブロックを制御し、以下の動作を実行させる。
まず、撮像部110は、得られたデジタル画像信号をRAM102に送信し、一時的に記憶させる。次に、画像処理部111は、設定された撮影設定に従って、RAM102に記憶されたデジタル画像信号に、前述の各種画質調整処理を行い、処理をしたデジタル画像信号を再びRAM102に記憶する。また、表示制御部141は、RAM102に記憶された処理済みのデジタル画像信号または未処理のデジタル画像信号を読み出して表示部140に表示させる。
すなわち、操作部104から静止画記録開始の指示が入力されるまでは、表示部140に撮像部110により撮像された画像に基づく画像が表示される。
次に、操作部104から静止画記録開始の指示が入力されると、撮像部110は、得られたデジタル画像信号をRAM102に送信し、一時的に記憶させる。次に、画像処理部111は、設定された撮影設定に従って、RAM102に記憶されたデジタル画像信号に、前述の各種画質調整処理を行い、処理をしたデジタル画像信号を再びRAM102に記憶する。また、表示制御部141は、RAM102に記憶された処理済みのデジタル画像信号または未処理のデジタル画像信号を読み出して表示部140に表示させる。さらに、符号化復号化処理部130は、画像処理部111によって処理されたデジタル画像信号を静止画として符号化するための符号化処理を行う。
次に、記録再生部150は、RAM102に一時記憶されている符号化済みの静止画データを、記録媒体151のファイルシステムに適合する静止画ファイルとして記録する。また、CPU101により生成された必要な管理情報を静止画ファイルに含めて記録する。
以上のように、本実施例の撮像装置100は、静止画記録モードにおいて静止画ファイルを記録媒体151に記録する。
次に、再生モードについて、説明する。
操作部104により再生モードが設定されると、CPU101は、再生状態に移行させるように制御信号を撮像装置100の各ブロックに送信し、以下のような動作をさせる。
記録再生部150は、記録媒体151に記録された、符号化された動画データと符号化された音声データとからなる動画ファイルを読み出す。CPU101は読み出された符号化された動画データと符号化された音声データとを、RAM102にバッファする。そして、CPU101は、符号化された動画データを復号するように符号化復号化処理部130を制御する。また、CPU101は、符号化された音声データを復号するように音声処理部121を制御する。
そして、CPU101は、符号化復号化処理部130によって復号された動画データの各フレームデータを表示制御部141に送り、表示部140に各フレームの画像を表示させる。また、音声処理部121で、復号された音声データをスピーカユニット122に送信し、音声データに対応する音声を出力させる。
以上のように、本実施例の撮像装置100は、再生モードにおいて動画ファイルを再生して、動画ファイルの動画データに基づく画像を表示部140に表示する。
<符号化復号化処理部130の構成>
ここで、本実施例の符号化復号化処理部130の詳細な構成について説明する。
符号化復号化処理部130における符号化動作は、大符号化ユニット単位に分割して実行する。この大符号化ユニットはサイズは、輝度成分換算で、64画素×64画素、32画素×32画素、16画素×16画素のいずれかであり、符号化復号化処理部130が符号化開始時に選択することができる。なお、大符号化ユニットに対する予測、変換、量子化、エントロピー符号化などの処理は、符号化ブロック単位で行う。符号化ブロックは、輝度成分の大符号化ユニット、色差成分の大符号化ユニットを階層的に四分木分割(quadtree partitioning)を行ったものである。
また、本実施例において、フレーム内予測符号化をイントラ符号化、フレーム間予測符号化をインター符号化と呼ぶこともある。イントラ符号化、インター符号化共に、予測差分画像に対する変換、量子化処理を行う。この処理単位は、符号化ブロックと同じサイズまたはそれよりも小さいサイズで行われる。また、イントラ符号化、インター符号化共に、予測処理を行う。この処理単位は、符号化ブロックと同じサイズまたはそれよりも小さいサイズで行われる。
図2は、本実施例の符号化復号化処理部130の特に、符号化のための構成を示す図である。図2に示すように、本実施例の符号化復号化処理部130は、ブロック分割部201、加算器202、直交変換部203、量子化部204、エントロピー符号化部205、符号量制御部206を有する。また、逆量子化部211、逆直交変換部212、加算器213、ループフィルタ214、フレームメモリ215を有する。動き検出部221、動き補償部222、イントラ予測部223、スイッチ231を有する。
ブロック分割部201は、入力されたデジタル画像信号を符号化ブロックに分割する。なお、前述したように、符号化ブロックは、大符号化ユニットを分割した単位であり、大符号化ユニットのサイズは、別途画像の複雑度や撮像装置100の撮影モード等に応じて決定されるものである。ブロック分割部201は、大符号化ユニットのサイズと同じサイズまたはそれよりも小さいサイズの符号化ブロックにデジタル画像信号を分割する。すなわち、大符号化ユニットのサイズが64画素×64画素であれば、64画素×64画素から8画素×8画素までのサイズのいずれかのサイズに分割する。なお、この先、輝度成分、色差成分は、別々に符号化されるが、動作はほぼ同じであるため、輝度成分についての説明を行う。
加算器202は、ブロック分割部201で、符号化ブロック単位に分割された画像と、イントラ予測部223または動き補償部222で生成された予測画像との差分画像を生成する。直交変換部203は、加算器202で生成された、差分画像に対して直交変換を行う。具体的には、離散コサイン変換(DCT変換)および/または離散サイン変換(DST変換)を行う。なお、直交変換部203は、符号化ブロック単位の画像をさらに分割した単位で直交変換することもできる。量子化部204は、直交変換部203の直交変換により生成された変換係数を、符号量制御部206により指定された量子化パラメータを用いて量子化する。
エントロピー符号化部205は、量子化部204で量子化された変換係数、及び、動きベクトル、予測モード等、符号化過程で生じる符号化パラメータを取得し、これらのデータに対して、エントロピー符号化処理を行う。具体的には、CABAC(Context−based Adaptive Binary Arithmetic Coding)を用いて算術符号化を行う。エントロピー符号化された情報は、CPU101の制御のもと、RAM102に順次蓄積されていく。また、エントロピー符号化された情報の符号量についての情報を符号量制御部206に送信する。符号量制御部206は、エントロピー符号化部205より受信した符号量の情報に基づいて、たとえば1フレームの画像の符号量が所定の符号量以内に収まるように、量子化部204の量子化パラメータを決定する。すなわち、符号化ブロック単位の画像に対応する符号量を積算し、目標としている所定の符号量を超えそうな場合には、量子化ステップが大きくなるように所定の符号量を大きく下回りそうな場合は、量子化ステップが小さくなるようにそれぞれ量子化パラメータを決定する。
このように、符号化復号化処理部130は、符号化ブロック単位で符号化された情報を順次生成し、CPU101は、RAM102に、符号化ブロック単位の符号化された情報を蓄積していく。
一方、符号化した符号化ブロックより後に符号化する別の符号化ブロックの符号化に用いる画像を生成するために、符号化復号化処理部130はさらに以下の構成が以下の動作を行う。
逆量子化部211は、量子化部204で量子化された変換係数を、量子化部204で用いられた量子化パラメータに基づいて逆量子化する。逆直交変換部212は、逆量子化部211により逆量子化された変換係数を逆直交変換する。具体的には、逆離散コサイン変換(IDCT変換)および/または逆離散サイン変換(IDST変換)を行う。当然、離散コサイン変換された変換係数には逆離散コサイン変換を行い、離散サイン変換された変換係数には逆離散サイン変換を行う。逆直交変換により生成される画像は、実質的に加算器202の出力である差分画像に相当するが、量子化、逆量子化により情報に差が生じている状態である。加算器213は、逆直交変換部212で生成された差分画像と、イントラ予測部223または動き補償部222により生成された予測画像を加算する。これにより局所的に復号化された画像(ローカルデコード画像)が生成される。なお、加算器213で生成されたローカルデコード画像は、ループフィルタ214および、イントラ予測部223に送信される。
ループフィルタ214は、ローカルデコード画像の予測の処理単位もしくは、変換・量子化の処理単位でフィルタ処理を施し、ブロックノイズを除去し、参照画像として使用されるローカルデコード画像の品質を向上させるものである。すなわち、いわゆるデブロッキングフィルタ処理が施される。また、さらに、フィルタを施したローカルデコード画像に対して、信号波形の歪みを補正するためのSAO(Sample Adaptive Offset)処理がさらに施される。フィルタ処理後のローカルデコード画像はフレームメモリ215に格納される。
フレームメモリ215は、ループフィルタ214で画質補正されたローカルデコード画像を保存するメモリである。このメモリは、RAM102と同じメモリであってもよいし、符号化用に別途設けられたメモリであってもよい。フレームメモリ215に保存されているローカルデコード画像は、以下の説明のフレーム間予測時に参照画像として使用される。なお、前述したように動き検出部221および動き補償部222、イントラ予測部223の予測の単位は、符号化ブロックそのままのサイズまたは、符号化ブロックをさらに分割した単位で行われる。
動き検出部221は、フレーム間予測符号化(インター符号化)を行う際に使用される。動き検出部221は、フレームメモリ215に格納されたローカルデコード画像のうち、ブロック分割部201で分割された符号化ブロックの画像の予測単位の画像と、類似度の高い位置をブロックマッチング法等により特定する。この位置を、符号化ブロックの予測単位ごとに特定し、符号化対象画像からの移動量を検出する。この移動量が動きベクトルである。検出された動きベクトルは、エントロピー符号化部205および、動き補償部222に送信される。動き補償部222は、フレームメモリ215に格納されたローカルデコード画像の、動き検出部221で検出された動きベクトルにより示される画像を予測画像として、スイッチ224に送信する。この予測画像も予測の単位で生成して、スイッチ224に送信される。
フレーム間予測符号化を行う場合には、この後、スイッチ224に入力された予測画像と、符号化ブロックの画像との差分は、前述した加算器202で生成され、前述の手順で直交変換、量子化エントロピー符号化が行われることになる。また、量子化された画像は再び逆量子化、逆直交変換を経て、スイッチ224から出力された予測画像と加算器213において加算されて、ローカルデコード画像となり、ループフィルタ214を通過後にフレームメモリに格納される。これを繰り返すことで、他のフレームの符号化ブロックのフレーム間予測符号化の際に、ローカルデコード画像を用いることができる。なお、符号化対象フレームの別のスライスのフレーム内間予測符号化に用いられるため、ループフィルタ214を通過する前のローカルデコード画像は、イントラ予測部223にも送信される。
一方、イントラ予測部223は、フレーム内予測符号化(イントラ符号化)を行う際に使用される。イントラ予測部223は、加算器213で生成されたループフィルタ214を通していないローカルデコード画像と、符号化ブロックの画像を取得する。そして、符号化ブロックの予測単位でフレーム内予測を行い、予測画像を生成してスイッチ224に送信する。フレーム内予測では、予測単位のブロックを、その予測単位のブロックの左下、左、上、右上の画素を参照として、予測画像の生成を行う。予測画像は、入力された符号化ブロック単位の画像と、ローカルデコード画像を複数の予測モードに基づいて生成した予測画像との差が小さいものになるように、予測モードを決定することで生成される。イントラ予測部223で決定された予測モードについての情報は、エントロピー符号化部205に送信され、生成された予測画像は、スイッチ224に送信される。
フレーム内予測符号化を行う場合には、この後、スイッチ224に入力された予測画像と、符号化ブロックの画像との差分は、前述した加算器202で生成され、前述の手順で直交変換、量子化エントロピー符号化が行われることになる。また、量子化された画像は再び逆量子化、逆直交変換を経て、スイッチ224から出力された予測画像と加算器213において加算されて、ローカルデコード画像となり、イントラ予測部223に送信される。これを繰り返すことで、同じフレームの別の符号化ブロックのフレーム内予測符号化の際に、ローカルデコード画像を用いることができる。なお、別のフレームのフレーム間予測符号化に用いられるため、ローカルデコード画像は、ループフィルタ214を通過後にフレームメモリにも格納される。
次に、スイッチ224は、前述したようにイントラ予測部223、動き補償部222から送信された予測画像を、符号化ブロックの符号化方式に合わせて選択する。符号化ブロックがフレーム間予測符号化(インター符号化)される場合には、動き補償部222の出力を選択し、フレーム内予測符号化(イントラ符号化)される場合には、イントラ予測部223の出力を選択する。
このような構成により、本実施例の符号化復号化部130は、入力された画像信号を、動画として符号化したり、静止画として符号化したりすることができる。なお、静止画として符号化を行う場合には、前述したフレーム間予測符号化は用いずに、フレーム内予測符号化を用いる。
<符号化処理>
続いて、本実施例の符号化復号化部130における、動画としての符号化、静止画としての符号化の動作について説明する。
まず、RAM102に記録された画像信号の動画として符号化する場合の動作について説明する。この場合、符号化復号化部130は、撮像部110により得られた画像信号に対してフレーム内予測符号化処理および/またはフレーム間予測符号化処理をする。
フレーム内予測符号化処理する場合は、ブロック分割部201において、画像信号を符号化ブロック単位に分割する。次に、加算器202において、ブロック分割部201で分割された符号化ブロック単位の画像とイントラ予測部223で生成された予測画像との差分画像を生成する。次に、直交変換部203において、加算器202で生成された差分画像を直交変換する。次に、量子化部204において、直交変換部203で生成された変換係数を、量子化制御部206により指定された量子化パラメータを用いて量子化する。次に、エントロピー符号化部205において、量子化された変換係数を算術符号化する。そして、エントロピー符号化部205の出力を、RAM102に格納させる。一方で、量子化部204で生成された量子化された変換係数は、逆量子化部211に入力される。逆量子化部211においては、量子化された変換係数を量子化部204で使用した量子化パラメータを用いて逆量子化する。次に、逆直交変換部212において、逆量子化部211の出力である変換係数を逆直交変換して、差分画像(逆量子化後)を生成する。次に、加算器213で、イントラ予測部223で生成された予測画像を加算して、局所的に復号化された画像(ローカルデコード画像)を生成する。加算器213で生成されたローカルデコード画像は、ループフィルタ214及び、イントラ予測部223に入力される。イントラ予測部223においては、加算器213から入力されたローカルデコード画像とブロック分割部201から入力された符号化ブロック単位の画像とを比較して、ローカルデコード画像に基づく予測画像を生成するための予測モードを決定する。そして、決定された予測モードに従って生成された予測画像をスイッチ224に出力する。一方、ループフィルタ214においては、加算器213から入力されたローカルデコード画像に対して、デブロッキングフィルタ処理および、SAO処理を施し、フレームメモリ215に格納する。今回は、フレーム内予測符号化する場合について説明しているので、スイッチ224は、イントラ予測部223の出力を選択して、加算器202に送信している。加算器202は、ブロック分割部201から入力された符号化ブロック単位の画像との差分画像を生成する。以上の処理を、フレーム内予測符号化処理する際には、繰り返し実行する。なお、エントロピー符号化部205から出力され、RAM102に格納された符号化済みの符号化ブロック単位の画像に対応するデータは、記録再生部150によって、順次記録媒体151に動画データの1フレームの画像として記録される。
フレーム間予測符号化処理する場合は、ブロック分割部201において、画像信号を符号化ブロック単位に分割する。次に、加算器202において、ブロック分割部201で分割された符号化ブロック単位の画像とイントラ予測部223で生成された予測画像との差分画像を生成する。次に、直交変換部203において、加算器202で生成された差分画像を直交変換する。次に、量子化部204において、直交変換部203で生成された変換係数を、量子化制御部206により指定された量子化パラメータを用いて量子化する。次に、エントロピー符号化部205において、量子化された変換係数を算術符号化する。そして、エントロピー符号化部205の出力を、RAM102に格納させる。一方で、量子化部204で生成された量子化された変換係数は、逆量子化部211に入力される。逆量子化部211においては、量子化された変換係数を量子化部204で使用した量子化パラメータを用いて逆量子化する。次に、逆直交変換部212において、逆量子化部211の出力である変換係数を逆直交変換して、差分画像(逆量子化後)を生成する。次に、加算器213で、動き補償部222で生成された予測画像を加算して、局所的に復号化された画像(ローカルデコード画像)を生成する。加算器213で生成されたローカルデコード画像は、ループフィルタ214に入力される。次に、ループフィルタ214においては、加算器213から入力されたローカルデコード画像に対して、デブロッキングフィルタ処理および、SAO処理を施し、フレームメモリ215に格納する。次に、動き検出部221において、ブロック分割部201から入力された符号化ブロック単位の画像に対応する、フレームメモリ215に格納されたローカルデコード画像を比較して、動きベクトルを検出する。次に、動き補償部222において、動き検出部221において検出された動きベクトルに対応するフレームメモリ215に格納された画像を予測画像としてスイッチ224に出力する。今回は、フレーム間予測符号化する場合について説明しているので、スイッチ224は、動き補償部222の出力を選択して、加算器202に送信している。加算器202は、ブロック分割部201から入力された符号化ブロック単位の画像との差分画像を生成する。以上の処理を、フレーム間予測符号化処理する際には、繰り返し実行する。なお、エントロピー符号化部205から出力され、RAM102に格納された符号化済みの符号化ブロック単位の画像に対応するデータは、記録再生部150によって、順次記録媒体151に動画データの1フレームの画像として記録される。
次に、RAM102に記録された画像信号の静止画として符号化する場合の動作について説明する。この場合、符号化復号化部130は、撮像部110により得られた画像信号をフレーム内予測符号化処理する。
ブロック分割部201において、画像信号を符号化ブロック単位に分割する。次に、加算器202において、ブロック分割部201で分割された符号化ブロック単位の画像とイントラ予測部223で生成された予測画像との差分画像を生成する。次に、直交変換部203において、加算器202で生成された差分画像を直交変換する。次に、量子化部204において、直交変換部203で生成された変換係数を、量子化制御部206により指定された量子化パラメータを用いて量子化する。次に、エントロピー符号化部205において、量子化された変換係数を算術符号化する。そして、エントロピー符号化部205の出力を、RAM102に格納させる。一方で、量子化部204で生成された量子化された変換係数は、逆量子化部211に入力される。逆量子化部211においては、量子化された変換係数を量子化部204で使用した量子化パラメータを用いて逆量子化する。次に、逆直交変換部212において、逆量子化部211の出力である変換係数を逆直交変換して、差分画像(逆量子化後)を生成する。次に、加算器213で、イントラ予測部223で生成された予測画像を加算して、局所的に復号化された画像(ローカルデコード画像)を生成する。静止画として符号化する場合には、フレーム間予測符号化を行わないので、ループフィルタ214、動き検出部221、動き補償部222は動作させない。一方で、イントラ予測部223は動作させる。すなわち、加算器213で生成されたローカルデコード画像は、イントラ予測部223に入力される。イントラ予測部223においては、加算器213から入力されたローカルデコード画像とブロック分割部201から入力された符号化ブロック単位の画像とを比較して、ローカルデコード画像に基づく予測画像を生成するための予測モードを決定する。そして、決定された予測モードに従って生成された予測画像をスイッチ224に出力する。スイッチ224は、イントラ予測部223で生成された予測画像を加算器202に出力し、加算器202は、ブロック分割部201から入力された符号化ブロック単位の画像との差分画像を生成する。以上の処理を、画像信号を静止画として符号化する際には繰り返し実行する。なお、エントロピー符号化部205から出力され、RAM102に格納された符号化済みの符号化ブロック単位の画像に対応するデータは、記録再生部150によって、順次記録媒体151に静止画データとして記録される。
なお、本実施例の撮像装置は、動画記録モードにおいて、動画記録開始の指示があると、撮像部110で撮像された画像を動画として符号化するとともに、動画記録開始の指示に対応する画像を静止画として符号化する。
このとき静止画として符号化する画像に対して、画像処理部111において、以下のような処理を行う。
たとえば、撮像された画像がRGB信号であり、動画として符号化する際にもRGB信号の状態で符号化を行う場合、静止画として符号化する画像についてはYUV信号に変換する。すなわち、動画として符号化する画像信号を静止画として符号化する場合には、画像処理部は、RGB信号の画像信号をYUV信号に変換することがある。なお、RAM102に格納された画像信号がYUV信号であれば変換しなくてもよい。また、撮像された画像信号が、RGB信号からYUV信号の4:4:4フォーマットに変換されており、動画として符号化も4:4:4フォーマットで行う場合、静止画として符号化する画像信号については、4:2:0フォーマットに変換する。なお、YUV信号の画像信号が4:2:2である場合にも、静止画として符号化する画像信号については、4:2:0フォーマットに変換する。すなわち、動画として符号化する画像信号を静止画として符号化する場合には、画像処理部111は、YUVフォーマットを変換することがある。なお、RAM102に格納された画像信号が4:2:0フォーマットあれば変換しなくてもよい。言い換えれば、静止画として符号化する際には、動画として符号化する画像を異なるYUVフォーマットに変換することがある。なお、YUVフォーマットの4:4:4フォーマット、4:2:0フォーマットは、輝度成分と色差成分の割合を示すものである。
また、RAM102に格納された画像信号の輝度成分が8bitを超えるビット深度の画像である場合には、符号化復号化部130に入力する前に、輝度成分を8bitの画像に変換する。また、RAM102に格納された画像信号の色差成分が8bitを超えるビット深度の画像である場合には、符号化復号化部130に入力する前に、色差成分を8bitの画像に変換する。すなわち、動画として符号化する画像信号を静止画として符号化する場合には、画像処理部111は、輝度成分、色差成分それぞれのビット深度を変換することがある。なお、RAM102に格納された画像信号が輝度成分、色差成分ともに8bitのビット深度であれば変換しなくてもよい。言い換えれば、静止画として符号化する際には、動画として符号化する画像を異なるビット深度の画像に変換することがある。
また、このとき静止画として符号化する画像に対して、符号化復号化部130においても、以下のような処理を行う。
復号化バッファの最大サイズが所定のサイズ以下で済むように、フレーム内予測符号化を行う場合に、符号量を所定の値より小さい値になるように量子化ステップ等を調節する。すなわち、動画として符号化するときには、フレーム内予測符号化された画像1画面分の符号量が前述の所定の値よりも小さくなるようにしなくてもよいが、静止画として符号化するときには、符号量が前述の所定の値よりも小さくなるようにする。たとえば動画に比べて量子化ステップを大きくするなどすることにより、符号量を抑える。
また、前述の大符号化ユニットのサイズを輝度換算で、64画素×64画素、32画素×32画素、16画素×16画素のいずれかの間に設定する。すなわち、動画として符号化する際に、大符号化ユニットのサイズがこれ以外のサイズであった場合であっても、静止画として符号化する際には、これらのサイズに設定することを示す。
また、画像を複数の領域(タイル)に分割して符号化する場合には、一つの分割領域の水平方向の幅を256以上、垂直方向の高さを64以上に設定する。すなわち、動画として符号化する際には、利用方法に応じて、分割符号化するときに、水平方向の幅を256未満、垂直方向の高さを64未満にすることがある。一方で、静止画として符号化する際には、少なくとも一つの分割領域の水平方向の幅を256以上、垂直方向の高さを64以上に設定する。
また、エントロピー符号化で用いる、コンテキスト変数について、動画として符号化を行う時には、最初の大符号化ユニットで用いられるコンテキスト変数を規定することがあるが、静止画として符号化する場合には、これを規定しないようにしてもよい。なお、コンテキスト変数については、静止画として符号化する場合に規定しても構わない。また、動画として符号化する場合には、直前の大符号化ユニットで用いられたコンテキスト変数を、次の大符号化ユニットを復号する際に参照して復号することがある。一方で、静止画として符号化する場合には、直前の大符号化ユニットで用いられたコンテキスト変数を、次の大符号化ユニットを復号する際に参照しなくても復号ができるようにしてもよい。
<符号化手順>
次に、撮像部110により撮像された画像の符号化について、得られたデジタル画像信号の順番に注目して説明を行う。本実施例の撮像装置100は、前述したように、動画撮影モードにおいて、撮像した画像の一部の画像を静止画データとして符号化を行うとともに、撮像した画像を動画データとしても符号化を行う。この手順について説明する。
図3は、撮像部110により撮像された画像の符号化復号化部130への入力順と、符号化順を示した図である。図3Aは、撮像部110により得られた画像の順番を示すものであり、図3Bは、各フレームの符号化順を示している。なお、図3において、時刻T0は、動画記録開始の指示が入力されたタイミングを、時刻T1は、動画の符号化が開始されるタイミングを、それぞれ示している。
図3Aに示すように、撮像部110により撮像された画像の入力順は、301、302、303、・・・という順である。一方、符号化復号化処理部130において動画データとして符号化される順番は、図3Bに示すように303、301、302、の順番である。これは、303に対応する画像がフレーム内符号化され、303の符号化済みの画像に基づいて、301がフレーム間予測符号化され、また、302も、303及び301の符号化済みの画像に基づいてフレーム間予測符号化されるためである。図3における、I、P、Bは、それぞれフレームの符号化タイプを示しており、Iはフレーム内予測符号化される画像を示し、Pはフレーム間予測符号化される画像の中でも、前方予測符号化される画像を示し、Bは、フレーム間予測符号化される画像の中でも、双方向予測符号化される画像を示す。
本実施例の符号化復号化部130は、動画記録開始の指示が入力された時刻T0から画像303が取得される時刻T1の間、動画データとしての符号化は行わないが、画像301をフレーム内予測符号化により静止画として符号化する。このとき、符号化復号化部130は、画像301または画像302をフレーム内予測符号化を実行する。符号化復号化部130で符号化された静止画データは、記録再生部150により記録媒体151に記録される。このときの静止画データは、動画ファイルの一部として記録されてもよいし、静止画ファイルとして、この後に符号化される動画データとは別のファイルとして記録媒体151に記録されてもよい。
このような手順で符号化を行うための動作を図4のフロー図を用いて説明する。
図4のフロー図は、動画記録モードに設定されたときをスタートとするフロー図であり、CPU101がRAM102に展開したプログラムに基づいて、撮像装置100の各ブロックを制御することにより、実行される処理である。
(S401)
CPU101は、動画記録モードに設定されると、まず、動画記録モードの終了が指示されていないかを判定する。すなわち、CPU101は、操作部104のスイッチを確認し、動画記録モード以外のモードに設定されていないか、または別の操作が入力されていないかを判定し、動画記録モードの終了が指示されているか否かを判定する。ここで、動画記録モードの終了が指示されていた場合(S401でYes)は、図4のフロー図に示す処理を終了する。一方、動画記録モードの終了が指示されていない場合(S401でNo)は、処理をS411に移行する。
(S411)
次に、CPU101は、操作部104のスイッチ操作により記録開始の指示が入力されたかを判定する。ここで、記録開始の指示が入力されていない場合(S411でNo)は、処理をS401に移行する。一方、記録開始の指示が入力されている場合(S411でYes)は、処理をS421に移行する。
(S421)
次に、CPU101は、撮像部110により得られたデジタル画像信号を画像処理部111に処理させ、その後、符号化対象の画像として、RAM102に記憶させる。
(S422)
次に、CPU101はRAM102に記憶された画像が、S411の記録開始の指示から1フレーム目の画像であるかを判定する。すなわち、図3で示す画像301に相当する画像であるか否かを判定する。ここで、S411の記録開始の指示から1フレーム目の画像であると判定した場合(S422でYes)は、処理をS423に移行する。一方、S411の記録開始の指示から1フレーム目の画像でないと判定した場合(S422でNo)は、処理をS431に移行する。
(S423)
次に、CPU101は、RAM102に記憶された画像を静止画用のフォーマットに変換するように、画像処理部111を制御する。変換については前述したように、たとえばYUV信号の4:2:0フォーマットへの変換、輝度成分のビット深度を8bitにする変換、色差成分のビット深度を8bitにする変換等が含まれる。そして、変換された画像を、静止画として符号化するように符号化復号化部130を制御する。具体的には、符号化復号化部130に、入力画像をフレーム内予測符号化データとして符号化させる。このときも、前述したように、符号化復号化部130において、符号量が所定の値よりも小さくなるように量子化ステップサイズを設定したり、大符号化ユニットのサイズが所定のサイズになるように設定したりする。そして、CPU101は、符号化復号化部130で符号化された静止画データを、記録再生部150により記録媒体151へ記録させる。この処理が終了すると、再び、処理をS421に移行させる。
(S431)
一方、S422で、RAM102に記憶された符号化対象の画像が、S411の記録開始の指示から1フレーム目の画像でないと判定した場合(S422でNo)は、以下の処理を行う。CPU101は、RAM102に記憶された符号化対象の画像が、S411の記録開始の指示から3フレーム目以降の画像であるかを判定する。すなわち図3で示す画像303以降に撮影された画像であるか否かを判定する。ここで、S411の記録開始の指示から3フレーム目以降の画像でないと判定した場合(S431でNo)、処理をS421に移行する。一方、S411の記録開始の指示から3フレーム目以降の画像であると判定した場合(S431でYes)、処理をS432に移行する。なお、ここで、3フレーム目以降であるかを判定基準としたが、これは動画の符号化手順に応じて4フレーム目、5フレーム目を判定基準としても構わない。
(S432)
次に、CPU101は、RAM102に記憶された画像を動画として符号化するように符号化復号化部130を制御する。具体的には、符号化復号化部130に、入力画像をフレーム内予測符号化及びフレーム間予測符号化を用いて符号化させる。そして、CPU101は、符号化復号化部130で符号化された動画データを、記録再生部150により記録媒体151へ記録させる。
(S433)
次に、CPU101は、操作部104のスイッチ操作により撮影終了の指示が入力されたかを判定する。ここで、記録開始の指示が入力されている場合(S433でYes)は、処理をS411に移行する。一方、撮影終了の指示が入力されていない場合(S433でNo)は、処理をS421に移行する。すなわち、撮影終了の指示が入力されるまではS421からS433の処理を繰り返し行うことで、撮像された画像を順次動画データとして符号化して記録媒体に記録させることができる。
以上、図4のフロー図を用いて説明したように、本実施例の撮像装置100は、動画撮影モードにおいて、符号化復号化部130に、所定のフレームの画像を静止画データとして符号化することができる。また、それ以降に撮影されたフレームについても、動画データとして符号化することができる。
以上説明したように、本実施例の撮像装置100は、動画を符号化する符号化復号化部130において、入力された画像を動画データとして符号化するだけでなく、静止画データとして符号化することができる。そのため、たとえば装置の回路規模増大を抑制することができ、動画データと静止画データを生成することができる。
また、本実施例の撮像装置100は、動画記録モードにおいて、入力された画像の所定のフレームの画像信号を、静止画として符号化して、記録媒体に記録することができる。また、この静止画として符号化した静止画データを静止画ファイルとして記録媒体に記録することができる。また、この静止画として符号化した静止画データを以降に動画として符号化した動画データを格納する動画ファイルに含める形で記録媒体に記録することができる。
また、本実施例の撮像装置100は、動画として符号化する画像のフォーマットやビット深度を所定の形式に変換してから静止画として符号化を行う。そのため、たとえば、汎用的な機器での静止画の再生が可能となる。
また、本実施例の撮像装置100は、静止画として符号化した静止画データを単体で静止画ファイルとして記録媒体に記録したり、または、動画ファイルに含めて記録したりしていた。しかし、たとえば、動画ファイルに含めて記録する場合にはサムネイル画像として静止画データを格納してもよい。このときは画像を静止画として符号化する前に、さらに画像の縮小処理をしてもよい。この縮小処理は、画像のトリミングも含む。また、縮小した際に、画像の縦サイズ及び横サイズを符号化復号化部130における大符号化ユニットの縦サイズの整数倍、横サイズの整数倍としてもよい。
また、本実施例の撮像装置100は、動画記録モードにおいて、最初の1フレームまたは所定フレームをフレーム内予測符号化して静止画データとしている。このときに静止画データとして符号化したフレーム内予測符号化の結果の符号量の情報に基づいて、動画の符号化の最初の量子化パラメータを設定してもよい。また、静止画データとして符号化したときのイントラ予測部223の画面上の座標と、選択された予測モードの情報に基づいて、動画の符号化の最初のフレーム内予測符号化されるフレームのイントラ予測における予測モードを選択してもよい。これにより、動画の符号化開始時の処理が高速化され、処理遅延が起きる可能性を低減することができる。すなわち、動画記録モードにおいて、記録開始の指示から所定フレーム以内の画像を静止画として符号化し、静止画として符号化したときの符号化パラメータまたは符号量に基づいて、動画の符号化における符号化パラメータを設定してもよい。
(実施例2)
実施例2では、実施例1の動画記録モードにおける、動画の符号化方式と、静止画として符号化された符号化データの格納方法にさらに特徴的なものとした撮像装置について説明する。なお、本実施例の撮像装置の基本的な構成は図1に示す撮像装置100と同様であり、また、符号化復号化部130の構成も図2に示すものと同様であるため、説明を割愛する。
実施例2においては、画像信号を動画として符号化する際に、各フレームの画像データを階層的に符号化する階層符号化を行う。階層符号化された動画データは、たとえば、基本階層、拡張階層1、拡張階層2からなり、基本階層のみを復号すると15フレーム毎秒の動画を表示することができる。さらに、基本階層と拡張階層1を復号すると、30フレーム毎秒の動画を表示することができる。また、基本階層と拡張階層1と拡張階層2を復号すると、60フレーム毎秒の動画を表示することができる。ここで、動画データはフレーム間予測符号化されているが、各階層の画像は、復号対象の階層と同じまたはそれよりも下位階層を参照し、それよりも上位階層を参照しないように符号化されている。なお、フレーム間予測符号化、及びフレーム内予測符号化の手法については実施例1と変わらない。実施例2の符号化復号化部130は、このように画像を動画として符号化する。階層を示す情報は、符号化された各フレームの画像のたとえば、スライスヘッダまたはNAL(Network Abstraction Layer)ヘッダに格納される。
ここで、実施例2の動画記録モードにおける動作を説明する。実施例2の動画記録モードにおいては、符号化された静止画データと、符号化された動画データを同じ動画ファイル内に格納する。
動画記録開始の指示があると、CPU101は、撮像部110により得られたデジタル画像信号を画像処理部111に処理させ、その後、符号化対象の画像として、RAM102に記憶させる。次にCPU101はRAM102に記憶された画像が、記録開始の指示から1フレーム目の画像であれば(図3で示す画像301に相当する画像)、RAM102に記憶された画像を静止画として符号化するように符号化復号化部130を制御する。具体的には、符号化復号化部130に、入力画像をフレーム内予測符号化データとして符号化させる。実施例2では、このとき、符号化後の動画データの含まれる階層とは別の階層を示す情報を静止画データのスライスヘッダまたはNALヘッダに格納する。そして、CPU101は、符号化復号化部130で符号化された静止画データを、記録再生部150により記録媒体151へ記録させる。
次に、記録開始の指示から3フレーム目以降の画像がRAM102に格納されると、CPU101は、RAM102に記憶された画像を動画として符号化するように符号化復号化部130を制御する。具体的には、符号化復号化部130に、入力画像をフレーム内予測符号化及びフレーム間予測符号化を用いて符号化させる。実施例2では、このとき、符号化後の静止画データの含まれる階層とは別の階層を示す情報を、符号化済みの各フレームの動画データのスライスヘッダまたはNALヘッダに格納する。そして、CPU101は、符号化復号化部130で符号化された動画データを、記録再生部150により記録媒体151へ記録させる。
このように、実施例2では、動画記録モードにおいて記録された動画ファイル内に、符号化された静止画データと、符号化された動画データを格納する。そして、動画データを階層符号化するとともに、動画データの階層とは別の階層として、符号化された静止画データを格納することができる。たとえば、動画データは1から3階層までの3階層の階層符号化をした場合には、静止画データを4階層目以降の階層のデータとして格納する。
以上説明したように、本実施例の撮像装置100は、動画を符号化する符号化復号化部130において、入力された画像を動画データとして符号化するだけでなく、静止画データとして符号化することができる。そのため、たとえば装置の回路規模増大を抑制することができ、動画データと静止画データを生成することができる。また、動画ファイル内の動画データの動画とは別の階層に静止画データを格納することができるので、復号する階層を選択するだけで、静止画の再生を行う場合と行わない場合を使い分けることができるので利便性が向上する。
(他の実施形態)
上述の実施形態は、システム或は装置のコンピュータ(或いはCPU、MPU等)によりソフトウェア的に実現することも可能である。従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線/無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、MO、CD、DVD等の光/光磁気記憶媒体、不揮発性の半導体メモリなどがある。
有線/無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル(プログラムファイル)をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するOSの機能を利用するものであってもよい。さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるCPUで実行するようにしてもよい。