KR20070011490A - 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치 - Google Patents

구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20070011490A
KR20070011490A KR1020067023759A KR20067023759A KR20070011490A KR 20070011490 A KR20070011490 A KR 20070011490A KR 1020067023759 A KR1020067023759 A KR 1020067023759A KR 20067023759 A KR20067023759 A KR 20067023759A KR 20070011490 A KR20070011490 A KR 20070011490A
Authority
KR
South Korea
Prior art keywords
data
compressed
template
sequentially
data segment
Prior art date
Application number
KR1020067023759A
Other languages
English (en)
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 KR20070011490A publication Critical patent/KR20070011490A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 XML 압축 및 압축 해제를 위한 방법 및 디바이스를 제공한다. XML 문서는 단일의 메타 데이터 템플릿 및 포함된 내용 데이터로 구분될 수 있는 유사한 데이터 블록들로 구성된다고 가정된다. 이 템플릿은 분석되고, 내용 데이터의 LZW-기반 데이터 압축(ZLIB)이 템플릿에서의 위치를 참조하여 수행된다. 템플릿은 자체로 개별적으로 압축된다. 데이터 블록과 관련된 내용 데이터는 블록단위로(본 명세서에서는 "순차적으로"로 언급됨) 압축되고, 임의 데이터 블록의 선택적인 압축 해제는 전체 파일의 압축 해제 없이도 수행될 수 있다.
압축, 압축 해제, 템플릿, XML 문서, 데이터 블록

Description

구조화된 블록단위로 XML 데이터를 압축 및 압축 해제하기 위한 방법 및 장치{Method and apparatus for structured block-wise compressing and decompressing of XML data}
본 발명은 데이터를 압축/압축 해제하기 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 데이터를 순차적으로 압축/압축 해제하기 위한 방법 및 장치에 관한 것이다.
종래에는 데이터를 순차적으로 압축/압축 해제하는 것이 데이터를 압축/압축 해제하기 위한 일반적인 방법이다. 이 방법은 압축 프로세스에서 이미 처리된 데이터를 다음 데이터를 압축/압축 해제하는 참조로서 사용하며, 이에 따라 용장성을 감소시킬 수 있다. 전형적인 순차적 압축 방법으로는 LZ77 과 Zlip이 있다. Zlip은 호프만 코드(Hoffman code) 및 LZ77에 기초한 순차적 압축 방법이다.
도 1은 종래에 데이터를 순차적으로 압축/압축 해제하기 위한 장치를 설명하는 구조적 개략 블록도이다. 도 1에 도시된 바와 같이, 장치는 N개의 입력 데이터 세그먼트들을 전체로서 순차적으로 인코딩 및 압축하는데 사용되는 순차 인코더(120); 압축된 데이터를 저장하는데 사용되는 메모리(130); 압축된 데이터를 순차적으로 디코딩하고, N개의 데이터 세그먼트들을 데이터 특성 또는 인덱스 테이블 을 이용하여 서로 분리하는데 사용되는 순차 디코더(140)를 포함한다. 그러한 압축방법은 압축효율을 최대로 높일 수 있고, 데이터 세그먼트들 간의 용장도가 저장될 수 있다. 압축 후의 데이터 용장성은 특히 N 데이터 세그먼트들이 동일하거나 유사한 데이터 구조를 가진 경우에 크게 감소될 수 있다.
도 1에 도시된 장치에서, 압축된 데이터 세그먼트들 각각을 랜덤하게 액세스하는 것은 불가능하다. 왜냐하면, 도 1에 도시된 압축 프로세스에서, 다음 차례의 데이터 세그먼트의 압축은 이전에 압축된 모든 데이터 세그먼트들에 의존적이기 때문이다. 예를 들어, 데이터 세그먼트 K(K는 1-N 사이의 숫자)는 이전에 압축된 데이터 세그먼트들 1-K에 의존적이다. 따라서, 압축 해제 프로세스 과정에서, 현재의 데이터 세그먼트(데이터 세그먼트 K) 이전의 모든 데이터 세그먼트들(데이터 세그먼트들 1-K)을 먼저 압축 해제해야하고, 그리고 나서 압축된 데이터 세그먼트(데이터 세그먼트 K)가 압축 해제될 수 있다. 극단적인 예로서, 압축된 데이터로부터 마지막 데이터 세그먼트(데이터 세그먼트 N)를 얻기 위해서, 데이터 세그먼트 N은 데이터 세그먼트 N 이전의 모든 압축된 데이터 세그먼트들이 순서대로 압축 해제되고 버려진 후에야 얻어질 수 있다.
도 2는 종래에 데이터를 순차적으로 압축/압축 해제하기 위한 또 다른 장치를 설명하기 위한 구조적 개략 블록도이다. 전술한 장치와 다른 점은 데이터 세그먼트들의 압축/압축 해제가 서로 독립적이라는 것이다. 도 2에 도시된 바와 같이, 장치는 독립적으로 데이터 세그먼트 K를 순차적으로 압축하는데 사용되는 순차 인코더(120)로서, 데이터 세그먼트 K는 데이터 세그먼트 1-N 중 어느 하나가 될 수 있고; 압축된 데이터 세그먼트 K를 저장하는데 사용되는 메모리(130); 압축된 데이터 세그먼트 K를 순차적으로 디코딩하고, 데이터 세그먼트 K를 재저장하는데 사용되는 순차 디코더(140)를 포함한다. 상기 압축 프로세스에서, N개의 데이터 세그먼트들은 개별적으로 압축/압축 해제되고, 각각의 데이터 세그먼트의 압축/압축 해제 프로세스는 독립적이다. 또한, 다음 차례의 데이터 세그먼트의 순차 압축/압축 해제는 이전에 압축된 데이터 세그먼트들에 의존적이지 않다. 만약, 데이터 세그먼트 K가 압축 해제에 의해 얻어진다면, 그것은 그 이전의 데이터 세그먼트들을 압축 해제할 필요 없이, 단지 메모리(130)로부터 압축된 데이터 세그먼트 K를 직접 찾아서 순차 압축 해제할 필요가 있을 뿐이다. 이러한 장치는 데이터 세그먼트들을 독립적으로 압축하기 때문에, 데이터 세그먼트는 접근에 의해(by some approach) 랜덤하게 액세스될 수 있다. 그러나, 각각의 데이터 세그먼트는 독립적으로 압축되고, 그들간에는 용장성이 사용될 수 없기 때문에, 결과적으로 전체 데이터 압축률은 낮다.
따라서, 데이터를 순차적으로 압축/압축 해제하는 새로운 방법 및 장치가 요구되며, 이에 의해 데이터는 효율적으로 압축되고 또한 램덤하게 액세스될 수 있을 것이다.
본 발명의 목적은 종래 순차적으로 압축/압축 해제하는 방법의 문제점을 해결하고, 데이터를 순차적으로 압축/압축 해제하기 위한 새로운 방법 및 장치를 제공하는 것이다. 그리하여, 효율적으로 데이터를 순차 압축할 수 있을 뿐만 아니라, 데이터를 램덤하게 액세스할 수 있다.
본 발명은 데이터 세그먼트를 순차적으로 압축하기 위한 방법을 제공하며, 여기서, 데이터 세그먼트는 데이터 구조를 가진다. 첫째, 복수의 압축 파라미터들을 얻고; 둘째, 상기 얻어진 압축 파라미터들에 기초하여 데이터 세그먼트를 순차적으로 압축하고, 압축된 데이터 세그먼트를 얻는다. 여기서, 데이터 세그먼트는 데이터를 선처리함으로써 얻어질 수 있다. 압축 파라미터들은 저장 디바이스로부터 얻어지고, 물론, 압축 파라미터들은 이 데이터 구조를 갖는 템플릿을 압축함으로써 얻어질 수도 있다. 이 데이터 구조를 가진 템플릿의 압축에 의해, 압축 파라미터들 뿐만 아니라 압축된 템플릿을 얻을 수 있다. 압축된 템플릿은 압축된 데이터 세그먼트와는 별개로 저장되거나, 버려된다.
유사하게, 본 발명은 또한 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법을 제공하며, 여기서, 데이터 세그먼트는 데이터 구조를 가진다. 첫째, 복수의 압축 해제 파라미터들을 얻고; 둘째 압축 해제 파라미터들에 기초하여 압축된 데이터를 순차적으로 압축 해제하고, 압축 해제된 데이터 세그먼트를 얻는다. 압축 해제 파라미터들은 저장 디바이스로부터 얻고; 물론, 압축 해제 파라미터들은 압축된 템플릿의 순차 압축 해제에 의해 얻어질 수도 있다. 이때, 템플릿은 상기 데이터 구조를 가진다. 압축된 템플릿의 순차 압축 해제에 의해, 상기 압축 해제 파라미터들뿐만 아니라 압축 해제된 템플릿을 얻을 수 있다. 압축 해제된 템플릿은 버려된다.
본 발명은 또한 데이터 세그먼트를 순차적으로 압축하기 위한 장치를 제공하며, 이 장치는 획득 디바이스 및 압축 디바이스를 포함하고, 데이터 세그먼트는 데이터 구조를 갖는다. 데이터 세그먼트를 순차 압축하기 위한 장치는 선처리 디바이스, 저장 디바이스 및 폐기 디바이스를 선택적으로 포함할 수 있다. 획득 디바이스는 복수의 압축 파라미터들을 얻는데 사용되고; 압축 디바이스는 상기 얻어진 압축 파라미터들에 기초하여 상기 데이터 세그먼트를 순차적으로 압축하는데 사용되며, 이에 따라 압축된 데이터 세그먼트를 얻는다. 압축 디바이스는 데이터 구조를 갖는 템플릿을 순차적으로 압축하는데도 사용되며, 결과적으로 상기 압축 파라미터들과 압축된 템플릿을 얻고; 선처리 디바이스는 데이터를 선처리하는데 사용되고, 결과적으로 상기 데이터 세그먼트를 얻게 되며; 저장 디바이스는 상기 압축 파라미터들을 저장하는데 사용되고; 폐기 디바이스는 상기 압축된 템플릿을 버리는데 사용된다.
유사하게, 본 발명은 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치를 제공하고, 이 장치는 획득 디바이스 및 압축 해제 디바이스를 포함한다. 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치는 저장 디바이스 및 폐기 디바이스를 선택적으로 포함할 수도 있다. 획득 디바이스는 복수의 압축 해제 파라미터들을 얻는게 사용되고; 압축 해제 디바이스는 얻어진 압축 해제 파라미터들에 기초하여, 압축된 데이터 세그먼트를 순차적으로 압축 해제하는데 사용되고, 결과적으로 압축 해제된 데이터 세그먼트를 얻게 되며, 이 데이터 세그먼트는 특유의 데이터 구조를 갖는다. 압축 해제 디바이스는 압축된 템플릿을 순차적으로 압축 해제하는데 사용될 수도 있고, 결과적으로 상기 압축 해제 파라미터들과 압축 해제된 템플릿을 얻게 되고, 템플릿은 상기 데이터 구조를 갖게 되며; 저장 디바이스는 상기 압축 해제 파라미터들을 저장하는데 사용되고; 폐기 디바이스는 상기 압축 해제된 템플릿을 버리는데 사용된다.
본 발명에 의해 제공되는 데이터를 순차적으로 압축/압축 해제하기 위한 전술한 방법 및 장치는 특유의 데이터 구조를 갖는 데이터 세그먼트를 압축한 후, 데이터 구조 부분(템플릿)이 필터링된다는 점에서 데이터 압축률을 향상시킬 수 있고; 특유의 데이터 구조를 가진 복수의 데이터 세그먼트들을 개별적으로 압축한 후에, 각각의 데이터 세그먼트의 데이터 구조부분이 필터링되어 제거될 수 있고, 그러나 다만 압축된 템플릿을 유지하거나 모든 압축된 템플릿들을 버려 데이터 압축률은 크게 감소하고, 각 데이터 세그먼트는 랜덤하게 프로세싱될 수 있다.
이하에 첨부된 도면들 및 청구항을 참조로, 그 밖의 본 발명의 목적들 및 실시예들을 분명히 이해할 수 있도록 설명하도록 한다.
본 발명은 실시예를 통해 및 다음의 도면들을 참조하여 상세히 설명된다.
도 1은 종래 기술에서 데이터를 순차적으로 압축/압축 해제하기 위한 장치를 설명하는 구조적 개략 블록도.
도 2는 종래 기술에서 데이터를 순차적으로 압축/압축 해제하기 위한 또 다른 장치를 설명하는 구조적 개략 블록도.
도 3은 본 발명의 일 실시예에 따른 데이터 세그먼트를 순차적으로 압축하기 위한 장치를 설명하는 구조적 개략 블록도.
도 4는 본 발명의 일실시예에 따른 데이터 세그먼트를 순차적으로 압축하는 플로우 챠트.
도 5는 본 발명의 일실시예에 따른 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치를 설명하는 구조적 개략 블록도.
도 6은 본 발명의 일실시예에 따른 압축된 데이터 세그먼트를 순차적으로 압축 해제하는 플로우 챠트.
모든 도면들에서, 동일한 참조번호는 유사 또는 동일한 구성 및 기능에 대해인용한다. 본 발명은 도면들 및 실시예들을 참조하여 아래에서 더 설명된다.
도 3은 본 발명의 실시예에 따른 데이터 세그먼트를 순차적으로 압축하기 위한 장치를 설명하는 구조적 개략 블록도이며, 이 데이터 세그먼트는 데이터 구조를 갖는다. 장치(300)는 획득 디바이스(310)와 압축 디바이스(360)를 포함한다. 장치(300)는 또한 선처리 디바이스(330), 저장 디바이스(340) 및 폐기 디바이스(350)를 포함할 수 있다.
획득 디바이스(320)는 복수의 압축 파라미터들을 얻는데 사용되는데, 이 변수들은 데이터 구조를 갖는 템플릿의 인코딩된 압축 정보를 색인하고, 압축 모드, 저장 위치 및 템플릿의 데이터 구조와 같은 정보를 포함한다. 압축 파라미터들은 저장 디바이스(340)로부터 얻어질 수 있다. 압축 파라미터들은 데이터 구조를 갖는 템플릿을 압축한 후의 압축 디바이스(340)의 내부 상태에 대응한다.
압축 디바이스(320)는 데이터 세그먼트들을 압축 파라미터들에 기초하여 순차적으로 압축하는데 사용되고, 결과적으로 압축된 데이터 세그먼트들을 얻는다. 압축 디바이스(320)는 데이터 구조를 갖는 템플릿을 순차적으로 압축하는데 또한 사용되며, 이에 따라 상기 압축 파라미터들을 얻게 된다. 압축될 데이터는 선처리 디바이스(330)로부터 얻어질 수 있고, 물론 다른 데이터 소스(미도시)로부터 나올 수도 있다.
선처리 디바이스(330)는 입력된 데이터를 선처리하는데 사용되고, 결과적으로 상기 데이터 구조를 따르는 데이터 세그먼트를 생성한다. 데이터 세그먼트는 동적인 데이터이고, 입력된 데이터의 차이에 따라 변화한다. 예를 들어, 선처리 디바이스의 적절한 일예로 XML(eXtensible Markup Language) 포맷의 데이터베이스 기록들의 발행 프로세스 유닛을 들 수 있다. 만약, 입력된 데이터가 어떠한 내용도 없는 블랭크 데이터라면, 선처리디바이스(330)는 상기 데이터 구조를 가진 템플릿을 생성할 수 있다. 템플릿은 데이터 세그먼트의 데이터 구조를 설명하며, 어떠한 동적 내용 데이터를 포함하지 않는다.
선처리디바이스(330)는 상이한 환경들에 대응하여 모든 종류의 데이터 세그먼트들을 출력할 수 있다. 예를 들어, 선처리디바이스(330)는 데이터베이스로부터 입력된 데이터의 상이한 타입에 대응하여 서로 다른 데이터 세그먼트를 생성할 수 있다. 이 경우, 각각의 종류의 데이터 세그먼트에 대해, 선처리디바이스(330)는 결과적으로, 상응되는 데이터 세그먼트를 압축하는데 사용된 상응하는 데이터 구조를 가진 탬플릿을 생성할 수 있다. 물론, 일반적인 템플릿은 압축시 모든 종류의 데이 터 세그먼트들에 의한 사용을 위해 디자인될 수 있으나, 이러한 기술은 서브-최적(sub-optimum) 성능을 가진 압축률을 제공할 뿐이다.
저장디바이스(340)는 압축된 데이터 세그먼트와 압축된 변수들을 저장하는데 사용되고, 압축된 데이터 구조 템플릿을 저장하는데도 사용된다. 저장디바이스(340)은 하드 디스크, USB(Universal Serial Bus) 디스크, 또는 캐시(cache) 등이 될 수 있다. 그러나, 압축된 데이터 세그먼트와 압축된 템플릿은 분리되어 저장되어야 하는데, 예를 들어, 그들은 상이한 파일 네임으로 저장될 수 있다. 저장디바이스(340)에 저장된 압축된 템플릿은 데이터 세그먼트를 압축 해제하는 동안 사용된다.
폐기 디바이스(350)은 압축된 템플릿을 버리는데 사용된다. 압축된 템플릿은 압축 디바이스(320)로부터 얻어진다. 저장디바이스에서 너무 많은 공간을 차지하는 것을 방지하기 위해서, 압축된 템플릿은 버려될 수도 있다.
장치(300)의 실행 프로세스는 도 4 이하에서 상세히 설명된다.
도 4는 본 발명의 일예에 따른 데이터 세그먼트의 순차 압축 플로우 챠트이다. 데이터 세그먼트는 데이터 구조를 갖고 있다. 먼저, 이 데이터 구조를 가진 템플릿을 얻는다(S410). 템플릿은 어떠한 유효 내용도 없는 데이터의 선처리 후에 얻어질 수 있다. 선처리과정에서, 예컨대, 파일 엔딩 태그와 같이, 태그가 템플릿의 말단에 추가될 수 있으며, 태그는 템플릿 파일의 말단 위치를 색인하는데 사용된다.
TV 프로그램 데이터의 데이터 구조는 아래에 기술되어 있다.
<radioshow radioshowlD="">
<description> </description>
<start~time> </start~time>
<end~time> </end~time>
<party><host></host><participant></participant></party>
</radioshow>
위 데이터 구조는 상기 템플릿의 내용이다.
다음 단계로, 템플릿을 순차적으로 압축한다(S420). 특히, 먼저 인코딩 상태를 초기화하고, 그 다음 예컨대, Zlib 순차 압축 알고리즘을 이용하여 템플릿을 순차적으로 압축한다. 그리하여, 압축된 템플릿과 복수의 압축 파라미터들을 얻는다. 압축 파라미터들은 압축 디바이스에서 템플릿 및 그 저장위치의 인코딩된 압축정보를 색인하고, 압축 모드, 데이터 구조, 호프만 리스트 등과 같은 정보를 포함한다. Zlib 순차 압축 알고리즘은 유일한 압축틀이 아님을 주의해야 한다. 실행자들은 그들의 필요에 따라 상이한 압축 알고리즘들을 선택할 수 있다.
그 다음에, 압축된 탬플릿은 버려된다(S430). 압축된 탬플릿은 전체 데이터 압축률에 영향을 미치지 않고, 저장공간을 저장하지 않기 위해 시스템에 의해 버려질 수 있다. 템플릿의 말단에는 태그, 예컨대 파일 말단 태그가 있기 때문에, 시스템은 태그를 읽은 후에 자동으로 압축된 템플릿을 버려할 수 있다. 물론, 압축된 템플릿은 미래의 압축 해제를 위해, 로컬 저장 디바이스의 특정 위치에 저장될 수도 있다. 특히, 이 데이터 구조를 갖는 몇몇의 데이터 세그먼트가 본 발명에 따른 방법을 사용하여 순차적으로 압축된 경우, 압축된 템플릿들 중 하나는 보관되고, 다른 압축된 템플릿들은 버려될 수 있다.
전술한 S410-S430 단계들은 이 데이터 구조를 가진 템플릿을 순차적으로 압축하고, 그 다음에 압축 파라미터들을 얻는 절차들이다. 압축 파라미터들은 동일한 또는 유사한 데이터 구조를 가진 또 다른 데이터 세그먼트를 압축하는데 사용하기 위해 예컨대, 로컬 저장 디바이스에 저장될 수 있다. 이 경우, 압축 파라미터들이 로컬 저장 디바이스에 저장되었다면, 전술한 S410-S430 단계들은 동일한 데이터 구조를 가진 또 다른 데이터 세그먼트를 압축할 때에는 생략될 수 있다. 즉, 압축 파라미터들은 이 데이터 구조를 가진 템플릿을 압축할 필요 없이 저장 디바이스로부터 직접 얻어질 수 있다. 저장 디바이스로부터 직접 압축 파라미터들을 얻기 전에, 현재 절차가 이전 프로세스의 끝에서의 압축 파라미터들에 의해 영향받지 않도록 인코딩 상태가 먼저 초기화되어야 한다는 것을 주의해야 한다.
다음 단계로, 상기 데이터 구조를 갖는 데이터 세그먼트를 얻는다(S440). 이데이터 세그먼트는 데이터의 선처리에 의해 얻어지는데, 예컨대 XML 포맷의 데이터 베이스 기록들의 발행 프로세스 유닛으로부터 XML(extensible Markup Language) 포맷을 따르는 데이터 세그먼트를 얻는다. 물론, 데이터 세그먼트는 다른 데이터 소스들로부터 얻을 수도 있다.
템플릿과 데이터 세그먼트 간의 관계는 아래의 예에서 보다 상세히 설명하기 로 한다. 예를 들어, 포맷 선처리후에 TV 프로그램 데이터의 두 개의 데이터 세그먼트들이 얻어지며, 데이터 세그먼트 1은 다음과 같다.
<radioshowradioshowlD="new talk show">
<description> a new TV talk show every Friday </description>
<start~time>7pm</start~time>
<end~time>8pm</end~time>
<party><host>Mr.XYZ</host><participant>Mr.ABC</participant></party>
</radioshow>
데이터 세그먼트 2는 다음과 같다.
<radioshow radioshowlD="News report">
<description> news report every evening </description>
<start~time>6pm</start~time>
<end~time>7pm</end~time>
<party><host>Mr.ABC</host><participant> </participant></party>
</radioshow>
상기 두 세그먼트들은 상기 템플릿과 동일한 데이터 구조를 가지며, 그들 간의 차이는 각 데이터 세그먼트들이 상이한 유효 내용을 포함한다는 것인데, 예를 들어, 데이터 세그먼트 1는 매주 금요일에 방영되는 새로운 TV토크쇼인 "new talk show" 등을 포함하고, 데이터 세그먼트 2는 매일밤 방영되는 뉴스 리포트인 "News report" 등을 포함할 수 있다.
다음 단계로, 얻어진 압축 파라미터들에 기초하여 데이터 세그먼트를 순차적으로 압축한다(S450). 압축 파라미터들은 동일한 데이터 구조를 가진 템플릿의 압축정보와 저장 주소 및 길이 등의 정보를 포함하기 때문에, 순차 압축의 문자는 압축 파라미터들에 기초하여 데이터 세그먼트를 순차적으로 압축할 때 나타난 문자열들을 자동으로 검색할 수 있고, 문자열들의 템플릿에서의 표시 위치 및 길이를 자동으로 출력할 수 있다. 그러므로, 순차적 인코딩 원리는 데이터 세그먼트 및 압축된 템플릿의 동일 부분을 저장 주소 및 길이로 자동으로 대체하고, 대체 후의 압축된 템플릿을 가리키는 저장 주소 및 데이터 세그먼트의 크기는 원래의 데이터 세그먼트의 그것보다 훨씬 적어진다. 데이터 세그먼트는 템플릿의 압축과정에서 생성된 압축 파라미터들과 함께 순차적으로 압축되고, 압축된 템플릿은 버려되기 때문에, 데이터 세그먼트의 압축률은 매우 향상될 수 있다.
마지막 단계로, 압축된 데이터 세그먼트를 저장한다(S460). 압축률에 영향을 주지 않기 위해, 압축된 데이터 세그먼트와 압축된 세그먼트의 저장 위치를 달리하며, 예컨대, 그들을 별개의 파일 네임으로 저장한다.
전술한 실시예는 하나의 데이터 세그먼트를 위한 압축을 완료하며, 많은 경우, 동일한 템플릿을 가진 여러개의 데이터 세그먼트들을 순차적으로 압축할 필요가 있다. 예를 들어, 20개의 TV 프로그램 데이터(즉, 20개의 데이터 세그먼트들)를 차례로 압축할 수 있고, 이 TV 프로그램 데이터는 선처리 후에 동일한 데이터 구조 또는 유사한 데이터 구조를 가진다. 전술한 S460 단계에 따라 하나의 데이터 세그먼트를 압축한 후, 다음 차례의 데이터 세그먼트가 전술한 프로세스에 의해 순차적으로 압축될 수 있다. 모든 프로세스의 시작에서, 인코딩 상태는 초기화되어야 함을 주의해야 한다. 예를 들어, 현재의 프로세스가 종료될 때 변수들은 이미 데이터 세그먼트에 유효한 내용에 대응하는 몇몇 압축 파라미터들을 포함하고 있기 때문에, 압축 파라미터들이 다음 프로세스에 영향을 주지 않도록 현재의 프로세스의 끝에서 압축 디바이스에 있는 모든 압축변수들을 지운다.
도 5는 본 발명의 일실시예에 따른 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치를 설명하는 개략 블록도이다. 압축된 데이터 세그먼트는 장치(300)로부터 얻어지고, 데이터 세그먼트는 상기 데이터 구조를 가진다. 장치(500)은 획득 디바이스(510) 및 압축 해제 디바이스(520)을 포함한다. 장치(500)는 또한 저장디바이스(540)와 폐기디바이스(550)를 포함할 수 있다.
획득 디바이스(510)는 복수의 압축 해제 파라미터들을 얻는데 사용된다. 이 압축 해제 파라미터들은 압축된 템플릿의 압축 해제 정보를 색인하고, 템플릿의 압축 해제 스타일, 저장위치 및 데이터 구조 등과 같은 정보를 포함한다. 이 압축 해제 파라미터들은 저장 디바이스(540)로부터 얻어질 수 있다. 이 압축 해제 파라미터들은 압축된 템플릿을 압축 해제한 후의 압축 해제 디바이스(520)의 내부상태에 관련될 수 있다.
압축 해제 디바이스(520)는 얻어진 압축 해제 파라미터들에 기초하여 압축된 데이터 세그먼트를 순차적으로 압축 해제하는데 사용되고, 이에 따라 압축 해제된 데이터 세그먼트가 얻어진다. 만약, 압축 해제 파라미터들이 획득 디바이스(510)으로부터 직접 얻어질 수 없다면, 압축 해제 디바이스(520)는 압축 해제된 템플릿 및 상기 압축 해제 파라미터들을 얻기 위해, 압축된 템플릿을 순차적으로 압축 해제하는데 사용될 수도 있으며, 템플릿은 상기 데이터 구조를 갖는다.
저장 디바이스(540)은 압축 해제된 데이터 세그먼트들을 저장하고, 상기 압축 해제 파라미터들을 저장하는데 사용된다.
폐기 디바이스(550)는 압축 해제된 템플릿을 버리는데 사용된다.
장치(500)의 실행프로세스는 도 6에서 설명되어 있다.
도 6은 본 발명의 일예에 따른 압축된 데이터 세그먼트를 순차적으로 압축 해제하는 플로우 챠트이다. 압축된 데이터 세그먼트는 도 4의 프로세스에 의해 생성되며, 데이터 세그먼트는 상기 데이터 구조를 갖는다.
먼저, 압축된 템플릿을 얻고(S610), 템플릿은 상기 데이터 구조를 갖는다. 압축된 템플릿은 저장 디바이스로부터 얻어지고, 네트워크 또는 다른 디바이스로부터 받을 수도 있다. 압축된 템플릿은 상기 데이터 구조를 갖는 템플릿을 순차적으로 압축하는 것에 의해 얻어질 수도 있다.
다음 단계로, 압축된 템플릿을 순차적으로 압축 해제한다(S620). 더 구체적으로, 디코딩상태를 초기화한 후에, 압축된 템플릿은 순차적으로 압축 해제되고, 압축 해제된 템플릿과 복수의 압축 해제 파라미터들이 얻어진다. 이 압축 해제 파라미터들은 압축 해제될 다음 차례의 데이터 세그먼트들을 압축 해제하는데 사용될 수 있고, 압축 해제 스타일, 주소 및 데이터 구조 등과 같은 정보를 포함하는 압축된 템플릿의 압축 해제 정보를 포함한다. 순차 압축 해제는 Zlib 순차 압축 해제 원리를 사용할 수 있다. 저장 공간에 저장하기 위해, 압축 해제된 템플릿은 폐기될 수 있고(S630), 폐기는 템플릿의 파일 말단 태그에 의해 실행될 수 있다.
전술한 S610-S630 단계는 압축된 템플릿을 순차적으로 압축 해제하는 프로세스이고, 이에 따라 압축 해제 파라미터들을 얻는다. 이 압축 해제 파라미터들은 예컨대, 로컬 저장 디바이스에 저장될 수 있고, 동일 또는 유사한 데이터 구조를 갖는 또 다른 압축된 데이된 세그먼트들을 순차적으로 압축 해제하는데 사용될 수 있다. 이때, 압축 해제 파라미터들이 로컬 저장 디바이스에 저장되었다면, 전술한 S410 - S430(S610-S630) 단계들은 또 다른 압축된 데이터 세그먼트를 압축 해제할 때에는 생략될 수 있다. 즉, 압축 해제변수들은 압축된 템플릿을 압축 해제하지 않고도 저장 디바이스로부터 직접 얻어질 수 있다. 저장 디바이스로부터 압축 해제 파라미터들을 직접 얻기 전에, 현재 프로세스가 이전 프로세스의 끝의 압축 해제 파라미터들에 의해 영향을 받지 않도록 인코딩 상태가 먼저 초기화되어야 함을 주의해야 한다.
다음 단계로, 압축된 데이터 세그먼트를 얻는다(S640). 압축된 데이터 세그먼트는 저장 디바이스로부터 얻어지거나 네트워크 또는 다른 디바이스로부터 받을 수 있다.
다음으로, 압축된 데이터 세그먼트들을 순차적으로 압축 해제한다(S650). 이 순차 압축 해제는 Zlib 순차 압축 해제 원리를 사용할 수 있다. 압축된 데이터 세 그먼트에서 얻어진 압축 해제 파라미터들 및 저장 주소에 기초하여 대응되는 대체 정보를 찾고, 압축 해제된 데이터 세그먼트를 대체 정보를 가지고 대체한다. 그리하여, 완성된 압축 해제된 데이터 세그먼트를 얻는다. 압축 해제된 데이터 세그먼트는 상기 데이터 구조를 갖고, 특정한 유효 내용을 포함한다.
마지막으로, 압축 해제된 데이터 세그먼트를 저장한다(S660).
전술한 압축 해제 프로세스는 하나의 압축된 데이터 세그먼트의 압축 해제를 완료한다. 많은 경우, 많은 압축된 데이터 세그먼트들을 차례로 순차적으로 압축 해제하는 것이 필요하며, 이것은 동일/유사한 데이터 구조를 갖는다. 전술한 S660 단계를 사용하여 압축된 데이터 세그먼트를 압축 해제한 후에, 다음 차례의 압축된 데이터 세그먼트는 전술한 프로세스를 사용하여 순차적으로 압축 해제될 수 있다. 각 프로세스의 시작에서, 인코딩 상태는 초기화되어야 함을 주의해야 한다. 예를 들어, 다음 프로세스가 프로세스 끝에서의 압축 해제 파라미터들에 의해 영향을 받지 않도록 현재의 압축 디바이스에 있는 모든 압축 해제 파라미터들을 없앤다. 왜냐하면, 현재 프로세스의 끝에서 변수들은 데이터 세그먼트의 유효한 내용에 대응하는 몇몇 압축 해제 파라미터들을 포함하고 있기 때문이다.
전술한 실시예에서, 데이터를 순차적으로 압축 해제/압축하는 방법은 주로 선처리에 의해 데이터를 동일 데이터 구조를 갖는 데이터 세그먼트들로 변환하고, 동시에 압축/압축 해제 데이터를 위한 데이터 세그먼트들을 구성하는 템플릿을 얻는다. 이 방법은 데이터 구조를 갖는 템플릿을 압축함으로써, 동일 데이터 구조를 갖는 데이터 세그먼트들의 압축을 위해 필요한 압축 파라미터들을 얻는다. 그리고, 변수들에 기초하여 데이터 세그먼트들을 순차적으로 압축하고, 압축된 템플릿을 버린다. 그래서, 고압축률을 갖는 데이터 세그먼트들을 얻는다. 한편, 각 데이터 세그먼트는 개별적으로 순차적으로 압축되기 때문에, 각 데이터 세그먼트를 랜덤하게 액세스할 수 있다. 유사하게, 이 방법은 압축된 템플릿을 압축 해제함으로써, 압축된 데이터 세그먼트들의 압축 해제에 필요한 압축 파라미터들을 얻는다. 여기서, 데이터 세그먼트는 템플릿과 동일한 데이터 구조를 갖는다. 그리고, 변수들에 기초하여 압축된 데이터 세그먼트들을 순차적으로 압축 해제하고, 이에 따라 압축 해제된 데이터 세그먼트를 얻는다. 반면, 각각의 데이터 세그먼트는 개별적으로 순차적으로 압축되기 때문에, 각각의 압축된 데이터 세그먼트는 개별적으로 압축 해제할 수 있다.
아래의 실험결과는 종래 기술과 비교하여 본 발명의 압축률의 이점을 보여주고 있다. 실험은 도 2에서 설명한 기술을 사용한 데이터 세그먼트들의 압축률에 기초한 것이고, 순차적으로 동일 데이터 세그먼트들을 압축할 때, 압축률은 본 발명을 사용하여 38.4% 향상된다. 이 모든 방법들은 순차 압축/압축 해제 원리로서 Zlib을 사용하였다. 이 두 결과는 아래의 테이블에서 설명된다.
Table 1: 실험 결과
도 2의 기술 본 발명
액세스 랜덤 액세스 (데이터 세그먼트들 분리) 랜덤 액세스 (데이터 세그먼트들 분리)
압축률의 향상치 0% 38.4%
본 발명이 바람직한 실시예들의 관점에서 설명되었지만, 당업자는 대체들, 변경들 및 변화들이 여기에 기술된 프로세스들에 적용될 수 있다는 것을 용이하게 이해할 수 있을 것이다. 따라서, 그러한 대체들, 변경들 및 변화들은 다음의 청구항들에 개시된 발명의 범위 및 사상 안에 있다.

Claims (25)

  1. 데이터 구조를 갖는 데이터 세그먼트를 순차적으로 압축하기 위한 방법에 있어서,
    (a) 복수의 압축 파라미터들을 얻는 단계; 및
    (b) 상기 얻어진 압축 파라미터들에 따라 상기 데이터 세그먼트를 순차적으로 압축하고 그에 따라 압축된 데이터 세그먼트를 얻는 단계를 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  2. 제1항에 있어서,
    상기 (a) 단계는, 상기 데이터 구조를 갖는 템플릿을 순차적으로 압축하여 상기 압축 파라미터들을 얻는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  3. 제2항에 있어서,
    상기 (a) 단계는 압축된 템플릿을 얻는 단계를 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  4. 제3항에 있어서,
    상기 압축된 템플릿을 버리는 단계를 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  5. 제3항에 있어서,
    상기 압축된 템플릿 및 상기 압축된 데이터 세그먼트를 각각 저장하는 단계를 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  6. 제1항에 있어서,
    상기 (a) 단계의 상기 압축 파라미터들은 저장 디바이스로부터 얻어지는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  7. 제1항에 있어서,
    데이터를 선처리하고 그에 따라 상기 데이터 세그먼트를 얻는 단계를 더 포함하는, 데이터 세그먼트를 순차적으로 압축하는 방법.
  8. 제1항에 있어서,
    상기 압축된 데이터 세그먼트를 저장하는 단계를 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 방법.
  9. 데이터 구조를 갖는 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법에 있어서,
    (a) 복수의 압축 해제 파라미터들을 얻는 단계; 및
    (b) 상기 얻어진 압축 해제 파라미터에 따라 상기 압축된 데이터를 순차적으로 압축 해제하고 그에 따라, 압축 해제된 데이터 세그먼트를 얻는 단계를 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  10. 제9항에 있어서,
    상기 (a) 단계는, 상기 데이터 구조를 갖는 압축된 템플릿을 순차적으로 압축 해제하고 그에 따라, 상기 압축 해제 파라미터들을 얻는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  11. 제10항에 있어서,
    상기 데이터 구조를 갖는 템플릿을 순차적으로 압축하고 그에 따라, 상기 압축된 템플릿을 얻는 단계를 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  12. 제11항에 있어서,
    상기 압축된 템플릿은 저장 디바이스로부터 얻어지는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  13. 제10항에 있어서,
    상기 (a) 단계는, 압축 해제된 템플릿을 얻는 단계를 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  14. 제13항에 있어서,
    상기 압축 해제된 템플릿을 버리는 단계를 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  15. 제10항에 있어서,
    상기 압축 해제된 데이터 세그먼트를 저장하는 단계를 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  16. 제9항 있어서,
    상기 압축 해제 파라미터들은 저장 디바이스로부터 얻어지는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 방법.
  17. 데이터 구조를 갖는 데이터 세그먼트를 순차적으로 압축하기 위한 장치에 있어서,
    복수의 압축 파라미터들을 얻기 위한 획득 수단; 및
    상기 획득된 압축 파라미터들에 따라 상기 데이터 세그먼트를 순차적으로 압축하고 그에 따라, 압축된 데이터 세그먼트를 얻기 위한 압축 수단을 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 장치.
  18. 제17항에 있어서,
    데이터를 선처리하고 그에 따라 상기 데이터 세그먼트를 얻기 위한 선처리 수단을 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 장치.
  19. 제17항에 있어서,
    상기 압축 파라미터들을 저장하기 위한 저장 수단을 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 장치.
  20. 제17항에 있어서,
    상기 압축 수단은 상기 데이터 구조를 갖는 템플릿을 순차적으로 압축해제하고 그에 따라, 상기 압축 파라미터들과 상기 압축된 템플릿을 얻는데 또한 사용 가능한, 데이터 세그먼트를 순차적으로 압축하기 위한 장치.
  21. 제20항에 있어서,
    상기 압축된 템플릿을 버리는 폐기 수단을 더 포함하는, 데이터 세그먼트를 순차적으로 압축하기 위한 장치.
  22. 데이터 구조를 갖는 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치에 있어서,
    복수의 압축 해제 파라미터들을 얻기 위한 획득 수단; 및
    상기 압축된 데이터 세그먼트를 상기 획득된 압축 해제 파라미터들에 따라 순차적으로 압축 해제하고 그에 따라, 압축 해제된 데이터 세그먼트를 얻기 위한 압축 해제 수단을 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치.
  23. 제22항에 있어서,
    상기 압축 해제 파라미터들을 저장하기 위한 저장 수단을 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치.
  24. 제22항에 있어서,
    상기 압축 해제 수단은 압축된 템플릿을 순차적으로 압축 해제하고 그에 따라, 상기 데이터 구조를 갖는 압축 해제된 템플릿 및 상기 압축 해제 파라미터들을 얻는데 또한 이용될 수 있는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치.
  25. 제24항에 있어서,
    상기 압축 해제된 템플릿을 버리기 위한 폐기 수단을 더 포함하는, 압축된 데이터 세그먼트를 순차적으로 압축 해제하기 위한 장치.
