(57)【要約】【課題】  動作環境やＣＰＵの性能に応じた圧縮符号化処理を行う【解決手段】  ＣＰＵが自分自身の負荷レベルを監視し、その負荷レベルに応じた圧縮符号化処理を行う。負荷レベルが高ければ、ＣＰＵの処理負担がより軽減される圧縮アルゴリズムに切り替える。負荷レベルが低くＣＰＵの処理能力に余裕があれば、ＣＰＵの処理負担が増えても画質が向上する圧縮アルゴリズムに切り替える。そのため、画像圧縮システムの動作環境がその都度変化しても、その時点の動作環境において可能な最高の画質を保ちながら、要求される圧縮速度を保って圧縮符号化処理を行うことができる。また、ＣＰＵの性能に応じ、そのＣＰＵで実現可能な限り最高の画質で圧縮符号化処理を行うことができる。【選択図】      図１
2008199657.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを含む画像圧縮装置であって、
前記ＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視手段と、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段と、
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段と、
を含む、画像圧縮装置。
【請求項２】
ＣＰＵを含む画像圧縮装置であって、
前記ＣＰＵの負荷レベルを1フレームに相当する時間間隔ごとに監視する負荷監視手段と、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段と、
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段と、
を含む、画像圧縮装置。
【請求項３】
コンピュータが実行する画像圧縮プログラムであって、
前記コンピュータのＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視手段、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、及び
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段、
として前記コンピュータを機能させる画像圧縮プログラム。
【請求項４】
コンピュータが実行する画像圧縮プログラムであって、
前記コンピュータのＣＰＵの負荷レベルを1フレームに相当する時間間隔ごとに監視する負荷監視手段、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、及び
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段、
として前記コンピュータを機能させる画像圧縮プログラム。
【請求項５】
コンピュータが行う画像圧縮方法であって、
前記コンピュータのＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視ステップと、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更ステップと、
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化ステップと、
を含む、画像圧縮方法。
【請求項６】
コンピュータが行う画像圧縮方法であって、
前記コンピュータのＣＰＵの負荷レベルを1フレームに相当する時間間隔ごとに監視する負荷監視ステップと、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更ステップと、
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化ステップと、
を含む、画像圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像データを圧縮する技術に関する。さらに詳しくは、動画像データをコンピュータにより圧縮符号化し、ハードディスクなどの記憶媒体に記録するための技術に関する。
【背景技術】
【０００２】
ＴＶ放送信号などのビデオ信号をコンピュータの記録媒体に記録することが広く行われている。ビデオ信号はデータ量が多いため、通常は圧縮符号化されて記録媒体に記録される。ビデオ信号を圧縮符号化するエンコーダには、ハードウェアエンコーダ及びソフトウェアエンコーダがある。ハードウェアエンコーダは圧縮処理速度が速い一方で、それ自体を搭載した製品、例えばビデオキャプチャボードなどの価格が高くなってしまう。このようなハードウェアエンコーダの価格の高さと近年のＣＰＵの性能の向上とを反映し、ソフトウェアエンコーダが用いられることが多くなってきている。
【０００３】
ソフトウェアエンコーダにおいては、圧縮符号化処理に要求される速度と画質とが相反関係にある。具体的には、ビデオ信号の通信においては、単位時間内に一定のフレーム数が送信される。従って、送られてきたビデオ信号を圧縮符号化してメモリに記録するためには、送信速度に応じた速度で符号化処理を行うことが要求される。一般的には、１秒間に３０フレームが送信されるので、１フレームを1/30秒以内に圧縮符号化できればよい。連続して長時間の録画を行う場合には、通信速度を上回る符号化処理速度を確実に維持できることが要求される。その一方で、高画質を維持するために圧縮アルゴリズムの精度を高めると、演算に時間がかかり過ぎて要求される符号化処理速度を実現できない場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来のソフトウェアエンコーダは、ＣＢＲ(Constant Bit Rate)モードかＶＢＲ(Valuable Bit Rate)モードかのいずれかの動作モードやビットレート等の初期設定値が決定されると、一定のアルゴリズムに基づいて圧縮符号化処理を行う。ところが、ユーザが使用するコンピュータのＣＰＵの性能は様々である。ソフトウェアエンコーダが、どのＣＰＵ上でも可能な限り高い画質を維持しながら圧縮符号化処理を必要な速度で行うためには、各ＣＰＵの性能を十分に活用し、各ＣＰＵに合わせて動作することが求められている。
【０００５】
また、ソフトウェアエンコーダの圧縮処理には、ＣＰＵの性能以外の要因も影響する。例えばＯＳ(Operating System)の種類やマルチタスク環境か否かによって、圧縮符号化処理に使用できるＣＰＵパワーが変動する。従って、ＣＰＵの性能やコンピュータの動作環境が変動しても、要求される画質及び十分な符号化処理速度を実現する圧縮処理システムが求められている。
【０００６】
本発明は、動作環境が変動しても、圧縮符号化処理の速度及び画質への要求を満たす圧縮符号化処理を行う画像圧縮システムを提供することを目的とする。
【０００７】
また本発明は、ＣＰＵの性能に応じた圧縮符号化処理を行うことができるソフトウェアエンコーダを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、発明１はＣＰＵを含む画像圧縮装置を提供する。この装置は、以下の手段を備えている。
・前記ＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視手段、
・前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、
・入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段。
【０００９】
発明２は、ＣＰＵを含む画像圧縮装置を提供する。この装置は、以下の手段を備えている。
・前記ＣＰＵの負荷レベルを１フレームに相当する時間間隔ごとに監視する負荷監視手段、
・前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、
・入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段。
【００１０】
負荷監視手段、アルゴリズム変更手段及び圧縮符号化手段は、具体的にはソフトウェアである。ソフトウェアは、現在の処理のＣＰＵ負荷レベルを判断し、ＣＰＵ負荷レベルに応じた圧縮アルゴリズムを用いて圧縮符号化を行う。負荷が高ければ、ＣＰＵの負荷がより軽減される圧縮アルゴリズムで圧縮符号化を行う。逆に、ＣＰＵの負荷が低くＣＰＵの処理能力に余裕があれば、ＣＰＵの負荷がより重くなっても画質が向上する圧縮アルゴリズムで圧縮符号化を行う。圧縮アルゴリズムの切替は、所定のパラメータの値や予測方法などを変更することにより行う。
【００１１】
例えば、圧縮前の画像データのメモリへの書込速度Ｖｗが、そのメモリから読み出される速度Ｖｒよりも速ければ（Ｖｗ＞Ｖｒ）、ＣＰＵの負荷レベルが高い。逆に、書込速度Ｖｗが読み出し速度Ｖｒよりも遅ければ（Ｖｗ＜Ｖｒ）、ＣＰＵの負荷レベルは低い。両者が同程度であれば（Ｖｗ＝Ｖｒ）、ＣＰＵの処理負荷と性能とが釣り合った状態にある。ここで、読み出し速度Ｖｒは、圧縮符号化処理の速度と見なすことができる。
【００１２】
前記負荷監視手段は、１）前記コンピュータ内のメモリへの画像データの書込アドレスと、前記メモリに書き込まれた画像データを読み取る読出アドレスとの差を一定時間間隔ΔTごとに演算し、２）演算した最新のアドレスの差を記憶し、３）新たに演算したアドレスの差と記憶している最新のアドレスの差との比較結果に基づいて前記ＣＰＵの負荷レベルを判断することができる。
【００１３】
前記アルゴリズム変更手段は、前記ＣＰＵの負荷レベルが高い場合はその負荷レベルが低下するようにアルゴリズムを変更し、前記ＣＰＵの負荷レベルが低い場合は圧縮符号化された画像データの画質が向上するようにアルゴリズムを変更すると好ましい。
【００１４】
アルゴリズムの変更は、ＣＰＵの性能に応じた圧縮符号化処理を実行できるように行う。具体的には、ＣＰＵの負荷が高すぎるときには圧縮符号化処理が軽くなるよう演算精度を下げたり、動き検出の範囲を狭めるかもしくは予測方法自体を切替えるようにアルゴリズムの変更を行う。ＣＰＵの負荷を軽減する代償として圧縮画像データの画質が低下する。逆に、負荷を増加させても良い場合には、ＣＰＵの負荷が増大するものの画質を向上させる。例えば、ＭＰＥＧ２の圧縮符号化において、アルゴリズムの変更により動き検出の範囲を変えたり予測方法を変更することで、画質を高めたりＣＰＵの負荷を軽減したりすることができる。
【００１５】
発明３は、コンピュータが実行する画像圧縮プログラムを提供する。このプログラムは、コンピュータを以下の手段として機能させる。
・前記コンピュータのＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視手段、
・前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、
・入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段。
【００１６】
発明４は、コンピュータが実行する画像圧縮プログラムを提供する。このプログラムは、コンピュータを以下の手段として機能させる。
【００１７】
コンピュータが実行する画像圧縮プログラムであって、
前記コンピュータのＣＰＵの負荷レベルを1フレームに相当する時間間隔ごとに監視する負荷監視手段、
前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更手段、及び
入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化手段、
として前記コンピュータを機能させる画像圧縮プログラム。
【００１８】
発明３、４のプログラムは、それぞれコンピュータを発明１、２の画像圧縮装置として機能させる。ここで、プログラムとは、ダウンロード可能なものであってもなくてもよい。また、プログラムは、コンピュータ読み取り可能な記録媒体に記録されていても良い。そのような記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク（ＭＯ）、その他のものが挙げられる。
【００１９】
発明５は、コンピュータが行う画像圧縮方法を提供する。この方法は以下のステップを含む。
・前記コンピュータのＣＰＵの負荷レベルを１ＧＯＰに相当する時間間隔ごとに監視する負荷監視ステップ、
・前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更ステップ、
・入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化ステップ。
【００２０】
発明６は、コンピュータが行う画像圧縮方法を提供する。この方法は以下のステップを含む。
・前記コンピュータのＣＰＵの負荷レベルを1フレームに相当する時間間隔ごとに監視する負荷監視ステップ、
・前記ＣＰＵの負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更するアルゴリズム変更ステップ、
・入力される画像データの圧縮符号化処理を行い、画像データの入力が開始してから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する圧縮符号化ステップ。
【００２１】
発明５、6の方法は、それぞれ発明１、２の画像圧縮システムが実行する方法であり、それぞれ発明１、２と同様の作用効果を有している。
【発明の効果】
【００２２】
本発明を用いれば、ソフトウェアエンコーダを用い、動作環境やＣＰＵの性能に応じて実時間内で圧縮符号化処理を行うことができる。
【発明を実施するための最良の形態】
【００２３】
＜発明の概要＞
本発明の画像圧縮システムでは、ソフトウェアが自分自身のＣＰＵ負荷レベルを監視し、その負荷レベルに応じた圧縮符号化処理を行う。負荷レベルが高ければ、ＣＰＵの処理負担がより軽減される圧縮符号化処理に切り替える。負荷レベルが低くＣＰＵの処理能力に余裕があれば、ＣＰＵの処理負担が増えても画質が向上する圧縮符号化処理に切り替える。そのため、画像圧縮システムの動作環境がその都度変化しても、その時点の動作環境において可能な高画質を保ちながら、要求される圧縮速度を保って圧縮符号化処理を行うことができる。また、ＣＰＵの性能に応じ、そのＣＰＵで実現可能な限り最高の画質で圧縮符号化処理を行うことができる。
【００２４】
＜第１実施形態例＞
［構成］
図１は、本発明の第１実施形態例に係る画像圧縮システムの構成図である。画像圧縮システム１はコンピュータを用いて構成される。画像圧縮システム１には、ビデオキャプチャボード２が接続される。画像データは、ビデオキャプチャボード２を介して画像圧縮システム１に入力される。
【００２５】
画像圧縮システム１は、下記の構成要素を有している。
【００２６】
（ａ）ＰＣIカードスロットインターフェイス１０１：このインターフェイス１０１は、コンピュータの拡張スロット（図示せず）及びＰＣＩ(Peripheral Component Interconnect/Interface)バス１０２に接続されており、拡張スロットに挿入されるビデオキャプチャボード２からの画像データの入力を取り込む。
【００２７】
（ｂ）サウスブリッジ１０３：サウスブリッジ１０３は、ＰＣＩバス１０２に接続されており、ビデオキャプチャボード２から入力された画像データを、後述のノースブリッジ１０４に供給する。サウスブリッジ１０３とノースブリッジ１０４とは、高速専用バス１０５により接続されている。また、サウスブリッジ１０３は、ＩＤＥ(Integrated Drive Electronics)バス１０６によりＨＤ１０７(Hard Disk)と接続されている。サウスブリッジ１０３は、ＩＤＥインターフェイス等の各種Ｉ／Ｏインターフェイスを内蔵している（図示せず）。そして、サウスブリッジ１０３は各種のＩ／Ｏを制御する。例えば、ＩＤＥバス１０６に接続されるデバイスの制御や、Ｉ／Ｏインターフェイス１０９を介して接続されるデバイスの制御などを行う。
【００２８】
（ｃ）ＨＤ１０７：ＨＤ１０７は、ＩＤＥバス１０６によりサウスブリッジ１０３と接続されている。ＨＤ１０７は、後述する各種プログラム及び非圧縮画像データや圧縮された画像データを記憶する。ＨＤ１０７に記憶されているプログラムは、起動処理の過程で、ノースブリッジ１０４のメインメモリ１１０に供給・ロードされる。
【００２９】
（ｄ）ノースブリッジ１０４：ノースブリッジ１０４は、高速専用バス１０５によりサウスブリッジ１０３と接続され、ホストバス１１１によりＣＰＵ１１２と接続されている。ノースブリッジ１０４は、ＲＡＭ(Random-Access Memory)であるメインメモリ１１０やＣＰＵ１１２(Central Processing Unit)、サウスブリッジ１０３間のデータの流れを調停する。
【００３０】
（ｅ）ＣＰＵ１１２：ＣＰＵ１１２は、例えばインテル社製のペンティアム（登録商標）プロセッサなどで構成される。ＣＰＵ１１２は、ホストバス１１１によりノースブリッジ１０４に接続されている。またＣＰＵ１１２は、その内部にＣＰＵ１１２自身が制御し、高速に動作するキャッシュメモリ（以下、ＣＰＵメモリ１１３という）を有している。
【００３１】
（ｆ）Ｉ／Ｏインターフェイス１０９：Ｉ／Ｏインターフェイス１０９には、図示しない入出力デバイスが接続される。例えばキーボード、タッチパネルなどが、Ｉ／Ｏインターフェイス１０９に接続される。
【００３２】
上記構成の画像圧縮システム１において、ＨＤ１０７は、負荷監視プログラム１０７ａ（負荷監視手段に相当）、アルゴリズム変更プログラム１０７ｂ（アルゴリズム変更手段に相当）、及び圧縮プログラム１０７ｃ（圧縮符号化手段に相当）を記憶している。負荷監視プログラム１０７ａは、コンピュータのＣＰＵ１１２(Central Processing Unit)の負荷レベルを監視する。アルゴリズム変更プログラム１０７ｂは、ＣＰＵ１１２の負荷レベルに応じ、画像データの圧縮符号化に用いるアルゴリズムを変更する。圧縮プログラム１０７ｃは、メインメモリ１１０に逐次書き込まれる画像データの圧縮符号化処理を行う。また、圧縮プログラム１０７ｃは、画像データの入力が開始されてから終了するまでにアルゴリズムが変化した場合には、変更後のアルゴリズムに基づいて圧縮符号化処理を続行する。これらのプログラムは、コンピュータに設けられたＨＤ１０７に記録されており、ＣＰＵ１１２のメインメモリ１１０内にロードされてそこで実行される。
【００３３】
図２は、このような画像圧縮システム１におけるデータの流れを示す。図中、破線矢印は非圧縮画像データの流れを示し、実線矢印は圧縮画像データの流れを示す。図に示すように、メインメモリ１１０には、非圧縮画像データを蓄積する非圧縮画像データバッファ１１４と、圧縮画像データを蓄積する圧縮画像データバッファ１１５とが、それぞれ設けられる。ビデオキャプチャボード２から入力された非圧縮画像データは、ＰＣIカードスロットインターフェイス１０１からサウスブリッジ１０３を経て、ノースブリッジ１０４のメインメモリ１１０の非圧縮画像データバッファ１１４に書き込まれる。書き込まれる速度は、おおよそ１秒間に３０フレームである。非圧縮画像データバッファ１１４に書き込まれた非圧縮画像データは、古い順にＣＰＵ１１２に読み出され、逐次圧縮符号化される。圧縮符号化された画像データは、メインメモリ１１０の圧縮画像データバッファ１１５内に一旦蓄積される。その後、圧縮画像データは、ノースブリッジ１０４、サウスブリッジ１０３を経由してＨＤ１０７に書き込まれる。
【００３４】
なお、図２では、メインメモリ１１０に変化値バッファ１１６を設けている。このバッファ１１６の機能については詳細を後述する。
【００３５】
［動作］
（ａ）システム全体の動作
前記構成の画像圧縮システム１において、ＣＰＵ１１２は、現在の処理の負荷レベルを判断し、負荷レベルに応じた圧縮符号化処理を行う。負荷が高ければ、ＣＰＵ１１２の負荷がより軽減されるアルゴリズムで圧縮符号化を行う。逆に、ＣＰＵ１１２の負荷が低くＣＰＵ１１２の処理能力に余裕があれば、ＣＰＵ１１２の負荷がより重くなっても画質が向上するアルゴリズムで圧縮符号化を行う。アルゴリズムの変更は、画像データの入力が開始されてから終了するまでの間に行われる。ここで、アルゴリズムの変更とは、所定のパラメータの変更、演算精度の変更、動き検出の範囲の変更、予測方法自体の変更またはこれらの組み合わせをいう。所定のパラメータとは、圧縮符号化に用いるパラメータであり、圧縮率を変えることなく圧縮処理の負荷を調整できるパラメータである。
【００３６】
動画像圧縮を例に取れば、ＣＰＵ１１２の負荷レベルに応じた演算精度に変更したり動き補償予測の方法を変更することが挙げられる。ＭＰＥＧ圧縮符号化であれば、動き補償予測の方法として、片方向予測、双方向予測、フレーム／フィールド予測、１６×８／１６×１６予測などが挙げられる。また例えば、ＤＶ圧縮符号化であれば、予測の方法として、８×８−ＤＣＴ／２−４−８ＤＣＴを挙げることができる。また、別の例として、動き検出の範囲を変えることが挙げられる。本発明の方法は、ＭＰＥＧ、ＤＶなどの動画像圧縮、モーションＪＰＥＧなど、圧縮符号化方法を特に限定することなく適用可能である。
【００３７】
（ｂ）ＣＰＵ１１２の負荷レベルの判断方法
負荷監視プログラム１０７ａは、非圧縮画像データバッファ１１４への非圧縮画像データの書込速度Ｖｗと圧縮符号化処理速度Ｖｒとに基づいて、ＣＰＵ１１２の負荷レベルを判断することができる。すなわち、非圧縮画像データバッファ１１４への書込速度Ｖｗと圧縮符号化処理速度Ｖｒとの比較結果に基づいて、ＣＰＵ１１２の負荷レベルを判断する。ここで、非圧縮画像データバッファ１１４に書き込まれた非圧縮画像データが圧縮符号化のために読み出される速度（以下、読み出し速度という）を、圧縮符号化処理の速度Ｖｒと見なすと良い。例えば、書込速度Ｖｗが読み出し速度Ｖｒよりも速ければ（Ｖｗ＞Ｖｒ）、負荷監視プログラム１０７ａはＣＰＵ１１２の負荷レベルが高いと判断する。逆に、書込速度Ｖｗが読み出し速度Ｖｒよりも遅ければ（Ｖｗ＜Ｖｒ）、負荷監視プログラム１０７ａはＣＰＵ１１２の負荷レベルが低いと判断する。両者が同程度であれば（Ｖｗ＝Ｖｒ）、ＣＰＵ１１２の負荷レベルはバランスしている。つまり、ＣＰＵ１１２の処理負荷と性能とが釣り合った状態にある。
【００３８】
再度図２を参照し、負荷監視プログラム１０７ａの処理の一例を説明する。書込速度Ｖｗと読み出し速度Ｖｒとの比較は、非圧縮画像データバッファ１１４への書込アドレスＰ１と非圧縮画像データバッファ１１４からの読み出しアドレスＰ２との差を監視することにより行うことができる。具体的には、次のように監視を行うことが挙げられる。
【００３９】
負荷監視プログラム１０７ａにより、書込アドレスＰ１と読み出しアドレスＰ２との差（以下、アドレスの差という）を一定時間間隔ΔＴで演算する。ΔＴの値は、適宜設定可能である。例えばＭＰＥＧ圧縮符号化であれば、ＧＯＰを形成する１５フレームが送出される０．５秒間隔をΔＴとすることができる。演算した最新の値ΔＰiをメインメモリ１１０内の変化値バッファ１１６に格納しておく。ΔＴ後に演算したアドレスの差ΔＰi+1と変化値バッファ１１６内に格納された前回のアドレスの差ΔＰiとを比較する。差が大きくなっていれば（ΔＰi＜ΔＰi+1）、ＣＰＵ１１２の負荷レベルが高いと負荷監視プログラム１０７ａは判断する。逆に差が小さくなっていれば、（ΔＰi＞ΔＰi+1）ＣＰＵ１１２の処理能力に余裕があると負荷監視プログラム１０７ａは判断する。つまり、ＣＰＵ１１２の負荷レベルは低いと判断する。
【００４０】
なお、変化値バッファ１１６には、前回のアドレスの差ΔＰiだけでなく、複数の過去のアドレスの差ΔＰi-1、ΔＰi-2・・・を蓄積しても良い。そのようにすれば、アドレスの差の時間変化に基づいて、ＣＰＵ１１２の処理能力の過不足発生を予測することができ好ましい。
【００４１】
（ｃ）圧縮符号化処理の変更・設定
アルゴリズム変更プログラム１０７ｂは、前記ΔＴ時間毎に所定の圧縮符号化処理を決定する。アルゴリズム変更プログラム１０７ｂは、負荷監視プログラム１０７ａによりＣＰＵ１１２の負荷レベルが高いと判断されると、ＣＰＵ１１２の負荷が軽減されるように所定のパラメータの値や予測方法などのアルゴリズムを変更する。アルゴリズムは、具体的には圧縮された画像の画質を落とすように変更することができる。画質を上げることとＣＰＵ１１２の負荷を軽くすることとは、通常は相反するからである。例えば、ＭＰＥＧ圧縮符号化において、動き検出の範囲を狭めるようにアルゴリズムを変更することが挙げられる。
【００４２】
逆に、ＣＰＵ１１２の負荷レベルが低いと判断されると、アルゴリズム変更プログラム１０７ｂは画質が向上するようにアルゴリズムを変更するとよい。ＣＰＵ１１２の処理能力に余裕がある場合はＣＰＵ１１２の負荷が増加してもよいので、画質を上げてＣＰＵ１１２の性能を活用することが好ましい。例えば、動き検出の範囲を拡大するようにアルゴリズムを変更することが挙げられる。
【００４３】
なお、ＣＰＵ１１２の負荷レベルがバランスしていると判断されると、アルゴリズム変更プログラム１０７ｂはアルゴリズムを変更せず、そのまま同じアルゴリズムを設定する。
【００４４】
（ｄ）圧縮
圧縮プログラム１０７ｃは、画像データの入力の途中で所定の圧縮符号化処理の変更を受け付け、圧縮符号化処理が変更された場合には変更後の圧縮符号化処理を用いて圧縮符号化を行う。より具体的には、圧縮プログラム１０７ｃは、アルゴリズム変更プログラム１０７ｂによるアルゴリズムの設定を、前記ΔＴ時間毎に受け付けるとよい。
【００４５】
［処理の流れ］
図３は、上記の構成を有する画像圧縮システム１が行う処理の流れを示すフローチャートである。この処理は、ビデオキャプチャボード２から画像データが入力されることにより開始するものであり、図３（ａ）に示すメイン処理としての圧縮処理と、図３（ｂ）に示す一定時間（例えば、３０秒）毎に割り込み処理される非圧縮画像取込処理とで構成される。
【００４６】
ステップＳ１：圧縮プログラム１０７ｃは、ＣＰＵ１１２の負荷レベルの判断及び圧縮符号化処理の設定がΔＴ時間毎に実行されるよう、負荷監視プログラム１０７ａ及びアルゴリズム変更プログラム１０７ｂを制御する。
【００４７】
ステップＳ２：負荷監視プログラム１０７ａは、非圧縮画像データバッファ１１４の書込アドレスＰ１及び読み出しアドレスＰ２から、現在のアドレスの差を演算する。さらに、負荷監視プログラム１０７ａは、メインメモリ１１０内の変化値バッファ１１６に格納された前回のアドレスの差ΔＰiと現在のアドレスの差ΔＰi+1とを比較し、ＣＰＵ１１２の負荷レベルを判断する。
【００４８】
ステップＳ３：アルゴリズム変更プログラム１０７ｂは、ステップＳ２での判断結果に従い、アルゴリズムを設定し、設定したアルゴリズムを圧縮プログラム１０７ｃに渡す。
【００４９】
ステップＳ４：圧縮プログラム１０７ｃは、設定されたアルゴリズムを用いて圧縮符号化処理を続行する。
【００５０】
ステップＳ５：負荷監視プログラム１０７ａは読み出しアドレスＰ２をインクリメントする。
【００５１】
ステップＳ６：圧縮プログラム１０７ｃは、画像データの入力が終了したか否かを判断し、入力が終了するまでステップＳ１〜Ｓ５の処理を繰り返すよう、負荷監視プログラム１０７ａ及びアルゴリズム変更プログラム１０７ｂを制御する。
【００５２】
ステップＳ１１：ビデオキャプチャボード２から入力された非圧縮画像データをＰＣＩカードスロットインターフェイス１０１からサウスブリッジ１０３を経てノースブリッジ１０４のメインメモリ１１０の非圧縮画像データバッファ１１４に１画面分取り込む。
【００５３】
ステップＳ１２：負荷監視プログラム１０７ａは書込アドレスＰ１をインクリメントする。
【００５４】
＜その他の実施形態例＞
コンピュータを前述の画像圧縮システム１として機能させるプログラムは、本発明の範囲に含まれる。また、そのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、プログラムとは、ダウンロード可能なものであってもなくてもよい。記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク（ＭＯ）、その他のものが挙げられる。また、前述の画像圧縮システム１が実行する方法は、本発明の範囲に含まれる。
【産業上の利用可能性】
【００５５】
本発明は、ソフトウェアエンコーダによる画像圧縮に適用可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１実施形態例に係る画像圧縮システムの構成ブロック図。
【図２】図１に示す画像圧縮システムにおけるデータの流れを示す説明図。
【図３】図１に示す画像圧縮システムが行う処理の流れの一例を示すフローチャート。
【符号の説明】
【００５７】
１：画像圧縮システム
１１２：ＣＰＵ
１１３：ＣＰＵメモリ
１１４：バッファ
【図１】
2008199657.tif 000003
【図２】
2008199657.tif 000004
【図３】
2008199657.tif 000005