인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법

申请号 KR1020057008717 申请日 2003-10-30 公开(公告)号 KR101032240B1 公开(公告)日 2011-05-02
申请人 지멘스 악티엔게젤샤프트; 发明人 코쉬,하랄트; 호이어,외르크; 후터,안드레아스; 코플러-포크트,안드레아;
摘要 본 발명은 하나 또는 여러개의 인덱스 노드들이 할당되는 다수의 계층적 레벨들을 포함하는 인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법에 관한 것이다. 상기 인덱스 노드들은 하나 또는 여러 개의 주어진 기준에 따라 인덱싱 트리에서 분류되는 인덱스 데이터를 포함한다. 본 발명의 방법에 따라, 인덱스 노드들의 인덱스 데이터는 비트 스트림에 삽입되고, 각각의 노드의 계층적 레벨의 하위에 위치되는 계층적 레벨의 하나 또는 여러개의 인덱스 노드들이 위치되는 비트 스트림 내 위치에 관한 정보가 인덱스 노드에 대한 비트 스트림에 삽입된다.
权利要求
  • 인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법으로서,
    (a) 상기 인덱싱 트리는 다수의 계층적 레벨들을 포함하고, 각각의 계층적 레벨에는 하나 이상의 인덱스 노드들(K1, K2, K3, K4)이 할당되며,
    (b) 상기 인덱스 노드들(K1, K2, K3, K4)은 하나 이상의 미리 결정된 기준들에 따라 상기 인덱싱 트리에 분류되는 인덱스 데이터를 포함하고,
    (c) 상기 인덱스 노드(K1)는 부모 노드로서 표시되고 상기 인덱스 노드들(K2, K3, K4)은 자식 노드들로서 표시되며, 적어도 하나의 자식 노드가 상기 부모 노드(K1)로부터 분기하고 상기 자식 노드는 더 낮은 계층적 레벨에 위치되며,
    상기 인덱스 노드들(K1, K2, K3, K4)의 상기 인덱스 데이터는 상기 비트 스트림에 삽입되고, 이에 의해 상기 부모 노드(K1)의 인덱스 데이터 삽입 다음에, 상기 분류로 인해서 상기 인덱싱 트리에서 상기 부모 노드 이후에 첫 번째로 후속하는 해당 자식 노드(K2)의 인덱스 데이터는 상기 자식 노드(K2)의 인덱스 데이터가 상기 비트 스트림에 위치되는 위치를 나타내는 정보 없이 삽입되고,
    상기 부모 노드(K1) 이후에 첫 번째로 후속하지는 않는 자식 노드(K3, K4)에 대한 각각의 경우에 있어서 정보가 상기 비트 스트림에 삽입되고, 상기 정보는 상기 자식 노드(K3, K4)의 인덱스 데이터가 상기 비트 스트림 내에 위치되는 위치를 나타내는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 1 항에 있어서,
    상기 인덱싱 트리는 B 트리(=균형 트리(Balanced tree))인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 데이터는 사전적 순서로(lexicographically) 상기 인덱싱 트리에서 분류되는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 데이터는 깊이-우선 순서 원칙(depth-first ordering principle)에 따라 상기 비트 스트림에 삽입되는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 데이터는 적어도 하나의 뿌리 노드 및 다수의 잎 노드들로 구성되는 문서 구조 트리의 경로들을 포함하는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 5 항에 있어서,
    상기 인덱스 데이터는 상기 경로들의 값 인스턴스들, 및 상기 문서 구조 트리에 의해 표시되는 문서 내 상기 값 인스턴스들의 위치들을 포함하는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 5 항에 있어서,
    상기 인덱스 데이터는 인덱스 노드(K1, K2, K3, K4)에서의 경로들의 개수를 포함하는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 5 항에 있어서,
    상기 경로들은 상기 뿌리 노드에서 시작하여 잎 노드에 연결되는 절대 경로들을 포함하는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 5 항에 있어서,
    상기 경로들은 상대적 경로들을 포함하고, 각각의 인덱스 노드(K1, K2, K3, K4)의 상대적 경로는 상기 비트 스트림에 이전에 삽입된, 상기 각각의 인덱스 노드(K1, K2, K3, K4)의 경로 또는 상기 각각의 인덱스 노드(K1, K2, K3, K4)의 계층적 레벨 상위의 계층적 레벨의 인덱스 노드(K1, K2, K3, K4)의 경로에 대한 경로인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 9 항에 있어서,
    상기 비트 스트림에 삽입된 상기 경로들은, 상기 인덱스 데이터가 상기 인덱스 노드(K1, K2, K3, K4)에 배열되는 시퀀스에 대한 역 시퀀스로 계층적 레벨의 제 1 인덱스 데이터로서 상기 비트 스트림에 삽입되는 인덱스 데이터를 갖는 상기 인덱스 노드의 경로들인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 5 항에 있어서,
    상기 경로들은 XML(Extensible Markup Language: 확장성 마크업 언어) 문서의 디스크립션(description) 엘리먼트들을 포함하는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 11 항에 있어서,
    상기 경로들은 상기 XML 문서의 XPATH 경로들인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 데이터는 코딩 방법에 의해 이진으로 코딩되는,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 제 13 항에 있어서,
    상기 코딩 방법은 MPEG7 코딩 방법인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 데이터 구조를 코딩하기 위한 방법으로서,
    상기 데이터 구조의 데이터 엘리먼트들은 인덱싱 트리로 인덱싱되고, 청구항 제 1 항 또는 제 2 항에 따른 방법에 따라 비트 스트림이 생성되며, 상기 비트 스트림은 코딩된 데이터 스트림의 일부인,
    데이터 구조를 코딩하기 위한 방법.
  • 데이터 구조를 디코딩하기 위한 방법으로서,
    상기 방법은, 청구항 제 15 항에 따른 방법에 따라 코딩되는 데이터 구조가 인덱스 노드들의 인덱스 데이터에 기초하여 디코딩되는 방식으로 구현되는,
    데이터 구조를 디코딩하기 위한 방법.
  • 청구항 제 15 항에 따른 방법, 및 청구항 제 15 항에 따른 방법에 따라 코딩되는 데이터 구조가 인덱스 노드들의 인덱스 데이터에 기초하여 디코딩되는 방식으로 구현되는 데이터 구조를 디코딩하기 위한 방법을 포함하는,
    데이터 구조를 코딩하고 디코딩하기 위한 방법.
  • 청구항 제 15 항에 따른 방법이 수행될 수 있는 코딩 장치.
  • 청구항 제 16 항에 따른 방법이 수행될 수 있는 디코딩 장치.
  • 청구항 제 17 항에 따른 방법이 수행될 수 있는 데이터 구조를 코딩하고 디코딩하기 위한 장치.
  • 제 13항에 있어서,
    상기 코딩 방법은 MPEG 코딩 방법인,
    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법.
  • 说明书全文

    인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법 {METHOD FOR THE CREATION OF A BIT STREAM FROM AN INDEXING TREE}

    본 발명은 인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법 뿐만 아니라 비트 스트림을 생성하기 위한 상기 방법을 이용하는 코딩 방법 및 디코딩 방법에 관한 것이다. 본 발명은 또한 코딩 및 디코딩 장치에 관한 것이다.

    사용자에 의해 사전에 공식화된 쿼리에 따라 비트 스트림으로부터 특정 내용을 판독하거나, 특정 내용에 관해 상기 내용이 실제로 적어도 상기 비트 스트림에 포함되는지 여부를 결정하는 것이 종종 필요하다. 이러한 경우에 있어서, 사용자에 의해 정의된 쿼리는 SQL(참고 [1]을 참조) 또는 XPATH(참고 [2]를 참조)과 같은 쿼리 언어를 이용하여 공식화될 수 있다. 만일 원하는 내용을 대해 전체 비트 스트림이 검색될 필요가 없고 대신에 정보가 인덱싱 리스트 또는 인덱싱 트리에 저장된다면, 인덱싱 트리 또는 인덱싱 리스트가 저장되는 그 부분의 비트 스트림만이 검색되어야만 하는 것이 유리하다.

    비트 스트림으로부터의 데이터 판독의 문제점은 예를 들어 XML 언어(Extensible Markup Language :확장성 마크업 언어)를 이용하여 작성되고 MPEG7 BiM 형식으로 표현된 문서의 경우에 있어서 발생한다. XML 문서의 MPEG7 BiM 형식에 대해, 본 명세서에서는 특히 문서 [3]이 참조된다. 이와 같은 표현에 의해 생성되는 비트 스트림은 차례로 다수의 프래그먼트들(프래그먼트 업데이트 유닛들)로 구성되는 다수의 유닛들(액세스 유닛들)로 세부 분할된다. 상기 액세스 유닛들은 코딩되는데, 이때 MPEG7 BiM 스트림의 형태로 하나 이상의 수신자들에게 송신될 필요가 있다.

    XML 문서로부터의 정보에 대한 쿼리에 관해, 다양한 쿼리 언어들이 이미 공지되었는데, 이는 문서에서 특정 정보에 대한 검색를 허용한다. 이때 이미 언급한 쿼리 언어 XPATH(참고 [2]를 참조)가 예시로서 참조된다. 상기 쿼리 언어 XPATH는 XML 문서 내에서 원하는 정보를 필터링하기 위한 선택 기준을 정의하기 위해 사용될 수 있다. 이러한 경우에 있어서, 쿼리의 목적은 한편으로는, 비트 스트림의 유닛이 수신자에게 중요한지 여부를 평가하기 위한 것일 수 있다. 다른 한편으로는, XML 문서 내의 원하는 특정 정보에 액세스하기 위해 타겟 방식으로 사용될 수 있다. XML 문서의 비트 스트림을 생성하는 동안에, 지금까지는 XML 문서의 특정 엘리먼트들로 랜덤 액세스를 가능하게 하는 메커니즘이 MPEG7 코딩 방법에서는 제공되지 않았다. 그러므로, MPEG7 비트 스트림은 엘리먼트들의 검색 목적을 위해 디코딩되어야만 한다. 그 후 XML 형식의 문서가 한번 더 획득되고, 상기 문서는 쿼리 언어 XPATH를 사용하여 검색될 수 있다. 그러므로 특정 내용을 검색하기 위해 XML 문서를 디코딩하고 후속 처리하는 것은 매우 시간-소모적이고, 시간이 중요한 특정 애플리케이션들에 대해서는 수용 가능하지 않다. 더욱이, 디코더의 메모리가 제한적이고, 그 결과 비트 스트림이 완전하게 디코딩될 수 없는 경우에 문제점이 발생할 수 있다. 게다가, 만일 디코딩된 XML 문서 상에서 실행된 XPATH 쿼리가 부정적 결과로서 끝난다면, 디코딩 시 수반되었던 오버헤드는 불필요한 것이었다.

    참고 [4]에서 설명된 TV-Anytime(TVA)의 프레임워크 내에서, 데이터 프래그먼트의 특정 엘리먼트들로의 랜덤 액세스를 허용하는 인덱스 구조가 사용된다. 상기 인덱스 구조는 다수의 부분들로 구성되고, 문서의 모든 인덱싱된 경로들이 저장되는 "키이 인덱스 리스트(key index list)"로서 언급되는 것을 포함한다. 쿼리가 전송(submit)될 때, 상기 경로들은 상기 키이 인덱스 리스트에서 매칭하는 엔트리가 발견될 때까지 차례로 상기 쿼리와 비교된다. 이러한 엔트리와 관련된 키이 인덱스 리스트에 저장된 정보에 기초하여, 상기 인덱싱된 엔트리가 코딩된 형태로 존재하는 디스크립션 스트림 내 위치들이 결정될 수 있다. 키이 인덱스 리스트를 이용함으로써, 무관한 데이터 프레그먼트들을 디코딩하는 것이 더 이상 필요하지 않으며, 이에 의해 쿼리 동안에 메모리 공간이 더 적게 요구된다. 그러나, 키이 인덱스 리스트의 선형적 처리는 시간-소비적이며, 모든 인덱싱된 경로들의 전달은 수고스러운 작업이고 자원-집약적이다.
    Lam SW 등에 의한 문서 "Representing lexicons by modified trie for fast partial string matching", Character Recognition Technologies, San Jose, 1-2 Feb. 1993, Bellingham, SPIE, pages 229-237 에서는 신속한 사전식 검색 방법을 설명하는데, 이때 입력 시퀀스는 불명확한 길이 및 여러개의 비-규정된 문자들을 가질 수 있다.
    Wong RK 등에 의한 문서 "An XML repository for molecular sequence data", Proceedings IEEE International Symposium on Bio Informatics and Biomedical Engineering, pages 35-42 에서는 대용량 데이터 세트가 "스킵 트리(skip tree)"에 의해 효율적으로 검색될 수 있는 방법을 설명한다.

    그러므로, 본 발명의 목적은 인덱싱 트리로부터 비트 스트림을 생성하기 위한 방법을 생성하는 것이고, 이때 인덱싱된 데이터에 대한 검색은 가능한 한 쉽고 효율적으로 이루어진다.

    이러한 목적은 독립 청구항들의 특징에 따라 달성된다. 본 발명의 개선들은 종속 청구항들로부터 유도될 수 있다.

    본 발명을 따른 방법에 의해 비트 스트림이 생성되는 인덱싱 트리는 다양한 계층적 레벨들을 포함하고, 각각의 계층적 레벨에는 하나 이상의 인덱스 노드들이 할당되며, 상기 인덱스 노드들은 하나 이상의 미리 결정된 기준에 따라 인덱스 트리에서 분류되는 인덱스 데이터를 포함한다. 본 발명에 따른 방법에 의해, 인덱스 노드들의 인덱스 데이터는 비트 스트림으로 삽입되고, 각각의 인덱스 노드들에 대해 상기 비트 스트림으로 삽입된 정보들이 존재하며, 상기 정보는 각각의 노드의 계층적 레벨의 하위에 존재하는 계층적 레벨의 하나 이상의 인덱스 노드들의 인덱스 데이터가 위치되는 상기 비트 스트림 내의 위치들을 나타낸다. 더 낮은 계층적 레벨의 인덱스 노드들에 대한 추가 정보를 저장함으로써, 특정 인덱스 데이터에 대한 검색는 상당히 간략화되는데, 이는 그렇게 함으로써 상기 검색와 관련하는 인덱스 노드들로의 브랜치들의 생성이 가능하기 때문이다. 그러므로, 인덱스 데이터에 대한 상당히 더욱 효율적인 쿼리들 및 검색들이 보장된다.

    바람직한 실시예에서, 인덱싱 트리는 "B 트리"(균형 트리)로서 구조화되는데, 상기 트리는 트리의 노드들에 대해 균형적 데이터 분포를 보장한다. B 트리에 대한 자세한 설명은 참고 [5]에서 알 수 있다.

    인덱싱 트리에서의 인덱스 데이터는 임의의 기준, 예를 들어 사전식 순서(lexicographically)에 따라 분류될 수 있다.

    특정하게 바람직한 실시예에서, 인덱스 데이터는 깊이-우선 순서 원칙(depth-first ordering principle)에 따라 비트 스트림에 삽입된다. 깊이-우선 순서의 이용을 통해 인덱싱 트리에서의 인덱스 데이터는 초기에는 깊이에 따라 비트 스트림에 삽입되는데, 그 결과 쿼리와 관련되는 정보의 항목들이 상기 비트 스트림 내에서 서로 인접하여 배열되고, 관련되지 않은 정보는 효과적으로 스킵될 수 있다. 깊이-우선 순서의 자세한 설명은 참고 [6]에서 알 수 있다.

    본 발명의 다른 바람직한 실시예에서 인덱스 데이터는 뿌리 노드 및 다수의 잎 노드들을 갖는 문서 구조 트리의 경로들을 포함한다. 인덱스 데이터는 바람직하게는 또한 상기 경로들의 값 인스턴스들, 및 문서 구조 트리에 의해 표현되는 문서에서의 상기 값 인스턴스들의 위치들을 포함한다. 추가하여, 바람직한 실시예에서 인덱스 데이터는 또한 인덱스 노드에서의 경로들의 개수를 포함한다.

    이러한 경우에 있어서, 상기 경로들은 문서 구조 트리의 뿌리 노드에서 시작하여 문서 구조 트리의 잎 노드에 연결되는 절대적 경로들일 수 있다. 그러나, 본 발명의 특히 바람직한 실시예에서, 상기 경로들은 상대적 경로들이고, 각각의 인덱스 노드의 상대적 경로는 이미 비트 스트림에 삽입된, 각각의 인덱스 노드 또는 상기 각각의 인덱스 노드의 계층적 레벨의 상위의 계층적 레벨의 각각의 인덱스 노드의 경로에 대한 경로이다. 상대적 경로들의 이용은 상기 경로들의 공통성이 이용될 수 있도록 하는데, 이는 인접한 노드들의 경로들이 대개 공통 컴포넌트들을 가지기 때문이다. 이러한 방식으로, 인덱스 데이터를 비트 스트림에 저장하기 위해 필요한 메모리 공간의 양이 감소될 수 있다. 메모리 공간 요구량의 추가 감소는, 인덱스 데이터가 제 1 계층적 레벨인 인덱스 노드의 경로들을 인덱스 데이터가 인덱스 노드에 배열되는 시퀀스의 역 시퀀스로 비트 스트림에 삽입되도록 삽입함으로써 달성될 수 있다. 이는, 계층적 레벨의 제 1 인덱스 노드의 끝에서의 인덱스 데이터가 상기 제 1 인덱스 노드의 시작에서의 인덱스 데이터보다 상기 제 1 인덱스 노드 다음으로 높은 계층적 레벨의 인덱스 노드와 더 많은 유사성을 갖는다는 사실을 고려한다. 결과적으로, 특히 효과적인 코딩이 상대적 경로들의 사용을 통한 특정한 경우들에서 이루어진다.

    본 발명의 바람직한 특정 실시예에서, 경로들은 XML 문서의 디스크립션 엘리먼트들을 포함하고, 상기 경로들은 특정하게는 XML 문서의 XPATH 경로들이다.

    본 발명의 다른 실시예에서, 인덱스 데이터는 코딩 방법, 특정하게는 MPEG 코딩 방법에 의해 이진 형식으로 코딩된다. 바람직한 특정 실시예에서, MPEG7 코딩 방법이 코딩 방법으로서 이용된다.

    비트 스트림 생성을 위한 위에서-설명한 방법에 추가하여, 본 발명은 데이터 구조를 코딩하기 위한 방법을 포함하는데, 이때 상기 데이터 구조의 데이터 엘리먼트들은 인덱스 트리로 인덱싱되고, 이와 함께 비트 스트림은 본 발명의 방법에 따라 생성되고 상기 비트 스트림은 코딩된 데이터 스트림의 부분이다. 본 발명은 또한 데이터 구조를 디코딩하기 위한 방법을 포함하고, 이러한 방법은 방금 설명된 코딩 방법에 의해 코딩된 데이터 구조가 디코딩되는 방식으로 이용된다.

    본 발명은 또한, 위에서-설명한 코딩 및 디코딩 방법을 포함하는 데이터 구조를 코딩하고 디코딩하기 위한 방법을 포함한다.

    본 발명은 또한, 본 발명에 따른 코딩 방법이 수행될 수 있는 코딩 장치 뿐만 아니라 본 발명에 따른 디코딩 방법이 수행될 수 있는 디코딩 장치를 포함한다. 본 발명은 또한 위에서-설명한 결합된 코딩 및 디코딩 방법이 수행될 수 있는 코딩 및 디코딩을 위한 대응 장치에 관한 것이다.

    본 발명의 예시적 실시예들이 도면들을 참조하여 아래에서 설명될 것이다.

    도 1은 본 발명에 따른 방법으로 이용되는 인덱싱 트리의 예시도.

    도 2는 도 1에 도시된 인덱싱 트리의 섹션도.

    도 3은 본 발명에 따른 방법에 의해 도 1에 도시된 인덱싱 트리로부터 생성되어 온 비트 스트림의 섹션도.

    도 4는 인덱싱 데이터가 사전식 순서로 배열되며, 문서 구조 트리의 경로들을 나타내는 간략화된 인덱싱 트리.

    도 5는 제 2 계층적 레벨의 경로들의 일부가 상대적 경로들로서 표시되는, 도 4의 인덱싱 트리.

    도 6은 제 2 계층적 레벨의 모든 경로들이 상대적 경로들로서 표시되는, 도 4의 인덱싱 트리.

    도 7은 도 4에 따른 인덱싱 트리의 변형도.

    도 1은 본 발명에 따른 방법에 이용되는 인덱싱 트리의 예를 도시한다. 상기 트리는 데이터 인덱싱을 위해 자주 이용되는 B 트리(B는 균형을 의미함)이다. B 트리의 구조는 예를 들어, 이미 언급한 참고 [5]에서 설명된다. 상기 B 트리는 균형 구조를 갖음으로써 엔트리들의 개수에 비교되는 로그 오버헤드만으로 검색을 허용하는 반면, 리스트에 의한 검색은 선형 오버헤드가 요구된다.

    인덱싱 트리는 다수의 노드들(1 내지 10)을 포함하고, 이때 인덱스 데이터의 하나 이상의 항목들은 키이로서 언급되는 것의 형태로 각 노드에 저장된다. 이러한 경우에 있어서, 인덱스 데이터의 항목들은 XML 문서의 디스크립션 트리의 XPATH 경로들이다. XPATH 경로들의 디스크립션은 이미 언급된 참고[2]에서 알 수 있다. XPATH 경로들은 XML 문서의 디스크립션 트리의 뿌리 노드로부터 XML 문서의 디스크립션 트리의 개별 잎 노드들로 유도한다. 간단한 내용을 갖는 XML 엘리먼트들 및 모든 XML 속성들은 이러한 실시예에서 이용되는 디스크립션 트리에서 잎 노드들로서 이용된다. 결과적으로, 도 1에서 도시된 인덱싱 트리의 인덱스 데이터는 XML 디스크립션 트리의 뿌리-잎 경로들을 포함한다.

    도 1에 도시된 인덱싱 트리에서, XPATH 경로들은 일련의 대문자 및 소문자들로 표시되고 사전식 순서로 배열되는데, 각각의 문자들은 XML 디스크립션 트리에서 엘리먼트명을 의미한다. 예를 들어, 노드 1에서 경로(MDMVUFACN)는 MPEG7/Description/MultimediaContent/Video/UsageInformation/FinancialResults/AccountItem/Costtype/Name을 의미한다. 이러한 경로뿐만 아니라, 노드들에는 이러한 경로가 XML 문서에서 발생하는 값 인스턴스들 역시 저장된다. 이러한 경우에 있어서, 경로(MDMVUFACN)는 인덱스 노드(1)에서 인스턴스들("Total for Production" 및 "Broadcast")을 갖도록 두 번 발생한다. 반대로, 경로(MDMVUAFAC)는 인스턴스("EUR")를 갖도록 인덱스 노드(2)에서 한 번만 발생한다.

    도 1의 인덱싱 트리의 인덱스 노드들의 번호 매김은 본 발명에 따른 방법에 의해 비트 스트림에 인덱스 데이터가 삽입되는 순서와 일치한다. 이러한 경우에 있어서, 순서는 깊이-우선 순서 스키마에 해당하는 것으로서, 예를 들어 이는 이미 언급한 참고[6]에서 설명된다. 깊이-우선 순선 원칙에 따라 비트 스트림에 인덱스 데이터를 삽입함으로써, 인덱스 데이터로의 액세스 동안 더 적은 복잡성이 유발되는데, 이는 관련없는 데이터는 인덱스 데이터의 검색 동안 스킵되기 때문이다.

    도 2는 도 1의 인덱싱 트리의 섹션을 도시하고, 이에 의해 이러한 트리에서 인덱스 데이터의 쿼리는 예를 이용하여 설명될 것이다. 이러한 경우에 있어서, 쿼리는,XPATH경로(MPEG7/Description/Multimediacontent/Video/UsageInformation/Availability/Dissemination/Disseminator/Agent/Name)가 값 인스턴스("Discovery")를 포함하는지의 여부이다(간단히 표시하면 MDMVUADDAN = "Discovery"). 검색 스트링(MDMVUADDAN)은 인덱스 노드(1)의 XPATH 경로(MDMVUFACN)보다 사전적 순서로 낮기 때문에, 검색은 인덱스 노드(2)를 다시 참조한다. 검색 스트링은 차례로 인덱스 노드(2)의 엔트리("MDMVUAFAc")보다 사전적 순서로 낮다. 이러한 이유로 인해서, 인덱스 노드(2)의 좌편에 위치되는 인덱스 노드(3)로 변이된다. 상기 인덱스 노드는 두개의 XPATH 경로들("MDMVUAAt" 및 "MDMVUADFh")을 포함한다. 검색 스트링은 이러한 두 개의 XPATH 경로들 사이에 존재하므로, 다음의 계층적 레벨에서는 인덱스 노드(4) 및 인덱스 노드(6) 사이에 존재하는 인덱스 노드(5)로 변이된다. 현재 이러한 인덱스 노드는 제 1 엘리먼트로서, XPATH 경로("MDMVUADDAN")에 대한 검색 값 뿐만 아니라 값 인스턴스("Discovery")에 대한 검색값을 포함한다. 그러므로, 매칭되는 값 인스턴스는 인덱스 노드(5)에서 발견되고, 따라서 인덱싱된 XML 문서에서 대응하는 엘리먼트의 위치가 획득된다. 인덱스 노드들이 깊이-우선 순서 원칙에 따라 비트 스트림에 삽입되는 결과로서, 인덱싱 트리의 다른 모든 노드들이 검색 동안에 무시되거나 스킵되고, 이에 의해 인덱싱 트리에서 엘리먼트들에 대한 검색에 있어 복잡도는 작게 된다.

    본 발명에 따른 방법에 의해 인덱스 데이터를 비트 스트림에 삽입하는 것은 아래에서 좀더 자세히 설명될 것이다. 이는 본 발명에 따른 방법을 이용하여 생성되는 비트 스트림의 섹션을 도시하는 도 3을 참조하여 설명될 것이다. 도 3에 도시된 비트 스트림에서 인덱스 노드들의 번호들은 명료성을 위해 기재되지만, 스트림과 함께 전송되는 것은 아니다. 인덱스 노드들(1 및 3)의 내용은 도 3에 자세하게 도시된다. 제 1 엘리먼트로서 노드들은 초기에 엔트리들의 개수를 포함하는데, 즉 노드에 저장되는 XPATH 경로들의 개수를 포함한다. 본 명세서에서는 인덱스 노드(1)에 대해서는 번호(1)를 인덱스 노드(3)에 대해서는 번호(2)를 포함한다. 그 다음으로는 각 엔트리에 대한 키이를 포함하는데, 즉 각각의 XPATH 경로 뿐만 아니라 인스턴스 생성의 개수(즉, 상기 XPATH 경로가 XML 문서 내에서 가지는 값 인스턴스들의 개수)를 포함한다. 인덱스 노드(1)에 대해 예를 들면, XPATH 경로에 대해 인스턴스 생성 번호(2)를 포함하는데, 이는 두 개의 값 인스턴스들("Total for Production" 및 "Broadcast")을 갖는 상기 경로가 XML 문서 내에서 발생했기 때문이다. 더욱이, 각각의 값 인스턴스에 대해, XML 문서에서 상기 값 인스턴스의 위치는 비트 스트림에 삽입된다. 본 발명을 따른 방법에서, 비트 스트림으로 삽입되는 것은 이러한 정보 이외에도, 각각의 인덱스 노들에 연결되는 다음으로-낮은 계층적 레벨의 인덱스 노드들의 인덱스 데이터가 위치되는 비트 스트림 내 위치(특정 하게는, 현재 위치에 관련되는 위치(offset))와 관련되는 정보 또한 삽입되는 것이 필수적이다. 이는 미리 결정된 검색 쿼리와 관련 없는 노드들이 스킵되도록 하여 준다.

    하나의 노드에서 더 낮은 계층적 레벨로 분기하는 노드들은 지금부터 자식 노드들로서 언급된다. 본 발명에 따른 방법에서, 계층적 레벨의 제 1 자식 노드의 위치에 관련하는 정보는 저장될 필요가 없는데, 이는 상기 자식 노드는 비트 스트림에서 다음번으로 판독되기 때문이다. 그러므로, 도 3에서 알 수 있는 것처럼, 인덱스 노드(10)의 위치("offset(10)"으로 언급됨)만이 인덱스 노드(1)에 대해 저장되고, 인덱스 노드들(5 및 6)의 위치들("offset(5)" 및 "offset(6)")만이 인덱스 노드(3)에 대해 저장된다. 만일 쿼리에 대한 정보의 검색값이 노드(1)에서 XPATH보다 사전적 순서로 높은 경우가 발생하면, 노드(10)로 브랜치가 즉시 생성되어, 인덱스 노드(2), 및 인덱스 노드(2)에서 분기하는 인덱스 노드들을 검색할 필요가 더이상 없게 된다. 이러한 방식에 의해서 효과적인 검색이 가능하다.

    다음의 테이블에서는 어떠한 정보가 비트 스트림에 노드당 저장되는지를 다시 한번 기술한다.

    테이블:

    노드 {
    엔트리들의 개수
    각 엔트리에 대해:
    키이
    인스턴스 생성의 개수
    각 인스턴스 생성에 대해:
    값 인스턴스
    위치
    제 1 자식 노드를 제외한 각 자식 노드에 대해:
    스트림에서의 오프셋

    본 발명에 따른 방법으로 생성되는 비트 스트림은 수신자에게 전송되며, 도 2와 관련하는 예로서 설명되었던 쿼리에 따라 판독될 수 있다. 쿼리되는 XPATH 및 인덱스 노드들 내의 엔트리들 사이의 비교들에 의해서, 특정 노드 정보가 스트림으로부터 판독되는데, 이는 값 인스턴스에 대한 검색값을 포함하는 대응하는 XPATH 검색값이 발견되었거나 또는 XPATH가 분류로 인해 더 이상 매칭될 수 없을 때까지 계속된다. 후자의 경우에 있어서, 원하는 정보는 인덱싱된 문서에 포함되지 않는다.

    본 발명을 따른 방법의 다른 실시예들은 사전적 순서로 배열된 엔트리들을 갖는 간략화된 인덱싱 트리들을 도시하는 도 4 내지 도 7을 참조하여 아래에서 설명될 것이다. 도 4는 본 발명을 따른 방법에 의해 코딩되고, 노드들(K1 내지 K4)을 포함하는 인덱싱 트리를 도시한다. 이러한 경우에 있어서, 노드(K1)는 부모 노드로서 언급되고, 상기 노드(K1)로부터 분기하는 노드들(K2 내지 K4)은 자식 노드들로서 언급된다. 엔트리들은 문서 구조 트리의 경로들이다. 상기 경로들을 그것들의 전체 길이로 비트 스트림에 전송하는 것 대신에, 전송되는 인덱스 노드의 상대적 경로들이 저장하는 것이 가능한데, 상기 경로들은 부모 노드의 이미 전송된 경로에 대해 또는 현재 전송되는 인덱스 노드의 이미 전송된 경로에 대해 상대적이다.

    상대적 경로들은 비트 스트림에 삽입하는 것은 도 5에 도시된다. 이러한 경우에 있어서, 표시(".")는 경로에서 상대적 경로가 참조하는 곳으로의 후퇴(step back)을 나타낸다. 노드(K1)에서, 앞선 엔트리(ACB)에 대한 상대적 경로("..E")는 엔트리("AE")에 대해 전송된다. 자식 노드들(K2, K3 및 K4)에서, 각각의 자식 노드의 제 1 경로에 대한 상대적 경로들은 각각의 경우에 제 2 엔트리 및 제 3 엔트리로 전송된다.

    도 5에 따른 실시예에 있어서, 자식 노드들(K2, K3 및 K4)의 제 1 경로들(AA, ACC 및 AEF)에 대해 완전한 절대적 경로가 전송된다. 부모 노드(K1)의 경로에 대한 상대적 경로들로서 자식 노드들의 제 1 경로들을 전송하는 것 또한 추가로 가능하다. 이는 도 6에 도시된다. 이러한 경우에 있어서, 제 1 및 제 2 자식 노드들의 경로들(AA 및 ACC) 대신에, 부모 노드의 제 1 경로에 대한 상대적 경로들("..A" 및 ".C")이 전송된다. 제 2 자식 노들의 경로("AEF") 대신에, 부모 노드의 제 2 경로에 대한 상대적 경로("F")가 전송된다. 이러한 경우에 있어서, 상기 경로들은 바람직하게는 바이트 표시로 비트 스트림에 저장된다.

    상대적 경로들의 사용 결과로서, 스트림 내의 데이터 부피는 실질적으로 감소되는데, 이는 경로들이 저장될 때 경로들에서 공통성이 이루어지고, 그 결과 더 적은 메모리 공간이 요구되게 된다. 특히, 상대적 경로들에 있어서 상기 경로들의 각각의 공통 컴포넌트들은 오직 한 번만 전송되어야 한다.

    본 발명의 다른 실시예에서, 제 1 자식 노드(K2)에 대한 인덱스 노드들의 엔트리들의 배열에서 도 4와 비교하여 역 시퀀스가 이용될 때 데이터 절약이 달성된다. 그 결과, 이전의 부모 노드(K1)와 가장 큰 유사성을 갖는 엔트리가 자식 노드(K2)의 시작에 위치된다. 그러므로, 인덱싱 트리의 특정 실시예들은 실질적으로 짧아진 상대적 경로들 및 감소된 메모리 요구량을 가져올 수 있다.

    경로들은 이미 언급한 XML 디스크립션 트리의 XPATH 경로들일 수 있다. 더욱이, 상기 경로들은 예를 들어 MPEG7 코딩 방법에 의해 이진 코딩될 수 있다. 특정하게는, 이미 언급한 참고[3]에서 규정된 이진 코딩 방법들이 이용될 수 있다. 텍스츄얼 표시와 비교할 때, 이진 코딩된 경로들의 이용은 전송되는 비트들의 개수에 있어서 절약될 수 있다.

    참고들:

    [1] http://dxl.hrz.uni-dortmund.de:8001/doc1/hrz/sqlref/sqloracle.html

    [2] http://www.w3.org/TR/xpath

    [3] ISO/IEC 15938-1 Multimedia Content Description Interface - Part 1:Systems, Geneva 2002

    [4] TV-Anytime Specification Series S-3 on Metadata, Part B, Version 13

    [5] http://www.public.asu.edu/~peterjn/btree/

    [6] http://www.generation5.org/simple_search.shtml

    QQ群二维码
    意见反馈