KR1020067023759A 2004-05-13 2005-04-01 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치 KR20070011490A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200410043562.0 2004-05-13
CNA2004100435620A CN1697327A (zh) 2004-05-13 2004-05-13 一种顺序压缩/解压缩数据的方法及装置

Publications (1)

Publication Number Publication Date
KR20070011490A true KR20070011490A (ko) 2007-01-24

Family

ID=34962052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067023759A KR20070011490A (ko) 2004-05-13 2005-04-01 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치

Country Status (5)

Country Link
EP (1) EP1751873A1 (ko)
JP (1) JP2007537642A (ko)
KR (1) KR20070011490A (ko)
CN (2) CN1697327A (ko)
WO (1) WO2005112270A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904417B2 (en) 2006-02-27 2011-03-08 Microsoft Corporation Recursive metadata templating
KR101454167B1 (ko) * 2007-09-07 2014-10-27 삼성전자주식회사 데이터 압축 및 복원 장치 및 방법
KR101503829B1 (ko) * 2007-09-07 2015-03-18 삼성전자주식회사 데이터 압축 장치 및 방법
JP5570202B2 (ja) * 2009-12-16 2014-08-13 キヤノン株式会社 構造化文書解析装置、構造化文書解析方法、及びコンピュータプログラム
US8751687B2 (en) 2010-04-30 2014-06-10 Microsoft Corporation Efficient encoding of structured data
US20110314070A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
CN110518917B (zh) * 2019-07-17 2023-01-03 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于Huffman编码的LZW数据压缩方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820563B1 (fr) * 2001-02-02 2003-05-16 Expway Procede de compression/decompression d'un document structure
US20020107881A1 (en) * 2001-02-02 2002-08-08 Patel Ketan C. Markup language encapsulation
AU2002253002B2 (en) * 2001-02-05 2005-03-17 Expway Method and system for compressing structured descriptions of documents

Also Published As

Publication number Publication date
EP1751873A1 (en) 2007-02-14
CN1697327A (zh) 2005-11-16
JP2007537642A (ja) 2007-12-20
WO2005112270A1 (en) 2005-11-24
CN1951017A (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
US8578058B2 (en) Real-time multi-block lossless recompression
US5870036A (en) Adaptive multiple dictionary data compression
KR100527891B1 (ko) 허프만 디코딩을 수행하는 방법
KR20070011490A (ko) 구조화된 블록단위로 xml 데이터를 압축 및 압축해제하기 위한 방법 및 장치
US20090284400A1 (en) Method and System for Reducing Required Storage During Decompression of a Compressed File
US20130179413A1 (en) Compressed Distributed Storage Systems And Methods For Providing Same
CN101783788A (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
JP2003218703A (ja) データ符号化装置及びデータ復号装置
US9665590B2 (en) Bitmap compression for fast searches and updates
KR20030082586A (ko) 폰트 압축 및 검색
US7571152B2 (en) Method for compressing and decompressing structured documents
CN104682966A (zh) 列表数据的无损压缩方法
JP3266419B2 (ja) データ圧縮・伸長方式
KR20200121760A (ko) 인코딩된 데이터에 대한 조건부 트랜스코딩
Rincy et al. Preprocessed text compression method for Malayalam text files
Krainyk Combined Run-Length and Huffman Encoding for Image Compression
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JP2005352561A (ja) データベースサーバ及びデータベースクライアント
KR20100030509A (ko) 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법
JPH08162973A (ja) データ処理方法および装置、ならびにこのデータ処理装置を用いた情報システム
CN117631957A (zh) 一种数据的缩减方法、装置、设备、存储介质及处理器
JPH06197226A (ja) 画像データ復元装置
Rajendra 16 BIT UNICODE TEXT COMPRESSION
JP2005175926A (ja) 復号装置及び方法
KR20050037307A (ko) N-트리 검색에 기초한 허프만 디코딩 방법 및 장치

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid