KR20180101371A - 미디어 전송을 위한 미디어 전달 이벤트 위치들의 결정 - Google Patents

미디어 전송을 위한 미디어 전달 이벤트 위치들의 결정 Download PDF

Info

Publication number
KR20180101371A
KR20180101371A KR1020187019300A KR20187019300A KR20180101371A KR 20180101371 A KR20180101371 A KR 20180101371A KR 1020187019300 A KR1020187019300 A KR 1020187019300A KR 20187019300 A KR20187019300 A KR 20187019300A KR 20180101371 A KR20180101371 A KR 20180101371A
Authority
KR
South Korea
Prior art keywords
mdes
data
media data
determining
stream
Prior art date
Application number
KR1020187019300A
Other languages
English (en)
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 KR20180101371A publication Critical patent/KR20180101371A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04L65/4076
    • H04L65/4084
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • 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
    • 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/43074Synchronising 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 additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Warehouses Or Storage Devices (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Communication Control (AREA)

Abstract

미디어 데이터를 전송하는 방법은, 소스 디바이스의 파일-기반 프로토콜 전송 유닛이, 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하는 단계 ―세그먼터는 세그먼트들을 형성하며, 세그먼트들 각각은 고유한 URL(uniform resource locator)과 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―, 미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하는 단계 ―MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하는 단계, 및 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하는 단계를 포함한다.

Description

미디어 전송을 위한 미디어 전달 이벤트 위치들의 결정
[0001] 본 출원은 2016년 1월 8일자로 출원된 미국 가출원 번호 62/276,674를 우선권으로 주장하며, 이로써 그 전체 내용은 인용에 의해 통합된다.
[0002] 본 개시내용은 미디어 데이터의 전송에 관한 것이다.
[0003] 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, PDA(personal digital assistant)들, 랩톱 또는 데스크톱 컴퓨터들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 비디오 원격화상회의 디바이스들 등을 포함하는 광범위한 디바이스들에 디지털 오디오 및 비디오 능력들이 통합될 수 있다.
[0004] 미디어 데이터, 이를테면, 오디오 및 비디오 데이터는 전송을 위해 압축될 수 있다. 압축은 일반적으로, 미디어 데이터의 인코딩을 포함한다. 미디어 데이터가 인코딩된 후에, 비디오 데이터는 송신 또는 저장을 위해 패킷화될 수 있다. 미디어 데이터는 다양한 표준들 중 임의의 표준, 이를테면, ISO BMFF(International Organization for Standardization Base Media File Format) 및 그 확장들, 이를테면, AVC를 준수하는 미디어 파일로 어셈블링될 수 있다.
[0005] 컴퓨터 네트워크를 통해 미디어 데이터를 전송하기 위해 다양한 기법들이 사용될 수 있다. 예컨대, 미디어 데이터는 브로드캐스트 프로토콜 또는 유니캐스트 프로토콜을 통해 전달될 수 있다. 브로드캐스트 프로토콜에서는, 서버 디바이스가 미디어 데이터를 복수의 가입 클라이언트 디바이스들에 전송한다. 유니캐스트 프로토콜에서는, 클라이언트 디바이스가 서버 디바이스로부터의 미디어 데이터를 요청하며, 서버 디바이스는 요청에 대한 응답으로 미디어 데이터를 전달한다.
[0006] 일반적으로, 본 개시내용은, 예컨대, ROUTE(ATSC Working Draft: Signaling, Delivery, Synchronization, and Error Protection, 2015년 11월 20일) 및 MMT(ISO/IEC: ISO/IEC 23008-1 2nd edition, Information technology-High efficiency coding and media delivery in heterogeneous environments-Part 1: MPEG media transport(MMT)) 또는 FLUTE(ROUTE의 적절한 서브세트인 RFC 6726)를 통한 미디어 인식 바이트 범위 전달에서 사용되는 MDE(Media Delivery Event)들의 지원에 관련된 기법들을 설명한다. 이들 전달 기법들은 추가로, 브로드캐스트 DASH(Dynamic Adaptive Streaming over HTTP), CMAF(Common Media Application Forma), 또는 유사한 세그먼트 또는 미디어 인식 바이트 범위 기반 미디어 전달 방법들을 사용할 수 있다. 본 개시내용은 또한, 검출된 MDE들의 시간 라벨링을 결정하기 위한 기법들, 그리고 미디어 정렬 물리 계층 프레이밍에 비해 이른(early) 미디어 전달의 영향을 고려하는, 물리 계층에서의 전달을 위한 적응식 기법들을 설명한다.
[0007] 일 예에서, 미디어 데이터를 전송하는 방법은, 소스 디바이스의 파일-기반 프로토콜 전송 유닛이, 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하는 단계 ―세그먼터는 세그먼트들을 형성하며, 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한(retrievable) 파일을 포함함―, 미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하는 단계 ―MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하는 단계, 및 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하는 단계를 포함한다.
[0008] 다른 예에서, 미디어 데이터를 전송하기 위한 디바이스는 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 형성하도록 구성된 세그먼터를 포함하며, 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일, 예컨대, ISO BMFF 포맷을 포함한다. 디바이스는 또한, MDE(media delivery event)들에 대한 송신 시간 요건들에 따라, MDE들을 클라이언트 디바이스에 전달하도록 구성된 물리 계층 전송 유닛을 포함하며, MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함하며, 물리 계층 전송 유닛은 전달될 데이터를 수신하기 위한 이용가능한 전달 슬롯들을 갖게 구성된다. 디바이스는, 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하고, 미디어 데이터의 스트림 내의 MDE들의 위치들을 결정하고, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 송신 시간 요건들 중 하나 또는 그 초과를 결정하며, 그리고 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하도록 구성된 파일-기반 프로토콜 전송 유닛을 더 포함한다.
[0009] 다른 예에서, 미디어 데이터를 전송하기 위한 디바이스는 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 형성하도록 구성된 세그먼터를 포함하며, 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함한다. 디바이스는 또한, MDE(media delivery event)들에 대한 송신 시간 요건들에 따라, MDE들을 클라이언트 디바이스에 전달하도록 구성된 물리 계층 전송 유닛을 포함하며, MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함하며, 물리 계층 전송 유닛은 전달될 데이터를 수신하기 위한 이용가능한 전달 슬롯들을 갖게 구성된다. 디바이스는, 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하기 위한 수단, 미디어 데이터의 스트림 내의 MDE들의 위치들을 결정하기 위한 수단, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하기 위한 수단, 및 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하기 위한 수단을 더 포함한다.
[0010] 다른 예에서, 컴퓨터-판독가능 저장 매체는 명령들을 저장하고 있으며, 명령들은, 실행될 때, 소스 디바이스의 파일-기반 프로토콜 전송 유닛으로 하여금, 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하게 하고 ―세그먼터는 세그먼트들을 형성하며, 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―, 미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하게 하고 ―MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하게 하며, 그리고 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하게 한다.
[0011] 하나 또는 그 초과의 예들의 세부사항들은 첨부한 도면들 및 아래의 설명에서 제시된다. 다른 특징들, 목적들, 및 장점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 자명할 것이다.
[0012] 도 1은 네트워크를 통해 미디어 데이터를 스트리밍하기 위한 기법들을 구현하는 예시적인 시스템을 예시하는 블록 다이어그램이다.
[0013] 도 2는 도 1의 리트리벌 유닛(52)의 컴포넌트들의 예시적인 세트를 더욱 상세히 예시하는 블록 다이어그램이다.
[0014] 도 3은 예시적인 멀티미디어 콘텐츠의 엘리먼트들을 예시하는 개념 다이어그램이다.
[0015] 도 4는 표현(Representation)의 세그먼트에 대응할 수 있는 예시적인 비디오 파일의 엘리먼트들을 예시하는 블록 다이어그램이다.
[0016] 도 5는 예시적인 브로드캐스트 DASH(Dynamic Adaptive Streaming over HTTP) 인프라스트럭처 시스템을 예시하는 블록 다이어그램이다.
[0017] 도 6은 MDE들의 예시적인 하이 레벨 컴포지션을 예시하는 개념 다이어그램이다.
[0018] 도 7은 예시적인 프레임 타입 케이던스(cadence) 및 대응하는 정의된 MDE들을 예시하는 개념 다이어그램이다.
[0019] 도 8은 시스템 시간의 단순한 뷰를 표현하는 개념 다이어그램이다.
[0020] 도 9는 송신 인프라스트럭처에서 시간 관계를 표현하는 블록 다이어그램이다.
[0021] 도 10은 스태거링된 RAP(random access point) 위치를 갖는 GOP(group of pictures)마다 다수의 세그먼트들을 예시하는 개념 다이어그램이다.
[0022] 도 11은 미디어 재생을 위한 디코드 시간에 대한 최소 지연을 예시하는 개념 다이어그램이다.
[0023] 도 12는 선택적인 물리 계층 동기화 및 관련된 메타데이터를 예시하는 개념 다이어그램이다.
[0024] 도 13은 획득 이벤트들의 예시적인 시퀀스를 예시하는 흐름도이다.
[0025] 도 14는 본 개시내용의 기법들에 따른 다른 예시적인 방법을 예시하는 흐름도이다.
[0026] 일반적으로, 본 개시내용은 미디어 데이터를 전송하는 것에 관련된 기법들을 설명한다. 본 개시내용의 기법들은, 클라이언트 디바이스에 미디어 데이터를 스트리밍하는 서버 디바이스 또는 다른 소스 디바이스에 의해 수행될 수 있다. 특히, 소스 디바이스는 세그먼터, 파일-기반 프로토콜 전송 유닛, 및 물리 계층 전송 유닛을 포함할 수 있다. 세그먼터는 미디어 데이터의 세그먼트들을 형성하는 유닛에 대응할 수 있으며, 여기서, 세그먼트들은 예컨대 DASH(Dynamic Adaptive Streaming over HTTP) 세그먼트들을 준수한다. 예컨대, 세그먼터는 NAL(network abstraction layer) 유닛들을 개개의 DASH 세그먼트들로 캡슐화할 수 있으며, 여기서, 세그먼트들은 각각, 별도의 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관될 수 있다. 파일-기반 프로토콜 전송 유닛은 파일-기반 프로토콜, 이를테면, FLUTE(File Delivery over Unidirectional Transport) 또는 ROUTE를 사용하여 데이터를 전송하도록 구성될 수 있다. 물리 계층 전송 유닛은 물리 계층에서, 예컨대 이더넷을 사용하여 미디어 데이터를 전송할 수 있다.
[0027] 본 개시내용의 기법들에 따라, 세그먼터는 미디어 데이터의 세그먼트들 둘 모두를, 세그먼트들의 스트림의 형태로, 파일-기반 프로토콜 전송 유닛에 제공할 수 있다. 따라서, 파일-기반 프로토콜 전송 유닛은 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 세그먼터로부터 수신할 수 있다. 이후, 파일-기반 프로토콜 전송 유닛은 미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정할 수 있다. 일 예에서, 파일-기반 프로토콜 전송 유닛은 미디어 데이터의 스트림으로부터 MDE들을 형성할 수 있다. 예컨대, 파일-기반 프로토콜 전송 유닛은, 스트림의 어느 부분들이 특정 MDE에 포함되어야 하는지를 결정하여서, 이 MDE는 미디어 디코더에 유용한 데이터(예컨대, 더 이른(earlier) 데이터가 정확하게 전달되었다고 가정하면, 미디어 디코더에 의해 적절하게 디코딩될 수 있는 데이터)를 포함할 수 있다.
[0028] MDE들의 위치들을 결정하기 위해, 파일-기반 프로토콜 전송 유닛은 패턴 매칭 기법들을 사용할 수 있으며, 여기서, 파일-기반 프로토콜 전송 유닛은 스트림에 포함된 미디어 데이터에 대한 하나 또는 그 초과의 패턴들을 갖게 구성된다. 그러한 패턴들은, 예컨대, 미디어 데이터의 어레인지먼트를 계층적인 디코딩 순서로 표현할 수 있다. 예컨대, 비디오 데이터는 소정의 개수의 인트라-예측(intra-predicted) 프레임들(I-프레임들), 그 뒤에 소정의 개수의 단방향성 인터-예측(inter-predicted) 프레임들(P-프레임들), 그 뒤에(또는 그 사이에) 소정의 개수의 양방향성 인터-예측 프레임들(B-프레임들)에 따라 배열될 수 있다. 파일-기반 프로토콜 전송 유닛은 I-프레임들, P-프레임들, 및 B-프레임들의 검출에 기반하여 MDE들의 위치들을 결정하며, 예컨대, 일 예로서, MDE가, 제1의 I-프레임으로 시작하며 후속하는 I-프레임 전에 마지막 B-프레임으로 종료하는 비디오 시퀀스를 포함한다고 결정할 수 있다. 더욱이, 파일-기반 프로토콜 전송 유닛은 비디오 MDE가 세그먼트의 특정 바이트 범위에 대응한다고 결정할 수 있으며, 여기서, 이 바이트 범위는 프레임 경계에서 종료한다. 다른 예로서, 파일-기반 프로토콜 전송 유닛은 오디오 MDE들이 고정된 개수의 오디오 프레임들을 포함한다고 결정할 수 있다.
[0029] 다른 예로서, MDE들의 위치들을 결정하기 위해(예컨대, MDE들을 형성하기 위해), 파일-기반 프로토콜 전송 유닛은 스트림 내의 다양한 타입들의 미디어 데이터, 이를테면, 오디오 데이터, 비디오 데이터, 및/또는 타임드(timed) 텍스트 데이터의 위치들을 정의하는 규칙들에 따라 구성될 수 있다. 규칙들이 예컨대 스트림 내의 다양한 타입들의 미디어 데이터의 어레인지먼트를 정의할 수 있어서, 파일-기반 프로토콜 전송 유닛은, 미디어 데이터의 타입들 사이를 구별하며, 미디어 데이터의 타입들을 개개의 MDE들에 할당할 수 있다.
[0030] 그 외에도, 파일-기반 프로토콜 전송 유닛은 또한, MDE들에 대한 하나 또는 그 초과의 전달 시간 요건들(송신 시간 요건들로 또한 지칭됨)을 결정할 수 있으며, 여기서, 송신 시간 요건들은 MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현한다. 예컨대, 송신 시간 요건들은 MDE들이 클라이언트 디바이스에 전송되어야 하는 최초(earliest) 및/또는 최후(latest) 시간들을 표현할 수 있다. 예컨대, 클라이언트 디바이스에서의 버퍼 오버플로우를 방지하기 위하여, MDE들은 이 MDE들이 클라이언트 디바이스에 전송될 수 있는 최초 시간 요건들을 가질 수 있다. 예컨대, 클라이언트 디바이스에서의 버퍼 언더런을 방지하기 위하여, MDE들은 또한, 이 MDE들이 클라이언트 디바이스에 전송될 수 있는 최후 시간 요건들을 가질 수 있다.
[0031] 이후, 파일-기반 프로토콜 전송 유닛은, 송신 시간 요건들을 표현하는 데이터와 함께, MDE들을 물리 계층 전송 유닛에 전송할 수 있다. 특히, 파일-기반 프로토콜 전송 유닛이 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들을 결정하고, MDE들 및 송신 시간 요건 데이터를 물리 계층 전송 유닛에 전송할 수 있어서, 물리 계층 전송 유닛은 송신 시간 요건들에 따라 MDE들을 전달할 수 있다.
[0032] 위에서 논의된 소스 디바이스는 HTTP 스트리밍 프로토콜, 이를테면, DASH에 따라 데이터를 스트리밍하도록 구성될 수 있다. HTTP 스트리밍에서, 자주 사용되는 동작들은 HEAD, GET, 및 부분적 GET을 포함한다. HEAD 동작은, 주어진 URL(uniform resource locator), URN(uniform resource name), 또는 URI(uniform resource identifier)와 연관된 페이로드를 리트리빙하지 않으면서, 이 URL, URN, 또는 URI와 연관된 파일의 헤더를 리트리빙한다. GET 동작은 주어진 URL, URN, 또는 URI와 연관된 전체 파일을 리트리빙한다. 부분적 GET 동작은 입력 파라미터로서 바이트 범위를 수신하고, 파일의 연속적인 바이트들의 개수를 리트리빙하며, 여기서, 바이트들의 개수는 수신된 바이트 범위에 대응한다. 따라서, HTTP 스트리밍을 위한 영화 프래그먼트(fragment)들이 제공될 수 있는데, 그 이유는 부분적 GET 동작이 하나 또는 그 초과의 개별적인 영화 프래그먼트들을 얻을 수 있기 때문이다. 영화 프래그먼트에는, 상이한 트랙들의 몇몇 트랙 프래그먼트들이 있을 수 있다. HTTP 스트리밍에서, 미디어 프리젠테이션(presentation)은, 클라이언트가 액세스할 수 있는 데이터의 구조화된 집합일 수 있다. 클라이언트는, 스트리밍 서비스를 사용자에게 제시하기 위해 미디어 데이터 정보를 요청 및 다운로딩할 수 있다.
[0033] HTTP 스트리밍을 사용하여 3GPP 데이터를 스트리밍하는 예에서, 멀티미디어 콘텐츠의 비디오 및/또는 오디오 데이터에 대한 다수의 표현들이 있을 수 있다. 아래에서 설명된 바와 같이, 상이한 표현들은 상이한 코딩 특성들(예컨대, 비디오 코딩 표준의 상이한 프로파일들 또는 레벨들), 상이한 코딩 표준들 또는 코딩 표준들의 확장들(이를테면, 멀티뷰 및/또는 스케일러블 확장들), 또는 상이한 비트레이트들에 대응할 수 있다. 그러한 표현들의 매니페스트는 MPD(Media Presentation Description) 데이터 구조에서 정의될 수 있다. 미디어 프리젠테이션은, HTTP 스트리밍 클라이언트 디바이스가 액세스할 수 있는 데이터의 구조화된 집합에 대응할 수 있다. HTTP 스트리밍 클라이언트 디바이스는, 스트리밍 서비스를 클라이언트 디바이스의 사용자에게 제시하기 위해 미디어 데이터 정보를 요청 및 다운로딩할 수 있다. 미디어 프리젠테이션은 MPD 데이터 구조에서 설명될 수 있으며, 이 MPD 데이터 구조는 MPD의 업데이트들을 포함할 수 있다.
[0034] 미디어 프리젠테이션은 하나 또는 그 초과의 기간들의 시퀀스를 포함할 수 있다. 기간들은 MPD 내의 Period 엘리먼트에 의해 정의될 수 있다. 각각의 기간은 MPD 내의 속성 start를 가질 수 있다. MPD는 각각의 기간에 대해 start 속성 및 availableStartTime 속성을 포함할 수 있다. 라이브 서비스들의 경우, 기간의 start 속성과 MPD 속성 availableStartTime의 합은, 기간의 가용성 시간을 UTC 포맷으로 특정할 수 있는데, 특히, 대응하는 기간에서 각각의 표현의 제1 미디어 세그먼트를 특정할 수 있다. 온-디맨드 서비스들의 경우, 제1 기간의 start 속성은 0일 수 있다. 임의의 다른 기간에 대해, start 속성은, 제1 기간의 시작 시간에 관련하여, 대응하는 기간의 시작 시간 사이의 시간 오프셋을 특정할 수 있다. 각각의 기간은, 다음 차례의 기간의 시작까지 또는 마지막 기간의 경우 미디어 프리젠테이션의 종료까지 연장될 수 있다. 기간 시작 시간들은 정확할 수 있다. 이 기간 시작 시간들은, 모든 이전의 기간들의 미디어를 재생하는 것으로부터 도출되는 실제 타이밍을 반영할 수 있다.
[0035] 각각의 기간은 동일한 미디어 콘텐츠에 대한 하나 또는 그 초과의 표현들을 포함할 수 있다. 표현은 오디오 또는 비디오 데이터의 다수의 대안적인 인코딩된 버전들 중 하나일 수 있다. 표현들은 인코딩 타입들에 의해, 예컨대, 비트레이트, 해상도, 및/또는 비디오 데이터 및 비트레이트에 대한 코덱, 언어, 및/또는 오디오 데이터에 대한 코덱에 의해 상이할 수 있다. 표현이란 용어는, 멀티미디어 콘텐츠의 특정 기간에 대응하며 특정 방식으로 인코딩된, 인코딩된 오디오 또는 비디오 데이터의 섹션을 지칭하기 위해 사용될 수 있다.
[0036] 특정 기간의 표현들은 이 표현들이 속하는 적응 세트를 표시하는, MPD 내의 속성에 의해 표시된 그룹에 배정될 수 있다. 동일한 적응 세트 내의 표현들은 일반적으로, 클라이언트 디바이스가 예컨대 대역폭 적응을 수행하기 위해 이들 표현들 사이에서 동적으로 그리고 매끄럽게 스위칭할 수 있다는 점에서, 서로에 대한 대안들로 간주된다. 예컨대, 특정 기간에 대한 비디오 데이터의 각각의 표현이 동일한 적응 세트에 배정될 수 있어서, 대응하는 기간에 대한 멀티미디어 콘텐츠의 미디어 데이터, 이를테면, 비디오 데이터 또는 오디오 데이터를 제시하기 위한 디코딩을 위해 표현들 중 임의의 표현이 선택될 수 있다. 일부 예들에서, 하나의 기간 내의 미디어 콘텐츠는, 존재하는 경우, 그룹 0으로부터의 하나의 표현, 또는 각각의 넌-제로 그룹으로부터의 기껏해야 하나의 표현의 결합에 의해 표현될 수 있다. 기간의 각각의 표현에 대한 타이밍 데이터는 이 기간의 시작 시간에 관련하여 표현될 수 있다.
[0037] 표현은 하나 또는 그 초과의 세그먼트들을 포함할 수 있다. 각각의 표현은 초기화 세그먼트를 포함할 수 있거나, 또는 표현의 각각의 세그먼트는 자체-초기화될 수 있다. 존재하는 경우, 초기화 세그먼트는 표현에 액세스하기 위한 초기화 정보를 포함할 수 있다. 일반적으로, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트는 식별자, 이를테면, URL(uniform resource locator), URN(uniform resource name), 또는 URI(uniform resource identifier)에 의해 고유하게 참조될 수 있다. MPD는 각각의 세그먼트에 대한 식별자들을 제공할 수 있다. 일부 예들에서, MPD는 또한, range 속성 형태의 바이트 범위들을 제공할 수 있으며, 이 바이트 범위들은 URL, URN, 또는 URI에 의해 액세스할 수 있는 파일 내의 세그먼트에 대한 데이터에 대응할 수 있다.
[0038] 상이한 타입들의 미디어 데이터에 대한 실질적으로 동시적인 리트리벌을 위해, 상이한 표현들이 선택될 수 있다. 예컨대, 클라이언트 디바이스는 오디오 표현, 비디오 표현, 및 타임드 텍스트 표현을, 이들로부터 세그먼트들을 리트리빙하기 위해 선택할 수 있다. 일부 예들에서, 클라이언트 디바이스는 대역폭 적응을 수행하기 위해 특정 적응 세트들을 선택할 수 있다. 즉, 클라이언트 디바이스는, 비디오 표현들을 포함하는 적응 세트, 오디오 표현들을 포함하는 적응 세트, 및/또는 타임드 텍스트를 포함하는 적응 세트를 선택할 수 있다. 대안적으로, 클라이언트 디바이스는 소정의 타입들의 미디어(예컨대, 비디오)에 대한 적응 세트들을 선택하고, 다른 타입들의 미디어(예컨대, 오디오 및/또는 타임드 텍스트)에 대한 표현들을 직접적으로 선택할 수 있다.
[0039] 도 1은 네트워크를 통해 미디어 데이터를 스트리밍하기 위한 기법들을 구현하는 예시적인 시스템(10)을 예시하는 블록 다이어그램이다. 이 예에서, 시스템(10)은 콘텐츠 준비 디바이스(20), 서버 디바이스(60), 및 클라이언트 디바이스(40)를 포함한다. 클라이언트 디바이스(40) 및 서버 디바이스(60)는 네트워크(74)에 의해 통신가능하게 커플링되며, 네트워크(74)는 인터넷을 포함할 수 있다. 일부 예들에서, 콘텐츠 준비 디바이스(20) 및 서버 디바이스(60)가 또한, 네트워크(74) 또는 다른 네트워크에 의해 커플링될 수 있거나, 또는 직접적으로 통신가능하게 커플링될 수 있다. 일부 예들에서, 콘텐츠 준비 디바이스(20) 및 서버 디바이스(60)는 동일한 디바이스를 포함할 수 있다.
[0040] 도 1의 예에서, 콘텐츠 준비 디바이스(20)는 오디오 소스(22) 및 비디오 소스(24)를 포함한다. 오디오 소스(22)는, 예컨대, 오디오 인코더(26)에 의해 인코딩될 캡처된 오디오 데이터를 표현하는 전기 신호들을 생성하는 마이크로폰을 포함할 수 있다. 대안적으로, 오디오 소스(22)는 이전에 레코딩된 오디오 데이터를 저장하는 저장 매체, 오디오 데이터 생성기, 이를테면, 컴퓨터화된 신시사이저, 또는 오디오 데이터의 임의의 다른 소스를 포함할 수 있다. 비디오 소스(24)는 비디오 인코더(28)에 의해 인코딩될 비디오 데이터를 생성하는 비디오 카메라, 이전에 레코딩된 비디오 데이터로 인코딩된 저장 매체, 비디오 데이터 생성 유닛, 이를테면, 컴퓨터 그래픽 소스, 또는 비디오 데이터의 임의의 다른 소스를 포함할 수 있다. 콘텐츠 준비 디바이스(20)가 모든 예들에서 반드시 서버 디바이스(60)에 통신가능하게 커플링되는 것이 아니라, 서버 디바이스(60)에 의해 판독되는 별개의 매체에 멀티미디어 콘텐츠를 저장할 수 있다.
[0041] 미가공 오디오 및 비디오 데이터는 아날로그 또는 디지털 데이터를 포함할 수 있다. 아날로그 데이터는, 오디오 인코더(26) 및/또는 비디오 인코더(28)에 의해 인코딩되기 전에, 디지털화될 수 있다. 오디오 소스(22)는 말하는 참가자가 말하고 있는 동안 이 말하는 참가자로부터 오디오 데이터를 획득할 수 있으며, 비디오 소스(24)가 동시에, 이 말하는 참가자의 비디오 데이터를 획득할 수 있다. 다른 예들에서, 오디오 소스(22)는 저장된 오디오 데이터를 포함하는 컴퓨터-판독가능 저장 매체를 포함할 수 있으며, 비디오 소스(24)는 저장된 비디오 데이터를 포함하는 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 이러한 방식으로, 본 개시내용에서 설명된 기법들은 라이브, 스트리밍, 실시간 오디오 및 비디오 데이터에, 또는 아카이빙된(archived), 미리-레코딩된 오디오 및 비디오 데이터에 적용될 수 있다.
[0042] 비디오 프레임들에 대응하는 오디오 프레임들은 일반적으로, 이 비디오 프레임들 내에 포함되는, 비디오 소스(24)에 의해 캡처된(또는 생성된) 비디오 데이터와 동시에 오디오 소스(22)에 의해 캡처된(또는 생성된) 오디오 데이터를 포함하는 오디오 프레임들이다. 예컨대, 말하는 참가자가 일반적으로, 말함으로써 오디오 데이터를 생성하는 동안, 오디오 소스(22)는 오디오 데이터를 캡처하며, 비디오 소스(24)는 동시에, 즉, 오디오 소스(22)가 오디오 데이터를 캡처하고 있는 동안, 말하는 참가자의 비디오 데이터를 캡처한다. 따라서, 오디오 프레임은 하나 또는 그 초과의 특정 비디오 프레임들에 시간적으로 대응할 수 있다. 그에 따라서, 오디오 프레임이 비디오 프레임에 대응하는 것은 일반적으로, 오디오 데이터 및 비디오 데이터가 동시에 캡처되었으며, 이에 대해, 오디오 프레임 및 비디오 프레임이, 동시에 캡처된 오디오 데이터 및 비디오 데이터를 각각 포함하는 상황에 대응한다.
[0043] 일부 예들에서, 오디오 인코더(26)는 인코딩된 오디오 프레임에 대한 오디오 데이터가 레코딩된 시간을 표현하는 타임스탬프를 각각의 인코딩된 오디오 프레임에 인코딩할 수 있으며, 유사하게, 비디오 인코더(28)는 인코딩된 비디오 프레임에 대한 비디오 데이터가 레코딩된 시간을 표현하는 타임스탬프를 각각의 인코딩된 비디오 프레임에 인코딩할 수 있다. 그러한 예들에서, 오디오 프레임이 비디오 프레임에 대응하는 것은, 오디오 프레임이 타임스탬프를 포함하고 비디오 프레임이 동일한 타임스탬프를 포함하는 것을 포함할 수 있다. 콘텐츠 준비 디바이스(20)는 내부 클록을 포함할 수 있으며, 오디오 인코더(26) 및/또는 비디오 인코더(28)는 이 내부 클록으로부터 타임스탬프들을 생성할 수 있거나, 또는 오디오 소스(22) 및 비디오 소스(24)는 이 내부 클록을 사용하여 오디오 데이터 및 비디오 데이터를 타임스탬프와 각각 연관시킬 수 있다.
[0044] 일부 예들에서, 오디오 소스(22)는 오디오 데이터가 레코딩된 시간에 대응하는 데이터를 오디오 인코더(26)에 전송할 수 있으며, 비디오 소스(24)는 비디오 데이터가 레코딩된 시간에 대응하는 데이터를 비디오 인코더(28)에 전송할 수 있다. 일부 예들에서, 오디오 인코더(26)는 인코딩된 오디오 데이터의 상대적인 시간적 순서를 표시하기 위해 시퀀스 식별자를 인코딩된 오디오 데이터에 인코딩할 수 있으며(그러나, 반드시 오디오 데이터가 레코딩된 절대 시간을 표시하지는 않으면서), 유사하게, 비디오 인코더(28)는 또한, 시퀀스 식별자들을 사용하여, 인코딩된 비디오 데이터의 상대적인 시간적 순서를 표시할 수 있다. 유사하게, 일부 예들에서, 시퀀스 식별자는 타임스탬프에 매핑되거나 또는 다른 방식으로 타임스탬프와 상관될 수 있다.
[0045] 오디오 인코더(26)가 일반적으로, 인코딩된 오디오 데이터의 스트림을 생성하는 반면에, 비디오 인코더(28)는 인코딩된 비디오 데이터의 스트림을 생성한다. 데이터(오디오이든 또는 비디오이든)의 각각의 개별적인 스트림은 기본 스트림으로 지칭될 수 있다. 기본 스트림은 표현의 디지털식으로 코딩된(가능하게는, 압축된) 단일 컴포넌트이다. 예컨대, 표현의 코딩된 비디오 또는 오디오 파트가 기본 스트림일 수 있다. 기본 스트림은, 비디오 파일 내에 캡슐화되기 전에, PES(packetized elementary stream)로 변환될 수 있다. 동일한 표현 내에서, 하나의 기본 스트림에 속하는 PES-패킷들을 다른 것과 구분하기 위해 스트림 ID가 사용될 수 있다. 기본 스트림의 데이터의 베이직 유닛은 PES(packetized elementary stream) 패킷이다. 따라서, 코딩된 비디오 데이터는 일반적으로, 기본 비디오 스트림들에 대응한다. 유사하게, 오디오 데이터는 하나 또는 그 초과의 개개의 기본 스트림들에 대응한다.
[0046] 도 1의 예에서, 콘텐츠 준비 디바이스(20)의 캡슐화 유닛(30)은 코딩된 비디오 데이터를 포함하는 기본 스트림들을 비디오 인코더(28)로부터, 그리고 코딩된 오디오 데이터를 포함하는 기본 스트림들을 오디오 인코더(26)로부터 수신한다. 일부 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 각각, 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들을 포함할 수 있다. 다른 예들에서, 비디오 인코더(28) 및 오디오 인코더(26)는 각각, 인코딩된 데이터로부터 PES 패킷들을 형성하기 위한 개개의 패킷화기들과 인터페이싱할 수 있다. 또 다른 예들에서, 캡슐화 유닛(30)은 인코딩된 오디오 및 비디오 데이터로부터 PES 패킷들을 형성하기 위한 패킷화기들을 포함할 수 있다.
[0047] 다양한 비트레이트들로, 그리고 다양한 특성들, 이를테면, 픽셀 해상도들, 프레임 레이트들, 다양한 코딩 표준들에 대한 준수, 다양한 코딩 표준들에 대한 다양한 프로파일들 및/또는 프로파일들의 레벨들에 대한 준수, 하나의 또는 다수의 뷰들(예컨대, 2 차원 또는 3 차원 재생의 경우)을 갖는 표현들, 또는 다른 그러한 특성들을 갖게 멀티미디어 콘텐츠의 상이한 표현들을 생성하기 위해, 비디오 인코더(28)는 멀티미디어 콘텐츠의 비디오 데이터를 다양한 방식들로 인코딩할 수 있다. 본 개시내용에서 사용된 표현은 오디오 데이터, 비디오 데이터, 텍스트 데이터(예컨대, 폐쇄 자막들의 경우), 또는 다른 그러한 데이터 중 하나를 포함할 수 있다. 표현은 기본 스트림, 이를테면, 오디오 기본 스트림 또는 비디오 기본 스트림을 포함할 수 있다. 각각의 PES 패킷은, PES 패킷이 속하는 기본 스트림을 식별하는 스트림_id를 포함할 수 있다. 캡슐화 유닛(30)은 기본 스트림들을 다양한 표현들의 비디오 파일들(예컨대, 세그먼트들)로 어셈블링하는 것을 담당한다.
[0048] 캡슐화 유닛(30)은 오디오 인코더(26) 및 비디오 인코더(28)로부터 표현의 기본 스트림들에 대한 PES 패킷들을 수신하며, 이 PES 패킷들로부터, 대응하는 NAL(network abstraction layer) 유닛들을 형성한다. H.264/AVC(Advanced Video Coding)의 예에서, 코딩된 비디오 세그먼트들은 NAL 유닛들로 조직화되며, 이 NAL 유닛들은, "네트워크-친화적" 비디오 표현 어드레싱 애플리케이션들, 이를테면, 비디오 텔레포니, 저장, 브로드캐스트, 또는 스트리밍을 제공한다. NAL 유닛들은 VCL(Video Coding Layer) NAL 유닛들 및 비-VCL NAL 유닛들로 카테고리화될 수 있다. VCL 유닛들은 코어 압축 엔진을 포함할 수 있으며, 블록, 매크로블록, 및/또는 슬라이스 레벨 데이터를 포함할 수 있다. 다른 NAL 유닛들은 비-VCL NAL 유닛들일 수 있다. 일부 예들에서, 일차 코딩된 픽처로서 보통 제시되는, 하나의 시간 인스턴스에서 코딩된 픽처는 액세스 유닛에 포함될 수 있으며, 이 액세스 유닛은 하나 또는 그 초과의 NAL 유닛들을 포함할 수 있다.
[0049] 비-VCL NAL 유닛들은, 다른 것들 중에서, 파라미터 세트 NAL 유닛들 및 SEI NAL 유닛들을 포함할 수 있다. 파라미터 세트들은 시퀀스-레벨 헤더 정보(SPS(sequence parameter set)들 내에 있음) 및 드물게 변화하는 픽처-레벨 헤더 정보(PPS(picture parameter set)들 내에 있음)를 포함할 수 있다. 파라미터 세트들(예컨대, PPS 및 SPS)을 이용하여, 드물게 변화하는 정보는 각각의 시퀀스 또는 픽처에 대해 반복될 필요가 없으며, 따라서, 코딩 효율이 개선될 수 있다. 더욱이, 파라미터 세트들의 사용이 중요한 헤더 정보의 대역 외(out-of-band) 송신을 가능하게 하여서, 에러 회복력(error resilience)을 위한 중복적인 송신들에 대한 필요가 방지될 수 있다. 대역 외 송신 예들에서, 파라미터 세트 NAL 유닛들은 다른 NAL 유닛들, 이를테면, SEI NAL 유닛들과 상이한 채널 상에서 송신될 수 있다.
[0050] SEI(Supplemental Enhancement Information)는, VCL NAL 유닛들로부터의 코딩된 픽처들 샘플들을 디코딩하기 위해서는 필요하지 않지만 디코딩, 디스플레이, 에러 회복력, 및 다른 목적들에 관련된 프로세스들을 보조할 수 있는 정보를 포함할 수 있다. SEI 메시지들은 비-VCL NAL 유닛들에 포함될 수 있다. SEI 메시지들은 일부 표준 규격들의 규범적인 파트이며, 따라서, 표준 준수 디코더 구현을 위해 항상 의무적인 것은 아니다. SEI 메시지들은 시퀀스 레벨 SEI 메시지들 또는 픽처 레벨 SEI 메시지들일 수 있다. 일부 시퀀스 레벨 정보는 SEI 메시지들, 이를테면, SVC의 예에서는 확장성 정보 SEI 메시지들, 그리고 MVC에서는 뷰 확장성 정보 SEI 메시지들에 포함될 수 있다. 이들 예시적인 SEI 메시지들은 예컨대 동작 포인트들의 추출 및 이 동작 포인트들의 특성들에 관한 정보를 운반할 수 있다. 그 외에도, 캡슐화 유닛(30)은 매니페스트 파일, 이를테면, 표현들의 특성들을 설명하는 MPD(media presentation descriptor)를 형성할 수 있다. 캡슐화 유닛(30)은 XML(extensible markup language)에 따라 MPD를 포맷팅할 수 있다.
[0051] 캡슐화 유닛(30)은, 매니페스트 파일(예컨대, MPD)과 함께, 멀티미디어 콘텐츠의 하나 또는 그 초과의 표현들에 대한 데이터를 출력 인터페이스(32)에 제공할 수 있다. 출력 인터페이스(32)는 네트워크 인터페이스 또는 저장 매체에 기록하기 위한 인터페이스, 이를테면, USB(universal serial bus) 인터페이스, CD 또는 DVD 기록기 또는 버너, 자기 또는 플래시 저장 매체에 대한 인터페이스, 또는 미디어 데이터를 저장하거나 또는 송신하기 위한 다른 인터페이스들을 포함할 수 있다. 캡슐화 유닛(30)은 멀티미디어 콘텐츠의 표현들 각각의 데이터를 출력 인터페이스(32)에 제공할 수 있으며, 출력 인터페이스(32)는 네트워크 송신 또는 저장 매체를 통해 데이터를 서버 디바이스(60)에 전송할 수 있다. 도 1의 예에서, 서버 디바이스(60)는 다양한 멀티미디어 콘텐츠들(64)을 저장하는 저장 매체(62)를 포함하며, 멀티미디어 콘텐츠들(64) 각각은 개개의 매니페스트 파일(66) 그리고 하나 또는 그 초과의 표현들(68A-68N)(표현들(68))을 포함한다. 일부 예들에서, 출력 인터페이스(32)는 또한, 네트워크(74)에 직접적으로 데이터를 전송할 수 있다.
[0052] 일부 예들에서, 표현들(68)은 적응 세트들로 분리될 수 있다. 즉, 표현들(68)의 다양한 서브세트들은 특성들, 이를테면, 코덱, 프로파일 및 레벨, 해상도, 뷰들의 개수, 세그먼트들에 대한 파일 포맷, 언어를 식별하거나 또는 표현과 함께 디스플레이될 텍스트 및/또는 디코딩되어 예컨대 스피커들에 의해 제시될 오디오 데이터의 다른 특성들을 식별할 수 있는 텍스트 타입 정보, 적응 세트 내의 표현들에 대한 장면의 카메라 앵글 또는 실세계 카메라 원근을 설명할 수 있는 카메라 앵글 정보, 특정 청중들을 위한 콘텐츠 적합성을 설명하는 등급 정보 등의 개개의 공통 세트들을 포함할 수 있다.
[0053] 매니페스트 파일(66)은 특정 적응 세트들에 대응하는 표현들(68)의 서브세트들, 뿐만 아니라 이 적응 세트들에 대한 공통 특성들을 표시하는 데이터를 포함할 수 있다. 매니페스트 파일(66)은 또한, 적응 세트들의 개별적인 표현들에 대해, 개별적인 특성들, 이를테면, 비트레이트들을 표현하는 데이터를 포함할 수 있다. 이러한 방식으로, 적응 세트는 단순화된 네트워크 대역폭 적응을 제공할 수 있다. 적응 세트 내의 표현들은 매니페스트 파일(66)의 적응 세트 엘리먼트의 자식(child) 엘리먼트들을 사용하여 표시될 수 있다.
[0054] 서버 디바이스(60)는 요청 프로세싱 유닛(70) 및 네트워크 인터페이스(72)를 포함한다. 일부 예들에서, 서버 디바이스(60)는 복수의 네트워크 인터페이스들을 포함할 수 있다. 더욱이, 서버 디바이스(60)의 특징들 중 임의의 특징 또는 특징들 전부는 콘텐츠 전달 네트워크의 다른 디바이스들, 이를테면, 라우터들, 브리지들, 프록시 디바이스들, 스위치들, 또는 다른 디바이스들 상에 구현될 수 있다. 일부 예들에서, 콘텐츠 전달 네트워크의 중간 디바이스들은 멀티미디어 콘텐츠(64)의 데이터를 캐싱하며, 서버 디바이스(60)의 컴포넌트들과 실질적으로 일치하는 컴포넌트들을 포함할 수 있다. 일반적으로, 네트워크 인터페이스(72)는 네트워크(74)를 통해 데이터를 전송 및 수신하도록 구성된다.
[0055] 요청 프로세싱 유닛(70)은 클라이언트 디바이스들, 이를테면, 클라이언트 디바이스(40)로부터 저장 매체(62)의 데이터에 대한 네트워크 요청들을 수신하도록 구성된다. 예컨대, 요청 프로세싱 유닛(70)은 R. Fielding 등에 의한 RFC 2616의 "Hypertext Transfer Protocol - HTTP/1.1"(Network Working Group, IETF, 1999년 6월)에서 설명된 HTTP(hypertext transfer protocol) 버전 1.1을 구현할 수 있다. 즉, 요청 프로세싱 유닛(70)은, HTTP GET 또는 부분적 GET 요청들을 수신하고 이 요청들에 대한 응답으로 멀티미디어 콘텐츠(64)의 데이터를 제공하도록 구성될 수 있다. 요청들은 표현들(68) 중 하나의 표현의 세그먼트를, 예컨대 이 세그먼트의 URL 또는 URI를 사용하여 특정할 수 있다. 일부 예들에서, 요청들은 또한, 세그먼트의 하나 또는 그 초과의 바이트 범위들을 특정하며, 따라서 부분적 GET 요청들을 포함할 수 있다. 요청 프로세싱 유닛(70)은 추가로, 표현들(68) 중 하나의 표현의 세그먼트의 헤더 데이터를 제공하라는 HTTP HEAD 요청들에 서비스하도록 구성될 수 있다. 어떤 경우에도, 요청 프로세싱 유닛(70)은, 요청된 데이터를 요청 디바이스, 이를테면, 클라이언트 디바이스(40)에 제공하라는 요청들을 프로세싱하도록 구성될 수 있다.
[0056] 부가적으로 또는 대안적으로, 요청 프로세싱 유닛(70)은 브로드캐스트 또는 멀티캐스트 프로토콜, 이를테면, eMBMS 또는 DVB-T/T2를 통해 미디어 데이터를 전달하도록 구성될 수 있다. 콘텐츠 준비 디바이스(20)는 설명된 것과 실질적으로 동일한 방식으로 DASH 세그먼트들 및/또는 서브-세그먼트들을 생성할 수 있지만, 서버 디바이스(60)는 eMBMS, DVB-T/T2 또는 다른 브로드캐스트 또는 멀티캐스트 네트워크 전송 프로토콜을 사용하여 이들 세그먼트들 또는 서브-세그먼트들을 전달할 수 있다. 예컨대, 요청 프로세싱 유닛(70)은 클라이언트 디바이스(40)로부터 멀티캐스트 그룹 조인(join) 요청을 수신하도록 구성될 수 있다. 즉, 서버 디바이스(60)는 특정 미디어 콘텐츠(예컨대, 라이브 이벤트의 브로드캐스트)와 연관된 멀티캐스트 그룹과 연관된 IP(Internet protocol) 어드레스를, 클라이언트 디바이스(40)를 포함하는 클라이언트 디바이스들에 광고할 수 있다. 이어서, 클라이언트 디바이스(40)는 이 멀티캐스트 그룹에 조인하기 위한 요청을 제출할 수 있다. 이 요청이 네트워크(74), 예컨대, 네트워크(74)를 형성하는 라우터들 전체에 걸쳐 전파되어서, 이 라우터들은, 멀티캐스트 그룹과 연관된 IP 어드레스를 목적지로 하는 트래픽을 가입 클라이언트 디바이스들, 이를테면, 클라이언트 디바이스(40)로 지향시키게 될 수 있다.
[0057] 더욱이, 서버 디바이스(60)의 네트워크 인터페이스(72)는 본 개시내용의 기법들을 수행하도록 구성될 수 있다. 부가적으로 또는 대안적으로, 요청 프로세싱 유닛(70) 및 네트워크 인터페이스(72)는 본 개시내용의 기법들을 수행하도록 구성될 수 있다. 설명의 목적들을 위해, 네트워크 인터페이스(72)가 도 1에서 명시적으로 도시되지 않은 서브-컴포넌트들, 이를테면, 아래에서 더욱 상세히 논의된 다양한 예들을 포함한다는 것이 가정된다. 예컨대, 네트워크 인터페이스(72)는 전송기, 스케줄러, 프레이머, 및 여진기 증폭기를 포함할 수 있다. 그 외에도, 이 예에서, 캡슐화 유닛(30)은 세그먼터(즉, 미디어 데이터의 세그먼트들을 형성하는 유닛, 여기서, 세그먼트들은 개개의 URL들/URI들과 연관된 개별적인 파일들을 표현함)의 예를 표현한다. 특히, 캡슐화 유닛(30)은 세그먼트들에 MDE들을 캡슐화할 수 있으며, 여기서, 각각의 세그먼트는 하나 또는 그 초과의 MDE들을 포함할 수 있다.
[0058] 본 개시내용의 기법들에 따라, 캡슐화 유닛(30)은 미디어 데이터의 세그먼트들의 스트림을 서버 디바이스(60)에 제공할 수 있으며, 서버 디바이스(60)는 궁극적으로, 클라이언트 디바이스(40)로의 송신을 위해, 이 세그먼트들의 스트림을 네트워크 인터페이스(72)로 지향시킨다. 세그먼트들의 스트림은 표현, 이를테면, 표현들(68) 중 하나에 대응할 수 있다. 더욱이, 캡슐화 유닛(30)은 세그먼트들에 포함된 MDE들에 대한 송신 시간 요건들을 표현하는 데이터를 서버 디바이스(60)에 제공할 수 있으며, 서버 디바이스(60)는 다시, 궁극적으로, 송신 시간 요건들을 네트워크 인터페이스(72)로 지향시킨다. 예컨대, 송신 시간 요건들은 매니페스트 파일(66) 내에서 특정될 수 있다. 송신 시간 요건들은 일반적으로, MDE들이 클라이언트 디바이스(40)에 전달되어야 하는 최초 및/또는 최후 시간들을 표시한다. 따라서, 네트워크 인터페이스(72)는 송신 시간 요건들에 따라 MDE들(예컨대, 세그먼트들 또는 세그먼트들의 바이트 범위들)을 클라이언트 디바이스(40)에 전송할 수 있다. 예컨대, 네트워크 인터페이스(72)는, 최초 송신 시간들보다 이르지 않게 그리고/또는 최후 송신 시간들보다 늦지 않게 MDE들이 클라이언트 디바이스(40)에 도달하도록, MDE들을 전달할 수 있다.
[0059] 도 1의 예에서 예시된 바와 같이, 멀티미디어 콘텐츠(64)는 매니페스트 파일(66)을 포함하며, 매니페스트 파일(66)은 MPD(media presentation description)에 대응할 수 있다. 매니페스트 파일(66)은 상이한 대안적인 표현들(68)(예컨대, 상이한 품질들을 갖는 비디오 서비스들)의 디스크립션(description)들을 포함할 수 있으며, 디스크립션은 예컨대 코덱 정보, 프로파일 값, 레벨 값, 비트레이트, 및 표현들(68)의 다른 설명적 특성들을 포함할 수 있다. 클라이언트 디바이스(40)는, 표현들(68)의 세그먼트들에 액세스하는 방법을 결정하기 위해 미디어 프리젠테이션의 MPD를 리트리빙할 수 있다.
[0060] 특히, 리트리벌 유닛(52)은 비디오 디코더(48)의 디코딩 능력들 및 비디오 출력(44)의 렌더링 능력들을 결정하기 위해 클라이언트 디바이스(40)의 구성 데이터(미도시)를 리트리빙할 수 있다. 구성 데이터는 또한, 클라이언트 디바이스(40)의 사용자에 의해 선택된 언어 선호, 클라이언트 디바이스(40)의 사용자에 의해 세팅된 깊이 선호들에 대응하는 하나 또는 그 초과의 카메라 원근들, 및/또는 클라이언트 디바이스(40)의 사용자에 의해 선택된 등급 선호 중 임의의 것 또는 전부를 포함할 수 있다. 리트리벌 유닛(52)은, 예컨대, HTTP GET 및 부분적 GET 요청들을 제출하도록 구성된 미디어 클라이언트 또는 웹 브라우저를 포함할 수 있다. 리트리벌 유닛(52)은 클라이언트 디바이스(40)의 하나 또는 그 초과의 프로세서들 또는 프로세싱 유닛들(미도시)에 의해 실행되는 소프트웨어 명령들에 대응할 수 있다. 일부 예들에서, 리트리벌 유닛(52)에 대해 설명된 기능성의 일부분들 또는 전부는 하드웨어, 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 결합으로 구현될 수 있으며, 여기서, 소프트웨어 또는 펌웨어에 대한 명령들을 실행하기 위해 필수 하드웨어가 제공될 수 있다.
[0061] 리트리벌 유닛(52)은 매니페스트 파일(66)의 정보에 의해 표시된 표현들(68)의 특성들과, 클라이언트 디바이스(40)의 디코딩 및 렌더링 능력들을 비교할 수 있다. 리트리벌 유닛(52)은 초기에, 표현들(68)의 특성들을 결정하기 위해 매니페스트 파일(66)의 적어도 일부분을 리트리빙할 수 있다. 예컨대, 리트리벌 유닛(52)은 하나 또는 그 초과의 적응 세트들의 특성들을 설명하는, 매니페스트 파일(66)의 부분을 요청할 수 있다. 리트리벌 유닛(52)은 클라이언트 디바이스(40)의 코딩 및 렌더링 능력들에 의해 충족될 수 있는 특성들을 갖는, 표현들(68)의 서브세트(예컨대, 적응 세트)를 선택할 수 있다. 이후, 리트리벌 유닛(52)은 적응 세트 내의 표현들에 대한 비트레이트들을 결정하고, 네트워크 대역폭의 현재 이용가능한 양을 결정하며, 네트워크 대역폭에 의해 충족될 수 있는 비트레이트를 갖는 표현들 중 하나로부터 세그먼트들을 리트리빙할 수 있다.
[0062] 일반적으로, 더 높은 비트레이트 표현들이 더 높은 품질의 비디오 재생을 산출할 수 있는 반면에, 더 낮은 비트레이트 표현들은, 이용가능한 네트워크 대역폭이 감소할 때, 충분한 품질의 비디오 재생을 제공할 수 있다. 그에 따라서, 이용가능한 네트워크 대역폭이 비교적 높을 때, 리트리벌 유닛(52)은 비교적 높은 비트레이트 표현들로부터 데이터를 리트리빙할 수 있는 반면에, 이용가능한 네트워크 대역폭이 낮을 때, 리트리벌 유닛(52)은 비교적 낮은 비트레이트 표현들로부터 데이터를 리트리빙할 수 있다. 이러한 방식으로, 클라이언트 디바이스(40)는, 네트워크(74)의 변화하는 네트워크 대역폭 가용성에 또한 적응하면서, 네트워크(74)를 통해 멀티미디어 데이터를 스트리밍할 수 있다.
[0063] 부가적으로 또는 대안적으로, 리트리벌 유닛(52)은 브로드캐스트 또는 멀티캐스트 네트워크 프로토콜, 이를테면, eMBMS 또는 IP 멀티캐스트에 따라 데이터를 수신하도록 구성될 수 있다. 그러한 예들에서, 리트리벌 유닛(52)은 특정 미디어 콘텐츠와 연관된 멀티캐스트 네트워크 그룹에 조인하기 위한 요청을 제출할 수 있다. 멀티캐스트 그룹에 조인한 후에, 리트리벌 유닛(52)은, 서버 디바이스(60) 또는 콘텐츠 준비 디바이스(20)에 대해 발행되는 추가적인 요청들 없이, 멀티캐스트 그룹의 데이터를 수신할 수 있다. 리트리벌 유닛(52)은, 멀티캐스트 그룹의 데이터가 더 이상 요구되지 않을 때, 예컨대, 재생을 정지하기 위해 또는 상이한 멀티캐스트 그룹으로 채널들을 변화시키기 위해, 멀티캐스트 그룹을 떠나기 위한 요청을 제출할 수 있다.
[0064] 네트워크 인터페이스(54)는 선택된 표현의 세그먼트들의 데이터를 수신하여 리트리벌 유닛(52)에 제공할 수 있으며, 리트리벌 유닛(52)은 이어서, 세그먼트들을 디캡슐화(decapsulation) 유닛(50)에 제공할 수 있다. 디캡슐화 유닛(50)은 비디오 파일의 엘리먼트들을 구성성분 PES 스트림들로 디캡슐화하고, PES 스트림들을 디패킷화하여(depacketize) 인코딩된 데이터를 리트리빙하며, 그리고 예컨대, 스트림의 PES 패킷 헤더들에 의해 표시된 바와 같이, 인코딩된 데이터가 오디오 스트림의 일부인지 또는 비디오 스트림의 일부인지에 따라, 인코딩된 데이터를 오디오 디코더(46) 또는 비디오 디코더(48)에 전송할 수 있다. 오디오 디코더(46)가 인코딩된 오디오 데이터를 디코딩하고, 디코딩된 오디오 데이터를 오디오 출력(42)에 전송하는 반면에, 비디오 디코더(48)는 인코딩된 비디오 데이터를 디코딩하고, 스트림의 복수의 뷰들을 포함할 수 있는 디코딩된 비디오 데이터를 비디오 출력(44)에 전송한다.
[0065] 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 리트리벌 유닛(52), 및 디캡슐화 유닛(50) 각각은, 적용가능한 경우, 다양한 적절한 프로세싱 회로소자 중 임의의 것, 이를테면, 하나 또는 그 초과의 마이크로프로세서들, DSP(digital signal processor)들, ASIC(application specific integrated circuit)들, FPGA(field programmable gate array)들, 이산 논리 회로소자, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 결합들로서 구현될 수 있다. 비디오 인코더(28) 및 비디오 디코더(48) 각각은 하나 또는 그 초과의 인코더들 또는 디코더들에 포함될 수 있으며, 이들 중 어느 하나가, 결합된 비디오 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 마찬가지로, 오디오 인코더(26) 및 오디오 디코더(46) 각각은 하나 또는 그 초과의 인코더들 또는 디코더들에 포함될 수 있으며, 이들 중 어느 하나가, 결합된 CODEC의 일부로서 통합될 수 있다. 비디오 인코더(28), 비디오 디코더(48), 오디오 인코더(26), 오디오 디코더(46), 캡슐화 유닛(30), 리트리벌 유닛(52), 및/또는 디캡슐화 유닛(50)을 포함하는 장치는 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 이를테면, 셀룰러 전화를 포함할 수 있다.
[0066] 클라이언트 디바이스(40), 서버 디바이스(60), 및/또는 콘텐츠 준비 디바이스(20)는 본 개시내용의 기법들에 따라 동작하도록 구성될 수 있다. 예를 들기 위해, 본 개시내용은 클라이언트 디바이스(40) 및 서버 디바이스(60)에 관련하여 이들 기법들을 설명한다. 그러나, 서버 디바이스(60) 대신에(또는 그 외에도), 콘텐츠 준비 디바이스(20)가 이들 기법들을 수행하도록 구성될 수 있다는 것이 이해되어야 한다.
[0067] 캡슐화 유닛(30)은, NAL 유닛이 속하는 프로그램을 식별하는 헤더, 뿐만 아니라 페이로드, 예컨대, 오디오 데이터, 비디오 데이터, 또는 NAL 유닛에 대응하는 전송 또는 프로그램 스트림을 설명하는 데이터를 포함하는 NAL 유닛들을 형성할 수 있다. 예컨대, H.264/AVC에서, NAL 유닛은 1-바이트 헤더 및 가변 사이즈의 페이로드를 포함한다. 자신의 페이로드에 비디오 데이터를 포함하는 NAL 유닛은 다양한 입도(granularity) 레벨들의 비디오 데이터를 포함할 수 있다. 예컨대, NAL 유닛은 비디오 데이터의 블록, 복수의 블록들, 비디오 데이터의 슬라이스, 또는 비디오 데이터의 전체 픽처를 포함할 수 있다. 캡슐화 유닛(30)은 비디오 인코더(28)로부터, 기본 스트림들의 PES 패킷들의 형태로, 인코딩된 비디오 데이터를 수신할 수 있다. 캡슐화 유닛(30)은 각각의 기본 스트림을 대응하는 프로그램과 연관시킬 수 있다.
[0068] 캡슐화 유닛(30)은 또한, 복수의 NAL 유닛들로부터의 액세스 유닛들을 어셈블링할 수 있다. 일반적으로, 액세스 유닛은 비디오 데이터의 프레임, 뿐만 아니라 이 프레임에 대응하는 오디오 데이터(그러한 오디오 데이터가 이용가능할 때)를 표현하기 위한 하나 또는 그 초과의 NAL 유닛들을 포함할 수 있다. 액세스 유닛은 일반적으로, 하나의 출력 시간 인스턴스에 대한 모든 NAL 유닛들, 예컨대, 하나의 시간 인스턴스에 대한 모든 오디오 및 비디오 데이터를 포함한다. 예컨대, 각각의 뷰가 20 fps(frames per second)의 프레임 레이트를 가지면, 각각의 시간 인스턴스는 0.05 초의 시간 간격에 대응할 수 있다. 이 시간 간격 동안, 동일한 액세스 유닛(동일한 시간 인스턴스)의 모든 뷰들에 대한 특정 프레임들이 동시에 렌더링될 수 있다. 일 예에서, 액세스 유닛은, 일차 코딩된 픽처로서 제시될 수 있는, 하나의 시간 인스턴스에서 코딩된 픽처를 포함할 수 있다.
[0069] 그에 따라서, 액세스 유닛은 공통 시간 인스턴스의 모든 오디오 및 비디오 프레임들, 예컨대, 시간 X에 대응하는 모든 뷰들을 포함할 수 있다. 본 개시내용은 또한, 특정 뷰의 인코딩된 픽처를 "뷰 컴포넌트"로 지칭한다. 즉, 뷰 컴포넌트는 특정 시간에 특정 뷰에 대한 인코딩된 픽처(또는 프레임)를 포함할 수 있다. 그에 따라서, 액세스 유닛은 공통 시간 인스턴스의 모든 뷰 컴포넌트들을 포함하는 것으로서 정의될 수 있다. 액세스 유닛들의 디코딩 순서가 반드시 출력 또는 디스플레이 순서와 동일할 필요는 없다.
[0070] 미디어 프리젠테이션은, 상이한 대안적인 표현들(예컨대, 상이한 품질들을 갖는 비디오 서비스들)의 디스크립션들을 포함할 수 있는 MPD(media presentation description)를 포함할 수 있으며, 디스크립션은 예컨대 코덱 정보, 프로파일 값, 및 레벨 값을 포함할 수 있다. MPD는 매니페스트 파일, 이를테면, 매니페스트 파일(66)의 일 예이다. 클라이언트 디바이스(40)는, 다양한 프리젠테이션들의 영화 프래그먼트들에 액세스하는 방법을 결정하기 위해 미디어 프리젠테이션의 MPD를 리트리빙할 수 있다. 영화 프래그먼트들은 비디오 파일들의 영화 프래그먼트 박스들(moof 박스들)에 위치될 수 있다.
[0071] 매니페스트 파일(66)(예컨대, MPD를 포함할 수 있음)은 표현들(68)의 세그먼트들의 가용성을 광고할 수 있다. 즉, MPD는, 표현들(68) 중 하나의 표현의 제1 세그먼트가 이용가능해지는 벽-클록 시간(wall-clock time)을 표시하는 정보, 뿐만 아니라 표현들(68) 내의 세그먼트들의 지속기간들을 표시하는 정보를 포함할 수 있다. 이러한 방식으로, 클라이언트 디바이스(40)의 리트리벌 유닛(52)은, 특정 세그먼트에 선행하는 세그먼트들의 시작 시간 뿐만 아니라 지속기간들에 기반하여, 각각의 세그먼트가 이용가능할 때를 결정할 수 있다.
[0072] 캡슐화 유닛(30)이 수신된 데이터에 기반하여 NAL 유닛들 및/또는 액세스 유닛들을 비디오 파일로 어셈블링한 후에, 캡슐화 유닛(30)은 출력을 위해 비디오 파일을 출력 인터페이스(32)에 전달한다. 일부 예들에서, 캡슐화 유닛(30)은 비디오 파일을 로컬로 저장하거나, 또는 클라이언트 디바이스(40)에 직접적으로 비디오 파일을 전송하는 것이 아니라 출력 인터페이스(32)를 통해 원격 서버에 비디오 파일을 전송할 수 있다. 출력 인터페이스(32)는, 예컨대, 송신기, 트랜시버, 데이터를 컴퓨터-판독가능 매체에 기록하기 위한 디바이스, 이를테면, 예컨대, 광학 드라이브, 자기 매체 드라이브(예컨대, 플로피 드라이브), USB(universal serial bus) 포트, 네트워크 인터페이스, 또는 다른 출력 인터페이스를 포함할 수 있다. 출력 인터페이스(32)는 컴퓨터-판독가능 매체, 이를테면, 예컨대, 송신 신호, 자기 매체, 광학 매체, 메모리, 플래시 드라이브, 또는 다른 컴퓨터-판독가능 매체에 비디오 파일을 출력한다.
[0073] 네트워크 인터페이스(54)는 네트워크(74)를 통해 NAL 유닛 또는 액세스 유닛을 수신하며, 이 NAL 유닛 또는 액세스 유닛을 리트리벌 유닛(52)을 통해 디캡슐화 유닛(50)에 제공할 수 있다. 디캡슐화 유닛(50)은 비디오 파일의 엘리먼트들을 구성성분 PES 스트림들로 디캡슐화하고, PES 스트림들을 디패킷화하여 인코딩된 데이터를 리트리빙하며, 그리고 예컨대, 스트림의 PES 패킷 헤더들에 의해 표시된 바와 같이, 인코딩된 데이터가 오디오 스트림의 일부인지 또는 비디오 스트림의 일부인지에 따라, 인코딩된 데이터를 오디오 디코더(46) 또는 비디오 디코더(48)에 전송할 수 있다. 오디오 디코더(46)가 인코딩된 오디오 데이터를 디코딩하고, 디코딩된 오디오 데이터를 오디오 출력(42)에 전송하는 반면에, 비디오 디코더(48)는 인코딩된 비디오 데이터를 디코딩하고, 스트림의 복수의 뷰들을 포함할 수 있는 디코딩된 비디오 데이터를 비디오 출력(44)에 전송한다.
[0074] 도 1의 예의 소정의 엘리먼트들은 본 개시내용의 기법들을 수행하도록 구성될 수 있다. 예컨대, 네트워크 인터페이스(72) 및/또는 요청 프로세싱 유닛(70)은, 본 개시내용의 기법들을 수행하기 위해 독립적으로 또는 함께 동작하도록 구성될 수 있다.
[0075] 도 2는 도 1의 리트리벌 유닛(52)의 컴포넌트들의 예시적인 세트를 더욱 상세히 예시하는 블록 다이어그램이다. 이 예에서, 리트리벌 유닛(52)은 eMBMS 미들웨어 유닛(100), DASH 클라이언트(110), 및 미디어 애플리케이션(112)을 포함한다.
[0076] 이 예에서, eMBMS 미들웨어 유닛(100)은 eMBMS 수신 유닛(106), 캐시(104), 및 서버 유닛(102)을 더 포함한다. 이 예에서, eMBMS 수신 유닛(106)은 eMBMS를 통해, 예컨대, T. Paila 등의 "FLUTE-File Delivery over Unidirectional Transport"(Network Working Group, RFC 6726, 2012년 11월, http://tools.ietf.org/html/rfc6726에서 이용가능함)에서 설명된 FLUTE(File Delivery over Unidirectional Transport)에 따라 데이터를 수신하도록 구성된다. 즉, eMBMS 수신 유닛(106)은, 예컨대 BM-SC로서의 역할을 할 수 있는 서버 디바이스(60)로부터 브로드캐스트를 통해 파일들을 수신할 수 있다.
[0077] eMBMS 미들웨어 유닛(100)이 파일들에 대한 데이터를 수신할 때, eMBMS 미들웨어 유닛은 수신된 데이터를 캐시(104)에 저장할 수 있다. 캐시(104)는 컴퓨터-판독가능 저장 매체, 이를테면, 플래시 메모리, 하드 디스크, RAM, 또는 임의의 다른 적절한 저장 매체를 포함할 수 있다.
[0078] 로컬 서버 유닛(102)은 DASH 클라이언트(110)에 대한 서버로서의 역할을 할 수 있다. 예컨대, 로컬 서버 유닛(102)은 MPD 파일 또는 다른 매니페스트 파일을 DASH 클라이언트(110)에 제공할 수 있다. 로컬 서버 유닛(102)은 MPD 파일 내의, 세그먼트들에 대한 가용성 시간들, 뿐만 아니라 세그먼트들이 리트리빙될 수 있게 하는 하이퍼링크들을 광고할 수 있다. 이들 하이퍼링크들은 클라이언트 디바이스(40)에 대응하는 로컬호스트 어드레스 프리픽스(예컨대, IPv4의 경우, 127.0.0.1)를 포함할 수 있다. 이러한 방식으로, DASH 클라이언트(110)는 HTTP GET 또는 부분적 GET 요청들을 사용하여 로컬 서버 유닛(102)으로부터의 세그먼트들을 요청할 수 있다. 예컨대, 링크 http://127.0.0.1/rep1/seg3로부터 이용가능한 세그먼트의 경우, DASH 클라이언트(110)는 http://127.0.0.1/rep1/seg3에 대한 요청을 포함하는 HTTP GET 요청을 구성하고, 이 요청을 로컬 서버 유닛(102)에 제출할 수 있다. 로컬 서버 유닛(102)은 요청된 데이터를 캐시(104)로부터 리트리빙하고, 그러한 요청들에 대한 응답으로 데이터를 DASH 클라이언트(110)에 제공할 수 있다.
[0079] 도 3은 예시적인 멀티미디어 콘텐츠(120)의 엘리먼트들을 예시하는 개념 다이어그램이다. 멀티미디어 콘텐츠(120)는 멀티미디어 콘텐츠(64)(도 1), 또는 저장 매체(62)에 저장된 다른 멀티미디어 콘텐츠에 대응할 수 있다. 도 3의 예에서, 멀티미디어 콘텐츠(120)는 미디어 프리젠테이션 디스크립션(MPD; media presentation description)(122) 및 복수의 표현들(124A-124N)(표현들(124))을 포함한다. 표현(124A)이 선택적인 헤더 데이터(126) 및 세그먼트들(128A-128N)(세그먼트들(128))을 포함하는 반면에, 표현(124N)은 선택적인 헤더 데이터(130) 및 세그먼트들(132A-132N)(세그먼트들(132))을 포함한다. 문자 N은 편의상 표현들(124) 각각에서 마지막 영화 프래그먼트를 표기하기 위해 사용된다. 일부 예들에서, 표현들(124) 사이에 상이한 개수들의 영화 프래그먼트들이 있을 수 있다.
[0080] MPD(122)는 표현들(124)과 별개의 데이터 구조를 포함할 수 있다. MPD(122)는 도 1의 매니페스트 파일(66)에 대응할 수 있다. 마찬가지로, 표현들(124)은 도 1의 표현들(68)에 대응할 수 있다. 일반적으로, MPD(122)는, 표현들(124)의 특성들, 이를테면, 코딩 및 렌더링 특성들, 적응 세트들, MPD(122)에 대응하는 프로파일, 텍스트 타입 정보, 카메라 앵글 정보, 등급 정보, 트릭 모드 정보(예컨대, 시간적 서브-시퀀스들을 포함하는 표현들을 표시하는 정보), 및/또는 (예컨대, 재생 동안 미디어 콘텐츠 안으로의 타겟 광고 삽입을 위한) 원격 기간들을 리트리빙하기 위한 정보를 일반적으로 설명하는 데이터를 포함할 수 있다.
[0081] 헤더 데이터(126)는, 존재하는 경우, 세그먼트들(128)의 특성들, 예컨대, 랜덤 액세스 포인트(RAP; random access point)들(SAP(stream access point)들로 또한 지칭됨)의 시간적 위치들을 설명할 수 있으며, 세그먼트들(128)의 특성들은 랜덤 액세스 포인트들, 세그먼트들(128) 내에서 랜덤 액세스 포인트들에 대한 바이트 오프셋들, 세그먼트들(128)의 URL(uniform resource locator)들 또는 URI들, 또는 세그먼트들(128)의 다른 양상들을 포함한다. 헤더 데이터(130)는, 존재하는 경우, 세그먼트들(132)에 대한 유사한 특성들을 설명할 수 있다. 부가적으로 또는 대안적으로, 그러한 특성들은 MPD(122) 내에 완전히 포함될 수 있다.
[0082] 세그먼트들(128, 124)은 하나 또는 그 초과의 코딩된 비디오 샘플들을 포함하며, 이 하나 또는 그 초과의 코딩된 비디오 샘플들 각각은 비디오 데이터의 프레임들 또는 슬라이스들을 포함할 수 있다. 세그먼트들(128)의 코딩된 비디오 샘플들 각각은 유사한 특성들, 예컨대, 높이, 폭, 및 대역폭 요건들을 가질 수 있다. 그러한 특성들은 MPD(122)의 데이터(비록 그러한 데이터가 도 3의 예에서 예시되지 않지만)에 의해 설명될 수 있다. MPD(122)는 3GPP 규격에 의해 설명된 특성들을 포함할 수 있으며, 시그널링되는 정보 중 임의의 정보 또는 정보 전부의 추가가 본 개시내용에서 설명된다.
[0083] 세그먼트들(128, 132) 각각은 고유한 URL(uniform resource locator) 또는 URI와 연관될 수 있다. 따라서, 세그먼트들(128, 132) 각각은 스트리밍 네트워크 프로토콜, 이를테면, DASH를 사용하여 독립적으로 리트리빙가능할 수 있다. 이러한 방식으로, 목적지 디바이스, 이를테면, 클라이언트 디바이스(40)는 HTTP GET 요청을 사용하여 세그먼트들(128 또는 132)을 리트리빙할 수 있다. 일부 예들에서, 클라이언트 디바이스(40)는 HTTP 부분적 GET 요청들을 사용하여 세그먼트들(128 또는 132)의 특정 바이트 범위들을 리트리빙할 수 있다.
[0084] 도 4는 표현의 세그먼트, 이를테면, 도 3의 세그먼트들(114, 124) 중 하나에 대응할 수 있는 예시적인 비디오 파일(150)의 엘리먼트들을 예시하는 블록 다이어그램이다. 도 4의 예가 비디오 파일을 예시하지만, 오디오 파일 또는 다른 파일이 비디오 파일(150)의 데이터와 유사한 데이터를 포함할 수 있다는 것이 이해되어야 한다. 세그먼트들(128, 132) 각각은, 도 4의 예에서 예시된 데이터의 어레인지먼트와 실질적으로 일치하는 데이터를 포함할 수 있다. 비디오 파일(150)은 세그먼트를 캡슐화하는 것으로 언급될 수 있다. 위에서 설명된 바와 같이, ISO 베이스 미디어 파일 포맷 및 이들의 확장들에 따른 비디오 파일들은 "박스들"로 지칭되는 일련의 오브젝트들에 데이터를 저장한다. 도 4의 예에서, 비디오 파일(150)은 파일 타입(FTYP) 박스(152), 영화(MOOV) 박스(154), 세그먼트 인덱스(sidx) 박스들(162), 영화 프래그먼트(MOOF) 박스들(164), 및 영화 프래그먼트 랜덤 액세스(MFRA) 박스(166)를 포함한다. 도 4가 비디오 파일의 예를 표현하지만, 다른 미디어 파일들이, ISO 베이스 미디어 파일 포맷 및 이들의 확장들에 따라 비디오 파일(150)의 데이터와 유사하게 구조화되는 다른 타입들의 미디어 데이터(예컨대, 오디오 데이터, 타임드 텍스트 데이터 등)를 포함할 수 있다는 것이 이해되어야 한다.
[0085] 파일 타입(FTYP) 박스(152)는 일반적으로, 비디오 파일(150)에 대한 파일 타입을 설명한다. 파일 타입 박스(152)는 비디오 파일(150)에 대한 최선의 사용을 설명하는 규격을 식별하는 데이터를 포함할 수 있다. 대안적으로, 파일 타입 박스(152)는 MOOV 박스(154), 영화 프래그먼트 박스들(164), 및/또는 MFRA 박스(166) 전에 배치될 수 있다.
[0086] 일부 예들에서, 세그먼트, 이를테면, 비디오 파일(150)은 FTYP 박스(152) 전에 MPD 업데이트 박스(미도시)를 포함할 수 있다. MPD 업데이트 박스는, 비디오 파일(150)을 포함하는 표현에 대응하는 MPD가 업데이팅되어야 한다는 것을 표시하는 정보를, 이 MPD를 업데이팅하기 위한 정보와 함께 포함할 수 있다. 예컨대, MPD 업데이트 박스는 MPD를 업데이팅하기 위해 사용될 자원에 대한 URI 또는 URL을 제공할 수 있다. 다른 예로서, MPD 업데이트 박스는 MPD를 업데이팅하기 위한 데이터를 포함할 수 있다. 일부 예들에서, MPD 업데이트 박스는 비디오 파일(150)의 세그먼트 타입(STYP) 박스(미도시)의 바로 뒤를 이을 수 있으며, 여기서, STYP 박스는 비디오 파일(150)에 대한 세그먼트 타입을 정의할 수 있다. 아래에서 더욱 상세히 논의된 도 7은 MPD 업데이트 박스에 대한 추가적인 정보를 제공한다.
[0087] 도 4의 예에서, MOOV 박스(154)는 영화 헤더(MVHD) 박스(156), 트랙(TRAK) 박스(158), 및 하나 또는 그 초과의 영화 연장부들(MVEX) 박스들(160)을 포함한다. 일반적으로, MVHD 박스(156)는 비디오 파일(150)의 일반적인 특성들을 설명할 수 있다. 예컨대, MVHD 박스(156)는, 비디오 파일(150)이 언제 처음 생성되었는지, 비디오 파일(150)이 언제 마지막으로 수정되었는지, 비디오 파일(150)에 대한 타임스케일, 및 비디오 파일(150)에 대한 재생 지속기간을 설명하는 데이터, 또는 비디오 파일(150)을 일반적으로 설명하는 다른 데이터를 포함할 수 있다.
[0088] TRAK 박스(158)는 비디오 파일(150)의 트랙에 대한 데이터를 포함할 수 있다. TRAK 박스(158)는, TRAK 박스(158)에 대응하는 트랙의 특성들을 설명하는 트랙 헤더(TKHD) 박스를 포함할 수 있다. 일부 예들에서, TRAK 박스(158)가 코딩된 비디오 픽처들을 포함할 수 있는 반면에, 다른 예들에서, 트랙의 코딩된 비디오 픽처들은 영화 프래그먼트들(164)에 포함할 수 있으며, 영화 프래그먼트들(164)은 TRAK 박스(158) 및/또는 sidx 박스들(162)의 데이터에 의해 참조될 수 있다.
[0089] 일부 예들에서, 비디오 파일(150)은 하나 초과의 트랙을 포함할 수 있다. 그에 따라서, MOOV 박스(154)는 비디오 파일(150) 내의 트랙들의 개수와 동일한 개수의 TRAK 박스들을 포함할 수 있다. TRAK 박스(158)는 비디오 파일(150)의 대응하는 트랙의 특성들을 설명할 수 있다. 예컨대, TRAK 박스(158)는 대응하는 트랙에 대한 시간 및/또는 공간 정보를 설명할 수 있다. 캡슐화 유닛(30)(도 3)이 비디오 파일, 이를테면, 비디오 파일(150)에 파라미터 세트 트랙을 포함할 때, MOOV 박스(154)의 TRAK 박스(158)와 유사한 TRAK 박스가 파라미터 세트 트랙의 특성들을 설명할 수 있다. 캡슐화 유닛(30)은, 파라미터 세트 트랙을 설명하는 TRAK 박스 내에서, 파라미터 세트 트랙에서의 시퀀스 레벨 SEI 메시지들의 존재를 시그널링할 수 있다.
[0090] MVEX 박스들(160)은, 있다면, MOOV 박스(154) 내에 포함된 비디오 데이터 외에도, 예컨대, 비디오 파일(150)이 영화 프래그먼트들(164)을 포함한다는 것을 시그널링하기 위해, 대응하는 영화 프래그먼트들(164)의 특성들을 설명할 수 있다. 비디오 데이터를 스트리밍하는 콘텍스트(context)에서, 코딩된 비디오 픽처들은 MOOV 박스(154)에 포함되는 것이 아니라 영화 프래그먼트들(164)에 포함될 수 있다. 그에 따라서, 모든 코딩된 비디오 샘플들이 MOOV 박스(154)에 포함되는 것이 아니라 영화 프래그먼트들(164)에 포함될 수 있다.
[0091] MOOV 박스(154)는 비디오 파일(150) 내의 영화 프래그먼트들(164)의 개수와 동일한 개수의 MVEX 박스들(160)을 포함할 수 있다. MVEX 박스들(160) 각각은 영화 프래그먼트들(164) 중 대응하는 영화 프래그먼트의 특성들을 설명할 수 있다. 예컨대, 각각의 MVEX 박스는, 영화 프래그먼트들(164) 중 대응하는 영화 프래그먼트에 대한 시간 지속기간을 설명하는 영화 연장부 헤더 박스(MEHD) 박스를 포함할 수 있다.
[0092] 위에서 주목된 바와 같이, 캡슐화 유닛(30)은, 실제 코딩된 비디오 데이터를 포함하지 않는 비디오 샘플에 시퀀스 데이터 세트를 저장할 수 있다. 비디오 샘플은 일반적으로, 특정 시간 인스턴스에서 코딩된 픽처의 표현인 액세스 유닛에 대응할 수 있다. AVC의 콘텍스트에서, 코딩된 픽처는, 액세스 유닛의 픽셀들 전부를 구성하기 위한 정보를 포함하는 하나 또는 그 초과의 VCL NAL 유닛들, 및 다른 연관된 비-VCL NAL 유닛들, 이를테면, SEI 메시지들을 포함한다. 그에 따라서, 캡슐화 유닛(30)은 시퀀스 레벨 SEI 메시지들을 포함할 수 있는 시퀀스 데이터 세트를 영화 프래그먼트들(164) 중 하나에 포함시킬 수 있다. 캡슐화 유닛(30)은 추가로, 영화 프래그먼트들(164) 중 하나에 대응하는 MVEX 박스들(160) 중 하나 내에서, 시퀀스 데이터 세트 및/또는 시퀀스 레벨 SEI 메시지들의 존재가 영화 프래그먼트들(164) 중 하나에 존재하는 것으로서 시그널링할 수 있다.
[0093] SIDX 박스들(162)은 비디오 파일(150)의 선택적인 엘리먼트들이다. 즉, 3GPP 파일 포맷 또는 다른 그러한 파일 포맷들을 준수하는 비디오 파일들이 반드시 SIDX 박스들(162)을 포함하는 것은 아니다. 3GPP 파일 포맷의 예에 따라, 세그먼트(예컨대, 비디오 파일(150) 내에 포함된 세그먼트)의 서브-세그먼트를 식별하기 위해 SIDX 박스가 사용될 수 있다. 3GPP 파일 포맷은, "대응하는 미디어 데이터 박스(들) 그리고 영화 프래그먼트 박스에 의해 참조되는 데이터를 포함하는 미디어 데이터 박스를 갖는, 하나 또는 그 초과의 연속적인 영화 프래그먼트 박스들의 자족적인 세트"가 그 영화 프래그먼트 박스의 뒤를 이으며 동일한 트랙에 관한 정보를 포함하는 다음 차례의 영화 프래그먼트 박스에 선행해야 한다고 서브-세그먼트를 정의한다. 또한, 3GPP 파일 포맷은, SIDX 박스가 "이 박스에 의해 문서화된 (서브)세그먼트의 서브세그먼트들에 대한 참조들의 시퀀스를 포함한다. 참조되는 서브세그먼트들은 프리젠테이션 시간이 인접한다. 유사하게, 세그먼트 인덱스 박스에 의해 참조되는 바이트들은 세그먼트 내에서 항상 인접한다. 참조되는 사이즈는 참조되는 자료 내의 바이트들의 개수의 카운트를 제공한다"는 것을 표시한다.
[0094] SIDX 박스들(162)은 일반적으로, 비디오 파일(150)에 포함된 세그먼트의 하나 또는 그 초과의 서브-세그먼트들을 표현하는 정보를 제공한다. 예컨대, 그러한 정보는, 서브-세그먼트들이 시작하고 그리고/또는 종료하는 재생 시간들, 서브-세그먼트들에 대한 바이트 오프셋들, 서브-세그먼트들이 SAP(stream access point)를 포함하는지(예컨대, 이 SAP로 시작하는지) 여부, SAP에 대한 타입(예컨대, SAP가 IDR(instantaneous decoder refresh) 픽처인지, CRA(clean random access) 픽처인지, BLA(broken link access) 픽처인지 등), 서브-세그먼트에서 (재생 시간 및/또는 바이트 오프셋 측면에서의) SAP의 포지션 등을 포함할 수 있다.
[0095] 영화 프래그먼트들(164)은 하나 또는 그 초과의 코딩된 비디오 픽처들을 포함할 수 있다. 일부 예들에서, 영화 프래그먼트들(164)은 하나 또는 그 초과의 GOP(group of pictures)들을 포함할 수 있으며, 이 하나 또는 그 초과의 GOP들 각각은 다수의 코딩된 비디오 픽처들, 예컨대, 프레임들 또는 픽처들을 포함할 수 있다. 그 외에도, 위에서 설명된 바와 같이, 영화 프래그먼트들(164)은 일부 예들에서 시퀀스 데이터 세트들을 포함할 수 있다. 영화 프래그먼트들(164) 각각은 영화 프래그먼트 헤더 박스(MFHD)(도 4에는 미도시)를 포함할 수 있다. MFHD 박스는 대응하는 영화 프래그먼트의 특성들, 이를테면, 이 영화 프래그먼트에 대한 시퀀스 넘버를 설명할 수 있다. 영화 프래그먼트들(164)은 비디오 파일(150)에 시퀀스 넘버의 순서로 포함될 수 있다.
[0096] MFRA 박스(166)는 비디오 파일(150)의 영화 프래그먼트들(164) 내의 랜덤 액세스 포인트들을 설명할 수 있다. 이는 트릭 모드들을 수행하는 것, 이를테면, 비디오 파일(150)에 의해 캡슐화된 세그먼트 내의 특정 시간적 위치들(즉, 재생 시간들)을 찾기를 수행하는 것을 보조할 수 있다. MFRA 박스(166)는 일반적으로 선택적이며, 일부 예들에서, 비디오 파일들에 포함될 필요가 없다. 마찬가지로, 클라이언트 디바이스, 이를테면, 클라이언트 디바이스(40)가 반드시 비디오 파일(150)의 비디오 데이터를 정확하게 디코딩 및 디스플레이하기 위해 MFRA 박스(166)를 참조할 필요는 없다. MFRA 박스(166)는 비디오 파일(150)의 트랙들의 개수와 동일하거나 또는 일부 예들에서 비디오 파일(150)의 미디어 트랙들(예컨대, 비-힌트 트랙들)의 개수와 동일한 개수의 TFRA(track fragment random access) 박스들(미도시)을 포함할 수 있다.
[0097] 일부 예들에서, 영화 프래그먼트들(164)은 하나 또는 그 초과의 SAP(stream access point)들, 이를테면, IDR 픽처들을 포함할 수 있다. 마찬가지로, MFRA 박스(166)는 SAP들의 비디오 파일(150) 내의 위치들의 표시들을 제공할 수 있다. 그에 따라서, 비디오 파일(150)의 시간적 서브-시퀀스가 비디오 파일(150)의 SAP들로 형성될 수 있다. 시간적 서브-시퀀스는 또한, 다른 픽처들, 이를테면, SAP들에 따라 좌우되는 B-프레임들 및/또는 P-프레임들을 포함할 수 있다. 시간적 서브-시퀀스의 프레임들 및/또는 슬라이스들은, 서브-시퀀스의 다른 프레임들/슬라이스들에 따라 좌우되는 시간적 서브-시퀀스의 프레임들/슬라이스들이 적절하게 디코딩될 수 있도록 세그먼트들 내에서 배열될 수 있다. 예컨대, 데이터의 계층적 어레인지먼트에서, 다른 데이터에 대한 예측에 사용된 데이터는 또한, 시간적 서브-시퀀스에 포함될 수 있다.
[0098] 도 5는 예시적인 브로드캐스트 DASH 인프라스트럭처 시스템(180)을 예시하는 블록 다이어그램이다. 시스템(180)은 시스템 관리 유닛(198), GOP 지속기간 미디어 버퍼(182), 미디어 인코더(184), 세그먼터(186), 전송기(188), 스케줄러(190), 프레이머(192), 및 여진기/증폭기(194)를 포함한다. 시스템(180) 및 그에 따른 시스템(180)의 이들 컴포넌트들 각각은 소스 디바이스, 이를테면, 도 1의 서버 디바이스(60) 또는 도 1의 콘텐츠 준비 디바이스(20)에 포함될 수 있다. 다시, 서버 디바이스 및 콘텐츠 준비 디바이스는 단일 디바이스에 기능적으로 통합될 수 있다.
[0099] 시스템(180)의 예에서, GOP 지속기간 미디어 버퍼(182)는 인코딩될 미디어 데이터를 수신 및 버퍼링한다. 미디어 인코더(184)(실제로, 복수의 미디어 인코더들, 이를테면, 도 1의 오디오 인코더(26) 및 도 1의 비디오 인코더(28)를 표현할 수 있음)는 미디어 데이터(예컨대, 오디오 데이터, 비디오 데이터, 및/또는 타임드 텍스트 데이터)를 인코딩하고, 미디어 데이터를 NAL(network abstraction layer) 유닛들로 캡슐화하며, 인코딩된 미디어 데이터를 NAL 유닛 형태(202)로 세그먼터(186)에 제공한다. 그 외에도, 미디어 인코더(184)는 명시적 MDE 식별자들(200)을 표현하는 데이터를 세그먼터(186)에 전송한다.
[0100] 세그먼터(186)는 수신된 NAL 유닛들을 개개의 세그먼트들로 캡슐화한다. 따라서, 일반적으로, 세그먼터(186)는 세그먼트들 내의 MDE들의 위치들을 표시하는 명시적 정보를 제공하지 않는다. 그러나, 효과적으로, 세그먼터(186)는, 세그먼트들 내의 바이트 범위들의 형태(206)로, MDE들을 전송기(188)에 제공한다. 더욱이, 세그먼터(186)는 또한, MDE들에 대한 송신 시간 요건들(204)을 결정하고, 송신 시간 요건들(204)을 표현하는 데이터를 전송기(188)에 전송한다.
[0101] 전송기(188)는 본 개시내용의 기법들에 따른 파일-기반 프로토콜 전송 유닛의 예를 표현한다. 이 예에서, 전송기(188)는 ROUTE에 따라, 수신된 세그먼트들의 데이터를 전송한다. 다른 예들에서, 전송기(188)는 FLUTE 또는 다른 그러한 파일-기반 프로토콜들에 따라, 수신된 세그먼트들의 데이터를 전송할 수 있다. 본 개시내용의 기법들에 따라, 전송기(188)는 MDE 데이터(네트워크-기반 데이터 유닛들, 예컨대, IP, UDP, ROUTE, ALP 등 내에 캡슐화됨)(210) 및 송신 시간 요건들(208) 둘 모두를 스케줄러(190) 및 프레이머(192)에 전송한다. 프레이머(192)는 스케줄러(190)에 의해 결정된 스케줄 데이터에 따라 여진기/증폭기(194)로의 네트워크 데이터를 캡슐화하는 네트워크 프레임들을 형성하며, 여기서, 네트워크 프레임들은 물리 계층 DDE(data delivery event)들(212)의 베이스밴드 디스크립션을 더 포함한다. 여진기/증폭기(194)는 예컨대 물리 네트워크 계층을 통해, 이를테면, ATSC OTA 브로드캐스트, 이더넷 등을 통해 데이터를 능동적으로 송신한다.
[0102] 브로드캐스트 시스템, 이를테면, ATSC(Advanced Television Systems Committee) 시스템은, ROUTE 또는 미디어 인식 바이트 범위들을 포함하는 다른 오브젝트 전달 프로토콜(들) 내에서 MDE들로 구현된 미디어 인식 바이트 범위들의 사용을 지원할 수 있다. 시스템에 대한 개별적인 MDE들의 식별(정의)은 요구되는 행동일 수 있으며, 따라서 시스템은 MDE들을 전달할 수 있다. 즉, 시스템은, MDE(또는 유사한 데이터 오브젝트)를 패키징하여 적절한 시간 라벨링과 함께 스케줄러에 전송하기 위하여, 어떤 미디어 인식 바이트 범위들이 MDE를 표현하는지를 결정할 수 있어야 한다.
[0103] MDE의 예시적인 정의는, 수신 미디어 코덱에 의미 있는 미디어의 미디어 인식 바이트 범위이다. 코덱의 프레임 구조에 기인하여, MDE는 샘플이란 용어의 ISO BMMF 사용 시 다수의 샘플들일 수 있거나 또는 다수의 샘플들이 아닐 수 있다. 다수의 오디오 샘플들을 포함하는, HE-AAC(High-Efficiency Advanced Audio Coding)(ISO/IEC JTC1/SC29/WG11/N7016(2005년 1월 11일))의 오디오 프레임은 그 자체가 ISO BMFF 콘텍스트에서는 단일 샘플이다. HEVC 콘텍스트에서의 ISO BMFF 샘플은 비디오 데이터의 단일 프레임일 수 있다. MDE는 단일 또는 다수의 ISO BMFF 샘플들을 포함할 수 있다. 이 가능성은 연속적인 비디오 프레임들 사이의 상호의존에 기인하여 존재한다. 가능한 최소 MDE가 있지만, 편의 또는 다른 목적들을 위해, 이들 원자 MDE들, 즉, 가능한 최소 MDE들은 더 큰 MDE로 애그리게이팅될(aggregated) 수 있다. 일반적인 용어들로, MDE들은 겹치지 않는다.
[0104] MDE들을 처음으로 인식할 수 있는, 도 5의 시스템(180)의 엘리먼트들은 미디어 인코더(184), 세그먼터(186), 및 전송기(188)이다. 도 5의 기능 엔티티들은 개념적이다. 캐스케이드의 이 논리적 구성은, 시스템을 고려할 때 편의를 위한 것이며, 요구되지는 않는다. 기능들은 단일 엔티티에 기능적으로 통합되거나, 또는 가능하게는, 상이한 방식으로 추가적인 또는 대안적인 유닛들 사이에서 세분될 수 있다. 논리적 MDE 형성 위치는 미디어 인코더(184), 세그먼터(186), 또는 전송기(188)의 입력 섹션의 범위 내에 있다.
[0105] MDE의 범위 및 정의는 처리되고 있는 미디어 타입에 따라 정의된다. 예컨대, 오디오는 별개의 세그먼트들로 패키징되거나, 또는 세그먼트들, 즉, ISO BMFF 파일들/오브젝트들 내에 멀티플렉싱될 수 있다. 예컨대, MPEG DASH(INTERNATIONAL STANDARD ISO/IEC 23009-1 Second edition 2014-05-01 Information Technology-Dynamic Adaptive Streaming Over HTTP (DASH) Part 1: Media Presentation Description and Segment Formats)는 멀티플렉싱된 세그먼트와 멀티플렉싱되지 않은 세그먼트 둘 모두를 정의한다. 이는 단지 구성의 일 양상이다. 도 5에서 위에서 도시된 바와 같이, 다양한 기능들에 구성을 공급하는 시스템 구성 기능이 있을 수 있다.
[0106] 잠재적으로 구성되는 일부 양상들의 예들은 다음을 포함한다:
Figure pct00001
DASH의 경우
o 세그먼트 지속기간
o 세그먼트 컴포지션, 즉, 특정 미디어 오브젝트에 포함된 미디어 타입들
o 세그먼트 타입 케이던스, 예컨대, 특정 미디어 세그먼트는 SAP(Stream Access Point)을 포함하거나 또는 포함하지 않음
Figure pct00002
비디오 인코더의 경우
o GoP 지속기간(특정 코덱 네이밍은 그러한 구조들에 대해 변함)
o GoP 타입들, 예컨대, 개방 타입 또는 폐쇄 타입
o 프레임 타입 케이던스, 예컨대, I, B, B, P, B, B, P...
o 프레임 레이트, 해상도, 프로그레시브(progressive) 대 인터레이스(interlace) 등
o 예컨대 패턴 매칭을 통한 또는 허용된 미디어 구조들로부터의 MDE 경계들
Figure pct00003
오디오 프레임은 원자 MDE 및 ISO BMFF 샘플임
Figure pct00004
개별적인 I(IDR) 프레임은 원자 MDE임
Figure pct00005
비디오 프레임들의 그룹들은 도 3에서 묘사된 원자 MDE들임
o 그러한 결정은 인코더에서 이루어지거나 또는 알려지거나, 또는 세그먼터에 의해 결정될 수 있음
Figure pct00006
오디오 인코더의 경우
o 샘플 레이트
o 코딩 툴들의 선택
o 특정된 코덱에 따른 오디오 프레임 구성의 세부사항들
[0107] 이들 양상들이 정적 구성들인 한, 연관된 MDE 정의들은 정적 정의들로서 제공될 수 있으며, 즉, 인코더의 구성은 세그먼터 및/또는 전송기에 알려지는데, 그 이유는 그것이 세팅들의 정적으로 구성된 세트이기 때문이다. 비디오가 비디오 프레임 타입들의 정의된 단일 케이던스를 실행한다고 가정하면, MDE 경계들은 구성에 의해 정의될 수 있다. 특정 비디오 케이던스 및 그것의 원자 MDE들의 예를 위해, 아래의 도 7을 참조하라. 이 도면이 비디오 프레임들의 디스플레이 순서를 묘사한다는 것이 주목되어야 한다.
[0108] 도 6은 MDE들의 예시적인 하이 레벨 컴포지션을 예시하는 개념 다이어그램이다.
[0109] 도 7은 예시적인 프레임 타입 케이던스 및 대응하는 정의된 MDE들을 예시하는 개념 다이어그램이다. 특히, 도 7은 비디오 프레임들(250-296)을 예시한다. 다양한 비디오 프레임들은, 프레임들이 인트라-예측(I)인지, 단방향성 인터-예측(P)인지, 또는 양방향성 인터-예측(B)인지를 표현하기 위해, I, P, 또는 B로서 라벨링된다.
[0110] 도 7에서 묘사된 비디오 프레임들은 디스플레이 순서로 예시된다. 도면이 전달 순서로 그려진다면, 프레임 그룹핑들이, 비디오 인코더로부터의 소스 스트림에서 그리고 ISO BMFF 컨테이너, 즉, DASH의 경우 미디어 세그먼트 내에서, 인접한 바이트 범위들로서 보일 것이다.
[0111] 그러한 정의된 케이던스에 대한 MDE 경계들의 식별은, 예컨대 MDE 1이 될 GoP의 제1의 N 개의 비디오 프레임들, MDE 2가 될 다음 차례의 M 개의 프레임들 등을 정의하는 표들을 통해, 또는 코덱 구문론에서 인식되는, 프레임 타입들의 특정 케이던스, 예컨대 패턴 매칭을 통해 달성될 수 있다. 프레임 타입들의 케이던스가 세그먼트별로 정적이면, 표 방법의 사용은 간단하며 편리하다. 이는 잠재적으로, MDE마다 그리고 코덱마다 고정된 개수의 오디오 코덱 프레임들이 있을 수 있는 오디오 미디어 타입에 대해, 편리한 방법이다. (이는 또한, 사소한 규칙의 예이다.) 패턴 또는 규칙들의 명시적 디스크립션을 포함할 수 있는 이들 표들은 XML로서 표현될 수 있다. 도 7은, 일부 원자 MDE들이 애그리게이팅되어 더 큰 MDE를 형성할 수 있다는 것을 도시한다. 이는 규칙 또는 패턴 매칭 또는 이들의 결합을 통해 결정될 수 있다. 이들 방법들은 미디어 인코더 내에서 구현되어 명시적 디스크립션으로서 세그먼터 및 전송기, 예컨대 ROUTE 또는 MMT에 순방향으로 전달될 수 있다.
[0112] 위에서 간략히 언급된 바와 같이, 구성 표는 규칙에 따라 형성될 수 있다. 그러한 규칙의 로직은 MDE(미디어 인식 바이트 범위) 식별 기능의 동작이 적응식이 되게 할 수 있다. 이는 예컨대, 세그먼트(ISO BMFF 오브젝트)가 멀티플렉싱되면, 즉, 다수의 미디어 타입들을 포함하면, 편리하다. 세그먼터의 MDE 식별 기능은 예컨대 폐쇄 자막들, 오디오, 및 비디오를 파싱할 수 있다. 추가로, 예컨대 비디오 프레임 타입들의 케이던스는 적응식일 수 있다.
[0113] MDE 관점으로부터 비디오의 적응식 양상들의 예들은 다음을 포함한다:
Figure pct00007
세그먼트들의 시퀀스에서 개방 및 폐쇄 GoP들을 가능하게 하기 위한 비디오 프레임 타입 케이던스
Figure pct00008
세그먼트별 또는 기간별 비디오 프레임 카운트 및 타입 케이던스
o 예컨대, 24 fps의 광고 방송(commercial)들 및 30 fps의 콘텐츠가 산재됨
o 프레임 레이트의 그러한 변화는, 비디오 프레임 타입 케이던스 변화 그리고 결과적으로 MDE 케이던스를 유발할 수 있음.
[0114] 세그먼트들 내에서, 즉, 바이트 범위 인식 프로토콜, 예컨대 ROUTE 또는 MMT를 지지하여, 연관된 미디어 코덱에 콘텍스트적으로(contextually) 관련 있는 미디어 인식 바이트 범위들 내에서, MDE 식별을 지원하기 위한 기법들이 설명된다.
[0115] 그러한 MDE 정의, 즉, 미디어 코덱 인식 바이트 범위들을 지원하기 위한 기법들의 예들은 다음을 포함할 수 있다:
Figure pct00009
다음과 같은, 특정 시퀀스들을 설명하는 표 형식의 방법들:
o 비디오 프레임 타입
o 비디오 프레임 타입들의 시퀀스들
o 예컨대 비디오 또는 오디오 프레임들의 개수
o 설명된 구조들의 결합들
o 예컨대 비디오 프레임 타입들의 특정 시퀀스의 패턴 매칭
o 이들 방법들은 미디어 인코더, 세그먼터 또는 전송기에 구현됨
Figure pct00010
규칙 기반 MDE 기반 검출
o 예컨대, HEVC 코덱의 특정 구성은 프레임 타입 시퀀스들의 이들 논리적 구성들을 허용할 수 있음:
Figure pct00011
프레임 시퀀스(MDE)의 시작은 이러한 조건들의 제1 세트를 충족시킴.
Figure pct00012
프레임 시퀀스(MDE)의 종료는 조건들의 제2 세트를 충족시킴.
Figure pct00013
프레임 타입들의 시퀀스는 조건들의 제3 세트를 충족시킴.
Figure pct00014
설명된 패턴 방법과 규칙 방법은 결합될 수 있는데, 예컨대:
o 이 패턴이 발견됨
o 이후, 이 규칙은 적용되어야 함
Figure pct00015
미디어 인코더는 특정 MDE 구성들을 갖는 정의된 동작 모드들의 라이브러리를 가질 수 있음
o 미디어 인코더는 세그먼터에 전달되는 인코딩된 미디어를 이용하여 실시간으로 상기 동작 모드를 통신함
Figure pct00016
예컨대 XML 또는 파일 규칙 기반 로직 그리고 패턴 기반 로직의 별지 A 참조.
[0116] 각각의 MDE는 최초 및/또는 최후 송신 시간으로 정의될 수 있다. 이는 스케줄러의 이익을 위한 것이며, 이 스케줄러의 태스크는, 물리 계층 상의 전달 슬롯들, 예컨대, ATSC 3.0에서의 특정 FEC 프레임들에 미디어를 배정하는 것이다. 이들 최초 및 최후 속성들은 다음과 같은 상이한 양상들에 의해 제한될 수 있다:
Figure pct00017
최초 송신 시간: 이는 문자 그대로, 주어진 MDE(또는 세그먼트)의 제1 비트가 방사될 수 있는 순간임. 이 최초로 방사된 비트는 관련된 캡슐화 프로토콜 전부를 포함함.
Figure pct00018
최후 송신 시간: 이는 문자 그대로, MDE(또는 세그먼트)의 마지막 비트가 방사되어야 하는 마지막 순간임. 이 마지막 비트는 모든 관련된 캡슐화 프로토콜을 포함함.
[0117] 최초 송신 시간은 시스템 구성에 의해 제한될 수 있다. 예컨대, 물리 계층 프레임 케이던스는, ATSC 물리 계층 시간의 전체 초의 경계들(48b TAI 초, 10b msec 또는 가능하게는 다른 몇 분의 1 초)에 시작하는 프레임들을 가질 수 있다. 이 물리 계층 프레임 케이던스는 미디어 세그먼트 지속기간(들)에 직접적으로 관련될 수 있거나 또는 관련되지 않을 수 있다. 예컨대, 프로그램의 주어진 기간은, 대체 광고(ad)인 광고 이전의 전체 초의 종료 전까지, 그 전체가 전달되어야 할 것이다. 예컨대, 적어도 다음 차례의 전체 초가 시작할 때까지, 트레일링 대체 광고는 전달을 시작하지 않을 것이다. 기간 경계들로부터 떨어져 있는 시간들에 대해, 최초 송신 시간은 예컨대 이전의 전체 초에 있을 것이다.
[0118] 최후 송신 시간은 라벨링된 MDE 내에 포함된 마지막 디코딩된 미디어의 디코드 시간에 관련될 수 있다. 미디어 세그먼트 레벨 전달에 적용되는 라벨링은 공칭 DASH/세그먼트 가용성 시간 라인에 의해 결정될 수 있다. 최후 송신 시간은, 세그먼트에 대한 전달 데드라인을 충족시키는 것과 일치할 수 있다. 세그먼트의 마지막 MDE(미디어 인식 바이트 범위)에 대한 최후 송신 시간 요건은 완료된 세그먼트와 동일할 수 있다.
[0119] 도 8은 시스템 시간의 단순한 뷰를 표현하는 개념 다이어그램이다. 즉, 도 8은 시스템 시간의 최상위 레벨 뷰를 나타낸다. 이는 세그먼트 레벨 재생 또는 바이트 범위 기반 재생을 위한 경우이다. MDE 재생에 대한 하나의 차이는, 정적 수신기 지연이 세그먼트 재생에 대해서보다 현저히 더 짧을 수 있다는 것이다. 물리 계층 및 지원 프로토콜을 통해 스테이션 벽 클록 시간이 수신기에 전달될 수 있다. 동기화 후의 임의의 순간에 수신기 벽 클록은, 현재 스테이션 벽 클록 시간에서, 지배적인 송신기로부터 수신기까지, 그 때의 현재 신호 비행 시간을 뺀 것이다.
[0120] 도 9는 시간 관계를 갖게 구성되는 송신 인프라스트럭처를 표현하는 시스템(300)을 표현하는 블록 다이어그램이다. 즉, 도 9는 시간 지연들이 시스템(300)의 송신 프로세스에 어떻게 영향을 끼칠 수 있는지에 대한 개념적인 표현을 제공한다. 이 예에서, 시스템(300)은 GOP 지속기간 미디어 버퍼(306), 미디어 인코더(308), 세그먼터(310), 레이트 제어(304), 시스템 관리 유닛(302), 전송기(312), 스케줄러(314), 및 여진기/증폭기(316)를 포함한다.
[0121] 이 예에서, GoP 지속기간 미디어 버퍼(306)는 인코딩될 미가공 미디어 데이터를 저장(즉, 버퍼링)한다. 미디어 인코더(308)는 인코딩될 미디어 데이터를 GoP 지속기간 미디어 버퍼(306)로부터 리트리빙하고, 미디어 데이터를 인코딩하고, 인코딩된 미디어 데이터를 NAL 유닛 형태로 캡슐화하며, NAL 유닛들(320)을 세그먼터(310)에 전달한다. 예컨대 도 7에서 도시된 바와 같이, 인코딩된 미디어 데이터가 또한, MDE들을 포함한다는 것이 이해되어야 한다. 게다가, 위에서 설명된 바와 같이, MDE들 각각은 송신 시간 요건들, 이를테면, 최초 송신 및/또는 최후 송신 시간 요건들을 가질 수 있다.
[0122] 세그먼터(310)는 미디어 인코더(308)로부터 NAL 유닛들(320)을 수신하고, 하나 또는 그 초과의 MDE들(즉, NAL 유닛들 중 하나 또는 그 초과)을 개개의 세그먼트들에 캡슐화한다. 다시, 세그먼트들은 개개의 URL들과 연관된 독립적으로 전달가능한 파일들에 대응할 수 있으며, 여기서, URL들은 각각, 대응하는 세그먼트를 고유하게 식별할 수 있다. MDE들은 세그먼트들의 개개의 바이트 범위들에 대응할 수 있다. 그 외에도, 세그먼터(310)는 MDE들 각각에 대한 송신 시간 요건들을 결정하며, 송신 시간 요건들(322) 및 MDE들(세그먼트들의 바이트 범위들의 형태임)(324) 둘 모두를 전송기(312)에 전달할 수 있다.
[0123] 전송기(312)는 파일-기반 전달 프로토콜, 이를테면, ROUTE에 따라 동작할 수 있다. 따라서, 전송기(312)는 송신을 위해 세그먼트들(예컨대, MDE들)의 개개의 부분들을, 스케줄러(314)로의 개개의 네트워크-기반 전달 유닛들(328), 이를테면, 패킷들 또는 프레임들에 캡슐화할 수 있다. 그 외에도, 전송기(312)가 송신 시간 요건들(326)을 스케줄러(314)에 제공하여서, 스케줄러(314)는 송신 시간 요건들에 따라 네트워크-기반 전달 유닛들을 클라이언트 디바이스(도 9에는 미도시)에 전달할 수 있다. 더욱 상세하게는, 스케줄러(314)는 물리 계층 DDE(data delivery event)들(330)의 베이스밴드 디스크립션을 형성하고, 이 물리 계층 DDE들(330)의 베이스밴드 디스크립션을 여진기/증폭기(316)에 전달한다. 이후, 여진기/증폭기(316)는 데이터를 물리 계층에서 예컨대 클라이언트 디바이스에 송신한다.
[0124] 도 9는 또한, 미디어 데이터를 클라이언트 디바이스에 전송할 때 시스템(300)에 의해 도입되는 다양한 지연들을 표현한다. 예컨대, 버퍼링되고 있는 미디어 데이터와 송신을 위해 스케줄링되고 있는 미디어 데이터 사이의 시간은 분석 지속기간 지연(332)으로 지칭된다. 분석 지속기간 지연은 특히, 특정 샘플(334)에 대한 단일 전달 지연을 포함하며, 이 특정 샘플(334)에 대한 단일 패스 지연은, 도 9에서 도시된 바와 같이, 미디어 인코더(308)가 샘플을 인코딩하는 것, 그리고 샘플을 NAL 유닛에 캡슐화하는 것, 그리고 NAL 유닛을 세그먼터(310)에 제공하는 것 사이의 시간이다. 게다가, 송신을 위해 데이터를 스케줄링한 것과 데이터가 실제 송신되고 있는 것 사이의 시간은, 송신기 및 STL 지연(336)으로 지칭된다.
[0125] 미디어 데이터에 대한 시간을 정의하는 것은, 방사 시간 전에 어느 범위까지 시스템(300)의 송신 인프라스트럭처의 다양한 기능 블록들이 동작하고 있어야 하는지, 그리고 수신 후에 얼마나 오랫동안 미디어가 미디어 디코더(들)로 핸드 오프될 것인지를 고려하는 문제이다. 그에 따라서, 이 논의는 방사 전 그리고 수신 후로 분할된다. 실제 방사 시간은 왜 필수적인가? 애플리케이션, 이를테면, 개인화된 광고 삽입을 위한 소스 스트림들 사이의 잠재적인 동기 스위칭을 달성하기 위하여. 미디어의 송신의 경계를 이루는 실제 시간은 제한될 수 있다. 수신기에 전달되는 시간은, 물리 계층의 부트스트랩 특징의 방사 시간에 동기화된다. 특정 기간이 물리 계층 상에서 존재하는 시간 스팬(span)이 이해 및 제어되어야 한다. MDE 또는 미디어 세그먼트는, 이 MDE 또는 미디어 세그먼트가 방사될 수 있게 되는 시간의 범위로 라벨링되며, 따라서 실제 방출 전의 모든 프로세스는, 통상적으로 특정 블록 또는 기능과 연관된 일정한 지연만큼 시간이 오프셋된다. 도 9는 송신 인프라스트럭처 내의 시간 도메인들의 그럴듯한 조직을 묘사한다. 이 파티션은 요건은 아니며, 그것은 단지 개념적인 관점에서 볼 때 편리하다. 아래는, 일부 가능한 시간 도메인들 및 그들의 그럴듯한 지속기간들의 리스팅이다.
[0126] 송신기 및 스튜디오 송신기 링크(STL; Studio Transmitter Link) 지연(336): 이 기간이 만료되었을 때, 이들 블록들에 걸쳐 정의된 지연은, STL에 전달되기를 방금 시작한 주어진 물리 계층 프레임이 송신기에 의해 출력되기를 시작할 수 있을 만큼 충분히 길다. 이 지연은 명목상, 적어도 물리 계층 프레임 지속기간, 인터리버 지속기간, 및 SFN 분산 네트워크에서의 최장 송신 지연을 포함한다. 이 지연을 더 짧게, 예컨대, 서브프레임별로 실행하는 것이 고려될 수 있다. 서브프레임들을 지원하는 것은 잠재적으로, 스튜디오 송신기 링크 상의 스튜디오 상의 증가된 피크 레이트를 유발할 수 있는데, 즉, 스튜디오 송신기 링크는 적어도 서브프레임 지속기간 동안 물리 계층의 최대 허용 스루풋을 지속시켜야 한다. 풀(full) 프레임 구현에 대한 제한은, 풀 프레임별로 측정된 피크 허용 레이트 할당이며, 모든 활성 PLP들이 동일한 용량을 갖는다면 피크 허용 레이트 할당이 동일할 수 있지만, 이 피크 허용 레이트 할당은 서브프레임당보다 더 낮을 수 있다.
[0127] 분석 지속기간 지연(332): 스케줄러(314)의 태스크들 중 하나는, 미디어의 정의된 시간 데드라인들을 충족시키며 현재 물리 계층 PLP 정의들마다 용량 제한들을 충족시키는 방식으로, 이 미디어를 물리 계층에 배정하는 것이다. 이를 달성하기 위하여, 스케줄러(314)는 적어도, 미디어의 가치가 있는 물리 계층 프레임의 최장 지속기간을 분석해야 한다. 스케줄러(314)는 궁극적으로, 스케줄러(314)가 만료되는 물리 계층 프레임 시간마다, 인코딩된 미디어의 적어도 하나의 물리 계층 프레임 시간을 성공적으로 스케줄링하지 않으면, 실패할 수 있다. 이는 누적 태스크이다. 자신의 지속기간 미만의 미디어 시간을 갖는 물리 계층 프레임은, 더 많은 미디어 시간을 표현하는 물리 계층 프레임으로 오프셋될 수 있다.
[0128] 물리 계층 프레임의 지속기간은 최장 미디어 세그먼트의 지속기간 또는 GoP 지속기간보다 더 짧을 수 있다. 그러한 경우에 대해, 제한 경계는 적어도 최장 미디어 세그먼트 지속기간 또는 GoP 지속기간에 관련되며, GoP는 다수의 미디어 세그먼트들로 구성된다. 스케줄러(314)는 최장 지속기간 미디어 세그먼트/GoP가 성공적으로 스케줄링되도록 보장할 수 있다. 스케줄러(314)는 추가로, 미디어 초(second)마다 적어도 1 초의 인코딩된 미디어 세그먼트/GoP를 생성할 수 있다. 여기서 설명된 바와 같이, 분석 지속기간 지연(332)은 일정하지 않은데, 그 이유는 스케줄러(314)가 실제 방사 시간에서, 최후 방사 시간 - 최초 방사 시간 유연성을 갖기 때문이다.
[0129] 단일 패스 지연(334): 미디어 인코더(308) 및 세그먼터(310) 상에서 직접적으로 입력 미디어가 스트리밍된다면, 결과적인 제1 세그먼트에서 설명된 바와 같이, GoP의 제1 프레임의 입력부터 제1의 디코딩된 프레임의 디코드 시간까지, 주어진 구성에 대해 정적인 디코드 지연이 있을 것이다. 이는 개념적인 구성이다.
[0130] 이는, 미디어 인코더(308)(다수의 인코더들을 표현할 수 있음)가 미디어 세그먼트 시간마다 하나 초과의 미디어 시간의 인코딩된 콘텐츠를 생성할 가능성이 매우 높을 수 있는 경우일 수 있다. 실제 제한들은, 인코드 방식이 활용하는 "패스들"의 개수에 의해 정의될 가능성이 높다. 이 콘텍스트에서, "패스"는 미디어 인코드의 하나의 인스턴스이다. 미디어 인코더(308)가 하나의 인코드 패스에서 모든 타겟들을 충족시킬 수 있다면, 요건은, 만료되는 미디어 세그먼트 시간마다 미디어의 적어도 하나의 미디어 세그먼트 지속기간일 것이다. 제1 패스에서 원하는 데이터 사이즈를 얻는 것은 꽤 도전적이며, 따라서 스케줄러는 패스들을 2 패스 인코딩으로 제한하려고 노력할 수 있다. 2-패스 인코딩에서, 제1 패스는 인코딩되어야 하는 미디어 데이터의 복잡성에 대한 교정을 제공할 수 있으며, 제2 패스는, 물리 계층의 용량을 충족시키기 위해 제1 패스 동안 이루어진 결정들을 조정하는 데 사용될 수 있다. 초기 인코딩 패스가, 최종 원하는/요구되는 데이터 사이즈와 실질적으로 상이한 데이터 사이즈들을 야기하면, 제3 패스, 또는 데이터 레이트에 대한 다른 조정이 수행될 수 있다. 스케줄러가, 모든 캡슐화를 포함하여 물리 계층에서 전달될 실제 데이터 사이즈로 작업해야 한다는 것이 주목되어야 한다.
[0131] 미디어가 실시간으로 미디어 인코더(308)에 스트리밍되고 있으며, 이것이 다중 패스 인코딩 방식이라고 가정하면, 잠재적으로, 미디어 인코더(들)보다 빨리 실시간 스트리밍 미디어를 캡처하기 위해 요구되는 전체 GoP 지연이 있다. 수신기에서, 인코딩된 미디어가 제공되는 디코드 시간들은, 인프라스트럭처 및 수신기의 전체 지연을 반영해야 한다. 이들이 미디어 세그먼트 재생에 기반하는 것으로 예상된다. 세그먼트 레벨 재생을 위해 발생했을 것에 관련하여 MDE RAP 스타트 업 포인트로부터 MDE 시간들이 계산될 수 있다.
[0132] 도 10은 스태거링된 RAP 위치를 갖는 GOP마다 다수의 세그먼트들을 예시하는 개념 다이어그램이다. 도 10에서 예시된, 스태거링된 RAP 세그먼트 시간(즉, GoP마다 다수의 분석 지속기간들)은, 미디어의 스케줄링 전에 최소 요구 캡처 시간을 감소시키며, 그에 따라 전체 레이턴시를 낮출 수 있다. 이는 다소 제한된 스탯(stat) 멀티플렉싱 이익들을 갖는데, 그 이유는 예시된 바와 같이, 주어진 물리 계층 프레임에 대한 데이터 레이트가 단일 RAP 세그먼트 데이터 사이즈에 의해 지배되기 때문이다. 미디어의 시간 라벨링은 미디어와 함께 캡처된다.
[0133] 위에서 설명된 바와 같이, 송신 지연, 또는 방사에 대한 지연은 다음과 같이 표현될 수 있다:
분석 지연 지속기간 - 특정 샘플에 대한 단일 패스 지연 + 송신기 및 STL 지연
(프레임 시간 + 인터리버 깊이 + SFN 분산)
[0134] 도 11은 미디어 재생을 위한 디코드 시간에 대한 최소 지연을 예시하는 개념 다이어그램이다. 즉, 도 11은 미디어 세그먼트 및 MDE 재생을 위한 미디어 디코드 시간들에 영향을 끼치는 최소 지연들을 묘사한다. 미디어 세그먼트들과 MDE 재생 사이의 하나의 차이는, 세그먼트 레벨 지연에서의 MDE 재생을 위한 시작 시간이, 최장 스택 지연과 제안 프리젠테이션 지연(suggested presentation delay)의 합을 고려해야 하는 반면에, MDE 레벨 재생은, 개별적인 정적 디바이스의 실제 지연과 ROUTE 버퍼 풀니스(fullness)가 충분하도록 보장하기 위한 지연의 합이란 것이다. 총 MDE 지연 값은 세그먼트 시간 미만일 수 있다.
[0135] 총 단-대-단 세그먼트 디코드 지연은 다음과 같이 표현될 수 있다:
분석 지연 지속기간 - 특정 샘플에 대한 단일 패스 지연 + 송신기 및 STL 지연
(프레임 시간 + 인터리버 깊이 + SFN 분산) + 비행 시간 + 가용성 시작 시간에 대한 지연 + MPD@suggestedPresentationDelay + 특정 샘플에 대한 세그먼트 내의 지연
[0136] 총 단-대-단 MDE 디코드 지연은 다음과 같이 표현될 수 있다:
분석 지연 지속기간 - 특정 샘플에 대한 단일 패스 지연 + 송신기 및 STL 지연
(프레임 시간 + 인터리버 깊이 + SFN 분산) + 비행 시간 + ROUTE 또는 유사한 MMT 수신기에서의 지연 도달 + 스트리밍 바이트 범위 홀드-오프(Hold-off) 시간 + 특정 샘플에 대한 세그먼트 내의 지연
[0137] 스케줄링을 위한 시간 메타데이터 방법들의 소정의 세부사항들은 위에서 논의되었다. 스케줄링을 위한 시간 메타데이터 방법들의 추가적인 세부사항들이 여기서 논의된다. MDE(들)에 대한 시간 메타데이터의 구성은, 세그먼트 시작에 기인하여 최후 요구 송신 시간에 의해 정의되는 앵커 포인트에 기반할 수 있다. MDE에 대해 요구되는 최후 시간은, 세그먼트 시작 후에 각각의 개개의 MDE의 제1 디코드 시간 순서로 순차적(linear)일 수 있다. 최후 시간은, 세그먼트의 제1의 디코딩된 샘플에 관련하여, MDE에서 디코딩될 현재 샘플의 디코드 시간에 의해 제한될 수 있으며, 세그먼트의 제1의 디코딩된 샘플은 또한, 세그먼트의 제1의 디코딩된 MDE이다. 이 종류의 방법은 디코드 시간이 순차적이며, 이는 최후 송신 시간 메타데이터를 정의하는 것에 대한 단 1 개의 접근법이다.
[0138] 예컨대, 가능하게는, 프론트 로드(front loaded) 미디어 컴포넌트들, 이를테면, 오디오 및 자막들을 고려하는 추가적인 양상들이 있다. 이들 미디어 컴포넌트들이 비디오에 비해 작지만, 이들 없이 완전한 프리젠테이션이 재생되지 않을 수 있기 때문에, 가능하게는, 그들을 비디오 RAP보다 빨리, 그러나 가능하게는 요구되는 메타데이터 오브젝트들, 이를테면, MPD 및 IS 후에 전송하는 것이 가장 단순하다. 즉, 일반적으로, 요구되는 작은 데이터 오브젝트들 전부가 먼저 전달되도록 보장하기 위한 방법이 사용될 수 있다.
[0139] 도 12는 선택적인 물리 계층 동기화 및 관련된 메타데이터를 예시하는 개념 다이어그램이다. T-RAP에 대한 물리 계층 프레임들의 관계는, 최초 송신에 대한 관련된 양상이다. 예컨대, 공칭 물리 프레임 시작보다 빨리 이동시키기 위한 자유(freedom)의 최초 시간을 도시하는 도 12의 예를 고려하라. 이는, 모든 계층들에서 시작 메타데이터의 완전한 시퀀스가 없는 한, 채널 변화 시간에 영향을 끼칠 수 있다.
[0140] 물리 계층의 설계는, 위에서 묘사된 GoP 경계들에 따라 정확하게 동기화를 렌더링할 수 있을 수 있거나 또는 렌더링할 수 없을 수 있다. 동기화 포지션의 정의는 물리 계층의 수비학(numerology)에 의해 다른 위치들로 제한될 수 있다. 실행가능한 방법은, GoP 지속기간에 근접한 위치를 사용하는 것이다. 근접은, 예컨대, 다음 차례의 이용가능한 시간, 즉, 변환을 겪는 선행하는 트래픽의 공칭 경계 전 또는 후일 수 있다. 최소 변환에 대한 시간 스케일이 1 msec의 스케일로 있을 수 있는 반면에, 최대 변환에 대한 시간 스케일은 10 msec의 범위에 있을 수 있다.
[0141] 스케줄링 기능은 명목상, 가능하게는 앞서 묘사된 미디어 GoP 지속기간 또는 세그먼트 지속기간에 관련된 고정된 시간 블록을 고려할 수 있다. 더욱 효율적인 GoP 지속기간 방식을 위해, 미디어 전부가 스케줄링될 수 있으며, 다음 차례의 분석 간격 (N+1)에 의한 잠재적인 사용을 위해, 일부 상당한 용량이 (N)에서 이용가능한 상태로 남겨질 수 있는 것이 가능하다. 그러한 조건에서, 스케줄러는 (N)에서의 이 용량을, 다음 차례의 분석 간격 (N+1)으로부터의 미디어로 채우려고 시도할 수 있다. 이는, 최초 파라미터를 통해 더 이른 간격에서의 송신을 허용하는 시간 메타데이터에 의해 가능하게 될 수 있다. 준고정의 주기적인 프레이밍, 예컨대, ATSC 3.0의 프리앰블 및 부트스트랩으로 가능할 것보다 더 이른 미디어 서비스들의 획득을 허용하는 목적이라면, 일단 선행하는 간격의 채워진 부분이 알려지면, 물리 계층 컴포넌트는 선택적인 프레임 동기화 엘리먼트를 삽입할 수 있다.
[0142] 도 13은 미디어 데이터의 다수의 계층들에 대한 서비스 획득을 가능하게 하기 위한 잠재적인 시스템 이벤트들에 대응하는 단계들의 시퀀스를 포함하는 방법의 일 예를 묘사한다. 즉, 도 13은 획득 이벤트들의 예시적인 시퀀스를 예시하는 흐름도이다. 도 13의 방법은 본원에서 도시된 다양한 디바이스들 및 시스템들, 이를테면, 도 1의 콘텐츠 준비 디바이스(20) 및 소스 디바이스(60), 도 5의 시스템(180), 또는 도 9의 시스템(300)에 의해 수행될 수 있다. 예 그리고 설명의 목적들을 위해, 도 13의 방법은 도 5의 시스템(180)에 대해 설명된다.
[0143] 시스템(180)은, 순차적 또는 애플리케이션 기반 순차적 서비스의 시작(350)을 가능하게 하는 데이터의 시퀀스를 전달한다. 도 13은 수신기에서의 이벤트들의 통상적인 시퀀스, 그리고 관련된 메타데이터, 다른 오브젝트들, 및 서비스 수신의 통상적인 시작에 관련된 미디어 파일들의 시스템(180) 전달 순서를 묘사한다. 서비스의 이러한 시작은 통상적으로, 채널 번호 엔트리, 채널 업/다운 키 엔트리, 또는 서비스의 가이드 선택에 의해 개시된다(350). 물리 계층의 획득은 부트스트랩 또는 시스템 싱크(sync) 패턴의 수신(352)에 의해 시작된다. 추가적인 시스템 메타데이터의 획득 및 물리 계층에 관련된 시스템 메타데이터는, 프리앰블 또는 유사한 물리 계층 디스크립션 메타데이터 수신(354)을 통해 달성된다. 원하는 PLP들 또는 파형에서의 다른 물리 계층 패킷 스트림들의 위치의 식별 시, 원하는 패킷 스트림들이 수신되며, 이 원하는 패킷 스트림들은, 포함된 IP에 대한 패킷 스트림 ID들(PLP ID들) 또는 다른 유사한 패킷 스트림 ID들 또는 어드레스들의 맵(상호 참조)을 포함하는 ALP 또는 다른 유사한 캡슐화 프로토콜을 포함한다(356). 프리앰블 또는 유사한 것(354)은, 서비스 세부사항들, 이를테면, 시스템 시간, 서비스 컴포지션(SLT), 가능한 경보 정보(AEAT)를 식별하는 시스템 메타데이터(LLS)(358)의 존재를 식별하는 플래그를 포함한다. LLS(358)에서 이용가능해지는 SLT는 SLS(360) 내의 서비스마다의 세부사항들의 위치를 포함한다. 서비스를 운반하는 PLP들은 또한, 텔레비전 서비스로 하여금 브라우저 기반 인터페이스에서 동작하도록 할 수 있는 런타임 애플리케이션(362)을 포함할 수 있는 애플리케이션을 포함할 수 있다. 존재하는 경우, 이 애플리케이션은 서비스 시작 전에 또는 후에 착수할 수 있다. 일단 관련된 데이터 수신에 의해 구동되는 이들 단계들이 완료되면, IS(364) 및 관련된 미디어 세그먼트(366)의 수신 및 디코드로부터 미디어 재생이 개시될 수 있다. 이후, 순차적 또는 애플리케이션 기반 순차적 서비스가 시작할 수 있다(368).
[0144] MDE(들)의 단 대 단 디코드 지연은, 세그먼트 레벨 디코드보다 더 이른 정적 시간이다. 이 정적 오프셋은 MPD 내의 기존의 메타데이터를 통해, 또는 MDE들의 MPD 재생을 가능하게 하기 위해 메타데이터의 값을 변화시키는 MPD의 재기록을 통해 달성될 수 있다. 오프셋의 값은, 세그먼트 레벨로부터 제1 RAP가 재생할 시간에 관련하여 MDE를 통해 제1 RAP 재생으로부터 결정될 수 있다.
[0145] MDE의 스케줄링에 관련된 특징들은 다음을 포함할 수 있다:
Figure pct00019
획득 시간을 최소화하기 위한 미디어 타입들 및 메타데이터의 시간적 조직.
o 많은 더 작은 스케줄링된 오브젝트들을 통해 다른 미디어와 인터리빙하려고 노력하는 것에 관련된 단순화로서, 그리고 완전한 전달을 보장하기 위해, 더 이른 최후 시간들을 더 작은 미디어 데이터 타입들에 제공함. 이 방법은 스케줄링의 더 큰 유연성, 즉, 빽빽한 요건들을 갖는 많은 더 작은 오브젝트들보다 더 많은 시간 관용도(latitude)를 갖는 더 적은 개수의 더 큰 오브젝트들을 야기한다. 증가된 스케줄링 유연성은 일반적으로, 전체 효율 측면에서 우월한 결과를 야기한다.
o 혹시 오디오 및 필수적인 메타데이터에 대해 더욱 강건한 성능이 원해지면, 이들은 더욱 강건한 물리 계층 파이프에 함께 스케줄링될 수 있음.
o 미디어 타입들의 특정 인터리빙이 공통 전달 파이프에서 원해지는 경우, 멀티플렉싱된 세그먼트의 사용은 구현하기가 더 단순할 수 있음. 멀티플렉싱된 미디어 오브젝트 내부의 샘플들은 전달/디코드 순서로 제공된다.
Figure pct00020
선택적인 물리 계층 동기화 위치들에 의한 신속한 획득을 보존하기 위한 방법들.
o 공칭 위치, 즉, 트레일링 공칭 물리 계층 싱크 또는 관련된 공칭 분석 간격보다 빠른 T-RAP 전달의 인식.
o 모든 전달 요청들을 충족시킨, 즉, 공칭 프레임 물리 계층 기간에서 최후의 모든 데이터 요청들이 충족되었다면, 현재 스케줄링 사이클에 기반하는 적응.
Figure pct00021
알려진 전체 초 및 msec에 송신기가 시작해야 한다는 규칙을 활용하여, 물리 계층 프레임의 정확하지 않은 시간 지속기간을 미디어 GoP 정렬 분석 간격에 적응시키기 위한 수단. (싱크 모드는 정의에 의해 짝수의 초들 및 밀리세컨드들에서 항상 실행할 것이다.) 심볼 모드는, ATSC 시간의 임의의 초 및 밀리세컨드부터 시작하여 만료 시간까지 정수 개의 심볼들을 항상 유지할 것이다. (심볼 레이트들은, 구성 정보에서 특정되거나 또는 구성 정보로부터 결정된 미리 정의된 값들 사이에서 변화될 수 있다.)
o 분석 간격에 관련하여 시간 트레일링 공칭 포지션에서 가장 근접한 이용가능한 심볼 위치로의 프레임 싱크의 배정.
o 심볼 리딩(leading) 공칭 분석 간격 포지션에서 가장 근접한 이용가능한 위치로의 프레임 싱크의 배정.
o 정의된 분석 간격에 관련된 임의의 다른 규칙 기반 물리 계층 싱크 기반 방식.
o 미디어 GoP 또는 유사한 구조에 링크되는 정의된 분석 간격.
Figure pct00022
GoP들이 아니라 세그먼트 지속기간들에 기반하는 분석 간격들에 기반하는 가능한 저 레이턴시 방법.
o RAP 세그먼트들에 기반하는 일차 레이트 관리.
o 실패(failed) PSNR 또는 다른 품질 메트릭을 보상하기 위한 트레일링 비 RAP 세그먼트들의 조정.
[0146] 본 개시내용은 일반적으로, 파일 전송 프로토콜들, 이를테면, ROUTE 또는 MMT 내에서 MDE들인 미디어 인식 바이트 범위들의 위치들을 식별하기 위해 단독으로 또는 임의의 결합으로 사용될 수 있는 다양한 기법들을 설명한다. 이들 기법들은, 규칙(들)에 의한 유효한 패턴들의 결정 또는 유효한 패턴들의 매칭 그리고 명시적 디스크립션에 기반할 수 있다. 이들 기법들은 결합될 수 있다. 결합의 순서에 대한 어떤 제한도 없다. 마찬가지로, 본 개시내용은 또한, 물리 계층 동기화를 조직화하기 위한 기법들의 논의에 대한 배경으로서 시간 양상들, 그리고 다른 전달 양상들을 설명한다. 이들 기법들은, 미디어에 관련된 분석 간격에 관련하여 가변적인 또는 부정확한 싱크 위치들을 갖는 시스템들에서의 신속한 획득을 가능하게 할 수 있다.
[0147] 도 14는 본 개시내용의 기법들에 따른 다른 예시적인 방법을 예시하는 흐름도이다. 도 14의 방법은, 파일-기반 프로토콜 전송 유닛, 이를테면, 도 5의 전송기(188) 또는 도 9의 전송기(312)에 의해 수행되는 것으로서 설명된다. 설명의 목적들을 위해, 도 14의 방법은 도 9의 전송기(312)에 대해 설명되지만, 다른 유닛들이 이 방법 또는 유사한 방법을 수행하도록 구성될 수 있다는 것이 이해되어야 한다. 위에서 논의된 바와 같이, 전송기(312)는 파일-기반 프로토콜 전송 유닛, 예컨대, ROUTE 프로토콜 또는 FLUTE 프로토콜 또는 다른 파일-기반 송신 프로토콜들에 따라 데이터를 전송하는 유닛의 예를 표현한다.
[0148] 처음에, 도 14의 예에서, 전송기(312)는 하나 또는 그 초과의 MDE들을 포함하는 하나 또는 그 초과의 세그먼트들을 수신한다(380). 예컨대, MDE들은 세그먼트들의 전달가능한 바이트 범위들에 대응할 수 있다. 이후, 전송기(312)는 MDE 위치들을 결정한다(382). 일반적으로, 전송기(312)는 MDE들의 위치들을 시그널링하는 명시적 정보를 수신하는 것이 아니라, 대신에, 본 개시내용의 기법들 중 하나 또는 그 초과를 사용하여 세그먼트들의 데이터를 프로세싱하여 MDE들의 위치들을 결정한다. 예컨대, 전송기(312)는, 위에서 논의된 바와 같이, MDE들이 어떻게 식별될 수 있는지를 정의하는 규칙들 또는 패턴 매칭 기법들을 수행할 수 있다. 그에 따라서, 전송기(312)는 패턴 매칭 기법들, 규칙들, 또는 다른 그러한 기법들을 사용하여 세그먼트들 내의 MDE들을 식별할 수 있다.
[0149] 전송기(312)는 추가로, MDE들에 대한 송신 시간 요건들을 결정할 수 있다(384). 예컨대, 전송기(312)는 세그먼트들에 대응하는 매니페스트 파일의 데이터를 분석하며, 매니페스트 파일로부터 송신 시간 요건들을 결정할 수 있다. 매니페스트 파일은, 예컨대, DASH에 따라 MPD를 포함할 수 있다. 위에서 논의된 바와 같이, 송신 시간 요건들은 MDE들 중 하나 또는 그 초과에 대한 최초 송신 시간 또는 최후 송신 시간 중 하나 또는 둘 모두를 표현할 수 있다.
[0150] 궁극적으로, 전송기(312)는 MDE들 및 이 MDE들에 대한 송신 시간 요건들을 표현하는 데이터를 물리 계층 전송 유닛, 이를테면, 스케줄러(314) 및 여진기/증폭기(316)에 제공할 수 있다(386). 이러한 방식으로, 스케줄러(314)가 송신 시간 요건들에 따라 MDE들의 송신을 스케줄링하여서, 여진기/증폭기(316)는 최초 송신 시간보다 이르지 않게 그리고/또는 최후 송신 시간보다 늦지 않게 MDE들의 데이터를 송신할 수 있다.
[0151] 이러한 방식으로, 도 14의 방법은, 소스 디바이스의 파일-기반 프로토콜 전송 유닛이, 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하는 단계 ―세그먼터는 세그먼트들을 형성하며, 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―, 미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하는 단계 ―MDE들은 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―, MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하는 단계, 및 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 송신 시간 요건들을 표현하는 데이터 및 MDE들을 물리 계층 전송 유닛에 제공하는 단계를 포함하는 방법의 예를 표현한다.
[0152] 하나 또는 그 초과의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현되면, 기능들은, 컴퓨터-판독가능 매체 상에 하나 또는 그 초과의 명령 또는 코드로서 저장되거나 이를 통해 송신되며, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 유형의 매체, 이를테면, 데이터 저장 매체에 대응하는 컴퓨터-판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체는 일반적으로, (1) 비-일시적인 유형의 컴퓨터-판독가능 저장 매체 또는 (2) 통신 매체, 이를테면, 신호 또는 반송파에 대응할 수 있다. 데이터 저장 매체는, 본 개시내용에서 설명된 기법들의 구현을 위해 명령들, 코드, 및/또는 데이터 구조들을 리트리빙하기 위해 하나 또는 그 초과의 컴퓨터들 또는 하나 또는 그 초과의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
[0153] 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터-판독가능 매체로 적절히 불린다. 예컨대, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(digital subscriber line), 또는 무선 기술들, 이를테면, 적외선, 라디오, 및 마이크로파를 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신되면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들, 이를테면, 적외선, 라디오, 및 마이크로파가 매체의 범위에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체가 연결들, 반송파들, 신호들, 또는 다른 일시적인 매체를 포함하지 않지만, 대신에, 비-일시적인 유형의 저장 매체에 관한 것임이 이해되어야 한다. 본원에서 사용된 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(CD; compact disc), 레이저 디스크(disc), 광학 디스크(disc), 디지털 다기능 디스크(DVD; digital versatile disc), 플로피 디스크(disk) 및 블루-레이 디스크(disc)를 포함하며, 여기서, 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 반면에, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기한 것들의 결합들이 또한, 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
[0154] 명령들은 하나 또는 그 초과의 프로세서들, 이를테면, 하나 또는 그 초과의 DSP(digital signal processor)들, 범용 마이크로프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable logic array)들, 또는 다른 동등한 집적 또는 이산 논리 회로에 의해 실행될 수 있다. 그에 따라서, 본원에서 사용된 바와 같이, 용어 "프로세서"는, 본원에서 설명된 기법들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수 있다. 그 외에도, 일부 양상들에서, 본원에서 설명된 기능성은, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 통합될 수 있다. 또한, 기법들은 하나 또는 그 초과의 회로들 또는 논리 엘리먼트로 완전히 구현될 수 있다.
[0155] 본 개시내용의 기법들은, 무선 핸드셋, IC(integrated circuit) 또는 IC들의 세트(예컨대, 칩셋)를 포함하는 폭넓게 다양한 디바이스들 또는 장치들로 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은, 개시된 기법들을 수행하도록 구성된 디바이스들의 기능 양상들을 강조하기 위해 본 개시내용에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은, 코덱 하드웨어 유닛으로 결합되거나, 또는 적절한 소프트웨어 및/또는 펌웨어와 함께 위에서 설명된 하나 또는 그 초과의 프로세서들을 포함하는 상호동작하는(interoperative) 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
[0156] 다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (36)

  1. 미디어 데이터를 전송하는 방법으로서,
    상기 방법은, 소스 디바이스의 파일-기반 프로토콜 전송 유닛이,
    상기 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하는 단계 ―상기 세그먼터는 상기 세그먼트들을 형성하며, 상기 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한(retrievable) 파일을 포함함―;
    미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하는 단계 ―상기 MDE들은 상기 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―;
    상기 MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, 상기 MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하는 단계; 및
    상기 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 상기 송신 시간 요건들을 표현하는 데이터 및 상기 MDE들을 상기 물리 계층 전송 유닛에 제공하는 단계
    를 포함하는,
    미디어 데이터를 전송하는 방법.
  2. 제1 항에 있어서,
    상기 MDE들의 위치들을 결정하는 단계는, 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하는 단계를 포함하는,
    미디어 데이터를 전송하는 방법.
  3. 제2 항에 있어서,
    상기 미디어 데이터는 비디오 데이터를 포함하며,
    상기 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하는 단계는,
    상기 스트림의 비디오 프레임들에 대한 케이던스(cadence)를 정의하는 데이터를 획득하는 단계 ―정의된 케이던스는 상기 비디오 프레임들에 대한 타입들이 전송되는 순서를 표현하며, 상기 비디오 프레임들에 대한 타입들은 인트라-예측(intra-predicted) 비디오 프레임들 및 인터-예측(inter-predicted) 비디오 프레임들을 포함함―; 및
    상기 MDE들이 개개의 비디오 프레임 경계들 사이에 있도록, 상기 정의된 케이던스에 기반하여, 상기 MDE들 중 적어도 일부를 결정하는 단계
    를 포함하는,
    미디어 데이터를 전송하는 방법.
  4. 제2 항에 있어서,
    상기 미디어 데이터는 오디오 데이터를 포함하며,
    상기 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하는 단계는,
    상기 MDE들 각각에 포함될, 상기 스트림의 오디오 프레임들의 고정된 개수를 결정하는 단계; 및
    상기 스트림으로부터의 상기 고정된 개수의 오디오 프레임들을 각각 포함하도록, 상기 MDE들 중 적어도 일부를 결정하는 단계
    를 포함하는,
    미디어 데이터를 전송하는 방법.
  5. 제1 항에 있어서,
    상기 MDE들의 위치들을 결정하는 단계는, 규칙들을 사용하여 상기 MDE들의 위치들을 결정하는 단계를 포함하며,
    상기 규칙들을 사용하여 상기 MDE들의 위치들을 결정하는 단계는,
    오디오 프레임들, 비디오 프레임들, 및 타임드 텍스트 인스턴스(timed text instance)들 중 하나 또는 그 초과를 정의하는 하나 또는 그 초과의 규칙들을 표현하는 데이터를 수신하는 단계;
    상기 규칙들에 기반하여, 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들을 결정하는 단계; 및
    상기 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들에 기반하여, 상기 MDE들을 결정하는 단계
    를 포함하는,
    미디어 데이터를 전송하는 방법.
  6. 제1 항에 있어서,
    상기 MDE들의 위치들을 결정하는 단계는, 상기 물리 계층 전송 유닛의 물리 계층 동기화를 위한 타이밍 정보에 기반하여, 상기 MDE들의 위치들을 결정하는 단계를 포함하는,
    미디어 데이터를 전송하는 방법.
  7. 제1 항에 있어서,
    상기 MDE들의 위치들을 결정하는 단계는, 상기 스트림 내의 재생가능한 데이터의 위치들을 표현하는 메타데이터를 포함하는 힌트 트랙을 분석하는 단계를 포함하는,
    미디어 데이터를 전송하는 방법.
  8. 제1 항에 있어서,
    상기 송신 시간 요건들을 결정하는 단계는, 상기 소스 디바이스에 대한 시스템 구성에 기반하여, 상기 MDE들 중 하나에 대한 최초 송신 시간을 결정하는 단계를 포함하는,
    미디어 데이터를 전송하는 방법.
  9. 제1 항에 있어서,
    상기 송신 시간 요건들을 결정하는 단계는, 데이터가 상기 MDE들 중 하나에 포함되는 세그먼트에 대한 세그먼트 가용성 시간에 기반하여, 상기 MDE들 중 하나에 대한 최후 송신 시간을 결정하는 단계를 포함하며, 상기 방법은, 상기 데이터의 스트림에 대한 매니페스트 파일로부터 세그먼트 가용성 시간을 결정하는 단계를 더 포함하는,
    미디어 데이터를 전송하는 방법.
  10. 미디어 데이터를 전송하기 위한 소스 디바이스로서, 상기 소스 디바이스는,
    미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 형성하도록 구성된 세그먼터 ―상기 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―;
    MDE(media delivery event)들에 대한 송신 시간 요건들에 따라, 상기 MDE들을 클라이언트 디바이스에 전달하도록 구성된 물리 계층 전송 유닛 ―상기 MDE들은 상기 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함하며, 상기 물리 계층 전송 유닛은 전달될 데이터를 수신하기 위한 이용가능한 전달 슬롯들을 갖게 구성됨―; 및
    파일-기반 프로토콜 전송 유닛
    을 포함하며,
    상기 파일-기반 프로토콜 전송 유닛은,
    상기 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하고;
    상기 미디어 데이터의 스트림 내의 상기 MDE들의 위치들을 결정하고;
    상기 MDE들이 상기 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, 상기 MDE들에 대한 송신 시간 요건들 중 하나 또는 그 초과를 결정하며; 그리고
    상기 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 상기 송신 시간 요건들을 표현하는 데이터 및 상기 MDE들을 상기 물리 계층 전송 유닛에 제공하도록
    구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  11. 제10 항에 있어서,
    상기 파일-기반 프로토콜 전송 유닛은, 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하도록 구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  12. 제11 항에 있어서,
    상기 미디어 데이터는 비디오 데이터를 포함하며,
    패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하기 위해, 상기 파일-기반 프로토콜 전송 유닛은,
    상기 스트림의 비디오 프레임들에 대한 케이던스를 정의하는 데이터를 획득하며 ―정의된 케이던스는 상기 비디오 프레임들에 대한 타입들이 전송되는 순서를 표현하며, 상기 비디오 프레임들에 대한 타입들은 인트라-예측 비디오 프레임들 및 인터-예측 비디오 프레임들을 포함함―; 그리고
    상기 MDE들이 개개의 비디오 프레임 경계들 사이에 있도록, 상기 정의된 케이던스에 기반하여, 상기 MDE들 중 적어도 일부를 결정하도록
    구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  13. 제11 항에 있어서,
    상기 미디어 데이터는 오디오 데이터를 포함하며,
    패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하기 위해, 상기 파일-기반 프로토콜 전송 유닛은,
    상기 MDE들 각각에 포함될, 상기 스트림의 오디오 프레임들의 고정된 개수를 결정하며; 그리고
    상기 스트림으로부터의 상기 고정된 개수의 오디오 프레임들을 각각 포함하도록, 상기 MDE들 중 적어도 일부를 결정하도록
    구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  14. 제10 항에 있어서,
    상기 파일-기반 프로토콜 전송 유닛은, 상기 MDE들의 위치들을 결정하기 위해 규칙들을 사용하도록 구성되며,
    상기 규칙들을 사용하기 위해, 상기 파일-기반 프로토콜 전송 유닛은,
    오디오 프레임들, 비디오 프레임들, 및 타임드 텍스트 인스턴스들 중 하나 또는 그 초과를 정의하는 하나 또는 그 초과의 규칙들을 표현하는 데이터를 수신하고;
    상기 규칙들에 기반하여, 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들을 결정하며; 그리고
    상기 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들에 기반하여, 상기 MDE들을 결정하도록
    구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  15. 제10 항에 있어서,
    상기 파일-기반 프로토콜 전송 유닛은, 상기 물리 계층 전송 유닛의 물리 계층 동기화를 위한 타이밍 정보에 기반하여, 상기 MDE들의 위치들을 결정하도록 구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  16. 제10 항에 있어서,
    상기 MDE들의 위치들을 결정하기 위해, 상기 파일-기반 프로토콜 전송 유닛은, 상기 스트림 내의 재생가능한 데이터의 위치들을 표현하는 메타데이터를 포함하는 힌트 트랙을 분석하도록 구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  17. 제10 항에 있어서,
    상기 송신 시간 요건들을 결정하기 위해, 상기 파일-기반 프로토콜 전송 유닛은, 상기 소스 디바이스에 대한 시스템 구성에 기반하여, 상기 MDE들 중 하나에 대한 최초 송신 시간을 결정하도록 구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  18. 제10 항에 있어서,
    상기 송신 시간 요건들을 결정하기 위해, 상기 파일-기반 프로토콜 전송 유닛은, 데이터가 상기 MDE들 중 하나에 포함되는 세그먼트에 대한 세그먼트 가용성 시간에 기반하여, 상기 MDE들 중 하나에 대한 최후 송신 시간을 결정하도록 구성되며, 상기 파일-기반 프로토콜 전송 유닛은 추가로, 상기 데이터의 스트림에 대한 매니페스트 파일로부터 세그먼트 가용성 시간을 결정하도록 구성되는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  19. 미디어 데이터를 전송하기 위한 소스 디바이스로서, 상기 소스 디바이스는,
    미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 형성하도록 구성된 세그먼터 ―상기 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―;
    MDE(media delivery event)들에 대한 송신 시간 요건들에 따라, 상기 MDE들을 클라이언트 디바이스에 전달하도록 구성된 물리 계층 전송 유닛 ―상기 MDE들은 상기 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함하며, 상기 물리 계층 전송 유닛은 전달될 데이터를 수신하기 위한 이용가능한 전달 슬롯들을 갖게 구성됨―;
    상기 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하기 위한 수단;
    상기 미디어 데이터의 스트림 내의 상기 MDE들의 위치들을 결정하기 위한 수단;
    상기 MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, 상기 MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하기 위한 수단; 및
    상기 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 상기 송신 시간 요건들을 표현하는 데이터 및 상기 MDE들을 상기 물리 계층 전송 유닛에 제공하기 위한 수단
    을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  20. 제19 항에 있어서,
    상기 MDE들의 위치들을 결정하기 위한 수단은, 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하기 위한 수단을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  21. 제20 항에 있어서,
    상기 미디어 데이터는 비디오 데이터를 포함하며,
    상기 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하기 위한 수단은,
    상기 스트림의 비디오 프레임들에 대한 케이던스를 정의하는 데이터를 획득하기 위한 수단 ―정의된 케이던스는 상기 비디오 프레임들에 대한 타입들이 전송되는 순서를 표현하며, 상기 비디오 프레임들에 대한 타입들은 인트라-예측 비디오 프레임들 및 인터-예측 비디오 프레임들을 포함함―; 및
    상기 MDE들이 개개의 비디오 프레임 경계들 사이에 있도록, 상기 정의된 케이던스에 기반하여, 상기 MDE들 중 적어도 일부를 결정하기 위한 수단
    을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  22. 제20 항에 있어서,
    상기 미디어 데이터는 오디오 데이터를 포함하며,
    상기 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하기 위한 수단은,
    상기 MDE들 각각에 포함될, 상기 스트림의 오디오 프레임들의 고정된 개수를 결정하기 위한 수단; 및
    상기 스트림으로부터의 상기 고정된 개수의 오디오 프레임들을 각각 포함하도록, 상기 MDE들 중 적어도 일부를 결정하기 위한 수단
    을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  23. 제19 항에 있어서,
    상기 MDE들의 위치들을 결정하기 위한 수단은, 규칙들을 사용하여 상기 MDE들의 위치들을 결정하기 위한 수단을 포함하며,
    상기 규칙들을 사용하여 상기 MDE들의 위치들을 결정하기 위한 수단은,
    오디오 프레임들, 비디오 프레임들, 및 타임드 텍스트 인스턴스들 중 하나 또는 그 초과를 정의하는 하나 또는 그 초과의 규칙들을 표현하는 데이터를 수신하기 위한 수단;
    상기 규칙들에 기반하여, 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들을 결정하기 위한 수단; 및
    상기 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들에 기반하여, 상기 MDE들을 결정하기 위한 수단
    을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  24. 제19 항에 있어서,
    상기 MDE들의 위치들을 결정하기 위한 수단은, 상기 물리 계층 전송 유닛의 물리 계층 동기화를 위한 타이밍 정보에 기반하여, 상기 MDE들의 위치들을 결정하기 위한 수단을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  25. 제19 항에 있어서,
    상기 MDE들의 위치들을 결정하기 위한 수단은, 상기 스트림 내의 재생가능한 데이터의 위치들을 표현하는 메타데이터를 포함하는 힌트 트랙을 분석하기 위한 수단을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  26. 제19 항에 있어서,
    상기 송신 시간 요건들을 결정하기 위한 수단은, 상기 소스 디바이스에 대한 시스템 구성에 기반하여, 상기 MDE들 중 하나에 대한 최초 송신 시간을 결정하기 위한 수단을 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  27. 제19 항에 있어서,
    상기 송신 시간 요건들을 결정하기 위한 수단은, 데이터가 상기 MDE들 중 하나에 포함되는 세그먼트에 대한 세그먼트 가용성 시간에 기반하여, 상기 MDE들 중 하나에 대한 최후 송신 시간을 결정하기 위한 수단을 포함하며, 방법은, 상기 데이터의 스트림에 대한 매니페스트 파일로부터 세그먼트 가용성 시간을 결정하는 단계를 더 포함하는,
    미디어 데이터를 전송하기 위한 소스 디바이스.
  28. 명령들을 저장하고 있는 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 소스 디바이스의 파일-기반 프로토콜 전송 유닛으로 하여금,
    상기 소스 디바이스의 세그먼터로부터 미디어 데이터의 세그먼트들을 포함하는 데이터의 스트림을 수신하게 하고 ―상기 세그먼터는 상기 세그먼트들을 형성하며, 상기 세그먼트들 각각은 고유한 URL(uniform resource locator) 또는 URI(uniform resource identifier)와 연관된 개개의 개별적으로 리트리빙가능한 파일을 포함함―;
    미디어 데이터의 스트림 내의 MDE(media delivery event)들의 위치들을 결정하게 하고 ―상기 MDE들은 상기 세그먼트들 중 하나의 세그먼트의 적어도 일부분에 대한 데이터를 포함함―;
    상기 MDE들이 클라이언트 디바이스에 전송되어야 하는 시간들을 표현하는, 상기 MDE들에 대한 하나 또는 그 초과의 송신 시간 요건들을 결정하게 하며; 그리고
    상기 소스 디바이스의 물리 계층 전송 유닛에 대한 이용가능한 전달 슬롯들에 따라, 상기 송신 시간 요건들을 표현하는 데이터 및 상기 MDE들을 상기 물리 계층 전송 유닛에 제공하게 하는,
    컴퓨터-판독가능 저장 매체.
  29. 제28 항에 있어서,
    프로세서로 하여금 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하게 하는 명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  30. 제29 항에 있어서,
    상기 미디어 데이터는 비디오 데이터를 포함하며,
    상기 프로세서로 하여금 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금,
    상기 스트림의 비디오 프레임들에 대한 케이던스를 정의하는 데이터를 획득하게 하며 ―정의된 케이던스는 상기 비디오 프레임들에 대한 타입들이 전송되는 순서를 표현하며, 상기 비디오 프레임들에 대한 타입들은 인트라-예측 비디오 프레임들 및 인터-예측 비디오 프레임들을 포함함―; 그리고
    상기 MDE들이 개개의 비디오 프레임 경계들 사이에 있도록, 상기 정의된 케이던스에 기반하여, 상기 MDE들 중 적어도 일부를 결정하게 하는
    명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  31. 제29 항에 있어서,
    상기 미디어 데이터는 오디오 데이터를 포함하며,
    상기 프로세서로 하여금 패턴 매칭을 사용하여 상기 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금,
    상기 MDE들 각각에 포함될, 상기 스트림의 오디오 프레임들의 고정된 개수를 결정하게 하며; 그리고
    상기 스트림으로부터의 상기 고정된 개수의 오디오 프레임들을 각각 포함하도록, 상기 MDE들 중 적어도 일부를 결정하게 하는
    명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  32. 제28 항에 있어서,
    상기 프로세서로 하여금 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금 규칙들을 사용하여 상기 MDE들의 위치들을 결정하게 하는 명령들을 포함하며,
    상기 프로세서로 하여금 규칙들을 사용하여 상기 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금,
    오디오 프레임들, 비디오 프레임들, 및 타임드 텍스트 인스턴스들 중 하나 또는 그 초과를 정의하는 하나 또는 그 초과의 규칙들을 표현하는 데이터를 수신하게 하고;
    상기 규칙들에 기반하여, 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들을 결정하게 하며; 그리고
    상기 적어도 하나의 오디오 프레임, 비디오 프레임, 또는 타임드 텍스트 인스턴스의 위치들에 기반하여, 상기 MDE들을 결정하게 하는
    명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  33. 제28 항에 있어서,
    상기 프로세서로 하여금 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금 상기 물리 계층 전송 유닛의 물리 계층 동기화를 위한 타이밍 정보에 기반하여, 상기 MDE들의 위치들을 결정하게 하는 명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  34. 제28 항에 있어서,
    상기 프로세서로 하여금 MDE들의 위치들을 결정하게 하는 명령들은, 상기 프로세서로 하여금 상기 스트림 내의 재생가능한 데이터의 위치들을 표현하는 메타데이터를 포함하는 힌트 트랙을 분석하게 하는 명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  35. 제28 항에 있어서,
    상기 프로세서로 하여금 상기 송신 시간 요건들을 결정하게 하는 명령들은, 상기 프로세서로 하여금 상기 소스 디바이스에 대한 시스템 구성에 기반하여, 상기 MDE들 중 하나에 대한 최초 송신 시간을 결정하게 하는 명령들을 포함하는,
    컴퓨터-판독가능 저장 매체.
  36. 제28 항에 있어서,
    상기 프로세서로 하여금 상기 송신 시간 요건들을 결정하게 하는 명령들은, 상기 프로세서로 하여금, 데이터가 상기 MDE들 중 하나에 포함되는 세그먼트에 대한 세그먼트 가용성 시간에 기반하여, 상기 MDE들 중 하나에 대한 최후 송신 시간을 결정하게 하는 명령들을 포함하며, 상기 방법은, 상기 데이터의 스트림에 대한 매니페스트 파일로부터 세그먼트 가용성 시간을 결정하는 단계를 더 포함하는,
    컴퓨터-판독가능 저장 매체.
KR1020187019300A 2016-01-08 2017-01-06 미디어 전송을 위한 미디어 전달 이벤트 위치들의 결정 KR20180101371A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662276674P 2016-01-08 2016-01-08
US62/276,674 2016-01-08
US15/399,381 2017-01-05
US15/399,381 US10666961B2 (en) 2016-01-08 2017-01-05 Determining media delivery event locations for media transport
PCT/US2017/012551 WO2017120482A1 (en) 2016-01-08 2017-01-06 Determining media delivery event locations for media transport

Publications (1)

Publication Number Publication Date
KR20180101371A true KR20180101371A (ko) 2018-09-12

Family

ID=57882176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187019300A KR20180101371A (ko) 2016-01-08 2017-01-06 미디어 전송을 위한 미디어 전달 이벤트 위치들의 결정

Country Status (20)

Country Link
US (1) US10666961B2 (ko)
EP (1) EP3400712B1 (ko)
JP (1) JP6893930B2 (ko)
KR (1) KR20180101371A (ko)
CN (1) CN108432261B (ko)
AU (1) AU2017205187B2 (ko)
BR (1) BR112018013750A2 (ko)
CA (1) CA3007318C (ko)
CL (1) CL2018001833A1 (ko)
CO (1) CO2018006980A2 (ko)
ES (1) ES2864645T3 (ko)
HK (1) HK1257973A1 (ko)
HU (1) HUE052430T2 (ko)
MX (1) MX2018008372A (ko)
MY (1) MY192795A (ko)
RU (1) RU2718170C2 (ko)
SA (1) SA518391872B1 (ko)
SG (1) SG11201804448QA (ko)
TW (1) TWI740878B (ko)
WO (1) WO2017120482A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10129358B2 (en) * 2016-01-15 2018-11-13 Verizon Digital Media Services Inc. Partitioned serialized caching and delivery of large files
WO2017152178A1 (en) * 2016-03-04 2017-09-08 Bladelogic, Inc. Provisioning of containers for virtualized applications
US11122331B2 (en) * 2016-06-30 2021-09-14 Sony Semiconductor Solutions Corporation Receiving device, transmitting device, and data processing method
EP3490266B1 (en) * 2016-07-20 2022-09-21 Sony Group Corporation Receiving device and data processing method
TWI599218B (zh) * 2016-07-29 2017-09-11 元智大學 即時影音傳輸系統
US11412312B2 (en) * 2016-09-28 2022-08-09 Idomoo Ltd System and method for generating customizable encapsulated media files
US9872062B1 (en) * 2017-02-22 2018-01-16 Wyse Technology L.L.C. Enforcing synchronization by embedding audio within video frame data
US10904313B2 (en) * 2017-06-20 2021-01-26 Telefonaktiebolaget Lm Ericsson (Publ) Apparatuses, methods, computer programs, and computer program products for live uplink adaptive streaming
US11146608B2 (en) 2017-07-20 2021-10-12 Disney Enterprises, Inc. Frame-accurate video seeking via web browsers
US10750220B2 (en) * 2018-04-06 2020-08-18 Enensys Technologies Method for generating a STL stream, local adapter and corresponding computer program
CN108737845B (zh) * 2018-05-22 2019-09-10 北京百度网讯科技有限公司 直播处理方法、装置、设备以及存储介质
US10652849B2 (en) * 2018-07-16 2020-05-12 Sinclair Broadcast Group, Inc. Using broadcast physical layer for one-way time transfer of universal coordinated time to receivers
CN109471736A (zh) * 2018-09-14 2019-03-15 叮联信息技术有限公司 事件信息不间断随机传递及实时共享方法
WO2020060990A1 (en) 2018-09-17 2020-03-26 Google Llc Methods, systems, and media for delivering manifestless streaming media content
KR102124194B1 (ko) * 2018-12-19 2020-06-23 포디리플레이코리아 주식회사 영상분석을 위한 다채널 영상 전송 시스템 및 이의 제어 방법
US10700798B1 (en) * 2019-03-01 2020-06-30 GM Global Technology Operations LLC System and method to receive and deliver audio content
US20210185381A1 (en) * 2019-12-11 2021-06-17 Sony Corporation Reducing latency during service change and improving robustness in advanced television systems committee (atsc) 3.0 system
CN113141514B (zh) * 2020-01-17 2022-07-22 北京达佳互联信息技术有限公司 媒体流传输方法、系统、装置、设备及存储介质
WO2021251886A1 (en) * 2020-06-09 2021-12-16 Telefonaktiebolaget Lm Ericsson (Publ) Providing semantic information with encoded image data
RU203858U1 (ru) * 2020-08-05 2021-04-23 Общество с ограниченной ответственностью "Витрина ТВ" Устройство отображения и воспроизведения аудиовизуального контента
CN114598756B (zh) * 2020-12-01 2024-03-12 深圳Tcl数字技术有限公司 一种alp数据包的处理方法、存储介质及电子设备
US11882170B2 (en) * 2021-04-19 2024-01-23 Tencent America LLC Extended W3C media extensions for processing dash and CMAF inband events

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4392880B2 (ja) * 1998-06-29 2010-01-06 キヤノン株式会社 認証装置及びその制御方法並びに記憶媒体
US7146429B2 (en) * 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
JP2007213772A (ja) * 2006-01-11 2007-08-23 Sony Corp 記録転送プログラム、記録転送装置及び記録転送方法
US20080037956A1 (en) * 2006-06-30 2008-02-14 Scientific-Atlanta, Inc. Systems and Methods of Generating Encapsulated MPEG Program Streams
JP2008257592A (ja) * 2007-04-06 2008-10-23 Iwate Broadcasting Co Ltd クライアント端末、コンテンツ再生方法及びコンテンツ再生プログラム
JP4427567B2 (ja) * 2007-07-03 2010-03-10 株式会社東芝 無線通信装置及び無線通信方法
US8200810B2 (en) 2007-12-13 2012-06-12 Highwinds Holdings, Inc. Content delivery network
CN101222509B (zh) * 2008-01-22 2011-10-26 中兴通讯股份有限公司 一种点对点网络的数据保护传输方法
CN101616009B (zh) * 2008-06-27 2011-07-06 中国移动通信集团公司 数据业务的传输方法及其设备
CN102308547B (zh) 2008-12-31 2014-11-19 苹果公司 通过非流化协议流化多媒体数据的方法
US9036092B2 (en) * 2013-06-24 2015-05-19 Broadcom Corporation Video channel change system
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US9032451B2 (en) 2011-09-01 2015-05-12 The Directv Group, Inc. Method and system for using a second screen device for interacting with a set top box to enhance a user experience
US9591361B2 (en) * 2011-09-07 2017-03-07 Qualcomm Incorporated Streaming of multimedia data from multiple sources
CN102769509B (zh) 2012-06-07 2015-10-21 华为技术有限公司 一种物理层信号的发送方法、装置及系统
GB2506911B (en) * 2012-10-12 2015-12-09 Canon Kk Method and correponding device for streaming video data
JP6270873B2 (ja) 2013-01-15 2018-01-31 華為技術有限公司Huawei Technologies Co.,Ltd. メディアコンテンツの適応型ストリーミングのための品質情報の使用
EP2988519A4 (en) 2013-04-16 2017-01-11 LG Electronics Inc. Broadcasting transmission device, broadcasting reception device, operating method of broadcasting transmission device and operating method of broadcasting reception device
CN104283849A (zh) * 2013-07-04 2015-01-14 深圳市天趣网络科技有限公司 弹窗数据推送、展示方法及装置、系统
JP2015136057A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
CN105100015B (zh) 2014-05-16 2018-07-03 林琳 一种采集互联网访问数据的方法及装置
US20170055046A1 (en) 2014-05-21 2017-02-23 Lg Electronics Inc. Broadcast signal transmitting/receiving method and device
WO2016129973A1 (ko) 2015-02-15 2016-08-18 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Also Published As

Publication number Publication date
US10666961B2 (en) 2020-05-26
TWI740878B (zh) 2021-10-01
HUE052430T2 (hu) 2021-04-28
RU2718170C2 (ru) 2020-03-30
ES2864645T3 (es) 2021-10-14
CN108432261A (zh) 2018-08-21
AU2017205187B2 (en) 2020-09-10
CA3007318C (en) 2023-08-15
MY192795A (en) 2022-09-09
TW201725911A (zh) 2017-07-16
CN108432261B (zh) 2021-01-05
EP3400712B1 (en) 2020-12-23
EP3400712A1 (en) 2018-11-14
CO2018006980A2 (es) 2018-07-19
BR112018013750A2 (pt) 2018-12-11
CA3007318A1 (en) 2017-07-13
HK1257973A1 (zh) 2019-11-01
RU2018124449A (ru) 2020-02-10
CL2018001833A1 (es) 2018-10-12
AU2017205187A1 (en) 2018-06-21
SG11201804448QA (en) 2018-07-30
MX2018008372A (es) 2018-09-21
RU2018124449A3 (ko) 2020-02-10
SA518391872B1 (ar) 2022-01-24
US20170201761A1 (en) 2017-07-13
JP2019506059A (ja) 2019-02-28
JP6893930B2 (ja) 2021-06-23
WO2017120482A1 (en) 2017-07-13

Similar Documents

Publication Publication Date Title
US10666961B2 (en) Determining media delivery event locations for media transport
US10454985B2 (en) File format based streaming with dash formats based on LCT
EP3363181B1 (en) Deadline signaling for streaming of media data
CA2986597C (en) Middleware delivery of dash client qoe metrics
US9973345B2 (en) Calculating and signaling segment availability times for segments of media data
US20150269629A1 (en) Targeted advertisement insertion for streaming media data
US20160164943A1 (en) Transport interface for multimedia and file transport
US20200112753A1 (en) Service description for streaming media data
KR20170116027A (ko) 저 레이턴시 비디오 스트리밍
US20190349629A1 (en) Signaling missing sections of media data for network streaming in a manifest file
KR20160110424A (ko) Dash의 강건한 라이브 동작
US20170331666A1 (en) Real-time control interface for broadcast object streaming
KR20160138044A (ko) 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입
US20210306703A1 (en) Determination of availability of chunks of data for network streaming media data
US20210344992A1 (en) Calculating start time availability for streamed media data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal