KR101454031B1 - 미디어 데이터 전송을 위한 방법 및 장치 - Google Patents

미디어 데이터 전송을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101454031B1
KR101454031B1 KR1020087003847A KR20087003847A KR101454031B1 KR 101454031 B1 KR101454031 B1 KR 101454031B1 KR 1020087003847 A KR1020087003847 A KR 1020087003847A KR 20087003847 A KR20087003847 A KR 20087003847A KR 101454031 B1 KR101454031 B1 KR 101454031B1
Authority
KR
South Korea
Prior art keywords
data
delete delete
track
media
samples
Prior art date
Application number
KR1020087003847A
Other languages
English (en)
Other versions
KR20080041204A (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 KR20080041204A publication Critical patent/KR20080041204A/ko
Application granted granted Critical
Publication of KR101454031B1 publication Critical patent/KR101454031B1/ko

Links

Images

Classifications

    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2368Multiplexing of audio and video streams
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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

Landscapes

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

Abstract

데이터 통신 매체에서의 전송을 위해 그리고 데이터 프로세싱 시스템과의 사용을 위해 미디어 데이터를 프로세싱하기 위한 방법 및 장치. 예시적 일 방법은 스케일러블 컨텐츠의 복수개 스케일에서 프레젠테이션을 (예를 들어, 비디오만, 오디오만, 또는 비디오와 오디오를 함께) 제시하기 위한 샘플을 포함하고 있는 스트림 또는 한 세트의 데이터에 저장된 판독 가능 컨텐츠를 프로세싱한다. 제2 스트림이 제1 스트림으로부터 유도되는데, 이 경우, 제2 스트림은 제1 스트림으로부터, 스케일러블 컨텐츠내의 동작점에 대한 데이터 선택에 사용하기 위한 제1 스트림으로의 참조를 포함한다. 이 방법의 일 태양에서, 제2 스트림에 포함된 참조는 제1 스트림으로부터의 데이터를 전송 또는 저장하도록 액세스된다.
데이터 통신 매체, 미디어 데이터 전송, 데이터 프로세싱 시스템, 판독 가능 컨텐츠, 스케일러블 컨텐츠, 스트림, 프레젠테이션.

Description

미디어 데이터 전송을 위한 방법 및 장치 {METHOD AND APPARATUS FOR MEDIA DATA TRANSMISSION}
관련 출원
출원인은, 2005년 7월 19일에 출원된, 계류중인 선행 가출원 제60/700,908호에 대하여 우선권의 이익을 주장한다.
발명의 분야
본 발명은 전송을 위해 미디어 데이터의 시간 관련 시퀀스(time related sequences)를 준비하기 위한 방법 및 장치에 관한 것으로서, 좀더 구체적으로는, 그러한 미디어 데이터의 패킷화된 전송에 관한 것이다.
시간 기반 미디어(time-based media)를 저장하기 위해 오늘날 사용되는 파일 구조는 ABFF와 같은 오디오 포맷, AVI와 같은 비디오 포맷, 및 RealMedia와 같은 스트리밍 포맷(streaming formats)과 같이 다양하고 상이한 파일 구조들이 존재한다. 그러한 파일 구조가 상이한 한가지 이유는 그들의 상이한 주안점(focus) 및 응용 가능성이다. 이 포맷 중 일부는 비교적 충분히 광범위하게 수용되고, 그것의 응용 범위가 넓으며, 구현이 다소 간단하므로, 컨텐츠 전달(content delivery)에 사용될 뿐만 아니라 교환 포맷(interchange formats)으로도 사용된다. 이러한 범 용 포맷 중 첫 번째는 QuickTime 파일 포맷이다. 그것은 오늘날 시간 기반 데이터를 서비스하는 대다수 웹사이트에서; 전문가를 위한 것을 포함하는 대다수 저작 환경에서; 그리고 대다수 멀티미디어 CD-ROM 타이틀에서 사용된다.
QuickTime 미디어 계층은, 시간 기반 자료(비디오, 오디오 등)에 중점을 두면서, 범용 멀티미디어 데이터의 효율적인 디스플레이 및 관리를 지원한다. 미디어 계층은 QuickTime 파일 포맷을 미디어 정보를 위한 저장 및 교환 포맷으로 사용한다. 본 계층의 구조적 역량은 일반적으로 기존 구현들보다 광범위하고, 본 파일 포맷은 기존 QuickTime 구현에 의해 현재 요구되는 것보다 많은 정보를 표현할 수 있다.
일반적으로 동기화된 미디어의 LRA(local random access)를 지원하도록 설계되었던 AVI와 같은 포맷과 달리, QuickTime은, 범용 멀티미디어 표현의 데이터, 관계 및 타이밍을 시스템이 관리할 수 있게 한다. 특히, QuickTime 파일 포맷은 일반적인 시간 기반 스트림의 시간 거동을 표현하기 위한 구조, 네트워크 패킷의 시간 기반 방출(time-based emission)을 커버하는 개념 뿐만 아니라 멀티미디어 데이터의 시간 기반 로컬 프레젠테이션(time-based local presentation)을 가진다.
기존의 QuickTime 파일 포맷은, QuickTime 사이트, <http://.www.apple.com/quicktime>에서 찾아볼 수 있는 1996년 5월의 파일 포맷 명세에서 Apple Computer에 의해 공개적으로 기술되어 있다.
QuickTime 파일 포맷의 일 태양은, 미디어 데이터의 물리 구조(디스크 레코드에서의 레이아웃)가 파일을 위한 논리 구조와는 독립되어 있고 그것에 의해 설명 된다는 개념이다. 파일은 한 세트의 "무비(movie)" 메타데이터에 의해 완전하게 설명된다. 이 메타데이터는 실제 미디어 데이터에 관한 선언적, 구조적 및 시간적 정보(declarative, structural and temporal information)를 제공한다.
미디어 데이터는 설명 데이터("무비" 메타데이터)와 동일 파일에 또는 다른 파일(들)에 위치할 수 있다. 하나의 파일로 구조화된 무비를 흔히 "플랫(flat)"이라고 하고 자체 포함적(self-contained)이다. 논-플랫(non-flat) 무비는 다른 파일의 미디어 데이터 중 일부 또는 전부를 참조하도록 구조화될 수 있다.
이와 같이, 이 포맷은 일반적으로, 상이한 애플리케이션에서의 최적화에 적합하다. 예를 들어, 편집(합성)할 때, 편집물로서 재기입되는 것이 불필요한 데이터가 적용되어 미디어가 재순서화되면; 메타데이터 파일이 확장될 수 있고 시간적 매핑 정보가 조정될 수 있다. 편집이 완료되었을 때, 관련 미디어 데이터 및 메타데이터는 로컬 또는 네트워크 액세스를 위해 인터리브되고 최적화된 단일 파일로 재기입될 수도 있다. 구조화된 파일과 최적화된 파일 모두가 유효한 QuickTime 파일이며, 양자는 검사되고, 플레이되며, 재작업된다.
구조화된("논-플랫") 파일을 사용하면 동일한 기본 미디어 데이터가 임의 횟수의 프레젠테이션에서 사용 및 재사용될 수 있게 된다. 다음에서 알 수 있는 바와 같이, 이러한 동일 이점이 서비스를 제공할 때에도 해당된다.
편집 및 서비스 모두에서, 이것은 다수의 다른 파일을, 미디어 데이터를 복사하지 않으면서도, 무비의 일부로서 취급할 수 있게 한다. 이와 같이, 편집 및 서비스가 Sun Microsystem의 "au" 오디오 포맷 또는 AVI 비디오 포맷과 같은 파일 로부터 직접적으로 수행될 수 있으므로, 이 포맷의 유용성을 크게 확장시킬 수 있다.
QuickTime 파일은, 원자(atom)라고 하는, 한 세트의 오브젝트로 분할된다. 오브젝트 각각은, 그것의 사이즈 및 유형을 선언하는 원자 헤더(atom header)로 시작한다:
Figure 112008011951492-pct00001
사이즈 필드 및 유형 헤더 필드를 포함하는 사이즈는 바이트 단위이다. 용이한 문서화 및 식별을 허용하기 위해 유형 필드는 (대체로 인쇄 가능한) 4개 캐릭터이다. 오브젝트에서 유형 필드 이후의 데이터는 필드, 포함된 오브젝트의 시퀀스, 또는 둘 모두일 수 있다.
따라서, 파일은 단순히 오브젝트의 시퀀스이다:
Figure 112008011951492-pct00002
2가지 중요한 상부-레벨 오브젝트(top-level objects)가 미디어-데이터(mdat) 및 메타데이터(moov)이다.
미디어-데이터 오브젝트(들)는 실제 미디어(예컨대, 사운드 샘플의 시퀀스)를 포함하고 있다. 그것의 포맷은 파일 포맷에 의해 제한되지 않고; 그것은 일반 적으로 오브젝트가 아니다. 그것의 포맷은, 그것과 물리적으로 인접한 어떠한 선언(declarations)에 의해서가 아니라, 메타데이터로 설명된다. 그래서, 예를 들어, 모션-JPEG만으로 이루어진 무비에서, JPEG 프레임은 부수적인 추가 헤더없이 미디어 데이터에 연속적으로 저장된다. 미디어 데이터 오브젝트내의 미디어 데이터는 논리적으로 덩어리들(chunks)로 분할되지만; 미디어 데이터내에 명시적 덩어리 마커(explicit chunk markers)는 존재하지 않는다.
QuickTime 파일이 다른 파일의 미디어 데이터를 참조할 때, 그러한 미디어 데이터 파일은 그것이 미디어 오브젝트의 컨텐츠인 것처럼 포맷될 수 있으므로, 이러한 '이차(secondary)' 파일이 QuickTime 명세에 따라 포맷될 필요는 없다. QuickTime 포맷이 미디어 데이터와 물리적으로 연속적인 어떠한 헤더 또는 다른 정보를 반드시 필요로 하는 것은 아니므로, 미디어 데이터는 '외부' 헤더(예를 들어, UNIX ".au" 파일 또는 AVI 파일)를 포함하는 파일일 수 있고 QuickTime 메타데이터는 적절한 선언적 정보를 포함할 수 있으며 '외부' 파일의 미디어 데이터를 참조할 수 있다. 이런 식으로, QuickTime 파일 포맷은 별도 포맷의 기존 자료 바디를, 복사하지 않으면서도 업데이트하는데 사용될 수 있다. QuickTime 파일 포맷은 확립된 포맷일 뿐 아니라, 다른 확립된 포맷을 대상으로 작업할 수 있고, 다른 확립된 포맷을 포함할 수 있으며, 그것에 의해, 다른 확립된 포맷을 제시할 수 있다.
빈 공간(free space; 예를 들어, 편집 동작에 의해 삭제되는) 또한 오브젝트에 의해 설명될 수 있다. 빈 공간의 오브젝트를 포함하는 파일을 판독중인 소프트웨어는 그러한 빈 공간의 오브젝트 뿐만 아니라 그것이 이해할 수 없는 임의 레벨 오브젝트도 무시해야 한다. 이것은, 새로운 오브젝트를 도입함으로써, 사실상 모든 레벨에서의 파일 확장을 허용한다.
일차 메타데이터(primary meta-data)는 무비 오브젝트이다. QuickTime 파일은, 그것의 용이한 위치 추정을 허용하기 위해, 통상적으로 파일의 시작 또는 끝에 위치하는 정확히 1개의 무비 오브젝트를 가진다:
Figure 112008011951492-pct00003
무비 헤더는 전체 프레젠테이션에 관한 기본 정보(그것의 생성일, 전반적 타임스케일 등)를 제공한다. 포함된 오브젝트의 시퀀스에는, 통상적으로, 시간적으로 제시되는 데이터를 설명하는 적어도 하나의 트랙이 존재한다.
Figure 112008011951492-pct00004
트랙 헤더는 트랙에 관한 비교적 기본적인 정보(그것의 ID, 타임스케일 등)를 제공한다. 트랙에 포함된 오브젝트는 (예를 들어, 복잡한 합성을 위한) 다른 트랙에 대한 참조일 수 있거나 편집 리스트일 수 있다. 포함된 오브젝트의 이 시퀀스에는, 트랙이 플레이될 때 제시되는 미디어를 설명하는 미디어 오브젝트가 존재할 수도 있다.
미디어 오브젝트는 트랙에 의해 요구되는 프레젠테이션에 관련된 선언을 포함하고 있다(예를 들어, 그것은 샘플링된 오디오, MIDI, 또는 3D 화면을 위한 방향 정보이다). 트랙의 유형은 그것의 핸들러에 의해 선언된다:
Figure 112008011951492-pct00005
미디어 정보 내에는, 마찬가지로 (미디어 데이터를 인출하는) 데이터 핸들러를 위한 핸들러 선언 및 어떤 파일이 연관된 트랙을 위한 미디어 데이터를 포함하고 있는지를 정의하는 데이터 정보 선언이 존재한다. 이 선언을 사용함으로써, 수개 파일에 이르는 무비가 구축될 수 있다.
최저 레벨에서는, 트랙의 시간적 태양(temporal aspect)을 파일에 저장된 데이터와 관련짓는 샘플 테이블이 사용된다:
Figure 112008011951492-pct00006
샘플 설명(sample description)은 미디어에 관한 정보(예를 들어, 비디오에 사용되는 압축 포맷)를 포함한다. 시간 대 샘플 테이블(time-to-sample table)은 트랙에서의 시간을 그 시간에 디스플레이되어야 하는 샘플에 (인덱스에 의해) 관련짓는다. 동기화 샘플 테이블(sync sample table)은, 이들 중 어떤 것이 다른 샘플에 의존하지 않는 동기화 (키) 샘플인지를 선언한다.
샘플 대 덩어리 오브젝트(sample-to-chunck object)는 소정 샘플을 위한 미디어 데이터 및 그것의 인덱스가 부여된 그것의 설명을 찾아내는 방법을 선언한다:
Figure 112008011951492-pct00007
샘플 사이즈 테이블은 각 샘플의 사이즈를 지시한다. 덩어리 오프셋 테이블은 각 덩어리의 시작을 포함하고 있는 파일로의 오프셋을 지시한다.
상술된 구조를 보측하여 소정 시간 동안 디스플레이할 적합한 데이터를 찾아내는 것은, 일반적으로 색인(indexing)하고 가산(adding)하는 것을 포함하는, 상당히 직관적이고 쉬운 작업이다. 동기화 테이블을 사용하면, 선행 동기화 샘플을 백업할 수도 있고, 변위(deltas)를 소정 시작점(starting point)에 누적하면서 '조용히' 앞쪽으로 롤링할 수도 있다.
도 1은 1개 트랙의 간단한 무비 구조를 나타낸다. 유사한 도면이, 다양한 오브젝트의 필드에 대한 상세한 설명과 함께, QuickTime 파일 포맷 문서에서 발견될 수 있다. 여기에서 QuickTime 원자(오브젝트)는 회색 상자에서의 그것의 유형 및 위쪽의 약어(descriptive name)로 도시된다. 이 무비는 단일 비디오 트랙을 포함하고 있다. 비디오의 프레임은, 데이터의 단일 덩어리로, 동일 파일에 위치한다. '덩어리'는 논리 구조일 뿐이고; 오브젝트가 아니라는 것에 주의해야 한다. 덩어리 내부에는, 통상적으로 그것의 원시 형태로 저장되는 비디오의 프레임이 위치한다. 비디오 프레임 자체 내에는 헤더 또는 필드가 필요하지 않다.
도 2는 오디오와 비디오 트랙 양자를 갖춘 자체 포함 파일의 도면이다. 여기에는, 간략화를 위해, 더 적은 원자가 도시되어 있고; 트랙으로부터 미디어 데이터쪽으로의 포인터는, 당연히, 타이밍 정보를 포함하는 일반적 샘플 테이블 선언이다.
QuickTime 파일 포맷은 다음과 같은 다수 이점을 가진다:
1) 사이즈 및 비트 레이트에 대한 확장축소 변환성(scalability). 메타데이터는 플렉시블하면서도(flexible) 간결하다. 이로 인해, QuickTime 파일 포맷은 (예를 들어, 인터넷상에서) 다운로드된 작은 무비에 적합할 뿐만 아니라 다수의 하이 엔드 편집 시스템(high-end editing systems)을 위한 기초를 제공하는데 적합하다.
2) 물리 구조가 논리 및 시간 구조에 독립적이다. 이로 인해, QuickTime 파일 포맷은 파일이 가질 용도에 따라 물리 구조를 상이하게 최적화할 수 있다. 특히, 이는 단일 파일 포맷이 저작 및 편집에; 다운로드 또는 CD-ROM상의 배치에; 그리고 스트리밍에 적합하다는 것을 의미한다.
3) 본 파일 포맷은, 포맷이 설계되었을 시점에 공지되어 있지 않았던 많은 것을 포함하여, 아주 광범위한 여러 코덱 유형 및 트랙 유형을 핸들링할 수 있다는 것을 입증하였다. 순방향 호환 가능 방식(upwards-compatible fashion)으로 진화하는 입증된 이 능력은 저장 포맷의 성공을 위한 토대가 된다.
확장축소 변환가능하거나(scalable) 계층화된 코덱은 QuickTime 파일 포맷에서 다양한 방법으로 핸들링될 수 있다. 확장축소 변환성(scalability)을 지원하는 스트리밍 프로토콜을 위해, 샘플은 샘플을 전송하기 위해 충족되어야 하는 계층 또는 대역폭 임계치로 태깅될 수도 있다.
일련의 대안(예를 들어, 상이한 자연어 사운드 트랙)을 형성하는 트랙들은 하나만이 재생을 위해 선택되도록 태그될 수 있다. 동일 구조가 (예를 들어, 언어 선택을 위해) 스트리밍을 위한 대안을 선택하는데 사용될 수 있다. 이러한 기능은 QuickTime 파일 포맷에서 좀더 상세하게 설명된다.
QuickTime이 무비 또는 트랙을 디스플레이할 때, 적합한 미디어 핸들러가 특정 시점에 대한 미디어 데이터에 액세스한다. 미디어 핸들러는 요청된 데이터를 검색하기 위해 데이터 스트림을 정확하게 해석해야 한다. 예를 들어, 비디오 미디어와 관련하여, 미디어 핸들러는 소정 미디어 시점에 대한 샘플의 위치 및 사이즈를 찾아내기 위해 통상적으로 여러 원자를 트래버싱(traverse)한다. 미디어 핸들러는 다음을 수행할 수도 있다:
1. 미디어 시간 좌표계에서의 시간 결정하기.
2. 시간 대 샘플 원자를 조사하여 특정 시점을 위한 데이터를 포함하고 있는 샘플 번호 판정하기.
3. 샘플 대 덩어리 원자를 스캔하여 어떤 덩어리가 문제의 샘플을 포함하고 있는지 알아내기.
4. 덩어리 오프셋 원자로부터 덩어리까지의 오프셋 추출하기.
5. 샘플 사이즈 원자를 사용하여 덩어리 내에서의 오프셋 및 샘플의 사이즈 알아내기.
흔히, 컴퓨터 네트워크(예컨대, 인터넷)와 연관될 수 있는 데이터 통신 매체를 통해 QuickTime 파일 또는 미디어 데이터의 시간 관련 시퀀스의 다른 유형을 전송하는 것이 필요하다. 많은 컴퓨터 네트워크에서, 네트워크로 전송되는 데이터는 일반적으로 패킷 형태여야 한다. 통상적으로, 미디어 데이터의 시간 관련 시퀀스는, 네트워크를 통한 전송을 위해 적당하게 패킷화된 포맷에 해당되지 않는다. 예 를 들어, QuickTime 포맷의 미디어 데이터 파일은 패킷화된 포맷이 아니다. 이와 같이, 간혹 스트리밍 데이터라고도 하는 데이터를 네트워크를 통한 전송을 위해 패킷으로 수집해야 할 필요성이 존재한다.
미디어 데이터의 시간 관련 시퀀스를 네트워크를 통해 전송하는 문제점에 대처하기 위한 종래의 일 접근 방법은 미디어 파일을, HTTP(Hypertext Transfer Protocol)와 같은, 네트워크 또는 전송 프로토콜을 사용하는 네트워크를 통해 송신하는 것이다. 그에 따라, 미디어 파일 자체가 일 컴퓨터 시스템으로부터 네트워크를 통해 다른 컴퓨터 시스템으로 송신된다. 그러나, 수신하는 컴퓨터 시스템에 미디어 파일을 보유하기를 원치 않을 수도 있다. 다시 말해, 미디어 파일이 수신 컴퓨터 시스템에서 수신되어 시청되거나 청취될 때, 예를 들어, 수신 컴퓨터 시스템이 네트워크 컴퓨터 또는 낮은 저장 용량의 컴퓨터라면, 그러한 수신 컴퓨터 시스템의 사용자는 파일 사본을 저장하기를 원치 않을 수도 있다.
네트워크를 통한 패킷에 의한 전송을 위해 데이터를 수집하는 방법의 문제점을 해결하기 위한 또 다른 접근 방법은 파일에 특정 전송 프로토콜을 위한 네트워크 프로토콜 데이터 유닛을 포함하고 있는 파일을 준비하는 것이다. 어떤 의미에서, 그러한 파일은, 그것이 특정 전송 프로토콜에 따라 전송될 것이므로, 사실상 동일 포맷으로 저장되는 패킷화된 파일로 생각될 수도 있다. 이 동작을 수행하는 것은 일반적으로 파일을, 특정 데이터 전송 속도 및 특정 미디어 파일 포맷에서, 특정 네트워크 프로토콜을 위한 패킷화된 형태로 저장하는 동작을 수반한다. 그에 따라, 특정 데이터 전송 속도에서의 상이한 전송 프로토콜 각각에 대해, 파일은 사 실상 그것의 패킷화된 형태로 복제될 것이다. 그러한 파일의 고정된 형태는 그것의 응용 가능성/호환 가능성을 제한할 수도 있고 그러한 파일을 로컬에서 시청하는 것을 어렵게 할 수도 있다. 그에 따라, 그러한 접근 방법은, 파일을 상이한 여러 데이터 전송 속도에서 다양한 전송 프로토콜로 제공하고자 시도하는 과정에서, 저장 요건(storage requirements)을 상당히 증가시킬 수도 있다. 더 나아가, 이와 같은 종래의 대안적인 접근 방법에 따라 생성된 패킷화된 파일 각각은 일반적으로 특정 미디어 파일 포맷으로 한정되고, 그에 따라, 통상적으로 동일한 미디어 오브젝트(예를 들어, 디지털 무비)에 대해 다른 미디어 파일 포맷이 패킷화되어 송신 컴퓨터 시스템에 저장된다.
미디어 데이터의 시간 관련 시퀀스를 스트리밍하는 방법의 문제점을 해결하기 위한 또 다른 접근 방법은, 전송 시스템에서 요구될 때, 소망되는 특정 전송 프로토콜에 따라 미디어 데이터의 패킷화를 수행하는 것이다. 이 프로세싱은, 많은 경우, 비교적 상당한 시간을 요구하고, 그에 따라, 전송 시스템의 동작을 감속시킬 수도 있다.
따라서, 미디어 데이터의 시간 관련 시퀀스를 전송하기 위한 향상된 방법 및 장치를 제공하는 것이 필요하다.
본 발명은, 스케일러블 컨텐츠에 관한 프레젠테이션을 복수의 스케일에서 제시하기 위한 샘플들을 포함하는 데이터 집합 또는 스트림에 저장된 판독 가능 컨텐츠를 프로세싱하기 위한 방법 및 장치를 제공한다. 일 실시예에서, 제1 스트림이 저장되고 제2 스트림이 제1 스트림으로부터 추출되는데, 제2 스트림은, 제1 스트림으로부터, 스케일러블 컨텐츠내의 동작점에 대한 참조, 데이터의 선택시에 사용하기 위한 제1 스트림에 대한 참조를 포함하고 있다. 본 발명의 일 태양에 따르면, 저장된 제2 스트림에 포함된 참조는 제1 스트림으로부터의 데이터를 전송하거나 저장하도록 액세스된다. 다수의 다른 방법 및 장치도 설명된다.
도 1은 종래 기술에서의 1개 트랙을 갖춘 간단한 무비 구조의 일례를 나타낸다.
도 2는 종래 기술의 자체 포함 무비 파일의 일례이다.
도 3은 본 발명에 따른 방법의 일례를 나타내는 흐름도이다.
도 4는 본 발명의 힌트 트랙의 일례를 나타낸다.
도 5는 본 발명의 힌트 트랙의 다른 일례를 나타낸다.
도 6은, 본 발명의 일 실시예에 따른, 미디어 데이터가 교환 및/또는 프로세싱될 수 있는 컴퓨터 시스템의 네트워크 도면이다.
도 7은 본 발명의 일 실시예에 따라 사용될 수 있는 디지털 프로세싱 시스템의 블록도이다.
도 8은, 본 발명의 일 실시예에 따른, 힌트를 이용해 미디어 데이터를 전송하는 시스템의 블록도이다.
도 9는, 본 발명의 일 실시예에 따른, 힌트를 이용해 미디어 데이터를 전송하는 시스템의 블록도이다.
도 10은, 본 발명의 일 실시예에 따른, 미디어 데이터 전송을 제공하기 위한 힌트를 발생시키기 위한 방법을 예시하는 흐름도이다.
도 11은, 본 발명의 일 실시예에 따른, 수신 시스템에 의해 수신된 미디어 데이터를 힌트에 따라 프로세싱하는 방법을 예시하는 흐름도이다.
도 12는, 본 발명의 일 실시예에 따른, 발생기(generator)와 같은, 디지털 프로세싱 시스템에 의해 액세스될 수 있는 머신 판독가능 저장 매체의 일례이다.
도 13은, 본 발명의 일 실시예에 따른, 서버와 같은, 디지털 프로세싱 시스템에 의해 액세스될 수 있는 머신 판독가능 저장 매체의 일례이다.
도 14는, 본 발명의 일 실시예에 따른, 수신 시스템 또는 기타 디지털 프로세싱 시스템과 같은, 디지털 프로세싱 시스템에 의해 액세스될 수 있는 머신 판독가능 저장 매체의 일례이다.
도 15는, 본 발명의 일 실시예에 따른, 저장/전달된 미디어 및 힌트 정보를 갖춘 데이터 저장 및/또는 통신 매체의 도면이다.
도 16A는 SVC 코딩된 비디오 베이스 트랙(SVC coded video base track)의 일 실시예를 예시한다.
도 16B는 변화하는 비디오 해상도의 일 실시예를 예시하는 블록도이다.
도 16C는 수집기 네트워크 추상화 계층 유닛(aggregator network abstraction layer units)을 이용하는 SVC 코딩된 비디오 베이스 트랙의 일 실시예를 예시한다.
도 17A는 SVC 코딩된 베이스 트랙으로부터 비디오 스트림을 추출하는데 사용 되는 추출기 트랙의 일 실시예를 예시하는 블록도이다.
도 17B는 수집기 네트워크 추상화 계층 유닛을 구비하는 SVC 코딩된 베이스 트랙으로부터 비디오 스트림을 추출하는데 사용되는 추출기 트랙의 일 실시예를 예시하는 블록도이다.
도 18은 추출기 트랙을 통합하는 비디오 파일의 일 실시예를 예시하는 블록도이다.
도 19는 SVC 베이스 트랙에 의해 추출기 트랙을 발생시키고 SVC 베이스 트랙에 대해 그것을 사용하는 시스템의 일 실시예를 예시하는 블록도이다.
도 20은 SVC 베이스 트랙으로부터 SVC 추출기 트랙(들)을 발생시키는 방법(2000)의 일 실시예의 흐름도이다.
도 21은 대응되는 추출기 트랙을 사용해 SVC 베이스 트랙으로부터 비디오 스트림을 검색하는 방법(2100)의 일 실시예의 흐름도이다.
도 22는 원격 클라이언트를 위한 전송 서버에 의해 SVC 베이스로부터 미디어 스트림을 검색하는 방법(2200)의 일 실시예의 흐름도이다.
도 23은 추출기 트랙을 사용해 미디어 스트림을 요청하는 원격 클라이언트에 대한 전송 서버에 의해 SVC 베이스 트랙으로부터 미디어 스트림을 검색하는 방법(2300)의 일 실시예의 흐름도이다.
도 24는 SVC 베이스 트랙으로부터 추출된 SVC 특정 컨텐츠를 저장하는 방법(2400)의 일 실시예의 흐름도이다.
본 발명은, 컴퓨터 네트워크에서와 같은, 통신 매체를 통해, 예를 들어, 비디오, 오디오, 비디오 및 오디오 등을 포함할 수 있는 미디어 데이터의 시간 관련 시퀀스의 전송, 특히, 패킷화된 전송을 허용하기 위한 방법 및 장치를 제공한다.
본 발명의 일 실시예에서, 디지털 프로세싱 시스템은 전송 프로토콜에 따라 미디어 데이터의 시간 관련 시퀀스의 전송 방법을 지시하기 위한 한 세트의 데이터를 생성한다. 통상적으로, 데이터의 이 세트는 디지털 프로세싱 시스템에 연결된 저장 디바이스(storage device)에 저장된다. 더 나아가, 데이터의 이 세트는 미디어 데이터의 시간 관련 시퀀스와 연관된 데이터의 시간 관련 시퀀스이다.
본 발명은 컴퓨터 판독 가능 매체에 저장되는 실행 가능 컴퓨터 프로그램 명령어로 전적으로 구현될 수 있거나 소프트웨어와 하드웨어의 조합으로 구현될 수 있거나, 소정 실시예에서는, 전적으로 하드웨어로 구현될 수도 있다. 통상적으로, 네트워크에 연결된 서버 컴퓨터 시스템은 힌트 트랙이라고 할 수 있는 한 세트의 데이터를 생성할 것이고, 이 힌트 트랙을 서버 컴퓨터 시스템에 연결된 저장 디바이스에 저장할 것이다. 클라이언트 컴퓨터 시스템이 미디어 데이터 파일의 프레젠테이션(예를 들어, 시청, 청취, 또는 시청 및 청취)을 요청할 때, 서버 시스템은 힌트 트랙을 사용해 미디어 데이터를 클라이언트 컴퓨터 시스템으로의 전송을 위해 패킷화하는 방법을 결정한다. 본 발명은 일반적으로 미디어 데이터의 시간 관련 시퀀스에 적용 가능하다는 것과 QuickTime은 여기에서 이러한 일반적 응용 가능성의 일례로서 표현된다는 것을 알 수 있을 것이다. 따라서, 본 발명이 반드시 QuickTime으로 제한될 필요는 없다.
도 3은 본 발명의 방법에 따른 일례를 나타낸다. 도 3에 도시된 방법(300)은, 전송될 필요가 있는 특정 미디어 데이터를 위한 미디어 파일 포맷이 결정되는 단계 301에서 시작한다. 단계 303에서, 사용될 필요가 있는 특정 전송 프로토콜 또는 프로토콜들도 결정된다. 그러나, 예를 들어, 동일한 미디어 파일 포맷이 항상 동일한 전송 프로토콜을 사용해 전송되는 경우, 단계 301 및 단계 303은 선택적이다.
단계 305에서, 서버 컴퓨터 시스템과 같은, 디지털 프로세싱 시스템은 미디어 파일 내의 미디어 데이터의 시간 관련 시퀀스를 패킷화하기 위한 힌트를 생성하고 저장한다. 다른 방법으로는, 하나의 컴퓨터 시스템이 힌트를 생성하고 그것을, 전송 프로세스에서의 후속 사용을 위해 그것을 저장하는, 서버 컴퓨터 시스템과 같은 다른 시스템에 제공할 수도 있다. 패킷화는, 단계 303에서 결정된 필요한 전송 프로토콜에 따라, 네트워크 또는 통신 미디어를 통한 전송을 가능하게 한다. 본 발명의 일 실시예에서, 힌트는 미디어 데이터의 다른 트랙을 지칭하는 힌트의 시간 관련 시퀀스의 트랙으로서 저장되지만, 일 실시예에서는, 미디어 데이터의 다른 트랙과 별개인 힌트의 시간 관련 시퀀스의 트랙으로서 저장된다. 본 발명의 일 실시예에서는, 힌트의 트랙이 그것이 지칭하는 미디어 데이터와는 별도로 저장될 수도 있다. 이와 같이, 힌트의 트랙은, 힌트의 트랙에 의해 지칭되는 미디어 데이터를 포함하고 있는 다른 파일과는 상이한 파일에 저장될 수 있거나, 실제 미디어 데이터를 포함하고 있는 데이터 영역과는 별개이며 상이한 미디어 데이터를 포함하고 있는 파일에서의 힌트 영역(hint area)에 저장될 수도 있다. 본 발명의 일 실시예 에서, 힌트 트랙 또는 그 일부는, 서버로 하여금 데이터의 시간 관련 시퀀스를 패킷화하게 하는, 서버에 의해 실행 가능한 명령어로서 해석될 수도 있는데, 데이터의 시간 관련 시퀀스는 통상적으로 시간 기반 미디어 데이터이지만, 반드시 그래야 하는 것은 아니다. 본 발명의 일 실시예에서, 힌트는 전송 디지털 프로세싱 시스템에 연결된 저장 디바이스에 저장된다.
단계 307에서는, 힌트에 따라 패킷화된 데이터가, 서버 컴퓨터 시스템과 같은 전송 시스템으로부터 수신 시스템에게로 전송된다. 이러한 미디어 데이터는 미디어 데이터를 힌트에 따라 패킷화함으로써 전송된다. 본 발명의 다른 일 실시예에서, 서버 컴퓨터 시스템은 힌트를 사용하지 않고 다른 패킷화 프로세스에 의해 미디어 데이터를 송신할 것을 결정할 수도 있다.
단계 309에서, 수신 시스템은 미디어 데이터에 의해 표현되는 미디어 오브젝트를 제시한다. 통상적으로, (미디어 오브젝트의 시청 및 청취, 또는 미디어 오브젝트의 단순한 시청, 또는 단순한 청취일 수 있는) 이 프레젠테이션은, 패킷화된 데이터가 수신 시스템에서 수신됨에 따라 수행된다. 패킷화된 데이터가, 본 발명의 일 실시예에서는, 수신 시스템에 저장될 수도 있지만, 반드시 그래야 하는 것은 아니다. 따라서, 프레젠테이션이 끝나고 나면, 수신 시스템에 로컬 사본(local copy)이 존재하지 않는다는 점에서, 데이터의 프레젠테이션은 임시적(ephemeral)이다. 다른 실시예에서, 미디어 오브젝트의 프레젠테이션은, 미디어 오브젝트를 표현하는 미디어 데이터에 대한 힌트를 생성하는 것에 후속하여, 서버 시스템에서 발생할 수도 있다. 본 발명의 일 실시예에서, 힌트에 따른 패킷화를 위해 미디어 데 이터가 반드시 (재)포맷, 복사 등이 되어야 하는 것은 아니다.
단계 311에서, 수신된 미디어 파일이 수신 시스템에 저장되었다면, 수신 시스템은 선택적으로 미디어 파일을 리어셈블(reassemble)할 수도 있다. 도 3에 도시된 방법의 다양한 단계는 앞서 도시되고 설명된 것과 상이한 순서로 수행될 수도 있고 그리고/또는 단계 중 일부는 동시에 수행될 수도 있다는 것을 알 수 있을 것이다. 예를 들어, 일 실시예에서, 단계 309 및 단계 311은 병렬로 수행된다.
이하에서는, 본 발명의 일 실시예에 따른 QuickTime에 의한 특정 구현이 설명될 것이다. 본 발명의 일 실시예에서는, 파일에 대해 로컬에서(locally)(예를 들어, 서버, 발생기 등에서) 시청될 수 있으면서 QuickTime 무비 내에서 네트워크를 통해 스트리밍될 수도 있는 프레젠테이션이 제공된다. 일반적으로, 스트리밍 서버(또는 다른 시스템)는 스트리밍할 데이터 유닛, 그것의 구성 및 타이밍에 관한 정보를 가지고 있어야 한다. 그러한 정보는 통상적으로 시간적(temporal)이므로, 그것은 트랙으로 기술될 수 있다. 서버는, 예를 들어, 프레젠테이션을 시청하는데 사용되는 것과 동일한 색인 동작(indexing operation)을 사용함으로써, 패킷화를 수행하고 프로토콜 정보를 판정할 수 있다.
서버를 위한 명령어를 포함하고 있는 트랙을 간혹 '힌트' 트랙이라고 하는데, 그러한 트랙은 패킷을 형성하고 전송하는 프로세스에서 서버를 인도할 데이터 세트를 표현하기 때문이다. QuickTime 파일 포맷은 네트워크를 통한 미디어 데이터의 스트리밍뿐만 아니라 로컬 재생을 지원한다. 프로토콜 데이터 유닛을 송신하는 프로세스는, 마치 시간 기반 데이터의 디스플레이처럼 시간 기반이고, 따라서, 시간 기반 포맷에 의해 적절하게 설명된다. 스트리밍을 지원하는 QuickTime 파일 또는 '무비'는 스트리밍할 데이터 유닛에 관한 정보를 포함한다. 이 정보는 "힌트" 트랙이라고 하는 파일의 추가 트랙에 포함된다.
힌트 트랙은, 패킷의 형성을 지원하는, 스트리밍 서버(또는 다른 디지털 프로세싱 시스템)를 위한 명령어를 포함하고 있다. 이 명령어는 서버가 송신할 즉시 데이터(immediate data)(예를 들어, 헤더 정보) 또는 미디어 데이터의 참조 세그먼트(reference segments)를 포함하고 있을 수도 있다. 본 발명의 일 실시예에서, 편집 또는 프레젠테이션 정보가 로컬 재생을 위한 QuickTime 파일로 인코딩되는 것과 동일한 방법으로, 명령어가 QuickTime 파일로 인코딩된다. 편집 또는 프레젠테이션 정보 대신에, 서버가 미디어 데이터를 특정 네트워크 전달을 사용하는 스트리밍에 적당한 방식으로 패킷화하는 것을 허용할 수 있는 정보가 제공될 수 있다.
본 발명의 일 실시예에서는, 그것이 로컬 재생을 위한 것인지 아니면 상이한 다수 전달 유형을 통한 스트리밍을 위한 것인지에 상관없이, 힌트를 포함하고 있는 QuickTime 파일에 동일한 미디어 데이터가 사용된다. 상이한 전달 유형을 위한 별도 '힌트' 트랙이 동일한 파일 내에 포함될 수 있으며, 미디어는 미디어 자체의 어떠한 추가 사본도 형성하지 않으면서, 그러한 전달 유형 모두를 통해 플레이할 수 있다. 또한, 기존 미디어는, 특정 전달을 위한 적합한 힌트 트랙을 추가함으로써 스트리밍 가능해질 수도 있다. 본 발명의 일 태양에 따르면, 미디어 데이터 자체가 리캐스트(recast)되거나 리포맷(reformat)될 필요는 없다.
따라서, 힌트 트랙에서의 샘플은 일반적으로 패킷을 형성하기 위한 명령어를 포함하고 있다. 이 명령어는 서버가 송신할 즉시 데이터(예를 들어, 헤더 정보) 또는 다른 트랙에서의 미디어 데이터의 참조 세그먼트를 포함하고 있을 수도 있다.
본 발명의 일 실시예에서는, 3-레벨 설계(three-level design)가 이용되고, 그에 따라:
1) 미디어 데이터는, 정상적으로 플레이, 편집 등이 이루어질 수 있는, 한 세트의 네트워크-독립적인 트랙으로서 표현되고;
2) 서버 힌트 트랙을 위한 공통 선언 및 베이스 구조가 존재하며; 이러한 공통 포맷은 프로토콜 독립적이지만, 어떤 프로토콜(들)이 서버 트랙(들)에서 설명되는지의 선언을 포함하고;
3) 전송될 수 있는 프로토콜 각각을 위한 서버 힌트 트랙의 특정 설계가 존재하며; 이 모든 설계는 동일한 기본 구조를 사용한다. 예를 들어, (인터넷용) RTP 및 (브로드캐스트용) MPEG-2 전달을 위한 설계 또는 새로운 표준이나 벤더-특유한 프로토콜을 위한 설계가 존재할 수 있다.
본 발명의 일 실시예에서, 힌트 트랙의 인도하에 서버에 의해 송신된 결과 스트림은 정상 스트림(normal streams)이며, QuickTime 정보의 트레이스를 반드시 포함해야 하는 것은 아니다. 본 발명의 이 실시예는, QuickTime, 또는 그것의 구조 또는 선언 스타일이 전송 매체(예를 들어, 네트워크 케이블)상의 데이터나 디코딩 장소(decoding station)에 반드시 존재할 것을 요구하지 않는다. 예를 들어, RTP하에서 스트리밍되는, H.261 비디오 및 DVI 오디오를 사용하는 파일은, 본 발명의 일 실시예에서, 그러한 코딩을 RTP로 패킹하기 위한 IETF 명세를 철저하게 준수 하는 패킷 스트림을 유발할 수 있다.
본 발명의 일 실시예에서는, 힌트 트랙이 구축되고 플래그되며(flagged), 그에 따라, 프레젠테이션이 로컬에서 시청될 때, 힌트 트랙은 사실상 수신 시스템에 의해 무시된다.
일 실시예에서, 예를 들어, 비디오, 오디오 등을 포함할 수 있는 미디어 데이터의 시간 관련 시퀀스는 디지털 프로세싱 시스템에 의해 패킷화된 다음, 동일한 디지털 프로세싱 시스템을 통해 제시될 수 있다. 더 나아가, 패킷화는 임시적일 수 있고, 그에 따라, 제시되고, 저장되며, 판독되는 등의 시간 관련 시퀀스 또한 "온-더-플라이(on the fly)"로 패킷화된다. 일 실시예에서, 힌트는 복사되지 않았거나 포맷되지 않은 등의 미디어 데이터를 의미할 수 있고; 예를 들어, 힌트가 지칭하는 미디어 데이터는 읽기 전용 메모리(read-only memory) 등에 원래 포맷으로 저장될 수도 있다.
일 실시예에서는, 패킷화를 제공하는 동일한 힌팅 루틴(hinting routine)도 패킷화가 수행됨에 따라 미디어를 제시한다. 본 발명의 다른 실시예에서는, 시간 관련 미디어 데이터의 패킷화된 파일이 힌트 트랙에 따라 생성되어, 예를 들어, 후속 전송을 위해 저장될 수도 있다.
도 4는, 본 발명의 일 실시예에 따른, 미디어 데이터를 전달하기 위한 힌트 트랙의 이용을 예시한다. 도 4에서, 힌트 트랙(401)은 미디어 트랙(403)을 위해 도시된다. RTP 패킷을 형성하는 방법을 기술하는, 힌트 트랙 샘플(405)과 같은 각각의 힌트 트랙 샘플은 헤더를 포함할 수 있고, 연관된 미디어 트랙[이 경우, 비디 오 트랙(403)]으로부터 일부 데이터를 참조할 수 있다. 도 4에 도시된 실시예에서, 미디어 데이터(비디오 프레임) 및 RTP 힌트는 인터리빙되었고, 그에 따라 연관된 미디어 파일이 비교적 쉽게 판독될 수 있다. 이 일례에서, 각각의 프레임은 단일 RTP 패킷에 맞춰진 것으로 도시된다. 물론, 필요할 경우, 프레임을 수개 패킷으로 분할할 수도 있다. 반대로, 원한다면, 오디오 데이터에 대해 흔히 수행되는 것처럼, 다수 프레임이 단일 패킷에 배치될 수도 있다.
앞서 논의된 바와 같이, 상술된 논리 구조가 반드시 물리 구조를 암시하는 것은 아니다. 메타데이터는 메모리에 캐시될 수 있고, 힌트 트랙 샘플은 (도 4에 도시된 바와 같이) 그것이 지칭하는 미디어 샘플과 물리적으로 인터리빙될 수도 있다.
다른 방법으로, 기존 프레젠테이션에서의 메타데이터 및 미디어 데이터를 참조하고 부가하며, 힌트 트랙을 포함하는 새로운 세트의 메타데이터 및 미디어 데이터를 기입할 수도 있다. 도 5는, 본 발명의 일 실시예에 따른, 별도 파일에서의 미디어 데이터를 참조하기 위한 힌트 트랙의 이용을 도시한다. 도 5에서, 각각이 자신만의 메타데이터를 갖춘 2개의 무비 파일(502 및 504)이 도시된다. 제1 무비 파일(502)은 비디오 트랙을 포함한다. 제2 무비 파일(504)은 비디오 트랙과 힌트 트랙 양자를 포함하지만, 메타데이터는 비디오 트랙을 위한 미디어 데이터가 제1 무비(502)에 위치한다고 선언한다. 따라서, 무비 파일(504)과 연관된 힌트 또한 제1 무비(502)에서의 미디어 데이터를 가리킨다.
본 발명의 일 실시예에서, 미디어 파일은 다수 프로토콜을 위한 패킷화 힌트 트랙을 포함할 수도 있다. 그에 따라, 각 트랙은 힌트 트랙이 적합한 프로토콜(및, 적합하다면, 프로토콜 파라미터)의 선언을 포함할 수 있다. 이 트랙 모두는, 당연히, 파일에서의 기본 미디어 트랙으로부터의 미디어 데이터를 참조할 수 있다. 프로토콜 독립성 및 확장성(extensibility)을 위한 요구가 기술된 방식으로 충족될 수 있다.
본 발명의 일 실시예에서, 힌트 트랙이 미디어 트랙의 데이터 모두를 사용할 필요는 없다. 힌트 트랙은 대역폭 임계치에 도달하기 위해서 또는 다른 이유를 위해 (예를 들어, 일부 비디오 프레임을 생략하는 것에 의해) 데이터의 서브세트를 사용할 수도 있다. 동일 프로토콜을 위해 다수 힌트 트랙이 제공될 수도 있으므로, 동일한 기본 미디어 정보의 서브세트를 상이한 속도에서 차별화하는 단계가 제공될 수도 있다. 그에 따라, 본 발명은 종래 방법 및 장치에 비해 향상된 범위성을 제공할 수도 있다.
힌트 트랙 자체와 QuickTime 메타데이터는, 일 실시예에서, QuickTime 파일에 위치해야 하지만, 베이스 미디어는 QuickTime이 임포트(import)하고 참조할 수 있는 임의 파일 유형에 배치될 수 있다는 점이 중요하다. 본 발명의 일 실시예에서, 무비 파일에서의 메타데이터는, 미디어 데이터가 다른 파일에 위치한다고 선언하는 데이터 참조를 포함할 수 있다. 따라서, 샘플 테이블 오프셋 및 포인터는 이러한 '외부' 파일에서의 데이터를 지칭할 수 있다. 이와 같이, 본 발명의 일 실시예에 따르면, "au" 오디오 파일, "AVI" 오디오/비디오 파일, 및 MIDI 파일과 같은 기존의 레거시 포맷이 베이스 미디어 데이터의 복사 또는 리포맷을 요구하지 않으 면서, 스트리밍될 수 있다. 베이스 미디어 데이터는 기입되는 것이 아니라, 단지 별도 파일에서의 QuickTime 선언 및 힌트 정보에 의해 부가되는 것이므로, 베이스 미디어 데이터 또한 CD-ROM과 같은 읽기 전용 머신 판독가능 매체를 통해 제공될 수 있다.
본 발명의 일 실시예에서, 힌트 트랙은 오프-라인 연산(off-line computation)의 결과를 구체화하고, 통상적으로 서버에 패킷화 및, 필요하다면, 멀티플렉싱을 지원하기 위한 정보를 제공하도록 최적화된다.
예를 들어, RTP(IETF 표준의 실시간 프로토콜) 및 MPEG-2 전달을 위한 예시적 힌트가 부록 A 내지 부록 C에 도시되어 있다.
본 발명의 일 실시예에서는, 단일 파일이, 지나친 공간 오버헤드 없이, 다수 프로토콜 또는 동일 프로토콜의 다수의 서로 다른 파라미터화를 위한 힌트 트랙을 지원할 수 있다. 기존 프로토콜에 의존하는 시스템을 파괴하지 않으면서, 새로운 프로토콜과 그에 연관된 힌트 트랙이 설계될 수 있다. 이와 같이, 본 발명은, 적어도 일 실시예에서, 프로토콜-중립적이다.
QuickTime 파일 포맷에서는, 메타데이터를 업데이트하거나, 복사하고 부가함으로써, 무비에 트랙이 추가될 수도 있다. 미디어 데이터가 메타데이터와는 별도 파일에 위치하거나 최적화된 인터리브가 요구되지 않으면, 이것은 비교적 간단하고 효율적인 동작일 수 있다.
본 발명의 일 실시예에서는, 하나의 트랙만을 포함하며, 필요한 경우, 원래의 미디어 데이터를 참조할 수 있는 새로운 세트의 무비 메타데이터를 구축함으로 써, 트랙이 추출될 수도 있다.
예를 들어, 본 발명의 일 실시예에서는, 다른 오디오 트랙 세트에 대한 대안으로 마킹되는 새로운 오디오 트랙이 추가될 수 있다. 그것이 언어 코드(예를 들어, French 또는 Tagalog)에 의해서도 마킹된다면, 적합한 트랙은 프레젠테이션 시점에서 선택될 수도 있다.
SMPTE 타임 코드 트랙(time-code tracks)은, 수요가 발생할 때, 제시, 추가, 또는 삭제될 수 있는, 본 발명의 일 실시예에 따른 기초 스트림의 일례이다.
본 발명의 일 태양에 따르면, 힌트 트랙은, 기존 서버 또는 로컬 재생에 대해 호환성 이슈를 발생시키지 않으면서, 새로운 프로토콜을 위한 새로운 포맷의 개발을 가능하게 할 수 있다. 또한, 역방향 호환성을 유지하면서, 파일 포맷의 수명을 넘어 새로운 미디어 트랙이 추가될 수도 있다.
본 발명의 일 실시예에서, 확장성(extensibility)의 영역은 다음과 같은 것을 포함한다:
a) 현재의 QuickTime 파일 포맷에 의해 커버되지 않는 미디어 유형을 위해 정의될 수 있는 새로운 트랙 유형[예를 들어, 실험실용 계기의 눈금 표시(laboratory instrument readings)]
b) 정의될 수 있는 기존 트랙을 위한 새로운 코딩 유형(예를 들어, 비디오 또는 오디오 코덱). 그것의 코덱-특유 초기화 정보를 위한 명시적 준비가 존재한다.
c) 새로운 프로토콜 및 미디어 데이터 자체를 위해 공간 과부하를 초래하지 않으면서 하나 이상의 프로토콜을 위한 힌트 정보를 포함할 수 있는 파일에 대해 정의될 수 있는 새로운 힌트 트랙 유형.
읽기 전용 미디어의 기존 컨텐츠(예를 들어, CD-ROM, DVD 등에 미리 포장된 무비(prepackaged movies))가 본 발명과 함께 사용될 수 있다.
더 나아가, 본 발명의 일 태양에 따르면, 다양한 "외부" 파일 포맷이 사용될 수 있다. 본 발명의 일 실시예에서, 예를 들어, 기존 컨텐츠가 QuickTime 포맷이거나 임포트될 수 있다면, 기존 컨텐츠는 복사 또는 리포맷의 필요없이 편집되고 스트리밍될 수 있다.
본 발명의 일 실시예에서, 코덱이 대역폭의 범위성을 실현하기 위해 미디어 데이터의 스트라이핑(striping)을 지원한다면, 스트라이핑된 이 대역폭은 다수 스트림 트랙을 사용해 표현될 수 있다. 트랙 각각이 상이한 대역폭을 표현할 수도 있다. 트랙은 기본 미디어의 선택된 서브세트로 함께 그룹화될 수도 있다.
본 발명의 일 실시예에서, 프로토콜이 대역폭 범위성을 지원한다면, 힌트 트랙 자체는 프로토콜 데이터 유닛(힌트 트랙에서의 샘플) 각각에 대한 정보를 포함할 수 있다. 정보는, 프로토콜 데이터 유닛이 그것을 초과하여 네트워크로 전달되어야 하는 대역폭 임계치를 포함할 수도 있다. 이와 같이, 힌트 트랙은 이용 가능 대역폭을 높은 대역폭, 낮은 대역폭 등인 것으로 그리고/또는 데이터 전송을 위한 대역폭에 관한 다른 정보인 것으로 지시할 수 있다.
본 발명의 일 실시예에서, 프로토콜이 멀티플렉싱 프로토콜(예를 들어, MPEG-2 전달)이라면, 기초 스트림 트랙(elementary stream tracks)의 상이한 서브 세트를 사용하여 상이한 데이터 레이트를 실현하는 상이한 힌트 트랙이 구축될 수 있다. 따라서, 낮은 비트 레이트 전송에 대해 일부 트랙은 전체적으로 생략될 수도 있다.
본 발명의 일 실시예에서, 상이한 코덱을 사용해 베이스 데이터를 기록하는 것이 요구되면, 그 트랙은 대안의 그룹이 될 수 있고 하나만이 프레젠테이션을 위해 선택될 수 있다. 프레젠테이션을 위해 어떤 트랙을 사용할 것인지의 선택은 통상적으로 프로토콜-종속적이고 여기에서 설명된 힌트 트랙 접근 방법을 사용하여 실현될 수 있다.
본 발명의 일 실시예에서는, 암호화가 미디어 파일에 사전 적용될 수도 있다. 이 경우, 암호화된 데이터는 (a) 원래 미디어 데이터에 링크되는(그렇지 않고, 원래 미디어 데이터는 더 이상 그것이 불필요하다면 제거될 수도 있다) 새로운 기초 스트림(새로운 트랙)이나 (b) 힌트 트랙 자체에 저장될 수 있다. (b)의 경우, 힌트 트랙이 미암호화 기초 스트림으로부터는(elementary un-encrypted stream) 온 더 플라이로(on the fly) 어떠한 데이터도 추출하지 않는다. 그에 따라, 모든 미디어 데이터는 힌트 트랙 뿐만 아니라 스트리밍 패킷 프로토콜 데이터 유닛 정보에도 위치할 수 있는데, 미디어 데이터는 암호화에 의해 변환될 수 있기 때문이다.
임베디드 오브젝트 컨텐츠 정보의 일례로서, 전체 무비를 위한 그리고 개개 트랙을 위한 IETF 세션 설명 정보가 RTP 힌트 트랙을 위한 메타데이터에 사용자 원자(user atoms)로서 저장될 수도 있다.
본 발명의 일 실시예에서, 파일 포맷은 통상적으로 플레이 가능 포맷의 미디어 데이터와 스트리밍 정보 양자를 포함한다. 일 실시예에서는, 미디어 독립성, 프로토콜 독립성, 및 미디어를 로컬에서 제시할 수 있는 능력은 유지하면서, 비교적 낮은 과부하로 이 포맷으로부터 직접 스트리밍하는 것이 가능하다.
본 발명의 일 태양에 따르면, 힌트 트랙은 코덱, 타이밍 및 패킷화의 세부 지식을 오프라인 준비 프로세스로 추상화할 수도 있다. 그에 따라, 데이터 스트림을 발생시키기 위해 힌트 트랙을 따르는 것이 비교적 간단할 수 있고 스트리밍되는 미디어에 대한 특수한 지식을 요구하지 않을 수 있다. 이와 같이, 본 발명의 일 태양에 따른, 예를 들어, 데이터 컨텐츠의 세부 사항으로부터의 서버 분리가 제공될 수 있다.
본 발명의 일 실시예에서는, 예를 들어, 디스크에서의 네트워크 PDU를 논리적 디스크 경계에, 그것이 송신되어야하는 타임 시퀀스로, 레이아웃함으로써, 한 세트의 힌트 트랙이 스트리밍을 위해 직접적으로 최적화되는 파일을 구성하는데 사용될 수 있다. 그러한 파일은 더 이상 범용 프레젠테이션이 아닐 수도 있지만, 스트리밍될 수 있다. 일 실시예에서, 힌트 트랙에 의해 생성되는 패킷화된 파일은 저장될 수 있고, 예를 들어, 스트리밍을 위해 이후에 최적화될 수 있다.
본 발명의 일 실시예에서는, 외부 파일 포맷을 캡슐화함으로써, 미디어 데이터는, 여전히 QuickTime으로 게시되면서, 다른 포맷으로 유지될 수 있다. 예를 들어, 기존 포맷은 적당한 래퍼(wrapper)를 적용함으로써 새로운 미디어 데이터 파일로 직접적으로 캡슐화될 수 있거나, 레거시 포맷이 복사없이 스트리밍될 수 있게 하면서, 원래대로 유지되어 세그먼트로 또는 힌트 트랙에 의해 전체로서 나타내어질 수도 있다. 단일 무비는 다수 레거시 포맷으로부터 선택된 단편(pieces)을 포함할 수도 있다. 본 발명은 베이스 미디어 포맷을 제한하지 않는다.
일반적으로, 캡처, 저작 및 편집, 다운로드 및 스트리밍에 이르는 공통 포맷은 대체로 융통성(flexibility)을 제공할 것이다. 자료(material)는, 복사되거나 리포맷되지 않으면서, 사용 이후에 재작업되거나 다수 방법으로 사용될 수도 있다. 본 발명의 일 실시예에서는, 표준 편집기를 사용해, 힌트 트랙을 스트라이핑하는 것에 의해, 힌팅된 자료를 재작업 및 재사용할 수 있고, 그 다음, 편집 이후의 리-힌팅(re-hinting)이 완료된다.
미디어 파일이 로컬의 시청을 위해 다운로드되기를 원한다면, 동일한 베이스 미디어 데이터를 참조하는 별도 선언 파일의 스트리밍 메타데이터로써, 인터리브된 최적화 파일이 그 목적을 위해 구축될 수도 있다. 따라서, 다운로드는 스트리밍 정보를 포함하지 않을 수 있고, 그럼에도 불구하고, 미디어 데이터는 스트리밍 서버에서 단 한번 제시될 수 있다.
논리 구조를 물리 구조로부터 분리함으로써, 파일의 물리 구조는 애플리케이션(예를 들어, 편집, 로컬 시청, 스트리밍)에 따라 상이하게 최적화될 수 있다.
각각의 미디어 트랙에 대한 다수 힌트 트랙의 존재를 허용함으로써, 본 발명의 일 실시예에서, 파일은, 미디어의 다수 사본을 요구하지 않으면서, 다수 프로토콜을 통한 스트리밍에 의해 게시될 수 있다.
도 6은, 본 발명의 일 실시예에 따른, 미디어 데이터가 프로세싱될 수 있는 컴퓨터 시스템의 네트워크의 도면이다. 도 6에 도시된 바와 같이, 다수 클라이언트 컴퓨터 시스템이 인터넷(622)을 통해 서로 연결되며, 이들 중 하나 이상은 도 3을 참조하여 앞서 설명된 수신 시스템의 일 구현을 나타낼 수 있다. "인터넷"이라는 용어는 네트워크의 네트워크를 의미한다는 것을 알 수 있을 것이다. 그러한 네트워크는, 정보의 교환을 위해, TCP/IP, ATM, SNA, SDI 등과 같은, 다양한 프로토콜을 사용할 수 있다. 인터넷의 물리적 접속과 인터넷의 프로토콜 및 통신 절차는 당업자에게 널리 공지되어 있다. 인터넷(103)으로의 액세스는 통상적으로, ISP(Internet service provider;624) 및 ISP(626)와 같은, ISP에 의해 제공된다. 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620)과 같은, 클라이언트 시스템의 사용자는 일반적으로, ISP(624 및 626)와 같은, ISP를 통해 인터넷으로의 액세스를 획득한다. 인터넷으로의 액세스는, 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 및/또는 웹 서버 시스템(628)과 같은, 2 이상의 디지털 프로세싱 시스템 사이에서 정보(예를 들어, 이메일, 텍스트 파일, 미디어 파일 등)의 전달을 용이하게 할 수 있다. 예를 들어, 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 및/또는 웹 서버(628) 중 하나 이상은 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 및/또는 웹 서버(628) 중 다른 하나 이상에게로 미디어 데이터(예를 들어, 비디오 및 오디오, 비디오, 또는 오디오)를 제공할 수 있다. 그러한 것은 요청에 대한 응답으로 제공될 수 있다. 여기에서 설명되는 바와 같이, 그러한 미디어 데이터는 시스템(600)에서 힌트에 따라 전달될 수도 있다. 그러한 힌트가, 본 발명의 일 실시예에서는, 미디어 데이터의 특정 포맷 및/또는 특정 데이터 통신(예를 들 어, 네트워크) 프로토콜(들)에 따라 생성될 수도 있다.
웹 서버(628)는 통상적으로, WWW(World Wide Web)의 프로토콜과 같은, 하나 이상의 데이터 통신 프로토콜에 의해 동작하는 적어도 하나의 컴퓨터 시스템으로 이루어지고, 통상적으로 인터넷(622)에 연결된다. 선택적으로, 웹 서버(628)는 클라이언트 컴퓨터 시스템을 위해 인터넷 및/또는 다른 네트워크로의 액세스를 제공할 수 있는 ISP의 일부일 수 있다. 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620)은, 적합한 웹 브라우징 소프트웨어를 이용하여, 웹 서버(628)에 의해 제공될 수 있는, HTML 문서(예를 들어, 웹 페이지)와 같은 데이터에 각각 액세스할 수 있다. 그러한 데이터는, 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620)에 의해 제시될 수 있는, QuickTime 무비와 같은, 미디어를 제공할 수도 있다.
ISP(624)는 클라이언트 컴퓨터 시스템(602)의 일부로 생각될 수도 있는 모뎀 인터페이스(606)를 통해 클라이언트 컴퓨터 시스템(602)에 인터넷 접속성을 제공한다. 클라이언트 컴퓨터 시스템은, Macintosh 컴퓨터, "네트워크" 컴퓨터, 핸드헬드/휴대용 컴퓨터, 웹 TV 시스템, 또는 다른 유형의 디지털 프로세싱 시스템(예를 들어, 디지털 프로세싱 역량을 갖춘 셀룰러 전화기)과 같은, 전통적 컴퓨터 시스템일 수도 있다. 마찬가지로, ISP(626)는 클라이언트 컴퓨터 시스템(604, 618 및 620)에 인터넷 접속성을 제공하지만, 도 6에 묘사된 바와 같이, 그러한 접속성은, 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620)과 같은, 다양한 클라이언트 컴퓨터 시스템 사이에서 달라질 수도 있다. 예를 들어, 도 6에 도시된 바와 같이, 클라이언트 컴퓨터 시스템(604)은 모뎀 인터페이스(608)를 통해 ISP(626)에 커플링 되는 반면, 클라이언트 컴퓨터 시스템(618 및 620)은 LAN(Local Area Network)의 일부이다. 도 6에서, 모뎀(606 및 608)으로서 도시된 인터페이스(606 및 608)는, 각각, 아날로그 모뎀, ISDN 모뎀, 케이블 모뎀, 위성 전송 인터페이스(예를 들어, "Direct PC"), 무선 인터페이스, 또는 클라이언트 컴퓨터 시스템과 같은, 디지털 프로세싱 시스템을 다른 디지털 프로세싱 시스템에 커플링하기 위한 다른 인터페이스일 수 있다. 클라이언트 컴퓨터 시스템(618 및 620)은, 각각, 네트워크 인터페이스(614 및 616)를 통해 LAN 버스(612)에 커플링된다. 네트워크 인터페이스(614 및 616)는 이더넷형, ATM(Asynchronous Transfer Mode), 또는 네트워크 인터페이스의 다른 유형일 수 있다. LAN 버스는 또한, LAN에 방화벽 및 다른 인터넷 관련 서비스를 제공할 수 있는 게이트웨이 디지털 프로세싱 시스템(610)에 연결된다. 다음으로, 게이트웨이 디지털 프로세싱 시스템(610)은 클라이언트 컴퓨터 시스템(618 및 620)에 인터넷 접속성을 제공하기 위해 ISP(626)에 연결된다. 게이트웨이 디지털 프로세싱 시스템(610)은, 예를 들어, 전통적인 서버 컴퓨터 시스템을 포함할 수 있다. 마찬가지로, 웹 서버(628)는, 예를 들어, 전통적인 서버 컴퓨터 시스템을 포함할 수 있다.
시스템(600)은 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 및/또는 웹 서버(628) 중 하나 이상이 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 및/또는 웹 서버(628) 중 다른 하나 이상에게로 미디어 데이터(예를 들어, 비디오 및 오디오, 비디오, 또는 오디오)를 제공할 수 있게 한다. 그러한 데이터는, 예를 들어, 클라이언트 컴퓨터 시스템(602, 604, 618, 및 620) 중 하나 이상일 수 있는 수신 시스템에 의한 요청에 대한 응답으로서 제공될 수도 있다. 여기에서 설명되는 바와 같이, 그러한 미디어 데이터는 시스템(600)에서 힌트 또는 힌트 트랙에 따라 전달될 수 있다. 그러한 힌트는, 본 발명의 일 실시예에서, 미디어 데이터의 특정 포맷 및/또는, 본 발명의 일 태양에 따른, 미디어 데이터의 패킷화를 허용하기 위한 특정 데이터 통신(예를 들어, 네트워크) 프로토콜(들)에 따라 생성될 수도 있다.
도 7은 본 발명의 일 실시예에 따라 사용될 수 있는 디지털 프로세싱 시스템의 블록도이다. 예를 들어, 도 7에 도시된 디지털 프로세싱 시스템(650)은 클라이언트 컴퓨터 시스템, 웹 서버 시스템, 전통적인 서버 시스템 등으로 사용될 수 있다. 더 나아가, 디지털 프로세싱 시스템(650)은, ISP(624 또는 626)와 같은, ISP의 하나 이상의 기능을 수행하는데 사용될 수도 있다. 디지털 프로세싱 시스템(650)은 모뎀 또는 네트워크 인터페이스(668)를 통해 외부 시스템에게로 인터페이스될 수도 있다. 모뎀 또는 네트워크 인터페이스(668)는 디지털 프로세싱 시스템(650)의 일부로서 생각될 수도 있다는 것을 알 수 있을 것이다. 모뎀 또는 네트워크 인터페이스(668)는 아날로그 모뎀, ISDN 모뎀, 케이블 모뎀, 토큰 링 인터페이스, 위성 전송 인터페이스, 무선 인터페이스, 또는 2 이상의 디지털 프로세싱 시스템 사이에서 데이터 통신 링크를 제공하기 위한 다른 인터페이스(들)일 수 있다.
디지털 프로세싱 시스템(650)은, 프로세서(652)를 포함하며, 이는 하나 이상의 프로세서를 표현할 수 있고, Motorola PowerPC 프로세서, Intel Pentium(또는 x86) 프로세서 등과 같은, 그러한 프로세서 중 하나 이상의 전통적인 유형을 포함 할 수 있다. 메모리(155)는 버스(656)에 의해 프로세서(652)에 연결된다. 메모리(155)는 DRAM(dynamic random access memory)일 수 있고 그리고/또는 SRAM(static RAM)을 포함할 수도 있다. 프로세서는 또한, 메모리(155)의 일부로서 또는 메모리(155)와는 별개로 생각될 수 있는 기타 유형의 저장 영역/메모리(예를 들어, 캐시, 플래시 메모리, 디스크 등)에 연결될 수 있다.
더 나아가, 버스(656)는 프로세서(652)를 디스플레이 제어기(658), 대용량 메모리(662), 모뎀 또는 네트워크 인터페이스(668), 및 입/출력(I/O) 제어기(664)에 연결한다. 대용량 메모리(662)는 자기, 광, 광-자기, 테이프, 및/또는 정보를 저장하기 위한 머신-판독 가능 매체/디바이스의 다른 유형을 표현할 수 있다. 예를 들어, 대용량 메모리(662)는 하드 디스크, 판독 전용 또는 기입 가능 광 CD 등을 표현할 수 있다. 디스플레이 제어기(658)는, CRT(cathode ray tube) 디스플레이, LCD(liquid crystal display), 플라즈마 디스플레이, 또는 기타 유형의 디스플레이를 표현할 수 있는 디스플레이(660)를 전통적인 방식으로 제어한다. I/O 제어기(664)는 하나 이상의 키보드, 마우스/트랙볼 또는 다른 포인팅 디바이스, 자기 및/또는 광 디스크 드라이브, 프린터, 스캐너, 디지털 카메라, 마이크로폰 등을 포함할 수 있는 I/O 디바이스(들)(666)를 제어한다.
디지털 프로세싱 시스템(650)은, 상이한 다수 구성 및 아키텍처를 가질 수 있고 본 발명에 의해 이용될 수 있는, 시스템의 한가지 일례를 표현할 뿐이다. 예를 들어, Macintosh 및 Intel 시스템은 대체로, 주변 장치 버스, 전용 캐시 버스 등과 같은, 다수 버스를 가진다. 한편, 본 발명의 디지털 프로세싱 디바이스로 사 용될 수도 있는 네트워크 컴퓨터는, 예를 들어, 하드 디스크 또는 다른 대용량 저장 디바이스를 포함하지 않을 수도 있지만, 프로세서(652)에 의해 프로세싱될 루틴 및/또는 데이터를, 모뎀 또는 인터페이스(668)와 같은, 네트워크 접속으로부터 수신할 수 있다. 마찬가지로, 업계에 공지되어 있는 웹 TV 시스템이 본 발명의 디지털 프로세싱 시스템인 것으로 생각될 수도 있지만, 그러한 시스템은, I/O 디바이스(들)(666)를 참조하여 상술된 것과 같은, 하나 이상의 I/O 디바이스를 포함하지 않을 수도 있다. 추가적으로, 셀룰러 전화 및/또는 페이징 기능을 이용할 수 있는 휴대용 통신 및 데이터 프로세싱 시스템이 본 발명에 의해 사용될 수 있는 디지털 프로세싱 시스템으로 생각될 수도 있다.
도 7에 도시된 시스템(650)에서, 대용량 메모리(662)(및/또는 메모리(654))는 본 발명에 따라(예를 들어, 힌트에 의해) 프로세싱될 수 있는 미디어(예를 들어, 비디오, 오디오, 무비 등)를 저장할 수 있다. 다른 방법으로, 미디어 데이터는, 예를 들어, 모뎀 또는 네트워크 인터페이스(668)를 통해 디지털 프로세싱 시스템(650)에 의해 수신될 수 있고, 디스플레이(660) 및/또는 I/O 디바이스(들)(666)에 의해 저장 및/또는 제시될 수도 있다. 일 실시예에서, 패킷화된 미디어 데이터는 힌트 트랙에 따라, LAN 및/또는 인터넷과 같은, 데이터 통신 네트워크를 통해 전송될 수 있다. 한편, 프로세서(652)는, 프레젠테이션 또는 패킷화를 위한 미디어(예를 들어, 미리 포장된 무비, 오디오 파일, 비디오 파일 등)를 힌트 트랙에 따라 프로세싱하기 위해, 하나 이상의 루틴을 실행하여, 하나 이상의 힌트 트랙을 갖춘 파일을 사용하거나, 다른 방법으로는, 하나 이상의 힌트 트랙을 생성할 수 있 다. 그러한 루틴은 대용량 메모리(662), 메모리(664), 및/또는 디지털 프로세싱 시스템(650)에 의해 액세스 가능한 다른 머신-판독 가능 매체에 저장될 수 있다. 일 실시예에서, 디지털 프로세싱 시스템(650)은 거기에 힌트 트랙이 임베딩되어 있는 미디어 데이터를 프로세싱할 수도 있다. 마찬가지로, 임베딩된 그러한 미디어 데이터는 대용량 메모리(662), 메모리(664), 및/또는 디지털 프로세싱 시스템(650)에 의해 액세스 가능한 다른 머신-판독 가능 매체에 저장될 수도 있다.
도 8은, 본 발명의 일 실시예에 따른, 힌트를 이용해 미디어 데이터를 전달하는 시스템의 블록도이다. 도 8에 도시된 시스템(680)은, 데이터 통신 링크(686)를 통해, 서버(694)에 연결된 클라이언트 데이터 프로세싱 시스템(682)으로서 묘사되는 수신 시스템을 포함한다. 서버(694) 및/또는 클라이언트 데이터 프로세싱 시스템은, 예를 들어, 도 6 및 도 7을 참조하여 설명된 디바이스/시스템 중 하나 또는 그것의 조합을 표현한다.
서버(694)는 힌트 생성 및 프로세싱 유닛(688), 미디어 프로세싱 유닛(690), 및 데이터 통신 유닛(692)을 포함하는데, 이들 각각은 하드-와이어드 회로(hard-wired circuitry), 머신-실행 가능 명령어, 또는 그 조합을 포함할 수 있다. 더 나아가, 그러한 하드-와이어드 회로 및/또는 머신-실행 가능 명령어의 적어도 일부는 힌트 생성 및 프로세싱 유닛(688), 미디어 프로세싱 유닛(690), 및 데이터 통신 유닛(692)의 조합 사이에서 공유될 수 있다. 일 실시예에서는, 적어도 하나의 프로세서에 연결되며 적합한 루틴 및/또는 데이터가 저장되어 있는, 적어도 하나의 저장 영역/메모리(예를 들어, 머신-판독 가능 매체)가 이용되어, 힌트 생성 및 프 로세싱 유닛(688), 미디어 프로세싱 유닛(690), 및 데이터 통신 유닛(692) 중 하나 또는 그 조합을, 적어도 일부 구현한다.
일 실시예에서, 힌트 생성 및 프로세싱 유닛(688)은 미디어 프로세싱 유닛(690)에 의해 프로세싱되는 미디어 데이터의 패킷화를 위한 힌트를 생성하고 저장한다. 상술된 바와 같이, 힌트는, 미디어 파일에 관련하여, 별도 파일로서 발생되고 저장되거나, 미디어 데이터와 함께 임베딩될 수 있다. 하나 이상의 미디어 포맷이 프로세싱되어야 한다면, 적합한 포맷이 힌트 생성 및 프로세싱 유닛(688)에 의해 고려되어 힌트를 발생시킬 수 있다. 미디어 포맷에 관한 정보는, 이 또한 미디어 데이터(예를 들어, 비디오, 오디오, 또는 비디오 및 오디오 등의 미디어 파일)를 제공할 수 있는 미디어 프로세싱 유닛(690)에 의해 제공될 수 있다. 마찬가지로, 데이터 통신 유닛(692)은 힌트에 따라 패킷화된 그러한 미디어 데이터의 데이터 통신 링크(686)를 통한 교환을 위해 하나 이상의 데이터 통신(예를 들어, 네트워크) 프로토콜을 제공할 수 있다. 그에 따라, 힌트 생성 및 프로세싱 유닛은, 미디어 프로세싱 유닛(690)에 의해 제공되는 미디어 포맷 정보 및 데이터 통신 유닛(692)에 의해 제공되는 데이터 통신 프로토콜 정보에 기초해, 클라이언트 데이터 프로세싱 시스템(682)과 같은 수신 디지털 프로세싱 시스템으로의 전달을 위한 적합한 힌트와 미디어 및/또는 힌트의 패킷화를 결정할 수 있다. 일 실시예에서, 미디어 및 힌트의 스트리밍은 QuickTime 포맷에 따라 이루어진다.
데이터 통신 링크(686)를 통해 수신된 미디어 데이터 및 힌트 패킷에 대한 응답으로, 클라이언트 데이터 프로세싱 시스템(682)은 미디어 데이터에 의해 표현 되는 미디어 오브젝트를 제시할 수 있다. 그러한 프레젠테이션은, 상술된 바와 같이, 임시적으로(ephemerally) 수행될 수 있다. 본 발명의 일 실시예에서, 미디어 데이터는 선택적으로 클라이언트 데이터 프로세싱 시스템(682)에 의해 저장되고, 예를 들어, 이후에, 클라이언트 데이터 프로세싱 시스템(682)에 의한 프레젠테이션 및/또는 전송을 위해 리어셈블될 수 있다.
도 9는, 본 발명의 일 실시예에 따른, 힌트를 이용해 미디어 데이터를 전달하는 시스템의 블록도이다. 구체적으로, 도 9는 본 발명의 일 실시예를 도시하는데, 여기에서 발생기(generator)라고 지칭되는 별도의 디지털 프로세싱 시스템이 힌트(또는 힌트 트랙)를 생성하여, 클라이언트 컴퓨터 시스템과 같은 다른 시스템으로 전달하기 위해 힌트를 사용하여 미디어 데이터를 패킷화하는, 서버와 같은 또 다른 시스템에게로 제공할 수 있다. 도 9에서는, 데이터 통신 링크(686)를 통해 클라이언트 데이터 프로세싱 시스템(682)과 데이터를 교환할 수 있는 서버(700)를 포함하는 시스템(696)이 도시된다. 그러나, 도 9에 도시된 실시예에서, 서버(700)는 힌트를 발생시키지 않는다. 오히려, 데이터 통신 링크(708)에 의해 서버(700)에 연결되는 발생기(710)가 미디어 데이터를 패킷화하는데 사용되는 힌트를 발생시키는 힌트 생성 유닛(712)을 포함한다.
일 실시예에서, 시스템(696)의 동작은 다음과 같은데: 서버(700)가 발생기(710)에게, 미디어 데이터를 포함하고 있는 하나 이상의 미디어 파일을 위한 힌트를 발생시킬 것을 요청한다. 예를 들어, 서버(700) 내에서 미디어 파일은 머신-판독가능 매체 상에 저장될 수 있다. 요청은 미디어 파일의 포맷 및/또는 미디어 데이터 및/또는 다른 데이터의 전송을 위한 데이터 통신 프로토콜을 지시하는 정보를 포함할 수 있다. 데이터 통신 프로토콜은, 본 발명의 일 실시예에서, 서버(700)와 클라이언트 데이터 프로세싱 시스템(682) 사이에서 미디어 및/또는 다른 데이터의 교환을 용이하게 하기 위한 특별한 물리적 특징 및 논리적 특징을 갖춘 네트워크 접속과 연관될 수 있는 데이터 통신 링크(686)에 관련될 수 있다. 요청에 대한 응답으로, 힌트 생성 유닛(712)은, 시간 관련 힌트 트랙과 연관될 수 있는 적합한 힌트를 발생시키고 힌트를 서버(700)에게로 제공한다. 데이터 통신 링크(708)를 통해 발생기(710)로부터 수신된 힌트에 대한 응답으로, 서버(700), 및 특히, 힌트 프로세싱 유닛(702)은 힌트를 사용해 클라이언트 데이터 프로세싱 시스템(682)으로의 전송을 위한 미디어 데이터를 패킷화한다.
데이터 통신 링크(686)를 통해 수신된 미디어 데이터 및 힌트 패킷에 대한 응답으로, 클라이언트 데이터 프로세싱 시스템(682)은 미디어 데이터에 의해 표현되는 미디어 오브젝트를 제시할 수 있다. 그러한 프레젠테이션은, 상술된 바와 같이, 임시적으로 수행될 수 있다. 본 발명의 일 실시예에서, 미디어 데이터는 선택적으로 클라이언트 데이터 프로세싱 시스템(682)에 의해 저장되고, 예를 들어, 나중에, 클라이언트 데이터 프로세싱 시스템(682)에 의한 프레젠테이션 및/또는 전송을 위해 리어셈블될 수 있다.
도 10은, 본 발명의 일 실시예에 따른, 미디어 데이터 전송을 제공하기 위해 힌트를 발생시키기 위한 방법을 예시하는 흐름도이다. 하나 이상의 포맷이 사용될 것이라면, 단계 720에서, 전송될 미디어 데이터에 대한 미디어 포맷이 판정된다. 1개 포맷만이 사용된다면, 단계 720은 수행되지 않을 수 있다. 단계 722에서는, 이번에도, 하나 이상(프로토콜)이 사용될 수 있다는 가정하에, 적합한 데이터 통신 프로토콜(들)이 결정된다. 단계 724에서는, (그것 중 하나 또는 양자가 선택/구성되었을 수 있는) 미디어 포맷 및 데이터 통신 프로토콜(들)에 기초해, 미디어 데이터 전송에 관련된 힌트(예를 들어, 힌트 트랙)가 생성되고 저장된다.
선택적인 단계 726에서, 힌트는 다른 디지털 프로세싱 시스템에게로 전송될 수 있다. 본 발명의 일 실시예에서, 예를 들어, 도 10의 방법은, 적어도 부분적으로, 하나의 디지털 프로세싱 시스템(예를 들어, 서버)에 의해 배타적으로 수행될 수도 있다. 다른 실시예에서, 도 10의 방법은, 적어도 부분적으로, 2 이상의 디지털 프로세싱 시스템에 의해 수행될 수 있다. 예를 들어, 미디어 데이터의 속성이 서버 또는 다른 시스템에 의해, 발생기와 같은, 다른 디지털 프로세싱 시스템에게로 제공될 수도 있다. 응답으로, 발생기는, 속성에 기초해, 서버에 저장될 수 있는 적합한 미디어 포맷, 데이터 통신 프로토콜(들), 및 미디어 데이터의 패킷화를 위한 힌트를 결정할 수 있다. 다른 방법으로, 서버는 적합한 미디어 포맷 및 프로토콜(들)을 발생기에게로 제공할 수 있고, 그 다음, 발생기는 힌트를 발생시킬 수 있다. 발생기는 힌트를, 힌트에 따라 미디어 데이터를 패킷화할 수 있는 서버 또는 다른 디지털 프로세싱 시스템에게로 전송할 수 있다.
도 11은, 본 발명의 일 실시예에 따른, 수신 시스템에 의해 수신된 미디어 데이터를 힌트에 따라 프로세싱하는 방법을 예시하는 흐름도이다. 단계 730에서, 힌트 또는 힌트 트랙에 따라 수신 시스템에게로 전송된 미디어 데이터가 수신 시스 템에 의해 수신된다. 일 실시예에서, 수신 시스템은 패킷화된 미디어 데이터 뿐만 아니라 패킷화된 힌트 트랙을 수신할 수 있다. 힌트 트랙은, 본 발명의 일 실시예에서, 미디어 데이터의 적어도 일부와 연관될 수 있다. 그러한 데이터는 수신 시스템에 의해 형성될 수 있는 요청에 대한 응답으로 수신 시스템에 의해 수신될 수 있다. 예를 들어, 일 실시예에서, 수신 시스템은 클라이언트 컴퓨터 시스템일 수 있고 요청은 미디어 데이터에 대해 서버 또는 다른 디지털 프로세싱 시스템으로 이루어질 수 있다. 응답으로, 서버는 미디어 데이터를 패킷화하기 위한 힌트를 발생시킬 수 있고, (또는 별도의 디지털 프로세싱 시스템에 의해 그것을 위해 발생된) 힌트를 포함할 수 있는 패킷화된 미디어 데이터를 수신 시스템에 전송할 수 있다.
단계 732에서는, 수신 시스템에 의해 수신된 미디어 데이터에 의해 표현되는 미디어 오브젝트가 수신 시스템에 의해 제시된다. 예를 들어, 미디어 데이터는, 수신 시스템에 의해, 예를 들어, 디스플레이 및 스피커(들) 상에서 "제시되는(presented)" 비디오, 오디오, 또는 그 조합을 포함할 수 있다. 앞서 언급된 바와 같이, 미디어 데이터는 QuickTime 무비와 연관될 수 있다.
선택적으로, 단계 734에서, 힌트를 포함할 수 있는 미디어 데이터가 수신 시스템에 의해 미디어 파일(들)로서 저장될 수 있다. 그에 따라, 본 발명의 다른 실시예에서, 단계 732는 미디어 데이터가 수신될 때 수행되지 않거나, 단계 734 이전에, 또는 단계 734 이후에, 또는 단계 734와 병렬로 수행될 수도 있다.
단계 734에서는, 저장된 미디어 파일이 선택적으로 리어셈블 및/또는 제시될 수 있다. 그에 따라, 단계 732는 단계 734 이후에 수행될 수도 있다.
도 12는, 본 발명의 일 실시예에 따른, 발생기와 같은, 디지털 프로세싱 시스템에 의해 액세스되는 머신 판독가능 저장 매체의 일례이다. 도 12에 도시되고 도 12를 참조하여 다음에서 설명되는 구성 요소를 저장하는 실제 메모리는, (예를 들어, 자기, 광, 광-자기 등일 수 있는) 하나 이상의 디스크, 및/또는 도 7을 참조하여 상술된 메모리(654) 및/또는 대용량 메모리(662)와 같은, 하나 또는 수개 구성 요소일 수 있다는 것을 알 수 있을 것이다. 더 나아가, 도 12에 도시된 머신 판독가능 저장 매체와 연관되는 발생기가 네트워크 컴퓨터인 일 실시예에서, 머신 판독가능 저장 매체의 구성 요소 중 하나 이상은 다른 디지털 프로세싱 시스템에 저장되어 발생기로 다운로드될 수 있다. 더 나아가, 머신 판독가능 저장 매체를 참조하여 설명된 구성 요소가, 일부 시점에서는, 비휘발성 대용량 메모리(예를 들어, 하드 디스크)에 저장될 수도 있다. 반대로, 다른 시점에서는, 머신 저장 매체의 구성 요소가, DRAM, SRAM, 디스크 등과 같은, 상이한 저장 영역 사이에 분산될 수도 있다.
도 12는 머신 판독가능 저장 매체(740)를 나타낸다. 일 실시예에서, 머신 판독가능 저장 매체는, 본 발명의 하나 이상의 방법에 따라, 적어도 부분적으로, 힌트 또는 힌트 트랙을 발생시키는 디지털 프로세싱 시스템, 즉, 발생기에 의해 이용된다. 발생기는, 도 8을 참조하여 설명된 바와 같이, 미디어 데이터를 힌트 트랙에 따라 전송하는 디지털 프로세싱 시스템으로 통합될 수 있고, 또는 도 9를 참조하여 설명된 바와 같이, 힌트를 생성하여, 미디어 데이터를 패킷화하고 전송하는데 힌트를 이용하는, 서버와 같은 다른 디지털 프로세싱 시스템에 힌트를 제공하는 디지털 프로세싱 시스템일 수도 있다.
도 12에 도시된 바와 같이, 머신 판독가능 저장 매체(740)는 통상적으로 다수 구성 요소를 포함한다. 예를 들어, 머신 판독가능 저장 매체(740)는, 발생기 오퍼레이팅 시스템(OS)(742)에 의해 묘사되는 바와 같이, 발생기에 오퍼레이팅 시스템 기능성을 제공하기 위한 소프트웨어를 포함한다. 네트워크 전송 루틴(들)(748)은, 발생기가 데이터 통신 링크를 통해 데이터를 전송하고 수신하게 하기 위한, 루틴, 프로토콜 등과 같은, 데이터 통신 기능성을 제공한다.
또한, 머신 판독가능 저장 매체(740)는 미디어 전송과 연관된 힌트를 생성하기 위한 루틴 및 데이터를 포함한다. 그에 따라, 머신 판독가능 저장 매체(740)는 선택적으로, 힌트 생성 루틴(들)(744)에 의한 힌트의 생성을 위해 필요할 수 있는 하나 이상의 데이터 통신 프로토콜 및 미디어 포맷에 관한 정보를 제공할 수 있는 정보(750)를 포함할 수 있다. 예를 들어, 정보(750)는 QuickTime 무비, RTP, MPEG 등에 관한 정보를 포함할 수 있다. 그러나, 그러한 정보는, 적어도 부분적으로, 힌트 생성 루틴(744)에 통합될 수도 있고 그리고/또는 원격 디지털 프로세싱 시스템에 의해 발생기에 제공될 수 있다.
힌트 생성 루틴(들)(744)에 의해 생성된 힌트는 생성된 힌트(746;created hints)로서 저장될 수 있고 그리고/또는 다른 곳에(예를 들어, 서버일 수도 있는 원격 디지털 프로세싱 디바이스에) 저장/전송될 수도 있다. 힌트는, 시간 관련적일 수 있는 미디어 데이터(예를 들어, 비디오, 오디오, 비디오 및 오디오 등)의 패킷화 및 전송을 위한 시간 관련적인 힌트 트랙이다.
머신 판독가능 저장 매체(740)가 발생기를 참조하여 설명되지만, 매체(740)는, 적어도 부분적으로, 디지털 프로세싱 시스템, 데이터 저장 미디어 등의 다수 유형 중 일부일 수도 있다. 예를 들어, 머신 판독가능 저장 매체(740)는, 적어도 부분적으로, 서버 또는 다른 디지털 프로세싱 시스템의 일부로서 포함될 수도 있다. 더 나아가, 머신 판독가능 저장 매체(740)는, 적어도 부분적으로, 하나 이상의 디스크 또는 다른 머신 판독가능 미디어에 소프트웨어 유틸리티의 일부로서 포함될 수도 있다.
도 13은, 본 발명의 일 실시예에 따른, 서버와 같은, 디지털 프로세싱 시스템에 의해 액세스될 수 있는 머신 판독가능 저장 매체의 일례이다. 도 13에 도시되고 도 13을 참조하여 다음에서 설명되는 구성 요소를 저장하는 실제 메모리는, (예를 들어, 자기, 광, 광-자기 등일 수 있는) 하나 이상의 디스크, 및/또는 도 7을 참조하여 상술된 메모리(654) 및/또는 대용량 메모리(662)와 같은, 하나 또는 수개 구성 요소일 수 있다는 것을 알 수 있을 것이다. 더 나아가, 도 13에 도시된 머신 판독가능 저장 매체와 연관되는 서버가 네트워크 컴퓨터인 일 실시예에서, 머신 판독가능 저장 매체의 구성 요소 중 하나 이상은 다른 디지털 프로세싱 시스템에 저장되어 서버로 다운로드될 수도 있다. 더 나아가, 머신 판독가능 저장 매체를 참조하여 설명된 구성 요소가, 일부 시점에서는, 비휘발성 대용량 메모리(예를 들어, 하드 디스크)에 저장될 수도 있다. 반대로, 다른 시점에서는, 머신 저장 매체의 구성 요소가, DRAM, SRAM, 디스크 등과 같은, 상이한 저장 영역 사이에 분산될 수도 있다.
도 13은 머신 판독가능 저장 매체(760)를 나타낸다. 일 실시예에서, 머신 판독가능 저장 매체는, 본 발명의 하나 이상의 방법(들)에 따라, 적어도 부분적으로, 데이터 통신 링크를 통한 전송을 위해 미디어 데이터를 패킷화하는데 이용된다. 머신 판독가능 저장 매체(760)는, 도 8을 참조하여 설명된 서버(694)와 같은 서버와 연관되어, 힌트 트랙을 생성하고 힌트 트랙에 따라 미디어 데이터를 전송하기 위한 루틴을 포함할 수 있다. 다른 실시예에서, 머신 판독가능 저장 매체(760)는, 도 9를 참조하여 설명된 서버(700)와 같은 디지털 프로세싱 시스템과 연관될 수 있고, 이 경우, 발생기와 같은 디지털 프로세싱 시스템은 힌트를 생성하기 위한 루틴을 포함하고, 서버는, 머신 판독가능 저장 매체(760)에 의해 제공되는 루틴에 의해 프로세싱되는 힌트를 사용해, 미디어 데이터를 패킷화하고 전송할 수 있다.
머신 판독가능 저장 매체(760)는 다수 구성 요소를 포함한다. 예를 들어, 머신 판독가능 저장 매체(760)는, 서버 오퍼레이팅 시스템(OS)(762)에 의해 묘사되는 바와 같이, 서버에게로 오퍼레이팅 시스템 기능성을 제공하기 위한 소프트웨어를 포함한다. 네트워크 전송 루틴(들)(768)은, 서버가 데이터 통신 링크를 통해 데이터를 전송하고 수신하게 하기 위한, 루틴, 프로토콜 등과 같은 데이터 통신 기능성을 제공한다.
또한, 머신 판독가능 저장 매체(760)는, 힌트에 기초해, 시간-관련적일 수 있는 미디어 데이터를 패킷화하기 위한 미디어 패킷화 루틴(770)을 포함하는데, 이 또한 패킷화될 수 있다. 따라서, 머신 판독가능 저장 매체(760)는 (예를 들어, QuickTime 무비 또는 다른 미디어 트랙일 수 있는) 미디어 데이터 및 힌트(예를 들 어, 힌트 트랙)를 각각 저장하기 위한 미디어 데이터 저장 영역(764) 및 힌트 저장 영역(766)을 포함한다. 힌트는, 통상적으로 시간 관련적일 수 있는 미디어 데이터(예를 들어, 비디오, 오디오, 비디오 및 오디오 등)의 패킷화 및 전송을 위한 시간 관련적인 힌트 트랙을 포함할 수 있다. 일 실시예에서, 힌트 트랙은 미디어 데이터 패킷과는 별도로 패킷화된다. 일 실시예에서, 힌트는 별도 미디어 파일에 존재할 수 있는 미디어 데이터(예를 들어, 특별한 패킷(들))를 식별하는 포인터 정보를 포함한다.
도 14는, 본 발명의 일 실시예에 따른, 수신 시스템 또는 다른 디지털 프로세싱 시스템과 같은, 디지털 프로세싱 시스템에 의해 액세스될 수 있는 머신 판독가능 저장 매체의 일례이다. 도 14에 도시되고 도 14를 참조하여 다음에서 설명되는 구성 요소를 저장하는 실제 메모리는, (예를 들어, 자기, 광, 광-자기 등일 수 있는) 하나 이상의 디스크, 및/또는 도 7을 참조하여 상술된 메모리(654) 및/또는 대용량 메모리(662)와 같은, 하나 또는 수개 구성 요소일 수 있다는 것을 알 수 있을 것이다. 더 나아가, 도 13에 도시된 머신 판독가능 저장 매체와 연관되는 수신 시스템이 네트워크 컴퓨터인 일 실시예에서, 머신 판독가능 저장 매체의 구성 요소 중 하나 이상은 다른 디지털 프로세싱 시스템에 저장되어 수신 시스템으로 다운로드될 수 있다. 더 나아가, 머신 판독가능 저장 매체를 참조하여 설명된 구성 요소가, 일부 시점에서는, 비휘발성 대용량 메모리(예를 들어, 하드 디스크)에 저장될 수도 있다. 반대로, 다른 시점에서는, 머신 저장 매체의 구성 요소가, DRAM, SRAM, 디스크 등과 같은, 상이한 저장 영역 사이에 분산될 수도 있다.
도 14는 머신 판독가능 저장 매체(780)를 나타낸다. 일 실시예에서, 머신 판독가능 저장 매체는, 적어도 부분적으로, 본 발명의 하나 이상의 방법(들)에 따라, 패킷화된 미디어 데이터를 프로세싱하는데 이용된다. 머신 판독가능 저장 매체(780)는, 도 8 및 도 9를 참조하여 설명된 클라이언트 데이터 프로세싱 시스템(682)과 같은, 수신 시스템과 연관되어, 힌트에 따라 전송/수신된 미디어 데이터를 제시하기 위한 루틴을 포함할 수 있다. 다른 방법으로, 머신 판독가능 저장 매체(780)는 힌트(예를 들어, 힌트 트랙)가 임베딩되어 있는 미디어 데이터를 포함할 수 있다. 임베딩된 그러한 미디어 데이터는, 머신 판독가능 저장 매체(780)와 같은, 미리 패키징되거나 머신 판독가능 저장 매체에 저장된 루틴에 의해 생성될 수 있다.
머신 판독가능 저장 매체(780)는 다수 구성 요소를 포함할 수 있다. 예를 들어, 머신 판독가능 저장 매체(780)는, 서버 오퍼레이팅 시스템(OS)(772)에 의해 묘사되는 바와 같이, 수신 시스템에게로 오퍼레이팅 시스템 기능성을 제공하기 위한 소프트웨어를 포함한다. 네트워크 전송 루틴(들)(782)은, 서버가 데이터 통신 링크를 통해 데이터를 전송하고 수신하게 하기 위한, 루틴, 프로토콜 등과 같은, 데이터 통신 기능성을 제공한다.
또한, 머신 판독가능 저장 매체(780)는, 힌트에 따라 패킷화된 미디어 데이터를 제시하기 위한 미디어 프레젠테이션 루틴(778)을 포함한다. 그에 따라, 머신 판독가능 저장 매체(780) 및, 특히, 미디어 프레젠테이션 루틴(778)은 오디오 및/또는 비디오 데이터의 압축 해제를 위한 루틴, 비디오의 디스플레이를 위한 루틴, 및/또는 오디오를 재생하기 위한 루틴 등을 포함할 수 있다. 더 나아가, 미디어 프레젠테이션 루틴(778)은 통상적으로, 미디어 데이터와 연관되는 힌트의 핸들링(handling)을 제공한다. 일 실시예에서, 힌트는, 미디어가 제시될 때, 단순히 무시된다.
선택적으로, 머신 판독가능 저장 매체(780)는 힌트에 따라 미디어 데이터(774)로서 패킷화된 미디어 데이터를 저장할 수 있고, (예를 들어, 제시되기 위해, 전송되기 위해, 기타를 위해) 저장된 미디어 데이터를 리어셈블하기 위한 미디어 데이터 리어셈블리 루틴(776;media data reassembly routine)을 포함할 수 있다.
도 15는, 본 발명의 일 실시예에 따른, 미디어 및 힌트 정보가 저장/전달되어 있는 데이터 저장 장치 및/또는 통신 매체의 도면이다. 본 발명에 따라 패킷화된 미디어 데이터 패킷(804) 및 힌트 패킷(806)이 저장 또는 전달될 수 있는 다양한 유형의 전달 및/또는 저장 매체를 표현하는 데이터 저장 장치 및/또는 통신 매체(매체)(800)가 도시된다. 예를 들어, 매체(800)는, 도 7을 참조하여 상술된, 대용량 메모리(662) 및/또는 메모리(654)를 표현할 수도 있다. 또한, 매체(800)는, 도 6에 도시된 LAN 버스(612) 또는 미디어 및/또는 기타 정보를 표현하는 데이터/신호를 전달하기 위한 데이터 통신 링크(686)와 같은, 통신 매체도 표현할 수 있다.
힌트 패킷(806) 및 미디어 패킷(804)은 1개 패킷으로 통합될 수 있거나, 도 15에 묘사된 바와 같이, 별도로 저장 및/또는 전달될 수도 있다. 더 나아가, 힌트 패킷(806) 및 미디어 패킷(804)은, 여기에서 설명된 포맷 또는 다른 미디어 포맷, 네트워크 프로토콜, 및/또는 디지털 프로세싱 디바이스 아키텍처와 연관된 포맷과 같은, 수개 유형의 포맷을 구체화할 수 있다.
추출기 트랙(Extractor Tracks)
패킷 구축 명령어를 포함하는 이외에, 힌트 트랙은 스케일러블 코딩된 미디어(scalable coded media)에서 이용 가능한 다수의 미디어 스트림을 지시하는데 사용될 수도 있다. 스케일러블 코딩된 미디어는, 동일한 비디오 컨텐츠의 다수 버전을 저장하는 미디어이다. 예를 들어, 스케일러블 코딩된 미디어는 핸드헬드 디바이스, 컴퓨터, 표준 해상도 디바이스, 고해상도 디바이스 등에 적당한 비디오 스트림을 저장할 수 있다. 스케일러블 코딩된 미디어의 일례는, 도 16A에 예시된 바와 같은, H.264/MPEG-4 AVC 비디오 코덱에 의해 사용되는 스케일러블 비디오 코딩이다. SVC(scalable video content)는 단일 SVC 베이스 비디오 트랙으로 코딩된 다수 비디오 스트림을 지시하는데 사용된다. SVC는 여기에서 스케일러블 미디어 컨텐츠 또는 스케일러블 컨텐츠를 표현하는데 사용되고 스케일러블 미디어 컨텐츠 또는 스케일러블 컨텐츠의 일례일 수 있다. SVC 베이스 비디오 트랙으로부터 이용 가능한 비디오 스트림 각각은 비디오 동작점(video operating point)에 대응된다. 일 실시예에서, 비디오 동작점은 시간(예를 들어, fps(frames per second) 수), 공간(예를 들어, 수평 및 수직 픽셀 수), 및 품질 비디오 속성(예를 들어, 상이한 SNR(signal to noise ratios))의 조합에 대응되지만, 비디오 동작점의 다른 실시예는 더 많은, 더 적은, 그리고/또는 상이한 비디오 속성(예를 들어, 비트 깊이(bit- depth), 크로마 서브샘플링 주파수 등)을 가질 수도 있다. 시간 비디오 속성(temporal video attribute)은 비디오 프레임 레이트(예를 들어, 15 프레임/초(fps), 24 fps, 30 fps 등)를 포함한다. 한편, 공간 비디오 속성(spatial video attribute)은 스트림의 비디오 해상도(video resolution)를 기술한다. 예를 들면, 예시로써, 비디오 스트림은 (128×96 픽셀 해상도의) SQCIF(sub-quarter common intermediate format), (176×144 픽셀 해상도의) QCIF(quarter CIF), (352×288 픽셀 해상도의) CIF 등일 수 있다. 공간 비디오 속성은 다음의 도 16B에서 부연된다. 또한, 비디오 품질 속성은 비디오 품질을 SNR(signal to noise ratio)로 설명한다. 예를 들어, 소정 해상도 및 프레임 레이트에 대한 비디오가, 상이한 SNR에 대응되는 가변 비트 레이트(예를 들어, 128, 192 kbps 등)에서 송신될 수 있다.
도 16A는 SVC 코딩된 비디오 베이스 트랙의 일 실시예를 예시한다. 도 16A에서, SVC 베이스 트랙(1600)은 별도 프레임(1602A-D)으로 분해된다. 프레임(1602A-D)은 하나 이상의 네트워크 추상화 계층(NAL;network abstraction layer) 유닛(1604A-D, 1606A-D, 1608A-D)을 구비한다. NAL 유닛은 다양한 통신 채널 및/또는 저장 미디어에 적합한 유닛으로의 비디오 베이스 트랙의 분할이다. NAL 유닛(1604A-D, 1606A-D, 1608A-D)의 각 세트는 상이한 해상도의 비디오 스트림에 사용될 수 있다. 예를 들면, 예시로써, NAL 유닛(1604A-D)은, SQCIF와 같은, 저해상도 미디어 스트림을 구비한다. 저해상도 비디오 스트림은, 도 16B에서 예시되는 바와 같이, 작은 스크린 및/또는 제한된 리소스(메모리 등)의 디바이스에 사용되는 비디오 스트림이다. 도 16B는 가변 비디오 해상도의 일 실시예를 예시하는 블록도 이다. 도 16B에는, 3개의 비디오 해상도: 제1 비디오 해상도(1650), 제2 비디오 해상도(1652), 및 제3 비디오 해상도(1654)가 예시된다. 예를 들면, 예시로써, 저해상도 비디오 스트림이 제1 비디오 해상도의 비디오(1650)이다.
도 16A로 돌아가면, NAL 유닛(1604A-D)과 NAL 유닛(1606A-D)의 조합은 제2 해상도 비디오(예를 들어, QCIF 비디오 스트림)인 상이한 비디오 스트림을 제공한다. 도 16B에서 예시되는 바와 같이, 제2 해상도 비디오(1652)는 좀더 높은 해상도의 비디오, 즉, 더 큰 디스플레이 또는 더 많은 리소스를 갖춘 디바이스에 적당한 비디오의 비디오 스트림이다.
도 16A로 돌아가면, 더 나아가, 3개 세트의 NAL 유닛(1604A-D, 1606A-D, 1608A-D)을 사용하면, 제3의 좀더 높은 해상도의 비디오 스트림(예를 들어, FCIF(full CIF) 비디오 스트림)을 산출한다. 도 16B에서 예시되는 바와 같이, NAL 유닛(1604A-D, 1606A-D, 1608A-D)으로부터의 비디오 스트림은 제3 해상도의 비디오(1654)를 제공한다. 제1(1650) 및 제2(1652) 해상도의 비디오와 비교할 때, 제3 해상도 비디오(1654)는 더 높은 해상도를 가진다. 예를 들면, 예시로써, 제3 해상도 비디오는 (352×288 픽셀의) CIF 포맷형 비디오이다.
그에 따라, SVC 베이스 트랙(1600)은 단일 비디오 베이스 트랙으로부터 적어도 3개의 별도 비디오 스트림을 산출한다. 이로 인해, 하나의 베이스 코딩된 비디오 트랙이 상이한 타켓 디바이스 또는 동작점에 사용될 수 있다. 예를 들면, 예시로써, 제1 해상도 비디오(1650)는 셀폰에게로 비디오를 스트리밍하는데 사용될 수 있고, 제2 해상도 비디오(1652)는 휴대용 뷰어(portable viewer)에게로 비디오를 스트리밍하는데 사용될 수 있는 한편, 제3 해상도 비디오(1654)는 비디오를 표준 텔레비전에게로 스트리밍하는데 사용될 것이다.
SVC 코딩된 베이스 트랙은 시간, 공간 및 품질 비디오 속성의 다수 조합을 위한 비디오 스트림을 포함하기 때문에, 비디오 스트림 각각을 위한 트랙은 한개 트랙 또는 별도 트랙으로 저장될 수 있다. 별도 트랙의 경우, 대다수일 수 있는 별도 트랙을 관리해야 하는 과부하를 관리하는 것이 힘들어진다. 예를 들면, 예시로써, L개의 시간, M개의 공간 및 N개의 상이한 품질 비디오 속성이 존재한다면, 단일 SVC 베이스 트랙에 L*M*N개에 이르는 상이한 비디오 스트림이 존재할 수 있다. 비디오 디코더에 공급할 스트림을 어셈블리한다는 것은 매 샘플당 L*M*N개의 논리적 부가 연산을 의미한다. 한편, 도 16A에 예시된 바와 같이, 단일 베이스 트랙에 다수 비디오 스트림이 유지된다면, 비디오 스트림의 서브세트를 추출하기 위해, SVC 코딩된 베이스 트랙의 비디오 스트림 각각은 특정 비디오 스트림 서브세트를 위한 관련 데이터를 찾아내기 위해 보측되어야(walked) 한다. 이것은, 특정 비디오 스트림 서브세트를 결정하기 위해 L*M*N개의 비디오 스트림을 위한 데이터 모두가 액세스되어야 한다는 것을 의미한다. 더 나아가, SVC 코딩된 베이스 트랙은 통상적으로 ISO 파일에 저장되기 때문에, 하나의 비디오 SVC 베이스 트랙을 위한 데이터는 프레임에 연속적으로 저장된다. 그에 따라, SVC 베이스 트랙을 위한 프레임은 모든 데이터를 포함하고, 디코더는 모든 데이터를 판독한 다음 그것이 사용하지 않는 데이터를 파기해야 한다.
모든 것을 고려하면, 비디오 디코더가 L*M*N개의 비디오 스트림을 프로세싱 할 필요가 없으므로, 단일 SVC 베이스 트랙(또는, 스케일러블 컨텐츠를 각각 포함하고 있는, 적어도 한 세트의 SVC 베이스 트랙)을 사용하는 것이 바람직하다. 그러나, 비디오 스트림 중 하나가 연속적인 별도 스트림으로서 이용 가능하도록 하는 것이 유용한 경우가 존재한다. 필요한 것은, 전체 SVC 베이스 트랙을 보측하지 않으면서, SVC 베이스 트랙으로부터 이용 가능한 비디오 스트림을 추출하기 위한 메커니즘이다. 힌트 트랙의 일 형태(예를 들어, 추출기 트랙)가 단일 SVC 베이스 트랙에서 이용 가능한 다수 비디오 스트림을 추출하는데 사용될 수 있다. 추출기 트랙 각각은 제시된 동작점(예를 들어, 품질, 시간 스케일 및/또는 공간 사이즈의 고유한 조합)을 표현하고 SVC 베이스 트랙으로부터 그 동작점에 대해 필요한 데이터(예를 들어, 결과 비디오 스트림)를 어셈블리하는 방법에 대한 정보를 포함하는 한편, SVC 베이스 트랙에서의 나머지 데이터는 무시한다. 특히, 추출기 트랙은 품질, 시간 스케일 및/또는 공간 사이즈 비디오 속성 중 2 이상의 고유한 조합을 위해 사용될 수 있다. 예시적 실시예에서, 추출기 트랙이 (소정 시주기에 걸쳐 미리 결정된 시점에서 미리 결정된 시퀀스로 제시되는 일련의 관련 이미지와 같은) 스케일러블 코딩된 비디오에 사용되나, 다른 실시예는 추출기 트랙을 스케일러블 미디어의 다른 형태(예를 들어, 오디오, 화면 등)에 사용할 수도 있다. 소정 실시예에서, 추출기 트랙은 추출기 트랙에 의해 참조되는 베이스 트랙으로부터의 별도의 상이한 데이터 구조일 수 있고; 다른 실시예에서, 추출기 트랙은 베이스 트랙 내에 인터리브될 수 있거나 심지어 베이스 트랙으로부터의 미디어 데이터 샘플을 포함할 수도 있다.
도 16C는 수집기 NAL 유닛(1660A-B)을 이용하는 SVC 코딩된 비디오 베이스 트랙의 일 실시예를 예시한다. 도 16C에서, 도 16A와 유사하게, SVC 베이스 트랙(1660)은 별도 프레임(1602A-D)으로 분해된다. 프레임(1602A-D) 각각은 하나 이상의 NAL 유닛(1604A-D, 1606A-D, 1608A-D)을 구비한다. NAL 유닛은 다양한 통신 채널 및/또는 저장 미디어에 적합한 유닛으로의 비디오 베이스 트랙의 분할이다. NAL 유닛(1604A-D, 1606A-D, 1608A-D)의 각 세트는 상이한 비디오 스트림에 사용될 수 있다. 비디오 스트림은 해상도, 품질, 비트 레이트 등에서 상이할 수 있다. 컨텐츠의 스케일은 해상도, 품질, (예를 들어, 데이터 전송의) 비트 레이트 등에서 상이할 수 있다. 예를 들면, 예시로써, NAL 유닛(1604A-D)은, SQCIF, QCIF, CIF 등과 같은 저해상도 미디어 스트림을 구비한다. 그러나, 도 16A와 달리, 도 16C에서, NAL 유닛(1604A-D, 1606A-D, 1608A-D) 중 일부는 수집기 NAL 유닛(1662A-B)을 사용해 편성된다. 수집기 NAL 유닛(1662A-B)은 NAL 유닛을 NAL 유닛의 그룹으로 편성하는데 사용된다.
일 실시예에서, 수집기 NAL 유닛은 하나 이상의 NAL 유닛, 길이, 유형, 및 추가 바이트를 구비한다. 길이는 초기 NAL 유닛의 길이이다. 유형은 NAL 유닛의 유형을 표현한다. 추가 바이트는 초기 NAL 유닛 이후의 추가 바이트를 표현하고 수집된 NAL 유닛에서의 추가 NAL 유닛에 대한 오프셋으로 사용된다.
일 실시예에서, 수집기 NAL 유닛(1662A)은 NAL 유닛(1604A 및 1606A)을 포함한다. 이 실시예에서, 수집기는 비디오 프레임(1602A)의 일부를 포함하고 제1 및 제2 해상도 비디오의 추출을 지원한다. 다른 방법으로, 다른 실시예에서, 수집기 NAL 유닛(1662B)은 전체 프레임을 위한 NAL 유닛, 즉, NAL 유닛(1604B, 1606B, 및 1608B)을 포함한다. 이러한 다른 실시예에서, 수집기 NAL 유닛(1662B)은 제1, 제2 및 제3 해상도 비디오의 추출을 지원한다.
도 17A는 SVC 코딩된 베이스 트랙으로부터 비디오 스트림을 추출하는데 사용되는 추출기 트랙의 일 실시예를 예시하는 블록도이다. 도 17A에서, SVC 베이스 트랙(1600)은 비디오 프레임(1602A-B)을 포함하고, 비디오 프레임(1602A-B) 각각은, 상이한 비디오 스트림에 사용될 수 있는 NAL 유닛(1604A-B, 1606A-B, 1608A-B)을 포함한다. 도 16A와 유사하게, 제1 해상도 비디오 스트림(예를 들어, SQCIF 비디오 스트림)은 NAL 유닛(1604A-B)으로부터 어셈블되고, 제2 해상도 비디오 스트림(예를 들어, QCIF 비디오 스트림)은 NAL 유닛(1604A-B 및 1606A-B)으로부터 어셈블되는 한편, 제3 비디오 스트림(예를 들어, CIF 비디오 스트림)은 NAL 유닛(1604A-B, 1606A-B, 1608A-B)으로부터 어셈블될 수 있다. 도 16A와 달리, 추출 트랙(1700 및 1710)은 SVC 베이스 트랙(1600)에서 이용 가능한 상이한 비디오 스트림을 추출하는데 사용된다. 추출기 트랙(1700)은 AVC 및 SVC 베이스 트랙처럼 구성되는데, 추출기 트랙(1700)은 일련의 NAL 유닛이기 때문이다. 추출기 트랙 NAL 유닛은 다른 NAL 유닛과 혼합될 수 있다. 더 나아가, 추출기 트랙(1700)은, 추출기 트랙(1700)을 SVC 베이스 트랙(1600)에 링크하는 'scal'의 트랙 참조를 가진다. 또한, 추출기 트랙은 SVC 베이스 트랙(1600)과 동일한 트랙 유형을 가진다.
예를 들면, 예시로써, 추출 트랙(1700)은, 각각, SVC 베이스 트랙(1600)에서의 NAL 유닛(1604A-B, 1606A-B)을 참조하는 NAL 유닛(1704A-B, 1706A-B)을 포함한 다. NAL 유닛(1704A-B, 1706A-B)은 SVC 베이스 트랙(1600)에서 시간적으로 정렬된 NAL 유닛을 찾아내고, FGS(fine grain scalability) NAL 유닛의 일부와 같은, 그러한 NAL 유닛의 전부 또는 일부를 추출할 것을 비디오 디코더에게 지시한다. 예를 들면, 예시로써, NAL 유닛(1704A)은 디코더에게 NAL 유닛(1604A)을 찾아내고 일부 또는 전부의 NAL 유닛(1604A)을 추출할 것을 지시한다. NAL 유닛(1704A)이 디코더에게 NAL 유닛(1604A)의 일부를 추출할 것을 지시하는 경우, NAL 유닛(1704A)은 검색할 바이트 수 및 NAL 유닛(1604A)으로의 오프셋에 대한 명령어를 포함한다. SVC 베이스 트랙 NAL 유닛의 일부만을 검색하는 것은 SVC 베이스 트랙(1600)으로부터 비디오 품질의 다양한 레벨을 추출하기 위한 일 실시예이다. 일 실시예에서, 부분적 NAL 유닛의 추출은, FGS 슬라이스와 같은, 점진적 세분 슬라이스를 포함하고 있는 NAL 유닛에 의해 이루어진다.
더 나아가, 품질의 일정 레벨을 유지하기 위해, 추출기 트랙(1700) NAL 유닛은 베이스 트랙 NAL 유닛의 상이한 양을 추출할 수도 있다. 예시적 실시예에서, 추출기 트랙은 일정한 비디오 품질을 유지하기 위한 정확한 절단점을 계산한다. 예를 들면, 예시로써, 전체적인 비디오 품질을 유지하기 위해, NAL 유닛(1704A)은 디코더에게 NAL 유닛(1604A)으로부터 더 많은 것을 추출할 것을 지시할 수 있는 한편, NAL 유닛(1704B)은 NAL 유닛(1604B)으로부터의 더 적은 추출을 지시할 수도 있다. 추출 트랙(1700)은 NAL 유닛(1604A-B, 1606A-B)을 참조하기 때문에, 추출 트랙(1700)은 제2 해상도 비디오 스트림을 표현한다. 그에 따라, 비디오 디코더는, 전체 SVC 베이스 트랙(1600)을 프로세싱할 필요없이, 추출 트랙(1700)을 판독하는 것에 의해 제2 해상도 비디오 스트림을 추출할 수 있다.
추출 트랙(1700)과 유사하게, 추출 트랙(1710)은 NAL 유닛(1714A-B)을 포함한다. 그러나, NAL 유닛(1714A-B)이 SVC 베이스 트랙(1600)에서의 대응되는 NAL 유닛을 참조하는 대신에, NAL 유닛(1714A-B)은 NAL 유닛(1604A-B)의 적어도 일부에 대한 사본이다. 그에 따라, 추출 트랙(1710)은 이 비디오 스트림을 위해 필요한 NAL 유닛을 포함함으로써 제1 비디오 해상도 스트림을 표현한다. 더 나아가, 추출기 트랙(200, 210)은 비디오 파일에서의 다른 트랙처럼 힌팅될 수 있다. 그러나, 참조하는 추출기 NAL 유닛을 포함하는 힌트 트랙(들)은 참조 NAL 유닛에 포함된 바이트를 추출해야 한다. 예를 들면, 예시로써, 참조하는 추출기 NAL 유닛(1704A-B)을 포함하는 힌트 트랙은 참조된 베이스 NAL 유닛(1604A-B)으로부터 바이트를 추출해야 한다.
더 나아가, 일 실시예에서, 추출 트랙(1700, 1710)은 NAL 참조 유닛도, 베이스 트랙으로부터의 NAL 유닛의 사본도 아닌 NAL 유닛을 더 구비할 수 있다. 이 실시예에서, 이 NAL 유닛은 SVC 베이스 트랙(1600)과는 상이한 비디오 베이스 트랙의 분할(partition)이다. 이 실시예는 SVC 베이스 트랙(1600)으로부터 추출된 NAL 유닛을 상이한 NAL 유닛과 조합하여 제2 비디오 스트림을 형성하는데 사용될 수 있다. 예를 들면, 예시로써, 1개 추출 트랙이 저해상도 15 fps SVC 베이스 트랙으로부터 추출된 트랙을 추가 NAL 유닛과 조합하여, 15 fps 고해상도 비디오 스트림을 표현한다. 이와 같이, 추출 트랙이 저품질 비디오 스트림으로부터 고품질 비디오 스트림을 구축하는데 사용될 수 있다. 또한, 다른 추출 트랙은 저해상도 15 fps SVC 베이스 트랙으로부터 추출된 트랙을 추가 NAL 유닛과 조합하여 30 fps 고해상도 비디오 스트림을 표현한다. 이 일례는 추출기 트랙을 사용해 저속 비디오 스트림으로부터 높은 프레임 레이트 비디오 스트림을 구축하는 것을 보여준다. 이와 같이, 추출기 트랙은 고품질 비디오 스트림으로부터 저품질 비디오 스트림을 추출하거나 저품질 비디오 스트림으로부터 고품질 비디오 스트림을 구축하는데 사용될 수 있다. 추출기 트랙 또는 다른 데이터 세트를 사용해 더 낮은 품질의 비디오를 생성하는 것은 시주기 이후에 세선화 저장된 비디오(thinning stored video)(예를 들어, 시주기 이후에 세선화 저장된 감시 비디오)에서 특히 유용할 수 있다. 이 경우, 추출기 트랙 자체 내에 비디오 데이터를 포함하는 것이 유용할 수도 있다.
도 17B는 수집기 네트워크 추상화 계층 유닛을 구비하는 SVC 코딩된 베이스 트랙으로부터 비디오 스트림을 추출하는데 사용되는 추출기 트랙의 일 실시예를 예시하는 블록도이다. 도 17A와 유사하게, SVC 베이스 트랙(1660)은 비디오 프레임(1602A-B)을 포함하고, 비디오 프레임(1602A-B) 각각은 상이한 비디오 스트림에 사용될 수 있는 NAL 유닛(1604A-B, 1606A-B, 1608A-B)을 포함한다. SVC 베이스 트랙(1660)은 수집기 NAL 유닛(1660A-B)을 더 포함한다. 수집기 NAL 유닛(1660A)은 NAL 유닛(1604A, 1606A)을 그룹화하고, 수집기 NAL 유닛(1660B)은 NAL 유닛(1604B, 1606B)을 그룹화한다. 도 16A와 유사하게, 제1 해상도 비디오 스트림(예를 들어, SQCIF 비디오 스트림)은 NAL 유닛(1604A-B)으로부터 어셈블되고, 제2 해상도 비디오 스트림(예를 들어, QCIF 비디오 스트림)은 NAL 유닛(1604A-B 및 1606A-B)으로부터 어셈블되는 한편, 제3 비디오 스트림(예를 들어, CIF 비디오 스트림)은 NAL 유 닛(1604A-B, 1606A-B, 1608A-B)으로부터 어셈블될 수 있다. 도 17A에서와 같이, 추출 트랙(1700 및 1760)은 SVC 베이스 트랙(1660)에서 이용 가능한 상이한 비디오 스트림을 추출하는데 사용된다. 추출기 트랙(1750)은 일련의 NAL 유닛이기 때문에, 추출기 트랙(1750)은 AVC 및 SVC 베이스 트랙처럼 구성된다. 추출기 트랙 NAL 유닛은 다른 NAL 유닛과 혼합될 수 있다. 더 나아가, 추출기 트랙(1700)은 추출기 트랙(1750)을 SVC 베이스 트랙(1660)에 링크하는 'scal'의 트랙 참조를 가진다. 또한, 추출기 트랙은 SVC 베이스 트랙(1600)과 동일한 트랙 유형을 가진다. 또한, 추출기 트랙은 수집기 NAL 유닛을 참조하거나 수집기 NAL 유닛으로부터 복사할 수 있다.
일 실시예에서, 추출 트랙(1750)은 NAL 유닛(1754A-B, 1756A-B)을 사용해 수집기 NAL 유닛(1660A-B)을 참조한다. 수집기 NAL 유닛(1660A-B)을 참조함으로써, 추출 트랙(1750)은 수집기 NAL 유닛을 포함하는 모든 NAL 유닛을 참조한다. 다른 실시예에서(도시되어 있지 않음), 추출 트랙(1750)의 일부인 NAL 유닛은 수집하는 NAL 유닛 내의 특정 NAL 유닛을 참조할 수도 있다. 특정 유닛을 참조하는 것에 의해, 참조하는 NAL 유닛은 그 특정 NAL 유닛을 참조하고, 수집기 NAL 유닛의 일부인 다른 NAL 유닛은 참조하지 않는다. 도 17A와 유사하게, NAL 유닛(1754A-B)은 단일 NAL 유닛을 참조하는 NAL 유닛과 유사한 특성을 가진다. 예를 들면, 예시로써, 추출 트랙(1750)은 SVC 베이스 트랙(1600)에서의 수집기 NAL 유닛(1660A-B)을 참조하는 NAL 유닛(1754A-B, 1756A-B)을 포함한다. NAL 유닛(1754A-B)은 비디오 디코더에게, SVC 베이스 트랙(1660)에서 시간 정렬된 NAL 유닛을 찾아내고 집합된 그 NAL 유닛의 전부 또는 일부를 추출할 것을 지시한다. 예를 들면, 예시로써, NAL 유닛(1754A)은 디코더에게, 수집기 NAL 유닛(1660A)을 찾아내고 수집기 NAL 유닛(1660A)을 포함하는 NAL 유닛의 일부 또는 전부를 추출할 것을 지시한다. NAL 유닛(1754A)이 디코더에게 수집기 NAL 유닛(1660A)의 일부를 추출할 것을 지시하는 경우, NAL 유닛(1754A)은 검색할 바이트 수 및 수집기 NAL 유닛(1660A)으로의 오프셋에 대한 명령어를 포함한다. SVC 베이스 트랙 NAL 유닛의 일부만을 검색하는 것은 SVC 베이스 트랙(1660)으로부터 비디오 품질의 다양한 레벨을 추출하기 위한 일 실시예이다. 더 나아가, 품질의 일정 레벨을 유지하기 위해, 추출기 트랙(1750) NAL 유닛은 베이스 트랙 NAL 유닛의 상이한 양을 추출할 수도 있다. 예시적 실시예에서, 추출기 트랙은 일정한 비디오 품질을 유지하기 위해 정확한 절단점(correct cut point)을 계산한다.
추출 트랙(1750)과 유사하게, 추출 트랙(1760)은 NAL 유닛(1764A-B)을 포함한다. 그러나, NAL 유닛(1764A-B)은 SVC 베이스 트랙에서의 대응되는 수집기 NAL 유닛을 참조하는 대신, NAL 유닛(1764A-B)은 NAL 유닛(1604A-B)의 적어도 일부의 사본이다. 더 나아가, 추출기 트랙(1750, 1760)은 비디오 파일에서의 다른 트랙처럼 힌팅될 수도 있다.
도 18은 추출기 트랙을 통합하는 비디오 파일의 일 실시예를 예시하는 블록도이다. 도 18에서, 비디오 파일(1800)은 무비 헤더(1802), 비디오 메타데이터(1804-1810) 및 데이터(1812)를 포함한다. 비디오 메타데이터(1804-1810)는 오디오 트랙(1804) 및 비디오 트랙(1806-1810)을 구비한다. 트랙(1804-1810) 각각은 어떤 비디오/오디오 트랙이 비디오 파일(1800)에서 이용 가능한지를 설명한다. 예를 들어, 3가지 비디오 유형: SQCIF AVC 비디오 트랙(1806), QCIF SVC 비디오 트랙(1808), 및 SQCIF SVC 비디오 트랙(1810)이 비디오 파일(1800)에서 이용 가능하다. 비디오 디코더는 어떤 유형의 비디오/오디오 스트림이 비디오 파일(1800) 내에서 이용 가능한지를 판정하기 위해 메타데이터(1804-1810)를 쿼리(query)할 수 있다. 데이터(1812)는 비디오 프레임(예를 들어, 도 16A에 예시된 바와 같은, NAL 유닛(1604A-D) 등), 오디오 프레임, 및 추출기 트랙을 구비한다.
도 19는 SVC 베이스 트랙의 추출기 트랙을 발생시키고 사용하는 시스템의 일 실시예를 예시하는 블록도이다. 도 19에서, 베이스 트랙(들) 생성기(1902)는 SVC 베이스 트랙을 포함하고 있는 미디어를 생성한다. 베이스 트랙은 저장 공간(storage)(1910)에 저장된다. 또한, SVC 추출기 트랙(들) 생성기(1916)는 베이스 트랙(들) 생성기(1902)로부터의 베이스 트랙(들)을 사용해 동작점 각각에 대한 추출기 트랙을 생성한다. 동작점 각각에 대한 추출기 트랙은 통상적으로 그것의 대응되는 베이스 트랙으로부터 유도된다. 동작점은 시간, 공간 및 품질 비디오 속성에 대한 비디오 범위성(video scalability)의 고유한 조합이다. 예를 들면, 예시로써, SVC 추출기 트랙(들) 생성기(1916)는 저품질, 8 fps, SQCIF 비디오 스트림; 24 fps, 매체 품질, QCIF 비디오 스트림; 고품질, 30 fps, CIF 비디오 스트림 등인 비디오 스트림에 대한 추출기 트랙을 생성할 수 있다. 일반적으로, SVC 추출기 트랙(들) 생성기(1916)는 입력된 SVC 베이스 트랙(들)에 의해 지원되는 임의의 비디오 스트림을 위한 추출기 트랙을 생성할 수 있다. 일 실시예에서, 생성된 SVC 추출기 트랙은 저장 공간(1910)에 저장되지만, 다른 실시예에서, 추출기 트랙은 대응되는 SVC 베이스 트랙과는 별도로 저장될 수도 있다. 추출기 트랙은, 가능한 모든 동작점이 아니라, 동작점의 합당한 서브세트에 대해서만 존재할 수 있고, 사용자(예를 들어, 클라이언트 시스템)는 이 서브세트로부터 사용 가능 동작점을 선택한다. 다른 방법으로, SVC 추출기 트랙(들)(1916)은, 비디오 스트림의 불필요하거나 중복되는 부분을 제거하면서, 2 이상의 비디오 스트림으로부터 단일 SVC 트랙을 형성할 수 있다. 예를 들면, 예시로써, SVC 추출기 트랙(들)(1916)은 24 fps, 중간 품질, QCIF 비디오 스트림 및 고품질, 30 fps, CIF 비디오 스트림으로부터 SVC 베이스 트랙을 포함하는 SVC 미디어를 생성할 수 있다. SVC 추출기 트랙(들)(1916)은 2개 비디오 스트림을 CIF 베이스 트랙 및 QCIF 비디오 스트림을 위한 추출기 트랙으로 프로세싱한다.
생성된 SVC 베이스 및 추출기 트랙은 다양한 방법으로 사용될 수 있다. 일 실시예에서, 로컬 클라이언트(들)(1904)는 저장 공간(1910)으로부터 SVC 베이스 및 추출기 트랙(들)을 판독하여 어떤 비디오 스트림이 SVC 베이스 및 추출기 트랙(들)에서 이용 가능한지를 결정한다. 이용 가능한 비디오 스트림에 기초해, 로컬 클라이언트(들)는 대응되는 추출기 트랙을 사용해 SVC 베이스 트랙(들)으로부터 필요한 비디오 스트림을 추출한다. 일 실시예에서, 로컬 클라이언트는, 베이스 및 추출기 트랙을 판독하고 프로세싱할 수 있는, 저장 공간(1910)에 대해 로컬인 머신에서 실행중인 프로그램의 단일 인스턴스(instance)지만, 다른 실시예에서, 로컬 클라이언트(들)는 동일한 프로그램 유형의 하나 이상의 인스턴스일 수 있다. 로컬 클라이 언트(들)에 의한 SVC 베이스 및 추출기 트랙(들)의 프로세싱은 다음의 도 21에서 부연된다.
다른 실시예에서, 전송 서버(들)(1906)는 원격 클라이언트(1908A-B)를 위한 SVC 베이스 및 추출기 트랙(들)을 프로세싱한다. 이러한 클라이언트-서버 구성에서, 원격 클라이언트(1908A-B)는 전송 서버(들)(1906)에게로 SVC 베이스 및 추출기 트랙(들)으로부터 이용 가능한 비디오에 대한 요청을 전송한다. 클라이언트-서버 실시예 중 하나에서, 원격 클라이언트(1908A-B)는, 전송 서버(들)(1906)로부터 직접적으로 비디오 스트림을 요청함으로써 비디오를 요청한다. 응답으로, 전송 서버(들)(1906)는 대응되는 추출기 트랙(들)에 액세스하고, 추출기 트랙(들)을 사용해, 요청된 비디오 스트림을 SVC 베이스 트랙(들)으로부터 검색한다. 전송 서버(들)(1906)는 비디오 스트림을 어셈블하고 요청중인 원격 클라이언트에게로 비디오 스트림을 역송신한다. 이러한 클라이언트-서버 실시예는 다음의 도 22에서 부연된다. 이 접근 방법에서, 전송 서버(들)(1906)는 추출기 트랙을 사용해, 전체 SVC 베이스 트랙(들)을 분석하는 것이 아니라, 요청중인 원격 클라이언트(408A-B)에 의해 사용되는 동작점의 일부인 베이스 트랙 부분만을 검색하고 전송한다.
다른 클라이언트-서버 실시예에서, 원격 클라이언트(1908A-B)는, 전송 서버(들)(1906)로부터 이용 가능한, 일례로 비디오 스트림을 요청한다. 응답으로, 전송 서버(1906)는 요청중인 원격 클라이언트(1908A-B)에게로 이용 가능 비디오 스트림의 리스트를 반환한다. 일 실시예에서는, 전송 서버(들)(1906)가 메타데이터(1804-1810)를 원격 클라이언트(1908A-B)에게로 반환하지만, 다른 실시예에서는, 전송 서버(들)(1906)가 이용 가능 비디오 스트림의 리스트를 다른 수단(예를 들어, 간단한 리스트, 리스트를 구비하는 CGI(common gateway interface) 형태 등)으로 반환한다. 원격 클라이언트(1908A-B)는 전송 서버(들)(1906)에게 소정 비디오 스트림을 요청하고 전송 서버(들)는 요청된 비디오 스트림을 송신한다. 예시적 실시예에서, 원격 클라이언트(1908A-B)는 전송 서버(들)(1906)로부터 소정 비디오 스트림에 대응되는 추출기 트랙을 요청한다. 추출기 트랙을 수신하는 것에 응답하여, 원격 클라이언트(1908A-B)는 전송 서버(들)(1906)에게로 적합한 명령을 송신함으로써 비디오 스트림을 요청한다(예를 들어, 원격 클라이언트(1908A-B)는 HTTP 바이트-요청 등을 사용해 SVC 베이스 트랙(1600)으로부터의 비디오 프레임(1602A-B)을 요청한다). 이 클라이언트-서버 실시예는 다음의 도 23에서 부연된다.
로컬(1904) 및 원격(1908A-B) 클라이언트에 의해 사용되는 이외에, SVC 베이스 및 추출기 트랙(들)은 AVC 특정 컨텐츠 생성기(AVC specific content creator)(1912)에 의해 프로세싱될 수 있다. AVC 특정 컨텐츠 생성기(1912)는, SVC 추출기 트랙에 액세스하고, 추출기 트랙을 사용하여 대응되는 SVC 베이스 트랙(들)으로부터 AVC 특정 컨텐츠를 어셈블함으로써, AVC 특정 컨텐츠(예를 들어, 특정 동작점에서의 H.264/AVC 비디오 컨텐츠)를 생성한다. AVC 특정 컨텐츠 생성기(1912)는 저장 공간(1914)에 AVC 특정 컨텐츠를 저장한다. 원격 클라이언트(1908A-B)는 저장 공간(1914)으로부터의 AVC 특정 컨텐츠(예를 들어, 특정 동작점에서의 H.264/AVC 비디오 컨텐츠)에 액세스할 수 있다.
도 20은 SVC 베이스 트랙으로부터 SVC 추출기 트랙(들)을 발생시키기 위한 방법(2000)의 일 실시예의 흐름도이다. 블록 2002에서, 방법(2000)은 발생되는 동작점의 수를 결정한다. 앞서 언급된 바와 같이, 동작점 각각은 동작점과 연관된 비디오 속성에 기초해 하나의 비디오 스트림을 기술한다. 일 실시예에서는, 동작점 각각이 시간, 공간 및 품질 비디오 속성의 고유한 조합이지만, 다른 실시예는 더 많은, 더 적은, 그리고/또는 상이한 비디오 속성(예를 들어, 비트 깊이, 크로마 서브샘플링 주파수 등)을 포함하는 동작점을 가질 수 있다. 예를 들면, 예시로써, 시간 비디오 속성은 비디오 스트림 프레임 레이트(예를 들어, 8, 15, 30 fps 등)를 설명하고, 공간 비디오 속성은 비디오 스트림 해상도(예를 들어, SQCIF, QCIF, CIF 등)를 설명하며, 품질 비디오 속성은, 통상적으로 신호 대 잡음 메트릭(signal to noise metric)으로 설명되는, 비디오 스트림 품질을 설명한다.
블록 2004에서, 방법(2000)은 적어도 동작점의 서브세트에 대한 SVC 베이스 트랙에 대응되는 추출기 트랙을 코딩한다. 방법(2000)은 서브세트의 동작점에 대해 하나의 추출기 트랙을 생성한다. 상술된 바와 같이, 추출기 트랙은 SVC 베이스 트랙에서의 NAL 유닛에 대한 참조이거나 베이스 트랙에서의 NAL 유닛의 사본인 NAL 유닛을 포함한다. 블록 2006에서, 방법(2000)은 추출기 트랙(들)을 저장한다. 또한, 방법(2000)은, 비디오 파일(300)을 리레이아웃(re-laying out)함으로써, 저장된 추출기 트랙을 포함하고 있는 비디오 파일(300) 중 일부를 최적화할 수 있다. 이것은, NAL 유닛의 사본을 포함하는 추출기 트랙에 특별히 유용하다.
도 21은 대응되는 추출기 트랙을 사용해 SVC 베이스 트랙으로부터 비디오 스트림을 검색하기 위한 방법(2100)의 일 실시예의 흐름도이다. 블록 2102에서, 방 법(2100)은 클라이언트 역량(capability)을 판정한다. 클라이언트 역량은 디스플레이 사이즈, 디스플레이 그래픽 역량, 메모리, 비디오 버퍼, 프로세싱 전력 등에 의존하지만, 그것으로 제한되는 것은 아니다. 예를 들면, 예시로써, 작은 디스플레이 및 저전력 CPU의 핸드헬드 디바이스는 15 fps SQCIF 비디오 스트림을 프로세싱할 수 있는 한편, 좀더 양호한 CPU 및 그래픽 역량의 데스크탑 컴퓨터는 30 fps CIF 비디오 스트림을 핸들링할 수 있다.
블록 2104에서, 방법(2100)은, 어떤 동작점이 결정된 클라이언트 역량 및 이용 가능 추출기 트랙과 매치되는지를 지시하는 미디어 추출기 트랙(또는 다른 데이터)을 쿼리하여 이용 가능 미디어 스트림을 결정한다. 일 실시예에서, 방법(2100)은 매치를 판정하기 위해 이용 가능 미디어 추출기 트랙을 쿼리하지만, 다른 실시예에서, 방법(2100)은 상이한 수단(예를 들어, 미디어 메타데이터(1804-1810)를 쿼리하는 것 등)으로 매치를 판정할 수도 있다. 예를 들면, 예시로써, 타겟 디바이스가 핸드헬드 디바이스이면, 방법(2100)은 이용 가능한 저해상도의 낮은 비트 레이트 미디어 스트림(예를 들어, 15 fps SQCIF 비디오 스트림)이 존재하는지를 판단한다.
블록 2106에서, 방법(2100)은 클라이언트 역량과 매치되는 적합한 추출기 트랙을 선택한다. 예를 들면, 예시로써, 클라이언트가 데스크탑 컴퓨터이면, 방법(2100)은 더 낮은 해상도 또는 fps 비디오 스트림에 우선하여 30 fps CIF 비디오 스트림을 선택할 것이다. 블록 2108에서, 방법(2100)은 선택된 미디어 스트림과 연관된 추출기 트랙에 액세스한다.
블록 2110에서, 방법(2100)은 추출기 트랙을 사용해 추출기 트랙과 연관된 비디오 스트림을 검색한다. 방법(2100)은, (i) 추출기 트랙이 베이스 트랙 NAL 유닛으로부터 추출기 NAL 유닛으로 비디오 데이터를 복사한 경우, NAL 유닛에서의 데이터를 판독하거나 또는 (ii) 추출기 트랙 NAL 유닛을 SVC 베이스 트랙에 포함된 비디오 스트림에 대한 데이터에 대한 참조로서 사용함으로써, 추출기 트랙을 사용해 비디오 스트림을 검색한다. 추출기 트랙의 이 유형 중 어느 하나로 인해, 방법(2100)은 SVC 코딩된 베이스 트랙으로부터 비디오 스트림을 검색할 수 있다. 예를 들면, 예시로써, 참조하는 추출기 트랙 NAL 유닛은, 방법(2100)이 (i) 적합한 NAL 유닛의 SVC 베이스 트랙에서의 위치, (ii) 참조된 NAL 유닛으로부터의 오프셋, 및 (iii) 참조된 NAL 유닛으로부터 복사할 바이트 수를 결정하기 위한 정보를 포함하고 있다.
도 22는 원격 클라이언트에 대한 전송 서버에 의해 SVC 베이스로부터 미디어 스트림을 검색하기 위한 방법(2200)의 일 실시예의 흐름도이다. 블록 2202에서, 방법(2200)은 미디어 스트림 요청을 수신한다. 일 실시예에서, 미디어 스트림 요청은 HTTP 프로토콜에 의해 이루어질 수 있지만, 다른 실시예는 업계에 공지되어 있는 상이한 프로토콜(예를 들어, RTP, RTSP 등)을 사용할 수도 있다. 블록 2204에서, 방법(2200)은 요청된 미디어 스트림에 대응되는 추출 트랙을 선택한다. 예를 들면, 예시로써, 원격 클라이언트가 30 fps CIF 비디오 스트림을 요청하였다면, 방법(2200)은 그 미디어 스트림에 대응되는 추출기 트랙을 선택한다.
블록 2206에서, 방법(2200)은 선택된 추출기 트랙에 기초해 미디어 스트림을 전송한다. 예를 들면, 예시로써, 방법(2200)은 블록 2110에서 설명된 바와 같이 추출기를 사용해 미디어 스트림을 어셈블하고 결과 비디오 스트림을 전송한다.
도 23은, 원격 클라이언트가 추출기 트랙을 사용해 미디어 스트림을 요청하는 상태에서, 원격 클라이언트에 대한 전송 서버에 의해 SVC 베이스 트랙으로부터 미디어 스트림을 검색하기 위한 방법(2300)의 일 실시예의 흐름도이다. 방법(2300)은, 비디오 스트림을 설명하는 상세한 정보가 전송 서버 대신에 원격 클라이언트에 의해 핸들링된다는 점에서 방법(2200)과 차이가 있다. 도 23에서, 원격 클라이언트는 추출기 트랙을 사용해 SVC 베이스 트랙으로부터 비디오 스트림을 추출한다. 블록 2302에서, 방법(2300)은 SVC 베이스 트랙으로부터 이용 가능 비디오 스트림을 위한 요청을 수신한다. 응답으로, 방법(2300)은 블록 2304에서 SVC 베이스 트랙 비디오 메타데이터를 전송한다. 일 실시예에서, 방법(2300)은 도 18에 예시된 바와 같이 비디오 메타데이터(1804-1810)를 전송하지만, 다른 실시예는 SVC 베이스 트랙내에 코딩된 이용 가능 비디오 스트림을 설명하는 다른 데이터를 전송할 수도 있다(예를 들어, 비디오 스트림의 간단한 리스트 등을 송신할 수도 있다).
블록 2306에서, 방법(2300)은 추출기 트랙을 위한 요청을 수신한다. 응답으로, 방법(2300)은, 블록 2308에서, 요청하는 원격 클라이언트로 요청된 추출기 트랙을 전송한다. 추출기 트랙이 참조하는 NAL 유닛을 포함하는 경우, 원격 클라이언트는 추출기 트랙을 사용해 비디오 프레임(예를 들어, 베이스 트랙으로부터의 NAL 유닛)을 추출할 것이다. 그렇지 않고, 추출기 트랙이 NAL 유닛의 사본을 포함하는 경우, 원격 클라이언트는 비디오 스트림을 가지며, 비디오 스트림을 필요한 대로 프로세싱할 수 있다.
블록 2310에서, 방법(2300)은 전송된 추출기 트랙에 기초해 비디오 스트림 프레임 요청을 수신한다. 응답으로, 방법(2300)은, 블록 2312에서, 요청된 비디오 프레임을 전송한다.
도 24는 SVC 베이스 트랙으로부터 추출된 SVC 특정 컨텐츠(SVC specific content)를 저장하기 위한 방법(2400)의 일 실시예의 흐름도이다. SVC 특정 컨텐츠는 1개의 비디오 스트림을 포함하는 반면 SVC 베이스 트랙은 다수 비디오 스트림을 포함할 수 있다는 점에서, SVC 특정 컨텐츠는 SVC 베이스 트랙과 차이가 있다. 블록 2402에서, 방법(2400)은 이용 가능 비디오 스트림(들) 중 어떤 것이 SVC 특정 컨텐츠로서 저장되어야 하는지를 판정한다. 선택된 비디오 스트림에 기초해, 방법(2400)은 선택된 비디오 스트림(들)과 연관된 추출기를 결정한다. 블록 2406에서, 방법(2400)은 연관된 추출기 트랙을 사용해 비디오 스트림(들)을 추출한다. 예를 들면, 예시로써, 방법(2400)은 블록 2110에서와 같이 비디오 스트림(들)을 추출한다. 비디오 스트림(들)을 추출한 후, 방법(2400)은 비디오 스트림(들)을 SVC 특정 컨텐츠로서 저장한다.
다음에서는 힌트의 예시적 일부 포맷이 제공된다. 그러나, 본 발명이 다양한 유형의 네트워크 프로토콜, 디지털 프로세싱 시스템 아키텍처, 미디어 포맷 등에 의해 시간 기반 데이터의 전송을 제공하는데 이용될 수도 있다는 것을 알 수 있을 것이다.
다른 실시예
수개 실시예 및 예시적 도면의 관점에서 본 발명이 설명되었지만, 당업자라면, 본 발명이 설명된 실시예 또는 도면으로 제한되지 않는다는 것을 알 수 있을 것이다. 특히, 본 발명은 시간 관련 미디어 데이터의 패킷화를 제공하는 몇가지 다른 실시예로 실시될 수 있다.
따라서, 본 발명의 방법 및 장치는 첨부된 청구항의 사상 및 범주 내의 변경 및 변형으로써 실시될 수 있다는 것을 이해할 수 있어야 한다. 따라서, 이 설명은 본 발명을 제한하는 것이 아닌 예시로 간주되어야 한다.
부록 A - 패킷화 힌트 샘플 설명
본 발명의 일 실시예에서, 각각의 힌트 트랙은 샘플 설명(sample descriptions) 테이블을 가진다. 힌트 트랙은 통상적으로 하나의 샘플 설명을 가진다. 힌트 트랙을 위한 샘플 설명 엔트리 각각에 대한 포맷은, 본 발명의 일 실시예에 따라, 다음의 표 1에서 설명된다.
힌트 트랙 샘플 설명 포맷
힌트 트랙 샘플 설명 바이트
샘플 설명 사이즈 4
데이터 포맷 4
보류(reserved) 6
데이터 참조 인덱스 2
최대 패킷 사이즈 4
추가 데이터 테이블 가변
패킷화 힌트 헤더 원자(packetization hint header atom)는 다음의 데이터 구성 요소를 포함한다:
필드 설명:
샘플 설명 사이즈 샘플 설명에서의 바이트 수를 특정하는 32-비트 정수.
데이터 포맷 샘플 데이터에 저장된 힌트의 포맷을 지시하는 32-비트 정수. 상이한 힌트 유형을 위해 상이한 포맷이 정의될 수 있다. 다음 테이블은 정의된 포맷을 열거한다.
보류(reserved) 0으로 설정되는 6개 바이트.
데이터 참조 이 샘플 설명을 사용하는 샘플과 연관된 데이터 인덱스의 인덱스를 포함하고 있는 16-비트 정수. 데이터 참조는 데이터 참조 원자에 저장된다.
최대 패킷 사이즈 이 트랙에서 계산되는 패킷의 최대 사이즈를 지시하는 32-비트 정수.
추가 데이터 테이블 매 트랙 기반으로 필요한 추가 정보를 포함하는 테이블. 값은 태그된 엔트리이다. 필요한 엔트리는 존재하지 않는다. 테이블에 엔트리가 존재하지 않으면, 합당한 디폴트가 사용될 수도 있다.
추가 데이터 테이블 엔트리를 위한 구조는 표 2에서 도시된다.
추가 데이터 테이블 포맷
추가 데이터 테이블 바이트
엔트리 길이 4
데이터 유형 4
데이터 엔트리 길이 - 8
추가 데이터 테이블 엔트리는 다음의 데이터 구성 요소를 포함한다:
필드 설명:
엔트리 길이 (길이 및 유형 필드를 위한 8개 바이트를 포함하는) 전체 엔트리의 길이를 바이트로 지시하는 32-비트 정수.
데이터 유형 엔트리에서의 데이터의 의미를 지시하는 32-비트 정수.
데이터 이 엔트리에 대한 데이터. 데이터의 길이는 테이블의 데이터 길이 필드에 의해 지시된다.
다음의 데이터 태그가 몇가지 다양한 유형의 데이터 포맷 유형을 위해 정의될 수도 있다. 필요에 따라 다른 태그가 생성될 수도 있다.
길이 유형 데이터 설명
9 'rely' 이 트랙이 신뢰 전달(reliable transport)을 통해 송신되어야 하는지의 여부를 지시하는 1 바이트 정수. 0 및 1의 값이 정의된다. 이 태그가 존재하지 않으면, 그것이, UDP와 같은, 비신뢰 전달을 통해 송신될 수 있다는 것을 지시하는 0 값을 갖는 것으로 가정된다.
다음의 데이터 포맷 유형이 정의된다. 필요하다면, 새로운 유형이 정의될 수도 있다.
데이터 포맷 설명
'rtp' 특정 미디어 유형에 대하여 RTP를 통해 미디어를 송신하고 AVT(Audio-Video Transport) 작업 그룹의 다양한 IETF 드래프트에 의해 설명되는 바와 같이 인코딩하기 위한 패킷화 힌트.
다음의 데이터 태그가 'rtp' 데이터를 위한 일 실시예에서 이용된다.
길이 유형 데이터 설명
12 'tims' RTP 타임스케일(timescale)을 지시하는 32-비트 수. 이 태그는 RTP 데이터를 위한 일 실시예에 제공된다.
다음의 데이터 태그는 'rtp' 데이터에 대해 선택적이다.
길이 유형 데이터 설명
12 'tsro' RTP 패킷을 송신할 때, 저장된 타임스탬프에 가산할 랜덤 오프셋을 지시하는 32-비트 수. 이 필드가 존재하지 않으면, RTP 명세대로, 진정한 난수(truly random number)가 사용되어야 한다. 이 필드의 값은, 랜덤 오프셋이 가산되지 않을 것을 지시하는 0일 수 있다.
10 'snro' RTP 패킷을 송신할 때 시퀀스에 가산할 랜덤 오프셋을 지시하는 16-비트 수. 이 필드가 존재하지 않으면, RTP 명세대로, 진정한 난수가 사용되어야 한다. 이 필드의 값은, 랜덤 오프셋이 가산되지 않을 것을 지시하는 0일 수 있다.
부록 B - RTP 에 대한 예시적 힌트 트랙
이 섹션은 QuickTime 무비로부터 RTP를 스트리밍하기 위한 힌트 트랙 포맷의 일례를 제시한다.
표준 RTP에서, 미디어 스트림 각각은 통상적으로 별도 RTP 스트림으로 송신된다. 멀티플렉싱은 일반적으로, 다수 스트림으로부터의 데이터를 단일 RTP 세션으로 인터리브하는 것에 의해서가 아니라, IP의 포트-레벨 멀티플렉싱(port-level multiplexing)을 사용함으로써 실현된다. 따라서, 무비에서의 미디어 트랙 각각은 연관된 RTP 힌트 트랙을 가져야 한다. 본 발명의 일 실시예에서, 힌트 트랙 각각은, 그것이 스트리밍하는 미디어 트랙으로의 트랙 역참조를 포함한다.
이 일례에서, 패킷 사이즈는 힌트 트랙이 생성되는 시점에 결정된다. 따라서, 힌트 트랙을 위한 샘플 설명('코딩'에 특유한 필드를 포함할 수 있는 데이터 구조 - 이 경우, 프로토콜)에서, 선택된 패킷 사이즈가 지시된다. 본 발명의 일례에서는, 상이한 패킷 사이즈 선택을 제공하기 위해, 수개의 RTP 힌트 트랙이 미디어 트랙 각각에 대해 제공된다. 다른 프로토콜도 파라미터화될 수 있다. 마찬가지로, RTP 클록을 위한 적합한 타임스케일이 다음의 샘플 설명에서 제공된다.
힌트 트랙은 단일 트랙 참조 선언에 의해 그것의 베이스 미디어 트랙에 관련된다. (RTP는 단일 RTP 스트림 내에서 미디어의 멀티플렉싱을 허용하지 않는다.) RTP에 대한 샘플 설명은, 이 힌트 트랙이 발생시킬 최대 패킷 사이즈를 선언한다. 세션 설명(SAP/SDP) 정보는 트랙에서의 사용자-데이터 원자에 저장된다.
RTP 힌트 트랙에서의 샘플 각각은, 소정 시점에 방출되어야 하는 한 세트의 패킷을 송신하기 위한 명령어를 포함한다. 힌트 트랙에서의 시점은 방출 시점(emission time)이며, 반드시 연관된 미디어의 미디어 시점일 필요는 없다.
다음 설명에서는, 오브젝트로서 구조화될 필요가 없는, 메타데이터가 아니라, 미디어 데이터인 샘플의 내부 구조가, 이 일례의 용어로 설명된다.
이 일례에서, 샘플 각각은 2개 영역: 패킷을 구성하기 위한 명령어 및 그 패킷을 송신할 때 필요한 임의의 추가 데이터(예를 들어, 미디어 데이터의 암호화된 버전)를 포함한다.
Figure 112008011951492-pct00008
RTP 힌트 패킷 각각은 단일 패킷을 송신하기 위한 정보를 포함한다. 일 실시예에서는, 미디어 시점을 방출 시점으로부터 분리하기 위해, RTP 헤더를 형성하는데 필요한 데이터와 함께, 특별히 RTP 타임스탬프가 포함된다. 그러나, 다른 실시예에서는, 이것이 성립되지 않는다. 통상적으로, 다른 헤더 정보가 공급된다. 구성 엔트리 테이블은 다음과 같이 구성된다:
Figure 112008011951492-pct00009
다양한 형태의 구성자(constructor)가 존재한다. 구성자 각각은, 비교적 간단하게 반복될 수 있는 16개 바이트이다. 제1 바이트는 유니온 판별기(union discriminator)이다:
Figure 112008011951492-pct00010
즉시 모드(immediate mode)는 페이로드-특정 헤더(예를 들어, RTP H.261 헤더)의 삽입을 허용한다. 미디어가 '보통 문자로(in the clear)'로 송신되는 힌트 트랙을 위해, 미디어 샘플 엔트리는, 샘플 수, 데이터 오프셋, 및 복사할 길이를 부여함으로써, 미디어 트랙으로부터 복사할 바이트를 특정할 수 있다. 비교적 복잡한 경우(예를 들어, 암호화 또는 FEC(forward error correction))에 대해, 변환된 데이터가 힌트 샘플에 배치될 수도 있고, 그 다음, 힌트 샘플 모드가 사용될 수도 있는데, 이는, RTP 샘플 자체에서의 추가 데이터 필드로부터 제공될 것이다.
본 발명의 일례에서는, 연속 패킷이 미디어 스트림으로부터의 연속 바이트를 전송해야 한다는 요구 사항이 존재하지 않는다. 예를 들어, H.261의 RTP-표준 패킷을 준수하기 위해, 본 발명의 일례에서는, (매크로블록 경계가 바이트 내에 속할 경우) 바이트가 1개 패킷의 끝에서 그리고 후속 패킷의 시작에서도 송신될 수 있다.
부록 C - 데이터 포맷 ' rtp' 를 위한 패킷화 힌트 샘플 데이터
이 부록은, 본 발명의 일 실시예에 따른, 'rtp' 포맷에 대한 샘플 데이터의 설명을 제공한다. 'rtp' 포맷은, 서버가 RTP(Real Time Transport Protocol)를 사용해 데이터를 송신중이라고 가정한다. 이 포맷은, 서버가 RTP 헤더에 관해 알고 있다고 가정하지만, 서버가, 다양한 IETF 드래프트에서 정의된 미디어 헤더를 포함하여, 특정 미디어 헤더에 관해 무엇인가를 알고 있어야 한다는 것을 요구하지는 않는다.
본 발명의 일 실시예에서, 힌트 트랙에서의 샘플 각각은 하나 이상의 RTP 패킷을 발생시킬 것이다. 힌트 트랙 샘플의 샘플 데이터 테이블에서의 엔트리 각각은 단일 RTP 패킷에 대응된다. 힌트 트랙에서의 샘플은 정확하게 미디어 트랙에서의 샘플에 대응될 수도 그렇지 않을 수도 있다. 본 발명의 일 실시예에서, 힌트 트랙 샘플에서의 데이터는, 32-비트 정렬이 아니라, 바이트 정렬된다.
필드 설명:
엔트리 카운트 테이블 내의 패킷 엔트리 수를 지시하는 16-비트의 언사인드 정수(unsigned integer). 테이블에서의 엔트리 각각은 패킷에 대응된다. 단일 샘플에서의 다수 엔트리는, 미디어 샘플이 다수 패킷으로 분할되었어야 한다는 것을 지시한다. 0의 엔트리 카운트를 가진 샘플은 보류되고, 맞닥뜨리게 된다면, 스킵되어야 한다.
패킷 엔트리 테이블 패킷 엔트리를 포함하고 있는 가변 길이 테이블.
패킷 엔트리는 다음에서 정의된다.
추가 데이터 표 3에 의해 다음에서 도시되는 데이터 테이블에서의 엔트리에 의해 지시되는 데이터를 포함하는 가변 길이 필드.
추가 데이터
패킷 엔트리 바이트
상대적 패킷 전송 시점 4
플래그 4
RTP 헤더 정보 2
RTP 시퀀스 번호 2
엔트리 카운트 2
데이터 테이블 가변
일 실시예에서, 패킷 엔트리는 다음의 데이터 구성 요소를 포함한다:
필드 설명:
상대적 패킷 전송 시점 힌트 샘플의 실제 시점에 대하여 이 패킷을 송신할 시점을 힌트 트랙의 타임스케일로 지시하는 32-비트 부호 정수값. 음수값은, 패킷이 실제 시점보다 빨리 송신될 것을 의미하고, 이것은 데이터 레이트를 완화시키기에 유용하다. 양수값은 패킷을 이후 시점에서 반복하기에 유용하다. 힌트 샘플 트랙 각각 내에서, 각 패킷 타임스탬프는 감소하지 않는다.
플래그 이 패킷에 대한 소정 속성을 지시하는 32-비트 필드
RTP 헤더 정보 필드는 다음의 구성 요소를 포함한다:
필드 Bit # 설명
R 31 이것이 반복 패킷이라는 것을, 즉 이 데이터가 선행 패킷에서 정의되었다는 것을 지시하는 1-비트 수. 서버는, 그것이 서버의 패킷 전송 뒤쪽에 위치할 때, 그것이 만회하는 것을 돕기 위해 반복 패킷을 스킵할 것을 선택할 수도 있다.
소정 패킷을 위한 모든 반복 패킷은 동일한 힌트 샘플에 관심이 있다.
정의된 모든 비트(0-30)는 보류되고 0으로 설정된다.
RTP 헤더 정보 RTP 헤더에서 설정되는 다양한 값을 특정하는 16-비트 정수.
RTP 헤더 정보 필드는 다음의 구성 요소를 포함한다:
필드 Bit# 설명
P 2 RTP 헤더에서의 패딩(P) 비트에 대응되는 1-비트 수. 상이한 패킷 패딩(packet padding)을 필요로 했던 서버가 일반적으로 패킷 자체를 언패딩(un-pad) 및 리패딩(re-pad)할 필요가 있을 수 있으므로, 이 비트는 설정되지 않을 수도 있다.
X 3 RTP 헤더에서의 확장자(X) 비트에 대응되는 1-비트 수. 자신만의 RTP 확장자를 송신해야 하는 서버가 힌트 트랙으로부터의 어떤 확장자도 교체할 수 없거나 힌트 트랙으로부터의 모든 확장자를 교체할 것이 강제될 수도 있으므로, 이 비트는 설정되지 않을 수도 있다.
M 8 RTP 헤더에서의 마커(M) 비트에 대응되는 1-비트 수.
페이로드 유형 9-15 RTP 헤더의 페이로드 유형(PT) 필드에 대응되는 7-비트 수.
정의된 모든 비트(0-1 및 4-7)는 보류되고 0으로 설정된다. 정의된 비트의 위치는 RTP 헤더에서와 동일한 비트 위치이다.
RTP 시퀀스번호 패킷에 대한 RTP 시퀀스 번호를 특정하는 16-비트 정수. RTP 서버는 패킷을 전송하기 전에 이 시퀀스 번호에 랜덤 오프셋을 가산한다. 이 필드는 패킷의 재전송을 허용하는데, 예를 들어, 동일한 패킷이 동일한 시퀀스 번호 및 상이한(이후의) 패킷 전송 시점과 함께 어셈블될 수 있다. 예를 들어, 5분 동안의 텍스트 샘플이 매 10초마다 재전송될 수 있고, 그에 따라, 원래의 샘플 전송을 놓친(어쩌면 중간에 무비를 플레이하기 시작한) 클라이언트는 최대 10초 이후에 "리프레시"될 것이다.
엔트리 카운트 데이터 테이블에서의 엔트리 수를 특정하는 16-비트 무부호 정수.
데이터 테이블 RTP 패킷의 페이로드 부분에 배치될 데이터를 정의하는 테이블. 이 도표는 데이터가 검색될 수 있는 다양한 장소를 정의하고, 표 4에 의해 도시된다.
데이터 테이블
데이터 테이블 엔트리 바이트
데이터 소스 1
데이터 15
엔트리 테이블의 데이터 소스 필드는, 엔트리의 나머지 15 바이트가 해석되는 방법을 지시한다. 0 내지 4의 값이 정의된다. 다양한 데이터 테이블 포맷이 다음에서 정의된다. 다양한 방식이 존재하지만, 다양한 방식에서의 엔트리는 통상적으로 16개 바이트 길이이다.
No - Op 데이터 모드
데이터 테이블 엔트리는 무연산 모드(no-op mode)를 위해 다음 포맷을 가진다:
필드 설명:
데이터 소스 = 0 0의 값은, 이 데이터 테이블 엔트리가 무시되어야 한다는 것을 지시한다.
즉시 데이터 모드
데이터 테이블 엔트리는 즉시 모드를 위해 다음 포맷을 가진다:
필드 설명:
데이터 소스 = 1 1의 값은, 수반되는 데이터의 바이트로부터 데이터가 즉각적으로 취해져야 한다는 것을 지시한다.
즉시 길이 수반되는 데이터로부터 취해질 바이트의 수를 지시하는 8-비트 정수. 적법한 값은 0에서 14의 범위에 해당된다.
즉시 데이터 패킷의 페이로드 부분에 배치되는 데이터의 14개 바이트. 즉시 길이 필드에 의해 지시되는 제1 갯수의 바이트만이 사용된다.
샘플 모드
데이터 테이블 엔트리는 샘플 모드를 위해 다음 포맷을 가진다:
필드 설명:
데이터 소스 = 2 2의 값은 데이터가 트랙의 샘플 데이터로부터 취해진다는 것을 지시한다.
트랙 참조 인덱스 샘플 데이터가 어떤 트랙으로부터 유래할 것인지를 지시하는 값. 0의 값은, 사용될, 정확히 하나의 참조되는 미디어 트랙이 존재한다는 것을 의미한다. 1에서 127까지의 값이, 그로부터 샘플이 판독될 원래의 미디어 트랙을 지시하는, 힌트 트랙 참조 원자 엔트리로의 인덱스이다. -1의 값은, 힌트 트랙 자체, 즉, 현재 파싱되고 있는 힌트 샘플과 동일한 트랙으로부터의 샘플이 사용되고 있다는 것을 의미한다.
압축 블록당 바이트 압축 블록당 샘플 필드에서의 샘플 수를 압축하는 것으로부터 발생하는 바이트 수를 특정하는 16-비트 언사인드 정수. 0의 값은 1의 값과 동등하다.
압축 블록당 샘플 압축 블록당 미압축 샘플을 특정하는 16-비트 언사인드 정수. 0의 값은 1의 값과 동등이다.
길이 복사할 샘플에서의 바이트 수를 특정 하는 16-비트 정수.
샘플 번호 트랙의 샘플 번호를 특정하는 32-비트 정수.
오프셋 복사를 시작할 샘플 시작으로부터의 오프셋을 특정하는 32-비트 정수. 힌트 트랙에서의 샘플을 참조한다면, 이것은 일반적으로 추가 데이터 영역을 가리킬 것이다.
압축 블록당 바이트 및/또는 압축 블록당 샘플이 1보다 크면, 이 비율(ratio)은 샘플 번호를 실제 바이트 오프셋으로 변환하는데 사용된다. 이 비율 모드는 통상적으로, 다음과 같이, QuickTime 무비에서의 압축된 오디오 트랙에 사용된다:
CB = NS * BPCB / SPCB
여기에서,
CB = 압축 바이트
NS = 샘플 수
BPCB = 압축 블록당 바이트
SPCB = 압축 블록당 샘플
예를 들어, GSM 압축 블록은 통상적으로 33개 바이트로 패킹된 160개 샘플이다. 따라서, BPCB = 33이고 SPCB = 160이다. 힌트 샘플은 161번째 미디어 샘플에서 시작하는 데이터의 33개 바이트를 요청한다. 제1 QuickTime 덩어리가 적어도 320개 샘플을 포함한다고 가정하면, 이 데이터가 덩어리 1로부터 유래할 것이라고 판정한 후, 덩어리 1이 시작되는 경우, 이 비율은 요청된 샘플이 발견될 파일로의 오프셋을 조정하는데 이용된다:
chunk_number = 1; /* 샘플-대-덩어리 원자를 보측(walking)하는 것에 의해 계산됨*/
first_sample_in_this_chunk = 1; /* 이 또한 그 원자로부터 계산됨*/
chunk_offset = chunk_offsets[chunk_number]; /* stco 원자로부터 */
data_offset = (sample_number - first_sample_in_this_chunk) * BPP/SPP
read_from_file(chunk_offset + data_offset, length); /* 우리 데이터 판독 */
샘플 설명 모드
데이터 테이블 엔트리는 샘플 설명 모드를 위해 다음 포맷을 가진다:
필드 설명:
데이터 소스 = 3 3의 값은, 데이터가 미디어 트랙의 샘플 설명 테이블로부터 취해져야 할 것을 지시한다.
트랙 참조 인덱스 샘플 데이터가 어떤 트랙으로부터 유래할 것인지를 지시하는 값. 0의 값은, 사용되어야 하는, 정확히 하나의 힌트 트랙 참조가 존재한다는 것을 의미한다. 1에서 127의 값은, 샘플이 판독될 원래의 미디어 트랙을 지시하는, 힌트 트랙 참조 원자 엔트리로의 인덱스이다. -1의 값은, 힌트 트랙 자체, 즉, 현재 파싱되고 있는 힌트 샘플과 동일한 트랙으로부터의 샘플 설명이 이용된다는 것을 의미한다.
보류 0으로 설정되는 4개 바이트.
길이 복사할 샘플에서의 바이트 수를 특정하는 16-비트 정수.
샘플 설명 인덱스 미디어의 샘플 설명 테이블로의 인덱스를 특정하는 32-비트 정수.
오프셋 복사를 시작할 샘플 시작으로부터의 오프셋을 특정하는 32-비트 정수.
추가 데이터 데이터 테이블에서의 힌트 트랙 샘플 모드 엔트리에 의해 포인팅되는 데이터를 포함하고 있는 가변 길이 필드.
부록 D - MPEG -2 전달을 위한 예시적 힌트 트랙 포맷
이 섹션은 기초 스트림을 보유중인 QuickTime 무비로부터 MPEG-2 전달을 스트리밍하기 위한 간단한 트랙 포맷의 일례를 제시한다.
MPEG-2 전달 스트림은 하나 이상의 기초 스트림의 멀티플렉스와 연관된다. 이 이유때문에, MPEG-2 전달 힌트 트랙은, 하나 이상의 미디어 트랙으로부터 그러한 멀티플렉스를 구성하는 방법을 설명한다. 미디어 트랙과 MPEG-2 전달 힌트 트랙 사이에 반드시 일대일 관계가 존재하는 것은 아니다. 힌트 트랙 각각은, 그것이 표현하는 기초 스트림으로의 참조를 포함할 수 있다. 본 발명의 일례에서, QuickTime 파일은 상이한 멀티플렉스를 설명하기 위해 그러한 힌트 트랙 다수를 포함할 수도 있다.
모든 MPEG-2 전달 패킷은 사이즈가 188 바이트이므로, 패킷 사이즈는 일반적으로 문제되지 않는다. 본 발명의 일례에서, (MPEG-2 전달 프로토콜에서의) 전달 패킷 각각은 1개 미디어 트랙으로부터의 페이로드 데이터를 포함한다. 이것은 전달 패킷 각각에 대해 비교적 간단한 힌트 설명을 허용한다. 본 발명의 일례에서, 그러한 힌트 각각은, 어떤 헤더 데이터가 각각의 전달 패킷에 나타난 다음 전달 패킷을 위한 적합한 미디어 트랙에서의 페이로드를 포인팅하는지를 설명한다. PSI 패킷과 같은 미디어 트랙과 부합하지 않는 패킷을 위해, 힌트는 헤더 데이터의 188개 바이트를 설명할 수 있고, 어떠한 미디어 트랙 참조도 부적절한 것으로 간주될 수 있다. 미디어 트랙과 부합하는 패킷에 대해, 헤더 데이터는 전달 헤더, 가능한 적응 헤더, 및 PES 패킷을 시작하는 전달 패킷을 위한 PES 헤더와 같은 정보를 설명할 수 있다.
('stsd' 유형의) 샘플 설명 원자에서의 MPEG-2 전달 힌트 트랙에 대한 참조가 이루어진다. 이 원자는 샘플 설명 테이블을 포함하고, 이 테이블에서의 엔트리는 미디어 유형에 기초해 달라진다. 본 발명의 일례에서, 힌트 트랙은 표 1에 도시된 구조로써 시작한다. 추가 데이터 테이블은 표 2에 도시된 구조로써 엔트리를 보유할 수도 있다:
본 발명의 일례에서, 힌트 트랙이 MPEG-2 전달 힌트 트랙이면, 힌트 트랙 샘플 설명 엔트리에서의 데이터 포맷은 'm2t'일 것이고 최대 패킷 사이즈는 항상 188일 것이다. 그러한 설명 엔트리에서는, 다음의 표 5 내지 표 7에 도시된 유형이 추가 데이터 테이블에서 발견될 수도 있다:
추가 데이터 테이블 엔트리
엔트리
길이
데이터
유형
데이터 설명
8 0x00000000 테이블에 더 이상의 엔트리가 존재하지 않음을 지시한다.
9 'otyp' 힌트에 오프셋이 설명되는 방법을 설명한다. 데이터의 1개 바이트가 도 B.4에서 후술되는 값을 가진다. 이 엔트리는 추가 데이 터 테이블에서 필수적이다.
9 'msns' 미디어 샘플 번호의 사이즈를 설명한다. 데이터의 1개 바이트는, 얼마나 많은 바이트가 미디어 샘플 번호를 특정하는데 사용되는지를 지시한다. 이것이 존재하지 않고, 미디어 샘플 번호가 샘플 데이터에 존재하지 않으면, 디폴트 값은 4개 바이트이다.
9 'msos' 미디어 샘플 오프셋의 사이즈를 설명한다. 데이터의 1개 바이트는, 얼마나 많은 바이트가 미디어 샘플 오프셋을 특정하는데 사용되는지를 지시한다. 이것이 존재하지 않고, 미디어 샘플 오프셋이 샘플 데이터에 존재하지 않으면, 디폴트 값은 4개 바이트이다.
9 'fosz' 파일 오프셋의 사이즈를 설명한다. 데이터의 1개 바이트는, 얼마나 많은 바이트가 샘플내의 파일 오프셋을 특정하는데 사용되는지를 지시한다. 이것이 존재하지 않고, 샘플 데이터에 파일 오프셋이 존재하지 않으면, 디폴트 값은 4개 바이트이다.
가변 'tmap' 미디어 트랙의 단축된 매핑(abbreviated mapping)을 설명한다. 5 바이트 엔트리 각각이 4 바이트 트랙 ID를 1 바이트 트랙 참조 번호로 매핑한다. 이것은 어떠한 소정 전송 먹스(any given transport mux)도 256개 이상의 미디어 트랙을 포함하지 않도록 제한하지만, 이것이 제한 팩터여서는 안되고, 이 압축은 힌트 트랙의 사이즈를 제한하는데 유용하다. 이러한 5 바이트 엔트리의 포맷은 다음의 도 B.5에서 특정된다. 이 엔트리는 추가 데이터 테이블에서 필수적이다.
추가 데이터 테이블에서의 'otyp' 값
설명
0 샘플은 미디어 샘플의 관점에서 설명된다.
1 샘플은 파일 오프셋의 관점에서 설명된다.
'tmap' 추가 데이터 엔트리에서의 엔트리의 포맷
길이 설명
4 원래의 트랙 ID
1 샘플에서 사용되는 단축된 트랙 참조 번호
본 발명의 일례에서, 힌트 샘플 각각은 하나의 전달 패킷을 설명한다. 전달 패킷 각각은, 1개 미디어 트랙으로부터의 페이로드의 소정량이 수반되는, 헤더 데이터의 소정량으로서 설명될 수 있다. MPEG-2 전달 패킷은 비교적 작으므로, 다수 힌트 샘플이 발생될 수 있고, 그에 따라, 이 샘플은 최대한 작은 것이 바람직스럽다. 상기한 추가 데이터 테이블에서의 수개 엔트리가 샘플의 사이즈를 최소화하는데 사용될 수도 있지만, 그러한 팩터는 샘플 엔트리에서의 필드 중 일부에 대한 사이즈를 가변이 되도록 할 수 있다.
데이터 테이블에서의 'otyp' 엔트리가, 페이로드 데이터가 미디어 샘플의 관점에서 설명된다는 것을 지시하는 값 0를 가지면, 힌트 샘플은 표 8에 도시된 다음 형태일 수 있다.
미디어 샘플 참조를 사용하는 힌트 샘플 포맷
길이 설명
1 이 패킷에 대한 페이로드 데이터를 보유중인 미디어 트랙의 트랙 참조 번호. 이것은 추가 데이터 테이블에서의 'tmap' 엔트리를 사용해 트랙 ID로 매핑될 수 있다. 힌트가 즉시 데이터의 188개 바이트를 특정하면, 이 필드는 부적절하다.
1 패킷을 위한 즉시 데이터의 길이. 전송 패킷의 길이가 188개 바이트이므로, 이것은 188개 이하여야 한다는 것에 주의해야 한다.
가변 전송 패킷에 대한 헤더로서 사용될 즉시 데이터의 바이트. 바이트의 수는 선행 필드에 의해 설명된다.
가변 페이로드 데이터에 시용하기 위한 미디어 샘플 번호. 이 필드의 디폴트 사이즈는 4개 바이트지만, 추가 데이터 테이블에서의 'msns' 엔트리의 존재에 의해 변경될 수도 있다.
가변 페이로드 데이터에 사용하기 위한 미디어 샘플 오프셋. 이 필드의 디폴트 사이즈는 4개 바이트지만, 추가 데이터 테이블에서의 'msos' 엔트리의 존재에 의해 변경될 수도 있다.
본 발명의 일례에서, 패킷을 위한 페이로드 데이터의 길이를 지시하는 것은 불필요한데, 이는 MPEG-2에서, 이 길이는 (188 - 패킷을 위한 헤더 데이터의 사이즈)와 같기 때문이다.
데이터 테이블에서의 'otyp' 엔트리가, 페이로드 데이터가 파일 오프셋의 관점에서 설명된다는 것을 지시하는 값 1을 가지면, 힌트 샘플은 표 9에 도시된 다음 형태일 수 있다:
길이 설명
1 이 패킷에 대한 페이로드 데이터를 보유중인 미디어 트랙의 트랙 참조 번호. 이것은 추가 데이터 테이블에서의 'tmap' 엔트리를 사용해 트랙 ID로 매핑될 수 있다. 힌트가 즉시 데이터의 188개 바이트를 특정하면, 이 필드는 부적절하다.
1 패킷을 위한 즉시 데이터의 길이. 전송 패킷의 길이가 188개 바이트이므로, 이것은 188개 이하여야 한다는 것에 주의해야 한다.
가변 전송 패킷에 대한 헤더로서 사용될 즉시 데이터의 바이트. 바이트의 수는 선행 필드에 의해 설명된다.
가변 페이로드 데이터가 위치하는 파일 오프셋. 이 오프셋은, 미디어 트랙을 위한 데이터가 위치하는 파일에 존재한다. 이 필드의 디폴트 사이즈는 4개 바이트지만, 추가 데이터 테이블에서의 'fosz' 엔트리의 존재에 의해 변경될 수도 있다.
본 발명의 일례에서, 힌트 샘플은 그것의 오프셋을 미디어 샘플의 관점에서 또는 파일 오프셋의 관점에서 설명할 수 있다. 이들 각각은 이점 및 단점을 가진다. 힌트 샘플이 페이로드를 미디어 샘플의 관점에서 특정하는 경우, 그것은 미디어 트랙을 포함하는 파일의 추가 편집에 대해 좀더 탄력적일 수 있지만, 전달을 위해 추가 프로세싱을 요구할 수 있다. 힌트 샘플이 페이로드를 파일 오프셋의 관점에서 특정하면, 페이로드 데이터는 비교적 빨리 액세스될 수 있지만, 미디어 트랙을 포함하는 파일의 임의의 편집이 힌트를 무효화할 수 있다.
부록 E - 예시적 파일
다음에서는, 본 발명의 일 실시예에 따른, (여기에서 생략 부호 "..."로써 마킹된) 비교적 덜 중요한 필드와 오브젝트가 누락된 상태의 비교적 짧은 (6개 프레임의) 샘플 파일이 제공되며, 일부 가공의 숫자는 RTP를 통한 스트리밍을 위해 준비된 파일의 전반적인 구조를 예시한다. 미디어 데이터는 생략되었고; 메타데이터만이 도시된다.
Figure 112008011951492-pct00011
Figure 112008011951492-pct00012
Figure 112008011951492-pct00013
Figure 112008011951492-pct00014
Figure 112008011951492-pct00015
Figure 112008011951492-pct00016
Figure 112008011951492-pct00017
Figure 112008011951492-pct00018

Claims (108)

  1. 스케일러블 컨텐츠의 복수의 스케일에서 프레젠테이션을 제공하기 위한 샘플들을 포함하는 데이터의 제1 세트에 저장된 상기 스케일러블 컨텐츠를 프로세싱하기 위한 방법으로서,
    베이스 트랙에 상기 제1 세트를 저장하는 단계;
    복수의 추출 트랙들을 유도하는 단계 - 상기 복수의 추출 트랙들 각각은 상기 스케일러블 컨텐츠 내의 복수의 동작점 중 하나에 대응하고, 상기 복수의 추출 트랙들은 상기 스케일러블 컨텐츠와 별개로 저장됨 -;
    상기 복수의 추출 트랙들 중 적어도 하나를 상기 데이터의 제1 세트와 별개로 전송하는 단계 - 상기 복수의 추출 트랙들 중 적어도 하나는 상기 제1 세트로부터 유도된 데이터의 제2 세트를 포함하고, 상기 제2 세트는 상기 데이터의 제1 세트의 제1 동작점에 대한 제1 동작점 데이터로의 참조들(references)을 포함함 -; 및
    상기 제1 동작점 데이터를, 상기 데이터의 제1 세트의 상기 베이스 트랙 내의 데이터의 각 조각(piece)에 대한 검사 및 상기 복수의 추출 트랙들 모두에 대한 검사 없이 식별하고 전송하는 단계 - 상기 제1 동작점 데이터는 상기 데이터의 제1 세트의 서브세트임 -를 포함하는 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  2. 제1 항에 있어서,
    상기 데이터의 제2 세트는 상기 데이터의 제1 세트로부터 복사된 상기 제1 동작점에 대한 샘플들을 포함하는 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  3. 제1 항에 있어서,
    상기 데이터의 제2 세트는 상기 데이터의 제1 세트로부터 데이터를 선택하는데 사용하기 위한 참조들과 다른 상기 제1 동작점에 대한 미디어 샘플들 또는 상기 데이터의 제1 세트로부터 복사된 상기 제1 동작점에 대한 미디어 샘플들을 포함하는 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  4. 제1 항에 있어서,
    상기 제2 세트를 저장하는 단계;
    상기 제1 세트로부터 데이터의 제3 세트를 유도하는 단계 - 상기 제3 세트는 상기 스케일러블 컨텐츠 내의 제2 동작점에 대한 데이터를 상기 제1 세트로부터 선택하는데 사용하기 위하여 상기 제1 세트로의 참조들을 포함함 -; 및
    상기 제3 세트를 저장하는 단계를 더 포함하고,
    상기 제1 세트, 상기 제2 세트 및 상기 제3 세트 각각은 순서를 갖고, 상기 제1 세트, 상기 제2 세트 및 상기 제3 세트 각각에 대한 상기 순서는 시작 샘플(beginning sample)로부터 종료 샘플(ending sample)까지이고, 각 샘플은 상기 순서를 특정하는 연관 시점(associated time)을 갖는, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  5. 제1 항에 있어서,
    상기 복수의 스케일은 복수의 공간 해상도(spatial resolution), 복수의 시간 해상도(temporal resolution) 및 복수의 품질 레벨 중 적어도 하나를 포함하고, 상기 제1 세트는 상기 복수의 스케일을 특정하는 제1 샘플들을 가지며, 상기 제1 샘플들은 상기 제1 샘플들 내의 샘플들 중에서 시작 샘플로부터 종료 샘플에 이르는 순서를 갖고, 상기 제1 샘플 내의 샘플 각각은 상기 순서에 관련된 연관 시점을 가지며, 상기 제1 동작점은 제1 축상의 픽셀 개수 및 제2 축상의 픽셀 개수에 의해 정의되는 제1 공간 해상도 및 시주기당 샘플 개수(a number of samples per a period of time)에 의해 정의되는 제1 시간 해상도에 놓이는 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  6. 제5 항에 있어서,
    상기 복수의 스케일은 상기 복수의 공간 해상도, 상기 복수의 시간 해상도, 및 상기 복수의 품질 레벨 모두를 포함하고, 상기 제1 샘플들 중에서 별도로 연속하여 저장되는 샘플들의 집합은 비디오의 동일 프레임 또는 오디오의 동일 부분으로부터의 상기 복수의 스케일의 서로 다른 레벨들에 대한 데이터를 갖는 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  7. 제6 항에 있어서,
    상기 제1 샘플들의 상기 샘플들 각각은 네트워크 추상화 계층(NAL;Network Abstraction Layer) 유닛이고, 상기 제2 세트는 복수의 제2 샘플을 포함하고, 상기 복수의 제2 샘플 각각은 상기 제1 샘플들 중 하나를 참조하고, 각각이 NAL 유닛이며, 각각이 상기 제1 샘플 중 상기 하나에서의 바이트의 개수를 각각 특정하고, 상기 복수의 제2 샘플들은 상기 제1 샘플들과는 별도로 연속적으로 저장되고, 상기 프레젠테이션은 유성 영화(movie with sound), 무성 영화(silent movie), 또는 오디오만의 프레젠테이션(audio only presentation) 중 하나인 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  8. 제7 항에 있어서,
    상기 서로 다른 레벨들의 레벨 각각은 독립적이고 계층적인 모션 보상 예측(motion compensation prediction)을 포함하는 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  9. 제7 항에 있어서,
    상기 NAL 유닛은 수집기 NAL 유닛(aggregator NAL unit)인 것인, 스케일러블 컨텐츠를 프로세싱하기 위한 방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 스케일러블 컨텐츠의 복수의 스케일에서 프레젠테이션을 제공하기 위한 샘플들을 포함하는 데이터의 제1 세트에 저장된 스케일러블 컨텐츠를 프로세싱하기 위한 방법을 프로세서가 수행하게 하는 실행 가능 명령어들을 갖는 머신-판독 가능 매체로서, 상기 방법은,
    베이스 트랙에 상기 제1 세트를 저장하는 단계;
    복수의 추출 트랙들을 유도하는 단계 - 상기 복수의 추출 트랙들 각각은 상기 스케일러블 컨텐츠 내의 복수의 동작점 중 하나에 대응하고, 상기 복수의 추출 트랙들은 상기 스케일러블 컨텐츠와 별개로 저장됨 -;
    상기 복수의 추출 트랙들 중 적어도 하나를 상기 데이터의 제1 세트와 별개로 전송하는 단계 - 상기 복수의 추출 트랙들 중 적어도 하나는 상기 제1 세트로부터 유도된 데이터의 제2 세트를 포함하고, 상기 제2 세트는 상기 데이터의 제1 세트의 제1 동작점에 대한 제1 동작점 데이터로의 참조들(references)을 포함함 -; 및
    상기 제1 동작점 데이터를, 상기 데이터의 제1 세트의 상기 베이스 트랙 내의 데이터의 각 조각(piece)에 대한 검사 및 상기 복수의 추출 트랙들 모두에 대한 검사 없이 식별하고 전송하는 단계 - 상기 제1 동작점 데이터는 상기 데이터의 제1 세트의 서브세트임 -를 포함하는,
    머신-판독 가능 매체.
  19. 제18 항에 있어서,
    상기 데이터의 제2 세트는 상기 데이터의 제1 세트로부터 복사된 상기 제1 동작점에 대한 샘플을 포함하는 머신-판독 가능 매체.
  20. 제18 항에 있어서,
    상기 데이터의 제2 세트는 상기 데이터의 제1 세트로부터 데이터를 선택하는데 사용하기 위한 참조들과 다른 상기 제1 동작점에 대한 샘플들 또는 상기 데이터의 제1 세트로부터 복사된 상기 제1 동작점에 대한 샘플들을 포함하는 머신-판독 가능 매체.
  21. 제18 항에 있어서,
    상기 제2 세트를 저장하는 단계;
    상기 제1 세트로부터 데이터의 제3 세트를 유도하는 단계 - 상기 제3 세트는 상기 스케일러블 컨텐츠 내의 제2 동작점에 대한 데이터를 상기 제1 세트로부터 선택하는데 사용하기 위하여 상기 제1 세트로의 참조들을 포함함 -; 및
    상기 제3 세트를 저장하는 단계
    를 더 포함하고,
    상기 제1 세트, 상기 제2 세트 및 상기 제3 세트 각각은 순서를 가지고, 상기 제1 세트, 상기 제2 세트 및 상기 제3 세트 각각에 대한 상기 순서는 시작 샘플로부터 종료 샘플까지이고, 각 샘플은 상기 순서를 특정하는 연관 시점을 갖는, 머신-판독 가능 매체.
  22. 제18 항에 있어서,
    상기 복수의 스케일은 복수의 공간 해상도, 복수의 시간 해상도 및 복수의 품질 레벨 중 적어도 하나를 포함하고, 상기 제1 세트는 상기 복수의 스케일을 특정하는 제1 샘플들을 가지며, 상기 제1 샘플들은 상기 제1 샘플들 내의 샘플들 중에서 시작 샘플로부터 종료 샘플에 이르는 순서를 갖고, 상기 제1 샘플 내의 샘플 각각은 상기 순서에 관련된 연관 시점을 가지며, 상기 제1 동작점은 제1 축상의 픽셀 개수 및 제2 축상의 픽셀 개수에 의해 정의되는 제1 공간 해상도 및 시주기당 샘플 개수에 의해 정의되는 제1 시간 해상도에 놓이는 머신-판독 가능 매체.
  23. 제22 항에 있어서,
    상기 복수의 스케일은 상기 복수의 공간 해상도, 상기 복수의 시간 해상도, 및 상기 복수의 품질 레벨 모두를 포함하고, 상기 제1 샘플들 중에서 별도로 연속하여 저장되는 샘플들의 집합은 비디오의 동일 프레임 또는 오디오의 동일 부분으로부터의 상기 복수의 스케일의 서로 다른 레벨들을 위한 데이터를 갖는 머신-판독 가능 매체.
  24. 제23 항에 있어서,
    상기 제1 샘플들 중 상기 샘플 각각은 네트워크 추상화 계층(NAL) 유닛이고, 상기 제2 세트는 복수의 제2 샘플을 포함하며, 상기 복수의 제2 샘플 각각은 상기 제1 샘플들 중 하나를 각각 참조하고, 각각이 NAL 유닛이며, 각각이 상기 제1 샘플 중 상기 하나에서의 바이트의 개수를 각각 특정하고, 상기 복수의 제2 샘플은 상기 제1 샘플들과는 별도로 연속적으로 저장되고, 상기 프레젠테이션은 유성 영화, 무성 영화, 또는 오디오만의 프레젠테이션 중 하나인 머신-판독 가능 매체.
  25. 제24 항에 있어서,
    상기 서로 다른 레벨들의 레벨 각각은 독립적이고 계층적인 모션 보상 예측을 포함하는 머신-판독 가능 매체.
  26. 제24 항에 있어서,
    상기 NAL 유닛은 수집기 NAL 유닛인 머신-판독 가능 매체.
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 스케일러블 컨텐츠의 복수의 스케일에서 프레젠테이션을 제공하기 위한 샘플들을 포함하는 데이터의 제1 세트에 저장된 스케일러블 컨텐츠를 프로세싱하기 위한 장치로서,
    베이스 트랙에 상기 제1 세트를 저장하기 위한 수단;
    복수의 추출 트랙들을 유도하기 위한 수단 - 상기 복수의 추출 트랙들 각각은 상기 스케일러블 컨텐츠 내의 복수의 동작점 중 하나에 대응하고, 상기 복수의 추출 트랙들은 상기 스케일러블 컨텐츠와 별개로 저장됨 -;
    상기 복수의 추출 트랙들 중 적어도 하나를 상기 데이터의 제1 세트와 별개로 전송하기 위한 수단 - 상기 복수의 추출 트랙들 중 적어도 하나는 상기 제1 세트로부터 유도된 데이터의 제2 세트를 포함하고, 상기 제2 세트는 상기 데이터의 제1 세트의 제1 동작점에 대한 제1 동작점 데이터로의 참조들(references)을 포함함 -; 및
    상기 제1 동작점 데이터를, 상기 데이터의 제1 세트의 상기 베이스 트랙 내의 데이터의 각 조각(piece)에 대한 검사 및 상기 복수의 추출 트랙들 모두에 대한 검사 없이 식별하고 전송하기 위한 수단 - 상기 제1 동작점 데이터는 상기 데이터의 제1 세트의 서브세트임 -을 포함하는 스케일러블 컨텐츠를 프로세싱하기 위한 장치.
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 스케일러블 컨텐츠의 복수의 스케일에서 프레젠테이션을 제공하기 위한 샘플들을 포함하는 데이터의 제1 세트에 저장된 스케일러블 컨텐츠를 프로세싱하기 위한 시스템으로서,
    프로세서; 및
    버스를 통해 상기 프로세서에 연결된 메모리를 포함하고,
    상기 프로세서는,
    베이스 트랙에 상기 제1 세트를 저장하고,
    복수의 추출 트랙들을 유도하고 - 상기 복수의 추출 트랙들 각각은 상기 스케일러블 컨텐츠 내의 복수의 동작점 중 하나에 대응하고, 상기 복수의 추출 트랙들은 상기 스케일러블 컨텐츠와 별개로 저장됨 -,
    상기 복수의 추출 트랙들 중 적어도 하나를 상기 데이터의 제1 세트와 별개로 전송하고 - 상기 복수의 추출 트랙들 중 적어도 하나는 상기 제1 세트로부터 유도된 데이터의 제2 세트를 포함하고, 상기 제2 세트는 상기 데이터의 제1 세트의 제1 동작점에 대한 제1 동작점 데이터로의 참조들(references)을 포함함 -,
    상기 제1 동작점 데이터를, 상기 데이터의 제1 세트의 상기 베이스 트랙 내의 데이터의 각 조각(piece)에 대한 검사 및 상기 복수의 추출 트랙들 모두에 대한 검사 없이 식별하고 전송하도록 - 상기 제1 동작점 데이터는 상기 데이터의 제1 세트의 서브세트임 - 프로그램되는,
    스케일러블 컨텐츠를 프로세싱하기 위한 시스템.
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
KR1020087003847A 2005-07-19 2006-07-19 미디어 데이터 전송을 위한 방법 및 장치 KR101454031B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US70090805P 2005-07-19 2005-07-19
US60/700,908 2005-07-19
US11/489,113 US20070022215A1 (en) 2005-07-19 2006-07-18 Method and apparatus for media data transmission
US11/489,113 2006-07-18
PCT/US2006/028275 WO2007012062A1 (en) 2005-07-19 2006-07-19 Method and apparatus for media data transmission

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127014082A Division KR101311015B1 (ko) 2005-07-19 2006-07-19 미디어 데이터 전송을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080041204A KR20080041204A (ko) 2008-05-09
KR101454031B1 true KR101454031B1 (ko) 2014-10-27

Family

ID=37410753

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087003847A KR101454031B1 (ko) 2005-07-19 2006-07-19 미디어 데이터 전송을 위한 방법 및 장치
KR1020127014082A KR101311015B1 (ko) 2005-07-19 2006-07-19 미디어 데이터 전송을 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127014082A KR101311015B1 (ko) 2005-07-19 2006-07-19 미디어 데이터 전송을 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US20070022215A1 (ko)
EP (2) EP1907954A1 (ko)
JP (2) JP5363809B2 (ko)
KR (2) KR101454031B1 (ko)
CN (2) CN103309933B (ko)
AU (1) AU2006269848B2 (ko)
HK (2) HK1125205A1 (ko)
WO (1) WO2007012062A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022071742A1 (ko) * 2020-09-29 2022-04-07 엘지전자 주식회사 미디어 파일을 생성하는 방법 및 장치

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453355B1 (en) 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP1552617A2 (en) * 2002-10-05 2005-07-13 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN1954501B (zh) * 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
US9076488B2 (en) * 2004-03-18 2015-07-07 Andrew Liebman Media file for multi-platform non-linear video editing systems
CA2563283A1 (en) 2004-03-18 2005-09-29 Andrew Peter Liebman A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems
JP4971144B2 (ja) * 2004-05-07 2012-07-11 デジタル ファウンテン, インコーポレイテッド ファイルダウンロードおよびストリーミングのシステム
KR101292851B1 (ko) * 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7962933B2 (en) * 2006-04-06 2011-06-14 Velti USA, Inc. Mid-roll insertion of digital media
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9178535B2 (en) * 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
JP5059867B2 (ja) * 2006-10-19 2012-10-31 エルジー エレクトロニクス インコーポレイティド エンコード方法及び装置並びにデコード方法及び装置
US10382514B2 (en) * 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
US20080294691A1 (en) * 2007-05-22 2008-11-27 Sunplus Technology Co., Ltd. Methods for generating and playing multimedia file and recording medium storing multimedia file
CN101790886B (zh) * 2007-07-02 2012-12-05 弗劳恩霍夫应用研究促进协会 存储和读取具有媒体数据容器和元数据容器的文件的设备和方法
JP5027305B2 (ja) * 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
US20090119594A1 (en) * 2007-10-29 2009-05-07 Nokia Corporation Fast and editing-friendly sample association method for multimedia file formats
US8681856B2 (en) * 2008-04-24 2014-03-25 Sk Planet Co., Ltd. Scalable video providing and reproducing system and methods thereof
US20110110436A1 (en) * 2008-04-25 2011-05-12 Thomas Schierl Flexible Sub-Stream Referencing Within a Transport Data Stream
WO2009155578A2 (en) * 2008-06-19 2009-12-23 Andrew Liebman A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems
WO2010014123A1 (en) * 2008-07-26 2010-02-04 Thomson Licensing A real-time transport protocol (rtp) packetization method for fast channel change applications using scalable video coding (svc)
KR101547557B1 (ko) * 2008-11-14 2015-08-26 삼성전자주식회사 컨텐츠 재생 장치 선정 방법 및 그 장치
WO2010060442A1 (en) * 2008-11-26 2010-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Technique for handling media content to be accessible via multiple media tracks
US20100149301A1 (en) * 2008-12-15 2010-06-17 Microsoft Corporation Video Conferencing Subscription Using Multiple Bit Rate Streams
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US20100161779A1 (en) * 2008-12-24 2010-06-24 Verizon Services Organization Inc System and method for providing quality-referenced multimedia
WO2010085470A1 (en) * 2009-01-20 2010-07-29 Ripcode, Inc. System and method for splicing media files
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9485299B2 (en) * 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
US9197677B2 (en) * 2009-03-09 2015-11-24 Arris Canada, Inc. Multi-tiered scalable media streaming systems and methods
US20100262708A1 (en) * 2009-04-08 2010-10-14 Nokia Corporation Method and apparatus for delivery of scalable media data
US8625837B2 (en) * 2009-05-29 2014-01-07 Microsoft Corporation Protocol and format for communicating an image from a camera to a computing environment
US8566393B2 (en) * 2009-08-10 2013-10-22 Seawell Networks Inc. Methods and systems for scalable video chunking
WO2011022405A2 (en) * 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
CN102714715B (zh) * 2009-09-22 2016-01-20 高通股份有限公司 用于文件格式轨迹选择的媒体提取器轨迹
JP2011087103A (ja) * 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US8601153B2 (en) * 2009-10-16 2013-12-03 Qualcomm Incorporated System and method for optimizing media playback quality for a wireless handheld computing device
US9124642B2 (en) 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
JP5996439B2 (ja) * 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
WO2011108868A2 (en) * 2010-03-03 2011-09-09 Samsung Electronics Co., Ltd. Apparatus and method for recording and playing a media file, and a recording medium therefor
CN103098485A (zh) * 2010-06-14 2013-05-08 汤姆森特许公司 封装编码的多组成视频的方法和装置
CN103098484A (zh) * 2010-06-14 2013-05-08 汤姆森许可贸易公司 用于封装编码多组件视频的方法和装置
US8947492B2 (en) 2010-06-18 2015-02-03 Microsoft Corporation Combining multiple bit rate and scalable video coding
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9769230B2 (en) 2010-07-20 2017-09-19 Nokia Technologies Oy Media streaming apparatus
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8190677B2 (en) * 2010-07-23 2012-05-29 Seawell Networks Inc. Methods and systems for scalable video delivery
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
CN101984619A (zh) * 2010-10-12 2011-03-09 中兴通讯股份有限公司 一种流媒体业务的实现方法及系统
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
ES2772224T3 (es) 2011-04-08 2020-07-07 Andrew Liebman Sistemas, medios de almacenamiento legibles por ordenador y métodos implementados por ordenador para compartir proyectos
US9219945B1 (en) * 2011-06-16 2015-12-22 Amazon Technologies, Inc. Embedding content of personal media in a portion of a frame of streaming media indicated by a frame identifier
US9342598B1 (en) * 2011-06-21 2016-05-17 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with collaborative research
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9712887B2 (en) 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
LT3793200T (lt) 2012-04-13 2023-02-27 Ge Video Compression, Llc Vaizdo kodavimas su maža delsa
KR20140002447A (ko) * 2012-06-29 2014-01-08 삼성전자주식회사 멀티미디어 시스템에서 적응적 미디어 구조 송수신 방법 및 장치
AU2013283173B2 (en) 2012-06-29 2016-03-24 Ge Video Compression, Llc Video data stream concept
KR101757994B1 (ko) 2012-07-10 2017-07-13 브이아이디 스케일, 인크. 품질 주도형 스트리밍
CN109618235B (zh) * 2013-01-18 2021-03-16 佳能株式会社 生成设备和方法、处理设备和方法以及存储介质
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US10706604B2 (en) 2016-06-03 2020-07-07 Apple Inc. Controlling display performance using display system hints
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
US11197040B2 (en) * 2016-10-17 2021-12-07 Mediatek Inc. Deriving and signaling a region or viewport in streaming media
US10791316B2 (en) 2017-03-28 2020-09-29 Samsung Electronics Co., Ltd. Method for transmitting data about three-dimensional image
KR102331041B1 (ko) * 2017-03-28 2021-11-29 삼성전자주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
WO2018182161A1 (ko) * 2017-03-28 2018-10-04 삼성전자 주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
US10225621B1 (en) 2017-12-20 2019-03-05 Dish Network L.L.C. Eyes free entertainment
KR102338900B1 (ko) 2018-02-13 2021-12-13 삼성전자주식회사 전자 장치 및 그 동작 방법
CN111818295B (zh) * 2019-04-10 2022-02-01 杭州海康威视数字技术股份有限公司 一种图像获取方法及装置
GB2587364B (en) * 2019-09-24 2023-11-15 Canon Kk Method, device, and computer program for encapsulating media data into a media file
CN110943977B (zh) * 2019-11-11 2022-10-14 普联技术有限公司 多媒体业务数据传输方法、服务端、设备及存储介质
US11589032B2 (en) * 2020-01-07 2023-02-21 Mediatek Singapore Pte. Ltd. Methods and apparatus for using track derivations to generate new tracks for network based media processing applications

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3873777A (en) * 1972-05-23 1975-03-25 Japan Broadcasting Corp Signal transmission system for transmitting a plurality of series of signals
JPS5141287B2 (ko) * 1972-09-04 1976-11-09
US4688214A (en) * 1986-03-12 1987-08-18 American Telephone And Telegraph Company, At&T Laboratories Switching system control arrangements
US4907224A (en) * 1986-10-17 1990-03-06 Bydatel Corporation Method for transmitting data in multiple access data communications networks
DE4102408A1 (de) * 1991-01-28 1992-08-06 Grundig Emv Verfahren zur sender- bzw. regionalkennung in gleichwellennetzen
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5319707A (en) * 1992-11-02 1994-06-07 Scientific Atlanta System and method for multiplexing a plurality of digital program services for transmission to remote locations
CA2173355A1 (en) * 1993-06-09 1994-12-22 Andreas Richter Method and apparatus for multiple media digital communication system
EP0717892B1 (en) * 1993-09-10 1998-07-22 Rca Thomson Licensing Corporation Real-time audio packet layer encoder
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
DE69525556T2 (de) * 1994-03-21 2002-09-12 Avid Technology Inc Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung
US5497373A (en) * 1994-03-22 1996-03-05 Ericsson Messaging Systems Inc. Multi-media interface
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal
CA2199360C (en) * 1994-09-08 2001-06-26 Laurence Fish Method and apparatus for electronic distribution of digital multi-media information
US5625818A (en) * 1994-09-30 1997-04-29 Apple Computer, Inc. System for managing local database updates published to different online information services in different formats from a central platform
WO1996017313A1 (en) * 1994-11-18 1996-06-06 Oracle Corporation Method and apparatus for indexing multimedia information streams
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
GB2298951B (en) * 1995-03-17 1999-10-27 Olivetti Res Ltd Addition of time information
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5969539A (en) * 1995-05-26 1999-10-19 Xilinx, Inc. Product term exporting mechanism and method improvement in an EPLD having high speed product term allocation structure
US5818441A (en) * 1995-06-15 1998-10-06 Intel Corporation System and method for simulating two-way connectivity for one way data streams
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
US6112226A (en) * 1995-07-14 2000-08-29 Oracle Corporation Method and apparatus for concurrently encoding and tagging digital information for allowing non-sequential access during playback
US6138147A (en) * 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US5966120A (en) * 1995-11-21 1999-10-12 Imedia Corporation Method and apparatus for combining and distributing data with pre-formatted real-time video
US5859660A (en) * 1996-02-29 1999-01-12 Perkins; Michael G. Non-seamless splicing of audio-video transport streams
US6157674A (en) * 1996-03-21 2000-12-05 Sony Corporation Audio and video data transmitting apparatus, system, and method thereof
US5778187A (en) * 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5838678A (en) * 1996-07-24 1998-11-17 Davis; Joseph W. Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back
US5928330A (en) * 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US5956729A (en) * 1996-09-06 1999-09-21 Motorola, Inc. Multimedia file, supporting multiple instances of media types, and method for forming same
US5774666A (en) * 1996-10-18 1998-06-30 Silicon Graphics, Inc. System and method for displaying uniform network resource locators embedded in time-based medium
US6745226B1 (en) * 1997-05-02 2004-06-01 Roxio, Inc. Method and system for progressive encoding in an active desktop environment
US6064771A (en) * 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
US6175871B1 (en) * 1997-10-01 2001-01-16 3Com Corporation Method and apparatus for real time communication over packet networks
US6175872B1 (en) * 1997-12-12 2001-01-16 Gte Internetworking Incorporated Collaborative environment for syncronizing audio from remote devices
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
AU736599B2 (en) * 1998-01-29 2001-08-02 Bristol-Myers Squibb Company Amino acid derivatives of diaryl 1,3,4-oxadiazolone
US6135243A (en) * 1998-09-02 2000-10-24 Cybo Robots, Inc. Braking apparatus
US6372418B1 (en) * 2000-07-18 2002-04-16 Eastman Kodak Company Color motion picture print film with improved tonescale
DE60124746T2 (de) * 2000-09-22 2007-09-13 Koninklijke Philips Electronics N.V. Videocodierung mit hybrider temporeller und snr-bezogener feingranularer skalierbarkeit
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US7751628B1 (en) * 2001-12-26 2010-07-06 Reisman Richard R Method and apparatus for progressively deleting media objects from storage
US20030140149A1 (en) * 2002-01-14 2003-07-24 Richard Marejka Communication protocol for use in controlling communications in a monitoring service system
JP3843101B2 (ja) * 2002-03-04 2006-11-08 富士通株式会社 階層符号化データ配信装置および方法
CA2664732C (en) * 2002-04-12 2013-07-02 Mitsubishi Denki Kabushiki Kaisha An apparatus to edit, reproduce, deliver, search and re-generate condition settings for metadata
JP3852761B2 (ja) * 2002-05-14 2006-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、コンテンツ提供システム、端末装置及びコンテンツ送信方法並びにプログラム
KR100486713B1 (ko) * 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
AU2003267699A1 (en) * 2002-10-15 2004-05-04 Koninklijke Philips Electronics N.V. System and method for transmitting scalable coded video over an ip network
US7161957B2 (en) * 2003-02-10 2007-01-09 Thomson Licensing Video packets over a wireless link under varying delay and bandwidth conditions
US7283589B2 (en) * 2003-03-10 2007-10-16 Microsoft Corporation Packetization of FGS/PFGS video bitstreams
KR100586883B1 (ko) * 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
KR100596705B1 (ko) * 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
US20060156363A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation File storage for scalable media
DE102005001287A1 (de) * 2005-01-11 2006-07-20 Siemens Ag Verfahren und Vorrichtung zur Verarbeitung von skalierbaren Daten
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
wee s j et al,'secure scalable streaming 1-108, enabling transcoding without decryption' *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022071742A1 (ko) * 2020-09-29 2022-04-07 엘지전자 주식회사 미디어 파일을 생성하는 방법 및 장치

Also Published As

Publication number Publication date
JP5363809B2 (ja) 2013-12-11
CN103309933A (zh) 2013-09-18
JP2013201763A (ja) 2013-10-03
JP2009503950A (ja) 2009-01-29
KR20080041204A (ko) 2008-05-09
HK1152775A1 (zh) 2012-03-09
HK1125205A1 (en) 2009-07-31
CN101283351A (zh) 2008-10-08
CN101283351B (zh) 2013-03-27
KR101311015B1 (ko) 2013-09-24
WO2007012062A1 (en) 2007-01-25
KR20120080646A (ko) 2012-07-17
AU2006269848B2 (en) 2012-04-05
CN103309933B (zh) 2016-08-03
EP2270681B1 (en) 2016-08-17
EP1907954A1 (en) 2008-04-09
US20070022215A1 (en) 2007-01-25
EP2270681A1 (en) 2011-01-05
JP5785582B2 (ja) 2015-09-30
AU2006269848A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
KR101454031B1 (ko) 미디어 데이터 전송을 위한 방법 및 장치
US8719309B2 (en) Method and apparatus for media data transmission
EP1062782B1 (en) Method and apparatus for media data transmission
US7366788B2 (en) Method and apparatus for media data transmission
JP2003526227A (ja) メディア・データ伝送のための方法および装置
GB2469563A (en) A method system and apparatuses for processing readable content stored in a stream of data
EP1051008B1 (en) Method and apparatus for media data transmission
JP2001197120A (ja) メディア・データ伝送のための方法および装置
AU2012203922A1 (en) Method and apparatus for media data transmission
Jones et al. US6714984: Method and apparatus for media data transmission

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
A107 Divisional application of patent
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20130201

Effective date: 20140731

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 6