KR20040036897A - 계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법 - Google Patents

계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법 Download PDF

Info

Publication number
KR20040036897A
KR20040036897A KR10-2004-7000437A KR20047000437A KR20040036897A KR 20040036897 A KR20040036897 A KR 20040036897A KR 20047000437 A KR20047000437 A KR 20047000437A KR 20040036897 A KR20040036897 A KR 20040036897A
Authority
KR
South Korea
Prior art keywords
context
compression
subtree
codec
decoding
Prior art date
Application number
KR10-2004-7000437A
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 KR20040036897A publication Critical patent/KR20040036897A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream

Abstract

계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법.
본 발명은 멀티미디어 신호를 묘사하는 계층적 트리를 압축하는 방법에 관한 것으로서, 상기 트리는 노드 및 리브를 포함하며, 상기 노드와 리브는 적어도 두개의 구별되는 형태의 컨텐트와 연관될 수 있다.
본 발명에 따르면, 상기 방법은 적어도 두개의 압축 인코딩 기술을 이용하여 상기 리브의 적어도 일부를 위한 컨텐트 압축을 구현하며, 상기 기술 각각은 상기 컨텐트 형태 중 적어도 하나와 선택적으로 연관된다.

Description

계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법{Method for compressing a hierarchical tree, corresponding signal and method for decoding a signal}
XML을 위한 종래의 압축 기술은 여러 단점이 있다. 특히 데이터에 대하여 동시에 고속 접속, 높은 압축율 및 상기 다큐먼트의 진보적인 구축을 지원하지 못한다. 다시 말하면, 위에서 언급한 특징이 지원되는 대부분의 경우에, 다른 모든 특징들이 상실된다.
종래의 압축 기술 중 하나로서 BiM(Binary MPEG)가 알려져있다. 이러한 기술은 다큐먼트의 구조, 즉 상기 XML 다큐먼트와 연관된 트리 구조의 노드를 바이날싱(binarsing)함으로써 XML을 압축하는 방법을 제공한다. 따라서, 상기 BiM 기술이 데이터에 대한 고속 접속, 상기 다큐먼트의 진보적인 구축 및 스킵성(skippability)을 제공할지라도, 상기 BiM 기술을 구현함으로써 얻어지는 압축율은 매우 낮다.
본 발명은 데이터 압축에 관한 것이다. 더욱 상세하게는, 본 발명은 XML 기반 다큐먼트("eXtended Markup Language")의 압축에 관한 것이다.
본 발명은 특히 다음의 분야에 적용되며, 다른 분야에도 적용될 수 있다:
- 멀티미디어 적용;
- 인덱세이션 툴(indexation tools);
- 메타-데이터 조작 툴;
- MPEG-7 사양;
- SMIL;
- TV Anytime;
- 무선통신 3세대(3GPP).
도 1은 코딩 문맥의 개념을 나타낸다.
도 2는 BiM 기술에 따라 코딩된 요소의 구조를 나타낸다.
도 3은 계층적 트리의 리브에 대한 컨텐트를 압축하기 위하여 본 발명에 따라 구현된 단계의 일부를 나타낸다.
본 발명의 목적은 이와 같은 종래 기술의 결점을 보완하는데 있다.
더욱 상세하게는, 본 발명은 XML 기반 다큐먼트를 위한 효율적인 압축 기술을 제공하는 것을 목적으로 한다.
본 발명은 또한 스킵성, 높은 압축율 및 다큐먼트의 진보적인 구축을 제공하는, XML을 위한 압축 기술을 제공하는 것을 목적으로 한다.
본 발명은 또한 MPEG-7 디스크립터(descriptor)를 효율적으로 압축하는 것을 목적으로 한다.
본 발명의 다른 목적은 상기 BiM 형태의 기술에 의하여 제공되는 압축율을 상당히 향상시키나, BiM에 의하여 제공되는 것과 동일한 기능을 제공하는, XML 다큐먼트 압축 방법을 구현함에 있다.
상술한 바와 같은 본 발명의 목적은, 이하에서 나타날 본 발명의 다른 목적과 함께, 본 발명에 따른 멀티미디어 신호를 묘사하는 계층적 트리을 압축하는 방법에 의하여 성취되며, 상기 트리는 노드(nodes) 및 리브(leaves)를 포함하며, 상기 노드와 리브는 적어도 두개의 구별되는 형태의 컨텐트(contents)와 연관될 수 있고, 상기 방법은 적어도 두개의 압축 인코딩 기술을 이용하여 상기 리브의 적어도 일부를 위한 컨텐트 압축을 구현하며, 상기 기술 각각은 상기 컨텐트 형태 중 적어도 하나와 선택적으로 연관된다.
본 발명의 바람직한 실시예에 따르면, 상기 방법은 적어도 하나의 서브 트리(sub-tree)를 식별하는 단계 및 상기 서브 트리에 상기 압축 인코딩 기술 중 하나를 할당하는 단계를 포함한다.
바람직하게는, 상기 방법은 컨텐트가 상기 압축 인코딩 기술과 연관된 형태인 경우 서브 트리의 리브에 대하여만 상기 서브 트리에 할당되는 상기 압축 인코딩 기술을 구현하는 단계를 포함하며, 상기 서브 트리의 다른 리브들은 압축 인코딩을 하지 않는 것을 특징으로 한다.
본 발명의 바람직한 특징에 따르면, 상기 방법은 상기 압축 인코딩 기술의 파라미터의 디스크립션(parametrical description)을 구현한다.
바람직하게는, 상기 방법은 또한 상기 트리의 구조를 압축하는 단계를 포함한다.
바람직하게는, 상기 트리는 상기 MPEG7 표준에 따른 BiM(바이너리 MPEG) 형태이다.
바람직하게는, 상기 압축 인코딩 기술 중 하나는 선형 양자화(linear quantization)를 구현한다.
바람직하게는, 상기 압축 인코딩 기술 중 하나는 통계적 압축 알고리즘을 구현한다.
바람직하게는, 상기 알고리즘은 GZip 형태이다.
바람직하게는, 상기 알고리즘은 적어도 두개 리브의 컨텐트에 대응하는 한 세트(set)의 데이터를 위하여 동시에 구현된다.
바람직하게는, 상기 트리는 XML(Extended markup language) 형태 다큐먼트의 구조를 대표한다.
본 발명은 또한 상술한 계층적 트리 압축을 위한 방법에 따라서 압축된 멀티미디어 신호를 디코딩하기 위한 방법에 관한 것이다.
바람직하게는, 상기 방법은 상기 신호에 의하여 전달된 인코딩 문맥 정보(encoding context information)에 따라 현재의 디코딩 문맥을 재생(refreshing)하는 단계를 구현한다.
바람직하게는, 상기 현재 문맥은 적어도 하나의 컨텐트 형태를 정의하고, 상기 방법은 상기 컨텐트 형태의 컨텐트를 갖는 리브에 대한 상기 컨텐트 형태에 연관된 압축 디코딩 기술을 구현하는 단계를 포함한다.
본 발명은 또한 상술한 계층적 트리 압축을 위한 방법에 의하여 생성된 신호에 관한 것이다.
본 발명의 다른 특징 및 자산은 다음의 상세한 설명 및 도면에 의하여 더욱 분명하게 나타날 것이며, 이러한 설명은 단지 예시을 위한 것이며 본 발명의 범위를 제한하기 위한 것은 아니다.
본 발명의 구현 방법을 상세히 설명하기 전에, 먼저 BiM 기술로 알려진 종래 압축 기술의 주요한 특징을 살펴본다.
본 발명이 쉽게 이해될 수 있도록, 참조사항을 별첨9에 기재하였으며 본 발명의 전반에 걸쳐서 참조된다.
본 발명과 관련하여 제공된 모든 별첨은 본 발명의 상세한 설명의 일부이다.
1. 종래 기술
서론
도 1에 나타난 코딩 문맥은 한 세트의 디코딩 정보이며, 비트스트림(bitstream)을 디코딩하는 동안에 필요하다. 코딩 문맥은 상기 노드가정의된 모든 서브 트리에 대하여 적용 가능하다. 상기 트리의 모든 노드에서, 상기 코딩 문맥이 수정될 수 있으며, 이는 대응하는 서브 트리에 적용 가능한 새로운 코딩 문맥을 생성하도록 한다.
문맥은 관련된 서브 트리에 적용가능한 특징을 나타내는 여러 정보를 수반한다. 현재, BiM 서브 트리 코딩 포맷[1]에서, 이러한 특징은 서브 트리/문맥의 스킵성 및 서브 트리/문맥의 다중 스키마(schema) 인코딩이다(역방향 및 정방향 호환성을 제공하기 위하여). 마지막으로, 상기 문맥 메카니즘(context mechanism)은 대역폭을 저장하기 위하여 모든 서브 트리에서 무능화(disabled)될 수 있으며, 이는 문맥 고정 모드(context frozen mode)에 해당한다.
상기 코딩 문맥 메카니즘은 다큐먼트 트리의 모든 서브 트리에 있어서 최대 유연성(maximum flexibility)을 제공하고, 확장가능한 특징들을 상기 BiM 인코딩 메카니즘에 채워지도록 한다.
상기 현재 문맥 메카니즘(current context mechanism)이 BiM에서 사용된다.
현재 코딩 문맥 메카니즘(Current coding context mechanism)
정의
코딩문맥(CodingContext)
코딩문맥은 상기 비트스트림을 디코딩하기 위한 디코더에 의하여 요구되는 한 세트의 정보, 상기 문맥 정보이다. 코딩문맥은 정의되어진 노드 및 상기 노드에대응하는 모든 서브 트리에 적용가능하다.
상기 현재 코딩 문맥(즉, 디스크립션(description)의 특정 노드에 적용가능한 문맥)은 상기 다큐먼트 안에서 수정될 수 있다(다시 말하면, 그 하부 정보 세트의 수정). 코딩문맥에 대한 각각의 수정은 새로운 코딩문맥을 생성하도록 하며, 상기 새로운 코딩문맥은 상기 수정된 정보 세트를 수반할 것이다. 상기 디코터가 서브 트리 대응 문맥에 대한 디코딩을 완료할 때, 모든 코딩문맥은 다시 가져올 수 있도록 적층될 것이다.
디코더
BiM 디코더는 두개의 디코더로 구성된다:
- 문맥 디코더; 이 디코더는 상기 문맥 정보를 디코딩하기 위하여 전용된다. 이전에 언급한 바와 같이, 상기 문맥 정보는 상기 디스크립션의 일부가 아니다. 이것은 몇몇 외적 특징, 역방향 및 정방향 호환성, 고속 스킵(fast skipping) 등을 수반하는 한 세트의 정보이다.
- 요소 디코더; 이 디코더는, BiM 정규 디코더[1]로서, 상기 요소 정보를 디코딩하도록 전용된다.
청크(Chunks)
디스크립션에 대한 각각의 요소는 도 2에 나타난 바와 같이 3중형태(3-plet)로 코딩되며, 그 해더(header) 부분은 두 개의 청크로 구성되고, 그 크기는 영(nil)이 될 수 있다:
- MC는 메타문맥 청크(metacontext chunk)이다;
- C는 문맥 청크이다;
- 요소(Element)는 요소 청크이며, 이는 정규 요소 코딩 청크이다([1] 참조).
상기 MC 메타문맥 청크는 다음의 C 청크를 디코딩하기 위한 디코더에 필요한 정보를 포함한다. 이는 상기 MC 청크가 상기 C 문맥 청크의 문맥 청크라는 것을 말한다.
상기 C 문맥 청크는 상기 정보의 현재 코딩 문맥 정보 세트를 변경할 수 있는 정보를 포함하며, 다음의 요소 청크를 디코딩하기 위한 디코더에 필요하다. 이는 상기 C 청크가 상기 요소 청크의 문맥 청크라는 것을 말한다.
정보 세트(Set of information)
상기 현재 BiM 코딩 문맥은 한 세트의 정보, 문맥 정보를 수반하며, 이는 다음 두개의 주요 클래스로 나누어질 수 있다;
- 메타문맥 섹션(the metacontext section); 만약 상기 정보가 상기 섹션 안에 포함되면, 오직 상기 문맥 디코딩 절차에 영향을 미친다
- 문맥 섹션(the context section); 만약 상기 정보가 상기 섹션 안에 포함되면, 오직 상기 요소 디코딩 절차에 영향을 미친다.
상기 현재 정보 세트는 다음의 변수 세트에 해당한다.
클래스(Class) 변수(Variable) 값(Value) 디스크립션(Description)
메타문맥 freezing_state 불린(boolean) 거짓: 문맥이 그 서브트리 내에서 변경될 수 있다.참: 문맥이 그 서브트리에서 더 이상 변경될 수 없다.
문맥 allows_skip 강제(mandatory),선택(optional),금지(forbidden) 본 문맥에서 스킵 특성이 강제적인가, 선택적 또는 금지적인가?
schema_mode 모노(mono), 멀티(multi) 현재 요소가 다중 스키마로 코딩되었나?
allows_partial_instantiation 불린(boolean) 본 문맥에서 부분적 인스턴스화가 허락되었나?
allows_subtyping 불린(boolean) 본 문맥에서 서브 형태화가 허락되었나?
상기 정의된 클래스들은 상술한 청크를 정확히 코딩한다(상기 MC 메타문맥 청크 및 상기 C 문맥 청크).
메타문맥 청크(Metacontext chunk)
정의
상기 MC 메타문맥 청크는, 그 크기가 영이 될 수 있으며, 상기 디코더가 다음 섹션에 기술된 차기 C 문맥 청크를 판독해야 하는지 여부를 알기 위한 정보를 포함한다.
관련 변수
변수 디스크립션
freezing_state 불린 거짓: 본 서브 트리 내에서 문맥이 변경될 수 있다. MC 청크가 비트스트림으로 코딩될 것이다.참: 본 서브 트리 내에서 문맥이 더 이상 변경될 수 없다. MC 청크가 비트스트림으로 코딩되지 않을 것이다.
디폴트값(Default values)
freezing_state의 디폴트값은 거짓(false)이다; 다시 말하면, 디폴트에 의해서, 상기 루트 문맥(root context)이 동적으로 변경될 수 있다.
전파규칙(Propagation rules)
새로운 문맥의 생성에 있어서:
- 상기 freezing_state 값이 그 부문맥(father's context)의 freezing_state 값으로 설정된다
동적 수정 규칙(Dynamic modification rules)
디스크립션의 각각의 노드에서, 그리고 새로운 문맥을 생성하기 위하여:
- freezing_state 값은 상기 거짓값(vlaue false)으로부터 상기 참값(value true)로 변경될 수 있다
디코딩 규칙(Decoding rules)
만약 상기 freezing_state 값이 참인 경우에는, 상기 MC 메타문맥 청크(그리고 상기 앞으로 생길 C 문맥 청크)는 비트스트림으로 코딩되지 않는다. 그렇지 않은 경우에는, 상기 해더(header)의 MC 메타문맥 청크 부분은 다음과 같이 코딩된다:
MC(){ # of bits Mnemonic
freeze_type 1-3 vlclbf
}
context_chunk는 지역적 변수이고, 거짓으로 초기화된다.
고정 형태(freeze type) 암시(Implication)
110 context_chunk=true and freezing_state=true
10 context_chunk=true
111 context_chunk=false and freezing_state=true
0 context_chunk=false
이전 섹션에서 진술될 바와 같이, 상기 현재 문맥의 변수에 대한 수정은 새로운 문맥의 생성을 암시한다.
문맥 디코딩 절차에 대한 영향(Influence on the context decoding process)
만약 상기 context_chunk 값이 참인 경우에는, 상기 디코더는 다음의 C 문맥 청크를 판독해야 한다.
문맥 청크(Context chunk)
정의
상기 C 문맥 청크는, 그 크기가 영일 수 있으며, 상기 현재 문맥 변수를 동적으로 변경할 수 있는 정보 세트를 포함한다. 이러한 변수들은 상기 BiM 요소 디코딩 절차에 영향을 미치기 때문에 코딩특성(codingProperties)이라고 불리운다.
코딩특성(codingProperties)
코딩특성(codingProperty) 디스크립션
allows_skip (강제, 선택, 금지) 스킵 특성이 강제적이거나, 선택적 또는 금지적인가?
schema_mode (모도, 멀티) 현재 요소가 다중 스키마로 코딩되었나?
allows_partial_instantiation 불린 본 문맥에서 부분적인 인스턴스화가 허락되었나?
allows_subtyping 불린 본 문맥에서 서브 형태화가 허락되었나?
디폴트값(Default values)
상기 allows_skip 변수는, FCD 시스템 다큐먼트[1]에서 정의된 것처럼,상기 특별한 4 비트 비트필드(bitfield)의 첫번째 두개 비트에 의하여 상기 비트스트림의 시작단계에서 초기화된다.
상기 allows_partial_instantiation 변수는 상기 특별한 4 비트 비트필드의세번째 두개 비트에 의하여 상기 비트스트림의 시작단계에서 초기화된다.
상기 allows_subtyping 변수는 상기 특별한 4 비트 비트필드의 네번째 두개 비트에 의하여 상기 비트스트림의 시작단계에서 초기화된다.
schema_mode의 디폴트값은 모노(mono)이며, 다시 말하면, 디폴트에 의해서 상기 루트 서브 트리/문맥이 하나의 스키마로서 인코딩된다.
전파규칙(Propagation rules)
새로운 문맥의 생성에 있어서:
- allows_skip 값은 그 부문맥(father's context)의 allows_skip값에 설정된다
- allows_partial_instantiation 값은 그 부문맥의 값에 설정된다
- allows_subtyping 값은 그 부문맥의 값에 설정된다
- schema_mode 값은 그 디폴트값에 설정된다
동적 수정 규칙(Dynamic modification rules)
디스크립션의 각각의 노드에서, 그리고 새로운 문맥을 생성하기 위하여:
- allows_skip 은 동적을 수정될 수 있다
- allows_partial_instantiation 값은 동적으로 수정될 수 없다
- allows_subtyping 값은 동적으로 수정될 수 없다
- schema_mode 값은 동적으로 수정될 수 있다
디코딩 규칙(Decoding rules)
상기 C 문맥 청크는 상기 MC 메타문맥 청크가 이미 존재하고 그 이전지역적(local) 변수 context_chunk 가 참일 경우에만 존재한다.
상기 현재 문맥에 대한 동적 수정은 BiM 정규 인코딩 계획으로 인코딩되는 XML로서 묘사된다. 상기 BiM 스키마로부터의 전역적(global) 요소 modifyContext가 사용된다. http://www.mpeg7.org/2001/BiMCoding 코딩 스키마가 별첨1에 묘사된다.
상기 C 문맥 청크는 상술한 스키마와 상기 BiM 정규 스키마로서 디코딩되어야 한다.
앞서 설명한 바와 같이, 문맥에서의 현재 코딩특성에 대한 수정은 새로운 문맥의 생성을 암시한다. 따라서, 상기 C 문맥의 존재는 새로운 문맥의 생성을 암시하며, 이는 수정된 코딩특성을 수반할 것이다.
만약 상기 허락스킵(allowsSkip) 요소가 상기 수정문맥(modifyContext) 요소 내부에서 인스턴스화(instantiate)되는 경우에는, 상기 allows_skip 값은 상기 새로운 문맥에서 갱신될 것이다.
만약 상기 schema_mode 요소가 상기 수정문맥 요소 내부에서 인스턴스화되는 경우에는, 상기 schema_mode 값은 상기 새로운 문맥에서 갱신될 것이다.
요소 디코딩 절차에 대한 영향(Influence on the element decoding process)
상기 allows_skip 및 schema_mode 값은 상기 스킵특성(skipping feature)을 처리할 시, 상기 요소 디코딩 절차에 영향을 미친다. 이러한 동작은 [1]에 묘사되어 있다.
상기 schema_mode 값은 상기 요소 디코딩 절차에 영향을 미치며, 이는 상기요소가 오직 하나의 스키마 또는 다수의 스키마로서 코딩되었는지 여부를 알기 위한 것이다. 이러한 동작은 [1]에 묘사되어 있다.
상기 allows_partial_instantiation 값은 하나의 특별한 형태의 부분인스턴트화된 형태(partiallyInstantiated type)를 상기 요소의 발생가능한 서브형태(subtypes)에 더함으로써 상기 요소 디코딩 절차에 영향을 미친다. [1] 참조.
상기 allows_subtyping 값은 요소 다형현상(element polymorphism)(xsi:type 속성과 함께) 또는 유니온(union)의 경우에 있어서, 상기 요소 디코딩 절차에 영향을 미치며, 하나의 요소 또는 속성이 다른 발생 가능한 형태를 갖도록 허락한다. [1] 참조.
2. 본 발명의 설명
2.1. 리브(leaf) 압축에 대한 기본 골격을 제공하기 위한 문맥 메카니즘의 확장
본 발명은 새롭고 흥미있는 특징을 지원하기 위하여 상기 현재 BiM 문맥 메카니즘을 확장하는 것을 제안한다: 종국적인 비트스트림의 크기를 감소시키기 위하여, 다큐먼트 리브를 압축하기 위한 지역적 압축기의 사용.
본 섹션은 지역적인 압축기의 사용을 지원하기 위하여 상기 현재 BiM 문맥 메카니즘을 확장하는 방법을 설명한다. 이는 전형적으로 새로운 세트의 변수, 코딩특성이며, 특정 의미, 전파 및 코딩 규칙과 연결된다. 따라서, 이러한 새로운 세트의 코딩특성은 상기 현재 문맥 청크를 확장시킬 것이다.
서설
서브트리 내에서, 하나 또는 다수의 특정 심플(simple) 형태의 모든 인스턴스는 하다 또는 다수의 특정 압축기로 압축될 수 있다. 이것은 기본적으로 압축기와 하나 또는 다수의 심플 형태 사이에 매핑(mapping)을 정의한다.
부가하여:
- 몇몇 경우에 있어서, 압축기는 외부 파라미터를 일부 필요로 할 수 있다.
- 다른 경우를 제외하고 몇몇 서브 트리에서 압축기를 사용하기 위하여, 매핑이 활성화/불활성화될 수 있다.
마지막으로, 활성화/비활성화하기 위하여 매핑은 참조가능한 것이어야 하며, 따라서 문맥 안에 고유한 식별자를 포함해야 한다.
따라서, 각각의 문맥은 영(zero), 하나 또는 다수의 코덱형태매퍼(codecTypeMapper)를 수반해야 한다; 여기서 코덱형태매퍼는 4중형태(4-plet)이며, 식별자와, 하나 또는 다수의 심플 형태와, 코덱과, 선택적 외부 코덱 파라미터(optional external codec parameters) 및 활성화 상태(activation state)로 구성된다.
정의
코덱형태매퍼(codecTypeMapper)
코덱형태매퍼는 4중형태이고, 다음으로 구성된다:
- 서브 트리/문맥에서 고유한 참조키로 사용되는 식별자,
- 상기 매핑을 적용할 수 있는 하나 또는 다수의 형태
- 코덱
- 선택적 외부 코덱 파라미터(상기 코덱에 의존)
- 활성화 상태
식별자(Identifier)
상기 식별자는 분명한 방법으로 문맥 내에서 매핑을 식별하는 고유한 숫자이다. 상기 BiM 코딩 스키마는 문맥에서의 코덱형태매퍼의 최대 숫자를 32로 제한한다.
심플 형태(Simple type)
스키마에서 정의된 모든 심플 형태는 모든 코덱으로 인코딩된 선험(a priori)이 될 수 있으나, 각각의 코덱은 이러한 선택을 제한할 수 있다. 예를 들어, 아래에서 정의되는 선형 양자화기(linear quantizer)는 오직 수치적(numerical) 심플 형태로서 사용될 수 있다.
심플 형태는 그 이름 및 소속된 스키마의 URL로서 식별된다. 상기 정확한 스키마를 지시하기 위하여 XML 스키마 접두사(XML Schema prefixes)가 사용되어야 한다. 상기 BiM 코딩 스키마는 이러한 쌍(couple)은 인코딩하기 위한 특별 형태를 정의한다; 상기 형태는 정수의 쌍으로 인코딩되어야 한다; 상기 첫 번째 정수는 알려진 스키마(이와 같은 정보 조각은 DecoderConfig part[1]에서 가져올 수 있다)의 현재 숫자로 제한되고, 상기 두 번째 정수는 상기 대응하는 스키마에 존재하는 전역적 심플 형태의 숫자에 제한된다.
코덱(Codec)
코덱은, 압축기/압축해제기(compressor/decompressor)를 나타내며, 입력 비트를 취하고 출력 비트를 기록하는 모듈이다. 이는 일부 선택적 외부 파라미터를 필요로 할 수 있다.
코덱은 BiM 코딩 스키마에서 정의된 비-추상적(non-abstract) 코덱의 이름 중에서, 하나의 이름으로 식별된다. 위의 섹션에서 정의된, 상기 현재 BiM 코딩 스키마는 아무런 비-추상적 코덱도 정의하지 않지만, 본 출원서의§2.2는 정의한다.
활성화 상태(Activation state)
상기 활성화 상태는 불린 플래그(boolean flag)이다.
의미 규칙(Semantic rules)
코덱형태매퍼(CodecTypeMapper)
각각의 문맥은:
- 영(zero), 하나 또는 다수의 코덱형태매퍼를 수반할 수 있다
- 하나 또는 다수의 코덱형태매퍼를 정의할 수 있다
- 하나 또는 다수의 현존하는 코덱형태매퍼를 활성화 또는 불활성화 시킬 수 있다.
만약 코덱형태매퍼가 문맥에서 정의되는 경우에는, 이는 그 모든 서브 문맥(subcontexts)에 존재한다. 현존하는 코덱형태매퍼는, 문맥 내부에서, 삭제 또는 수정될 수 없다(활성화 상태는 제외).
식별자(Identifier)
매핑의 식별자는 문맥의 모든 코덱형태매퍼 준에서 고유한 것이어야 한다.
심플 형태(Simple type)
코덱형태매퍼 안에서 하나 또는 다수의 심플 형태 및 코덱을 연관시킬 때, 상기 코덱은 상기 심플 형태 자신들 및 이들로부터 유도되는 모든 심플 형태를 인코딩/디코딩할 것이다.
문맥 내에서, 코덱과 적용될 수 있는 심플 형태는 기껏해야 하나가 있을 것이다.
코덱(Codec)
코덱에는 메모리없는 코덱(memoryless codecs) 및 문맥 코덱(contexual codecs)의 두 가지 종류가 있다.
메모리없는 코덱은 항상 동일한 입력 바이트를 동일한 바이트 출력으로 인코딩하는 모듈이며; 상기 코덱의 히스토리(history)에 독립적이다. 전형적인 메모리없는 코덱은 선형 양자화기이다. 상기 BiM 리브 압축(본 출원서의 §2.2 참조)은 이러한 코덱을 묘사한다.
문맥 코덱은 주입된 이전 바이트(previous byte)를 사용하는 모듈이다(이로 인하여 상기 코덱의 문맥을 변경). 상기 코덱은 수신하는 동일한 입력 바이트에 대한 동일한 출력 바이트를 생성하지는 않는다. 전형적인 문맥 코덱은 집-유사 지역적 코덱(Zip-like local codec)이며, 본 출원서의 §2.2에 묘사된다.
메모리없는 코덱은 현재 문맥 구조에서 아무런 문제를 야기하지 않지만, 문맥 코덱은 스킵가능한(skippable) 서브 트리의 경우에 문제를 야기한다. 이러한 경우에, 이러한 형성기가 상기 서브 트리를 스킵(skip)하였을 때 상기 디코더를 혼동시키지 않기 위해, 문맥 코덱은 리셋(reset)된다.
활성화 상태(Activation state)
모든 서브 트리/문맥에서, 코덱형태매퍼는 활성화 또는 불활성화될 수 있다.
이러한 메카니즘은 상기 다큐먼트 트리의 상위 레벨에서 코덱형태매퍼를 정의할 수 있도록 하며, 상기 코덱형태매퍼를 다시 정의하지 않고서, 오직 상기 코덱형태매퍼가 사용된 서브트리에서 상기 코덱형태매퍼를 활성화시킨다.
새로운 코딩특성: 코덱형태매퍼(A new codingProperty: codecTypeMapper)
여기에서는, 앞서 설명된 문맥 섹션의 이전 변수 세트에 대하여 새로운 코딩특성을 부가한다. 이와 같은 새로운 코딩특성은 코덱형태매퍼라고 명명되며 이전 섹션에서 설명된 이전 코덱형태매퍼의 리스트(list)이다.
관련된 새로운 코딩특성(New codingProperty involved)
상기 문맥은 코덱형태매퍼의 리스트를 수반한다:
코딩특성 디스크립션
codecTypeMapper[i].identifier int 분명한 방법으로 문맥 내 코딩특성을 참조하기 위한 수치적 식별자
codecTypeMapper[i].simple_type[j] int;int 2중겹 리스트(스키마의 수치적 인덱스, 현재 스키마 내에서 심플 형태의 수치적 인덱스)
codecTypeMapper[i].codec int 현재 코딩 문맥 계획 내에서 코덱의 수치적 인덱스
codecTypeMapper[i].codec_parameters 선택적 외부 코덱 파라미터
codecTypeMapper[i].activation_state 불린 코딩특성의 활성화 상태
새로운 디폴트값(New default values)
디폴트에 의하여, 서브트리/문맥에는 코덱형태매퍼가 있지 않게 된다.
만약 코덱형태매퍼가 문맥 내부에서 정의된다면, 그 식별자, 코덱 및simple_type 값이 정의되어야만 한다. 만약 특정되지 않은 경우에는, 새롭게 정의된 코덱형태매퍼의 활성화 상태는 디폴트에 의하여 참으로 설정되며; 이는 새롭게 정의된 코덱형태매퍼가 디폴트에 의하여 활성화되었다는 것을 말한다.
새로운 전파 규칙(New propagation rules)
규칙 1: 새로운 문맥의 생성에 있어서, 상기 코덱형태매퍼 리스트는 그 부문맥(father's contest)의 복사본이다:
- 상기 식별자 값이 복사된다
- 상기 simple_type 값이 복사된다
- 규칙 2에 따라서 상기 코덱 값이 복사된다
- 상기 codec_parameters 값이 복사된다
- 상기 activation_state 가 복사된다
규칙 2: 상기 코덱 값은 복사되며
만약:
- 상기 부(father's) codec codingProperty[i].codec 이 문맥 코덱이고
- 상기 현재 문맥이 스킵 가능한 것이라면,
따라서,
상기 디코더는 그 부(father's) 코덱(그 값뿐만 아니라)의 인스턴스를 복사하고 이를 재설정함으로써 상기 코덱의 새로운 인스턴스를 생성할 수 있다.
예를 들어, ZLib 코덱은 스킵가능한 노드에 진입하였을 때 복사 및 재 초기화될 것이다.
새로운 동적 수정 규칙(New dynamic modification rules)
코덱형태매퍼의 리스트는 디스크립션 내부에서 동적으로 수정될 수 있다:
- 새로운 코덱형태매퍼가 정의된다
- 상기 현존하는(따라서 참조 가능한) 코덱형태매퍼의 activation_state는 동적으로 수정될 수 있다
현존하는 코덱형태매퍼는 삭제될 수 없으며, 그 소속원들은 동적으로 수정될 수 없다(그 activation_state는 제외).
새로운 디코딩 규칙(New decoding rules)
이전과 동일한 규칙이 상기 C 문맥 청크 디코딩에 적용되나, 상기 새로운 코덱형태매퍼 동적 수정 기능을 첨가하기 위하여 첨부 2에 묘사된 새로운 스키마가 사용되어야 한다.
정보 부분(Informative part)
실시예
첨부 3에 제시된 실시예는 디스크립션 내에서 하나의 활성화된 선형 양자화기(본 출원서의 §2.2 참조)에 대한 정의를 나타낸다.
첨부 4에 제시된 실시예는 디스크립션 내에서 하나의 불활성화된 선형 양자화기에 대한 정의를 나타낸다.
2.2 BiM 리브 압축(BiM Leaf compression)
이하에서는 데이터를 다른 코덱으로 인코딩하기 위하여 본 발명에 따라 구현된 메카니즘을 제시한다. 더욱 상세하게는, 두개의 실시예를 제시하며, 하나는 예를 들어 부동소수점값(floatign point value)을 압축하기 위하여 선형 양자화 코덱이 사용되는 것이고, 다른 하나는 예를 들어 스트링값(string value)을 압축하기 위하여 gzip 코덱이 사용되는 것이다.
이러한 메카니즘은 코딩 문맥과 밀접하게 관련되며 다른 여러 종류의 코덱을 사용할 수 있도록 한다. 게다가, 이것은 예를 들어 스킵가능한 서브트리와 같은 코딩 문맥 특성을 적절하게 취급할 수 있도록 한다. 마지막으로 이것은 다른 코딩 문맥에서 코덱을 재사용할 수 있도록 한다.
서설
상기 BiM 서브 트리 코딩[1]은 디스크립션의 데이터 리브를 압축하지 않는다. 현재, 리브 값들은 각각의 형태에 따라 인코딩된다(IEEE 754 floats and doubles, UTS strings...).
많은 경우에 있어서, 그 주된 특징(스트림라인 파싱(streamline parsing), 고속 스킵 특성(fast skipping feature), 형태 디코딩(typed decoding))을 잃지 않으면서도 BiM 압축율을 향상시키기 위하여, 선형 양자화와 같은 몇몇 전통적인 압축 기술 또는 통계적 압축을 사용하는 것이 유용할 것이다.
이러한 다큐먼트는 향상된 압축율을 얻기 위하여 §2.1에서 설명된 문맥 코딩 메카니즘 내부에서 어떠한 방법으로 다큐먼트의 데이터 리브 압축이 수행될 수 있는가를 보여준다.
2.2.1 선형 양자화(Linear quantization)
정의
정보의 소스가 알려져 있고 따라서 손실에 대한 제어가 가능한 때에 있어서, 선형 양자화는 비트스트림 내의 인코딩된 숫자의 크기를 감소시키기 위한 일반적이고도 손실있는 방법이다.
예를 들어, 샘플된 오디오 신호의 포락선은 종종 분명한 비트 크기 양자화와 함께 알려지며, 이러한 기술은 MPEG7 오디오 디스크립션을 코딩하기 위하여 유용하게 사용될 수 있다.
만약가 실수라면, 이는와 n 비트로 인코딩될 수 있으며, 여기서:
여기서:
-의 양자화되고, 인코딩된 값.
- nbits는 비트에서 요구되는 정확성
-가 도달할 수 있는 최소 포함값
-가 도달할 수 있는 최대 포함값
그리고로부터 디코딩된 값은이며, 다음과 같다:
여기서:
-의 디코딩된, 근사값이다
문맥 메카니즘과의 통합: 선형양자화코덱(Integration with the context mechanism: the LinearQuantizerCodec)
선형 양자화는, 본 출원서의 §2.1에 묘사된 코딩 문맥 메카니즘에서 정의된 바와 같이, 코덱으로서 사용될 수 있다. 상기 메카니즘에 의하여, 선형 양자화가 디스크립션의 어떠한 서브 트리에서라도 원하는 심플 형태의 수지척 데이터 리브에 적용될 수 있다.
이와 같이 사용됨으로써, 상기 코딩 문맥 메카니즘은, 상기 선형 양자화 코덱과 연관되어, MPEG4 BIFS[3]에서 사용되는 양자화파라미터 노드(QuantizationParameter node)로서 행동한다.
적용가능한 심플 형태에 대한 제한(Restriction on applicable simple types)
본 출원서 §2.1 에서의 코덱 정의에 따라서, 상기 코덱은 메모리없는 코덱이며, 모든 원자(atomic) 및 비원자(nonatomic) 심플 수지 형태에 적용할 수 있는 있다; 그 XML 스키마 프리미티브 형태(XML Sxhema primitive type)는 부동, 더블 또는 십진(float, double or decimal)이다.
코덱 외부 파라미터(Codec external parameters)
상기 선형 양자화기 코덱은 다음 3 필수 파라미터를 필요로한다:
- bitSize; 상술한 n 비트 변수
- minInclusive; 상술한변수
- maxInclusive; 상술한변수
코덱의 스키마 정의(Schema definition of the codec)
코덱의 선형 양자화는 LinearQuantizerCodecType 형태의 새로운 코덱이며, 코딩 문맥 주소 URL xmlnx:cc=http://www.mpeg7.org/2001/BiMCoding에서, 추상적 CodecType 형태(§2.1참조)에 기초하고 별첨 5에 주어진 스키마에 의하여 정의된다.
인코딩(정보적)(Encoding(informative))
값의 수치적 데이터 리브는 n 비트에서 부호없는 정수로 인코딩되며, 여기서:
디코딩(Decoding)
상기 부호없는 정수는, n 비트로 코딩되고,로 디코딩되어야 하며, 여기서:
실시예(정보적)(Example(Informative))
별첨 6에 제시된 실시예는 디스크립션에서의 선형 양자화의 정의를 나타낸다.
2.2.2 통계적 압축
코딩 문맥 메카니즘(§2.1)에서 정의된 바와 같이, 전통적인 통계적 무손실압축 알고리즘이 코덱으로 사용될 수 있다. 이러한 메카니즘으로 원하는 심플 형태의 데이터 리브가 디스크립션의 어느 트리에서라도 효율적으로 압축될 수 있다.
이러한 코덱은 비트스트림의 크기를 상당히 감소시키는데 유용하며, 특히 상기 디스크립션이 많은 반복적이거나 유사한 스트링을 포함할 때 유용하다.
정의
전통적인 무손실 통계적 압축 알고리즘(Zip 또는 GZip)은 BiM에서 디스크립션의 모든 리브를 압축하기 위하여 사용될 수 있다.
그러나, 대부분의 경우, 데이터 리브가 10 캐릭터(10 characters) 보다 적게 포함된 짧은 스트링일 때에는, 보통의 통계적 압축 알고리즘이 더 큰 예견 능력이 있는 버퍼를 요구하기 때문에 상기 알고리즘은 만족스럽지 않은 수행결과를 나타낸다.
최적의 압축율을 얻기 위하여, 다큐먼트의 리브는 압축되기 이전에 작은 버퍼로 완충되어야 한다. 다음의 섹션은 근본적인 무손실 통계적 압축 알고리즘에 의존하여, 이러한 완충된 통계적 코더를 정의한다.
완충된 통계적 코더의 정의(Definitions of a buffered statistical coder)
완충된 통계적 코더는 근본적인 무손실 통계적 코더에 의존하며, 이러한 코더는 일반적인 다음의 프리미티브 방법을 포함하여야 한다:
- initialize_stream(); 이것은 압축 또는 압축해제 스트림을 초기화한다
- reset_model(); 이것은 상기 코더의 현재 통계적 모델을 리셋한다
- feed_input_bytes(); 이것은 입력 압축해제된 바이트를 가져와서 상기 압축 스트림에 넣는다.
- flush_output_bytes(); 이것은 이미 처리된 입력 바이트를 압축하고 상기 대응하는 압축된 출력 바이트를 생략함으로써 상기 압축 스트림을 플러쉬(flush)한다.
- decompress_input_bytes(); 이것은 입력 압축된 바이트의 특정량을 가져와서, 상기 대응하는 압축해제된 출력 바이트를 생량함으로써 이들을 디코딩한다
완충된 코덱은 bufferSize 바이트 길이, 바이트 어레이(array) 버퍼 FIFO 구조를 갖는다.
상기 인코더 측면에서, 상기 bufferSize 값은 얼마나 많은 입력 바이트를 플러싱(flushing) 이전에 상기 인코더가 처리할 수 있는지를 나타낸다. 상기 디코더 측면에서, 이것은 상기 근본적인 통계적 코더 API를 통하여 상기 비트스트림을 디코딩하기 위하여 필요한 바이트 단위의 최소 버퍼 크기이다.
상기 버퍼는 또한 fillingLevel 변수를 갖으며, 상기 변수는 바이트 단위로 상기 버퍼의 실제 충전 레벨을 포함한다.
통계적 코드로서 ZLib API의 사용(Using the ZLib API as a statistical coder)
상기 GZip 압축 계획에서 사용되는 상기 ZLib 공개 라이브러리 API[4]는, 다큐먼트 리브에 대하여 통계적 압축을 사용하기 위한 효율적이고 유용한 API를 제공한다.
상기 ZLib API는 다음의 매핑으로써, 이전의 일반적인 방법을 수행한다:
- initialize_stream()은 Z_DEFAULT_COMPRESSION 효율값 파라미터와 함께, ZLib의 inflateInit() 또는 deflateInit() 기능으로써 매핑될 수 있다.
- reset_model()은 ZLib의 inflateEnd() 또는 deflateEnd() 콜(call) 및 다음의 initialize_stream() 콜로써 매핑될 수 있다.
- feed_input_butes()는 Z_NO_FLUSH 파라미터와 함께 ZLib의 deflate() 방법으로써 매핑될 수 있다.
- flush_output_bytes()는 Z_SYNC_FLUSH 파라미터와 함께 ZLib의 deflate()로써 매핑될 수 있다.
- decompress_input_bytes()는 ZLib의 inflate() 방법으로써 매핑될 수 있다.
상기 ZLib 완충된 코덱은 [4]에 정의된 것처럼 Z_DEFALULT_COMPRESSION 효율값으로써 초기화되어야 하며, 이것은 메모리 풋프린트(footprint) 요구 및 압축효율 사이에서 좋은 타협점을 제공한다.
문맥 메카니즘과의 통합: ZLibCodec(Integration with the context mechanism: the ZLibCodec)
이번 섹션에서는 상기 코딩 문맥 메카니즘 내에서 상기 ZLib API에 의존하여 정의된, 이전에 완충된 코더의 통합을 설명한다.
적용가능한 심플 형태에 대한 제한(Restriction on aplicable simple types)
§2.1에서의 코덱 정의에 따라, 상기 코덱은 문맥 코덱이며, 모든 원자 및 비원자 스트링 형태에 적용될 수 있다. 상기 ZLibCodec는, [1]에서 설명된 것처럼, 다큐먼트의 리브에 대한 근본적인 프리미티브 인코딩에 의존한다. 예를 들어, int 리브는 32 비트의 부호 없는 정수로 인코딩되고, string은 UTF-8로 인코딩되며, float 및 double은 IEEE 754 포맷으로 인코딩된다. 따라서 상기 ZLibCodec는 상기 인코딩된 리브를 압축할 것이다.
코덱 외부 파라미터(Codec external parameters)
상기 하부 ZLib의 효율이 Z_DEFAULT_COMPRESSION에 설정되고, 상기 bufferSize 파라미터가 상기 디코더 측면으로부터 필요하지 않으므로, 상기 완충된 ZLib 코덱은 아무런 외부 파라미터를 요구하지 않는다.
코덱의 스키마 정의(Schema definition of the codec)
상기 ZLib 코덱은 ZLibCodecType 형태의 새로운 코덱이며, 추상적 CodecType(§2.1 참조) 형태에 기초하고, 코딩 문맥 주소에서 첨부 7에 제시된 스키마에 의하여 정의된다.
인코딩(정보적)(Encoding(informative))
상기 코덱의 활성화/인스턴스 생성(activation/instantiation)에서:
- 상기 FIFO 버퍼 구조는 깨끗하고, 그 fillingLevel은 0으로 설정된다
- 전역적 변수 referencable_chunk 는 null로 초기화된다
상기 referencable_chunk는 참조가능한 청크 비트를 포함하여야 하며, 이것은 그 값이 이후의 인코딩 절차 동안에 알려지게될 것이므로 상기 인코더에 의하여유지되어야 한다.
바이트 단위의 모든 닐이 아닌(non-nil) 청크의 크기는, 상기 청크가 flush_output_bytes() 콜 동안에 [1]에 정의된 것처럼, 표준 부호없는 무한 정수 4+1과 함께 기록되어야 한다.
입력 리브는 그 프리미티브 형태에 따라 문맥 리브의 인코딩된 값이다. 상기 리브의 바이트 단위 길이는 leaf.length 필드에 의하여 주어진다. 예를 들어 [1], 스트링 리브는 스트링의 바이트 단위의 크기로서 선행되는 UTF-8 코드의 스트링 리브이다(상기 무한 정수 코딩[1]으로서 코딩된); 더블 리브는 대응하는 IEEE 754 표준의 64-비트 값이다...
다음의 encode_leaf 기능은 출력 바이트의 청크에서 leaf를 인코딩할 수 있다:
디코딩(Decoding)
string_fifo가 스트링 Fifo이 되도록 한다.
다음의 방법 get() 및 put()은 각각 resp로부터 요소를 가져오고, 요소를 resp로부터 FIFO로 넣는다.
상기 방법은 상기 FIFO 가 비어있으면 Empty() 신호이다
sub가 서브스트링을 취하는 기능이 되도록 한다.
concat가 연결 기능이 되도록 한다.
getData()가 리브로부터 de-gzip 데이터를 유지하는 char[]를 반환하는 기능이 되도록 한다.
split(char[], char sep, Fifo, char[] remainder)가 각각의 분리기의 'sep'에서 캐릭터의 배열을 분리하고, 상기 분리된 스트링 요소를 상기 Fifo에 저정하며, 그 나머지(즉 종료를 위한 아무런 'sep'를 갖지 않는 마지막 청크)를 반환한다.
초기화단계에서, string_fifo는 비워진다.
코덱의 활성화/인스턴스 생성 단계에서:
- 상기 FIFO 구조는 깨끗하게 되고, 그 numberOfLeaves는 0으로 설정된다
- 변수 first_chunk 는 참(true)으로 설정된다
상기 분리기의 바이트가 0x00 이 되도록 한다.
다음의 decode_leaf 기능은 상기 비트스트림으로부터 압축된 리브를 디코딩할 수 있다:
디코딩은 다음과 같이 정의된다:
1. 만약 상기 FIFO 가 비워져 있으면:
a. 상기 코딩된 데이터를 디코딩한다
b. 0x00에 의하여 분리된 모든 요소를 FIFO에 저장한다
c. 만약 마지막 캐릭터가 0x00 이 아니면, 종료되지 않은 스트링을 일시적으로 저장한다
d. 만약 "last_element"가 비워져 있지 않다면, 상기 FIFO의 첫번째 요소의 시작단계에서 이것을 삽입한다
e. 이번 라운드(round)의 종료되지 않은 스트링을 last_element에 넣는다
f. 상기 첫 번째 요소를 제거하고 반환한다.
2. 만약 상기 FIFO가 비워져있지 않다면, 상기 첫 번째 요소를 제거하고 반환한다.
"상기 FIFO가 비워져 있지 않다"와, "현재 리브에 인코딩된 데이터가 없다"라고 하는 말은 서로 같은 뜻을 갖는다.
실시예(정보적)
별첨[8]에 주어진 디스크립션은 스트링 및 anyUR1 형태에 의하여 매핑된, 상기 ZLibCodecType 코덱의 사용예이다.
결과(정보적)
다음의 숫자들은 디스크립션(상기 스트링 및 anyUR1 XLM 스키마 프리미티브 형태로부터 도출된 것)의 문맥 리브를 압축하기 위하여 상기 ZLibCodec을 사용하는 것에 대한 수행결과를 보여준다. 인코딩 과정 동안에 bufferSize=256 바이트의 버퍼가 사용되었다.
사용된 파일은 MPEG-7 MDS 서브그룹에 의하여 제공되었다.
파일이름 원래 크기(bytes) BiM 크기(bytes) ZLib 코덱 크기의 BiM (bytes) 집 파일 크기(Zipped file size) (bytes)
mdsExamplesClause11-12.xml 160658 22512 10602 17019
mdsExamplesClause13-15.xml 81133 11627 8538 9698
mdsExamplesClause17.xml 142426 57583 22489 21444
mdsExamplesClause4-7.xml 37208 6536 3748 7623
mdsExamplesClause8-10.xml 8179 2081 1389 2416
이하에서는 계층적 트리 리브의 컨텐트를 압축하기 위하여 본 발명에 따라 구현된 단계를 설명한다.
단계 1은 컨텐트 형태에 대한 압축 인코딩 기술을 연관하는 단계로 구성된다. 예를 들어, 선형 양자화가 부동 소수점값에 연관될 수 있다.
단계 2에서는, 서브 트리가 상기 고려된 XML 다큐먼트의 구조에 대응하는 계층적 트리 내에서 식별된다.
단계 3은 상기 식별된 서브 트리에 대한 압축 인코딩 기술을 할당하는 단계로 구성된다.
단계 4는 상기 압축 인코딩 기술을 구현하는 코덱이 활성화되었는지 아닌지 여부를 검사하는 단계로 구성된다. 만약 활성화되지 않은 경우에는, 상기 서브 트리 리브에 대한 아무런 압축(5)도 이루어지지 않는다.
만약 활성화된 경우에는, 본 발명은 상기 서브 트리 리브의 컨텐트를 압축하며, 여기서 상기 리브의 컨텐트는 상기 압축 인코딩 기술에 연관된(1) 컨텐트 형태이다.
본 발명은 XML 기반 다큐먼트를 위한 효율적인 압축 기술을 제공하며, 또한 스킵성, 높은 압축율 및 다큐먼트의 진보적인 구축을 제공하는, XML을 위한 압축 기술을 제공할 수 있다. 게다가, 본 발명은 MPEG-7 디스크립터를 효율적으로 압축할 수 있다. 또한 본 발명에 따른 XML 다큐먼트 압축 방법은 BiM 형태의 기술에 의하여 제공되는 압축율을 상당히 향상시키면서도, BiM에 의하여 제공되는 것과 동일한 기능을 제공한다.
별첨 1
별첨 2
별첨 3
별첨 4
별첨 5
별첨 6
별첨 7
별첨 8
별첨 9
참조
1- MPEG-7 시스템 FCD, N4001, MPEG 싱가포르 회의, 2001년 3월.
2- ISO/IEC 14496-1, MPEG-4 시스템, N3850.
3- ZLib API, http://www.gzip.org/zlib/, RFC 1950, RFC 1951, RFC 1952,
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1950.html 에서 사용가능.

Claims (17)

  1. 멀티미디어 신호를 묘사하는 계층적 트리를 압축하는 방법에 있어서,
    상기 트리는 노드 및 리브를 포함하며, 상기 노드와 리브는 데이터 형태라고 불리우는 적어도 두개의 구별되는 형태의 컨텐트와 연관될 수 있으며,
    상기 방법은 적어도 두개의 압축 인코딩 기술을 이용하여 상기 리브의 적어도 일부를 위한 컨텐트 압축을 구현하며, 상기 기술 각각은 상기 컨텐트 형태 중 적어도 하나와 선택적으로 연관되는 것을 특징으로 하는 계층적 트리 압축 방법.
  2. 제1항에 있어서, 적어도 하나의 서브 트리를 식별하는 단계 및 상기 서브 트리에 상기 압축 인코딩 기술 중 하나를 할당하는 단계를 포함하는 것을 특징으로 하는 계층적 트리 압축 방법.
  3. 제2항에 있어서, 컨텐트가 상기 압축 인코딩 기술과 연관된 형태인 경우 서브 트리의 리브에 대하여만 상기 서브 트리에 할당되는 상기 압축 인코딩 기술을 구현하는 단계를 포함하며, 상기 서브 트리의 다른 리브들은 압축 인코딩을 하지 않는 것을 특징으로 하는 계층적 트리 압축 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 압축 인코딩 기술의 파라미터의 디스크립션을 구현하는 것을 특징으로 하는 계층적 트리 압축 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 트리의 구조를 압축하는 단계를 포함하는 것을 특징으로 하는 계층적 트리 압축 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 트리는 상기 MPEG7 표준에 따른 BiM(바이너리 MPEG) 형태인 것을 특징으로 하는 계층적 트리 압축 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 압축 인코딩 기술 중 하나는 선형 양자화를 구현하는 것을 특징으로 하는 계층적 트리 압축 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 압축 인코딩 기술 중 하나는 통계적 압축 알고리즘을 구현하는 것을 특징으로 하는 계층적 트리 압축 방법.
  9. 제6항에 있어서, 상기 알고리즘은 GZip 형태인 것을 특징으로 하는 계층적 트리 압축 방법.
  10. 제8항 또는 제9항에 있어서, 상기 알고리즘은 적어도 두개 리브의 컨텐트에 대응하는 한 세트의 데이터를 위하여 동시에 구현되는 것을 특징으로 하는 계층적 트리 압축 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 트리는 XML 형태 다큐먼트의 구조를 대표하는 것을 특징으로 하는 계층적 트리 압축 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 서브 트리에 대한 적어도 하나의 코딩 문맥과 연관시키는 단계를 더 포함하고, 상기 코딩 문맥은 상기 계층적 트리를 디코딩하는 동안에 상기 서브 트리를 스킵하도록 허락하는 정보 조각들을 포함하는 것을 특징으로 하는 계층적 트리 압축 방법.
  13. 제12항에 있어서, 상기 정보 조각들은:
    - 상기 사용된 압축 인코딩 기술을 나타내는 정보 조각; 및/또는
    - 상기 대응하는 서브 트리가 압축되었는지 여부를 나타내는 정보 조각; 및/또는
    - 상기 대응하는 서브 트리가 스킵 가능한 것인지 여부를 나타내는 정보 조각; 및/또는
    - 상기 사용된 압축 인코딩 기술에 대한 적어도 하나의 파라미터가 수정된 것을 나타내는 정보 조각을 포함하는 것을 특징으로 하는 계층적 트리 압축 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 따라서 압축된 멀티미디어 신호를 디코딩하는 방법.
  15. 제14항에 있어서, 상기 신호에 의하여 전달된 인코딩 문맥 정보에 따라 현재의 디코딩 문맥을 재생하는 단계를 구현하는 것을 특징으로 하는 디코딩 방법.
  16. 제15항에 있어서, 상기 현재 문맥은 적어도 하나의 컨텐트 형태를 정의하고, 상기 방법은 상기 컨텐트 형태의 컨텐트를 갖는 리브에 대한 상기 컨텐트 형태에 연관된 압축 디코딩 기술을 구현하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  17. 제1항 내지 제13항 중 어느 한 항에 의하여 생성되는 신호.
KR10-2004-7000437A 2001-07-13 2002-07-12 계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법 KR20040036897A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01460047.2 2001-07-13
EP01460047A EP1276324B1 (en) 2001-07-13 2001-07-13 Method for compressing a hierarchical tree, corresponding signal and method for decoding a signal
PCT/EP2002/008667 WO2003007614A2 (en) 2001-07-13 2002-07-12 Method for compressing a hierarchical tree, corresponding signal and method for decoding a signal.

Publications (1)

Publication Number Publication Date
KR20040036897A true KR20040036897A (ko) 2004-05-03

Family

ID=8183367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7000437A KR20040036897A (ko) 2001-07-13 2002-07-12 계층적 트리, 대응하는 신호 압축 방법 및 신호 디코딩 방법

Country Status (13)

Country Link
US (1) US20040267710A1 (ko)
EP (1) EP1276324B1 (ko)
JP (2) JP2004535034A (ko)
KR (1) KR20040036897A (ko)
CN (1) CN100493187C (ko)
AT (1) ATE341901T1 (ko)
AU (1) AU2002330359A1 (ko)
BR (1) BRPI0211106B8 (ko)
CA (1) CA2452639C (ko)
DE (1) DE60123596T2 (ko)
ES (1) ES2272429T3 (ko)
MX (1) MXPA04000219A (ko)
WO (1) WO2003007614A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100660028B1 (ko) * 2005-02-23 2006-12-20 인천대학교 산학협력단 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
US10834203B2 (en) 2011-08-11 2020-11-10 Siemens Aktiengesellschaft Method and device for establishing an end-to-end communication between two networks

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7126955B2 (en) 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US8159940B1 (en) 2004-11-11 2012-04-17 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US8111694B2 (en) 2005-03-23 2012-02-07 Nokia Corporation Implicit signaling for split-toi for service guide
CN101223699A (zh) * 2005-07-21 2008-07-16 易斯普维 压缩与解压缩结构化文档的方法和装置
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
CN101584120B (zh) * 2007-01-19 2013-01-09 三菱电机株式会社 表装置、可变长度编码装置、可变长度解码装置
JP4360428B2 (ja) 2007-07-19 2009-11-11 ソニー株式会社 記録装置、記録方法、コンピュータプログラムおよび記録媒体
KR101323439B1 (ko) 2008-11-12 2013-10-29 보드 오브 트러스티스 오브 더 리랜드 스탠포드 주니어 유니버시티 특징 디스크립터를 표현하고 식별하는 방법, 장치 및 컴퓨터 판독가능 저장 매체
CN101741708B (zh) * 2008-11-13 2012-11-21 华为技术有限公司 一种存储数据的方法和装置
US8818024B2 (en) 2009-03-12 2014-08-26 Nokia Corporation Method, apparatus, and computer program product for object tracking
CN101557399A (zh) * 2009-05-20 2009-10-14 深圳市汇海科技开发有限公司 一种xmpp协议传输数据压缩与解压缩方法
US8687891B2 (en) 2009-11-19 2014-04-01 Stanford University Method and apparatus for tracking and recognition with rotation invariant feature descriptors
US9002859B1 (en) 2010-12-17 2015-04-07 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
WO2012097009A2 (en) 2011-01-10 2012-07-19 Ward Roy W Systems and methods for high-speed searching and filtering of large datasets
US9171054B1 (en) 2012-01-04 2015-10-27 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
US8990204B1 (en) 2012-01-17 2015-03-24 Roy W. Ward Processing and storage of spatial data
US10521411B2 (en) 2016-08-10 2019-12-31 Moonshadow Mobile, Inc. Systems, methods, and data structures for high-speed searching or filtering of large datasets
CN107092656B (zh) * 2017-03-23 2019-12-03 中国科学院计算技术研究所 一种树状结构数据处理方法及系统
US11379420B2 (en) * 2019-03-08 2022-07-05 Nvidia Corporation Decompression techniques for processing compressed data suitable for artificial neural networks
CN113282776B (zh) * 2021-07-12 2021-10-01 北京蔚领时代科技有限公司 用于图形引擎资源文件压缩的数据处理系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995001677A1 (en) * 1993-06-30 1995-01-12 Codex, Inc. Method and apparatus for encoding and decoding compressed data in data communication
WO1997034240A1 (en) * 1996-03-15 1997-09-18 University Of Massachusetts Compact tree for storage and retrieval of structured hypermedia documents
EP0928070A3 (en) * 1997-12-29 2000-11-08 Phone.Com Inc. Compression of documents with markup language that preserves syntactical structure
JP2000067348A (ja) * 1998-08-24 2000-03-03 Matsushita Electric Ind Co Ltd 携帯電話機及び携帯電話機による緊急通報システム
JP4003854B2 (ja) * 1998-09-28 2007-11-07 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
GB9911099D0 (en) * 1999-05-13 1999-07-14 Euronet Uk Ltd Compression/decompression method
FR2813743B1 (fr) * 2000-09-06 2003-01-03 Claude Seyrat Procede de compression/decompression de documents structures
EP1223759A1 (en) * 2001-01-08 2002-07-17 Robert Bosch Gmbh Method for providing an extension code for a binary description for multimedia data
FR2820563B1 (fr) * 2001-02-02 2003-05-16 Expway Procede de compression/decompression d'un document structure

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100660028B1 (ko) * 2005-02-23 2006-12-20 인천대학교 산학협력단 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
US10834203B2 (en) 2011-08-11 2020-11-10 Siemens Aktiengesellschaft Method and device for establishing an end-to-end communication between two networks

Also Published As

Publication number Publication date
ATE341901T1 (de) 2006-10-15
CN1528091A (zh) 2004-09-08
MXPA04000219A (es) 2005-04-19
JP2004535034A (ja) 2004-11-18
BR0211106A (pt) 2004-06-22
EP1276324B1 (en) 2006-10-04
CA2452639C (en) 2012-10-23
JP4884438B2 (ja) 2012-02-29
DE60123596T2 (de) 2007-08-16
US20040267710A1 (en) 2004-12-30
ES2272429T3 (es) 2007-05-01
CN100493187C (zh) 2009-05-27
CA2452639A1 (en) 2003-01-23
DE60123596D1 (de) 2006-11-16
JP2009043267A (ja) 2009-02-26
BRPI0211106B8 (pt) 2017-04-11
EP1276324A1 (en) 2003-01-15
WO2003007614A3 (en) 2003-10-16
WO2003007614A2 (en) 2003-01-23
BRPI0211106B1 (pt) 2016-10-18
AU2002330359A1 (en) 2003-01-29

Similar Documents

Publication Publication Date Title
JP4884438B2 (ja) 階層化ツリーを圧縮する方法及び圧縮されたマルチメディア信号をデコーディングする方法
US6633242B2 (en) Entropy coding using adaptable prefix codes
US5818877A (en) Method for reducing storage requirements for grouped data values
US7870483B2 (en) Encoding and distribution of schema for multimedia content descriptions
Wyner et al. Fixed data base version of the Lempel-Ziv data compression algorithm
KR20080049019A (ko) 구조 문서를 압축하고 해제하는 방법 및 장치
JP2004514966A (ja) Mpeg−7インスタンス用の二進フォーマット
KR100855192B1 (ko) 멀티미디어 데이터를 위한 2진 기술에 대한 확장 코드를제공하는 방법
JP2831888B2 (ja) Hdtv復号化器
US7263490B2 (en) Method for description of audio-visual data content in a multimedia environment
EP0079442B1 (en) Data translation apparatus translating between raw and compression encoded data forms
US7571152B2 (en) Method for compressing and decompressing structured documents
Timmerer et al. An evaluation of existing metadata compression and encoding technologies for MPEG-21 applications
Li et al. Lossless compression algorithms
Fang et al. Automatic generation of entropy coding programs using flavor
US6522270B1 (en) Method of coding frequently occurring values
Rakesh Data compression by Shannonfannon Algorithm
JP2004524723A (ja) バイナリマルチメディア記述のためのビットストリームの構造生成方法および該ビットストリームの構文解析方法
Tanaka et al. Interchangeability of Magneto Optical Disk for Medical Image and Information Filing Use
KR20050037307A (ko) N-트리 검색에 기초한 허프만 디코딩 방법 및 장치
Singh et al. A STUDY OF VARIOUS STANDARDS FOR TEXT COMPRESSION TECHNIQUES
Moreira et al. Addressing Image Compression Techniques on current Internet Technologies
Miller Proceedings of Symposia in Applied Mathematics Volume 34, 1986

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application