KR101772312B1 - 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치 - Google Patents

기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치 Download PDF

Info

Publication number
KR101772312B1
KR101772312B1 KR1020160010608A KR20160010608A KR101772312B1 KR 101772312 B1 KR101772312 B1 KR 101772312B1 KR 1020160010608 A KR1020160010608 A KR 1020160010608A KR 20160010608 A KR20160010608 A KR 20160010608A KR 101772312 B1 KR101772312 B1 KR 101772312B1
Authority
KR
South Korea
Prior art keywords
dictionary
character string
compression
string
compressed
Prior art date
Application number
KR1020160010608A
Other languages
English (en)
Other versions
KR20160094315A (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 KR20160094315A publication Critical patent/KR20160094315A/ko
Application granted granted Critical
Publication of KR101772312B1 publication Critical patent/KR101772312B1/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
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • G06F17/30595
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 압축 데이터의 데이터 길이가 길어지는 것을 해소하는 것이다. 본 실시예에 관한 정보 처리 장치(100)는, 정적 사전 C2를 사용해서 압축 대상의 문자열을 압축할 때, 정적 사전에 압축 대상의 문자열이 등록되어 있는지 여부를 비트 필터 C1을 사용해서 판정한다. 그리고, 정보 처리 장치(100)는 정적 사전에 등록되어 있지 않은 문자열을 검출한 경우에는, 검출한 문자열에 동적 사전에 등록하고, 동적 사전의 등록 번호를 문자열의 압축 부호로 한다.

Description

기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치{NON-TRANSITORY COMPUTER-READABLE RECORDING MEDIUM, COMPRESSION METHOD, DECOMPRESSION METHOD, COMPRESSION DEVICE AND DECOMPRESSION DEVICE}
본 발명은, 기억 매체 등에 관한 것이다.
최근, 정적 사전을 사용해서 압축 대상 파일을 부호화하는 종래 기술이 존재한다. 이 정적 사전은, 일반적인 영어 사전, 국어 사전이나 교과서 등을 기초로 하여, 문서 중에 출현하는 단어나 문자의 출현 빈도를 특정하고, 출현 빈도가 보다 높은 단어에 대해, 보다 짧은 압축 부호를 할당한 사전이다. 종래 기술에서는, 정적 사전을 기초로, 압축 대상 파일의 텍스트를 정적 사전의 단어나 문자에 할당된 압축 부호로 변환함으로써, 압축 처리를 행하고, 압축 파일을 작성한다.
일본 특허 공개 평8-288861호 공보 일본 특허 공표 제2004-514366호 공보 일본 특허 공개 평6-222903호 공보
그러나, 상술한 종래 기술에서는, 압축 파일의 데이터에 있어서, 정적 사전에 등록되어 있지 않은 단어에 관해서, 할당되는 압축 부호 길이가 길어져, 압축률이 저하된다고 하는 문제가 있다.
예를 들어, 종래 기술에서 사용하는 정적 사전에는, 인명, 지명, 작품명 등의 단어는 등록되어 있지 않으므로, 단어를 구성하는 문자로 분해되고, 각 문자에 할당된 압축 부호로 변환되어, 압축 처리가 행해진다. 이와 같은 경우에는, 압축 대상 파일의 압축률이 저하되어 버린다.
1개의 측면에서는, 압축 파일의 단어 등의 문자열에 할당되는 압축 부호 길이가 길어지는 것을 해소하는 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치를 제공하는 것을 목적으로 한다.
제1 안에서는, 컴퓨터에, 하기의 처리를 실행시킨다. 컴퓨터는, 입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 압축 대상의 문자열이 제1 사전에 등록되어 있는지 여부를 판정한다. 컴퓨터는 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 제1 사전에 등록된 압축 대상의 문자열에 대응하는 압축 부호를 출력한다. 컴퓨터는 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 입력 데이터의 일부이며, 압축 대상의 문자열의 처리보다 이전에 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 압축 대상의 문자열을 대조한다. 컴퓨터는 일치한 문자열을 제1 사전과 다른 제2 사전에 등록하고, 압축 대상의 문자열의 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력한다.
본 발명의 일 실시 형태에 의하면, 압축 파일의 단어 등의 문자열에 대응한 압축 부호 길이가 길어지는 것을 해소할 수 있다고 하는 효과를 발휘한다.
도 1은 본 실시예에 관한 정보 처리 장치의 압축 처리의 흐름의 일례를 나타내는 도면 (1)이다.
도 2는 동적 사전부의 일례를 나타내는 도면이다.
도 3은 본 실시예에 관한 정보 처리 장치의 압축 처리의 흐름의 일례를 나타내는 도면 (2)이다.
도 4는 압축 파일 F2의 블록 구성예를 도시하는 도면이다.
도 5는 본 실시예에 관한 정보 처리 장치의 신장 처리의 흐름의 일례를 나타내는 도면이다.
도 6은 본 실시예에 관한 정보 처리 장치의 구성을 도시하는 기능 블록도이다.
도 7은 압축용의 느티나무의 데이터 구조의 일례를 나타내는 도면이다.
도 8은 신장용의 느티나무의 데이터 구조의 일례를 나타내는 도면이다.
도 9는 본 실시예에 관한 압축부의 구성의 일례를 도시하는 기능 블록도이다.
도 10은 본 실시예에 관한 신장부의 구성의 일례를 도시하는 기능 블록도이다.
도 11은 본 실시예에 관한 압축부의 처리 수순을 나타내는 흐름도이다.
도 12는 본 실시예에 관한 신장부의 처리 수순을 나타내는 흐름도이다.
도 13은 컴퓨터의 하드웨어 구성예를 도시하는 도면이다.
도 14는 컴퓨터에서 동작하는 프로그램의 구성예를 도시하는 도면이다.
도 15는 실시 형태의 시스템에 있어서의 장치의 구성예를 도시하는 도면이다.
이하에, 본원의 개시하는 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치의 실시예를 도면에 기초하여 상세하게 설명한다. 또한, 이 실시예에 의해 본 발명이 한정되는 것은 아니다.
[실시예]
도 1은, 본 실시예에 관한 정보 처리 장치의 압축 처리의 흐름의 일례를 나타내는 도면이다. 정보 처리 장치는 압축 처리의 워크 에어리어로서, 메모리에 기억 영역 A1, 기억 영역 A2, 기억 영역 A3, 기억 영역 A4를 형성한다. 이하의 설명에서는 적절히, 기억 영역 A1, 기억 영역 A2, 기억 영역 A3을 각각, 부호화부, 참조부, 동적 사전부라고 칭한다.
정보 처리 장치는 압축 대상의 파일 F1을 판독하고, 파일 F1의 텍스트에 대해, 선두 문자로부터 종단부 기호를 단락으로 하는 문자열을 단어로서 추출한다. 예를 들어, 파일 F1에는 「…Kataoka△talks△…」이라고 하는 데이터가 포함된다. 「Kataoka△」나 「talks△」 등의 단어가 존재한다. 종단부 기호는, 공백(스페이스)이나 콤마(,) 마침표(.)의 기호이다. 본 실시예에서는 일례로서, 종단부 기호를 「△(삼각)」으로 나타낸다.
정보 처리 장치는 비트 필터 C1과 문자열을 비교하여, 문자열이 비트 필터 C1에 히트하는지 여부를 판정한다. 비트 필터는, 정적 사전을 사용해서 압축하는 단어의 문자열을 특정하는 필터이다. 정보 처리 장치는 문자열이 비트 필터 C1에 히트한 경우에는, 정적 사전에 기초하여 단어의 문자열에 대응하는 압축 부호로 변환하고, 압축 데이터를 출력한다. 이에 대해, 정보 처리 장치는 문자열이 비트 필터 C1의 정적 사전에 히트하지 않는 경우에는, 동적 사전에 등록된 단어의 문자열에 대응하는 압축 부호로 변환하여, 압축 데이터를 출력한다.
여기서, 정적 사전이란, 일반적인 영어 사전, 국어 사전이나 교과서 등을 기초로 해서 문서 중에 출현하는 단어나 문자의 출현 빈도를 특정하고, 출현 빈도가 보다 높은 단어나 문자에 대해, 더 짧은 압축 부호를 할당한 사전이다.
동적 사전은, 비트 필터 C1에 히트하지 않는 문자열은 슬라이드창의 부호화부에 저장되고, 축적된 참조부의 문자열과 대조된다. 일치한 문자열은 동적 사전에 등록되고, 그 등록 번호가 압축 부호에 할당된다. 동적 사전에 관한 상세한 설명은 후술한다.
정보 처리 장치가 압축 대상의 파일 F1의 단어의 문자열 「talks△」의 압축 데이터를 생성하는 경우의 처리에 대해서 설명한다. 또한, 단어의 문자열 「talks△」은, 비트 필터 C1에 히트하는 것으로 한다.
정보 처리 장치는 단어의 문자열 「talks△」과 비트 필터 C1을 비교하여, 단어의 문자열 「talks△」이 비트 필터 C1에 히트하는지 여부를 판정한다. 정보 처리 장치는 단어의 문자열 「talks△」이 비트 필터 C1에 히트하므로, 단어의 문자열 「talks△」을 정적 사전에 등록되어 있는 압축 부호로 부호화한다. 정보 처리 장치는, 식별자 「0」과 단어의 문자열 「talks△」의 압축 부호를 포함하는 압축 데이터 d1을 생성한다. 식별자 「0」은 문자열이 정적 사전에 기초해서 부호화된 것을 나타내는 정보이다. 정보 처리 장치는 압축 데이터 d1을 기억 영역 A4에 기입한다.
다음에, 정보 처리 장치가 압축 대상의 파일 F1의 단어의 문자열 「Kataoka△」의 압축 데이터를 생성하는 경우의 처리에 대해서 설명한다. 또한, 단어의 문자열 「Kataoka△」은, 비트 필터 C1에 히트하지 않는 것으로 한다.
정보 처리 장치는 단어의 문자열 「Kataoka△」과 비트 필터 C1을 비교하여, 단어의 문자열 「Kataoka△」이 비트 필터 C1에 히트하는지 여부를 판정한다. 정보 처리 장치는 단어의 문자열 「Kataoka△」이 비트 필터 C1에 히트하지 않으므로, 하기의 처리를 실행한다.
정보 처리 장치는 단어의 문자열 「Kataoka△」을 기억 영역 A1에 저장하고, 기억 영역 A2에 저장된 단어의 문자열과, 기억 영역 A1의 단어의 문자열을 비교하여, 일치 단어를 검색한다. 「일치 단어」는, 기억 영역 A1에 저장된 단어의 문자열과 일치하는 기억 영역 A2에 저장된 단어이다. 예를 들어, 기억 영역 A2에 문자열 「…Kataoka△…」이 이미 저장되어 있는 경우에는, 일치 단어는 「Kataoka△」이 된다. 정보 처리 장치는, 기억 영역 A2에 대해 「K」의 탐색을 행하고, 탐색에 의해 얻어진 기억 영역 A2 내의 「K」의 위치로부터 「a」, 「t」, 「a」, 「o」, 「k」, 「a」, 「△」과 연속되어 있는지 여부를 순차 대조한다.
정보 처리 장치는, 일치 단어가 소정의 길이 Lmin 이상인 경우에, 일치 단어 「Kataoka△」을 동적 사전부의 기억 영역 A3에 등록한다. 정보 처리 장치는, 동적 사전부의 등록 내용에 기초하여 압축 부호를 생성한다. 즉, 정보 처리 장치는, 동적 사전부에 등록한 일치 단어의 등록 번호를, 문자열 「Kataoka△」의 압축 부호로서 특정한다. 정보 처리 장치는, 식별자 「1」과 단어의 문자열 「Kataoka△」의 압축 부호를 포함하는 압축 데이터 d2를 생성한다. 식별자 「1」은, 문자열이 동적 사전에 기초해서 부호화된 것을 나타내는 정보이다. 정보 처리 장치는 압축 데이터 d2를 기억 영역 A4에 기입한다. 또한, 정보 처리 장치는 기억 영역 A1에 저장된 문자열을, 기억 영역 A2에 추가 기록함으로써, 기억 영역 A2를 갱신한다.
기억 영역 A2는, 각각의 데이터 사이즈가 정해진 데이터 영역이다. 예를 들어, 기억 영역 A2는, 수킬로바이트 내지 수십킬로바이트(예를 들어, 64K 바이트) 정도의 기억 영역이다. 정보 처리 장치는 기억 영역 A2에 정해진 데이터 사이즈 이상의 데이터를 저장하는 경우에는, 기억 영역 A2의 선두에 저장된 오래된 데이터 상으로부터 새로운 데이터를 저장한다. 기억 영역 A2 내에 저장되는 데이터는, 데이터의 저장에 따라서 갱신되는 기입 위치로부터의 상대적인 어드레스에 의해, 선두 위치가 나타난다.
기억 영역 A3은 입력 파일의 크기에 따라서, 데이터 사이즈가 정해진 기억 영역이다. 예를 들어, 기억 영역 A3은 수킬로바이트 내지 수십킬로바이트 정도(예를 들어, 64K 바이트)의 기억 영역이다. 예를 들어, 정보 처리 장치는, 기억 영역 A3에 정해진 데이터 사이즈 이상의 데이터를 저장하는 경우에는, 새로운 데이터의 저장을 억지한다.
도 2는 동적 사전부의 일례를 나타내는 도면이다. 도 2에 도시되는 동적 사전부는, 기억 영역 A3과 참조 테이블 T1을 포함한다. 참조 테이블 T1은 등록 번호와, 저장 위치와, 데이터 길이를 대응지어서 유지한다. 도 2에 도시하는 예에서는, 등록 번호, 저장 위치, 데이터 길이를 2진수로 나타낸다. 등록 번호는 기억 영역 A3에 등록된 일치 단어가, 몇 번째에 등록된 데이터인지를 나타내는 정보이다. 또한, 본 실시예에서는, 1번째로 등록된 데이터의 등록 번호를 「00000000」으로 한다. 저장 위치는, 일치 단어의 선두 문자가 저장된 기억 영역 A3 내의 위치를 나타내는 정보이다. 데이터 길이는, 일치 단어의 길이를 나타내는 정보이다.
예를 들어, 일치 단어 「Kataoka△」이 기억 영역 A3에 2번째로 등록된 일치 단어인 경우에는, 정보 처리 장치는, 일치 단어 「Kataoka△」에 대응하는 등록 번호로서, 참조 테이블 T1의 등록 번호에 「00000001」을 등록한다. 또한, 정보 처리 장치는 일치 단어 「Kataoka△」의 선두 문자 「K」가 기억 영역 A3의 「5」에 저장되어 있으므로, 저장 위치에 「000000000101」을 등록한다. 정보 처리 장치는 일치 단어 「Kataoka△」의 데이터 길이가 「8」이므로, 데이터 길이에 「10000」을 등록한다.
도 2에 도시하는 바와 같이, 일치 단어 「Kataoka△」이 동적 사전부에 등록된 것으로 하면, 일치 단어 「Kataoka△」의 등록 번호는 「00000001」이 된다. 이 경우에는, 정보 처리 장치는 문자열 「Kataoka△」의 압축 부호를 「00000001」로 한다. 이로 인해, 정보 처리 장치는 문자열 「Kataoka△」의 압축 데이터 d2로서, 식별자 「1」, 등록 번호 「00000001」을 포함하는 압축 데이터 d2를 생성한다.
도 3은 본 실시예에 관한 정보 처리 장치의 압축 처리의 흐름의 일례를 나타내는 도면 (2)이다. 정보 처리 장치는 압축 대상의 파일 F1을 판독하고, 파일 F1의 선두 문자로부터 종단부 기호를 단락으로 하는 문자열을 압축 대상의 파일 F1로부터 추출한다. 예를 들어, 파일 F1에는 「…Kataoka△talks△…」이라고 하는 데이터가 포함된다.
정보 처리 장치가 압축 대상의 파일 F1의 단어의 문자열 「talks△」의 압축 데이터를 생성하는 경우의 처리는, 도 1에 도시한 처리와 마찬가지이므로, 설명을 생략한다.
정보 처리 장치가 압축 대상의 파일 F1의 단어의 문자열 「Kataoka△」의 압축 데이터를 생성하는 경우의 처리에 대해서 설명한다. 또한, 단어의 문자열 「Kataoka△」은, 비트 필터 C1에 히트하지 않는 것으로 한다.
정보 처리 장치는 단어의 문자열 「Kataoka△」과 비트 필터 C1을 비교하여, 단어의 문자열 「Kataoka△」이 비트 필터 C1에 히트하는지 여부를 판정한다. 정보 처리 장치는 단어의 문자열 「Kataoka△」이 비트 필터 C1에 히트하지 않으므로, 하기의 처리를 실행한다.
정보 처리 장치는 단어의 문자열 「Kataoka△」을 기억 영역 A1에 저장하고, 기억 영역 B1에 저장된 단어의 문자열과, 기억 영역 A1의 단어의 문자열을 비교하여, 일치 단어를 검색한다. 예를 들어, 기억 영역 A2에 「Kataoka△」이 저장되어 있지 않은 경우에는, 정보 처리 장치는 단어의 문자열 「Kataoka△」의 각 문자를, 정적 사전에 의해 부호화한다. 즉, 정보 처리 장치는, 「K」, 「a」, 「t」, 「a」, 「o」, 「k」, 「a」, 「△」을 각각 정적 사전에 의해 부호화함으로써, 압축 데이터 d3을 생성한다. 정보 처리 장치는 압축 데이터 d3을 기억 영역 A4에 기입한다.
압축 데이터 d3은 압축 데이터 d31, d32, d33, d34, d35, d36, d37, d38을 갖는다. 압축 데이터 d31은 식별자 「0」과 「K」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d32는 식별자 「0」과 「a」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d33은 식별자 「0」과 「t」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d34는 식별자 「0」과 「a」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d35는 식별자 「0」과 「o」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d36은 식별자 「0」과 「k」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d37은 식별자 「0」과 「a」의 정적 사전에 등록되어 있는 압축 부호를 갖는다. 압축 데이터 d38은 식별자 「0」과 「△」의 정적 사전에 등록되어 있는 압축 부호를 갖는다.
정보 처리 장치는 기억 영역 A4에 저장된 압축 데이터를, 압축 파일 F2에 저장한다.
도 4는 압축 파일 F2의 블록 구성예를 도시하는 도면이다. 도 4에 도시하는 바와 같이, 압축 파일 F2는 헤더부와, 압축 데이터와, 트레일러부를 갖는다. 헤더부는, 예를 들어, 압축 파일 F2의 생성에 사용된 압축 알고리즘을 식별하는 정보나, 압축에 사용된 파라미터 등의 정보를 갖는다. 압축 데이터는 정보 처리 장치가 생성한 각 압축 데이터에 대응한다. 트레일러부는 압축 처리가 완료된 후의 동적 사전부의 정보를 갖는다. 동적 사전부의 정보는, 도 2에 도시한 동적 사전부의 정보에 대응한다.
도 5는 본 실시예에 관한 정보 처리 장치의 신장 처리의 흐름의 일례를 나타내는 도면이다. 정보 처리 장치는 신장 처리의 워크 에어리어로서, 메모리에 기억 영역 B1, 기억 영역 B2 및 기억 영역 B3을 형성한다. 정보 처리 장치는 압축 파일 F2를 기억 영역 B1에 로드하고, 순차 압축 데이터를 판독한다. 정보 처리 장치는 판독한 압축 데이터에 기초하여, 신장 데이터의 생성을 행한다.
정보 처리 장치는 압축 데이터에 포함되는 식별자에 따른 생성 처리를 행한다. 정보 처리 장치는 생성한 신장 데이터를 기억 영역 B3에 저장하고, 기억 영역 B3에 저장된 신장 데이터에 기초하여 신장 파일 F3이 생성된다. 또한, 정보 처리 장치는 기억 영역 B2에, 도 4의 트레일러부에 저장된 동적 사전부의 정보를 로드한다. 이하의 설명에서는 적절하게, 기억 영역 B1을 부호화부라고 칭하고, 기억 영역 B2를 동적 사전부라고 칭한다. 도 1에 도시한 압축 데이터 d1, d2에 대한 신장 처리를 설명한다.
정보 처리 장치는 압축 데이터 d1을 판독하고, 압축 데이터 d1의 식별자를 판정한다. 정보 처리 장치는 압축 데이터 d1의 식별자가 「0」인 경우에는, 압축 데이터 d1이, 정적 사전에 의해 부호화되었다고 판정한다. 정보 처리 장치는 압축 데이터 d1과 신장용 느티나무를 비교하여, 신장용 느티나무에 나타나는 신장 데이터를 특정한다. 정보 처리 장치는 신장 데이터를, 기억 영역 B3에 기입한다.
정보 처리 장치는 압축 데이터 d2를 판독하고, 압축 데이터 d2의 식별자를 판정한다. 정보 처리 장치는 압축 데이터 d2의 식별자가 「1」인 경우에는, 압축 데이터 d2가, 동적 사전에 의해 부호화되었다고 판정한다. 정보 처리 장치는 압축 데이터 d2 내의 압축 부호에 기초하여, 동적 사전부를 참조하고, 신장 데이터를 생성한다.
예를 들어, 정보 처리 장치는 압축 데이터 d2에 포함되는 등록 번호와, 동적 사전부의 참조 테이블 T1을 비교하여, 기억 영역 B2 내의 저장 위치 및 데이터 길이를 특정한다. 정보 처리 장치는 저장 위치 및 데이터 길이에 대응하는 데이터를, 기억 영역 B2로부터 판독하고, 판독한 데이터를 신장 데이터로 한다. 예를 들어, 압축 데이터 d2 내의 등록 번호는, 동적 사전부 내의 「Kataoka△」을 나타내므로, 신장 데이터로서 「Kataoka」가 생성된다.
도 6은 본 실시예에 관한 정보 처리 장치의 구성을 도시하는 기능 블록도이다. 도 6에 도시하는 바와 같이, 이 정보 처리 장치(100)는 압축부(100a)와, 신장부(100b)와, 기억부(100c)를 갖는다.
압축부(100a)는 도 1 내지 도 3에 도시한 압축 처리를 실행하는 처리부이다. 신장부(100b)는 도 5에 도시한 신장 처리를 실행하는 처리부이다. 기억부(100c)는 압축 대상의 파일 F1, 압축 처리에 의해 얻어지는 압축 파일 F2, 파일 F2를 신장해서 얻어지는 파일 F3 등을 저장한다.
또한, 정보 처리 장치(100)는, 도 1, 도 5 등에 도시한 기억 영역 A1, A2, A3, A4, B1, B2, B3을, 기억부(100c)에 설정한다. 또한, 기억부(100c)는 압축용의 느티나무 및 신장용의 느티나무를 기억한다.
도 7은 압축용의 느티나무의 데이터 구조의 일례를 나타내는 도면이다. 도 7에 도시하는 바와 같이, 압축용의 느티나무(50)는 2그램, 비트맵, 포인터, 기초 단어, 문자열 길이, 출현 빈도, 부호 길이, 압축 부호를 갖는다. 이 중, 2그램, 비트맵, 포인터, 기초 단어, 문자열 길이는 비트 필터 C1에 대응한다. 또한, 기초 단어, 문자열 길이, 출현 빈도, 부호 길이, 압축 부호는 정적 사전 C2에 대응한다.
2그램은 2문자의 문자열을 나타내는 정보이다. 비트맵은 2그램의 문자열에 대응하는 비트맵을 나타낸다. 예를 들어, 「aa」에 대응하는 비트맵은 「0_0_0_0_0」이 된다. 포인터는 비트맵에 대응하는 연결 단어의 위치를 나타내는 포인터이다.
기초 단어는 정적 사전 C2에 등록된 단어이다. 문자열 길이는, 기초 단어에 대응하는 문자열 길이이다. 출현 빈도는 기초 단어의 출현 빈도이다. 부호 길이는 압축 부호의 부호 길이이다. 압축 부호는 기초 단어에 할당된 압축 부호이다.
도 8은 신장용의 느티나무의 데이터 구조의 일례를 나타내는 도면이다. 도 8에 도시하는 바와 같이, 신장용의 느티나무(60)는, 복수의 가지(60-1 내지 60-n)와, 잎(61-1 내지 60-m)을 갖는다. 각 가지(60-1 내지 60-n)에는, 소정의 비트열이 할당된다. 정보 처리 장치(100)는 압축 데이터의 비트열과, 가지(60-1 내지 60-n)에 할당된 비트열을 비교하여, 압축 데이터의 비트열에 히트하는 가지에 접속되는 잎이 특정된다. 잎에는 압축 데이터에 대응하는 문자열의 정보가 저장된다.
예를 들어, 잎의 데이터 구조는, 부호 61로 나타내는 것이 된다. 예를 들어, 잎에는 잎 식별 정보와, 압축 부호 길이와, 문자 코드 또는 기초 단어에의 포인터가 저장된다. 잎 식별 정보는 잎을 일의(一意)적으로 식별하는 정보이다. 압축 부호 길이는, 각 가지(60-1 내지 60-n)와 비교한 압축 데이터의 비트열 중, 유효한 길이를 나타내는 정보이다. 문자 코드 또는 기초 단어에의 포인터는 압축 부호를 신장한 경우의 신장 데이터를 일의로 나타내는 정보이다.
예를 들어, 비트열 「010111110111101」이 가지(60-4)에 히트하고, 가지(60-4)에 접속되는 잎(61-4)의 압축 부호 길이가 「11」이며, 기초 단어에의 포인터로 나타나는 기초 단어가 「talks△」인 것으로 한다. 이 경우에는, 비트열의 선두로부터 11비트째까지의 비트열 「01011111011」이, 기초 단어 「talks△」에 대응하는 압축 부호가 된다.
도 9는 본 실시예에 관한 압축부의 구성의 일례를 도시하는 기능 블록도이다. 도 9에 도시하는 바와 같이, 이 압축부(100a)는 파일 리드부(101), 판정부(102), 제1 부호화부(103), 제2 부호화부(104), 갱신부(105), 파일 라이트부(106)를 갖는다.
파일 리드부(105)는 파일 F1 내의 콘텐츠 부분의 데이터를 판독하는 처리부이다. 파일 리드부(105)는 판독한 데이터에 포함되는 문자열을 선두로부터 주사하고, 종단부 기호를 단락으로 하는 문자열을 순차 추출하고, 추출한 문자열을 판정부(102)에 순차 출력한다.
예를 들어, 파일 리드부(105)는 파일 F1의 콘텐츠 부분의 단어의 문자열이 「Kataoka△talks△about△…」인 경우에는, 단어의 문자열 「Kataoka△」, 「talks△」, 「about△」의 순서대로, 각 단어의 문자열을 판정부(102)에 출력한다.
판정부(102)는 문자열과 비트 필터 C1을 비교하여, 문자열이 비트 필터 C1에 히트하는지 여부를 판정하는 처리부이다. 판정부(102)는 문자열이 비트 필터 C1에 히트한 경우에는, 문자열을 제1 부호화부(103)에 출력한다. 판정부(102)는 문자열이 비트 필터 C1에 히트하지 않은 경우에는, 문자열을 제2 부호화부(104)에 출력한다.
판정부(102)의 처리를, 도 7을 사용해서 설명한다. 또한, 판정 대상의 단어의 문자열을 「talks△」으로 한다. 판정부(102)는 문자열을 선두로부터 2그램씩 비트 필터 C1의 2그램과 비교하고, 비트맵을 특정한다. 예를 들어, 판정부(102)는 단어의 문자열이 「talks△」인 경우에는, 「ta」, 「al」, 「lk」, 「k△」에 대응하는 비트맵을 각각 조합한다. 판정부(102)는 비트맵의 각 자리수에 있어서, 모든 비트맵의 값이 0으로 되어 있는 경우에는, 조합한 비트맵의 해당하는 자리수를 「0」으로 한다. 이에 대해, 1이 하나라도 포함되는 경우에는 해당하는 자리수를 「1」로 설정함으로써, 비트맵을 조합한다.
예를 들어, 「ta」의 비트맵이 「0_0_0_0_0」, 「al」의 비트맵이 「0_1_0_0_0」, 「lk」의 비트맵이 「0_0_1_0_0」, 「k△」의 비트맵이 「0_1_1_0_0」으로 한다. 이 경우에는, 각 비트맵을 조합한 비트맵은 「0_1_1_0_0」이 된다.
판정부(102)는 조합한 비트맵과, 비트 필터 C1의 포인터를 비교하여, 비트맵에 대응하는 포인터가 나타내는 위치의 기초 단어를 특정한다. 판정부(102)는 특정한 기초 단어로부터 순서대로, 문자열에 대응하는 기초 단어를 검색한다. 판정부(102)는 문자열에 대응하는 기초 단어가 존재하는 경우에는, 문자열이 비트 필터 C1에 히트했다고 판정한다. 이에 대해, 판정부(102)는 문자열에 대응하는 기초 단어가 존재하지 않는 경우에는, 문자열이 비트 필터 C1에 히트하지 않는다고 판정한다.
제1 부호화부(102)는 판정부(102)로부터 취득한 문자열을 정적 사전 C2에 기초해서 부호화하는 처리부이다. 제1 부호화부(102)는 정적 사전 C2를 참조하고, 문자열에 대응하는 기초 단어를, 정적 사전 C2로부터 특정하고, 특정한 기초 단어에 대응하는 압축 부호를 특정한다. 그리고, 제1 부호화부(102)는 식별자 「0」과, 정적 사전 C2에 등록되어 있는 문자열의 압축 부호를 포함하는 압축 데이터를 생성하고, 압축 데이터를 파일 라이트부(106)에 출력한다.
제2 부호화부(103)는 판정부(102)로부터 취득한 단어의 문자열을 동적 사전에 기초해서 부호화하는 처리부이다. 제2 부호화부(103)는 단어의 문자열을 부호화부가 되는 기억 영역 A1에 저장한다. 제2 부호화부(103)는 기억 영역 A1과, 참조부가 되는 기억 영역 A2에 저장된 데이터를 비교하여, 일치 단어를 검색한다.
제2 부호화부(103)는 일치 단어가 소정의 길이 Lmin 이상인 경우에, 일치 단어를 동적 사전부의 기억 영역 A3에 등록한다. 제2 부호화부(103)는 동적 사전부의 등록 내용에 기초하여 압축 부호를 생성한다. 즉, 제2 부호화부(103)는 동적 사전부에 등록한 일치 단어의 등록 번호를, 단어의 문자열의 압축 부호로서 특정한다. 제2 부호화부(103)는 식별자 「1」과, 동적 사전의 등록 번호를 포함하는 압축 데이터를 생성하고, 압축 데이터를 파일 라이트부(106)에 출력한다.
예를 들어, 제2 부호화부(103)는 단어의 문자열 「Kataoka△」이 기억 영역 A3에 2번째로 등록된 일치 단어인 경우에는, 일치 단어 「Kataoka△」에 대응하는 등록 번호로서, 참조 테이블 T1의 등록 번호에 「00000001」을 등록한다. 또한, 제2 부호화부(103)는 일치 단어 「Kataoka△」의 선두 문자 「K」가 기억 영역 A3의 「5」에 저장되어 있으므로, 저장 위치에 「000000000101」을 등록한다. 제2 부호화부(103)는 일치 단어 「Kataoka△」의 데이터 길이가 「8」이므로, 데이터 길이에 「10000」을 등록한다.
제2 부호화부(103)는, 도 2에 도시하는 바와 같이, 일치 단어 「Kataoka△」이 동적 사전부에 등록된 것으로 하면, 일치 단어 「Kataoka△」의 등록 번호는 「00000001」이 된다. 이 경우에는, 제2 부호화부(103)는 단어의 문자열 「Kataoka△」의 압축 부호를 「00000001」로 한다. 이로 인해, 제2 부호화부(103)는 단어의 문자열 「Kataoka△」의 압축 데이터로서, 식별자 「1」, 등록 번호 「00000001」을 포함하는 압축 데이터를 생성하고, 파일 라이트부(106)에 출력한다.
이에 대해, 제2 부호화부(103)는 일치 단어가 소정의 길이 Lmin 미만인 경우는, 단어의 문자열의 각 문자를, 정적 사전 C2에 의해 부호화한다. 예를 들어, 제2 부호화부(103)는 단어의 문자열 「Kataoka△」에 대응하는 일치 단어가, 길이 Lmin 미만인 경우는, 도 3에서 설명한 바와 같이, 「K」, 「a」, 「t」, 「a」, 「o」, 「k」, 「a」, 「△」을 각각 정적 사전에 의해 부호화함으로써, 압축 데이터를 생성한다.
그런데, 제2 부호화부(103)는 부호화 대상의 단어의 문자열과 동일한 단어의 문자열이 기억 영역 A3에 이미 등록되어 있는 경우에는, 이미 등록되어 있는 단어의 문자열의 등록 번호를, 단어의 문자열의 압축 부호로서 특정한다. 예를 들어, 제2 부호화부(103)는 부호화 대상이 되는 단어의 문자열과, 기억 영역 A3의 각 단어의 문자열을 비교하고, 부호화 대상의 단어의 문자열과 동일한 문자열이 기억 영역 A3에 등록되어 있지 않은 경우에, 상기 일치 단어 검색을 행한다.
갱신부(105)는, 제2 부호화부(103)에 의해, 일치 단어의 검색이 완료된 후에, 기억 영역 A1에 저장된 문자열을, 기억 영역 A2에 저장함으로써, 기억 영역 A2를 갱신하는 처리부이다. 갱신부(105)는, 제2 부호화부(103)에 의한 일치 단어의 검색이 완료될 때마다, 기억 영역 A2를 갱신한다.
파일 라이트부(106)는, 제1 부호화부(103) 및 제2 부호화부(104)로부터 압축 데이터를 취득하고, 취득한 압축 데이터를 기억 영역 A4에 기입하는 처리부이다.
도 10은 본 실시예에 관한 신장부의 구성의 일례를 도시하는 기능 블록도이다. 도 10에 도시하는 바와 같이, 이 신장부(100b)는 파일 리드부(110), 식별자 판정부(111), 제1 신장부, 제2 신장부(113), 갱신부(113), 파일 라이트부(115)를 갖는다.
파일 리드부(110)는 압축 파일 F2 내의 압축 데이터를 기억 영역 B1에 판독하는 처리부이다. 파일 리드부(123)는 기억 영역 B1에 저장된 압축 데이터에 대한 처리가 종료된 경우에, 새로운 압축 데이터를 압축 파일 F2로부터 판독하고, 기억 영역 B1에 저장된 압축 데이터를 갱신한다.
또한, 파일 리드부(110)는 압축 파일 F2의 트레일러부에 저장된 동적 사전부의 정보를 판독하여, 기억 영역 B2에 저장한다.
식별자 판정부(111)는 기억 영역 B1에 저장된 압축 데이터의 식별자를 판독하고, 식별자가 「0」인지 「1」인지를 판정하는 처리부이다. 식별자는 압축 데이터의 선두 비트에 대응한다. 식별자가 「0」인 경우에는, 압축 데이터가 정적 사전에 의해 부호화된 것을 나타낸다. 식별자가 「1」인 경우에는, 압축 데이터가 동적 사전에 의해 부호화된 것을 나타낸다.
식별자 판정부(111)는 압축 데이터의 식별자가 「0」인 경우에는, 압축 데이터를 제1 신장부(112)에 출력한다. 식별자 판정부(111)는 압축 데이터의 식별자가 「1」인 경우에는, 압축 데이터를 제2 신장부(113)에 출력한다.
제1 신장부(112)는 신장용의 느티나무(60)를 사용해서 압축 데이터를 신장하는 처리부이다. 신장용의 느티나무(60)의 데이터 구조는, 도 8에 도시한 것에 대응한다. 제1 신장부(112)는 느티나무(60)의 각 가지에 할당된 비트열과, 식별자를 제외한 압축 데이터를 비교하여, 압축 데이터와 동일한 비트열이 되는 가지에 대응지어진 잎을 특정한다. 제1 신장부(112)는 특정한 잎을 참조하고, 기초 단어의 포인터에 나타나는 문자열을, 압축 데이터의 신장 데이터로서 생성하고, 생성한 신장 데이터를 파일 라이트부(115)에 출력한다.
신장부(112)는, 도 8에 있어서, 예를 들어, 비트열 「010111110111101」이, 느티나무(60)의 가지(60-4)에 히트하고, 가지(60-4)에 접속되는 잎(61-4)의 압축 부호가 「11」이며, 기초 단어에의 포인터로 나타나는 기초 단어가 「talks△」인 것으로 한다. 이 경우에는, 신장부(112)는 압축 데이터의 비트열 중, 선두로부터 11비트째까지의 비트열 「01011111011」에 대응하는 신장 데이터로서 「talks△」을 생성한다.
제2 신장부(113)는 기억 영역 B2에 저장된 동적 사전부의 정보를 사용해서 압축 데이터를 신장하는 처리부이다. 제2 신장부(113)는 압축 데이터로부터 식별자를 제거함으로써, 동적 사전부의 등록 번호를 취득한다. 제2 신장부(113)는 취득한 등록 번호와, 참조 테이블 T1을 비교하여, 기억 영역 B2에 저장된 신장 데이터의 저장 위치 및 데이터 길이를 특정한다. 제2 신장부(113)는 저장 위치 및 데이터 길이에 대응하는 단어의 문자열을 기억 영역 B2로부터 취득하고, 취득한 단어의 문자열을 신장 데이터로서 생성한다.
예를 들어, 압축 데이터로부터 취득한 등록 번호를 「00000001」로 하여, 제2 신장부(113)의 처리를 설명한다. 제2 신장부(113)는 등록 번호 「00000001」과 참조 테이블 T1을 비교하여, 저장 위치 「000000000101」과 데이터 길이 「1000」을 취득한다. 제2 신장부(113)는 기억 영역 B2를 참조하고, 저장 위치 「000000000101」을 선두로 하고, 데이터 길이 「1000」이 되는 단어의 문자열 「Kataoka△」을 취득한다. 제2 신장부(113)는 취득한 단어의 문자열 「Kataoka△」을 신장 데이터로 하고, 파일 라이트부(115)에 출력한다.
갱신부(114)는 압축 데이터가 저장된 기억 영역 B1을 갱신하는 처리부이다. 갱신부(114)는 압축 데이터의 식별자가 「0」인 경우에는, 제1 신장부(112)에 판독된 압축 데이터 중, 식별자와, 압축 부호 길이에 대응하는 비트열을, 기억 영역 B1로부터 삭제한다. 갱신부(114)는 압축 데이터의 식별자가 「1」인 경우에는, 제2 신장부(112)에 판독된 압축 데이터를 기억 영역 B1로부터 삭제한다.
파일 라이트부(115)는, 제1 신장부(112) 및 제2 신장부(113)로부터 신장 데이터를 취득하고, 취득한 신장 데이터를 기억 영역 B3에 기입하는 처리부이다.
다음에, 도 9 및 도 10에 도시한 압축부(100a) 및 신장부(100b)의 처리 수순에 대해서 설명한다.
도 11은 본 실시예에 관한 압축부의 처리 수순을 나타내는 흐름도이다. 도 11에 도시하는 바와 같이, 압축부(100a)는 전처리를 실행한다(스텝 S101). 스텝 S101의 전처리에 있어서, 압축부(100a)는 기억 영역 A1, 기억 영역 A2, 기억 영역 A3을 기억부(100c)에 확보한다.
압축부(100a)는 압축 대상의 파일 F1을 판독하고(스텝 S102), 종단부 기호까지의 단어의 문자열을 추출한다(스텝 S103). 압축부(100a)는 문자열과 비트 필터 C1을 비교하고, 비트 필터 C1에 히트하는지 여부를 판정한다(스텝 S104).
압축부(100a)는 문자열이 비트 필터 C1에 히트하지 않는 경우에는(스텝 S104, "아니오"), 동적 사전을 참조하고, 문자열이 동적 사전에 이미 존재하고 있는지 여부를 판정한다(스텝 S105). 압축부(100a)는 문자열이 동적 사전에 존재하고 있는 경우에는(스텝 S106, "예"), 스텝 S109로 이행한다.
한편, 압축부(100a)는 문자열이 동적 사전에 존재하지 않는 경우에는(스텝 S106, "아니오"), 일치하는 단어를 검색을 실행한다(스텝 S107). 압축부(100a)는 동적 사전을 갱신한다(스텝 S108).
압축부(100a)는 식별자 「1」과 동적 사전의 등록 번호를 포함하는 압축 데이터를 출력한다(스텝 S109). 압축부(100a)는 압축 데이터의 기입을 행하고(스텝 S110), 파일 F1의 종점인지 여부를 판정한다(스텝 S111). 압축부(100a)는 파일 F2의 종점이 아닌 경우에는(스텝 S111, "아니오"), 스텝 S103으로 이행한다. 압축부(100a)는 파일 F2의 종점인 경우에는(스텝 S111, "예"), 처리를 종료한다.
그런데, 압축부(100a)는, 스텝 S104에 있어서, 문자열이 비트 필터 C1에 히트한 경우에는(스텝 S104, "예"), 정적 사전 C2에 등록되어 있는 압축 부호를 특정한다(스텝 S112). 압축부(100a)는 식별자 「0」과 압축 부호를 포함하는 압축 데이터를 출력하고(스텝 S113), 스텝 S110으로 이행한다.
도 12는 본 실시예에 관한 신장부의 처리 수순을 나타내는 흐름도이다. 도 12에 도시하는 바와 같이, 신장부(100b)는 전처리를 실행한다(스텝 S201). 스텝 S201의 전처리에 있어서, 신장부(100b)는 기억 영역 B1, 기억 영역 B2, 기억 영역 B3을 기억부(100c)에 확보한다.
신장부(100b)는 압축 파일 F2를 판독하고(스텝 S202), 신장용의 느티나무(60) 및 동적 사전을 판독한다(스텝 S203). 예를 들어, 신장부(100b)는 트레일러부에 저장된 정적 사전에 관한 정보를, 기억 영역 B2에 저장한다.
신장부(100b)는 압축 데이터의 식별자가 「1」인지 여부를 판정한다(스텝 S204). 신장부(100b)는 식별자가 「0」인 경우에는(스텝 S204, "아니오"), 신장용의 느티나무(60)와 압축 데이터를 비교하여, 신장 데이터를 특정하고(스텝 S205), 스텝 S207로 이행한다.
신장부(100b)는 압축 데이터의 식별자가 「0」인 경우에는(스텝 S204, "예"), 동적 사전의 등록 번호를 기초로 하여 신장 데이터를 특정한다(스텝 S206). 신장부(100b)는 기억 영역 B3에 신장 데이터의 기입을 행한다(스텝 S207).
신장부(100b)는 압축 파일 F2의 종점인지 여부를 판정한다(스텝 S208). 신장부(100b)는 압축 파일 F2의 종점이 아닌 경우에는(스텝 S208, "아니오"), 스텝 S204로 이행한다. 한편, 신장부(100b)는 압축 파일 F2의 종점인 경우에는(스텝 S208, "예"), 압축 파일 F2를 폐쇄한다(스텝 S209).
다음에, 본 실시예에 관한 정보 처리 장치(100)의 효과에 대해서 설명한다. 정보 처리 장치(100)는 정적 사전 C2를 사용해서 압축 대상의 문자열을 압축할 때, 정적 사전에 압축 대상의 문자열이 등록되어 있는지 여부를 비트 필터 C1을 사용해서 판정한다. 정보 처리 장치(100)는 정적 사전에 등록되어 있지 않은 문자열을 검출한 경우에는, 검출한 문자열에 동적 사전에 등록하고, 동적 사전의 등록 번호를 문자열의 압축 부호로 한다. 이로 인해, 정보 처리 장치(100)에 의하면, 정적 사전에 존재하지 않는 문자열을, 동적 사전의 등록 번호로서 압축할 수 있어, 압축률의 변동을 방지할 수 있다. 또한, 압축 데이터의 데이터 길이가 길어지는 것을 해소할 수 있다.
또한, 본 실시예에 관한 정보 처리 장치(100)에 의하면, 비트 필터 C1에 등록되어 있지 않은 문자열에 대해 일치하는 단어의 탐색을 행하고, 일치하는 단어가 소정 길이 이상이 되는 경우에, 일치하는 단어를 동적 사전에 등록하고, 일치하는 단어를 등록 번호로서 압축한다. 이로 인해, 일치하는 단어에 대한 압축 부호의 데이터 길이를 삭감할 수 있다.
또한, 본 실시예에 관한 정보 처리 장치(100)에 의하면, 비트 필터 C1에 등록되어 있지 않은 문자열에 대해 일치하는 단어의 탐색을 행하고, 일치하는 단어가 소정 길이 미만이 되는 경우에, 정적 사전을 사용해서, 일치하는 단어의 문자열을 문자마다 압축한다. 이로 인해, 동적 사전의 정보량이 증가하는 것을 방지할 수 있다.
또한, 본 실시예에 관한 정보 처리 장치(100)에 의하면, 압축 부호의 식별자가 「0」인 경우에는, 신장용의 느티나무와 압축 부호를 기초로 하여, 압축 부호를 신장한다. 또한, 압축 부호의 식별자가 「1」인 경우에는, 동적 사전부와 압축 부호를 기초로 하여, 압축 부호를 신장한다. 이로 인해, 압축 데이터의 데이터 길이가 길어지는 것을 해소할 수 있음과 함께, 이 압축 데이터를 정확하게 신장할 수도 있다.
하기에, 본 실시 형태에 사용되는 하드웨어 및 소프트웨어에 대해서 설명한다. 도 13은 컴퓨터(1)의 하드웨어 구성예를 나타낸다. 컴퓨터(1)는, 예를 들어, 프로세서(301), RAM(Random Access Memory)(302), ROM(Read Only Memory)(303), 드라이브 장치(304), 기억 매체(305), 입력 인터페이스(I/F)(306), 입력 디바이스(307), 출력 인터페이스(I/F)(308), 출력 디바이스(309), 통신 인터페이스(I/F)(310), SAN(Storage Area Network) 인터페이스(I/F)(311) 및 버스(312) 등을 포함한다. 각각의 하드웨어는 버스(312)를 통하여 접속되어 있다.
RAM(302)은 판독 기입 가능한 메모리 장치이며, 예를 들어, SRAM(Static RAM)이나 DRAM(Dynamic RAM) 등의 반도체 메모리 또는 RAM이 아니어도 플래시 메모리 등이 사용된다. ROM(303)은 PROM(Programmable ROM) 등도 포함한다. 드라이브 장치(304)는 기억 매체(305)에 기록된 정보의 판독이나 기입 중 적어도 어느 한쪽을 행하는 장치이다. 기억 매체(305)는 드라이브 장치(304)에 의해 기입된 정보를 기억한다. 기억 매체(305)는, 예를 들어, 하드 디스크, SSD(Solid State Drive) 등의 플래시 메모리, CD(Compact Disc), DVD(Digital Versatile Disc), 블루레이 디스크 등의 기억 매체이다. 또한, 예를 들어, 컴퓨터(1)는, 복수 종류의 기억 매체 각각에 대해, 드라이브 장치(304) 및 기억 매체(305)를 설치한다.
입력 인터페이스(306)는 입력 디바이스(307)와 접속되어 있고, 입력 디바이스(307)로부터 수신한 입력 신호를 프로세서(301)에 전달하는 회로이다. 출력 인터페이스(308)는 출력 디바이스(309)와 접속되어 있고, 출력 디바이스(309)에, 프로세서(301)의 지시에 따른 출력을 실행시키는 회로이다. 통신 인터페이스(310)는 네트워크(3)를 통한 통신의 제어를 행하는 회로이다. 통신 인터페이스(310)는, 예를 들어, 네트워크 인터페이스 카드(NIC) 등이다. SAN 인터페이스(311)는 스토리지 에어리어 네트워크에 의해 컴퓨터(1)와 접속된 기억 장치와의 통신의 제어를 행하는 회로이다. SAN 인터페이스(311)는, 예를 들어, 호스트 버스 어댑터(HBA) 등이다.
입력 디바이스(307)는 조작에 따라서 입력 신호를 송신하는 장치이다. 입력 신호는, 예를 들어, 키보드나 컴퓨터(1)의 본체에 설치된 버튼 등의 키 장치나, 마우스나 터치 패널 등의 포인팅 디바이스이다. 출력 디바이스(309)는 컴퓨터(1)의 제어에 따라서 정보를 출력하는 장치이다. 출력 디바이스(309)는, 예를 들어, 디스플레이 등의 화상 출력 장치(표시 디바이스)나, 스피커 등의 음성 출력 장치 등이다. 또한, 예를 들어, 터치 스크린 등의 입출력 장치가, 입력 디바이스(307) 및 출력 디바이스(309)로서 사용된다. 또한, 입력 디바이스(307) 및 출력 디바이스(309)는 컴퓨터(1)와 일체로 되어 있어도 되고, 컴퓨터(1)에 포함되지 않고, 예를 들어, 컴퓨터(1)에 외부로부터 접속하는 장치이어도 된다.
예를 들어, 프로세서(301)는 ROM(303)이나 기억 매체(305)에 기억된 프로그램을 RAM(302)에 판독하고, 판독된 프로그램의 수순에 따라서 압축부(100a)의 처리 또는 신장부(100b)의 처리를 행한다. 그 때에 RAM(302)은 프로세서(301)의 워크 에어리어로서 사용된다. 기억부(100c)의 기능은, ROM(303) 및 기억 매체(305)가 프로그램 파일[후술하는 어플리케이션 프로그램(24), 미들 웨어(23) 및 OS(22) 등]이나 데이터 파일(압축 대상의 파일 F1, 압축된 파일 F2 등)을 기억하고, RAM(302)이 프로세서(301)의 워크 에어리어로서 사용됨으로써 실현된다. 프로세서(301)가 판독하는 프로그램에 대해서는, 도 14를 사용해서 설명한다.
도 14는 컴퓨터(1)에서 동작하는 프로그램의 구성예를 나타낸다. 컴퓨터(1)에 있어서, 도 13에 도시하는 하드웨어군(21)(301 내지 312)의 제어를 행하는 OS(오퍼레이팅 시스템)(22)가 동작한다. OS(22)에 따른 수순으로 프로세서(301)가 동작하여, 하드웨어군(21)의 제어ㆍ관리가 행해짐으로써, 어플리케이션 프로그램(24)이나 미들 웨어(23)에 따른 처리가 하드웨어군(21)에서 실행된다. 또한, 컴퓨터(1)에 있어서, 미들 웨어(23) 또는 어플리케이션 프로그램(24)이, RAM(302)에 판독되어 프로세서(301)에 의해 실행된다.
프로세서(301)가, 압축 기능이 호출된 경우에, 미들 웨어(23) 또는 어플리케이션 프로그램(24)의 적어도 일부에 기초하는 처리를 행함으로써, [그들의 처리를 OS(22)에 기초하여 하드웨어군(21)을 제어하여]압축부(100a)의 기능이 실현된다. 또한, 프로세서(301)가, 신장 기능이 호출된 경우에, 미들 웨어(23) 또는 어플리케이션 프로그램(24)의 적어도 일부에 기초하는 처리를 행함으로써, [그들의 처리를 OS(22)에 기초하여 하드웨어군(21)을 제어하여]신장부(100b)의 기능이 실현된다. 압축 기능 및 신장 기능은, 각각 어플리케이션 프로그램(24) 자체에 포함되어도 되고, 어플리케이션 프로그램(24)에 따라서 호출됨으로써 실행되는 미들 웨어(23)의 일부이어도 된다.
어플리케이션 프로그램(24)[또는 미들 웨어(23)]의 압축 기능에 의해 얻어지는 압축 파일 F2는, 압축 파일 F2 내의 압축 사전 D1에 기초하여 부분적으로 신장 가능하다. 압축 파일 F2의 도중을 신장하는 경우에는, 신장 대상의 부분까지의 압축 데이터의 신장 처리가 억제되므로, 프로세서(301)의 부하가 억제된다. 또한, 신장 대상의 압축 데이터를 부분적으로 RAM(302) 상에 전개하므로, 워크 에어리어도 삭감된다.
도 15는 실시 형태의 시스템에 있어서의 장치의 구성예를 나타낸다. 도 15의 시스템은 컴퓨터(1a), 컴퓨터(1b), 기지국(2) 및 네트워크(3)를 포함한다. 컴퓨터(1a)는 무선 또는 유선 중 적어도 한쪽에 의해, 컴퓨터(1b)와 접속된 네트워크(3)에 접속하고 있다.
도 6에 도시하는 압축부(100a)와 신장부(100b)는, 도 15에 도시하는 컴퓨터(1a)와 컴퓨터(1b) 중 어느 것에 포함되어도 된다. 컴퓨터(1b)가 압축부(100a)를 포함하고, 컴퓨터(1a)가 신장부(100b)를 포함해도 되고, 컴퓨터(1b)가 압축부(100a)를 포함하고, 컴퓨터(1a)가 신장부(100b)를 포함해도 된다. 또한, 컴퓨터(1a)와 컴퓨터(1b)의 양쪽이, 압축부(100a) 및 신장부(100b)를 구비해도 된다.
이하, 상술한 실시 형태에 있어서의 변형예의 일부를 설명한다. 하기의 변형예뿐만 아니라, 본 발명의 본지를 일탈하지 않는 범위의 설계 변경은 적절히 행해질 수 있다. 압축 처리의 대상은 파일 내의 데이터 이외에도, 시스템으로부터 출력되는 감시 메시지 등이어도 된다. 예를 들어, 버퍼에 순차 저장되는 감시 메시지를 상술한 압축 처리에 의해 압축하고, 로그 파일로서 저장하는 등의 처리가 행해진다. 또한, 예를 들어, 데이터베이스 내의 페이지 단위로 압축이 행해져도 되고, 복수의 페이지를 통합한 단위로 압축이 행해져도 된다.
또한, 상술한 압축 처리의 대상이 되는 데이터는, 상술한 바와 같이, 문자 정보에 한정되는 것은 아니다. 수치만의 정보이어도 되고, 화상ㆍ음성 등의 데이터에 대해 상술한 압축 처리를 사용해도 된다. 예를 들어, 음성 합성에 의해 얻어지는 데이터를 다량으로 포함하는 파일 등은, 데이터 내에 반복을 많이 포함하므로 동적 사전에 의해 압축률이 향상되는 것이 예상된다. 당연 그 일부만이 이용되는 경우에는, 부분 신장에 의해 여분의 신장 처리가 억제된다. 또한, 고정 카메라에 의해 촬영된 동화상에 대해서도 각 프레임의 화상이 비슷한 것으로 되기 때문에 반복이 많이 포함된다. 그로 인해, 상술한 압축 처리를 적용함으로써, 문서 데이터나 음성 데이터와 마찬가지의 효과를 얻을 수 있다.
이상의 각 실시예를 포함하는 실시 형태에 관한 것으로, 또한 이하의 부기를 개시한다.
(부기 1)
컴퓨터에,
입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하고,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하고,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는
처리를 실행시키는 것을 특징으로 하는 부호화 프로그램.
(부기 2)
상기 출력하는 처리는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 이상이 되는 경우는, 상기 일치하는 단어를 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는 부기 1에 기재된 부호화 프로그램.
(부기 3)
상기 출력하는 처리는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는 부기 1 또는 2에 기재된 부호화 프로그램.
(부기 4)
컴퓨터에,
압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하고,
상기 압축 부호의 식별자가 제1 식별자인 경우는, 부호열 및 신장 정보를 대응지은 정보와, 상기 압축 부호를 기초로 하여, 상기 압축 부호를 신장하고,
상기 압축 데이터의 식별자가 제2 식별자인 경우는, 상기 압축 데이터에 포함되는 등록 위치에 기초하는 정보에 나타나는 위치의 정보를 기초로 하여, 상기 압축 부호를 신장하는
처리를 실행시키는 것을 특징으로 하는 신장 프로그램.
(부기 5)
컴퓨터가 실행하는 압축 방법으로서,
입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하고,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하고,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는
처리를 실행시키는 것을 특징으로 하는 압축 방법.
(부기 6)
상기 출력하는 처리는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 이상이 되는 경우는, 상기 일치하는 단어를 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는 부기 5에 기재된 압축 방법.
(부기 7)
상기 출력하는 처리는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는 부기 5 또는 6에 기재된 압축 방법.
(부기 8)
컴퓨터가 실행하는 신장 방법으로서,
압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하고,
상기 압축 부호의 식별자가 제1 식별자인 경우는, 부호열 및 신장 정보를 대응지은 정보와, 상기 압축 부호를 기초로 하여, 상기 압축 부호를 신장하고,
상기 압축 데이터의 식별자가 제2 식별자인 경우는, 상기 압축 데이터에 포함되는 등록 위치에 기초하는 정보에 나타나는 위치의 정보를 기초로 하여, 상기 압축 부호를 신장하는
처리를 실행시키는 것을 특징으로 하는 신장 방법.
(부기 9)
입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하는 판정부와,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하는 제1 부호화부와,
상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는 제2 부호화부
를 갖는 것을 특징으로 하는 압축 장치.
(부기 10)
제1 부호화부는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 이상이 되는 경우는, 상기 일치하는 단어를 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는 부기 9에 기재된 압축 장치.
(부기 11)
제1 부호화부는, 상기 출력하는 처리는, 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열에 대해 일치하는 단어 탐색을 행하고, 일치하는 단어가 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는 부기 9 또는 10에 기재된 압축 장치.
(부기 12)
압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하는 식별자 판정부와,
상기 압축 부호의 식별자가 제1 식별자인 경우는, 부호열 및 신장 정보를 대응지은 정보와, 상기 압축 부호를 기초로 하여, 상기 압축 부호를 신장하는 제1 신장부와,
상기 압축 데이터의 식별자가 제2 식별자인 경우는, 상기 압축 데이터에 포함되는 등록 위치에 기초하는 정보에 나타나는 위치의 정보를 기초로 하여, 상기 압축 부호를 신장하는 제2 신장부
를 갖는 것을 특징으로 하는 신장 프로그램.
100 : 정보 처리 장치
100a : 압축부
100b : 신장부
100c : 기억부

Claims (12)

  1. 컴퓨터에,
    입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하고,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하고,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는 처리를 실행시키는 것을 특징으로 하는 부호화 프로그램을 기억한, 컴퓨터 판독 가능한 기억 매체.
  2. 제1항에 있어서,
    상기 출력하는 처리는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 이상이 되는 경우는, 상기 일치하는 문자열을 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는, 컴퓨터 판독 가능한 기억 매체.
  3. 제1항 또는 제2항에 있어서,
    상기 출력하는 처리는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는, 컴퓨터 판독 가능한 기억 매체.
  4. 컴퓨터에,
    압축 부호의 선두 1비트의 식별자를 판독하고,
    상기 압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하고,
    상기 압축 부호의 식별자가 제1 식별자인 경우는, 문자열 및 상기 문자열에 대응하는 압축 부호를 대응지은 제1 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하고,
    상기 압축 부호의 식별자가 제2 식별자인 경우는, 압축 전의 입력 데이터의 일부이며, 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 1문자 또는 1문자 이상의 문자열과 압축 부호를 대응시킨 제2 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하는 처리를 실행시키는 것을 특징으로 하는 신장 프로그램을 기억한, 컴퓨터 판독 가능한 기억 매체.
  5. 컴퓨터가 실행하는 압축 방법으로서,
    입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하고,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하고,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는 처리를 실행시키는 것을 특징으로 하는 압축 방법.
  6. 제5항에 있어서,
    상기 출력하는 처리는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 이상이 되는 경우는, 상기 일치하는 문자열을 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는 압축 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 출력하는 처리는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는 압축 방법.
  8. 컴퓨터가 실행하는 신장 방법으로서,
    압축 부호의 선두 1비트의 식별자를 판독하고,
    상기 압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하고,
    상기 압축 부호의 식별자가 제1 식별자인 경우는, 문자열 및 상기 문자열에 대응하는 압축 부호를 대응지은 제1 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하고,
    상기 압축 부호의 식별자가 제2 식별자인 경우는, 압축 전의 입력 데이터의 일부이며, 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 1문자 또는 1문자 이상의 문자열과 압축 부호를 대응시킨 제2 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하는 처리를 실행시키는 것을 특징으로 하는 신장 방법.
  9. 입력 데이터에 포함되는 압축 대상의 문자열에 대해, 문자열 및 해당 문자열에 대응하는 압축 부호를 대응지은 제1 사전을 사용해서, 상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는지 여부를 판정하는 판정부와,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있는 경우는, 상기 제1 사전에 등록된 상기 압축 대상의 문자열에 대응하는 압축 부호를 출력하는 제1 부호화부와,
    상기 압축 대상의 문자열이 상기 제1 사전에 등록되어 있지 않은 경우는, 상기 입력 데이터의 일부이며, 상기 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 문자열을 축적한 제1 데이터와, 상기 압축 대상의 문자열을 대조하고, 일치한 문자열을 상기 제1 사전과 다른 제2 사전에 등록하고, 상기 압축 대상의 문자열의 상기 제2 사전에 있어서의 등록 번호에 대응하는 압축 부호를 출력하는 제2 부호화부
    를 갖는 것을 특징으로 하는 압축 장치.
  10. 제9항에 있어서,
    제2 부호화부는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 이상이 되는 경우는, 상기 일치하는 문자열을 상기 제2 사전에 등록하고, 등록 번호에 기초하는 정보를 출력하는 것을 특징으로 하는 압축 장치.
  11. 제9항 또는 제10항에 있어서,
    제2 부호화부는, 상기 출력하는 처리는, 상기 제1 데이터에 포함되는 문자열과 상기 제1 사전에 등록되어 있지 않은 압축 대상의 문자열을 대조하여, 서로 일치하는 문자열 검색을 행하고, 일치하는 문자열이 소정 길이 미만이 되는 경우는, 상기 제1 사전에 기초하여 상기 압축 대상의 문자열의 각 문자에 대응하는 압축 부호를 출력하는 것을 특징으로 하는 압축 장치.
  12. 압축 부호의 선두 1비트의 식별자를 판독하고, 상기 압축 부호의 식별자가 제1 식별자인지 제2 식별자인지를 판정하는 식별자 판정부와,
    상기 압축 부호의 식별자가 제1 식별자인 경우는, 문자열 및 상기 문자열에 대응하는 압축 부호를 대응지은 제1 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하는 제1 신장부와,
    상기 압축 부호의 식별자가 제2 식별자인 경우는, 압축 전의 입력 데이터의 일부이며, 압축 대상의 문자열의 처리보다 이전에 상기 제1 사전에 등록되어 있지 않다고 판정된 1문자 또는 1문자 이상의 문자열과 압축 부호를 대응시킨 제2 사전과, 판독된 압축 부호를 기초로 하여, 상기 압축 부호를 신장하는 제2 신장부
    를 갖는 것을 특징으로 하는 신장 장치.
KR1020160010608A 2015-01-30 2016-01-28 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치 KR101772312B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015017716A JP6742692B2 (ja) 2015-01-30 2015-01-30 符号化プログラムおよび伸長プログラム
JPJP-P-2015-017716 2015-01-30

Publications (2)

Publication Number Publication Date
KR20160094315A KR20160094315A (ko) 2016-08-09
KR101772312B1 true KR101772312B1 (ko) 2017-08-28

Family

ID=55272323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160010608A KR101772312B1 (ko) 2015-01-30 2016-01-28 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치

Country Status (6)

Country Link
US (1) US9509334B2 (ko)
EP (1) EP3051430B1 (ko)
JP (1) JP6742692B2 (ko)
KR (1) KR101772312B1 (ko)
CN (1) CN105846825B (ko)
AU (1) AU2016200550B2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL242218B (en) 2015-10-22 2020-11-30 Verint Systems Ltd A system and method for maintaining a dynamic dictionary
IL242219B (en) * 2015-10-22 2020-11-30 Verint Systems Ltd System and method for keyword searching using both static and dynamic dictionaries
JP6680126B2 (ja) * 2016-07-25 2020-04-15 富士通株式会社 符号化プログラム、符号化装置、符号化方法、及び検索方法
JP7210130B2 (ja) * 2017-04-07 2023-01-23 富士通株式会社 符号化プログラム、符号化方法および符号化装置
US10992711B2 (en) * 2017-04-13 2021-04-27 At&T Intellectual Property I, L.P. Network aware data driven internet of things service engine
CN108011952B (zh) * 2017-12-01 2021-06-18 北京奇艺世纪科技有限公司 一种获取压缩字典的方法和装置
CN108494409B (zh) * 2018-03-14 2021-07-13 电子科技大学 基于小字典的随钻中子测井仪井下高速实时压缩方法
US10897270B2 (en) * 2018-06-06 2021-01-19 Yingquan Wu Dynamic dictionary-based data symbol encoding
JP6775558B2 (ja) * 2018-09-18 2020-10-28 キヤノン株式会社 画像伸長装置及びその制御方法及びプログラム
CN110032432B (zh) * 2018-12-03 2023-09-26 创新先进技术有限公司 实例的压缩方法和装置、实例的解压方法和装置
CN111510419B (zh) * 2019-01-31 2021-03-30 华为技术有限公司 一种数据压缩的方法及基站
US11050436B2 (en) * 2019-06-21 2021-06-29 Sap Se Advanced database compression
CN110740123B (zh) * 2019-09-18 2021-03-09 华为技术有限公司 数据压缩方法和基于其的数据传输方法、终端设备和系统
CN111817722A (zh) * 2020-07-09 2020-10-23 北京奥星贝斯科技有限公司 数据压缩方法、装置及计算机设备
US11652495B2 (en) * 2021-09-14 2023-05-16 Mastercard International Incorporated Pattern-based string compression
WO2024066753A1 (zh) * 2022-09-29 2024-04-04 华为云计算技术有限公司 压缩数据的方法和相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100271861B1 (ko) * 1996-01-31 2000-11-15 가나이 쓰도무 데이타압축, 신장방법 및 장치와 이것을 사용한 데이타처리장치 및 네트워크시스템

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL91221A (en) * 1989-08-04 1995-03-30 Ibm Israel Binary text compression method
JP3248257B2 (ja) * 1992-09-02 2002-01-21 株式会社ニコン 焦点検出装置
US5442350A (en) 1992-10-29 1995-08-15 International Business Machines Corporation Method and means providing static dictionary structures for compressing character data and expanding compressed data
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
US5870036A (en) 1995-02-24 1999-02-09 International Business Machines Corporation Adaptive multiple dictionary data compression
JP4776050B2 (ja) * 1999-07-13 2011-09-21 ソニー株式会社 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
US7026962B1 (en) * 2000-07-27 2006-04-11 Motorola, Inc Text compression method and apparatus
US6985965B2 (en) 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
TW543311B (en) 2000-11-16 2003-07-21 Ericsson Telefon Ab L M Static information knowledge used with binary compression methods
US7136803B2 (en) * 2001-09-25 2006-11-14 Apple Computer, Inc. Japanese virtual dictionary
JP4556766B2 (ja) * 2005-05-23 2010-10-06 ソニー株式会社 文字列検索回路及び文字列検索方法
WO2007025410A1 (fr) * 2005-08-31 2007-03-08 Zte Corporation Methode de compression de signalisation pour systeme de communication multipartie
JP4893750B2 (ja) * 2006-12-26 2012-03-07 富士通株式会社 データ圧縮装置およびデータ復元装置
JP4995775B2 (ja) * 2008-06-30 2012-08-08 株式会社東芝 画面転送装置およびその方法ならびに画面転送のためのプログラム
KR20110095800A (ko) * 2010-02-19 2011-08-25 삼성전자주식회사 코덱에 의해 압축된 동영상 컨텐트 전송 방법 및 그 장치
JP5895545B2 (ja) * 2012-01-17 2016-03-30 富士通株式会社 プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体
CN103684812B (zh) * 2012-08-31 2017-07-07 国际商业机器公司 用于管理远程设备的方法和装置
JP6003995B2 (ja) * 2012-09-21 2016-10-05 富士通株式会社 圧縮プログラム、圧縮方法及び圧縮装置
JP2014093612A (ja) * 2012-11-01 2014-05-19 Canon Inc 符号化装置及びその制御方法
JP6028567B2 (ja) * 2012-12-28 2016-11-16 富士通株式会社 データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
CN103326732B (zh) * 2013-05-10 2016-12-28 华为技术有限公司 压缩数据的方法、解压数据的方法、编码器和解码器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100271861B1 (ko) * 1996-01-31 2000-11-15 가나이 쓰도무 데이타압축, 신장방법 및 장치와 이것을 사용한 데이타처리장치 및 네트워크시스템

Also Published As

Publication number Publication date
KR20160094315A (ko) 2016-08-09
EP3051430A1 (en) 2016-08-03
JP2016143994A (ja) 2016-08-08
JP6742692B2 (ja) 2020-08-19
US20160226511A1 (en) 2016-08-04
EP3051430B1 (en) 2019-05-08
CN105846825A (zh) 2016-08-10
CN105846825B (zh) 2019-06-18
US9509334B2 (en) 2016-11-29
AU2016200550B2 (en) 2017-11-16
AU2016200550A1 (en) 2016-08-18

Similar Documents

Publication Publication Date Title
KR101772312B1 (ko) 기억 매체, 압축 방법, 신장 방법, 압축 장치 및 신장 장치
KR101748982B1 (ko) 매체에 저장된 프로그램
JP6641857B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP6686639B2 (ja) 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
JP6540308B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US9577666B2 (en) Method and system
US10224958B2 (en) Computer-readable recording medium, encoding apparatus, and encoding method
US11055328B2 (en) Non-transitory computer readable medium, encode device, and encode method
US20170017619A1 (en) Encoding method and information processing device
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
US20150160876A1 (en) Character data storing method and character data stornig device
WO2014097356A1 (ja) 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法および伸張装置
JP2017195628A (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法及び復号化装置
JP2016134754A (ja) 変換処理プログラム、情報処理装置および変換処理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant