KR20220100698A - 세션 기반 dash 동작을 사용한 url 맞춤화 - Google Patents

세션 기반 dash 동작을 사용한 url 맞춤화 Download PDF

Info

Publication number
KR20220100698A
KR20220100698A KR1020227020635A KR20227020635A KR20220100698A KR 20220100698 A KR20220100698 A KR 20220100698A KR 1020227020635 A KR1020227020635 A KR 1020227020635A KR 20227020635 A KR20227020635 A KR 20227020635A KR 20220100698 A KR20220100698 A KR 20220100698A
Authority
KR
South Korea
Prior art keywords
information
sbd
video content
segment
url
Prior art date
Application number
KR1020227020635A
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 KR20220100698A publication Critical patent/KR20220100698A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/1066Session management
    • H04L65/1096Supplementary features, e.g. call forwarding or call holding
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • 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/26258Content 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 generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • 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/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

프로세서 또는 프로세서들로 하여금, 세션의 미디어 프리젠테이션 기술(MPD) 정보를 생성하도록 클라이언트에 명령하는 세션 기반 기술(SBD) 정보를 획득하는 것, MPD 정보에 기초하여 SBD 클라이언트를 론칭하고 SBD 디스크립터 정보를 전달하는 것, 세그먼트 유일 자원 지시기(URL)의 생성, 타이밍의 제공; 및 적어도 세그먼트 URL을 수정함으로써 비디오 콘텐츠의 세그먼트에 대한 요청의 처리를 제어하는 것, 및 수정된 세그먼트 URL에 기초하여 비디오 콘텐츠의 세그먼트를 제공하는 것을 수행하게 하도록 구성된 컴퓨터 코드를 포함하는 방법 및 장치가 포함된다.

Description

세션 기반 DASH 동작을 사용한 URL 맞춤화
본 출원은 2020년 10월 7일자 출원된 미국 가출원 63/088,647호, 및 2021년 7월 1일자 출원된 미국 출원 17/365,400호에 대한 우선권을 주장하며, 이 출원들의 내용은 이로써 그 전체가 인용에 의해 본 출원에 명시적으로 포함된다.
본 개시내용은 이를테면, 세션 기반(Session-Based) HTTP를 통한 동적 적응 스트리밍(DASH: Dynamic Adaptive Streaming over HTTP) 동작 표준(ISO/IEC 23009-8)에 대한 세션 기반 기술(SBD: Session-Based Description) 포맷을 사용하는 세션별 그리고 클라이언트(client)별 세그먼트(segment) URL(uniform resource locator) 맞춤화에 관한 것이다.
동화상 전문가 그룹(MPEG: Moving Picture Experts Group)은 최근에 세션 기반 DASH 동작을 위한 DASH 표준화의 새로운 부분에 착수했다. 이러한 세션에서는, 미디어 프리젠테이션 기술(MPD: media presentation description)이 모든 클라이언트에 대해 일반적이지만, 클라이언트는 SBD라고 하는 사이드 파일을 얻을 수 있으며, 이는 클라이언트가 MPD를 해당 세션에 대해 특정하게 하기 위한 명령을 제공한다. 그러나 이러한 분야에서는, 기껏해야 URL(uniform resource locator)에 쿼리를 추가하는 것 이상의 기능이 없을 수 있다는 기술적 문제가 발생한다.
하나 이상의 다른 기술적 문제를 해결하기 위해, 본 개시내용은 그러한 기능을 개선하는 기술적 솔루션을 제공한다.
컴퓨터 프로그램 코드를 저장하도록 구성된 메모리, 및 컴퓨터 프로그램 코드에 액세스하고 컴퓨터 프로그램 코드에 의해 명령된 대로 동작하도록 구성된 프로세서 또는 프로세서들을 포함하는 방법 및 장치가 포함된다. 컴퓨터 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 세션의 미디어 프리젠테이션 기술(MPD) 정보를 생성하도록 클라이언트에 명령하는 세션 기반 기술(SBD) 정보를 획득하게 하도록 구성된 획득 코드, 적어도 하나의 프로세서로 하여금, MPD 정보에 기초하여 SBD 클라이언트를 론칭(launch)하고 SBD 디스크립터(descriptor) 정보를 전달하게 하도록 구성된 론칭 코드, 적어도 하나의 프로세서로 하여금, 세그먼트 URL(uniform resource locator)의 생성, 타이밍의 제공; 및 적어도 세그먼트 URL을 수정함으로써 비디오 콘텐츠(video content)의 세그먼트에 대한 요청의 처리를 제어하게 하도록 구성된 제어 코드, 및 적어도 하나의 프로세서로 하여금, 수정된 세그먼트 URL에 기초하여 비디오 콘텐츠의 세그먼트를 제공하게 하도록 구성된 제공 코드를 포함한다.
예시적인 실시예에 따르면, SBD 정보는 URL 값, 템플릿(template) 값 및 키(key) 값을 포함한다.
예시적인 실시예에 따르면, 적어도 하나의 하드웨어 프로세서로 하여금, SBD 정보에 기초하여 수정된 세그먼트 URL을 생성하게 하도록 구성된 생성 코드가 있다.
예시적인 실시예에 따르면, 적어도 하나의 하드웨어 프로세서로 하여금, 사용자 정보가 SBD 정보에서 지시되는지 여부를 결정하게 하고, 사용자 정보가 SBD 정보에서 지시되는 경우, SBD 정보의 사용자 정보 템플릿에서 적어도 문자열(string)을 대체함으로써 세그먼트 URL을 수정하게 하도록 구성된 결정 코드가 있다.
예시적인 실시예에 따르면, 적어도 하나의 하드웨어 프로세서로 하여금, 호스트 정보가 SBD 정보에서 지시되는지 여부를 결정하게 하고, 호스트 정보가 SBD 정보에서 지시되는 경우, SBD 정보의 호스트 정보 템플릿에서 적어도 문자열을 대체함으로써 세그먼트 URL을 수정하게 하도록 구성된 결정 코드가 있다.
예시적인 실시예에 따르면, 적어도 하나의 하드웨어 프로세서로 하여금, 포트 정보가 SBD 정보에서 지시되는지 여부를 결정하게 하고, 포트 정보가 SBD 정보에서 지시되는 경우, SBD 정보의 포트 정보 템플릿에서 적어도 문자열을 대체함으로써 세그먼트 URL을 수정하게 하도록 구성된 결정 코드가 있다.
예시적인 실시예에 따르면, 적어도 하나의 하드웨어 프로세서로 하여금, 경로 정보가 SBD 정보에서 지시되는지 여부를 결정하게 하고, 경로 정보가 SBD 정보에서 지시되는 경우, SBD 정보의 경로 정보 템플릿에서 적어도 문자열을 대체함으로써 세그먼트 URL을 수정하게 하도록 구성된 결정 코드가 있다.
예시적인 실시예에 따르면, 수정된 세그먼트 URL을 생성하는 것은 세그먼트 URL의 적어도 하나의 권한 필드를 수정하는 것을 포함한다.
예시적인 실시예에 따르면, 수정된 세그먼트 URL을 생성하는 것은 세그먼트 URL의 적어도 하나의 경로 필드를 수정하는 것을 포함한다.
예시적인 실시예에 따르면, 수정된 세그먼트 URL을 생성하는 것은 세그먼트 URL의 적어도 하나의 권한 필드 및 하나의 경로 필드를 수정하는 것을 포함한다.
개시된 청구 대상의 추가 특징, 성질 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 보다 명백해질 것이다.
도 1은 실시예에 따른 단순화된 개략적인 예시이다.
도 2는 실시예에 따른 단순화된 개략적인 예시이다.
도 3은 실시예에 따른 디코더에 관한 단순화된 블록도이다.
도 4는 실시예에 따른 인코더에 관한 단순화된 블록도이다.
도 5는 실시예에 따른 단순화된 블록도이다.
도 6은 실시예에 따른 단순화된 흐름도이다.
도 7은 실시예에 따른 단순화된 흐름도이다.
도 8은 실시예에 따른 개략적인 예시이다.
아래에서 논의되는 제안된 특징은 개별적으로 또는 임의의 순서로 조합되어 사용될 수 있다. 또한, 실시예는 처리 회로(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일례로, 하나 이상의 프로세서는 비-일시적 컴퓨터 판독 가능 매체에 저장된 프로그램을 실행한다.
도 1은 본 개시내용의 일 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 통신 시스템(100)은 네트워크(105)를 통해 상호 접속된 적어도 2개의 단말(102, 103)을 포함할 수 있다. 데이터의 단방향 전송을 위해, 제1 단말(103)은 네트워크(105)를 통한 다른 단말(102)로의 전송을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(102)은 네트워크(105)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하며, 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션 등에서 공통적일 수 있다.
도 1은 예를 들어, 화상 회의 동안 발생할 수 있는 코딩된 비디오의 양방향 전송을 지원하기 위해 제공되는 제2 쌍의 단말(101, 104)을 예시한다. 데이터의 양방향 전송을 위해, 각각의 단말(101, 104)은 네트워크(105)를 통한 다른 단말로의 전송을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(101, 104)은 또한 다른 단말에 의해 전송된 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있으며, 로컬 디스플레이 디바이스에서 복원된 비디오 데이터를 디스플레이할 수 있다.
도 1에서, 단말(101, 102, 103, 104)은 서버, 개인용 컴퓨터 및 스마트폰으로서 예시될 수 있지만, 본 개시내용의 원리는 이에 제한되지 않는다. 본 개시내용의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비를 사용한 애플리케이션을 찾아낸다. 네트워크(105)는 예를 들어, 유선 및/또는 무선 통신 네트워크를 포함하여, 코딩된 비디오 데이터를 단말(101, 102, 103, 104) 사이에 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(105)는 회선 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 원격 통신 네트워크, 근거리 네트워크, 광역 네트워크 및/또는 인터넷을 포함한다. 본 논의의 목적으로, 네트워크(105)의 아키텍처 및 토폴로지는 본 명세서에서 아래에 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는 개시된 청구 대상에 대한 애플리케이션에 대한 일례로, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 청구 대상은 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 매체 상의 압축된 비디오의 저장 등을 포함하는 다른 비디오 가능 애플리케이션에 동일하게 적용 가능할 수 있다.
스트리밍 시스템은 예를 들어, 압축되지 않은 비디오 샘플 스트림(213)을 생성하는 비디오 소스(201), 예를 들어 디지털 카메라를 포함할 수 있는 캡처 서브시스템(203)을 포함할 수 있다. 해당 샘플 스트림(213)은 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨으로서 강조될 수 있고, 카메라(201)에 결합된 인코더(202)에 의해 처리될 수 있다. 인코더(202)는 아래에서 더 상세히 설명되는 바와 같이, 개시된 청구 대상의 양상을 가능하게 하거나 구현하기 위한 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨으로서 강조될 수 있는 인코딩된 비디오 비트스트림(204)은 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(212, 207)가 스트리밍 서버(205)에 액세스하여, 인코딩된 비디오 비트스트림(204)의 사본(208, 206)을 리트리브할 수 있다. 클라이언트(212)는, 인코딩된 비디오 비트스트림(208)의 착신(incoming) 사본을 디코딩하고, 디스플레이(209) 또는 (도시되지 않은) 다른 렌더링 디바이스에 렌더링될 수 있는 발신(outgoing) 비디오 샘플 스트림(210)을 생성하는 비디오 디코더(211)를 포함할 수 있다. 일부 스트리밍 시스템에서, 비디오 비트스트림(204, 206, 208)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예는 위에 언급되어 있으며 여기에 추가로 설명된다.
도 3은 본 발명의 일 실시예에 따른 비디오 디코더(300)의 기능 블록도일 수 있다.
수신기(302)는 디코더(300)에 의해 디코딩될 하나 이상의 코덱 비디오 시퀀스를; 동일한 또는 다른 실시예에서는 한 번에 하나의 코딩된 비디오 시퀀스씩 수신할 수신기 수 있으며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는 하드웨어/소프트웨어 링크일 수 있는 채널(301)로부터, 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 수신될 수 있다. 수신기(302)는 (도시되지 않은) 엔티티를 사용하여 이들 각각에 포워딩될 수 있는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(302)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터(jitter)에 대처하기 위해, 버퍼 메모리(303)는 수신기(302)와 엔트로피 디코더/파서(304)(이하 "파서") 사이에 결합될 수 있다. 수신기(302)가 충분한 대역폭 및 제어 가능성의 저장/전달 디바이스로부터, 또는 등시성(isosynchronous) 네트워크로부터 데이터를 수신하고 있을 때, 버퍼(303)는 필요하지 않을 수 있거나 작을 수 있다. 인터넷과 같은 최선형(best effort) 패킷 네트워크 상에서의 사용을 위해, 버퍼(303)가 요구될 수 있고, 비교적 클 수 있고, 유리하게는 적응적 크기일 수 있다.
비디오 디코더(300)는 엔트로피 코딩된 비디오 시퀀스로부터 심벌(313)을 재구성하기 위한 파서(304)를 포함할 수 있다. 그러한 심벌의 카테고리는 디코더(300)의 동작을 관리하는 데 사용되는 정보, 및 잠재적으로 디코더의 내장 부품이 아니라 디코더에 결합될 수 있는 디스플레이(312)와 같은 렌더링 디바이스를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 부가 확장 정보(SEI: Supplementary Enhancement Information) 메시지 또는 비디오 사용성 정보 파라미터 세트 프래그먼트(도시되지 않음)의 형태일 수 있다. 파서(304)는 수신되는 코딩된 비디오 시퀀스를 파싱(parse)/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만(Huffman) 코딩, 상황 민감도를 갖거나 갖지 않는 산술 코딩 등을 포함하여, 당해 기술분야에서 통상의 지식을 가진 자에게 잘 알려진 원리를 따를 수 있다. 파서(304)는 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더 내의 픽셀의 하위 그룹 중 적어도 하나에 대한 한 세트의 하위 그룹 파라미터를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 하위 그룹은 픽처의 그룹(GOP: Group of Pictures), 픽처, 타일, 슬라이스, 매크로 블록, 코딩 유닛(CU: Coding Unit), 블록, 변환 유닛(TU: Transform Unit), 예측 유닛(PU: Prediction Unit) 등을 포함할 수 있다. 엔트로피 디코더/파서는 또한, 변환 계수, 양자화기 파라미터 값, 움직임 벡터 등과 같은 정보를 코딩된 비디오 시퀀스로부터 추출할 수 있다.
파서(304)는 심벌(313)을 생성하기 위해, 버퍼(303)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행할 수 있다. 파서(304)는 인코딩된 데이터를 수신할 수 있고, 특정 심벌(313)을 선택적으로 디코딩할 수 있다. 또한, 파서(304)는 특정 심벌(313)이 움직임 보상 예측 유닛(306), 스케일러(scaler)/역변환 유닛(305), 인트라 예측(Intra Prediction) 유닛(307) 또는 루프 필터(311)에 제공되어야 하는지를 결정할 수 있다.
심벌(313)의 재구성은 코딩된 비디오 픽처 또는 그 부분의 타입(이를테면: 인터(inter) 및 인트라 픽처, 인터 및 인트라 블록) 및 다른 팩터에 따라 다수의 상이한 유닛을 수반할 수 있다. 어떤 유닛이 어떻게 수반되는지는 코딩된 비디오 시퀀스로부터 파서(304)에 의해 파싱된 하위 그룹 제어 정보에 의해 제어될 수 있다. 파서(304)와 아래의 다수의 유닛 사이의 그러한 하위 그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록 외에도, 디코더(300)는 아래에서 설명되는 바와 같이 다수의 기능 유닛으로 개념적으로 세분될 수 있다. 상업적 제약 하에서 동작하는 실제 구현에서, 이러한 유닛 중 다수는 서로 밀접하게 상호 작용하고, 적어도 부분적으로 서로 통합될 수 있다. 그러나 개시된 청구 대상을 설명할 목적으로, 아래의 기능 유닛으로의 개념적 세분이 적절하다.
제1 유닛은 스케일러/역변환 유닛(305)일 수 있다. 스케일러/역변환 유닛(305)은 파서(304)로부터의 심벌(들)(313)로서, 사용할 변환, 블록 크기, 양자화 팩터, 양자화 스케일링 행렬 등을 포함하는 제어 정보뿐만 아니라 양자화된 변환 계수를 수신한다. 스케일러/역변환 유닛(305)은 애그리게이터(aggregator)(310)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에서, 스케일러/역변환(305)의 출력 샘플은 인트라 코딩된 블록; 즉: 이전에 재구성된 픽처로부터의 예측 정보를 사용하고 있는 것이 아니라, 현재 픽처의 이전에 재구성된 부분으로부터의 예측 정보를 사용할 수 있는 블록에 속할 수 있다. 그러한 예측 정보는 인트라 픽처 예측 유닛(307)에 의해 제공될 수 있다. 일부 경우에서, 인트라 픽처 예측 유닛(307)은 현재(부분적으로 재구성된) 픽처로부터 페치(fetch)된 주변의 이미 재구성된 정보를 사용하여, 재구성 하의 블록과 동일한 크기 및 형상의 블록을 생성한다. 애그리게이터(310)는 일부 경우에서, 인트라 예측 유닛(307)이 생성한 예측 정보를 스케일러/역변환 유닛(305)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가한다.
다른 경우에서, 스케일러/역변환 유닛(305)의 출력 샘플은, 인터 코딩되고 잠재적으로 움직임 보상된 블록에 속할 수 있다. 그러한 경우에, 움직임 보상 예측 유닛(306)은 예측에 사용되는 샘플을 페치하기 위해 참조 픽처 메모리(308)에 액세스할 수 있다. 블록에 속하는 심벌(313)에 따라 페치된 샘플을 움직임 보상한 후에, 이러한 샘플은 애그리게이터(310)에 의해 (이 경우, 잔차 샘플 또는 잔차 신호로 지칭되는) 스케일러/역변환 유닛의 출력에 추가되어 출력 샘플 정보를 생성할 수 있다. 움직임 보상 유닛이 예측 샘플을 페치하는 참조 픽처 메모리 형태 내의 어드레스는 예를 들어 X, Y 및 참조 픽처 성분을 가질 수 있는 심벌(313)의 형태로 움직임 보상 유닛에 이용 가능한 움직임 벡터에 의해 제어될 수 있다. 움직임 보상은 또한, 서브샘플 정밀 움직임 벡터가 사용 중일 때 참조 픽처 메모리로부터 페치된 샘플 값의 보간, 움직임 벡터 예측 메커니즘 등을 포함할 수 있다.
애그리게이터(310)의 출력 샘플은 루프 필터 유닛(311)에서 다양한 루프 필터링 기법을 겪을 수 있다. 비디오 압축 기술은 코딩된 비디오 비트스트림에 포함된 파라미터에 의해 제어되고 파서(304)로부터의 심벌(313)로서 루프 필터 유닛(311)에 이용 가능하게 되는 루프 내 필터 기술을 포함할 수 있지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 (디코딩 순서로) 이전 부분의 디코딩 동안 획득된 메타 정보에 응답할 뿐만 아니라, 이전에 재구성되고 루프 필터링된 샘플 값에 또한 응답할 수 있다.
루프 필터 유닛(311)의 출력은 렌더링 디바이스(312)에 출력될 수 있을 뿐만 아니라 향후 인터 픽처 예측에서의 사용을 위해 참조 픽처 메모리(557)에 저장될 수 있는 샘플 스트림일 수 있다.
특정 코딩된 픽처는 일단 완전히 재구성되면, 향후 예측을 위한 참조 픽처로서 사용될 수 있다. 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 (예를 들어, 파서(304)에 의해) 참조 픽처로서 식별되면, 현재 참조 픽처(309)는 참조 픽처 버퍼(308)의 일부가 될 수 있고, 다음의 코딩된 픽처의 재구성을 시작하기 전에 새로운 현재 픽처 메모리가 재할당될 수 있다.
비디오 디코더(300)는 ITU-T Rec. H.265와 같은 표준에 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는, 이것이 비디오 압축 기술 문서 또는 표준에 그리고 구체적으로 그 안의 프로파일의 문서에 지정된 바와 같이, 비디오 압축 기술 문서 또는 표준의 신택스(syntax)를 고수한다는 의미로, 사용되고 있는 비디오 압축 기술 또는 표준에 의해 특정된 신택스를 따를 수 있다. 준수를 위해서는 또한, 코딩된 비디오 시퀀스의 복잡성은 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있다. 일부 경우에서, 레벨은 최대 픽처 크기, 최대 프레임 레이트, (예를 들어, 초당 메가샘플로 측정된) 최대 재구성 샘플 레이트, 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은 일부 경우에는, 코딩된 비디오 시퀀스로 시그널링되는 가상 참조 디코더(HRD: Hypothetical Reference Decoder) 버퍼 관리를 위한 메타데이터(metadata) 및 HRD 규격을 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(302)는 인코딩된 비디오와 함께 추가 (중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는 데이터를 적절히 디코딩하기 위해 그리고/또는 원본 비디오 데이터를 보다 정확하게 재구성하기 위해 비디오 디코더(300)에 의해 사용될 수 있다. 추가 데이터는 예를 들어, 시간적, 공간적 또는 신호대 잡음비(SNR: signal-to-noise ratio) 강화 계층, 중복 슬라이스, 중복 픽처, 순방향 에러 정정 코드 등의 형태일 수 있다.
도 4는 본 개시내용의 일 실시예에 따른 비디오 인코더(400)의 기능 블록도일 수 있다.
인코더(400)는 인코더(400)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 (인코더의 일부가 아닌) 비디오 소스(401)로부터 비디오 샘플을 수신할 수 있다.
비디오 소스(401)는 임의의 적절한 비트 깊이(예를 들어: 8비트, 10비트, 12비트, …), 임의의 색 공간(예를 들어, BT.601 Y CrCB, RGB, …) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(303)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(401)는 이전에 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(401)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 움직임을 부여하는 복수의 개별 픽처로서 제공될 수 있다. 픽처 자체는 픽셀의 공간 어레이로서 구성될 수 있으며, 여기서 각각의 픽셀은 사용 중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당해 기술분야에서 통상의 지식을 가진 자는 픽셀과 샘플 간의 관계를 쉽게 이해할 수 있다. 아래의 설명은 샘플에 초점을 맞춘다.
일 실시예에 따르면, 인코더(400)는 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약 하에서 소스 비디오 시퀀스의 픽처를 코딩된 비디오 시퀀스(410)로 코딩 및 압축할 수 있다. 적절한 코딩 속도를 시행하는 것은 제어기(402)의 하나의 기능이다. 제어기는 아래에서 설명되는 바와 같이 다른 기능 유닛을 제어하고, 이러한 유닛에 기능적으로 결합된다. 명확성을 위해 결합은 도시되지 않는다. 제어기에 의해 설정된 파라미터는 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기법의 람다(lambda) 값, …), 픽처 크기, 픽처의 그룹(GOP) 레이아웃, 최대 움직임 벡터 탐색 범위 등을 포함할 수 있다. 당해 기술분야에서 통상의 지식을 가진 자는 제어기(402)의 다른 기능이 특정 시스템 설계에 대해 최적화된 비디오 인코더(400)에 관련될 수 있기 때문에 이러한 기능을 쉽게 식별할 수 있다.
일부 비디오 인코더들은 당해 기술분야에서 통상의 지식을 가진 자가 "코딩 루프"로서 용이하게 인식하는 것으로 동작한다. 지나치게 단순화된 설명으로서, 코딩 루프는 (코딩될 입력 픽처 및 참조 픽처(들)에 기초하여 심벌을 생성하는 것을 담당하는) 인코더(402)(이후 "소스 코더")의 인코딩 부분, 및 (개시된 청구 대상에서 고려되는 비디오 압축 기술에서는 심벌과 코딩된 비디오 비트스트림 간의 압축이 무손실이므로) (원격) 디코더가 생성할 샘플 데이터를 생성하도록 심벌을 재구성하는, 인코더(400)에 임베드(embed)된 (로컬) 디코더(406)로 구성될 수 있다. 그 재구성된 샘플 스트림은 참조 픽처 메모리(405)에 입력된다. 심벌 스트림의 디코딩이 (로컬 또는 원격) 디코더 위치와 독립적인 비트 정확한 결과로 이어지므로, 참조 픽처 버퍼 콘텐츠는 또한 로컬 인코더와 원격 인코더 사이에서 비트가 정확하다. 다시 말해서, 인코더의 예측 부분은, 디코딩 동안 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로서 "본다". 참조 픽처 동기성의 이러한 기본 원리(및 예를 들어, 채널 에러로 인해 동기성이 유지될 수 없다면, 결과적인 드리프트(drift))는 당해 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있다.
"로컬" 디코더(406)의 동작은 도 3과 함께 위에서 이미 상세히 설명된 "원격" 디코더(300)의 동작과 동일할 수 있다. 그러나 도 4를 또한 간략하게 참조하면, 심벌이 이용 가능하고 엔트로피 코더(408) 및 파서(304)에 의한 코딩된 비디오 시퀀스로의 심벌의 인코딩/디코딩이 무손실일 수 있기 때문에, 채널(301), 수신기(302), 버퍼(303) 및 파서(304)를 포함하는 디코더(300)의 엔트로피 디코딩 부분은 로컬 디코더(406)에서 완전히 구현되지 않을 수 있다.
이 시점에서 이루어질 수 있는 관찰은, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이 실질적으로 동일한 기능적 형태로 대응하는 인코더에 반드시 존재할 필요가 있다는 것이다. 인코더 기술은 포괄적으로 설명된 디코더 기술의 역이기 때문에 인코더 기술의 설명은 축약될 수 있다. 특정 영역에서만 더 상세한 설명이 요구되고 아래에 제공된다.
소스 코더(403)의 동작의 일부로서, 소스 코더(430)는 "참조 프레임"으로서 지정된 비디오 시퀀스로부터의 하나 이상의 이전에 코딩된 프레임을 참조하여 입력 프레임을 예측 코딩하는 움직임 보상 예측 코딩을 수행할 수 있다. 이런 식으로, 코딩 엔진(407)은 입력 프레임의 픽셀 블록과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(406)는 소스 코더(403)에 의해 생성된 심벌에 기반하여, 참조 프레임으로서 지정될 수 있는 프레임의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(407)의 동작은 유리하게는 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 (도 4에 도시되지 않은) 비디오 디코더에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 통상적으로 일부 에러를 갖는 소스 비디오 시퀀스의 복제물일 수 있다. 로컬 비디오 디코더(406)는 비디오 디코더에 의해 참조 프레임에 수행될 수 있는 디코딩 프로세스를 복제하고, 재구성된 참조 프레임이 참조 픽처 캐시(405)에 저장되게 할 수 있다. 이런 식으로, 인코더(400)는 (전송 에러 없이) 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 프레임으로서 공통 콘텐츠를 갖는 재구성된 참조 프레임의 사본을 국소적으로 저장할 수 있다.
예측기(404)는 코딩 엔진(407)에 대한 예측 탐색을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해, 예측기(404)는 (후보 참조 픽셀 블록으로서) 샘플 데이터, 또는 새로운 픽처에 대한 적절한 예측 참조로서의 역할을 할 수 있는 참조 픽처 모션 벡터, 블록 형상 등과 같은 특정 메타데이터에 대해 참조 픽처 메모리(405)를 탐색할 수 있다. 예측기(404)는 적절한 예측 참조를 찾기 위해 샘플 블록 × 픽셀 블록 단위로 동작할 수 있다. 일부 경우에는, 예측기(404)에 의해 획득된 탐색 결과에 의해 결정된 대로, 입력 픽처는 참조 픽처 메모리(405)에 저장된 다수의 참조 픽처로부터 인출된 예측 참조를 가질 수 있다.
제어기(402)는 예를 들어, 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 하위 그룹 파라미터의 설정을 포함하는, 비디오 코더(403)의 코딩 동작을 관리할 수 있다.
앞서 언급된 모든 기능 유닛의 출력은 엔트로피 코더(408)에서 엔트로피 코딩을 거칠 수 있다. 엔트로피 코더는 예를 들어, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같이 당해 기술분야에서 통상의 지식을 가진 자에게 알려진 기술에 따라 심벌을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심벌을 코딩된 비디오 시퀀스로 변환한다.
전송기(409)는 엔트로피 코더(408)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링하여, 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(411)을 통한 전송을 준비할 수 있다. 전송기(409)는 비디오 코더(403)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림(소스는 도시되지 않음)과 병합할 수 있다.
제어기(402)는 인코더(400)의 동작을 관리할 수 있다. 코딩 동안, 제어기(405)는 각각의 코딩된 픽처에 특정 코딩된 픽처 타입을 할당할 수 있으며, 이는 개개의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 다음의 프레임 타입 중 하나로서 할당될 수 있다:
인트라 픽처(I 픽처)는 예측의 소스로서 시퀀스 내의 임의의 다른 프레임을 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은 예를 들어, 독립적 디코더 리프레시(Independent Decoder Refresh) 픽처를 포함하는 상이한 타입의 인트라 픽처를 허용한다. 당해 기술분야에서 통상의 지식을 가진 자는 I 픽처의 그러한 변형 그리고 이들 개개의 애플리케이션 및 특징을 알고 있다.
예측 픽처(P 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(B 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다수의 예측 픽처는 단일 블록의 재구성을 위해 2개보다 많은 참조 픽처 및 연관된 메타데이터를 사용할 수 있다.
소스 픽처는 일반적으로, 공간적으로 복수의 샘플 블록(예를 들어, 각각 4 × 4, 8 × 8, 4 × 8 또는 16 × 16 샘플의 블록)으로 세분되고 블록 단위로 코딩될 수 있다. 블록은 블록의 개개의 픽처에 적용된 코딩 할당에 의해 결정된 다른 (이미 코딩된) 블록을 참조하여 예측 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비-예측 코딩될 수 있거나, 이들은 동일한 픽처의 이미 코딩된 블록을 참조하여 예측(공간 예측 또는 인트라 예측) 코딩될 수 있다. P 픽처의 픽셀 블록은 하나의 이전에 코딩된 참조 픽처를 참조하여 시간 예측을 통해 또는 공간 예측을 통해 비-예측 코딩될 수 있다. B 픽처의 블록은 하나 또는 2개의 이전에 코딩된 참조 픽처를 참조하여 시간 예측을 통해 또는 공간 예측을 통해 비-예측 코딩될 수 있다.
비디오 코더(400)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 비디오 코더(400)의 동작에서, 비디오 코더(203)는 입력 비디오 시퀀스에서 시간적 및 공간적 리던던시를 활용하는 예측 코딩 동작을 포함하는 다양한 압축 동작을 수행할 수 있다. 따라서 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 특정된 신택스를 따를 수 있다.
일 실시예에서, 전송기(409)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 소스 코더(403)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간적/공간적/SNR 강화 계층, 다른 형태의 중복 데이터, 이를테면 중복 픽처 및 슬라이스, 부가 확장 정보(SEI) 메시지, 시각적 사용성 정보(VUI: Visual Usability Information) 파라미터 세트 프래그먼트 등을 포함할 수 있다.
도 5는 예시적인 실시예에 따른 일반적인 세션 기반 DASH 동작 고레벨 아키텍처의 단순화된 블록도(500)를 예시한다. 예를 들어, 미디어는 원점(origin)(501)에서 발생하여 콘텐츠 전달 네트워크(CDN: content delivery network)(502)에 제공될 수 있으며, CDN(502)은 DASH 액세스 클라이언트(503)에 MPD/세그먼트를 제공할 수 있다. 세션 클라이언트(506)는 DASH 액세스 클라이언트(503)에 의한, 이를테면 getValue (key, time)에 의한 값을 요청하도록 제어될 수 있으며, 이러한 값은 세션 제어기(504, 505)로부터의 제어 및 이들 각각의 SBD 데이터, 이를테면 도 6 및 도 7의 예시적인 실시예에서와 같은 SBD[0] 및 SBD [1]과 함께 세션 클라이언트(506)로부터 DASH 액세스 클라이언트(503)에 제공될 수 있다. 예를 들어, URL 템플릿을 위한 엘리먼트가 SBD 디스크립터에 도입되며, 보다 구체적으로 실시예에 따르면, SBD 연산(예컨대, 쿼리 또는 URL 맞춤화)은 세션 클라이언트(506)가 DASH 액세스 클라이언트(503)에서의 MPD로부터 충분한 정보를 리트리브한 후, DASH 액세스 클라이언트(503)에 의해 생성된 세그먼트 URL에 처리를 적용할 수 있게 해야 한다. 그러나 SBD 연산은 예시적인 실시예에서 DASH 액세스 클라이언트(503) 동작을 인터셉트(intercept)하지 않을 것이고, 예시적인 구현이 MPD 및 SBD 처리를 조합할 수 있지만, 다른 실시예는 그러한 특징이 결과적으로 수행될 수 있다는 것을 유지한다. 이러한 관점에서, 그 이점은 SBD 연산이 DASH 클라이언트 로직과 통합되기 보다는 애플리케이션으로서 임의의 DASH 액세스 클라이언트에 추가될 수 있다는 점일 수 있다.
이에 따라, 실시예는 다음의 프로세스에 추가될 수 있는 새로운 값으로 URL을 변경할 수 있지만; URL의 대체는 SBD 클라이언트에 의해 수행될 수 있다. 즉, 다음의 특징이 있을 수 있는 예시적인 실시예에 따른 도 6의 흐름도(600)를 참조한다. S601에서, DASH 액세스 클라이언트(503)와 같은 DASH 클라이언트는 이를테면, CDN(502)으로부터의 MPD를 파싱하고, S602에서 세션 클라이언트(506)와 같은 SBD 클라이언트를 론칭하고 SBD 디스크립터 정보: @value (URL), @template, key를 전달하는 SBD 디스크립터(예컨대, "getValue (key, time)") 찾기가 수행된다. S603에서, 모든 세그먼트 요청에 대해 DASH 클라이언트가: 세그먼트 URL을 생성하고, S604에서 세그먼트 URL 및 세그먼트 타이밍이 SBD 클라이언트에 제공되어, S605에서 SBD 클라이언트가 요청을 처리하고 URL을 수정하고 쿼리를 추가하며, 결과를 반환하고, S606에서 DASH 클라이언트는 적어도 해당 세그먼트를 요청하고 그에 따라 그 세그먼트를 처리하고 재생한다.
예를 들어, S605에서는 다음과 같은 SBD URL 대체 필드 정보가 고려될 수 있다. URL이 예시적인 실시예에 따라 다음을 포함한다는 것을 고려한다:
URI = scheme:[//authority]path[?query][#fragment] (식 1)
그런 다음, 쿼리가 이미 처리되었기 때문에, 실시예는 권한 및 경로 정보에 대한 대체를 고려한다.
실시예에 따르면, 권한은 3개의 필드를 포함한다:
authority = [userinfo@]host[:port] (식 2)
식 1 및 식 2와 같은 그러한 정보를 고려하면, 실시예는 서로 다른 키 및 템플릿, 이를테면 다음과 같이, 예시적인 실시예에 따른 세션 기반 DASH에 대한 MPD EssentialProperty 디스크립터 속성의 일례를 예시하는 표 1에 도시된 바와 같이, 각각에 대해 쌍을 이루는 4개의 서로 다른 키 및 템플릿 중의 키 및 템플릿을 포함한다:
엘리먼트 또는 속성명 용도 설명

 EssentialProperty

세션 기반 DASH 동작을 위한 (ISO/IEC 23009-1 정의된) EssentialProperty 인스턴스화

  @schemeIdUri

M(문자열)

"urn:mpeg:dash:sbd:2020"으로 설정될 것이다.


  @value

M(문자열)

이 세션에 대한 SBD 문서의 URL

  @template

O

SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 템플릿. @template의 Key@name 값이 SBD 문서에서 발견되면, SBD 문서의 해당 키-값 쌍은 @template에서 언이스케이프(unescaped) '$' 문자 사이의 문자열을 대체할 것이다.
@template 값은 공백 문자가 없을 것이다.
없다면, SBD 문서에서 '='로 구분된 Key@name 및 그 대응하는 값이 쿼리 끝에 추가될 것이며, 여기서 각 연속 키-값 쌍은 '&'로 구분된다. 쿼리에서 키-값 쌍의 순서는 이 디스크립터에서 키 엘리먼트의 순서로 정의된다.

  @userinfoTemplate

O

SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 userinfo 템플릿. @userinfoTemplate의 UrlKey@userinfo 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @userinfoTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, URL의 userinfo가 결과로 대체된다.
@userinfoTemplate 값은 공백 문자가 없을 것이다.

  @hostTemplate

O

SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 호스트 템플릿. @hostTemplate의 UrlKey@hostinfo 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @hostTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, URL의 호스트가 결과로 대체된다.
@hostTemplate 값은 공백 문자가 없을 것이다.

  @portTemplate

O

SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 포트 템플릿. @portTemplate의 UrlKey@port 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @portTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, URL의 포트가 결과로 대체된다.
@portTemplate 값은 공백 문자가 없을 것이다.

  @pathTemplate

O

SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 경로 템플릿. @pathTemplate의 UrlKey@path 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @pathTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, URL의 경로가 결과로 대체된다.
@pathTemplate 값은 공백 문자가 없을 것이다.

 

0..N

SBD 문서에서 찾을 키 이름과 그 디폴트 값.
없다면, SBD 문서의 해당 keyList에 있는 모든 키와 해당 값이 (서브)세그먼트 요청 URL 쿼리에 추가될 것이다.
이 필수 디스크립터에는 적어도 하나의 키 또는 하나의 UrlKey 엘리먼트가 존재할 것이다.

  @name

M

@template에 의해 기술된 처리 후 이 세션에 대한 쿼리에 추가될 SBD 문서의 키의 이름. 이 값은 공백이 없는 문자열이며, 문자로 시작하고, RFC 3986에 따라 예비되지 않은 문자만을 포함할 것이다.
@name 값이 SBD 문서의 keyList에 나타나지 않는다면, @name 값-@defaultValue 값 쌍이 템플릿의 부재시 또는 템플릿에서 사용된다.

  @defaultValue

OD
('널
(null)')

@name 값이 SBD 문서에서 발견되지 않은 경우 또는 SBD 문서에 요청된 시간 범위 또는 세그먼트 번호에 대해 정의된 값이 없는 경우, 키-값 쌍의 디폴트 값.

 UrlKey

0..1


SBD 문서에서 찾을 한 세트의 URL 키와 그 디폴트 값.

  @userinfo

O

SBD 처리를 위한 URI userinfo 키

  @host

O

SBD 처리를 위한 URI 호스트 키

  @port

O

URI 포트 키 SBD 처리

  @path

O

URI 경로 키 SBD 처리

  @defaultUserinfo

O

SBD에서 userinfo 키가 발견되지 않은 경우 디폴트 userinfo

  @defaultHost

O

SBD에서 호스트 키가 발견되지 않은 경우 디폴트 호스트

  @defaultPort

O

SBD에서 포트 키가 발견되지 않은 경우 디폴트 포트

  @defaultPath

O

SBD에서 경로 키가 발견되지 않은 경우 디폴트 경로

범례:

 속성들에 대해: M=의무적, O=선택적, OD=디폴트 값과 함께 선택적,
 CM=조건부 의무적.

엘리먼트들에 대해: <minOccurs>...<maxOccurs> (N=무제한)

엘리먼트들은 볼드체이고; 속성들은 볼드체가 아니며 @가 선행됨
도 7은 S701에서 위에서 언급되고 여기에 추가로 설명되는 UrlKeyvalue의 결정이 있는 예시적인 흐름도(700)를 예시하며, 여기서는 S702, S704, S706 및 S708에서 순서대로 그리고/또는 동시에, S702에서의 UrlKey@userinfo, S704에서의 UrlKey@hostinfo, S706에서의 UrlKey@port 및 UrlKey@path 중 임의의 것이 각각 존재하는지 여부의 각각의 결정이 있을 수 있다.
S702에서, SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 userinfo 템플릿은, @userinfoTemplate의 UrlKey@userinfo 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @userinfoTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, S703에서 URL의 userinfo가 결과로 대체되도록 고려된다. 예시적인 실시예에 따라 @userinfoTemplate 값은 공백 문자가 없을 것이다.
S704에서, SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 호스트 템플릿은, @hostTemplate의 UrlKey@hostinfo 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @hostTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, S705에서 URL의 호스트가 결과로 대체되도록 고려된다. 예시적인 실시예에 따라 @hostTemplate 값은 공백 문자가 없을 것이다.
S706에서, SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 포트 템플릿은, @portTemplate의 UrlKey@port 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @portTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, S707에서 URL의 포트가 결과로 대체되도록 고려된다. 예시적인 실시예에 따라 @portTemplate 값은 공백 문자가 없을 것이다.
S708에서, SBD 문서에서 발견된 키-값 쌍에 적용하기 위한 경로 템플릿은, @pathTemplate의 UrlKey@path 값이 SBD 문서에서 발견되면, SBD 문서의 해당 값 쌍이 @pathTemplate의 언이스케이프 '$' 문자 사이의 문자열을 대체하고, S709에서 URL의 경로가 결과로 대체되도록 고려된다. @pathTemplate 값은 공백 문자가 없을 것이다.
도 7에 관한 예시적인 실시예에 따르면, 그 자체 또는 그 부모(들)가 SBD 디스크립터를 포함하는 임의의 엘리먼트의 임의의 세그먼트 URL은 예시적인 실시예에 따라 URL 대체를 위해 SBD 클라이언트에 의해 처리되어야 한다는 점에 유의한다.
MPEG-DASH는 일반적으로 종래의 HTTP 웹 서버로부터 전달되는 인터넷을 통한 미디어 콘텐츠의 스트리밍을 가능하게 하는 적응형 비트레이트 스트리밍 기법을 의미하였다. 미디어 프리젠테이션 기술(MPD) 파일은 다양한 스트림 및 이러한 스트림이 연관되는 대역폭에 대한 정보를 보관하는 데 사용된다. 위에서 설명된 실시예의 관점에서, DASH에서 MPD가 모든 클라이언트에 대해 일반적일 수 있지만, 클라이언트는 세션 기반 기술(SBD)로도 또한 지칭되는 사이드 파일을 얻을 수 있으며, 이는 클라이언트가 미디어 프리젠테이션 기술(MPD)을 해당 세션에 대해 특정하게 하기 위한 명령을 제공한다. 여기서, 쿼리가 세그먼트 URL에 추가될 수 있게 하는 특징들이 포함되는 실시예가 있을 뿐만 아니라, 본 명세서의 이러한 실시예는 또한, 각각의 SBD 세션의 쿼리 파라미터가 추가될 수 있고, 추가로 세그먼트 URL이 위에서 설명된 SBD 정보를 사용할 수 있도록 SBD 세션이 맞춤화될 수 있게 하는 개선을 위해, 세션별로 그리고 가능하게는 클라이언트별로 MPD를 맞춤화하기 위한 중요한 접근 방식일 수 있는 세션 기반 DASH 동작들에 대한 기술적 솔루션을 제공한다.
이러한 기술적 이점은 세션 기반 기술 파일을 사용하여 세그먼트 URL을 맞춤화하기 위한 방법이 설명된 위의 실시예와 관련하여 달성될 수 있으며, 여기서 맞춤화는 DASH 클라이언트가 세그먼트 URL을 생성한 후에 수행되고, 맞춤화는 URL의 모든 권한 및 경로 필드에서 발생할 수 있으며, 각각의 필드는 템플릿과 키를 갖고, SBD 파일의 올바른 시간 또는 순서 라인에서 키 일치가 발견되면, SBD 파일에서 키의 해당 값이 해당 템플릿의 수정에 사용되고, 모든 단일 필드에서 유연하게 URL 맞춤화가 가능하고, SBD 필수 디스크립터를 갖는 부모 엘리먼트에 속하는 세그먼트 URL이 맞춤화되며, 예시적인 실시예에 따라 부모 엘리먼트마다 다른 SBD 파일이 사용될 수 있다.
위에서 설명된 기법은 컴퓨터 판독 가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터 판독 가능 매체에 또는 구체적으로 구성된 하나 이상의 하드웨어 프로세서에 의해 물리적으로 저장될 수 있다. 예를 들어, 도 8은 개시된 청구 대상의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(800)을 도시한다.
컴퓨터 소프트웨어는 컴퓨터 중앙 처리 유닛(CPU: central processing unit), 그래픽 처리 유닛(GPU: Graphics Processing Unit) 등에 의해, 직접적으로 또는 해석, 마이크로코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링크 또는 유사한 메커니즘을 거칠 수 있는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령은 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함하는 다양한 타입의 컴퓨터 또는 이들의 컴포넌트 상에서 실행될 수 있다.
컴퓨터 시스템(800)에 대해 도 8에 도시된 컴포넌트는 본질적으로 예시이며, 본 개시내용의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대해 어떠한 제한도 제안하는 것으로 의도되지 않는다. 컴포넌트의 구성이 컴퓨터 시스템(800)의 예시적인 실시예에 예시된 컴포넌트 중 임의의 컴포넌트 또는 그러한 컴포넌트의 조합과 관련된 어떠한 의존성이나 요건도 갖는 것으로 해석되지 않아야 한다.
컴퓨터 시스템(800)은 특정 인간 인터페이스 입력 디바이스를 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(이를테면: 키 스트로크(keystroke), 스와이프(swipe), 데이터 글러브(glove) 움직임), 오디오 입력(이를테면: 음성, 박수), 시각적 입력(이를테면: 제스처), 후각적 입력(도시되지 않음)을 통해 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는 또한, 오디오(이를테면: 스피치, 음악, 주변 사운드), 이미지(이를테면: 스캔된 이미지, 정지 이미지 카메라로부터 획득된 사진 이미지), 비디오(이를테면, 2차원 비디오, 입체 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적 입력과 반드시 직접적으로 관련되는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 인간 인터페이스 디바이스는: 키보드(801), 마우스(802), 트랙 패드(803), 터치 스크린(810), 조이스틱(805), 마이크로폰(806), 스캐너(808), 카메라(807) 중 하나 이상(각각 도시된 것 중 단 하나)을 포함할 수 있다.
컴퓨터 시스템(800)은 또한 특정 인간 인터페이스 출력 디바이스를 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스는 예를 들어, 촉각 출력, 사운드, 광 및 후각/미각을 통해 하나 이상의 인간 사용자의 감각을 자극할 수 있다. 그러한 인간 인터페이스 출력 디바이스는 촉각 출력 디바이스(예를 들어, 터치 스크린(810) 또는 조이스틱(805)에 의한 촉각 피드백, 그러나 입력 디바이스로서 기능하지 않는 촉각 피드백 디바이스가 또한 존재할 수 있음), 오디오 출력 디바이스(이를테면: 스피커(809), (도시되지 않은) 헤드폰들), 시각적 출력 디바이스(이를테면, 각각 터치 스크린 입력 능력을 갖거나 갖지 않고, 각각 촉각적 피드백 능력을 갖거나 갖지 않는 CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(810) ― 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력하는 것이 가능할 수 있음 ―; (도시되지 않은) 가상 현실 안경, (도시되지 않은) 홀로그래픽 디스플레이 및 연기 탱크), 및 (도시되지 않은) 프린터를 포함할 수 있다.
컴퓨터 시스템(800)은 또한, 인간 액세스 가능 저장 디바이스 및 이들의 연관된 매체, 이를테면 CD/DVD(811) 또는 유사한 매체를 갖는 CD/DVD ROM/RW(820), 썸 드라이브(thumb-drive)(822), 착탈식 하드 드라이브 또는 솔리드 스테이트 드라이브(823), 레거시 자기 매체, 이를테면 (도시되지 않은) 테이프 및 플로피 디스크, 특수 ROM/ASIC/PLD 기반 디바이스, 이를테면 (도시되지 않은) 보안 동글(security dongle) 등을 포함하는 광학 매체를 포함할 수 있다.
당해 기술분야에서 통상의 지식을 가진 자는 또한, 현재 개시된 청구 대상과 관련하여 사용되는 바와 같은 "컴퓨터 판독 가능 매체"라는 용어가 전송 매체, 반송파, 또는 다른 일시적인 신호를 포괄하지 않는다고 이해해야 한다.
컴퓨터 시스템(800)은 또한 하나 이상의 통신 네트워크(898)에 대한 인터페이스(899)를 포함할 수 있다. 네트워크(898)는 예를 들어 무선, 유선, 광일 수 있다. 네트워크(898)는 추가로, 근거리, 광역, 대도시, 차량 및 산업, 실시간, 지연 용인(delay-tolerant) 등일 수 있다. 네트워크(898)의 예는 근거리 네트워크, 이를테면 이더넷, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용 등을 포함한다. 특정 네트워크(898)는 일반적으로, (예를 들어, 컴퓨터 시스템(800)의 USB 포트와 같은) 특정 범용 데이터 포트 또는 주변 버스(850, 851)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 것은 일반적으로, 아래에서 설명되는 바와 같은 시스템 버스에 대한 부착(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(800)의 코어에 통합된다. 이러한 네트워크(898) 중 임의의 네트워크를 사용하여, 컴퓨터 시스템(800)은 다른 엔티티와 통신할 수 있다. 그러한 통신은 예를 들어, 근거리 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템에 대해 단방향, 수신 전용(예를 들어, 브로드캐스트 TV), 단방향 송신 전용(예를 들어, 특정 CANbus 디바이스에 대한 CANbus), 또는 양방향일 수 있다. 위에서 설명된 바와 같이, 특정 프로토콜 및 프로토콜 스택이 그러한 네트워크 및 네트워크 인터페이스 각각에 사용될 수 있다.
앞서 언급한 인간 인터페이스 디바이스, 인간 액세스 가능 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(800)의 코어(840)에 부착될 수 있다.
코어(840)는 하나 이상의 중앙 처리 유닛(CPU)(841), 그래픽 처리 유닛(GPU)(842), 그래픽 어댑터(817), 필드 프로그래밍 가능 게이트 영역(FPGA: Field Programmable Gate Area)(843) 형태의 특수 프로그래밍 가능 처리 유닛, 특정 작업을 위한 하드웨어 가속기(844) 등을 포함할 수 있다. 이러한 디바이스는 판독 전용 메모리(ROM: Read-only memory)(845), 랜덤 액세스 메모리(846), 내부 비-사용자 액세스 가능 하드 드라이브, SSD 등과 같은 내부 대용량 저장소(847)와 함께, 시스템 버스(848)를 통해 접속될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(848)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하도록 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(848)에 직접적으로 또는 주변 버스(851)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등을 포함한다.
CPU(841), GPU(842), FPGA(843) 및 가속기(844)는 조합하여, 앞서 언급된 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(845) 또는 RAM(846)에 저장될 수 있다. 전이(transitional) 데이터가 또한 RAM(846)에 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장소(847)에 저장될 수 있다. 메모리 디바이스 중 임의의 디바이스에 대한 고속 저장 및 리트리브는 하나 이상의 CPU(841), GPU(842), 대용량 저장소(847), ROM(845) 및 RAM(846) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터 판독 가능 매체는 다양한 컴퓨터 구현 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적으로 특별히 설계 및 구성된 것일 수 있거나, 이들은 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한이 아닌 예로서, 아키텍처(800)를 갖는 컴퓨터 시스템, 그리고 구체적으로 코어(840)는 (CPU, GPU, FPGA, 가속기 등을 포함하는) 프로세서(들)가 하나 이상의 유형(tangible) 컴퓨터 판독 가능 매체에 구현된 소프트웨어를 실행하는 결과로서 기능을 제공할 수 있다. 그러한 컴퓨터 판독 가능 매체는 위에서 소개된 바와 같은 사용자 액세스 가능 대용량 저장소뿐만 아니라, 비-일시적 성질의 코어(840)의 특정 저장소, 이를테면 코어 내부 대용량 저장소(847) 또는 ROM(845)과 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예를 구현하는 소프트웨어는 그러한 디바이스에 저장되고 코어(840)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 특정 요구에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(840) 및 구체적으로는 코어(840) 내의 (CPU, GPU, FPGA 등을 포함하는) 프로세서로 하여금, RAM(846)에 저장된 데이터 구조를 정의하는 것과 소프트웨어에 의해 정의된 프로세스에 따라 그러한 데이터 구조를 수정하는 것을 포함하여, 본 명세서에서 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 본 명세서에서 설명되는 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 소프트웨어 대신 또는 소프트웨어와 함께 동작할 수 있는 회로(예를 들어: 가속기(844))에 하드와이어링되거나 달리 구현된 로직의 결과로서 기능을 제공할 수 있다. 적절한 경우, 소프트웨어에 대한 참조는 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독 가능 매체에 대한 참조는 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(이를테면, 집적 회로(IC: integrated circuit)), 실행을 위한 로직을 구현하는 회로, 또는 이 둘 모두를 포괄할 수 있다. 본 개시내용은 하드웨어와 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시내용은 여러 예시적인 실시예를 설명했지만, 본 개시내용의 범위 내에 속하는 변경, 치환 및 다양한 대체 등가물이 있다. 따라서 당해 기술분야에서 통상의 지식을 가진 자는, 본 명세서에서 명시적으로 도시되거나 설명되지는 않지만, 본 개시내용의 원리를 구현하고 따라서 본 개시내용의 사상 및 범위 내에 있는 다수의 시스템 및 방법을 안출할 수 있을 것이라고 인식될 것이다.

Claims (20)

  1. 적어도 하나의 프로세서에 의해 수행되는, 비디오 콘텐츠(video content)를 제공하기 위한 방법으로서,
    세션(session)의 미디어 프리젠테이션 기술(MPD: media presentation description) 정보를 생성하도록 클라이언트(client)에 명령하는 세션 기반 기술(SBD: session-based description) 정보를 획득하는 단계;
    상기 MPD 정보에 기초하여 SBD 클라이언트를 론칭(launch)하고 SBD 디스크립터(descriptor) 정보를 전달(pass)하는 단계;
    세그먼트(segment) URL(uniform resource locator)의 생성, 타이밍의 제공; 및 적어도 상기 세그먼트 URL을 수정함으로써 상기 비디오 콘텐츠의 세그먼트에 대한 요청의 처리를 제어하는 단계; 및
    상기 수정된 세그먼트 URL에 기초하여 상기 비디오 콘텐츠의 세그먼트를 제공하는 단계
    를 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  2. 제1항에 있어서,
    상기 SBD 정보는 URL 값, 템플릿(template) 값 및 키(key) 값을 포함하는,
    비디오 콘텐츠를 제공하기 위한 방법.
  3. 제2항에 있어서,
    상기 SBD 정보에 기초하여 상기 수정된 세그먼트 URL을 생성하는 단계
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  4. 제3항에 있어서,
    사용자 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하는 단계; 및
    상기 사용자 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 사용자 정보 템플릿에서 적어도 문자열(string)을 대체함으로써 상기 세그먼트 URL을 수정하는 단계
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  5. 제3항에 있어서,
    호스트 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하는 단계; 및
    상기 호스트 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 호스트 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하는 단계
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  6. 제3항에 있어서,
    포트 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하는 단계; 및
    상기 포트 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 포트 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하는 단계
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  7. 제3항에 있어서,
    경로 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하는 단계; 및
    상기 경로 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 경로 정보 템플릿에서 문자열을 대체함으로써 상기 세그먼트 URL을 수정하는 단계
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 방법.
  8. 제3항에 있어서,
    상기 수정된 세그먼트 URL을 생성하는 단계는 상기 세그먼트 URL의 적어도 하나의 권한 필드를 수정하는 단계를 포함하는,
    비디오 콘텐츠를 제공하기 위한 방법.
  9. 제3항에 있어서,
    상기 수정된 세그먼트 URL을 생성하는 단계는 상기 세그먼트 URL의 적어도 하나의 경로 필드를 수정하는 단계를 포함하는,
    비디오 콘텐츠를 제공하기 위한 방법.
  10. 제3항에 있어서,
    상기 수정된 세그먼트 URL을 생성하는 단계는 상기 세그먼트 URL의 적어도 하나의 경로 필드 및 적어도 하나의 권한 필드를 수정하는 단계를 포함하는,
    비디오 콘텐츠를 제공하기 위한 방법.
  11. 비디오 콘텐츠를 제공하기 위한 장치로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리;
    상기 컴퓨터 프로그램 코드에 액세스하여 상기 컴퓨터 프로그램 코드에 의해 명령된 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 컴퓨터 프로그램 코드는:
    상기 적어도 하나의 프로세서로 하여금, 세션의 미디어 프리젠테이션 기술(MPD) 정보를 생성하도록 클라이언트에 명령하는 세션 기반 기술(SBD) 정보를 획득하게 하도록 구성된 획득 코드;
    상기 적어도 하나의 프로세서로 하여금, 상기 MPD 정보에 기초하여 SBD 클라이언트를 론칭하고 SBD 디스크립터 정보를 전달하게 하도록 구성된 론칭 코드;
    상기 적어도 하나의 프로세서로 하여금, 세그먼트 URL(uniform resource locator)의 생성, 타이밍의 제공; 및 적어도 상기 세그먼트 URL을 수정함으로써 상기 비디오 콘텐츠의 세그먼트에 대한 요청의 처리를 제어하게 하도록 구성된 제어 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 수정된 세그먼트 URL에 기초하여 상기 비디오 콘텐츠의 세그먼트를 제공하게 하도록 구성된 제공 코드
    를 포함하는, 비디오 콘텐츠를 제공하기 위한 장치.
  12. 제11항에 있어서,
    상기 SBD 정보는 URL 값, 템플릿 값 및 키 값을 포함하는,
    비디오 콘텐츠를 제공하기 위한 장치.
  13. 제12항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서로 하여금, 상기 SBD 정보에 기초하여 상기 수정된 세그먼트 URL을 생성하게 하도록 구성된 생성 코드
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서로 하여금, 사용자 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하게 하고, 상기 사용자 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 사용자 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하게 하도록 구성된 결정 코드
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 장치.
  15. 제13항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서로 하여금, 호스트 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하게 하고, 상기 호스트 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 호스트 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하게 하도록 구성된 결정 코드
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 장치.
  16. 제13항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서로 하여금, 포트 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하게 하고, 상기 포트 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 포트 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하게 하도록 구성된 결정 코드
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 장치.
  17. 제13항에 있어서,
    상기 적어도 하나의 하드웨어 프로세서로 하여금, 경로 정보가 상기 SBD 정보에서 지시되는지 여부를 결정하게 하고, 상기 경로 정보가 상기 SBD 정보에서 지시되는 경우, 상기 SBD 정보의 경로 정보 템플릿에서 적어도 문자열을 대체함으로써 상기 세그먼트 URL을 수정하게 하도록 구성된 결정 코드
    를 더 포함하는 비디오 콘텐츠를 제공하기 위한 장치.
  18. 제13항에 있어서,
    상기 수정된 세그먼트 URL을 생성하는 것은 상기 세그먼트 URL의 적어도 하나의 권한 필드를 수정하는 것을 포함하는,
    비디오 콘텐츠를 제공하기 위한 장치.
  19. 제13항에 있어서,
    상기 수정된 세그먼트 URL을 생성하는 것은 상기 세그먼트 URL의 적어도 하나의 경로 필드를 수정하는 것을 포함하는,
    비디오 콘텐츠를 제공하기 위한 장치.
  20. 컴퓨터로 하여금 프로세스를 실행하게 하는 프로그램을 저장하는 비-일시적 컴퓨터 판독 가능 매체로서,
    상기 프로세스는:
    세션의 미디어 프리젠테이션 기술(MPD) 정보를 생성하도록 클라이언트에 명령하는 세션 기반 기술(SBD) 정보를 획득하는 것;
    상기 MPD 정보에 기초하여 SBD 클라이언트를 론칭하고 SBD 디스크립터 정보를 전달하는 것;
    세그먼트 URL(uniform resource locator)의 생성, 타이밍의 제공; 및 적어도 상기 세그먼트 URL을 수정함으로써 상기 비디오 콘텐츠의 세그먼트에 대한 요청의 처리를 제어하는 것; 및
    상기 수정된 세그먼트 URL에 기초하여 상기 비디오 콘텐츠의 세그먼트를 제공하는 것을 포함하는,
    비-일시적 컴퓨터 판독 가능 매체.
KR1020227020635A 2020-10-07 2021-08-06 세션 기반 dash 동작을 사용한 url 맞춤화 KR20220100698A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063088647P 2020-10-07 2020-10-07
US63/088,647 2020-10-07
US17/365,400 US11470136B2 (en) 2020-10-07 2021-07-01 URL customization using the session-based dash operations
US17/365,400 2021-07-01
PCT/US2021/044925 WO2022076073A1 (en) 2020-10-07 2021-08-06 Url customization using the session-based dash operations

Publications (1)

Publication Number Publication Date
KR20220100698A true KR20220100698A (ko) 2022-07-15

Family

ID=80931786

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227020635A KR20220100698A (ko) 2020-10-07 2021-08-06 세션 기반 dash 동작을 사용한 url 맞춤화

Country Status (6)

Country Link
US (1) US11470136B2 (ko)
EP (1) EP4046338A4 (ko)
JP (1) JP7345669B2 (ko)
KR (1) KR20220100698A (ko)
CN (1) CN114667722A (ko)
WO (1) WO2022076073A1 (ko)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007025560A1 (en) 2005-08-31 2007-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia transport optimisation
WO2013184248A1 (en) * 2012-04-27 2013-12-12 Huawei Technologies Co., Ltd. Support for short cryptoperiods in template mode
BR122015005210A2 (pt) 2012-06-28 2019-08-20 Ericsson Ab Método e sistema para inserção de anúncio em entrega de mídia ao vivo over the top
CN104429093B (zh) * 2012-07-09 2018-01-05 华为技术有限公司 超文本传输协议动态自适应流媒体客户端及其会话管理实施方法
US8923880B2 (en) 2012-09-28 2014-12-30 Intel Corporation Selective joinder of user equipment with wireless cell
WO2014066887A1 (en) * 2012-10-26 2014-05-01 Intel Corporation Streaming with coordination of video orientation (cvo)
US9749375B2 (en) 2013-01-16 2017-08-29 Futurewei Technologies, Inc. URL parameter insertion and addition in adaptive streaming
ES2645101T3 (es) * 2013-01-17 2017-12-04 Intel IP Corporation Autentificación de URL de contenidos para dash
BR112015025883A8 (pt) * 2013-04-19 2020-01-14 Sony Corp dispositivo de processamento de informação, método de processamento de informação, e, mídia legível por computador não-transitória
CN105812961B (zh) * 2014-12-31 2019-09-10 中兴通讯股份有限公司 自适应流媒体处理方法及装置
US10129308B2 (en) * 2015-01-08 2018-11-13 Qualcomm Incorporated Session description information for over-the-air broadcast media data
US10454985B2 (en) 2015-03-04 2019-10-22 Qualcomm Incorporated File format based streaming with dash formats based on LCT
CN107615774B (zh) * 2015-06-09 2020-12-22 索尼公司 接收装置、发送装置及数据处理方法
US11038938B2 (en) * 2016-04-25 2021-06-15 Time Warner Cable Enterprises Llc Methods and apparatus for providing alternative content
CN107800665B (zh) * 2016-08-31 2020-08-25 华为技术有限公司 多媒体传输方法、接入网设备及终端
US11647251B2 (en) * 2017-07-12 2023-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Fast tune-in for low latency streaming
US11425187B2 (en) * 2019-09-30 2022-08-23 Tencent America Llc. Session-based information for dynamic adaptive streaming over HTTP
US11616822B2 (en) * 2019-09-30 2023-03-28 Tencent America LLC Session-based information for dynamic adaptive streaming over HTTP
US11184420B2 (en) * 2020-01-06 2021-11-23 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP

Also Published As

Publication number Publication date
EP4046338A4 (en) 2022-11-16
US11470136B2 (en) 2022-10-11
US20220109711A1 (en) 2022-04-07
JP2023512221A (ja) 2023-03-24
WO2022076073A1 (en) 2022-04-14
JP7345669B2 (ja) 2023-09-15
EP4046338A1 (en) 2022-08-24
CN114667722A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
KR102648248B1 (ko) 랜덤 액세스 포인트 및 픽처 유형의 식별 방법
KR102662633B1 (ko) 네트워크 추상화 유닛 헤더에서의 타일 식별
AU2020418848B2 (en) Method for mixed NAL unit type support in a coded picture
KR102587655B1 (ko) 비디오 코딩을 위한 방법 및 장치
US20240121286A1 (en) Session-based description url customization using the session-based dash operations
JP7442919B2 (ja) データ操作のためのパッチ可能なリモート要素方法、装置、およびコンピュータプログラム
JP7254188B2 (ja) 点群符号化のためのパラメータセット設計の方法並びにその装置及びプログラム
KR102376833B1 (ko) 8-비트 변환 코어를 이용한 1차 변환을 위한 방법 및 장치
JP7061680B2 (ja) ビデオ符号化において縮減された前のラインバッファを使用するインター予測の方法及び装置
KR20220065824A (ko) Dash 콘텐츠의 대화형 재생을 위한 애플리케이션 의도된 대화형 선택 정보
JP7345669B2 (ja) セッションベースのdash動作を使用したurlカスタマイズ
US20230222823A1 (en) Method for annotating vvc subpictures in dash
KR20220093339A (ko) Mpd 유효성 만료 처리 모델
KR20240074819A (ko) Ctu 행 기반 기하학적 변환

Legal Events

Date Code Title Description
E902 Notification of reason for refusal