KR20130030681A - 구조화된 데이터의 부호화 및 복호화 방법과 그 장치 - Google Patents

구조화된 데이터의 부호화 및 복호화 방법과 그 장치 Download PDF

Info

Publication number
KR20130030681A
KR20130030681A KR1020110094312A KR20110094312A KR20130030681A KR 20130030681 A KR20130030681 A KR 20130030681A KR 1020110094312 A KR1020110094312 A KR 1020110094312A KR 20110094312 A KR20110094312 A KR 20110094312A KR 20130030681 A KR20130030681 A KR 20130030681A
Authority
KR
South Korea
Prior art keywords
fragments
data
encoding
structured data
fragment
Prior art date
Application number
KR1020110094312A
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 한국전자통신연구원
Priority to KR1020110094312A priority Critical patent/KR20130030681A/ko
Priority to US13/572,129 priority patent/US8723703B2/en
Publication of KR20130030681A publication Critical patent/KR20130030681A/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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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
    • 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
    • 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
    • H04N21/4351Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 부호화 및 복호화 방법과 그 장치에 관한 것으로서, 더욱 상세하게는 구조화된 데이터의 부호화 및 복호화 방법과 그 장치에 관한 것이다.
본 명세서에서 개시하는 구조화된 데이터의 부호화 방법은 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하는 단계 및 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여, 프래그먼트들 각각을 부호화하여 부호화 프래그먼트들을 생성하는 단계를 포함한다.

Description

