KR20100029137A - 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법 - Google Patents

미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR20100029137A
KR20100029137A KR1020107001920A KR20107001920A KR20100029137A KR 20100029137 A KR20100029137 A KR 20100029137A KR 1020107001920 A KR1020107001920 A KR 1020107001920A KR 20107001920 A KR20107001920 A KR 20107001920A KR 20100029137 A KR20100029137 A KR 20100029137A
Authority
KR
South Korea
Prior art keywords
media
information
stored
data packet
data
Prior art date
Application number
KR1020107001920A
Other languages
English (en)
Other versions
KR101199732B1 (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 KR20100029137A publication Critical patent/KR20100029137A/ko
Application granted granted Critical
Publication of KR101199732B1 publication Critical patent/KR101199732B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • 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/23614Multiplexing of additional data 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/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/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/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • H04N21/23895Multiplex stream processing, e.g. multiplex stream encrypting involving multiplex stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4381Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
    • 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/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • H04N21/63345Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00731Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction

Abstract

미디어 데이터 컨테이너(104)에 저장된 데이터 패킷 (110; 112) 및 메타데이터 컨테이너 (106)에 저장된 연관 메타 정보를 처리하는 장치(600)에 있어서, 상기 연관 메타 정보는 상기 미디어 데이터 컨테이너(104) 내부의 상기 저장된 데이터 패킷의 저장 위치를 가리키는 위치 정보 및 전송 시간 정보를 포함하고, 본 장치는 상기 저장된 데이터 패킷(110; 112) 및 상기 저장된 연관 메타 정보(124; 128)에 기반하여, 상기 저장된 데이터 패킷(110; 112)의 미디어 페이로드를 위한 디코딩 정보 (604; 704)를 결정하는 프로세서(602)를 포함하고, 상기 디코딩 정보(604; 704)는 상기 저장된 데이터 패킷의 어느 페이로드를 어느 타임 인스턴트에 재실행할 지를 가리키는 데이터 패킷 및 연관 메타 정보 처리 장치.

Description

미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법{Apparatus and Method for Processing and Reading a File having a Media Data Container and a Metadata Container}
본 발명은 메타데이터 컨데이너(metadata container) 및 미디어 데이터 컨데이너(media data container)를 구비한 파일에 대해 이와 연관된 부가 정보(side information) 및 전송 프로토콜 데이터 패킷(transport protocol data packets)을 판독 및/또는 저장하는 것과 관련된다. 예로써 ISO(International Organization for Standardization) 기반 미디어 파일 포맷을 기반으로 하는 파일을 들 수 있다.
다양한 전자 디바이스(device)들이 미디어 데이터 스트림을 수신하고 표현(present)할 수 있게 되었다. 상기 미디어 데이터 스트림은 DVB-H 표준(디지털 비디오 방송-핸드헬드(Digital Video Broadcasting - Handhelds)) 또는 DVB-T 표준(디지털 비디오 방송-지상파(Digital Video Broadcasting - Terrestrial))에 따라서 미디어 스트림을 방송하는 디지털 비디오 방송 네트워크로부터 수신될 수 있다.
다양한 전자 디바이스(device)들이 미디어 데이터 스트림을 수신하고 표현(present)할 수 있게 되었다. 상기(such) 미디어 데이터 스트림은 DVB-H 표준(Digital Video Broadcasting - Handhelds) 또는 DVB-T 표준(Digital Video Broadcasting - Terrestrial)에 따라서 미디어 스트림을 방송하는 디지털 비디오 방송 네트워크로부터 수신될 수 있다.
DVB-T는 국제 표준인 ISO/IEC 13818 (IEC = International Electrotechnical Commission)에 따르는 기본적인 MPEG-2 비디오 및 오디오 스트림을 포함하는 독립적으로 되어 있는(self-contained) MPEG-2(MPEG = Moving Pictures Expert Group) 전송(transport) 스트림을 이용한다. 상기 MPEG-2 전송 스트림은 다수의 오늘날의 방송 시스템에서 사용되는 멀티플렉스(multiplex)이다. 그것은 하나 또는 그 이상의 미디어 프로그램의 스트림 멀티플렉스이며, 일반적으로 오디오 및 비디오지만, 다른 데이터도 가능하다. MPEG-2 전송 스트림은 모든 미디어 스트림에서 타임-스탬프드 미디어 샘플(접근 유닛(Access Units), AUs)을 이용하고 공통 클럭을 공유한다. 이것은 오디오 및 비디오 스트림의 립- 동기화(lip synchronization)및 송신기 및 수신기 클럭의 동기화를 가능하게 한다.
DVB-H에 있어서, 기본적인(elementary) 오디오 및 비디오 스트림은 IP 데이터 캐스팅을 위한 RTP(Real-Time Transport Protocol), UDP (User Datagram Protocol), IP (Internet Protocol), 및 MPE(Multi-Protocol Encapsulation)에서 캡슐화(encapsulated)된다. RTP는 IP 네트워크를 통해 멀티-미디어 데이터의 효과적인 실시간 전달을 위해 이용된다. 멀티플렉싱은 비디오를 위한 하나의 네트워크 포트 및 오디오를 위한 또 다른 하나와 같이 일반적으로 상이한 네트워크 포트를 각각의 구별되는 미디어 스트림에 연관지음(associating)으로써 이루어진다. 상이한 미디어는 종종 상이한 클럭 및 클럭 레이트(clock rate)를 구비한 상이한 소스(source)로부터 유래한다. 예를 들면, 오디오 샘플은 오디오 샘플링 디바이스의 상기 클럭 레이트에 의존하는 샘플 레이트를 가지고 있고, 비디오 프레임의 프레임 레이트는 딥이스의 클럭 레이트를 가지는(grabbing) 비디오 프레임에 의존한다. 이런 클럭은 하루 당 수십 초의 축적된 오류를 발생시키는 백만 당 몇 백 부분(a few hundred parts-per-million)보다 더 큰 내재된(inherent) 주파수 에러를 가질 수 있다. "클럭 왜곡(skew)"라는 용어는 그것의 명목상(nominal)의 주파수와 클럭의 실제 오실레이터 주파수와의 차로 정의된다. 만약 송신기의 클럭이 수신기의 클럭보다 빠르게 동작한다면, 이는 상기 수신기에 패킷 축적에 이를 수 있다. 만약 송신기 클럭이 수신기 클럭보다 느리게 동작한다면, 그것은 수신기 버퍼가 적게 채워지는 것(underfill)을 초래할 것이다. 따라서, 만약 수신기 클럭 레이트가 송신기 클럭 레이트와 다르다면, 상기 수신기 버퍼는 점차적으로 차거나 비게(fill or empty) 될 것이다. 게다가, 클럭 왜곡은 관련된 수신기의 오디오 및 비디오 샘플 사이에 비동기화(de-synchronization)에 이르게 할 수 있다.
RTCP(Real-Time Transport Control Protocol)은 RTP 스트림을 위한 동기화 및 클럭 회복(recovery)을 허락한다. RTCP 채널은 송신기 리포트(sender report)(SR)의 형태의 송신기로부터 수신기 및 그 반대의 경우의 컨트롤 정보를 포함하고 각각의 RTP 스트림과 연관된다. 각각의 RTCP SR은 두 가지 타임스탬프 를 포함한다: 송신기 시스템 클럭(기준 시간(reference time))의 NTP(Network Time Protocol) 타임 스탬프 및 상기 연관 RTP 스트림의 해당되는 미디어 타임스탬프. 이 두 RTCP SR은 오디오 및 비디오 모두에 보내지지 않는다. 상기 RTP 및 NTP 타임의 상기 값으로부터 상기 RTP 패킷은 시간 라인(time line)에 맞게 설정될 수 있고, 상기 미디어는 완벽하게 동기화 될 수 있다.
스트리밍 서비스는 수신 동안 즉각적인 소모(consumption)에 대한 시간-제약(time-constraint) 또는 시간-비제약 방식으로 전달된 동기화된 미디어 스트림의 집합으로 정의된다. 각각의 스트리밍 세션은 오디오, 비디오 및/또는 타임드 텍스트(timed text)와 같은 실시간 미디어 데이터를 포함할 수 있다. 예를 들어 모바일 텔레비전과 같은 수단에 의해 동영상(movie)에 대한 미디어 데이터를 수신하는 사용자는, 상기 무비를 볼 수 있고/있거나 그것을 파일에 기록할 수 있다. 일반적으로, 이러한 목적을 위해서 상기 수신된 미디어 스트림의 상기 수신된 데이터 패킷은 상기 파일에 로 미디어 데이터(raw media data)를 저장하기 위해 디-패킷화(de-packetized)된다. 수신된 RTP 패킷 또는 MPEG-2 패킷은 미디어 데이터 샘플 형태의 그들의 페이로드(payload)를 얻기 위해 우선 디-패킷화 된다. 그리고, 디-패킷화 이후, 얻어진 미디어 데이터 샘플은 상기 파일에 저장되거나 재실행(replay)된다. 상기 얻어진 미디어 샘플은 보통 상기 H.264/AVC (AVC = Advanced Video Coding) 비디오 포맷 및/또는 상기 MPEG-4 HE-AACv2 (HE-AACv2 = High-Efficiency Advanced Audio Coding version 2) 오디오 포맷과 같은 포맷으로 압축된다. 이런 비디오 및/또는 오디오 포맷을 구비한 미디어 데이터 샘플이 저장이 예정되면, 그들은 MP4 (MPEG-4) 파일 포맷 또는 소위 3GP 파일 포맷이라고 불리는 포맷으로(또한 3GPP3(3rd Generation Partnership Project로도 알려진 포맷으로) 저장될 수 있다. 3GP 및 MP4 모두 상기 ISO 기반 미디어 파일 포맷에서 파생되고, 그것은 상기 ISO/IEC 국제 표준 14496-12:2005 "Information technology-coding of audio-visual objects - part 12: ISO base media file format"에 지정되어 있다. 이 포맷의 파일은 미디어 데이터 및 메타데이터를 포함한다. 작동 가능한 이런 파일에 대해서, 이들 데이터 모두는 반드시 존재해야 한다 상기 미디어 데이터는 상기 파일과 관련된 미디어 데이터 컨테이너(mdat)에 저장되고 상기 메타데이터는 상기 파일의 메타데이터 컨테이너(moov)에 저장된다. 통상적으로, 상기 미디어 데이터 컨테이너는 실제의 미디어 샘플을 포함한다. 즉, 그것은 인터리브드(interleaved), 타임-오더드(timr-ordered) 비디오 및/또는 오디오 프레임과 같은 것을 포함할 수 있다. 따라서, 각각의 미디어는 상기 미디어 컨텐트 속성(media content properties)을 설명하는 상기 메타데이타 컨테이너 moov에 고유의 메타데이터 트랙(trak)을 구비하고 있다. 메타데이터 컨테이너 moov 내부의 추가적인 컨테이너(박스라고도 불리는)는 파일 속성(properties), 파일 컨텐트(content), 등에 관한 정보를 포함할 수 있다.
최근, 소위 말하는 상기 ISO 기반 미디어 파일 포맷에 기반한 파일에 대한 수신 힌트 트랙(reception hint tracks)은 국제 표준 그룹(international standardization groups)에 의해 정의되어 왔다. 상기 수신 힌트 트랙은 RTP 패킷 또는 수신된 MPEG-2 전송 스트림과 같이 패킷화되고/되거나 멀티플렉스 된 스트림을 저장하는데 이용된다. 수신 힌트 트랙은 수신된 데이터 패킷의 플레이백(playback) 및 클라이언트 측 저장소(client side storage)에 이용될 수 있다. 그래서, 수신된 한 스트림의 MPEG-2 TS 또는 RTP 패킷은 미리-계산된(pre-computed) 샘플 또는 생성자(constructors)와 같은 예로 수신 힌트 트랙에 직접(directly) 저장된다.
이러한 접근은, 데이터 패킷을 디-멀티플렉싱(de-multiplexing) 및/또는 디-패킷타이징(de-packetizing)하고 그 후 각각의 기초(elementary) 미디어 스트림(오디오 및/또는 비디오)에 대한 별도의(saparate) 미디어 트랙을 기록하는 것과 비교할 때, 두 가지 장점이 있다. 첫째로, 저장하는 동안의 수신 디바이스의 요구되는 복잡도를 낮추고, 이는 수신된 데이터의 디-멀티플렉싱 과정 또는 다른 처리가 필요하지 않기 때문이다 오직 수신된 데이터 패킷을 수정하지 않은 형태로의 저장만이 수행된다. 둘째로, 몇몇 경우에 수신된 데이터 패킷을 별도의(saperate) 미디어 트랙으로 디-멀티플렉스(de-multiplex) 하는 것이 전혀 불가능하고, 특히 만약 상기 미디어가 상기 전송/멀티플렉스 레벨에서 암호화(encrypted)되거나 상기 패킷화 방식(packetization scheme)이 알려진 경우가 그러하다. 셋째로, PVR (PVRPersonal Video Recorder) 어플리케이션에서의 타임-쉬프팅(time-shifting)이, 즉 상기 파일에 기록하고 다양한 오프셋에 따라 즉시 상기 같은 파일로부터 읽는, 상기 처음 두 가지 사항 때문에 쉽게 만들어 진다.
수신 힌트 트랙으로부터의 플레이백은 IP를 통해서 수신한 상기 수신 힌트 트랙으로부터 상기 저장된 데이터 패킷을 읽는 과정 및 상기 노말 스트림 수신(normal stream reception)을 에뮬레이트 하는 과정에 의해 수행될 수 있다. 미디어 플레이백 타이밍(media playback timing)을 구비하는 미디어 트랙과 반대로, 수신 힌트 트랙은, 모든 힌트 트랙과 같이, 전송 타이밍(transport timing)을 구비한다.
서버-측(server-side) 파일의 RTP 힌트 트랙은 오직 하나의 스트림으로부터의 RTP 미디어 데이터 패킷을 저장하고, RTCP 정보 또는 키 메시지와 같은 제어 정보 또는 해당 부가 정보를 포함하고 있지 않다. RTCP 정보는, 타이밍과 같이, 스트리밍 상황(streaming situation)의 현재 상태를 표시하기 때문에, 스트리밍 서버에 의해 즉시 생성된다.
스트리밍 수신기는 수신 시간(reception times)으로부터 상기 송신기 시스템 클럭을 복구할 수 있고, 다이렉트 플레이백에 대한 각각의 언더-런 버퍼 오버플로우(buffer overflow respectively under-run for direct playback)를 피하기 위해 상기 수신기의 시스템 클럭을 상기 송신기의 시스템 클럭에 맞춰 조정한다. RTP 패킷 또는 RTCP 송신기 리포트 패킷의 도착 시간의 지터(jitter)(네트워크 지터)로 인해, 이들 중 무엇이든지 클럭 복구를 위해 이용되고, 인스턴트 클럭 복구는 불가능하다.
비동기화된 샘플링 클럭을 가지고 있는 독립된 오디오 및 비디오 캡쳐 유닛은 고정된 비율로 끊임없이 상기 미디어 타임스탬프(timestamps)가 증가함에도 불구하고 RTP 클럭을 이동(drifting)시킬 수 있다. RTPC SR은 각각의 상기 스트림에 대한 상기 NTP 및 RTP 타임스탬프를 운반하고, 따라서 상기 연루된 디바이스의 상기 이동을 추출하는데 이용될 수 있다. 많은 수의 시스템에는 상기 RTCP SR의 생성과 연루된 지터가 존재하고, 특히 NTP 및 RTP 클럭 사이의 관계에서 더욱 그러하다.
그래서 스트리밍 클라이언트는 시작 이후 즉시 완벽한 립-동기화(lip-synchronization)를 달성할 수 없을 것이라는 것이 일반적이지만, 비디오 및 오디오 스트림 사이에 립-동기화가 정확해지기 전에 특정 수의 RTCP SR을 고려할 필요가 있다.
만약 상기 송신기의 시스템 클럭이 복구될 필요가 있고, 하이 네트워크 지터(high network jitter)가 있다면, 그러면 특정 수의 RTP 패킷 또는 RTCP 송신 리포트 패킷, 이들 중 무엇이든 클럭 복구에 이용되는 것이 역시 필요하다. 네트워크 지터 및 클럭 이동은 상기 관련된 데이터 패킷의 상기 RTP 타임스탬프 외에도, 상술한 여러 RTCP SR의 정보를 이용하는 실시간 스트림 수신 동안에 재계산될 수 있다.
현재, RTP 수신 힌트 트랙은 오직 미디어 스트림의 수신된 데이터 패킷을 저장하도록 지정되어 있고, 상기 해당되는 상기 송신기 리포트의 각각의 상기 타이밍 정보, RTCP SR을 담고 있지 않다. 홀로 수신된 RTP 패킷의 상기 RTP 타임스탬프는 상이한 스트림으로부터 수신한 미디어 데이터를 동기화하기에 불충분하다. 이는 일반적으로 각각의 미디어 스트림이 임의의 값(random values)을 그것의 초기 타임스탬프 및 초기 시퀀스 넘버에 할당하고, 상기 타임스탬프의 클럭 주파수는 상기 운반된 미디어 데이터의 상기 포맷에 의존하기 때문이다. 상기 RTP 패킷의 상기 도착 또는 수신 시간은 스트림간의 동기화를 위해 이용될 수 있다. 그러나, 이러한 접근의 문제점은, RTP 는 패킷 전달을 보장하지 않고, 대역 밖으로의 전달을 방지하지도 않는다는 것이다. 결과적으로, 수신 시간에만 기반한 동기화는 정확성을 보장하지 않는다.
상술한 바와 같이, 상이한 RTP 스트림 사이의 동기화의 가장 정확한 방법은 연관 RTCP SR을 기다리는 것을 요구하고, 이것은 상기 NTP 타임스탬프 포맷의 스트림들 중 RTP 타임스탬프 및 공통 타임스탬프 사이의 전환(conversion)을 가능하게 하는 정보를 담고 있다. 상기 RTCP 송신기 리포트는 종종 특정 비트-레이트로 각각의 스트림에 대해 매 5초마다 송신되고, 두 RTCP SR 사이의 상기 타임 인터벌(time interval)은 상기 비트-레이트에 의존한다.
따라서, RTP 수신 힌트 트랙의 플레이백(playback)은 정확한 타이밍과 립 동기화와 함께, 아래와 같은 두 가지 경우에서 오직 가능할 수 있다: 첫번째, 상이한 미디어 클럭들 사이에 클럭 이동이 없으며 각 수신된 RTP 패킷을 위해 RTCP 송신기 리포트 인터스트림 동기화 데이터(RTCP sender report interstream synchronization data)를 이용할 수 있다. 그러나, 이것은 실제 환경에서 거의 일어날 가능성이 없는 이상적 상황에 해당된다. 두번째, 수신 디바이스는 저장하기 전에 상기 수신된 RTP 패킷의 RTP 타임스탬프들(timestamps)을 조절함으로써 저장하는 동안, RTCP SRS의 시간 정보를 고려해야 한다.
첫번째 경우는 오직 이론상의 케이스이고, 실제로는 일어나지 않을 수 있다. 두번째 경우는 수신기에 부담을 줄 수 있는데 이를테면, 다음 수신을 위한 수신된 스트림의 버퍼링은 타이밍 조정을 위해 몇몇의 수신기 RTCP SRs를 고려하는 것이 필요할 수 있다. 또한, 이것은 타임-이동 어플리케이션(time-shifting applications)을 위해 동일한 파일로부터의 순간 판독(instant reading) 능력에 영향을 줄 수 있다. 게다가, 원래의 수신 환경은 저장된 후에는 복구되지 못할 수 있는데, 이를테면, 롱텀 지터(long-term jitter)는 완료 스트림(the complete stream)이 이미 수신되었거나 기록된 이후, 프로세싱 스테이지에서 삭제되지 않을 수 있다.
현재 브로드캐스트 시스템은 관련된 데이터 패킷의 미디어 데이터의 해독하는 데 사용되는 사이드 정보(side-information)로서 보호된 키의 전송을 위해 키 스트림(key streams)(대역 내(in-band) 또는 대역 외(out-of-band))을 사용한다. 일반적으로 타이밍 연결(a timing relation)이 아닌, 키 스트림과 부호화된 미디어 데이터 스트림간의 오직 루스 커플링(a loose coupling)이 있을 수 있다.
DVB-H와 OMA-BCAST(Open Mobile Alliance - Mobile Broadcast Services) 에서, 키 스트림은 관련된 미디어 스트림 보다 다른 UDP 포트에 보내진 키 메시지의 분리 스트림(separate stream)으로 정의된다. 각 키 메시지는 싱글 UDP 패킷(a single UDP packet)으로서 보내진다. OMA-BCAST는 이와 같은 메시지를 숏텀 키 메시지(short-term key messages)(STKM)로 칭하고, DVB-H는 이와 같은 메시지를 키 스트림 메시지(key stream messages)(KSM)로 칭한다. 각 키 메시지는 스트림된 서비스의 공지에 따라야 하므로 오직 인증된 사용자/장치(subscribers/devices)에 의해 접근될 수 있어서, 키 메시지를 저장하는 것은 스트리밍 시스템의 보안에 해를 끼치지 않는다. 키 메시지 내부의 실제 부호 키는 서비스나 프로그램 키와 함께 보호된다.
각 키는 연관된 키 지시자(key indicator)를 가지고, 이는 부호화된 미디어 접근 유닛에서 지시된다. 복호기는 키의 존재를 체크하고, 부호화된 접근 유닛에서 키 아이디(key ID)와 함께 연관시킨다.
부호화된 미디어 접근 유닛 및 연관된 키 메시지의 동기화는 오버래핑(overlapping)되는 유효 기간(validity periods)과 함께 키의 잦은 송신에 의해 처리된다. 키는 부호화된 패킷보다 이전에 보내지고, 키 지시자의 대응과 함께 마크된다. 그리고, 키는 적어도 미디어 데이터가 상기 특정 키를 사용하는 한 유효하다.
파일의 기록중 미디어 트랙(a media track)과 같은 키 저장소는 어떤 미디어 타이밍도 스트림의 키 메시지와 함게 연관되지 않으므로, 실행 가능하지 않을 수 있다. 키와 부호화된 접근 유닛의 대응간의 미디어 타이밍 연관성은 키와 미디어 스트리밍 양측의 커플링을 처리하는 키 아이디의 분석 및 처리 과정 이후에 만들어 질 수 있다. 이러한 분석 후에, 어느 키가 어느 접근 유닛 또는 어느 비디오 프레임을 위해 사용되는 지가 명백해진다.
본 발명의 목적은 기록된 미디어 스트림의 각 플레이백중 복잡한 처리없이 기록된 상이한 미디어 스트림간의 즉각적이고 정확한 타이밍 동기화를 제공하는 것이다. 다시 말해, 본 발명의 목적은 기록된 미디어 스트림이 실행되는 매번의 시간마다 역-지터될(de-jittered) 필요가없고, 기록된 파일의 플래이백을 위해 모든 포함된 스트림의 클럭-복구(clock-recovery)가 필요하지 않다는 것이다.
상기 목적은 청구항 제1항을 기초로 저장된 데이터 패킷의 처리 장치, 청구항 제20항을 기초로 저장된 데이터 패킷의 처리 방법, 청구항 제22항을 기초로 한 파일 판독 장치, 청구항 제23항을 기초로 한 파일 판독 방법 중 하나에 의해 해결될 수 있다.
상기 언급된 목적의 해결을 위해, 본 발명의 실시예는 또한, 상기 발명의 방법을 수행하기 위한 컴퓨터 프로그램을 제공할 수 있다.
본 발명은 앞서 언급된 문제가 동시에 수신되어 스트림된 미디어 데이터 패킷의 저장뿐만 아니라, 사이드-정보를 전달하는 수신 동안 연관된 데이터-,특히 미디어 스트림과 대응하여 전달된 모든 연관된 데이터이를 테면, RTCP 송신기 리포트를 포함하는 RTCP 메시지-의 저장 또는, 수신되어 스트림된 미디어 데이터 패킷으로 이루어진 미디어 데이터에 연관된 부호화 키를 포함하는 키 메시지의 저장으로 해결될 수 있다는 발견을 기반으로 한다.
상기 수신된 연관 데이터 또는 사이드-정보는 이른바 “연관 수신 힌트 트랙”(associated reception hint track, arht)의 방식으로 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일에 저장된다. 상기 트랙은 예를 들어 ISO/IEC 14496 12의 트랙 참조 메커니즘을 사용하여, 대응하는 수신 힌트 트랙으로 묶여진다.
관련된 수신 힌트 트랙처럼, 연관된 수신 힌트 트랙도 예를 들어 수신기의 시스템 클럭의 타임스탬프와 같은 방식으로 전송 타이밍을 저장한다. 이는 플레이백의 이후 스테이지에서 원래의 패킷 수신의 타이밍 상태의 복구가 가능하도록 할 수 있다.
상기 수신 힌트 트랙 및 연관 수신 힌트 트랙은 파일의 메타 데이터 컨테이너 내에 있는 메타 데이터 부분 및 미디어 데이터 컨테이너의 패킷 데이터 부분을 포함한다.
본 발명에 따르면, RTCP SRs 및 관련된 전송 타이밍 정보와 같은 메시지는 연관 수신 힌트 트랙의 기록 중에 저장될 수 있다. 또한, 수신된 미디어 RTP 패킷 및 관련된 전송 타이밍은 수신 힌트 트랙에 즉시 저장될 수 있다. 기록하는 동안, 어떠한 역-지터 프로세스나 립-동기화 교정이 수행되지 않을 수 있다.
이를 위하여, 본 발명에 의하면, 관련된 미디어 데이터 컨테이너 및 메타 데이터 컨테이너를 가지는 파일을 기록하는 장치를 제공할 수 있다. 상기 장치는 제1 클럭을 근거로 제1 미디어 데이터 샘플을 포함하는 제1 데이터 패킷을 수신하고, 상기 제1 클럭과 다른 제2 클럭을 근거로 하는 제2 미디어 데이터 샘플을 포함하는 제2 데이터 패킷을 수신하는 수신기를 포함하며, 여기서 제2 미디어 데이터 샘플은 제1 미디어 데이터 샘플에 연관된다. 또한, 수신기는 참조 클럭에 대한 제1 클럭의 관계를 가리키는 정보를 포함하는 제1 제어 패킷을 수신하고, 참조 클럭에 대한 제2 클럭의 관계를 가리키는 정보를 포함하는 제2 제어 패킷을 수신하는 데 이용될 수 있다. 또한, 상기 장치는 상기 수신된 제1 및 제2 데이터 패킷과, 미디어 컨테이너 내 상기 수신된 제1 및 제2 제어 패킷의 적어도 일부분을 저장하고, 메타 데이터 컨테이너에 연관 메타 데이터(associated metadata)를 저장하는 기록 장치(recorder)를 포함하며, 상기 연관 메타 데이터는 상기 수신된 제1 및 제2 데이터 패킷과 상기 수신된 제1 및 제2 제어 패킷의 타이밍 정보를 포함하고, 상기 저장된 제1 및 제2 데이터 패킷과 상기 저장된 제1 및 제2 제어 패킷의 미디어 데이터 컨테이너내 위치를 가리키는 위치 정보를 포함한다.
본 발명에 따르면, 상기 기록 장치는 상기 수신된 제1 및 제2 데이터 패킷을 상기 미디어 데이터 컨테이너의 제1 청크(first chunks) 내의 샘플로 저장하고, 상기 수신된 연관 제1 및 제2 제어 패킷의 적어도 일부분을 상기 미디어 데이터 컨테이너의 제2 청크 내의 샘플로 저장하는 데 적용될 수 있다.
본 발명에 따르면, 상기 기록 장치는 상기 메타 데이터 컨테이너의 제1 트랙내에 상기 제1 및 제2 데이터 패킷의 상기 타이밍 정보 및 상기 위치 정보를 저장하고, 상기 파일의 메타 데이터 컨테이너의 제2 트랙내에 상기 제1 및 제2 제어 패킷의 상기 타이밍 정보와 상기 위치 정보를 저장한다.
본 발명에 따르면, 상기 파일은 ISO 기반 미디어 파일 포멧(ISO base media file format)을 기초로 할 수 있다. 본 발명에 따르면, 상기 파일은 3GP나 MP4-파일을 기반이 될 수 있다.
본 발명에 따르면, 상기 제1 데이터 패킷은 패킷화된 제1 미디어 샘플(이를테면, 압축된 비디오)을 포함하는 처음 스트림된 RTP 패킷이고, 상기 제1 제어 패킷은 제1 RTCP 송신기 리포트를 포함하는 상기 제1 스트림된 RTP 패킷과 관련된 RTCP 패킷이다. 상기 제2 데이터 패킷은 패킷화된 제2 미디어 데이터 샘플(이를테면, 비디오와 관련된 압축된 오디오)을 포함하는 제2 스트림된 RTP 패킷이고, 상기 제2 제어 패킷은 제2 RTCP 송신기 리포트를 포함하는 상기 제2 스트림된 RTP 패킷에 관련된 RTCP 패킷이다.
상기 제1 및 제2 데이터 패킷과 상기 연관 제어 패킷의 병행 저장소(Parallel storage)는 기록 프로세스가 여전히 용이하고, 추후 단계에서 기록된 파일로부터 미디어 스트림을 재생하기 위해 필요한 모든 정보를 저장할 수 있는 장점을 가진다. 상기 연관 수신 힌트 트랙,이를 테면 상기 미디어 데이터 컨테이너의 상기 저장된 제어 패킷과, 상기 메타 데이터 컨테이터의 상기 연관 메타 정보는 상기 수신 힌트 트랙, 이를 테면 상기 미디어 데이터 컨테이너 내에 저장된 제1 및/또는 제2 데이터 패킷과 상기 파일의 상기 메타 데이터 컨테이너의 그에 연관된 메타 정보의 플레이백 동안 사용된다.
상기 기록된 파일의 플레이백을 위해, 본 발명의 구체적인 실시예는 상기 파일 판독 장치를 제공하고, 상기 파일은 상기 파일과 관련된 미디어 데이터 컨테이너 내에서 제1 클럭을 기초로 패킷화된 제1 미디어 데이터 샘플을 포함하는 제1 데이터 패킷과, 상기 제1 클럭과 다른 제2 클럭을 기초로 패킷화된 제2 미디어 데이터 샘플을 포함하는 제2 데이터 패킷을 포함한다. 또한, 상기 파일은 참조 클럭에 대한 상기 제1 클럭의 관계를 가리키는 정보를 포함하는 제1 연관 제어 패킷의 적어도 일부분과, 참조 클럭에 대한 상기 제2 클럭의 관계를 가리키는 제2 연관 제어 패킷의 적어도 일부분을 저장한다. 상기 파일은 상기 파일의 메타 데이터 컨테이너 내의 연관 메타 데이터를 저장하며, 상기 연관 메타 데이터 컨테이너는 상기 수신된 제1 및 제2 데이터 패킷과 상기 수신된 제1 및 제2 제어 패킷의 타이밍 정보와, 상기 저장된 제1 및 제2 데이터 패킷의 위치와 메타 데이터 컨테이너내의 상기 저장된 제1 및 제2 제어 패킷의 위치를 가리키는 위치 정보를 포함한다. 상기 파일판독 장치는 메타 데이터 컨테이너에 접근함으로써 그리고 미디어 데이터 컨테이너의 상기 저장된 제1 및 제2 데이터 패킷과 상기 저장된 제1 및 제2 제어 패킷의 타이밍 정보를 해석함으로써, 상기 저장된 제1 및 제2 데이터 패킷의 출력 스케줄을 결정하는 프로세서를 포함한다. 상기 장치는 상기 미디어 데이터 컨테이너에 접근함으로써 그리고 상기 미디어 데이터 컨테이너로부터 상기 데이터 패킷을 판독함으로써 상기 결정된 출력 스케줄과 대응하는 상기 제1 및 제2 데이터 패킷을 출력하는 출력 컨트롤러를 더 포함한다.
본 발명의 구체적인 실시예에 따르면, 상기 저장된 제1 및 제2 데이터 패킷과 상기 저장된 제1 및 제2 연관 제어 패킷은 립-동기화, 클럭-복구(clock-recovery) 및/또는 클럭-드리프트 조정(clock-drift adjustment)을 위한 온-더-플라이(on-the-fly)가 수행된다. 이러한 종류의 플레이백은 기록된 미디어 스트림의 실험된 실시간 수신(simulated live reception)에 해당한다.
기록된 수신 힌트 트랙(제1 및 제2 데이터 패킷)과, 기록된 연관 수신 힌트 트랙(제1 및 제2 제어 패킷)은 전체 기록을 포괄한다. 플레이백 또는 재실행(replay) 동안, 상기 연관 수신 힌트 트랙의 제어 데이터는, 이를 테면 미리 획득된(pre-fetch) RTCP SRs의 방식으로 선취되며(prefetche), 이는 이를 테면 다중의 미래 RTCP SRs를 고려함에 따른 정확한 립-동기화를 위한 것으로, 상기 미래 RTCP SRs는 현재 플레이백 타임 인스턴트의 미래에서의 타임 인스턴트들(time instants)와 관련된다.
본 발명의 장점은 상기 연관되어 수신된 힌트 트랙의 개념이, 이를테면 미디어 스트림이 수신되는 동안의 제어 정보 기록은 추가적인 복잡성 없이 파일로부터 스트림의 동기화된 플레이백을 위해 관련된 모든 정보의 용이한 기록 프로세스를 가능하게 한다는 것이다.
기록된 파일이 롱-텀 저장(long-term storage)을 의도한 것이고 결국 많은 시간 재생될 것인 경우, 매번 플레이백되는 동안 상기 연관 메타 데이터와 함께 상기 저장된 제1 및 제2 데이터 패킷과 상기 저장된 제1 및 제2 제어 패킷을 각각 분석하는 것을 피하고, 그 대신 이를 테면, 미래의 프로세싱 없이 즉시 이용할 수 있는, 상기 저장된 제1 및 제2 데이터 패킷에 의해 이루어지는 상기 제1 및 제2 미디어 데이터 샘플의 재실행 타이밍과 같은 미디어 타이밍을 가지는 것이 바람직하다.
일반적으로, 이것은 상기 수신 힌트 트랙으로부터 상기 저장된 데이터 패킷을 역 패킷화(de-packetize)하고, 그것을 연관 미디어 데이터 컨테이너의 미디어 트랙에 트랙당 하나의 엘레멘터리 스트림(elementary stream)과 함께 저장하는 것을 포함할 수 있다. 예를 들어, 만약 전송 암호화가 스트림 패킷에 적용되거나 또는 저장 용량(storage capacity)이 제한된다면, 이것이 항상 가능하거나 바람직한 것은 아니다.
전송 패킷의 정확한 타이밍 이외에도, 상기 수신 힌트 트랙(상기 저장된 제1 및 제2 데이터 패킷을 메타 정보에 추가)에 대하여 유효한 정보를 확장하는 것이 바람직하며, 이러한 정보는 특히, 상기 제1 및 제2 데이터 패킷 내의 메타 데이터 샘플의 정보, 이를 테면, 프레임-어큐레이트(frame-accurate) SMPTE(Society of Motion Picture and Television Engineers) 타임스탬프 (timestamps) 또는 비디오 트랙의 서브 타이틀이 해당될 수 있다.
이러한 목적을 위해, 본 발명의 실시예에 따르면, 상기 파일에 대응하는 미디어 데이터 컨테이너에 저장된 전송 프로토콜에 관련된 데이터 패킷을 처리하고, 상기 파일의 메타 데이터 컨테이너 내 저장된 관련 메타 정보를 처리하 는 장치를 제공하고, 상기 연관 메타 정보는 상기 저장된 데이터 패킷의 미디어 컨테이너 내의 위치를 가리키는 위치 정보 및 전송 타이밍 정보를 포함 한다. 상기 장치는 저장된 데이터 패킷 및 저장된 연관 메타 정보를 기반으로 하여 저장된 데이터 패킷의 페이로드를 위한 디코딩 정보를 결정하는 프로세서를 포함하며, 여기서 디코딩 정보는 어느 타임 인스턴트에서 기 저장된 데이터 패킷의 어느 페이로드를 재실행할 지를 나타낸다.프로세싱 장치는 단일 장치(stand-alone device)가 될 수 있고, 파일을 저장하기 위해 앞서 기술된 장치로 통합된 장치가 될 수 있다.
본 발명의 실시 예에 따르면, 상기 저장된 데이터 패킷은 MPEG-2 전송 스트림 패킷을 포함할 수 있다. 다른 실시예에 따르면, 상기 저장된 데이터 패킷은 패킷화된 미디어 데이터를 포함한 RTP 패킷을 포함할 수 있다.
본 발명의 실시 예에 따르면, 디코딩 정보는 미디어 접근 유닛 베이스로 결정된다. 다시 말해, 각 접근 유닛, 이를테면, 미디어 프레임 을 위한 디코딩 정보 샘플)은 파일의 미디어 데이터 컨테이너에 저장되고, 상기 디코딩 정보 샘플은 미디어(이를 테면, 비디오/ 오디오) 프레임을 얻기 위하여 저장된 데이터 패킷의 어느 부분으로부터 어느 미디어 데이터 샘플을 획득하는 지를 이 가리킨다. 상기 디코딩 정보 샘플과 관련된 메타 정보는 메타데이터 컨테이터의 디코딩 정보 메타데이터 트랙(decoding information metadata track)에 저장된다. 따라서, 상기 디코딩 정보 메타데이터 트랙(ISO 기반 미디어 파일 포맷의 “트랙(trak)” 박스/아톰(atom))은 디코딩 정보 샘플을 위한 타이밍과 위치 정보를 포함한다.
상기 저장된 디코딩 정보 샘플과 그에 연관된 디코딩 정보의 메타데이터 트랙-또한 아래에서 “가상 미디어 트랙”으로도 불림은 연관 수신 힌트 트랙의 개념을 생성하고, 플레이백의 앞서 기술된 장점을 제공한다. 가상 미디어 트랙의 메타 데이터 부분에서는, 미디어 데이터 컨테이너 내의 관련된 디코딩 정보 샘플의 미디어 타이밍이 제공된다. 디코딩 정보 샘플은 관련 미디어 접근 유닛을 위한 미디어 데이터를 얻기 위해, 어느 저장된 데이터 패킷 또는 전송 유닛으로부터 정보를 제공하며, 이는 미디어 패킷의 역-패킷화(de-packetization)를 불필요하게 만든다. 가상 미디어 트랙은 수신 힌트 트랙, 만약 필요하다면, 연관 수신 힌트 트랙으로부터 정보를 사용하여 미디어 스트림의 최종 수신 이후에 생성될 것이다. 이것은 “역힌팅 프로세스”(reversed hinting process)에서 수행되고, 그 결과 파일은 플레이백 장치를 파일에서 검색할 수 있게 하고 미디어 타이밍 기반의 미디어로의 랜덤 접근을 할 수 있게 한다.
가상 미디어 트랙은 불완전한 미디어 트랙으로 보일 수 있다. 그러므로, RTP 및 RTCP 수신 힌트 트랙으로부터 복구된 타이밍과 미디어 트랙의 모든 인덱스(일반적으로, “샘플 테이블”을 사용함에 의함)는 적용될 수 있다. 또한, 적절한 메타 데이터 트랙은 가상 미디어 트랙 및 그 확장을 참조할 수 있다.
가상 미디어 트랙은 수신 힌트 트랙 전송 유닛으로부터의 접근 유닛의 복원을 위한 생성자를 포함할 수 있는 코딩 정보 샘플(가상 미디어 샘플)에 의해 생성될 수 있다. 또한, 디코딩 정보 샘플은 접근 유닛(불완전한 생성자)의 복구를 위해 관련된 하나 또는 그 이상의 주 전송 유닛(significant transmission units)으로의 링크를 포함할 수 있다.
또한, 디코딩 정보 샘플 또는 가상 미디어 트랙의 가상 미디어 샘플은 없어질 수 있으며, 이를 테면, 수신 프로세스 도중 패킷 분실의 경우가 해당된다. 그렇지 않으면, 가상 트랙의 디코딩 정보 샘플-다음에서 가상 미디어 샘플로서 불림-은 일반적인 미디어 트랙처럼 완전히 압축되지 않은 미디어 샘플을 포함할 수 있다.
가상 미디어 트랙의 샘플 테이블 내 인덱스로부터의 정보(그리고, 이를테면, 적절한 메타 트랙으로부터의 연관 정보)는 수신 힌트 트랙의 대응하는 전송 유닛으로의 링크에 따라 참조 수신 힌트 트랙에 논리적으로 부가될 수 있다.
만약 이러한 사항(description)이 스트림으로부터 완전히 복구되지 않는다면, 가상 미디어 트랙은 가상 미디어 샘플의 개략적이고 불완전한 사항을 포함할 수 있다. 특히, 이것은 데이터 패킷이 부호화되거나 역-패키지화 스키마(de-packetization scheme)를 완전히는 알 수 없을 때, 적용될 수 있다.
가상 미디어 트랙을 재실행하기 위해, 본 발명의 실시예는 파일 판독 장치를 제공하고, 상기 파일은 파일과 관련된 미디어 데이터 컨테이너 내에 페이로드를 포함하는 데이터 패킷을 저장하고, 상기 미디어 데이터 컨테이너 내에 상기 저장된 데이터 패킷의 페이로드를 위한 디코딩 정보를 저장하고, 여기서, 디코딩 정보는 어느 타임 인스턴트에서 상기 저장된 데이터 패킷의 어느 페이로드를 재 실행할 지를 나타내며, 상기 파일은 미디어 데이터 컨테이너에 연관된 메타 데이터를 저장하고, 상기 연관된 메타 데이터는 상기 미디어 데이터 컨테이너 내 디코딩 정보의 위치와 디코딩 타임을 가리킨다.장치는 미디어 데이터 컨테이너에서 연관 메타 데이터에 접근함으로써, 메타 데이터를 기반으로 미디어 데이터 컨테이너내 디코딩 정보에 접근함으로써, 디코딩 정보를 기반으로 저장된 데이터 패킷의 페이로드에 접근함으로써, 저장된 데이터 패킷의 페이로드의 출력 스케줄을 결정하는 프로세서를 포함한다.
기록 중 수신된 데이터 패킷의 온-더-플라이 변환(on-the-fly conversion)을 미디어 트랙에 비교하면, 가상 미디어 트랙은 미디어 데이터(저장된 데이터 패킷)의 역패키지화에 대한 필요성 없는 미디어 타이밍 및 메타 데이터를 제공하고, 이에 따라 저장 공간을 절약할 수 있다. 미디어 타이밍을 근거로 파일을 검색하는 플레이백 장치가 가능해진다. 가상 미디어 트랙은 파일 사이즈를 두배로 증가시키지 않고 수신 힌트 트랙 및 미디어 트랙의 장점을 결합하며, 이는 만약 기본적인 미디어 트랙이 파일에 추가되는 경우가 될 수 있다. 가상 미디어 트랙의 개념과 함께, 원래의 수신 프로세스의 모든 정보는 유지되는데, 이를테면 에러 은폐(error concealment)를 돕는 잃어버린 패킷에 대한 정보 및 립-동기화를 돕는 수신 타이밍에 대한 정보가 될 수 있다. 동시에, 미디어 접근을 위한 전통적인 미디어 트랙의 모든 가능성은 본 발명의 가상 미디어 트랙에 의해 제공될 수 있다. 또한, 전통적인 미디어 트랙과 비교하여 보다 더 많은 유연성이 제공될 수 있다. 만약 저장된 전송 유닛(데이터 패킷)이 접근 유닛(미디어 프레임)으로 완전히 언패킷화(unpack)되거나, 만약 접근 유닛의 재통합을 위한 유일한 생성자 또는 링크가 저장되면,이를 테면, 저장공간을 절약하기 위해, 그것은 샘플대샘플 기반(sample-by-sample basis)으로 인해 결정될 것이다. 또한, 모든 가능성은 하나의 가상 미디어 트랙,즉, 완전한 접근 유닛을 가지는 가상 미디어 샘플이나 디코딩 샘플, 생성자, 링크나 비워지는 것에서 혼합(mix)될 수 있다.
멀티플 가상 미디어 트랙은 동일하게 기록된 데이터 패킷 스트림의 상이한 인덱스를 허용하는 동일한 수신 힌트 트랙으로부터의 전송 유닛이나 데이터 패킷을 참조할 것이다. 이를테면, 랜덤 접근과 함께 두 개의 가상 미디어 트랙, 오디오와 관련된 하나, 비디오와 관련된 다른 하나는 동일한 MPEG-2 스트림 수신 힌트 트랙의 오디오 및 비디오의 인덱스를 가리킬 것이다.
상기 수신되고 저장된 데이터 패킷에서 부호화된 미디어 데이터 샘플의 재 실행 또는 플레이백을 가능하게 하기 위해, 연관된 키 스트림 메시지는-데이터 패킷과 별도로(aside)-파일의 미디어 데이터 컨테이너 내에 저장될 수 있다. 키 스트림 메시지는 본 발명의 일 실시예에 따라 키 스트림 수신 힌트 트랙의 샘플 내에 저장된다. 수신 시간(전송 시간)은 대응하는 수신 힌트 트랙 내에서 키 메시지를 부호화된 미디어 패킷에 할당하기 위해 키 스트림 샘플의 타임 스탬프로서 사용될 수 있다. 트랙 참조는 키 스트림 수신 힌트 트랙을 미디어 수신 힌트 트랙에 연관시키는 데 사용된다.
파일의 기록을 위해, 본 발명의 일 실시예는 연관 미디어 데이터 컨테이너 및 메타 데이터 컨테이너를 가지는 파일을 기록하는 장치를 제공한다. 상기 장치는 페이로드를 각각 가진 데이터 패킷을 수신하고, 복수의 부호 키를 가진 키 스트림을 수신하는 수신기를 포함하며, 여기서 각 부호 키는 데이터 패킷의 페이로드에 연관된다. 장치는 미디어 데이터 컨테이너 내 수신된 데이터 패킷 및 수신된 키 스트림 패킷을 저장하고, 메타 데이터 컨테이너 내 연관 메타 데이터를 저장하는 기록장치를 포함하며, 상기 연관 메타 데이터는 수신된 데이터 패킷 및 수신된 키 스트림 패킷의 전송 타이밍 정보와, 미디어 데이터 컨테이너 내 저장된 데이터 패킷 및 저장된 키 스트림 패킷의 위치를 가리키는 위치 정보를 포함한다. 데이터 패킷 및 키 스트림 패킷을 기록하는 장치는, 독립적인 장치나, 저장 및/또는 처리를 위해 명시된 장치와 함께 통합되거나 결합되는 장치가 될 수 있다.
본 발명의 실시예에 따르면, 기록장치는 수신된 데이터 패킷을 미디어 데이터 컨테이너의 제1 청크 내 샘플로 저장하고, 수신된 연관 키 스트림 패킷을 미디어 데이터 컨테이너의 제2청크 내 샘플로 저장하는 데 이용될 수 있다. 본 발명의 실시예에 따르면, 기록 장치는 미디어 데이터 컨테이너의 제1 트랙 내 데이터 패킷의 위치 정보 및 타이밍 정보를 저장하고, 메타 데이터 컨테이너의 제2 트랙 내 키 스트림 패킷의 위치 정보 및 전송 타이밍 정보를 저장하는 데 이용될 수 있다.
본 발명의 일 실시예에 따르면, 상기 파일은 ISO 기반 미디어 파일 포멧을 기반으로 한다.
본 발명의 일 실시예에 따르면, 상기 데이터 패킷은 MPEG-2 전송 스트림 패킷을 포함한다.
본 발명의 다른 실시 예에 따르면, 상기 데이터 패킷은 패킷화된 미디어 데이터 샘플을 가진 RTP 패킷을 포함한다.
데이터 패킷 스트림 및 연관된 키 스트림의 수신 후 플레이백이 용이하도록 하기 위해, 한 번의 프로세싱은 키 스트림 수신 힌트 트랙을 가상 메타 데이터 트랙으로 변환하기 위해 수행될 것이다. 키 스트림 수신 힌트 트랙으로부터 전송 타이밍과 함께하는 키 메시지는 앞서 기술된 가상 미디어 트랙과 유사하게, 가상 메타 데이터 트랙에서 미디어 타이밍과 함께 키 샘플로 전송 될 것이다. 필요하면, 키 샘플은 가상적으로 두 배가 되어, 미디어 트랙 내 각각의 미디어 샘플이 키 트랙에서 연관 키 샘플을 조합할 수 있다.
따라서 미디어 접근 유닛과 키 메시지 사이에 정확한 타이밍 관계를 생성하는 것은, 특히 부호화된 접근 유닛이 전송 유닛(콘텐트 부호화의 경우)으로부터 재생성된다면, 가능하다.
재실행의 실시예로서 파일 판독 장치를 제공하며, 상기 파일은 패킷화된 미디어 데이터 샘플을 포함하는 파일을 저장하고 미디어 데이터 컨테이너에서 상기 파일에 관련하여 연관 키 스트림 패킷 을 가지는 파일을 저장한다.상기 파일은 메타 데이터 컨테이너에서 연관 메타 데이터를 저장하며, 상기 연관 메타 데이터는 수신된 데이터 패킷 및 수신된 키 스트림의 전송 타이밍 정보와, 미디어 데이터 컨테이너에서 저장된 데이터 패킷 및 저장된 키 스트림 패킷의 위치를 가리키는 위치 정보를 포함할 수 있다. 또한, 장치는 데이터 패킷을 기반으로 하고, 할당된 메타 정보를 기반으로 하고, 저장된 키 스트림 패킷 및 연관된 키 스트림 메타 정보를 기반으로 하여, 부호화 정보를 저장된 데이터 패킷의 페이로드에 할당하는 프로세서를 포함할 수 있으며, 여기서 상기 부호화 정보는 저장된 데이터 패킷의 페이로드를 재실행하기 위해 어느 시간에 어느 복호 키를 사용해야 하는 지를 가리킨다. 출력은 상기 할당된 해독 정보를 기반으로 하여 복호화된 데이터 패킷의 출력을 위해 제공된다.
본 발명의 실시예들은 키 메시지의 수신 타이밍과, 수신된 데이터 패킷에 대한 타이밍 관계를 보유한다. 본 발명의 실시 예들은 수신된 데이터 패킷을 가진 미디어 트랙 내 각각의 대응하는 미디어 샘플을 위해 파일이 메타 데이터 트랙을 키 메시지와 함께 포함하였을 때, 수신된 파일이 플레이백으로 활용된 파일들로 변환되는 것이 가능하다. 그러므로, 플레이백 도중 정확한 키를 위한 기록된 키 트랙의 분석(parse)이 필요한 것은 아니다.
본 발명에 의하면, 저장된 미디어 스트림의 각 플레이백(playback)에서 복잡한 처리없이 기록된 미디어 스트림간의 즉각적이고 정확한 타이밍 동기화를 이룰 수 있다.
본 발명의 목적과 특징은 다음 도면과 관련되어 설명되는 상세한 설명으로부터 명확해질 것이다.
도 1은 본 발명의 일 실시예에 따른 파일 기록 장치의 개략적인 블록 다이어그램이다.
도 2는 본 발명의 일 실시예에 따른 관련된 미디어 데이터 컨테이너 및 메타 데이터 컨테이너를 가진 기록된 파일의 개략적인 파일 구조를 보여준다.
도 3은 ISO 기반 미디어 파일 포멧을 기초로 한 개략적인 구조를 보여준다.
도 4는 본 발명의 일 실시예에 따른 파일 기록 방법의 플로우 차트를 보여준다.
도 5는 본 발명의 다른 실시예에 따른 파일 기록 방법의 플로우 차트를 보여준다.
도 6은 본 발명의 일 실시예에 따라 가상 미디어 트랙을 획득하기 위한 파일의 처리 및 기록장치의 개략적인 블록 다이어그램을 보여준다.
도 7은 본 발명의 일 실시예에 따라 가상 비디오 트랙을 가지는 기록된 파일의 개략적인 구조를 보여준다.
도 8은 본 발명의 일 실시예에 따라 데이터 패킷을 기록하고, 가상 미디어 샘플을 생성하며, 가상 미디어 샘플을 이용하여 저장된 데이터 패킷으로 이뤄진 미디어 샘플을 재실행하는 방법의 플로우 차트를 보여준다.
도 9는 본 발명의 일 실시예에 따라 저장된 데이터의 페이로드로 이루어진 미디어 프레임을 참조하는 가상 미디어 샘플의 기술적인 정보를 어떻게 획득하는 지의 예시를 보여준다.
도 10은 본 발명의 일 실시예에 따른 가상 미디어 트랙과 수신 힌트 트랙의 샘플의 매핑을 보여준다.
도 11은 본 발명의 다른 실시예에 따른 파일 기록 장치의 개략적인 블록 다이어그램을 보여준다.
도 12는 모바일 티비 환경에서의 미디어 동기화와 키 스트림의 원리를 보여준다.
도 1은 관련된 미디어 데이터 컨테이너(104) 및 메타 데이터 컨테이너(106)를 가지는 파일(102) 기록 장치(100)의 개략적인 플로우 차트를 보여준다.
장치(100)는 제 1 클럭을 근거로 패킷화된 제 1 미디어 데이터 샘플을 포함하는 제 1 데이터 패킷(110)을 수신하고, 상기 제 2 클럭과 다른 제 2 클럭을 근거로 한 제 2 미디어 데이터 샘플을 포함하는 제 2 데이터 패킷(112)을 수신하는 수신기(108)를 포함하며, 여기서 상기 제 2 미디어 데이터 샘플은 상기 제 1 미디어 데이터 샘플과 연관된다. 나아가, 수신기(108)는 참조 클럭에 대한 제1 클럭의 관계를 가리키는 정보를 포함하는 제1 제어 패킷(114)을 수신하고, 상기 참조 클럭에 대한 제2 클럭의 관계를 가리키 는 정보를 포함하는 제2 제어 패킷(115)을 수신한다. 또한, 장치(100)는 상기 저장된 제1 및 제2 데이터 패킷(110, 112)과 상기 미디어 데이터 컨테이너(104) 내의 상기 수신된 제1 및 제2 제어 패킷(114, 115)의 최소의 부분을 저장하고, 메타 데이터 컨테이너(106) 내의 연관 메타 데이터를 저장하는 기록장치(116)를 포함한다. 상기 연관 메타 데이터는 상기 수신된 제1 및 제2 데이터 패킷(110, 112)과 상기 수신된 제1 및 제2 제어 패킷(114, 115)의 타이밍 정보를 포함한다. 또한, 상기 연관 메타 데이터는 상기 메타 데이터 컨테이너(104) 내에서, 상기 저장된 제1 및 제2 데이터 패킷(110, 112)와 상기 저장된 제1 및 제2 제어 패킷(114, 115)의 위치를 가리키는 위치 정보를 포함한다.
본 발명의 실시 예에 따르면, 제1 데이터 패킷(110)은 패킷화된 제1 미디어 데이터 샘플(이를 테면, 비디오)을 포함하는 처음 스트림된 RTP 패킷이 될 수 있고, 제2 데이터 패킷(112)은 패킷화된 제2 미디어 데이터 샘플(이를테면, 오디오)을 포함하는 두 번째로 스트림된 RTP 패킷이 될 수 있다. 따라서, 제1 제어 데이터 패킷(114)는 상기 처음 스트림된 RTP 패킷과 연관된 RTCP 패킷이 될 수 있으며,여기서, 상기 제2 제어 데이터 패킷(115)는 상기 두 번째로 스트림된 RTP 패킷(112)와 연관된 RTCP 패킷이 될 수 있다.
상기 파일(102)는 본 발명의 일 실시예에 따라 ISO 기반 미디어 파일 포멧을 기초로 한 파일이 될 수 있다. 이를테면, 상기 파일 포멧은 MPEG-4-겸용의 파일 포멧(MPEG-4-compatible file format)이 될 수 있으며 다시 말해, 상기 파일(102)는 ISO/IEC 14496-14에 열거된, 이른바 MP4 파일이 될 수 있다. MP4 파일 포멧은 상기 메타 데이터 컨테이너(106)에 저장된 메타 데이터와, 미디어 데이터 컨테이너(104)에 저장된 미디어와 일반적으로 관련된 정보를 칭하는 메타 데이터로 구성된다. 상기 메타 데이터 컨테이너(104)는 상기 파일(102)의 외부에 존재할 수 있다. 이를테면, 메타 데이터 컨테이너(104)는 파일(102)에서 링크에 의해 참조될 수 있는 곳인, 분리된 저장 위치가 될 수 있다. 일반적으로, 미디어 데이터 컨테이너(104)에 저장된 메타 데이터는 비디오 또는 오디오로 부호화(encoding)된다. 상기 컨테이너들(104, 106)은 관련 설명에서 박스들(boxes) 또는 아톰들(atoms)로 칭해지는 데이터 구조가 될 수 있다.
일반적으로, 박스는 크기 필드와 타입 필드와 데이터 필드로 구성된다. 전체 박스의 크기는 크기 필드를 포함하는 수 많은 바이트로, 상기 박스의 타입 필드에 저장된다. 박스의 지시자는 주로 4 자리로 구현되며, 상기 박스의 타입 필드에 저장된다. 실제 헤더 데이터와 메타 데이터는 데이터 필드에 저장된다. 메타 데이터 컨테이너(106)는 일반적으로 무비 박스(movie box, “moov”)로 칭해지는 박스 구조를 사용하여 상술한 MP4 파일 포멧을 이 룬다. 마찬가지로, 미디어 데이터 컨테이너(104)는 미디어 데이터 박스(media data box, 이하, “mdat”)로 칭한다.
미디어 데이터 컨테이너(mdat)(104)는 일반적으로 이른바 청크(chunks)로 그룹화된 데이터 유닛 또는 샘플의 결과로 구성된다. 청크는 다른 사이즈가 될 수 있으며, 청크 내의 샘플도 다른 사이즈가 될 수 있다.
본 발명의 일 실시 예에 따르면, 기록장치(116)는 미디어 데이터 컨테이너(104)의 제1 청크(118) 내의 샘플처럼, 제1 및 제2 수신된 데이터 패킷(110, 112)의 저장에 사용된다. 또한, 기록장치(116)는 도 2에서 볼 수 있듯이, 상기 미디어 데이터 컨테이너(104)의 제2 청크(112)내 샘플처럼, 상기 수신된 연관 제1 및 제2 제어 패킷(114, 115)의 적어도 하나의 부분을 저장할 수 있다.
청크(118, 122)의 저장은 인터리브(interleave)한 방법으로 수행될 수 있다.
이에 따라, 청크의 샘플은 하나 또는 그 이상의 수신된 데이터 패킷을 포함할 수 있다. 이는 제1 청크(118)의 샘플이 하나 이상의 수신된 제1 및/또는 제2 RTP 패킷(110, 112)을 포함할 수 있고, 제2 청크(122)의 샘플이 상기 수신된 제1 및/또는 제2 제어 패킷(114, 115)의 하나 이상의 제1 및/또는 제2 RTCP SRs을 포함할 수 있는 것을 말한다.
복수의 제1 청크(118)는 (RTP-) 수신 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 마찬가지로, 복수의 제2 청크(122)도 상기 수신 힌트 트랙을 위한 연관 (RTCP-) 수신 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 다시 말해, 도 1 또는 도 2의 경우, 모든 수신된 RTP 패킷(110, 112)을 위한 하나의 RTP 수신 힌트 트랙과, 모든 수신된 RTCP 패킷(114, 115) 또는 SRs를 위한 하나의 연관 RTCP 수신 힌트 트랙이 있다. 이는 최소의 레코딩 복잡성(recoding complexity)인 경우가 해당될 수 있다.
하나의 RTCP 수신 힌트 트랙은 일반적인 패킷 페이로드 형성 데이터(generic packet payload configuration data)가 필요하지 않더라도, 그것은 RTP 수신 힌트 트랙 기반의 연관된 것의 SDP(Session Description Protocol) 정보의 조합에 유용할 수 있다.
RTCP 수신 트랙 샘플 페이로드는 로 RTCP 패킷(raw RTCP packet)으로 구성된다. 이때, 로 RTCP 패킷은 그것의 RTCP 헤더에 직접 포함될 수 있거나, 하나의 샘플에 멀티플 RTCP 패킷의 저장을 허용하기 위해 다른 구조에 삽입될 수 있다.
RTCP 샘플의 타이밍은 그것의 연관된 RTP 수신 힌트 트랙의 타이밍 방법에 따라 좌우된다. 만약 RTP 수신 힌트 트랙이 RTP 타임 스탬프에 따라 디코딩 시간을 운용한다면, RTCP 수신 힌트 트랙은 RTCP 패킷의 RTP 타임 스탬프에 따라 디코딩 시간을 운용할 것이다. 만약, 수신 시간이 RTP 수신 힌트 트랙을 위해 사용된다면, 수신 타이밍은 RTCP 패킷의 저장을 위해서도 사용될 것이다. 일반적으로, RTP 수신 힌트 트랙과 RTCP 수신 힌트 트랙은 동기화되고, 동일한 시간을 기반을 사용한다.
도 1 및 도 2를 참조하면, 기록장치(116)는 미디어 데이터 컨테이너(106)의 제1 메타 데이터 트랙(124)의 제1 및 제2 수신 데이터 패킷(110, 112)의 위치 정보와 타이밍 정보를 저장하고, 미디어 데이터 컨테이너(106)의 제2 메타 데이터 트랙(128) 내의 제1 및 제2 데이터 패킷(110, 112)와 연관되어 수신된 제1 및 제2 제어 패킷(114, 115)의 위치 정보 및 타이밍 정보를 저장하는 데 이용될 수 있다. 저장 프로세스의 상세한 설명은 도 3을 통해 나타낼 수 있다.
제1 메타 데이터 트랙(124)는 RTP 수신 힌트 트랙의 메타 데이터 부분으로 간주될 수 있다. 마찬가지로, 제2 메타 데이터 트랙(124)은 상기 수신 힌트 트랙을 위해 연관된 RTCP 힌트 트랙의 메타 데이터 부분으로 간주될 수 있다.
도 2의 예시에서는, 이를 테면, RTP 패킷과 함께 저장된 개별적인 미디어 타입의 SDP 정보를 사용함으로써, 각각의 미디어 스트림(이를 테면, 비디오/ 오디오)은 이후 단계의 싱글 RTP 수신 힌트 트랙과 싱글 연관 RTCP 수신 트랙에서 식별될 수 있다. 도 2는 ISO 미디어 데이터(102)의 구조를 RTP 수신 힌트 트랙 및 그 연관 RTCP 수신 트랙과 함께 보여준다.
설명하기 전에, 파일(102)는 메타 데이터 컨테이너(106)를 포함하며, 메타 데이터 컨테이너(106)는 미디어 데이터 컨테이너(104) 내 제1 청크(118-1, 118-2, 등)에서 샘플로 저장된 수신된 RTP 패킷과 관련된 타이밍 정보를 가지는 RTP 수신 힌트 트랙(124)를 포함한다. 이를 테면, RTP 수신 힌트 트랙은 수신되는 동안 저장된 (제1 및 제2) RTP 패킷의 정보 전송 타이밍을 포함한다.
이러한 전송 타이밍은, 수신기(108)의 수신 클럭의 타임 스탬프가 될 수 있고 및/또는그것은 수신된 RTP 패킷(110, 112)의 RTP 타임 스탬프가 될 수 있다. 각 RTP 패킷 또는 샘플을 위해, RTP 수신 힌트 트랙의 메타 데이터 부분(124)은 각각의 RTP 패킷(110, 112)이 수신된 시점에 대한 지시, 그리고 각각의 RTP 패킷이 미디어 데이터 컨테이너(104)내의 저장된 곳 중 하나 이상을 나타내는 정보를 포함한다.
연관 RTCP 수신 힌트 트랙의 메타 데이터 부분(128)도 마찬가지이다. 그것은 제2 청크(122)에 저장된, 상기 수신된 RTCP 패킷의 전송 타이밍 정보를 포함한다. 상기 전송 타이밍 정보는 이를 테면, 연관 RTCP 패킷의 수신 시간 또는 상기 RTCP 패킷에 연관 RTP 패킷의 RTP 타임 스탬프가 될 수 있다. 또한, 수신된 RTCP 수신 힌트 패킷의 메타 데이터 부분(128)은 RTCP 패킷이 미디어 데이터 컨테이너(104) 내에 어디에 저장되어 있는 지를 가리키는 위치 정보를 포함한다.
다른 실시 예에 따르면, SDP 파라메터들은 기록 프로세스 도중에 직접 분석될 수 있어, 상이한 미디어와 관련된 RTP 세션은 RTP 수신 힌트 트랙을 분리하고 연관 RTCP 수신 힌트 트랙을 즉시 분리하도록 저장될 수 있다.
그러나, 본 발명의 실시예에 따르면, 기록장치(116)는 제1 수신 데이터 패킷(110)를 미디어 데이터 컨테이너(104)의 제1 청크 내 샘플로서 저장하는 데 적용된다. 또한, 기록장치(116)는 제2 수신 데이터 패킷(112)를 미디어 데이터 컨테이너(104)의 제2 청크 내 샘플로 저장하는 데 적용된다. 기록장치(116)는 수신된 제1 연관 제어 패킷(114)의 적어도 일부분을 미디어 데이터 컨테이너(104)의 제3 청크 내 샘플로 저장하고, 수신된 제2 연관 제어 패킷(114)의 적어도 일부분을 미디어 데이터 컨테이너(104)의 제4 청크 내 샘플로 저장하는 데 적용된다.
청크의 저장은, 인터리브(interleave)한 방법으로 수행될 수 있다. 본 발명의 구체적인 실시예에 따르면, 제1 미디어 스트림(이를 테면, 비디오)과 관련된 제1 RTP 패킷과, 제2 미디어 스트림(이를 테면, 오디오)과 관련된 제2 RTP 패킷과, 연관 제 1 및 제2 RTCP 패킷 또는 적어도 제1 및 제2 RTCP 송신기 리포트는 인터리브드한 방법에 의해 제1, 제2, 제3 및제4 청크의 샘플로서 저장될 수 있다.
청크의 샘플은 따라서 하나 또는 그 이상의 수신된 데이터 패킷을 포함할 수 있다. 즉, 제1 청크의 샘플은 하나 또는 그 이상의 수신된 제1 데이터 패킷(110)을 포함할 수 있고, 제2 청크의 샘플은 하나 또는 그 이상의 수신된 제2 데이터 패킷(112)을 포함할 수 있고, 제3 청크의 샘플은 수신된 제1 제어 패킷(114)의 하나 또는 그 이상의 제1 RTCP SRs을 포함할 수 있고, 제4 청크의 샘플은 수신된 제2 제어 패킷(115)의 하나 또는 그 이상의 제2 RTCP SRs을 포함할 수 있다.
복수의 제1 청크는 제1 패킷(110)의 미디어와 관련된 제1 수신 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 복수의 제2 청크는 제2 패킷(112)의 미디어와 관련된 제2 수신 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 복수의 제3 청크는 제1 수신 힌트 트랙을 위해 연관된 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 마찬가지로, 복수의 제4 청크는 제2 수신 힌트 트랙을 위해 연관된 힌트 트랙의 미디어 데이터 부분으로 간주될 수 있다. 즉, RTP 수신 힌트 트랙 및 RTCP 연관 수신 힌트 트랙의 경우, 수신 힌트 트랙은 각각의 RTP 세션을 위해 기록될 수 있고, 그 연관된 힌트 트랙은 각각의 기록된 RTP 수신 힌트 트랙을 위해 기록될 수 있다.
본 발명의 실시 예에 따르면, 기록장치(116)는 미디어 데이터 컨테이너(106)의 제1 메타 데이터 트랙 내 제1 수신된 데이터 패킷(110)의 위치 정보 및 타이밍 정보를 저장하고, 메타 데이터 컨테이너(106)의 제2 메타 데이터 내 제2 수신된 데이터 패킷(112)의 위치 정보 및 타이밍 정보를 저장하는 데 적용된다. 기록장치(116)는 미디어 데이터 컨테이너(106)의 제3 메타 데이터 트랙 내 제1 데이터 패킷에 연관되어 수신된 제1 제어 패킷(114)의 위치 정보 및 타이밍 정보를 저장하는 데 적용되고, 미디어 데이터 컨테이너(106)의 제4 메타 데이터 트랙 내 제2 데이터 패킷(112)에 연관되어 수신된 제2 제어 패킷(115)의 위치 정보 및 타이밍 정보를 저장하는 데 적용된다.
도 3을 참조하면, ISO 미디어 기반 포멧 파일의 메타 데이터 컨테이너(106)의 더 상세한 설명을 볼 수 있다.
ISO 미디어 기반 포멧의 파일을 위해 “moov”로 칭해지는 미디어 데이터 컨테이너(106)는 무비 헤더 박스(“mvhd”)의 형태의 요청된 박스(302) 및 복수의 트랙 박스 “trak”(304)(도 3에서하나만 도시)와 함께, 전체적인 헤더 정보를 가진 박스들로 더 구분될 수 있다 또한, 트랙 박스(304)는 2개의 박스로 구분되며, 여기서 트랙 헤더 박스(tkhd)(306)는 트랙의 특징을 특정화한다.
또한, 트랙 박스(304)는 모든 오브젝트, 즉 트랙 내 데이터 패킷(일반적으로 미디어 데이터)에 대한 설명정보를 포함하는 미디어 박스(mdia)(308)를 포함한다. 미디어 박스(308)는 미디어 헤더 박스 “mdhd(media header box)”(310)와 핸들러 참조 박스 “hdlr(handler reference box)”(312)을 포함한다. 미디어 헤더 박스 mdhd(310)는 미디어-독립(media-independent)적이고 미디어의 특징, 즉 수신 힌트 트랙 내 데이터 패킷을 제공하기 위해 관련된 전체 정보를 포함한다. 핸들러 참조 박스 hdlr 312는 트랙에서의 “미디어 데이터”(media-data)가 제공되는 프로세스와, 따라서 예를 들어 수신 힌트 트랙인 트랙 내 “미디어”의 성질을 선언한다.
또한, 미디어 박스 mdia(308)는 미디어 정보 박스 “minf(media information box)” (314)를 포함한다. 상기 박스는 힌트 트랙 내 “미디어”의 특징 정보를 선언하는 모든 오브젝트를 포함한다. 또한, 미디어 정보 박스 minf(314)는 힌트 트랙을 위한 일반적인 정보를 가지는 힌트 미디어 헤더 박스 “hmhd(hint media header box)” (316)을 더 포함한다. 또한 데이터 정보 박스 “dinf(data information box)” (318)는 미디어 정보 박스 minf(314)가 포함된다. 미디어 정보 박스 dinf(318)는 트랙 내 미디어 정보의 위치를 선언하는 오브젝트를 포함한다.
또한, 샘플 테이블 박스 “stbl(sample table box)”(320)는 미디어 정보 박스 minf(314)로 이루어진다. 미디어 데이터 컨테이너 mdat(104)의 적어도 하나의 청크 및 샘플의 데이터는 상기 박스에 포함되고 각 아이템에 링크된다. 샘플 테이블 박스 stbl (320) 내의 아이템을 설명하자면, Stts 박스(322)는 하나의 샘플의 듀레이션(duration)을 포함하고, stsd 박스(324)는 샘플 상세정보을 포함하고, stsz 박스(326)는 샘플 사이즈를 포함하고, stsc 박스(328)는 청크 내 포함된 샘플의 수(즉, 데이터 패킷의 수)를 포함하고, stco 박스(330)는 청크 오프셋을 포함하고, 미디어 데이터 컨테이너(104)의 샘플/패킷과 각각 링크된 것으로 기재될 수 있다.
이와 같이, 기록 장치(116)는 연관 수신 힌트 트랙의 메타 데이터 부분(124, 128) 내의 수신된 데이터 패킷(110, 112)의 위치 정보 및 (전송) 타이밍 정보를 저장하는 데 이용될 수 있다. 특히, 타이밍 정보이는 수신 타임 스탬프로부터 생성된 타이밍 정보, 또는 이 후 수신된 데이터/제어 패킷으로부터 생성된 관련 타이밍 정보는 트랙(124, 128)의 연관 샘플 테이블 박스stb1(related sample table box) (320)에 저장될 수 있다.
도 4를 참조하면, 메타 데이터 트랙(124, 128)로 이루어진 샘플 테이블 stbl(320) 내 수신된 데이터 패킷의 타임-연관 메타 정보(time-related meta information)의 수신 및 저장 프로세스를 보여주는 플로우 차트를 볼 수 있다.
처음 402 단계의 데이터 패킷-이를 테면, RTP 패킷 또는 RTCP 패킷은 수신기(108)에 의해 수신된다. 다음, 두 번째 단계(404)의 수신된 데이터 패킷에 관련된 타이밍 정보는, 수신기(108)의 시스템 클럭에 의해 수신 타임 스템프 또는 수신된 데이터 패킷의 RTP 타임 스탬프의 방식으로 얻어질 수 있다. 이어지는 단계(406)에서는 이전의 수신된 데이터 패킷의 시간차가 계산된다. 단계(408)에서는 계산된 시간차가 각각의 메타 데이터 트랙의 stts 박스(322)에 기록되고, 여기서, stts는 수신 타이밍으로부터 각각의 샘플 수, 즉, 수신되고 저장된 패킷으로의 인덱싱을 허용한다. 본 발명의 일 실시예에 따르면, 샘플 박스 stts(322)로의 디코딩 시간은 수신 시간 델타스(deltas)를 포함할 수 있으며:RT(n+1) = RT(n) + stts(n),
여기서, RT(n)는 패킷 n의 수신 시간을 표시하고, stts(n)는 패킷 n을 위해 압축되지 않은 테이블 엔트리다.
이와 같이, 미디어 데이터 컨테이너(104) 내의 샘플들(패킷들)은 청크(110, 112)로 그룹화된다. 이러한 청크들은 서로 다른 사이즈가 될 수 있고, 청크 내의 샘플들도 다른 사이즈가 될 수 있다. 청크 박스 stsc(328)로의 샘플은 특정 샘플, 그 위치 및 그 연관된 샘플 사항(associated sample description)을 포함하는 청크를 검색하는 데 사용될 수 있다. 각 엔트리는 청크의 실행의 제1 청크의 인덱스를 동일한 특징과 함께 제공한다. 이전의 것으로부터 하나의 엔트리를 제외함에 따라, 얼마나 많은 청크가 각각의 실행 상 존재하는 지를 계산할 수 있다. 그리고, 적절히 청크 별 샘플(samples-per-chunk)의 사용을 증가시킴으로써, 이를 샘플 카운트로 변환할 수 있다.
청크 오프셋 테이블 stco 또는 co64(330)는 각 청크의 인덱스를 미디어 데이터 컨테이너(104)로 준다. 32-비트 또는 64-비트의 오프셋의 사용을 허용하는 두 가지 변형례가 있다. 후자의 경우 대량 파일(102)의 처리에 유용하다. 오프셋은 파일, 이를테면, 미디어 데이터 컨테이너 내 어느 박스로의 오프셋이 아니라, 주로 파일 오프셋(file offsets)이다. 이는 어느 박스 구조와 상관없이 파일 내에서 미디어 데이터로의 참조를 허락할 수 있다.
그러므로, 본 발명의 실시예에 따르면, 기록장치(116)는 각 제1 청크의 인덱스를 파일로 가리키는 제1 청크 오프셋 테이블(330)의 저장에 적용될 수 있다. 이는 도 5를 참조하여 설명된다.
첫 단계(502)에서, 수신기(108)에 의해 데이터 패킷을 수신한 후, 수신된 데이터 패킷(110, 112)는 두 번째 단계(504) 에서, 파일(102)에 관련된 미디어 데이터 컨테이너(104)에 저장된다. 이에 따라, 수신된 데이터 패킷(110, 112)는 미디어 데이터 컨테이너(104)의 저장 어드레스에 샘플로 저장된다. 세 번째 단계(506)에서, 파일(102)의 시작(미디어 데이터 컨테이너(104)가 파일(102)로 구성된 경우) 또는 미디어 데이터 컨테이너(104)의 시작(미디어 데이터 컨테이너(104)가 분리된 파일을 기록한 경우)에 대한, 저장 어드레스의 오프셋이 계산된다. 그리고, 계산된 오프셋은 연관 메타 데이터 트랙(124)의 청크 오프셋 테이블 stco 또는 co64(330)에 기록된다.
제어 패킷(114, 115)와 그 관련된 메타 데이터 트랙(128)도 이와 동일하다.
정리하자면, 전체 개요는 수신 힌트 트랙 또는 연관 수신 힌트 트랙 ,예를 들어 아래에 상세히 설명되는 RTP/RTCP 수신 힌트 트랙이나 키 스트림 수신 힌트 트랙 의 생성을 위해 수행되는 동작이 제공된다. 아래에 설명될 가상 미디어 트랙도 마찬가지이다. 트랙이 ISO 기반 미디어 파일 포멧의 파일(102)에 추가되면, 아래의 동작이 본 발명의 일 실시예를 위한 장치(100)에서 일반적으로 실행된다.
Figure pct00001
새 트랙 박스를 moov 박스에 추가.
Figure pct00002
새 tkhd 박스를 새롭게 생성된 trak 박스에 추가. 상기 박스는 트랙의 특징을 포함할 것이며, 이를테면 생성 시간, 트랙 ID, 미디어 트랙의 크기(dimensions) 및 지속기간(duration)이 될 수 있다.
Figure pct00003
새 tref 박스를 새롭게 생성된 trak 박스에 추가. 상기 박스는 트랙이 독립적이던지 또는 다른 트랙과의 결합에 의해 사용되는 지와 같은 트랙간 결합을 나타낼 수 있다. 수신 힌트 트랙은 tref 박스와 함께 트랙 참조를 통해 링크되거나, 함축적으로(implicitly) 링크되는데, 이를 테면 둘 또는 그 이상의 트랙의 링크를 위해 사용될 수 있는 데이터를 가진 샘플 기재사항(sample description)을 통해 링크될 수 있다. 그러므로, 상기 박스는 선택적이지만, 추천된 트랙 링크 메커니즘이 된다.
Figure pct00004
새 mdia 박스를 새롭게 생성된 trak 박스에 추가.
Figure pct00005
새 mdhd 박스를 새롭게 생성된 mdia 박스에 추가. 상기 박스는 트랙 내 미디어의 특징, 이를테면, 언어 및 미디어의 지속기간을 포함할 수 있다.
Figure pct00006
새 hdlr 박스를 새롭게 생성된 mdia 박스에 추가. 상기 박스는 일반적으로 미디어를 사용하는 프로세스를 위한 식별정보(identification)을 포함할 수 있다. 확장된 수신 힌트 트랙, 이를 테면 RTCP 수신 힌트 트랙의 경우, 식별정보는 ‘hint’가 될 수 있다.
Figure pct00007
새 minf 박스를 새롭게 생성된 mdia 박스에 추가.
Figure pct00008
새 hmhd 박스를 새롭게 생성된 minf 박스에 추가. 상기 박스는 힌트 트랙의 헤더 정보를 포함할 수 있다.
Figure pct00009
새 dinf 박스를 새롭게 생성된 mdia 박스에 추가.
Figure pct00010
새 dref 박스를 새롭게 생성된 dinf 박스에 추가하며, 이는 트랙의 로 데이터가 파일 자신 내인지 외부에 존재하는 지, 이를 테면 다른 파일 내 또는 URI(Uniform Resource Identifier)를 통해 사용할수 있는 지를 지시함
Figure pct00011
새 stbl 박스를 새롭게 생성된 minf 박스에 추가. 상기 박스는 트랙에서 샘플(이를 테면, RTP/RTCP 또는 키 스트림 패킷, 가상 미디어 샘플)의 인덱싱 데이터 및 타이밍을 포함하는 박스들을 위한 컨테이너이다.
Figure pct00012
새 stsd 박스를 새롭게 생성된 stbl 박스에 추가. 상기 박스는 샘플의 대역외 형상(out-of-band configuration) 및 미디어(일반적으로 4CC라고 칭함)의 식별을 포함한다.
Figure pct00013
새 stts 박스를 새롭게 생성된 stbl 박스에 추가. 상기 박스는 트랙에서 미디어의 각각의 샘플(이를 테면, RTP/RTCP 또는 키 스트림 패킷, 가상 미디어 샘플들)의 지속시간에 대한 정보를 포함할 수 있다.
Figure pct00014
새 stsc 박스를 새롭게 생성된 stbl 박스에 추가. 상기 박스는 청크로 그룹화된 샘플(이를 테면, RTP/RTCP 또는 키 스트림 패킷, 가상 미디어 샘플들)의 수에 대한 정보를 포함할 수 있다.
Figure pct00015
새 stsz 박스를 새롭게 생성된 stbl 박스에 추가. 상기 박스는 트랙 내 미디어(이를 테면, RTP/RTCP 또는 키 스트림 패킷, 가상 미디어 샘플들)의 각각의 샘플의 사이즈에 대한 정보를 포함할 수 있다.
Figure pct00016
새 stco 또는 co64 박스를 새롭게 생성된 stbl 박스에 추가. 상기 박스는 각 청크의 첫 바이트의 파일 오프셋에 대한 정보를 포함할 수 있다.
Figure pct00017
샘플 테이블에 허용된 다른 박스들 이를 테면, 랜덤 오프셋을 위해 사용될 수 있는 샘플을 인덱스하는 stss 박스(예를 들면, RTP/RTCP 또는 키 스트림 패킷, 가상 미디어 샘플들)를 선택적으로 추가.
샘플은 갭이 없는 샘플의 연속적인 블록인, 청크 내에서 그룹화된다. 샘플이 파일에 추가되면, 현재의 청크에 추가되거나 새로운 청크가 시작된다. 각각의 새로운 샘플을 위해, 엔트리들(entries)은 stts 및 stsz 박스에 추가되고, stsc 박스는 현재의 청크 내 샘플의 수를 반영하기 위해 수정된다. 만약, 샘플이 새 청크에 기록되면, 새로운 엔트리는 stco (또는 co64) 박스에 추가되고, stsc 박스는 상기 새 청크 내 샘플의 수를 반영하기 위해 수정된다. 청크, 즉 로 샘플 데이터자체는 mdat 박스 내부의 파일 또는 외부 파일(파일 내부로부터 참조될 수 있음)에 기록될 수 있다.
장치의 운영에 따라, 확장된 수신 힌트 트랙은 (RTCP와 키 스트림 수신 힌트 트랙들을 위해) 병렬로(in parallel) 파일에 기록되는데, 다시 말해 샘플은 새로운 데이터가 도착하거나, 오프라인 동작(가상 미디어 트랙을 위해)에 맞추어 다음 포인트에 추가되는 경우, 파일에 추가된다.
수신 힌트 트랙 및 그 연관 수신 힌트 트랙 내의 수신된 데이터 패킷(110, 112)과관련 제어 메시지(associated control messages)(114, 115) 의 병렬 저장소(parallel storage)는, 기록 및/또는 타임 쉬프팅(shifting) 동작에서 이상적인 대안이다. 그러나, 만약 기록된 파일(102)이 롱-텀 저장(long-term storage)을 위해 의도되고 결국 많은 시간 재생된다면, 매번 플레이백에서 기 저장된 데이터의 분석 및 다른 계산을 수행하지 않고, 즉시 사용 가능한 미디어 시간을 가지는 것이 바람직할 것이다. 일반적으로, 이는 (RTP) 수신 힌트 트랙으로부터 데이터 패킷의 페이로드를 역패키지화하고, 추가의 미디어 트랙을 트랙별 하나의 요소(elementary)와 함께 저장하는 것을 포함할 것이다. 예를 들어 전송 부호화가 스트림 데이터 패킷에 응용된 경우, 저장 용량이 제한된다면, 이는 항상 가능하거나 바람직한 것은 아니다. 미디어 데이터 컨테이너(104)에 저장된 전송 패킷의 정확한 타이밍 외에도, 수신 힌트 트랙에 대하여 유효한 확장된 정보특히, 미디어 스트림 내의 정보, 이를 테면 비디오 트랙을 위한 프레임-아큐레잇 (frame-accurate) SMPTE 타임스탬프 또는 서브타이틀 를 가지는 것이 바람직하다.
도 6을 참조하면, 본 발명의 일 실시예에 따라, 저장된 데이터 패킷 및 연관 메타 정보의 처리를 위한 장치(600)을 볼 수 있다.
장치(600)는 도 1에 도시된 장치(100)와 프로세서(602)에서 다르며, , 프로세서(602)는 저장된 데이터 패킷과 저장된 연관 메타 정보를 기반으로 하여, 저장된 데이터 패킷의 페이로드를 위한 디코딩 정보를 결정하고, 여기서 디코딩 정보는 어느 타임 인스턴트에서 저장된 데이터 패킷의 어느 페이로드를 재 실행하는 지를 가리킨다. 장치(600)는 장치(100)의 확장이 될 수 있으나, 장치(600)는 독립적으로 볼 수 있고, 특히, 저장된 비-RTP/RTCP(non-RTP/RTCP) 패킷, 예를 들어 MPEG-2 TS 패킷을 처리하는데 사용될 때 해당될 수 있다.
도 6에 도시된 실시예에서, 데이터 패킷은 파일(102)의 미디어 데이터 컨테이너(104)에 저장된다. 마찬가지로, 메타 정보는 파일(102)의 메타 데이터 컨테이너(106)에 저장된다. 저장된 데이터 패킷은 미디어 데이터 컨테이너(104)의 청크(118, 122) 내 샘플로서 저장될 수 있다. 샘플 및/또는 청크는 메타 데이터 컨테이너(106)에서 연관 메타 데이터 트랙(124, 128)에 의해 참조된다.
본 발명의 일 실시 예에 따르면, 상술한 바와 같이 저장된 데이터 패킷은 제1 및 제2 패킷화된 미디어 데이터와, 관련된 제1 및 제2 RTCP 패킷(114, 115)을 가진 제1 및 제2 RTP 패킷(110, 112)을 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 저장된 데이터 패킷은 하나 또는 그 이상의 프로그램(오디오 및 비디오)의 스트림 멀티플렉스을 이루는 MPEG-2 전송 스트림 패킷을 포함할 수 있다. MPEG-2 전송 스트림 패킷은 일반적으로 188 바이트의 길이를 가진다.
본 발명의 일 실시예에 따르면, 결정된 디코딩 정보는 미디어 데이터 컨테이너(104)의 디코딩 정보 청크(604)에 디코딩 정보 샘플의 방식으로 저장된다. 따라서, 각 디코딩 정보 샘플은 접근 유닛, 이를 테면 수신 힌트 트랙의 미디어 데이터 부분에서, 저장된 데이터 패킷으로부터 재생될 수 있는 비디오 또는 오디오 프레임과 관련이 있다.
프로세서(602)는 미디어 접근 유닛의 시작 주소 및 끝 주소를 나타내는 디코딩 정보 샘플과 같은, 미디어 프레임 기반의 디코딩 정보 샘플을 결정하는 데 이용될 수 있으며, 여기서 시작 주소는 미디어 접근 유닛의 시작을 가리키는 미디어 데이터 샘플의 위치를 나타내고, 끝 주소는 미디어 데이터 컨테이너(104) 내 데이터 패킷에 의해 포함될 수 있다.
프로세서(602)는 미디어 데이터 컨테이너(104)의 청크(604) 내 가상 미디어 샘플과 같이(as) 디코딩 정보 샘플을 저장하기 위해, 미디어 데이터 컨테이너(104)에 접근할 수 있다. 또한, 프로세서(602)는 디코딩 정보 샘플(가상 미디어 샘플)에 관련되고 미디어 데이터 컨테이너(104)의 메타 데이터 트랙(606) 내 디코딩 정보 샘플의 위치 및 디코딩 시간을 가리키는 디코딩 메타 정보를 저장하기 위해 미디어 데이터 컨테이너(106)에 접근할 수 있다. 앞서 설명한 바와 같이, 디코딩 정보 샘플은 관련된 비디오 또는 오디오 스트림의 접근 유닛을 각각 참조하는, 가상 미디어 샘플로 간주될 수 있다. 이때, 가상 미디어 샘플은 미디어 데이터 컨테이너(104) 내에서 관련 오디오/비디오 프레임을 기 저장된 데이터 패킷으로부터 어떻게 재 구성하는 지에 대한 정보를 포함한다.
도 7을 참조하면, 파일(702)은 미디어 데이터 컨테이너(104)에서 가상 미디어 샘플(704)과 미디어 데이터 컨테이너(106)에서 관련된 가상 미디어 트랙(706)을 포함하는 것을 보여준다.
또한, 파일(702)은 미디어 데이터 컨테이너(104)로 이루어진 청크(708)에 RTP 패킷을 저장하고, 청크(710)으로 이루어진 RTCP 패킷을 저장한다. 그리고, 저장된 RTP 패킷에는, 연관된 RTP 메타 데이터 트랙(712)이 있다. 저장된 RTCP 패킷에는 메타 데이터 컨테이너(106) 내 연관된 RTCP 메타 데이터 트랙(714)이 있다.
화살표에 나타난 듯이, 가상 미디어 청크(704) 내의 가상 미디어 샘플은 청크(708)에 저장된 RTP 패킷에 관련된다. 가상 미디어 샘플은 저장된 전송 유닛, 즉 청크(708)에 저장된 데이터 패킷으로부터 접근 유닛, 즉 미디어 프레임의 복원을 위한 설계자를 포함할 수 있다. 가상 미디어 샘플은 특정 접근 유닛의 복원(불완전 설계자)와 관련하여, 하나 또는 그 이상의 주요 전송 유닛으로의 링크를 포함할 수 있다. 또한, 가상 미디어 샘플은 비워질 수 있으며, 이를 테면 수신 도중의 패킷 유실의 경우이다. 나아가, 다른 대안은 이를 테면, 클래식 미디어 트랙(classic media track) 내의 경우와 같은 가상 미디어 샘플이 압축되지 않은 미디어 샘플을 포함하는 것이다.
가상 미디어 샘플의 일반 페이로드 형상 데이터(generic payload configuration data)는 동일한 타입의 가상이 아닌 미디어 트랙(non-virtual media track)의 일반 페이로드 형상 데이터를 포함하고, 이를테면 H.264 기반 비디오를 위한 가상 미디어 트랙은 동일 설명 내의 avcC 박스의 AVCConfigurationRecord를 포함할 것이다. 게다가, 가상 미디어 트랙의 샘플 페이로드에서 제공된 정보의 사용에 의해 수신 힌트 트랙으로부터 재조립되는, 수신 힌트 트랙의 역-힌팅(de-hinting) 프로세스에 대한 정보,이를 테면, 미디어 샘플의 최대 사이즈를 포함할 수 있다.
가상 미디어 트랙의 샘플의 페이로드는 수신 힌트 트랙으로부터 미디어 샘플 데이터의 추출 프로세스를 나타내는 명령(“commands”)으로 구성된다. 상기 명령은 힌트 트랙을 위해 패킷 설계자(packet constructor)로부터 운용되고,이미디에잇 설계자(“immediate constructor”)와 샘플 설계자(“sample constructor”)와 샘플 기술 설계자(“sample description constructor”)를 포함한다. 이미디에잇 설계자는 길이(length), 데이터(data), 패드(pad)의 필드로 구성될 수 있다. 이때, 길이는 데이터 필드의 길이를 나타내고, 패드는 추가 규정된 공간(overprovisioned space)을 채우기 위해 사용될 수 있다.
샘플 설계자는 트랙 참조 인덱스(Trackrefindex), 길이(length), 샘플 넘버(samplenumber)와 샘플 오프셋(sampleoffset)의 필드를 포함할 수 있다. 트랙 참조 인덱스는 데이터가 추출되는 수신 힌트 트랙을 나타내고, 샘플 넘버는 수신 힌트 트랙의 샘플 수를 나타낸다. 샘플 오프셋 필드는 추출될 수 있는 “길이”의 데이터 블록의 시작을 열거한다.
샘플 설계자를 이용함으로써, 미디어 샘플의 컴팩트한 구현(compact representation)은 데이터 복제 없이도 가능하다.
샘플 기술 설계자는 트랙 참조 인덱스(trackrefindex), 샘플 기술 인덱스(sampledescriptionindex), 샘플 기술 오프셋(sampledescriptionoffset)과 길이(length)를 위한 필드로 구성된다. 수신 힌트 트랙의 샘플 속성으로부터의 데이터는 위의 샘플 설계자와 마찬가지로, 가상 미디어 샘플 내 포함을 위해 사용될 수 있다.
가상 미디어 트랙은 미디어 타이밍을 사용하며, 즉 디코딩 타임 스탬프는 전송 딜레이(transmission delay) 또는 클럭 주파수 부정확(clock frequency inaccuracie)에 의해 영향을 받지 않을 수 있다. 타이밍은 가상 미디어 트랙 내에서 유효한 정보로부터 발생할 수 있는, 미디어 트랙의 타이밍과 대응(equivalent)할 수 있다.
도 8은 오프라인 파일 최적화(optimization) 및 스트림 기록을 위한 플로우 차트를 보여준다.
첫번째 단계(802)에서는, 수신 힌트 트랙 및 부가적으로 연관 수신 힌트 트랙(이를 테면, RTP 및 RTCP)이 앞서 설명한 바와 같이 파일(102)에 저장된다. 그리고, 기록이 완료되면, 즉 데이터 패킷이 파일(102)에 수신 힌트 트랙 및 연관 제어 패킷이 연관 수신 힌트 트랙의 파일에 저장된 방식으로 저장될 때, 다른 미디어 스트림은 804 단계 내 기록된 수신 힌트 트랙에서 결정된다. 다시 말해, 804 단계는 기록된 수신 힌트 트랙 내에서, 각각의 결정, 이를 테면 오디오/비디오 스트림 또는 오디오/비디오 스트림과 연관 데이터 패킷을 결정하는 것을 포함한다. 이는 앞서 설명한 바와 같이, 세션 기술 프로토콜(session description protocol, SDP)로부터의 알맞은 정보의 추출에 의해 완료될 수 있다.
따라서, 프로세서(602)는 저장된 데이터 패킷의 어느 것이 제1 또는 제2 미디어 데이터 샘플에 관련된 것인 지를 결정하고, 미디어 데이터 컨테이너(104) 내에서 제2 미디어 데이터 샘플과 관련된 제2 디코딩 정보 샘플(제2 가상 정보 샘플)을 결정하는 데 결정하는 데 이용될 수 있다.
또한, 806 단계에서는, 각각의 미디어 스트림을 위해, 가상 미디어 트랙(미디어 및 메타 데이터를 포함함)은 연관 수신 힌트 트랙을 참조하며, 생성된다.
다시 말해, 프로세서(602)는 미디어 데이터 컨테이너(104)에 제1 미디어 데이터 샘플에 관련된 제1 디코딩 정보 샘플(제1 가상 미디어 샘플)을 저장하고 메타 데이터 컨테이너(106) 내의 제1 디코딩 메타 정보를 저장하며, 상기 제1디코딩 메타 정ㅇ보는 미디어 컨테이너(104) 내의 제1 디코딩 정보 샘플의 위치(이를테면, 청크 오프셋, 샘플 넘버 등)를 가리킨다. 프로세서(602)는 메타 데이터 컨테이너(106) 내의 제2 디코딩 메타 정보를 저장하는데 적용되며, 상기 제2디코딩 메타 정보는 미디어 컨테이너(104) 내의 제2 디코딩 정보 샘플의 위치(이를테면, 청크 오프셋, 샘플 넘버 등)를 가리킨다.
즉, 생성된 가상 미디어 트랙은 각각의 미디어 스트림에 따라 페이로드를 가진 데이터 패킷을 포함하는 수신 힌트 트랙을 참조한다. 가상 미디어 트랙의 생성 후, 가상 미디어 샘플(디코딩 정보 샘플)은 가상 미디어 트랙에 추가되며, 상기 가상 미디어 샘플은 수신 힌트 트랙의 미디어 데이터 일부 내에서 샘플 또는 패킷을 가리키고, 제어 전송 유닛(control transmit unit)(이를 테면, RTCP sender reports)으로부터 정확한 타이밍을 복구한다.
RTCP 송신기 리포트는 RTP 타임스탬프와, NTP 타임 스탬프 포멧(NTP timestamp format)에서의 스트림 내에서 대응하는 일반 타임스탬프를 포함한다. RTP 타임스탬프 및 NTP 타임스탬프는 결정되기 위한 변환값(conversion value)을 허용한다. 이러한 RTP/NTP 타임스탬프의 변환값과 RTP 타임스탬프의 클럭 주파수와 함께, NTP 타임스탬프 포멧에서의 스트림 내에서, 수신된 RTP 패킷의 대응하는 타임스탬프를 계산하는 것이 가능하다. 이 방법에서, RTP 수신 힌트 트랙의 각각의 샘플, 즉 각각의 저장된 데이터 패킷을 위한 미디어 타이밍은 후처리(post-processing)에서 데이터 패킷의 기록을 위해 획득될 수 있다.
나아가, 810 단계에서, 기술적인 정보(descriptive information)는 가상 미디어 트랙에 추가된다(이를 테면, 상기 트랙 내의 테이블에 의해, 상기 트랙을 참조하는 다른 트랙의 추가에 의해). 이에 따라, 추가된 기술적인 정보는 가상 미디어 샘플에 관련된 미디어 프레임의 시작 주소 및 끝 주소를 가리킬 수 있으며, 여기서, 시작 주소는 가상 미디어 샘플과 연관 메타 데이터 샘플의 위치를 나타내고, 끝 주소는 미디어 프레임의 끝을 가리키는 미디어 데이터 샘플의 위치를 나타내며, 미디어 데이터 샘플은 미디어 데이터 컨테이너(104) 내 데이터 패킷의 페이로드가 포함될 수 있다.
다른 선택적인 812 플레이백 단계에서는, 가상 미디어 샘플의 기술적인 정보는 가상 미디어 트랙을 통해 수신 힌트 트랙 내 대응하는 샘플을 검색하는 데 사용된다. 810 단계는 저장된 데이터 패킷으로 이뤄진 미디어 스트림의 재생을 위해 사용될 수 있다.
도 9는 수신 힌트 트랙에서, 저장된 데이터 패킷의 페이로드로 이루어진 미디어 프레임을 참조하는 가상 미디어 샘플의 기술적인 정보를 어떻게 획득하는 지에 대한 예시를 보여준다.
도 9는 저장된 RTP 패킷 RTP1, RTP2, RTP3의 시리즈를 보여준다. RTP 패킷 RTP1, RTP2, RTP3는 가상 미디어 컨테이너(104)에서 샘플로 저장된다. 각각의 RTP 패킷 RTP1, RTP2, RTP3는 미디어 데이터 샘플을 포함하는 페이로드 PL1, PL2, PL3 및 헤더 H1, H2, H3를 포함한다. 바람직하게, 헤더 사이즈는 A 비트가 되고, 페이로드 사이즈는 B-A 비트가 될 수 있다. 비디오 또는 오디오 프레임이 될 수 있는 제1 미디어 프레임의 데이터는 제1 RTP 패킷 RTP1과 제2 RTP 패킷 RTP2의 페이로드 중에 분할된다. 예를 들어, 제1 미디어 프레임의 미디어 데이터는 제1 RTP 패킷 RTP1의 바이트 A로부터 데이터 패킷 RTP2의 바이트 A+Y에 해당된다. 제2 미디어 프레임의 미디어 데이터는 데이터 패킷 RTP2(바이트 주소 A+Y에서 시작하면서) 및 데이터 패킷 RTP3(데이터 패킷 RTP3의 바이트 주소 A+Z에서 끝나면서)으로 분할된다.
가상 미디어 샘플 VMS1, VMS2는 제1 미디어 프레임과 제2 미디어 프레임에 각각 관련된다. 본 발명의 일 실시예에 따르면, 가상 미디어 샘플 VMS1, VMS2는 저장된 데이터 패킷 RTP1, RTP2, RTP3 내에서, 제1 및 제2 미디어 프레임의 미디어 데이터를 어디에서 찾는 지에 대한 정보를 포함한다. 다시 말해, 가상 미디어 패킷 VMS1는 프레임 1의 미디어 데이터에 대한 정보를 포하며, 프레임 1의 미디어 데이터는 데이터 패킷 RTP1의 바이트 주소 A로부터 바이트 주소 B까지의 접근과, 바이트 주소 a로부터 바이트 주소 A+Y로의 어드레싱으로 인해 얻을 수 있다. 가상 미디어 샘플 2는 미디어 프레임 2를 위한 미디어 샘플을 어디에서 획득할 수 있는 지에 대한 정보를 포함한다. 즉 , 바이트 주소 B에 따른 바이트 주소 A+Y의 데이터 패킷 RTP2에서 시작하는 미디어 프레임 2에 대한 정보와, 바이트 주소 A에서 바이트 주소 A+Z까지 도달하는 데이터 패킷 RTP 3에서 발견될 수 있는 프레임 2의 다음(further) 미디어 샘플에 대한 정보를 포함하는 것을 말한다.
가상 미디어 트랙의 미디어 데이터 부분인 가상 미디어 샘플 VMS1, VMS2는 메타 데이터 컨테이너(106)에서, 가상 미디어 트랙의 메타 데이터 부분에 의해 참조된다. 샘플로의 디코딩 시간 정보(Decoding-time-to-sample information)는 각각의 가상 미디어 샘플 VMS1, VMS2을 위해, 발견될 수 있다. 그러므로, 샘플로의 디코딩 시간 정보는 상술한 바와 같이 RTP 패킷 RTP1, RTP2, RTP3과 관련된 기 저장된 RTCP 패킷의 분석에 의해 결정될 수 있는 미디어 타이밍을 반영할 수 있다.
도 10은 가상 미디어 트랙의 샘플로부터의 수신 힌트 트랙의 샘플에 대한 매핑을 보여준다.
도 9와는 대조적으로, 도 10은 MPEG-2 전송 스트림 M2T의 저장된 데이터 패킷을 보인다. 상기 전송 스트림 M2T는 오디오 샘플을 포함하는 데이터 패킷 A1 내지 A7과, 비디오 샘플을 포함하는 데이터 패킷 V1 내지 V7을 포함한다.
가상 미디어 샘플 VMSA1는 오디오 패킷 A1 및 A2의 페이로드 중 분할된 제1 오디오 프레임과 관련이 있다. 가상 미디어 샘플 VMSA1는 오디오 프레임 1의 획득하기 위해 취하는 A1 및 A2의 페이로드의 어느 부분을 가리킨다 마찬가지로, 가상 미디어 샘플 VMSA2는 오디오 패킷 A2 및 A3의 패이로드에서 그 미디어 데이터가 발견될 수 있는 제2 오디오 프레임과 관련이 있다. 가상 미디어 샘플 VMSA3은 제3 오디오 프레임을 획득하기 위해 오디오 패킷 A5의 부분 및 오디오 패킷 A4를 참조한다. 가상 미디어 샘플 VMSA4는 오디오 패킷 A5의 다른 부분과, 오디오 패킷 A6 및 A7의 페이로드를 오디오 프레임 4를 위해 참조한다.
마찬가지로, 가상 미디어 샘플 VMSV1는 제1 비디오 프레임과 관련되며, 제1 비디오 프레임을 위해 비디오 패킷 V1, V2 및 V3를 참조한다. 가상 미디어 프레임 VMSV2는 제2 비디오 프레임을 위한 미디어 샘플의 획득을 위해, 비디오 패킷 V4, V5 및 V6의 페이로드를 참조한다.
저장된 RTP 패킷을 참조하는 수신 힌트 트랙 및 저장된 RTCP 패킷을 참조하는 연관 수신 힌트 트랙을 기반으로 하여 미디어 콘텐츠(media content)를 재실행하기 위해, 본 발명의 실시 예는 파일에 관련된 미디어 컨테이너에 저장된 파일판독 장치를 제공하고, 상기 파일은 제1 클럭을 기반으로 하여 패킷화된 제1 미디어 데이터 패킷을 포함하는 제1 데이터 패킷과, 상기 제1 클럭과 다른 제2 클럭을 기반으로 하여 패킷화된 제2 미디어 데이터 패킷을 포함하는 제2 데이터 패킷을 저장한다.상기 파일은 참조 클럭에 대한 제1 클럭의 관계를 가리키는 정보를 포함하는 제1 연관 제어 패킷의 적어도 일부분과, 참조 클럭에 대한 제2 클럭의 관계를 가리키는 정보를 포함하는 제2 연관 제어 패킷의 적어도 일부분을 더 저장한다. 상기 파일은 연관 메타 데이터를 메타 데이터 컨테이너에 더 저장하고, 연관 메타 데이터는 수신된 제1 및 제2 데이터 패킷과 수신된 제1 및 제2 제어 패킷의 타이밍 정보와, 저장된 제1 및 제2 데이터 패킷과 저장된 제1 및 제2 제어 패킷의 미디어 데이터 컨테이너 내 위치를 가리키는 위치 정보를 포함한다. 상기 장치는 미디어 데이터 컨테이너에 접근함으로써 그리고 그 미디어 데이터 컨테이너 내 저장된 제1 및 제2 데이터 패킷과 제1 및 제2 제어 패킷의 분석(interpreting)함으로써, 제1 및 제2 데이터 패킷의 출력 스케줄(output schedule)을 결정하는 프로세서를 포함한다. 또한, 상기 장치는 메타 데이터 컨테이너에 접근함으로써 그리고 미디어 데이터 컨테이너로부터의 데이터 패킷을 판독함으로써 결정된 출력 스케줄에 따라 데이터 패킷을 출력하는 출력 컨트롤러를 더 포함한다.
본 발명의 일 실시 예에 따르면, 프로세서는 수신 요청이 수신된 제1 및 제2 데이터 패킷의 저장된 타이밍 정보에 의해 지시될 때 제1 및 제2 데이터 패킷의 수신 요청(an order of reception)을 반영하는 출력 스케줄과 같은, 출력 스케줄을 결정하는 데 이용된다. 이는 원래의 수신 시나리오의 시뮬레이션과 함께, 실행될 수 있다.
다른 실시예에 따르면, 프로세서는 저장된 제1 및 제2 제어 패킷에 포함된 참조 타임스탬프(reference timestamp) 및 제1/제2 데이터 패킷의 저장된 타이밍 정보를 기반으로 하는 동기화 정보(synchronization information)를 결정하는 데 이용되어, 제1 데이터 패킷의 출력 스케줄이 참조 시간(NTP)에 대하여 제2 데이터 패킷의 출력 스케줄과 동기화된다. 다시 말해서, 수신되고 저장된 제1 및 제2 데이터 패킷의 타이밍 동기화는 본 발명의 실시 예와 함께 실행될 수 있다.
수신 힌트 트랙 판독 장치는, 상기 파일을 분석(Parse)할 수 있는 지의 여부를 검출하기 위해 일반적으로 다음과 같은 동작을 이용할 수 있다.
Figure pct00018
파일 콘텐츠 및 구조가 잠재적으로 분석 가능한 지의 여부를 검출하기 위해, ftyp 박스를 분석. 만약 파일을 분석할 수 없는 경우, 파일의 판독 동작을 중지한다.
Figure pct00019
moov 박스를 분석하고, trak 박스들 내의 수를 검출한다. 만약 트랙이 없는 경우, 파일의 판독 동작을 중지한다.
Figure pct00020
hdlr 박스 내의 정의된 핸들러 타입(을 위해 유효한 핸들러 프로세스가 있는 지의 여부를 검출하기 위해, 각 트랙의 minf 박스 내부의 hdlr 박스를 분석한다. 만약 핸들러를 알 수 없으면, 상기 파일의 현재 트랙에 대한 판독 동작을 중지한다.
Figure pct00021
각 트랙의 minf 박스 내부의 stsd 박스 및 stb1 박스를 분석한다. stsd 박스는 트랙의 콘텐츠에 대한 식별을 포함하고, 상기 콘텐츠를 기술(describe)한다. 만약 상기 콘텐츠가 이해되지 못하면, 트랙의 파일 판독 동작을 중지한다.
만약, 파일이 분석될 수 있으면, 트랙 링크는 trak 박스 내부의 tref의 분석에 의해 결정될 수 있다. 그렇지 않으면, 포멧은 트랙의 stsd 박스 내 유효한 정보를 이용해서 트랙 링크를 내부적으로 정의할 수 있다. 만약 트랙 링크가 결정되지 않으면, 트랙이 싱글-스탠딩(single-standing)하고, 다른 트랙에 포함된 정보 없이 분석될 수 있는 것으로 추정될 수 있다. 트랙 링크는 판독 장치에서 내부적으로 저장되고, 하나의 트랙을 포함하는 로 데이터를 이해하는 프로세서에서 필요할 때 사용된다.
상기 장치의 동작에 따라, 이해하고 상기 파일의 제시(presentation)에 관련된 트랙을 선택할 수 있다. 디폴트로, 모든 트랙은 분석될 수 있으나, 다음과 같은 규칙을 적용한다.
Figure pct00022
가상 미디어 트랙을 위해, 가상 미디어 트랙은 RTP 또는 MPEG-2 TS 수신 힌트 트랙 대신에 사용된다. 상기 트랙은 힌팅 동작의 역(reversing)을 위한 데이터,즉 수신 힌트 트랙의 데이터가 엘레멘토리 스트림 데이터 블록을 생성하기 위해, 다른 데이터와 함께 확장되고 추출될 필요가 있는 데이터를 이미 포함하며, 디코더는 자동으로 이해할 수 있다.
Figure pct00023
RTCP 수신 힌트 트랙을 위해, 동작의 제1 모드는 RTP 수신 힌트 트랙과 병렬로 RTCP 트랙이 사용되는 것이다. 판독 장치는 동기화하는 스트림을 위한 일반적인 RTP/RTCP 수신에서의 유효한 로직을 사용한다.
Figure pct00024
RTCP 수신 힌트 트랙을 위해, 동작의 제2 모드는 몇몇의 RTP 수신 힌트 트랙간의 클럭-드리프트(clock-drift) 및 초기의 동기(initial synchronization)를 검출하기 위한 일반적인 판독 동작이 시작되기 전, 전체 RTCP 수신 힌트 트랙의 사용이다. 이를 테면, 상기 모드에서는 회귀(linear regression)가 몇몇의 RTP 수신 힌트 트랙의 RTP 클럭을 정렬하기 위해 적용된다. 그리고, 스큐(skew)는 멀티플 RTP 수신 힌트 트랙의 연속 동기화된 플레이아웃(continuous synchronized playout)을 용이하게 하기 위해 데이터가 사용될 때, 스트림에 적용된다.
Figure pct00025
키 스트림 수신 힌트 트랙(key stream reception hint track)을 위해, 동작의 제1 모드는 키 스트림 수신 힌트 트랙이 RTP 또는 MPEG-2 TS 수신 힌트 트랙과 병렬로 사용되는 것이다. 이는 수신 힌트 트랙의 특별히 보호된 데이터 블록을 위한 키 스트림 데이터가 실제 브로드캐스트와 같은 유사 방식에서, 유효한 것을 보장한다.
Figure pct00026
동작의 제2 모드는 유효한 기간(validity period)은 더 이상 중복되지 않도록 수신 힌트 트랙의 데이터와 키 스트림 데이터의 조정렬하는 것이다. 이는 키 스트림 데이터의 타이밍을 이해할 필요 없는 트랙의 후수정(later editing)을 허용한다.
트랙으로부터 소위 샘플을 획득하기 위해, 파일 내 위치는 운용될 필요가 있다. k 번째 샘플 S(k-th sample S)를 위한 이러한 동작은 아래의 동작에 의해 이루어질 수 있다.
Figure pct00027
stsc 박스의 데이터를 사용함으로써 존재하는 sample S 및 청크 C를 결정.
Figure pct00028
청크 C의 파일 오프셋 F의 결정을 위해, stco (or co64) 박스를 분석.
Figure pct00029
청크 내 모든 이전 샘플 Pi의 사이즈 Ki 및 샘플 S의 사이즈 L의 획득(get)을 위해 stsz 박스를 분석.
그리고, 데이터는 파일 내 F + sum(Ki) 위치에서 유효하고, 사이즈 L을 가진다.
데이터가 실행될 때, 시간은 stts 박스 내 유효한 정보에 의해 결정된다. 상기 박스는 각각의 샘플 j를 위해 지속기간이 코드(code)된 실행 길이(run-length)를 포함한다. 그리고, k번째 샘플 S를 위한 플레이아웃 시간(playout time)은 j가 k보다 작은 경우(j<k), 모든 지속기간 Dj의 합이 된다.
가상 미디어 트랙이 유효한 경우, 본 발명의 실시예는 파일 판독 장치를 제공하고, 상기 파일은 미디어 데이터 컨테이너 내에 페이로드를 포함하는 데이터 패킷을 저장하고, 미디어 데이터 컨테이너(104) 내에 데이터 패킷의 페이로드를 위한 디코딩 정보를 저장하며, 디코딩 정보는 어느 시간 인스턴트에 저장된 데이터 패킷의 어느 페이로드를 재실행할 지를 가리킨다. 상기 파일은 연관 메타 데이터를 메타 데이터 컨테이너(106)에 저장하고, 상기 연관 메타 데이터는 메타 데이터 컨테이너 내 디코딩 정보의 위치 및 디코딩 시간을 나타낸다. 본 발명의 일 실시 예에 따른 장치는 메타 데이터 컨테이너(106) 내 연관 메타 데이터에 접근함으로써, 메타 데이터를 기반으로 하는 미디어 데이터 컨테이너의 디코딩 정보에 접근함으로써, 디코딩 정보를 기반으로 하는 저장된 데이터 패킷의 패이로드에 접근함으로써, 저장된 패킷의 페이로드의 출력 스케줄을 결정하는 프로세서와, 상기 결정된 출력 스케줄에 따른 페이로드의 출력을 위한 출력 컨트롤러를 포함한다. 명세서에 기술된 바와 같이, 본 발명의 다른 관점은 수신된 데이터 패킷 이외에도 키 스트림 메시지를 저장하는 것이다.
데이터 패킷 또는 데이터의 접근에 대한 권한(right)은 권한 관리 시스템을 통해 제어될 수 있다. 디지털 통신 네트워크를 통한 데이터 구성요소의 수신은 엔드-유저(end-user)를 확인하는데 제한될 수 있고, 다른 유저로부터 제한될 수 있다. 이를테면, 사용자는 프로그램의 구입을 통해 프로그램의 접근을 획득할 수 있다. 만약 사용자가 요금을 지불하면, 사용자는 요금을 지불하지 않은 사용자가 프로그램으로의 접근을 가지지 않는 데 반하여, 시간상 약정 기간(specified period)동안 프로그램으로의 접근이 승인될 수 있다. 프로그램으로의 접근은 전송된 데이터의 부호화에 의해 규정될 수 있다. 데이터는 부호화 키의 사용을 통한 부호화 표준의 어떠한 숫자(any number of encryption standards)에 의해 부호화 될 수 있다. 수신기 또는 사용자 터미널에서, 키는 수신기 또는 사용자 터미널에서 콘텐츠가 가시화될 수 있도록, 부호화된 데이터를 복호화 하는 데 사용될 수 있다. 부호화된 데이터 패킷을 복호화 하는 상기 키는 동일한 디지털 통신 네트워크를 통해 전달될 수 있고, 또한 부호화될 수 있다. 하나 또는 그 이상의 키의 전달을 위해, 다른 디지털 통신 네트워크가 사용될 수 있다. 그러므로, 프로그램 또는 서비스를 보거나 접근하기를 원하는 엔드-유저는 상기 키를 위한 권한을 획득하는 것이 필요할 수 있다.
부호화된 프로그램 또는 서비스에 관련된 전송 부호화 키(Transport encryption key)는, 사용자 터미널로의 키 스트림에 전송될 수 있다. 상기 키 스트림은 부호화된 데이터 스트림이 수신기 또는 사용자 터미널에 수신될 때 미리 결정된 주파수로 전송된 키 스트림 메시지를 포함할 수 있으며, 키 스트림 메시지가 함께 수신될 수 있다.도 12는 스트림된 데이터 패킷 1302-1, 1302-2, 1302-3을 보여주며, 각각은 부호 키(cryptographic key) k0, k1, k2와 함께 부호화된 페이로드를 가진다. 데이터 패킷 1302와 연관되어, 키 스트림 패킷 1304-1, 1304-2, 1304-3 및 1304-4을 포함하는 키 스트림이 있다. 키 스트림 1304-1은 그 연관 데이터 패킷 1302-1의 전에 전달되며, 데이터 패킷 1302-1의 부호화된 페이로드의 복호화를 위한 부호 키 k0을 포함한다. 따라서, 부호화 키 k0는 연관 데이터 패킷이 부호화될 수 있음을 보증하는 것과 관련된 라이프타임 d0를 포함한다. 그리고, 제2 키 스트림 패킷 1304-2 및 연관 데이터 패킷 1302-2의 페이로드의 복호화를 위해 사용될 수 있는 부호 키 k1도 마찬가지이다. 또한, 연관 키 스트림 패킷 1304-2는 데이터 패킷 1302-2 이전에 전송되고, 부호 키 k1는 데이터 패킷 1302-2의 페이로드의 바람직한 복호화를 보증하는 라이프 타임 d1을 포함한다.
본 발명의 실시예에 따르면, 데이터 패킷 및 연관 키 스트림 패킷은 데이터 패킷 및 연관 제어 패킷을 위해 설명된 바와 같이, 수신기 터미널에서, 메타 데이터 컨테이너 내 미디어 데이터 컨테이너를 가지는 파일과 함께 저장될 수 있다.
도 11은 본 발명의 일 실시예에 따라, 관련 미디어 데이터 컨테이너(1104) 및 메타 데이터 컨테이너(1106)을 가진 파일(1102)를 기록하기 위한 장치(1100)를 보여준다.
장치(1100)는 페이로드를 각각 포함하는 데이터 패킷(1110)을 수신하고 복수의 부호 키를 포함하는 키 스트림 패킷(1112)을 수신하는 수신기(1108)를 포함하며, 여기서 각 부호 키는 수신된 데이터 패킷의 페이로드에 연관된다. 또한, 장치(1100)는 수신된 데이터 패킷(1110) 및 수신된 키 스트림 패킷(1112)을 미디어 데이터 컨테이너(1104)에 저장하고, 연관 메타 데이터를 메타 데이터 컨테이너(1106)에 저장하는 수신기(1116)를 포함하며, 상기 연관 메타 데이터는 수신된 키 스트림 패킷(1112)에서 수신된 데이터 패킷(1110)의 전송 타이밍 정보를 포함하고 미디어 데이터 컨테이너(1104)에서 저장된 키 스트림 패킷(1112) 및 저장된 데이터 패킷(110)의 위치를 가리키는 위치 정보를 포함한다.
따라서, 장치(1100)는 장치(100)에 포함되거나, 함께 동작하는 것으로 사용될 수 있음이 강조되어야 한다. 다시 말해, 데이터 패킷을 연관 제어 패킷과 함께 저장함에 대한 발명의 컨셉은 저장된 데이터 패킷과 연관 제어 패킷 및/또는 연관 키 스트림 패킷 외 미디어 트랙 방식의 디코딩 정보를 생성하고, 데이터 패킷을 연관 키 스트림 패킷 과 함께 저장하는 것으로 결합될 수 있다.
도 11을 참조하면, 수신된 데이터 패킷(1110)는 미디어 데이터 컨테이너(1104)의 제1 청크 (1118)에서 샘플로 저장된다. 수신된 연관 키 스트림 패킷은 미디어 데이터 컨테이너(1104)의 제2 청크(1120)에서 샘플로 저장된다. 본 발명의 바람직한 실시예에 따르면, 제1 및 제2 청크(1118, 1120)는 인터리브된 방법(interleaved manner)으로 미디어 컨테이너(1104)에 저장될 수 있다.
앞서 설명한 바와 같이, 파일(1102)는 ISO 기반 미디어 파일 포멧을 기반으로 하는 파일, 이를 테면 MP4 파일이 될 수 있다. 그러므로, 기록 장치(1116)는 제1 청크(1118)를 메타 데이터 컨테이너 moov(1106)의 제1 메타 데이터 트랙(1124)의 제1 청크 오프셋 테이블 stco 또는 co64에 저장하는 데 적용될 수 있으며, 여기서, 제1 청크 오프셋 테이블은 미디어 데이터 컨테이너(1104)가 파일(1102)의 부분인지 아닌 지에 따라, 각 제1 청크(1118)의 인덱스를 파일(1108) 또는 미디어 데이터 컨테이너(1104)에 지시한다. 제2 청크의 미디어 데이터 컨테이너(1104)로의 인덱스는 제1 청크를 위해 설명된 것과 동일한 방법으로 메타 데이터 컨테이너(1106)의 제2 메타 데이터 트랙(1128)의 제2 청크 오프셋 테이블에 저장된다.
데이터 패킷(110, 112) 및 연관 제어 패킷(114, 115)의 수신 힌트 트랙 및 연관 수신 힌트 트랙 내 병렬 저장(parallel storage)의 경우를 위해 앞서 설명한 바와 같이, 데이터 패킷(1110)을 위한 전송 타이밍 정보(즉, 수신 시간 또는 RTP 타임 스탬프)는 제1 메타 데이터 트랙(1124)로 이루어진 제1 stts 박스에 저장된다. 마찬가지로, 전송 타이밍 정보 또는 다른 전송 타이밍 정보는 제2 청크(1120)와 관련된 제2 메타 데이터 (1128) 트랙의 제2 stts 박스에 저장된다.
또한, 스트림의 수신이 완료된 후의 각 플레이백을 위해, 한 번의 프로세싱(one-time processing)는 키 스트림 수신 힌트 트랙을 가상 메타 데이터 트랙으로 변환하는 것이 완료될 수 있다. 이를 위하여, 장치(1100)는 저장된 데이터 패킷(1110) 및 연관 메타 정보(1124)를 기반으로 하고, 저장된 키 스트림 패킷(1112) 및 연관 키 스트림 메타 정보(1128)를 기반으로 하여 저장된 데이터 패킷(1110)의 페이로드를 위한 해독 정보(decryption information)를 할당하는 프로세서(미도시)를 포함하며, 여기서 해독 정보는 저장된 데이터 패킷(1110)의 페이로드를 재 실행하기 위해 어느 타임 인스턴트에 사용할 부호 키를 가리킨다
다시 말해, 전송 타이밍과 함께 키 스트림 수신 힌트 트랙으로부터의 키 메시지는 가상 메타 데이터 트랙에서 미디어 타이밍과 함께 키 샘플로 변환된다. 이는 가상 미디어 트랙을 위해 앞서 기술된 목적과 동일한 목적으로 수행될 수 있다. 즉, 키 샘플은 미디어 데이터 컨테이너(1104)에서 생성되고 저장된다. 그러므로, 각 키 샘플은 접근 유닛 또는 미디어 프레임에 연관되고, 관련된 미디어 프레임을 위해 사용되는 부호 키에 대한 정보를 포함한다. stts 박스를 포함하는 연관 메타 데이터 트랙(1128)에서는 키 샘플을 위한 디코딩 정보(decoding-to-key-sample information)가 주어질 수 있다. 키 샘플을 위한 정보는 각각의 키 샘플의 접근을 어느 타임 인스턴트에 하는 지를 나타내고, 이는 다시 각 부호화된 미디어 프레임을 생성하기 위해 저장되는 데이터 패킷의 패이로드 데이터를 참조한다. 필요하다면, 키 샘플은 미디어 트랙 내 모든 미디어 샘플이 키 트랙에서 (동일한 키 ID와 함께) 연관된 키 샘플을 가지는 것과 같이, 가상으로 두 배(double)가 될 수 있다.
그러므로, 미디어 접근 유닛, 예를 들어 미디어 프레임과 키 메시지 간의 정확한 타이밍 관계가 생성되는 것이 가능한데, , 특히 부호화된 접근 유닛이 부호화 구성의 경우 전송 유닛(데이터 패킷)으로부터 재생될 때 가능하다.
파일(1102)을 판독하기 위해, 상기 파일은 데이터 패킷(1110)을 저장하고, 미디어 데이터 컨테이너(1104)에 연관 키 스트림 패킷 (1112)을 저장하고, 메타 데이터 컨테이너(1106)에 연관 메타 데이터를 저장하며, 본 발명의 실시 예는 저장된 데이터 패킷(1110)을 기반으로 하고, 연관 패킷 메타 정보 (1124)를 기반으로 하고, 저장된 키 스트림 패킷(1112) 및 연관 키 스트림 메타 정보(1128)을 기반으로 하여, 저장된 데이터 패킷의 페이로드를 위한 부호화 정보를 할당하는 프로세서를 포함하는 장치를 제공하며, 여기서 상기 해독 정보는 저장된 데이터 패킷의 페이로드를 재실행하기 위해, 어느 부호 키를 어느 타임에 사용하는 지를 가리킨다.
부호화 정보를 할당하는 프로세서는 부호화된 데이터 패킷(1110)의 페이로드의 플레이어(player)를 위해 사용될 수 있다. 이를 위하여, 복호화된 데이터 패킷은 할당된 해독 정보를 기반으로 디코더로 출력될 수 있다. 해독 정보를 할당하는 프로세서는, 가상 키 샘플과 같이 미디어 데이터 컨테이너(1104)에 부분적으로 저장되기 위해, 가상 부호화 정보를 생성하는 데 사용될 수 있다. 연관 메타 정보는 메타 데이터 트랙(1128)에 저장된다. 이는 앞서 기술된 가상 미디어 트랙의 설명과 일치될 수 있다.
키 샘플의 페이로드는 수신된 키 스트림 메시지의 로 페이로드를 포함할 수 있다. 이는 키 스트림의 UDP 패킷의 구성이 즉시 저장된 것을 말한다. 어떤 시스템은 멀티플로 수신된 키 스트림 메시지의 저장을 허용하기 위해, 다른 구조 내 이러한 데이터를 포함(wrap)할 수 있다.
키 스트림 샘플의 타이밍은 RTP 수신 힌트 트랙을 기반으로 하는 타이밍 방법에 따른다. 만약, RTP 수신 힌트 트랙 장치가 RTP 타임 스탬프로부터 디코딩 시간을 운용하면, 키 스트림 수신 힌트 트랙도 RTP 타임 스탬프로부터의 디코딩 시간을 운용할 것이지만, RTP 타임 스탬프를 추정하는 게 필요할 것이다. 만약 수신 시간이 RTP 수신 힌트 트랙을 위해 사용되면, 수신 타이밍도 키 스트림 메시지의 저장을 위해 사용될 것이다. 일반적으로 RTP 수신 힌트 트랙과 키 스트림 힌트 트랙은 동기화되고, 동일한 시간 기반을 사용한다.
요약하자면, 본 발명은 파일의 샘플 내 “제어 전송 유닛”(control transmission units, CTU)과 함께 수신 힌트 트랙 내에서 선계산된 패킷(pre-computed packet) 또는 설계자와 같이, 수신된 “전송 유닛”(transmission units, TUs)- 이는 일반적으로 패킷화된 미디어 데이터, 이를 테면 비디오 데이터를 포함함-을 기록하는 미디어 저장 시스템에 관련된다.상기 제어 전송 유닛은 수신 힌트 트랙과 연관된 분리 병행 트랙에 저장된다.
CTUs는 파일으로부터 플래이백 중 수신 힌트 트랙의 미디어 패킷을 처리하는 데 유용하거나 필요한, 추가 데이터를 포함한다. CTUs의 예시는 부호화된 스트림의 경우, RTCP 리포트(RTCP reports) 또는 키 메시지가 해당될 수 있다.
기록된 스트림의 최적의 로컬 플레이백을 위해, 역 힌팅 프로세스(reversed hinting process)를 사용하여, “가상 미디어 트랙”(virtual media track)은 수신된 TUs를 가상 미디어 샘플로 사상(map)한다. 가상 미디어 샘플은 수신 힌트 트랙 및 트랙으로부터 CTUs를 가지는 트랙으로부터 복구될 수 있는 미디어 샘플의 타이밍을 가지며,상기 미디어 샘플은 완전한 미디어 샘플일 필요가 없다. 가상 미디어 트랙의 인덱싱은 필요에 따라 추가될 수 있다. 또한, 인덱스는 수신 힌트 트랙의 링크된 샘플에 적용한다. 가상 미디어 트렉은 파일 내 다른 트랙(이를테면, “타임드 메타 데이터 트랙”(timed metadata tracks)을 위한 참조로 사용될 수 있다. 어플리케이션은 가상 미디어 트랙을 통해 수신 힌트 트랙의 대응하는 샘플을 검색(look up)할 수 있다.
키 스트림 메시지는 연관 수신 힌트 트랙과 같이 저장된다. 가상 미디어 트랙은 미디어 샘플 및 복호화 키를 정확히 할당하는 데 적용될 수 있다.
최근, 앞서 언급된 ISO 기반 미디어 파일 포멧은 무브 프리그먼트(movie fragments)로 불리는 추가사항에 의해 보충되었으며, 이는 예를 들어 미국 특허(출원번호 : US 2007/0130498 A1)에서 설명된 것과 같 다. 이는 본 발명의 실시 예가 상기 무브 프리그먼트에 적용이 가능함을 말한다.
상황에 따라, 본 발명의 방법은 소프트웨어 또는 하드웨어에서 수행될 수 있다. 이러한 수행은 상기 방법이 실행되도록 프로그래밍 가능한 컴퓨터 시스템과 함께 운용되는 디지털 저장 수단,이를 테면 전자적으로 읽기 가능한 제어 신호와 함께 디스트나 CD에서 실행될 수 있다. 일반적으로, 발명은 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 발명의 방법을 수행하기 위해 기계 판독 가능한 캐리어(machine-readable carrier)에 저장된 프로그램 코드와 함께 컴퓨터 프로그램 제품을 구성한다. 다시 말해, 발명은 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때, 상기 방법을 실행하기 위한 프로그램 코드와 함께 컴퓨터 프로그램으로 실현될 것이다.
본 발명의 설명된 바와 같이, 상기 발명의 범위 내에서의 동등한 것이나 수정이나 순서의 변경이 존재할 수 있다. 이는 본 발명의 구성 및 방법의 실행에서 많은 수정된 방법이 있음이 통지될 수 있다. 이러한 사항은 다음과 같이 기술되는 청구범위가 의도될 수 있다. 그리고 기술된 청구범위는 본 발명의 범위 내에서의 동등한 것, 순서의 변경 및 수정을 모두 포함하는 것으로 해석될 수 있다.
100 : 기록 장치
102 : 파일
106 : 메타 데이터 컨테이너
600 : 연관 메타 정보를 처리하는 장치
702 : 파일
1100 : 기록 장치

Claims (24)

  1. 미디어 데이터 컨테이너(104)에 저장된 데이터 패킷 (110; 112) 및 메타데이터 컨테이너(106)에 저장된 연관 메타 정보를 처리하는 장치(600)에 있어서,
    상기 연관 메타 정보는 상기 미디어 데이터 컨테이너(104) 내부의 상기 저장된 데이터 패킷의 저장 위치를 가리키는 위치 정보 및 전송 시간 정보를 포함하고,
    상기 장치는:
    상기 저장된 데이터 패킷(110; 112) 및 상기 저장된 연관 메타 정보(124; 128)에 기반하여, 상기 저장된 데이터 패킷(110; 112)의 미디어 페이로드(media payload)를 위한 디코딩 정보(604; 704)를 결정하는 프로세서(602)를 포함하고,
    상기 디코딩 정보(604; 704)는 상기 저장된 데이터 패킷의 어느 페이로드(payload)를 어느 타임 인스턴트(at which time instant)에 재실행(replay)할 지를 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  2. 제1항에 있어서,
    상기 프로세서(602)는 미디어 접근 유닛 베이시스(on a media access unit basis)에 관한 상기 디코딩 정보(604; 704)를 결정하고,
    디코딩 정보 샘플은 미디어 페이로드의 관련된 미디어 접근 유닛의 시작-주소(start-address) 및 종료-주소(end-address)를 가리키고,
    상기 시작-주소는 미디어 접근 유닛의 시작을 가리키는 미디어 데이터 샘들의 위치를 나타내고;
    상기 종료-주소는 미디어 접근 유닛의 종료를 가리키는 미디어 데이터 샘플의 위치를 나타내고;
    상기 미디어 데이터 샘플은 상기 미디어 데이터 컨테이너(104) 안의 상기 데이터 패킷을 포함하여 구성되는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 프로세서(602)는
    미디어 데이터 컨테이너(104)에 미디어 페이로드의 미디어 접근 유닛과 관련된 디코딩 정보 샘플을 저장하고;
    메타데이터 컨테이너(106)에 연관 디코딩 메타 정보 (606; 706)를 저장하며;
    상기 디코딩 메타 정보(606; 706)는 상기 미디어 데이터 컨테이너(104) 내부의 상기 디코딩 정보 샘플의 위치 및 디코딩 시간(decoding time)을 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  4. 제3항에 있어서,
    상기 프로세서(602)는 상기 미디어 데이터 컨테이너(104)의 디코딩 정보 청크(chunk)(604; 704)에 상기 디코딩 정보 샘플을 저장하고;
    상기 디코딩 정보 청크(604; 704)는 적어도 하나의 디코딩 정보 샘플을 포함하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  5. 제4항에 있어서,
    상기 프로세서(602)는 디코딩 정보 메타데이타 트랙(606; 706)의 청크 오프셋 테이블을 저장하고,
    상기 청크 오프셋 테이블은 각각의 디코딩 정보 청크(704)의 상기 미디어 데이터 컨테이너(104)로의 인덱스를 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  6. 제4항 또는 제5항에 있어서,
    상기 프로세서(602)는
    상기 디코딩 정보 청크(704)에 디코딩 정보 샘플의 상기 디코딩 시간으로부터 그것의 연관 샘플 넘버로의 인덱싱을 허락하는 샘플 테이블 박스(stts)의 상기 디코딩 정보 샘플의 디코딩 시간을 저장하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  7. 선행하는 항 중 어느 하나에 있어서,
    상기 저장된 데이터 패킷(110; 112)은 MPEG-2 전송 스트림 패킷을 포함하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  8. 제1항 내지 제6항 중 어느 하나에 있어서,
    상기 저장된 데이터 패킷(110; 112)은 패킷화 된 미디어 데이터 샘플을 포함하는 RTP 패킷을 포함하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  9. 선행하는 항 중 어느 하나 있어서,
    상기 저장된 데이터 패킷은 제1 및 제2 미디어 스트림과 관련된 제 1 데이터 패킷(110) 및 제 2 데이터 패킷(112)을 포함하고;
    상기 프로세서(602)는 상기 제 1 또는 제 2 미디어 스트림과 어떠한 상기 저장된 데이터 패킷(110; 112)을 관련지을지 결정하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  10. 제9항에 있어서,
    상기 프로세서(602)는 제 1 및 제 2 미디어 접근 유닛 베이시스(media access unit basis)에 관한 제 1 및 제 2 디코딩 정보를 결정하고;
    제 1 및 제 2 디코딩 정보 샘플은 제 1 및 제 2 미디어 스트림에 속하는 관련된 제 1 및 제 2 미디어 접근 유닛의 시작-주소 및 종료-주소를 가리키고,
    상기 시작-주소는 상기 제 1 및 제 2 미디어 접근 유닛의 개시를 가리키는 미디어 데이터 샘플의 위치를 나타내고;
    상기 종료-주소는 상기 제 1 및 제 2 미디어 접근 유닛의 종료를 가리키는 미디어 데이터 샘플의 위치를 나타내고;
    상기 미디어 데이터 샘플은 상기 미디어 데이터 컨테이너(104) 내부의 상기 제 1 및 제 2 저장된 데이터 패킷을 포함하여 이루어진
    데이터 패킷 및 연관 메타 정보 처리 장치.
  11. 제10항에 있어서,
    상기 프로세서(602)는
    상기 미디어 데이터 컨테이너(104)에 상기 제 1 및 제 2 디코딩 정보 샘플을 저장하고;
    상기 메타데이터 컨테이너(106)에 제 1 및 제 2 디코딩 메타 정보(606; 706)를 저장하며;
    상기 제 1 및 제 2 디코딩 메타 정보(606; 706)는 상기 미디어 데이터 컨테이너(104) 내부의 상기 제 1 및 제 2 디코딩 정보 샘플을 위한 제 1 및 제 2 위치 및 제 1 및 제 2 디코딩 시간을 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 프로세서(602)는 상기 미디어 데이터 컨데이너(104)의 제 1 및 제 2 디코딩 정보 청크(604; 704)에 상기 제 1 및 제 2 디코딩 정보 샘플을 저장하고,
    상기 제 1 및 제 2 디코딩 정보 청크(604; 704)는 적어도 하나 이상의 제 1 및 제 2 디코딩 정보 샘플을 포함하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  13. 제12항에 있어서,
    상기 프로세서(602)는
    상기 제 1 및 제 2 디코딩 정보 청크(704)에 제 1 및 제 2 디코딩 정보 샘플의 상기 제 1 및 제 2 디코딩 시간으로부터 그것의 연관 샘플 넘버로의 인덱싱을 허락하는 제 1 및 제 2 샘플 테이블 박스(stts)의 상기 제 1 및 제 2 디코딩 정보 샘플의 제 1 및 제 2 디코딩 시간을 저장하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  14. 제9항 내지 13항 중 어느 하나에 있어서,
    상기 저장된 제 1 데이터 패킷(110)은 제 1 패킷화된 미디어 데이터를 포함하는 제 1 RTP 패킷을 포함하고;
    상기 저장된 제 2 데이터 패킷(112)은 제 2 패킷화된 미디어 데이터를 포함하는 제 2 RTP 패킷을 포함하는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  15. 제14항에 있어서,
    상기 제 1 및 제 2 RTP 패킷(110; 112)은 제 1 및 제 2 RTP 패킷(114; 115)과 관련된 제 1 및 제 2 RTCP 패킷의 적어도 일부분을 추가적으로 포함하고;
    상기 메타 정보는 상기 메타 데이터 컨테이너(106)의 제 1 및 제 2 RTCP 패킷의 위치 정보 및 전송 시간 정보를 포함하고;
    상기 제 1 및 제 2 RTCP 패킷과 관련되어 저장된 상기 일부분은 상기 미디어 데이터 컨테이너(104)의 RTCP 청크(122)에 샘플로 저장되고
    상기 RTCP 패킷(114; 115)의 상기 시간 정보 및 위치 정보는 메타 데이터 컨테이너(106) RTCP 트랙(128)에 저장되는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  16. 제15항에 있어서,
    상기 프로세서(602)는 상기 저장된 제 1 및 제 2 RTP 패킷(110; 112)에 기반하여 상기 저장된 제 1 및 제 2 RTPC 패킷을 결정하고, 상기 저장된 연관 메타 정보(124; 128)에 기반하여 제 1 및 제 2 디코딩 정보(604; 704)를 각각 결정하도록 설정되고(configured to determine)
    상기 제 1 및 제 2 디코딩 정보(604; 704)는 각각의 상기 저장된 제 1 및 제 2 RTP 패킷의 어느 페이로드를 어느 타임 인스턴트(at which time instant)에 재실행할 지를 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  17. 선행하는 항 중 어느 하나에 있어서,
    상기 미디어 데이터 컨테이너(104)는 부호 키(cryptographic key)를 포함하는 각각의 키 스트림 패킷(key stream packets)(1112)을 포함하고,
    상기 부호 키는 적어도 하나의 상기 저장된 데이터 패킷의 페이로드와 연관되고,
    상기 저장된 키 스트림 패킷(1112)의 위치정보 및 전송 시간 정보는 상기 메타 데이터 컨테이너(106)에 저장된
    데이터 패킷 및 연관 메타 정보 처리 장치.
  18. 제17항에 있어서,
    상기 프로세서(602)는 상기 저장된 데이터 패킷(110; 112), 상기 연관 메타 정보(124; 128) 및 상기 저장된 키 스트림 패킷(1112) 및 상기 연관 키 스트림 메타 정보(1128)에 기초하여 상기 저장된 데이터 패킷의 페이로드에 해독 정보(decryption information)를 할당하고,
    상기 해독 정보는 상기 저장된 데이터 패킷(110; 112)의 상기 페이로드를 재실행할 어느 시간에 어느 부호 키를 사용할 지를 가리키는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  19. 선행하는 항 중 어느 하나에 있어서,
    상기 미디어 데이터 컨테이너(104) 및 메타데이터 컨테이너(106)는 상기 ISO 기반 미디어 파일 포맷(the ISO base media file format)에 기초한 파일(102)과 관련되는
    데이터 패킷 및 연관 메타 정보 처리 장치.
  20. 미디어 데이터 컨테이너(104)에 저장된 데이터 패킷 (110; 112) 및 메타데이터 컨테이너(106)에 저장된 연관 메타 정보를 처리하는 방법에 있어서,
    상기 연관 메타 정보는 상기 미디어 데이터 컨테이너 내부의 상기 저장된 데이터 패킷의 저장 위치를 가리키는 위치 정보 및 전송 시간 정보를 포함하고,
    상기 방법은:
    상기 저장된 데이터 패킷(110; 112) 및 상기 저장된 연관 메타 정보(124; 128)에 기반하여, 상기 저장된 데이터 패킷(110; 112)의 페이로드를 위한 디코딩 정보(604; 704)를 결정하는 단계를 포함하고,
    상기 디코딩 정보는 상기 저장된 데이터 패킷의 어느 페이로드를 어느 타임 인스턴트에 재실행할 지를 가리키는
    데이터 패킷 및 연관 메타 정보 처리 방법.
  21. 제20항의 방법을 수행하도록 컴퓨터 및/또는 마이크로컨트롤러에서 실행되는 컴퓨터 프로그램.
  22. 파일(102)을 판독하는 장치에 있어서,
    상기 파일은 상기 파일과 관련된 미디어 데이터 컨테이너(104)에 페이로드를 포함하는 데이터 패킷(110; 112)을 구비하고,
    상기 파일은 상기 미디어 데이터 컨테이너(104)에 상기 저장된 데이터 패킷(110; 112)의 페이로드를 위한 디코딩 정보(602; 702)를 구비하고,
    상기 디코딩 정보는 상기 저장된 데이터 패킷(110; 112)의 어느 페이로드를 어느 타임 인스턴트에 재실행할 지를 가리키고,
    상기 파일은 상기 파일의 메타데이터 컨테이너(106) 내부에 저장된 연관 메타데이터(606; 706)를 구비하고,
    상기 연관 메타데이터(606; 706)는 상기 미디어 데이터 컨테이너(104) 내부의 상기 디코딩 정보(602; 702)의 위치 및 디코딩 시간을 가리키고,
    상기 장치는:
    상기 메타데이터 컨테이너(106) 내부의 상기 연관 메타데이터(606; 706)에 접근하고, 상기 연관 메타데이터(606; 706)에 기반하여 상기 미디어 데이터 컨테이너(104) 내부의 상기 디코딩 정보(602; 702)에 접근하고, 상기 디코딩 정보(602; 702)에 기반하여 저장된 데이터 패킷(110; 112)의 상기 페이로드에 접근함으로써 상기 저장된 데이터 패킷(110; 112)의 상기 페이로드의 출력 스케줄을 결정하는 프로세서; 및
    상기 결정된 출력 스케줄에 따라 상기 페이로드를 출력하는 출력 컨트롤러
    를 포함하는 파일 판독 장치.
  23. 파일(102)을 판독하는 방법에 있어서,
    상기 파일은 상기 파일과 관련된 미디어 데이터 컨테이너(104)에 페이로드를 포함하는 데이터 패킷(110; 112)을 구비하고,
    상기 파일은 상기 미디어 데이터 컨테이너(104)에 상기 저장된 데이터 패킷(110; 112)의 페이로드를 위한 디코딩 정보(602; 702)를 구비하고,
    상기 디코딩 정보는 상기 저장된 데이터 패킷(110; 112)의 어느 페이로드를 어느 타임 인스턴트(at which time instant)에 재실행할 지를 가리키고,
    상기 파일은 상기 파일의 메타데이터 컨테이너(106) 내부에 연관 메타데이터(606; 706)를 저장하고,
    상기 연관 메타데이터(606; 706)는 상기 미디어 데이터 컨테이너(104) 내부의 상기 디코딩 정보(602; 702)의 위치 및 디코딩 시간을 가리키고,상기 방법은:
    상기 메타데이터 컨테이너(106) 내부의 상기 연관 메타데이터(606; 706)에 접근하고, 상기 연관 메타데이터(606; 706)에 기반하여 상기 미디어 데이터 컨테이너(104) 내부의 상기 디코딩 정보(602; 702)에 접근하고, 상기 디코딩 정보(602; 702)에 기반하여 저장된 데이터 패킷(110; 112)의 상기 페이로드에 접근함으로써 상기 저장된 데이터 패킷(110; 112)의 상기 페이로드의 출력 스케줄을 결정하는 단계; 및
    상기 결정된 출력 스케줄에 따라 상기 페이로드를 출력하는단계
    를 포함하는 파일 판독 방법.
  24. 제23항의 방법을 수행하도록 컴퓨터 및/또는 마이크로컨트롤러에서 실행되는 컴퓨터 프로그램.

KR1020107001920A 2007-07-02 2008-07-01 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법 KR101199732B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US94753907P 2007-07-02 2007-07-02
US60/947,539 2007-07-02
PCT/EP2008/005373 WO2009003683A1 (en) 2007-07-02 2008-07-01 Apparatus and method for processing and reading a file having a media data container and a metadata container

Publications (2)

Publication Number Publication Date
KR20100029137A true KR20100029137A (ko) 2010-03-15
KR101199732B1 KR101199732B1 (ko) 2012-11-08

Family

ID=39865600

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107002056A KR101074585B1 (ko) 2007-07-02 2008-07-01 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 읽고 저장하는 장치 및 방법
KR1020107001920A KR101199732B1 (ko) 2007-07-02 2008-07-01 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020107002056A KR101074585B1 (ko) 2007-07-02 2008-07-01 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 읽고 저장하는 장치 및 방법

Country Status (12)

Country Link
US (2) US9236091B2 (ko)
EP (2) EP2160899B1 (ko)
JP (2) JP5334335B2 (ko)
KR (2) KR101074585B1 (ko)
CN (2) CN101790886B (ko)
AT (1) ATE495631T1 (ko)
BR (2) BRPI0811821B1 (ko)
DE (1) DE602008004502D1 (ko)
HK (1) HK1136726A1 (ko)
RU (2) RU2459378C2 (ko)
TW (3) TWI446773B (ko)
WO (3) WO2009003685A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015002500A1 (ko) * 2013-07-05 2015-01-08 엘지전자 주식회사 실시간 전송 프로토콜 기반의 방송 시스템에서 미디어 방송 신호의 송수신 방법 및 장치
US9819977B2 (en) 2010-04-19 2017-11-14 Lg Electronics Inc. Method for transmitting/receiving internet-based content and transmitter/receiver using same
WO2018056781A1 (ko) * 2016-09-23 2018-03-29 재단법인 실감교류인체감응솔루션연구단 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법
US10009421B2 (en) 2014-10-22 2018-06-26 Samsung Electronics Co., Ltd. Contents control in electronic device
US20200107051A1 (en) * 2016-05-20 2020-04-02 Lg Electronics Inc. Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
DE102007004951A1 (de) * 2007-01-26 2008-07-31 Deutsche Thomson Ohg Verfahren zum paketvermittelten Übertragen von Mediendaten sowie Vorrichtung zum Bearbeiten von Mediendaten
WO2009003685A1 (en) * 2007-07-02 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for storing and reading a file having a media data container and a metadata container
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
FR2927208B1 (fr) * 2008-01-31 2010-02-12 Airbus France Procede et dispositif de mesure de la derive temporelle d'un equipement electronique relie a un reseau
US8077736B2 (en) * 2008-02-25 2011-12-13 Newport Media, Inc. Fast audio/visual reception in DVB-H systems
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
EP2114027A1 (en) * 2008-04-30 2009-11-04 Gemplus Method of detecting TV off event on a mobile terminal
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8261312B2 (en) * 2008-06-27 2012-09-04 Cisco Technology, Inc. Linear hint video streaming
US8776144B2 (en) * 2008-10-16 2014-07-08 Industrial Technology Research Institute Mobile TV system and method for synchronizing the rendering of streaming services thereof
JP2010181800A (ja) * 2009-02-09 2010-08-19 Mitsubishi Electric Corp 暗号化メディアファイルのデータ構造、暗号化メディア作成方法、暗号化メディア復号方法、暗号化メディア分割方法及び暗号化メディア結合方法並びに装置
JP5169947B2 (ja) * 2009-03-31 2013-03-27 富士通モバイルコミュニケーションズ株式会社 情報処理装置
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8166191B1 (en) * 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
WO2011056139A1 (en) * 2009-11-06 2011-05-12 Telefonaktiebolaget L M Ericsson (Publ). File format for synchronized media
RU2012130005A (ru) * 2009-12-14 2014-01-27 Сумитомо Электрик Нетуоркс, Инк. Устройство приема содержания, устройство воспроизведения содержания, устройство приема и воспроизведения содержания, способ приема содержания и программа
WO2011127312A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Real-time or near real-time streaming
KR20110117033A (ko) 2010-04-20 2011-10-26 삼성전자주식회사 미디어 데이터를 송수신하기 위한 인터페이스 장치 및 방법
KR101294542B1 (ko) * 2010-12-09 2013-08-07 한국전자통신연구원 데이터 변경 장치 및 방법
KR101920439B1 (ko) * 2011-04-28 2019-02-14 삼성전자주식회사 공용 인터페이스를 통해 수신 제한 모듈로 암호화된 데이터를 전송하기 위한 데이터 전송 장치 및 그에 적용되는 방법, 수신 제한 모듈 그리고 시스템.
US8731597B1 (en) * 2011-05-26 2014-05-20 Sprint Spectrum L.P. Method and system of transmitting power control commands
US8938625B2 (en) 2011-06-29 2015-01-20 Sonic Ip, Inc. Systems and methods for securing cryptographic data using timestamps
US9451313B2 (en) * 2011-06-29 2016-09-20 Harman International Industries, Incorporated Network media adapter
US20130004142A1 (en) * 2011-06-29 2013-01-03 Rovi Corp. Systems and methods for device authentication including timestamp validation
RU2618373C2 (ru) * 2011-07-29 2017-05-03 Сони Корпорейшн Устройство и способ распределения потоковой передачи данных, устройство и способ приема потоковой передачи данных, система потоковой передачи данных, программа и носитель записи
KR101885852B1 (ko) 2011-09-29 2018-08-08 삼성전자주식회사 컨텐트 전송 및 수신 방법 및 장치
JP5917123B2 (ja) * 2011-12-14 2016-05-11 キヤノン株式会社 記録装置
JP5848594B2 (ja) * 2011-12-14 2016-01-27 キヤノン株式会社 記録装置
US8824680B2 (en) * 2012-08-08 2014-09-02 Verizon Patent And Licensing Inc. Centralized key generation
US9319878B2 (en) * 2012-09-14 2016-04-19 Qualcomm Incorporated Streaming alignment of key stream to unaligned data stream
DE102012022064A1 (de) 2012-11-09 2014-05-15 Thomas Klimpel System und Verfahren zur Wiedergabe von Musikstücken und/oder Multimediadaten
US11290510B2 (en) 2012-11-29 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus for encapsulation of motion picture experts group media transport assets in international organization for standardization base media files
KR102179384B1 (ko) * 2012-11-30 2020-11-16 삼성전자주식회사 컨텐트를 저장한 정보저장매체, 컨텐트 제공 방법, 컨테트 재생 방법 및 그 장치
US9454995B2 (en) 2012-11-30 2016-09-27 Samsung Electronics Co., Ltd. Information storage medium storing content, content providing method, content reproducing method and apparatus therefor
US9584792B2 (en) * 2013-01-04 2017-02-28 Qualcomm Incorporated Indication of current view dependency on reference view in multiview coding file format
CN109618235B (zh) 2013-01-18 2021-03-16 佳能株式会社 生成设备和方法、处理设备和方法以及存储介质
BR122016011963B1 (pt) * 2013-01-21 2022-02-08 Dolby Laboratories Licensing Corporation Codificador e decodificador de áudio com sonoridade de programa e metadados de limite
JP5641090B2 (ja) * 2013-03-14 2014-12-17 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
KR101484843B1 (ko) 2013-04-19 2015-01-20 삼성전자주식회사 멀티미디어 전송 시스템에서 미디어 전송 패킷 전송 방법 및 장치
JP2014230154A (ja) * 2013-05-23 2014-12-08 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US9674569B2 (en) * 2013-05-29 2017-06-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Clock recovery in transponder-bonded systems using BCRs and marker packets at a set-top box
KR102145742B1 (ko) 2013-06-12 2020-08-19 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP2015012580A (ja) * 2013-07-02 2015-01-19 キヤノン株式会社 受信装置、受信方法及びプログラム
EP3050304A4 (en) * 2013-09-27 2017-05-31 LG Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
JP6652320B2 (ja) * 2013-12-16 2020-02-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 送信方法、受信方法、送信装置及び受信装置
JP6309639B2 (ja) * 2014-01-13 2018-04-11 エルジー エレクトロニクス インコーポレイティド 1つ以上のネットワークを介して放送コンテンツを送信又は受信するための方法及び装置
US10911800B2 (en) 2014-01-13 2021-02-02 Lg Electronics Inc. Apparatuses and methods for transmitting or receiving a broadcast content via one or more networks
WO2015108309A1 (en) * 2014-01-14 2015-07-23 Lg Electronics Inc. Broadcast transmission device and operating method thereof, broadcast reception device and operating method thereof
MY180962A (en) * 2014-06-20 2020-12-14 Sony Corp Image encoding apparatus and method, and image decoding apparatus and method
JP2016027512A (ja) * 2014-06-30 2016-02-18 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
KR101555792B1 (ko) 2014-11-28 2015-09-25 주식회사 엘지유플러스 멀티미디어 청크(chunk)를 수신하는 통신 단말기의 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
US11322248B2 (en) * 2015-03-26 2022-05-03 Surgical Safety Technologies Inc. Operating room black-box device, system, method and computer readable medium for event and error prediction
US10191914B2 (en) 2015-03-31 2019-01-29 EMC IP Holding Company LLC De-duplicating distributed file system using cloud-based object store
US9916458B2 (en) * 2015-03-31 2018-03-13 EMC IP Holding Company LLC Secure cloud-based storage of data shared across file system objects and clients
US11212333B1 (en) * 2015-05-29 2021-12-28 Ribbon Communications Operating Company, Inc. Methods and apparatus for synchronizing transcoded and/or transrated RTP packets
RU172157U1 (ru) * 2017-03-22 2017-06-29 Акционерное общество "МЦСТ" Контроллер межпроцессорного канала обмена данными второго поколения (IPCC2)
CN116527898A (zh) 2018-04-03 2023-08-01 华为技术有限公司 基于子图像码流视角相关视频编码中的误差抑制
US11080337B2 (en) * 2018-07-31 2021-08-03 Marvell Asia Pte, Ltd. Storage edge controller with a metadata computational engine
CN110866127A (zh) * 2018-08-27 2020-03-06 华为技术有限公司 建立索引的方法以及相关装置
KR102494980B1 (ko) 2018-09-24 2023-02-06 텔레폰악티에볼라겟엘엠에릭슨(펍) 패킷들의 무선 송신 및 수신
US11457231B2 (en) 2019-03-15 2022-09-27 Mediatek Singapore Pte. Ltd. Methods and apparatus for signaling spatial relationships for point cloud multimedia data tracks
US11245926B2 (en) * 2019-03-19 2022-02-08 Mediatek Singapore Pte. Ltd. Methods and apparatus for track derivation for immersive media data tracks
CN111756818B (zh) * 2020-06-05 2022-01-14 腾讯科技(深圳)有限公司 一种文件传送方法、装置、设备及存储介质
CN111966473B (zh) * 2020-07-24 2024-02-06 支付宝(杭州)信息技术有限公司 一种线性回归任务的运行方法及装置、电子设备

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6169843B1 (en) * 1995-12-01 2001-01-02 Harmonic, Inc. Recording and playback of audio-video transport streams
US5765164A (en) 1995-12-21 1998-06-09 Intel Corporation Apparatus and method for management of discontinuous segments of multiple audio, video, and data streams
US6377966B1 (en) * 1997-10-22 2002-04-23 Flashpoint Technology, Inc. Graphical interface to select characters representing phonetic articulation and no articulation groups
US6396874B1 (en) * 1997-11-12 2002-05-28 Sony Corporation Decoding method and apparatus and recording method and apparatus for moving picture data
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
JP2000078197A (ja) * 1998-09-03 2000-03-14 Toshiba Corp 通信ノード及びパケット転送方法
US6549922B1 (en) 1999-10-01 2003-04-15 Alok Srivastava System for collecting, transforming and managing media metadata
AU2001234579A1 (en) 2000-01-28 2001-08-07 Diva Systems Corporation Method and apparatus for content distribution via non-homogeneous access networks
EP1273151B1 (en) * 2000-04-08 2004-09-29 Sun Microsystems, Inc. Resynchronizing media during streaming
GB2366926A (en) 2000-09-06 2002-03-20 Sony Uk Ltd Combining material and data
GB0103381D0 (en) * 2001-02-12 2001-03-28 Eyretel Ltd Packet data recording method and system
JP3946965B2 (ja) * 2001-04-09 2007-07-18 ソニー株式会社 無体財産権を保護する情報を記録する記録装置、記録方法、記録媒体、およびプログラム
US7162479B2 (en) * 2001-08-15 2007-01-09 Bentley Systens, Incorporated Method and system for storing large data files
JP3925218B2 (ja) * 2002-01-30 2007-06-06 ソニー株式会社 ストリーミングシステム及びストリーミング方法、ストリーミングサーバ及びデータ配信方法、クライアント端末及びデータ復号方法、並びにプログラム及び記録媒体
US6912010B2 (en) * 2002-04-15 2005-06-28 Tektronix, Inc. Automated lip sync error correction
US7143132B2 (en) * 2002-05-31 2006-11-28 Microsoft Corporation Distributing files from a single server to multiple clients via cyclical multicasting
US7313236B2 (en) 2003-04-09 2007-12-25 International Business Machines Corporation Methods and apparatus for secure and adaptive delivery of multimedia content
US7586938B2 (en) * 2003-10-24 2009-09-08 Microsoft Corporation Methods and systems for self-describing multicasting of multimedia presentations
US7483532B2 (en) * 2003-07-03 2009-01-27 Microsoft Corporation RTP payload format
EP1673774A1 (en) * 2003-09-25 2006-06-28 Samsung Electronics Co., Ltd. Apparatus and method for displaying audio and video data, and storage medium recording thereon a program to execute the displaying method
US7480382B2 (en) 2003-09-30 2009-01-20 Microsoft Corporation Image file container
RU2372647C2 (ru) * 2003-10-24 2009-11-10 Майкрософт Корпорейшн Внедрение сообщения описания сеанса в сообщение протокола управления передачей в реальном масштабе времени (rtcp)
US8472792B2 (en) * 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
KR101244308B1 (ko) * 2003-12-08 2013-03-18 삼성전자주식회사 동영상 파일의 암호화 방법 및 그를 이용한 디지털 저작권관리방법
EP1542488A1 (en) 2003-12-12 2005-06-15 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for allocating a pilot signal adapted to the channel characteristics
JP2006164378A (ja) 2004-12-06 2006-06-22 Toshiba Corp 情報記録媒体、情報記録方法、情報再生方法、情報記録装置、情報再生装置
US20060227813A1 (en) 2005-04-11 2006-10-12 Mavrogeanes Richard A Method and system for synchronized video recording/delivery
CA2604203A1 (en) 2005-04-13 2006-10-19 Nokia Corporation Coding, storage and signalling of scalability information
US20060293077A1 (en) * 2005-06-27 2006-12-28 Nokia Corporation System, terminal, method, and computer program product for allocating memory for storage of content
US7843974B2 (en) * 2005-06-30 2010-11-30 Nokia Corporation Audio and video synchronization
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1932315A4 (en) * 2005-09-01 2012-05-09 Nokia Corp METHOD FOR INTEGRATING SVG CONTENT INTO ISO MULTIMEDIA FILE FORMAT FOR PROGRESSIVE DOWNLOAD AND CONTINUOUS TRANSMISSION OF RICH MULTIMEDIA CONTENT
DE102005062468A1 (de) 2005-12-27 2007-07-05 Robert Bosch Gmbh Verfahren zur Synchronisation von Datenströmen
US7995143B2 (en) * 2006-02-10 2011-08-09 Qualcomm Incorporated Wireless video link synchronization
JP2008061010A (ja) * 2006-08-31 2008-03-13 Toshiba Corp 映像音声送信装置
US8065672B2 (en) * 2007-01-23 2011-11-22 Oracle International Corporation Simplifying rollback to prior versions of patches used to fix errors in pre-installed software
WO2009003685A1 (en) * 2007-07-02 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for storing and reading a file having a media data container and a metadata container
US20090169001A1 (en) * 2007-12-28 2009-07-02 Cisco Technology, Inc. System and Method for Encryption and Secure Transmission of Compressed Media

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819977B2 (en) 2010-04-19 2017-11-14 Lg Electronics Inc. Method for transmitting/receiving internet-based content and transmitter/receiver using same
WO2015002500A1 (ko) * 2013-07-05 2015-01-08 엘지전자 주식회사 실시간 전송 프로토콜 기반의 방송 시스템에서 미디어 방송 신호의 송수신 방법 및 장치
US10009421B2 (en) 2014-10-22 2018-06-26 Samsung Electronics Co., Ltd. Contents control in electronic device
US20200107051A1 (en) * 2016-05-20 2020-04-02 Lg Electronics Inc. Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method
US11006158B2 (en) * 2016-05-20 2021-05-11 Lg Electronics Inc. Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method
WO2018056781A1 (ko) * 2016-09-23 2018-03-29 재단법인 실감교류인체감응솔루션연구단 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법
US11022999B2 (en) 2016-09-23 2021-06-01 Center Of Human-Centered Interaction For Coexistence Client device and local clock skew compensation method thereof

Also Published As

Publication number Publication date
US20100189256A1 (en) 2010-07-29
JP5334335B2 (ja) 2013-11-06
JP2010532605A (ja) 2010-10-07
CN101790886A (zh) 2010-07-28
CN101731013A (zh) 2010-06-09
TWI430665B (zh) 2014-03-11
RU2459378C2 (ru) 2012-08-20
RU2009148647A (ru) 2011-08-10
BRPI0811833A2 (pt) 2014-11-18
TWI446773B (zh) 2014-07-21
JP4766473B2 (ja) 2011-09-07
KR20100025018A (ko) 2010-03-08
US20100189424A1 (en) 2010-07-29
TW200910880A (en) 2009-03-01
EP2160899B1 (en) 2019-05-08
US8462946B2 (en) 2013-06-11
EP2149264A1 (en) 2010-02-03
KR101199732B1 (ko) 2012-11-08
BRPI0811821B1 (pt) 2019-11-12
KR101074585B1 (ko) 2011-10-17
RU2492587C2 (ru) 2013-09-10
BRPI0811833B1 (pt) 2020-12-29
TWI371204B (en) 2012-08-21
JP2010531590A (ja) 2010-09-24
EP2149264B1 (en) 2011-01-12
WO2009003684A1 (en) 2009-01-08
RU2009147728A (ru) 2011-08-10
WO2009003685A1 (en) 2009-01-08
CN101731013B (zh) 2013-06-12
TW200910970A (en) 2009-03-01
BRPI0811821A2 (pt) 2014-11-04
HK1136726A1 (en) 2010-07-02
DE602008004502D1 (de) 2011-02-24
US9236091B2 (en) 2016-01-12
TW200908652A (en) 2009-02-16
EP2160899A1 (en) 2010-03-10
ATE495631T1 (de) 2011-01-15
WO2009003683A1 (en) 2009-01-08
CN101790886B (zh) 2012-12-05

Similar Documents

Publication Publication Date Title
KR101199732B1 (ko) 미디어 데이터 컨테이너 및 메타데이터 컨테이너를 포함하는 파일을 판독 및 처리하는 장치 및 방법
KR101254385B1 (ko) 미디어 데이터 및 멀티미디어 데이터 중 적어도 하나를 적어도 하나의 파일 내에서 구성화하는 방법 및 장치, 액세스 방법, 컴퓨터 판독가능 저장 매체
CA2695645C (en) Segmented metadata and indexes for streamed multimedia data
KR101107815B1 (ko) 멀티미디어 컨테이너 파일의 수신 힌트 트랙으로의 미디어 스트림 기록 방법 및 장치, 컴퓨터 판독가능 매체
JP5587779B2 (ja) メディアデータコンテナとメタデータコンテナとを有するファイルを格納し読み取るための装置及び方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161026

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171026

Year of fee payment: 6