KR20210141598A - Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보 - Google Patents

Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보 Download PDF

Info

Publication number
KR20210141598A
KR20210141598A KR1020217033513A KR20217033513A KR20210141598A KR 20210141598 A KR20210141598 A KR 20210141598A KR 1020217033513 A KR1020217033513 A KR 1020217033513A KR 20217033513 A KR20217033513 A KR 20217033513A KR 20210141598 A KR20210141598 A KR 20210141598A
Authority
KR
South Korea
Prior art keywords
sbd
file
start time
mpd
timeline
Prior art date
Application number
KR1020217033513A
Other languages
English (en)
Other versions
KR102635342B1 (ko
Inventor
이라즈 소다가르
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20210141598A publication Critical patent/KR20210141598A/ko
Application granted granted Critical
Publication of KR102635342B1 publication Critical patent/KR102635342B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/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/26283Content 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 for associating distribution time parameters to content, e.g. to generate electronic program guide data
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/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/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 양태는 미디어 콘텐츠의 미디어 데이터를 수신하기 위한 방법, 장치, 및 비일시적 컴퓨터 판독가능 매체를 제공한다. 하나의 장치는 미디어 프리젠테이션 설명(MPD, Media Presentation Description) 파일 및 세션 기반 기술(SBD, Session-Based Description) 파일을 수신하는 처리 회로를 포함한다. 처리 회로는 SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지 여부를 결정한다. 처리 회로는 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여 SBD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다. 처리 회로는 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여 MPD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다.

Description

HTTP를 통한 동적 적응 스트리밍을 위한 세션 기반 정보
본 출원은, "HTTP를 통한 동적 적응 스트리밍을 위한 세션 기반 정보"라는 명칭으로 2020년 10월 22일 출원된 미국 특허출원 제 17/076,935 호에 기초하여 우선권을 주장하며, 상기 미국 특허출원은 "세션 기반 DASH 운영에 대한 확장 및 개선"이라는 명칭으로 2020년 1월 6일 출원된 미국 가출원 제 62/957,671호에 기초하여 우선권을 주장한다. 상기 우선권 주장 출원의 내용 전체는 본 명세서에 참고로 포함된다.
본 발명은 하이퍼텍스트 전송 프로토콜(DASH)을 통한 동적 적응 스트리밍을 위한 세션 기반 정보에 일반적으로 관련된 실시형태를 설명한다.
본 명세서에 제공된 배경 설명은 본 발명의 개시내용의 맥락을 일반적으로 제시하는 것을 목적으로 하고 있다. 현재 명명된 발명자의 저작물은, 이 배경 섹션에 기재되어 있는 범위 내에 있고, 출원 당시 선행 기술로 인정되지 않을 수 있는 설명의 측면은 명시적 또는 묵시적으로 본 발명에 대한 선행 기술로 인정되지 않는다.
동영상 전문가 그룹(MPEG)은, 세션 기반 DASH 동작을 위한 하이퍼텍스트 전송 프로토콜(DASH) 표준화를 통한 동적 적응 스트리밍의 새로운 부분을 시작하였다. 미디어 프리젠테이션 기술(MPD, Media Presentation Description) 파일은, 모든 클라이언트에 대해 일반적이지만, 클라이언트는 세션 기반 기술(SBD) 파일과 같은 사이드 파일을 얻을 수 있고, 이 파일은 클라이언트가 세션에 특정한 MPD를 만들도록 지시한다. 그러나 현재 설계에서는, 일부 SBD 고유의 정보가 여전히 MPD 파일에 포함되어 있다. 또한, SBD는 애플리케이션 별로 특별히 설계되었으며(예를 들어, 포렌식 워터마킹 사용) 다른 애플리케이션을 처리하기에 충분히 일반적이지 않을 수 있다.
본 발명의 양태는 미디어 콘텐츠의 미디어 데이터를 수신하기 위한 장치를 제공한다. 하나의 장치는 미디어 프리젠테이션 기술(MPD) 파일 및 세션 기반 기술(SBD) 파일을 수신하는 처리 회로를 포함한다. 처리 회로는 SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지 여부를 결정한다. 처리 회로는 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여, SBD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다. 처리 회로는 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여, MPD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다.
일 실시형태에서, SBD 타임라인의 시작 시간은 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여 SBD 디스크립터가 포함된 MPD 파일의 요소 및 MPD 파일의 유형에 기초하여 결정된다. SBD 디스크립터는 SBD 파일에 대응한다.
일 실시형태에서, SBD 타임라인의 시작 시간은, 동적인 MPD 파일의 유형 및 MPD 요소에 포함되는 MPD 파일의 SBD 디스크립터에 응답하여, MPD 요소의 가용성 시작 시간 속성의 값으로서 결정된다.
일 실시형태에서, SBD 타임라인의 시작 시간은, 정적인 MPD 파일의 유형 및 MPD 요소에 포함된 MPD 파일의 SBD 디스크립터에 응답하여, 미디어 콘텐츠의 미디어 타임라인의 초기 시작 시간으로서 결정된다.
일 실시형태에서, SBD 타임라인의 시작 시간은, 기간 요소에 포함된 MPD 파일의 SBD 디스크립터에 응답하여, 기간 요소의 시작 시간 속성 값으로서 결정된다.
일 실시형태에서, SBD 파일은 SBD 타임라인의 지속기간을 나타내는 지속기간 속성을 포함한다.
일 실시형태에서, SBD 파일은 SBD 타임라인이 반복되는지 여부를 나타내는 루프 속성을 포함한다.
일 실시형태에서, SBD 파일의 오더라인 요소는 오더라인 요소가 적용되는 시작 세그먼트를 나타내는 속성을 포함한다.
일 실시형태에서, 시작 세그먼트의 타이밍 정보는 SBD 타임라인의 시작 시간에 기초한다.
본 발명의 양태는 미디어 콘텐츠의 미디어 데이터를 수신하기 위한 방법을 제공한다. 한 방법에서, 미디어 프리젠테이션 기술(MPD) 파일과 세션 기반 기술(SBD) 파일을 수신한다. SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지의 여부가 결정된다. SBD 타임라인의 시작 시간은 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여 SBD 파일을 기반으로 결정된다. SBD 타임라인의 시작 시간은 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여 MPD 파일을 기반으로 결정된다.
본 발명의 양태는, 또한 미디어 콘텐츠에 대한 미디어 데이터를 검색하기 위해 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 세션에 대한 미디어 데이터를 수신하기 위한 방법들 중 임의의 하나 또는 그의 조합을 수행하게 하는 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체를 제공한다.
개시된 발명 대상의 추가 특징, 특성 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다.
도 1은 본 발명의 실시형태에 따른 하이퍼텍스트 전송 프로토콜(DASH) 시스템을 통한 예시적인 세션 기반 동적 적응 스트리밍을 도시한다.
도 2는 본 발명의 실시형태에 따른 다른 예시적인 세션 기반 DASH 시스템을 도시한다.
도 3은 본 발명의 실시형태에 따른 예시적인 DASH 클라이언트 아키텍처를 도시한다.
도 4a 및 도 4b는 본 발명의 실시형태에 따른 2개의 예시적인 SBD 타이밍 모델을 도시한다.
도 5는 본 발명의 실시형태에 따른 SBD 파일의 예시적인 오더라인 요소를 도시한다.
도 6은 본 발명의 실시형태에 따른 프로세스의 예를 개략적으로 나타내는 흐름도를 도시한다.
도 7은 본 발명의 실시형태에 따른 프로세스의 예를 개략적으로 나타내는 다른 흐름도를 도시한다.
도 8은 본 발명의 실시형태에 따른 컴퓨터 시스템의 개략 예시도이다.
I. 하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(DASH) 및 미디어 프리젠테이션 기술(MPD)을 통한 동적 적응 스트리밍
하이퍼텍스트 전송 프로토콜을 통한 동적 적응 스트리밍(DASH)은 웹 서버, 콘텐츠 전달 네트워크(CDN), 다양한 프록시 및 캐시 등과 같은 하이퍼텍스트 전송 프로토콜(HTTP) 기반 구조를 사용하여 미디어 콘텐츠의 스트리밍을 가능하게 하는 적응 비트레이트 스트리밍 기술이다. DASH는 DASH 서버로부터 DASH 클라이언트로의 주문형(on-demand) 및 라이브 스트리밍을 모두 지원하며, DASH 클라이언트가 스트리밍 세션을 제어할 수 있도록 하여 DASH 서버가 대규모 전개에서 스트림 적응 관리의 추가 부하에 대처할 필요가 없다. DASH를 사용하면, DASH 클라이언트는 다양한 DASH 서버로부터의 스트리밍을 선택할 수 있기 때문에, DASH 클라이언트의 이익을 위해 네트워크의 추가 부하 분산(load-balancing)을 실현할 수 있다. DASH는, 예를 들어 네트워크 상태에 적응하도록 비트레이트를 변경함으로써 서로 다른 미디어 트랙 간의 동적 전환을 제공한다.
DASH에서, 미디어 프리젠테이션 기술(MPD) 파일은 DASH 서버로부터 미디어 세그먼트를 다운로드 함으로써 미디어 콘텐츠를 적응적으로 스트리밍하기 위한 DASH 클라이언트를 위한 정보를 제공한다. MPD 파일은 단편화되어 부분적으로 전달되므로 세션 시작 지연을 줄일 수 있다. MPD 파일은 또한 스트리밍 세션 중에도 업데이트할 수 있다. 일부 예에서, MPD 파일은 콘텐츠 접근성 기능, 등급 및 카메라 보기의 표현을 지원한다. DASH는 또한 다중 보기 및 확장 가능한 코딩된 콘텐츠 전달을 지원한다.
MPD 파일은 하나 이상의 기간의 시퀀스를 포함할 수 있다. 하나 이상의 기간 각각은 MPD 파일의 기간 요소에 의해 규정될 수 있다. MPD 파일은 MPD에 대한 availableStartTime 속성과 각 기간에 대한 시작 속성을 포함할 수 있다. 동적 유형의 미디어 프리젠테이션(예를 들어, 라이브 서비스에 사용됨)의 경우, 기간의 시작 속성과 MPD 속성인 availableStartTime의 합과 미디어 세그먼트의 지속 시간은 협정 세계 시(UTC) 포맷에서, 특히 대응하는 기간의 각 표현의 제1 미디어 세그먼트 기간의 가용성 시간을 나타낼 수 있다. 정적 유형의 미디어 프리젠테이션(예를 들어, 주문형 서비스에 사용됨)의 경우, 제1 기간의 시작 속성은 0일 수 있다. 다른 기간의 경우, 시작 속성은 제1 기간의 시작 시간을 기준으로 대응하는 기간의 시작 시간 사이의 시간 오프셋을 지정할 수 있다. 각 기간은 다음 기간이 시작될 때까지 또는 마지막 기간의 경우 미디어 프리젠테이션이 끝날 때까지 연장할 수 있다. 기간 시작 시간은 정확할 수 있으며, 모든 이전 기간의 미디어 재생으로 인한 실제 시간을 반영할 수 있다.
각각의 기간은 하나 이상의 적응 세트를 포함할 수 있고, 적응 세트의 각각은 동일한 미디어 콘텐츠에 대한 하나 이상의 표현을 포함할 수 있다. 표현은 오디오 또는 비디오 데이터의 여러 대체 인코딩 버전 중 하나일 수 있다. 표현은 인코딩 유형, 예를 들어 비디오 데이터에 대한 비트레이트, 해상도 및/또는 코덱, 그리고 오디오 데이터에 대한 비트레이트 및/또는 코덱에 의해 다를 수 있다. 표현이라는 용어는 멀티미디어 콘텐츠의 특정 기간에 대응하여, 특정 방식으로 인코딩된, 인코딩 오디오 또는 비디오 데이터의 섹션을 나타내는 데 사용될 수 있다.
MPD 파일에서 그룹 속성이 지시하는 그룹에는 특정 기간의 적응 세트가 할당될 수 있다. 동일한 그룹의 적응 세트는 일반적으로 서로에 대한 대안으로 간주된다. 예를 들어, 특정 기간에 대한 비디오 데이터의 각 적응 세트는 동일한 그룹에 할당될 수 있으므로, 대응하는 기간에 대한 멀티미디어 콘텐츠의 비디오 데이터를 표시하도록 디코딩을 위해 임의의 적응 세트가 선택될 수 있다. 하나의 기간 내의 미디어 콘텐츠는, 존재하는 경우, 그룹 0으로부터의 하나의 적응 세트, 또는 일부 예들에서 각각의 0이 아닌 그룹으로부터의 최대 하나의 적응 세트의 조합에 의해 표현될 수 있다. 기간의 각 표현에 대한 타이밍 데이터는 기간의 시작 시간에 대해 표현될 수 있다.
표현은 하나 이상의 세그먼트를 포함할 수 있다. 각 표현은 초기화 세그먼트를 포함하거나, 또는 표현의 각 세그먼트가 자체 초기화될 수 있다. 존재하는 경우, 초기화 세그먼트는 표현에 액세스하기 위한 초기화 정보를 포함할 수 있다. 일부 경우에, 초기화 세그먼트는 미디어 데이터를 포함하지 않는다. 세그먼트는 유니폼 리소스 로케이터(URL, Uniform Resource Locator), 유니폼 리소스 네임(URN, Uniform Resource Name) 또는 유니폼 리소스 식별자(URI, Uniform Resource Identifier)와 같은 식별자로 유일하게 참조될 수 있다. MPD 파일은 각 세그먼트에 대한 식별자를 제공할 수 있다. 일부 예에서, MPD 파일은 또한 URL, URN 또는 URI에 의해 액세스 가능한 파일 내의 세그먼트에 대한 데이터에 대응할 수 있는 범위 속성의 형태로 바이트 범위를 제공할 수도 있다.
각각의 표현은 또한 하나 이상의 미디어 구성요소를 포함할 수 있으며, 여기서 각 미디어 구성요소는 오디오, 비디오 또는 시간 제한 텍스트(예를 들어, 폐쇄 캡션용)와 같은 하나의 개별 미디어 유형의 인코딩된 버전에 대응할 수 있다. 미디어 구성 요소는 하나의 표현 내에서 연속적인 미디어 세그먼트의 경계를 가로질러 시간 연속적일 수 있다.
일부 실시형태에서, DASH 클라이언트는 DASH 서버로부터 MPD 파일에 액세스하고 다운로드 할 수 있다. 즉, DASH 클라이언트는 라이브 세션을 개시하는 데 사용할 MPD 파일을 검색할 수 있다. MPD 파일을 기본으로 하고 그리고 선택된 각 표현에 대해, DASH 클라이언트는, 서버에서 사용할 수 있는 최신 세그먼트 결정, 다음 세그먼트 및 경우에 따라서는 미래 세그먼트의 세그먼트 가용성 시작 시간 결정, 세그먼트의 재생을 언제 시작하는가 및 세그먼트의 어느 타임라인으로부터 인지를 결정, 새 MPD 파일을 얻거나 가져올 때를 결정하는 것을 포함하여 여러 가지 결정을 할 수 있다. 서비스가 재생되면, 클라이언트는 라이브 서비스와 자체 재생 간의 드리프트를 추적할 수 있으며, 이는 감지되고 보상되어야 한다.
II. 세션 기반 DASH 동작 및 세션 기반 기술( SBD )
MPD 파일은 모든 DASH 클라이언트에 대해 일반적일 수 있음에 주목한다. MPD 파일을 DASH 클라이언트의 세션에 고유하게 하기 위해, MPEG에서는 세션 기반 DASH 동작을 제공한다. 세션 기반 DASH 동작에서, DASH 클라이언트는 세션 기반 기술(SBD) 파일과 같은 사이드 파일을 수신할 수 있으며, 이 파일은 DASH 클라이언트가 세션별 및 가능하면 클라이언트 별로 MPD 파일을 사용자가 지정하도록 지시를 제공한다.
도 1은 본 발명의 실시형태에 따른 예시적인 세션 기반 DASH 시스템(100)을 도시한다. 세션 기반 DASH 시스템(100)에서, MPD 파일은 DASH 서버(101)(예를 들어, 콘텐츠 서버)로부터 DASH 클라이언트(102)로 전송된다. DASH 클라이언트(102)는 MPD 파일에 기초하여 DASH 서버(101)로부터 미디어 세그먼트를 수신할 수 있다. DASH 클라이언트(102)는 MPD 파일을 업데이트하기 위해 DASH 서버(101)에 요청을 보낼 수 있다. 또한, DASH 클라이언트(102)는 DASH 서버(101) 또는 제3자(예를 들어, 세션 제어기)로부터 SBD 파일을 수신할 수 있다.
다수의 DASH 서버가 MPD 파일 및 미디어 세그먼트를 전송할 수 있으므로, MPD 파일 및 미디어 세그먼트가 상이한 DASH 서버로부터 DASH 클라이언트(102)로 전송될 수 있음에 유의한다. 또한, DASH 클라이언트(102)로부터 전송된 요청을 수신하는 DASH 서버는 미디어 세그먼트를 전송하는 DASH 서버와 상이할 수 있다.
본 발명의 양태에 따르면, SBD 파일은 추가 메타데이터와 함께 복수의 시간 범위 및 대응하는 키-값 쌍(또는 이름-값 쌍)을 포함할 수 있다. SBD 파일은 예를 들어 URL에 의해 MPD 파일에서 참조될 수 있다. SBD 파일은 DASH 클라이언트(102)의 세션에 대해 특정하도록 DASH 클라이언트(102)에 의해 수신된 MPD 파일을 커스터마이즈 하는데 사용될 수 있다. 예를 들어, SBD 파일을 사용하면 고유한 세션 별 MPD를 생성하지 않고도 URL을 세그먼트화하기 위해 세션 고유의 요소를 추가할 수 있다.
도 2는 본 발명의 실시형태에 따른 다른 예시적인 세션 기반 DASH 시스템(200)을 도시한다. 세션 기반 DASH 시스템(200)에서, 멀티미디어 콘텐츠는 오디오 소스(예를 들어, 마이크) 및 비디오 소스(예를 들어, 비디오 카메라)를 포함할 수 있는 콘텐츠 생성 장치(예를 들어, 스마트폰)에 의해 준비 및 생성된다. 멀티미디어 콘텐츠는 콘텐츠 생성 장치(201)에 의해 저장되거나 다양한 멀티미디어 콘텐츠를 저장할 수 있는 콘텐츠 서버(202)로 전송될 수 있다. 콘텐츠 서버(202)는 멀티미디어 콘텐츠의 하나 이상의 미디어 세그먼트에 대해 DASH 액세스 클라이언트(203)와 같은 클라이언트 장치로부터 요청을 수신할 수 있다. 멀티미디어 콘텐츠는 콘텐츠 서버(202)에 의해 저장 및 업데이트될 수 있고 DASH 액세스 클라이언트(203)를 포함하는 클라이언트 장치에 의해 액세스되어 미디어 세그먼트를 검색할 수 있는 MPD 파일에 의해 설명된다.
세션-특정 미디어 세그먼트를 검색하기 위해, DASH 액세스 클라이언트(203)는 SBD 클라이언트에 의해 수신되고 복수의 시간 범위 및 현재 세션에 대한 대응하는 키-값 쌍을 포함하는 SBD 파일을 액세스하기 위해 SBD 클라이언트(204)(예를 들어 세션 클라이언트)에 요청을 보낼 수 있다. 예를 들어, DASH 액세스 클라이언트(203)는 키 이름과 시간 범위를 SBD 클라이언트(204)에 전송할 수 있으며, 그 다음 SBD 클라이언트(204)는 키 이름과 시간 범위를 파싱(parse)하고, 키 이름 및 시간 범위에 대응하는 값을 DASH 액세스 클라이언트(203)에게 반환한다. DASH 액세스 클라이언트(203)는 세그먼트 요청이 HTTP GET 또는 부분 GET 요청인 경우 세션 특정 미디어 세그먼트를 요청하기 위해 콘텐츠 서버(202)에 전송될 수 있는 세그먼트 URL의 쿼리에 값을 포함할 수 있다.
SBD 클라이언트(204)는 세션 제어기(205) 및 세션 제어기(206)와 같은 상이한 세션 제어기로부터 다수의 SBD 파일을 수신할 수 있음에 유의한다.
본 발명의 양태에 따르면, 콘텐츠 서버(202)(예를 들어, DASH 서버)의 기능들 중 임의의 것 또는 전부는 라우터, 브리지, 프록시 장치, 스위치 또는 기타 장치와 같은 콘텐츠 전달 네트워크(CDN)의 하나 이상의 장치에서 구현될 수 있다. 콘텐츠 서버(202)는 클라이언트 장치(예를 들어, DASH 액세스 클라이언트(203))로부터 네트워크 요청을 수신하도록 구성된 요청 처리 유닛을 포함할 수 있다. 예를 들어, 요청 처리 유닛은 HTTP GET 또는 부분 GET 요청을 수신하고 요청에 응답하여 멀티미디어 콘텐츠의 데이터를 제공하도록 구성될 수 있다. 요청은 세그먼트의 URL을 사용하여 세그먼트를 지정할 수 있다. 일부 실시형태에서, 요청은 세그먼트의 하나 이상의 바이트 범위를 지정할 수도 있으므로 부분 GET 요청을 포함한다. 요청 처리 유닛은 세그먼트의 헤더 데이터를 제공하기 위해 HTTP HEAD 요청을 처리하도록 추가로 구성될 수 있다.
일부 실시형태에서, 콘텐츠 생성 장치(201) 및 콘텐츠 서버(202)는 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있거나, 직접 통신 가능하게 결합될 수 있다.
일부 실시형태에서, 콘텐츠 생성 장치(201) 및 콘텐츠 서버(202)는 동일한 장치에 포함될 수 있다.
일부 실시형태에서, 콘텐츠 서버(202) 및 세션 제어기(205)-(206)는 동일한 장치에 포함될 수 있다.
일부 실시형태에서, 콘텐츠 서버(202) 및 DASH 액세스 클라이언트(203)는 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있다.
일부 실시형태에서, SBD 클라이언트(204) 및 세션 제어기(205)-(206)는 무선 네트워크 또는 유선 네트워크에 의해 결합될 수 있거나, 또는 직접 통신 가능하게 결합될 수 있다.
일부 실시형태에서, DASH 액세스 클라이언트(203) 및 SBD 클라이언트(204)는 동일한 장치에 포함될 수 있다.
III. DASH 클라이언트 아키텍처
도 3은 본 발명의 실시형태에 따른 예시적인 DASH 클라이언트 아키텍처를 도시한다. DASH 클라이언트(102)와 같은 DASH 클라이언트(또는 DASH 플레이어)는 (i) MPD 이벤트, (ii) 대역 내 이벤트 및 (iii) 시간 제한 메타데이터 이벤트를 포함한 다양한 형태의 이벤트를 처리하도록 구성될 수 있다.
매니페스트 파서(310)는 매니페스트(예를 들어, MPD)를 파싱할 수 있다. 매니페스트는 예를 들어 DASH 서버(101)에 의해 제공될 수 있다. 매니페스트 파서(310)는 MPD 이벤트, 인밴드 이벤트, 및 시간 제한 메타데이터 트랙에 포함된 시간 제한 메타데이터 이벤트에 대한 이벤트 정보를 추출할 수 있다. 추출된 이벤트 정보는 DASH 로직(311)(예를 들어, DASH 플레이어 제어, 선택, 및 휴리스틱(heuristic) 로직)에 제공될 수 있다. DASH 로직(311)은 이벤트 정보에 기초하여 매니페스트에서 시그널링된 이벤트 방식(scheme)을 애플리케이션(312)에 통지할 수 있다.
이벤트 정보는 서로 다른 이벤트 스트림을 구분하기 위한 이벤트 방식 정보를 포함할 수 있다. 애플리케이션(312)은 이벤트 방식 정보를 사용하여 관심 있는 이벤트 방식에 가입(subscribe)할 수 있다. 애플리케이션(312)은 하나 이상의 가입 애플리케이션 프로그래밍 인터페이스(API)를 통해 가입된 방식 각각에 대한 원하는 디스패치 모드를 추가로 나타낼 수 있다. 예를 들어, 애플리케이션(312)은 하나 이상의 관심 이벤트 방식 및 임의의 원하는 대응 디스패치 모드를 식별하는 가입 요청을 DASH 클라이언트에 전송할 수 있다.
애플리케이션(312)이 하나 이상의 시간 제한 메타데이터 트랙의 일부로서 전달되는 하나 이상의 이벤트 방식에 가입하면, 인밴드 이벤트 및 'moof' 파서(303)가 하나 이상의 시간 제한 메타데이터 트랙을 시간 제한 메타데이터 트랙 파서(304)로 스트리밍할 수 있다. 예를 들어, 인밴드 이벤트 및 'moof' 파서(303)는 영화 프래그먼트 박스("moof")를 파싱하고, 후속적으로 DASH 로직(311)으로부터의 제어 정보에 기초하여 시간 제한 메타데이터 트랙을 파싱한다.
시간 제한 메타데이터 트랙 파서(304)는 시간 제한 메타데이터 트랙에 포함된 이벤트 메시지를 추출할 수 있다. 추출된 이벤트 메시지는 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장될 수 있다. 동기화기/디스패처 모듈(308)(예를 들어, 이벤트 및 시간 제한 메타데이터 동기화기 및 디스패처)은 가입된 이벤트를 애플리케이션(312)에 디스패치(또는 전송) 할 수 있다.
MPD에 기술된 MPD 이벤트는 매니페스트 파서(310)에 의해 파싱될 수 있고, 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장될 수 있다. 예를 들어, 매니페스트 파서(310)는 MPD의 각 이벤트 스트림 요소를 파싱하고, 각 이벤트 스트림 요소에 기술된 각 이벤트를 파싱한다. MPD에서 시그널링된 각각의 이벤트에 대해, 프리젠테이션 시간 및 이벤트 지속기간과 같은 이벤트 정보는 이벤트와 관련하여 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장될 수 있다.
인밴드 이벤트 및 'moof' 파서(303)는 인밴드 이벤트 메시지를 추출하기 위해 미디어 세그먼트를 파싱할 수 있다. 임의의 그러한 식별된 인밴드 이벤트 및 연관된 프리젠테이션 시간 및 지속기간은 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장될 수 있다.
따라서, 이벤트 및 시간 제한 메타데이터 버퍼(306)는 MPD 이벤트, 인밴드 이벤트, 및/또는 시간 제한 메타데이터 이벤트를 그 안에 저장할 수 있다. 이벤트 및 시간 제한 메타데이터 버퍼(306)는 예를 들어 FIFO(선입 선출) 버퍼일 수 있다. 이벤트 및 시간 제한 메타데이터 버퍼(306)는 미디어 버퍼(307)에 대응하여 관리될 수 있다. 예를 들어, 미디어 세그먼트가 미디어 버퍼(307)에 존재하는 한, 그 미디어 세그먼트에 대응하는 임의의 이벤트 또는 시간 제한 메타데이터는 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장될 수 있다.
DASH 액세스 API(302)는 HTTP 프로토콜 스택(301)을 통해 미디어 콘텐츠 및 다양한 메타데이터를 포함하는 콘텐츠 스트림(또는 데이터 흐름)의 페칭(fetching) 및 수신을 관리할 수 있다. DASH 액세스 API(302)는 수신된 콘텐츠 스트림을 서로 다른 데이터 흐름으로 분리할 수 있다. 인밴드 이벤트 및 'moof' 파서(303)에 제공되는 데이터 흐름은 미디어 세그먼트, 하나 이상의 시간 제한 메타데이터 트랙, 및 미디어 세그먼트에 포함된 인밴드 이벤트 시그널링을 포함할 수 있다. 일 실시형태에서, 매니페스트 파서(310)에 제공되는 데이터 흐름은 MPD를 포함할 수 있다.
DASH 액세스 API(302)는 매니페스트를 매니페스트 파서(310)에 전송할 수 있다. 이벤트를 설명하는 것 외에도, 매니페스트는 애플리케이션(312) 및 인밴드 이벤트 및 'moof' 파서(303)와 통신할 수 있는 DASH 로직(311)에 미디어 세그먼트에 대한 정보를 제공할 수도 있다. 애플리케이션(312)은 DASH 클라이언트에 의해 처리되는 미디어 콘텐츠와 연관될 수 있다. 애플리케이션(312), DASH 로직(311), 매니페스트 파서(310), 및 DASH 액세스 API(202) 간에 교환되는 제어/동기화 신호는 매니페스트에 제공된 미디어 세그먼트에 관한 정보에 기초하여 HTTP 스택(301)으로부터 미디어 세그먼트의 페칭을 제어할 수 있다.
인밴드 이벤트 및 'moof' 파서(303)는 미디어 데이터 흐름을, 미디어 콘텐츠, 시간 제한 메타데이터 트랙의 시간 제한 메타데이터, 및 미디어 세그먼트의 임의의 시그널링된 인밴드 이벤트를 포함하는 미디어 세그먼트 내부로 파싱할 수 있다. 미디어 콘텐츠를 포함하는 미디어 세그먼트는 파일 포맷 파서(305)에 의해 파싱되어 미디어 버퍼(307)에 저장될 수 있다.
이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장된 이벤트는 동기화기/디스패처(308)가 이벤트/메타데이터 API를 통해 애플리케이션(312)과 관련된 이용 가능한 이벤트(또는 관심 이벤트)를 애플리케이션(312)과 통신하도록 할 수 있다. 애플리케이션(312)은 이용 가능한 이벤트(예를 들어, MPD 이벤트, 인밴드 이벤트, 또는 시간 제한 메타데이터 이벤트)를 처리하고 동기화기/디스패처(308)에 통지함으로써 특정 이벤트 또는 시간 제한 메타데이터에 가입하도록 구성될 수 있다. 애플리케이션(312)과 관련이 없지만 대신 DASH 클라이언트 자체와 관련된 이벤트 및 시간 제한 메타데이터 버퍼(306)에 저장된 모든 이벤트는 추가 처리를 위해 동기화기/디스패처(308)에 의해 DASH 로직(311)으로 전송될 수 있다.
특정 이벤트를 가입하는 애플리케이션(312)에 응답하여, 동기화기/디스패처(308)는, 애플리케이션(312)이 가입한 이벤트 방식에 대응하는 이벤트 인스턴스(또는 시간 제한 메타데이터 샘플)를 애플리케이션(312)과 통신할 수 있다. 이벤트 인스턴스는 가입 요청에 의해 표시된 디스패치 모드(예를 들어, 특정 이벤트 방식) 또는 기본 디스패치 모드에 따라 통신될 수 있다. 예를 들어, 온 리시브(on-receive) 디스패치 모드에서, 이벤트 인스턴스는 이벤트 및 시간 제한 메타데이터 버퍼(306)에서 수신 시 애플리케이션(312)으로 전송될 수 있다. 다른 한편으로, 온-스타트 디스패치 모드에서, 이벤트 인스턴스는, 예를 들어 미디어 디코더(309)로부터의 타이밍 신호와 동기화하여 연관된 프리젠테이션 시간에 애플리케이션(312)으로 전송될 수 있다.
IV. SBD 타이밍 모델
본 발명은 SBD 파일의 SBD 타임라인을 MPD 파일의 MPD 타임라인에 동기화하기 위해 SBD 타이밍 모델을 단순화 및 향상시키기 위한 실시형태 및 방법을 제시한다. 단순화되고 향상된 SBD 타이밍 모델에서, 단순화되고 통합된 앵커는 SBD 타임라인의 시작점으로 사용될 수 있으며, 선택적 지속 기간은 SBD 타임라인에 대해 시그널링될 수 있다. 예를 들어, 단순화된 통합 앵커는 MPD 및 기간 수준 SBD에 대한 동적 및 정적 MPD의 시작점으로 사용될 수 있다.
도 4a 및 도 4b는 본 발명의 실시형태에 따른 2개의 예시적인 SBD 타이밍 모델을 도시한다. MPD 유형은 각각 도 4a 및 4b에서 정적(예를 들어, MPD@type=static) 및 동적(예를 들어, MPD@type=dynamic)일 수 있다. SBD 타임라인의 시작점에 대한 앵커를 단순화하기 위해, SBDStart와 같은 시작 파라미터를 도입할 수 있다. 파라미터 SBDStart는 SBD 타임라인의 시작점에 대한 앵커를 규정할 수 있다.
본 발명의 양태에 따르면, MPD 유형이 동적이면, 파라미터 SBDStart는 SBD 파일의 SBD 시작 시간 속성(예를 들어, SBD@startTime)에 의해 명시적으로 시그널링될 수 있다. SBD 시작 시간 속성은 네트워크 타임 프로토콜(NTP) 시간에서 파라미터 SBDStart를 나타낼 수 있다. SBD 시작 시간 속성의 명시적 시그널링이 SBD 파일에 포함되지 않은 경우, 파라미터 SBDStart는 MPD 파일에 기초하여 유도될 수 있다. 예를 들어, SBD 파일에 대응하는 SBD 디스크립터가 MPD 파일의 MPD 요소에 포함되어 있는 경우(즉, 해당 SBD 디스크립터가 MPD 레벨에 있는 경우), 파라미터 SBDStart는 MPD 요소의 가용성 시작 시간 값으로 설정될 수 있다(예를 들어, MPD@availabilityStartTime). 그러나 대응하는 SBD 디스크립터가 MPD 파일의 기간 요소에 포함된 경우(즉, 대응하는 SBD 디스크립터가 기간 레벨(period level)에 있는 경우), 파라미터 SBDStart는 기간 요소의 시작 시간으로 설정될 수 있다(예를 들어, Period@)).
본 발명의 양태에 따르면, MPD 유형이 정적이면, 파라미터 SBDStart 는 MPD 파일에 기초하여 유도될 수 있다. 일 실시형태에서, 해당 SBD 디스크립터가 MPD 파일의 MPD 요소에 포함되는 경우, 파라미터 SBDStart는 미디어 콘텐츠의 미디어 타임라인(예를 들어, '0')의 초기 시작 시간으로 설정된다. 예를 들어, 주문형 미디어 콘텐츠(예를 들어, 영화)가 DASH 클라이언트(102)의 세션으로 스트리밍될 때, 세션에 대응하는 SBD 디스크립터가 DASH 클라이언트(102)에 의해 수신된 MPD 파일의 MPD 요소에 포함되는 경우, 파라미터 SBDStart는 주문형 미디어 콘텐츠의 초기 시작 시간으로 설정된다. 다만, MPD 파일의 기간 요소(period element)에 해당 SBD 디스크립터가 포함되어 있으면, 파라미터 SBDStart는 기간 요소의 시작 시간으로 설정된다(예를 들어, Period@Start).
일부 관련 예들에서, SBD 타임라인의 지속기간은 SBD 타임라인과 연관된 타임라인 또는 오더라인 요소들의 총 지속기간에 의해 규정된다. 그러나, 본 발명에서, SBD 지속기간은 예를 들어, SBD 파일의 지속기간 속성(예를 들어, SBD@duration)에 의해 SBD 파일에서 선택적으로 시그널링될 수 있다. 또한, 랩 어라운드(wrap-around) 기능은 본 발명에서 SBD 파일에 대해 유효하게 될 수 있다. 랩 어라운드 기능은 DASH 클라이언트(102)와 같은 DASH 클라이언트의 현재 세션에 대해 현재 사용되는 SBD 타임라인의 루핑을 유효하게 할 수 있다. 예를 들어, 루핑 SBD에서, 현재 세션의 세션 타임라인이 SBD 타임라인을 넘는 경우, SBD 타임라인은 랩 어라운드 기능이 유효하게 될 때 복제되어 세션 타임라인에 대해 루핑될 수 있다. 랩 어라운드 기능은 SBD 파일의 루프 속성(예를 들어, SBD@loop)으로 시그널링될 수 있다.
SBD 타임라인의 지속 기간이 SBD 파일에서 시그널링되면, SBD 파일의 시간 범위가 명시적으로 지시될 수 있다. 세션에 참여하는 DASH 클라이언트(102)와 같은 DASH 클라이언트는 전체 SBD 시간 범위를 구축하지 않고, 파라미터 SBDStart 및 SBD 파일의 지속 기간 속성(예를 들어, SBD@duration)을 각각 사용하여 SBD 타임라인에 대한 앵커 및 지속 기간을 도출할 수 있다. 이 기능은 세션의 현재 재생 지점에 대한 SBD 시간 범위를 찾기 위해 DASH 클라이언트의 클라이언트 동작을 상당히 단순화할 수 있다. 또한, SBD 타임라인은 그 전에 루핑될 수 있다. 즉, SBD 타임라인은 파라미터 SBDStart에 의해 지시된 시작 시간 이전까지 연장될 수 있다. 이 경우, 파라미터 SBDStart는, SBD가 적용될 수 있는 시작 시간에 대한 하나의 앵커 포인트이며, 미디어 콘텐츠 또는 미디어 세션의 시작 시간에 대응하는 원래의 SBD 시작 시간이 아니다.
표 1은 본 발명의 일 실시형태에 따른 SBD 파일의 예시적인 키-값 쌍 요소를 나타낸다. 표 1은 확장 가능 마크업 언어(XML, Extensible Markup Language)로 구현될 수 있다.
요소 또는 속성 이름 사용 설 명
키 값 타임라인 쿼리 문자열의 단일 키-값 쌍에 대한 정보 제공.
참고: 값은 (서브)세그먼트로부터 (서브)세그먼트로 변경 가능.
@keys M(문자열) 이 요소에 설명된 키-값 특성의 고유 키 이름 목록.
@comment O(문자열) 파일에 대한 인간 판독 가능한 코멘트.
@timescale OD @d 속성에 대한 시간 단위(초당 틱)
기본값은 1(즉, 기본적으로 V@d는 초 단위).
이 값은 오더라인 주소 지정에 대해 무시됨.
@type OD 가능한 값: "동적", "정적"
기본값: "정적"
정적: SBD 파일 및 해당 값은 스트리밍 세션 동안 변경되지 않음.
동적: SBD 파일 및 해당 값은 @ttl초마다 업데이트될 수 있음.
@ttl CM 동적 SBD가 업데이트되지 않는 최소 보장 기간(초).
이 속성은 @type=static일 때 존재하지 않음.
@startTime O NTP 시간에서 SBD(SBDStart)의 시작점에 대한 앵커.
이 속성은 MPD@type = '정적'에 대해 존재하지 않음.
존재하지 않는 경우, SBDStart는 다음과 같이 획득.
- MPD 요소에 SBD 디스크립터가 포함된 경우, 앵커는 MPD 유형 '정적' 및 '동적'에 대해 각각 '0' 및 MPD@availabilityStartTime임.
- SBD 디스크립터가 기간 요소에 포함된 경우, 앵커는 Period@Start임.
@duration O 이 SBD가 적용되는 지속 기간(초). 존재하지 않는 경우, 타임라인 또는 오더라인 요소가 지속 기간을 규정함. 존재하는 경우, 이 지속 기간을 벗어난 타임라인 또는 오더라인은 무시됨.
@wrap OD
기본:
'false'
값 'true'의 경우, 모든 타임라인 또는 오더라인 요소가 소진된 후, 세션이 끝날 때까지 동일한 요소를 반복함으로써 새로운 Timeline 또는 Orderline 요소 집합이 추가됨. 즉, 세션의 나머지 모든 세그먼트 요청은 이 요소에 따라 쿼리함.
값 'false'의 경우, 타임라인 또는 오더라인 요소가 세션이 끝나기 전에 종료되면, 세션의 나머지 세그먼트 요청에 쿼리가 추가되지 않음.
타임라인 0..1 시간 값이 있는 값.
V 1..N
오더라인 0..1 오더 값이 있는 값.
타임라인 또는 오더라인 중 하나가 있어야 하지만 둘 다 있어야 하는 것은 아님.
O 1..N
* 범례:
속성의 경우: M=필수, O=선택, OD= 기본 값 포함 선택, CM=조건부 필수.
XML: 요소는 볼드체임. 속성은 볼드체가 아니며, @가 앞에 옴. 목록은 공백으로 구분된 문자열임(xml:list당).
JSON: 개체는 볼드체이고, 이름-값 쌍은 볼드체가 아니고 @가 앞에 옴. 목록은 어레이임.
V. SBD의 오더라인 요소
본 발명의 양태에 따르면, SBD 파일은 복수의 키-값 쌍(또는 이름-값 쌍)을 포함할 수 있다. 복수의 키-값 쌍 중 하나 이상이 DASH 클라이언트(102)와 같은 DASH 클라이언트로부터 DASH 서버(101)와 같은 DASH 서버로 전송된 요청에 추가될 수 있다. SBD 파일의 오더라인 요소는 키-값 쌍의 순서를 규정할 수 있다. 오더라인 요소는 일부 실시형태에서 SBD 파일에서 O 요소로 표현될 수 있다.
본 발명의 양태에 따르면, 오더라인 요소는 선택적 시작 시간 속성(예를 들어, O@t) 및 선택적 시작 세그먼트 속성(예를 들어, O@f 또는 O@c) 중 하나를 포함할 수 있다. 선택적 시작 시간 속성은 오더라인 요소의 시작 시간을 나타낼 수 있고, 선택적 시작 세그먼트 속성은 오더라인 요소에서 시작 세그먼트의 오더 넘버(order number)를 나타낼 수 있다. 즉, 선택적 시작 세그먼트 속성은 제1 세그먼트와 시작 세그먼트 사이의 오프셋을 나타낼 수 있다. 예를 들어, 시작 세그먼트의 오더 넘버가 f인 경우, f-1 세그먼트(들)는 사용을 위해 스킵될 수 있다. 또한, 오더라인 요소는 이 O 요소에 대한 반복 횟수를 나타내는 반복 속성(예를 들어, O@r)을 포함할 수도 있다.
도 5는 본 발명의 실시형태에 따른 SBD 파일의 예시적인 오더라인 요소를 도시한다. 도 5에서, 오더라인 요소는 각 요청에 추가될 키-값 쌍의 순서를 규정한다. 예를 들어, O 요소는 키-값 쌍의 순서를 보여주고, O@t는 O 요소의 선택적 시작 시간이고, O@c는 O 요소의 선택적 시작 세그먼트이고, O@v는 각 요청에 추가될 하나 이상의 키-값 쌍을 포함하고, 그리고 O@r은 이 O 요소에 대한 반복 횟수를 나타낸다.
본 발명의 양상에 따르면, DASH 클라이언트(102)와 같은 DASH 클라이언트는 MPD 파일에서 SBD 디스크립터의 URL이 지시하는 위치로부터 SBD 파일을 다운로드하고, SBD 파일을 파싱하고, 타임라인/오더라인 테이블을 구축할 수 있다. 그 다음, DASH 클라이언트는, (서브)세그먼트를 요청하기 위해 타임라인/오더라인 테이블에서 일치하는 행 및 일치하는 행의 SBD 다스크립터에 열거된 각 키에 대한 해당 값을 찾을 수 있고, SBD 디스크립터에 규정된 키 순서로 쿼리를 구축할 수 있고, 그리고 DASH 서버(101)와 같은 DASH 서버에 전송될 수 있는 (서브)세그먼트 요청에 쿼리를 추가할 수 있다.
일 실시형태에서, DASH 액세스 클라이언트(203)와 같은 DASH 클라이언트는 MPD 파일을 수신하고, MPD 파일의 URL 주소를 SBD 클라이언트(204)와 같은 SBD 클라이언트에 전달할 수 있다. SBD 클라이언트(204)는 URL 주소로부터 키-값 객체를 다운로드하고, 타임라인/오더라인 테이블을 구축할 수 있다. DASH 클라이언트는 SBD 클라이언트에 키와 (서브)세그먼트의 타이밍 또는 순서를 보낼 수 있으며, 이는 요청된 (서브)세그먼트의 타이밍 또는 순서를 계산하고, 요청된 (서브)세그먼트의 타이밍 또는 순서와 일치하는 타임라인/오더라인 테이블에서 행을 찾는다. 그 다음, SBD 클라이언트는, 일치하는 행의 키-값 쌍에서, DASH 클라이언트에 의해 보내진 보낸 키와 일치하는 일치 키 이름을 찾고, 일치된 키 이름에 대응하는 값을 DASH 클라이언트에 반환한다. DASH 클라이언트는 (서브)세그먼트 요청에 사용된 세그먼트 URL의 쿼리 끝에 또는 HTTP 헤더 확장으로서 값(또는 키=값)을 추가할 수 있다.
표 2는 본 발명의 일 실시형태에 따른 SBD 파일의 예시적인 오더라인 요소를 나타낸다. 표 2는 XML로 구현될 수 있다.
요소 또는 속성 이름 사용 설 명
O 쿼리 문자열의 단일 키-값 쌍에 대한 정보를 제공.
참고: 값은 (서브)세그먼트로부터 (서브)세그먼트로 변경될 수 있음.
v CM(목록) KeyValueTimeline@id의 이름(id)과 일치하는 순서로 키-값 쌍의 문자열. 기본값: "null".
각 키-값 쌍의 키와 값은 '='로 구분되고, 모든 2개의 연속 키-값 쌍은 '&'로 구분됨.
각 값은 RFC 3986 섹션 2.2에 따라 무제한 문자만 포함해야 함. 즉, 허용되는 문자는 대문자와 소문자, 십진수, 하이픈, 마침표, 밑줄, 물결표임.
c O 값이 적용되는 시간 범위의 시작.
이 시간의 앵커는 파라미터 SBDStart임. SBDStart는 @startTime 의미론에 규정된 대로 획득됨.
c 또는 s 속성 중 하나만 있을 수 있지만 둘 다 있을 수는 없음.
s O 키-값 쌍을 사용하는 이 O 요소의 추가 세그먼트 수. 예를 들면, n=1, 2개의 세그먼트가 이 요소의 키-값 쌍을 사용하고 있음.
존재하지 않는 경우, 이 요소의 한 세그먼트만 이 요소에 규정된 키-값 쌍을 사용하고 있음.
* 범례:
속성의 경우: M=필수, O=선택, OD= 기본 값 포함 선택, CM=조건부 필수.
요소의 경우; <minOccurs>...<maxOccurs>(N=무제한)

XML: 요소는 볼드체임. 속성은 볼드체가 아니며, @가 앞에 옴. 목록은 공백으로 구분된 문자열임(xml:list당).
JSON: 개체는 볼드체이고, 이름-값 쌍은 볼드체가 아니고 @가 앞에 옴. 목록은 어레이임.
본 발명의 양태에 따르면, SBD 타이밍 모델은 파라미터 SBDStart를 사용함으로써 SBD 타임라인에 대한 시작점을 포함할 수 있고, 라이브 콘텐츠에 대한 명확한 벽시계 시간으로 SBD 타임라인의 스냅을 가능하게 한다. 또한, 파라미터 SBDStart가 명시적으로 시그널링되지 않은 경우, SBD 타임라인은, SBD 파일에 대응하는 SBD 디스크립터가 MPD 요소에 포함될 때 MPD@availabilityStartTime과 같은 속성을 사용하거나 또는 해당 SBD 디스크립터가 기간 요소에 포함될 때 Period@Start 와 같은 속성을 사용하여, MPD 타임라인에 연결될 수 있다. 따라서, MPD 및 SBD 타이밍 모델이 앵커 포인트와 정렬되므로 SBD 타임라인 생성은 더 간단할 수 있다.
일 실시형태에서, SBD 타이밍 모델은 SBD 타임라인에 대한 지속기간을 포함할 수 있다. 지속 기간은 DASH 클라이언트(102)와 같은 DASH 클라이언트에 대한 간단한 루핑/랩 어라운드 계산을 가능하게 할 수 있다. 타임라인 또는 오더라인 요소가 전체 세션 타임라인에 걸쳐 있지 않은 경우, 지속 기간은 SBD 타임라인의 종료를 나타낼 수 있다. 따라서, 루핑/랩 어라운드 기능이 유효하게 되면, 타임라인 또는 오더라인 요소는 세션이 종료될 때까지 반복되고 루핑될 수 있다.
일 실시형태에서, 시작 세그먼트 속성(예를 들어, O@c)은 오더라인 요소에서 시그널링된다. 시작 세그먼트 속성은, 세션을 위해 시작 세그먼트 이전의 모든 세그먼트를 스킵할 수 있음을 나타낼 수 있다. 즉, 시작 세그먼트 속성은 세그먼트 지속 기간을 알지 못한 채 세그먼트 갭을 나타낼 수 있다.
본 발명의 양태는 MPD 타임라인에 대한 SBD 타임라인의 동기화를 가능하게 하는 세션 기반 DASH 동작들을 설명하기 위한 일반화된 애플리케이션-독립적 방법을 제시한다. 단일 속성을 사용하여 정적 및 동적 MPD 유형 모두에 대해 SBD 타임라인의 앵커를 MPD 타임라인의 앵커에 스냅할 수 있다. DASH 클라이언트에 의한 루핑의 간단한 계산은 SBD 세부 타임라인을 확장하지 않고(예를 들어, 각 세그먼트의 세그먼트 지속 기간을 계산하지 않고) 가능할 수 있다. SBD 타임라인의 지속 기간은 SBD 타임라인의 경계를 규정할 수 있다. SBD 타임라인은 오더라인 요소와 연관될 수 있으므로, 오더라인 요소가 세그먼트 지속 기간에 대한 지식 없이 시작 세그먼트의 오더 넘버를 나타낼 때 세그먼트 간격 및 스킵이 가능하다. 일반화된 애플리케이션 독립적인 방법은 XML로 구현될 수 있다.
VI. 흐름도
도 6은 본 발명의 실시형태에 따른 프로세스(600)를 개략적으로 나타내는 흐름도를 도시한다. 다양한 실시형태에서, 프로세스(600)는 DASH 클라이언트(102)의 처리 회로, DASH 액세스 클라이언트(203)의 처리 회로, SBD 클라이언트(204)의 처리 회로 등과 같은 처리 회로에 의해 실행된다. 일부 실시형태에서, 프로세스(600)는 소프트웨어 명령어로 구현되고, 따라서 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(600)를 수행한다. 프로세스(600)는 MPD 파일 및 SBD 파일을 수신하는 단계(S610)에서 시작한다. 그 다음, 프로세스(600)는 단계(S620)로 진행한다.
단계(S620)에서, 프로세스(600)는, SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지 여부를 결정한다. SBD 파일이 시작 시간 속성을 포함하는 것으로 결정되면, 프로세스(600)는 단계(S630)로 진행한다. 그렇지 않은 경우, 프로세스(600)는 단계(S640)로 진행한다.
단계(S630)에서, 프로세스(600)는 SBD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다.
단계(S640)에서, 프로세스(600)는 MPD 파일에 기초하여 SBD 타임라인의 시작 시간을 결정한다.
그 다음, 프로세스(600)가 종료된다.
일 실시형태에서, SBD 타임라인의 시작 시간은, MPD 파일의 유형 및 시작 시간 속성을 포함하지 않는 SBD 파일에 대한 응답으로 SBD 디스크립터가 포함된 MPD 파일의 요소에 기초하여 결정된다. SBD 디스크립터는 SBD 파일에 대응한다.
일 실시형태에서, SBD 타임라인의 시작 시간은 MPD 파일의 유형이 동적이고 그리고 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함된 경우 MPD 요소의 가용성 시작 시간 속성 값으로서 결정된다.
일 실시형태에서, SBD 타임라인의 시작 시간은 MPD 파일의 유형이 정적이고 그리고 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함되는 것에 응답하여 미디어 콘텐츠의 미디어 타임라인의 초기 시작 시간으로 결정된다.
일 실시형태에서, SBD 타임라인의 시작 시간은 기간 요소에 포함된 MPD 파일의 SBD 디스크립터에 대한 응답으로 기간 요소의 시작 시간 속성 값으로서 결정된다.
일 실시형태에서, SBD 파일은 SBD 타임라인의 지속기간을 나타내는 지속기간 속성을 포함한다.
일 실시형태에서, SBD 파일은 SBD 타임라인이 반복되는지 여부를 나타내는 루프 속성을 포함한다.
일 실시형태에서, SBD 파일의 오더라인 요소는 오더라인 요소가 적용되는 시작 세그먼트를 나타내는 속성을 포함한다.
일 실시형태에서, 시작 세그먼트의 타이밍 정보는 SBD 타임라인의 시작 시간에 기초한다.
도 7은 본 발명의 실시형태에 따른 프로세스(700)를 개략적으로 나타내는 다른 흐름도를 도시한다. 다양한 실시형태에서, 프로세스(700)는 DASH 서버(101)의 처리 회로, 콘텐츠 생성 장치(201)의 처리 회로, 콘텐츠 서버(202)의 처리 회로와 등과 같은 처리 회로에 의해 실행된다. 일부 실시형태에서, 프로세스(700)는 소프트웨어 명령어로 실행되고, 따라서 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(700)를 수행한다. 프로세스(700)는 MPD 파일 및 SBD 파일을 생성하는 단계(S710)에서 시작한다.
일 실시형태에서, MPD 파일의 MPD 유형이 동적일 때, SBD 파일은 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함할 수 있다.
일 실시형태에서, 세션의 SBD 타임라인의 시작 시간은 MPD 파일에 기초하여 결정될 수 있다. 예를 들어, SBD 파일에 대응하는 SBD 디스크립터가 MPD 파일의 MPD 요소에 포함되어 있는 경우, SBD 타임라인의 시작 시간의 앵커는 미디어 콘텐츠의 미디어 타임라인의 초기 시작 시간(예를 들어, '0') 및 정적 MPD 및 동적 MPD에 대한 MPD 가용성 시작 시간 속성 값(예를 들어, MPD@availabilityStartTime)일 수 있다. 대응하는 SBD 디스크립터가 기간 요소에 포함되는 경우, SBD 타임라인의 시작 시간의 앵커는 기간 요소의 시작 시간일 수 있다.
그 다음, 프로세스(700)는 단계(S720)로 진행한다.
단계(S720)에서, 프로세스(700)는 MPD 파일 및 SBD 파일을 DASH 클라이언트(102)와 같은 DASH 클라이언트로 전송한다. 이후, 프로세스(700)는 단계(S730)로 진행한다.
단계(S730)에서, 프로세스(700)는 DASH 클라이언트로부터 요청을 수신한다.
일 실시형태에서, DASH 클라이언트는 MPD 파일 및 SBD 파일 중 적어도 하나에 기초하여 SBD 타임라인의 시작 시간을 결정할 수 있다. 예를 들어, DASH 클라이언트는 먼저 MPD 파일의 MPD 유형을 결정할 수 있다. MPD 타입이 정적인 것으로 결정되면, DASH 클라이언트는 SBD 파일에 대응하는 SBD 디스크립터에 기초하여 SBD 타임라인의 시작 시간을 결정할 수 있다. 대응하는 SBD 디스크립터가 MPD 요소에 포함되는 경우, SBD 타임라인의 시작 시간은 미디어 콘텐츠의 미디어 타임라인의 초기 시작 시간일 수 있다. 대응하는 SBD 디스크립터가 기간 요소에 포함되는 경우, SBD 타임라인의 시작 시간은 기간 요소의 시작 시간일 수 있다. MPD 유형이 동적이라고 결정되면, DASH 클라이언트는, SBD 파일이 시작 시간 속성을 포함하는지 여부를 결정할 수 있다. SBD 파일이 시작 시간 속성을 포함하는 것으로 결정되면, DASH 클라이언트는 시작 시간 속성에 기초하여 SBD 타임라인의 시작 시간을 결정할 수 있다. 그렇지 않고, SBD 파일이 시작 시간 속성을 포함하지 않는 것으로 결정되면, DASH 클라이언트는 대응하는 SBD 디스크립터에 기초하여 SBD 타임라인의 시작 시간을 결정할 수 있다. 대응하는 SBD 디스크립터가 MPD 요소에 포함되는 경우, SBD 타임라인의 시작 시간은 MPD 가용성 시작 시간의 값일 수 있다. 대응하는 SBD 디스크립터가 기간 요소에 포함되는 경우, SBD 타임라인의 시작 시간은 기간 요소의 시작 시간일 수 있다.
일 실시형태에서, DASH 클라이언트는 SBD 파일을 파싱하고, 타임라인/오더라인 테이블을 구축할 수 있다. 그 다음, DASH 클라이언트는 대응하는 SBD 디스크립터에 규정된 키의 순서로 쿼리를 구축하고, 단계(S730)에서 프로세스(700)가 수신한 요청에 쿼리를 추가할 수 있다.
그 다음, 프로세스(700)는 단계(740)로 진행한다. 단계(S740)에서, 프로세스(700)는 요청에 기초하여 하나 이상의 미디어 세그먼트를 DASH 클라이언트로 전송한다. 그 다음, 프로세스(700)가 종료된다.
VII. 컴퓨터 시스템
위에서 설명된 기술은 컴퓨터 판독 가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고, 하나 이상의 컴퓨터 판독 가능 미디어에 물리적으로 저장될 수 있다. 예를 들어, 도 8은 개시된 발명 대상의 특정 실시형태를 실행하기에 적합한 컴퓨터 시스템(800)을 도시한다.
하나 이상의 컴퓨터 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 등에 의해 직접 또는 해석, 마이크로 코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위해, 컴퓨터 소프트웨어는 어셈블리, 컴파일, 링크 등의 메커니즘이 적용될 수 있는 임의의 적절한 기계어 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령은, 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 장치, 사물 인터넷 장치 등을 포함하는 다양한 유형의 컴퓨터 또는 그 구성 요소에서 실행될 수 있다.
컴퓨터 시스템(800)에 대해 도 8에 도시된 구성요소는 본질적으로 예시적이며, 본 발명의 실시형태를 구현하는 컴퓨터 소프트웨어의 사용 범위 또는 기능에 관한 임의의 제한을 제안하는 것을 의도하는 것은 아니다. 구성요소의 구성이 컴퓨터 시스템(800)의 예시적인 실시형태에 예시된 구성요소 중 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서도 안 된다.
컴퓨터 시스템(800)은 특정 휴먼 인터페이스 입력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 장치는, 예를 들어 촉각 입력(예를 들어, 키스트로크, 스와이프, 데이터 글러브 움직임), 오디오 입력(예를 들어, 음성, 박수), 시각적 입력(예를 들어, 제스쳐), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 장치는 또한, 오디오(예를 들어, 음성, 음악, 주변 소리), 이미지(예를 들어, 스캔 이미지, 정지 이미지 카메라에서 얻은 사진 이미지), 비디오(예를 들어, 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같은, 인간의 의식적 입력과 직접적으로 관련되지 않은 특정 미디어를 캡처하는 데 사용할 수도 있다.
입력 휴먼 인터페이스 장치는, 키보드(801), 마우스(802), 트랙패드(803), 터치 스크린(810), 데이터 글러브(미도시), 조이스틱(805), 마이크(806), 스캐너(807) 및 카메라(808) 중 하나 이상(각 도시된 것 중 하나만)을 포함할 수 있다.
컴퓨터 시스템(800)은 또한 특정 휴먼 인터페이스 출력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 예를 들어 촉각 출력, 소리, 빛 및 냄새/미각을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는, 촉각 출력 장치(예를 들어, 터치 스크린(810), 데이터 글러브(도시되지 않음) 또는 조이스틱(805)에 의한 촉각 피드백이지만, 입력 장치로 사용되지 않는 촉각 피드백 장치도 있을 수 있음), 오디오 출력 장치(예를 들어, 스피커(809), 헤드폰(도시되지 않음)), 시각 출력 장치(예를 들어, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(810), 각각 터치 스크린 입력 기능이 있거나 없고, 각각 촉각 피드백 기능이 있거나 없고, 이들 중 일부는 입체 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력할 수 있고, 가상 현실 안경(도시되지 않음), 홀로그램 디스플레이 및 연기 탱크(도시되지 않음)), 및 프린터(도시되지 않음)를 포함할 수 있다. 이러한 시각적 출력 장치(예를 들어, 스크린(810))는 그래픽 어댑터(850)를 통해 시스템 버스(848)에 연결될 수 있다.
컴퓨터 시스템(800)은 또한 CD/DVD 또는 이와 유사한 매체(821)가 있는 CD/DVD ROM/RW(820), 썸(thumb) 드라이브(822), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(823), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(dongle)(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 장치 등을 포함하는 광학 매체와 같은 인간 액세스 가능한 저장 장치 및 관련 매체를 포함할 수 있다.
통상의 기술자는 또한 현재 개시된 발명 대상과 관련하여 사용되는 용어 "컴퓨터 판독가능 매체"가 전송 매체, 반송파, 또는 다른 일시적 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(800)은 또한 하나 이상의 통신 네트워크(855)에 대한 네트워크 인터페이스(854)를 포함할 수 있다. 하나 이상의 통신 네트워크(855)는 예를 들어 무선, 유선, 광일 수 있다. 하나 이상의 통신 네트워크(855)는 또한 로컬, 광역, 대도시권, 차량 및 산업, 실시간, 지연 허용 등이 될 수 있다. 하나 이상의 통신 네트워크(855)의 예는 이더넷 등의 근거리 통신망, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus 등을 포함하는 차량 및 산업 네트워크를 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(849)(예를 들어 컴퓨터 시스템(800)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하고; 다른 것들은 일반적으로 아래에 설명된 바와 같이 시스템 버스에 부착함으로써 컴퓨터 시스템(800)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 어느 하나를 사용하여 컴퓨터 시스템(800)은 다른 독립체(entity)와 통신할 수 있다. 이러한 통신은, 예를 들어 근거리 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템에 대한 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 송신 전용 (예를 들어 CANbus에서 특정 CANbus 장치로) 또는 양방향일 수 있다. 특정 프로토콜 및 프로토콜 스택은 위에서 설명한 대로 각 네트워크 및 네트워크 인터페이스에서 사용될 수 있다.
전술한 휴먼 인터페이스 장치, 사람이 액세스할 수 있는 저장 장치, 및 네트워크 인터페이스는 컴퓨터 시스템(800)의 코어(840)에 부착될 수 있다.
코어(840)는 하나 이상의 중앙 처리 장치(CPU)(841), 그래픽 처리 장치(GPU)(842), 현장 프로그래밍 가능한 게이트 영역(FPGA, Field Programmable Gate Areas)(843) 형태의 전문화된 프로그램 가능 처리 장치, 특정 작업을 위한 하드웨어 가속기(844) 등을 포함할 수 있다. 이러한 장치는 읽기 전용 메모리(ROM)(845), 랜덤 액세스 메모리(846), 사용자가 액세스할 수 없는 내부 하드 드라이브와 같은 내부 대용량 저장 장치, SSD 등(847)과 함께 시스템 버스(848)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(848)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리적 플러그의 형태로 액세스할 수 있다. 주변 장치는 코어의 시스템 버스(848)에 직접 연결되거나 주변 버스(849)를 통해 연결될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등이 포함한다.
CPU(841), GPU(842), FPGA(843) 및 가속기(844)는 조합되어 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(845) 또는 RAM(846)에 저장될 수 있다. 천이 데이터는 RAM(846)에도 저장될 수 있는 반면, 영구 데이터는 예를 들어 내부 대용량 저장 장치(847)에 저장될 수 있다. 모든 메모리 장치에 대한 빠른 저장 및 검색은 하나 이상의 CPU(841), GPU(842), 대용량 저장 장치(847), ROM(845), RAM(846) 등과 밀접하게 연관될 수 있는 캐시(cache) 메모리를 사용하여 유효하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터 구현 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 발명의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 기술 분야의 숙련자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한되지 않는 예로서, 아키텍처(800), 특히 코어(840)를 갖는 컴퓨터 시스템은 하나 이상의 유형의 컴퓨터 판독가능 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터 판독 가능 매체는 위에서 소개한 사용자 액세스 가능한 대용량 저장 장치와 관련된 매체일 수 있을 뿐만 아니라, 코어 내부 대용량 저장 장치(847) 또는 ROM(845)과 같은 비일시적 특성을 갖는 코어(840)의 특정 저장소일 수 있다. 본 발명의 다양한 실시형태를 구현하는 소프트웨어는 이러한 장치에 저장되어 코어(840)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 특정 요구에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(840) 및 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)가 RAM(846)에 저장된 데이터 구조를 규정하고 소프트웨어에 의해 규정된 프로세스에 따라 이러한 데이터 구조를 수정을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 그와 함께 동작할 수 있는 회로(예를 들어, 가속기(844))에 내장되거나 달리 구현된 논리의 결과로 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 논리를 포함할 수 있으며, 해당되는 경우 그 반대의 경우도 마찬가지이다. 컴퓨터 판독 가능 매체에 대한 언급은 적절한 경우 실행을 위한 소프트웨어를 저장하는 회로(예를 들어, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는 둘 모두를 포함할 수 있다. 본 발명은 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
본 발명은 몇몇 예시적인 실시형태를 설명하였지만, 발명의 범위 내에 속하는 변경, 순열 및 다양한 대체 균등물이 있다. 따라서 통상의 기술자는 본 명세서에 명시적으로 나타내거나 기술되지는 않았지만 본 발명의 원리를 구현하고, 따라서 본 발명의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.

Claims (20)

  1. 미디어 콘텐츠의 미디어 데이터를 수신하는 방법으로서,
    미디어 프리젠테이션 기술(MPD, media presentation description) 파일 및 세션 기반 기술(SBD, session-based description) 파일을 수신하는 단계;
    상기 SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지 여부를 결정하는 단계;
    상기 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여 상기 SBD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계; 및
    상기 SBC 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여 상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계는,
    상기 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여, SBD 디스크립터가 포함된 MPD 파일의 요소 및 상기 MPD 파일의 유형에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계를 추가로 포함하고,
    상기 SBD 디스크립터는 상기 SBD 파일에 대응하는, 방법.
  3. 제2항에 있어서,
    상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계는,
    상기 MPD 파일의 유형이 동적(dynamic)인 것이고, 상기 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함되어 있는 것에 응답하여, 상기 SBD 타임라인의 시작 시간을 상기 MPD 요소의 가용성 시작 시간 속성 값(value of an availability starting time attribute)으로서 결정하는 단계를 추가로 포함하는, 방법.
  4. 제2항에 있어서,
    상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계는,
    상기 MPD 파일의 유형이 정적(static)인 것이고, 상기 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함되어 있는 것에 응답하여, 상기 SBD 타임라인의 시작 시간을 상기 미디어 컨텐츠의 미디어 타임라인의 초기 시작 시간으로서 결정하는 단계를 추가로 포함하는, 방법.
  5. 제2항에 있어서,
    상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계는,
    상기 MPD 파일의 SBD 디스크립터가 기간 요소(period element)에 포함되어 있는 것에 응답하여, 상기 SBD 타입라인의 시작 시간을 상기 기간 요소의 시작 시간 속성 값으로서 결정하는 단계를 추가로 포함하는, 방법.
  6. 제1항에 있어서,
    상기 SBD 파일은 SBD 타임라인의 지속시간을 나타내는 지속시간 속성을 포함하는, 방법.
  7. 제1항에 있어서,
    상기 SBD 파일은 SBD 타임라인이 반복되는지의 여부를 나타내는 루프 속성을 포함하는, 방법.
  8. 제1항에 있어서,
    상기 SBD 파일의 오더라인 요소(orderline element)는 상기 오더라인 요소가 적용되는 시작 세그먼트를 나타내는 속성을 포함하는, 방법.
  9. 제8항에 있어서,
    상기 시작 세그먼트의 타이밍 정보는 SBD 타임라인의 시작 시간에 기초하는, 방법.
  10. 미디어 콘텐트의 미디어 데이터를 수신하기 위한 장치로서,
    미디어 프리젠테이션 기술(MPD) 파일 및 세션 기반 기술(SBD) 파일을 수신하고;
    상기 SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지 여부를 결정하고;
    상기 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여, 상기 SBD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하고;
    상기 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여, 상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하도록 구성된
    처리 회로를 포함하는 장치.
  11. 제10항에 있어서,
    상기 처리 회로는,
    상기 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여, SBD 디스크립터가 포함된 MPD 파일의 요소 및 상기 MPD 파일의 유형에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하도록 추가로 구성되고,
    상기 SBD 디스크립터는 상기 SBD 파일에 대응하는, 장치.
  12. 제11항에 있어서,
    상기 처리 회로는,
    상기 MPD 파일의 유형이 동적(dynamic)인 것이고, 상기 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함되어 있는 것에 응답하여, 상기 SBD 타임라인의 시작 시간을 상기 MPD 요소의 가용성 시작 시간 속성 값(value of an availability starting time attribute)으로서 결정하도록 추가로 구성되는, 장치.
  13. 제11항에 있어서,
    상기 처리 회로는,
    상기 MPD 파일의 유형이 정적(static)인 것이고, 상기 MPD 파일의 SBD 디스크립터가 MPD 요소에 포함되어 있는 것에 응답하여, 상기 SBD 타임라인의 시작 시간을 상기 미디어 컨텐츠의 미디어 타임라인의 초기 시작 시간으로서 결정하도록 추가로 구성되는, 장치.
  14. 제11항에 있어서,
    상기 처리 회로는,
    상기 MPD 파일의 SBD 디스크립터가 기간 요소(period element)에 포함되어 있는 것에 응답하여, 상기 SBD 타입라인의 시작 시간을 상기 기간 요소의 시작 시간 속성 값으로서 결정하도록 추가로 구성되는, 장치.
  15. 제10항에 있어서,
    상기 SBD 파일은 SBD 타임라인의 지속시간을 나타내는 지속시간 속성을 포함하는, 장치.
  16. 제10항에 있어서,
    상기 SBD 파일은 SBD 타임라인이 반복되는지의 여부를 나타내는 루프 속성을 포함하는, 장치.
  17. 제10항에 있어서,
    상기 SBD 파일의 오더라인 요소는 오더라인 요소가 적용되는 시작 세그먼트를 나타내는 속성을 포함하는, 장치.
  18. 제17항에 있어서,
    상기 시작 세그먼트의 타이밍 정보는 SBD 타임라인의 시작 시간에 기초하는, 장치.
  19. 명령을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 명령은 미디어 콘텐츠의 미디어 데이터를 수신하기 위해 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    미디어 프리젠테이션 기술(MPD) 파일 및 세션 기반 기술(SBD) 파일을 수신하는 단계;
    상기 SBD 파일이 세션의 SBD 타임라인의 시작 시간을 나타내는 시작 시간 속성을 포함하는지의 여부를 결정하는 단계;
    상기 SBD 파일이 시작 시간 속성을 포함하는 것에 응답하여 상기 SBD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계; 및
    상기 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여 상기 MPD 파일에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계
    를 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  20. 제19항에 있어서,
    상기 명령은 상기 컴퓨터로 하여금,
    상기 SBD 파일이 시작 시간 속성을 포함하지 않는 것에 응답하여, SBD 디스크립터가 포함된 MPD 파일의 요소 및 상기 MPD 파일의 유형에 기초하여 상기 SBD 타임라인의 시작 시간을 결정하는 단계를 추가로 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020217033513A 2020-01-06 2021-01-04 Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보 KR102635342B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062957671P 2020-01-06 2020-01-06
US62/957,671 2020-01-06
US17/076,935 US11570509B2 (en) 2020-01-06 2020-10-22 Session-based information for dynamic adaptive streaming over HTTP
US17/076,935 2020-10-22
PCT/US2021/012061 WO2021141848A1 (en) 2020-01-06 2021-01-04 Session-based information for dynamic adaptive streaming over http

Publications (2)

Publication Number Publication Date
KR20210141598A true KR20210141598A (ko) 2021-11-23
KR102635342B1 KR102635342B1 (ko) 2024-02-07

Family

ID=76654496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033513A KR102635342B1 (ko) 2020-01-06 2021-01-04 Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보

Country Status (6)

Country Link
US (2) US11570509B2 (ko)
EP (1) EP4088418A4 (ko)
JP (1) JP7252373B2 (ko)
KR (1) KR102635342B1 (ko)
CN (2) CN113661680B (ko)
WO (1) WO2021141848A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228796B2 (en) * 2020-01-07 2022-01-18 Tencent America LLC Pattern addressing for session-based dash operations
US11445270B2 (en) 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
US11683355B2 (en) * 2021-01-05 2023-06-20 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6064249B2 (ja) 2012-07-09 2017-01-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 動的適応ストリーミングオーバーハイパーテキスト転送プロトコルクライアント挙動フレームワークおよびセッション管理の実装
US9432426B2 (en) 2013-02-04 2016-08-30 Qualcomm Incorporated Determining available media data for network streaming
CA2948124C (en) 2014-05-16 2018-03-20 Sony Corporation Reception apparatus, reception method, transmission apparatus, and transmission method
WO2016056412A1 (ja) 2014-10-10 2016-04-14 ソニー株式会社 受信装置、受信方法、送信装置、及び、送信方法
US10305940B2 (en) * 2014-11-12 2019-05-28 Lg Electronics Inc. Broadcasting signal transmission device, broadcasting signal reception device, broadcasting signal transmission method, and broadcasting signal reception method
EP3220653B1 (en) * 2014-11-13 2019-12-04 Sony Corporation Reception device, reception method, transmission device, and transmission method for layer-coded services using route sessions
WO2016105100A1 (ko) * 2014-12-22 2016-06-30 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10129308B2 (en) * 2015-01-08 2018-11-13 Qualcomm Incorporated Session description information for over-the-air broadcast media data
KR101814404B1 (ko) * 2015-03-01 2018-01-04 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10454985B2 (en) * 2015-03-04 2019-10-22 Qualcomm Incorporated File format based streaming with dash formats based on LCT
US10749917B2 (en) * 2015-03-12 2020-08-18 Lg Electronics Inc. Broadcast signal transmission apparatus, broadcast signal reception apparatus, broadcast signal transmission method, and broadcast signal reception method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Text of ISO/IEC FDIS 23009-1 4th edition, MPEG 127th Gothenbug meeting, N18609, 2019.08.12.* *
WD of ISO/IEC 23009-8 Session-based DASH operations, MPEG 128th Geveva meeting, w18844, 2020.01.02.* *

Also Published As

Publication number Publication date
US20210211762A1 (en) 2021-07-08
KR102635342B1 (ko) 2024-02-07
CN118055275A (zh) 2024-05-17
JP7252373B2 (ja) 2023-04-04
EP4088418A4 (en) 2023-12-20
US11570509B2 (en) 2023-01-31
WO2021141848A1 (en) 2021-07-15
CN113661680B (zh) 2024-03-01
US20230087428A1 (en) 2023-03-23
EP4088418A1 (en) 2022-11-16
CN113661680A (zh) 2021-11-16
JP2022526807A (ja) 2022-05-26
US11785283B2 (en) 2023-10-10

Similar Documents

Publication Publication Date Title
KR102635342B1 (ko) Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보
JP7176133B2 (ja) Http上の動的アダプティブストリーミングのための方法、装置及びコンピュータプログラム
CN113748659B (zh) 接收会话的媒体数据的方法、装置和非易失性计算机可读介质
KR102495551B1 (ko) Http를 통한 동적 적응 스트리밍을 위한 세션 기반 정보
US11418561B2 (en) Remote link validity interval in media streaming
US11451602B2 (en) Methods and apparatuses for dynamic adaptive streaming over HTTP
JP7190589B2 (ja) セッションベースdash動作のためのパターン指定
KR20220129622A (ko) Http를 통한 동적 적응 스트리밍을 위한 방법들 및 장치들
JP7395766B2 (ja) Httpを介した動的適応ストリーミングのための方法および装置
CN115462063A (zh) 用于通过http的动态自适应流传输的方法和设备
CN113364728A (zh) 媒体内容接收方法、装置、存储介质和计算机设备

Legal Events

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