説明

画像圧縮装置

【課題】暗号処理を行うプロセッサやメモリは数バイト単位を一度に処理することで処理速度の向上を行っているが、圧縮画像データやストリーム暗号が1バイト単位でデータを生成するために、最大限の処理能力を発揮できない。これは暗号データの復号処理でも同じであり、1バイト単位の処理では、送信側と受信側の双方でプロセッサとメモリの処理能力を最大限に発揮できない。
【解決手段】画像圧縮データの発生バイト数を調整し、暗号データ部分のデータ長をプロセッサのレジスタ長の倍数や、メモリが1回でアクセスできるバイト数の倍数になるよう、数バイトを単位としたものにする。また、メモリに格納するデータはメモリ境界をまたがないように配置することで、1回の演算で複数バイトのデータを処理し、暗号処理の処理負荷を低減する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、圧縮対象となる画像を圧縮する画像圧縮装置に関し、特に、画像を効果的に暗号化する画像圧縮装置に関する。
【背景技術】
【0002】
近年のネットワーク技術の発達により、画像データをネットワークで伝送するようになった。画像データは画像圧縮技術との組み合わせでデジタルデータ化し、伝送データ量の削減が行われる。このようなデジタルデータは、ネットワークの普及とともにインターネットなどの公開されたネットワークを介して伝送されることも多く、データ内容が万人の目にさらされる可能性が出てくる。このため、監視目的でネットワークカメラを使用するようなデータの機密性が問題になる使用方法では、暗号化技術の導入などの対策が必要になる。
ネットワークに伝送するデータの暗号化では、主に2つのアプローチがある。1つ目は、ネットワークの伝送路全体を暗号化する方法である。代表的な技術にVPN(Virtual Private Network)がある。2つ目は、伝送するデジタルデータを暗号化する方法である。この方法は、伝送路の種類によらず暗号化することができるため、ハードディスクレコーダなどの記録装置を接続しても、暗号化したままデジタルデータを記録することができる特徴がある。
画像データの伝送目的に使う暗号は、一定サイズ毎に暗号化するブロック暗号よりも、ビット単位あるいはバイト単位などで逐次暗号化するストリーム暗号の方が、任意のデータ長である画像圧縮データのリアルタイム伝送に適している。
また、近年の画像圧縮処理はソフトウェアで実行する製品が増えてきており、暗号化処理もソフトウェアで実行するようになった。しかし、監視に使用する動画像データの場合、データを圧縮しても数Mbpsのデータ量になる。ストリーム暗号はリアルタイム伝送向けに高速なアルゴリズムが考案されているが、ソフトウェアでの実行では、プロセッサ能力により限界が出てくる。
図1にソフトウェアによる画像圧縮データを暗号化しネットワークへ伝送する装置の構成を示す。装置は主に、圧縮処理7、メモリ11、暗号処理8、メモリ12、配信処理9からなる。装置の入力にはカメラ6を接続し、出力はネットワーク10に接続する。
圧縮処理7は、カメラ6が出力した映像データ1を取り込み画像圧縮処理を行い、圧縮データ2としてメモリ11に格納する。暗号処理8は、メモリ11に格納した圧縮データ2を平文データ3として取り出し、暗号処理を行う。そして、暗号化した暗号データ4をメモリ12に格納する。配信処理9は、メモリ12に格納された暗号データ4を取り出し、ネットワークプロトコルに適合したデータに変換し、配信データ5としてネットワーク10に出力する。
次に、圧縮処理7の構成を図4で説明する。従来の構成は単純であり、入力した映像データ1は、画像圧縮27で圧縮し、圧縮データ2としてメモリ11に格納する。
更に、暗号処理8の構成を図5で説明する。暗号処理8は、データ切り替え器15、暗号処理制御部24、鍵ストリーム発生部23、初期ベクトル発生部21、暗号鍵管理部22からなり、メモリ11から被暗号データである平文データ3を読み出し、暗号データ4をメモリ12に格納する(以降、被暗号データを平文データと呼ぶ)。
メモリ11から読み出した平文データ3は、データ切り替え器15に直接入力する系と、鍵ストリーム発生部23が出力した鍵ストリーム25と平文データ3を結合してデータ切り替え器15に入力する系の2つに分かれる。データ切り替え器15は、暗号処理制御部24が出力したデータ切り替え信号20により、2つの入力を切り替える。それにより平文と暗号文を切り替えて、暗号データ4をメモリ12に出力する。
鍵ストリーム発生部23は、初期ベクトル発生部21が出力する初期ベクトル28と、暗号鍵管理部22が出力する鍵データ26を入力し、この2つから疑似乱数を生成し、鍵ストリーム25として出力する。この鍵ストリーム25と平文データ3を結合することで、暗号データ4を生成する。結合は、例えば、排他的論理和(以降XORと記述する)を実行する処理である。
暗号処理制御部24は、データ切り替え器15での入力データの切り替えタイミングを制御するものであり、データ切り替え信号20によりデータ切り替え器15を切り替える。また、この切り替えタイミングに合わせ、メモリ11から平文データ3を読み出すためのメモリ読み出し制御信号19をメモリ11へ出力する。
暗号処理8の動作を説明する。暗号化には様々な手法があるのでその一例であるが、平文データ3と鍵ストリーム25とをXORすることで暗号データ4を生成する。鍵ストリーム25は、鍵データ26と、初期値が毎回変化する初期ベクトル28から乱数列を生成する。ソフトウェアで発生する乱数列は真の乱数ではないので、疑似乱数と呼ぶ。
この暗号処理8が出力する暗号データ4の構成は、一部分が平文データ、他の部分が暗号化したデータという2つのデータが混在したものである。平文データの部分は、画像圧縮データのヘッダ部分や、様々な状態を示すフラグを格納する領域などであり、いずれも受信機側で暗号データを復号する前段階として取得すべき初期ベクトルと呼ばれるデータ等、特別な暗号化されないデータの集まりである。平文データの中に画像圧縮データのヘッダを含む場合、平文データが出現する周期は、画像圧縮データのヘッダが出現する周期に関係するものとなる。例えば、NTSC画像の各フレームを表すヘッダを平文データに含む場合、平文データが出現する周期は1秒間に約30回になる。なお、暗号化に用いる初期ベクトル28を暗号データ4に含ませて伝送する場合、初期ベクトル28は暗号データの復号に使用するため、平文データとして伝送する必要がある。
【特許文献1】特開2006−109428号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ストリーム暗号の特徴として、ビット単位あるいはバイト単位などで逐次暗号化する点は前述したとおりである。また、MPEG−4やJPEGやH.264に代表される画像圧縮技術は、バイト単位で圧縮データを生成する。このため両者の親和性は非常に高い。
【0004】
しかし、この暗号化処理をプロセッサのソフトウェアで実行する場合、XORを1バイト単位で実行することは可能だが、プロセッサのレジスタ長やデータバス幅から見ると、数バイトまとめてXORする方が処理速度が速くなる。例えば、32ビットのレジスタ長を持つプロセッサの場合、4バイトのデータを1命令でXOR処理することが可能である。画像圧縮処理もプロセッサで同時に実行する場合、処理能力に余裕がなくなりやすく、暗号処理の負荷が大きいと全体の処理能力が不足し、最悪はリアルタイムに画像圧縮処理が実行できずフレーム抜けを起こすことがある。
【0005】
また、SDRAMなどプロセッサに接続した作業メモリについても、1回のアクセスで数バイトを一度に読み書きするため、アクセスを数バイト単位にした方がアクセス速度が速くなり、結果的にプロセッサの処理速度向上につながる。更に、メモリ上のデータは、例えば1回のアクセスで4バイトを処理するメモリの場合、メモリの先頭番地から4バイト毎に区切られたメモリ境界の中に収まるデータのアクセスは速いが、同じ4バイトでもメモリ境界をまたぐように配置されたデータのアクセスでは、1回のアクセスで読み書きが出来ず処理速度が遅くなる。
【0006】
このようにプロセッサやメモリは数バイト単位を一度に処理することで処理速度の向上を行っているが、圧縮画像データやストリーム暗号が1バイト単位でデータを生成するために、最大限の処理能力を発揮できない。
【0007】
以上のことは暗号データの復号処理でも同じであり、1バイト単位の処理では、送信側と受信側の双方でプロセッサとメモリの処理能力を最大限に発揮できないことになる。
本発明は、このような従来の事情に鑑み為されたもので、画像圧縮データを効果的に暗号化する画像圧縮装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明に係る画像圧縮装置は、1回のアクセスで複数バイト読み書き可能なメモリと、1回の処理で前記複数バイトの整数倍のデータを暗号化する暗号処理部を備え、画像圧縮データを暗号化してネットワークへ配信する画像圧縮装置であって、画像圧縮データが所定のデータ長になるようにスタッフィングデータを付加する画像圧縮部を備える。
【0009】
更に、本発明に係る画像圧縮装置において、1回の処理で前記複数バイトの整数倍のデータを暗号化したことを示すための情報を画像圧縮データ内に付加する。
【0010】
また、上記目的を達成するため、本発明に係る画像圧縮装置は、画像圧縮データを暗号化しネットワークへ配信する画像圧縮装置において、画像圧縮データが所定のデータ長になるようにスタッフィングデータを追加する画像圧縮手段と、数バイト単位の平文データと鍵ストリームとの演算を一回で実行する暗号処理手段を備える。
【0011】
更に、本発明に係る画像圧縮装置において、暗号処理のアルゴリズムに1バイト単位で暗号化可能なストリーム暗号を使用する。
【0012】
更に、本発明に係る画像圧縮装置において、平文データと暗号データが混在したデータストリームであり、暗号データのサイズが所定のバイト数の倍数長であり、メモリ上の暗号データの先頭位置が所定バイト数の倍数長の位置に配置されている。
【0013】
更に、本発明に係る画像圧縮装置において、暗号データのデータ長を、平文データと鍵ストリームとの演算を一回の実行で処理できる最大のバイト数、もしくは一回のアクセスで読み書き可能なバイト数のうち、大きい方のバイト数に合わせる。
【0014】
更に、本発明に係る画像圧縮装置において、暗号処理の演算で数バイト単位で平文データと鍵ストリームとの演算を一回で実行したことを示すための情報を平文データ内に格納する。
【0015】
また、画像圧縮データの発生バイト数を調整し、暗号データ部分のデータ長をプロセッサのレジスタ長の倍数や、メモリが1回でアクセスできるバイト数の倍数になるよう、数バイトを単位としたものにする。また、メモリに格納するデータはメモリ境界をまたがないように配置することで、暗号処理の処理負荷を低減する。暗号処理では上記の数バイトを単位として1回のXORで演算するようにする。さらに、暗号データが数バイトを単位として生成されたことを示すフラグを平文データに付加することで、受信側で数バイトを単位とした暗号データの復号処理を実行可能であることを判別できるようにし、復号側の処理負荷も低減する。
【発明の効果】
【0016】
以上説明したように、本発明に係る画像圧縮装置によると、暗号処理とその対となる復号処理のプロセッサ等の処理負荷を軽減することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明の実施の形態について、図面を参照しながら説明する。
本発明の画像圧縮データストリーム暗号装置の構成は、従来と同様な図1による構成になり、従来と異なるのは、圧縮処理7と暗号処理8の内部構成と動作である。
圧縮処理7の構成を図2に示し、動作を説明する。従来の圧縮処理7は画像圧縮27のみで構成されていたが、本発明ではスタッフィング数計算17とスタッフィング発生18の処理が加わる。スタッフィングとは「詰め物データ」のことで、所定のデータ数に調整するために追加する、画像圧縮データとは無関係なデータのことである。ただし、MPEG−4規格で規定されたスタッフィングとは異なり、本説明でのスタッフィングはユーザデータ等、圧縮データ中に挿入してデータ長を調整するのに利用できるデータ全てを総称してスタッフィングと呼称する。
動作の一例として、以下の仮定において説明する。プロセッサのレジスタ長を32ビット(=4バイト)とし1回のXOR演算で4バイトを処理可能とする。また、メモリから1回のアクセスで読み書きできるバイト数を4バイトとする。よって、メモリ境界は先頭番地から4バイト毎の位置に存在する。
画像圧縮27が出力した圧縮データ13のデータサイズは、圧縮データサイズ14としてスタッフィング計算17に入力し、必要なスタッフィング数をスタッフィングサイズ16として、スタッフィング発生18へ出力する。例えば、圧縮データ13が83バイトであった場合、83バイト以上で4の倍数になる最小値84バイトを求め、差し引き1バイトのスタッフィングを付加すると計算する。圧縮データ量が不用意に増大することを防ぐため最小値84バイトを求めたが、4の倍数であれば88バイトや92バイトでもかまわない。この「1バイト」という計算結果をスタッフィングサイズ16として、スタッフィング発生18に出力する。
スタッフィング発生18は、入力されたスタッフィングサイズ16から必要な数のスタッフィングをスタッフィングデータ15として出力し、圧縮データ13に追加し、圧縮データ2としてメモリ11に出力する。上記の仮定に従うと、スタッフィングサイズ16は「1バイト」、圧縮データ13は「83バイト」であるから、スタッフィングが追加された圧縮データ2は「84バイト」になる。スタッフィングデータ15の値は、画像圧縮規格により異なるが、例えばMPEG−4規格のスタッフィングであれば、16進数で「7F」になり、この値が圧縮データの所定の位置にあれば、受信側の伸張処理ではこのデータを読み飛ばす。
スタッフィングが付加された圧縮データ2は、メモリ11に格納されるが、メモリ境界は4バイト毎、圧縮データ2のサイズは4の倍数であることから、メモリ11への書き込み開始をメモリ11の4バイト境界位置に合わせれば、圧縮データ2の書き込み終了位置も4バイト境界に合った位置になる。そのため書き込み開始位置をメモリ11の0番地、4番地、8番地、・・・と4の倍数位置にすれば、圧縮データ2の書き込み終了位置のデータが3バイトを残してメモリ境界をまたぐなど、4の倍数以外の端数を残してメモリ境界をまたぐことはない。
次に、暗号処理8の構成を図3に示し、動作を説明する。従来の構成との違いは、フラグ発生部13が追加されているだけであるが、内部処理で比較すると、一度に処理するデータのバイト数が従来と異なる。本発明では数バイトを1単位として処理するため、上記仮定に合わせれば、平文データ3、暗号データ4、鍵ストリーム25が4バイト単位で処理される。従来はこのデータ幅は1バイト単位であった。よって、平文データ3と鍵ストリーム25の結合を行うXOR演算は4バイトを1回で処理する。
初期ベクトル28と鍵データ26から鍵ストリーム25を生成する動作や、それを平文データ3と結合したデータと平文データ3をデータ切り替え器15で切り替えながら、暗号データ4としてメモリ12に格納する処理も、従来と同じであり、先に述べたようにデータ幅が4バイトになる部分が従来の1バイト幅と異なるのみである。
本発明で追加したフラグ発生部13について、同じ図3で説明する。このフラグの目的は、暗号処理を数バイト単位、この例の仮定では4バイト単位で処理したことを受信側の暗号データの復号処理に知らせることである。受信データ中にフラグを付加することで、フラグに有無により、暗号データの復号処理を従来と同じ1バイト単位にするか、数バイト単位にするかを判断する。フラグがあれば数バイト単位、この仮定では4バイト単位で復号処理が実行でき、受信側のプロセッサの処理負荷を軽減できる。
このフラグは、暗号データの復号を行う際に参照することから、暗号化対象とせず、平文データの中に付加する。フラグ付加の動作は、暗号処理制御部24がタイミングを制御する。従来から暗号処理制御部24は、平文データと暗号データの切り替えを制御しているため、平文データにフラグを付加するタイミングの制御も可能である。暗号処理制御部24は、フラグ付加制御信号14をフラグ発生部13に出力することで、フラグ16を発生させ、平文データ3の所定の位置にフラグ16を付加する。
次に、図6を用いて数バイト単位のメモリ11からの読み出しと、鍵ストリーム25との演算の様子を、より詳細に説明する。メモリ11には平文データ3が格納されている。図6では、幅4バイト毎に区切って図示してあり、先頭番地のデータから1バイト毎に1、2、3、・・・とナンバリングしている。メモリ11からの読み出しを1回実行すると4バイトの平文データ3が読み出される。図6では、1、2、3、4のデータが読み出されたとする。これに合わせ鍵ストリーム25が生成される。図6では、一、二、三、四の4バイトのデータである。この平文データ3と鍵ストリーム25を1回のXORで演算し、4バイトの暗号データ4を生成する。
図6では、平文データ3の「1」と鍵ストリーム25の「一」をXORし「1'」が生成される。同様に「2'」「3'」「4'」が生成される。XORは各ビット毎の演算であり、桁上がりがない。よって従来の暗号処理でXOR演算を1バイト毎に実行し、「1」と「一」から「1'」を、「2」と「二」から「2'」を生成するのと同じ結果になる。つまり平文データと鍵ストリームが同一な値であれば、従来の1バイト単位で暗号化するストリーム暗号と同じ暗号データを生成することになるため、暗号処理を4バイト単位で行っても、受信側の復号処理を1バイト単位の従来の暗号アルゴリズムで復号することも可能である。また、圧縮データのサイズが4バイトの倍数長で、被暗号データ部分を4バイト境界に配置すれば、これとは逆に暗号処理を1バイト単位、復号処理を4バイト単位で行うことも可能である。
このように、4バイトの平文データ3と、4バイトの鍵ストリーム25から、4バイトの暗号ストリーム4を生成するのに1回のXORで演算できるので、従来の1バイトごとのXOR演算より1/4の処理時間で暗号データ4を生成できる。
前述したように暗号データ4は、一部の平文データとそれ以外の暗号化データから構成される。その一例を図7を用いて説明する。
図7は、暗号データ4の一部分を抜粋したものである。暗号データ4の中には圧縮した画像データがフレーム毎に連結して格納されている。1つの画像フレームは先頭に平文データ、後方に暗号データがある。平文データと暗号データはそれぞれ4の倍数長であり、1つの画像フレームも4の倍数長となる。
平文データの内容は、先頭に画像フレームの先頭を示すフレームヘッダや暗号データを復号する際に使用する初期ベクトル、本発明で付加したフラグが格納されている。受信側では、平文データに格納されたフレームヘッダを検索して画像フレームの先頭を認識する。また初期ベクトルを読み込み、暗号データ部分の復号処理に使用する。フラグが付加されていた場合、暗号データ長は4の倍数で、かつメモリに格納した際には4バイトごとのメモリ境界をまたがないように格納できることを示している。そこで4バイトのデータを1回のXOR演算で処理できることが分かり、受信側プロセッサの処理負荷を低減することができる。
以上の例では、プロセッサのレジスタ長を4バイト、1回のメモリアクセスで読み書きできるデータ長も4バイトとして説明した。しかし、このそれぞれのサイズは他のバイト数でもかまわない。例えば、プロセッサのレジスタ長を倍の8バイト、メモリアクセスのデータ長を4バイトとした場合、暗号データに付加するスタッフィングの数は、暗号データ長が8の倍数になるようにする。
このように、圧縮データの生成時に付加するスタッフィングの個数を調整し、フラグを付加することで、暗号処理、復号処理のプロセッサ負荷を低減することができる。
【0018】
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
【0019】
また、本発明に係る画像圧縮装置において行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROM(Read Only Memory)に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
【0020】
また、本発明は上記の制御プログラムを格納したフロッピー(登録商標)ディスクやCD(Compact Disc)−ROM等のコンピュータにより読み取り可能な記録媒体や当該プログラム(自体)として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【0021】
【図1】画像圧縮データストリーム暗号装置を示す図である。
【図2】本発明の一実施例に係る圧縮処理を示す図である。
【図3】本発明の一実施例に係る暗号処理を示す図である。
【図4】従来の圧縮処理を示す図である。
【図5】従来の暗号処理を示す図である。
【図6】4バイトを同時に処理する暗号処理を示す図である。
【図7】暗号データの構造を示す図である。
【符号の説明】
【0022】
1:映像データ、2:圧縮データ、3:平文データ、4:暗号データ、5:配信データ、6:カメラ、7:圧縮処理、8:暗号処理、9:配信処理、10:ネットワーク、11:メモリ、12:メモリ、13:圧縮データ、14:圧縮データサイズ、15:スタッフィングデータ、16:スタッフィングサイズ、17:スタッフィング数計算、18:スタッフィング発生、19:メモリ読み出し制御信号、20:データ切り替え信号、21:初期ベクトル発生部、22:暗号鍵管理部、23:鍵ストリーム発生部、24:暗号処理制御部、25:鍵ストリーム、26:鍵データ、27:圧縮処理、28:初期ベクトル。

【特許請求の範囲】
【請求項1】
1回のアクセスで複数バイト読み書き可能なメモリと、1回の処理で前記複数バイトの整数倍のデータを暗号化する暗号処理部を備え、画像圧縮データを暗号化してネットワークへ配信する画像圧縮装置であって、
画像圧縮データが所定のデータ長になるようにスタッフィングデータを付加する画像圧縮部を備える、
ことを特徴とする画像圧縮装置。
【請求項2】
請求項1に記載の画像圧縮装置において、
1回の処理で前記複数バイトの整数倍のデータを暗号化したことを示すための情報を画像圧縮データ内に付加する、
ことを特徴とする画像圧縮装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−35431(P2008−35431A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−209077(P2006−209077)
【出願日】平成18年7月31日(2006.7.31)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】