구조화된 데이터의 부호화 및 복호화 방법과 그 장치{Encoding and Decodng Method for Structured Data and Apparatus thereof}
본 발명은 부호화 및 복호화 방법과 그 장치에 관한 것으로서, 더욱 상세하게는 구조화된 데이터의 부호화 및 복호화 방법과 그 장치에 관한 것이다.
최근 통신기술의 발전으로 인해 다양한 데이터 서비스가 개발되어 제공되고 있다. 특히, 방송서비스 분야에서는 아날로그 방식에서 디지털 방식으로 전환되면서 다양한 콘텐츠의 지원과 함께 기존의 통신분야에서 제공되는 데이터 서비스를 융합하여 제공하는 형태로 진화되고 있다.
최근의 스마트 TV는 사업자가 제공하는 서비스뿐만 아니라 개방화된 인터넷 상의 콘텐츠(Contents)나 서비스를 마음대로 검색하고 실행할 수 있는 형태를 표방하고 있다. 따라서, 다양한 콘텐츠와 서비스를 검색하기 위하여 IPTV(Internet Protocol Television)나 인터넷 TV 그리고 스마트 TV 사업자 등은 기존에 방송 중심의 기술로 접근했던 서비스 검색 기술을 웹 검색이나 XML(eXtensible MarkUp Language) 방식의 기술로 대체하는 추세이다. 특히, TV-Anytime(TVA)은 많은 국내외 표준에서 참조 규격으로 활용되고 있으며, 국내 IPTV, DMB(Digital Multimedia Broadcasting) 에서도 참조되어 규격이 만들어지고 있다.
TVA을 예로 들어 설명하면, TVA에서는 XML로 서비스 검색 정보를 표현하고 이를 위한 문서의 구조와 테이블들을 정의하고 있다. 따라서 방송, VOD(Video On Demand) 그리고 애플리케이션(Application)과 같은 다양한 서비스와 콘텐츠를 설명하기 위한 정의가 규정되어 있다.
XML 기반의 서비스 검색 정보는 텍스트 기반으로 기술되어 비교적 문서의 크기가 크고, 접근되는 정보의 양이 많다. 특히, 방송 서비스가 VOD나 개방형 콘텐츠의 지원이 추가되면서, TVA에서의 XML 기반 서비스 검색 정보 등과 같은 정보의 효율적인 부호화 및 복호화 방법이 요구된다.
본 명세서에서 개시하는 발명들은 전술한 문제점을 해결하기 위한 것으로서, 구조화된 데이터의 효율적인 부호화 및 복호화 방법과 장치를 제공한다.
본 명세서에서 개시하는 발명의 일 실시예인 구조화된 데이터의 부호화 방법은 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하는 단계 및 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여, 프래그먼트들 각각을 부호화하여 부호화 프래그먼트들을 생성하는 단계를 포함한다.
본 명세서에서 개시하는 발명의 일 실시예인 구조화된 데이터의 부호화 장치는 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하는 단편화부 및 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여, 프래그먼트들을 각각 부호화하여 부호화 프래그먼트들을 생성하는 부호화부를 포함한다.
본 명세서에서 개시하는 발명의 일 실시예인 구조화된 데이터의 복호화 방법은 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하고, 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여 프래그먼트를 부호화한 부호화 프래그먼트들 및 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 단계 및 데이터테이블을 이용하여 부호화 프래그먼트를 복호화하는 단계를 포함한다.
본 명세서에서 개시하는 발명의 일 실시예인 구조화된 데이터의 복호화 장치는 구조화된 데이터를 구성에 따라 프래그먼트로 단편화하고, 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여 프래그먼트들을 부호화한 부호화 프래그먼트들 및 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 수신부 및 문자열 테이블을 이용하여 부호화 프래그먼트들을 복호화하는 복호화부를 포함한다.
본 명세서에서 개시하는 발명들은 구조화된 데이터의 부호화 및 복호화를 효율적으로 수행할 수 있는 방법과 장치를 제공함으로써, 네트워크 대역폭, 메모리, 처리속도 등 전체 시스템에 대한 운영 효율성을 향상시킬 수 있다.
도 1은 본 명세서에서 개시하는 구조화된 데이터의 부호화 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 2는 본 명세서에서 개시하는 구조화된 데이터의 복호화 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 3은 본 명세서에서 개시하는 구조화된 데이터의 부호화 장치 및 복호화 장치에 대한 실시예를 설명하기 위한 도면이다.
도 4는 TVA에서의 문서의 종류와 구조를 설명하기 위한 도면이다.
도 5 및 도6은 는 TVA에서의 단편화(fragmentation) 및 캡슐화(encapsulation)를 설명하기 위한 도면이다.
도 7은 IPTV의 콘텐츠 가이드 규격에 따라 생성된 Program Information(PI)에 대한 프래그먼트의 중복성을 설명하기 위한 도면이다.
도 8을 본 명세서에서 개시한 발명을 EXI 인코딩에 적용한 실시예를 설명하기 위한 도면이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비 휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.
본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
본 명세서에서는 구조화된 데이터의 부호화 및 복호화 방법과 장치에 대한 발명을 개시한다.
구조화된 데이터는 일정한 규칙에 따라 작성된 데이터를 의미하는 것으로서, 계층구조(hierarchy structure) 또는 트리구조(tree structure)를 갖는 데이터의 형태를 포함한다. 이러한 구조화된 데이터의 예로서 메타데이터(Metadata), HTML(HyperText Markup Language) 문서 또는 XML 문서 등을 들 수 있다. 여기서, 메타데이터는 데이터에 관한 구조화된 데이터로서 다른 데이터를 설명해 주는 데이터를 의미한다.
구조화된 데이터에서의 데이터는 문자열로 구성된 텍스트 문서에 대한 데이터를 포함하고 있으나, 이에 한정되는 것은 아니다. 따라서, 구조화되어 있는 영상 또는 이미지에 대한 데이터에도 확장하여 적용될 수 있다.
이하 본 명세서에서 개시하는 발명에 대한 다양한 실시예를 도면과 함께 구체적으로 설명한다.
도 1은 본 명세서에서 개시하는 구조화된 데이터의 부호화 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 1을 참조하면, 구조화된 데이터의 부호화 방법은 구조화된 데이터를 구성에 따라 프래그먼트(fragment)로 단편화(fragmentation)하는 단계(S101) 및 구조화된 데이터에 대한 데이터테이블(data-table)을 이용하여(S105), 프래그먼트를 부호화하여 부호화 프래그먼트를 생성하는 단계(S103)를 포함한다.
구조화된 데이터는 계층구조 또는 트리구조 등과 같이 데이터의 구성에 따라 분리될 수 있으며, 구성에 따라 분리된 데이터를 프래그먼트라 칭한다. 단편화 과정(S101)은 구조화된 데이터를 프래그먼트로 분리하는 과정으로서, 구조화된 데이터를 계층구조 또는 트리구조 등과 같은 구성을 기준으로 단편화하게 된다. 여기서 단편화의 기준은 계층구조 또는 트리구조 등과 같은 구성에 기초하여 기 설정된 기준을 이용할 수 있으며, 또는 부호화하는 과정에서 구조화된 데이터를 분석함으로써 단편화의 기준을 생성할 수도 있다.
구조화된 데이터에 대한 데이터테이블은 구조화된 데이터 또는 프래그먼트를 구성하는 데이터를 숫자코드, 인덱스 등에 대응시킨 것으로서, 반복적으로 사용되는 데이터를 테이블화할 수 있다. 데이터테이블로 구성할 데이터는 기 설정된 기준에 따라 생성하거나 또는 부호화하는 과정에서 구조화된 데이터를 분석함으로써 생성할 수도 있다. 또한 스키마에서 정의하는 엘리먼트(element)를 데이터테이블의 구성에 포함시킬 수 있다.
여기서, 구조화된 데이터는 메타데이터를 포함할 수 있고, 데이터테이블은 구조화된 데이터에 포함된 문자열에 대한 테이블을 포함할 수 있다.
단편화된 프래그먼트는 구조화된 데이터에 포함된 문자열에 대한 데이터 테이블을 공유하는 방식으로 이용할 수 있다. 본 발명의 일 구현예에 따라, 문자열 테이블을 데이터로 저장하고, 문자열 테이블내에 포함된 문자열에 대하여 문자열에 대응하는 인덱스를 더 포함하게 구성할 수 있다. 단편화된 프래그먼트들은 문자열에 대응하는 인덱스를 이용함으로써 하나의 데이터를 여러 개의 프래그먼트들이 공유하는 방식으로 문자열 테이블을 이용할 수 있다.
본 실시예에 따른 구조화된 데이터의 부호화 방법은 부호화 프래그먼트, 부호화 프래그먼트에 대한 프래그먼트 정보를 포함하는 데이터블록을 생성하는 단계(S107)를 더 포함할 수 있다.
여기서, 데이터블록은 데이터테이블을 더 포함할 수 있다. 데이터테이블이 데이터블록에 포함되어 복호화 장치(decoder)로 전송되면, 복호화 장치는 수신한 데이터테이블을 이용하여 프래그먼트를 복호화할 수 있다. 한편, 복호화 장치가 본 실시예에서의 부호화 방법을 이용한 부호화 장치(encoder)에서의 데이터테이블에 대한 정보를 이미 공유 또는 보유한 경우에는 데이터블록에 데이터테이블이 포함되지 않도록 함으로써 전송데이터의 크기를 줄일 수도 있다.
프래그먼트 정보는 데이터블록 내의 프래그먼트에 대한 식별정보를 포함할 수 있다. 식별정보에는 해당 프래그먼트가 저장되어 있는 위치 정보, 해당 프래그먼트의 버전 정보 등을 더 포함할 수 있다.
한편, 데이터블록은 단편화된 구조화된 데이터의 구성정보를 더 포함할 수 있다. 여기서 구성정보는 계층구조 또는 트리구조 등과 같이 구조화된 데이터에 대한 구성정보를 의미하는 것으로서, 복호화 장치는 이러한 구성정보를 이용하여 프래그먼트로부터 구조화된 데이터를 복원하게 된다.
도 2는 본 명세서에서 개시하는 구조화된 데이터의 복호화 방법에 대한 일 실시예를 설명하기 위한 도면이다.
도 2를 참조하면, 구조화된 데이터의 복호화 방법은 구조화된 데이터를 구성에 따라 프래그먼트로 단편화하고, 구조화된 데이터에 대한 데이터테이블을 이용하여 프래그먼트를 부호화한 부호화 프래그먼트 및 부호화 프래그먼트에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 단계(S201) 및 데이터테이블을 이용하여(S205) 부호화 프래그먼트를 복호화하는 단계(S203)를 포함한다.
구조화된 데이터는 메타데이터를 포함할 수 있으며, 데이터테이블은 구조화된 데이터에 포함된 문자열에 대한 테이블을 포함할 수 있다.
단편화된 프래그먼트는 구조화된 데이터에 포함된 문자열에 대한 데이터 테이블을 공유하는 방식으로 이용할 수 있다.
데이터테이블은 기 저장된 정보를 이용할 수 있다. 예를 들어, 본 실시예에 따른 복호화 방법을 수행하는 복호화 장치에서 부호화 장치에서의 데이터테이블에 대한 정보를 이미 공유 또는 보유한 경우에는 별도의 데이터테이블을 수신할 필요가 없으며, 이에 따라 프래그먼트를 파싱하면서 데이터테이블의 생성없이 복호화를 수행할 수 있다.
한편, 데이터블록은 데이터테이블을 더 포함할 수 있으며, 이 경우에는 수신한 데이터블록에서 데이터테이블을 메모리에 적재하고 각 프래그먼트를 순차적으로 복호화하며, 인코딩된 스트림 내에 해당 엘리먼트에 대한 인덱스가 발견되면 이를 데이터테이블에 대응하는 값으로 치환하여 복호화될 데이터에 삽입하게 된다. 따라서, 인코딩된 스트림으로부터 데이터테이블을 생성하는 단계를 생략할 수 있어 복호화 시간이 줄어들 수 있게 된다.
프래그먼트 정보는 데이터블록 내의 부호화 프래그먼트에 대한 식별정보를 포함할 수 있고, 데이터블록은 단편화된 구조화된 데이터의 구성정보를 더 포함할 수 있다.
기타 부호화에 대응되는 복호화에 대한 자세한 설명은 전술한 부호화 방법에 대응되므로 여기서는 생략하도록 한다.
도 3은 본 명세서에서 개시하는 구조화된 데이터의 부호화 장치 및 복호화 장치에 대한 실시예를 설명하기 위한 도면이다.
도 3을 참조하면, 구조화된 데이터의 부호화 장치(310)는 구조화된 데이터를 구성에 따라 프래그먼트로 단편화하는 단편화부(311) 및 구조화된 데이터에 대한 데이터테이블(315)을 이용하여, 프래그먼트를 부호화하여 부호화 프래그먼트를 생성하는 부호화부(313)를 포함한다.
구조화된 데이터는 메타데이터를 포함할 수 있고, 데이터테이블(315)은 구조화된 데이터에 포함된 문자열에 대한 테이블을 포함할 수 있다. 문자열은 스키마에서 정의한 엘리먼트에 대한 문자열을 포함할 수 있다.
한편, 구조화된 데이터의 부호화 장치는 부호화 프래그먼트, 부호화 프래그먼트에 대한 프래그먼트 정보를 포함하는 데이터블록을 생성하는 데이터블록 생성부(317)를 더 포함할 수 있다.
데이터블록은 데이터테이블(315)에 대한 정보를 더 포함할 수 있고, 프래그먼트 정보는 데이터블록 내의 프래그먼트에 대한 식별정보를 포함할 수 있다. 데이터블록은 단편화된 구조화된 데이터의 구성정보를 더 포함할 수 있다.
도 3에서 데이터테이블(315)에서 데이터블록 생성부(317)로 이어진 점선은 데이터블록에 데이터테이블에 대한 정보를 더 포함시키는 경우를 나타내기 위한 것이다.
데이터블록 생성부(317)에서 생성된 데이터블록은 네트워크를 통해 복호화 장치(320)로 전송된다.
구조화된 데이터의 복호화 장치(320)는 부호화 장치(310)로부터 네트워크를 통해 데이터블록을 수신한다. 구조화된 데이터의 복호화 장치(320)는 구조화된 데이터를 구성에 따라 프래그먼트로 단편화하고, 구조화된 데이터에 대한 데이터테이블을 이용하여 프래그먼트를 부호화한 부호화 프래그먼트 및 부호화 프래그먼트에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 수신부(321) 및 데이터테이블(325)을 이용하여 부호화 프래그먼트를 복호화하는 복호화부(323)를 포함한다.
구조화된 데이터는 메타데이터를 포함할 수 있고, 데이터테이블(325)은 구조화된 데이터에 포함된 문자열에 대한 테이블을 포함할 수 있다. 여기서, 문자열은 스키마에서 정의한 엘리먼트에 대한 문자열을 포함할 수 있다.
데이터테이블(325)은 복호화 장치(320)에 기 저장된 정보일 수 있으며, 또는 데이터테이블에 대한 정보는 부호화 장치(310)에서의 데이터테이블(315)에 대한 정보로서 데이터블록에 포함되어 수신된 정보일 수 있다.
프래그먼트 정보는 데이터블록 내의 부호화 프래그먼트에 대한 식별정보를 포함할 수 있고, 데이터블록은 단편화된 상기 구조화된 데이터의 구성정보를 더 포함할 수 있다.
도 3에서 수신부(321)에서 데이터테이블(325)로 이어진 점선은 수신된 데이터블록에 부호화 장치(310)로부터의 데이터테이블에 대한 정보가 더 포함된 경우를 나타내기 위한 것이다.
구조화된 데이터의 부호화 장치(310) 및 복호화 장치(320)에 대한 구체적인 설명은 전술한 구조화된 데이터의 부호화 방법 및 복호화 방법에서 상세히 설명하였으므로, 여기서는 생략하기로 한다.
<구체적인 실시예 >
이하에서는 본 명세서에서 개시한 발명에 대한 구체적인 실시예를 TVA의 규격을 예로 들어 설명한다.
도 4는 TVA에서의 문서의 종류와 구조를 설명하기 위한 도면이다.
도 4를 참조하면, '"TVAMain" root element'는 트리 구조로서 'Content description metadata', 'Instance description metadata', 'Consumer metadata', 'Segmentation metadata' 등으로 구성된다. 이러한 각 구성은 하위 트리 구조를 갖으며, 'Content description metadata'의 경우 'Program Information Table', 'Group Information Table', 'Credits Information Table', 'Program Review Table' 등으로 구성된다. 또한, 'Program Information Table'은 하위의 프래그먼트를 갖게 된다.
여기서, '"TVAMain" root element', 'Content description metadata', 'Program Information Table'까지의 계층을 TVAMain 프래그먼트로 분류하고, 'Program Information Table' 계층의 하위를 프래그먼트로 분류한다.
도 5 및 도6은 는 TVA에서의 단편화(fragmentation) 및 캡슐화(encapsulation)를 설명하기 위한 도면이다.
TVA에서는 인코딩과 인덱싱을 이용한 XML 문서의 캡슐화 기술을 정의하고 있다. 캡슐화는 비선형 트리 형태의 XML 문서를 독립된 개체로 분리하여 각각을 압축 알고리즘을 통해 크기를 줄이고, 컨테이너(container)라는 블록(block)에 인코딩 된 문서를 넣고 구성 정보를 컨테이너 헤더(header)에 기술하는 것을 의미한다.
도 5를 참조하면, TVA metadata description 과 같은 구조화된 문서(501)를 TVAMain 프래그먼트(503)와 그 하위의 프래그먼트(504, 505, 506, 507)로 단편화(502)하고, 도 6과 같은 블록(601)에 컨테이너(602, 603, 604)의 형태로 구성하여 전송하고, 수신된 블록을 복호화하여 원래의 구조화된 문서(508)로 복원하게 된다. 도 6에서는 3개의 컨테이너(602, 603, 605)가 캡슐화되었고, 제1 컨테이너(602)에는 TVA main fragment 가 포함되어 있고, 제2, 3 컨테이너(603, 604)에는 소정 그룹의 프래그먼트와 이에 대한 식별자(fragment ID) 및 버전 정보를 포함하고 있다.
캡슐화 과정에서 각 XML 문서의 크기를 줄이기 위하여 인코딩 알고리즘을 이용하여 압축과정을 거치게 되며 사용되는 알고리즘에 따라 효율이 달라지게 된다. 일반적으로 GZIP(GNU ZIP)을 많이 사용하며 Fast-Info set, BiM(Binary format of Metadata), EXI(Efficient XML Interchange) 등 다양한 알고리즘이 제안되고 있다.
대부분의 알고리즘은 XML을 구성하는 정보의 패턴을 분석하여 동일한 패턴이 나오면 이를 대신하는 인코딩 정보로 대체하여 문서의 크기를 줄이는 방식을 채택한다. 예를 들면, XML 문서에 “aaa”는 문자열이 여러 번 나오면 첫 번째는 그대로 인코딩 스트림에 넣고, “aaa”를 문자열 테이블에 삽입한 후 다음에 나오는 “aaa”는 문자열 테이블의 인덱스로 대체하여 인코딩 스트림에 넣는 것을 들 수 있다. 따라서 “aaa”가 숫자코드로 변환되어 크기가 상대적으로 줄어들게 된다.
일반적으로 인코딩 알고리즘의 효율은 문서의 크기와 밀접한 관련이 있는데 동일한 정보의 패턴이 자주 나오려면 상대적으로 문서의 크기가 클수록 인코딩 효율이 높아질 수 있다.
도 7은 IPTV의 콘텐츠 가이드 규격에 따라 생성된 Program Information(PI)에 대한 프래그먼트의 중복성을 설명하기 위한 도면이다. 도 7(a)는 "시사와이드 생방송 여의도 저널"에 대한 Program Information 프래그먼트이고, 도 7(b)는 "울랄라 코리아(24회)"에 대한 Program Information 프래그먼트이다. 도 7의 (a)와 (b)를 비교하면, 장르나 해상도 등의 콘텐츠를 설명하기 위한 정보가 각 콘텐츠 별로 중복하여 존재하게 된다.
TVA 메타데이터 전송 모델에 따르면 도 5와 같은 전체 디스크립션(501)을 프래그먼트 단위(503, 504, 505, 506)로 단편화하여 쪼갠다. 이를 Program Information 에 적용하면 각 콘텐츠를 설명하는 단위로 나뉘게 된다. 따라서, 전체 디스크립션을 인코딩 알고리즘에 적용하게 되면 장르, 해상도, 등급 등의 엘리먼트와 그 값이 중복됨으로써 인덱스로 대체될 수 있는 정보들이 각 프래그먼트 단위로 인코딩됨으로써 원래의 문자열 그대로 인코딩 스트림에 포함되어 전송된다. 따라서 압축 효율이 급격히 줄어들게 되며 단말의 입장에서나 사업자의 입장에서 네트워크 대역폭 및 메모리에 대한 부담이 커지게 된다.
일반적으로 BBC에서 제공하는 2010년도 Program Information 문서를 분석한 결과 프래그먼트는 1-2KB 정도 크기이고, 디스크립션은 1KB에서 64KB까지 다양했다. 64KB의 경우 GZIP 알고리즘은 1/20 정도로 문서의 크기가 줄어들었고, EXI의 경우 1/40까지 문서의 크기가 줄어들었다. 그러나, 디스크립션을 프래그먼트로 나누어 캡슐화하면 결국 각 프래그먼트의 압축률이 전체 디스크립션의 압축률이 되는데 GZIP의 경우 2/3정도로만 줄어들고, EXI의 경우 1/2 정도의 크기로 문서가 압축됨을 알 수 있었다. 이는 프래그먼트의 크기가 1-2KB로 나누어져 인코딩됨으로써 압축 효과가 반감되어 나타나는 현상이다.
본 명세서에서 개시하는 발명에서 제안하는 방법은 TVA 프래그먼트가 블록단위로 구성되는 컨테이너에 각 프래그먼트가 공유할 수 있는 문자열 테이블을 포함 시킨다. 각 컨테이너에 포함된 프래그먼트를 하나의 논리적인 큰 디스크립션 문서로 두고 디스크립션을 구성하는 프래그먼트가 하나의 문자 테이블을 공유하도록 인코딩 및 디코딩 구조를 설계함으로써, 중복되는 문자열에 대한 부호화 효율을 향상시킬 수 있다.
도 8을 본 명세서에서 개시한 발명을 EXI 인코딩에 적용한 실시예를 설명하기 위한 도면이다. 본 명세서에서 개시한 발명은 EXI 인코딩 방법 외에 문자열 테이블 방식을 사용하는 인코딩 알고리즘에는 모두 적용할 수 있다.
도 8을 참조하면, Program Information 문서(810)는 복수의 프래그먼트(811, 812, 813)로 단편화된다. 단편화된 프래그먼트(811, 812, 813)는 부호화기(EXI encoder; 820)에서 EXI 스트림(830)으로 부호화된다. 데이터컨테이너(840)는 TVA에서 정의한 규격을 사용하고 캡슐화구조(841), 바이너리 저장소(842), 문자열 저장소(843) 등을 포함한다.
캡슐화 구조(841)에는 프래그먼트(811, 812, 813)가 바이너리 저장소(842)의 어느 위치에 저장되어 있는지에 대한 위치정보, 버전정보 및 식별자 등을 포함하여 관리할 수 있다. 부호화된 프래그먼트는 바이너리 저장소(842)에 차례대로 저장되고 프래그먼트 내의 문자열 값은 하나의 문자열 테이블로 구성되어 문자열 저장소(843)에 저장된다. 문자열 테이블은 바이너리 형태로 변환되어 바이너리 저장소(842)에 저장될 수도 있다.
따라서, 데이터 컨테이너(840) 하나에 포함되는 프래그먼트(811, 812, 813) 간에는 문자열 테이블이 공유되고 동일한 문자열 값이 프래그먼트 간에 존재하면, 부호화 시 공유 문자열 테이블 내의 인덱스로 대체되어 인코딩 스트림에 삽입됨으로써 압축 효율이 향상될 수 있다. 기존의 알고리즘 방식은 각 프래그먼트 별로 문자열 테이블 구성을 위한 정보가 관리됨으로써 프래그먼트 간에 존재할 수 있는 문자열의 중복성이 사라지게 되고 그에 따라 효율이 감소한다.
복호화할 때에는 복호화 장치가 데이터컨테이너(840)을 수신하여 우선 문자열 저장소(843)의 문자열 테이블을 메모리에 적재하고 각 프래그먼트를 순차적으로 복호화하며, 인코딩 스트림 내에 인덱스가 발견되면 이를 공유 문자열 테이블 내의 인덱스에 대응되는 문자열 값으로 치환하여 XML 문서에 삽입하게 된다. 따라서 원래의 알고리즘과 같이 인코딩된 스트림으로부터 문자열 테이블을 생성하는 단계조차 생략되어 복호화 시간이 줄어들게 되는 장점이 있다.
추가적으로 Fast-Info set과 같이 스키마의 엘리먼트 이름도 문자열 테이블을 이용하여 관리하는 경우는 스키마를 통해 미리 사용되는 엘리먼트의 이름을 문자열 테이블에 넣어둠으로써 프래그먼트를 파싱하면서 문자열 테이블을 생성하는 시간도 절약할 수 있다.
특히, 복호화기를 포함하는 단말기에서도 동일한 스키마를 가지고 있는 경우, 스키마에 기술된 엘리먼트의 이름은 문자열 저장소에 포함되지 않고 단말기에서 자동으로 생성되도록 하거나 기 저장되도록 할 수도 있으며, 이 경우는 공유 문자열 테이블 크기를 줄일 수 있고 부호화 시 문자열 테이블 생성에 드는 절차를 간소화할 수 있다.
결국, 본 명세서에서 개시한 발명에 따르면, TVA 디스크립션을 단편화하여 캡슐 구조에 넣어 전송하는 과정에서 손실되는 인코딩 효율을 최대한 방지할 수 있는 효과가 있다.
특히 Fast-Info set과 같이 엘리먼트나 값 모두를 문자열 테이블 방식을 통해 부호화하는 경우 매우 효과가 높을 수 있으며, EXI나 WBXML 등과 같이 엘리먼트 값의 유형이 문자열인 경우 문자열 테이블 방식을 사용하므로 압축 효율 향상의 효과를 발생시킬 수 있다.
이상에서 실시 예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
310: 부호화 장치 320: 복호화 장치
311: 단편화부 321: 수신부
313: 부호화부 323: 복호화부
314: 데이터테이블 325: 데이터테이블
315: 데이터블록 생성부

Claims (19)

  1. 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하는 단계; 및
    상기 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여, 상기 프래그먼트들 각각을 부호화하여 부호화 프래그먼트들을 생성하는 단계를 포함하는, 구조화된 데이터의 부호화 방법.
  2. 제1항에 있어서,
    상기 구조화된 데이터는 메타데이터를 포함하며,
    상기 문자열 테이블은 상기 프래그먼트들에 의하여 공유되는 것을 특징으로 하는, 구조화된 데이터의 부호화 방법.
  3. 제1항에 있어서, 상기 문자열 테이블은
    문자열에 대응하는 인덱스를 더 포함하는 것을 특징으로 하는 구조화된 데이터의 부호화 방법.
  4. 제1항에 있어서,
    상기 부호화 프래그먼트들, 상기 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 생성하는 단계를 더 포함하는, 구조화된 데이터의 부호화 방법.
  5. 제4항에 있어서,
    상기 데이터블록은
    상기 문자열 테이블을 더 포함하는, 구조화된 데이터의 부호화 방법.
  6. 제4항에 있어서,
    상기 프래그먼트 정보는
    상기 데이터블록 내의 상기 프래그먼트들에 대한 식별정보를 포함하는, 구조화된 데이터의 부호화 방법.
  7. 제5항에 있어서,
    상기 데이터블록은
    상기 단편화된 상기 구조화된 데이터의 구성정보를 더 포함하는, 구조화된 데이터의 부호화 방법.
  8. 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하는 단편화부; 및
    상기 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여, 상기 프래그먼트들을 각각 부호화하여 부호화 프래그먼트들을 생성하는 부호화부를 포함하는, 구조화된 데이터의 부호화 장치.
  9. 제8항에 있어서,
    상기 부호화 프래그먼트들, 상기 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 생성하는 데이터블록 생성부를 더 포함하는, 구조화된 데이터의 부호화 장치.
  10. 구조화된 데이터를 구성에 따라 프래그먼트들로 단편화하고, 상기 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여 상기 프래그먼트를 부호화한 부호화 프래그먼트들 및 상기 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 단계; 및
    상기 데이터테이블을 이용하여 상기 부호화 프래그먼트를 복호화하는 단계를 포함하는, 구조화된 데이터의 복호화 방법.
  11. 제10항에 있어서,
    상기 구조화된 데이터는 메타데이터를 포함하며,
    상기 문자열 테이블은 상기 프래그먼트들에 의하여 공유되는 것을 특징으로 하는, 구조화된 데이터의 복호화 방법.
  12. 제10항에 있어서,
    상기 문자열 테이블은
    문자열에 대응하는 인덱스를 더 포함하는 것을 특징으로 하는 구조화된 데이터의 복호화 방법.
  13. 제10항에 있어서,
    상기 데이터테이블은
    기 저장된 정보를 이용하는, 구조화된 데이터의 복호화 방법.
  14. 제10항에 있어서,
    상기 데이터블록은
    상기 문자열 테이블을 더 포함하는, 구조화된 데이터의 복호화 방법.
  15. 제10항에 있어서,
    상기 프래그먼트 정보는
    상기 데이터블록 내의 상기 부호화 프래그먼트에 대한 식별정보를 포함하는, 구조화된 데이터의 복호화 방법.
  16. 제10항에 있어서,
    상기 데이터블록은
    상기 단편화된 상기 구조화된 데이터의 구성정보를 더 포함하는, 구조화된 데이터의 복호화 방법.
  17. 구조화된 데이터를 구성에 따라 프래그먼트로 단편화하고, 상기 구조화된 데이터에 포함된 문자열들을 포함하는 문자열 테이블을 이용하여 상기 프래그먼트들을 부호화한 부호화 프래그먼트들 및 상기 부호화 프래그먼트들에 대한 프래그먼트 정보를 포함하는 데이터블록을 수신하는 수신부; 및
    상기 문자열 테이블을 이용하여 상기 부호화 프래그먼트들을 복호화하는 복호화부를 포함하는, 구조화된 데이터의 복호화 장치.
  18. 제19항에 있어서,
    상기 문자열 테이블은
    기 저장된 정보를 이용하는, 구조화된 데이터의 복호화 장치.
  19. 제19항에 있어서,
    상기 데이터블록은
    상기 문자열 테이블을 더 포함하는, 구조화된 데이터의 복호화 장치.

KR1020110094312A 2011-09-19 2011-09-19 구조화된 데이터의 부호화 및 복호화 방법과 그 장치 KR20130030681A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110094312A KR20130030681A (ko) 2011-09-19 2011-09-19 구조화된 데이터의 부호화 및 복호화 방법과 그 장치
US13/572,129 US8723703B2 (en) 2011-09-19 2012-08-10 Method and apparatus for encoding and decoding structured data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110094312A KR20130030681A (ko) 2011-09-19 2011-09-19 구조화된 데이터의 부호화 및 복호화 방법과 그 장치

Publications (1)

Publication Number Publication Date
KR20130030681A true KR20130030681A (ko) 2013-03-27

Family

ID=47880162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110094312A KR20130030681A (ko) 2011-09-19 2011-09-19 구조화된 데이터의 부호화 및 복호화 방법과 그 장치

Country Status (2)

Country Link
US (1) US8723703B2 (ko)
KR (1) KR20130030681A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128912B2 (en) * 2012-07-20 2015-09-08 Fujitsu Limited Efficient XML interchange schema document encoding
GB2505912B (en) * 2012-09-14 2015-10-07 Canon Kk Method and device for generating a description file, and corresponding streaming method
GB2509178B (en) * 2012-12-24 2015-10-14 Canon Kk Method for transmitting metadata documents associated with a video
US20180048408A1 (en) * 2015-04-27 2018-02-15 Sharp Kabushiki Kaisha Service signaling extensions
US10621041B2 (en) 2016-03-25 2020-04-14 Intel Corporation Methods and apparatus to assign indices and relocate object fragments in distributed storage systems
US10095680B1 (en) * 2016-04-26 2018-10-09 Servicenow, Inc. Systems and methods for reduced memory usage when processing spreadsheet files
US10474368B1 (en) 2018-04-24 2019-11-12 Western Digital Technologies, Inc Fast read operation utilizing reduced storage of metadata in a distributed encoded storage system
US10749958B2 (en) 2018-04-24 2020-08-18 Western Digital Technologies, Inc. Reduced storage of metadata in a distributed encoded storage system
US10216424B1 (en) 2018-04-25 2019-02-26 Western Digital Technologies, Inc. Staging of write operations for container-based storage for sequential media

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100968083B1 (ko) 2002-07-15 2010-07-05 지멘스 악티엔게젤샤프트 구조화된 문서들, 특히 xml 문서들을인코딩/디코딩하기 위한 방법 및 장치
KR20060123197A (ko) * 2003-11-07 2006-12-01 이엑스피웨이 구조적 문서의 압축 및 압축 해제 방법
US7441185B2 (en) 2005-01-25 2008-10-21 Microsoft Corporation Method and system for binary serialization of documents

Also Published As

Publication number Publication date
US8723703B2 (en) 2014-05-13
US20130069806A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
KR20130030681A (ko) 구조화된 데이터의 부호화 및 복호화 방법과 그 장치
JP2011198372A (ja) Xmlドキュメントの構造化方法
CA2741082C (en) Conditional processing method and apparatus
US7512955B2 (en) Method and system for accessing and implementing declarative applications used within digital multi-media broadcast
US20020120652A1 (en) Two-stage mapping for application specific markup and binary encoding
KR20100008741A (ko) 리치미디어 서비스를 제공하는 방법 및 장치
De Neve et al. BFlavor: a harmonized approach to media resource adaptation, inspired by MPEG-21 BSDL and XFlavor
Zhang et al. Design and implementation of broadcast file system based on DSM-CC data carousel protocol
De Neve et al. Using bitstream structure descriptions for the exploitation of multi-layered temporal scalability in H. 264/AVC’s base specification
KR100968083B1 (ko) 구조화된 문서들, 특히 xml 문서들을인코딩/디코딩하기 위한 방법 및 장치
Van Deursen et al. gBFlavor: a new tool for fast and automatic generation of generic bitstream syntax descriptions
KR100910061B1 (ko) 디지털 방송을 위한 메타데이터 부호화/복호화 장치 및 그방법
Oh et al. The global string table based TVA metadata encapsulation architecture
Hong et al. XFlavor: providing XML features in media representation
JP2004180258A (ja) 構造化データの送信装置
JP2004318807A (ja) 構造化データの受信方法
JP2004318196A (ja) 構造化データの受信プログラム
JP2004318806A (ja) 構造化データの受信方法
JP2004318804A (ja) 構造化データの受信方法
JP2004318803A (ja) 構造化データの受信方法
JP2004318776A (ja) 構造化データの受信装置
JP2004318193A (ja) 構造化データの受信プログラム
JP2004318805A (ja) 構造化データの受信方法
JP2004318195A (ja) 構造化データの受信プログラム
JP2004318808A (ja) 構造化データの受信方法

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