KR101318574B1 - 데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101318574B1
KR101318574B1 KR1020127017658A KR20127017658A KR101318574B1 KR 101318574 B1 KR101318574 B1 KR 101318574B1 KR 1020127017658 A KR1020127017658 A KR 1020127017658A KR 20127017658 A KR20127017658 A KR 20127017658A KR 101318574 B1 KR101318574 B1 KR 101318574B1
Authority
KR
South Korea
Prior art keywords
code
prediction error
value
data
length
Prior art date
Application number
KR1020127017658A
Other languages
English (en)
Other versions
KR20120101530A (ko
Inventor
마모루 가토
미츠노리 고리
Original Assignee
미쓰비시덴키 가부시키가이샤
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 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20120101530A publication Critical patent/KR20120101530A/ko
Application granted granted Critical
Publication of KR101318574B1 publication Critical patent/KR101318574B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/607Selection between different types of compressors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6094Selection strategies according to reasons other than compression rate or data type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/419Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which encoding of the length of a succession of picture-elements of the same value along a scanning line is the only encoding step
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

예측 오차 산출부(111)가, 입력 데이터마다 예측 오차를 산출하고, 예측 오차 부호화부(112)가 예측 오차의 값을 부호화하여 예측 오차 부호를 생성하고, 런 렝스 계수부(121)가 예측 오차의 런 렝스를 계수하고, 런 렝스 부호화부(122)가, 예측 오차의 값이 변화했을 때에, 계수된 런 렝스를 부호화하여 런 렝스 부호를 생성하고, 부호 결합부(131)가, 런 렝스 부호를 대응하는 예측 오차의 예측 오차 부호에 결합하여 결합 부호를 생성하고, 예측 오차 판정부(141)가, 예측 오차의 값이 특정한 값인 경우에 해당 예측 오차에 대한 결합 부호를 출력 부호로서 선택하고, 다른 값인 경우에 해당 예측 오차에 대한 예측 오차 부호를 출력 부호로서 선택하고, 부호 출력부(151)가 선택된 출력 부호를 출력한다.

Description

데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체{DATA COMPRESSION DEVICE, DATA COMPRESSION METHOD, AND COMPUTER READABLE RECORDING MEDIUM}
본 발명은, 데이터 압축 기술에 관한 것이다.
종래로부터, 데이터의 무손실 압축에는 여러 가지 수법이 이용되고 있다.
예컨대, 예측 부호화를 이용하고, 예측 오차를 출현 빈도에 따른 가변 길이 부호화와 조합하는 방법이 일반적으로 이용되고 있다.
또한, 데이터의 변화가 없는 영역에 있어서는, 런 렝스 부호화(run length encoding)를 이용하는 수법이 일반적으로 이용되고 있다.
특허 문헌 1에서는, 화상의 부호화 처리를 행할 때에, 입력 데이터의 과거의 이력에 있어서, 소정의 복수의 데이터가 일치하지 않는 경우에는 예측 부호화와 가변 길이 부호화를 행하고, 일치한 경우에, 런 렝스 부호화 모드로 이행하여, 런 렝스 부호화를 행하는 기술이 개시되어 있다.
복호시에도, 복호가 끝난 데이터의 이력에 있어서, 소정의 복수의 데이터가 일치하는 경우에 런 렝스 부호화 모드로 이행하는 것에 의해, 복호 가능한 것이 나타나 있다.
(선행 기술 문헌)
(특허 문헌)
(특허 문헌 1) 일본 특허 공개 2008-109194호 공보
특허 문헌 1에 있어서는, 입력 데이터의 변화가 없는 영역에 대해서만 런 렝스 부호화를 행하기 때문에, 일정한 기울기로 증감하는 데이터 등의 예측 모델에 적합한 변화를 계속하는 데이터에 대해서는 런 렝스 부호화되지 않아, 압축 효율에 과제가 있다.
또한, 런 렝스 부호화 모드의 판정을 복수의 데이터의 비교 처리에 의해 행하여야 하기 때문에, 모드 판정을 위한 계산량이 증가하여, 실행 속도가 저하된다고 하는 과제가 있다.
본 발명은 상기와 같은 과제를 해결하는 것을 주된 목적으로 하고, 온도나 전력량 등의 센서 데이터 등의 시계열 데이터의 압축에 있어서, 일정한 기울기로 증감하는 데이터 등의 예측 모델에 적합한 변화를 계속하는 데이터에 대해서도 효율적으로 압축이 가능하고, 또한 계산량을 줄여 보다 압축 해제(decompression)의 실행 속도를 높일 수 있는 데이터 압축 기술을 제공하는 것을 주된 목적으로 한다.
본 발명에 따른 데이터 압축 장치는, 데이터를 순차적으로 입력하는 데이터 압축 장치로서, 데이터의 입력 전에 데이터의 값을 예측하고, 데이터를 입력할 때마다, 입력한 입력 데이터의 값과 그 입력 데이터에 대하여 예측한 예측치의 차를 예측 오차로서 산출하는 예측 오차 산출부와, 상기 예측 오차 산출부에 의해 예측 오차가 산출될 때마다, 산출된 예측 오차의 값을 부호화하여 예측 오차 부호를 생성하는 예측 오차 부호화부와, 상기 예측 오차 산출부에 의해 산출된 예측 오차의 런 렝스를 계수하는 런 렝스 계수부와, 예측 오차의 값이 변화했을 때에, 상기 런 렝스 계수부에 의해 계수 된 런 렝스를 부호화하여 런 렝스 부호를 생성하는 런 렝스 부호화부와, 상기 런 렝스 부호화부에 의해 런 렝스 부호가 생성될 때마다, 생성된 런 렝스 부호를 그 런 렝스 부호에 대응하는 예측 오차의 예측 오차 부호에 결합하여 결합 부호를 생성하는 부호 결합부와, 상기 예측 오차 산출부에 의해 산출된 예측 오차의 값에 따라, 그 예측 오차에 대한 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하는 부호 선택부를 갖는 것을 특징으로 한다.
본 발명에 의하면, 입력 데이터에 대하여 예측 오차를 산출하고, 예측 오차의 런 렝스를 계수하므로, 일정한 기울기로 증감하는 데이터에 대해서도 효율적으로 런 렝스 부호화를 행할 수 있다.
또한, 본 발명에서는, 예측 오차의 값에 따라 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하기 때문에, 데이터값의 변동 특성에 대응시켜, 결합 부호가 선택되는 예측 오차를 적절히 결정하는 것에 의해, 압축 효율을 높일 수 있다.
도 1은 실시의 형태 1에 따른 데이터 압축 장치의 구성예를 나타내는 도면.
도 2는 실시의 형태 1에 따른 데이터 압축 장치의 동작예를 나타내는 플로우차트.
도 3은 실시의 형태 1에 따른 데이터 압축 장치의 동작예를 나타내는 플로우차트.
도 4는 실시의 형태 2에 따른 데이터 압축 장치의 구성예를 나타내는 도면.
도 5는 실시의 형태 2에 따른 데이터 압축 장치의 동작예를 나타내는 플로우차트.
도 6은 실시의 형태 2에 따른 데이터 압축 장치의 동작예를 나타내는 플로우차트.
도 7은 실시의 형태 2에 따른 데이터 압축 장치의 동작예를 나타내는 플로우차트.
도 8은 실시의 형태 1에 따른 입력 데이터값, 예측 오차, 런 렝스 등의 예를 나타내는 도면.
도 9는 실시의 형태 1 및 2에 따른 데이터 압축 장치의 하드웨어 구성예를 나타내는 도면.
도 10은 실시의 형태 1에 따른 데이터 압축 해제 장치의 구성예를 나타내는 도면.
도 11은 실시의 형태 1에 따른 데이터 압축 해제 장치의 동작예를 나타내는 플로우차트.
실시의 형태 1.
도 1은 본 실시의 형태에 따른 데이터 압축 장치(100)의 기능 블록의 구성의 일례를 나타내는 도면이다.
데이터 압축 장치(100)는, 압축의 대상이 되는 데이터(입력 데이터)를 순차적으로 입력하고, 압축을 행하여 출력 데이터를 출력한다.
입력 데이터는, 예컨대 전력량이나 온도 등을 포함하는 센서 데이터와 같은, 시계열 데이터이며, 데이터가 시간의 경과순으로 배열되어 있는 경우가 특히 적합하다.
입력 데이터의 처리 단위는 예컨대 8비트, 16비트, 32비트, 64비트 등의 CPU(Central Processing Unit)에 의한 처리에 적합한 고정 길이이며, 대상 데이터는 고정 소수점 또는 정수화된 수치로 하는 것에 의해, 고속의 연산이 가능해진다.
예컨대 온도 데이터를 소수점 이하 1자리까지 취급하는 경우에는 원래의 데이터를 10배하여 32비트 정수로서 취급할 수 있다.
출력 데이터는, 가변 길이 부호화된 다음 처리 단위로 팩되어 출력된다.
이하의 설명에서는 처리 단위를 32비트로 한다.
데이터 압축 장치(100)는, 예측 오차 산출부(111), 예측 오차 부호화부(112), 런 렝스 계수부(121), 런 렝스 부호화부(122), 부호 결합부(131), 예측 오차 판정부(141), 출력 부호 전환부(142), 부호 출력부(151)를 포함한다.
예측 오차 산출부(111)는, 입력 데이터를 일정한 처리 단위마다 입력하고, 과거의 입력 데이터의 이력을 이용하여 현재 처리 중의 데이터를 예측한 예측치와 실제의 현재 처리 중의 데이터의 차분을 취하는 것에 의해 예측 오차 E를 산출한다.
다시 말해, 예측 오차 산출부(111)는, 데이터의 입력 전에 데이터의 값을 예측하고, 데이터를 입력할 때마다, 입력된 입력 데이터의 값과 그 입력 데이터에 대하여 예측한 예측치의 차를 예측 오차 E로서 산출한다.
예컨대, 예측 오차 산출부(111)에서는, 현재 처리 중의 데이터의 직전에 입력된 데이터의 값을 예측치로 할 수 있다.
다시 말해, 예측 오차 산출부(111)는, 다음에 입력되는 데이터의 바로 앞에 입력된 데이터의 값을 다음에 입력되는 데이터의 예측치로 한다.
센서 데이터 등의 시계열 데이터에 있어서는, 센서의 샘플링 간격이 측정 대상의 변화에 비하여 짧은 경우에, 변화폭이 작은 시계열 신호가 되어, 직전의 데이터와의 차분(예측 오차 E)이 0 또는 절대치가 작은 값으로 집약되어, 압축률을 높일 수 있다.
예컨대 실내 온도를 1분 간격으로 소수점 이하 1자리까지 계측한 데이터 등과 같은 경우가 이 케이스에 적합하다.
직전의 데이터와의 차분을 취하는 방법(이하, 차분법)에 의해, 최소의 연산량으로 예측 오차 산출이 가능해져, 고속의 압축 처리가 가능해진다.
또한 다른 예에서는, 예측 오차 산출부(111)는, 직전의 N(N≥2)개의 데이터로부터 선형 예측을 행하더라도 좋다.
다시 말해, 예측 오차 산출부(111)는, 다음에 입력되는 데이터에 선행하여 입력되어 있는 2개 이상의 데이터를 이용한 선형 연산을 행하여, 다음에 입력되는 데이터의 예측치를 산출하도록 하더라도 좋다.
보다 구체적으로는, 계측 시간을 x로 하고, 데이터를 y로 하고, N조의 데이터 (x1, y1), (x2, y2), …, (xN, yN)으로부터 이하의 일차방정식의 파라미터 a, b를 최소이승법에 의해 구한다.
y=ax+b
또, 최소이승법은, 이하의 식에 따른다.
Figure 112012054209636-pct00001
예컨대, 직전의 3개의 데이터를 이용하여 예측하는 경우, 샘플링 간격을 같은 간격이라 가정하면, 이하의 식에 의해 예측치 y4'를 구할 수 있다.
Figure 112012054209636-pct00002
예상치 y4'를 사사오입 등에 의해 정수화하고, 그 후 실제로 입력된 데이터 y4와의 예측 오차 E=y4'-y4를 산출한다.
이에 의해, 적산 전력량계에 의한 전력량 등의 센서 데이터와 같이 거의 일정한 비율로 증가(혹은 감소)하는 데이터의 경우에 예측 오차 E가 0 또는 절대치가 작은 값으로 집약되어, 압축률을 높일 수 있다.
예측 오차 부호화부(112)는, 예측 오차 산출부(111)에 의해 예측 오차 E가 산출될 때마다, 산출된 예측 오차 E를 가변 길이 부호화하고, 예측 오차 부호 Ce를 출력한다.
가변 길이 부호화의 방법으로서는 감마 부호 혹은 델타 부호를 이용할 수 있다.
감마 부호나 델타 부호는 절대치가 작은 값을 적은 부호 길이로 부호화하는 방식이며, 이미 말했던 대로, 본 실시의 형태에서는 예측 오차 E는 0 또는 절대치가 작은 값이 되어 있기 때문에, 높은 압축 효과를 기대할 수 있다.
또한, 감마 부호나 델타 부호는 고정적인 부호화를 행하기 때문에, 산술 부호화나 허프만 부호화 등의 엔트로피 부호에서 필요한 심볼 출현 빈도 테이블의 작성이 불필요해져, 계산량을 삭감하여 고속의 처리가 가능해진다.
구체적으로는 감마 부호이면 다음과 같이 부호화를 행한다.
부호화 대상 데이터를 2진수로 나타냈을 때의 비트수-1개의 0(2진)에 이어, 부호화 대상 데이터를 2진수로 출력한다.
예컨대, 이하와 같이 된다(이하는, 모두 2진수).
1→1((1비트-1)개의 0과 1)
10→010((2비트-1)개의 0과 10)
100→00100((3비트-1)개의 0과 100)
대상 데이터의 비트수가 5비트 이하이면, 감마 부호 쪽이 짧은 부호를 생성할 수 있기 때문에, 예측 오차 E의 분포가 0 부근에 집중되는 데이터에서는 감마 부호에 의해 높은 압축률을 실현할 수 있다.
예측 오차 E의 분포가 0으로부터 벗어나는 빈도가 많아지는 경우, 예컨대 변동이 큰 센서 데이터 등에서는, 델타 부호를 이용하는 것에 의해 보다 높은 압축률을 실현할 수 있다.
이하의 설명에서는 감마 부호를 예로 설명하지만, 델타 부호에서도 같다.
감마 부호 혹은 델타 부호는 정의 정수의 부호화를 행하는 방식이므로, 0이나 부의 값을 포함하는 예측 오차 E를 부호화하기 위해, 예측 오차 부호화부(112)는, 감마 부호화 혹은 델타 부호화의 이전에 다음에 나타내는 변환을 행한다.
Figure 112012054209636-pct00003
다시 말해, 예측 오차 E=0일 때는, 값을 1로 하고, 예측 오차 E>0일 때는, 왼쪽 시프트를 행하고, 예측 오차 E<0일 때는, 왼쪽 시프트를 행하고, LSB(Least Significant Bit)를 1로 한다.
이 변환에 의하면, 절대치가 작은 값을 절대치가 작은 값으로서 변환할 수 있기 때문에, 감마 부호화 혹은 델타 부호화에 의해 높은 압축률을 기대할 수 있다.
변환식 M1에 있어서는, 예측 오차 E가 처리 단위(예컨대 32비트)를 부호가 붙은 정수라고 생각했을 때의 최소치(10진수 표시로 -2147483648, -231)인 경우에, 왼쪽 시프트에 의해 자릿수 넘침(digit overflow)이 발생한다.
그래서, 예측 오차 부호화부(112)는, 예측 오차 E가 처리 단위의 최소치 Emin(처리 단위가 32비트인 경우의 10진수 표시에서의 -2147483648, -231)인 경우에는, M1에 의한 변환을 행하지 않고 Emin에 대응하는 고정 부호를 출력한다.
이와 같이 하는 것에 의해, 자릿수 넘침을 고려하여 처리 단위를 확대할 필요가 없어져, 처리를 고속화할 수 있다.
예컨대, Emin=0x80000000(16진)이며, M1(Emin)=0x100000001(16진)이 되어 33비트가 된다.
그래서 E=Emin인 경우에는 그에 대응하는 부호를 직접 출력한다.
예컨대, 감마 부호이면, 이하에 나타내는 65비트의 부호를 변환식 M1에 의한 변환을 행하지 않고서 출력한다.
Figure 112012054209636-pct00004
혹은, M1(E)가 33비트가 되는 케이스는 E=Emin의 한 케이스뿐이기 때문에, 감마 부호에 있어서 E의 비트수가 33인 것만 알면 복호 가능하다.
따라서, 이하와 같은 33비트로 부호화하는 것에 의해 압축률을 더 높일 수 있다.
Figure 112012054209636-pct00005
데이터의 특성으로서, 예측 오차 E가 0 이상의 정수가 되는 경우가 많은 경우에는, 이하의 변환식을 이용할 수도 있다.
Figure 112012054209636-pct00006
예컨대, 적산 전력량계의 전력량 데이터의 경우는 통상은 증가뿐이며, 유효 자릿수를 넘었을 때에 0으로 돌아오기 때문에, 부의 예측 오차가 출현하는 빈도는 극단적으로 낮다고 생각된다.
따라서, 변환식 M1보다 정의 값의 비트수가 적은 변환식 M2에 의해, 보다 높은 압축률을 기대할 수 있다.
변환식 M2에 있어서도, M1과 같이 자릿수 넘침이 발생하기 때문에, M1의 경우와 같은 고정 부호를 사용하는 것에 의해, 자릿수 넘침을 고려하여 처리 단위를 확대할 필요가 없어져, 처리를 고속화할 수 있다.
런 렝스 계수부(121)는, 예측 오차 E가 같은 값을 계속하는 횟수를 카운트한다.
런 렝스 계수부(121)는, 전회의 예측 오차 Ep를 유지하고, 현재 처리 중의 예측 오차 Ec가 Ep와 동일한 경우에는, 변수 런 렝스 R에 1을 가산한다.
Ec가 Ep와 다른 경우에는, 런 렝스 계수부(121)는, 런 렝스 R의 값을 런 렝스 부호화부(122)에 출력하고, 런 렝스 부호화부(122)가 런 렝스를 부호화한다.
또한, 런 렝스 계수부(121)는, 런 렝스 R을 1로 리셋한다.
Ec가 Ep와 동일한 경우에도, 런 렝스 R+1이 지정 최대치를 넘는 경우에는, 런 렝스 계수부(121)는, 런 렝스 R을 런 렝스 부호화부(122)에 출력하고, 런 렝스 R을 1로 리셋하도록 하더라도 좋다.
런 렝스 부호화부(122)는, 런 렝스 계수부(121)에서 계수된 런 렝스 R의 값을 가변 길이 부호화하고, 런 렝스 부호 Cr을 출력한다.
가변 길이 부호화의 방법으로서는 감마 부호 혹은 델타 부호를 이용할 수 있다.
전력량이나 온도 등의 센서 데이터에 관해서는, 런 렝스의 출현 빈도 분포는, 1이 최대(1이 최빈(最頻))이고 값이 커질수록 빈도가 작아지는 경향이 있기 때문에, 이미 말한 것처럼, 감마 부호나 델타 부호로 높은 압축 효과를 기대할 수 있다.
또한, 감마 부호나 델타 부호에 의해 계산량을 삭감하여 고속의 처리가 가능해지는 것도 이미 말한 대로이다.
런 렝스의 경우에는 반드시 1 이상의 정수가 되기 때문에, 예측 오차의 부호화에 관하여 말한 것 같은 특별한 변환은 불필요하고, 직접 부호화한다.
부호 결합부(131)는, 런 렝스 부호화부(122)에 의해 런 렝스 부호가 생성될 때마다, 예측 오차 부호화부(112)에 의한 예측 오차 부호 Ce와 런 렝스 부호화부(122)에 의한 런 렝스 부호 Cr을 연결해 1개의 결합 부호 Cer로 한다.
순서는 예측 오차 부호화부(112)에 의한 예측 오차 부호 Ce가 선두가 되도록 한다.
즉, 결합 부호 Cer은, 이하와 같이 된다.
Cer=Ce+Cr(+는 결합의 의미)
예측 오차 판정부(141)는, 예측 오차 E의 값에 의해 출력 부호 전환부(142)를 제어하고, 부호 Ce와 Cer 중 어느 쪽을 출력 부호로 할지를 선택한다.
예측 오차 판정부(141)는, 부호 선택부의 예이다.
비교적 변동이나 노이즈가 적은 센서 데이터에서는, 예측 오차 E=0이 연속하는 빈도가 크기 때문에, E=0일 때에 결합 부호 Cer을 출력 부호로 하고 그 이외는 예측 오차 부호 Ce를 출력 부호로 하는 것에 의해, 압축률을 높이는 것이 가능하다.
혹은, 일정한 비율로 완만하게 증감하는 센서 데이터에 있어서, 상술한 차분법에 의해 예측 오차 E를 산출한 경우에는, +1이나 -1이 연속하는 빈도가 커진다.
따라서, E=1 또는 -1인 경우에 결합 부호 Cer을 출력 부호로 하고, 그 이외는 예측 오차 부호 Ce를 출력 부호로 하는 것에 의해, 압축률을 높이는 것이 가능하다.
더 기울기가 큰 증감을 행하는 센서 데이터에 있어서는, 예측 오차 E가 보다 큰 값(예컨대, 예측 오차 E가 5)일 때에도 예측 오차 부호 Cer을 출력 부호로 하는 것에 의해 압축률을 높일 수 있는 경우가 있다.
일반적으로는 예측 오차 E의 절대치가 클수록 그것이 연속할 확률은 낮아지기 때문에, 예측 오차 E의 절대치가 지정의 임계치 이하이면 결합 부호 Cer을 출력하고, 임계치를 넘는 경우에는 예측 오차 부호 Ce를 출력하도록 판정을 행하는 것이 합리적이다.
한편, 모든 예측 오차에 대하여 런 렝스가 작은 경우에는 전혀 런 렝스 부호화를 행하지 않는 쪽이 압축률을 높일 수 있는 경우도 있다.
그러한 경우에는, 예측 오차 E의 값에 의존하지 않고서 예측 오차 부호 Ce를 출력 부호로서 선택한다고 하는 동작이 유효하게 된다.
이상과 같이 하여, 예측 오차 E의 값에 따라 예측 오차 부호 Ce를 출력 부호로 할지, 예측 오차 부호와 런 렝스 부호를 결합한 부호 Cer을 출력 부호로 할지를 전환하는 것에 의해, 종래 있었던 것처럼 일정치가 연속하는 부분만 런 렝스 부호화를 행하는 것이 아니라, 전력량이나 온도 등의 센서 데이터에서 일정한 비율로 증감하는 경우 등에도 런 렝스 부호를 적응적으로 부가 가능하게 하는 것에 의해 압축률을 높일 수 있다.
또한, 종래예에서는 런 렝스 모드로 전환하기 위해 복수의 과거의 데이터의 이력을 부호화시 및 복호시에 항상 대조할 필요가 있어 계산량이 많아진다고 하는 과제가 있었지만, 본 실시의 형태에 의하면 부호화시, 복호시 모두 예측 오차의 판정만 행하는 것에 의해 런 렝스 부호의 유무를 판단할 수 있기 때문에, 계산량을 삭감하여 고속화를 실현할 수 있다.
부호 출력부(151)는, 출력 부호 전환부(142)에서 선택된 가변 비트수를 갖는 부호를 처리 단위(예컨대 32비트)로 묶어(pack), 출력 데이터로서 출력한다.
지금까지 말한 부호화 방법에 의하면, 부호를 1비트 단위로 차례로 살펴보아 가는 것에 의해 복호 가능하기 때문에, 묶음(packing)은 처리 단위의 레지스터에 대하여 MSB(Most Significant Bit)로부터 LSB를 향해 비트 단위로 부호를 빈틈이 없이 채워 갈 뿐이며, 부호의 경계선이나 런 렝스 부호의 유무를 나타내는 비트 등은 불필요하다.
이들 처리는 시프트 처리와 OR 처리에 의해 실현 가능하다.
부호는 복수의 처리 단위에 걸쳐도(across) 좋고, 그 경우에는 바로 앞의 처리 단위의 LSB에 그 다음의 처리 단위의 MSB가 연결되도록 하면 된다.
최종적으로는 처리 단위로 묶은 출력 데이터, 출력 데이터의 처리 단위의 수, 및 출력 데이터에 포함되는 부호수가 출력된다.
부호 출력부(151)는, 예측 오차 부호 Ce를 출력으로 하는 경우에는, 하나의 입력 데이터의 입력마다 하나의 부호를 출력하는 것도 가능하지만, 보다 바람직한 예로서는, 런 렝스 R의 부호화시에 출력하도록 구성한다.
즉, 런 렝스 R의 부호화시에, 결합 부호 Cer이 출력 부호로서 선택되는 경우에는 결합 부호 Cer을 출력하고, 예측 오차 부호 Ce가 출력 부호로서 선택되는 경우에는, 예측 오차 부호 Ce를 R회 출력한다.
그 때, 출현 빈도가 높은 부호에 대해서는, k개를 한 번에 출력한다.
상술한 것과 같이 예측 오차나 런 렝스는 0이나 절대치가 작은 값의 출현 빈도가 높아지기 때문에, E=0, 1, -1 등의 빈도가 높다.
예컨대, E=0, R=4인 경우, Ce=1(2진)이기 때문에, 출력 부호 C=1111(2진)로 하는 것에 의해, 1회의 처리 단위로의 묶음 처리로 4회분의 출력이 가능해진다.
묶음 처리는 비트 조작에 의해 실현되기 때문에, 부호 길이가 짧고 빈도가 높은 경우에는 CPU에 의한 계산량이 증가한다고 하는 과제가 있었지만, 상기와 같이 하는 것에 의해 계산량을 삭감할 수 있어, 고속화를 실현할 수 있다.
이상의 설명에서는 가변 길이 부호화 방법으로서 감마 부호 혹은 델타 부호로 했지만, 그 밖의 정수의 부호화 방식인 알파 부호, 오메가 부호, 골롬 부호(Golomb code), 라이스 부호(Rice code)이더라도 좋다.
또한, 산술 부호, Range Coder, 허프만 부호(Huffman code), 섀넌 부호(Shannon code)나, 그 밖의 고정 테이블을 이용한 부호화 방법 등이더라도 좋다.
다음으로, 데이터 압축 장치(100)의 동작에 대하여 설명한다.
도 2는 본 실시의 형태에 따른 데이터 압축 장치(100)의 압축 처리의 흐름의 일례를 나타내는 플로우차트이다.
압축 공정 S101에 있어서, 예측 오차 산출부(111)가, 입력 데이터와 과거의 이력 데이터를 이용하여 예측 오차 Ec를 산출한다.
다음으로, 압축 공정 S102에서, 예측 오차 부호화부(112)가, 감마 부호 또는 델타 부호에 의해, 예측 오차 Ec의 예측 오차 부호 Ce를 생성한다. 또, 예측 오차 부호화부(112)는, 이번에 생성한 예측 오차 부호 Ce는 다음 예측 오차 부호의 생성까지 버퍼에 체류시켜 두고, 다음 예측 오차 부호의 생성시에 버퍼 내의 예측 오차 부호 Ce를 출력 부호 전환부(142) 및 부호 결합부(131)에 출력한다.
또한, 압축 공정 S103에서, 런 렝스 계수부(121)가, 예측 오차 Ec가 이전의 예측 오차 Ep와 일치하는지 판정하고, 일치한 경우에는 압축 공정 S104에서, 런 렝스 계수부(121)가, 런 렝스 R에 1을 가산한다.
그리고, 압축 공정 S109에서, 입력 데이터가 종료되었는지 여부의 판정이 행해지고, 입력 데이터가 종료되어 있지 않은 경우에는, 압축 공정 S101로 돌아온다.
입력 데이터가 종료되어 있는 경우는, 압축 공정 S110에 있어서, 런 렝스 계수부(121)에서 계수된 런 렝스 R에 대하여 런 렝스 부호화부(122)에서 런 렝스 부호 Cr이 생성되고, 부호 결합부(131)에서 예측 오차 부호 Ce와 런 렝스 부호 Cr이 결합되어, 결합 부호 Cer이 생성되고, 그 후, 압축 공정이 종료된다.
한편, 압축 공정 S103에 있어서, 예측 오차 Ec가 이전의 예측 오차 Ep와 일치하지 않는 경우에는, 압축 공정 S105에서, 런 렝스 계수부(121)가 런 렝스 R을 런 렝스 부호화부(122)에 출력하고, 런 렝스 부호화부(122)가, 감마 부호 또는 델타 부호에 의해 런 렝스 부호 Cr을 생성한다.
또한, 압축 공정 S106에 있어서, 런 렝스 계수부(121)는, 런 렝스를 1로 리셋한다.
다음으로, 압축 공정 S107에 있어서, 부호 결합부(131)가, 예측 오차 부호화부(112)에 의한 예측 오차 부호 Ce와 런 렝스 부호화부(122)에 의한 런 렝스 부호 Cr을 결합하여, 결합 부호 Cer을 생성한다.
런 렝스 부호 Cr과 결합하는 예측 오차 부호는 예측 오차 부호화부(112)의 버퍼에 체류하고 있던 바로 앞의 입력 데이터에 대한 예측 오차 부호 Ce이다.
그리고, 압축 공정 S108에서, 입력 데이터가 종료되었는지 여부의 판정이 행해지고, 입력 데이터가 종료되어 있지 않은 경우에는, 압축 공정 S101로 돌아오고, 입력 데이터가 종료되어 있는 경우는, 압축 공정이 종료된다.
또, 압축 공정 S102와, 압축 공정 S103 및 S104 또는 압축 공정 S103, S105 및 S106은 병행하여 실시할 수 있다.
도 3은 본 실시의 형태에 따른 데이터 압축 장치(100)의 부호 출력의 흐름의 일례를 나타내는 플로우차트이다.
부호 출력 공정 S201에 있어서, 예측 오차 판정부(141)가, 도 2의 압축 공정 S101에서 예측 오차 산출부(111)에 의해 산출된 예측 오차 Ec를 입력한다.
다음으로, 부호 출력 공정 S202에서, 예측 오차 판정부(141)가, 예측 오차 Ec가 특정한 값(예컨대, 0)인지 여부의 판정을 행한다.
예측 오차 Ec가 특정한 값인 경우에는, 부호 출력 공정 S203에 있어서, 예측 오차 판정부(141)는, 출력 부호로서 결합 부호 Cer을 선택하고, 출력 부호 전환부(142)를 조작하여, 결합 부호 Cer을 출력시키도록 한다.
이 결과, 도 2의 압축 공정 S107에서 결합 부호 Cer이 생성되면, 결합 부호 Cer이 부호 출력부(151)에 출력된다.
한편, 부호 출력 공정 S202에 있어서 예측 오차 Ec가 특정한 값이 아닌 경우는, 부호 출력 공정 S204에 있어서, 예측 오차 판정부(141)는, 출력 부호로서 예측 오차 부호 Ce를 선택하고, 출력 부호 전환부(142)를 조작하여, 예측 오차 부호 Ce를 출력시키도록 한다.
이 결과, 도 2의 압축 공정 S102에서 생성된 예측 오차 부호 Ce가 부호 출력부(151)에 출력된다.
다음으로, 도 8에 나타내는 구체적인 데이터값을 이용하여, 본 실시의 형태에 따른 데이터 압축 장치(100)의 동작예를 설명한다.
도 8의 예에서는, 예측치를 바로 앞의 입력 데이터의 값으로 하고 있다.
도 8에서는, n회째에 입력된 입력 데이터의 데이터값이 8인 것으로 한다.
또한, n회째의 입력 데이터의 예측 오차 E를 산출하면 1이 되고, 이에 의해, n회째의 데이터 입력 시점에서는 예측 오차 E=1의 런 렝스 R은 1이 된다. 이 시점에서는, 예측 오차 E=1의 런 렝스 R은 아직 확정되어 있지 않다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=1)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=1이 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=1은 특정한 값이 아니기 때문에, 예측 오차 판정부(141)에 의해 예측 오차 부호 Ce(=1)가 출력 부호로서 선택되고, 다음번(n+1회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=1)가 출력 부호로서 출력된다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, 예측 오차 E=1은 특정한 값이기 때문에, 예측 오차 판정부(141)에 의해 결합 부호 Cer이 출력 부호로서 선택되고, 다음번(n+1회째) 이후에 결합 부호 Cer이 출력 부호로서 출력된다. 결합 부호 Cer은, 이 시점에서는, 아직 생성되어 있지 않다.
n+1회째에서는, 데이터값이 10인 입력 데이터가 입력된다.
n+1회째에 있어서의 예측 오차 E는 2(10-8=2)이며, n회째의 예측 오차 E=1과 다르기 때문에, 예측 오차 E=1의 런 렝스 R은 1로 확정한다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=2)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=2가 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=2는 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=2)가 출력 부호로서 선택되고, 다음번(n+2회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
또한, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)도, 예측 오차 E=2는 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=2)가 출력 부호로서 선택되고, 다음번(n+2회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
예측 오차 E=1의 런 렝스 R이 1로 확정되었기 때문에, 런 렝스 계수부(121)로부터 런 렝스 부호화부(122)에 런 렝스 R=1이 출력되고, 런 렝스 부호 Cr이 생성된다.
또한, 예측 오차 부호화부(112) 내의 버퍼로부터 이전의 예측 오차 부호 Ce(=1)가 출력되고, 부호 결합부(131)에 있어서, 런 렝스 부호 Cr(=1)과 결합되어, 결합 부호 Cer(=(1+1))이 생성된다.
한편, 새로운 예측 오차 E=2의 런 렝스 R이 1이 된다. 새로운 예측 오차 E=2의 런 렝스 R은, 이 시점에서는, 아직 확정되어 있지 않다.
특정한 값이 0인 경우(E=0)는, n회째의 예측 오차 E=1에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=1)가 선택되고 있고, 예측 오차 부호 Ce(=1)가 출력 부호로서 출력된다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, n회째의 예측 오차 E=1에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 결합 부호 Cer이 선택되고 있고, n+1회째에 있어서 생성된 결합 부호 Cer(=(1+1))이 출력 부호로서 출력된다.
n+2회째에서는, 데이터값이 10인 입력 데이터가 입력된다.
n+2회째에 있어서의 예측 오차 E는 0(10-10=0)이며, n+1회째의 예측 오차 E=2와 다르기 때문에, 예측 오차 E=2의 런 렝스 R은 1로 확정된다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=0)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=0이 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=0은 특정한 값이기 때문에, 예측 오차 판정부(141)에 의해 결합 부호 Cer이 출력 부호로서 선택되고, 다음번(n+3회째) 이후에 결합 부호 Cer이 출력 부호로서 출력된다. 결합 부호 Cer은, 이 시점에서는, 아직 생성되어 있지 않다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)은, 예측 오차 E=0은 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=0)가 출력 부호로서 선택되고, 다음번(n+3회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=0)가 출력 부호로서 출력된다.
예측 오차 E=2의 런 렝스 R이 1로 확정되었기 때문에, 런 렝스 계수부(121)로부터 런 렝스 부호화부(122)에 런 렝스 R=1이 출력되고, 런 렝스 부호 Cr이 생성된다.
또한, 예측 오차 부호화부(112) 내의 버퍼로부터 이전의 예측 오차 부호 Ce(=2)가 출력되고, 부호 결합부(131)에 있어서, 런 렝스 부호 Cr(=1)과 결합되어, 결합 부호 Cer(=(2+1))이 생성된다.
한편, 새로운 예측 오차 E=0의 런 렝스 R이 1이 된다. 새로운 예측 오차 E=0의 런 렝스 R은, 이 시점에서는, 아직 확정되어 있지 않다.
특정한 값이 0인 경우(E=0)는, n+1회째의 예측 오차 E=2에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=2)가 선택되고 있고, n+1회째에 생성된 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
또한, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)도, n+1회째의 예측 오차 E=2에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=2)가 선택되고 있고, n+1회째에 생성된 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
n+3회째에서는, 데이터값이 10인 입력 데이터가 입력된다.
n+3회째에 있어서의 예측 오차 E는 0(10-10=0)이며, n+2회째의 예측 오차 E=0과 같기 때문에, 예측 오차 E=0의 런 렝스 R은 2가 된다. 이 시점에서는, 예측 오차 E=0의 런 렝스 R은 아직 확정되어 있지 않다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=0)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=0이 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=0은 특정한 값이기 때문에, 예측 오차 판정부(141)에 의해 결합 부호 Cer이 출력 부호로서 선택되고, 다음번(n+4회째) 이후에 결합 부호 Cer이 출력 부호로서 출력된다. 결합 부호 Cer은, 이 시점에서는, 아직 생성되어 있지 않다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, 예측 오차 E=0은 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=0)가 출력 부호로서 선택되고, 다음번(n+4회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=0)가 출력 부호로서 출력된다.
예측 오차 E=0의 런 렝스 R이 미확정이기 때문에, 런 렝스 계수부(121)로부터 런 렝스 R은 출력되지 않고, 런 렝스 부호 Cr도 생성되지 않는다.
이 결과, 결합 부호 Cer도 생성되지 않는다.
특정한 값이 0인 경우(E=0)는, n+2회째의 예측 오차 E=0에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 결합 부호 Cer이 선택되고 있지만, 결합 부호 Cer은, 이 시점에서는, 아직 생성되어 있지 않기 때문에, 부호는 출력되지 않는다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, n+2회째의 예측 오차 E=0에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=0)가 선택되고 있고, n+2회째에 생성된 예측 오차 부호 Ce(=0)가 출력 부호로서 출력된다.
n+4회째에서는, 데이터값이 11인 입력 데이터가 입력된다.
n+4회째에 있어서의 예측 오차 E는 1(11-10=1)이며, n+3회째의 예측 오차 E=0과 다르기 때문에, 예측 오차 E=0의 런 렝스 R은 2로 확정된다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=1)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=1이 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=1은 특정한 값이 아니기 때문에, 예측 오차 판정부(141)에 의해 예측 오차 부호 Ce(=1)가 출력 부호로서 선택되고, 다음번(n+5회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=1)가 출력 부호로서 출력된다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, 예측 오차 E=1은 특정한 값이기 때문에, 예측 오차 판정부(141)에 의해 결합 부호 Cer이 출력 부호로서 선택되고, 다음번(n+5회째) 이후에 결합 부호 Cer이 출력 부호로서 출력된다. 결합 부호 Cer은, 이 시점에서는, 아직 생성되어 있지 않다.
예측 오차 E=0의 런 렝스 R이 2로 확정되었기 때문에, 런 렝스 계수부(121)로부터 런 렝스 부호화부(122)에 런 렝스 R=2가 출력되고, 런 렝스 부호 Cr이 생성된다.
또한, 예측 오차 부호화부(112) 내의 버퍼로부터 이전의 예측 오차 부호 Ce(=0)가 출력되고, 부호 결합부(131)에 있어서, 런 렝스 부호 Cr(=2)과 결합되어, 결합 부호 Cer(=(0+2))이 생성된다.
한편, 새로운 예측 오차 E=1의 런 렝스 R이 1이 된다. 새로운 예측 오차 E=1의 런 렝스 R은, 이 시점에서는, 아직 확정되어 있지 않다.
특정한 값이 0인 경우(E=0)는, n+3회째의 예측 오차 E=0에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 결합 부호 Cer이 선택되고 있고, n+4회째에 있어서 생성된 결합 부호 Cer(=(0+2))이 출력 부호로서 출력된다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, n+3회째의 예측 오차 E=0에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=0)가 선택되고 있고, n+3회째에 생성된 예측 오차 부호 Ce(=0)가 출력 부호로서 출력된다.
n+5회째에서는, 데이터값이 13인 입력 데이터가 입력된다.
n+5회째에 있어서의 예측 오차 E는 2(13-11=2)이며, n+4회째의 예측 오차 E=1과 다르기 때문에, 예측 오차 E=1의 런 렝스 R은 1로 확정된다.
예측 오차 부호화부(112)는, 예측 오차 부호 Ce(=2)를 생성하고, 예측 오차 부호화부(112) 내의 버퍼에 체류시켜 둔다.
또한, 예측 오차 판정부(141)에 의해, 예측 오차 E=2가 특정한 값에 일치하는지 여부가 판정된다(도 3의 부호 출력 공정 S202).
특정한 값을 0으로 하고 있는 경우(E=0)는, 예측 오차 E=2는 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=2)가 출력 부호로서 선택되고, 다음번(n+6회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
또한, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)도, 예측 오차 E=2는 특정한 값이 아니기 때문에, 예측 오차 부호화부(112)에 의해 예측 오차 부호 Ce(=2)가 출력 부호로서 선택되고, 다음번(n+6회째)에 있어서 버퍼 내의 예측 오차 부호 Ce(=2)가 출력 부호로서 출력된다.
예측 오차 E=1의 런 렝스 R이 1로 확정되었기 때문에, 런 렝스 계수부(121)로부터 런 렝스 부호화부(122)에 런 렝스 R=1이 출력되고, 런 렝스 부호 Cr이 생성된다.
또한, 예측 오차 부호화부(112) 내의 버퍼로부터 이전의 예측 오차 부호 Ce(=1)가 출력되고, 부호 결합부(131)에 있어서, 런 렝스 부호 Cr(=1)과 결합되어, 결합 부호 Cer(=(1+1))이 생성된다.
한편, 새로운 예측 오차 E=2의 런 렝스 R이 1이 된다. 새로운 예측 오차 E=2의 런 렝스 R은, 이 시점에서는, 아직 확정되어 있지 않다.
특정한 값이 0인 경우(E=0)는, n+4회째의 예측 오차 E=1에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 예측 오차 부호 Ce(=1)가 선택되고 있고, n+4회째에 있어서 생성된 예측 오차 부호 Ce(=1)가 출력 부호로서 출력된다.
한편, 특정한 값을 +1 및 -1로 하고 있는 경우(|E|=1)는, n+4회째의 예측 오차 E=1에 대한 예측 오차 판정부(141)의 판정(부호 출력 공정 S202)의 결과, 출력 부호로서 결합 부호 Cer이 선택되고 있고, n+5회째에 있어서 생성된 결합 부호 Cer(=(1+1))이 출력 부호로서 출력된다.
이와 같이, 본 실시의 형태에 의하면, 입력 데이터에 대하여 예측 오차를 산출하고, 예측 오차의 런 렝스를 계수하므로, 일정한 기울기로 증감하는 데이터에 대해서도 효율적으로 런 렝스 부호화를 행할 수 있다.
또한, 본 실시의 형태에서는, 예측 오차의 값에 따라 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하기 때문에, 데이터값의 변동 특성에 대응시켜, 결합 부호가 선택되는 예측 오차를 적절히 결정하는 것에 의해, 압축 효율을 높일 수 있다.
예컨대, 입력 데이터간에 데이터값의 변동이 그다지 없고, 예측 오차 E=0이 연속하는 빈도가 높은 경우에는, 예측 오차 E=0일 때에 결합 부호 Cer을 출력 부호로 하고, 그 이외에는 예측 오차 부호 Ce를 출력 부호로 하는 것에 의해, 압축률을 높이는 것이 가능하다.
또한, 일정한 비율로 완만하게 증감하는 데이터의 경우는, 예측 오차 |E|=1이 연속하는 빈도가 높기 때문에, 예측 오차 |E|=1일 때에 결합 부호 Cer을 출력 부호로 하고, 그 이외에는 예측 오차 부호 Ce를 출력 부호로 하는 것에 의해, 압축률을 높이는 것이 가능하다.
또, 상기의 설명에서는, 모든 예측 오차에 대하여 런 렝스 계수부(121)에서 런 렝스를 계수하고 있지만, 특정한 값의 예측 오차에 대해서만 런 렝스를 계수하도록 하더라도 좋다.
다시 말해, 예측 오차 판정부(141)가, 예측 오차 산출부(111)에 의해 산출된 예측 오차의 값이 특정한 값(도 3의 S202에서 판단 대상으로 하고 있는 특정한 값)인 경우에, 런 렝스 계수부(121)에 해당 예측 오차의 런 렝스의 계수의 개시를 지시한다.
그리고, 런 렝스 계수부(121)는, 예측 오차 판정부(141)에서 지시가 있었던 예측 오차의 런 렝스의 계수를 개시한다.
이와 같이 하는 것에 의해, 런 렝스 계수부(121) 및 런 렝스 부호화부(122)의 처리를 효율화할 수 있다.
도 10은 본 실시의 형태에 따른 데이터 압축 해제 장치(300)의 기능 블록의 구성의 일례를 나타내는 도면이다.
데이터 압축 해제 장치(300)는, 데이터 압축 장치(100)에 의해 압축된 압축 후 데이터를 순차적으로 입력하고, 압축 해제를 행하여, 압축 전의 상태로 복원한 데이터를 출력한다. 데이터 압축 장치(100)에 의해 압축된 압축 후 데이터는, 데이터 압축 장치(100)의 출력 데이터(부호화 데이터), 출력 데이터의 처리 단위의 수, 및 출력 데이터에 포함되는 부호수를 포함한다. 또한, 데이터 압축 장치(100)의 예측 오차 판정부(141)에서 사용된 특정한 값을 인코드한 데이터를 포함하더라도 좋다. 그 경우, 압축 후 데이터는, 출력 데이터의 처리 단위의 수, 출력 데이터에 포함되는 부호수, 특정한 값을 인코드한 데이터를 포함하는 헤더를 갖고, 그 헤더의 직후로부터 압축에 의한 출력 데이터를 갖는 구조로 한다. 한편, 특정한 값에 대해서는, 압축 후 데이터에 포함시키지 않고서, 데이터 압축 장치(100)와 데이터 압축 해제 장치(300)에서 공통의 값을 고정적으로 갖거나, 공통의 값을 미리 설정하는 것으로 하더라도 좋다.
데이터 압축 해제 장치(300)는, 예측 오차 복호부(311), 데이터 복호부(312), 런 렝스 복호부(321), 데이터 복제부(331), 복호 예측 오차 판정부(341), 출력 데이터 전환부(342), 데이터 입력부(351)를 포함한다.
데이터 입력부(351)는, 입력 데이터를 일정한 처리 단위(예컨대 32비트 등)마다 입력하고, 처리 단위 내에 포함되는 부호를 추출한다. 부호가 처리 단위보다 작은 경우에는 하나의 처리 단위로부터 복수의 부호를 차례로 추출하고, 또한, 부호가 처리 단위보다 큰 경우나 부호가 복수의 처리 단위에 걸치는 경우에는, 순차적으로 입력 데이터를 입력하여 부호를 추출한다. 즉, 데이터 압축 장치(100)에 있어서의 부호 출력부(151)의 반대의 조작을 행한다. 부호의 비트 길이는 감마 부호, 델타 부호, 그 밖의 가변 길이 부호화 방법에 의해, 부호 비트를 MSB로부터 차례로 살펴보아 가는 것에 의해 유일하게 정해지기 때문에, 이러한 부호의 추출을 행할 수 있다.
출력 데이터에 포함되는 부호수가 헤더로부터 미리 입력되고, 추출된 부호의 수를 계수 하고, 계수된 부호수가 출력 데이터에 포함되는 부호수에 일치했을 때에, 그것이 최종 데이터인 것을 알 수 있고, 데이터의 입력을 종료할 수 있다.
또한, 출력 데이터에 포함되는 처리 단위의 수가 헤더로부터 미리 입력되고, 부호화 데이터의 입력 처리 단위수를 계수하고, 데이터의 입력 종료시에 이들 처리 단위수가 일치하는 것을 확인하는 것에 의해, 데이터의 일관성을 확인할 수 있다.
예측 오차 복호부(311)는, 데이터 입력부(351)에 의해 추출된 부호로부터 예측 오차 E를 복호한다. 복호에는, 데이터 압축 장치(100)의 예측 오차 부호화부(112)에 대응하는 복호 방법을 이용한다. 즉, 예측 오차 부호화부(112)가 감마 부호를 이용하는 것이라면, 예측 오차 복호부(311)도 감마 부호를 이용한다. 또한, 정의 정수로의 매핑의 역변환을 행하는 것에 의해, 예측 오차 E를 복호할 수 있다.
데이터 복호부(312)는, 과거에 복호된 데이터의 이력을 이용하여 현재의 데이터를 예측한 예측치와, 예측 오차 E의 차분을 산출하는 것에 의해 원래의 데이터를 복호한다. 예측치의 산출 방법은 예측 오차 산출부(111)와 동일하다.
복호 예측 오차 판정부(341)는, 예측 오차 E의 값에 의해 출력 데이터 전환부(342)를 제어하고, 예측 오차 부호 Ce와 결합 부호 Cer 중 한쪽을 복호한 데이터를 대응하는 출력 부호로 하는지를 선택한다. 복호 예측 오차 판정부(341)는, 미리 헤더로부터 특정한 값을 인코드한 것을 입력하고 특정한 값을 디코드하여 두거나, 고정의 특정한 값, 혹은 설정된 특정한 값과 예측 오차 E를 비교하고, 예측 오차 E가 특정한 값이 아닌 경우에는 입력된 부호는 Ce인 것으로 판단하여, 데이터 복호부(312)에 의해 복호된 데이터를 출력 데이터로서 출력 데이터 전환부(342)로부터 출력시킨다.
예측 오차 E가 특정한 값인 경우에는, 입력된 부호는 결합 부호 Cer에 포함되는 예측 오차 부호인 것으로 판단한다. 그 경우, 런 렝스 복호부(321)가 데이터 입력부(351)에 의해 추출된 다음의 부호를 입력하고, 런 렝스를 복호한다. 복호에는, 데이터 압축 장치(100)의 런 렝스 부호화부(122)에 대응하는 복호 방법을 이용한다. 즉, 런 렝스 부호화부(122)가 감마 부호를 이용하는 것이라면, 런 렝스 복호부(321)도 감마 부호를 이용한다.
예측 오차 E가 특정한 값인 경우에는, 데이터 복제부(331)가, 데이터 복호부(312)에 의해 복호된 데이터를 런 렝스에 대응하는 기간 동안 반복하여 출력하는 것에 의해 데이터를 복제한다. 그때, 복호 예측 오차 판정부(341)는, 출력 데이터 전환부(342)에 데이터 복제부(331)의 출력을 출력 데이터로서 출력시킨다.
다음으로, 데이터 압축 해제 장치(300)의 동작에 대하여 설명한다.
도 11은 본 실시의 형태에 따른 데이터 압축 해제 장치(300)의 압축 해제 처리의 흐름의 일례를 나타내는 플로우차트이다.
압축 해제 공정 S601에 있어서, 데이터 입력부(351)가, 입력 데이터를 일정한 처리 단위마다 입력하고, 처리 단위 내에 포함되는 부호를 추출한다. 데이터 입력부에서는 입력된 처리 단위수와 추출된 부호수를 계수한다.
다음으로, 압축 해제 공정 S602에서 예측 오차 복호부(311)가, 추출된 부호를 감마 부호 또는 델타 부호 또는 그 밖의 부호에 의해 복호하고, 예측 오차 E를 생성한다.
다음으로, 압축 해제 공정 S603에서 데이터 복호부(312)가, 예측 오차 E와 과거에 복호된 이력 데이터를 이용하여 현재의 데이터를 복호한다.
그리고, 압축 해제 공정 S604에서, 복호 예측 오차 판정부(341)가, 예측 오차 E가 특정한 값인지 여부를 판정한다.
압축 해제 공정 S604에 있어서, 예측 오차 E가 특정한 값에 일치하지 않는 경우에는, 압축 해제 공정 S605에서 복호 예측 오차 판정부(341)는 출력 데이터 전환부(342)에 복호된 현재의 데이터를 출력하도록 선택시킨다.
한편, 압축 해제 공정 S604에 있어서, 다음으로, 예측 오차 E가 특정한 값에 일치한 경우에는, 압축 해제 공정 S606에서, 데이터 입력부(351)가 다음의 부호를 추출한다. 데이터 입력부에서는 입력된 처리 단위수와 추출된 부호수를 계수한다.
다음으로, 압축 해제 공정 S607에서, 런 렝스 복호부(321)가 추출된 부호를 감마 부호 또는 델타 부호 또는 그 밖의 부호에 의해 복호하고, 런 렝스 R을 생성한다.
다음으로, 압축 해제 공정 S608에서, 데이터 복제부(331)가, 데이터 복호부(312)에 의해 복호된 현재의 데이터를 런 렝스 R에 대응하는 횟수만큼 반복하여 출력한다. 이때, 복호 예측 오차 판정부(341)는 출력 데이터 전환부(342)에 데이터 복제부(331)의 출력 데이터를 출력하도록 선택시킨다.
그리고, 압축 해제 공정 S609에 있어서, 데이터 입력부(351)가 계수한 부호수가 압축 후 데이터의 헤더로부터 입력된 부호수와 동일한 경우에는 데이터의 압축 해제를 종료하고, 그렇지 않은 경우에는 압축 해제 공정 S601로 돌아온다.
이상 말한 것처럼, 복호된 예측 오차의 값에 의해 그 다음의 부호가 다음의 예측 오차 부호인지, 결합 부호의 런 렝스 부호인지를 판정하는 것에 의해, 본 실시의 형태에 의한 압축 후 데이터의 압축 해제가 가능하다.
이상, 본 실시의 형태에서는, 입력 데이터열을 압축하는 데이터 압축 장치로서, 적어도 1개 이상의 입력 데이터의 이력을 이용하여 산출한 예측치와, 주목하는 데이터의 차분인 예측 오차를 산출하는 수단과, 상기 예측 오차를 가변 길이 부호에 의해 부호화하여 예측 오차 부호를 생성하는 수단과, 상기 예측 오차의 런 렝스를 카운트하는 수단과, 상기 런 렝스를 가변 길이 부호에 의해 부호화하여 런 렝스 부호를 생성하는 수단과, 상기 예측 오차 부호 및 상기 런 렝스 부호로부터 출력 부호를 생성하는 수단을 포함하고, 상기 출력 부호를 생성하는 수단은, 상기 예측 오차의 값에 따라, 예측 오차 부호를 출력 부호로 할지, 예측 오차 부호와 런 렝스 부호를 결합하여 출력 부호로 할지를 선택하는 데이터 압축 장치를 설명했다.
또한, 본 실시의 형태에서는, 상기 출력 부호를 생성하는 수단은, 상기 예측 오차의 절대치가 임계치보다 큰 경우에는 예측 오차 부호를 출력 부호로 하고, 상기 예측 오차의 절대치가 임계치 이하인 경우에는 예측 오차 부호와 런 렝스 부호를 결합하여 출력 부호로 하는 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 예측 오차를 가변 길이 부호에 의해 부호화하여 예측 오차 부호를 생성하는 수단은, 상기 예측 오차를 가장 가까운 고정 비트수의 정수로 변환하는 수단과, 변환된 정수치가 상기 고정 비트수로 나타내어지는 최소치인 경우에는, 대응하는 고정 비트열을 출력 부호로서 부호화하는 수단과, 변환된 정수치가 상기 최소치가 아닌 경우에는, 정의 정수에 매핑하고, 가변 길이 부호화하는 수단을 포함하는 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 가변 길이 부호화하는 수단은, 알파 부호 또는 감마 부호 또는 델타 부호 또는 오메가 부호 또는 골롬 부호에 의해 부호화하는 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 런 렝스를 가변 길이 부호에 의해 부호화하여 런 렝스 부호를 생성하는 수단은, 상기 런 렝스를 알파 부호 또는 감마 부호 또는 델타 부호 또는 오메가 부호 또는 골롬 부호에 의해 부호화하는 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 예측치는, 주목하는 데이터의 직전의 데이터인 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 예측치는, 직전의 적어도 2개 이상의 데이터를 이용한 고정 파라미터의 선형 연산인 것을 설명했다.
실시의 형태 2.
도 4는 본 실시의 형태에 따른 데이터 압축 장치(200)의 기능 블록의 구성의 일례를 나타내는 도면이다.
데이터 압축 장치(200)는, 압축 전 처리부(101), 압축 처리부(102), 제어부(103)로 크게 나누어진다.
압축 처리부(102)는, 실시의 형태 1에서 설명한 데이터 압축 장치(100)와 실질적으로 같은 구성이며, 예측 오차 판정부(141)가 부호 선택 기준(143)을 기억하고 있는 점이 실시의 형태 1과 다르다.
압축 전 처리부(101)는, 선행 예측 오차 산출부(211), 선행 런 렝스 계수부(221), 부호 길이 산출부(171, 172, 173), 부호 길이 산출 기준(181, 182, 183), 기준 선택부(191)를 갖는다.
압축 전 처리부(101)의 내부 구성의 자세한 것은 후술한다.
본 실시의 형태에 따른 데이터 압축 장치(200)는, 입력 데이터를 2 패스 처리하는 것에 의해, 부호 선택을 위한 기준의 최적화를 행한다.
제어부(103)는, 압축 처리의 패스 관리를 행하고, 압축 전 처리부(101)에 1 패스째로부터 입력 데이터를 입력하게 하고, 압축 전 처리부(101)에 복수의 기준에 근거하는 압축 후의 부호 길이를 산출하게 하고, 가장 부호 길이가 짧은 기준을 선택하게 한다.
압축 전 처리부(101)는, 복수의 부호 선택 기준 중 압축 후의 부호 길이가 가장 짧은 부호 선택 기준을 선택하기 때문에, 시간의 경과에 의해 입력 데이터의 특성이 변화하는 경우는, 입력 데이터의 특성의 변화에 따라, 선택하는 부호 선택 기준이 변화하는 경우가 있다.
또, 선택된 기준에 근거하는 압축 후의 부호 길이가 목표로 하는 압축 블록 사이즈에 미치지 않는 경우에는, 제어부(103)는, 추가의 입력 데이터를 압축 전 처리부(101)에 입력하여 압축 후의 부호 길이를 갱신시킨다.
압축 후의 부호 길이가 목표로 하는 압축 블록 사이즈를 넘은 경우에는, 제어부(103)는, 2 패스째로서 최후의 입력 데이터 추가 전까지의 입력 데이터를 압축 처리부(102)에 입력하여 압축 처리를 실행시킨다.
압축 전 처리부(101)에 대하여 상세하게 설명한다.
압축 전 처리부(101)의 선행 예측 오차 산출부(211) 및 선행 런 렝스 계수부(221)는, 기능으로서는, 실시의 형태 1에서 설명한 예측 오차 산출부(111) 및 런 렝스 계수부(121)와 같지만, 이하의 점이 다르다.
본 실시의 형태에서는, 선행 예측 오차 산출부(211)는, 압축 처리부(102)의 예측 오차 산출부(111)가 데이터를 입력하기에 앞서, 예측 오차 산출부(111)가 입력할 예정의 데이터(입력 예정 데이터라고도 한다)를 입력하고, 예측 오차 산출부(111)와 같은 방식에 의해 데이터값을 예측하고, 입력 예정 데이터마다 예측 오차를 산출한다.
선행 런 렝스 계수부(221)는, 선행 예측 오차 산출부(211)에 의해 산출된 예측 오차의 런 렝스를 계수한다.
부호 길이 산출부(171, 172, 173)는 예측 오차 E 및 런 렝스 R을 가변 길이 부호화했을 때의 부호 길이를 산출한다.
도 4의 예에서는 부호 길이 산출부를 3개 갖는 경우의 예를 나타냈지만, 부호 길이 산출부의 수는 임의이더라도 좋다.
부호 길이 산출부(171, 172, 173)는, 예컨대 감마 부호화에서는, 예측 오차 E를 변환식 M1 또는 M2로 변환 후에 2진수로 나타냈을 때의 비트수 Ne에 대하여, 부호 길이 Ge를 이하와 같이 산출할 수 있다.
Ge=2Ne-1
예측 오차 E가 E=Emin을 만족시키는 경우에는 Ge는 Emin에 대응하는 부호의 길이로 하면 된다.
또한, 부호 길이 산출부(171, 172, 173)는, 런 렝스 R을 2진수로 나타냈을 때의 비트수 Nr에 대하여 부호 길이 Gr을 이하와 같이 산출할 수 있다.
Gr=2Nr-1
또한, 부호 길이 산출부(171, 172, 173)는, 예측 오차 E 및 런 렝스 R로 했을 때의 부호 길이 G는, 이하와 같이 산출할 수 있다.
G=Ge+Gr … 예측 오차 부호와 런 렝스 부호의 결합을 출력 부호로 할 때
G=Ge×R … 예측 오차 부호만을 출력 부호로 할 때
감마 부호와 같은 고정적인 부호화 방법을 이용하는 것에 의해, 산술 부호화나 허프만 부호화 등의 엔트로피 부호에서 필요한 심볼 출현 빈도 테이블의 작성이 불필요해져, 계산량을 삭감하여 고속의 처리가 가능해지는 것은 실시의 형태 1에서 설명한 것과 같다.
또한, 상술한 바와 같이, 압축 블록 사이즈를 조정하기 위서, 입력 데이터의 추가 처리에 의해 조금씩 입력 데이터를 늘려 압축 후의 부호 길이를 산출하는 경우, 심볼 출현 빈도 테이블을 필요로 하는 부호화 방법에서는, 테이블의 내용이 변화하기 때문에, 그때까지 계산이 끝난 부호 길이에 대해서도 재계산이 필요하지만, 본 실시의 형태에서는 고정적으로 부호 길이를 산출할 수 있기 때문에, 추가한 데이터의 부호 길이만을 계산하면 되므로, 계산량을 삭감하여 고속화가 가능하다.
단, 본 실시의 형태에서 이용하는 부호화 방식은, 감마 부호 혹은 델타 부호가 아니더라도, 그 밖의 정수의 부호화 방식인 알파 부호, 오메가 부호, 골롬 부호, 라이스 부호이더라도 좋다.
또한, 산술 부호, Range Coder, 허프만 부호, 섀넌 부호나, 그 밖의 고정 테이블을 이용한 부호화 방법 등이더라도 좋다.
부호 길이 산출부(171, 172, 173)는, 부호 길이 산출 기준(181, 182, 183)에 근거하여 부호 길이의 산출을 행한다.
예컨대, 부호 길이 산출 기준(181)을, 기준 1=런 렝스 부호화 없음(예측 오차의 값에 상관없이 항상 예측 오차 부호의 부호 길이를 산출)으로 하면, 부호 길이 산출부(171)는 부호 길이 G1을 이하의 식에 의해 산출한다.
G1=Ge×R
또한, 부호 길이 산출 기준(182)을, 기준 2=예측 오차 E가 0인 경우만 런 렝스 부호화 있음으로 하면, 부호 길이 산출부(172)는 부호 길이 G2를 이하의 식에 의해 산출한다.
G2=Ge+Gr … E=0일 때
G2=Ge×R … E≠0일 때
또한, 부호 길이 산출 기준(183)을, 기준 3=예측 오차 E의 절대치가 1 이하인 경우만 런 렝스 부호화 있음으로 하면, 부호 길이 산출부(173)는 부호 길이 G3을 이하의 식에 의해 산출한다.
G3=Ge+Gr … |E|≤1일 때
G3=Ge×R … |E|>1일 때
이상, 부호 길이 산출부의 산출예를 나타냈지만, 여기에 나타낸 이외의 기준을 이용하는 것이 가능한 것도 당업자에게는 분명하다.
부호 길이 산출부는, 입력 예정 데이터의 전부에 대하여 부호 길이를 합계하고, 합계 부호 길이를 산출한다.
추가 입력 예정 데이터의 경우에는, 이전의 합계 부호 길이를 입력 혹은 내부 보존하고, 추가 입력 예정 데이터의 부호 길이를 가산한다.
이와 같이 본 실시의 형태에서는, 부호 길이 산출부(171, 172, 173)의 각각에는, 결합 부호의 부호 길이를 산출하는 결합 부호 길이 산출치로서 소정의 값이 설정되어 있다.
그리고, 부호 길이 산출부(171, 172, 173)의 각각은, 선행 예측 오차 산출부(211)에 의해 산출된 예측 오차의 값이 결합 부호 길이 산출치와 일치하는 경우에 해당 예측 오차의 값과 선행 런 렝스 계수부(221)에 의한 런 렝스에 근거하여 결합 부호의 부호 길이를 산출하고, 선행 예측 오차 산출부(211)에 의해 산출된 예측 오차의 값이 결합 부호 길이 산출치와 일치하지 않는 경우에 해당 예측 오차의 값에 근거하여 예측 오차 부호의 부호 길이를 산출하여, 복수의 입력 예정 데이터에서의 합계 부호 길이를 산출한다.
다시 말해, 부호 길이 산출부(172)에는 결합 부호 길이 산출치로서 예측 오차 E=0이 설정되어 있어, 예측 오차 E=0일 때에 결합 부호의 부호 길이를 산출하고, 예측 오차 E=0 이외일 때는 예측 오차 부호의 부호 길이를 산출한다. 그리고, 부호 길이 산출부(172)는, 산출한 결합 부호의 부호 길이 및 예측 오차 부호의 부호 길이의 합계 부호 길이를 산출한다.
또한, 부호 길이 산출부(173)에는 결합 부호 길이 산출치로서 예측 오차 |E|≤1이 설정되어 있어, 예측 오차 |E|≤1일 때에 결합 부호의 부호 길이를 산출하고, 예측 오차 |E|>1일 때는 예측 오차 부호의 부호 길이를 산출한다. 그리고, 부호 길이 산출부(173)는, 산출한 결합 부호의 부호 길이 및 예측 오차 부호의 부호 길이의 합계 부호 길이를 산출한다.
또한, 부호 길이 산출부(171)는, 특례 부호 길이 산출부로서 기능하고, 결합 부호 길이 산출치가 설정되지 않고, 선행 예측 오차 산출부(211)에 의해 산출된 예측 오차에 대하여 예측 오차 부호의 부호 길이만을 산출하여, 복수의 입력 예정 데이터에서의 합계 부호 길이를 산출한다.
기준 선택부(191)는, 각각의 부호 길이 산출부에서 산출한 합계 부호 길이를 비교하고, 가장 부호 길이가 작아지는 부호 길이 산출 기준을 선택하여, 부호 길이 산출 기준을 나타내는 기준 코드와 합계 부호 길이를 출력한다.
다시 말해, 기준 선택부(191)는, 최소의 합계 부호 길이라고 하는 조건을 만족시키는 부호 길이 산출부의 결합 부호 길이 산출치(E=0, |E|≤1 등)를 부호 길이 산출 기준으로서 선정하고, 부호 길이 산출 기준으로서 선정한 값의 예측 오차에 대한 출력 부호로서 결합 부호를 선택하도록 예측 오차 판정부(141)(부호 선택부)에 지시한다.
기준 선택부(191)는, 선정 지시부의 예이다.
그리고, 기준 선택부(191)에 의해 선정된 부호 길이 산출 기준을 나타내는 기준 코드는 제어부(103)에 의해 2 패스째의 입력 데이터와 함께 압축 처리부(102)에 입력되고, 예측 오차 판정부(141)에서 기준 코드가 디코드되고, 예측 오차 판정부(141)가 선택된 부호 길이 산출 기준을 부호 선택 기준(143)으로서 보유한다.
그리고, 예측 오차 판정부(141)는, 부호 선택 기준(143)에 근거하여, 대상이 되는 예측 오차에 대해서는 결합 부호를 선택하여 데이터 압축을 실행한다.
기준 코드를 상술한 출력 데이터의 처리 단위의 수, 및 출력 데이터에 포함되는 부호수 등과 함께 압축 블록의 헤더로서 보존하는 것에 의해, 압축 해제시에 같은 기준을 이용하여 복호하는 것이 가능하다.
이상 말한 것처럼, 본 실시의 형태에 의하면, 예측 오차에 따라 예측 오차 부호와 런 렝스 부호를 적응적으로 조합하는 방법에 있어서, 조합시의 기준을 입력 데이터에 따라 압축 블록 단위로 최적화할 수 있어, 압축 효율을 더 높일 수 있다.
다음으로, 데이터 압축 장치(200)의 동작에 대하여 설명한다.
도 5는 본 실시의 형태에 따른 데이터 압축 장치(200)의 압축 처리의 흐름의 일례를 나타내는 플로우차트이다.
압축 공정 S301에 있어서, 제어부(103)가, 일정한 사이즈의 입력 예정 데이터에 대하여 압축 패스 1을 실행하고, 압축 공정 S302에서 합계 부호 길이가 블록 사이즈 미만인 경우, 입력 예정 데이터를 추가하여 S301의 압축 패스 1을 재실행한다.
합계 부호 길이가 블록 사이즈 이상인 경우에는, 제어부(103)는, 압축 공정 S303에서 합계 부호 길이가 블록 사이즈 이하가 되는 입력 데이터 사이즈를 결정하고, 압축 공정 S304에서 압축 패스 2를 실행한다.
도 6은 본 실시의 형태에 따른 데이터 압축 장치(200)의 압축 패스 1 처리의 흐름의 일례를 나타내는 플로우차트이다.
압축 패스 1 공정 S401에 있어서, 선행 예측 오차 산출부(211)가, 입력 데이터와 과거의 이력 데이터를 이용하여 예측 오차 Ec를 산출한다.
압축 패스 1 공정 S402에서, 선행 예측 오차 산출부(211)가, 예측 오차 Ec가 이전의 예측 오차 Ep와 일치하는지 판정하고, 일치한 경우에는, 선행 런 렝스 계수부(221)가, 압축 패스 1 공정 S403에서 런 렝스 R에 1을 가산한다.
일치하지 않는 경우에는, 압축 패스 1 공정 S404에서, 각 부호 길이 산출부는, 예측 오차 Ep와 런 렝스 R을 바탕으로 부호 길이 가산을 행하고, 압축 패스 1 공정 S405에서, 선행 런 렝스 계수부(221)가, 런 렝스를 1로 리셋한다.
압축 패스 1 공정 S406에서 입력 데이터가 종료되었는지 여부를 판정하고, 종료되어 있지 않은 경우에는 압축 패스 1 공정 S401로 돌아온다.
종료된 경우는 압축 패스 1 공정 S407에서, 각 부호 길이 산출부는, 예측 오차 Ec와 런 렝스 R을 바탕으로 최후의 부호 길이 가산을 행한다.
압축 패스 1 공정 S408에서, 기준 선택부(191)가, 부호 길이 산출 기준마다 산출한 합계 부호 길이를 비교하고, 합계 부호 길이가 최소인 부호 길이 산출 기준을 선택하여 기준 코드와 합계 부호 길이를 출력한다.
도 7은 본 실시의 형태에 따른 데이터 압축 장치(200)의 부호 길이 가산 처리의 흐름의 일례를 나타내는 플로우차트이다.
부호 길이 가산 공정 S501에 있어서, 각 부호 길이 산출부는, 예측 오차의 부호 길이를 산출하고, 부호 길이 가산 공정 S502에 있어서, 런 렝스의 부호 길이를 산출하고, 부호 길이 가산 공정 S503에 있어서, 각각의 부호 길이 산출 기준마다 부호 길이를 산출하여, 합계 부호 길이에 각각 가산한다.
본 실시의 형태에 따른 데이터 압축 장치(200)의 압축 패스 2 처리에 대해서는, 도 3의 S202에 있어서 예측 오차가 특정치인지 여부의 판정을 압축 패스 1 처리에서 선택된 기준에 근거하여 실행하는 것 이외에는, 도 2, 도 3에 나타낸 것과 같다.
이와 같이, 본 실시의 형태에서는, 입력 데이터의 특성에 따라, 압축 블록 단위로 최적의 부호 길이 산출 기준을 선택할 수 있어, 압축 효율을 더 높일 수 있다.
이상, 본 실시의 형태에서는, 데이터 압축 장치는, 예측 오차 부호의 부호 길이를 산출하는 수단과, 런 렝스 부호의 부호 길이를 산출하는 수단과, 예측 오차의 값에 따른 복수의 기준에 근거하여, 예측 오차 부호의 부호 길이 또는 예측 오차 부호와 런 렝스 부호를 결합한 부호의 부호 길이를 선택하여, 복수의 기준에 각각 대응한 복수의 출력 부호열의 부호 길이를 산출하는 수단과, 입력 데이터 블록에 대하여 복수의 출력 부호열의 부호 길이를 산출하여, 부호 길이가 최소가 되는 기준을 그 입력 데이터 블록의 기준으로서 선택하는 수단과, 입력 데이터 블록에 입력 데이터가 추가되었을 때에, 추가된 입력 데이터의 복수의 부호 길이를 산출하여 추가 전에 산출된 부호 길이에 가산하고, 부호 길이가 최소가 되는 기준을 재선택하는 수단과, 선택된 기준에서 그 입력 데이터 블록의 출력 부호열을 생성하는 수단을 더 포함하는 것을 설명했다.
또한, 본 실시의 형태에서는, 상기 복수의 기준은, 상기 예측 오차에 의존하지 않고서 예측 오차 부호를 출력 부호로 하는 기준, 상기 예측 오차가 0인 경우에 예측 오차 부호와 런 렝스 부호를 결합하여 출력 부호로 하고, 그 이외는 예측 오차 부호를 출력 부호로 하는 기준, 상기 예측 오차의 절대치가 1 이하인 경우에 예측 오차 부호와 런 렝스 부호를 결합하여 출력 부호로 하고, 그 이외는 예측 오차 부호를 출력 부호로 하는 기준 중 1개 이상을 포함하는 것을 설명했다.
최후로, 실시의 형태 1 및 2에 나타낸 데이터 압축 장치(100, 200)의 하드웨어 구성예에 대하여 설명한다.
도 9는 실시의 형태 1 및 2에 나타내는 데이터 압축 장치(100, 200)의 하드웨어 자원의 일례를 나타내는 도면이다.
또, 도 9의 구성은, 어디까지나 데이터 압축 장치(100, 200)의 하드웨어 구성의 일례를 나타내는 것이며, 데이터 압축 장치(100, 200)의 하드웨어 구성은 도 9에 기재된 구성에 한정되지 않고, 다른 구성이더라도 좋다.
도 9에 있어서, 데이터 압축 장치(100, 200)는, 프로그램을 실행하는 CPU(911)(Central Processing Unit, 중앙 처리 장치, 처리 장치, 연산 장치, 마이크로프로세서, 마이크로컴퓨터, 프로세서라고도 한다)를 구비하고 있다.
CPU(911)는, 버스(912)를 통해, 예컨대, ROM(Read Only Memory)(913), RAM(Random Access Memory)(914), 통신 보드(915), 표시 장치(901), 키보드(902), 마우스(903), 자기 디스크 장치(920)와 접속되고, 이들 하드웨어 디바이스를 제어한다.
또한, CPU(911)는, FDD(904)(Flexible Disk Drive), 콤팩트디스크 장치(905)(CDD), 프린터 장치(906), 스캐너 장치(907)와 접속되어 있더라도 좋다. 또한, 자기 디스크 장치(920) 대신에, 광디스크 장치, 메모리 카드(등록상표) 판독/기록 장치 등의 기억 장치이더라도 좋다.
RAM(914)은, 휘발성 메모리의 일례이다. ROM(913), FDD(904), CDD(905), 자기 디스크 장치(920)의 기억 매체는, 비휘발성 메모리의 일례이다. 이들은, 기억 장치의 일례이다.
통신 보드(915), 키보드(902), 마우스(903), 스캐너 장치(907), FDD(904) 등은, 입력 장치의 일례이다.
또한, 통신 보드(915), 표시 장치(901), 프린터 장치(906) 등은, 출력 장치의 일례이다.
통신 보드(915)는, 예컨대, LAN(Local Area Network), 인터넷, WAN(Wide Area Network), SAN(Storage Area Network) 등에 접속되어 있다.
자기 디스크 장치(920)에는, 오퍼레이팅 시스템(921)(OS), 윈도우 시스템(922), 프로그램군(923), 파일군(924)이 기억되어 있다.
프로그램군(923)의 프로그램은, CPU(911)가 오퍼레이팅 시스템(921), 윈도우 시스템(922)을 이용하면서 실행한다.
또한, RAM(914)에는, CPU(911)에 실행시키는 오퍼레이팅 시스템(921)의 프로그램이나 어플리케이션 프로그램의 적어도 일부가 일시적으로 저장된다.
또한, RAM(914)에는, CPU(911)에 의한 처리에 필요한 각종 데이터가 저장된다.
또한, ROM(913)에는, BIOS(Basic Input Output System) 프로그램이 저장되고, 자기 디스크 장치(920)에는 부트 프로그램이 저장되어 있다.
데이터 압축 장치(100, 200)의 기동시에는, ROM(913)의 BIOS 프로그램 및 자기 디스크 장치(920)의 부트 프로그램이 실행되어, BIOS 프로그램 및 부트 프로그램에 의해 오퍼레이팅 시스템(921)이 기동된다.
상기 프로그램군(923)에는, 실시의 형태 1 및 2의 설명에 있어서 「~부」, 「~수단」으로서 설명하고 있는 기능을 실행하는 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 실시의 형태 1 및 2의 설명에 있어서, 「~의 판단」, 「~의 판정」, 「~의 부호화」, 「~의 생성」, 「~의 계수」, 「~의 비교」, 「~의 평가」, 「~의 설정」, 「~의 선택」, 「~의 선정」 등으로서 설명하고 있는 처리의 결과를 나타내는 정보나 데이터나 신호치나 변수치나 파라미터가, 「~파일」이나 「~데이터베이스」의 각 항목으로서 기억되어 있다.
「~파일」이나 「~데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호치나 변수치나 파라미터는, 판독/기록 회로를 통해 CPU(911)에 의해 메인 메모리나 캐시 메모리에 판독되고, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ편집ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU의 동작에 이용된다.
추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ편집ㆍ출력ㆍ인쇄ㆍ표시의 CPU의 동작 동안, 정보나 데이터나 신호치나 변수치나 파라미터는, 메인 메모리, 레지스터, 캐시 메모리, 버퍼 메모리 등에 일시적으로 기억된다.
또한, 실시의 형태 1 및 2에서 설명하고 있는 플로우차트의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호치는, RAM(914)의 메모리, FDD(904)의 플렉서블 디스크, CDD(905)의 콤팩트디스크, 자기 디스크 장치(920)의 자기 디스크, 그 밖의 광디스크, 미니디스크, DVD 등의 기록 매체에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블 그 밖의 전송 매체에 의해 온라인 전송된다.
또한, 실시의 형태 1 및 2의 설명에 있어서 「~부」, 「~수단」으로서 설명하고 있는 것은, 「~회로」, 「~장치」, 「~기기」이더라도 좋고, 또한, 「~스텝」, 「~순서」, 「~처리」이더라도 좋다.
즉, 실시의 형태 1 및 2에서 설명한 플로우차트에 나타내는 스텝, 순서, 처리에 의해, 본 발명에 따른 「데이터 압축 방법」을 실현할 수 있다.
또한, 「~부」, 「~수단」으로서 설명하고 있는 것은, ROM(913)에 기억된 펌웨어로 실현되고 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또는, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서 자기 디스크, 플렉서블 디스크, 광디스크, 콤팩트디스크, 미니디스크, DVD 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 실시의 형태 1 및 2의 「~부」, 「~수단」으로서 컴퓨터를 기능시키는 것이다. 혹은, 실시의 형태 1 및 2의 「~부」, 「~수단」의 순서나 방법을 컴퓨터에 실행시키는 것이다.
이와 같이, 실시의 형태 1및 2에 나타내는 데이터 압축 장치(100, 200)는, 처리 장치인 CPU, 기억 장치인 메모리, 자기 디스크 등, 입력 장치인 키보드, 마우스, 통신 보드 등, 출력 장치인 표시 장치, 통신 보드 등을 구비하는 컴퓨터이며, 상기한 것처럼 「~부」, 「~수단」으로서 나타낸 기능을 이들 처리 장치, 기억 장치, 입력 장치, 출력 장치를 이용하여 실현하는 것이다.
100 : 데이터 압축 장치 101 : 압축 전 처리부
102 : 압축 처리부 103 : 제어부
111 : 예측 오차 산출부 112 : 예측 오차 부호화부
121 : 런 렝스 계수부 122 : 런 렝스 부호화부
131 : 부호 결합부 141 : 예측 오차 판정부
142 : 출력 부호 전환부 143 : 부호 선택 기준
151 : 부호 출력부 171 : 부호 길이 산출부
172 : 부호 길이 산출부 173 : 부호 길이 산출부
181 : 부호 길이 산출 기준 182 : 부호 길이 산출 기준
183 : 부호 길이 산출 기준 191 : 기준 선택부
200 : 데이터 압축 장치 211 : 선행 예측 오차 산출부
221 : 선행 런 렝스 계수부 300 : 데이터 압축 해제 장치
311 : 예측 오차 복호부 312 : 데이터 복호부
321 : 런 렝스 복호부 331 : 데이터 복제부
341 : 복호 예측 오차 판정부 342 : 출력 데이터 전환부
351 : 데이터 입력부

Claims (15)

  1. 데이터를 순차적으로 입력하는 데이터 압축 장치로서,
    데이터의 입력 전에 데이터의 값을 예측하고, 데이터를 입력할 때마다, 입력한 입력 데이터의 값과 해당 입력 데이터에 대하여 예측한 예측치의 차이를 예측 오차로서 산출하는 예측 오차 산출부와,
    상기 예측 오차 산출부에 의해 예측 오차가 산출될 때마다, 산출된 예측 오차의 값을 부호화하여 예측 오차 부호를 생성하는 예측 오차 부호화부와,
    상기 예측 오차 산출부에 의해 산출된 예측 오차의 런 렝스(run length)를 계수하는 런 렝스 계수부와,
    예측 오차의 값이 변화했을 때에, 상기 런 렝스 계수부에 의해 계수된 런 렝스를 부호화하여 런 렝스 부호를 생성하는 런 렝스 부호화부와,
    상기 런 렝스 부호화부에 의해 런 렝스 부호가 생성될 때마다, 생성된 런 렝스 부호를 해당 런 렝스 부호에 대응하는 예측 오차의 예측 오차 부호에 결합하여 결합 부호를 생성하는 부호 결합부와,
    상기 예측 오차 산출부에 의해 산출된 예측 오차의 값에 따라, 해당 예측 오차에 대한 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하는 부호 선택부와,
    상기 예측 오차 산출부의 데이터 입력에 앞서, 상기 예측 오차 산출부가 입력하게 될 복수의 입력 예정 데이터에 대하여 특정한 값을 선정하고, 선정한 값의 예측 오차에 대한 출력 부호로서 결합 부호를 선택하도록 상기 부호 선택부에 지시하는 선정 지시부
    를 갖고,
    상기 부호 선택부는, 상기 예측 오차 산출부에 의해 산출된 예측 오차의 값이 상기 선정 지시부로부터 지시된 값인 경우에 출력 부호로서 해당 예측 오차에 대한 결합 부호를 선택하고, 상기 예측 오차 산출부에 의해 산출된 예측 오차의 값이 다른 값인 경우에 출력 부호로서 해당 예측 오차에 대한 예측 오차 부호를 선택하는
    것을 특징으로 하는 데이터 압축 장치.
  2. 제 1 항에 있어서,
    상기 부호 선택부는, 상기 예측 오차 산출부에 의해 산출된 예측 오차의 값이 상기 선정 지시부로부터 지시된 값인 경우에, 상기 런 렝스 계수부에 해당 예측 오차의 런 렝스의 계수의 개시를 지시하고,
    상기 런 렝스 계수부는, 상기 부호 선택부에 의해 지시가 있었던 예측 오차의 런 렝스의 계수를 개시하는
    것을 특징으로 하는 데이터 압축 장치.

  3. 제 1 항에 있어서,
    상기 데이터 압축 장치는,
    상기 예측 오차 산출부의 데이터 입력에 앞서, 입력 예정 데이터마다 상기 예측 오차 산출부의 예측 방식과 같은 방식에 의해 데이터값을 예측하고, 입력 예정 데이터마다 예측 오차를 산출하는 선행 예측 오차 산출부와,
    상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 런 렝스를 계수하는 선행 런 렝스 계수부와,
    결합 부호의 부호 길이를 산출하는 결합 부호 길이 산출치로서 소정의 값이 설정되어 있고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 값이 상기 결합 부호 길이 산출치와 일치하는 경우에 해당 예측 오차의 값과 상기 선행 런 렝스 계수부에 의한 런 렝스에 근거하여 결합 부호의 부호 길이를 산출하고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 값이 상기 결합 부호 길이 산출치와 일치하지 않는 경우에 해당 예측 오차의 값에 근거하여 예측 오차 부호의 부호 길이를 산출하여, 상기 복수의 입력 예정 데이터에서의 합계 부호 길이를 산출하는 부호 길이 산출부
    를 더 갖고,
    상기 선정 지시부는, 상기 부호 길이 산출부에 의해 산출된 합계 부호 길이가 소정의 조건을 만족시키는 경우에, 상기 결합 부호 길이 산출치를 상기 부호 선택부에 있어서 결합 부호를 선택시키는 값으로서 선정하는
    것을 특징으로 하는 데이터 압축 장치.
  4. 제 3 항에 있어서,
    상기 데이터 압축 장치는, 결합 부호 길이 산출치로서 각각에 다른 값이 설정되어 있고, 각각의 결합 부호 길이 산출치에 근거하여 예측 오차마다 결합 부호의 부호 길이 및 예측 오차 부호의 부호 길이 중 한쪽을 산출하여, 상기 복수의 입력 예정 데이터에서의 합계 부호 길이를 산출하는 복수의 부호 길이 산출부를 갖고,
    상기 선정 지시부는, 최소의 합계 부호 길이의 부호 길이 산출부의 결합 부호 길이 산출치를 상기 부호 선택부에 있어서 결합 부호를 선택시키는 값으로서 선정하는
    것을 특징으로 하는 데이터 압축 장치.
  5. 제 4 항에 있어서,
    상기 데이터 압축 장치는,
    결합 부호 길이 산출치로서 값 0이 설정되어 있고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 값이 0인 경우에 결합 부호의 부호 길이를 산출하고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 값이 0이 아닌 경우에 예측 오차 부호의 부호 길이를 산출하는 부호 길이 산출부와,
    결합 부호 길이 산출치로서 절대치 1 이하가 설정되어 있고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 절대치가 1 이하인 경우에 결합 부호의 부호 길이를 산출하고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차의 절대치가 1 이하가 아닌 경우에 예측 오차 부호의 부호 길이를 산출하는 부호 길이 산출부
    중 적어도 한쪽을 더 갖는 것을 특징으로 하는 데이터 압축 장치.
  6. 제 3 항에 있어서,
    상기 데이터 압축 장치는, 결합 부호 길이 산출치가 설정되지 않고, 상기 선행 예측 오차 산출부에 의해 산출된 예측 오차에 대하여 예측 오차 부호의 부호 길이만을 산출하여, 상기 복수의 입력 예정 데이터에서의 합계 부호 길이를 산출하는 특례 부호 길이 산출부를 갖고,
    상기 선정 지시부는, 상기 부호 길이 산출부에 의해 산출된 합계 부호 길이가 상기 특례 부호 길이 산출부에 의해 산출된 합계 부호 길이보다 작은 경우에, 상기 부호 길이 산출부의 결합 부호 길이 산출치를 상기 부호 선택부에 있어서 결합 부호를 선택시키는 값으로서 선정하고, 상기 부호 길이 산출부에 의해 산출된 합계 부호 길이가 상기 특례 부호 길이 산출부에 의해 산출된 합계 부호 길이 이상인 경우에, 상기 부호 선택부에 대하여 예측 오차의 값에 관계없이 출력 부호로서 예측 오차 부호만을 선택하도록 지시하는
    것을 특징으로 하는 데이터 압축 장치.
  7. 제 1 항에 있어서,
    상기 예측 오차 부호화부는, 예측 오차의 값을 가변 길이 부호에 의해 부호화하여 예측 오차 부호를 생성하고,
    상기 런 렝스 부호화부는, 런 렝스를 가변 길이 부호에 의해 부호화하여 런 렝스 부호를 생성하는
    것을 특징으로 하는 데이터 압축 장치.
  8. 제 7 항에 있어서,
    상기 예측 오차 부호화부는, 상기 예측 오차 산출부에 의해 예측 오차가 산출될 때마다, 산출된 예측 오차의 값이 소정의 고정 비트수로 나타내어지는 정수치 중 최소치에 해당하는지 여부를 판단하고, 상기 예측 오차의 값이 상기 최소치에 해당하는 경우에 상기 예측 오차의 값을 상기 고정 비트수에 의해 부호화하여 예측 오차 부호를 생성하고, 상기 예측 오차의 값이 상기 최소치에 해당하지 않는 경우에 상기 예측 오차의 값을 정의 정수에 매핑하고, 매핑한 정의 정수를 가변 길이 부호에 의해 부호화하여 예측 오차 부호를 생성하는 것을 특징으로 하는 데이터 압축 장치.
  9. 제 1 항에 있어서,
    상기 예측 오차 부호화부는, 알파 부호, 감마 부호, 델타 부호, 오메가 부호 및 골롬 부호(Golomb code) 중 하나에 의해 예측 오차 부호를 생성하고,
    상기 런 렝스 부호화부는, 알파 부호, 감마 부호, 델타 부호, 오메가 부호 및 골롬 부호 중 하나에 의해 런 렝스 부호를 생성하는
    것을 특징으로 하는 데이터 압축 장치.

  10. 제 1 항에 있어서,
    상기 예측 오차 부호화부는, 다음에 입력하는 데이터의 바로 앞에 입력한 데이터의 값을 다음에 입력하는 데이터의 예측치로 하는 것을 특징으로 하는 데이터 압축 장치.
  11. 제 1 항에 있어서,
    상기 예측 오차 부호화부는, 다음에 입력하는 데이터에 선행하여 입력한 2개 이상의 데이터를 이용한 선형 연산을 행하여, 다음에 입력하는 데이터의 예측치를 산출하는 것을 특징으로 하는 데이터 압축 장치.
  12. 데이터를 순차적으로 입력하는 컴퓨터가 행하는 데이터 압축 방법으로서,
    상기 컴퓨터가, 데이터의 입력 전에 데이터의 값을 예측하고, 데이터를 입력할 때마다, 입력한 입력 데이터의 값과 해당 입력 데이터에 대하여 예측한 예측치의 차이를 예측 오차로서 산출하고,
    예측 오차를 산출할 때마다, 상기 컴퓨터가, 산출한 예측 오차의 값을 부호화하여 예측 오차 부호를 생성하고,
    상기 컴퓨터가, 산출한 예측 오차의 런 렝스를 계수하고,
    예측 오차의 값이 변화했을 때에, 상기 컴퓨터가, 계수한 런 렝스를 부호화하여 런 렝스 부호를 생성하고,
    런 렝스 부호를 생성할 때마다, 상기 컴퓨터가, 생성한 런 렝스 부호를 해당 런 렝스 부호에 대응하는 예측 오차의 예측 오차 부호에 결합하여 결합 부호를 생성하고,
    상기 컴퓨터가, 산출한 예측 오차의 값에 따라, 해당 예측 오차에 대한 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하고,
    상기 컴퓨터는, 데이터 입력에 앞서, 입력하게 될 복수의 입력 예정 데이터에 대하여 특정한 값을 선정하고, 선정한 값의 예측 오차에 대한 출력 부호로서 결합 부호를 선택하도록 결정하고, 입력 데이터에 대하여 산출한 예측 오차의 값이, 데이터 입력에 앞서 선정한 값인 경우에, 출력 부호로서 해당 예측 오차에 대한 결합 부호를 선택하고, 입력 데이터에 대하여 산출한 예측 오차의 값이, 다른 값인 경우에, 출력 부호로서 해당 예측 오차에 대한 예측 오차 부호를 선택하는
    것을 특징으로 하는 데이터 압축 방법.
  13. 데이터를 순차적으로 입력하는 컴퓨터에,
    데이터의 입력 전에 데이터의 값을 예측하고, 데이터를 입력할 때마다, 입력한 입력 데이터의 값과 해당 입력 데이터에 대하여 예측한 예측치의 차이를 예측 오차로서 산출하는 예측 오차 산출 처리와,
    상기 예측 오차 산출 처리에 의해 예측 오차가 산출될 때마다, 산출된 예측 오차의 값을 부호화하여 예측 오차 부호를 생성하는 예측 오차 부호화 처리와,
    상기 예측 오차 산출 처리에 의해 산출된 예측 오차의 런 렝스를 계수하는 런 렝스 계수 처리와,
    예측 오차의 값이 변화했을 때에, 상기 런 렝스 계수 처리에 의해 계수된 런 렝스를 부호화하여 런 렝스 부호를 생성하는 런 렝스 부호화 처리와,
    상기 런 렝스 부호화 처리에 의해 런 렝스 부호가 생성될 때마다, 생성된 런 렝스 부호를 해당 런 렝스 부호에 대응하는 예측 오차의 예측 오차 부호에 결합하여 결합 부호를 생성하는 부호 결합 처리와,
    상기 예측 오차 산출 처리에 의해 산출된 예측 오차의 값에 따라, 해당 예측 오차에 대한 예측 오차 부호 및 결합 부호 중 한쪽을 출력 부호로서 선택하는 부호 선택 처리와,
    상기 예측 오차 산출 처리의 데이터 입력에 앞서, 상기 예측 오차 산출 처리가 입력하게 될 복수의 입력 예정 데이터에 대하여 특정한 값을 선정하고, 선정한 값의 예측 오차에 대한 출력 부호로서 결합 부호를 선택하도록 상기 부호 선택 처리에 지시하는 선정 지시 처리
    를 실행시키고,
    상기 부호 선택 처리에 있어서, 상기 컴퓨터에, 상기 예측 오차 산출 처리에 의해 산출된 예측 오차의 값이 상기 선정 지시 처리로부터 지시된 값인 경우에 출력 부호로서 해당 예측 오차에 대한 결합 부호를 선택시키고, 상기 예측 오차 산출 처리에 의해 산출된 예측 오차의 값이 다른 값인 경우에 출력 부호로서 해당 예측 오차에 대한 예측 오차 부호를 선택시키는
    는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  14. 삭제
  15. 삭제
KR1020127017658A 2010-03-03 2010-03-03 데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체 KR101318574B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/053423 WO2011108089A1 (ja) 2010-03-03 2010-03-03 データ圧縮装置及びデータ圧縮方法及びプログラム

Publications (2)

Publication Number Publication Date
KR20120101530A KR20120101530A (ko) 2012-09-13
KR101318574B1 true KR101318574B1 (ko) 2013-10-16

Family

ID=44541774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127017658A KR101318574B1 (ko) 2010-03-03 2010-03-03 데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체

Country Status (5)

Country Link
US (1) US8638243B2 (ko)
JP (1) JP5095033B2 (ko)
KR (1) KR101318574B1 (ko)
CN (1) CN102783037B (ko)
WO (1) WO2011108089A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484476B (zh) * 2014-12-31 2019-04-12 中国石油天然气股份有限公司 一种抽油机示功图数据压缩存储方法及装置
US10827039B1 (en) 2015-10-19 2020-11-03 Quest Software Inc. Systems and methods for dynamic compression of time-series data
CN113037300B (zh) * 2021-03-04 2023-05-23 中国能源建设集团广东省电力设计研究院有限公司 电力传感器在线监测数据压缩方法、解压方法及监测系统
US20230334022A1 (en) * 2022-04-14 2023-10-19 The Hospital For Sick Children System and method for processing and storage of a time-series data stream

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169165A (ja) * 1997-08-21 1999-03-09 Victor Co Of Japan Ltd 文字画像符号化方法及び装置
JP2002112040A (ja) 2000-10-03 2002-04-12 Ricoh Co Ltd 画像データ圧縮処理方式

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54116822A (en) * 1978-03-02 1979-09-11 Nec Corp Picture coder
US4633325A (en) * 1983-09-01 1986-12-30 Nec Corporation Adaptive predictive encoding and/or decoding apparatus
JP2983228B2 (ja) 1989-07-25 1999-11-29 ダイセル化学工業株式会社 時系列観測データの圧縮装置
JP3128016B2 (ja) 1992-04-14 2001-01-29 富士ゼロックス株式会社 画像圧縮装置
JP2842045B2 (ja) 1992-05-14 1998-12-24 富士ゼロックス株式会社 データ圧縮装置
JP3124887B2 (ja) 1994-04-28 2001-01-15 京セラ株式会社 データ圧縮・復号方式
JP3495800B2 (ja) 1994-12-28 2004-02-09 キヤノン株式会社 符号化装置及び方法
US5883976A (en) 1994-12-28 1999-03-16 Canon Kabushiki Kaisha Selectively utilizing multiple encoding methods
JPH10105372A (ja) 1996-10-02 1998-04-24 Oki Data:Kk データ列の圧縮装置及び圧縮方法
US6621934B1 (en) * 1996-12-17 2003-09-16 Thomson Licensing S.A. Memory efficient compression apparatus in an image processing system
JPH1169615A (ja) * 1997-08-27 1999-03-09 Nissin Electric Co Ltd 中性点接地装置
US6556624B1 (en) * 1999-07-27 2003-04-29 At&T Corp. Method and apparatus for accomplishing multiple description coding for video
US6795583B1 (en) * 1999-11-24 2004-09-21 General Electric Company Image data compression employing embedded compression and decompression codes
JP3857534B2 (ja) * 2001-03-21 2006-12-13 株式会社リコー 画像圧縮処理装置
US6832005B2 (en) * 2001-03-23 2004-12-14 Microsoft Corporation Adaptive encoding and decoding of bi-level images
CN100566420C (zh) * 2002-07-15 2009-12-02 株式会社日立制作所 动态图像的编码方法
JP4319895B2 (ja) * 2003-11-17 2009-08-26 大日本印刷株式会社 時系列信号の符号化装置
US7650039B2 (en) * 2005-03-03 2010-01-19 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium
JP4613771B2 (ja) * 2005-09-21 2011-01-19 富士ゼロックス株式会社 符号化装置、符号化方法及びそのプログラム
JP2008109194A (ja) 2006-10-23 2008-05-08 Canon Inc 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
WO2008128380A1 (en) * 2007-04-20 2008-10-30 Thomson Licensing Method and apparatus for selecting a scan path for the elements of a block in spatial domain picture encoding and decoding
DE102007020292A1 (de) * 2007-04-30 2008-11-13 Siemens Ag Verfahren zur Komprimierung von Daten unter Verwendung einer Lauflängen-Kodierung insbesondere für medizinische Bilddaten
US8345968B2 (en) * 2007-06-28 2013-01-01 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
JP5157490B2 (ja) 2008-01-31 2013-03-06 日本電気株式会社 目標符号量算出装置、目標符号量算出方法および目標符号量算出プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169165A (ja) * 1997-08-21 1999-03-09 Victor Co Of Japan Ltd 文字画像符号化方法及び装置
JP2002112040A (ja) 2000-10-03 2002-04-12 Ricoh Co Ltd 画像データ圧縮処理方式

Also Published As

Publication number Publication date
US8638243B2 (en) 2014-01-28
CN102783037A (zh) 2012-11-14
US20120280838A1 (en) 2012-11-08
CN102783037B (zh) 2015-05-13
KR20120101530A (ko) 2012-09-13
JPWO2011108089A1 (ja) 2013-06-20
JP5095033B2 (ja) 2012-12-12
WO2011108089A1 (ja) 2011-09-09

Similar Documents

Publication Publication Date Title
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
US7408481B2 (en) Information encoding method, decoding method, common multiplier estimating method, and apparatus, program, and recording medium using these methods
EP2053749B1 (en) Encoding method and apparatus, and program
KR20130112942A (ko) 필터 계수들을 생성하고 필터들을 구성하는 방법들 및 시스템들
KR101318574B1 (ko) 데이터 압축 장치 및 데이터 압축 방법 및 컴퓨터 판독 가능한 기록 매체
CN110291793B (zh) 上下文自适应二进制算术编解码中范围推导的方法和装置
JP2012113657A (ja) データ圧縮装置及びデータ復元装置及びデータ処理システム及びコンピュータプログラム及びデータ圧縮方法及びデータ復元方法
JP5619326B2 (ja) 符号化装置、復号装置、符号化方法、符号化プログラム、復号方法および復号プログラム
JP5570409B2 (ja) データ圧縮装置及びデータ圧縮方法及びデータ圧縮プログラム
JP6227186B2 (ja) データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム
CN112956131B (zh) 编码装置、解码装置、编码方法、解码方法、计算机可读取的记录介质
CN106537914A (zh) 通过限制的进位运算来执行算术编译的方法和设备
Sano et al. Segment-parallel predictor for FPGA-based hardware compressor and decompressor of floating-point data streams to enhance memory I/O bandwidth
CN110798224A (zh) 一种压缩编码、检错及解码方法
KR20040075944A (ko) 디지털 정보신호의 데이터 압축 및 압축해제
CN102239640B (zh) 编码方法、解码方法、使用这些方法的装置
KR20230010854A (ko) 뉴럴 네트워크 파라미터들의 표현에 대한 향상된 개념
JP3018990B2 (ja) 算術符号化装置
Imai et al. A Floating Point Data Compression Using Inter-Extrapolative Predictor
JPH06112836A (ja) 量子化装置
US20220188077A1 (en) Arithmetic processing device, arithmetic processing method, and storage medium
CN108282662B (zh) 一种连续色调静态图像压缩的优化方法及装置
JP4655013B2 (ja) 符号化装置とその方法、復号装置とその方法、および符号化ならびに復号プログラム
JP5409196B2 (ja) 符号化方法および復号方法
JP4049137B2 (ja) 半静的エントロピー符号化システム、半静的エントロピー復号化システム、半静的エントロピー符号化方法および半静的エントロピー復号化方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170920

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 6