KR20090045375A - System and method for indicating track relationships in media files - Google Patents
System and method for indicating track relationships in media files Download PDFInfo
- Publication number
- KR20090045375A KR20090045375A KR1020097005944A KR20097005944A KR20090045375A KR 20090045375 A KR20090045375 A KR 20090045375A KR 1020097005944 A KR1020097005944 A KR 1020097005944A KR 20097005944 A KR20097005944 A KR 20097005944A KR 20090045375 A KR20090045375 A KR 20090045375A
- Authority
- KR
- South Korea
- Prior art keywords
- track
- information
- relationship
- box
- groups
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000011664 signaling Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims 8
- 230000007246 mechanism Effects 0.000 abstract description 8
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011093 media selection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/19—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
- G11B27/28—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
- G11B27/32—Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/39—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
미디어 파일에서 트랙 관계 정보를 시그널링하고 표시하는 시스템 및 방법이 개시된다. 본 발명은 효율적인 방식으로 트랙 관계 정보를 시그널링하기 위한 메커니즘 뿐만 아니라, 계층화 트랙 그룹들의 정보 및 MDC 트랙 그룹들의 정보를 시그널링하기 위한 메커니즘을 제공한다. 로컬에서의 재생 또는 유니캐스트 스트리밍 어플리케이션에서, 소정의 미디어 유형에 대해 독립적으로 디코딩가능한 트랙을 선택하기 위해, 대체 트랙 그룹들의 정보가 트랙 관계 박스를 경유하여 첫 번째로 발견되고, 하나의 트랙이 미디어 유형에 대한 대체 트랙 그룹으로부터 선택된다. 만약 스트리밍 스위칭이 요구되면, 스위칭 트랙 그룹 정보는 트랙 관계 박스를 경유하여 발견된다. 스케일가능한 또는 MDC 스트림들을 가진 멀티캐스트 어플리케이션에서, 계층화 또는 MDC 그룹 내의 트랙들은 그 트랙 관계 박스를 경유하여 발견되고 모든 그 계층화 또는 MDC 그룹들 사이에서 선택된다.A system and method for signaling and displaying track relationship information in a media file is disclosed. The present invention provides not only a mechanism for signaling track relationship information in an efficient manner, but also a mechanism for signaling information of layered track groups and information of MDC track groups. In a local playback or unicast streaming application, to select an independently decodable track for a given media type, the information of alternate track groups is first found via the track relationship box, and one track is media The alternative track group for the type is selected. If streaming switching is required, the switching track group information is found via the track relationship box. In a multicast application with scalable or MDC streams, tracks within a layering or MDC group are found via the track relationship box and selected between all of the layering or MDC groups.
Description
본 발명은 개괄적으로, 코딩된 미디어 파일들의 저장에 관한 것이다. 보다 상세하게는, 본 발명은 로컬에서의 재생 또는 전송을 위한 파일 내 코딩된 미디어 데이터의 저장에 관한 것이다.The present invention relates generally to the storage of coded media files. More particularly, the present invention relates to the storage of coded media data in files for playback or transmission locally.
이 섹션에서는 청구항에서 상술된 본 발명에 대한 배경기술 또는 컨텍스트(context)를 제공하려고 한다. 여기에서의 설명은 추구될 수 있지만, 반드시 이전에 생각되거나 추구되었던 것들은 아닌 개념들을 포함할 수도 있다. 그러므로, 여기에서 달리 표시되지 않으면, 이 섹션에서 기술된 것은 이 출원에서의 설명 및 청구항들에 대한 선행기술이 아니고 이 섹션에 포함됨으로 인해 선행기술인 것으로 인정되는 것은 아니다.This section attempts to provide a background or context for the invention described above in the claims. The description herein may be sought, but may include concepts that are not necessarily those previously thought or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art due to inclusion in this section.
멀티미디어 어플리케이션들은 로컬에서의 재생, 스트리밍 또는 온디맨드(on-demand)의 대화형 및 브로드캐스트/멀티캐스트 서비스들과 같은 서비스들을 포함한다. 멀티미디어 어플리케이션들에 포함된 기술들은, 그 중에서도, 미디어 코딩, 저장 및 전송을 포함한다. 상이한 표준들이 상이한 기술들에 관해 명세화되었다.Multimedia applications include services such as local playback, streaming or on-demand interactive and broadcast / multicast services. Techniques included in multimedia applications include, among other things, media coding, storage, and transmission. Different standards have been specified for different technologies.
스케일가능한 코딩은 스케일가능한 미디어 스트림들 - 여기서 한 스트림은 다수의 계층들에서 코딩될 수 있음 - 을 만들어낸다. 스케일가능 코딩에서, 각 계층은 요구되는 더 낮은 계층들과 함께, 소정의 공간 해상도(spatial resolution), 시간 해상도(temporal resolution), 소정의 품질 수준(quality level) 또는 이들 세 개의 어떠한 조합으로의 그 미디어 시퀀스에 관한 하나의 표현이다. 스케일가능 스트림 중의 일부는 원하는 공간 해상도, 시간 해상도, 소정의 품질 레벨 또는 그것들의 어떠한 조합으로 추출되고 디코딩될 수 있다. 스케일가능 스트림은 스케일불가능한 기본 계층(base layer) 및 하나 이상의 상위 계층(enhancement layer)들을 포함한다. 상위 계층은 시간 해상도(즉, 프레임 레이트(frame rate)), 공간 해상도, 또는 단순히 더 하위의 계층 또는 그것의 부분에 의해 표현되는 비디오 콘텐트의 품질을 높일 수도 있다. 어떤 경우들에서는, 상위 계층에서의 데이터는 소정의 위치 이후에는, 또는 심지어는 임의의 위치들에서도, 잘려질 수도 있고(truncated), 여기서 각 잘림 위치(truncation position)는 더욱 더 향상된 영상 품질을 나타내는 부가적인 데이터를 포함할 수도 있다.Scalable coding produces scalable media streams, where one stream can be coded in multiple layers. In scalable coding, each layer has its spatial layer, temporal resolution, quality level, or any combination of these three, with the lower layers required. One representation of a media sequence. Some of the scalable streams may be extracted and decoded at the desired spatial resolution, temporal resolution, desired quality level or any combination thereof. The scalable stream includes a non-scalable base layer and one or more enhancement layers. The higher layer may increase the temporal resolution (ie, frame rate), spatial resolution, or simply the quality of the video content represented by the lower layer or part thereof. In some cases, the data in the upper layer may be truncated after a predetermined position, or even at arbitrary positions, where each truncation position represents even more improved image quality. It may also include additional data.
SVC는 스케일가능한 비디오 코딩 예이다. SVC 표준의 최근 드래프트는, 2006년 4월 스위스 제네바에서 열린 제19차 회의에 따른, JVT-S202, "Joint Scalable Video Model JSVM-6: Joint Draft 6 with proposed changes"에 기술되어 있고, 이것은 참조에 의해 그것의 전체로 이 문서에 통합된다.SVC is a scalable video coding example. A recent draft of the SVC standard is described in JVT-S202, "Joint Scalable Video Model JSVM-6: Joint Draft 6 with proposed changes," according to the 19th meeting in Geneva, Switzerland, April 2006, which is incorporated by reference. It is incorporated into this document as a whole.
멀티뷰 비디오 코딩(multi-view video coding; MVC)에서, 각각이 하나의 뷰에 대응되는 상이한 카메라들로부터 출력된 비디오 시퀀스들은 하나의 비트스트림으로 인코딩된다. 디코딩 후에, 소정 뷰를 디스플레이하기 위해, 그 뷰에 속하는 디코딩된 화면들이 디스플레이된다. MVC 표준의 최근 드래프트는, 2006년 7월 오스트리아 클라겐푸르트(Klagenfurt)에서 열린 제20차 JVT 회의에 따른, JVT-T208, "Joint multiview video model (JMVM 1.0)"에 기술되어 있고, 이것은 참조에 의해 그것의 전체로 이 문서에 통합된다.In multi-view video coding (MVC), video sequences output from different cameras each corresponding to one view are encoded into one bitstream. After decoding, to display a given view, decoded screens belonging to that view are displayed. A recent draft of the MVC standard is described in JVT-T208, "Joint multiview video model (JMVM 1.0)," in accordance with the 20th JVT Conference in Klagenfurt, Austria, July 2006, which is incorporated by reference. It is incorporated into this document as a whole.
다중 디스크립션 코딩(multiple description coding; MDC)에서, 입력 미디어 시퀀스는 서브스트림들 이상으로 인코딩되고, 그들 각각은 디스크립션(description)으로 불려진다. 각 디스크립션은 독립적으로 디코딩가능하고 소정의 미디어 품질을 나타낸다. 그러나, 하나 또는 그보다 더 많은 디스크립션의 디코딩에 기초하여, 다른 디스크립션에 관한 부가적인 디코딩은 개선된 미디어 품질이라는 결과를 가져올 수 있다. MDC는, Y.Wang과 A. Reibman과 S.Lin의 "Multiple description coding for video delivery"(IEEE 회보, vol. 93, no. 1, 2005년 1월)에서 상세하게 논의된 것으로, 이것은 참조에 의해 그것의 전체로 이 문서에 통합된다.In multiple description coding (MDC), an input media sequence is encoded into substreams or more, each of which is called a description. Each description is independently decodable and exhibits a predetermined media quality. However, based on decoding one or more descriptions, additional decoding on other descriptions may result in improved media quality. MDC is discussed in detail in Y.Wang, A. Reibman and S. Lin's "Multiple description coding for video delivery" (IEEE Bulletin, vol. 93, no. 1, January 2005). It is incorporated into this document as a whole.
파일 포맷은 멀티미디어 콘텐트 생산, 조작(manipulation), 전송 및 소비라는 일련과정에 있어서 중요한 요소이다. 코딩 포맷과 파일 포맷 간에는 차이점이 있다. 코딩 포맷은 콘텐트 정보를 비트스트림으로 코딩하는 특정의 코딩 알고리즘의 작동에 관련된다. 그와 대조적으로, 파일 포맷은 로컬에서의 디코딩 및 재생을 위해 액세스되고, 파일로서 전송되거나, 또는 스트리밍될 수 있는 방식으로 - 이것들 모두는 여러가지의 저장 및 전송 구조들을 활용함 - 생성 비트스트림을 구성하는 시스템을 포함한다. 또한, 파일 포맷은 미디어의 상호교환 및 편집을 용이하게 할 수 있다. 예를 들면, 많은 스트리밍 어플리케이션들은, 서버에서의 이미 인코딩된 비트스트림으로 하여금, "힌트트랙들"(hint-tracks)에 저장된 메타데이터 - 이것은 서버로 하여금 그 비디오를 클라이언트로 스트리밍하도록 돕는다 - 를 동반할 것을 요구한다. 힌트트랙 메타데이터에 포함될 수 있는 정보 예들은 타이밍 정보, 동기화 포인트들의 표시들 및 패킷화 힌트(packetization hint)들을 포함한다. 이 정보는 서버의 동작 부하를 감소시키기 위해 그리고 엔드유저 경험을 최대화하기 위해 사용된다.File format is an important element in the serial process of producing, manipulating, transmitting and consuming multimedia content. There is a difference between coding format and file format. The coding format relates to the operation of a particular coding algorithm that codes the content information into the bitstream. In contrast, the file format can be accessed for decoding and playback locally, transmitted as a file, or streamed in a manner, all of which utilize various storage and transmission structures-constructing the generated bitstream. It includes a system to do. The file format can also facilitate the interchange and editing of media. For example, many streaming applications have an already encoded bitstream at the server accompanied by metadata stored in "hint-tracks", which helps the server stream the video to the client. Ask to do Examples of information that may be included in the hint track metadata include timing information, indications of synchronization points, and packetization hints. This information is used to reduce the operational load on the server and to maximize the end user experience.
이용가능한 미디어 파일 포맷 표준들은 ISO 파일 포맷(ISO/IEC 14496-12), MPEG-4 파일 포맷(ISO/IEC 14496-14), AVC 파일 포맷(ISO/IEC 14496-15) 및 3GPP 파일 포맷(3GPP TS 26.244)을 포함한다. 또한 AVC 파일 포맷에 대한 개정이 될, SVC 파일 포맷의 발전을 위한 MPEG의 프로젝트가 있다. 유사한 노력으로, MPEG은 FLUTE(file delivery over unidirectional transport) 세션들을 위한 힌트 트랙 포맷을 정의하고 있다.Available media file format standards include ISO file format (ISO / IEC 14496-12), MPEG-4 file format (ISO / IEC 14496-14), AVC file format (ISO / IEC 14496-15), and 3GPP file format (3GPP TS 26.244). There is also a project of MPEG for the development of the SVC file format, which will be a revision to the AVC file format. In a similar effort, MPEG defines a hint track format for file delivery over unidirectional transport (FLUTE) sessions.
ISO 파일 포맷은 모든 다른 상기 참조된 파일 포맷들을 이끌어내는 기초이다. ISO 파일 포맷을 포함하여 이들 파일 포맷들 모두는 ISO 파일 포맷 패밀리로 불려진다. ISO 파일 포맷 패밀리에 따르면, 계층적으로 구조화된 각 파일은 하나 이상의 트랙들을 포함할 수도 있는 정확히 하나의 영화 박스(movie box)를 포함하고, 각 트랙은 하나의 트랙 박스에 있다. 하나 이상의 트랙이 소정 미디어 유형의 정보를 저장하는 것이 가능하다. 이들 트랙들의 하위집합은 대체(alternate) 트랙 그룹을 형성할 수도 있고, 여기서 각 트랙은 독립적으로 디코딩가능하고 재생 및 전송을 위해 선택될 수 있으며, 여기서 단지 대체자(alternate) 내 트랙만이 재생 및 전송을 위해 선택되어야 할 것이다.The ISO file format is the basis for deriving all other referenced file formats. All of these file formats, including the ISO file format, are called the ISO file format family. According to the ISO file format family, each hierarchically structured file contains exactly one movie box, which may include one or more tracks, each track in one track box. It is possible for one or more tracks to store information of a given media type. A subset of these tracks may form an alternate track group, where each track is independently decodable and can be selected for playback and transmission, where only tracks in the alternate are played and transmitted. Will be chosen for
대체 그룹 내 모든 트랙들은 미디어 선택을 위한 후보들이다. 그러나, 세션 동안 그들 트랙들의 몇몇 개들 간의 스위치는 의미없을 수도 있다. 예를 들면, 우리는 서로 다른 비트율(bit rate)들의 비디오 트랙들 간 스위치를 허용하고 프레임 크기를 유지할 수도 있지만, 서로 다른 프레임 크기들의 트랙들 간 스위칭을 허용하지 않는다. 같은 방식으로 우리는 서로 다른 비디오 코덱들 또는 서로 다른 오디오 언어들의 트랙들 사이에서 선택하는 것(그러나 스위치하는 것은 아님)을 허용함을 원할 수도 있다. 선택 및 스위치를 위한 트랙들 간 구별은 스위치 그룹들로 불리는 서브그룹 구조를 도입함으로써 다루어진다. 대체 그룹 내 모든 트랙들은 미디어 선택을 위한 후보들이지만, 반면에 스위치 (하부)그룹 내 트랙들은 또한 세션 동안 스위치에 있어서 이용가능하다. 서로 다른 스위치 그룹들은 서로 다른 프레임 크기, 고/저 품질 등과 같은 서로 다른 동작 포인트들을 나타낸다.All tracks in the replacement group are candidates for media selection. However, the switch between some of those tracks during the session may be meaningless. For example, we may allow switching between video tracks of different bit rates and maintain the frame size, but do not allow switching between tracks of different frame sizes. In the same way we may want to allow selecting (but not switching) between tracks of different video codecs or different audio languages. The distinction between tracks for selection and switching is handled by introducing a subgroup structure called switch groups. All tracks in the replacement group are candidates for media selection, while tracks in the switch (lower) group are also available for the switch during the session. Different switch groups represent different operating points, such as different frame sizes, high / low quality, and the like.
ISO 파일 포맷은 전송 패킷들에 데이터를 캡슐화하고 소정의 타임 스탬프들에 따른 형성된 패킷들의 전송을 위한 설명서 지시(cookbook instruction)들을 제공하는 힌트 트랙들을 지원한다. 힌트 트랙 메커니즘은 실시간 시청각 데이터를 위한, 스트리밍 서버들과 같은 서버들에 의해 사용될 수 있다. 설명서 지시들은 패킷 헤더 구성을 위한 안내를 포함하고 패킷 페이로드(payload) 구성을 포함할 수도 있다. 패킷 페이로드 구성에서, 다른 트랙들 또는 아이템들에 있는 데이터가 참조될 수도 있는데, 즉 그것은, 패킷 구성 프로세스 동안 패킷으로 복사되도록 지시되는, 특정한 트랙 또는 아이템 내 데이터의 부분에 관한 참조(reference)에 의해 표시된다. 힌트 트랙 메커니즘은 임의의 전송 프로토콜들로 확장가능하고, 그리고 현재, 실시간 전송 프로토콜(Real-Time Transport Protocol)(RTP, IETF RFC 3550 (www.ietf.org/rfc/rfc3550.txt) (이는 참조에 의해 그것의 전체로 이 문서에 통합됨))을 위한 힌트 트랙 포맷이 명세화되고, 그리고 FLUTE(IETF RFC 3926 (www.ietf.org/rfc/rfc3926.txt) (이는 참조에 의해 그것의 전체로 이 문서에 통합됨)) 및 ALC(IETF RFC 3450 (www.ietf.org/rfc/rfc3450.txt) (이는 참조에 의해 그것의 전체로 이 문서에 통합됨))와 같이, 단방향 채널들을 통한 파일 전달 프로토콜들을 위한 힌트 트랙 포맷은 표준화 프로세스가 행해지고 있다.The ISO file format supports hint tracks that encapsulate data in transport packets and provide cookbook instructions for the transmission of formed packets according to predetermined time stamps. The hint track mechanism can be used by servers, such as streaming servers, for real time audiovisual data. The instruction instructions may include instructions for packet header configuration and may include packet payload configuration. In a packet payload configuration, data in other tracks or items may be referenced, ie it refers to a reference to the portion of data in a particular track or item that is directed to be copied into the packet during the packet construction process. Is indicated by. The hint track mechanism is extensible with arbitrary transport protocols, and currently, Real-Time Transport Protocol (RTP, IETF RFC 3550 ( www.ietf.org/rfc/rfc3550.txt ) (see Hint track format for its entirety) is specified, and FLUTE (IETF RFC 3926 (www.ietf.org/rfc/rfc3926.txt) (which is hereby incorporated by reference in its entirety) ) And ALC (IETF RFC 3450 (www.ietf.org/rfc/rfc3450.txt) (which is incorporated herein in its entirety by reference)) for file transfer protocols over unidirectional channels The hint track format has been standardized.
상기에서 논의된 바와 같이, ISO 파일 포맷 패밀리는 힌트 트랙들을 지원한다. 드래프트의 SVC 파일 포맷은 추출자(extractor)로서 불리는 데이터 구조를 지원한다. 추출자는 힌트 샘플과 유사하지만 임의의 전송 프로토콜에 특정한 것은 아니다. 추출자는 미디어 샘플의 데이터의 하위집합에 대해 참조정보를 제공하고, 여기서 참조정보가 제공되는 데이터는 소정의 스케일가능 계층의 디코딩 및 재생을 위해 그 샘플에서 필요로 되는 데이터에 대응된다.As discussed above, the ISO file format family supports hint tracks. Draft's SVC file format supports data structures called extractors. The extractor is similar to the hint sample but is not specific to any transport protocol. The extractor provides reference information for a subset of the data of the media sample, where the data to which the reference information is provided corresponds to the data needed in that sample for decoding and playback of a given scalable layer.
스케일가능 미디어 스트림들을 이용한 멀티캐스트 어플리케이션들에 있어서, 스케일가능 스트림의 정보는 서로 다른 트랙들에 저장될 수도 있고, 여기서 각각의 트랙은 하나의 스케일가능 계층 또는 다수의 인접 계층들에 대응된다. 이들 트랙들은 추출자 트랙들 뿐만 아니라 힌트 트랙들일 수 있다. 여기에서 논의되는 바와 같이, "추출자 트랙"(extractor track)은 추출자들 및 또한 가능하면 비추출자 샘플 들, 예를 들어 미디어 데이터 유닛들을 포함하는 트랙을 말한다. 이런 식으로, 만약 계층화 멀티캐스트가 적용된다면, 각 트랙 내 서브스트림은 그것 고유의 실시간 전송 프로토콜(RTP) 세션에서 송신될 수 있고, 수신자는 원하는 스케일가능 계층 및 더 하위의 요구되는 계층들을 포함하는 다수의 RTP 세션들을 구독한다(subscribe). 이들 트랙들은 계층화 트랙 그룹(layered track group)으로 불린다. 계층화 트랙 그룹 내 트랙들은 함께 독립적으로 디코딩가능한 스케일가능 스트림을 형성하고, 반면에 계층화 트랙 그룹 내 각 개개의 트랙에 대응되는 서브스트림의 디코딩은 다른 트랙들에 대응되는 서브스트림들에 의존할 수도 있다. 상기 사항은 또한 멀티뷰 비디오 스트림들에 적용되고, 여기서 각 뷰는 스케일가능 계층으로서 고려된다. 유사하게, MDC 스트림에 대해, 각 서브스트림의 정보 또는 디스크립션은 또한 그것 고유의 트랙 내에 저장될 수도 있다. MDC 스트림에 관한 모든 디스크립션들에 대응되는 이들 트랙들은 MDC 트랙 그룹으로서 불린다.In multicast applications using scalable media streams, the information of the scalable stream may be stored in different tracks, where each track corresponds to one scalable layer or multiple adjacent layers. These tracks can be hint tracks as well as extractor tracks. As discussed herein, an "extractor track" refers to a track that includes extractors and possibly non-extractor samples, eg, media data units. In this way, if layered multicast is applied, the substream in each track can be transmitted in its own real time transport protocol (RTP) session, and the receiver contains the desired scalable layer and the lower required layers. Subscribe to multiple RTP sessions. These tracks are called layered track groups. The tracks in the stratified track group together form a decodable stream independently independently, while the decoding of the substream corresponding to each individual track in the stratified track group may depend on the substreams corresponding to the other tracks. . The above also applies to multiview video streams, where each view is considered as a scalable layer. Similarly, for an MDC stream, the information or description of each substream may also be stored in its own track. These tracks that correspond to all descriptions about the MDC stream are called MDC track groups.
FLUTE - 이는 IETF Request for Comments (RFC) No. 3926 (www.ietf.org/rfc/rfc3926.txt)에서 논의되고 그리고 참조에 의해 그것의 전체로 이 문서에 통합된다 - 는 멀티캐스트 및 브로드캐스트 어플리케이션들을 위한 파일 전달 프로토콜(file delivery protocol)로서 광범위하게 채택되었다. FLUTE는 비동기 계층화 코딩(asynchronous layered coding;ALC) 프로토콜 - 이는 IETF RFC 3450 (www.ietf.org/rfc/rfc3450.txt)에서 논의된다 - , 및 계층화 코딩 전송(layered coding transport;LCT) 프로토콜 - 이는 IETF RFC 3451 (www.ietf.org/rfc/rfc3451.txt)에서 논의됨 - 에 기반한 것이다. FLUTE는 ALC 및 LCT 프로토콜들에서 정의된 기능들 모두를 상속하고, 그 ALC 및LCT 프로토콜들 양자 모두는 참조에 의해 그것들의 전체들로 이 문서에 통합된다. LCT는 대규모 확장성(massive saclability)을 허용하는 LCT 채널들의 개념을 정의한다. LCT 확장성은 수신자기반의 계층화 멀티캐스트(Receiver-driven Layered Multicast; RLM) 원리에 기반하여 설계되었는데, 그 원리에서는 수신자들이 전달된 데이터의 계층들 추가하거나 제거하는 것에 기반한 적절한 혼잡 제어 알고리즘을 구현하는 것을 담당하고 있다. 송신자는 각각이 서로 다른 멀티캐스트 그룹으로 주소지정되어지는 서로 다른 계층들로 그 데이터를 송신한다.FLUTE-This is the IETF Request for Comments (RFC) No. Discussed in 3926 (www.ietf.org/rfc/rfc3926.txt) and incorporated herein by reference in its entirety-is a broad file delivery protocol for multicast and broadcast applications. Was adopted. FLUTE is an asynchronous layered coding (ALC) protocol, which is discussed in IETF RFC 3450 (www.ietf.org/rfc/rfc3450.txt), and a layered coding transport (LCT) protocol. Based on IETF RFC 3451 (discussed in www.ietf.org/rfc/rfc3451.txt). FLUTE inherits all of the functions defined in the ALC and LCT protocols, both of which are incorporated herein by reference in their entirety. LCT defines the concept of LCT channels to allow for massive saclability. LCT scalability is designed on the basis of Receiver-driven Layered Multicast (RLM) principles, which allow receivers to implement appropriate congestion control algorithms based on adding or removing layers of transmitted data. I am in charge. The sender transmits its data to different layers, each of which is addressed to a different multicast group.
LCT에서, 하나 또는 다수의 채널들이 FLUTE 세션의 파일들의 전달을 위해 사용될 수도 있다. 데이터가 LCT 채널들 중에 어떻게 분할되는지에 관하여 FLUTE 송신자에게 대단한 유연성(flexibility)이 주어진다. 보통의 사용예는 모든 상이한 LCT 채널들 상에서 그러나 상이한 비트율들로 동일한 데이터를 송신하는 것이다. 게다가, FLUTE 송신자는 수신자들로 하여금 하나의 채널에 관해 보통 요구되는 시간보다 더 짧은 시간 동안 모든 채널들을 결합함으로써 FLUTE 세션의 모든 파일들을 획득할 수 있게 하도록 지능적으로 행동할 수도 있다. 이러한 경우에서, 각 채널을 통해 송신되는 데이터는 다른 채널들의 데이터를 보완한다.In LCT, one or multiple channels may be used for delivery of files in a FLUTE session. Great flexibility is given to FLUTE senders as to how data is divided among LCT channels. A common use case is to transmit the same data on all different LCT channels but at different bit rates. In addition, the FLUTE sender may act intelligently to allow recipients to acquire all files of a FLUTE session by combining all channels for a time shorter than normally required for one channel. In this case, the data transmitted on each channel complements the data of other channels.
어떻게 데이터가 상이한 채널들 사이에서 나누어지는지 뿐만 아니라 FLUTE 세션의 LCT 채널들에 관한 정보는 현재 FLUTE 힌트 트랙 명세에 정의되어지고 있다. 이러한 정보는 FLUTE 서버가 타겟 어플리케이션에 따라 적당한 채널들을 선택하고 그것들을 적절한 FLUTE 세션 내로 병합하도록 도울 것이다. 만약 FLUTE 힌트 트랙들 집합이 서로 독립적이고 그 힌트 트랙들 중 단지 하나만이 FLUTE 세션 동안 프로세싱되도록 의도된다면, 그러면 그것들은 대체 트랙 그룹에 속하고, 그것들 중 적어도 한 하위집합이 하나의 스위칭 트랙 그룹에 속한다. 만약 FLUTE 힌트 트랙들 집합이 서로에게 보완적이라면, 그것들은 계층화 트랙 그룹에 속한다.Information about the LCT channels of a FLUTE session as well as how data is divided between different channels is currently defined in the FLUTE hint track specification. This information will help the FLUTE server to select the appropriate channels according to the target application and merge them into the appropriate FLUTE session. If the set of FLUTE hint tracks are independent of each other and only one of the hint tracks is intended to be processed during the FLUTE session, then they belong to the alternate track group and at least one subset of them belongs to one switching track group. . If a set of FLUTE hint tracks are complementary to each other, they belong to a layered track group.
현재 파일 포맷 설계들은 계층화(layered) 또는 MDC 트랙 그룹들의 시그널링을 지원하지 않는다. 게다가, 대체 또는 스위칭 트랙 그룹들의 현재의 시그널링은 트랙레벨의 데이터 구조(대체 트랙 그룹들에 대한 트랙 헤더 박스(track header box) 및 트랙레벨 사용자 데이터 박스 내 트랙 선택 박스(track selection box))에 대체 또는 스위칭 그룹 ID를 포함하는 것이다. 이것은 대체 또는 스위칭 트랙 그룹들의 정보를 얻기 위해 영화 박스 내 모든 트랙들을 파싱(parsing)하는 노력을 들게 한다. 만약 트랙들의 수가 많으면, 그때는 파싱 복잡성이 사소한 문제가 아닐 수 있다.Current file format designs do not support signaling of layered or MDC track groups. In addition, the current signaling of alternate or switching track groups replaces the track level data structure (track header box for alternate track groups and track selection box in the track level user data box). Or a switching group ID. This makes an effort to parse all the tracks in the movie box to get information of alternate or switching track groups. If the number of tracks is large, then parsing complexity may not be a minor issue.
본 발명은 미디어 파일들에서 트랙 관계 정보(track relationship information)를 시그널링하고 표시하는 시스템 및 방법을 제공한다. 특히, 본 발명은 계층화 트랙 그룹들의 정보 및 MDC 트랙 그룹들의 정보를 시그널링하기 위한 메커니즘 뿐만 아니라 효율적인 방식으로 트랙 관계 정보를 시그널링하기 위한 메커니즘을 제공한다.The present invention provides a system and method for signaling and displaying track relationship information in media files. In particular, the present invention provides a mechanism for signaling track relationship information in an efficient manner as well as a mechanism for signaling information of layered track groups and MDC track groups.
본 발명의 구성 및 동작 양식과 함께, 본 발명의 이들 및 다른 이점들 및 특징들은, 첨부된 도면들과 관련하여 이해될 때 다음의 상세한 설명으로부터 명확해질 것이고, 여기서 비슷한 요소들은 아래에서 설명되는 여러 가지 도면들에 걸쳐 비슷한 숫자들로 표시된다.These and other advantages and features of the present invention, together with the configuration and mode of operation of the present invention, will become apparent from the following detailed description when understood in conjunction with the accompanying drawings, in which like elements are described in several ways. Like numbers are shown throughout the drawings.
도 1은 본 발명의 다양한 실시예들에서 이용되는 일반적인 멀티미디어 통신 시스템을 보여주고 있고;1 illustrates a general multimedia communication system used in various embodiments of the present invention;
도 2는 본 발명의 구현에서 이용될 수 있는 모바일 전화기의 투시도이며; 그리고 2 is a perspective view of a mobile telephone that may be used in the implementation of the present invention; And
도 3은 도 2의 모바일 전화기의 전화 회로에 관한 도식적 표현이다.3 is a schematic representation of the telephone circuit of the mobile telephone of FIG.
도 1은 본 발명에서 이용되는 일반적인 멀티미디어 통신 시스템을 보여주고 있다. 도 1에서 보여지는 바와 같이, 데이터 소스(100)는 아날로그식의 비압축 디지털 또는 압축 디지털 포맷, 또는 이들 포맷들의 임의의 조합으로 소스 신호를 제공한다. 인코더(110)는 소스 신호를 코딩된 미디어 비트스트림으로 인코딩한다. 인코더(110)는 하나 이상의 미디어 유형, 예컨대 오디오 및 비디오를 인코딩할 수 있을 수도 있고, 또는 하나 이상의 인코더(110)가 소스 신호의 상이한 미디어 유형들을 코딩하기 위해 요구될 수도 있다. 인코더(110)는 또한 합성적으로 산출된 입력, 예컨대 그래픽 및 텍스트를 얻을 수도 있고, 또는 그것은 합성 미디어의 코딩된 비트스트림들을 산출할 수도 있다. 다음에서, 설명을 단순화하기 위해 하나의 미디어 유형으로 된 하나의 코딩된 미디어 비트스트림에 관한 프로세싱만이 고려된다. 그러나, 전형적으로 실시간 브로드캐스트 서비스들은 몇몇 스트림들(전형적으로 적어 도 하나의 오디오, 비디오 및 텍스트 하부-표제화(sub-titling) 스트림)을 포함함이 유념되어야 할 것이다. 또한 그 시스템은 많은 인코더들을 포함할 수도 있지만, 일반성을 잃지 않고 설명을 단순화하기 위해 이하에서는 단지 하나의 인코더(110)만이 고려된다는 것이 유념되어야 할 것이다.1 shows a general multimedia communication system used in the present invention. As shown in FIG. 1, data source 100 provides a source signal in an analog, uncompressed digital or compressed digital format, or any combination of these formats. Encoder 110 encodes the source signal into a coded media bitstream. The encoder 110 may encode one or more media types, such as audio and video, or one or more encoder 110 may be required to code different media types of the source signal. Encoder 110 may also obtain synthetically calculated input, such as graphics and text, or it may yield coded bitstreams of synthetic media. In the following, only processing regarding one coded media bitstream of one media type is considered to simplify the description. However, it will typically be noted that real time broadcast services include several streams (typically at least one audio, video and text sub-titling stream). The system may also include many encoders, but it should be noted that only one encoder 110 is considered below to simplify the description without losing generality.
코딩된 미디어 비트스트림은 저장소(120)로 전송된다. 저장소(120)는 코딩된 미디어 비트스트림을 저장하기 위한 임의의 유형의 대용량 메모리를 포함할 수도 있다. 저장소(120) 내 그 코딩된 미디어 비트스트림의 포맷은 기본적인 자기포함(self-contained) 비트스트림 포맷일 수도 있고, 또는 하나 또는 그 이상의 코딩된 미디어 비트스트림들이 콘테이너(container) 파일 내로 캡슐화될 수도 있다. 어떤 시스템들은 "라이브"(live)로 동작할 수도 있는데, 즉 저장소를 생략하고 코딩된 미디어 비트스트림을 인코더(110)로부터 직접 송신기(130)로 전송한다. 그 후에 그 코딩된 미디어 비트스트림은, 필요에 기반하여, 서버로서도 불리는 송신기(130)로 전송된다. 전송에서 사용되는 포맷은 기본적인 자기포함 비트스트림 포맷, 패킷 스트림 포맷일 수도 있고, 또는 하나 이상의 코딩된 미디어 비트스트림들이 콘테이너 파일 내로 캡슐화될 수도 있다. 인코더(110), 저장소(120) 및 송신기(130)는 동일한 물리적 기기에 있을 수도 있고 또는 그들은 개별적인 기기들에 포함되어 있을 수도 있다. 인코더(110) 및 송신기(130)는 라이브 실시간 콘텐트를 사용하여 동작할 수도 있고, 이 경우에 그 코딩된 미디어 비트스트림은 전형적으로 영속하여 저장되지 않고, 오히려 콘텐트 인코더(110)에 그리고/또는 송신기(130)에 작은 시간 기간들 동안 버퍼링되어 프로세싱 지연, 전송 지연, 및 코딩된 미디어 비트율에서 의 편차들을 평탄화한다.The coded media bitstream is sent to storage 120. Storage 120 may include any type of mass memory for storing coded media bitstreams. The format of the coded media bitstream in storage 120 may be a basic self-contained bitstream format, or one or more coded media bitstreams may be encapsulated into a container file. . Some systems may operate “live”, ie skip storage and send the coded media bitstream directly from encoder 110 to transmitter 130. The coded media bitstream is then sent to transmitter 130, also referred to as a server, based on the need. The format used in the transmission may be a basic self-contained bitstream format, a packet stream format, or one or more coded media bitstreams may be encapsulated into a container file. The encoder 110, the reservoir 120 and the transmitter 130 may be in the same physical device or they may be included in separate devices. Encoder 110 and transmitter 130 may operate using live real-time content, in which case the coded media bitstream is typically not persistently stored, but rather to content encoder 110 and / or transmitter Buffered at 130 for small time periods to smooth processing delays, transmission delays, and deviations in the coded media bit rate.
송신기(130)는 통신 프로토콜 스택을 사용하여 그 코딩된 미디어 비트스트림을 송신한다. 그 스택은 실시간 전송 프로토콜(RTP), 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP) 및 인터넷 프로토콜(Internet Protocol; IP)을 포함할 수도 있지만, 이에 제한되는 것은 아니다. 통신 프로토콜 스택이 패킷지향적(packet-oriented)인 경우, 송신기(130)는 그 코딩된 미디어 비트스트림을 패킷들 내로 캡슐화한다. 예를 들면, RTP가 사용될 때, 송신기(130)는 RTP 페이로드 포맷에 따라 그 코딩된 미디어 비트스트림을 RTP 패킷들 내로 캡슐화한다. 전형적으로, 각 미디어 유형은 전용의 RTP 페이로드 포맷을 가진다. 다시, 시스템이 하나 이상의 송신기(130)를 포함할 수도 있지만, 단순성을 위해 이하의 설명에서는 단지 하나의 송신기(130)만을 고려함을 유념하여야 할 것이다.Transmitter 130 transmits the coded media bitstream using a communication protocol stack. The stack may include, but is not limited to, real time transport protocol (RTP), User Datagram Protocol (UDP) and Internet Protocol (IP). If the communication protocol stack is packet-oriented, the transmitter 130 encapsulates the coded media bitstream into packets. For example, when RTP is used, transmitter 130 encapsulates the coded media bitstream into RTP packets according to the RTP payload format. Typically, each media type has a dedicated RTP payload format. Again, although the system may include more than one transmitter 130, it should be noted that for simplicity only one transmitter 130 is considered in the following description.
송신기(130)는 통신 네트워크를 통해 게이트웨이(140)에 연결될 수도 있거나 또는 연결되지 않을 수도 있다. 게이트웨이(140)는 여러 가지 유형의 기능들, 예컨대 하나의 통신 프로토콜 스택부터 다른 통신 프로토콜 스택까지에 따른 패킷 스트림의 해석(translation), 데이터 스트림들의 병합 및 분기, 및 하향링크 및/또는 수신기 성능에 따른 데이터 스트림의 조작, 예컨대 일반 하향링크 네트워크 조건들에 따라 전달 스트림의 비트율을 제어하는 것을 수행할 수도 있다. 게이트웨이(140)의 예들에는, 다지점 회의 제어 유닛(multipoint conference control unit; MCU), 회선교환방식(circuit-switched) 및 패킷교환방식(packet-switched) 화상 통화(video telephony) 간의 게이트웨이, 셀룰러 활용 푸쉬투토크(Push-to-talk over Cellular; PoC) 서버, 디지털 비디오 브로드캐스팅-핸드헬드(digital video broadcasting-handheld; DVB-H) 시스템 내 IP 캡슐화기 또는 홈 무선 네트워크에 로컬로 브로드캐스트 전송을 전달하는 셋톱 박스가 있다. RTP가 사용될 때, 게이트웨이(140)는 RTP 믹서(mixer)로 불리고 RTP 연결의 말단지점으로서 활동한다.The transmitter 130 may or may not be connected to the
시스템은, 전송된 신호를 전형적으로 수신할 수 있고, 복조할 수 있고, 그리고 코딩된 미디어 비트스트림으로 역캡슐화할 수 있는 하나 이상의 수신기들(150)을 포함한다. 그 코덱 미디어 비트스트림은 전형적으로 또한 디코더(160)에 의해 프로세싱되고, 그 디코더의 출력은 하나 이상의 비압축 미디어 스트림들이다. 마지막으로, 렌더러(renderer, 170)는 예를 들어 확성기 또는 디스플레이로 그 비압축 미디어 스트림들을 재현할 수도 있다. 수신기(150), 디코더(160) 및 렌더러(170)는 동일한 물리적 기기에 있을 수도 있고 또는 그것들은 개별적인 기기들에 포함되어 있을 수도 있다. 그러므로, 디코딩될 비트스트림은 사실상 임의 유형의 네트워크 내에 위치한 원격 기기로부터 뿐만 아니라 언급되고 있는 그 기기 내의 다른 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있음이 이해되어야 할 것이다. 또한 비록 여기에 포함되어 있는 텍스트 및 예들이 특히 인코딩 프로세스를 기술하고 있을 수 있을지라도, 관련 기술분야에서 숙련된 자는 동일한 개념들 및 원리들이 또한 대응되는 디코딩 프로세스에 적용되고 그 역도 가능함을 쉽사리 이해할 것임이 이해되어야 할 것이다.The system includes one or more receivers 150 that can typically receive, demodulate, and decapsulate the transmitted signal into a coded media bitstream. The codec media bitstream is typically also processed by decoder 160, and the output of the decoder is one or more uncompressed media streams. Finally, the renderer 170 may reproduce the uncompressed media streams, for example in a loudspeaker or a display. Receiver 150, decoder 160 and renderer 170 may be in the same physical device or they may be included in separate devices. Therefore, it should be understood that the bitstream to be decoded may be received from virtual devices located in virtually any type of network as well as from other local hardware or software within the device being referred to. Also, although the text and examples contained herein may describe the encoding process in particular, those skilled in the art will readily understand that the same concepts and principles may also be applied to the corresponding decoding process and vice versa. This should be understood.
본 발명은 미디어 파일들에서 트랙 관계 정보를 시그널링하고 표시하는 시스템 및 방법을 제공한다. 특히, 본 발명은 계층화 트랙 그룹들의 정보 및 MDC 트랙 그룹들의 정보를 시그널링하기 위한 메커니즘 뿐만 아니라 효율적인 방식으로 트랙 관계 정보를 시그널링하기 위한 메커니즘을 제공한다.The present invention provides a system and method for signaling and displaying track relationship information in media files. In particular, the present invention provides a mechanism for signaling track relationship information in an efficient manner as well as a mechanism for signaling information of layered track groups and MDC track groups.
본 발명에 관련하여, 멀티미디어 어플리케이션들에서 로컬 재생 또는 전송을 위해 트랙들을 선택하는 것은 기존의 구성들에 비해 더 단순하게 된다. 로컬 재생 또는 유니캐스트 스트리밍 어플리케이션들에서, 소정의 미디어 유형에 대한 독립적 디코딩가능 트랙을 선택하기 위해, 대체 트랙 그룹들의 정보가 먼저 트랙 관계 박스를 거쳐 발견되고, 하나의 트랙이 그 미디어 유형을 위한 대체 트랙 그룹으로부터 선택된다. 만약 스트리밍 스위칭을 바란다면, 스위칭 트랙 그룹 정보가 용이하게 트랙 관계 박스를 거쳐 발견될 수 있다. 스케일가능한 또는 MDC 스트림들을 사용하는 멀티캐스트 어플리케이션들에서, 계층화 또는 MDC 그룹 내 트랙들은 트랙 관계 박스를 거쳐 용이하게 발견될 수 있고 모든 그 계층화 또는 MDC 그룹들 중에서 선택될 수 있다.In the context of the present invention, selecting tracks for local playback or transmission in multimedia applications becomes simpler than existing configurations. In local playback or unicast streaming applications, to select an independent decodable track for a given media type, the information of the alternative track groups is first found via the track relationship box, and one track is replaced for that media type. It is selected from the track group. If streaming switching is desired, switching track group information can be easily found via the track relationship box. In multicast applications using scalable or MDC streams, tracks in a layered or MDC group can be easily found via a track relationship box and selected from all of those layered or MDC groups.
본 발명의 하나의 실시예에서, 새로운 박스 - 여기에서는 트랙 관계 박스로서 언급된다 - 가 정의되고 트랙들 간 관계를 상술한다. 그 트랙 관계 박스는 다음과 같이 정의된다.In one embodiment of the invention, a new box, referred to herein as a track relationship box, is defined and details the relationship between the tracks. The track relationship box is defined as follows.
박스 유형: 'trel'Box type: 'trel'
콘테이너: Movie Box('moov')Container: Movie Box ('moov')
필수여부: 아니오Required: no
수량: 0 또는 1Quantity: 0 or 1
트랙 관계 박스를 위한 문법은 다음과 같다:The syntax for the track relationship box is as follows:
aligned(8) class TrackRelationBoxaligned (8) class TrackRelationBox
extends FullBox('trel', version = 0, flags) {extends FullBox ('trel', version = 0, flags) {
int i,j,k;int i, j, k;
if(flags & 0x000001 == 1) {if (flags & 0x000001 == 1) {
unsigned int(16) num_alternate_groups;unsigned int (16) num_alternate_groups;
for(i=0; i<num_alternatve_groups; i++) {for (i = 0; i <num_alternatve_groups; i ++) {
int(16) alternate_group_id;int (16) alternate_group_id;
unsigned int(16) num_tracks_in_alternate_group;unsigned int (16) num_tracks_in_alternate_group;
for(j=0; j<num_tracks_in_alternate_group; j++)for (j = 0; j <num_tracks_in_alternate_group; j ++)
unsigned int(32) alternate_track_id;
}}
}}
if(flags & 0x000002 == 1) {if (flags & 0x000002 == 1) {
unsigned int(16) num_switch_groups;unsigned int (16) num_switch_groups;
for(i=0; i<num_switch_groups; i++) {for (i = 0; i <num_switch_groups; i ++) {
int(16) switch_group_id;int (16) switch_group_id;
unsigned int(16) num_tracks_in_switch_group;unsigned int (16) num_tracks_in_switch_group;
for(j=0; j<num_tracks_in_switch_group; j++)for (j = 0; j <num_tracks_in_switch_group; j ++)
unsigned int(32) switch_track_id;
}}
}}
if(flags & 0x000004 == 1) {if (flags & 0x000004 == 1) {
unsigned int(16) num_layered_groups;unsigned int (16) num_layered_groups;
for(i=0; i<num_layered_groups; i++) {for (i = 0; i <num_layered_groups; i ++) {
int(16) layered_group_id;int (16) layered_group_id;
unsigned int(16) num_tracks_in_layered_group;unsigned int (16) num_tracks_in_layered_group;
for(j=0; j<num_tracks_in_layered_group; j++) {for (j = 0; j <num_tracks_in_layered_group; j ++) {
unsigned int(32) layered_track_id;unsigned int (32) layered_track_id;
unsigned int(16) num_dependent_on_tracks;unsigned int (16) num_dependent_on_tracks;
for(k=0; k<num_layered_on_tracks; k++)for (k = 0; k <num_layered_on_tracks; k ++)
unsigned int(32) dependent_on_track_id;
}}
}}
}}
if(flags & 0x000008 == 1) {if (flags & 0x000008 == 1) {
unsigned int(16) num_mdc_groups;unsigned int (16) num_mdc_groups;
for(i=0; i<num_mdc_groups; i++) {for (i = 0; i <num_mdc_groups; i ++) {
int(16) mdc_group_id;int (16) mdc_group_id;
unsigned int(16) num_tracks_in_mdc_group;unsigned int (16) num_tracks_in_mdc_group;
for(j=0; j<num_tracks_in_mdc_group; j++)for (j = 0; j <num_tracks_in_mdc_group; j ++)
unsigned int(32) mdc_track_id;unsigned int (32) mdc_track_id;
}}
} }
}}
상기 문법에서, "version"(버전)은 트랙 관계 박스의 버전을 상술하는 정수이다 (상기에서 기술된 바와 같이 0임).In the above grammar, "version" is an integer specifying the version of the track relationship box (which is zero as described above).
"flags"(플래그들)는 플래그들을 가진 24비트 정수이다. 비트 0은 최하위 비트(least significant bit), 비트 1은 두 번째의 최하위 비트 등과 같이 비트들이 정의된다. 비트 0이 1일 때, 이것은 대체 트랙 그룹들의 정보가 이 박스에 존재함을 표시하는 것이다. 비트 0이 0일 때, 이것은 대체 트랙 그룹들의 정보가 이 박스에 존재하지 않음을 표시하는 것이다."flags" are 24-bit integers with flags. Bit 0 is defined as the least significant bit, bit 1 the second least significant bit, and so on. When bit 0 is 1, this indicates that information of alternate track groups exists in this box. When bit 0 is zero, this indicates that no information of alternate track groups exists in this box.
비트 1이 1일 때, 이것은 스위칭 트랙 그룹들의 정보가 이 박스에 존재함을 표시하는 것이다. 비트 1이 0일 때, 이것은 스위칭 트랙 그룹들의 정보가 이 박스에 존재하지 않음을 표시하는 것이다.When bit 1 is 1, this indicates that the information of the switching track groups exists in this box. When bit 1 is zero, this indicates that information of switching track groups is not present in this box.
비트 2가 1일 때, 이것은 계층화 트랙 그룹들의 정보가 이 박스에 존재함을 표시하는 것이다. 비트 2가 0일 때, 이것은 계층화 트랙 그룹들의 정보가 이 박스에 존재하지 않음을 표시하는 것이다.When bit 2 is 1, this indicates that the information of layered track groups is present in this box. When bit 2 is zero, this indicates that information of layered track groups is not present in this box.
비트 3이 1일 때, 이것은 MDC 트랙 그룹들의 정보가 이 박스에 존재함을 표시하는 것이다. 비트 3이 0일 때, 이것은 MDC 트랙 그룹들의 정보가 이 박스에 존재하지 않음을 표시하는 것이다.When bit 3 is 1, this indicates that the information of MDC track groups is present in this box. When bit 3 is zero, this indicates that information of MDC track groups is not present in this box.
"num_alternate_groups"(대체그룹들개수)는 시그널링되는 대체 트랙 그룹들의 개수를 표시하는 것이다. "alternate_group_id"(대체그룹아이디)는 시그널링되는 i번째 대체 트랙 그룹의 식별자를 표시하는 것이다. 그 값은 0과 같지 않다. alternate_group_id와 연관된 임의의 트랙은 그 alternate_group_id와 같은 alternate_group(트랙 헤더 박스 내)을 가진다. 0과 같지 않은 alternate_group(트랙 헤더 박스 내)을 가진 임의의 트랙은 alternative_group_id와 연관된다."num_alternate_groups" (the number of alternative groups) is an indication of the number of alternate track groups that are signaled. "alternate_group_id" (alternative group ID) indicates an identifier of the i th alternate track group to be signaled. The value is not equal to zero. Any track associated with alternate_group_id has the same alternate_group (in the track header box) as its alternate_group_id. Any track with alternate_group not equal to 0 (in the track header box) is associated with alternative_group_id.
"num_tracks_in_alternate_group"(대체그룹내트랙들개수)은 시그널링되는 i번째 대체 트랙 그룹 내 트랙들의 개수를 표시하는 것이다. "alternate_track_id"(대체트랙아이디)는 시그널링되는 i번째 대체 트랙 그룹 내 j번째 트랙의 트랙 ID를 표시하는 것이다." num_tracks_in_alternate_group " (the number of tracks in the alternate group) indicates the number of tracks in the i th alternate track group to be signaled. "alternate_track_id" (alternate track ID) indicates the track ID of the j-th track in the i-th alternate track group signaled.
"num_switch_groups"(스위치그룹들개수)는 시그널링되는 스위칭 트랙 그룹들의 개수를 표시하는 것이다. "switch_group_id"(스위치그룹아이디)는 시그널링되는 i번째 스위칭 트랙 그룹의 식별자를 표시하는 것이다. 그 값은 0과 같지 않다. switch_group_id와 연관된 임의의 트랙에 대하여, 만일 트랙 선택 박스가 존재하면, 그때는 그 트랙 선택 박스 내 시그널링되는 switch_group은 switch_group_id와 같다. 존재하는 트랙 선택 박스를 가지는 임의의 트랙에 대하여, 만약 alternate_group이 0과 같지 않으면, 그 트랙은 switch_group_id와 연관될 것이다. "num_tracks_in_switch_group"(스위치그룹내트랙들개수)은 시그널링되는 i번째 스위치 트랙 그룹 내 트랙들의 개수를 표시하는 것이다. "switch_track_id"(스위치 트랙 아이디)는 시그널링되는 i번째 스위치 트랙 그룹 내 j번째 트랙의 트랙 ID를 표시하는 것이다."num_switch_groups" (number of switch groups) is an indication of the number of switching track groups that are signaled. "switch_group_id" (switch group ID) indicates an identifier of the i th switching track group signaled. The value is not equal to zero. For any track associated with switch_group_id, if there is a track selection box, then the switch_group signaled in that track selection box is equal to switch_group_id. For any track with an existing track selection box, if alternate_group is not equal to 0, the track will be associated with switch_group_id. "num_tracks_in_switch_group" (the number of tracks in the switch group) indicates the number of tracks in the i-th switch track group signaled. "switch_track_id" (switch track ID) indicates the track ID of the j-th track in the i-th switch track group to be signaled.
"num_layered_groups"(계층화그룹들개수)는 시그널링되는 계층화 트랙 그룹들의 개수를 표시하는 것이다. "layered_group_id"(계층화그룹아이디)는 시그널링되는 i번째 계층화 트랙 그룹의 식별자를 표시하는 것이다."num_layered_groups" (the number of layered groups) indicates the number of layered track groups that are signaled. "layered_group_id" (layered group ID) indicates an identifier of the i-th layered track group signaled.
"num_tracks_in_layered_group"(계층화그룹내트랙들개수)은 시그널링되는 i번째 계층화 트랙 그룹 내 트랙들의 개수를 표시하는 것이다. "layered_track_id"(계층화트랙아이디)는 시그널링되는 i번째 계층화 트랙 그룹 내 j번째 트랙의 트랙 ID를 표시하는 것이다."num_tracks_in_layered_group" (the number of tracks in the layered group) indicates the number of tracks in the i-th layered track group signaled. "layered_track_id" (layered track ID) indicates the track ID of the j-th track in the i-th layered track group being signaled.
"num_dependent_on_tracks"(의존트랙개수)는 i번째 계층화 트랙 그룹 내 j번째 트랙이 직접적으로 또는 간접적으로 의존하는 트랙들의 개수를 표시하는 것이다. "dependent_on_track_id"(의존트랙아이디)는 i번째 계층화 트랙 그룹 내 j번째 트랙이 직접적으로 또는 간접적으로 의존하는 k번째 트랙의 트랙 ID를 표시하는 것이다."num_dependent_on_tracks" (the number of dependent tracks) indicates the number of tracks that the jth track in the i-th layered track group directly or indirectly depends on. "dependent_on_track_id" (dependent track ID) indicates the track ID of the kth track on which the jth track in the ith layered track group directly or indirectly depends.
"num_mdc_groups"(MDC그룹들개수)는 시그널링되는 MDC 트랙 그룹들의 개수를 표시하는 것이다. "mdc_group_id"(MDC그룹아이디)는 시그널링되는 i번째 MDC 트랙 그룹의 식별자를 표시하는 것이다."num_mdc_groups" (the number of MDC groups) indicates the number of MDC track groups signaled. "mdc_group_id" (MDC group ID) indicates an identifier of the i-th MDC track group signaled.
"num_tracks_in_mdc_group"(MDC그룹내트랙들개수)은 시그널링되는 i번째 MDC 트랙 그룹 내 트랙들의 개수를 표시하는 것이다. "mdc_track_id"(MDC트랙아이디)는 시그널링되는 i번째 MDC 트랙 그룹 내 j번째 트랙의 트랙 ID를 표시하는 것이다."num_tracks_in_mdc_group" (the number of tracks in the MDC group) indicates the number of tracks in the i-th MDC track group signaled. "mdc_track_id" (MDC track ID) indicates the track ID of the j-th track in the i-th MDC track group signaled.
상기에 더하여, 트랙 관계 정보가 본 발명의 다양한 다른 실시예들에 따라 나타내어질 수 있다. 예를 들면, 트랙레벨에서 계층화 또는 MDC 트랙 그룹들의 정보를 시그널링하는 것이 가능하다. 계층화 트랙 그룹들에 대하여, 계층화 그룹 ID는 트랙 헤더 박스 내에, 트랙레벨의 사용자 데이터 박스 내에, 또는 임의의 다른 트랙레벨 데이터 구조 내에 시그널링된다. 그 상황은 MDC 트랙 그룹들에 관해 유사하다. 다른 실시예에서, 트랙 관계 박스는 또한 영화 헤더 박스 내에 또는 영화레벨의 사용자 데이터 박스 내에 포함될 수 있다. 또 하나의 다른 실시예에서, 상이한 유형의 트랙 그룹들의 정보는 개별적인 박스들 내에 시그널링될 수 있다. 여기에서 기술된 것들에 더하여 다른 실시예들이 또한 있을 수 있다.In addition to the above, track relationship information may be represented according to various other embodiments of the present invention. For example, it is possible to signal the information of layering or MDC track groups at the track level. For layered track groups, the layered group ID is signaled in the track header box, in the track level user data box, or in any other track level data structure. The situation is similar for MDC track groups. In another embodiment, the track relationship box may also be included in a movie header box or in a movie level user data box. In yet another embodiment, information of different types of track groups may be signaled in separate boxes. In addition to those described herein, there may also be other embodiments.
도 2 및 도 3은 자신의 내부에서 본 발명이 구현될 수도 있는 하나의 대표적인 전자 기기(12)를 보여주고 있다. 그러나, 본 발명이 하나의 특정 유형의 전자 기기(12)에 제한되는 것을 의도하지는 않음을 이해하여야 할 것이다. 도 2 및 도 3의 전자 기기(12)는 하우징(30), 액정 표시 장치 형태의 디스플레이(32), 키패드(34), 마이크로폰(36), 이어피스(ear-piece, 38), 배터리(40), 적외선 포트(42), 안테나(44), 본 발명의 하나의 실시예에 따른 UICC 형태의 스마트 카드(46), 카드 리더(48), 무선 인터페이스 회로(52), 코덱 회로(54), 콘트롤러(56) 및 메모리(58) 를 포함한다. 개개의 회로들 및 요소들은 모두, 관련 기술분야에서, 예를 들어 노키아(Nokia)의 모바일 전화 영역에서, 잘 알려진 유형이다.2 and 3 show one exemplary
본 발명을 구현하는 통신 기기들은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile Communications), UMTS(Universal Mobile Telecommunications System), TDMA(Time Division Multiple Access), FDMA(Frequency Division Multiple Access), TCP/IP(Transmission Control Protocol/Internet Protocol), SMS(Short Messaging Service), MMS(Multimedia Messaging Service), 이메일, 인스턴트 메시징 서비스(Instant Messaging Service; IMS), 블루투스, IEEE 802.11 등을 포함하는 그러나 이에 제한되지 않는 다양한 전송 기술들을 사용하여 통신할 수도 있다. 통신 기기는, 무선(radio), 적외선, 레이저, 케이블 연결 및 그와 동종의 것을 포함하는 그러나 이에 제한되지 않는 다양한 매체들을 사용하여 통신할 수도 있다.Communication devices implementing the present invention include Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), TCP Including, but not limited to, Transmission Control Protocol / Internet Protocol (IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), Email, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. May communicate using various transmission techniques. The communication device may communicate using a variety of media including, but not limited to, radio, infrared, laser, cable connection, and the like.
본 발명은 방법 단계들에 관한 일반적인 콘텍스트에서 기술되고, 이것은 네트워크접속 환경에서 컴퓨터에 의해 실행되는, 프로그램 코드와 같은 컴퓨터실행가능 명령들을 포함하는 프로그램 생성물에 의해 하나의 실시예로 구현될 수도 있다. 일반적으로 프로그램 모듈들은, 특정한 작업들을 수행하거나 또는 특정한 추상적 데이터 유형들을 구현하는, 루틴(routine)들, 프로그램들, 오브젝트(object)들, 콤포넌트들, 데이터 구조들 등을 포함한다. 컴퓨터실행가능 명령들, 연관 데이터 구조들 및 프로그램 모듈들은 여기에서 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드의 예들을 나타낸다. 이러한 실행가능 명령들의 특정 시퀀스 또는 연관 데이터 구조들은 이러한 단계들에서 기술되는 기능들을 구현하기 위한 대응 활동들의 예들을 나타낸다.The invention is described in the general context of method steps, which may be embodied in one embodiment by a program product comprising computer executable instructions, such as program code, being executed by a computer in a networked environment. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing the steps of the methods disclosed herein. The specific sequence or associated data structures of these executable instructions represent examples of corresponding activities for implementing the functions described in these steps.
본 발명의 소프트웨어 및 웹 구현들은 다양한 데이터베이스 탐색 단계들, 상관 단계들, 비교 단계들 및 결정 단계들을 달성하기 위한 규칙 기반 로직 및 다른 로직을 구비한 표준 프로그래밍 기술들로써 달성될 수 있다. 또한 여기에서 그리고 청구항들에서 사용되는 것으로서 "콤포넌트" 및 "모듈"이라는 용어들은 수동 입력들을 수신하기 위한 장비 및/또는 하드웨어 구현들 및/또는 소프트웨어 코드의 하나 이상의 라인들을 사용한 구현들을 포함하도록 의도됨을 유념하여야 할 것이다.The software and web implementations of the present invention can be accomplished with standard programming techniques with rule-based logic and other logic to achieve various database search steps, correlation steps, comparison steps and decision steps. Also as used herein and in the claims, the terms “component” and “module” are intended to include implementations using one or more lines of equipment and / or hardware implementations and / or software code for receiving manual inputs. You should keep in mind.
본 발명의 실시예들에 관한 앞에서의 설명은 예시 및 설명을 위해 제공되었다. 그것은 본 발명을 개시된 정확한 형태로 제한하거나 또는 철저하게 규명하도록 의도된 것은 아니고, 변경예들 및 변형예들이 상기의 교시에 비추어서 가능하거나 또는 본 발명의 실제 실행으로부터 획득될 수도 있다. 예상되는 특정 용도에 적합한 다양한 변경예들로 그리고 다양한 실시예들로 본 발명을 관련 기술분야에서 숙련된 자가 활용할 수 있게 하도록 본 발명의 원리들 및 그것의 실제 적용예를 설명하기 위한 실시예들이 선택되었고 기술되었다. The foregoing description of the embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be obtained from practical practice of the invention. Embodiments are described to illustrate the principles of the present invention and its practical application to enable one skilled in the art to utilize the invention in various modifications and with various embodiments suitable for the particular application contemplated. And have been described.
Claims (74)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84020906P | 2006-08-24 | 2006-08-24 | |
US60/840,209 | 2006-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090045375A true KR20090045375A (en) | 2009-05-07 |
KR101021831B1 KR101021831B1 (en) | 2011-03-17 |
Family
ID=39107195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097005944A KR101021831B1 (en) | 2006-08-24 | 2007-08-20 | System and method for indicating track relationships in media files |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP2055107B1 (en) |
KR (1) | KR101021831B1 (en) |
CN (1) | CN101518087B (en) |
AU (1) | AU2007287222A1 (en) |
CA (1) | CA2661578C (en) |
RU (1) | RU2435235C2 (en) |
WO (1) | WO2008023328A2 (en) |
ZA (1) | ZA200901936B (en) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
KR101143282B1 (en) | 2002-10-05 | 2012-05-08 | 디지털 파운튼, 인크. | Systematic encoding and decoding of chain reaction codes |
WO2005036753A2 (en) | 2003-10-06 | 2005-04-21 | Digital Fountain, Inc. | Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters |
JP4971144B2 (en) | 2004-05-07 | 2012-07-11 | デジタル ファウンテン, インコーポレイテッド | File download and streaming system |
WO2007095550A2 (en) | 2006-02-13 | 2007-08-23 | Digital Fountain, Inc. | Streaming and buffering using variable fec overhead and protection periods |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
WO2007134196A2 (en) | 2006-05-10 | 2007-11-22 | Digital Fountain, Inc. | Code generator and decoder using hybrid codes |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
AU2008298602A1 (en) | 2007-09-12 | 2009-03-19 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
JP2012505569A (en) * | 2008-10-07 | 2012-03-01 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Multi-view media data |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
CA2783592A1 (en) | 2009-12-11 | 2011-06-16 | Nokia Corporation | Apparatus and methods for describing and timing representations in streaming media files |
US9049497B2 (en) | 2010-06-29 | 2015-06-02 | Qualcomm Incorporated | Signaling random access points for streaming video data |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US8806050B2 (en) | 2010-08-10 | 2014-08-12 | Qualcomm Incorporated | Manifest file updates for network streaming of coded multimedia data |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9001804B2 (en) | 2011-06-16 | 2015-04-07 | Qualcomm Incorporated | Sharing multi description coded content utilizing proximate helpers |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US20140297882A1 (en) * | 2013-04-01 | 2014-10-02 | Microsoft Corporation | Dynamic track switching in media streaming |
TWI545942B (en) | 2013-04-30 | 2016-08-11 | 杜比實驗室特許公司 | System and method of outputting multi-lingual audio and associated audio from a single container |
US10567804B2 (en) * | 2014-01-08 | 2020-02-18 | Qualcomm Incorporated | Carriage of HEVC extension bitstreams and buffer model with MPEG-2 systems |
JP7080007B2 (en) * | 2014-06-30 | 2022-06-03 | ソニーグループ株式会社 | Information processing equipment and information processing method |
GB2527786B (en) * | 2014-07-01 | 2016-10-26 | Canon Kk | Method, device, and computer program for encapsulating HEVC layered media data |
EP4254405A3 (en) | 2014-09-30 | 2023-12-13 | Sony Group Corporation | Transmitting device, transmission method, receiving device, and receiving method |
US9922680B2 (en) * | 2015-02-10 | 2018-03-20 | Nokia Technologies Oy | Method, an apparatus and a computer program product for processing image sequence tracks |
US10034010B2 (en) * | 2015-10-14 | 2018-07-24 | Qualcomm Incorporated | Alignment of operation point sample group in multi-layer bitstreams file format |
CN112804256B (en) * | 2021-02-09 | 2022-05-24 | 腾讯科技(深圳)有限公司 | Method, device, medium and equipment for processing track data in multimedia file |
CN115474053A (en) | 2021-06-11 | 2022-12-13 | 腾讯科技(深圳)有限公司 | Media data processing method and related equipment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100419748C (en) | 2002-04-29 | 2008-09-17 | 索尼电子有限公司 | Supporting advanced coding formats in media files |
US20060150053A1 (en) * | 2002-12-13 | 2006-07-06 | Koninklijke Philips Electronics, N.V. | Switching method for mdc/scalable coding |
CN1939060B (en) * | 2004-02-10 | 2010-09-29 | 汤姆逊许可公司 | Method and device for promoting flow type transmission of video frequency information |
EP1935182B1 (en) * | 2005-10-11 | 2016-11-23 | Nokia Technologies Oy | System and method for efficient scalable stream adaptation |
-
2007
- 2007-08-20 CA CA2661578A patent/CA2661578C/en not_active Expired - Fee Related
- 2007-08-20 KR KR1020097005944A patent/KR101021831B1/en active IP Right Grant
- 2007-08-20 RU RU2009109847/09A patent/RU2435235C2/en not_active IP Right Cessation
- 2007-08-20 AU AU2007287222A patent/AU2007287222A1/en not_active Abandoned
- 2007-08-20 WO PCT/IB2007/053324 patent/WO2008023328A2/en active Application Filing
- 2007-08-20 CN CN2007800352579A patent/CN101518087B/en not_active Expired - Fee Related
- 2007-08-20 EP EP07826068.4A patent/EP2055107B1/en not_active Ceased
-
2009
- 2009-03-19 ZA ZA200901936A patent/ZA200901936B/en unknown
Also Published As
Publication number | Publication date |
---|---|
KR101021831B1 (en) | 2011-03-17 |
ZA200901936B (en) | 2010-03-31 |
CA2661578C (en) | 2014-06-17 |
WO2008023328A2 (en) | 2008-02-28 |
RU2435235C2 (en) | 2011-11-27 |
AU2007287222A1 (en) | 2008-02-28 |
EP2055107A2 (en) | 2009-05-06 |
RU2009109847A (en) | 2010-10-27 |
EP2055107B1 (en) | 2013-05-15 |
WO2008023328A3 (en) | 2008-04-24 |
CA2661578A1 (en) | 2008-02-28 |
EP2055107A4 (en) | 2011-01-12 |
CN101518087B (en) | 2013-05-01 |
CN101518087A (en) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101021831B1 (en) | System and method for indicating track relationships in media files | |
US8365060B2 (en) | System and method for indicating track relationships in media files | |
EP2589221B1 (en) | Signaling random access points for streaming video data | |
KR101088772B1 (en) | Generic indication of adaptation paths for scalable multimedia | |
KR101100413B1 (en) | System and method for providing and using predetermined signaling of interoperability points for transcoded media streams | |
EP2314072B1 (en) | Track and track-subset grouping for multi view video decoding. | |
KR101037338B1 (en) | Scalable video coding and decoding | |
TWI482498B (en) | Signaling of multiple decoding times in media files | |
KR20190014500A (en) | Virtual reality video signaling in dynamic adaptive streaming over HTTP | |
KR20100030648A (en) | System and method for indicating temporal layer switching points | |
KR101421390B1 (en) | Signaling video samples for trick mode video representations | |
AU2012202346B2 (en) | System and method for indicating track relationships in media files | |
WO2008148930A1 (en) | System and method for storing multiparty vtoeo conferencing presentations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140221 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150224 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160218 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20180223 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20200227 Year of fee payment: 10 |