JP4804836B2 - データ生成装置及びデータ生成プログラム - Google Patents

データ生成装置及びデータ生成プログラム Download PDF

Info

Publication number
JP4804836B2
JP4804836B2 JP2005251400A JP2005251400A JP4804836B2 JP 4804836 B2 JP4804836 B2 JP 4804836B2 JP 2005251400 A JP2005251400 A JP 2005251400A JP 2005251400 A JP2005251400 A JP 2005251400A JP 4804836 B2 JP4804836 B2 JP 4804836B2
Authority
JP
Japan
Prior art keywords
data
pattern
algorithm
output data
rule
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.)
Expired - Fee Related
Application number
JP2005251400A
Other languages
English (en)
Other versions
JP2007066007A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005251400A priority Critical patent/JP4804836B2/ja
Publication of JP2007066007A publication Critical patent/JP2007066007A/ja
Application granted granted Critical
Publication of JP4804836B2 publication Critical patent/JP4804836B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

複数のアルゴリズムからアルゴリズムの組み合わせを複数構築し、構築したそれぞれのアルゴリズムの組み合わせを実行することにより入力データに対応する最適な出力データを特定し、また最適な出力データを生成するアルゴリズムの組み合わせを特定するデータ生成装置に関する。
一以上の処理を実行し所望の出力データを生成可能なアルゴリズムの組合せが複数あり、組合せごとに出力データの性能値に差異が生じる場合、最適な出力データを生成するアルゴリズムの組合せを取得し、また最適なアルゴリズムの組合せから出力データを取得したい場合がある。
これに関して、従来例では、アルゴリズム最適化方法の例として、差分更新での差分データ作成に関するアルゴリズム、方式について開示している(特許文献1〜5)。しかし、これらはいずれも、差分データを作成する方式や、その際の差分サイズ削減のための特定の方式(アルゴリズム)について示したものである。複数のアルゴリズムから最適なアルゴリズムの組合せ、あるいは最適なアルゴリズムの組合せにより生成された出力データを提供する技術については開示していない。
1つ以上の処理を実行して所定のデータの作成する場合であってデータ作成の各過程で使用する方式/アルゴリズムが複数あり、その種類によって、出力結果となる出力データの性能値(ファイルサイズ、画質など)に差異が生じるような場合において、各過程で適用可能な複数の方式/アルゴリズム、あるいはそれらを組み合わせたパターンについて網羅的に実際にデータを出力して条件値となる値(差分更新の例では差分サイズ)を比較して最適な(同、差分サイズが最小となった)方式/アルゴリズム、あるいはそれらの「組合せパターン」を得ることが出来れば、正確かつ効率的に作業を行うことが出来る。
しかし、上記のように従来例の差分更新に関しては、このような技術は開示されていない。このため、例えばデータの種別により差分傾向が異なる差分サイズを最小化するには、データ種別ごとに差分傾向を分析して、差分抽出方式をチューニングする必要があった。データ種別毎に最適な差分抽出方式、差分表現方式を見出すこれらの分析作業は、データ規模が小さければ手作業の実施である程度可能であったが、大容量データの場合は手動で行うには作業負荷が高い。
また、差分量は差分抽出方式・差分表現方式の組み合わせによっても異なるので、手作業でこれらの網羅的な調査・分析を行うことは作業負荷が大きい。
また、対象パターン数が膨大な場合、網羅的な調査・分析を行えず、最適パターン検出の精度が低下し、品質的にも問題である。
特開2004−152136号公報 特開2004−287705号公報 特開2003−256248号公報 特開2004−191419号公報 特開2002−32773号公報
本発明は、一以上の処理を実行し所望の出力データを生成可能なアルゴリズムの組合せが複数あり、組合せごとに出力データの性能値に差異が生じる場合に、最適な出力データを特定し、また最適な出力データを生成するアルゴリズム組合せを特定する装置を提供することを目的とする。
本発明のデータ生成装置は、
入力データから前記入力データに対応する出力データを生成するデータ生成装置において、
前記入力データを受け付けるデータ入力部と、
前記出力データの生成に使用可能な複数のルールをメモリに記憶して格納するルール格納部と、
前記ルール格納部が前記メモリに記憶して格納した前記複数のルールのうち前記出力データの生成に使用するルールを選択して前記メモリから読み出し、選択して読み出した前記ルールに基づいて、前記入力データから前記出力データを生成可能な互いに異なる複数の出力データ生成経路を構築する経路構築部と、
前記経路構築部が構築したそれぞれの前記出力データ生成経路によって、前記出力データ生成経路ごとに前記出力データである経路別出力データを生成する出力データ生成部と
を備えたことを特徴とする。
本発明により、一以上の処理を実行し所望の出力データを生成可能なアルゴリズムの組合せが複数あり、組合せごとに出力データの性能値に差異が生じる場合において、各アルゴリズムの組合せごとの出力データを自動的に得ることができる。
実施の形態1.
図1〜図10を用いて、実施の形態1を説明する。実施の形態1は、後述の実施1〜実施例3に共通する最適アルゴリズム判定装置の基本構成と、基本動作とを説明する。そして、後述の実施例1〜実施例3では、最適アルゴリズム判定装置をファイル圧縮に適用した場合(実施例1)、差分データ更新に適用した場合(実施例2)、及び音楽ファイル変換に適用した場合(実施例3)について説明する。
実施の形態1の最適アルゴリズム判定装置は、同一の入力データをもとに1つ以上の処理を実行して所定の出力データを作成する場合であって、出力データを作成する各過程において使用可能な方式/アルゴリズムが複数あり、その種類により出力結果となる出力データの性能値(例えば、ファイルサイズ、画質など)に差異が生じるような場合において、各過程で適用可能な複数の方式/アルゴリズム、あるいはそれらを組合せたパターンについて網羅的に実際に出力データを生成し、判定のための条件値となる値(差分更新の例では差分サイズ)を比較して最適な方式/アルゴリズム、あるいはそれらの組合せ、最適出力データ等を得ることができる装置である。
図1は、本実施の形態1のシステム構成を示す構成図である。図1は、実施例1で述べるファイル圧縮を例にした場合を示している。図1のシステムでは、最適アルゴリズム判定装置100と端末装置220とがインターネット210に接続しており互いに通信可能であり、最適アルゴリズム判定装置100から端末装置220に圧縮ファイルを送信可能である。また、最適アルゴリズム判定装置100は、メモリカード819に圧縮ファイルを記憶させることができる。最適アルゴリズム判定装置100は、複数のアルゴリズムからアルゴリズムの組合せを複数構築し、構築したそれぞれのアルゴリズムの組合せを実行することにより、入力データに対応する最適な出力データを得る。
以下、図2〜図5を用いて、最適アルゴリズム判定装置100の動作の概要を説明する。まず、下記(1)〜(3)の用語を説明し、続いて図2〜図5により、具体的に用語及び動作を説明する。
以下において、
(1)「ルール」とは、入力データからその入力データに対応する出力データの生成処理に使用可能なアルゴリズム、あるいは「パラメータ組合せ設定」等の方式、手段をいう。
(2)「実行パターン」とは、原則として、一つの処理において独立して適用可能なルールをいう。
(3)「組合せパターン」(出力データ生成経路)とは、「ルール」に基づいて構築された、入力データから出力データを生成することができる一連の処理工程をいう。なお、「組合せパターン」は少なくとも一つのルールを含めばよい。また、「組合せパターン」を「探索パターン」と呼ぶ場合がある。
図2は、最適アルゴリズム判定装置100が「組合せパターン」を抽出(構築)する場合の例を示す図である。
(1)入力データ201から、出力データAを生成する場合を想定する。同一の入力データ201から、「ルール1−1」と「ルール1−2」とのいずれかを使用して出力データが生成されるとする。処理1の「実行パターン」は、「ルール1−1」と「ルール1−2」である。この場合、同一の入力データ201であっても「ルール1−1」を適用する場合と、「ルール1−2」を適用する場合とでは、出力結果である出力データa1と出力データa2とについて、その性能値(ファイルサイズ、画質など)に差異が生じる場合を想定する。すなわち、出力データa1と出力データa2とは、ともに出力データAとなるべき出力データであるが、適用するアルゴリズムが異なるため、性能値が異なる。本実施の形態1、実施例1〜実施例3ではこのような場合を想定している。
(2)最適アルゴリズム判定装置100(図8で後述する探索パターン抽出部104)は、処理1に適用することができる「ルール1−1」と「ルール1−2」とを選択する。そして、選択したこれらのルールから、「組合せパターン11」(出力データ生成経路)と、「組合せパターン12」(出力データ生成経路)とを抽出する。最適アルゴリズム判定装置100(図8で後述する探索パターン実行部105)は、抽出された「組合せパターン11」、「組合せパターン12」を順次実行し、それぞれの出力データa1(経路別出力データ),出力データa2(経路別出力データ)を生成する。最適アルゴリズム判定装置100(図8で後述する最適パターン判定部107)は、出力データa1と出力データaとのうちいずれかを最適データとして特定して出力データAとし、また最適データを生成した「組合せパターン」を「最適組合せパターン」として特定する。
(3)このように、最適アルゴリズム判定装置100は、出力データAを生成するあらゆる「組合せパターン」(この場合「組合せパターン11」、「組合せパターン12」)を網羅的に実行し、最適な出力データA(出力データa1,a2のいずれか)と、最適な出力データAを生成した「組合せパターン」である「最適組合せパターン」とを特定する。
図3は、最適アルゴリズム判定装置100が、「組合せパターン」を抽出(構築)する場合の別の例を示す図である。
(1)最適アルゴリズム判定装置100(探索パターン抽出部104)は、入力データ201から出力データBの生成に使用するルール(アルゴリズム、あるいはパラメータの組合せ設定)を選択する。図3は、最適アルゴリズム判定装置100(探索パターン抽出部104)が、「ルール1−1」、「ルール1−2」、「ルール2−1」、「ルール2−2」の4つを選択した場合を示している。すなわち最適アルゴリズム判定装置100が、処理1について「ルール1−1」、「ルール1−2」を選択し、処理2について「ルール2−1」、「ルール2−2」を選択した状態を示している。この場合、処理1の実行パターンは「ルール1−1」と「ルール1−2」であり、処理2の実行パターンは「ルール2−1」と「ルール2−2」である。
(2)最適アルゴリズム判定装置100(探索パターン抽出部104)は、選択した「ルール1−1」等に基づいて、「組合せパターン」を抽出(構築)する。図3においては、最適アルゴリズム判定装置100(探索パターン抽出部104)は、「ルール1−1」等に基づいて、
「ルール1−1」と「ルール2−1」から成る組合せパターン13、
「ルール1−1」と「ルール2−2」から成る組合せパターン15、
「ルール1−2」と「ルール2−1」から成る組合せパターン14、
「ルール1−2」と「ルール2−2」から成る組合せパターン16の
互いに異なる4通りの組合せパターンを抽出(構築)する。
(3)そして、最適アルゴリズム判定装置100(探索パターン実行部105)は、組合せパターン13等の互いに異なる4通りの組合せパターンを実行し、
組合せパターン13(出力データ生成経路)から出力データb1(経路別出力データ)を生成し、
組合せパターン14(出力データ生成経路)から出力データb2(経路別出力データ)を生成し、
組合せパターン15(出力データ生成経路)から出力データb3(経路別出力データ)を生成し、
組合せパターン16(出力データ生成経路)から出力データb4(経路別出力データ)を生成する。
(4)最適アルゴリズム判定装置100(最適パターン判定部107)は各出力データb1等のなかから、いずれかを最適データとして選び、選んだ最適データを出力データBとする。
図4は、最適アルゴリズム判定装置100が、組合せパターンを構築する場合の別の例を示す図である。最適アルゴリズム判定装置100(探索パターン抽出部104)は、処理1に適用することができる「ルール1−1」と「ルール1−2」とを選択する。そして、選択したこれらのルールから、「組合せパターン17」と、「組合せパターン18」とを抽出する。「組合せパターン17」は「ルール1−1」から構築され、「組合せパターン18」は「ルール1−1」と「ルール1−2」とから構築されている。この場合、例えば、「ルール1−1」は実施例2で後述する適用が必須の「必須ルール」であり、「ルール1−2」は適用しなくても構わない「オプションルール」である。最適アルゴリズム判定装置100(探索パターン実行部105)は、抽出された「組合せパターン17」、「組合せパターン18」を順次実行し、それぞれの出力データc1,出力データc2を生成する。最適アルゴリズム判定装置100(最適パターン判定部107)は、各出力データc1等のなかから、いずれかを最適データとして選び、選んだ最適データを出力データCとする。また最適データを生成した「組合せパターン」を「最適組合せパターン」として特定する。
図5は、最適アルゴリズム判定装置100が、「組合せパターン」を構築する場合の別の例を示す図である。最適アルゴリズム判定装置100(探索パターン抽出部104)は、処理1に適用することができる「ルール1」を選択する。処理1の「ルール1」は、この場合、例えば、パラメータの組合せ設定であるとする。「ルール1」では、パラメータ設定として「P=1」と「P=2」とのいずれかの設定を選ぶ必要があるとする。この場合、処理1の「実行パターン」は「P=1」と「P=2」との2通りである。最適アルゴリズム判定装置100(探索パターン抽出部104)は、「P=1」を設定する「組合せパターン19」と、「P=2」を設定する「組合せパターン20」とを抽出する。最適アルゴリズム判定装置100(探索パターン実行部105)は、「組合せパターン19」と「組合せパターン20」とを実行し、出力データd1と出力データd2とを生成する。最適アルゴリズム判定装置100(最適パターン判定部107)は、各出力データd1等のなかから、いずれかを最適データとして選び、選んだ最適データを出力データDとする。また最適データを生成した「組合せパターン」を「最適組合せパターン」として特定する。
図6は、実施の形態1における最適アルゴリズム判定装置100の外観を示す図である。図6において、最適アルゴリズム判定装置100は、システムユニット850、液晶表示装置813、キーボード814、マウス815、コンパクトディスク装置(CDD)818、プリンタ821を備え、これらはケーブルで接続されている。また最適アルゴリズム判定装置100は、インターネット210に接続されている。
図7は、実施の形態1における最適アルゴリズム判定装置100のハードウェア構成図である。図7において、最適アルゴリズム判定装置100は、プログラムを実行するCPU(Central Processing Unit)810を備えている。CPU810は、バス825を介してROM811、RAM812、液晶表示装置813、キーボード814、マウス815、通信ボード816、FDD(Flexible Disk Drive)817、CDD818、メモリカード819、携帯音楽プレーヤー820、プリンタ821、磁気ディスク装置830と接続されている。RAM812は、揮発性メモリの一例である。ROM811、FDD817、CDD818、磁気ディスク装置830は不揮発性メモリの一例である。これらは、、記憶部あるいは格納部の一例である。
通信ボード816を介して最適アルゴリズム判定装置100は、インターネット210に接続されている。また、通信ボード816、キーボード814、FDD817などは、データ入力部の一例である。また、例えば、通信ボード816、液晶表示装置813、磁気ディスク装置830などは、出力部の一例である。
磁気ディスク装置830には、オペレーティングシステム(OS)831、ウィンドウシステム832、プログラム群833、ファイル群834が記憶されている。プログラム群833は、CPU810、OS831、ウィンドウシステム832により実行される。
上記プログラム群833には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
ファイル群834には、以下に述べる実施の形態の説明において、「入力データ」、「出力データ」、「ルール」(アルゴリズム、パラメータ組合せの設定など)、「特定情報」として説明するものが記憶される。
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ROM811に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
また、以下に述べる実施の形態を実施するプログラムは、また、磁気ディスク装置830、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体による記録装置を用いて記憶されても構わない。
次に図8を用いて、実施の形態1における最適アルゴリズム判定装置100の構成を説明する。図8は、実施の形態1における最適アルゴリズム判定装置100の構成図である。最適アルゴリズム判定装置100は、入力データに対して1つ以上の処理を実行し、入力データに対応する所定の出力データを出力する。
最適アルゴリズム判定装置100は、アルゴリズム登録部101(ルール受付部)、最適パターン判定条件指定部102(目標値受付部)、アルゴリズム指定部103(選択条件受付部)、探索パターン抽出部104(経路構築部)、探索パターン実行部105(出力データ生成部)、データ入力部106、最適パターン判定部107(出力データ特定部)、アルゴリズム格納部108(ルール格納部)、及び特定情報格納部109を備える。
アルゴリズム登録部101等の各構成要素の機能を説明する。
(1)アルゴリズム登録部101(ルール受付部)は、データ処理に使用する各種アルゴリズム、あるいは「各種パラメータ組み合わせルール」の追加、削除を行う。アルゴリズム登録部101は、アルゴリズム格納部108に格納するためのルールの登録を受け付け、登録を受け付けたルールをアルゴリズム格納部108に格納する。また、アルゴリズム格納部108に格納したルールの削除を受け付け、受け付けたルールをアルゴリズム格納部108から削除する。
(2)最適パターン判定条件指定部102(目標値受付部)は、最適パターン判定部107による「最適組合せパターン」の判定において、判定条件となる目標性能値の入力を受け付けて設定する。ここで「目標性能値」とは、出力データに要求される目標性能を示す値である。例えば、最適アルゴリズム判定装置100により出力データとして圧縮ファイルを生成する場合は、「目標性能値」は、「ファイルサイズ」である。
(3)アルゴリズム指定部103(選択条件受付部)は、前記探索パターン抽出部104がルールを選択する場合の「選択条件」をユーザから受け付ける。探索パターン抽出部104は、アルゴリズム指定部103が受け付けた選択条件に基づいて、ルールを選択する。例えば、選択条件として、ユーザは、アルゴリズム指定部103により、「組合せパターン」の抽出に使用するアルゴリズムを指定する。この場合、探索パターン抽出部104は、ユーザが指定したアルゴリズムに限定して選択する。
(4)探索パターン抽出部104(経路構築部)は、アルゴリズム格納部108がメモリに記憶して格納した複数のルールのうち出力データの生成に使用するルールを選択してメモリから読み出す。そして、選択して読み出したルールを使用して、入力データから出力データを生成可能な互いに異なる複数の「組合せパターン」(出力データ生成経路)を抽出(構築)する。
(5)探索パターン実行部105(出力データ生成部)は、探索パターン抽出部104の抽出した各探索パターンの順次実行を行う。探索パターン実行部105は、探索パターン抽出部104が抽出した複数の「組合せパターン」を順次実行し、各「組合せパターン」のそれぞれから、各「組合せパターン」ごとの出力データ(経路別出力データ)を生成する。
(6)データ入力部106は、処理対象となるデータを入力データとして受け付ける。
(7)最適パターン判定部107(出力データ特定部)は、探索パターン実行部105の実行結果から、最適パターン判定条件指定部102で指定された判定条件(目標性能値)に従い、最適な出力データの特定、及び最適な「組合せパターン」の特定等を行う。最適パターン判定部107は、最適パターン判定条件指定部102が受け付けた「目標性能値」に従い、探索パターン実行部105がそれぞれの「組合せパターン」によって生成した出力データのなかから「目標性能値」に最も適合する出力データを「最適データ」として特定する。特定結果は、出力部に出力する。また、最適パターン判定部107は、「最適データ」を生成した「組合せパターン」を「最適組合せパターン」(最適経路)として特定し出力部に出力する。
(8)アルゴリズム格納部108(ルール格納部)は、入力データに関するデータ処理に使用するアルゴリズムや「パラメータ組み合わせルール」等の「ルール」をメモリに記憶する。ここで「メモリ」とは、半導体素子やフラッシュメモリや磁気ディスクなどである。
(9)特定情報格納部109は、最適パターン判定部107が特定した最適データや、「最適組合せパターン」を格納する。
次に図9を参照して、最適アルゴリズム判定装置100の動作を説明する。図9は、最適アルゴリズム判定装置100の動作を示すフローチャートである。最適アルゴリズム判定装置100のアルゴリズム格納部108のメモリには、出力データ作成のための各処理で使用する1つ以上のルール(変換方式/アルゴリズムなど)が、あらかじめアルゴリズム登録部101により登録されているものとする。最適アルゴリズム判定装置100は、以下のS(ステップ)1〜S8を実行する。
S1において、まずユーザが、例えば、図6で述べたキーボード814、あるいはマウス815などの入力装置を用いて、変換対象とする入力データを指定すると、最適アルゴリズム判定装置100は、データ入力部106に入力データ201を入力する。これによりデータ入力部106が入力データを受け付ける。
S2において、ユーザが、最適パターン判定条件指定部102により、最適パターン判定部107による「最適組合せパターン」の判定(あるいは最適データの判定)に使用する判定条件値(目標性能値)の設定を行う。ここで「判定条件値」とは、出力データに要求される目標性能を示す値であり、例えば出力データが圧縮ファイルであれば、目標のファイルサイズである。具体的には、ユーザがキーボード814、あるいはマウス815などの入力装置を用いて、判定条件を入力する。最適パターン判定条件指定部102は、入力された判定条件を受け付ける。
S3おいて、ユーザが、あらかじめ使用するアルゴリズム(ルール)を限定することが可能である。このS3はオプション的な過程である。選択するアルゴリズムを限定したい場合は、ユーザは、マウス815等の入力装置によりアルゴリズム指定部103に対して、探索パターン抽出部104が選択するアルゴリズムの選択条件を指定することが可能である。例えば選択条件の例として、探索パターン抽出部104が選択するべきアルゴリズムを指定する。あるいは、探索パターン抽出部104に選択させたくないアルゴリズムを指定する。この場合、次のS4では探索パターン抽出部104は、アルゴリズム指定部103が受け付けた選択条件にしたがって、アルゴリズムを選択する。
S4において、探索パターン抽出部104が、アルゴリズム登録部101によりアルゴリズム格納部108のメモリに記憶され格納されている複数のアルゴリズム(ルール)のうち出力データの生成に使用するアルゴリズムを選択してメモリから読み出す。そして、選択して読み出したアルゴリズムを使用して、図2〜図5で述べたような、入力データから出力データを生成可能な互いに異なる複数の「組合せパターン」を抽出(構築)する。
S5において、探索パターン実行部105は、S4で探索パターン抽出部104が抽出した「組合せパターン」を1つずつ実行する。1つ実行が終われば、未実行の「組合せパターン」がないかをチェックする(S6)。この処理を「組合せパターン」1つずつ繰り返し(S5,S6)、それぞれの「組合せパターン」ごとに出力データ(経路別出力データ)を生成する。
S7において、最適パターン判定部107は、探索パターン実行部105により生成された各「組合せパターン」の出力データから、ユーザによりステップS2で指定された判定条件に従い、最も「判定条件」に適合する出力データを最適データとして、また、その「最適データ」を出力した「組合せパターン」を「最適組合せパターン」として特定する。
S8において、最適パターン判定部107は、ステップS7で特定した「最適データ」や「最適組合せパターン」に関して、前記の「判定条件」に対応する「最適データ」の性能値である「最適データ性能値」(例えば、最適データのファイルサイズ)や、「最適組合せパターン」を構築するアルゴリズムなどの情報を、図7で出力部として示した、液晶表示装置813、プリンタ821、磁気ディスク装置830等の出力部に出力することによって、ユーザに通知する。
なお、最適パターン判定条件指定部102は、判定条件とする項目の種類や、さらにはその項目の値についての条件値(最小、最大、あるいは特定の値に近似)の指定を受け付け可能とする。
さらに、最適パターン判定条件指定部102は、後者の条件値の指定で特定の値の指定を受け付ける場合は、各出力データの値と指定した値との差異量(絶対値)による近似ではなく、条件値をオーバーした出力データはNGとし、オーバーしない範囲から最も条件に近いものを指定する、といった追加条件の指定を受け付けることも可能とする。
なお、最適パターン判定部107は、「最適組合せパターン」としては特定されなかった他の「組合せパターン」に関する情報、例えば、使用アルゴリズム、出力データのサイズ、出力データの出力までの実行時間などを出力し、ユーザに参考情報として提供するようにしても構わない。
以上により、入力データから出力データを生成する場合において、適用可能なアルゴリズムの「組合せパターン」について総当り的に出力データを作成し、各出力データの比較を自動化することにより、ユーザは、指定した判定条件に最も近い出力データを得る「組合せパターン」を簡易な手順で確認することが出来る。
図10は、図9のS5における探索パターン実行部105が各「組合せパターン」を実行する場合の詳細な処理フローを示す図である。図2〜図5で述べた内容に対応する。図10は、探索パターン抽出部104が「ルール11」等をアルゴリズム格納部108から選択し、それぞれのルールに基づき、例えば図3の場合と同様に、N通りの「組合せパターン」を既に抽出した場合を示している。
入力データ201から「組合せパターン」ごとの出力データ203を得るためには、データ変換処理(処理1等)は、1つ以上あるものとする。図10では、データ変換処理は、処理1〜処理NのN個ある場合を示している。探索パターン実行部105は実行順序として、処理1(S5−1)、処理2(S5−2)、・・・、処理N(S5−N)の順に実行するものとする。処理1〜処理Nには、それぞれの処理で適用可能なアルゴリズム(ルール)が一つ以上存在するものとする。図10では、処理1〜処理Nのそれぞれには、適用可能なアルゴリズムがN個ずつある。なお図10ではアルゴリズムをルールと記載している。
処理1には、「ルール11」〜「ルール1N」までのN個のルールがある。
処理2には、「ルール21」〜「ルール2N」までのN個のルールがある。
以下同様にして、
処理Nには、「ルールN1」〜「ルールNN」までのN個のルールがある。
以下、探索パターン実行部105は入力データ201に対して、複数の「組合せパターン」を抽出し、各「組合せパターン」ごとに(S5−1)〜(S5−N)の過程を実行し、「組合せパターン」ごとに出力データ203を生成する。
(S5−1)において、探索パターン実行部105は、入力データ201に対し、抽出した「組合せパターン」にしたがい、処理1で「ルール11」〜「ルール1N」のいずれかのアルゴリズムを適用し、中間データ202−1を出力する。よってトータルで出力する中間データ202−1の数は、ルールの数に一致する。
(S5−2)において、探索パターン実行部105は、中間データ202−1に対して、抽出した「組合せパターン」にしたがい、処理2で「ルール21」〜「ルール2N」のいずれかのアルゴリズムを適用し、中間データ202−2を出力する。よってトータルで出力する中間データ202−2の数は、入力データとなる「中間データ202−1」×「処理2のルールの数」に一致する。従って、Nの2乗通りある。
(S5−N)において、「中間データ202−N−1」に対して、処理Nで「ルールN1」〜「ルールNN」のいずれかのアルゴリズム適用を行い、出力データ203を出力する。よってトータルで出力する出力データ203の数は、入力データとなる「中間データ202−2」×「処理3のルールの数」に一致する。
このように、探索パターン実行部105は、抽出した「組合せパターン」にしたがい、1つの入力データ201に対し、「組合せパターン」ごとに、(S5−1)〜(S5−N)で適用するルールの組み合わせ数だけ、出力データ203を出力可能である。よって、「組合せパターン」数は、最大、N×N×・・・×N=NのN乗となる。
なお、探索パターン実行部105は、定義された処理1〜処理Nのうち、必ずしもすべての処理を実行するとは限らない。例えば、出力データ203の性能上は差が出ない、あるいは差が極めて小さい場合などは、一部の処理(アルゴリズム適用)を実行しなくても構わない。また、処理1〜処理Nの「ルール」は1種類以上としているが、「ルール」が1種類の場合は、その処理は1通りである。
また、処理1〜処理Nで使用するルールは、特定の1つのアルゴリズムでなくても構わない。図5で述べたような、出力データ203の性能に影響する「パラメータの組み合わせ」でも構わない。
このパラメータの組み合わせについて説明する。図5の場合と同様であるが、たとえば、図10の処理1で、性能に影響の出るパラメータがP1、P2、P3の3種類があるとする。そして、それぞれ設定可能な値が
P1では1〜10の10種類、
P2では1,2,3の3種類、
P3では0から8の9種類の値の設定が可能とする。すなわち、
(P1、P2、P3)=(1、1、0)〜(10、3、8)
この場合、設定可能な値は、
P1が10通り、
P2が3通り、
P3が9通りである。
(P1、P2、P3)の値の設定は必須であり、あるパラメータ設定値によっては他のパラメータが影響をうけて設定値不可の値が生じる、といった制約は一切ないものとした場合、「実行パターン」の総数は、
(P1、P2、P3)=10×3×9=270通りとなる。
つまり、この場合は「処理1のルール数=270」と考える。このような場合、探索パターン抽出部104は、ルール数270と判断して「組合せパターン」を抽出する。これは、図5で説明したとおりである。なお、このようなケースにおいては、各パラメータの値はある程度、相関関係あり、設定して効果の得られる値の範囲が大体決まっている場合もある。そのような場合は、アルゴリズム指定部103により、ユーザが各パラメータで設定する値を予め指定しておくことができるようにしてもよい。ユーザからこの指定がされた場合、探索パターン抽出部104は、その設定値の範囲から可能な組み合わせの数を決定し、「組合せパターン」を抽出する。
(実施例1)(ファイル圧縮)
図11、図12を用いて実施例1を説明する。以上では最適アルゴリズム判定装置100の基本構成について説明した。この基本構成に基づく第1の実施例として、最適アルゴリズム判定装置100で行う処理を、「ファイル圧縮」とした場合について述べる。実施例1のシステム構成は、図1と同様である。
図11は、最適アルゴリズム判定装置100が実行する処理であるファイル圧縮処理(S5−1−A)、およびその処理で使用するルール(圧縮アルゴリズム)と、データフローを示す図である。図11は、図10に対応する。図11は図10と同様に、探索パターン抽出部104が「圧縮アルゴリズム1」等をアルゴリズム格納部108から選択し、それぞれの圧縮アルゴリズムに基づき、「組合せパターン」を抽出した場合を示している。図11を参照して、入力データ201が1ファイルあり、これを圧縮し、複数の出力データのうち、ファイルサイズの一番小さい出力データを特定する場合を説明する。なお、この実施例1では図1に示すように、ファイルを外部に提供する等の目的で、ファイルを電子メールに添付して端末装置220に送信する場合や、入力データ201より容量の小さいメディア(記憶媒体:メモリカード819)でファイルを配布する必要がある場合を想定する。このため、ファイルのサイズを現在(入力データ)よりも小さくしなくてはならず、そのために圧縮を行おうする場合を想定する。
図12は、実施例1の最適アルゴリズム判定装置100の操作を示すフローチャートである。図11、図12を参照して実施例1の最適アルゴリズム判定装置100の動作を説明する。まず事前に、ユーザは、アルゴリズム登録部101により、ルールとして、ファイル圧縮処理(S5−1−A)で使用する圧縮アルゴリズム1〜圧縮アルゴリズムNをアルゴリズム格納部108に登録しておく。アルゴリズムの具体例としては、通常のファイル圧縮アルゴリズムである、lha,zip,tarなどを登録しておく。
次に、ユーザが、ある入力ファイル201に対して、サイズが最小となるファイル圧縮を最適アルゴリズム判定装置100により、以下のように図12のS101〜S108の手順に従い行う。
まず、S101(S1に相当)の処理として、ユーザは、圧縮したいファイルを入力データ201として指定する。
次に、S102(S2に相当)の処理として、ユーザは、最適パターン判定条件指定部102により、判定条件を設定する。この実施例1では、判定条件となる項目は出力データ203の「ファイルサイズ」である。また、値の条件は「最小」となることである。
次に、S103(S3に相当)の処理として、ユーザは、アルゴリズム指定部103により、登録されている圧縮アルゴリズム1〜圧縮アルゴリズムNのうち、適用除外したいものがある場合は、これを指定する。指定方法としては、使用したいもの、使用しないもの、いずれの指定方法でも構わない。本実施例1の場合、出力データである圧縮データを別のユーザに渡す場合、受け取り側で解凍できないアルゴリズムがある、と言ったような場合に、これを適用除外対象アルゴリズムとして指定できれば有効である。
次に、S104(S4に相当)の処理として、探索パターン抽出部104が、実行対象とする圧縮アルゴリズムを選択(抽出)する。なおS103でアルゴリズム指定部103により何らかの選択条件が指定されている場合、探索パターン抽出部104は、その選択条件の範囲内で圧縮アルゴリズムを選択(抽出)する。例えば4種類の圧縮アルゴリズムが登録されており、S103で1種類除外対象に指定された場合は、3種類を選択する。そして、探索パターン抽出部104は、選択した圧縮アルゴリズムに基づき、複数の「組合せパターン」を抽出する。前記のように3種類を選択した場合、例えば
「入力データ201→圧縮アルゴリズム1」、
「入力データ201→圧縮アルゴリズム2」、
「入力データ201→圧縮アルゴリズム3」
という3つの「組合せパターン」を抽出する。
次に、S105,S106(S5、S6に相当)の処理として、探索パターン実行部105が、S104で抽出した各「組合せパターン」を実行し、各「組合せパターン」における出力データ203−1〜出力データ203−Nを出力する。
次にS107(S7に相当)の処理として、最適パターン判定部107は、S105で探索パターン実行部105により生成された出力データ203−1等のファイルサイズを取得し、ファイルサイズが最小である出力データ(圧縮ファイル)、及びファイルサイズを最小とした「組合せパターン」を特定する。
次に、S108(S8に相当)の処理として、最適パターン判定部107は、最小と判定した出力データ、例えば出力データ203−1をファイルサイズ最小と判定したとすると、出力データ203−1を生成した「組合せパターン」を「最適組合せパターン」として、および出力データ203−1自身を「最適データ204」(最小圧縮ファイル)として出力部に出力する。必要であれば、ユーザへの参考情報として、各「組合せパターン」の出力データサイズなどの情報を実行結果情報として、一緒に出力しても良い。
なお、S102では、最適パターンの判定条件が固定の場合(例えばファイルサイズを所定の値以下と指定するような場合)は、ユーザが直接指定する方法のほか、あらかじめユーザが実行するアプリケーション内部に定義しておいても良い。あるいはアプリケーションのGUI(Graphical User Interface)から、ユーザが条件の追加設定を行なったり、あるいはデフォルト設定を変更可能にしても良い。
さらに、出力データのファイル形式として使用できない形式が事前にわかっているような場合は、アルゴリズム指定部103により、あらかじめ除外したいアルゴリズムを指定しておき(S103)、探索パターン抽出部104は、これを除外した範囲内でアルゴリズムを選択し、選択したアルゴリズムに基づき各「組合せパターン」を構築し、探索パターン実行部105が各「組合せパターン」の実行(S105)を行い、最適パターン判定部107が、この出力データ203−1等から、サイズ最小のファイルを出力するようにすることも可能とする。
この実施例1の最適アルゴリズム判定装置100は、探索パターン抽出部104、探索パターン実行部105を備えたので、アルゴリズムさえ登録しておけば、それらの出力結果を1つ1つ手動で作成する必要なく、簡易な操作で全パターンを自動実行することが可能となり、作業負担の大幅な軽減・より的確なアルゴリズム選択を行える、といった効果がある。
なお、上記は、入力データ201は1つの場合としたが、複数ファイルをまとめて入力データ201として、サイズが最小となる1つの圧縮ファイルとなる出力データ203を得るような場合においても、もちろん適用が可能である。
また、最適パターンの判定条件を、「ファイルサイズが一定のサイズ以下」とする場合は、あらかじめ最適パターン判定条件指定部102で、そのサイズ以下、と指定しておく。そして、探索パターン実行部105は、そのサイズを超えるファイルについての「組合せパターン」によるファイル生成を中断するようにしても構わない。すなわち、最適パターン判定条件指定部102が出力データに要求される判定条件(目標性能値:ここではファイルサイズ)を受け付ける。探索パターン実行部105は、それぞれの「組合せパターン」によって「組合せパターン」ごとの出力データを生成する場合に、それぞれの「組合せパターン」について最適パターン判定条件指定部102が受け付けた判定条件に適合する出力データを生成することができるかどうかを監視する。そして、いずれかの「組合せパターン」について判定条件に適合する出力データを生成することができないと判断した場合には、その判断に係る「組合せパターン」による出力データの生成処理を中止する。探索パターン実行部105は、中止した「組合せパターン」を不適合と判定する。これによって実行時間を節約し、また最適アルゴリズム判定装置100のディスク容量を節約することが出来る。
また、最適アルゴリズム判定装置100のディスクの空き容量に余裕がない場合(例えば図7の磁気ディスク装置830を想定)は、「組合せパターン」を実行するごとに、ファイルサイズ(目標性能値の一例)が最小となるケースの出力データ203を1種類のみ残し(ディスクに記憶し)、図9に示したS105、S106を繰り返し実行することで、ディスク容量を節約することができる。
具体的には、
(1)前記探索パターン抽出部104は、複数(例えば4つ)の「組合せパターン」を抽出する。
(2)探索パターン実行部105は、「組合せパターン」ごとに、順次、出力データ203−1、出力データ203−2、出力データ203−3、出力データ203−4を生成する。
(3)最適パターン判定部107は、探索パターン実行部105により1番目に生成された出力データ203−1(第1経路別出力データの一例)を図8に示す特定情報格納部109(例えば図7の磁気ディスク装置830を想定)に最適データの候補を示す「候補データ」として保存する。
(4)次に探索パターン実行部105によって2番目の出力データ203−2(第2経路別出力データの一例)が生成された場合、最適パターン判定部107は、候補データとして保存されている出力データ203−1と出力データ203−2とのうち、どちらが判定条件に適合するかを判断する。そして、より適合しないと判断した方を削除し、より適合していると判断した方を特定情報格納部109に「候補データ」として保存する。候補データとして出力データ203−1を維持し保存したとする。
(5)次に探索パターン実行部105によって3番目の出力データ203−3(第3経路別出力データの一例)が生成された場合、最適パターン判定部107は、候補データとして保存している出力データ203−1と、出力データ203−3とのうち、どちらが判定条件に適合するかを判断する。そして、より適合しないと判断した方を削除し、より適合していると判断した方を特定情報格納部109に最適データの候補である候補データとして保存する。この場合、候補データである出力データ203−1の方がより適合していると判断した場合、出力データ203−1を候補データとして維持し保存する。
(6)次に探索パターン実行部105によって4番目の出力データ203−4(第4経路別出力データの一例)が生成された場合、最適パターン判定部107は、候補データとして保存している出力データ203−1と、出力データ203−4とのうち、どちらが判定条件に適合するかを判断する。そして、より適合しないと判断した方を削除し、より適合していると判断した方を特定情報格納部109に最適データの候補である候補データとして保存する。この場合、候補データである出力データ203−4の方がより適合していると判断した場合、出力データ203−1を削除し、出力データ203−4を新たな候補データとして特定情報格納部109に保存する。
(7)最適パターン判定部107は、最終的に候補データとして保存されている出力データ203−4を「最適データ」として特定する。
(8)以上の(1)から(7)により、最適アルゴリズム判定装置100に「組合せパターン」ごとのファイル出力を行えるだけの十分なディスクの空き領域がないような場合でも、2つの出力データを格納できるディスク容量(記憶容量)があれば、登録した全アルゴリズムからファイルサイズが最小となる圧縮ファイル、及びファイル圧縮アルゴリズムの探索・判定を行うことができる。
さらに、2ファイル分(2つの出力データ分)の出力容量の確保も厳しい場合は、最適パターン判定部107は、探索パターン実行部105が生成した出力ファイル(出力データ)のサイズ情報(ファイルサイズ)のみ残し、1つの「組合せパターン」ごとにファイル作成(出力データ作成)・ファイル削除(出力データ削除)を行うようにする。そして、最適パターン判定部107は、最適パターン判定条件指定部102が受け付けた判定条件に最も適合するファイルサイズ(最適データ性能値の一例)を特定するともに、そのファイルサイズとなる出力データを生成した「組合せパターン」を「最適組合せパターン」として特定する。最適パターン判定部107は、特定した判定条件に最も適合するファイルサイズと、「最適組合せパターン」の情報とを特定情報格納部109に保存する。これにより、1つの「組合せパターン」の出力ファイル分(出力データ分)の空き容量がディスク(特定情報格納部109)にあれば、登録した全アルゴリズムからサイズ最小となるファイル圧縮アルゴリズムの探索・判定を行うことができる。ただし、この場合は「最適組合せパターン」がわかった後で、再度、その「最適組合せパターン」で最適データ(出力データ204)を再生成しなおす必要性が生じる。
また、出力データ203−1等のサイズを判定条件としたが、最適パターン判定条件指定部102により、複数の判定条件を指定することも可能である。最適パターン判定条件指定部102は、出力データに対する複数の判定条件(目標性能値)を受け付ける。そして、最適パターン判定部107は、最適パターン判定条件指定部102が受け付けた複数の判定条件に基づいて、最適データを特定する。各出力データ203−1等にサイズの差がほとんどない場合、ファイルサイズに加え、実行時間の早い出力データを優先するといった複数の判定条件を設定し(実行時間を判定条件として設定)、最適データを判定しても構わない。すなわち、第1の判定条件としてファイルサイズを設定し、第2の判定条件として出力データを生成するまでの実行時間(出力データ生成時間)を設定することも可能である。最適パターン判定部107は第1及び第2の判定条件に基づき判定を行なう。
以上より、本実施例1では、ファイルを外部に提供する等の目的で、メール添付や、入力データ201より容量の小さいメディアで配布する必要があり、ファイルのサイズを現在より小さくする必要があり、そのために圧縮を行おうとする場合に効果がある。多数ある圧縮方式について、手動でファイル圧縮を実行し、サイズ比較を行い最適アルゴリズムを決定する方法に比べ、ユーザの作業負担を減らし、効率的に正確にサイズ最小となるアルゴリズムの選択を行える効果がある。
また、ファイルのサイズを判定条件として指定する場合、最小値を指定する他、「所定のサイズ以下」といった指定も可能とする。これにより、サイズは大差ない複数のアルゴリズムが存在する場合に、サイズ以外のユーザ自身の嗜好を加味した判断も可能である。
また、複数条件を指定して判定することも可能なため、条件が複雑になっても調査すべき「組合せパターン」の抽出作業を、短時間かつ正確に行える効果がある。
また、あらかじめサイズや実行時間などの上限値を設定しておくことで、希望条件を大幅に上回るアルゴリズムでの実行時間を短縮することが可能であり、無駄な時間の節約、ディスク容量の節約を図る効果がある。
また、全ての「組合せパターン」の出力ファイルを作成する場合、ディスク容量を大量に消費するケースも想定されるが、そのような場合に備えて、全ファイルは残さず、ディスク空き容量を有効に使用する出力方式も指定可能であるため、空き容量が少ない場合でも最適アルゴリズムの探索を行える効果がある。
(実施例2.)(差分更新向け差分データ作成)
図13〜図21を用いて実施例2を説明する。実施例2は、最適アルゴリズム判定装置100で行う処理を、「差分更新向けの差分データ作成」とした場合である。
<1.差分データ作成の課題、最適アルゴリズム判定装置100の適用の意義>
差分更新では、新旧のデータの差分データを作成し、これを旧版に適用することで、新版への書き換え、バージョンアップを行う。通常、バージョンアップは、新版全体データを配布、置き換える方式の方が簡易で良いが、差分更新は、携帯電話などの組み込み機器のように、新版データを配布する通信回線やバージョンを行う端末のディスク容量などに制約があり、新版全体データを配布する方式を使えない場合に適用されることが多い。そのため、配布する差分データも極力サイズを小さくすることが要求される。しかし、差分データサイズは、その作成過程で使用するアルゴリズムによって異なり、差分データの作成過程も2過程以上あり、それぞれに有効なアルゴリズムがある。このため、差分量を最小とするには、最終的には、これらアルゴリズムの組み合わせを選択する必要がある。アルゴリズムの組み合わせ全てを網羅するように差分データを作成し、差分量が最小となる組み合わせの確認を手動で行うには作業負荷が大きい。自動実行による作業効率化、精度の高い最適な「組合せパターン」の発見を支援する環境が必要であり、最適アルゴリズム判定装置100の適用による効果が大きい。
図13は、本実施例2が想定するシステムの例を示す図である。図13は、最適アルゴリズム判定装置100により多数のアルゴリズムの組み合わせ全てを網羅的に探索して最適な差分データを自動的に取得し、取得した差分データをネットワークを介して携帯電話に配信するような場合を想定する。
<2.差分作成で行う処理の内容説明>
図14は、本実施例2において、最適アルゴリズム判定装置100が、図9に示したS5に相当する「組合せパターン」を実行する場合の詳細処理、およびその処理で使用するアルゴリズム(ルール)と、データフローを示す図である。図14は、実施の形態1で説明した図10と同様に、探索パターン抽出部104が、すでにルールを選択し、選択したルールに基づいて複数の「組合せパターン」を抽出した状態を示している。
<3.入力データと出力データ>
差分データ作成の場合、入力データ201は、差分データを作成したい「新版データ」と「旧版データ」の2つのファイルを対にしたファイルとなる。また、出力結果である各「組合せパターン」ごとの出力データ203は、「差分データ」である。「差分データ」を得るためは、図14に示す処理1〜処理3を順次実行する必要がある。なお、後述のように処理1は、「差分データ」を得るために必須ではない処理(後述のオプション処理)であり、処理1を実行しない場合もあり得る。
<4.処理の種類と各処理の入出力データ>
図14に示す様に処理は、処理1〜処理3の3種類ある。
処理1は、フォーマット変換(S5−1―B)である。
処理2は、バイナリ比較(差分抽出ともいう)(S5−2―B)である。
処理3は、差分表現(差分データ出力ともいう)(S5−3―B)である。
(1)処理1は、入力データを入力データ201(新旧データ)とし、中間データ202−1(フォーマット変換後の新旧データ)を出力する。
(2)処理2は、入力データを入力データ201(処理1を実行しない場合)、もしくは処理1を実行した場合は中間データ202−1とし、中間データ202−2(一致/更新領域情報)を出力する。
(3)処理3は、入力データを中間データ202−2とし、各「組合せパターン」ごとに出力データ203(差分データ)を出力する。中間データ202−1、中間データ202−2、出力データ203は、それぞれの処理で適用するルールの組み合わせ別(組合せパターン別)に出力される。即ち、例えば図3に示したのと同様に、それぞれの処理において、探索パターン抽出部104が抽出した「組合せパターン」ごとに出力され、複数の出力があり得る。
<5.差分データ作成プロセス概要説明>
一般的に、差分データ作成のプロセスは、差分抽出、差分表現の2段階からなる。これらには、図14の処理2(差分抽出)と処理3(差分表現)が相当する。図14の処理2、処理3は必須の処理である。一方、図14の処理1はオプション的な処理である。処理1は差分サイズ削減上の効果はあるものの、「実行しなくても差分データの作成自体は可能」といった位置づけの処理である。
<6.一般的な処理の分類(必須処理とオプション処理)>
なお、上記<5.差分データ作成プロセス概要説明>で述べたようなことは、図10に示した一般的な場合にもあり得ることであり、処理1〜処理Nの中には、出力データ203を得るために必須な処理と、必須とはいえない処理の2種類あるものとする。以下、出力データ203を得るために必須な処理を「必須処理」と呼び、必須でない処理を「オプション処理」と呼ぶこととする。以下、「必須処理」である差分抽出(処理2)と差分表現(処理3)とについて一般的な処理概要をまず説明し、続いてこの2つの処理でそれぞれ差分サイズ削減に有効なアルゴリズム(ルール)の例について説明する。その後に、「オプション処理」であるフォーマット変換(処理1)について説明する。
<7.処理2の差分抽出(概要)>
処理2の差分抽出(S5−2−B)では、新版データを旧版とバイナリ比較を行うことにより、一致箇所と、不一致箇所(更新箇所)とをバイト単位で検出する処理を行う。バイナリ比較の一般的なアルゴリズムとしては、rsyncやLCS(Longest Common Subsequence:最長一致箇所)探索などのアルゴリズムがある。本実施例2では、処理2の差分抽出は、rsyncとLCSとを組み合わせて行なう。
(1)まず、rsyncによるブロック単位での新版データを分割し、旧版からの一致するブロック探索を行う。
(2)一致するブロックがない場合は、LCSにより、ブロックデータをより小さなバイト列データとして、一致するバイト列を探する。一致した場合は、一致しなくなるまで探索するバイト長を1バイトずつ延長して最長の一致領域(=LCS)を探す、という方式で差分抽出を行う。出力として一致個所と不一致個所の情報(一致/更新領域情報、中間データ202−2)を出力することとする。なおrsyncやLCSは差分抽出の一般的アルゴリズムであるので、詳しい説明はここではこれ以上は行わない。
<8.処理2の差分抽出(使用ルールの定義)>
なお、上記方式での差分抽出では、出力する「一致/更新領域の構成比(差分量相当)」は、上記アルゴリズムで使用する「パラメータ情報の設定値」により違いが生じる。上記パラメータの具体的な例としては、rsyncアルゴリズムで使用する比較用分割ブロックサイズや、LCSとして一致比較を行う最小連続バイト数、バイト列一致時の延長バイト数などがある。よって差分抽出処理は、これらのパラメータ値の設定は必須であるが、設定値の「組合せパターン」がいくつかあるので、パターン毎に「一致/更新領域の構成比(差分サイズ)」が異なる。よって処理2では、「設定値の組み合わせ1つ1つ」をルールとみなし、扱うこととする。ただし、これらのパラメータの値設定は必須であるため、デフォルトとしてそれぞれのデフォルト値を決めたデフォルトパターンを設定しておく。探索パターン抽出部104による「組合せパターン」の抽出(構築)では、デフォルト値以外も含めあらゆる組み合わせを抽出する。また、処理2のルールの性格上、処理2ではルールは同時に1つしか使用できないものとする。
また、この場合、ルールは登録しておかなくても、実行時にユーザから組み合わせ対象となるパラメータの値範囲設定があれば、パラメータ値の「組合せパターン」の自動生成(ルールの自動生成)を行うことも可能とする。
なお、本実施例2では記載をしていなが、上記パラメータ組み合わせ設定以外に、同時使用可能(組み合わせ可能)なルールを登録しても良い。
<9.一般的なルールの考え方、扱いの定義(必須ルールとオプションルール)>
処理2の差分抽出に関わらず、図10に示した一般的な場合においても、処理1〜処理Nの各処理のルールには、2種類あるものとする。
第1に、同時に使用できないルール(必須パラメータ値の組み合わせなど)である。
第2に、同時に使用可能なルールである。
言い換えると、ルールは、以下の2種類があるといえる。
(1)第1に、必ず使用しなければならないルール(以下「必須ルール」という。)である。上記設定必須パラメータは「必須ルール」に該当する。ただし、上記パラメータのように1通りではなく、組み合わせが複数ある場合である。1通りしかない場合は、必ず実行し出力も1通りなので、「基本処理」と呼び、ルールとは区別することとする。
(2)第2に、使用しなくてもよいルール(以下「オプションルール」という。)である。例えば、使用しなくても出力データ203は得られるが、出力データ203の性能(ファイルサイズ等)に効果を期待できるルールを意味する。なお「オプション処理」のルールは、全て「オプションルール」となる。
<10.処理3の差分表現の説明>
次に処理3について説明する。処理3(S5−3−B)の差分表現は、差分抽出(S5−2−B)で得た「一致箇所・不一致箇所情報」を元に、これをバイナリで表現した差分データの出力を行う。処理2の差分抽出で出力した中間データ202−2(一致/更新領域情報)は、新版と旧版との一致、不一致(更新)の領域情報(各領域の開始、終了番地などの情報)である。しかし、差分データとして配布するには好ましい形式ではい。このため、中間データ202−2(一致/更新領域情報)に対して処理を行う。処理3の差分表現は、中間データ202−2(一致/更新領域情報)について、より少ないバイト数で更新状況(後述のCOPY,SKIP,DATAなどの種別と、サイズなどの情報がわかる形で)を効率よく表現した「差分コマンドの形式」で表現する。この処理3は、処理2の差分抽出と同様に「必須処理」である。処理3の差分表現には、実行必須の「必須ルール」と「オプションルール」とが含まれるものとする。以下、それぞれ説明する。
<11.処理3の差分表現の「必須ルール」(概要)>
差分データサイズを小さくするには、差分表現は極力少ないバイト数で、差分の情報を効率的に表現できることが要求される。バイナリ差分の表現方式としては、W3CのGdiffなどが一般的に使用されている。本実施例2では、このGdiffを一部拡張した方式での差分表現を、差分表現の基本方式(必須ルール)とする。図15により、本実施例2で使用する主要な3種類の差分表現について説明する。基本方式では、上記中間データ202−2(一致/更新領域情報)のうち、「一致箇所」はCOPYコマンドとSKIPコマンドで表現し,「不一致箇所」はDATAコマンドとして表現する。一致領域には、位置ずれのある場合、ない場合の2種類があるので、それぞれCOPY(位置ずれあり)、SKIP(位置ずれなし)と区別している。
<12.処理3の差分表現の「必須ルール」(差分コマンド体系)>
図16に、図15の差分表現の基本方式に従った本実施例2で使用する差分コマンド体系を示す。まず、コマンド種別は常に1バイトで表現し、0〜255まで256種類のコマンドを定義可能とする。
(1)0は、差分データの終端を意味する。
(2)次に、1〜242までが、DATAコマンド(不一致領域=更新領域)とし、コマンド種別に1バイトで、値は更新データのバイト数を示すものとする。243バイト以上の更新領域の場合は、2つ以上のDATAコマンドを使って表現するものとする。
(3)次に、243〜245をCOPY領域とし、2つのパラメータ(コピー元の旧版アドレスと、領域サイズ)を記述する。領域サイズのバイト数を1〜3までとし、243が1バイト、244が2バイト、245を3バイトとするため、COPYコマンドは3種類としている。コピー元アドレスは、新旧データのデータサイズやアドレス空間(差分更新対象がプログラムの場合)より使用するアドレスバイト数が異なるので、この影響を受けてコピー元アドレスに必要なバイト数は異なる。
(4)次に、246〜248をSKIP領域とし、1つのパラメータ(領域サイズ)を記述する。これも、COPYコマンド同様、領域サイズのバイト数を1〜3までとし、246が1バイト、247が2バイト、248を3バイトとするため、SKIPコマンドは3種類としている。
(5)次に、249〜254までが、拡張用予約コマンド(未使用)、255が、書き換え時のイメージ書き出しを行うFLUSHコマンドとしている。
(6)差分適用は、直接旧版データに適用・書き換えではなく、新版を分割したより小さな単位で、ワークメモリ上に
「旧版コピー」→「差分適用での新版イメージ作成」→「旧版該当領域への新版イメージ上書き」
を行っている。書き換え失敗発生時のダメージを小さくする目的でこのような方式を取っている。この「旧版該当領域への新版イメージ上書き」を実行するのがFLUSHコマンドである。これは差分表現としては不要だが、差分適用時に必要なため、コマンドとして定義している。
<13.処理3の差分表現の「必須ルール」(COPY⇒DATA変換)>
また差分表現効率化として、COPYコマンドは領域サイズが小さい場合、DATAコマンドで表現した方が使用バイト数を少なく出来る場合があり、このような場合はDATAコマンドに変換する処理を行う。(COPYコマンドで、コピー元アドレスを4バイト使用する場合、4バイトのCOPY領域はCOPYコマンドでは、1+4+1=6バイト、DATAコマンドでは 1+4=5 でDATAコマンドのほうが使用バイト数は少ない)
以上、<11.処理3の差分表現の必須ルール(概要)>から<13.処理3の差分表現の必須ルール(COPY⇒DATA変換)>が、本実施例2での差分表現(処理3)の「必須ルール」である。
<14.処理3の差分表現の「オプションルール」>
続いて、差分表現の「オプションルール」を説明する。差分表現の「オプションルール」は、必須ではないが「必須ルール」で作成した差分データをもとに、更なるサイズ削減効果を持つ「オプションルール」について説明する。これらは、「必須ルール」で作成した差分データに適用し、差分コマンドの変換処理を行うものである。ここでは、例として、「INSERT/DELETEコマンド」を挙げる。なお、「必須ルール」と「オプションルール」との関係は図4で示したような関係である。
<15.処理3の差分表現のオプションルール1(マクロコピー)>
図17は、差分表現の効率化のルール(オプションルール)の1つであるマクロコピーの概要を示す図である。従来の差分表現方式では、新版の先頭アドレスから順に差分を表現する方式を取っている。この方式では、図17に示すように、COPY領域とDATA領域とが交互に繰り返し出てくるような場合、データ内容の不変領域が多く、変更領域が少ない場合であるにもかかわらず、差分コマンドとして表現すると差分量が大きくなるという問題がある。これは、COPYコマンドはSKIPコマンドと比較すると、処理サイズの他にコピー元アドレス分を余分に要するためである。しかし、各COPY領域の位置ずれのサイズ(オフセット)が同一である場合、1コマンド毎に、このアドレス指定バイト数分は冗長であり、差分表現として非効率である。この対策として、「COPYコマンドのオフセットが同一である領域はこの領域全体を1つのCOPY領域として表現してから、その後に相違部分の情報をDATAコマンドとSKIPコマンドで表現する差分表現方法(マクロコピー)」が有効である。この方法を用いると、アドレス指定を必要とするCOPYコマンドは最初の1つで良く、それ以外のCOPYコマンドはアドレス指定の不要なSKIPコマンドに変換出来るため、差分データサイズの削減が可能である。
<16.処理3の差分表現のオプションルール2(INSERT/DELETEコマンド)>
図18、図19は、差分表現効率化のルール(オプションルール)の1つである「INSERTコマンド」,「DELETEコマンド」の概要を示す図である。たとえばデータ更新で、データテーブルのレコード相当が多数追加(図18)、あるいは削除(図19)したような場合、その前後の領域(レコード)の内容は不変だが位置ずれが生じるので、COPYコマンドが多くなる傾向がある。COPYコマンドが多くなると、マクロコピー同様、不変領域が多く変更領域が少ない場合にもかかわらず、差分コマンドとして表現すると差分量が大きくなるという問題がある。そこで更新を表現するコマンドとして、置換(上書き)の意味しか持たないDATAコマンドのほかに、追加、削除を意味するINSERT,DELETEの各コマンドを追加すれば、新旧のオフセットが自動調整され、位置ずれ領域はSKIPコマンド、あるいはコマンドなしで表現することが可能になる。以下、詳細について図18、図19に従い説明する。
図18は、INSERTコマンドの例である。新版で2箇所の追加領域がある。これにより、追加領域はDATAコマンド、以後の不変領域はCOPYコマンドで表現することになり、追加領域だけでなく、不変領域の差分量も増えてしまう。特に、追加領域が多ければ多いほど、COPY領域が増え、差分増加量も増える。そこで、DATAで表現していた追加領域をINSERTコマンドとして表現することで差分量削減を図る。INSERTコマンドは、図16の差分コマンドの未使用数(249−254のいずれか)を割り当て、引数として追加になったバイト数、追加する値を指定する。すると図中の各DATAコマンドは、1+データバイト数→1+1+データバイト数で1バイト増となるが、以後のCOPYコマンドはSKIPコマンドで表現可能であり、4×COPYコマンド分のバイト数を削減できる。合計では、32バイトから24バイトに削減できる。
図19は、DELETEコマンドの例である。新版で3箇所の削除領域がある。これにより、削除領域以後の不変領域はCOPYコマンドで表現することになり、不変領域の差分量も増えてしまう。特に、削除領域が多ければ多いほど、COPY領域が増え、差分増加量も増える。そこで、削除領域をDELETEコマンドとして表現することで差分量削減を図る。DELETEコマンドは、図16の差分コマンドの未使用数(249−254のいずれか)を割り当て、引数として削除になったバイト数を指定する。すると図中の各COPYコマンド(6byte)は、DELETEコマンド(2byte)とSKIPコマンド(2byte)に置換でき、2バイト少なく出来る。合計では、20バイトから14バイトに削減できる。
以上、差分表現(処理3)の「オプションルール」の例として、「マクロコピー」、「INSERT/DELETEコマンド」を挙げた。これらは「オプションルール」であるため、2つ同時に使用しても、単独で使用しても構わない。ただし、この2つのアルゴリズムは、差分コマンドの内容がある特定の傾向にあることを前提としているので、更新内容に前提に該当するケースがない場合、差分サイズ削減効果は期待できない。
このことは、データ種別(データ構造)だけでなく、更新の内容によっても、ルールの差分削減の有効性が異なることを意味する。
以上より、本実施例2のように、組み合わせ可能なあらゆる「組合せパターン」ごとの出力データ203を作成し、最適データ204の決定を自動的に行える環境は、作業の効率化、最適パターン選択の精度向上を図る効果がある。
<17.処理1のフォーマット変換(オプション処理)>
以上、差分データ作成の「必須処理」である、差分抽出・差分表現について説明した。次に「オプション処理」である、フォーマット変換処理(処理1)について説明する。
<18.処理1のフォーマット変換の概要>
処理1の「フォーマット変換」とは、入力データ201である新旧データを、更新の発生する位置に注目し、分散して発生している更新箇所を1箇所に集約するよう変換することである。これにより、変換新旧データ(中間データ202−1)に対して差分抽出(処理2)を行えば、変換しない場合(入力データ201、新旧データ)に比べ、更新箇所の数が削減される。このため、より少ない差分コマンドでの表現が可能となり差分データサイズを小さくする効果が得られる。以下、具体的なルールの例としてバイト列変換を示す。
<19.処理1のフォーマット変換ルール・バイト列変換その1>
図20は、フォーマット変換の例を示す図である。図の左側が、フォーマット変換の「実施前」の新旧データを示す。また、右側が、フォーマット変換の「実施後」の新旧データを示す。両側とも、上側が旧版、下側が新版の各データである。図20の変換実施前は、1レコードが8byteであり7byte目の要素が頻繁に変更となっている例を示しており、新版と旧版でアドレス(先頭からのオフセット)は異なっているものとしている。従来の差分表現ではSKIPとDATAの繰り返しとなり、合計で17byteの差分データが必要となる(SKIP領域がCOPY領域の場合は、32byteである)。ここで、「7byte目の要素が変更になりやすい」ことを前提条件とすることで、差分データサイズをより小さくすることができる。7byte目の要素のみをデータから抽出し、データの最後方に移動させる形式にフォーマット変換を行う。この変換データに対して差分を取ると「DATAコマンド」が1箇所に集まるため、差分データサイズが8byteとなり、変換しない場合に比べバイト数を約50%削減できる(COPYコマンドの場合は、12byteで約60%の削減である)。このようなケースを、フォーマット変換の1つの「ルール」として使用するには、新旧データのフォーマットを解析し、どの要素の更新が発生しているかの規則性を確認の上、アルゴリズム登録部101により、「ルール」として最適アルゴリズム判定装置100に登録しておく。
<20.処理1のフォーマット変換ルール・バイト列変換その2>
上記のように、特定のバイト列で更新が見られるケースは、プログラムデータで機械語の命令サイズが固定バイト数の場合に多く見られる。これは、特定関数を改修してサイズに増減が生じた結果、以後の関数も位置ずれが生じたような場合、これら関数の参照先(アドレス直接参照や、オフセットを使用している)も影響受けて位置ずれが発生する。このような差分では、関数参照(ジャンプ命令)の命令コードのパラメータ部の値が変更になり、これが特例バイト列の更新発生となる。しかし、CPUによっては機械語の命令コード体系が固定バイトではなく、可変バイトの場合もある。そのような場合、この固定バイトのフォーマット変換は適用しても差分サイズ削減の効果は期待できない。しかし、あらかじめ「ルール」として、アルゴリズム登録部101により、そのCPUのプログラムデータの構造を解析する情報を与えておき、新旧データをこれに従い解析可能にすれば、上記と同様、関数の改修による位置ずれの影響で発生したバイト位置を特定できる。よって、上記と同様、更新の発生するバイト列のみ一箇所に集めるようなフォーマット変換を行うことが可能となる。
つまり、ここではプログラムデータ向けに、CPUに応じて新旧データの機械語フォーマットを解析し、更新バイト列局所化を行うバイト列変換の「ルール」を用意することが可能である。さらにプログラムでなくデータの場合でも、同様の解析情報があれば同様のバイト列変換処理を行うルールの提供は可能である。各種データのフォーマット定義情報をXML(eXtensible Markup Language)やwindows(登録商標)のINIファイル形式など所定形式で記述して登録しておけば、そのデータ種別に対するバイト列変換が可能となる。
<21.図14の説明補足>
以下、これまでの説明をもとに、図14について補足する。処理1〜処理3の登録ルールの具体例としては、以下のとおりである。
(1)図14において、処理1のフォーマット変換は、先に述べた「オプション処理」に相当する。先に述べた「バイト列変換のルール」が、データ種別毎(プログラム用にCPU別、データ用にデータフォーマット別)に、アルゴリズム登録部101により事前登録されているものとする。
(2)処理2のバイナリ比較(差分抽出)は、先に述べた「必須処理」である。先に述べたパラメータ設定値の組み合わせの各パターンが、ユーザによりアルゴリズム登録部101を介して、ルール(必須ルール)として事前登録されている。あるいは、探索パターン実行部105が、実行時に各パラメータの設定値の指定範囲を受け取り、これらから可能な組み合わせをそれぞれルールとして動的に生成し使用する方式でも良い。
(3)処理3の差分表現は、先に述べた「必須処理」である。この処理3は「必須ルール」の他に、先に述べた「マクロコピー」、「INSERT/DELETEコマンド変換」を「オプションルール」として登録している。
<22.全体処理フロー(S201〜S208)>
図21を参照して実施例2における最適アルゴリズム判定装置100の動作を説明する。図21は、実施例2における最適アルゴリズム判定装置100の動作を説明するフローチャートであり、実施の形態1の図9に対応する。図21により、ユーザがある入力ファイル201から、図21のS201〜S208の手順に従い、最適データ204として、最小差分データ(差分ファイル)の出力を行う処理フローについて説明する。
事前に、ユーザは、最適アルゴリズム判定装置100が処理1〜処理3で使用するアルゴリズムをアルゴリズム登録部101により登録しておく。
続いてS201(S1に相当)の処理として、ユーザは、差分データを作成したい新版データと旧版データとの2ファイルをマウス815やキーボード814などの入力装置により入力データ201として指定する。
次にS202(S2に相当)の処理として、ユーザは、最適パターン判定条件指定部102により、判定条件を設定する。この実施例2では、判定条件となる項目は出力データ203の「ファイルサイズ」である。また、値の条件は「最小」となることである。
次にS203(S3に相当)の処理として、ユーザは、アルゴリズム指定部103により、登録されている処理1〜処理3用のアルゴリズムから適用除外したいものがある場合は、これを指定する。指定方法としては、使用したいアルゴリズムを指定する場合、使用しないアルゴリズムを指定する場合、いずれの指定方法でも構わない。
次にS204(S4に相当)の処理として、探索パターン抽出部104が、実行対象とするアルゴリズム(ルール)を選択(抽出)する。S203で全登録アルゴリズムから実行対象とするものが指定されている場合は、その範囲内で選択する。探索パターン抽出部104は、選択したアルゴリズム(ルール)に基づき、出力データを生成可能な互いに異なる複数の「組合せパターン」を抽出(構築)する。
次にS205、S206(S5、S6に相当)の処理として、探索パターン実行部105が、探索パターン抽出部104がS204で抽出した各「組合せパターン」を実行し、それぞれの「組合せパターン」ごとに出力データを生成する。
次にS207(S7に相当)の処理として、最適パターン判定部107は、S205で探索パターン実行部105により生成された出力データ203のファイルサイズを取得し、ファイルサイズが最小である出力データ203を最適データ204(最小差分データ)として特定する。また、最適データを生成した「組合せパターン」を「最適組合せパターン」として特定する。
次にS208(S8に相当)の処理として、最適パターン判定部107は、最適データ204(最小差分データ)、「最適組合せパターン」等を、液晶表示装置813、プリンタ821、磁気ディスク装置830などの出力部に出力する。
<23.追加:入力データのデータ種別>
なお、S203に関して、本実施例2の場合、入力データ201のデータ種別により有効なアルゴリズムが異なるため、あらかじめ効果が期待できないアルゴリズム(入力データ201のデータ種別には有効でないアルゴリズム)がわかっている場合は、アルゴリズム指定部103により、効果が期待できないアルゴリズムを適用除外対象として指定すればよい。これにより、S205、S206で無駄なルール実行(アルゴリズム実行)を行う必要がなくなり、実行時間を短縮できる。また、入力データ201のデータ種別により、効果の期待できるルールとそうでないルールを判別できる場合がある。このため、ユーザは、アルゴリズム指定部103により、入力データ201のデータ種別について使用するアルゴリズムを指定(選択条件の一例)することが可能である。
<24.S204における探索パターン抽出でのバリエーション詳細説明>
(1)(処理1の実行パターン数Aについて)
図14に示した処理1(S5−1−B)のフォーマット変換では、登録ルールはバイト列変換ルールがある。これは、データ種別毎に使用可能なルールは1つであり、したがって、処理1として適用可能なルール数は、「1」となる。ただし、処理1は「オプション処理」であり、実行しない場合もありうる。よって、処理1のフォーマット変換としての「実行パターン数(Aとおく)」は、最大2である。データ種別の指定は、アルゴリズム指定部103により、S203の使用アルゴリズム指定の過程で行う。
(2)(処理2の実行パターン数Bについて)
処理2(S5−2−B)のバイナリ比較(差分抽出)では、登録ルールは「パラメータ組み合わせルール」である。「パラメータ組み合わせルール」は、複数の組み合わせがある。設定可能なパラメータがP1、P2、P3の3種類とし、それぞれの設定値がP1が2種類、P2が3種類、P3が4種類とすれば、パラメータ(P1、P2、P3)の組み合わせ数は、2×3×4=24(通り)となる。差分抽出処理は「必須処理」なので、差分抽出処理(処理2)としての実行パターン数(Bとおく)の最大は、上記の組み合わせ数=24(通り)である。なお、アルゴリズム指定部103により、S203における使用アルゴリズム指定の過程で、上記パラメータの設定値で使用する値を限定することも可能であり、そうすれば、上記組み合わせ数も設定に応じ全組み合わせの場合よりも少なくなる。
(3)(処理3の実行パターン数Cについて)
処理3(S5−3−B)の差分表現では、「必須ルール」の他に、「オプションルール」として登録ルールは「マクロコピー」と、「INSERT/DELETE」との2種類である。よって、差分表現の「実行パターン」として、まずは次の(a)〜(d)の4通りがある。
(a)「マクロコピー」と「INSERT/DELETE」とのいずれも実行しない(必須ルールのみ実行する)。
(b)「マクロコピー」だけ実行する(必須ルール+「マクロコピー」)。
(c)「INSERT/DELETE」だけ実行する(必須ルール+「INSERT/DELETE」)。
(d)「マクロコピー」と「INSERT/DELETE」とも両方実行する(必須ルール+「マクロコピー」、「INSERT/DELETE」)。
よって、差分表現としての実行パターン数(Cとおく)は、最大4(通り)となる。さらに、「マクロコピー」については、マクロコピーの検出ルールを複数あるとした場合は、「マクロコピー」の実行パターンが増え、Cも増える。なお、アルゴリズム指定部103により、S203の使用アルゴリズム指定の過程で、差分表現で上記4種類の実行パターンを指定したり、「マクロコピー」の検出ルールが複数ある場合、使用するものを限定することも可能であり、そうすれば、上記組み合わせ数も設定に応じ全組み合わせの場合よりも少なくなる。
よって最適「組合せパターン」探索のために実行するべき「組合せパターン」の最大数は、
A×B×C=2×24×4=192
となる。探索パターン抽出部104は、処理1〜処理3で使用可能なアルゴリズム(ルール)をアルゴリズム格納部108から選択し、選択したアルゴリズムにもとづいて、最大で互いに異なる「A×B×C=192(通り)」の「組合せパターン」を抽出(構築)する。そして、探索パターン実行部105が、192(通り)の「組合せパターン」を実行して、192個の出力データ203を生成する。
本実施例2の最適アルゴリズム判定装置100は、処理が2つ以上あり、それぞれの処理に有効なルールを登録し、登録したルールを適用して複数の「組合せパターン」ごとに出力データを生成し、複数の「組合せパターン」から最適パターンの選択を行うことが出来る。
<25.実施例2の効果>
以上より、手動で「最適組合せパターン」を判定するには、上記の例では最大192(通り)の差分データを作成する必要がある。しかし、本実施例2の最適アルゴリズム判定装置100を使用すれば、各処理に必なルールのみを登録しておけば、出力結果(出力データ)を1つ1つ手動で作成する必要ない。最適アルゴリズム判定装置100は、簡易な操作で全ての「組合せパターン」を自動実行し、正確に最適データ(本実施例2の場合は最小差分データ)を特定し、また最適データを生成する「最適組合せパターン」を特定することができる。よって、作業負担の大幅な軽減、より的確なアルゴリズム選択を行うことができる。
<26.追記1>
また、本実施例2においても、実施例1と同様に実行時間やディスク容量節約を考慮した処理が可能である。また、S204における「組合せパターン」の抽出において、差分データ作成の場合、処理1(フォーマット変換)はオプション処理である。よって探索パターン抽出部104は、処理1を実行せず、処理2から開始する「組合せパターン」を構築してもよいのはもちろんである。また、処理3(差分表現)に関しても、更新内容が登録されたマクロコピーやINSERT/DELETEのルールでは効果のあるケースを含んでいないことが明らかである場合は、「必須ルール」のみ行い、これらの「オプションルール」の適用を除外するようにアルゴリズム指定部103により指定し、「組合せパターン」の抽出を行うようにしても良い。
<27.追記2>
また、S208では、ユーザへの参考情報として、最適パターン判定部107は、各「組合せパターン」により生成された出力データ203についての情報、例えば出力データサイズなどを「実行結果情報」として、一緒に出力部に出力しても良い。
<28.追記3>
また、各処理の新たなルールの発見、あるいはルール適用効果の個別確認を支援するため、各処理の適用結果である中間データを分析する分析手段、あるいは中間データ分析部を追加し、各処理の実行結果の分析情報を人間がわかりやすい形で提供することを行っても良い。特に差分データ作成の場合、最初に処理2の差分抽出のみデフォルトのルールで実行し、一致・更新領域情報を出力し、これを人間が理解しやすい形式に出力すれば、さらには更新発生個所の分布や、更新内容などの統計情報を出力することで、更新傾向の確認や、バイナリ比較で効果のあるパラメータ値の組み合わせを確認したり、フォーマット変換や差分表現の新たなルール発見を支援する効果が得られる。
(実施例3)(携帯音楽プレーヤーへの音楽ファイル作成)
次に図22〜図24を用いて実施例3を説明する。実施例3として、最適アルゴリズム判定装置100で行う処理を、携帯音楽プレーヤー820への音楽コンテンツ登録とした場合について述べる。
図22は、実施例3のシステム構成の一例を示す図である。最適アルゴリズム判定装置100と音楽配信サーバとがインターネットを介して接続している。最適アルゴリズム判定装置100は、音楽配信サーバからダウンロードした音楽ファイル、あるいは音楽CDから作成した音楽ファイル等を変換し、携帯音楽プレーヤー820に使用するメモリカード819に登録することができる。
メモリカード819など記憶容量が少ない記憶媒体を使用する携帯音楽プレーヤー820の場合、あるいは記憶容量は十分にあるが、空き容量が少なく新規に登録可能な曲数に制約があるような場合、「お気に入りの音楽CD3枚を登録したいが全て登録できるのか?」といったことは、実際に変換ファイルを作成してサイズを確認してみないとわからない。ファイルサイズは、使用する変換アルゴリズムによっても差が出る。現在の音楽変換(エンコード)の一般的アルゴリズムとしてはAAC,AIFF,MP3,WAVなど複数の種類がある。使用するアルゴリズムにより、1曲の差は僅かであっても、曲数が多い場合は合計サイズの差が大きくなることも考えられる。変換後のサイズについては、非常に大雑把な数字ではあるが、ある程度は大まかな目処は付く。例えば、AACステレオモード(128kbps)、3〜4分前後の曲であれば3〜4MB程度である。しかし、実際には楽曲によりサイズは若干異なるので、実際は変換ファイルを作成してみないと正確な数字はわからない。特に複数の曲を変換する場合、その合計がどうなるかを正確に予測することは難しい。また、音楽変換アルゴリズムでは、同一アルゴリズムでもパラメータ値(ビットレート、サンプリングレートなど)を持つので、このパラメータ値の設定により出力結果が異なる。例えばビットレートの場合、当然ながら高レートを指定すれば高音質であるが、ファイルサイズは大きくなる。逆にすれば、品質は良くないがファイルサイズは小さくできる。曲数が多く、なおかつ空き領域に余裕がないような場合は、特にお気に入りの曲は高音質、それ以外は低音質といった条件指定をして、所望の曲を取りこぼしなく全曲登録できることが望ましい。
明らかに曲数が多ければ、アルゴリズムやレート指定の調整では間に合わず、全曲収録は困難であるが、本実施例3の最適アルゴリズム判定装置100は、アルゴリズムやレート指定の調整で救える微妙なケースを対象に、「最適組合せパターン」探索を行い、手動では困難であった全曲登録を簡易な手順で可能にすることを目的とする。
図23は、最適アルゴリズム判定装置100が、本実施例3の場合に実行する処理である音楽ファイル変換アルゴリズム処理(S5−1−C)、およびその処理で使用する音楽ファイル変換アルゴリズム(ルールの一例)と、データフローを示す図である。図10、図11、図14等と同様に、探索パターン抽出部104によりルールが選択され、組合せパターンが抽出された後を示している。
入力データ201は複数の音楽ファイルであり、これを変換してファイルサイズが一番小さくなるようにしたい場合について説明する。このよう場合の例としては、指定した複数の音楽ファイルは、ユーザのお気に入りの楽曲を集めたもの、あるいはお気に入りのCDの収録曲などといった場合が想定される。
最適アルゴリズム判定装置100には、事前に音楽ファイル変換処理(S5−1−C)で使用するアルゴリズムをアルゴリズム登録部101により登録しているものとする。アルゴリズムの具体例としては、通常の音楽ファイル変換アルゴリズムであるmp3,wma,m4aなどを登録しておく。図23では、音楽ファイル変換アルゴリズム1〜音楽ファイル変換アルゴリズムNのN個を登録したものとする。
図24を参照して実施例3における最適アルゴリズム判定装置100の動作を説明する。図24は、実施例3における最適アルゴリズム判定装置100の動作を説明するフローチャートであり、実施の形態1の図9に対応する。図24により、ユーザが指定した複数の入力ファイルに対して、合計サイズが所定サイズ以下となるように、最適アルゴリズム判定装置100は、音楽ファイル変換を行う動作を説明する。
まずS301(S1に相当)の処理として、ユーザは、変換したい音楽ファイル群を入力データ201としてマウス815などの入力装置により指定する。
次にS302(S2に相当)の処理として、ユーザは、最適パターン判定条件指定部102により、判定条件を設定する。この実施例3では、判定条件となる項目は出力データ203の「合計ファイルサイズ」である。また、値の条件は、一例として「50MB(メガバイト)以下」とする。ここで指定する「50MB」という数字は、例えば、メモリカード819などの記憶媒体の出力先領域の空き容量サイズである。
次にS303(S3に相当)の処理として、ユーザは、アルゴリズム指定部103により、登録されている音楽ファイル変換アルゴリズムから適用除外したいものがある場合は、これを指定する。指定方法としては、使用したいもの、使用しないもの、いずれの指定方法でも構わない。例えば、携帯音楽プレーヤー820によって再生出来ない形式がある場合は、その形式の音楽ファイル変換アルゴリズムを指定して除外する、といった使い方がある。この他にも、指定した以外の形式には変換したくないような場合に指定すると、探索パターン(「組合せパターン」)から除外できるので有効である。
(1)さらに、音楽ファイル変換の場合、各音楽ファイル変換アルゴリズム毎にパラメータ情報としてビットレートやサンプリングレートなどが設定できるので、ユーザは、これらの値の範囲などもアルゴリズム指定部103により設定することができる。音質を一定以上に保ちたい場合などに指定する。
(2)また、複数ある曲のうち、特にお気に入りの曲だけは、高品質を確保したい、といった場合、ユーザは、アルゴリズム指定部103により、曲や曲のグループを定義し、これらの単位で、アルゴリズムやパラメータなどの条件を設定することも可能とする。
(3)また、事前に登録済音楽ファイルから削除してよい曲を最適アルゴリズム判定装置100に記憶しておき、「最適組合せパターン」の判定の結果、空き容量が不足する場合は、最適パターン判定部107が、これらのファイル(削除してもよい曲)を削除した場合に登録可能かどうかも含めて判定を行うようにすれば、ユーザの希望に沿うディスク領域(記憶媒体の記憶領域)の有効利用を図ることが出来る。
次にS304(S4に相当)の処理として、探索パターン抽出部104が、実行対象とする音楽ファイル変換アルゴリズムを選択する。S303で何か条件が指定されていれば、その範囲内で抽出する。例えば4種類の音楽ファイル変換アルゴリズムが登録されており、S303で1種類が除外対象に指定された場合は、3種類を3パターンとして選択する。また、音楽ファイル変換の場合、S303で述べたように、各音楽ファイル変換アルゴリズム毎にパラメータ情報としてビットレートやサンプリングレートなどが設定できる。これらビットレートなどが設定されている場合は、探索パターン抽出部104は、これらの組み合わせを含めて「組合せパターン」を抽出(構築)する。
次にS305、S306(S5,S6に相当)の処理として、探索パターン実行部105が、S304で抽出した各「組合せパターン」を実行し、各「組合せパターン」ごとの出力データ203−1等を生成する。
次にS307(S7に相当)の処理として、最適パターン判定部107は、S305で生成した出力データ203−1等のファイルサイズを取得し、出力データ203−1等のなかから判定条件に最も適合する最適データと、最適データを生成した「最適組合せパターン」とを特定する。
次にS308(S8に相当)の処理として、最適パターン判定部107は、「最適データ」と「最適組合せパターン」とを出力部に出力する。もしS307において最適データを特定できない場合は、最適パターン判定部107は、近似するパターンについて、上記のような情報を提供したり、あるいは該当パターンなし、といった出力を行う。このような条件を満たさない場合の動作については、実行前にユーザがあらかじめ選択出来るようにしておくことを可能とする。また、ユーザへの参考情報として、各「組合せパターン」ごとの各曲(出力データ203−1、出力データ203−2等)の出力データサイズなどの情報を実行結果情報として、一緒に出力部に出力しても良い。
また、本実施例3においても、実施例1と同様に実行時間・ディスク容量節約を考慮した処理を可能とする。
また、出力ファイルサイズの確認は、これまでは探索パターン実行部105が、実際に処理を実行して出力ファイル(出力データ)を得て、実際のファイルサイズを参照して行う方式としている。しかし、変換対象とする音楽ファイルの解析、使用する音楽ファイル変換アルゴリズムやそのパラメータ値などにより、概算レベルでも算出可能な計算式を最適アルゴリズム判定装置100が有する場合は、最適アルゴリズム判定装置100は、実際に出力ファイル作成は行わず、計算したファイルサイズにより判定を行っても良い。そうすれば、精度に若干の誤差はあるかもしれないが、実行時間、ディスク消費量を節約した最適パターンの判定を行うことが出来る。
携帯音楽プレーヤー820は、近年、記憶媒体が従来のMDやCDなどから、ハードディスク、フラッシュメモリ、メモリカードなど、パーソナルコンピュータと同様の媒体へと移行しつつあり、軽量・小型化・大容量化が進んでいる。また、携帯電話にも音楽ダウンロード機能や再生機能が搭載されるようになり、携帯音楽プレーヤー820は製品の多様化が進んでいる。
これらの製品の方向性としては、大別すると2つある。一つは、記憶媒体をハードディスクとし、これまでの製品にはなかった大容量の記憶容量(現在は数十GB相当)とすることで、個人の保有する音楽を全て登録・持ち歩き可能にする、といった革新的な音楽視聴スタイル実現をセールスポイントとするものである。もう一つは、携帯電話のように、記憶容量は前者に比べると格段に少なくなるが、記憶媒体に安価なメモリカードなどを使用し、携帯中に手軽に音楽を聞けることをセールスポイントとするものである。
本実施例3は、主に後者(携帯電話の例)において効果が期待できると考える。音楽再生能を搭載した携帯電話などでは、記憶媒体は、端末コストの関係で記憶容量に制約がある。現状は、前者(大容量の記憶容量)のような利用は不可能である。メモリカードも大容量化が進んではいるものの、大容量版は数万円と高価であり、普及が進んでいない。この金額は電車内などで暇つぶし的に気軽に音楽を聞きたいユーザ層や、学生ユーザ層には負担であるため、比較的購入しやすい256MB程度が上限であり、端末メーカー側も、動作保証する上限サイズをこのレベルにしているところが多い。
なお、今後の技術革新でメモリカードの価格が下がり、大容量サイズのメモリカードのコストの問題が解決し、いずれ普及が進むと考えられるが、大容量の記憶容量であっても、ユーザの利用形態により、記憶容量に余裕のない制約のある状況は今後も存在しうると考えられ、このような場合に本実施例3の最適アルゴリズム判定装置100は有効と考える。
例えば、大容量型の携帯音楽プレーヤーなどは、USB/IEEE1394などのインタフェースを持つ記憶デバイスとして通常のPC(Personal Computer)用USBメモリと同様の扱いも可能である。よって音楽プレーヤーだけでなく、大容量のUSBメモリとして通常のPC向けデータの保存・持ち運び装置としても使用可能である。携帯音楽プレーヤーの中には、写真表示機能を持たせた製品なども出ている。大容量の記憶容量のうち、一部だけ音楽プレーヤー用に使用する利用形態を想定した場合、音楽用に使える容量に制約が生じるケースもあると思われる。そのような場合、本実施例3の最適アルゴリズム判定装置100を適用すれば、前記で説明したのと同様の効果が得られる。さらには、音楽専用で使用する場合であっても、通常のPCのハードディスク上で音楽ファイル登録を行うような記憶容量の全体サイズとしては事実上制約がないような場合も含め、空き容量が少なくなった状態で新たに曲を追加登録したい場合においては、容量の制約問題は生じるので、同様の効果が得られる。
また本実施例3は、映像ファイルの場合についても適用可能である。DVDレコーダーで録画した映像コンテンツをDVD−RAMやDVD−Rなどの保存用記憶媒体に登録する場合、レコーダーには数百GB(ギガバイト)単位の大容量の記憶装置を持つ。しかし、保存用記憶媒体(DVD−RAM等)は10GB以下であり、転送時には保存用記憶媒体の上限サイズ(または空き容量)を意識する必要があり、そのままでは格納できない場合もある。そこで、場合によっては、映像のビットレートを落として変換することで、登録可能にしたい場合も考えられる。
なお、映像のエンコード(ファイル変換)は非常に時間がかかり、ディスク容量も消費する。よって先に述べたように、変換対象とする映像ファイルの解析、使用するファイル変換アルゴリズムやそのパラメータ値などにより概算レベルでも算出可能な計算式を有する場合は、実際に出力ファイル作成は行わず、計算のみのよって最適なパターンの判定を行っても良い。そうすれば、精度に若干の誤差はあるかもしれないが、実行時間、ディスク消費量を節約しながら、概算レベルでの最適パターンの判定を行うことが出来る。
実施の形態1の最適アルゴリズム判定装置100は、探索パターン抽出部104が「組合せパターン」を構築し、探索パターン実行部105が、各「組合せパターン」を実行して各「組合せパターン」ごとに出力データを生成する。よって、1つ以上の処理を実行して所定のデータを作成する場合にデータ作成の各過程で使用するアルゴリズムが複数あり、その種類により出力結果となる出力データの性能値に差異が生じるような場合において、各過程で適用可能なアルゴリズムの組み合わせである「組合せパターン」について網羅的に実際に出力データを出力し、出力データのなかから容易に最適データを選ぶことができる。
実施の形態1の最適アルゴリズム判定装置100は、アルゴリズム指定部103を備えたので、ユーザは、使用するアルゴリズム、あるいは使用しないアルゴリズムを指定することができる。これにより、無駄な「組合せパターン」が減り、実行時間の短縮を図ることができる。
実施の形態1の最適アルゴリズム判定装置100は、アルゴリズム登録部101を備えたので、ユーザは自由にアルゴリズムを登録することができる。
実施の形態1の最適アルゴリズム判定装置100は、判定条件を受け付ける最適パターン判定条件指定部102と、「組合せパターン」により出力データの生成実行中に、判定条件に適合する出力データが生成できるかどうかを監視し、生成できないと判断した場合に、その判断に係る「組合せパターン」による出力データの生成を中止する探索パターン実行部105とを備えたので、実行時間を節約することができる。また、その「組合せパターン」による生成処理を中止するため、その「組合せパターン」の出力データを記憶する必要がなくなり、記憶容量を節約できる。
実施の形態1の最適アルゴリズム判定装置100は、判定条件を受け付ける最適パターン判定条件指定部102と、判定条件に基づいて、各「組合せパターン」により生成された出力データから判定条件に最も適合する出力データを最適データとして特定する最適パターン判定部107とを備えた。よって、1つ以上の処理を実行して所定のデータを作成する場合にデータ作成の各過程で使用するアルゴリズムが複数あり、その種類により出力結果となる出力データの性能値に差異が生じるような場合において、各過程で適用可能なアルゴリズムの組み合わせである「組合せパターン」について網羅的に実際に出力データを出力し、出力データのなかから自動的に最適データを得ることができる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定条件指定部102は複数の判定条件を受け付け、最適パターン判定部107は、複数の条件に基づいて最適データを特定するので、ユーザは柔軟な判定条件の指定が可能となり、希望する出力データを得やすくなる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定条件指定部102が、判定条件として出力データの生成時間を受け付けるので、実行時間の短い出力データを知ることができる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定条件指定部102が、判定条件として出力データのデータサイズを受け付けるので、同一の入力データから最もデータサイズの小さい出力データを最適データとして得ることができる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定部107が、最適パターン判定条件指定部102の受け付けた判定条件に対応する最適データ性能値を特定するので、ユーザは、最適データと判定条件との対応を容易にしることができる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定部107が、最適データを生成した「組合せパターン」を特定する。よって、1つ以上の処理を実行して所定のデータを作成する場合にデータ作成の各過程で使用するアルゴリズムが複数あり、その種類により出力結果となる出力データの性能値に差異が生じるような場合において、各過程で適用可能なアルゴリズムの組み合わせである「組合せパターン」について網羅的に実際に出力データを出力し、「組合せパターン」のなかから容易に最適な「組合せパターン」を選ぶことができる。
実施の形態1の最適アルゴリズム判定装置100は、最適パターン判定部107が、各「組合せパターン」により順次生成される出力データについて、2組ずつ比較し、2組のうちより判定条件に適合する出力データを候補データとして保存し、最終的な候補データを最適データとするので、記憶部の記憶容量が出力データ2つぶんを格納可能な程度しかない場合にも、最適データを得ることができる。
実施の形態2.
実施の形態2は、実施の形態1の最適アルゴリズム判定装置100の動作を、方法、プログラム、及びプログラムを記録した記録媒体により実施する実施形態である。
前記の実施の形態1においては、最適アルゴリズム判定装置100における「〜部」として示した各構成要素の動作は互いに関連しており、動作の関連を考慮しながら、一連の動作を一連のステップと把握することによりデータ生成方法の実施形態とすることができる。また、最適アルゴリズム判定装置100の各構成要素の一連の動作をコンピュータに実施させる一連の処理に置き換えることができる。各構成要素の動作を一連の処理に置き換えることにより、データ生成プログラムの実施形態とすることができる。また、このデータ生成プログラムを、コンピュータ読み取り可能な記録媒体に記録させることで、プログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
図25は、実施の形態1の最適アルゴリズム判定装置100の
(1)データ入力部106の動作、
(2)アルゴリズム格納部108がアルゴリズムを複数のアルゴリズム(ルール)をメモリに格納する動作、
(3)探索パターン抽出部104が、「組合せパターン」を抽出(構築)する動作、
(4)探索パターン実行部105が、「組合せパターン」ごとに出力データを生成する動作
という一連の動作をステップに置き換えてデータ生成方法の実施形態としたフローチャートを示す。
S401は、データ入力部が、入力データを受け付けるステップである。S402は、アルゴリズム格納部108(ルール格納部)が、出力データの生成に使用可能な複数のルールをメモリに記憶して格納するステップである。S403は、探索パターン抽出部104(経路構築部)が、前記メモリに記憶された複数のルールのうち出力データの生成に使用するルールを選択してメモリから読み出し、選択して読み出したルールに基づいて、入力データから出力データを生成可能な互いに異なる複数の組合せパターン(出力データ生成経路)を構築するステップである。S404は、最適パターン判定部107(出力データ生成部)が、探索パターン抽出部104の構築したそれぞれの組合せパターンによって、組合せパターンごとに出力データ(経路別出力データ)を生成するステップである。
また図26は、最適アルゴリズム判定装置100の各構成要素の動作をコンピュータに実行させる処理と把握した場合におけるデータ生成プログラムのフローチャートである。図26は、図25に対応する。
プログラムの実施形態及びプログラムを記録したコンピュータ読み取り可能な記録媒体の実施形態は、すべて図6、図7に示したようなコンピュータシステムで動作可能なプログラムにより構成することができる。
実施の形態2のデータ生成方法によれば、1つ以上の処理を実行して所定のデータを作成する場合にデータ作成の各過程で使用するアルゴリズムが複数あり、その種類により出力結果となる出力データの性能値に差異が生じるような場合において、各過程で適用可能なアルゴリズムの組み合わせである「組合せパターン」について網羅的に実際に出力データを出力し、出力データのなかから容易に最適データを選ぶことができる。
実施の形態2のデータ生成プログラムによれば、1つ以上の処理を実行して所定のデータを作成する場合にデータ作成の各過程で使用するアルゴリズムが複数あり、その種類により出力結果となる出力データの性能値に差異が生じるような場合において、各過程で適用可能なアルゴリズムの組み合わせである「組合せパターン」について網羅的に実際に出力データを出力し、出力データのなかから容易に最適データを選ぶことができる。
以上の実施の形態では、入力データに対し、1つ以上の処理を実行し、所定のデータを出力する処理において、出力データ作成のための各過程で使用する変換方式/アルゴリズムが複数あり、その種類によって、出力結果となる出力データの性能値(ファイルサイズ、画質など)に差異が生じるようなアルゴリズム適用処理過程において、以下を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
(1)データ作成のための各過程で使用可能なアルゴリズムを登録するアルゴリズム登録手段
(2)複数の登録アルゴリズムからこれらの可能な「組合せパターン」を抽出する探索パターン抽出手段
(3)探索パターン抽出手段で検出した各パターンを順次実行してそれぞれの出力データを出力する探索パターン実行手段
(4)探索パターン実行手段の各種出力データに対し、ユーザが目標とする性能値の指定が可能な最適パターン判定条件指定手段
(5)探索パターン実行手段の各種出力データの中から、最適パターン判定条件指定手段で指定した条件に最も近似するパターンを特定、そのパターンのアルゴリズムの組み合わせを通知する最適パターン判定手段
以上の実施の形態では、最適パターン判定条件指定手段について、2つ以上の条件を指定することが可能な最適パターン判定条件指定手段と、これに従い指定した条件に最も近似するパターンを特定、そのパターンのアルゴリズムの組み合わせを通知する最適パターン判定手を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、あらかじめ有効なアルゴリズムがわかっている場合などにユーザが予め探索パターンを限定するよう使用アルゴリズムを指定することが可能なアルゴリズム指定手段を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データを得るまでの処理過程が2つ以上の場合において、各処理過程毎に1つ以上のアルゴリズム登録、適用が可能であり、各過程のアルゴリズム組み合わせの全「組合せパターン」から最適パターンの選択を行うことが可能な探索パターン抽出手段、探索パターン実行手段、最適パターン判定条件指定手段,最適パターン判定手段を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データの数が多く、ディスク容量を圧迫する場合の対策として、出力データは、指定条件の結果値のみ保存し、出力データ自体は保存せずに生成後削除する探索パターン実行手段を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データの数が多く、ディスク容量を圧迫する場合の対策として、出力データは、あらかじめ指定条件の閾値を設定しておき、閾値を超える場合は生成処理を中断し、そのパターンは不適格と判定する探索パターン実行手段と、最適パターン判定条件指定手段と、最適パターン判定手段とを備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データの数が多く、ディスク容量を圧迫する場合の対策として、出力データは、実行時点で指定条件の値に最も近い値のデータのみ保存し、以後のパターン実行でこれを上回る近似値の出力データが出現した場合は、古い方を削除し、新しい出力データを残すことで、より近似値に近い出力データのみを残す探索パターン実行手段、最適パターン判定条件指定手段、最適パターン判定手段を備えた最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データに対するユーザが最適パターン判定条件指定手段により目標とする指定する性能値の条件を、出力データ生成の実行時間とする最適方式/アルゴリズム選択装置・選択方式を説明した。
以上の実施の形態では、出力データに対してユーザが最適パターン判定条件指定手段により目標として指定する性能値の条件を、出力データのデータサイズとする最適方式/アルゴリズム選択装置・選択方式を説明した。
実施の形態1におけるシステム構成の例を示す。 実施の形態1における最適アルゴリズム判定装置100の動作概要を説明する図である。 実施の形態1における最適アルゴリズム判定装置100の動作概要を説明する図である。 実施の形態1における最適アルゴリズム判定装置100の動作概要を説明する図である。 実施の形態1における最適アルゴリズム判定装置100の動作概要を説明する図である。 実施の形態1における最適アルゴリズム判定装置100の外観を示す図である。 実施の形態1における最適アルゴリズム判定装置100のハードウェア構成を示す図である。 実施の形態1における最適アルゴリズム判定装置100のブロック図である。 実施の形態1における最適アルゴリズム判定装置100の動作を説明するフローチャートである。 実施の形態1における探索パターン実行部105の処理フローを示す図である。 実施例1における探索パターン実行部105によるファイル圧縮を説明する図である。 実施例1における最適アルゴリズム判定装置100の動作を説明するフローチャートである。 実施例2におけるシステム構成の例を示す。 実施例2における探索パターン実行部105の処理フローを示す図である。 実施例2における差分表現を説明する図である。 実施例2における差分コマンド体系を示す図である。 実施例2におけるマクロコピーを説明する図である。 実施例2における差分表現のINSERTコマンドを説明する図である。 実施例2における差分表現のDELETEコマンドを説明する図である。 実施例2におけるフォーマット変換を説明する図である。 実施例2における最適アルゴリズム判定装置100の動作を説明するフローチャートである。 実施例3におけるシステム構成の例を示す。 実施例3における探索パターン実行部105の処理フローを示す図である。 実施例3における最適アルゴリズム判定装置100の動作を説明するフローチャートである。 実施の形態2におけるデータ生成方法を説明するフローチャートである。 実施の形態2におけるデータ生成プログラムを説明するフローチャートである。
符号の説明
100 最適アルゴリズム判定装置、101 アルゴリズム登録部、102 最適パターン判定条件指定部、103 アルゴリズム指定部、104 探索パターン抽出部、105 探索パターン実行部、106 データ入力部、107 最適パターン判定部、108 アルゴリズム格納部、109 特定情報格納部、210 インターネット、220 端末装置、800 コンピュータシステム、810 CPU、811 ROM、812 RAM、813 液晶表示装置、814 キーボード、815 マウス、816 通信ボード、817 FDD、818 CDD、819 メモリカード、820 携帯音楽プレーヤー、821 プリンタ、825 バス、830 磁気ディスク装置、831 OS、832 ウィンドウシステム、833 プログラム群、834 ファイル群、850 システムユニット。

Claims (4)

  1. 入力データを受け付けるデータ入力部と、
    前記入力データに対応する出力データを生成するために実行される一連のN個(Nは2以上の整数)の処理の各々で使用可能な方式を示すルールを格納するルール格納部であって、前記N個の処理のうちの少なくとも二つの前記処理には、前記出力データを生成するに際して独立に使用可能な複数個の前記ルールが存在する、前記N個の処理ごとの前記複数のルールを格納するルール格納部と、
    前記ルール格納部が格納する前記処理ごとの前記複数のルールを使用することによって、前記入力データから前記出力データを生成することができる一連のN個の処理からなる処理工程を示す組合せパターンであって、前記複数のルールが存在するそれぞれの前記処理から一つの前記ルールを選択することで得られ、かつ、前記複数のルールが存在するそれぞれの前記処理の前記複数のルールの個数どうしを乗じて得られる組合せの数だけ存在するそれぞれの組合せパターンを抽出するパターン抽出部と、
    前記パターン抽出部によって抽出されたそれぞれの組合せパターンのすべてを網羅して実行し、前記入力データから前記出力データを生成するパターン実行部と、
    前記パターン実行部によって実行された前記組合せパターンのうち、予め設定された条件を満足する前記組合せパターンを格納する特定情報格納部と
    を備えたことを特徴とするデータ生成装置。
  2. 前記ルール格納部は、
    前記複数のルールとして、複数のアルゴリズムと、複数のパラメータ設定値との少なくともいずれかを格納することを特徴とする請求項1記載のデータ生成装置。
  3. 前記データ入力部は、
    前記入力データとして、前記出力データである差分データの作成に使用する旧版データと、前記旧版データから更新された新版データとを受け付け、
    前記ルール格納部は、
    前記複数のルールとして、複数の差分アルゴリズムと、前記差分データの生成に使用される複数のパラメータ設定値との少なくともいずれかを格納することを特徴とする請求項2記載のデータ生成装置。
  4. コンピュータを、
    入力データを受け付けるデータ入力部、
    前記入力データに対応する出力データを生成するために実行される一連のN個(Nは2以上の整数)の処理の各々で使用可能な方式を示すルールを格納するルール格納部であって、前記N個の処理のうちの少なくとも二つの前記処理には、前記出力データを生成するに際して独立に使用可能な複数個の前記ルールが存在する、前記N個の処理ごとの前記複数のルールを格納するルール格納部、
    前記ルール格納部が格納する前記処理ごとの前記複数のルールを使用することによって、前記入力データから前記出力データを生成することができる一連のN個の処理からなる処理工程を示す組合せパターンであって、前記複数のルールが存在するそれぞれの前記処理から一つの前記ルールを選択することで得られ、かつ、前記複数のルールが存在するそれぞれの前記処理の前記複数のルールの個数どうしを乗じて得られる組合せの数だけ存在するそれぞれの組合せパターンを抽出するパターン抽出部、
    前記パターン抽出部によって抽出されたそれぞれの組合せパターンのすべてを網羅して実行し、前記入力データから前記出力データを生成するパターン実行部、
    前記パターン実行部によって実行された前記組合せパターンのうち、予め設定された条件を満足する前記組合せパターンを格納する特定情報格納部、
    として機能させるためのデータ生成プログラム。
JP2005251400A 2005-08-31 2005-08-31 データ生成装置及びデータ生成プログラム Expired - Fee Related JP4804836B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005251400A JP4804836B2 (ja) 2005-08-31 2005-08-31 データ生成装置及びデータ生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005251400A JP4804836B2 (ja) 2005-08-31 2005-08-31 データ生成装置及びデータ生成プログラム

Publications (2)

Publication Number Publication Date
JP2007066007A JP2007066007A (ja) 2007-03-15
JP4804836B2 true JP4804836B2 (ja) 2011-11-02

Family

ID=37928138

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005251400A Expired - Fee Related JP4804836B2 (ja) 2005-08-31 2005-08-31 データ生成装置及びデータ生成プログラム

Country Status (1)

Country Link
JP (1) JP4804836B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359293B2 (en) 2010-04-19 2013-01-22 Nec Corporation Processing procedure management device, processing procedure management method, processing procedure management system, and processing procedure management program

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5636635B2 (ja) * 2009-03-12 2014-12-10 日本電気株式会社 バックアップ装置、バックアップシステム、バックアップ方法、及びプログラム
JP2012093997A (ja) * 2010-10-27 2012-05-17 Toshiba Tec Corp 予約受付装置およびプログラム
WO2012060098A1 (ja) * 2010-11-05 2012-05-10 日本電気株式会社 情報処理装置
WO2016046878A1 (ja) * 2014-09-22 2016-03-31 株式会社日立製作所 データ処理方法、及びデータ処理システム
WO2020144842A1 (ja) * 2019-01-11 2020-07-16 富士通株式会社 探索制御プログラム、探索制御方法および探索制御装置
US11487940B1 (en) * 2021-06-21 2022-11-01 International Business Machines Corporation Controlling abstraction of rule generation based on linguistic context

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04359315A (ja) * 1991-06-05 1992-12-11 Matsushita Electric Ind Co Ltd データ圧縮制御装置及びデータ復元制御装置
JPH05265819A (ja) * 1992-03-19 1993-10-15 Nec Ic Microcomput Syst Ltd データ圧縮方式
JPH05274198A (ja) * 1992-03-27 1993-10-22 Hitachi Ltd 情報処理装置
JPH08191427A (ja) * 1995-01-09 1996-07-23 Hitachi Ltd 情報記録再生装置
JP2000076077A (ja) * 1998-09-03 2000-03-14 Ricoh Co Ltd 光ディスクドライブ制御システム
JP4167359B2 (ja) * 1999-09-30 2008-10-15 株式会社東芝 データ管理システム及びデータ管理方法
JP2001177830A (ja) * 1999-12-20 2001-06-29 Mega Chips Corp 画像圧縮装置及び圧縮画像データ伝送システム
EP1259883B1 (en) * 2000-03-01 2005-12-07 Computer Associates Think, Inc. Method and system for updating an archive of a computer file
US6804401B2 (en) * 2000-05-12 2004-10-12 Xerox Corporation Method for compressing digital documents with control of image quality subject to multiple compression rate constraints
JP2003044874A (ja) * 2001-08-02 2003-02-14 Ricoh Co Ltd 3次元形状処理システム間データ交換方法
JP2003337822A (ja) * 2002-05-21 2003-11-28 Fujitsu Ltd 圧縮検索アーカイブ処理方法,圧縮検索アーカイブ処理プログラムおよびそのプログラムの記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359293B2 (en) 2010-04-19 2013-01-22 Nec Corporation Processing procedure management device, processing procedure management method, processing procedure management system, and processing procedure management program

Also Published As

Publication number Publication date
JP2007066007A (ja) 2007-03-15

Similar Documents

Publication Publication Date Title
JP3174819U (ja) 標準化プレーリストの作成および統一の維持
US7631022B2 (en) Information processing apparatus and recording medium
US7949938B2 (en) Comparing and merging multiple documents
US20050146995A1 (en) Information processing apparatus and method
CN101082930A (zh) 管理数据的设备和方法
US20080147791A1 (en) Communication system, communication apparatus, communication method, recording medium and program
JPWO2008084738A1 (ja) 符号化装置、復号化装置、それらの方法、その方法のプログラム及びそのプログラムを記録した記録媒体
JP4804836B2 (ja) データ生成装置及びデータ生成プログラム
WO2005059775A1 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4356257B2 (ja) オーディオ再生装置
JPWO2005062184A1 (ja) データ処理装置およびデータ処理方法
JP4539115B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20140108356A1 (en) Information processing apparatus
CN100429642C (zh) 信息处理方法、装置、程序和记录介质
CN107025212A (zh) 编码方法、编码装置、解码方法和解码装置
JP7059516B2 (ja) 符号化プログラム、符号化装置および符号化方法
JP4944033B2 (ja) 情報処理システム、情報処理方法、実行バイナリイメージ作成装置、実行バイナリイメージ作成方法、実行バイナリイメージ作成プログラム、実行バイナリイメージ作成プログラムを記録したコンピュータ読み取り可能な記録媒体、実行バイナリイメージ実行装置、実行バイナリイメージ実行方法、実行バイナリイメージ実行プログラム及び実行バイナリイメージ実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5217155B2 (ja) ファイル圧縮自動判定方式および方法、並びに、プログラム
JP2004227285A (ja) オーディオ再生装置
CN102622430A (zh) 基于usb接口的单机点播系统设备扩容管理的方法
JP4978306B2 (ja) コンテンツファイル処理装置、コンテンツファイル処理方法及びコンテンツファイル処理プログラム
US9081776B2 (en) Method and apparatus for directly writing multimedia data on digital device
JP5076621B2 (ja) 特許分析プログラム、特許分析方法および特許分析装置
JP5855989B2 (ja) データ処理装置及びデータ処理方法及びデータ処理プログラム
JP2008102883A (ja) ホスト装置、データベース管理システム、データベース管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110509

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: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110810

R150 Certificate of patent or registration of utility model

Ref document number: 4804836

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees