(57)【要約】【課題】データ圧縮において、データ圧縮の処理時間が長くなるなどの不具合を解決する。【解決手段】データ圧縮装置５は、対象データを記憶する記憶部２１と、記憶部から前記対象データを読み出し、対象データにおいて同じデータ値が連続して出現する場合に、連続して出現する複数の同じデータ値を、同じデータ値と連続出現回数とを用いたデータに圧縮するデータ圧縮処理を行う制御部２３と、を備える。【選択図】図６
2020010108.tif 000002
【特許請求の範囲】
【請求項１】
固定長データのビット列で表される対象データ（ＴＤ）を圧縮するデータ圧縮装置（２０）であって、
前記対象データを記憶する記憶部（２１）と、
前記記憶部から前記対象データを読み出し、前記対象データにおいて同じデータ値が連続して出現する場合に、連続して出現する複数の前記同じデータ値を、前記同じデータ値と連続出現回数とを用いたデータに圧縮するデータ圧縮処理を行う制御部（２３）と、を備える、データ圧縮装置。
【請求項２】
請求項１に記載のデータ圧縮装置であって、
前記制御部が実行する前記データ圧縮処理は、前記同じデータ値が連続して出現しない場合に、各データ値を圧縮後のデータとして用いる処理を含む、データ圧縮装置。
【請求項３】
請求項１または請求項２に記載のデータ圧縮装置であって、
前記制御部は、前記対象データにおいて予め定めたデータ数以下の単位で、前記データ圧縮処理を行う、データ圧縮装置。
【請求項４】
請求項１から請求項３までのいずれか一項に記載のデータ圧縮装置であって、
前記対象データは、車両（５）に搭載されたセンサ（１２）から出力された物理量データである、データ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ圧縮の技術に関する。
【背景技術】
【０００２】
従来、センサから入力されたデータを圧縮符号化する技術が知られている（特許文献１）。従来の技術では、固定長ビット列からなるデータにおいて、ビット値の出現確率をカラムごとに求め、出現確率に基づいてハフマン符号化を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−２３０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術では、ハフマン符号化によるデータ圧縮を用いている為、以下の不具合が生じ得る。例えば、データ圧縮を行うデータを全て取り込んでハフマン符号化を行うためにデータ圧縮の処理時間が長くなったり、また、ハフマン符号化の処理内容が複雑であるためにデータ圧縮の処理能力が高い装置が求められたりする。また例えば、データ圧縮の処理時間が長いために、リアルタイム性に欠ける場合がある。よって、データ圧縮について従来の技術において生じ得る不具合を解決できる技術が望まれている。
【課題を解決するための手段】
【０００５】
本開示の一形態によれば、固定長データのビット列で表される対象データ（ＴＤ）を圧縮するデータ圧縮装置（２０）が提供される。このデータ圧縮装置は、前記対象データを記憶する記憶部（２１）と、前記記憶部から前記対象データを読み出し、前記対象データにおいて同じデータ値が連続して出現する場合に、連続して出現する複数の前記同じデータ値を、前記同じデータ値と連続出現回数とを用いたデータに圧縮するデータ圧縮処理を行う制御部（２３）と、を備える。
【０００６】
上記形態のデータ圧縮装置によれば、制御部は、対象データにおいて、連続する複数の同じデータ値が出現する場合は、連続して出現する同じデータ値を、同じデータ値と連続出現回数とを用いたデータに圧縮する。これにより、データ圧縮処理後のデータは、対象データに比べてデータ量を低減できる。また、これにより、ハフマン符号化などの複雑なデータ圧縮処理を行う場合に比べて、制御部は低い処理能力でデータ圧縮処理を実行できる。
【図面の簡単な説明】
【０００７】
【図１】データ圧縮装置を搭載する車両を説明するための図。
【図２】回転数データを説明するための図。
【図３】対象データを説明するための図。
【図４】対象データを説明するための他の図。
【図５】処理後データに用いられるデータ構造。
【図６】制御部が実行するデータ圧縮処理のフローチャート。
【図７】データ圧縮処理中のデータを概念的に示す図。
【図８】処理後データを説明するための図。
【図９】データ圧縮処理について説明するための図。
【発明を実施するための形態】
【０００８】
Ａ．実施形態：
図１に示すように、車両５は、内燃機関であるエンジン１０と、エンジン１０の回転数を検出するセンサ１２と、データ圧縮装置２０と、記憶媒体３０と、を備える。センサ１２は、例えば、クランク角センサである。記憶媒体３０は、データを記憶できる装置であり、例えば、ハードディスクドライブや、ＵＳＢフラッシュドライブを用いることができる。
【０００９】
データ圧縮装置２０は、ＲＡＭやＲＯＭなどの記憶装置によって構成された記憶部２１と、制御部２３とを備える。制御部２３は、記憶部２１に記憶された各種プログラムを実行することでデータ圧縮処理を行う。本実施形態では、制御部２３は、センサ１２から物理量データであるエンジンの回転数データＲＤを取得し、取得した回転数データＲＤのデータ圧縮処理を実行する。データ圧縮処理が実行された処理後データＣＤは、記憶媒体３０に記憶される。
【００１０】
図２に示すように、Ｒａｗデータである回転数データＲＤは、例えば１ｍｓｅｃなどのミリ秒単位で時系列にセンサ１２から取得される。回転数データＲＤは例えば１０進数で表されている。ミリ秒単位で回転数データＲＤを取得した場合、上位の値（例えば、千の位）の変化は、下位の値（例えば、一の位）の変化よりも小さい傾向にある。
【００１１】
制御部２３は、センサ１２から時系列に取得した回転数データＲＤを対象データＴＤとして記憶部２１に記憶する。対象データＴＤは、１０進数で表された回転数データＲＤを１６進数に変換したデータである。また制御部２３は、回転数データＲＤの各データを、固定長データのビット列を構成する３２ビット（４バイト）によって表すことで、回転数データＲＤを対象データＴＤとして記憶部２１に記憶する。対象データＴＤの各データはそれぞれ、センサ１２から取得した時刻と紐付けられて記憶部２１に記憶されている。ここで、１列に並んだ固定長データのビット列をレコードとも呼ぶ。なお図３に示す対象データＴＤでは、１レコードが１６バイトのデータであるが、図４に示すように１レコードが４バイトのデータであってもよいし他のバイト数であってもよい。
【００１２】
図５に示すように、処理後データＣＤに用いられるデータ構造は、Ｂｉｔ０〜Ｂｉｔ７までの８ビットのデータ構造である。データ構造において、１レコード目は処理後データＣＤの種別を表すデータが記憶される。１レコード目においてｂｉｔ７にはモードの種別が記憶され、ｂｉｔ５，６には対象データＴＤの列（カラム）情報が記憶され、ｂｉｔ０〜ｂｉｔ５にはカウント数が記憶される。カウント数は最大３２に設定されている。
【００１３】
モードの種別は、処理後データＣＤのデータが圧縮モードであるか非圧縮モードであるかを示す。モードの種別は、圧縮モードである場合には「０」、非圧縮モードである場合には「１」で表される。列情報は、制御部２３がデータ圧縮処理を実行する対象データＴＤのビット列の列を表す。カウント数は、処理後データＣＤに記憶される対象データＴＤの数であり、対象データＴＤのビット列で表された各データにおいて、同じ位を表す列を時系列に読み込んだ場合における、異なるデータ値の数である。異なるデータ値は、データ構造の２レコード目以降に順次記憶され、最大で３２個のデータ値が記憶される。なお、モードの種別が圧縮モードである場合は、３レコード目以降のｄａｔａ［１］〜ｄａｔａ［３１］は使用されず、２レコード目のｄａｔａ［０］のみが使用される。
【００１４】
次に、制御部２３が実行する対象データＴＤから処理後データＣＤへのデータ圧縮処理について説明する。図６に示すように、制御部２３はセンサ１２の回転数データＲＤを対象データＴＤとして記憶部２１に取り込む（ステップＳ１０）。ステップＳ１０では、例えば、制御部２３は予め定めたデータ量の回転数データＲＤをまとめて記憶部２１に対象データＴＤとして取り込む。例えば、制御部２３は、図４に示すように１レコードを４バイトとするデータ構造として対象データＴＤを記憶する。
【００１５】
次に制御部２３は、対象データＴＤについて、先頭の４バイトを同じ位（一の位、十の位など）を表す列ごとに読み込み、処理後データＣＤの初期値設定を行う（ステップＳ１２）。具体的には制御部２３は、図４に示すデータ構造の対象データＴＤを読み込む場合には、先頭４バイトを１列目、２列目、３列目、４列目というように位に分けて読み込み、読み込んだ列ごとに初期値設定を行う。制御部２３は、モードの種別を圧縮モードである「０」とし、列情報を圧縮データ処理の対象となる位を表す情報（例えば、１列目、２列目など）とし、カウント数を「１」として初期値を設定する。
【００１６】
次に制御部２３は、初期値として設定された列情報と同じ列情報の対象データＴＤを１バイトずつ読み込む（ステップＳ１４）。次に制御部２３は、第１条件を満たすか否かを判定する（ステップＳ１６）。第１条件は、以下に列挙する条件１Ａ，１Ｂ，１Ｃから構成される。
・条件１Ａ：モードの種別が「０」であること。
・条件１Ｂ：前回読み込んだデータ値と一致すること。
・条件１Ｃ：カウント数が最大値に到達していないこと。
【００１７】
制御部２３は、条件１Ａ，１Ｂ，１Ｃの全ての条件を満たす場合には第１条件を満たすと判定し、条件１Ａ，１Ｂ，１Ｃの少なくともいずれかの条件を満たさない場合には第１条件を満たさないと判定する。例えば、図４に示す対象データＴＤにおいて、今回読み込んだデータが列３のアドレス４のデータ値「０Ｅ」である場合、前回読み込んだデータである列３のアドレス０のデータ値「０Ｅ」とデータ値が一致し、カウント数が「１」であり、モードの種別が「０」であるので第１条件を満たす。一方で、図４に示す対象データＴＤにおいて、今回読み込んだデータが列４のアドレス４のデータ値「８３」である場合、前回読み込んだデータである列４のアドレス０のデータ値「７３」とデータ値が不一致であるため第１条件を満たさない。
【００１８】
第１条件を満たす場合（ステップＳ１６：Ｙｅｓ）、制御部２３は、カウント数を１だけ増やす（ステップＳ１８）。ステップＳ１８の後に制御部２３は、対象となる列ごとに、取り込んだ対象データＴＤの全てについてデータ圧縮処理が完了したか否かを判定する（ステップＳ１９）。ステップＳ１９で「Ｙｅｓ」の判定の場合は、データ圧縮処理を終了する。一方で、ステップＳ１９で「Ｎｏ」の判定の場合は、ステップＳ１４を再び実行する。
【００１９】
第１条件を満たさない場合（ステップＳ１６：Ｎｏ）、制御部２３は第２条件を満たすか否かを判定する（ステップＳ２０）。第２条件は、以下に列挙する条件２Ａ，２Ｂ，２Ｃから構成される。
・条件２Ａ：モードの種別が「０」であること。
・条件２Ｂ：前回読み込んだデータ値と一致しないこと。
・条件２Ｃ：カウント数が「１」であること。
【００２０】
制御部２３は、条件２Ａ，２Ｂ，２Ｃの全ての条件を満たす場合には第２条件を満たすと判定し、条件２Ａ，２Ｂ，２Ｃの少なくともいずれかの条件を満たさない場合には第２条件を満たさないと判定する。例えば、図４に示す対象データＴＤにおいて、今回読み込んだデータが列４のアドレス４のデータ値「８３」である場合、前回読み込んだデータである列４のアドレス０のデータ値「７３」とデータ値が不一致であり、圧縮モードは「０」であり、カウント数は「１」であるため、第２条件を満たす。一方で、図４に示す対象データＴＤにおいて、今回読み込んだデータが列４のアドレス８のデータ値「Ａ７」である場合、前回読み込んだデータである列４のアドレス１のデータ値「８３」とデータ値が不一致であり、モードの種別は「０」であるが、カウント数は「２」であるため、第２条件を満たさない。
【００２１】
第２条件を満たす場合（ステップＳ２０：Ｙｅｓ）、制御部２３は、モードの種別を圧縮モードである「０」から非圧縮モードである「１」へと書き換え、ｄａｔａ［１］に前回読み込んだデータ値を格納する（ステップＳ２２）。次に、制御部１９は上述のステップＳ１９を実行する。
【００２２】
第２条件を満たさない場合（ステップＳ２０：Ｎｏ）、制御部２３は第３条件を満たすか否かを判定する（ステップＳ２４）。第３条件は、以下に列挙する条件３Ａ，３Ｂ，３Ｃから構成される。
・条件３Ａ：モードの種別が「１」であること。
・条件３Ｂ：前回読み込んだデータ値と一致しないこと。
・条件３Ｃ：カウント数が最大値に到達していないこと。
【００２３】
制御部２３は、条件３Ａ，３Ｂ，３Ｃの全ての条件を満たす場合には第３条件を満たすと判定し、条件３Ａ，３Ｂ，３Ｃの少なくともいずれかの条件を満たさない場合には第３条件を満たさないと判定する。例えば、図４に示す対象データＴＤにおいて、今回読み込んだデータが列３のアドレス８のデータ値「Ａ７」である場合、前回読み込んだデータである列３のアドレス４のデータ値「８３」とデータ値が不一致であり、カウント数が「３」であり、モードの種別が「１」であるので第３件を満たす。一方で、図４に示す対象データＴＤにおいて、今回読み込んだデータが列４のアドレス５２のデータ値「２６」である場合、前回読み込んだデータである列４のアドレス４８のデータ値「２６」とデータ値が一致するため第３条件を満たさない。
【００２４】
第３条件を満たす場合（ステップＳ２４：Ｙｅｓ）、制御部２３は、ｄａｔａ［Ｘ］に前回読み込んだデータ値を格納し、カウント数を１だけ増やす（ステップＳ２６）。ｄａｔａ［Ｘ］の”Ｘ”は、データ値が書き込まれる１〜３１までのうちの一つの領域を示し、１増やす前のカウント数に対応する領域である。次に、制御部１９は上述のステップＳ１９を実行する。
【００２５】
第３条件を満たさない場合（ステップＳ２４：Ｎｏ）、制御部２３は、前回までのルーチンで作成したレジスタファイルの内容を記憶部２１の主メモリに処理後データＣＤとして格納し、新たなレジスタファイルでデータ圧縮処理を行うために今回読み込んだデータ値で初期値を設定する（ステップＳ２８）。ステップＳ２６において設定される初期値は、モードの種別が「０」であり、列情報が今回読み込んだデータ値の列情報であり、カウント数が「１」である。また、ステップＳ２６の初期値の設定において、ｄａｔａ［０］には今回読み込んだデータ値が格納される。次に、制御部１９は上述のステップＳ１９を実行する。ステップＳ１９において「Ｎｏ」の判定である場合、制御部２３は、新たに作成したレジスタファイル中にデータを格納する。
【００２６】
図７においてデータ圧縮処理中のデータを概念的に示すように、制御部２３が図６に示すフローチャートを実行することで、図４に示す対象データＴＤが圧縮される。ここで、図４に示すデータ群Ａ〜Ｆが、データ圧縮処理によって図７に示す各列のデータ群Ａ〜Ｆに変換される。図７に示すように、データ群Ｂ，Ｃ，Ｄは同じデータ値が連続して出現する場合であり、この場合には連続する複数の同じデータ値がｄａｔａ［０］に格納され、連続出現回数がカウント数として格納される。実際には図８に示すように、制御部２３は、２進数で表されたモードの種別、列情報、および、カウント数の情報を１６進数に変換して処理後データＣＤを生成する。例えば、図９に示すようにデータ群Ａのモードの種別、列情報、および、カウント数を１６進数で表した場合、「ＥＢ」となる。この「ＥＢ」が処理後データＣＤとして記憶部２１に格納され、「ＥＢ」が格納された次のフィールドに順次ｄａｔａ［０］〜ｄａｔａ［１１］のデータ値が格納される。またデータ群Ａのデータが格納されたフィールドの次のフィールドに、データ群Ｂのモードの種別、列情報、および、カウント数を１６進数で表した「４Ｆ」が格納され、「４Ｆ」が格納されたフィールドの次のフィールドに連続して出現したデータ値である「ＯＥ」が格納される。制御部２３は、データ群Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆの全てのデータについてデータ圧縮処理を行って記憶部２１に処理後データＣＤとして格納する。
【００２７】
上記実施形態によれば、制御部２３が実行するデータ圧縮処理は、対象データＴＤにおいて、連続する複数の同じデータ値が出現する場合は、連続して出現する同じデータ値を、同じデータ値とカウント数で表される連続出現回数とを用いたデータに圧縮するデータ圧縮処理を行って処理後データＣＤを生成する。これにより、処理後データＣＤは対象データＴＤに比べてデータ量を低減できる。また、これにより、ハフマン符号化などの複雑なデータ圧縮処理を行う場合に比べて、制御部２３は低い処理能力でデータ圧縮処理を実行できる。
【００２８】
また上記実施形態によれば、制御部２３は、同じデータ値が連続して出現しない場合には、各データ値を圧縮後のデータとして用いる処理を含む（例えば、図６のステップＳ２２やステップＳ２６）。これにより、データの圧縮効率が低いデータを圧縮することなく処理後データＣＤとすることで、処理後データＣＤのデータ量が増大することを抑制できると共に、データ圧縮処理を簡潔にできる。また上記実施形態によれば、制御部２３は、複数の対象データＴＤにおいて、予め定めたデータ数以下の単位でデータ圧縮処理を行っている。具体的には、カウント数が最大で「３２」に設定されることで、制御部２３は対象データＴＤの数が最大で３２個の単位でデータ圧縮処理を行う。これにより、データ圧縮装置２０は、データ圧縮処理のリアルタイム性を向上できる。例えば、センサ１２から１ｍｓｅｃ毎に回転数データＲＤが出力されて記憶部２１に対象データＴＤが記憶される場合、３２ｍｓｅｃ以下ごとにデータ圧縮処理を行うことができる。また上記実施形態では、対象データＴＤは、センサ１２から出力された物理量データであるエンジン１０の回転数を表すデータである。物理量データである対象データＴＤの各データは、同じ位（特に上位の値）を表すビットに、同じデータ値が連続して登場する可能性が高い。よって、本実施形態のデータ圧縮処理を対象データＴＤに施すことで、圧縮率をより向上できる。
【００２９】
Ｂ．他の実施形態：
Ｂ−１．他の実施形態１：
上記実施形態では、データ圧縮処理の対象となる対象データＴＤは、エンジン１０の回転数を表すデータであったが、これに限定されるものではなく他の物理量データであってもよい。例えば、物理量データとしては、車両５に搭載される速度センサや温度センサや加速度センサから出力されるデータが挙げられる。また対象データＴＤは、音楽データや動画像データなどのデータであってもよい。
【００３０】
本開示は、データ圧縮装置の他に種々の形態で実現することも可能である。例えば、本開示は、データ圧縮装置の制御方法、制御方法を実行させるためのプログラム、データ圧縮装置を搭載する車両等の形態で実現することができる。
【００３１】
本開示は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【００３２】
５  車両、２０  データ圧縮装置、２１  記憶部、２３  制御部
【図１】
2020010108.tif 000003
【図２】
2020010108.tif 000004
【図３】
2020010108.tif 000005
【図４】
2020010108.tif 000006
【図５】
2020010108.tif 000007
【図６】
2020010108.tif 000008
【図７】
2020010108.tif 000009
【図８】
2020010108.tif 000010
【図９】
2020010108.tif 000011