説明

情報処理装置及びプログラム

【課題】 目標符号量に達するまでの処理時間を短縮させることができる情報処理装置を提供する。
【解決手段】 情報処理装置2は、入力された被符号化情報の一部が符号化されたタイミングで、これまでの符号量に基づいて総符号量を推定し、推定された総符号量に基づいて、符号化処理を打ち切って符号化係数を更新するか否かを判断する。情報処理装置2は、符号化処理を打ち切る場合には、更新された符号化係数で最初から符号化処理をやり直す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。
【背景技術】
【0002】
例えば、特許文献1には、直交変換したデータのヒストグラムを算出し、算出したヒストグラムに応じた量子化テーブルを作成する画像圧縮装置が開示されている。
また、特許文献2には、データを所定単位毎に順次符号化する情報処理装置において、符号化済のデータを符号化した際の発生符号量を監視し、該発生符号量に応じて、残りの符号化対象データを可逆符号化するか非可逆符号化するかを制御する情報処理装置が開示されている。
【特許文献1】特開平05−276391号公報
【特許文献2】特開平09−149260号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、目標符号量に達するまでの処理時間を短縮させることを目的とする。
【課題を解決するための手段】
【0004】
請求項1に係る本発明は、既定の符号化係数で、被符号化情報を符号化する符号化手段と、前記符号化手段により被符号化情報の一部が符号化されたタイミングで、符号化係数の変更を行うか否かを判断する判断手段と、前記判断手段により符号化係数を変更すると判断された場合に、異なる符号化係数で符号化処理をやり直すよう前記符号化手段を制御する制御手段とを有する。
【0005】
請求項2に係る本発明では、前記判断手段は、前記タイミングまでの符号量に基づいて、符号化係数の変更を行うか否かを判断する。
【0006】
請求項3に係る本発明では、前記判断手段は、前記タイミングまでの符号量に基づいて、総符号量を推定し、推定された総符号量が既定の範囲から外れる場合に、符号化係数の変更を行うと判断する。
【0007】
請求項4に係る本発明では、被符号化情報は、画像情報であり、前記判断手段は、前記タイミングまでの符号量と、前記タイミングまでに符号化された画像の大きさと、画像全体の大きさとに基づいて、総符号量を推定する。
【0008】
請求項5に係る本発明では、前記判断手段は、前記タイミングまでの符号量と、他の符号化係数で前記タイミングまでに符号化された符号量と、当該他の符号化係数で符号化された総符号量とに基づいて、総符号量を推定する。
【0009】
請求項6に係る本発明は、符号化効率が異なる複数の符号化手段と、前記符号化手段それぞれにより被符号化情報の一部が符号化されたタイミングで、複数の前記符号化手段の中から、符号化処理を中止すべき符号化手段を選択する選択手段と、前記選択手段により選択された符号化手段に、符号化処理を中止するよう制御する制御手段とを有する。
【0010】
請求項7に係る本発明は、既定の符号化係数で、被符号化情報を符号化する機能と、被符号化情報の一部が符号化されたタイミングで、符号化係数の変更を行うか否かを判断する機能と、符号化係数を変更すると判断された場合に、異なる符号化係数で符号化処理をやり直すよう制御する機能とをコンピュータに実現させる。
【0011】
請求項8に係る本発明は、符号化効率が異なる複数の符号化処理を開始するステップと、前記符号化処理それぞれにより被符号化情報の一部が符号化されたタイミングで、複数の前記符号化処理の中から、中止すべき符号化処理を選択するステップと、選択された符号化処理を中止させるステップとをコンピュータに実行させる。
【発明の効果】
【0012】
本発明の情報処理装置によれば、目標符号量に達するまでの処理時間を短縮させることができる。
【発明を実施するための最良の形態】
【0013】
図1は、情報処理装置2のハードウェア構成を、制御装置21を中心に例示する図である。
図1に例示するように、情報処理装置2は、CPU212及びメモリ214などを含む制御装置21、通信装置22、HDD・CD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置(UI装置)25から構成される。
情報処理装置2は、例えば、情報処理プログラム5(後述)がインストールされた汎用コンピュータであり、通信装置22又は記録装置24などを介して画像データを取得し、取得された画像データを符号化してプリンタ装置3に送信する。
【0014】
図2は、制御装置21(図1)により実行される情報処理プログラム5の機能構成を例示する図である。
図2に例示するように、情報処理プログラム5は、制御部500、情報保持部510、係数設定部520、非可逆符号化部530、及び打切り判断部540を有する。
【0015】
情報処理プログラム5において、制御部500は、打切り判断部540により符号化処理の打切りが決定された場合に、異なる符号化係数で符号化処理をやり直すよう、他の構成を制御する。より具体的には、制御部500は、打切り判断部540により符号化処理の打切りが決定された場合に、打ち切られた符号化処理よりも符号化効率の高い符号化係数を設定するように係数設定部520に指示し、保持されている画像情報を非可逆符号化部530に出力するよう情報保持部510に指示する。
【0016】
情報保持部510は、符号化処理の対象となる被符号化情報を保持し、制御部500からの指示に応じて、保持されている被符号化情報を非可逆符号化部530に出力する。
本例の情報保持部510は、通信装置22又は記録装置24などを介して、ラスタライズされた画像データを取得し、取得された画像データを制御部500からの指示に応じて非可逆符号化部530に出力する。
【0017】
係数設定部520は、制御部500からの指示に応じて、非可逆符号化部530に対して符号化係数を設定する。符号化係数とは、符号化処理における非可逆性を制御する係数であり、例えば、量子化の強度を制御する係数である。
本例の係数設定部520は、制御部500からの指示に応じて、JPEG符号化方式におけるスケーリングファクタを更新する。
【0018】
非可逆符号化部530は、情報保持部510から入力された被符号化情報を、係数設定部520により設定された符号化係数で非可逆符号化し、生成される符号データを順に打切り判断部540に出力する。
本例の非可逆符号化部530は、情報保持部510から入力される画像情報を、係数設定部520により設定されるスケーリングファクタでJPEG圧縮し、生成される符号データを打切り判断部540に出力する。
【0019】
打切り判断部540は、被符号化情報の一部が符号化されたタイミングで、符号化係数の変更を行うか否かを判断し、符号化係数の変更を行うと判断した場合には、符号化処理を打ち切る旨を制御部500に通知する。より具体的には、打切り判断部540は、非可逆符号化部530から入力された符号データに基づいて、所定のタイミングまでの符号量(以下、途中符号量)を特定し、特定された途中符号量に基づいて、総符号量を推定し、推定された総符号量が目標の範囲内におさまらない場合に、符号化処理の打切りを決定する。目標の範囲は、上限のみからなる範囲であってもよいし、上限及び下限からなる範囲であってもよい。
本例の打切り判断部540は、1バンド分の画像データ(部分画像)が符号化される度毎に、総符号量を推定し、推定された総符号量に基づいて、符号化処理を打ち切るか否かを判断する。
【0020】
図3は、情報処理プログラム5の動作(S10)を示すフローチャートである。
図3に示すように、ステップ100(S100)において、制御部500は、処理対象となる画像データが入力されると、デフォルトのスケーリングファクタによる符号化処理を開始するように情報保持部510及び係数設定部520に指示する。
係数設定部520は、制御部500からの指示に応じて、デフォルトのスケーリングファクタを非可逆符号化部530に設定する。
なお、情報保持部510は、符号化処理(S10)が完了するまで、入力された画像データを保持する。
【0021】
ステップ110(S110)において、情報保持部510は、制御部500からの指示に応じて、保持されている画像データの中から、1バンド分の画像データを非可逆符号化部530に出力する。
非可逆符号化部530は、係数設定部520により設定されたスケーリングファクタで、情報保持部510から入力された1バンド分の画像データを符号化し、符号データを打切り判断部540に出力する。
【0022】
ステップ120(S120)において、情報処理プログラム5は、入力された画像の全バンドを符号化したか否かを判断し、未処理のバンドが存在する場合に、S130の処理に移行し、未処理のバンドが存在しない場合に、S170の処理に移行する。
【0023】
ステップ130(S130)において、打切り判断部540は、非可逆符号化部530から入力された符号データの符号量(途中符号量)に基づいて、総符号量を推定する。なお、総符号量の推定方法は、図4及び図5を参照して後述する。
【0024】
ステップ140(S140)において、打切り判断部540は、推定された総符号量が許容範囲内であるか否かを判断する。
情報処理プログラム5は、推定された総符号量が許容範囲内であると判断された場合に、S110の処理に戻って、次のバンドの処理に移行し、推定された総符号量が許容範囲外であると判断された場合に、S150の処理に移行する。
なお、許容範囲は、符号化処理の進行に応じて、変更してもよい。例えば、総符号量の推定は、推定する時点が早いほど誤差が大きくなることが予想されるので、推定の初期には許容範囲を広げておき、徐々に許容範囲を狭くしていく。
【0025】
ステップ150(S150)において、打切り判断部540は、符号化処理の打切りを制御部500に通知する。
制御部500は、打切り判断部540からの通知に応じて、符号化処理を中止させて、量子化強度の高いスケーリングファクタを設定するよう係数設定部520に指示し、画像データを最初から供給するよう情報保持部510に指示する。
すなわち、制御部500は、スケーリングファクタを更新して符号化処理をやり直すよう、他の構成に指示する。
【0026】
ステップ160(S160)において、係数設定部520は、制御部500からの指示に応じて、より大きなスケーリングファクタに更新する。
情報処理プログラム5は、S110の処理に戻って、最初のバンドから符号化処理をやり直す。
【0027】
ステップ170(S170)において、打切り判断部540は、総符号量が許容範囲内であるか否かを判断し、総符号量が許容範囲内である場合に、非可逆符号化部530から入力された符号データを外部(記録装置24など)に出力し、総符号量が許容範囲外である場合に、やり直しを制御部500に通知する。
情報処理プログラム5は、総符号量が許容範囲外である場合に、S160の処理に移行して、符号化係数を更新して符号化処理をやり直し、総符号量が許容範囲内である場合に、符号化処理を終了する。
【0028】
図4は、打切り判断部540が適用する第1の推定方法を説明する図である。
図5は、打切り判断部540が適用する第2の推定方法を説明する図である。
図4(A)に例示するように、通常、同一量子化レベルで符号化された場合、その符号量は、符号化又は量子化のアルゴリズムによらず、画像のサイズに依存する。
したがって、打切り判断部540は、図4(B)に例示する第1の推定式で、途中符号量、当該途中符号量に対応する画像量、及び全画像量から、総符号量を推定する。ここで、画像量とは、例えば、画素数、ライン数、バンド数などである。
しかし、実際の符号量は線形に増加するとは限らない。図4(A)に示した例では、画像の後半で符号量の増加が緩やかになっている。つまり、画像の下部に圧縮しやすい絵柄があると考えられる。
そこで、このような場合には、打切り判断部540は、図5の第2の推定方法により、量子化レベル間の履歴の相関を利用して、総符号量を推定する。
すなわち、量子化レベル(符号化係数)が異なると符号量も異なる。しかし、ある量子化レベル(符号化係数)における符号量の履歴(部分毎の符号量の推移)は、他の量子化レベルのそれと相関が高い。例として、図4(A)の量子化レベル1の履歴で、他の量子化レベル2〜3の履歴を正規化した結果を図5(A)に例示する。
図5(A)からわかるように、ラインによらず、ほぼ定数である。つまり、上述の性質が裏付けられている。
そこで、打切り判断部540は、他の量子化レベルでの履歴がわかっている場合(すなわち、他の符号化係数で同一画像が符号化された場合)、図5(B)に例示する第2の推定式で、他の符号化係数で符号化したときの総符号量及び途中符号量と、今回の途中符号量とに基づいて、総符号量を推定する。
これにより、2パス目以降の推定精度が向上する。
【0029】
以上説明したように、本実施形態における情報処理装置2は、被符号化情報の一部が符号化されたタイミングで、符号化処理を打ち切って符号化係数を更新するか否かを判断し、符号化処理を打ち切る場合には、更新された符号化係数で最初から符号化処理をやり直す。
【0030】
[変形例1]
次に、上記実施形態の変形例を説明する。
上記実施形態では、入力された画像データを符号化する形態を説明したが、第1の変形例では、入力された符号データを、所望の範囲におさまるように再符号化する形態を説明する。
【0031】
図6は、第2の情報処理プログラム52の機能構成を例示する図である。なお、本図に示された各構成のうち、図2に示された構成と実質的に同一のものには同一の符号が付されている。
図6に例示するように、本変形例における情報処理プログラム52は、図2の情報処理プログラム5の情報保持部510及び打切り判断部540をそれぞれ第2の情報保持部512及び第2の打切り判断部542で置換し、さらに復号化部550を追加した構成をとる。
第2の情報処理プログラム52において、情報保持部512は、入力された符号データを保持し、制御部500からの指示に応じて、符号データを復号化部550に出力する。
復号化部550は、情報保持部512から入力される符号データを復号化し、復号化された被符号化情報(例えば、画像情報)を被可逆符号化部530に出力する。また、復号化部550は、復号化された符号データの符号量と、復号化された画像量とを打切り判断部542に出力する。
打切り判断部542は、復号化部550から入力される符号量及び画像量(他の符号化係数における履歴情報)と、非可逆符号化部530から入力される符号データとに基づいて、総符号量を推定し、推定された総符号量に基づいて、符号化処理を打ち切るか否かを判断する。
このように、第1の変形例では、1パス目から符号量の履歴が得られるので、より高精度な制御が期待できる。
なお、図6の構成では、情報保持部512が符号データを保持するようにしているが、復号化した情報(画像)を保持するように構成してもよい。こうするとバッファ量が大きくなるが、2パス目以降の復号化処理を省くことができる。
【0032】
[変形例2]
次に、第2の変形例を説明する。
上記実施形態及び第1の変形例では、1つの符号化係数で符号化処理を行い、打切りが決定された場合に、他の符号化係数に変更しているが、これに限定されるものではなく、例えば、符号化係数の異なる複数の符号化処理を並行して実行し、所定のタイミングで符号化処理のいずれかを打ち切るようにしてもよい。
そこで、第2の変形例では、符号化係数の異なる複数の符号化処理を並行して実行し、各符号化処理の総符号量を所定のタイミングで推定し、推定結果に基づいて、各符号化処理を続行するか打ち切るかを判断する。
【0033】
図7は、第2の変形例における情報処理プログラム6の機能構成を例示する図である。
図7に例示するように、本変形例の情報処理プログラム6は、制御部600、情報保持部610、非可逆符号化部620、及び打切り判断部630を有する。非可逆符号化部620は、複数の符号化部(第1符号化部622、第2符号化部624、及び、第3符号化部626)を含む。
【0034】
情報処理プログラム6において、制御部600は、打切り判断部630によりいずれかの符号化処理の打切りが決定された場合に、当該符号化処理を中止するように非可逆符号化部620を制御する。
また、制御部600は、全ての符号化処理が打ち切られる場合に、複数の符号化処理全てについて符号化係数を変更して符号化処理を最初からやり直すよう非可逆符号化部620を制御する。
【0035】
情報保持部610は、符号化処理の対象となる被符号化情報を保持し、制御部600からの指示に応じて、保持されている被符号化情報を非可逆符号化部620に出力する。
本例の情報保持部610は、処理対象のなる画像データを保持し、保持されている画像データの同一の部分を、第1符号化部622、第2符号化部624、及び第3符号化部626に出力する。
【0036】
非可逆符号化部620は、情報保持部610から入力された被符号化情報を、符号化係数の異なる(すなわち、符号化効率の異なる)複数の符号化処理で符号化する。
本例では、第1符号化部622、第2符号化部624、及び第3符号化部626には、互いに異なる符号化係数(スケーリングファクタなど)が設定されており、第1符号化部622、第2符号化部624、及び第3符号化部626が、情報保持部610から入力された同一の画像データをそれぞれ並行して符号化し、生成された符号データを打切り判断部630に出力する。ここで、並行とは、完全な同時処理である必要はなく、いわゆる並列処理を含む。例えば、複数の符号化部が少なくとも一部のハードウェアリソースを共用しており、複数の符号化部が各符号化処理の一部を交互に実行する場合も含まれる。
【0037】
打切り判断部630は、被符号化情報の一部が符号化されたタイミングで、符号化処理のいずれかを打ち切るか否かを判断し、いずれかの符号化処理を打ち切ると判断した場合には、打ち切る符号化処理を制御部600に通知する。
より具体的には、打切り判断部630は、非可逆符号化部620から入力された各符号化処理の符号量に基づいて、各符号化処理の総符号量を推定し、推定された総符号量が目標の範囲内におさまらない符号化処理が存在する場合に、この符号化処理の打切りを決定する。
本例の打切り判断部630は、1バンド分の画像データ(部分画像)が符号化される度毎に、第1符号化部622、第2符号化部624、及び第3符号化部626の総符号量を推定し、推定された総符号量に基づいて、第1符号化部622、第2符号化部624又は第3符号化部626の符号化処理を打ち切るか否かを判断する。
【0038】
図8は、本変形例における情報処理プログラム6の動作(S20)を示すフローチャートである。
図8に示すように、ステップ200(S200)において、制御部600は、処理対象となる画像データが入力されると、画像データの供給を開始するよう、情報保持部610に指示し、各符号化部について予め設定されたスケーリングファクタで符号化処理を開始するよう、第1符号化部622、第2符号化部624及び第3符号化部626に指示する。
なお、情報保持部610は、符号化処理(S20)が完了するまで、入力された画像データを保持する。
【0039】
ステップ210(S210)において、情報保持部610は、制御部600からの指示に応じて、保持されている画像データの中から、1バンド分の画像データを第1符号化部622、第2符号化部624及び第3符号化部626に出力する。
第1符号化部622、第2符号化部624及び第3符号化部626は、それぞれ、情報保持部610から入力された1バンド分の画像データを符号化し、符号データを打切り判断部630に出力する。
【0040】
ステップ220(S220)において、情報処理プログラム6は、入力された画像の全バンドを符号化したか否かを判断し、未処理のバンドが存在する場合に、S230の処理に移行し、未処理のバンドが存在しない場合に、S280の処理に移行する。
【0041】
ステップ230(S230)において、打切り判断部630は、第1符号化部622、第2符号化部624及び第3符号化部626それぞれから入力された符号データの符号量(途中符号量)に基づいて、各符号化処理の総符号量を推定する。なお、総符号量の推定方法は、例えば、図4及び図5を参照して説明したものである。
【0042】
ステップ240(S240)において、打切り判断部630は、推定された総符号量が許容範囲内であるか否かを各符号化処理について判断する。
情報処理プログラム6は、推定された総符号量が許容範囲内であると全ての符号化処理について判断された場合に、S210の処理に戻って、次のバンドの処理に移行し、推定された総符号量が許容範囲外であると判断された符号化処理が存在する場合に、S250の処理に移行する。
【0043】
ステップ250(S250)において、打切り判断部630は、符号化処理の打切りが決定された符号化処理(符号化部の識別情報など)を制御部600に通知する。
制御部600は、打切り判断部630からの通知に応じて、第1符号化部622、第2符号化部624及び第3符号化部626による符号化処理のうち、打切りが決定された符号化処理を中止させる。
【0044】
ステップ260(S260)において、制御部600は、稼動中の符号化部(符号化処理を行うユニット)が存在するか否かを判断する。
情報処理プログラム6は、稼動中の符号化部が存在する場合に、S210の処理に戻って、次のバンドの処理に移行し、稼動中の符号化部が存在しない場合(すなわち、第1符号化部622、第2符号化部624及び第3符号化部626が全て打ち切られた場合)に、S270の処理に移行する。
【0045】
ステップ270(S270)において、制御部600は、第1符号化部622、第2符号化部624及び第3符号化部626に対して、スケーリングファクタを更新するよう指示し、情報保持部610に対して、最初のバンドから画像データを供給し直すよう指示する。
情報処理プログラム6は、S210の処理に戻って、最初のバンドから符号化処理をやり直す。
【0046】
ステップ280(S280)において、打切り判断部630は、総符号量が許容範囲内であるか否かを各符号化処理について判断し、いずれかの符号化処理において総符号量が許容範囲内である場合に、許容範囲内となった符号データを外部(記録装置24など)に出力し、全ての符号化処理において総符号量が許容範囲外である場合に、やり直しを制御部600に通知する。
情報処理プログラム6は、全ての符号化処理において総符号量が許容範囲外である場合に、S270の処理に移行して、符号化処理のやり直しを実施し、いずれかの符号化処理において総符号量が許容範囲内である場合に、符号化処理を終了する。
【0047】
[その他の変形例]
上記実施形態及び変形例では、等間隔で設けられたタイミング(例えば、1バンド毎)に打切りを判断しているが、これに限定されるものではなく、例えば、符号化処理の後半まで打ち切らなかった場合、そこで総符号量の推定値が許容範囲の外に出ても、打ち切らないで最後まで処理するように制御してもよい。そのような場合には打ち切りによって処理時間を端折るよりも、最後まで処理することによって符号量の履歴を得ておいて、それ以降の試行での総符号量推定の精度向上を狙ったほうがよいと考えられるからである。
また、符号量の履歴は、試行の度ごとに保持しておき、その中から最も適切なものを選択するようにしてもよい。適切度の判定方法としては、例えば、符号量の履歴の相関や内積で判断することが考えられる。
【図面の簡単な説明】
【0048】
【図1】情報処理装置2のハードウェア構成を、制御装置21を中心に例示する図である。
【図2】制御装置21(図1)により実行される情報処理プログラム5の機能構成を例示する図である。
【図3】情報処理プログラム5の動作(S10)を示すフローチャートである。
【図4】打切り判断部540が適用する第1の推定方法を説明する図である。
【図5】打切り判断部540が適用する第2の推定方法を説明する図である。
【図6】第2の情報処理プログラム52の機能構成を例示する図である。
【図7】第2の変形例における情報処理プログラム6の機能構成を例示する図である。
【図8】本変形例における情報処理プログラム6の動作(S20)を示すフローチャートである。
【符号の説明】
【0049】
2・・・情報処理装置
5,52・・・情報処理プログラム
500・・・制御部
510,512・・・情報保持部
520・・・係数設定部
530・・・非可逆符号化部
540,542・・・打切り判断部
550・・・復号化部
6・・・情報処理プログラム

【特許請求の範囲】
【請求項1】
既定の符号化係数で、被符号化情報を符号化する符号化手段と、
前記符号化手段により被符号化情報の一部が符号化されたタイミングで、符号化係数の変更を行うか否かを判断する判断手段と、
前記判断手段により符号化係数を変更すると判断された場合に、異なる符号化係数で符号化処理をやり直すよう前記符号化手段を制御する制御手段と
を有する情報処理装置。
【請求項2】
前記判断手段は、前記タイミングまでの符号量に基づいて、符号化係数の変更を行うか否かを判断する
請求項1に記載の情報処理装置。
【請求項3】
前記判断手段は、前記タイミングまでの符号量に基づいて、総符号量を推定し、推定された総符号量が既定の範囲から外れる場合に、符号化係数の変更を行うと判断する
請求項2に記載の情報処理装置。
【請求項4】
被符号化情報は、画像情報であり、
前記判断手段は、前記タイミングまでの符号量と、前記タイミングまでに符号化された画像の大きさと、画像全体の大きさとに基づいて、総符号量を推定する
請求項3に記載の情報処理装置。
【請求項5】
前記判断手段は、前記タイミングまでの符号量と、他の符号化係数で前記タイミングまでに符号化された符号量と、当該他の符号化係数で符号化された総符号量とに基づいて、総符号量を推定する
請求項3に記載の情報処理装置。
【請求項6】
符号化効率が異なる複数の符号化手段と、
前記符号化手段それぞれにより被符号化情報の一部が符号化されたタイミングで、複数の前記符号化手段の中から、符号化処理を中止すべき符号化手段を選択する選択手段と、
前記選択手段により選択された符号化手段に、符号化処理を中止するよう制御する制御手段と
を有する情報処理装置。
【請求項7】
既定の符号化係数で、被符号化情報を符号化する機能と、
被符号化情報の一部が符号化されたタイミングで、符号化係数の変更を行うか否かを判断する機能と、
符号化係数を変更すると判断された場合に、異なる符号化係数で符号化処理をやり直すよう制御する機能と
をコンピュータに実現させるプログラム。
【請求項8】
符号化効率が異なる複数の符号化処理を開始するステップと、
前記符号化処理それぞれにより被符号化情報の一部が符号化されたタイミングで、複数の前記符号化処理の中から、中止すべき符号化処理を選択するステップと、
選択された符号化処理を中止させるステップと
をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate