KR20100087196A - 적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체 - Google Patents

적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR20100087196A
KR20100087196A KR1020107011897A KR20107011897A KR20100087196A KR 20100087196 A KR20100087196 A KR 20100087196A KR 1020107011897 A KR1020107011897 A KR 1020107011897A KR 20107011897 A KR20107011897 A KR 20107011897A KR 20100087196 A KR20100087196 A KR 20100087196A
Authority
KR
South Korea
Prior art keywords
sample
media
data
file
sample number
Prior art date
Application number
KR1020107011897A
Other languages
English (en)
Other versions
KR101254385B1 (ko
Inventor
미스카 한누크셀라
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20100087196A publication Critical patent/KR20100087196A/ko
Application granted granted Critical
Publication of KR101254385B1 publication Critical patent/KR101254385B1/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/41Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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
    • 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/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

시한 메타데이터 샘플을 미디어 또는 힌트 샘플과 짝짓기 위해 샘플 번호를 사용하는 시스템 및 방법이 제공된다. 시한 메타데이터 샘플은 미디어 또는 힌트 샘플과 짝을 이룰 수 있는데, 그 이유는 시간 미디어 샘플 내에 포함된 샘플 번호는 적절한 미디어 또는 힌트 트랙과 관련하여 제공되기 때문이다. 또한, 복수의 시한 메타데이터 샘플이 존재하는 경우에 적용될 수 있는 샘플 번호의 오프셋이 제공된 샘플 번호에 추가되어 미디어 또는 힌트 트랙 내에서의 실제 샘플 번호를 획득한다.

Description

적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법 및 장치, 액세스 방법, 컴퓨터 프로그램 제품{FAST AND EDITING-FRIENDLY SAMPLE ASSOCIATION METHOD FOR MULTIMEDIA FILE FORMATS}
본 발명은 일반적으로 멀티미디어 파일 포맷에 관한 것으로, 특히 미디어 및/또는 멀티미디어 데이터를 구성(organizing)하기 위해 시한 메타데이터 샘플(timed metadata samples)을 미디어 및/또는 힌트 샘플과 짝을 구성하는 것에 관한 것이다.
본 섹션은 청구항에 기재된 본 발명에 대한 배경 또는 상황을 제공하려 한다. 여기서의 설명은 추구될 수 있으나, 이미 반드시 인지되었거나 또는 추구되었는 것일 필요는 없는 개념을 포함할 수 있다. 따라서, 여기서 달리 특별히 언급하지 않는다면, 이 섹션에서 설명되는 것은 본 출원의 상세한 설명 및 청구항에 대한 종래기술은 아니며, 또한 이 섹션에 포함되었다 하여 종래 기술로 인정되는 것도 아니다.
멀티미디어 컨테이너 파일 포맷은 멀티미디어 콘텐츠 생성, 조작, 전달 및 소비라는 일련의 과정에서 중요한 요소이다. 이러한 상황에서, 코딩 포맷(즉, 기본 스트림 포맷)은 콘텐츠 정보를 비트스트림으로 코딩하는 특정 코딩 알고리즘의 동작과 관련된다. 컨테이너 파일 포맷은 로컬 디코딩 및 재생, 파일로서의 전송 또는 스트리밍(이들 모두는 다양한 저장 및 전송 아키텍처를 사용함)을 위해 액세스될 수 있도록 생성된 비트스트림을 구성하는 메카니즘을 포함한다. 컨테이너 포일 포맷은 또한 미디어의 교환 및 편집과, 수신된 실시간 스트림의 파일로의 기록을 용이하게 할 수 있다. 그에 따라, 코딩 포맷과 컨테이너 파일 포맷 사이에는 많은 차이가 있다.
멀티미디어 파일 포맷의 계층이 도 1의 참조번호(100)에서 전반적으로 도시되어 있다. 기본 스트림 포맷(110)은 독립적인, 단일 스트림을 나타낸다. .amr 및 .aac 파일과 같은 오디오 파일은 기본 스트림 포맷에 따라 구성된다. 컨테이너 파일 포맷(120)은 오디오 및 비디오 스트림 모두를 단일 파일에 포함할 수 있는 포맷이다. 컨테이너 파일 포맷(120) 계열의 예는 ISO 베이스 미디어 파일 포맷에 기초한다. 계층(100) 내의 컨테이너 파일 포맷(120) 바로 아래에 멀티플렉싱 포맷(130)이 존재한다. 멀티플렉싱 포맷(130)은 전형적으로 컨테이너 파일 포맷(120)에 따라 구성된 오디오/비디오(A/V) 파일보다 덜 가요적이고 보다 더 조밀하게 패키지화된다. 멀티플렉싱 포맷(130)에 따라 구성된 파일은 전형적으로 재생 목적으로만 사용된다. MPEG(Moving Picture Experts Group)-2 프로그램 스트림은 멀티플렉싱 포맷(130)에 따라 구성된 스트림의 일 예이다. 프리젠테이션 랭귀지 포맷(140)은 레이아웃, 상호작용, AV와 별개의 미디어의 동기화 등의 목적을 위해 사용된다. W3C(World Wide Web Consortium)에 의해 모두 특정되어 있는 SMIL(Synchronized multimedia integration language) 및 SVG(scalable video graphics)는 프리젠테이션 랭귀지 포맷(140)의 예이다. 프리젠테이션 파일 포맷(150)은 동일한 파일 내에 프리젠테이션의 모든 부분을 구비하는 것을 특징으로 한다. 프리젠테이션 파일 포맷에 따라 구성된 객체의 예는 파워포인트 파일 및 3GP 파일 포맷의 확장된 프리젠테이션 프로파일에 따른 파일이다.
이용가능한 미디어 및 컨테이너 파일 포맷 표준은 ISO 베이스 미디어 파일 포맷(ISO/IEC 14496-12), MPEG-4 파일 포맷(ISO/IEC 14496-14, MP4 포맷으로도 알려져 있음), AVC(Advanced Video Coding) 파일 포맷(ISO/IEC 14496-15) 및 3GPP 파일 포맷(3GPP TS 26.244, 3GP 포맷으로도 알려져 있음)을 포함한다. SVC 파일 포맷의 개발을 위한 MPEG에서의 프로젝트가 또한 존재하며, 이는 AVC 파일 포맷에 대한 개정이 될 것이다. 병행되는 노력으로서, MPEG는 단방향 전송을 통한 파일 전달(file delivery over unidirectional transport: FLUTE) 및 비동기식 계층 코딩(ALC) 세션에 대해 힌트 트랙 포맷을 정의하며, 이는 ISO 베이스 미디어 파일 포맷에 대한 개정이 될 것이다.
디지털 비디오 브로드캐스팅(DVB) 기구는 현재 DVB 파일 포맷을 규정하고 있는 중이다. DVB 파일 포맷을 정의하는 주된 목적은 현재(DVT-T, DVB-C, DVB-S) 및 미래의 DB 표준, 인터넷 프로토콜(IP) 텔레비전 수신기, 및 DVB-핸드헬드(DVB-H) 및 그의 향후 전개에 따른 이동 텔레비전 수신기 등과 같은 DVB 기술의 구현들 사이에서 콘텐츠 상호운용을 용이하게 하는 위함이다. DVB 파일 포맷은 상이한 제조사로부터의 장치 간의 기록(판독 전용) 매체의 교환과, USB 대용량 메모리 또는 유사한 판독/기록 장치를 사용한 콘텐츠의 교환과, 홈 네트워크 상에서 공통 디스크 스토리지(storage)에의 공유 액세스 및 그 밖의 다른 기능을 가능하게 할 것이다. ISO 베이스 미디어 파일 포맷은 현재 DVB 파일 포맷의 개발을 위한 토대로서 가장 강력한 후보이다. ISO 파일 포맷은 앞서 언급한 모든 컨테이너 파일 포맷(ISO 파일 포맷 그 자체는 제외)의 도출을 위한 토대이다. 이들 파일 포맷(ISO 파일 포맷 그 자체를 포함함)은 ISO 파일 포맷 계열로 지칭된다.
ISO 베이스 미디어 파일 포맷 내에서의 기본 구성 블록은 박스(box)로 지칭된다. 각 박스는 헤더 및 페이로드를 포함한다. 박스 헤더는 박스의 유형과 바이트 형식의 박스 크기를 나타낸다. 박스는 다른 박스를 포함할 수 있고, ISO 파일 포맷은 소정 유형의 박스 내에서 허용가능한 박스 유형을 지정한다. 더 나아가, 몇몇 박스는 각 파일에 의무적으로 제공되고, 다른 박스는 간단히 선택사항이다. 또한, 몇몇 박스 유형에 대해, 파일 내에 하나보다 많은 박스가 존재할 수 있다. 따라서, ISO 베이스 미디어 파일 포맷은 본질적으로 박스의 계층 구조를 지정한다.
도 2는 ISO 베이스 미디어 파일 포맷에 따라 간략화된 파일 구조를 나타낸다. ISO 파일 포맷 계열에 따르면, 파일(200)은 별개의 박스, 즉 미디어 데이터(mdat) 박스(210) 및 무비(moov) 박스(220)에 각각 포함된 미디어 데이터 및 메타데이터를 포함한다. 파일이 운용되기 위해서는, 이들 박스 모두가 제공되어야 한다. 미디어 데이터 박스(210)는 인터리빙될 수 있고 시간적으로 순서화될 수 있는 비디오 및 오디오 프레임을 포함한다. 무비 박스(220)는 하나 이상의 트랙을 포함할 수 있고, 각 트랙은 하나의 트랙 박스(240) 내에 상주한다. 트랙은 미디어, 힌트 또는 시한 메타데이터 중 하나의 유형일 수 있다. 미디어 트랙은 미디어 압축 포맷(및 그의 ISO 베이스 미디어 파일 포맷으로의 캡슐화)에 따라 포맷된 샘플을 지칭한다. 힌트 트랙은 지정된 통신 프로토콜에 따른 송신에 적합하도록 패킷을 구성하는 쿡북 인스트럭션을 포함하는 힌트 샘플을 지칭한다. 쿡북 인스트럭션은 패킷 헤더 구성에 대한 지침을 포함할 수 있고 패킷 페이로드 구성을 포함할 수 있다. 패킷 페이로드 구성에서, 다른 트랙 또는 아이템에 상주하는 데이터가 참조될 수 있다(예를 들어, 참조는 패킷 구성 프로세스 동안 패킷 내로 복사되도록 지시되는 특정 트랙 또는 아이템 내에서의 데이터 조각을 나타낼 수 있다). 시한 메타데이터 트랙은 참조된 미디어를 설명하는 샘플 및/또는 힌트 샘플을 참조한다. 일 미디어 유형의 프리젠테이션을 위해, 전형적으로 하나의 트랙이 선택된다.
또한, 트랙의 샘플은 샘플의 표시된 디코딩 순서에서 1씩 증가된 샘플 번호와 암시적으로 연관된다. 따라서, 트랙 내의 제 1 샘플은 샘플 번호"1"과 연관될 수 있다. 이러한 가정은 소정의 공식에 영향을 미치지만, 당업자라면, 샘플 번호들, 예를 들어, 샘플 번호"0"의 다른 "시작 오프셋"에 대해 상기 공식을 그에 따라 변경시킬 수 있음을 이해할 것이다.
ISO 베이스 미디어 파일 포맷은 프리젠테이션이 하나의 파일에만 포함되어야 하도록 제한하지 않음을 이해해야 한다. 사실, 프리젠테이션은 몇 개의 파일에 포함될 수 있다. 이러한 경우, 하나의 파일은 전체 프리젠테이션에 대한 메타데이터를 포함한다. 이 파일은 또한 모든 미디어 데이터를 포함할 수 있고, 이 경우, 프리젠테이션은 일체형이다(self-contained). 다른 파일이 사용된다면, 그 다른 파일은 ISO 베이스 미디어 파일 포맷에 따라 포맷되도록 요구되지 않는다. 다른 파일들은 미디어 데이터를 포함하는데 사용되고, 이들은 사용되지 않는 미디어 데이터 또는 다른 정보를 포함하는데 사용될 수 있다. ISO 베이스 미디어 파일 포맷은 메타데이터를 포함하는 파일의 구성에만 관계된다. 미디어 데이터 파일의 포맷은 미디어 파일 내의 미디어 데이터는 ISO 베이스 미디어 파일 포맷 또는 그의 파생 포맷에 지정되어 있는 대로 포맷되어야 한다는 점에서만 ISO 베이스 미디어 파일 포맷 및 그의 파생 포맷에 의해 제약을 받는다.
기록 애플리케이션이 멈추거나, 디스크를 벗어나 실행되거나 또는 일부 다른 사건이 발생되는 경우 데이터 손실을 막기 위해 ISO 파일에 콘텐츠를 기록할 때 무비 프래그먼트가 사용될 수 있다. 무비 프래그먼트가 없다면, 모든 메타데이터(무비 박스)가 파일의 하나의 연속적인 영역 내에 기록되어야 함을 파일 포맷이 고수하기 때문에 데이터 손실이 발생할 수 있다. 더 나아가, 파일 기록하는 경우, 이용가능한 스토리지의 크기에 대해 무비 박스를 버퍼링하기 위한 RAM의 양이 불충분할 수 있고, 무비가 폐쇄될 때 무비 박스의 콘텐츠의 재계산은 매우 느리다. 또한, 무비 프래그먼트는 레귤러 ISO 파일 파서(parser)를 사용하여 파일의 동시 기록 및 재생을 가능하게 할 수 있다. 끝으로, 점진적 다운로딩을 위해 초기 버퍼링의 지속기간은 보다 짧도록 요구된다(예를 들어, 무비 프래그먼트가 사용되고 초기 무비 박스가 동일한 미디어 콘텐츠를 가지나 무비 프래그먼트 없이 구성된 파일에 비교해 작은 경우, 파일의 동시 수신 및 재생).
무비 프래그먼트 특징은 통상적으로 moov 박스(220)에 상주할 수 있는 메타데이터를 여러 조각은 분할하는 것을 가능하고 하고, 각 조각은 트랙에 대한 소정의 기간에 대응한다. 따라서, 무비 프래그먼트 특징은 파일 메타데이터와 미디어 데이터의 인터리빙을 가능하게 한다. 결과적으로, moov 박스(220)의 크기는 제한될 수 있고 앞서 설명한 사용 경우(the use case)가 실현될 수 있다.
무비 프래그먼트에 대한 미디어 샘플은 moov 박스와 동일한 파일 내에 존재하는 경우 대체로 mdat 박스(210)에 상주한다. 그러나, 무비 프래그먼트의 메타 데이터의 경우, moof 박스가 제공된다. 그것은 moov 박스(220)에 앞서 존재할 수 있는 재생 시간의 소정의 지속기간에 대한 정보를 포함한다. moov 박스(220)는 그 자신의 유효 무비를 나타내지만, 또한, 무비 프래그먼트가 동일한 파일 내에서 연속됨을 나타내는 mvex 박스를 포함한다. 무비 프래그먼트는 moov 박스와 연관된 프리젠테이션을 시간면에서 연장한다.
moof 박스에 포함될 수 있는 메타데이터는 moov 박스(220) 내에 포함될 수 있고 메타데이터의 서브세트에 제한되고 일부 경우 상이하게 코딩된다.
시한 트랙에 더해, ISO 파일은 메타 박스 내의 임의의 시한이 없는(non-timed) 이진 객체, 또는 "정적"메타데이터를 포함할 수 있다. 메타 박스는 무비 박스 내에서 또한 트랙 박스 내에서 파일의 상위 레벨에 상주할 수 있다. 기껏해야, 파일 레벨, 무비 레벨 또는 트랙 레벨 각각에서 하나의 메타 박스가 발생할 수 있다. 메타 박스는 "메타"박스 콘텐츠의 구성 또는 포맷을 나타내는 'hdlr' 박스를 포함하도록 요구된다. 메타 박스는 참조될 수 있는 임의의 수의 이진 아이템을 포함할 수 있고 이들 각각은 파일 명칭과 연관될 수 있다.
계층의 임의의 레벨(파일, 무비 또는 트랙)에서 하나보다 많은 메타 박스를 지원하기 위해, 메타 박스 컨테이너 박스는 계층의 임의의 레벨(파일, 무비 또는 트랙)에서 임의의 수의 추가 메타 박스를 운반할 수 있다. 이것은 예를 들어, 동일한 메타 데이터가 두 개의 상이한, 대안적인, 메타데이터 시스템에서 표현될 수 있도록 해준다. 메타 박스 관계 박스("mere")는 상이한 메타 박스가 서로 어떻게 관련되는지(예를 들어, 그들이 정확히 동일한 메타데이터를 포함하지만, 상이한 기법으로 기술되는지 여부, 또는 하나의 메타 박스가 다른 메타 박스의 상위세트를 나타내는지 여부)를 설명할 수 있다.
도 3 및 도 4를 참조하면, 박스 내에서 샘플 그룹핑의 사용이 도시되어 있다. ISO 베이스 미디어 파일 포맷 및 그의 파생물, 예를 들어 AVC 파일 포맷 및 SVC 파일 포맷에서의 샘플 그룹핑은 트랙 내의 각 샘플이 그룹핑 기준에 기초하여 일 샘플 그룹의 멤버로 할당하는 것이다. 샘플 그룹핑에서의 샘플 그룹은 연속적인 샘플인 것으로 제한되지 않고 인접하지 않은 샘플을 포함할 수 있다. 트랙 내의 샘플들에 대해 하나보다 많은 샘플 그룹핑이 존재할 수 있기 때문에, 각 샘플 그룹핑은 그룹핑의 유형을 나타내는 유형 필드를 구비한다. 샘플 그룹핑은 두 개의 연결된 데이터 구조에 의해 표현되는데, 즉, (1) SampleToGroup 박스(sbgp 박스)는 샘플 그룹으로의 샘플의 할당을 나타내고, (2) SampleGroupDescription 박스(sgpd 박스)는 각 샘플 그룹마다 그룹의 특성을 나타내는 샘플 그룹 엔트리를 포함한다. 상이한 그룹핑 기준에 기초한 SampleToGroup 및 SampleGroupDescription 박스의 다수의 인스턴스가 존재할 수 있다. 이들은 그룹핑의 유형을 나타내는데 사용되는 유형 필드에 의해 구분된다.
도 3은 샘플 그룹 박스에 대한 네스팅(nesting) 구조를 나타내는 간단한 박스 계층을 제공한다. 샘플 그룹 박스(SampleGroupDescription 박스 및 SampleToGroup 박스)는 샘플 테이블(stbl) 박스 내에 상주하고, 이 샘플 테이블(stbl) 박스는 무비(moov) 박스 내에서 미디어 정보(minf), 미디어(mdia) 및 트랙(trak) 박스 내에 (이 순서로) 엔클로징된다.
SampleToGroup 박스는 무비 프래그먼트 내에 상주할 수 있다. 따라서, 샘플 그룹핑은 프래그먼트 단위로 수행될 수 있다. 도 4는 SampleToGroup 박스를 포함하는 무비 프로그래먼트를 포함하는 파일의 일 예를 나타낸다.
DVB 파일 포맷은 호환되는 DVB 장치 사이에서 상호운용성을 보장하기 위해 (전술한 바와 같이) 교환 포맷으로 의도된다. DVB 파일 포맷은 DVB 호환가능 장치에 대한 내부 저장 포맷으로 반드시 의도될 필요는 없다. DVB 파일 포맷은 상이한 제조사로부터의 장치 간의 기록된 (판독 전용) 미디의 이동을 가능하게 하고 또한 특히 홈 네트워크 상의 공통 디스크 스토리지에의 공유 액세스를 가능하게 한다.
DVB 파일 포맷의 핵심 특징은 데이터의 하나 이상의 패킷 스트림이 DVB 파일 포맷에 따라 기록되는 경우 사용될 수 있는 수신 힌트 트랙(reception hint track) 으로서 알려져 있다. 수신 힌트 트랙은 특히 수신된 패킷의 순서, 수신 타이밍 및 콘텐츠를 나타낸다. DVB 파일 포맷의 재생기는 수신된 패킷 스트림을 수신 힌트 트랙에 기초하여 재생성할 수 있고 재생성된 패킷 스트림이 마치 새롭게 수신된 것처럼 처리한다. 수신 힌트 트랙은 ISO 베이스 미디어 파일 포맷에 지정되어 있는 바와 같이, 서버용 힌트 트랙에 비교해 동일한 구조를 갖는다. 예를 들어, 수신 힌트 트랙은 이들이 운반하는 기본 스트림 트랙(즉, 미디어 트랙)에 유형 '힌트'의 트랙 참조에 의해 링크될 수 있다. 미디어 스트림을 전달하기 위한 각 프로토콜은 그 자신의 수신 힌트 샘플 포맷을 갖는다.
수신된 스트림의 전송을 위한 힌트로서 수신 힌트 트랙을 사용하는 서버는 전송 지연 지터 및 패킷 손실과 같은 수신된 스트림의 잠재적인 저하를 적절히 처리하고, 수신된 스트림의 잠재적인 저하와는 무관하게 프로토콜 및 포함된 데이터 포맷의 제약이 수용되도록 보장한다.
수신 힌트 트랙의 샘플 포맷은 참조를 통해 다른 트랙으로부터 데이터를 이동시킴으로써 패킷의 구성을 가능하게 할 수 있다. 이들 다른 트랙은 힌트 트랙 또는 미디어 트랙일 수 있다. 이들 포인터의 정확한 형식은 프로토콜에 대한 샘플 포맷에 의해 정의되지만, 일반적으로, 이들 포인터는 네 개의 정보 조각, 즉 트랙 참조 인덱스, 샘플 번호, 오프셋 및 길이로 구성된다. 이들 중 일부는 특정 프로토콜에 대해 암시적일 수 있다. 이들 "포인터"는 항상 정확한 데이터 소스를 지목한다. 힌트 트랙이 다른 힌트 트랙의 '상단'에 구성되는 경우, 제 2 힌트 트랙은 미디어 트랙으로부터의 데이터가 스트림 내에 배치되는 제 1 힌트 트랙에 의해 사용되는 미디어 트랙(들)에 대해 직접적인 참조를 가져야 한다.
수신된 스트림의 미디어 트랙으로의 변환에 의해, 미디어 포맷이 지원되는 한 ISO 베이스 미디어 파일 포맷에 호환되는 기존의 재생기는 DVB 파일을 처리할 수 있다. 그러나, 대부분의 미디어 코딩 표준은 단지 에러 없는 스트림의 디코딩을 지정하고, 따라서, 미디어 트랙 내의 콘텐츠가 정확히 디코딩되도록 보장되어야 한다. DVB 파일 포맷의 재생기는 송신에 의해 야기되는 저하를 처리하기 위해 수신 힌트 트랙을 사용할 수 있는데, 즉 정확히 디코딩될 수 없는 콘텐츠는 수신 힌트 힌트 트랙 내에만 위치한다. 미디어 트랙 및 수신 힌트 트랙 모두에서 정확한 미디어 샘플의 복제를 구비해야 할 필요성은 참조에 의한 미디어 트랙으로부터의 데이터를 수신 힌트 트랙 내에 포함함으로써 제거될 수 있다.
현재, 수신 힌트 트랙의 두 개의 유형, 즉 MPEG-2 전송 스트림(MPEG2-TS) 및 실시간 전송 프로토콜(RTP) 수신 힌트 트랙이 지정되어 있다. MPEG2-TS 수신 힌트 트랙의 샘플은 MPEG2-TS 패킷 또는 미디어 트랙에 대한 참조로부터 MPEG2-TS 패킷을 구성하기 위한 인스트럭션을 포함한다. MPEG-2 전송 스트림은 오디오 및 비디오 프로그램 기본 스트림과 일부 메타데이터 정보의 다중화이다. MPEG-2 전송 스트림은 또한 몇몇 시청각 프로그램을 포함할 수 있다. RTP 수신 힌트 트랙은 하나의 RTP 스트림, 전형적으로 단일 미디어 유형을 나타낸다.
RTP는 코딩된 오디오 및 비디오 스트림과 같은 연속적인 미디어 데이터를 네트워크에서 인터넷 프로토콜(IP)에 기초하여 전송하는데 사용된다. 실시간 전송 제어 프로토콜(RTCP)은 RTP의 짝이다. 즉, RTCP는 네트워크 및 애플리케이션 인프라구조가 허락하는 경우 항상 RTP를 보완하는데 사용되어야 한다. RTP 및 RTCP는 대개 사용자 데이터그램 프로토콜(UDP)을 통해 전달되고, 그런 다음 인터넷 프로토콜(IP)을 통해 전달된다. IP의 두 가지 버전, 즉 IPv4와 IPv6가 있으며, 이들은 특히 어드레싱가능 엔드포인트의 개수에 의해 구분된다. RTCP는 네트워크에 의해 제공되는 서비스 품질을 모니터링하고 진행중인 세션 내의 참여자에 대한 정보를 전달하는데 사용된다. RTP 및 RTCP는 1대1 통신에서부터 수천의 엔드포인트로 구성된 큰 멀티캐스트 그룹까지의 세션에 대해 설계된다. 멀티파티(multiparty) 세션에서 RTCP 패킷에 의해 야기되는 전체 비트레이트를 제어하기 위해, 단일 엔드포인트에 의해 전송된 RTCP 패킷의 전송 간격은 세션 내의 참여자의 수에 비례한다. 각 미디어 코딩 포맷은 RTP 패킷의 페이로드에서 미디어 데이터가 구성되는 방식을 지정하는 특정 RTP 페이로드 포맷을 갖는다.
DVB 파일 포맷에 대한 메타데이터 요건들은 메타데이터의 유형에 기초하여 네 개의 그룹으로 분류될 수 있다. 1) 프리젠테이션 타임스탬프와 같은 샘플 특정 타이밍 메타데이터, 2) 인덱스, 3) 세그먼트형 메타데이터 및 4) (예를 들어, 콘텐츠내에서 마음에 드는 위치)의 사용자 북마크.
샘플-특정 타이밍 메타데이터의 일 예는 프리젠테이션 타임스탬프이다. 샘플 특정 타이밍 메타데이터를 나타내는데 상이한 타임라인(timeline)이 있을 수 있다. 타임라인은 기록된 스트림의 전체 길이를 커버할 필요는 없으며 타임라인은 중지될 수 있다. 예를 들어, 예시적인 경우, 타임라인(A)은 무비의 최종 편집 단계에서 생성될 수 있다. 이후에, 서비스 공급자는 광고를 삽입할 수 있고 이 광고를 위한 타임라인(B)을 제공할 수 있다. 그 결과, 타임라인(A)은 광고가 진행중인 동안 중지될 수 있다. 타임라인은 또한 콘텐츠 그 자체 이후에 전송될 수 있다. 타임라인 샘플 운반을 위한 하나의 메카니즘은 MPEG-2 프로그램 기본 스트림(PES) 내에서 타임라인 샘플을 운반하는 것을 포함한다. PES는 기본 오디오 또는 비디오 스트림을 전달하며, 따라서 타임라인은 오디오 및 비디오 프레임과 정확히 동기화된다.
인덱스는 예를 들어 비디오 액세스 포인트 및 트릭 모드 지원(예를 들어, 고속 전진/후진, 슬로우-모션)을 포함할 수 있다. 이러한 동작은 예를 들어 자기-디코딩가능 화상, 디코딩 시작 지점의 표시와, 참조 및 비-참조 화상의 표시를 필요로 할 수 있다.
세그먼트형 메타데이터의 경우, DVB 서비스는 브로드캐스트 콘텐츠 가이드(BCG), TV-애니타임, 또는 IP 데이터캐스팅을 위한 전자 서비스 가이드(ESG)와 같이, 특정 메타데이터 스키마(schema)에 따른 서비스 가이드에 의해 설명될 수 있다. 이 설명은 스트림의 일부분에만 적용될 수 있다. 따라서, 파일은 몇몇 설명 세그먼트(예를 들어, "Holiday in Corsica near Cargese"와 같은, 프로그램의 특정 세그먼트에 대한 설명) 정보를 포함할 수 있다.
또한, DVB 파일 포맷의 메타데이터 및 인덱싱 구조는 확장가능하도록 요구되며 사용자 정의 인덱스는 지원되도록 요구된다.
인덱싱을 수행하고 세그먼트형 메타데이터를 구현하기 위한 다양한 기법이 제안되었는데, 예를 들어 시한 메타데이터 트랙, 샘플 그룹, DVBIndexTable, 가상 미디어 트랙, 샘플 이벤트 및 샘플 특성을 포함한다. 시한 메타데이터 트랙과 관련하여, 하나 이상의 시한 메타데이터 트랙이 생성된다. 트랙은 특정 유형의 인덱스를 포함할 수 있거나 또는 임의의 유형의 인덱스를 포함할 수 있다. 다시 말해, 샘플 포맷은 상이한 인덱스 유형의 멀티플렉싱을 가능하게 할 수 있다. 트랙은 또한 (예를 들어 멀티-프로그램 전송 스트림의) 하나의 프로그램 또는 다수의 프로그램의 인덱스를 포함할 수 있다. 또한, 트랙은 하나의 미디어 유형 또는 다수의 미디어 유형의 인덱스를 포함할 수 있다.
샘플 그룹과 관련하여, 각 인덱스 유형마다 하나의 샘플 그룹핑 유형이 전용될 수 있는데, 이 경우, 특정 인덱스 유형에 대해 상이한 값이 존재함에 따라 동일한 개수의 샘플 그룹 설명 인덱스가 샘플 그룹 설명 박스에 포함된다. SampletoGroup 박스는 샘플을 인덱스 값에 연관시키는데 사용된다. 샘플 그룹 접근방식은 시한 메타데이터 트랙과 함께 사용될 수 있다.
DVBIndexTable에 있어서, DVBIndexTable 박스는 샘플 테이블 박스 내에 도입된다. DVBIndexTable 박스는 엔트리의 리스트를 포함하는데, 각 엔트리는 수신 힌트 트랙 내의 샘플과 그의 샘플 번호를 통해 연관된다. 각 엔트리는 인덱스의 정확성, 각 엔트리에 관련 있는 멀티-프로그램 MPEG-2 전송 스트림의 프로그램, 각 엔트리에 대응하는 타임스탬프, 및 인덱스(들)의 값(들)에 대한 정보를 더 포함한다.
가상 미디어 트랙과 관련하여, 가상 미디어 트랙은 수신 힌트 트랙의 샘플 데이터를 참조함으로써 수신 힌트 트랙으로부터 구성되도록 하는 것이 제안되었다. 따라서, 싱크(sync) 샘플 박스와 같은 미디어 트랙에 대한 인덱싱 메카니즘은 수신된 미디어에 대해 간접적으로 사용될 수 있다.
끝으로, 샘플 이벤트 및 샘플 특성 기법과 관련하여, (샘플 그룹이 인덱싱에 사용될 때) 샘플 그룹의 두 개의 고유 단점을 극복하는 것이 제안되었다. 첫째, SampletoGroup 박스는 샘플을 그룹 설명 인덱스에 연관시키는데 실행-길이 코딩을 사용한다. 다시 말해, 동일한 그룹 설명 인덱스에 매핑되는 연속적인 샘플의 개수가 제공된다. 따라서, 절대 샘플 번호에 대해 그룹 설명 인덱스를 결정하기 위해, 연속적인 샘플 카운트의 누적 합이 계산된다. 이러한 계산은 일부 구현에 있어서는 계산적 부담이 될 수 있다. 따라서, 제안된 기법은 실행-길이 코딩보다는, SampletoEvent 및 SampletoProperty 박스(SampletoGroup 박스에 대응함)에서 절대 샘플 번호를 사용한다. 둘째로, SampleGroupDescription 박스는 무비 박스 내에 상주한다. 따라서, 인덱스 값이 기록의 시작시에 알려져 있어야 하거나(이는 모든 인덱스 유형에 대해서는 불가능할 수 있음) 또는 무비 박스는 새로운 인덱스 값에 응답하기 위해 기록 동안 끊임없이 업데이트되어야 한다. 따라서, 무비 박스의 업데이트는 파일 내에서 다른 박스(예를 들어, mdat 박스)의 이동을 요구할 수 있으며, 이는 느린 파일 동작일 수 있다. 제안된 SampletoProperty 박스는 인덱스 값을 실제적으로 운반하고 모든 무비 프래그먼트에 상주할 수 있는 특성 값 필드를 포함한다. 따라서, 오리지널 무비 박스는 새로운 인덱스 값 때문에 업데이트될 필요는 없다.
상이한 트랙으로부터의 샘플들을 짝짓는데, 즉 ISO 베이스 미디어 파일 포맷 및 그의 파생물에 따라 상이한 트랙의 샘플을 서로 연관시키는데 다양한 방법이 사용될 수 있다. '공통 재생 타임라인'으로 지칭되는 제 1 방법은 동일한 타임라인 상에서 나타나는 것으로 가장되는 미디어 샘플의 구성 타임스탬프에 따라 미디어 트랙이 동기화되는 경우에 실행된다. 다시 말해, 샘플은 실제로 서로 연관되는 것이 아니라, 동시에 제공된다.
이와 달리, '동일한 디코딩 시간'으로 지칭되는 방법은 시한 메타데이터 트랙이 미디어 또는 그것이 설명하는 힌트 트랙에 대한 트랙 참조를 포함하는 경우에 이용될 수 있다. 시한 메타데이터 샘플은 대개 디코딩 시간을 통해 미디어 샘플과 연관되는데, 즉 대응하는 샘플은 (양 트랙의) 샘플에 대한 디코딩 시간 박스에 의해 표시되는 동일한 디코딩 타임스탬프를 갖는다.
상이한 트랙으로부터의 샘플을 짝짓는 또 다른 방법은 '동일한 샘플 번호'로 지칭되는데, 이는 미디어 샘플의 샘플 번호를 시한 메타데이터 샘플에 포함시킴으로써 시한 메타데이터 샘플을 미디어 샘플에 연관시킬 수 있는 가능성을 제공한다. 유사한 메카니즘이 RTP 힌트 트랙에 대한 패킷 구성기들 중 하나로서 이용가능하다. 또 다른 예는 힌트 샘플에 대한 참조를 통해 샘플 데이터를 포함하는 것과 유사한 추출기 메카니즘을 포함하는 SVC 파일 포맷이다.
더 나아가,'디코딩 시간+샘플-특정 샘플 번호 오프셋'으로 지칭되는 방법이 사용될 수 있는데, 하나의 SVC 트랙은 또 다른 SVC 트랙으로부터 추출기 메카니즘을 사용하는 참조를 통해 데이터를 포함할 수 있다. 예를 들어, 하나의 SVC 트랙은 또 다른 SVC 트랙에 대한 참조를 통해 포함될 수 있는 스케일러블 비트스트림의 베이스 층을 포함한다. 추출기를 포함하는 샘플(목적지 샘플로서 지칭됨)은 우선 후보 소스 샘플 번호로서 지칭되는 샘플 번호를 갖는 참조된 트랙 내의 샘플에 그의 디코딩 시간을 통해 연관된다. 그런 다음, 목적지 샘플에 포함된 샘플 번호 오프셋은 연관된 샘플 번호를 얻기 위해 후보 소스 샘플 번호에 부가된다.
DVB 파일 포맷의 인덱싱 메카니즘에 대해 간단한 프로세스가 일반적으로 바람직하다. 그러나, 인덱싱 메카니즘의 두드러진 특징은 인덱스와 수신 힌트 샘플(또는 일부 경우 미디어 샘플)을 짝짓는 것이다. 따라서, 특정 인덱스에 대해 수신 힌트 샘플을 결정하기 위한 반복 합과 같은 임의의 연속 동작을 하지 않는 것이 바람직하다.
앞서 설명한 공통 재생 타임라인 방법에 따르면, 상이한 트랙으로부터의 샘플들의 짝짓기는 샘플에 대한 디코딩 시간 박스와 샘플에 대한 조성 시간 박스(Composition Time to Sample Box)가 양 트랙에서 파싱(parsing)된 이후에만 가능하다. 샘플에 대한 디코딩 시간 박스는 다르게 코딩된다. 즉, 각 샘플마다 절대 디코딩 타임스탬프를 나타내기 보다는, 각 샘플에 대한 샘플 지속기간이 제공된다. 따라서, 특정 샘플에 대한 디코딩 타임스탬프를 결정하기 위해, 선행하는 샘플의 모든 샘플 지속기간이 합산되어야 하는데, 이는 계산적인 부담이 된다. 더 나아가, 구성 타임스탬프는 시한 메타데이터 샘플과는 무관한데, 그 이유는 그들은 좀처럼 제공되지 않기 때문이다.
동일한 디코딩 시간 방법은 양 트랙의 샘플에 대한 디코딩 시간 박스의 파싱을 요구하는데, 이는 전술한 바와 같이 계산적 부담이다. 마찬가지로, 동일한 샘플 번호 방법은 또한 복잡한 편집 동작을 야기하는데, 그 이유는 샘플이 미디어 트랙에 삽입 또는 그로부터 제거될 때마다, 시한 메타데이터 트랙에 포함된 샘플 번호는 재기록되어야 하기 때문이다. 다시 말해, 편집 지점 이후의 모든 시한 메타데이터 샘플은 트래버스(traverse)되어야 하고 그들의 콘텐츠는 편집되어야 한다. 또한, '디코딩 시간+샘플-특정 샘플 번호 오프셋'방법은 동일한 디코딩 시간 방법과 마찬가지로 양 트랙의 샘플에 대한 디코딩 시간 박스의 파싱을 요구하는데, 이는 계산적인 부담이다.
파일 편집 동작은 편집 리스트 박스를 통해 구현될 수 있음을 주지되어야 한다. 편집 리스트 박스는 미디어 구성 타임라인이 재생 타임라인으로 변환되는 방식을 지정하고, 미디어 타임라인의 세션으로의 분할과 재생 타임라인에서 이 섹션의 타임-슬라이스로의 매핑을 가능하게 한다. 따라서, 편집 리스트 박스는 재생으로부터 미디어 샘플을 생략할 수 있고, 재생에서 미디어 섹션의 순서를 바꿀 수 있으며, 미디어 섹션의 재생률을 바꿀 수 있게 한다. 그러나, 편집 리스트 박스는 모든 재생기에 의해 지원되는 것은 아닌데, 그 이유는 예를 들어 편집 리스트 박스에 의해 제공되는 특징의 가요성은 재생기 구현에 대해 도전을 야기하기 때문이다. 더 나아가, 편집 리스트 박스의 사용은 moov 박스에서 재생되지 않는 미디어 샘플 또는 재생되지 않는 미디어 샘플의 설명을 위해 사용되는 저장 공간을 비우지는 않는다. 따라서, 종래의 파일 편집기는 일반적으로 편집 리스트 박스를 사용하지 않고 그보다는 다른 방법을 통해 파일을 수정한다.
미디어 및/또는 멀티미디어 데이터를 구성하는 다양한 시스템 및 방법이 다양한 실시예에 따라 제공된다. 제 1 및 제 2 샘플이 파일에 저장되고, 제 1 및 제2 샘플은 (참조를 통해) 예를 들어 미디어 또는 힌트 트랙에 포함될 수 있다. 제 1 샘플은 데이터의 제 1 조각과 연관되고 제 2 샘플은 데이터의 제 2 조각과 연관되며, 데이터의 제 1 및 제 2 조각은 미디어 또는 힌트 트랙의 대표적인 부분을 나타낸다. 제 1 샘플 번호는 제 1 샘플과 연관되고 제 2 샘플 번호는 제 2 샘플과 연관되며, 제 1 및 제 2 샘플 번호는 예를 들어 시한 메타데이터 샘플에 포함되며, 미디어 및/또는 트랙에 관련된다. 샘플 번호 오프셋이 파일에 포함되고 데이터의 제 1 조각과 연관된 제 1 베이스 샘플 번호가 또한 파일에 포함된다. 샘플 번호 오프셋은 복수의 시한 메타데이터 샘플에 적용될 수 있다. 제 1 샘플 번호는 샘플 번호 오프셋 및 제 1 베이스 샘플 번호로부터 유도될 수 있다. 샘플 번호 오프셋 및 제 1 베이스 샘플 번호로부터 제 1 샘플 번호를 유도하는 하나의 방법에 있어서, 샘플 번호 오프셋은 제 1 베이스 샘플 번호에 부가되어 제 1 샘플 번호, 즉 미디어 또는 힌트 트랙 내의 실제 제 1 샘플 번호를 획득한다. 또한, 데이터의 제 2 조각과 연관된 제 2 베이스 샘플 번호가 파일에 포함되는데, 이 제 2 샘플 번호는 제 1 베이스 샘플 번호와 관련하여 설명한 바와 동일한 방식으로 샘플 번호 오프셋 및 제 2 베이스 샘플 번호로부터 유도될 수 있다.
전술한 바와 같이 샘플 번호 오프셋이 사용되기 때문에, 시한 메타데이터 샘플 내의 샘플 번호는 샘플의 삽입 또는 제거 이후에 재기록될 필요가 없다. 따라서, 다양한 실시예는 예를 들어 특히 적용가능한 편집 동작의 가장 많이 사용되는 특징일 수 있는 기록의 시작의 제거와 관련하여 편집 동작을 간단히 할 수 있다.
본 발명의 이들 및 다른 장점 및 특징과 이들의 동작의 구성 및 방식은 첨부한 도면과 연계하여 후속하는 상세한 설명으로부터 분명해질 것이며, 몇몇 도면에 걸쳐 유사한 소자는 유사한 번호를 갖는다.
도 1은 멀티미디어 파일 포맷의 계층에 대한 설명을 나타내는 도면,
도 2는 ISO 베이스 미디어 파일 포맷에 따른 예시적인 박스를 나타내는 도면,
도 3은 샘플 그룹핑을 나타내는 예시적인 박스를 도시한 도면,
도 4는 SampleToGroup 박스를 포함하는 무비 프래그먼트를 포함하는 예시적인 박스를 나타내는 도면,
도 5는 다양한 실시예가 구현될 수 있는 예시적인 멀티미디어 통신 시스템을 그래픽으로 나타내는 도면,
도 6은 다양한 실시예에 따라 미디어 및/또는 멀티미디어 데이터를 구성하는 방법을 나타내는 흐름도,
도 7은 다양한 실시예에 따라 미디어 데이터를 액세스하는 방법을 나타내는 흐름도,
도 8은 다양한 실시예에 따라 미디어 데이터를 디코딩하고 인덱스를 액세스하는 방법을 나타내는 흐름도,
도 9는 다양한 실시예의 구현과 연계하여 사용될 수 있는 전자 장치의 사시도,
도 10은 도 9의 전자 장치에 포함될 수 있는 회로를 개략적으로 나타내는 도면.
도 5는 본 발명의 다양한 실시예가 구현될 수 있는 총칭 멀티미디어 통신 시스템의 그래픽 표현이다. 도 5에 도시된 바와 같이, 데이터 소스(500)는 아날로그 포맷, 비압축 디지털 포맷 또는 압축 디지털, 또는 이들 포맷의 임의의 조합의 소스 신호를 제공한다. 인코더(510)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 디코딩될 비트스트림은 임의의 유형의 네트워크 내에 가상으로 위치한 원격 디바이스로부터 직접적으로 또는 간접적으로 수신될 수 있다. 또한, 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있다. 인코더(510)는 오디오 및 비디오와 같이 두 가지 이상의 미디어 유형을 인코딩할 수 있으며, 또는 두 개 이상의 인코더(510)가 상이한 미디어 유형의 소스 신호를 코딩하는 데 요구될 수도 있다. 인코더(510)는 또한 그래픽 및 텍스트와 같이 합성으로 생성된 입력을 얻을 수도 있고, 또는 합성 미디어의 코딩된 비트스트림을 생성할 수도 있다. 이하에서는, 설명을 간단히 하기 위해서 한 가지 미디어 유형의 하나의 코딩된 미디어비트스트림의 프로세싱만이 고려된다. 그러나, 일반적인 실시간 브로드캐스트 서비스는 여러 스트림(일반적으로는 적어도 하나의 오디오, 비디오 및 텍스트 부제 스트림)을 포함한다는 것에 유의해야 한다. 또한, 시스템은 많은 인코더를 포함할 수 있지만, 도 5에서는 일반성의 부족함 없이 설명을 간단히 하기 위해 단 오직 하나의 인코더(510)만이 표현된다는 것에 유의해야 한다. 또한, 본 명세서에 포함된 텍스트 및 실례는 인코딩 프로세스를 구체적으로 설명할 수 있지만, 당업자라면 동일한 개념 및 원리가 대응하는 디코딩 프로세스에도 적용되며, 그 반대의 경우에도 가능하리라는 것을 이해할 것이라는 점이 이해될 것이다.
코딩된 미디어 비트스트림은 스토리지(520)로 전송된다. 스토리지(520)는 코딩된 미디어 비트스트림을 저장하는 임의의 유형의 대용량 메모리를 포함할 수 있다. 스토리지(520) 내의 코딩된 미디어 비트스트림의 포맷은 기본적인 일체형 비트스트림 포맷(elementary self-contained bitstream format)일 수 있으며, 또는 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일 내에 캡슐화될 수 있다. 몇몇 시스템은"라이브"로 동작하는데, 다시 말해 스토리지를 생략하고, 코딩된 미디어 비트스트림을 인코더(510)로부터 송신기(530)에게 직접 전달한다. 코딩된 미디어 비트스트림은 서버라고도 지칭되는 송신기(530)에게 필요에 따라 전송된다. 전송에 이용되는 포맷은 기본적인 일체형 비트스트림 포맷이거나 패킷 스트림 포맷일 수 있으며, 또는 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일 내에 캡슐화될 수 있다. 인코더(510), 스토리지(520) 및 서버(530)는 동일한 물리적 디바이스 내에 존재할 수도 있고, 또는 별도의 디바이스에 포함될 수도 있다. 인코더(510) 및 서버(530)는 라이브 실시간 콘텐츠로 동작할 수 있으며, 이러한 경우 코딩된 미디어 비트스트림은 일반적으로 영구히 저장되는 것이 아니라 오히려 콘텐츠 인코더(510) 및/또는 서버(530) 내에서 단시간 동안에 버퍼링되어 프로세싱 지연, 전송 지연 및 코딩된 미디어 비트 레이트의 변화를 평탄화시킨다.
서버(530)는 통신 프로토콜 스택을 이용하여 코딩된 미디어 비트스트림을 전송한다. 스택은 실시간 전송 프로토콜(Real-Time Transport Protocol: RTP), 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 및 인터넷 프로토콜(IP)을 포함할 수 있지만, 이러한 것들로 제한되는 것은 아니다. 통신 프로토콜 스택은 패킷 지향적이며, 서버(530)는 코딩된 미디어 비트스트림을 패킷 내로 캡슐화한다. 예를 들어, RTP가 이용되면, 서버(530)는 코딩된 미디어 비트스트림을 RTP 페이로드 포맷에 따라 RTP 패킷 내에 캡슐화한다. 일반적으로, 각각의 미디어 유형은 전용 RTP 페이로드 포맷을 갖는다. 또한 시스템은 두 개 이상의 서버(530)를 포함할 수 있지만, 간소성을 위해 다음의 설명에는 단 하나의 서버(530)만을 고려한다는 것에 유의해야 할 것이다.
서버(530)는 통신 네트워크를 통해 게이트웨이(540)에 접속될 수도 있고, 또는 그렇지 않을 수도 있다. 게이트웨이(540)는 하나의 통신 프로토콜 스택에 따른 패킷 스트림의 다른 통신 프로토콜 스택으로의 변환, 데이터 스트림의 병합 및 분기, 및 우세한 다운링크 네트워크 조건에 따라 포워딩된 스트림의 비트 레이트 조절과 같은 다운링크 및/또는 수신기 능력에 따른 데이트 스트림의 조작과 같은 상이한 유형의 기능을 수행할 수 있다. 게이트웨이(540)의 실례는 다지점 회의 제어 유닛(multipoint conference control units: MCUs), 회선 교환형 비디오 전화와 패킷 교환형 비디오 전화 사이의 게이트웨이, PoC (Push-to-talk over Cellular) 서버, DVB-H(digital video broadcasting-handheld) 시스템 내의 IP 캡슐화기, 또는 브로드캐스트 전송을 홈 무선 네트워크에 국부적으로 포워딩하는 셋톱-박스를 포함한다. RTP가 이용되는 경우, 게이트웨이(540)는 RTP 믹서 또는 RTP 변환기라고 호칭되며 일반적으로 RTP 접속의 종단점으로서 작용한다.
시스템은, 일반적으로 전송된 신호를 수신하고, 복조하며, 코딩된 미디어 비트스트림 내에 캡슐화할 수 있는 하나 이상의 수신기(550)를 포함한다. 코딩된 미디어 비트스트림은 기록용 스토리지(555)로 전송된다. 기록용 스토리지(555)는 코딩된 미디어 비트스트림을 저장할 임의의 유형의 대용량 메모리를 포함할 수 있다. 기록용 스토리지(555)는 대안으로 또는 추가로 랜덤 액세스 메모리와 같은 계산 메모리를 포함할 수 있다. 기록용 스토리지(555) 내의 코딩된 미디어 비트스트림의 포맷은 기본적인 일체형 비트스트림 포맷일 수 있으며, 또는 하나 이상의 코딩된 미디어 비트스트림은 컨테이너 파일 내에 캡슐화될 수 있다. 오디오 스트림 및 비디오 스트림과 같이 서로 연계되는 코딩된 미디어 비트스트림이 많다면, 컨테이너 파일이 일반적으로 사용되고, 수신기(550)는 입력 스트림으로부터 컨테이너 파일을 생성하는 컨테이너 파일 발생기를 포함하거나 그에 부착된다. 몇몇 시스템은 "라이브"로 동작하는데, 다시 말해 기록용 스토리지(555)를 생략하고, 코딩된 미디어 비트스트림을 수신기로부터(550) 디코더(560)로 직접 전송한다. 몇몇 시스템에서, 기록된 스트림의 가장 최근 부분, 예컨대 기록된 스트림의 가장 최근 10분 발췌본만이 기록용 스토리지(555) 내에 유지되며, 보다 일찍 기록된 임의의 데이터는 기록용 스토리지(555)로부터 폐기된다.
코딩된 미디어 비트스트림은 기록용 스토리지(555)로부터 디코더(560)로 전송된다. 오디오 스트림 및 비디오 스트림과 같이 서로 연계되고 컨테이너 파일 내에 캡슐화되는 코딩된 미디어 비트스트림이 많다면, 파일 파서(file parser)(도면에는 도시되지 않음)는 각각의 코딩된 미디어 비트스트림을 컨테이너 파일로부터 탈캡슐화시키는 데 사용된다. 기록용 스토리지(555) 또는 디코더(560)는 파일 파서를 포함할 수도 있고, 또는 파일 파서는 기록용 스토리지(555) 또는 디코더(560) 중 어느 하나에 부착된다.
코덱 미디어 비트스트림은 일반적으로 하나 이상의 비압축 미디어 스트림을 출력을 갖는 디코더(560)에 의해 추가로 처리된다. 마지막으로, 렌더러(570)는, 예를 들어 스피커 또는 디스플레이를 사용하여 비압축 미디어 스트림을 재생할 수 있다. 수신기(550), 기록용 스토리지(555), 디코더(560) 및 렌더러(570)는 동일한 물리적 디바이스에 존재할 수도 있고, 또는 별도의 디바이스 내에 포함될 수도 있다.
다양한 실시예는 샘플 번호를 이용하여 시한 메타데이터 샘플과 미디어 또는 힌트 샘플을 짝짓는 시스템 및 방법을 제공한다. 다시 말해, 시한 메타데이터 샘플은 시한 미디어 샘플 내에 포함된 샘플이 적절한 미디어 또는 힌트 트랙에 대해 제공되므로 미디어 또는 힌트 샘플과 쌍을 이룰 수 있다. 또한, 다수의 시한 메타데이터 샘플이 존재하는 시나리오에 적용가능한 샘플 번호의 오프셋은 제공된 샘플 번호에 추가되어 미디어 또는 힌트 트랙 내의 실제 샘플 번호를 획득하게 할 수 있다. 샘플 번호 오프셋이 이용되기 때문에, 전술한 바와 같이, 시한 메타데이터 샘플의 샘플 번호는 샘플의 삽입 또는 제거 이후에 덮어쓰기될 필요가 없다. 따라서, 다양한 실시예는, 예를 들어 흔히 가장 많이 사용되는 적용가능한 편집 특징 중의 하나일 수 있는 편집 동작, 특히 기록의 시작의 제거에 관한 편집 동작을 단순화시킬 수 있다.
미디어 및/또는 힌트 샘플과 시한 메타데이터의 쌍을 인에이블링하도록 아래에 제시되는 구문(syntax) 및 의미론(semantics), 및 샘플 번호의 이용은 DVB 파일 포맷의 콘텍스트 및 DVB 파일 포맷에 대한 다른 인덱싱 메커니즘에 설명된다는 것에 유의해야 한다. 그러나, 다양한 실시예는 본 명세서에서 설명되는 구문 및 의미론으로 제한될 필요는 없으며, 마찬가지로 다른 파일 포맷에도 적용가능하다. 즉, 다양한 실시예가 임의의 2개의 "샘플"의 연관을 유효하게 하는 다양한 시스템 및 방법으로 구현될 수 있으며, 이 때 "샘플"은 다른 샘플과 관련하여 타임라인(timeline) 또는 순차 시퀀스와 연계된다.
다양한 실시예에 따른 시한 메타데이터 트랙은 다음과 같은 샘플 엔트리를 이용한다.
Figure pct00001
IndexSampleEntry는 이 특정 샘플 엔트리와 연관된 샘플에 존재할 수 있는 인덱스 유형을 나타낸다. program_number는 MPEG-2 전송 스트림 내의 프로그램을 식별한다. entry_count가 0인 경우, 임의의 인덱스가 이 샘플 엔트리와 연관된 샘플에 포함될 수 있다. entry_count가 0보다 큰 경우, index_type_4cc 값의 루프가 주어지고, index_type_4cc 각각의 값은 이 샘플 엔트리와 연관된 샘플에 존재할 수 있는 박스에 대한 4문자 코드를 나타낸다. 수신 힌트 트랙에 대한 시한 메타데이터 트랙이 많이 있는 경우, index_type_4cc 값은 원하는 인덱스를 포함하는 트랙을 위치시키는 데 이용될 수 있다. 또한, sample_number_offset은 연관된 시한 메타데이터 샘플 내의 sample_number에 추가될 오프셋을 특정하여, 기준 트랙에서의 샘플 번호를 획득하게 한다. 예를 들어, sample_number_offset을 포함하는 샘플 테이블 박스에 새로운 박스가 도입될 수 있다. 새로운 박스의 sample_number_offset은 각각의 무비 박스 또는 무비 프레그먼트 박스(Movie Fragment Box)에 의해 참조되는 모든 샘플에 적용된다. 대안으로, 새로운 필드는 트랙 박스 또는 트랙 프레그먼트 박스에 의해 참조되는 샘플에 대한 sample_number_offset을 각각 포함하는 트랙 헤더 박스 및 트랙 프래그먼트 헤더 박스(Track Fragment Header Box)에 포함될 수 있다.
인덱스 및 분할된 메타데이터를 포함하는 시한 메타데이터 트랙에 대한 샘플 포맷의 실례는 아래에 주어진다.
Figure pct00002
주어진 인덱스와 연관된 수신 힌트 트랙의 샘플은 sample_number+sample_number_offset과 동일한 샘플 번호를 갖는다. IndexSample은 0 이상의 인덱스 박스를 포함하되, 이 경우 포함된 인덱스 박스에 대한 4문자 코드는 연관된 샘플 엔트리에 의해 나타내어지는 것들 중의 하나이다.
다양한 실시예와 함께 이용될 수 있는 인덱스 박스의 실례는 다음과 같다.
Figure pct00003
다음 값은 time_accuracy 및 sample_accuracy, 즉 0x0: 정확, 0x1: 비특정, 0x2: 휴어리스틱(heuristic), 0x3: 보존(reserved)(최대치는 제공되지 않음), 0x4 - 0x7: 애플리케이션 특정(최대치는 제공되지 않음), 0x8: 특정된 최대 부정확성, 0x9: 보존(최대 부정확성 제공), 0 xA - 0xF: 애플리케이션 특정(최대 부정확성 제공).
Figure pct00004
video_event_mask는 아래의 표 1에 따라 표시된 샘플에서 시작하는 비디오 이벤트(들)를 나타내는 비트 마스크이다.
Figure pct00005
video_event_length는 이 비디오 화상을 구성하여 현재 패킷을 포함하는 샘플(전송 패킷)의 수를 나타낸다. 값 '0'은 "미지(unknown)"를 의미하는 데 이용될 것이다.
또한, 구문 샘플 박스는 또한 인덱스를 유형 0x01의 이벤트에 전할 수 있다.
Figure pct00006
연관된 프로그램 클록 기준(program clock reference: PCR) 이벤트에 PCR 불연속성이 있는 경우, PCR_discontinuity_flag는 '1'로 설정되는 필드이다. 그렇지 않은 경우, 그것은 '0'으로 설정될 것이다.
PCR_value: ISO/IEC 국제 표준 13818-1의 수학식(2-1)에 따라 인덱싱된 PCR로부터 추출되는 27MHz 값
Figure pct00007
극성은 표 2에 따른 연관된 이벤트의 극성을 나타낸다.
Figure pct00008
위 표 2의 값은 시한 메타데이터 샘플이 이 새로운 극성을 갖는 제 1 수신 힌트 샘플에 대응하는 새롭고 적용가능한 극성 값을 나타낸다. 그러나, 극성 변화 인덱스는 주어진 PID에 대한 패킷 스트림의 극성이 변화할 때 발생하되, 상이한 PID 패킷들 사이에서 변할 때에는 발생하지 않는 것으로 간주될 것이라는 점에 유의해야 한다.
아래와 같이 특정되는 극성의 경우, ca_event_data는 조건부 액세스(CA) 이벤트를 전달하는 패킷을 포함하는 바이트를 나타낼 것이다. 흔히, 항상은 아니라 하더라도, 이것은 자격 제어 메시지(entitlement control message: ECM)일 것이다. ca_event_data는 박스의 종단 및 ca_event_data의 길이가 박스의 길이로부터 판정될 수 있을 때까지 계속된다.
Figure pct00009
타임라인에 관한 또 다른 인덱스 박스가 아래에 제시된다.
Figure pct00010
timeline_id는 타임라인의 식별자이다. tick_format은 absolute_ticks 필드가 취할 포맷을 특정하는 포맷이다. absolute_ticks는 필드 tick_format에 의해 나타내어지는 바와 같이 코딩되는 타임코드이다.
섹션 업데이트에 관한 인덱스 박스는 다음과 같다.
Figure pct00011
table_id는 인덱싱되고 있는 섹션 버전 업데이트의 테이블 id이다. table_id_extension은 인덱싱되고 있는 섹션 버전 업데이트로부터의 확장(프로그램 맵 테이블(PMT)에 대한 program_number 또는 프로그램 관련 테이블(PAT)에 대한 transport_stream_id)이다. section_no는 이 업데이트가 적용되는 섹션 번호를 나타낸다. section_data는 존재하지 않을 수도 있는 필드이다. 그러나, 이 필드가 존재하는 경우, 그것은 새로운 버전의 섹션 데이터를 포함한다. 섹션 데이터는 박스의 종단 및 section_data의 길이가 박스의 길이로부터 판정될 수 있을 때까지 계속될 것이다.
다양한 실시예에 따라 이용될 수 있는 또 다른 인덱스 박스가 아래에 특정된다.
Figure pct00012
running_state는 ID_Table_index 필드에 의해 참조되는 ID의 상태(예컨대, ID가 구동되고 있거나 중지된 경우)를 나타내는 필드이다. 이 필드의 값은 ETSI TS 102 323 기증 문서에 정의된다. ID_Table_index는 표시된 running_state를 갖는 이 위에 적용되는 ID를 나타내는 DVBIDTableBox 내의 인덱스이다.
다양한 실시예와 함께 사용되는 또 다른 인덱스 테이블은 다음과 같으며, 이 경우 ID_count는 DVBIDTable에 오는 ID의 번호이고, ID는 URI-포맷 ID이다.
Figure pct00013
(DVB 파일 포맷에 관해 이전에 제안되지 않았던) 인덱스 박스의 다른 실례는 다음과 같이 특정된다는 점에 유의해야 한다.
Figure pct00014
sdp_text는 표시된 샘플로부터 시작하는 유효한 SDP 설명을 포함하는 널-종료 스트링(null-terminated string)이다.
다음 인덱스 박스는 키 업데이트 및 메시지에 관한 것이다.
Figure pct00015
key_message는 관련된 수신 힌트 샘플로부터 시작하는 패킷 페이로드를 해독하는 데 사용되는 암호 키를 포함한다.
에러 인덱스 박스는 다음과 같이 특정될 수 있다.
Figure pct00016
packet_header_error는 값 0x0이 패킷 헤더에 어떠한 에러도 포함되지 않음을 나타내는 경우의 에러 값이다. 값 0x1은 패킷 헤더가 에러를 포함할 수도 있고 또는 포함하지 않을 수도 있다는 것을 나타낸다. 값 0x2는 패킷 헤어가 에러를 포함한다는 것을 나타내고, 값 0x3은 보존된다. packet_payload_error는 값 0x0이 패킷 로드에 어떠한 에러도 포함되지 않음을 나타내는 경우의 다른 에러 값을 나타낸다. 값 0x1은 패킷 페이로드가 에러를 포함할 수도 있고 또는 포함하지 않을 수도 있음을 나타내고, 값 0x2는 패킷 페이로드가 에러를 포함한다는 것을 나타내며, 또한 값 0x3은 보존된다. packet_sequence_gap은 다음 순서를 나타내는 것으로, 값 0x0은 패킷이 수신 힌트 트랙에서 전송 순서에서 이전 패킷 다음에 바로 이어진다는 것을 나타낸다. 값 0x1은 패킷이 전송 순서에서 이전 패킷 다음에 바로 이어질 수도 있고 또는 그렇지 않을 수도 있음을 나타낸다. 값 0x2는 패킷이 전송 순서에서 이전 패킷 다음에 바로 이어지지 않음, 즉 이 패킷에 선행하는 적어도 하나는 누락 패킷이 있음을 나타낸다. 값 0x3은 보존된다.
인덱스 또는 분할된 메타데이터에 대한 시한 메타데이터 트랙이 생성된 경우, 파일 생성에 관해서 다음의 업무가 실행될 수 있다.
먼저, 하나의 시한 메타데이터 트랙은 프로그램 특정 인덱스 및 단일 프로그램 MPEG-2 전송 스트림 메타데이터에 대해 생성될 수 있다. 프로그램 특정 인덱스 및 메타데이터는 프로그램의 오디오 및 비디오 스트림과 동일하게 적용될 수 있고, 또한 부제 스트림과 같은 프로그램의 다른 임의의 잠재적 콤포넌트에 적용될 수 있다.
두 번째, 프로그램 당 하나의 시한 메타데이터 트랙은 프로그램 특정 인덱스 및 멀티미디어 프로그램 MPEG-2 전송 스트림 메타데이터에 대해 생성될 수 있다. 다시 말해, 시한 메타데이트 트랙은 오직 하나의 프로그램의 메타데이터를 포함할 수 있다. 결과적으로, 프로그램은, 예컨대 MPEG-2 전송 스트림의 PAT 및 PMT에 이용되는 MPEG-2 전송 스트림 내의 프로그램에 대한 16-비트 고유 식별자인 program_number 값에 의해 식별될 수 있다. 파라미터 program_number는, 예컨대 MPEG2-TS 수신 힌트 트랙과 연관된 시한 메타데이터 트랙에 대한 간단한 엔트리 구조에 포함될 수 있다.
세 번째, 하나의 시한 메타데이터 트랙은 MPEG2-TS 프로그램의 각각의 기본 스트림의 미디어 특정 인덱스에 대해 생성될 수 있다. 미디어 특정 인덱스는 특정 미디어 유형에만 적용된다. 예를 들어, 그들은 비디오의 참조 및 비-참조 프레임의 표시일 수 있고, 또는 비디오의 시간적 확장성 레벨의 표시일 수 있다.
네 번째, 하나의 시간 메타데이터 트랙은 RTP 스트림의 미디어 특정 인덱스에 대해 생성될 수 있다.
다섯 번째, 하나의 시한 메타데이터 트랙은 다중 RTP 스트림의 프로그램 특정 인덱스에 대해 생성될 수 있다. 시한 메타데이터 트랙은 트랙 기준을 이용하여 RTP 수신 힌트 트랙과 연관된다. 대안으로, 시한 메타데이터 트랙은 트랙 기준으로 "마스터" 수신 힌트 트랙과 연관될 수 있고, 다른 연관된 수신 힌트 트랙은 전술한 바와 같이 TrackRelationBox을 통해 표시된다.
마지막으로, 흔히 기본 미디어 스트림 당 하나의 프로그램 특정 시한 메타데이터 트랙 및 하나의 미디어 특정 시한 메타데이터 트랙이 바람직하다 하더라도, 2 이상의 메타데이터 트랙이 생성될 수 있다. 예를 들어, 프로그램에 대한 다른 타임라인이 후속하여 프로그램 자체에 제공되는 경우, 제공된 타임라인에 대한 새로운 시한 메타데이터 트랙을 생성하는 것은 파일 배열 관점으로 볼 때 보다 더 실용적이다. 수신기는 또한 많은 인덱스 유형을 포함하는 "다중화된" 시한 메타데이터 트랙, 및 제각각 한 가지 인덱스 유형을 포함하는 "특화된" 시한 메타데이터 트랙을 생성할 수 있다. "특화된" 시한 메타데이터 트랙에 대한 별도의 샘플을 생성하는 것보다, 수신기는 "특화된" 시한 메타데이터 트랙의 샘플이 실제로 "다중화된" 시한 메타데이터 트랙의 샘플 서브세트인 방법으로 "특화된" 시한 메타데이터 트랙의 샘플 테이블 박스에 박스를 생성할 수 있다. 다시 말해, 동일한 샘플 데이터 조각은 상이한 시한 메타데이터 트랙으로부터 여러번 참조된다.
또한, 수신기는 각각의 패킷 수신에 대한 응답으로 다음과 같이 동작할 수 있다. 첫 번째, 수신된 패킷은 mdat 박스 내의 수신 힌트 샘플로 변환될 수 있다. 두 번째, 인덱스 및 분할된 메타데이터는 연관된 메타데이터 샘플(들)이 있다면 그들이 mdat 박스에 기록될 수 있는 경우(대응하는 수신 힌트 샘플 직후)에 도출될 수 있다. 세 번째, 박스는 수신 힌트 트랙의 트랙 헤더 내에서 업데이트될 수 있다. 네 번째, 박스는 시한 메타데이터 트랙의 트랙 헤더 내에서 업데이트될 수 있다. 마지막으로, 트랙 헤더용으로 보존된 메모리가 막 완전히 점유된 경우(, 및 동적으로 재할당될 수 없는 경우), 새로운 무비 프레그먼트가 시작될 수 있다.
보다 더 많은 양의 버퍼메모리를 갖는 수신기는 여러 메타데이터 샘플 및 수신 힌트 샘플을 연속적인 메모리 청크 내에 배열할 수 있고, 그에 따라 청크 박스 및 청크 오프셋 박스에 대한 샘플에 필요한 스토리지 공간에 관한 절감을 구현할 수 있다는 점에 유의해야 한다.
인덱스 및 분할된 메타데이터는 그것이 그들과 연관된 수신 힌트 샘플이 될 때 다음의 특성을 가질 수 있다는 점에 유의해야 한다. (1) 인덱스는 보통 동일한 유형의 다음 인덱스까지 연관된 수신 힌트 샘플로부터 앞으로 유효한 것으로 나타낼 수 있다. 예를 들어, 인덱스는 MPEG-2 전송 스트림에서의 스크램블링 극성 변화를 나타낼 수 있다. (2) 인덱스는 수신 힌트 샘플과 동기화되는 단일 수신 힌트 샘플 또는 이벤트의 특성을 나타낼 수 있다. 북마크는 그러한 인덱스의 실례이다. (3) 인덱스는 연관된 수신 힌트 샘플과 이전 수신 힌트 샘플 사이에서의 스트림 특성을 나타낼 수 있다. 누락된 패킷의 표시가 이러한 인덱스이다. (4) 인덱스는 코딩된 미디어 샘플의 특성을 나타낼 수 있다. 본 명세서에 설명된 시한 메타데이터 트랙은 수신 힌트 샘플에 연관되고, 수신 힌트 샘플은 주로 정확히 하나의 미디어 샘플만을 포함하는 것은 아니며, (예컨대, 기본 오디오 및 비디오 스트림이 MPEG-2 전송 스트림에서 다중화되기 때문에) 하나의 미디어 샘플에 대한 데이터는 연속적인 수신 힌트 샘플에 상주할 수 있다. 그 결과, 미디어 샘플이 인덱싱될 수 있는 방법에 대한 적어도 두 가지 옵션, 예컨대, 인덱스가 미디어 샘플에 대한 데이터를 포함하는 제 1 수신 힌트 샘플에만 연관될 수 있게 하는 옵션 및 인덱스가 미디어 샘플에 대한 데이터를 포함하는 모든 수신 힌트 샘플과 연관되는 옵션이 있다.
이후에 설명되는 바와 같이, 다양한 실시예는 기록 시작부의 제거, 기록 중간 섹션의 제거, 2개의 기록의 연결, 및 기록 중간에의 샘플 섹션의 삽입을 포함하되, 이들로 제한되는 것은 아닌 편집 동작을 단순화시키는 데 이용될 수 있다.
최종 사용자는, 예컨대 스케줄링된 기록이 원하는 프로그램의 실제 시작 시간과 정확히 매칭되지 않을 수 있고, 그에 따라 기록 시작부가 이전 프로그램을 포함하기 때문에, 기록 시작부를 제거하기를 원할 수 있다. 다음에 있어서, 삭제될 마지막 수신 힌트 샘플의 샘플 번호는 s2이다.
수신 힌트 트랙의 샘플은 s2를 포함하여 s2까지 시작부로부터 제거된다. 트랙으로부터의 샘플 제거는 다음의 동작을 포함하지만 이들로 제한되는 것은 아니다. 예를 들어, 트랙 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 기록 및 미디어 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 기록과 마찬가지로, 무비 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 기록이 수행될 수 있다. 또한, 기록 시작부의 제거는 제거된 샘플의 정보가 박스로부터 제거되는 방법으로 디코딩 시간을 샘플 박스(로, 또한, 마찬가지로, 존재한다면, 합성물을 샘플 박스)로 기록하는 것을 포함할 수 있다. 어떤 것이 존재하든, 제거된 샘플의 정보가 그 박스로부터 제거되는 방법으로, 샘플 크기 박스 또는 콤팩트 샘플 크기 박스의 기록이 수반될 수 있다.
다른 동작은 제거된 샘플의 정보가 박스에 의해 참조되지 않은 방법으로 샘플을 청크 박스에 재기록하는 동작을 포함할 수 있다. 제거되는 샘플만을 포함하는 청크는 박스에 포함되지 않지만 chunk_offset의 다른 값은 제거된 샘플이 참조되지 않는 방법으로 기록되는 청크 오프셋 박스의 재기록은 수행될 수 있는 또 다른 동작이다. 또한, 존재한다면, 제거된 것들 중의 것인 전용 동기화 샘플이 더 이상 박스에 의해 참조되지 않는 방법으로의 동기화 샘플 박스 및 섀도(shadow) 동기화 샘플 박스의 기록은, 존재하는 경우, 제거된 샘플이 참조되지 않는 방법으로의 트랙 프레그먼트 헤더 박스 및 트랙 프레그먼트 런 박스의 재기록과 같은 가능성이다. 재생성될 모든 박스가 설명된 것은 아니라는 점에 유의해야 한다. 따라서 추가 박스에도 마찬가지로 유사한 동작이 필요할 수 있다.
또 다른 동작은 moov 박스 또는 moof 박스 내에서 바이트 단위가 이전보다 작은 박스가 될 수 있는 박스의 재기록 동작을 포함할 수 있다. 따라서, 파일 내의 자유 공간은 자유 공간 박스에 의해 대체될 수 있으며, 또는 파일은 박스가 파일 내에서 재배치되는 방법으로 조밀해질 수 있다. 또한, 박스, 특히 mdat 박스의 재배치는 파일 레벨의 위치에 대한 바이트 오프셋의 재기록(즉, 파일의 시작으로부터 카운트된 바이트 오프셋)을 야기할 수 있다. 이러한 바이트 오프셋은, 예컨대 청크 오프셋 박스에서 사용된다.
더욱이, 트랙 내의 제거된 샘플은 "물리적으로 제거"될 수 있는 것으로, 다시 말해 mdat 박스 내의 데이터는 제거된 샘플이 mdat 박스 내에 더 이상 존재하지 않도록 재구성될 수 있다. 마찬가지로, 또한 전술한 바와 같이, 이후에 파일의 시작으로부터의 바이트 오프셋이 재기록되어야 한다. 대안으로, 제거된 샘플의 공간은 할당 해지되지 않을 수도 있지만, 그 대신, 제거된 샘플은 moov 및/또는 moof 박스 내의 어느 박스에 의해서도 더 이상 참조되지 않는다.
2개 이상의 연관된 수신 힌트 트랙(예컨대, 오디오 및 비디오 RTP 수신 힌트 트랙)이 있다면, 양측 수신 힌트 트랙으로부터의 샘플이 합성 시간(RTP 타임스탬프)에 따라 제거된다. 시한 메타데이터 트랙으로부터 제거될 샘플은 sample_number + sample_number_offset > s2가 될 때까지 시한 메타데이터 샘플을 트래버싱함으로써 발견된다. 시한 메타데이터 트랙의 시작으로부터 sample_number + sample_number_offset <= s2를 갖는 마지막 샘플까지의 샘플들도 마찬가지로 시한 메타데이터 트랙으로부터 제거된다. 시한 메타데이터 트랙으로부터의 샘플 제거는 전술했던 트랙으로부터의 샘플 제거와 유사하다. 시한 메타데이터 트랙에 대한 샘플 엔트리의 sample_number_offset은 prev_sample_number_offset + (s1-s2-1)로 설정되며, 이 경우 prev_sample_number_offset은 제거된 섹션에 후속하여 시한 메타데이터 샘플에 보다 일찍이 적용했던 sample_number_offset과 동일하며, s1은 제 1 샘플의 샘플 번호이다. 나머지 시한 메타데이터 샘플은 재기록될 필요가 없다. 샘플 설명 박스 내에 2 이상의 엔트리가 있었다면, 모든 샘플 엔트리의 sample_number_offset 값은 전술한 바와 같이 수정된다.
예컨대, 자동 광고 검색 및 제거에 응답하여 기록 중에 섹션을 제거하는 동작에 관하여, 제 1 및 마지막 수신 힌트 샘플의 샘플 번호는 다음 설명에서 제각각 s1 및 s2이다. 수신 힌트 트랙으로부터의 샘플은 기록 시작부의 제거와 관련하여 전술한 바와 동일하거나 유사한 방법으로 제거된다.
시한 메타데이터 트랙으로부터 제거될 제 1 샘플은 sample_number + sample_number_offset >= s1에 대한 첫 번째 샘플이다. 시한 메타데이터 트랙으로부터 제거될 마지막 샘플은 sample_number + sample_number_offset <= s2에 대한 마지막 샘플이다. 추가로, 시한 메타데이터 트랙의 샘플 설명 박스에 대한 새로운 샘플 엔트리가 생성된다. 새로운 샘플 엔트리는 삭제된 섹션 뒤의 샘플의 샘플 포맷을 설명한다. 제거된 섹션 다음에 오는 청크는 샘플을 통해 청크 박스로의 새로운 샘플 엔트리와 연관된다. 시한 메타데이터 트랙에 대한 새로운 샘플 엔트리에서의 sample_number_offset은 prev_sample_number_offset + (s1 - s2 - 1)으로 설정되는데, 이 경우 prev_sample_number_offset은 전술한 바와 같이 특정된다. 삭제된 섹션 앞과 삭제된 섹션 뒤의 양쪽 샘플을 최초로 설명했던 엔트리가 2개 이상 있다면, 각자에 대하여 새로운 샘플 엔트리가 생성되고, 모든 샘플 엔트리의 sample_number_offset 값이 전술한 바와 같이 도출된다.
2개의 기록을 연결하는 동작에 관하여, 2개의 기록 동작은 하나로, 예컨대 동일한 영화 또는 시리즈의 에피소드들을 하나의 파일에 조합하도록 하나의 동작으로 연결될 수 있는데, 트랙으로의 샘플 삽입은 다음의 동작을 포함하지만 이러한 것들로 제한되는 것은 아니다. 즉, (1) 영화 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 재기록, (2) 트랙 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 재기록, (3) 미디어 헤더 박스(특히, 그것의 modification_time 및 듀레이션 구문 엘리먼트)의 재기록, (4) 삽입된 샘플을 포함하는 샘플 박스로의 디코딩 시간(또한, 마찬가지로, 존재한다면, 샘플 박스로의 합성 시간) 재기록, (5) 어느 쪽이 존재하든, 삽입된 샘플을 포함할 샘플 크기 박스 또는 콤팩트 샘플 크기 박스의 재기록, (6) 삽입된 샘플이 포함되는 방법에 의한 청크 박스로의 샘플 재기록, (7) 삽입된 샘플이 파일 내에 최초로 존재하는 청크와는 별도인 청크 내에 포함되는 경우에 삽입된 샘플을 포함하도록 하는 청크 오프셋 박스의 재기록, (8) 삽입된 샘플을 포함할 동기화 샘플 박스 및 존재하는 경우의 섀도우 동기화 샘플 박스의 재기록, 및 (9) 삽입된 샘플을 포함하는 트랙 프레그먼트 헤더 박스 및 존재하는 경우의 트랙 프레그먼트 런 박스의 재기록(이 경우, 파일에 삽입된 섹션이 프레그먼트 경계와 정렬된다면, 즉 프레그먼트의 중앙에 포함되지 않는다면, 새로운 프레그먼트 또는 프레그먼트들을 파일에 포함시킴으로써 삽입이 이루어질 수 있다는 점에 유의해야 한다). 또한, 재생성될 모든 박스가 설명된 것은 아니라는 점에도 유의해야 한다. 따라서, 유사한 동작이 추가 박스에 대해서도 마찬가지로 필요할 수 있다.
또한, 연결은 moov 박스 또는 moof 박스 내의 박스를 재기록하는 동작을 포함하며, 이 박스는 바이트 단위로 이전에 구현된 것보다 더 큰 박스가 될 수 있다. 증가된 스토리지 공간을 할당할 자유 공간 박스가 없다면, 파일 내의 후속 박스가 재배치될 수 있다. 박스, 특히 mdat 박스의 재배치는 파일 레벨 내의 위치에 대한 바이트 오프셋의 재기록(즉, 파일 시작으로부터 카운트된 바이트 오프셋)을 야기할 수 있으며, 이 경우에 이러한 바이트 오프셋은, 예컨대 청크 오프셋 박스에 사용된다.
타임라인 내의 제 2 파일의 모든 트랙은 전술한 절차(들)에 따라 제 1 파일의 대응 트랙의 종단에 삽입된다. 2개의 샘플 엔트리는 연결된 파일의 시한 메타데이터 트랙에 대한 샘플 설명 박스에 포함된다. 제 1 샘플 엔트리는 타임라인에서 처음 나타나는 오리지널 파일에 대응한다. 제 1 샘플 엔트리는 변화되지 않은 상태로 유지된다. 제 2 샘플 엔트리는 타임라인에서 마지막으로 나타나는 오리지널 파일에 대응한다. 제 2 샘플 엔트리는 그와 달리 변화되지 않은 상태로 유지되지만, sample_number_offset 값은 prev_sample_number_offset + 제 1 파일의 수신 힌트 트랙 내의 샘플 수로 설정된다. 오리지널 파일이 시한 메타데이터 트랙에 대한 2 이상의 엔트리를 포함했다면, 그들 샘플 엔트리 모두는 연결된 파일의 샘플 설명 박스에 포함되며, 제 2 파일의 모든 샘플 엔트리는 전술한 바와 같이 수정된다.
전술한 바와 같이, 기록 중의 샘플 섹션의 삽입은 다양한 실시예에 의해 단순화될 수 있는 다른 편집 동작이다. 이와 같이 후술될 동작에서, 삽입된 샘플 직전 및 직후의 수신 힌트 샘플의 샘플 번호는 제각각 s1 및 s2이고, 그것의 오리지널 파일에 삽입될 제 1 및 마지막 수신 힌트 샘플의 샘플 번호는 제각각 s3 및 s4이다. 샘플은 이미 설명된 바와 실질적으로 유사한 방법으로 수신 힌트 트랙 내에 삽입된다. s1 및 s2에 대응하는 샘플은 "기록 중 섹션의 제거"와 연관된 프로세스(들)를 참조하여 전술한 바와 같이 시한 메타데이터 트랙으로부터 배치된다. 삽입된 샘플에 대응하는 시한 메타데이터 샘플은 전술한 바와 같이 시한 메타데이터 트랙에 삽입되며, 삽입된 샘플의 시한 메타데이터에 최초로 사용되었던 샘플 엔트리 또는 엔트리들은 파일 내에 포함된다. 이러한 샘플 엔트리의 sample_number_offset의 값은 prev_sample_number_offset - s3 + s1 + 1로 설정된다. 샘플 엔트리 또는 엔트리들의 제 2 카피는 샘플 s2의 앞 및 샘플 s2 자체 또는 그에 후속한 것 양쪽 모두에 대해 시한 메타데이터에 최초로 이용되었던 샘플 엔트리에 대해 생성된다. s2로부터 시작하는 샘플을 설명하는 샘플 엔트리에 대한 sample_number_offset 값은 prev_sample_number_offset +s4 - s3 +1로 설정된다.
전술한 바와 같이, 본 명세서에 제시된 다양한 실시예는 DVB 파일 포맷에 대한 시한-메타데이터-기반 인덱싱 메커니즘의 콘텍스트에서 설명되지만, 보다 일반적으로 다음과 같이 적용될 수 있다. 다양한 실시예는 샘플 번호를 사용하여 인덱스를 수신 힌트 샘플, 예컨대 DVBIndexTable 박스와 샘플 이벤트 및 샘플 특성에 동기화시키는 데 사용하는 DVB 파일 포맷에 대한 다른 인덱싱 계획에도 적용가능하다. sample_number_offset은 DVBIndexTable 박스에 전달될 수 있다.
DVBIndexTable 박스 내에서 인덱스에 적용가능한 sample_number_offset이 2 이상의 값을 가질 필요가 있다면, 예컨대 DVBIndexTable 박스에서 인덱스 중간에 편집용 삽입 지점 또는 절개 지점이 발생했다면, 다음을 포함하되, 이들로 제한되는 것은 아닌 다양한 방법이 수행될 수 있다. 첫 번째, 영화 프레그먼트는 sample_number_offset 값만이 각각의 영화 프레그먼트마다 DVBIndexTable 박스에 필요한 방법으로 삽입 및 절개 지점을 매칭시키도록 배열될 수 있다. 두 번째, 2 이상의 DVBIndexTable 박스가 moov 박스 또는 임의의 moof 박스 내에 나타날 수 있다. 이들 DVBIndexTable 박스 중 각각의 것은 수신 힌트 샘플 중 비중첩 섹션에 대응하는 인덱스를 전달하며, 각각의 DVBIndexTable 박스는 하나의 sample_number_offset 값을 포함한다. 세 번째, 2 이상의 sample_number_offset이 DVBIndexTable 박스에 존재하며, sample_number_offset의 각각의 값은 sample_number_offset 값으로 나타내는 하나 이상의 인덱스에 적용가능하다.
각각의 인덱스 유형마다 이벤트로의 하나의 샘플 또는 특성 박스로의 샘플이 있기 때문에, sample_number 값은 일반적으로 편집 동작 다음에 이들 박스 모두에서 업데이트될 것이다. 이 업데이트를 피하기 위해, 샘플 테이블 박스 또는 트랙 프레그먼트 박스에 포함되는 새로운 기준 샘플 번호 오프셋 박스가 다음과 같이 특정될 수 있다.
Figure pct00017
엔트리 i에 대한 last_sample_number 및 sample_number_offset은 제각각 last_sample_number[i] 및 sample_number_offset[i]로 설정될 수 있다. last_sample_number[0]은 0으로 설정될 수 있다. 연관된 수신 힌트 트랙의 샘플을 참조할 때, 값 sample_number_offset[m]은 이벤트 박스로의 임의의 샘플 및 특성 박스로의 임의의 샘플에 수학식 last_sample_number[m-l] < sample number <= last_sample_number[m]을 충족시키는 sample_number의 모든 값에 추가될 것이다. sample_offset_number[n]이 2^31과 같은 사전정의된 상수라면, last_sample_number[n-1] + 1 내지 last_sample_number[n]을 포함하는 범위 내에 있는 샘플 번호와 연관된 이벤트 및 특성은 유효하지 않다. 이러한 프로세스는 샘플을 이벤트 박스에 재기록하고 샘플을 특성 박스에 재기록하는 일 없이 제거된 샘플에 대응하는 인덱스를 무효한 것으로 마킹하는 데 이용될 수 있다.
다양한 실시예는 또한 수신 힌트 트랙 이외의 유형의 트랙을 설명하는 인덱스에도 적용가능하다는 점에 유의해야 한다. 예를 들어, 다양한 실시예는 미디어 트랙, 가상 미디어 트랙, 서버 힌트 트랙, 및 시한 메타데이터 트랙을 설명하는 인덱스에 적용가능하다. 더욱이, 다양한 실시예가 적용/구현되는 디바이스 및/또는 시스템은 수신된 데이터 스트림의 기록을 반드시 포함해야 하는 것은 아니라는 점에 유의해야 한다.
다양한 실시예는 DVB 인덱스 및 분할된 메타데이터 외의 다른 유형의 시한 메타데이터 및 다른 유형의 샘플을 설명하는 메타데이터 샘플을 포함하는 것과는 다른 유형의 관계에도 적용가능하다. 즉, 다양한 실시예는 일반적으로 상이한 순차의 데이터 시퀀스에 상주하는 2개의 데이터가 서로 연관되는 임의의 관계에도 일반적으로 적용가능하다.
또한, 다양한 실시예는 샘플 번호를 포함하는 것 외의 다른 유형의 연관 방법에도 적용가능하다. 예를 들어, 시한 메타데이터 샘플이 시한 메타데이터에 수신 힌트 샘플의 (절대적) 디코딩 타임스탬프를 포함함으로써 수신 힌트 샘플과 연관되었다면, 본 명세서에서 제시된 구조는 sample_number_offset보다는 decoding_time_offset을 포함하도록 수정될 수 있다. 유사하게, mdat 박스의 시작부와 같이, 파일 내의 임의의 식별가능 지점 또는 파일의 시작에 상대적인 바이트 어드레스가 수신 힌트 샘플에 대한 시한 메타데이터 샘플과의 연관에 이용된다면, 본 명세서에서 제시된 구조는 sample_number_offset보다는 byte_address_offset을 포함하도록 수정될 수 있다.
도 6은 다양한 실시예에 따라 미디어 및/또는 멀티미디어 데이터를 구성하는 예시적 방법을 예시한 흐름도이다. 600에서, 제 1 및 제 2 샘플이 파일에 저장되며, 이 때 제 1 및 제 2 샘플은, 예컨대 미디어 또는 힌트 트랙이라 지칭될 수 있다. 제 1 샘플은 제 1 데이터와 연관되고, 제 2 샘플은 제 2 데이터와 연관되며, 이 때 제1 및 제 2 데이터는 미디어 또는 힌트 트랙의 대표 부분이다. 제 1 데이터 및 제 2 데이터가 동일하지 않다는 점에 유의해야 한다. 다시 말해, 메타데이터(즉, 제 1 및 제 2 데이터)는 "정적"이지 않다. 참조번호(610)에서, 제 1 샘플 번호가 제 1 샘플과 연관되고, 참조번호(620)에서 제 2 샘플 번호와 연관되며, 제 1 및 제 2 샘플 번호는, 예를 들어 메타데이터 샘플에 포함되고, 미디어 및/또는 힌트 트랙에 관련된다. 샘플 번호 오프셋은 참조번호(630)에서 파일 내에 포함된다. 참조번호(640)에서, 제 1 데이터와 연관되는 제 1 베이스 샘플 번호가 파일 내에 포함된다. 제 1 샘플 번호는 샘플 번호 오프셋 및 제 1 베이스 샘플 번호로부터 도출가능한 것이라는 것에 유의해야 한다. 따라서, 전술한 바와 같이, 다수의 시한 메타데이터 샘플에 적용가능한 샘플 번호 오프셋은 제 1 베이스 샘플 번호에 추가되어, 제 1 샘플 번호, 즉 미디어 또는 힌트 트랙 내의 실제 제 1 샘플 번호를 획득하게 할 수 있다. 참조번호(650)에서, 제 2 데이터와 연관되는 제 2 베이스 샘플 번호가 파일 내에 포함되며, 이 경우 제 2 샘플 번호는 제 1 베이스 샘플 번호와 관련하여 설명된 바와 동일한 방법으로 샘플 번호 오프셋 및 제 2 베이스 샘플 번호로부터 도출가능할 것이다.
인덱스는 미디어 트랙 또는 수신 힌트 트랙으로서 저장되는 비순차적 미디어 데이터 액세스에 이용될 수 있다. 예를 들어, 파일의 재생은 소정 인덱스 값과 연관된 샘플로부터 시작될 수 있다. 도 7에서, 미디어 데이터를 액세스하는 예시적 방법의 흐름도는 다양한 실시예에 따라 예시된다. 참조번호(700)에서, 샘플 번호 오프셋이 파일로부터 획득된다. 참조번호(710)에서, 제 1 데이터가 파일로부터 식별되며, 이 때 제 1 데이터는, 예컨대 미디어 트랙 또는 힌트 트랙의 비순차적 액세스에 대한 희망 인덱스 값을 포함한다. 참조번호(720)에서, 제 1 베이스 샘플 번호가 파일로부터 획득된다. 통상, 제 1 베이스 샘플 번호의 저장 위치는 제 1 데이터의 저장 위치와 관련된다. 예를 들어, 제 1 베이스 샘플 번호 및 제 1 데이터는 연속적으로 함께 저장되어, 시한 메타데이터 샘플을 형성한다. 참조번호(730)에서, 제 1 샘플 번호는 샘플 번호 오프셋 및 제 1 베이스 샘플 번호로부터 도출된다. 참조번호(740)에서, 파일 내의 제 1 샘플의 위치는 미디어 트랙 또는 히트 트랙에 주어진 정보 및 제 1 샘플 번호에 기초하여 도출된다. 위치의 도출은 다음 단계를 필요로 할 수 있다. 첫 번째, 청크 박스에 대한 샘플 정보의 분석은 샘플 번호에 기초하여 샘플이 상주하는 청크의 청크 번호를 밝혀 낸다. 두 번째, 청크 오프셋 박스는 청크에 대한 파일의 시작에 관련된 바이트 오프셋을 밝혀 낸다. 세 번째, 샘플 크기 박스는 샘플 번호에 기초하여 청크의 시작에 관련된 샘플의 바이트 오프셋을 밝혀 낸다. 샘플이 영화 프레그먼트에 상주하는 경우, 트랙 프레그먼트 헤더 박스 및 트랙 프레그먼트 런 박스는 유사한 정보를 밝혀 낸다. 750에서, 제 1 샘플은 파일 내의 샘플 위치에 기초하여 액세스된다.
인덱스는 파일의 디코딩 및 재생에 필요하거나 그에 도움이 될 수 있다. 예를 들어, 파일의 디코딩은 시한 메타데이터 트랙에 인덱스로서 포함되는 키 메시지의 인도를 필요로 할 수 있다. 키 메시지는 수신 힌트 트랙에 저장된 스트림을 해독하는 데 필수적이다. 도 8에서, 미디어 데이터를 디코딩하고 인덱스를 액세스하는 예시적 방법의 흐름도가 다양한 실시예에 따라 예시된다. 800에서, 샘플 번호 오프셋이 파일로부터 획득된다. 참조번호(810)에서, 미디어 트랙 또는 힌트 트랙으로부터의 제 1 샘플이 획득된다. 제 1 샘플 번호는, 존재하는 경우, 선행 샘플의 샘플 번호에 기초하여 제 1 샘플 번호와 연관된다. 어떠한 샘플도 제 1 샘플에 선행하지 않는 경우, 제 2 샘플 번호는 사전정의된 값으로 설정된다. 참조번호(820)에서, 제 1 데이터가 파일로부터 획득된다. 참조번호(830)에서, 제 1 베이스 샘플 번호가 파일로부터 획득된다. 통상, 제 1 베이스 샘플 번호의 저장 위치는 제 1 데이터의 저장 위치와 관련된다. 예를 들어, 제 1 베이스 샘플 번호 및 제 1 데이터는 연속적으로 저장될 수 있고, 시한 메타데이터 샘플을 형성할 수 있다. 참조번호(840)에서, 제 1 기준 샘플 번호가 샘플 번호 오프셋 및 제 1 베이스 샘플 번호로부터 도출된다. 참조번호(850)에서, 제 1 샘플 번호 및 제 1 기준 샘플 번호가 비교된다. 제 1 샘플 번호와 제 1 기준 샘플 번호가 동일한 경우, 제 1 데이터는 참조번호(860)에서 제 1 샘플을 처리하는 데 사용된다. 제 1 샘플의 처리는, 예를 들어, 해독 또는 에러 자각 디코딩을 포함할 수 있다. 참조번호(810 내지 860)의 단계는 후속 샘플 및 데이터에 대해서 반복될 수 있다.
본 발명의 다양한 실시예를 포함하고 구현하는 통신 디바이스는, CDMA, GSM, UMTS, TDMA, FDMA, TCP/IP, SMS, MMS, 이메일, IMS, 블루투스, IEEE 802.11 등을 포함하되 이러한 것들로 제한되는 것은 아닌 다양한 전송 기술을 이용하여 통신할 수 있다. 본 발명의 다양한 실시예를 구현하는 데 수반되는 통신 디바이스는 무선, 적외선, 레이저, 케이블 커넥션 등을 포함하되, 이러한 것들로 제한되는 것은 아닌 다양한 미디어를 사용하여 통신할 수 있다.
도 9 및 도 10은 본 발명이 구현될 수 있는 하나의 대표적 전자 디바이스(12)를 도시하고 있다. 그러나, 본 발명이 한 가지 특정 유형의 전자 디바이스(12)로 제한되도록 하는 것이 아니라는 점이 이해될 것이다. 도 9 및 도 10의 전자 디바이스(12)는 하우징(30), 액정 디스플레이 형태의 디스플레이(32), 키패드(34), 마이크로폰(36), 이어피스(38), 배터리(40), 적외선 포트(42), 안테나(44), 본 발명의 일 실시예에 따른 UICC 형태의 스마트 카드(46), 카드 판독기(48), 무선 인터페이스 회로(52), 코덱 회로(54), 제어기(56), 메모리(58) 및 배터리(80)를 포함한다. 개별 회로 및 엘리먼트는 모두 본 분야에 공지된 유형의 것들이다.
본 명세서에서 기술된 다양한 실시예는 방법 단계 또는 프로세스의 전반적인 상황에서 기술되었는데, 이 방법 단계 또는 프로세스는 일 실시예에서 네트워크 환경에서 프로그램 코드와 같이 컴퓨터에 의해 실행되는 컴퓨터 실행가능 인스트럭션을 포함하는, 컴퓨터 판독가능 매체 내에 구현되는 컴퓨터 프로그램 제품에 의해 실시될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 실행하거나 또는 특정의 추상적인 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함할 수 있다. 데이터 구조와 연관된 컴퓨터 실행가능 인스트럭션 및 프로그램 모듈은 본 명세서에서 기술된 방법의 단계들을 실행하는 프로그램 코드의 예를 나타낸다. 이러한 실행가능 인스트럭션의 특정 시퀀스 또는 연관된 데이터 구조는 이러한 단계 또는 프로세스에 기술된 기능을 구현하는 대응하는 동작의 예를 나타낸다.
다양한 데이터베이스 탐색 단계 또는 프로세스, 상관 단계 또는 프로세스, 비교 단계 또는 프로세스 및 결정 단계 또는 프로세스를 달성하기 위한 룰 기반 로직 및 그 밖의 다른 로직을 구비한 표준 프로그래밍 기법에 따라 다양한 실시예의 소프트웨어 및 웹 구현이 달성될 수 있다. 본 명세서 및 후속하는 청구항에서 사용되는 "컴포넌트" 및 "모듈"이라는 용어는 하나 이상의 소프트웨어 코드 라인을 사용하는 구현, 및/또는 하드웨어 구현, 및/또는 수동 입력을 수신하는 기기를 포함하려 함을 주지해야 한다.
다양한 실시예는 소프트웨어, 하드웨어, 애플리케이션 로직 또는 소프트웨어, 하드웨어 및 애플리케이션 로직의 결합으로 구현될 수 있다. 소프트웨어, 애플리케이션 로직 및/또는 하드웨어는 칩셋, 이동 장치, 데스크탑, 랩탑 또는 서버 상에 상주할 수 있다. 애플리케이션 로직, 소프트웨어 또는 인스트럭션 세트는 바람직하게 다양한 종래의 컴퓨터-판독가능 매체 중 임의의 하나에서 보유된다. 이 문맥에서, "컴퓨터 판독가능 매체"는 인스트럭션 실행 시스템, 장치 또는 디바이스에 의해 사용되거나 또는 그와 연계하여 사용되는 인스트럭션을 포함, 저장, 통신, 전파 또는 전송할 수 있는 임의의 매체 또는 수단일 수 있다.
전술한 다양한 실시예의 설명은 예시 및 설명의 목적으로 제공되었다. 전술한 설명은 전부가 아니거나 또는 본 발명의 실시예들을 개시되어 있는 바로 그 형태로 제한하려 않고, 수정 및 변형이 전술한 상세한 설명에 기초하여 가능할 수 있거나 또는 본 발명의 다양한 실시예의 실시로부터 얻어질 수 있다. 본 명세서에서 설명된 실시예는 당업자가 본 발명을 특정 용도에 맞게 다양한 실시예 및 다양한 변형예로 이용할 수 있도록 하기 위해 본 발명의 다양한 실시예의 원리 및 특성과 그의 실제적 적용을 설명하도록 선택 및 설명되었다. 본 명세서에서 기술된 실시예들의 특징은 방법, 장치, 모듈, 시스템, 및 컴퓨터 프로그램 제품의 모든 가능한 결합으로 결합될 수 있다.

Claims (38)

  1. 적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는(organizing) 방법에 있어서,
    제 1 샘플, 데이터의 제 1 조각, 제 2 샘플 및 데이터의 제 2 조각을 적어도 하나의 파일내에 저장하는 단계- 상기 미디어 및 멀티미디어 중 상기 적어도 하나는 상기 제 1 및 제 2 샘플을 포함하고, 상기 데이터의 상기 제 1 조각은 상기 제 1 샘플과 연관되고, 상기 데이터의 상기 제 2 조각은 상기 제 2 샘플과 연관됨 -와,
    제 1 샘플 번호를 상기 제 1 샘플과 연관시키는 단계와,
    제 2 샘플 번호를 상기 제 2 샘플과 연관시키는 단계와,
    샘플 번호 오프셋을 상기 적어도 하나의 파일 내에 포함시키는 단계와,
    상기 데이터의 상기 제 1 조각과 연관된 제 1 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함하는 단계- 상기 제 1 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 1 베이스 샘플 번호로부터 도출가능함 -와,
    상기 데이터의 상기 제 2 조각과 연관된 제 2 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함하는 단계- 상기 제 2 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 2 베이스 샘플 번호로부터 도출가능함 -를 포함하는
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 샘플 각각은 미디어 트랙 및 힌트 트랙 중 하나에 포함한 데이터의 조각들의 순차 시퀀스를 참조하고, 상기 순차 시퀀스는 상기 데이터의 상기 제 1 및 제 2 조각을 포함하는
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  3. 제 1 항에 있어서,
    상기 데이터의 상기 제 1 및 제 2 조각은 동일하지 않은
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 시작 부분을 제거함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 시작 부분의 제거는 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 동작과 상기 제 1 및 제 2 샘플 중 적어도 하나를 실제로 제거하는 동작 중 적어도 하나에 의해 상기 제 1 및 제 2 샘플 중 적어도 하나를 제거하는 단계를 포함하는
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 중간 부분을 제거함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 중간 부분의 제거는 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 동작과 상기 제 1 및 제 2 샘플 중 적어도 하나를 실제로 제거하는 동작 중 적어도 하나에 의해 상기 제 1 및 제 2 샘플 중 적어도 하나를 제거하는 단계를 포함하는
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 두 개의 인스턴스를 연결(concatenating)함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 연결은 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 동작 및 재-위치지정하는 동작 중 적어도 하나를 포함하는
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  7. 제 1 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나내로 샘플의 섹션을 삽입함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능한
    적어도 하나의 파일 내에 미디어 및 멀티미디어 데이터 중 적어도 하나를 구성하는 방법.
  8. 청구항 제 1 항의 방법을 수행하도록 구성된 컴퓨터 코드를 포함하는, 컴퓨터 판독가능 매체 상에 구현된 컴퓨터 프로그램 제품.
  9. 프로세서와,
    상기 프로세서에 통신가능하게 접속된 메모리 유닛을 포함하되,
    상기 메모리 유닛은,
    제 1 샘플, 데이터의 제 1 조각, 제 2 샘플 및 데이터의 제 2 조각을 적어도 하나의 파일내에 저장하도록 구성된 컴퓨터 코드- 상기 제 1 및 제 2 샘플은 상기 미디어 및 멀티미디어 중 적어도 하나를 포함하고, 상기 데이터의 상기 제 1 조각은 상기 제 1 샘플과 연관되고, 상기 데이터의 상기 제 2 조각은 상기 제 2 샘플과 연관됨 -와,
    제 1 샘플 번호를 상기 제 1 샘플과 연관시키도록 구성된 컴퓨터 코드와,
    제 2 샘플 번호를 상기 제 2 샘플과 연관시키도록 구성된 컴퓨터 코드와,
    샘플 번호 오프셋을 상기 적어도 하나의 파일 내에 포함시키도록 구성된 컴퓨터 코드와,
    상기 데이터의 상기 제 1 조각과 연관된 제 1 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함시키도록 구성된 컴퓨터 코드- 상기 제 1 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 1 베이스 샘플 번호로부터 도출가능함 -와,
    상기 데이터의 상기 제 2 조각과 연관된 제 2 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함시키도록 구성된 컴퓨터 코드- 상기 제 2 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 2 베이스 샘플 번호로부터 도출가능함 -를 포함하는
    장치.
  10. 제 9 항에 있어서,
    상기 제 1 및 제 2 샘플 각각은 미디어 트랙 및 힌트 트랙 중 하나에 포함한 데이터의 조각들의 순차 시퀀스를 참조하고, 상기 순차 시퀀스는 상기 데이터의 상기 제 1 및 제 2 조각을 포함하는 장치.
  11. 제 9 항에 있어서,
    상기 데이터의 상기 제 1 및 제 2 조각은 동일하지 않은 장치.
  12. 제 9 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 시작 부분을 제거함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 시작 부분의 제거는 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 과정과 상기 제 1 및 제 2 샘플 중 적어도 하나를 실제로 제거하는 과정 중 적어도 하나에 의해 상기 제 1 및 제 2 샘플 중 적어도 하나를 제거하는 것을 포함하는 장치.
  13. 제 9 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 중간 부분을 제거함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 중간 부분의 제거는 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 과정과 상기 제 1 및 제 2 샘플 중 적어도 하나를 실제로 제거하는 과정 중 적어도 하나에 의해 상기 제 1 및 제 2 샘플 중 적어도 하나를 제거하는 것을 포함하는 장치.
  14. 제 9 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 두 개의 인스턴스를 연결(concatenating)함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능하고, 상기 연결은 ISO 베이스 미디어 파일 포맷 박스를 재기록하는 과정 및 재-위치지정하는 과정 중 적어도 하나를 포함하는 장치.
  15. 제 9 항에 있어서,
    상기 제 1 및 제 2 샘플 번호 중 적어도 하나는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나내로 샘플의 섹션을 삽입함으로써 상기 적어도 하나의 파일을 편집하는데 사용가능한 장치.
  16. 제 1 샘플, 데이터의 제 1 조각, 제 2 샘플 및 데이터의 제 2 조각을 적어도 하나의 파일내에 저장하는 수단- 상기 제 1 및 제 2 샘플은 상기 미디어 및 멀티미디어 중 적어도 하나를 포함하고, 상기 데이터의 상기 제 1 조각은 상기 제 1 샘플과 연관되고, 상기 데이터의 상기 제 2 조각은 상기 제 2 샘플과 연관됨 -과,
    제 1 샘플 번호를 상기 제 1 샘플과 연관시키는 수단과,
    제 2 샘플 번호를 상기 제 2 샘플과 연관시키는 수단과,
    샘플 번호 오프셋을 상기 적어도 하나의 파일 내에 포함시키는 수단과,
    상기 데이터의 상기 제 1 조각과 연관된 제 1 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함시키는 수단- 상기 제 1 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 1 베이스 샘플 번호로부터 도출가능함 -과,
    상기 데이터의 상기 제 2 조각과 연관된 제 2 베이스 샘플 번호를 상기 적어도 하나의 파일 내에 포함시키는 수단- 상기 제 2 샘플 번호는 상기 샘플 번호 오프셋 및 상기 제 2 베이스 샘플 번호로부터 도출가능함 -을 포함하는
    장치.
  17. 제 16 항에 있어서,
    상기 제 1 및 제 2 샘플 각각은 미디어 트랙 및 힌트 트랙 중 하나에 포함한 데이터의 조각들의 순차 시퀀스를 참조하고, 상기 순차 시퀀스는 상기 데이터의 상기 제 1 및 제 2 조각을 포함하는 장치.
  18. 제 16 항에 있어서,
    상기 데이터의 상기 제 1 및 제 2 조각은 동일하지 않은 장치.
  19. 미디어 및 멀티미디어 데이터 중 적어도 하나를 나타내는 적어도 하나의 파일을 수신하는 단계와,
    미디어 트랙 및 힌트 트랙 중 적어도 하나에 대한 시한 메타데이터 샘플의 샘플 번호 및 샘플 번호 오프셋과 연관된 상기 미디어 트랙 및 상기 힌트 트랙 중 적어도 하나 내에서 실제 샘플 번호를 획득하는 단계와,
    상기 실제 샘플 번호에 기초하여 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나에 대한 편집 작업을 수행하는 단계를 포함하는
    방법.
  20. 제 19 항에 있어서,
    상기 편집 작업을 수행하는 단계는 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 시작 부분을 제거하는 단계와, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 중간 부분을 제거하는 단계와, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 두 개의 인스턴스를 연결하는 단계와, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나에 샘플의 섹션을 삽입하는 단계 중 적어도 하나를 더 포함하는 방법.
  21. 청구항 제 19 항의 방법을 수행하도록 구성된 컴퓨터 코드를 포함하는, 컴퓨터 판독가능 매체 상에 구현된 컴퓨터 프로그램 제품.
  22. 프로세서와,
    상기 프로세서에 통신가능하게 접속된 메모리 유닛을 포함하되,
    상기 메모리 유닛은,
    미디어 및 멀티미디어 데이터 중 적어도 하나를 나타내는 적어도 하나의 파일을 수신하도록 구성된 컴퓨터 코드와,
    미디어 트랙 및 힌트 트랙 중 적어도 하나에 대한 시한 메타데이터 샘플의 샘플 번호 및 샘플 번호 오프셋과 연관된 상기 미디어 트랙 및 상기 힌트 트랙 중 적어도 하나 내에서 실제 샘플 번호를 획득하도록 구성된 코드와,
    상기 실제 샘플 번호에 기초하여 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나에 대한 편집 작업을 수행하도록 구성된 코드를 포함하는
    장치.
  23. 제 22 항에 있어서,
    상기 메모리 유닛은 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 시작 부분을 제거하도록 구성된 컴퓨터 코드를 더 포함하는 장치.
  24. 제 22 항에 있어서,
    상기 메모리 유닛은 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 중간 부분을 제거하도록 구성된 컴퓨터 코드를 더 포함하는 장치.
  25. 제 22 항에 있어서,
    상기 메모리 유닛은 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나의 두 개의 인스턴스를 연결하도록 구성된 컴퓨터 코드를 더 포함하는 장치.
  26. 제 22 항에 있어서,
    상기 메모리 유닛은 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나내에 샘플의 섹션을 삽입하도록 구성된 컴퓨터 코드를 더 포함하는 장치.
  27. 미디어 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일로부터 액세스하는 방법에 있어서,
    상기 적어도 하나의 파일에 제 1 샘플 및 데이터의 제 1 조각이 존재하고, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나는 상기 제 1 샘플을 포함하고, 상기 데이터의 상기 제 1 조각은 제 1 베이스 샘플 번호와 상기 제 1 샘플을 특징짓는 데이터를 포함하고, 상기 방법은,
    샘플을 특징짓는 상기 데이터에 대한 원하는 값을 수신하는 단계와,
    상기 데이터의 제 1 조각을 파싱(parsing)하는 단계와,
    상기 제 1 샘플을 특징짓는 상기 데이터가 상기 샘플을 특징짓는 상기 데이터에 대한 원하는 값에 일치한다는 조건 하에서,
    상기 제 1 베이스 샘플 번호를 파싱하는 단계와,
    상기 적어도 하나의 파일로부터 샘플 번호 오프셋을 파싱하는 단계와,
    상기 제 1 베이스 샘플 번호 및 상기 샘플 번호 오프셋에 기초하여 제 1 샘플 번호를 도출하는 단계와,
    상기 제 1 샘플 번호에 기초하여 상기 적어도 하나의 파일 내에서 상기 제 1 샘플의 위치를 알아내는 단계와,
    상기 제 1 샘플을 액세스하는 단계를 포함하는
    방법.
  28. 제 27 항에 있어서,
    상기 원하는 값은 원하는 인덱스 값을 포함하는 방법.
  29. 제 28 항에 있어서,
    상기 제 1 샘플을 액세스하는 단계는 상기 원하는 인덱스 값에 기초한 미디어 트랙 및 힌트 트랙 중 하나의 비 순차 액세스를 포함하는 방법.
  30. 청구항 제 27 항의 방법을 수행하도록 구성된 컴퓨터 코드를 포함하는, 컴퓨터 판독가능 매체 상에 구현된 컴퓨터 프로그램 제품.
  31. 프로세서와,
    상기 프로세서에 통신가능하게 접속된 메모리 유닛을 포함하되,
    상기 메모리 유닛은,
    샘플을 특징짓는 데이터에 대한 원하는 값을 수신하도록 구성된 컴퓨터 코드와,
    데이터의 제 1 조각을 파싱하도록 구성된 컴퓨터 코드- 제 1 샘플과 함께 액세스될 미디어 및 멀티미디어 데이터 중 하나를 포함하는 적어도 하나의 파일 내에 데이터의 제 1 조각이 존재하고, 상기 미디어 및 멀티미디어 중 상기 적어도 하나는 상기 제 1 샘플을 포함하고, 상기 데이터의 상기 제 1 조각은 제 1 베이스 샘플 번호와 상기 제 1 샘플을 특징짓는 데이터를 포함함 -와,
    상기 제 1 샘플을 특징짓는 상기 데이터가 상기 샘플을 특징짓는 상기 데이터에 대한 원하는 값에 일치한다는 조건 하에서,
    상기 제 1 베이스 샘플 번호를 파싱하고,
    상기 적어도 하나의 파일로부터 샘플 번호 오프셋을 파싱하며,
    상기 제 1 베이스 샘플 번호 및 상기 샘플 번호 오프셋에 기초하여 제 1 샘플 번호를 도출하고,
    상기 제 1 샘플 번호에 기초하여 상기 적어도 하나의 파일 내에 상기 제 1 샘플의 위치를 알아내며,
    상기 제 1 샘플을 액세스하도록
    구성된 컴퓨터 코드를 포함하는
    장치.
  32. 제 31 항에 있어서,
    상기 원하는 값은 원하는 인덱스 값을 포함하는 장치.
  33. 제 31 항에 있어서,
    상기 제 1 샘플의 액세스는 상기 원하는 인덱스 값에 기초한 미디어 트랙 및 힌트 트랙 중 하나의 비 순차 액세스를 포함하는 장치.
  34. 미디어 및 멀티미디어 데이터 중 적어도 하나를 특징짓는 데이터를 적어도 하나의 파일로부터 액세스하는 방법에 있어서,
    상기 적어도 하나의 파일에 제 1 샘플 및 데이터의 제 1 조각이 존재하고, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나는 상기 제 1 샘플을 포함하고, 상기 데이터의 상기 제 1 조각은 제 1 베이스 샘플 번호를 포함하고, 상기 방법은,
    상기 제 1 샘플을 파싱(parsing)하는 단계와,
    사전-정의된 넘버링 기법 및 상기 제 1 샘플을 포함하는 샘플들의 순서에 기초하여 제 1 샘플 번호를 도출하는 단계와,
    상기 제 1 베이스 샘플 번호를 파싱하는 단계와,
    상기 적어도 하나의 파일로부터 샘플 번호 오프셋을 파싱하는 단계와,
    상기 제 1 베이스 샘플 번호 및 상기 샘플 번호 오프셋에 기초하여 제 1 참조 샘플 번호를 도출하는 단계와,
    상기 제 1 샘플 번호가 상기 제 1 참조 샘플 번호에 일치한다는 조건에서, 상기 데이터의 상기 제 1 조각을 파싱하고 상기 데이터의 상기 제 1 조각에 기초하여 상기 제 1 샘플을 처리하는 단계를 포함하는
    액세스 방법.
  35. 제 34 항에 있어서,
    상기 제 1 샘플은 미디어 트랙 및 힌트 트랙 중 하나에 포함한 데이터의 조각들의 순차 시퀀스를 참조하고, 상기 순차 시퀀스는 상기 데이터의 상기 제 1 조각을 포함하는 액세스 방법.
  36. 청구항 제 34 항의 방법을 수행하도록 구성된 컴퓨터 코드를 포함하는, 컴퓨터 판독가능 매체 상에 구현된 컴퓨터 프로그램 제품.
  37. 프로세서와,
    상기 프로세서에 통신가능하게 접속된 메모리 유닛을 포함하되,
    상기 메모리 유닛은,
    제 1 샘플을 파싱하도록 구성된 컴퓨터 코드- 미디어 및 멀티미디어 데이터 중 적어도 하나를 특징짓는 데이터에 대해 액세스되는 적어도 하나의 파일내에 상기 제 1 샘플 및 데이터의 제 1 조각이 존재하고, 상기 미디어 및 멀티미디어 데이터 중 상기 적어도 하나는 상기 제 1 샘플을 포함하고, 상기 데이터의 상기 제 1 조각은 제 1 베이스 샘플 번호를 포함함 -와,
    사전-정의된 넘버링 기법 및 상기 제 1 샘플을 포함하는 샘플들의 순서에 기초하여 제 1 샘플 번호를 도출하도록 구성된 컴퓨터 코드와,
    상기 제 1 베이스 샘플 번호를 파싱하도록 구성된 컴퓨터 코드와,
    상기 적어도 하나의 파일로부터 샘플 번호 오프셋을 파싱하도록 구성된 컴퓨터 코드와,
    상기 제 1 베이스 샘플 번호 및 상기 샘플 번호 오프셋에 기초하여 제 1 참조 샘플 번호를 도출하도록 구성된 컴퓨터 코드와,
    상기 제 1 샘플 번호가 상기 제 1 참조 샘플 번호에 일치한다는 조건에서, 상기 데이터의 상기 제 1 조각을 파싱하고 상기 데이터의 상기 제 1 조각에 기초하여 상기 제 1 샘플을 처리하도록 구성된 컴퓨터 코드를 포함하는
    장치.
  38. 제 37 항에 있어서,
    상기 제 1 샘플은 미디어 트랙 및 힌트 트랙 중 하나에 포함한 데이터의 조각들의 순차 시퀀스를 참조하고, 상기 순차 시퀀스는 상기 데이터의 상기 제 1 조각을 포함하는 장치.
KR1020107011897A 2007-10-29 2008-10-29 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체 KR101254385B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US98355207P 2007-10-29 2007-10-29
US60/983,552 2007-10-29
PCT/IB2008/054452 WO2009057047A2 (en) 2007-10-29 2008-10-29 Fast and editing-friendly sample association method for multimedia file formats

Publications (2)

Publication Number Publication Date
KR20100087196A true KR20100087196A (ko) 2010-08-03
KR101254385B1 KR101254385B1 (ko) 2013-06-24

Family

ID=40577763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107011897A KR101254385B1 (ko) 2007-10-29 2008-10-29 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체

Country Status (9)

Country Link
US (1) US20090119594A1 (ko)
EP (1) EP2215566A2 (ko)
KR (1) KR101254385B1 (ko)
CN (1) CN101842786A (ko)
AU (1) AU2008320436A1 (ko)
CA (1) CA2703025A1 (ko)
RU (1) RU2481627C2 (ko)
WO (1) WO2009057047A2 (ko)
ZA (1) ZA201003755B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160078996A (ko) * 2014-04-30 2016-07-05 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US8365060B2 (en) * 2006-08-24 2013-01-29 Nokia Corporation System and method for indicating track relationships in media files
US20090132326A1 (en) * 2007-11-16 2009-05-21 Microsoft Corporation Integrating ads with media
US20090113480A1 (en) * 2007-10-24 2009-04-30 Microsoft Corporation Non-media-centric packaging of content
US8190986B2 (en) 2008-05-19 2012-05-29 Microsoft Corporation Non-destructive media presentation derivatives
US8301793B2 (en) 2007-11-16 2012-10-30 Divx, Llc Chunk header incorporating binary flags and correlated variable-length fields
US20090150939A1 (en) * 2007-12-05 2009-06-11 Microsoft Corporation Spanning multiple mediums
US20090157743A1 (en) * 2007-12-12 2009-06-18 Aten International Co., Ltd. Media file generation method and media playback method
US8261312B2 (en) * 2008-06-27 2012-09-04 Cisco Technology, Inc. Linear hint video streaming
WO2010051545A1 (en) * 2008-10-31 2010-05-06 Divx, Inc. System and method for playing content on certified devices
US9197677B2 (en) * 2009-03-09 2015-11-24 Arris Canada, Inc. Multi-tiered scalable media streaming systems and methods
US9485299B2 (en) * 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
US8566393B2 (en) * 2009-08-10 2013-10-22 Seawell Networks Inc. Methods and systems for scalable video chunking
US8166191B1 (en) 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US7952499B1 (en) * 2010-01-29 2011-05-31 Microsoft Corporation Random access in run-length encoded structures
US20130097334A1 (en) * 2010-06-14 2013-04-18 Thomson Licensing Method and apparatus for encapsulating coded multi-component video
US20130091154A1 (en) * 2010-06-14 2013-04-11 Thomson Licensing Method And Apparatus For Encapsulating Coded Multi-Component Video
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US8190677B2 (en) 2010-07-23 2012-05-29 Seawell Networks Inc. Methods and systems for scalable video delivery
US9712887B2 (en) 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
US9948970B2 (en) * 2013-03-15 2018-04-17 Cox Communications, Inc. Systems, methods, and apparatus for accessing recordings of content items on multiple customer devices
KR101798741B1 (ko) 2013-04-19 2017-11-16 후아웨이 테크놀러지 컴퍼니 리미티드 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 비디오 스트리밍에서의 미디어 품질 정보 시그널링
US9066048B2 (en) 2013-06-17 2015-06-23 Spotify Ab System and method for switching between audio content while navigating through video streams
EP2962467A1 (en) * 2013-07-19 2016-01-06 Huawei Technologies Co., Ltd. Metadata information signaling and carriage in dynamic adaptive streaming over hypertext transfer protocol
US10097604B2 (en) 2013-08-01 2018-10-09 Spotify Ab System and method for selecting a transition point for transitioning between media streams
US9529888B2 (en) * 2013-09-23 2016-12-27 Spotify Ab System and method for efficiently providing media and associated metadata
US9654532B2 (en) 2013-09-23 2017-05-16 Spotify Ab System and method for sharing file portions between peers with different capabilities
US9063640B2 (en) 2013-10-17 2015-06-23 Spotify Ab System and method for switching between media items in a plurality of sequences of media items
US10685309B1 (en) 2014-07-31 2020-06-16 Open Text Corporation Case system events triggering a process
US10685314B1 (en) 2014-07-31 2020-06-16 Open Text Corporation Case leaf nodes pointing to business objects or document types
US10631069B2 (en) 2016-02-16 2020-04-21 Nokia Technologies Oy Media encapsulating and decapsulating
WO2017220564A1 (en) * 2016-06-21 2017-12-28 Technology Sky Deutschland Fernsehen Gmbh & Co.Kg Media streaming method, client application, media client and media server for validation of a preset control condition
US11246905B2 (en) 2016-08-15 2022-02-15 President And Fellows Of Harvard College Treating infections using IdsD from Proteus mirabilis
US11197040B2 (en) * 2016-10-17 2021-12-07 Mediatek Inc. Deriving and signaling a region or viewport in streaming media
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
WO2021255550A1 (en) * 2020-06-18 2021-12-23 Nokia Technologies Oy Method and apparatus for signaling multiple media data types
CN113505090B (zh) * 2021-06-22 2023-09-01 中国联合网络通信集团有限公司 访问控制方法及访问控制装置
CN113852857B (zh) * 2021-10-20 2023-04-11 成都华栖云科技有限公司 一种基于html5视频帧步进时的声音播放方法及系统
CN114173075B (zh) * 2021-10-22 2024-01-30 广州市奥威亚电子科技有限公司 用于录制的mp4文件保存方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513306A (en) * 1990-08-09 1996-04-30 Apple Computer, Inc. Temporal event viewing and editing system
US5627936A (en) * 1995-12-21 1997-05-06 Intel Corporation Apparatus and method for temporal indexing of multiple audio, video and data streams
RU2154308C2 (ru) * 1998-06-24 2000-08-10 Белецкий Сергей Владимирович Способ воспроизведения наименований музыкальных звуков темперированного строя в двенадцатислоговой системе и устройство для его осуществления
US8214655B2 (en) * 2002-03-29 2012-07-03 Kabushiki Kaisha Toshiba Data structure of multimedia file format, encrypting method and device thereof, and decrypting method and device thereof
JP4182932B2 (ja) * 2004-08-04 2008-11-19 ソニー株式会社 記録装置および方法、再生装置および方法、記録再生装置および方法、並びにプログラム
US8126312B2 (en) * 2005-03-31 2012-02-28 Apple Inc. Use of multiple related timelines
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1758383A3 (en) * 2005-08-23 2008-10-22 AT&T Corp. A system and method for content-based navigation of live and recorded TV and video programs
US7370144B2 (en) * 2005-09-20 2008-05-06 Mediatek, Inc. Method and system for accessing a target sample in a media data stream
US7929842B2 (en) * 2006-08-08 2011-04-19 Lsi Corporation Realtime recording of audio video interleaved streams
US8365060B2 (en) * 2006-08-24 2013-01-29 Nokia Corporation System and method for indicating track relationships in media files
US8230125B2 (en) * 2007-10-30 2012-07-24 Mediatek Inc. Methods for reserving index memory space in AVI recording apparatus
US8301793B2 (en) * 2007-11-16 2012-10-30 Divx, Llc Chunk header incorporating binary flags and correlated variable-length fields

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160078996A (ko) * 2014-04-30 2016-07-05 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Also Published As

Publication number Publication date
US20090119594A1 (en) 2009-05-07
CA2703025A1 (en) 2009-05-07
CN101842786A (zh) 2010-09-22
AU2008320436A1 (en) 2009-05-07
KR101254385B1 (ko) 2013-06-24
ZA201003755B (en) 2011-11-30
EP2215566A2 (en) 2010-08-11
RU2010121545A (ru) 2011-12-10
WO2009057047A3 (en) 2009-07-02
WO2009057047A2 (en) 2009-05-07
RU2481627C2 (ru) 2013-05-10

Similar Documents

Publication Publication Date Title
KR101254385B1 (ko) 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체
US9852219B2 (en) Segmented metadata and indexes for streamed multimedia data
KR101074585B1 (ko) 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 읽고 저장하는 장치 및 방법
KR101107815B1 (ko) 멀티미디어 컨테이너 파일의 수신 힌트 트랙으로의 미디어 스트림 기록 방법 및 장치, 컴퓨터 판독가능 매체
TWI473016B (zh) 用以處理多視圖視訊位元串流之方法與裝置及電腦可讀媒體
US20100250633A1 (en) Systems and methods for storage of notification messages in iso base media file format
US20100049865A1 (en) Decoding Order Recovery in Session Multiplexing
EP2478703A2 (en) Multi-track video coding methods and apparatus using an extractor that references two or more non-consecutive nal units

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160318

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee