KR20150126860A - 고속 전환을 위한 코덱 기법 - Google Patents

고속 전환을 위한 코덱 기법 Download PDF

Info

Publication number
KR20150126860A
KR20150126860A KR1020157025084A KR20157025084A KR20150126860A KR 20150126860 A KR20150126860 A KR 20150126860A KR 1020157025084 A KR1020157025084 A KR 1020157025084A KR 20157025084 A KR20157025084 A KR 20157025084A KR 20150126860 A KR20150126860 A KR 20150126860A
Authority
KR
South Korea
Prior art keywords
video data
sequence
coded video
data sequence
channel
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020157025084A
Other languages
English (en)
Other versions
KR102218385B1 (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 KR20150126860A publication Critical patent/KR20150126860A/ko
Application granted granted Critical
Publication of KR102218385B1 publication Critical patent/KR102218385B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • H04N21/234372Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution for performing aspect ratio conversion
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

다수의 코딩된 비디오 데이터 시퀀스들 간에 전환하는 비디오 스트리밍 방법은 제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하고 디코딩하는 단계를 포함할 수 있다. 제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여, 본 방법은 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이, 중간 코딩된 비디오 데이터 시퀀스를 통해 제2 코딩된 비디오 데이터 시퀀스로 전환하는 것에 의해, 감소될 수 있는지를 판정할 수 있다. 시간이 감소될 수 있는 경우, 본 방법은 전환하라는 요청에 대응하는 중간 코딩된 비디오 데이터 시퀀스로부터의 적어도 하나의 전송 단위를 수신하는 단계, 중간 시퀀스로부터의 전송 단위를 디코딩하는 단계, 및 중간 시퀀스로부터의 디코딩된 전송 단위를 통해 제1 시퀀스로부터 제2 시퀀스로 전환하는 단계를 포함한다.

Description

고속 전환을 위한 코덱 기법{CODEC TECHNIQUES FOR FAST SWITCHING}
본 개시 내용은 일반적으로 비디오 스트리밍 기법의 분야에 관한 것이다. 보다 구체적으로는, 본 개시 내용은 비디오 스트리밍의 채널 전환(channel switching)에서 코덱 관련 지연 시간(codec-related latency)을 감소시키는 것에 관한 것이다.
휴대용 디바이스들이 전통적인 프로그램들(예컨대, 영화, 뉴스, 및 생방송)을 시청하는 데 점점 더 이용되고 있다. 프로그램들은 인코딩되어 무선 또는 유선 네트워크들을 통해 배포 디바이스들(예컨대, 케이블 셋톱박스(cable box)) 및/또는 휴대용 디바이스들(예컨대, 스마트폰, 랩톱 또는 태블릿)로 전송된다. 프로그램들은 전형적으로 인코딩되어, 네트워크들을 통해, 청크(chunk)들(예컨대, "전송 단위(transmission unit)들")로 파싱되는 코딩된 데이터 집합으로 송신된다.
청크들은 하나 이상의 참조 프레임(reference frame)들 및 참조 프레임들에 기초하여 인코딩되는 복수의 프레임들을 포함할 수 있다. 청크들은 임의의 다른 프레임들로부터의 정보를 사용하지 않고 인코딩되는 인덱스 프레임(index frame)(I-프레임), 인덱스 프레임에 존재하는 콘텐츠와의 차분(difference)들을 표현하는 예측 프레임(predictive frame)들(P-프레임), 및 양방향 프레임(bidirectional frame) 전후에 나타나는 인덱스 프레임 및 예측 프레임들과의 차분들을 표현하는 양방향 프레임들(B-프레임)을 포함할 수 있다. 청크들에서의 프레임들은 청크들에서의 프레임들에 의해 표현되는 콘텐츠가 제시되어야 하는 순서와 상이한 순서로 나타날 수 있다.
비디오를 디스플레이하기 위해, 청크들을 수신하는 디바이스는 청크를 버퍼링하고 청크에서의 프레임들을, 디스플레이하기 위해, 디코딩할 것이다. 디코딩은 각각의 프레임을 원래 프레임(original frame)으로 변환하는 것 및 프레임들을 정확한 순서로 배열하는 것을 포함할 수 있다. 사용자가 비디오 세그먼트(video segment)의 시작에서 버퍼링 및 디코딩으로 인한 지연을 관찰할 수 있는 반면, 청크들이 계속해서 연달아 수신되고 디코딩되기 때문에, 버퍼링 및 디코딩으로 인한 지연이 통상의 재생 동안에는 관찰되지 않는다.
그렇지만, 사용자가 새로운 채널에 있는 비디오 소스로 전환하라고 요청할 때, 새로운 비디오 소스로의 전환과 연관된 지연이 있다. 지연에의 기여 인자들은 네트워크 지연 시간, 비트 스트림 버퍼의 축적(buildup), 디코딩 지연 시간 및 디스플레이 지연 시간을 포함할 수 있다. 이 지연 동안, 사용자는 비디오 디스플레이에서 끊김(gap)을 관찰할 수 있다. 끊김을 감소시키기 위해, 어떤 방법들은, 새로운 청크의 비디오 콘텐츠가 디스플레이될 준비가 될 때까지, 원래 비디오 소스(original video source)의 콘텐츠를 계속 디스플레이한다. 다른 방법들은, 버퍼 및/또는 디코딩 지연 시간을 감소시키기 위해, 새로운 비디오 소스에서 청크의 인덱스 프레임을 만날 때에 전환한다. 그렇지만, 이들 방법은 사용자가 요청을 할 때 전환하지 않는다. 그에 부가하여, 이들 방법을 생방송 스트리밍 콘텐츠(live streaming content)에 사용할 때, 지연은 새로운 비디오 소스의 콘텐츠를 누락(miss)시킨다.
동일한 비디오 콘텐츠의 저해상도 소스와 고해상도 소스 간에 전환할 때 유사한 지연이 또한 관찰될 수 있다. 동일한 콘텐츠 간에 전환할 때, 기존의 방법들은 지연으로 인해 콘텐츠의 일부분을 건너뛰거나 반복 재생(replay)한다.
그에 따라, 비디오 스트리밍 동안 다수의 채널들 간에 전환할 때 지연을 감소시키는 기법들이 필요하다.
본 발명의 특징들이 이해될 수 있도록, 다수의 도면들이 이하에서 기술된다. 그렇지만, 주목할 점은, 첨부된 도면들이 본 발명의 특정의 실시예들만을 예시한 것이고 따라서, 본 발명이 다른 똑같이 효과적인 실시예들을 포괄할 수 있기 때문에, 그의 범주를 제한하는 것으로 간주되어서는 안된다는 것이다.
도 1은 본 개시 내용에서 사용하기에 적당한 비디오 배포 시스템의 간략화된 블록도.
도 2는 본 개시 내용의 일 실시예에 따른, 비디오 콘텐츠를 수신하는 클라이언트 디바이스의 예시적인 디스플레이를 나타낸 도면.
도 3은 본 개시 내용의 일 실시예에 따른, 제1 채널로부터 제2 채널로 곧바로 전환하는 방법을 나타낸 도면.
도 4는 본 개시 내용의 일 실시예에 따른, 중간 채널(intermediate channel)을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 도면.
도 5는 본 개시 내용의 다른 실시예에 따른, 중간 채널을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 도면.
도 6은 본 개시 내용의 일 실시예에 따른, 데이터 스트림의 청크들 내의 참조 프레임들을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 도면.
도 7은 본 개시 내용의 일 실시예에 따른, 제1 채널로부터 복수의 오프셋된 채널들 중 하나인 제2 채널로 전환하는 방법을 나타낸 도면.
도 8은 본 개시 내용의 일 실시예에 따른, 시차 있는 채널(staggered channel)을 통해 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 도면.
도 9는 본 개시 내용의 일 실시예에 따른, 다수의 스케일러블 채널(scalable channel)들을 사용하는 재생 방법을 나타낸 도면.
도 10은 본 개시 내용의 일 실시예에 따른, 비디오 콘텐츠의 상이한 종횡비들을 제공하는 방법(1000)을 나타낸 도면.
도 11은 본 개시 내용에서 사용하기 위한 일체형 코딩 서버 및 배포 서버를 가지는 시스템의 간략화된 블록도.
본 발명의 실시예들은 다수의 코딩된 비디오 데이터 시퀀스들 간에 전환하는 기법들 및 디바이스들을 제공한다. 비디오 스트리밍 방법은 제1 코딩된 비디오 데이터 시퀀스(first sequence of coded video data)로부터의 전송 단위(transmission unit)들을 수신하는 단계 및 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계를 포함할 수 있다. 제2 코딩된 비디오 데이터 시퀀스(second sequence of coded video data)로 전환하라는 요청에 응답하여, 본 방법은 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하고 제2 시퀀스로부터의 전송 단위들을 디코딩할 수 있다. 제2 시퀀스로부터의 전송 단위들을 디코딩하는 단계는 전환하라는 요청에 대응하는 프레임을 포함하는 제2 시퀀스로부터의 선택된 전송 단위를 버퍼링하는 단계, 전환하라는 요청에 대응하는 프레임까지의 선택된 전송 단위의 참조 프레임들을, 비참조 프레임(non-reference frame)들을 디코딩함이 없이, 디코딩하는 단계, 및 요청에 대응하는 프레임 이후의 프레임들 전부를 디코딩하는 단계를 포함할 수 있다.
다수의 코딩된 비디오 데이터 시퀀스들 간에 전환하는 본 발명의 실시예들은 하나 이상의 중간 코딩된 비디오 데이터 시퀀스(intermediate sequence of coded video data)들을 통해 요청된 시퀀스로 전환하는 단계를 포함할 수 있다. 중간 시퀀스들을 통해 요청된 시퀀스로 전환하는 것은 전환 지연을 감소시킬 수 있다.
도 1은 본 발명에서 사용하기에 적당한 비디오 배포 시스템(100)의 간략화된 블록도이다. 시스템(100)은 통신 네트워크(130)를 통해 연결된 배포 서버 시스템(110) 및 복수의 클라이언트 디바이스들(120, 122)을 포함할 수 있다. 배포 서버(110)는 클라이언트 디바이스(120 또는 122)에 의한 다운로드를 위해 프로그램 소스(112) 및/또는 저장 시스템(114)으로부터 각종의 비디오 콘텐츠 항목들(예컨대, 영화, 텔레비전 프로그램(television show) 및 다른 동영상 콘텐츠)을 수신할 수 있다. 비디오 콘텐츠는 배포 서버(110)에 의해 하나 이상의 클라이언트 디바이스들(120, 122)로 배포가능할 수 있는 하나 이상의 생방송 프로그램들을 포함할 수 있다.
배포 서버(110)는 비디오 콘텐츠를 처리하고 비디오 콘텐츠 항목들의 몇 개의 사본들을 코딩된 비디오 스트림들 - 그 각각은 각자의 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 코딩됨 - 로서 제공할 수 있다. 비디오 스트림들은 미리 결정된 지속기간(예컨대, 5 또는 10 초)의 비디오 콘텐츠를 나타내는 코딩된 비디오의 복수의 청크들(예컨대, 전송 단위들 또는 GOP들(이들로 제한되지 않음))로 파싱될 수 있다. 도 1의 예는 클라이언트 디바이스들(120 또는 122)로 전송하기 위해 이용가능한 3 개의 상이한 비디오 프로그램들 A, B 및 C를 나타내고 있다. 비디오 프로그램들 A, B 및 C 중 하나 이상은 생방송 프로그램일 수 있다. 비디오 프로그램들 각각은 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기 또는 시간상 오프셋되어 있는 비디오 항목들을 사용하여 프로그램을 제공하기 위해 배포 서버(110)에 의해 처리될 수 있다. 예를 들어, 프로그램 A의 콘텐츠가 채널들 1.0, 1.1 및 1.2 - 각각이 상이한 파라미터들로 인코딩된 비디오에 대응함 - 에서 제공될 수 있다.
배포 서버(110)는 이용가능한 프로그램들 및/또는 채널들에 관한 정보를 클라이언트 디바이스(120 또는 122)에, 예를 들어, 매니페스트 파일(manifest file)(150)로, 제공할 수 있다. 이 정보에 기초하여, 클라이언트 디바이스(120 또는 122)는 네트워크(130)를 통해 수신할 특정의 프로그램 및/또는 채널을 선택할 수 있다. 프로그램 및/또는 채널의 선택은 사용자에 의해 또는 사용자 명령 또는 변하는 조건(예컨대, 네트워크 대역폭의 변화 또는 디바이스의 프로세서 이용가능성)에 응답하여 클라이언트 디바이스에 의해 행해질 수 있다. 새로운 프로그램 및/또는 채널에 대한 요청이 발행될 때, 클라이언트 디바이스(120, 122) 또는 배포 서버(110)는 클라이언트(120)로 전송되고 있는 현재 채널로부터 요청된 채널로 어떻게 전환할지를 결정할 수 있다. 결정을 할 때, 클라이언트 디바이스(120, 122) 또는 배포 서버(110)는 어느 채널들 및 그 채널들의 어느 청크들이 클라이언트 디바이스(120, 122)로 송신되어야 하는지를 선택할 수 있다.
하나의 채널로부터 다른 채널로 전환하는 것은 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기 또는 시간상 오프셋되어 있는 채널들을 가지는 하나 이상의 중간 채널들을 이용하는 것을 포함할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 채널 1.0으로부터 채널 2.0으로 전환하라는 요청이 수신되는 경우, 전환은 중간 채널 1.1 및 채널 1.2의 적어도 일부분들을 채널 스트림(140)에서 전송하는 것을 포함할 수 있다. 전환을 위해 부가 채널들을 이용하는 것은 채널 1.0으로부터 채널 2.0으로의 전환 동안 프로그램에서의 끊김을 감소시킬 수 있다.
도 1에 도시된 바와 같이, 다수의 채널 스트림들(140 및 142)이 클라이언트 디바이스(120 또는 122)에 제공할 수 있다. 채널 스트림(140)은 채널 스트림(142)의 비디오 콘텐츠와 상이한 비디오 콘텐츠를 제공할 수 있다. 채널 스트림(142)은 고화질로 제공될 수 있는 이용가능한 프로그램의 저화질 비디오를 사용하는 미리보기로서 비디오 콘텐츠를 제공할 수 있다.
매니페스트 파일(150)은 이용가능한 프로그램들 및 채널들의 인덱스를 저장할 수 있고, 코딩된 비디오 스트림들을 프로그램들과 연관시킬 수 있으며, 각각의 코딩된 비디오 스트림의 청크들을 다른 비디오 스트림들의 대응하는 청크들과 상관시킬 수 있다. 매니페스트 파일(150)은 각각의 이용가능한 채널의 상세들 및 채널들에 대한 또는 채널에서의 각각 청크에 대한 웹 주소를 포함할 수 있다. 매니페스트 파일(150)은 이용가능한 프로그램들 및 채널들의 업데이트된 인덱스를 유지하기 위해 업데이트될 수 있다. 매니페스트 파일(150)은 요청 시에 또는 미리 결정된 간격으로 클라이언트 디바이스(120, 122)에 제공할 수 있다. 매니페스트 파일들은 다양한 유형의 데이터를 나타내는 구문 요소(syntactic element)들을 저장할 수 있다.
본 발명의 실시예들은 클라이언트 디바이스(120 또는 122)로부터의 요청에 응답하여 하나의 비디오 소스로부터 다른 비디오 소스로 전환하는 것에 관한 것이다. 요청은 사용자에 의해 개시될 수 있거나, 전송 네트워크의 조건들 또는 클라이언트 디바이스(120 또는 122)의 조건들의 변화에 응답하여 제공될 수 있다.
전환 방법은 클라이언트 디바이스들(120 및 122) 및 배포 서버 중 하나 이상에 의해 이용될 수 있다. 하나의 실시예에서, 배포 서버(110)는 전환을 처리하기 위해 어느 채널들이 클라이언트 디바이스(120 또는 122)로 송신되어야 하는지를 결정하기 위해 전환 방법들 중 하나 이상을 사용할 수 있다. 다른 실시예에서, 배포 서버(110)는 전환 방법들을 수행하고 하나의 채널로부터 다른 채널로의 전환을 포함하는 비디오를 재인코딩(re-encode)할 수 있다. 데이터가 전환 및 2 개의 채널들로부터의 데이터를 포함하는 하나의 청크로 재인코딩될 수 있다. 대안적으로, 데이터가 전환 요청까지의 데이터를 포함하는 하나의 청크와 전환 요청 이후의 데이터를 포함하는 다음 청크로 재인코딩될 수 있다.
클라이언트 디바이스(120 또는 122)는 하나의 채널로부터 다른 채널로 전환하기 위해 이하에서 논의되는 전환 방법들 중 하나 이상을 사용할 수 있다. 클라이언트 디바이스(120 또는 122)는 요청을, 이하에서 논의되는 전환 방법들에 따라 요청을 처리하기 위해 클라이언트 디바이스(120 또는 122)가 필요로 하는 채널들을 포함하는 배포 서버(110)로, 송신할 수 있다. 다른 실시예에서, 클라이언트 디바이스(120)는 네트워크(130)를 통해 모든 채널들을 수신하고 클라이언트 디바이스(122)에 대한 로컬 배포 디바이스(local distribution device)로서 기능할 수 있다.
도 2는 본 발명의 일 실시예에 따른, 비디오 콘텐츠를 수신하는 클라이언트 디바이스(200)의 예시적인 디스플레이(210)를 나타낸 것이다. 디스플레이(210)는 상이한 비디오 콘텐츠를 수용하기 위해 하나 이상의 디스플레이 창들(220, 230, 240)을 포함할 수 있다. 디스플레이(210)는 또한 비디오 콘텐츠를 디스플레이하지 않는 다른 이용가능 채널들(예컨대, 채널 D 및 채널 E)과 관련한 도면 번호들(250, 252)을 포함할 수 있다. 디스플레이 창(220)은 고화질로 제공되는 제1 비디오 콘텐츠 A를 디스플레이할 수 있다. 디스플레이 창들(230 및 240)은, 각각, 제2 비디오 콘텐츠 B 및 제3 비디오 콘텐츠 C를, 예를 들어, 저화질로 디스플레이할 수 있다. 예를 들어, 디스플레이 창들(230 및 240)은 고화질로 수신될 수 있는 비디오 콘텐츠의 미리보기로서 제공되는 저화질 비디오를 디스플레이할 수 있다(사용자가 이러한 선택을 하는 경우).
디스플레이 창들(220, 230, 240)에 디스플레이되는 비디오 콘텐츠는 하나 이상의 배포 서버들로부터 수신될 수 있다. 디스플레이 창들(220, 230, 240)에 디스플레이되거나 도면 번호들(250, 252)이 부기되어 있는 비디오 콘텐츠 각각은 생방송 비디오 콘텐츠일 수 있다. 비디오 콘텐츠 중 하나 이상은 배포 서버에 저장되어 있는 녹화된 비디오 콘텐츠(prerecorded video content)일 수 있다. 디스플레이(210)에 디스플레이되거나 도면 번호들이 부기되어 있는 상이한 비디오 콘텐츠는 상이한 카메라들 - 각각이 생방송의 상이한 시점(perspective)을 제공함 - 에 의해 포착되는 프로그램의 생방송에 대응할 수 있다.
클라이언트 디바이스(200)의 사용자는 어느 비디오 콘텐츠를 디스플레이(210)의 디스플레이 창들(220, 230, 240)에 디스플레이할지에 관해 선택을 할 수 있다. 예를 들어, 사용자는, 클라이언트 디바이스(200) 상에서, 디스플레이 창(230 또는 240)에 미리보기로서 현재 제공되고 있는 비디오 콘텐츠 중 하나를 디스플레이 창(220)에 디스플레이하기로 선택한다. 선택에 응답하여, 배포 서버는 2 개의 요청들을 수신할 수 있다: 디스플레이 창들(230 또는 240)에 제공되고 있는 비디오 콘텐츠의 저해상도로부터 고해상도로 전환하라는 제1 요청 및 디스플레이 창(220)에 제공되고 있는 비디오 콘텐츠의 고해상도로부터 저해상도로 전환하라는 제2 요청.
요청들에 응답하여, 배포 서버는 청크들을 제공하는 채널을 클라이언트 디바이스(200)로 송신되는 채널 스트림들 각각으로 변경할 수 있다. 전환 지연 시간을 감소시키기 위해, 전환 동안 양호한 화질을 유지하면서, 배포 서버는 이하에서 논의되는 하나 이상의 전환 방법들을 이용할 수 있다. 하나의 채널로부터 다른 채널로의 전환 방법은 클라이언트(200)에서의 지연 시간을 감소시키기 위해 하나 이상의 중간 채널들을 이용할 수 있다. 상이한 채널들의 청크들을 사용하여, 클라이언트 디바이스(200)는 버퍼링 및/또는 디코딩 지연 시간을 감소시키기 위해 이하에서 논의되는 전환 방법에 따라 각각의 채널의 청크들을 버퍼링하고 디코딩할 수 있다.
도 3은 본 발명의 일 실시예에 따른, 제1 채널로부터 제2 채널로 곧바로 전환하는 방법을 나타낸 것이다. 도 3은 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 청크들 CH B.1 내지 CH B.N으로 파싱되는 채널 B로 전환하는 것을 나타내고 있다. 채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다.
도 3에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(synchronization frame)이 요청과 정렬되어 있지 않을 때, 수신될 수 있다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 요청과 대략 정렬되어 있는 목적지 프레임까지의 채널 B를 버퍼링하여 디코딩하는 것에 의해 전환이 즉각 개시될 수 있다. 클라이언트는 요청 시에 채널 B를 이미 수신하고 있을 수 있거나, 대안적으로, 그 요청에 응답하여 채널 B를 수신하라는 요청을 발행할 수 있다.
요청이 수신되는 것과 거의 같은 때에 채널 B의 콘텐츠를 디스플레이하기 위해, 채널 B를 수신하는 디코더는 어느 청크(예컨대, 청크 CH B.2)가 요청과 정렬되어 있는지를 결정하고, 청크 CH B.2를 버퍼링하며, 동기화 프레임을 사용하여 청크에서의 전환 지점까지의 데이터를 신속하게 디코딩할 수 있다. 청크를 버퍼링하는 것은 요청에 대응하는 프레임까지의 청크의 일부분만을 버퍼링하는 것을 포함할 수 있다. 디코딩의 속도는 전환 지점 및/또는 요청과 정렬되어 있는 프레임까지의 프레임들의 디코딩을 건너뛰는 것에 의해 증가될 수 있다.
하나의 실시예에서, 목적지 프레임까지의 청크의 참조 프레임들만이 디코딩될 수 있고, 목적지 프레임 이후부터는 모든 프레임들이 디코딩될 수 있다. 참조 프레임은 요청에 대응하는 프레임 및 이 프레임 이후의 프레임들을 디코딩하는 데 필요한 프레임들 모두를 포함할 수 있다. 디코딩되는 참조 프레임들은 I-프레임들 및/또는 P-프레임들 모두를 포함할 수 있다.
각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다. 동기화 프레임(SF)은 인트라 코딩된 프레임(intra-coded frame)(흔히, "I 프레임"이라고 함)으로서 코딩될 수 있다. 예를 들어, 비디오 시퀀스가 H.265 코딩 프로토콜에 따라 코딩되는 경우, 동기화 프레임은 IDR 프레임(Instantaneous Decoder Refresh frame)으로서 코딩될 수 있다. 다른 코딩 프로토콜들은 동기화 프레임의 다른 정의들을 제공한다.
도 3에서 동기화 프레임들(SF)이 각각의 청크의 시작 부분에 도시되어 있지만, 동기화 프레임들이 청크 내의 다른 장소들에 위치될 수 있다. 그에 부가하여, 상이한 채널들(예컨대, A 및 B)에 걸쳐 있는 동기화 프레임들(SF)이 정렬되어 있을 수 있다. 다른 실시예들에서, 하나의 채널에서의 동기화 프레임들(SF)이 다른 채널들에서의 동기화 프레임들(SF)로부터 미리 결정된 또는 랜덤한 수의 프레임들만큼 오프셋되어 있을 수 있다.
채널 A 및 채널 B는 상이한 콘텐츠를 가지는 비디오에 대응할 수 있거나, 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 제공되는, 동일한 비디오 콘텐츠를 포함할 수 있다. 예를 들어, 채널 A는 사용자에게 미리보기로서 제공되는 생방송의 저해상도 비디오일 수 있고, 채널 B는 생방송을 시청하고자 한다는 요청에 응답하여 사용자에게 제공되는 동일한 생방송의 고해상도 비디오일 수 있다. 다른 예에서, 채널 A는 제1 카메라로 포착되고 있는 프로그램의 생방송일 수 있고, 채널 B는 제2 카메라로 포착되고 있는 프로그램의 생방송일 수 있다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다. 채널 A 및 채널 B의 재생이 도 3에 도시되어 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들의 목록 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 전환하라는 요청에 대응하는 채널 B의 청크를 선택하고, 선택된 청크가 클라이언트 디바이스로 송신되도록 요청할 수 있다. 클라이언트 디바이스는 선택된 청크를 버퍼링하고 수신된 청크에서 전환하라는 요청에 대응하는 목적지 프레임을 선택할 수 있다. 목적지 프레임 및 목적지 프레임 이후의 프레임들이 디코딩되어 클라이언트 디바이스 상에 디스플레이될 수 있다. 목적지 프레임은 목적지 프레임을 디코딩하는 데 필요한 선행 프레임들을 디코딩하는 것만으로 디코딩될 수 있다. 이와 같이, 목적지 프레임 이전의 참조 프레임만이 디코딩될 수 있고, 목적지 프레임 이후의 모든 프레임들이 디코딩될 수 있다.
도 4는 본 발명의 일 실시예에 따른, 중간 채널을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 것이다. 도 4는 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 청크들 CH B.1 내지 CH B.N으로 파싱되는 채널 B로 전환하는 것을 나타내고 있다. 채널 A로부터 채널 B로 전환하는 것은 청크들 CH B'.1 내지 CH B'.N으로 파싱되는 중간 채널 B'을 사용하는 것을 포함할 수 있다. 중간 채널 B'은 채널 B의 화질보다 낮은 화질로 제공될 수 있다. 저화질은 중간 채널 B'의 콘텐츠가 채널 B의 콘텐츠보다 더 빠르게 버퍼링되고 디코딩될 수 있게 한다.
채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다. 각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다.
채널 A 및 채널 B는 상이한 콘텐츠를 가지는 비디오를 포함할 수 있거나, 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 제공되는, 동일한 비디오 콘텐츠를 포함할 수 있다. 채널 B'은 채널 B의 비디오 콘텐츠에 대응하는, 그러나 저화질(예컨대, 낮은 비트 레이트, 프레임 레이트 및/또는 프레임 크기)을 갖는 비디오 콘텐츠를 포함할 수 있다.
도 4에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(SF)이 전환하라는 요청과 정렬되어 있지 않을 때, 수신될 수 있다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 전환은, 먼저 중간 채널 B'으로 전환하고 이어서 채널 B의 다음 동기화 프레임(SF)에서 채널 B로 전환하는 것에 의해, 즉각 개시될 수 있다.
중간 채널 B'의 저화질(예컨대, 낮은 비트 레이트, 프레임 레이트 및/또는 프레임 크기)은 디코더가, 그렇지 않았으면 채널 B의 고화질 데이터를 디코딩하게 될 것보다 더 빠르게, 비디오 콘텐츠를 수신하고 디코딩할 수 있게 한다. 이와 같이, 중간 채널을 사용하는 것은 디코딩 지연 시간이 감소될 수 있게 하고 채널 B의 콘텐츠로의 보다 빠른 전환을 제공할 수 있게 한다. 디코더는 채널 B의 다음 동기화 프레임(SF) 때까지 중간 채널 B'의 콘텐츠를 디코딩할 수 있다. 채널 B의 동기화 프레임(SF)에서, 디코더는, 고화질 데이터의 임의의 선행 프레임들을 버퍼링할 필요 없이, 채널 B로 즉각 전환하여 채널 B의 콘텐츠를 디코딩할 수 있다. 저화질의 중간 채널 B'로 전환하는 것이 짧은 기간 동안 저화질 비디오를 제공할 수 있지만, 전환이 요청 시에 그다지 지연 없이 수행될 수 있다.
중간 채널 B'의 동기화 프레임(SF)이 채널 B의 동기화 프레임(SF)과 정렬되어 있는 것으로 도시되어 있지만, 동기화 프레임들이 서로로부터 오프셋되어 있을 수 있다. 하나의 실시예에서, 채널 B의 동기화 프레임 시에 요청이 행해지는 경우, 중간 채널 B'을 사용함이 없이 곧바로 채널 B로 전환이 행해질 수 있다. 본 개시 내용에 논의된 다른 전환 실시예들 중 하나 이상이 채널 A로부터 채널 B로 전환하는 데 사용될 수 있다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다. 도 4에 도시된 바와 같이, 채널 스트림은, 요청과 거의 같은 때에, 채널 B'을 통해 채널 A의 콘텐츠로부터 채널 B의 콘텐츠로 전환하기 위한 데이터를 제공할 수 있다. 채널 스트림이 낮은 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 되어 있는 채널 B의 콘텐츠를 갖는 청크를 짧은 기간 동안 포함할 것이지만, 채널 스트림의 콘텐츠가 요청 시에 그다지 지연 없이 전환될 수 있다. 각자의 채널들의 청크 전체가 클라이언트 디바이스로 송신될 수 있지만, 전환을 용이하게 하기 위해 청크에서의 데이터의 일부분만이 디코딩될 수 있다. 채널 A 및 채널 B의 재생이 도 4에 도시되어 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들의 목록 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임들 중 하나와 정렬되어 있는지를 결정할 수 있다. 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있는 경우, 정렬된 동기화 프레임을 포함하는 청크로 시작하는 청크들이 클라이언트 디바이스에 의해 수신되어 디코딩될 수 있다.
채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있지 않은 경우, 클라이언트 디바이스는 전환 시간이 중간 채널들 중 하나 이상을 사용하는 것에 의해 감소될 수 있는지를 판정할 수 있다. 전환 시간이 감소될 수 없는 경우, 클라이언트 디바이스는 채널 B로부터의 청크들만이 클라이언트 디바이스로 송신되어 그에 의해 디코딩되도록 요청할 수 있다. 그렇지만, 전환 시간이 감소될 수 있는 경우, 클라이언트 디바이스는 전환하라는 요청에 대응하는 중간 채널의 청크를 선택하고, 선택된 청크가 클라이언트 디바이스로 송신되도록 요청할 수 있다. 클라이언트 디바이스는 선택된 청크를 버퍼링하고 청크에서 목적지 프레임에 대응하는 프레임을 선택할 수 있다. 채널 B에서 동기화 프레임을 만날 때까지, 중간 채널에서의 선택된 청크 및 이후의 청크들이 디코딩되어 디스플레이될 수 있다. 채널 B에서의 동기화 프레임을 만나면, 채널 B의 청크들이 클라이언트 디바이스에 의해 수신되고, 디코딩되며, 디스플레이될 수 있다.
도 5는 본 발명의 다른 실시예에 따른, 중간 채널을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 것이다. 도 5는 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 청크들 CH B.1 내지 CH B.N으로 파싱되는 채널 B로 전환하는 것을 나타내고 있다. 채널 A로부터 채널 B로 전환하는 것은 청크들 CH B'.1 내지 CH B'.N으로 파싱되는 중간 채널 B'을 사용하는 것을 포함할 수 있다. 중간 채널 B'은 채널 B에서의 청크들보다 더 짧은, 데이터의 청크들을 포함할 수 있다. 예를 들어, 채널 B에서의 청크들은 기본 청크 크기(예컨대, 10 초)를 사용하여 제공될 수 있고, 중간 채널 B'에서의 청크들은 기본값보다 더 작은 청크 크기(예컨대, 3 초)를 사용하여 제공될 수 있다. 중간 채널 B'에서의 보다 짧은 청크들은, 채널 B에서의 동기화 프레임들의 빈도와 비교하여, 동기화 프레임들이 중간 채널 B'에서 더 높은 빈도로 제공되게 한다.
채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다. 각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다.
채널 A 및 채널 B는 상이한 콘텐츠를 가지는 비디오를 포함할 수 있거나, 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 제공되는, 동일한 비디오 콘텐츠를 포함할 수 있다. 채널 B'은 채널 B의 비디오 콘텐츠에 대응하는, 그러나 지속기간이 보다 짧은 청크들로 인코딩되어 있는 비디오 콘텐츠를 포함할 수 있다. 하나의 실시예에서, 채널 B 및 채널 B'에서의 비디오 콘텐츠의 화질이 유사할 수 있지만, 채널 B'을 인코딩하기 위해 보다 작은 청크들이 사용되기 때문에, 채널 B'의 비트 레이트가 채널 B의 비트 레이트보다 더 높을 수 있다. 하나의 실시예에서, 채널 B 및 채널 B'의 비트 레이트가 유사할 수 있지만, 보다 작은 청크들을 보상하기 위해 화질이 채널 B'에서 더 낮을 수 있다. 기본 청크 크기는, 비디오 콘텐츠, 이용가능한 네트워크 대역폭, 원하는 비트 스트림 크기, 클라이언트 디바이스의 파라미터들, 또는 다른 인코더 설정들에 따라, 인코더에 의해 설정될 수 있다. 보다 많은 수의 비트들이 사용될 것이거나 비디오의 화질이 떨어질 것이더라도, 중간 채널의 청크들이 보다 작게 될 수 있다.
도 5에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(SF)이 전환하라는 요청과 정렬되어 있지 않을 때, 수신될 수 있다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 전환은, 먼저 중간 채널 B'으로 전환하고 이어서 채널 B의 다음 동기화 프레임(SF)에서 채널 B로 전환하는 것에 의해, 즉각 개시될 수 있다.
중간 채널 B'에서의 동기화 프레임들(SF)의 더 높은 빈도는 채널 B의 동기화 프레임들보다 요청에 더 가까울 가능성이 있는 동기화 프레임들을 제공한다. 이와 같이, 전환의 요청이 행해질 때, 채널 A로부터 중간 채널 B'으로의 전환이 채널 A로부터 채널 B로의 전환보다 더 빠르게 처리될 수 있다. 중간 채널 B'으로 전환한 후에, 채널 B의 다음 동기화 프레임(SF)을 만날 때까지 중간 채널 B'의 콘텐츠가 제공되어 디코딩될 수 있고, 채널 B의 다음 동기화 프레임(SF)을 만날 때, 중간 채널 B'으로부터 채널 B로의 전환이 그다지 지연 없이 행해질 수 있다.
채널 A로부터 중간 채널 B'으로 전환하는 것은 다음 동기화 프레임(SF)을 만날 때까지 기다리는 것을 포함할 수 있다. 동기화 프레임들의 높은 빈도로 인해, 채널 변경 요청과 중간 채널 B'에서의 다음 동기화 프레임 사이의 지연이 채널 B로의 전환과 연관된 지연과 비교하여 더 작다. 대안의 실시예에서, 채널 A로부터 중간 채널 B'으로 전환하는 것은 중간 채널 B'에서의 가장 가까운 선행 동기화 프레임(SF)을 찾아내는 것, 및 (예컨대, 도 3에 도시된 실시예에 따라) 요청과 정렬되어 있는 프레임까지의 중간 채널 B'을 버퍼링하고 디코딩하는 것을 포함할 수 있다.
하나의 실시예에서, 채널 A로부터 채널 B로 전환하라는 요청이 수신될 때, 중간 채널 B'과 채널 B 사이의 어느 채널이 요청 이후의 또는 요청 이전의 가장 가까운 동기화 프레임(SF)을 포함하는지에 관한 판정이 행해질 수 있다. 채널 B가 가장 가까운 동기화 프레임(SF)을 가지거나, 양 채널의 동기화 프레임들(SF)이 동일한 장소에서 발견되는 경우, 중간 채널 B'을 사용함이 없이 곧바로 채널 B로 전환이 행해질 수 있다. 그렇지만, 가장 가까운 동기화 프레임(SF)이 중간 채널 B'에서 발견되는 경우, 채널 A로부터 채널 B로의 전환은, 먼저 중간 채널 B'으로 전환하는 것 및 이어서 채널 B의 다음 동기화 프레임(SF)에서 채널 B로 전환하는 것을 포함할 수 있다. 하나의 실시예에서, 복수의 중간 채널들이 포함될 수 있고, 각각의 중간 채널은 기본 청크 지속기간보다 더 작은 상이한 지속기간들의 청크들을 제공한다.
채널 B 및 채널 B'의 동기화 프레임들(SF)이 정렬될 필요가 없다. 채널 B 및 채널 B'의 동기화 프레임들이 서로로부터 미리 결정된 길이만큼 오프셋되어 있을 수 있다. 다른 실시예에서, 채널 B'의 길이는 채널 B 및 채널 B'의 동기화 프레임들(SF)이 서로로부터 오프셋되어 있도록 설정될 수 있다. 채널 B 및 채널 B'의 동기화 프레임들(SF)이 정렬되어 있지 않은 것은 동기화 프레임이 채널 B로 전환하라는 요청과 정렬될 가능성을 증가시킨다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다. 도 5에 도시된 바와 같이, 채널 스트림은, 요청과 거의 같은 때에, 채널 A의 콘텐츠로부터 채널 B의 콘텐츠로의 데이터 전환을 제공할 수 있다. 채널 스트림이 저화질로 되어 있는 또는 더 많은 대역폭을 필요로 하는 채널 B의 콘텐츠를 갖는 청크를 짧은 기간 동안 포함할 수 있지만, 채널 스트림의 콘텐츠가 요청 시에 그다지 지연 없이 전환될 수 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들의 목록 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임들 중 하나와 정렬되어 있는지를 결정할 수 있다. 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있는 경우, 정렬된 동기화 프레임을 포함하는 청크로 시작하는 청크들이 클라이언트 디바이스에 의해 수신되어 디코딩될 수 있다.
채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있지 않은 경우, 클라이언트 디바이스는 전환 시간이 다양한 지속기간의 청크들을 가지는 중간 채널들 중 하나 이상을 사용하는 것에 의해 감소될 수 있는지를 판정할 수 있다. 전환 시간이 감소될 수 없는 경우, 클라이언트 디바이스는 채널 B로부터의 청크들만이 클라이언트 디바이스로 송신되어 그에 의해 디코딩되도록 요청할 수 있다. 그렇지만, 전환 시간이 감소될 수 있는 경우, 클라이언트 디바이스는 전환하라는 요청에 대응하는 중간 채널의 청크를 선택하고, 선택된 청크가 클라이언트 디바이스로 송신되도록 요청할 수 있다. 클라이언트 디바이스는 선택된 청크를 버퍼링하고 목적지 프레임에 대응하는 청크에서의 프레임을 선택할 수 있다. 채널 B에서 동기화 프레임을 만날 때까지, 중간 채널에서의 선택된 청크 및 이후의 청크들이 디코딩되어 디스플레이될 수 있다. 채널 B에서의 동기화 프레임을 만나면, 채널 B의 청크들이 클라이언트 디바이스에 의해 수신되고, 디코딩되며, 디스플레이될 수 있다.
도 6은 본 발명의 일 실시예에 따른, 데이터 스트림의 청크들 내에 제공된 부가 참조 프레임들을 사용하여 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 것이다. 도 6은 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 청크들 CH B.1 내지 CH B.N으로 파싱되는 채널 B로 전환하는 것을 나타내고 있다. 채널 A로부터 채널 B로 전환하는 것은 채널 B의 청크와 연관된 다수의 참조 프레임들(RF)을 사용하는 것을 포함할 수 있다. 참조 프레임들(RF)은 요청 이후의 채널 B 데이터의 신속한 디코딩을 가능하게 하기 위해 신속하게 디코딩될 수 있는 청크 내의 부가 참조 프레임들을 제공한다. 부가 참조 프레임들은 인코더의 기본 설정을 사용하여 청크 내에 제공되지 않는 프레임들일 수 있다. 도 6에 도시된 바와 같이, 참조 프레임들(RF)이, 전환의 목적지의 청크의 일부로서, 제공될 수 있다. 다른 실시예에서, 채널 B의 청크에서의 참조 프레임들(RF)에 대응하는 참조 프레임들(RF')이 보조 채널로서 제공될 수 있다.
채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다. 각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다. 요청 시에, 전환하라는 요청에 대응하는 채널 B에서의 목적지 채널이 결정될 수 있다.
배포 서버에 의해 제공되는 채널 B의 하나 이상의 청크들은 청크 내에 분산되어 있는 부가 참조 프레임들(예컨대, p-프레임들)을 포함할 수 있다. 부가 참조 프레임들은 채널 B의 일부일 수 있거나, 별도의 채널에서 제공될 수 있다. 기본 설정에 의해, 인코더가 청크의 크기를 제한하기 위해 특정의 청크 내에 제공되는 참조 프레임들의 개수를 제한할 수 있지만, 채널 B로의 전환을 향상시키기 위해 부가 참조 프레임들이 청크에 포함될 수 있다. 참조 프레임들은 각자의 청크의 동기화 프레임(예컨대, I-프레임)에 부가하여 제공되는 프레임들일 수 있다. 참조 프레임들은 디코딩될 하나 이상의 이전 프레임들로부터의 데이터를 사용할 수 있다. 하나의 실시예에서, 참조 프레임들은 디코딩될 동기화 프레임의 데이터만을 필요로 할 수 있다. 이와 같이, 참조 프레임들 중 임의의 것이, 모든 선행 프레임 또는 하나 초과의 선행 프레임을 필요로 함이 없이, 신속하게 디코딩될 수 있다. 부가 참조 프레임들은 또한 디코딩될 참조 프레임 이후의 어떤 프레임들도 필요로 하지 않는다.
도 6에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(SF)이 전환하라는 요청과 정렬되어 있지 않을 때, 수신될 수 있다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 전환이 요청에 대응하는 청크 내의 이용가능한 부가 참조 프레임들을 이용하는 것에 의해 즉각 개시될 수 있다. 전환하라는 요청에 응답하여, 부가 참조 프레임들을 갖는 청크 또는 부가 참조 프레임들을 갖는 보조 채널이 클라이언트 디바이스로 송신될 수 있다. 부가 참조 프레임들을 사용하여, 청크 내에서 요청에 가장 가까운 부가 참조 프레임이 결정될 수 있다. 가장 가까운 참조 프레임은 요청 이전의 가장 가까운 참조 프레임 또는 요청 이후의 가장 가까운 참조 프레임일 수 있다.
선택된 참조 프레임(예컨대, 도 6에서의 참조 프레임 RF5)은 디코딩되어, 채널 B의 콘텐츠를 제공하기 위한 시작 프레임으로서 사용될 수 있다. 대안적으로, 선택된 참조 프레임은 목적지 프레임에 대응하는 다른 근방의 프레임을 디코딩하기 위한 참조로서 사용될 수 있다. 선택된 참조 프레임이 모든 단일의 선행 프레임 또는 디코딩될 선택된 참조 프레임 이후의 임의의 프레임들을 필요로 하지 않기 때문에, 선택된 참조 프레임이 디코딩에 필요한 프레임들만을 사용하여 디코딩될 수 있다. 예를 들어, 선택된 참조 프레임이 디코딩될 청크의 동기화 프레임(SF)만을 필요로 하는 경우, 채널 B의 콘텐츠를 제공하기 시작하기 위해, 동기화 프레임(SF) 및 선택된 참조 프레임만이 버퍼링되고 디코딩되면 된다. 선택된 참조 프레임들 이후의 모든 프레임들이 선택된 참조 프레임 내의 정보를 사용하여 디코딩될 수 있다.
부가 참조 프레임들의 사용은, 보다 부담이 큰(costly) 동기화 프레임들(SF)(예컨대, I-프레임들)을 사용함이 없이, 청크 내에 보다 많은 전환 위치들이 제공되게 한다. 부가 참조 프레임들이 청크 내에 미리 결정된 간격으로(예컨대, 매 1/2 초마다) 제공될 수 있다. 비트스트림이 매니페스트 파일에 인덱싱되어 있을 수 있고, 따라서 전환하라는 요청에 대응하는 참조 프레임을 디코딩하기 위해 청크의 모든 비트들이 버퍼링될 필요가 없다. 예를 들어, 참조 프레임들에 대한 포인터들이 매니페스트 파일에 제공되어 있을 수 있고, 따라서 디코더는 요청에 가장 가까운 참조 프레임을 찾아낼 수 있다.
참조 프레임들이 배포 서버에 의해 하나 이상의 채널들에서 제공될 수 있다. 부가 참조 프레임들이 사용자에게 미리보기로서 제공되는 채널들에 제공될 수 있다. 다른 실시예에서, 요청에 응답하여 및/또는 요청에 대응하는 청크들에만 부가 참조 프레임들이 제공될 수 있다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다. 도시된 바와 같이, 청크 CH B.1이 전환하라는 요청에 대응하기 때문에, 청크 CH B.1을 갖는 부가 채널들이 제공될 수 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임들 중 하나와 정렬되어 있는지를 결정할 수 있다. 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있는 경우, 정렬된 동기화 프레임을 포함하는 청크로 시작하는 청크들이 클라이언트 디바이스에 의해 수신되어 디코딩될 수 있다.
채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있지 않은 경우, 클라이언트 디바이스는 전환 시간이 전환하라는 요청에 대응하는 청크와 연관된 부가 참조 프레임들을 사용하는 것에 의해 감소될 수 있는지를 판정할 수 있다. 전환 시간이 감소될 수 없는 경우, 클라이언트 디바이스는 채널 B로부터의 청크들이 클라이언트 디바이스로 송신되어 그에 의해 디코딩되도록 요청할 수 있다. 그렇지만, 전환 시간이 감소될 수 있는 경우, 클라이언트 디바이스는 하나 이상의 부가 참조 프레임들이 전환하라는 요청에 대응하는 청크의 일부로서 또는 보조 채널의 일부로서 제공되도록 요청할 수 있다. 클라이언트 디바이스는, 매니페스트 파일 내의 정보에 기초하여, 동기화 프레임 및 목적지 프레임에 대응하는 참조 프레임만이 클라이언트 디바이스로 송신되도록 요청할 수 있다.
클라이언트 디바이스는 동기화 프레임 및 참조 프레임들을 버퍼링하고 디코딩할 수 있다. 디코딩된 참조 프레임은 목적지 프레임을 제공하고 목적지 프레임 이후의 프레임들의 디코딩을 계속하기 위해 사용될 수 있다. 디코딩된 프레임들은 클라이언트 디바이스에 의해 디스플레이될 수 있다.
도 7은 본 발명의 일 실시예에 따른, 제1 채널로부터 복수의 오프셋된 채널들 중 하나인 제2 채널로 전환하는 방법을 나타낸 것이다. 도 7은 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 복수의 오프셋된 채널들 B, B', B'' 및 B''' 중 하나로 전환하는 것을 나타내고 있다. 오프셋된 채널들 각각은 청크들 CH B.1 내지 CH B.N으로 파싱될 수 있다. 채널 A로부터 오프셋된 채널들 중 하나로 전환하는 것은 오프셋된 채널들 중 어느 것이 요청과 가장 가깝게 정렬되어 있는 동기화 프레임을 포함하는지를 결정하는 것 및 채널 A로부터 가장 가까운 동기화 프레임을 갖는 채널로 전환하는 것을 포함할 수 있다.
채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 전환하라는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다. 채널 B와 동일한 콘텐츠를 갖는 부가 채널들 B', B'' 및 B'''이 제공될 수 있지만, 오프셋되어 있는 청크들 및/또는 동기화 프레임들을 갖는다. 배포 서버는 오프셋된 동기화 프레임들을 갖는 채널들을 제공하도록 채널들을 인코딩할 수 있다. 각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다. 채널 B 및 부가 채널들 B', B'' 및 B'''에서의 동기화 프레임들(SF)이 오프셋되어 있을 수 있지만, 채널들 각각에서 이용가능한 주어진 때의 콘텐츠는 동일할 수 있다.
채널 A 및 채널 B는 상이한 콘텐츠를 가지는 비디오를 포함할 수 있거나, 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 제공되는, 동일한 비디오 콘텐츠를 포함할 수 있다. 도 7에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(SF)이 전환하라는 요청과 정렬되어 있지 않을 때, 수신된다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 전환은 요청에 보다 가까운 동기화 프레임(SF)을 가지는 오프셋된 채널들 B', B'', 또는 B''' 중 하나로 전환하는 것에 의해 즉각 개시될 수 있다.
전환하라는 요청이 클라이언트 디바이스에 수신될 때, 디바이스는 이용가능한 오프셋된 채널들 중에서 가장 가까운 동기화 프레임(SF)을 포함하는 채널을 결정할 수 있다. 가장 가까운 동기화 프레임은 요청 이전의 가장 가까운 동기화 프레임 또는 요청 이후의 가장 가까운 동기화 프레임(SF)일 수 있다. 클라이언트 디바이스는, 가장 가까운 동기화 프레임(SF)을 채널 B 콘텐츠의 첫 번째 프레임으로서 사용하는 것에 의해, 채널 A로부터 채널 B의 콘텐츠로의 전환을 처리할 수 있다. 동기화 프레임(SF)이 임의의 다른 프레임들을 버퍼링하여 디코딩하는 것을 필요로 하지 않기 때문에, 동기화 프레임(SF)이 디코딩되자마자, 채널 B의 콘텐츠가 클라이언트 디바이스 상에 디스플레이될 수 있다.
배포 서버는 오프셋된 채널들 전부를 클라이언트 디바이스에 제공할 수 있다. 하나의 실시예에서, 채널 B 및 부가 채널들 B', B'' 및 B''' 모두가 동일한 화질로 제공된다. 다른 실시예에서, 오프셋된 채널들 B', B'' 및 B'''은 채널 B의 화질보다 낮은 화질을 가지는 채널들일 수 있다. 고화질을 가지는 채널 B의 동기화 프레임을 만나면, 오프셋된 채널들 B', B'' 및 B'''으로부터 채널 B로 전환이 행해질 수 있을 것이다.
다른 실시예에서, 클라이언트 디바이스로부터의 요청에 응답하여, 배포 서버는 가장 가까운 동기화 프레임(SF)을 포함하는 오프셋된 채널만을 클라이언트 디바이스에 제공할 수 있다. 동기화 프레임들의 위치 및 오프셋된 채널들에 관한 정보가 매니페스트 파일을 통해 클라이언트 디바이스에 제공될 수 있다. 이와 같이, 매니페스트 파일 내의 정보를 사용하여, 클라이언트 디바이스는 어느 채널이 클라이언트 디바이스로 송신되어야 하는지를 결정하고, 요청된 채널을 배포 서버에 대한 요청에 포함시킬 수 있다.
하나의 실시예에서, 이용가능한 동기화 프레임들의 더 나은 분포를 제공하기 위해, 오프셋된 채널들이 상이한 길이의 청크들을 가지는 채널들과 혼합되어 있을 수 있다. 도 7에서 동기화 프레임들이 청크들의 시작 부분에 도시되어 있지만, 동기화 프레임들이 청크들 내의 다른 장소들에 위치될 수 있다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들의 목록 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일은 채널 B의 콘텐츠를 포함하고 서로로부터 오프셋되어 있는 동기화 프레임들을 가지는 복수의 채널들에 관한 정보를 포함할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 이용가능한 채널들로부터의 어느 청크가 보다 빠르게 수신되어 디코딩될 수 있는지를 판정할 수 있다. 클라이언트 디바이스는 전환하라는 요청에 가장 가까운 동기화 프레임을 포함하는 채널을 선택할 수 있다. 클라이언트 디바이스는 선택된 채널 및 그 요청에 대응하는 채널로부터의 청크를 송신하라는 요청을 배포 서버로 송신할 수 있다. 수신되는 청크는 클라이언트 디바이스에 의해 디코딩되어 디스플레이될 수 있다.
도 8은 본 발명의 다른 실시예에 따른, 시차 있는 채널을 통해 제1 채널로부터 제2 채널로 전환하는 방법을 나타낸 것이다. 도 8은, 시차 있는 채널들 B', B'' 및 B''' 중 하나를 통해, 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A로부터 청크들 CH B.1 내지 CH B.N으로 파싱되는 채널 B로 전환하는 것을 나타내고 있다. 채널 A로부터 채널 B로 전환하는 것은 먼저 시차 있는 채널들 B', B'' 및 B''' 중 하나로 전환하고 채널 B에서 동기화 프레임(SF)을 만날 때 채널 B로 전환하는 것을 포함할 수 있다.
채널 A는 배포 서버에 의해 클라이언트 디바이스로 현재 송신되고 있는 채널을 나타낼 수 있고, 채널 B는 요청에 응답하여 배포 서버 및/또는 클라이언트 디바이스가 전환하게 될 채널을 나타낼 수 있다. 각각의 청크의 첫 번째 프레임은 비디오 시퀀스의 임의의 이전에 코딩된 프레임을 참조함이 없이 디코딩될 수 있는 동기화 프레임(SF)으로서 코딩될 수 있다. 채널들 B, B', B'' 및 B''' 각각에서 이용가능한 주어진 때의 콘텐츠는 동일할 수 있다.
주어진 때에 채널 B와 동일한 콘텐츠를 갖는 부가 채널들 B', B'' 및 B'''이 제공되지만, 부가 채널들은 채널 B의 각자의 청크에서 제공되는 콘텐츠의 일부 부분만을 포함할 수 있다. 각각의 부가 채널 B', B'' 및 B'''은 채널에 포함되지 않은 대응하는 청크의 미리 결정된 부분을 가질 수 있다. 예를 들어, 부가 채널들 B', B'' 및 B'''에서의 각각의 청크의 제1 부분은 청크들에 제공되어 있지 않은 (예컨대, 프레임들의 개수 또는 미리 결정된 지속기간에 기초하여) 상이한 미리 결정된 부분을 가질 수 있다. 동기화 프레임들(SF)이 각각의 청크의 시작 부분에 제공되는 실시예에서, 동기화 프레임들(SF)은, 청크들의 상이한 시작 지점들 및 길이들로 인해, 서로로부터 오프셋되어 있을 것이다.
채널 A 및 채널 B는 상이한 콘텐츠를 가지는 비디오를 포함할 수 있거나, 상이한 비트 레이트, 프레임 레이트 및/또는 프레임 크기로 제공되는, 동일한 비디오 콘텐츠를 포함할 수 있다. 도 8에 도시된 바와 같이, 채널 A로부터 채널 B로 전환하라는 요청이, 채널 B의 동기화 프레임(SF)이 전환하라는 요청과 정렬되어 있지 않을 때, 수신된다. 채널 B로 전환하기 위해 채널 B의 다음 동기화 프레임(SF) 때까지 기다리는 것을 피하기 위해, 전환은 요청에 보다 가까운 동기화 프레임(SF)을 가지는 시차 있는 채널들 B', B'', 또는 B''' 중 하나로 전환하는 것에 의해 즉각 개시될 수 있다.
전환하라는 요청이 클라이언트 디바이스에 수신될 때, 클라이언트 디바이스는 가장 가까운 동기화 프레임(SF)을 포함하는 시차 있는 채널들 중에서 중간 채널(예컨대, 채널 B")을 결정할 수 있다. 가장 가까운 동기화 프레임(SF)은 요청 이전의 가장 가까운 동기화 프레임(SF) 또는 요청 이후의 가장 가까운 동기화 프레임(SF)일 수 있다. 클라이언트 디바이스는, 중간 채널(예컨대, 채널 B")의 가장 가까운 동기화 프레임(SF)을 채널 B 콘텐츠의 첫 번째 프레임으로서 사용하는 것에 의해, 채널 A로부터 채널 B의 콘텐츠로의 전환을 처리할 수 있다. 동기화 프레임(SF)이 임의의 다른 프레임들을 버퍼링하여 디코딩하는 것을 필요로 하지 않기 때문에, 중간 채널의 동기화 프레임(SF)이 디코딩되자마자, 채널 B의 콘텐츠가 클라이언트 디바이스 상에 디스플레이될 수 있다. 채널 B의 동기화 프레임(SF)을 (예컨대, 채널 B"에서의 청크의 끝에서) 만나면, 중간 채널로부터 채널 B의 동기화 프레임(SF)으로 전환이 행해질 수 있다. 도 8에 도시된 바와 같이, 부가 채널들에서의 각각의 청크의 끝이 채널 B의 동기화 프레임들과 정렬될 수 있다.
배포 서버는 시차 있는 채널들 전부를 클라이언트 디바이스에 제공할 수 있다. 시차 있는 채널들 B', B'' 및 B'''은 채널 B보다 낮은 화질을 가지는 채널들일 수 있다. 채널 B의 동기화 프레임(SF)을 만날 때까지 채널들 B', B'' 또는 B'''의 콘텐츠가 채널 B보다 낮은 화질로 제공될 수 있다. 채널 B의 동기화 프레임을 만나면, 채널 B로 전환이 행해질 수 있을 것이다.
다른 실시예에서, 클라이언트 디바이스로부터의 요청에 응답하여, 배포 서버는 가장 가까운 동기화 프레임(SF)을 포함하는 시차 있는 채널만을 클라이언트 디바이스에 제공할 수 있다. 동기화 프레임들의 위치 및 시차 있는 채널들에 관한 정보가 매니페스트 파일을 통해 클라이언트 디바이스에 제공될 수 있다. 이와 같이, 매니페스트 파일 내의 정보를 사용하여, 클라이언트 디바이스는 어느 채널이 클라이언트 디바이스로 송신되어야 하는지를 결정하고, 요청된 채널을 배포 서버에 대한 요청에 포함시킬 수 있다.
채널 스트림은, 채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 네트워크를 통해 전송되고 디스플레이 디바이스에 의해 수신되는 데이터를 나타낼 수 있다.
채널 A로부터 채널 B로 전환하라는 요청에 응답하여, 클라이언트 디바이스는 배포 서버로부터 매니페스트 파일을 수신하기 위한 요청을 발행할 수 있다. 수신된 매니페스트 파일은 이용가능한 채널들의 목록 및 그 채널들과 연관된 청크들을 클라이언트 디바이스에 제공할 수 있다. 매니페스트 파일은 채널 B의 대응하는 청크들의 프레임들의 일부분들만을 갖는 청크들을 포함하는 중간 채널들의 목록을 포함할 수 있다. 매니페스트 파일 내의 정보 및 전환하라는 요청의 상세에 기초하여, 클라이언트 디바이스는 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임들 중 하나와 정렬되어 있는지를 결정할 수 있다. 채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있는 경우, 정렬된 동기화 프레임을 포함하는 청크로 시작하는 청크들이 클라이언트 디바이스에 의해 수신되어 디코딩될 수 있다.
채널 B에서의 목적지 프레임이 채널 B에서의 동기화 프레임과 정렬되어 있지 않은 경우, 클라이언트 디바이스는 전환 시간이 채널 B의 대응하는 청크들의 다양한 일부분들을 가지는 중간 채널들 중 하나 이상을 사용하는 것에 의해 감소될 수 있는지를 판정할 수 있다. 전환 시간이 감소될 수 없는 경우, 클라이언트 디바이스는 채널 B로부터의 청크들만이 클라이언트 디바이스로 송신되어 그에 의해 디코딩되도록 요청할 수 있다. 그렇지만, 전환 시간이 감소될 수 있는 경우, 클라이언트 디바이스는 전환하라는 요청에 가장 가까운 동기화 프레임을 포함하는 중간 채널들 중에서 채널을 선택할 수 있다. 가장 가까운 동기화 프레임을 포함하는 선택된 채널로부터의 청크가 선택되고 클라이언트 디바이스로 송신되도록 요청될 수 있다.
클라이언트 디바이스는 선택된 청크를 버퍼링하고 디코딩할 수 있다. 채널 B에서 동기화 프레임을 만날 때까지, 중간 채널에서의 선택된 청크 및 이후의 청크들이 디코딩되어 디스플레이될 수 있다. 채널 B에서의 동기화 프레임을 만나면, 채널 B의 청크들이 클라이언트 디바이스에 의해 수신되고, 디코딩되며, 디스플레이될 수 있다.
도 9는 본 발명의 일 실시예에 따른, 다수의 스케일러블 채널들을 사용하는 재생 방법을 나타낸 것이다. 도 9는 청크들 CH A.1 내지 CH A.N으로 파싱되는 채널 A, 및 복수의 레이트들로 그리고/또는 상이한 시간 인스턴스(instance of time)들에서 참조 프레임들(RF)을 제공하는 복수의 채널들 B 내지 D를 나타내고 있다. 채널들 B 내지 D는 채널 A에서의 콘텐츠의 플레이어에서 빨리감기(fast forward)(ffwd) 및/또는 되감기(rewind)(rwd) 기능들을 지원하기 위해 사용될 수 있는 참조 프레임들(예컨대, 동기화 프레임들 또는 I-프레임들)을 포함한다. ffwd 및/또는 rwd 기능들의 상이한 속도들을 제공하기 위해 다수의 채널들 B 내지 D가 결합될 수 있다. I-프레임들을 사용하는 ffwd 및 rwd 기능들이 HLS(HTTP Live Streaming) 프로토콜에 의해 구현될 수 있지만, 그것으로 제한되지 않는다.
채널들 B 내지 D는 참조 프레임들을 상이한 레이트들로 제공할 수 있다. 예를 들어, 채널들 B 및 C는 참조 프레임들을 초당 1/8 프레임(즉, 매 8 초마다 하나의 프레임)으로 포함할 수 있다. 채널 D는 참조 프레임들을 초당 1/2 프레임(즉, 매 2 초마다 하나의 프레임)으로 포함할 수 있다. 채널들 B 내지 D는 또한 서로로부터 오프셋되어 있는 참조 프레임들을 포함할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 채널들 B 및 C가 동일한 레이트로 제공되는 참조 프레임들을 갖지만, 그 채널들이 서로로부터 오프셋되어 있을 수 있다. 채널들 B 내지 D 모두가 다른 채널들에서의 참조 프레임들로부터 오프셋되어 있는 참조 프레임들을 가질 수 있다.
채널들 B 내지 D 중 하나 이상으로부터 제공되는 참조 프레임들을 제어하는 것은 특정의 ffwd 및/또는 rwd 기능에 필요한 참조 프레임들을 제공할 수 있다. 예를 들어, 채널들 B 내지 D 모두로부터의 참조 프레임들이 저속 ffwd 및/또는 rwd 동작들(예컨대, 2X)을 위해 사용될 수 있다. 채널들 B 내지 D 모두에서의 참조 프레임들이 서로로부터 오프셋되어 있기 때문에, 상이한 채널들이 높은 빈도의 참조 프레임들을 가지는 단일의 스트림으로 결합될 수 있다. 보다 빠른 ffwd 및/또는 rwd 동작들을 위해, 보다 적은 수의 참조 프레임들이 사용될 수 있다. ffwd 및/또는 rwd 동작들의 속도를 증가시키기 위해, 채널들 중 하나 이상으로부터의 참조 프레임들이 제거될 수 있다. 예를 들어, 보다 빠른 속도(예컨대, 4X)를 갖는 ffwd 및/또는 rwd 동작을 제공하기 위해 채널들 B 및 C만이 사용될 수 있다. 이와 유사하게, 가장 빠른 속도(예컨대, 8X)에 대한 ffwd 및/또는 rwd 동작을 제공하기 위해 채널들 B 및 C 중 하나만이 사용될 수 있다.
배포 서버는 클라이언트 디바이스 또는 모바일 디바이스로부터 수신되는 명령에 기초하여 채널들 B 내지 D 중 하나 이상을 제공할 수 있다. 배포 서버 또는 클라이언트 디바이스는, 특정의 동작을 위해 필요하지 않은 채널들을 풀링(pulling)함이 없이, 어느 채널들이 풀링되어야 하는지를 결정을 할 수 있다. 배포 서버 또는 클라이언트 디바이스는 특정의 ffwd 및/또는 rwd 동작을 위해 필요한 참조 프레임들의 개수를 선택하고, 요청된 동작을 수행하기 위해 클라이언트 디바이스 또는 모바일 디바이스로 송신되어야 하는 채널들을 결정할 수 있다. ffwd 및/또는 rwd 동작이 종료되면, 앞서 논의된 전환 방법들 중 하나 이상이 원래 콘텐츠(original content)를 제공하는 채널(예컨대, 채널 A)로 다시 전환하는 데 사용될 수 있다. 이용가능한 채널들에 관한 정보가 매니페스트 파일에서 클라이언트 디바이스에 제공될 수 있다. 클라이언트 디바이스는 매니페스트 파일에서 제공되는 정보에 기초하여 특정의 동작에 필요한 채널들을 요청할 수 있다.
앞서 논의된 전환 방법들은 또한 상이한 종횡비들을 갖는 비디오 콘텐츠를 제공하는 채널들 간의 전환에 적용될 수 있다. 전통적으로, 비디오 콘텐츠가 디스플레이의 종횡비와 상이한 종횡비로 수신될 때, 비디오 콘텐츠가 비디오 콘텐츠의 어떤 가장자리들에서 블랙 영역(black area)으로 디스플레이되거나, 비디오 콘텐츠가 줌잉(zoom)되어 가장자리들에서 크로핑(crop)된다. 크로핑은 일반적으로 비디오 콘텐츠가 수신되어 디코딩된 후에 수행된다. 이러한 접근법의 경우, 디스플레이 디바이스 상에 디스플레이되지 않는 크로핑된 비디오 콘텐츠는 비트들을 낭비한다.
상이한 종횡비들을 갖는 동일한 비디오 콘텐츠를 제공하기 위해 다수의 채널들이 사용될 수 있다. 예를 들어, 제1 채널의 비디오 콘텐츠는 제1 종횡비(예컨대, 16:9)를 사용하여 비디오를 제공할 수 있고, 제2 채널은 제2 종횡비(예컨대, 4:3)를 갖는 동일한 비디오 콘텐츠를 제공할 수 있다. 제1 종횡비는 원래 비디오 소스의 종횡비에 대응할 수 있는 반면, 제2 종횡비는 원래 비디오 소스의 줌잉되고 크로핑된 비디오에 대응할 수 있다.
제2 채널이 크로핑된 영역을 포함하지 않기 때문에, 제2 채널에서의 비디오 콘텐츠의 중앙을 인코딩하기 위해 보다 적은 수의 비트들이 사용될 수 있다. 대안적으로, 제2 채널을 제1 채널의 화질과 비교하여 더 높은 화질로 인코딩하는 데 제1 채널과 동일한 수의 비트들이 사용될 수 있다.
다른 실시예에서, 제1 채널은 비디오의 중앙 콘텐츠를 제공할 수 있고, 부가 채널들은 다양한 종횡비들에 대한 비디오 콘텐츠의 측면 콘텐츠를 제공할 수 있다. 상이한 종횡비들을 제공하기 위해, 부가 채널들 중 하나 이상이 비디오 콘텐츠의 중앙에 추가될 수 있다. 중앙 콘텐츠는 4:3 종횡비에 대응할 수 있고, 부가 채널들은 부가 종횡비들을 생성하기 위해 측면 콘텐츠를 제공할 수 있다. 예를 들어, 제1 채널은 중앙 콘텐츠를 제공할 수 있고, 제2 채널은 16:9 종횡비에 대한 측면 콘텐츠를 제공할 수 있으며, 제3 채널은 2.4:1 종횡비에 대한 측면 콘텐츠를 제공할 수 있다. 16:9 종횡비가 요청될 때, 16:9 종횡비를 갖는 비디오 콘텐츠를 제공하기 위해 중앙 콘텐츠를 갖는 제1 채널과 제2 채널 둘 다가 결합될 수 있다. 2.4:1 종횡비가 요청될 때, 2.4:1 종횡비를 갖는 비디오 콘텐츠를 제공하기 위해 중앙 콘텐츠를 갖는 제1 채널과 제3 채널 둘 다가 결합될 수 있다. 중앙 콘텐츠만이 디바이스 상에 디스플레이될 수 있을 때(예컨대, 4:3 종횡비의 경우), 제1 채널만이 디스플레이 디바이스로 송신될 수 있다. 하나의 실시예에서, 더 나은 예측을 제공하기 위해 그리고 블렌딩(blending)을 위해 측면 콘텐츠를 갖는 채널들과 중앙 콘텐츠가 중첩될 수 있다.
배포 서버 또는 클라이언트 디바이스는 디스플레이 디바이스에서 상이한 종횡비들을 디스플레이하는 데 사용될 수 있는 다수의 채널들을 제공하기 위해 원래 비디오 콘텐츠(original video content)의 처리를 수행할 수 있다. 예를 들어, 배포 서버 또는 클라이언트 디바이스는 제2 채널의 크로핑 및 인코딩을 수행할 수 있다. 사용자에 의한 요청 또는 디바이스의 자동 동작에 응답하여 상이한 종횡비들에 대해 사용되는 채널들이 디스플레이 디바이스(예컨대, 클라이언트 디바이스 또는 모바일 디바이스)에 제공될 수 있다. 이러한 요청이 행해질 때, 앞서 논의된 방법들 중 하나 이상이 제1 채널로부터 다른 채널로 전환하는 데 사용될 수 있다. 요청에 응답하여, 배포 서버 또는 클라이언트 디바이스는 요청된 종횡비를 제공하기 위해 다수의 채널들을 디스플레이 디바이스로 송신할 수 있다. 요청은, 예를 들어, 사용자가 비디오의 디스플레이를 최대화 또는 최소화할 때, 사용자에 의해 발행될 수 있다. 요청은, 예를 들어, 사용자가 디바이스를 회전시켜 비디오가 수평으로 디스플레이되는 것과 수직으로 디스플레이되는 것 사이에서 전환(flip)될 때, 디바이스에 의해 자동으로 행해질 수 있다.
다양한 종횡비들에 대해 이용가능한 채널들에 관한 정보가 매니페스트 파일을 통해 클라이언트 디바이스에 제공될 수 있다. 클라이언트 디바이스는 매니페스트 파일에서 제공되는 정보에 기초하여 특정의 종횡비에 필요한 채널들을 요청할 수 있다.
도 10은 본 개시 내용의 일 실시예에 따른, 비디오 콘텐츠의 상이한 종횡비들을 제공하는 방법(1000)을 나타낸 것이다. 방법(1000)은 제1 종횡비를 갖는 비디오 콘텐츠를 수신하는 단계 및, 제2 종횡비를 갖는 비디오를 제공하라는 요청에 응답하여, 제2 종횡비를 갖는 비디오 콘텐츠를 제공하는 단계를 포함할 수 있다. 제2 종횡비를 갖는 비디오 콘텐츠가 제2 종횡비를 갖는 기존의 비디오 콘텐츠를 사용하는 것에 의해 또는 제2 종횡비를 제공하기 위해 이미 수신된 비디오 콘텐츠와 결합될 수 있는 보조 스트림(side stream)들을 획득하는 것에 의해 제공될 수 있다.
방법(1000)은 제1 종횡비를 갖는 코딩된 비디오를 수신하는 단계(박스(1010))를 포함할 수 있다. 제1 종횡비를 갖는 코딩된 비디오가 디스플레이 디바이스 상에서 디코딩(박스(1012))되어 디스플레이(박스(1014))될 수 있다. 제2 종횡비를 갖는 동일한 비디오 콘텐츠를 수신하라는 요청에 응답하여(박스(1016)), 제2 종횡비를 갖는 코딩된 비디오 데이터가 이용가능한지가 판정될 수 있다(박스(1018)). 제2 종횡비를 갖는 코딩된 비디오 데이터가 이용가능한 경우, 제2 종횡비를 갖는 비디오가 수신(박스(1020))되어 디코딩(박스(1022))될 수 있다. 디코딩된 비디오 스트림이 제2 종횡비를 사용하여 디스플레이 디바이스 상에 디스플레이될 수 있다(박스(1024)).
제2 종횡비를 갖는 코딩된 비디오 데이터가 이용가능하지 않은 경우, 제2 종횡비를 제공하기 위해, 부가 채널들이 수신되어 결합될 수 있는지에 관한 판정이 행해질 수 있다(박스(1026)). 제2 종횡비가 부가 채널들로 획득될 수 없는 경우, 제1 종횡비가 여전히 디스플레이 디바이스 상에 디스플레이될 수 있다(박스(1014)).
그렇지만, 부가 채널들에서의 콘텐츠가 제1 종횡비를 가지는 비디오 콘텐츠와 결합될 수 있는 경우, 부가 콘텐츠(예컨대, 보조 스트림들)를 갖는 채널들이 수신(박스(1028))되어 디코딩(박스(1030))될 수 있다. 디코딩된 콘텐츠가 제1 종횡비를 가지는 비디오의 콘텐츠와 결합될 수 있다(박스(1032)). 비디오 콘텐츠 간의 중첩이 있는 경우, 비디오 콘텐츠에 대해 블렌딩이 또한 수행할 수 있다(박스(1032)). 결합된 비디오 콘텐츠가 디스플레이 디바이스 상에 제2 종횡비로 디스플레이될 수 있다(박스(1024)). 제1 종횡비를 갖는 비디오로부터 제2 종횡비를 갖는 비디오로 전환하기 위해, 앞서 논의된 전환 방법들 중 하나 이상이 사용될 수 있다.
다른 실시예에서, 제1 채널로부터 제1 채널로 전환하는 앞서 논의된 방법들은 제2 채널의 콘텐츠를 재생할 준비를 하는 데 더 많은 시간을 제공하기 위해 제1 및/또는 제2 채널의 재생의 속도를 낮추는(slow down) 단계를 포함할 수 있다. 제2 채널의 재생의 속도를 낮추는 것은 제2 채널로의 매끄러운 전환을 제공하는 데 도움을 줄 수 있다. 제2 채널의 재생은 사용자가 알아채지 못하도록 속도가 낮춰질 수 있다. 제2 채널의 재생은 요청 시에 속도가 낮춰질 수 있다. 다른 실시예에서, 제2 채널의 데이터를 버퍼링하여 디코딩하는 데 더 많은 시간이 필요한 것으로 판정될 때, 제1 또는 제2 채널, 또는 임의의 중간 채널의 재생의 속도가 낮춰질 수 있다. 이 판정은 예상된 또는 계산된 전환 시간을 미리 결정된 시간과 비교하는 것에 의해 행해질 수 있다. 예상된 전환 시간이 미리 결정된 시간을 초과하는 경우, 하나 이상의 채널들의 재생 속도가 조절될 수 있다. 다른 실시예에서, 제2 채널의 콘텐츠를 버퍼링하여 디코딩하는 데 더 많은 시간을 제공하기 위해, 제1 채널의 재생 및 제2 채널의 재생 둘 다의 속도가 낮춰질 수 있다. 이들 방법은 제1 채널로부터 제2 채널로 전환하는 앞서 논의된 방법들 중 임의의 것에 적용될 수 있다.
다른 실시예에서, 제1 채널로부터 제1 채널로 전환하는 앞서 논의된 방법들은 제1 채널로부터 제2 채널로 전환이 행해지는 속도를 제어하기 위해 전환(예컨대, 애니메이션화된 전환)의 지속기간을 조절하는 것을 포함할 수 있다. 전환은, 예를 들어, 하나 이상의 효과들을 포함하는 애니메이션화된 전환을 포함할 수 있다. 효과들은 블라인드(blinds), 블러(blur), 체커(checker), 크로스 페이드(cross fade), 커튼(curtain), 슬라이드(slide), 푸시(push), 와이프(wipe), 줌인(zoom in), 및 줌아웃(zoom out)을 제공하는 것을 포함할 수 있다. 애니메이션화된 전환은 저해상도 스트림(smaller resolution stream)과 고해상도 스트림(larger resolution stream) 사이의 전환 동안 애니메이션 효과를 포함할 수 있다. 제2 채널의 콘텐츠를 재생할 준비를 하는 데 더 많은 시간을 제공하기 위해 전환의 속도가 낮춰질 수 있다. 제2 채널의 전환의 속도를 낮추는 것은 제2 채널로의 매끄러운 전환을 제공하는 데 도움을 줄 수 있다. 제2 채널로의 전환은 사용자가 알아채지 못하도록 속도가 낮춰질 수 있다. 제2 채널의 데이터를 버퍼링하여 디코딩하는 데 더 많은 시간이 필요한 것으로 판정될 때, 전환의 속도가 낮춰질 수 있다. 이 판정은 예상된 또는 계산된 전환 시간을 미리 결정된 시간과 비교하는 것에 의해 행해질 수 있다. 예상된 전환 시간이 미리 결정된 시간을 초과하는 경우, 애니메이션화된 전환의 지속기간이 조절될 수 있다. 이들 방법은 제1 채널로부터 제2 채널로 전환하는 앞서 논의된 방법들 중 임의의 것에 적용될 수 있다.
하나의 채널로부터 다른 채널로 전환하기 위해 앞서 논의된 전환 방법들 중 하나 이상이 결합될 수 있다.
도 11은 본 발명에서 사용하기 위한 일체형 코딩 서버(1110) 및 배포 서버(1150)를 가지는 시스템(1100)의 간략화된 블록도이다. 코딩 서버(1110)는 버퍼 저장소(1115), 전처리기(1120), 코딩 엔진(1125), 파라미터 선택기(1130), 화질 추정기(quality estimator)(1135), 및 목표 비트 레이트 추정기(target bit-rate estimator)(1140)를 포함할 수 있다. 배포 서버(1150)는 세그먼터(segmenter)(1155) 및 저장소(1160)를 포함할 수 있다.
코딩 서버(1110)는 하나 이상의 비디오들을 수신하고 코딩된 비디오의 상이한 버전들을 각각의 수신된 비디오의 배포 서버(1150)에 제공할 수 있다. 배포 서버(1150)는 하나의 비디오 채널로부터 다른 비디오 채널로의 전환을 향상시키기 위해 코딩된 비디오의 상이한 버전들을 사용할 수 있다. 코딩된 비디오의 다양한 버전들은 공통의 비디오 시퀀스의 상이한 크기, 프레임 레이트, 타이밍, 청크 크기 및/또는 키 프레임 위치를 포함할 수 있다. 다양한 버전들은 상이한 종횡비들을 갖는 비디오 콘텐츠 또는 개별적인 채널들에서 제공되는 비디오 콘텐츠의 상이한 부분들을 포함할 수 있다.
버퍼(1115)는 코딩 서버(1110)의 다른 컴포넌트들에 의한 처리를 위해, 전형적으로 카메라 또는 저장 디바이스로부터의, 입력 비디오를 저장할 수 있다. 예를 들어, 전처리기(1120)는 비디오 시퀀스의 크기 및/또는 프레임 레이트를 변경할 수 있다. 전처리기(1120)는 버퍼(1115)로부터 판독되는 비디오에 크기, 프레임 레이트 및/또는 타이밍 수정들을 적용할 수 있다. 코딩 서버(1110)가 시퀀스의 다양한 코딩된 버전들을 생성하기 때문에, 전처리기(1120)는 공통의 비디오 시퀀스에 대해 상이한 크기, 프레임 레이트 및/또는 타이밍 수정들을 수행할 수 있다.
코딩 엔진(1125)은 전처리기(1120)로부터의 비디오 시퀀스에 데이터 압축 동작들을 적용할 수 있다. 코딩 엔진(1125)은 MPEG, H.263, H.264 및 HEVC(H.265) 계열의 코딩 표준들을 비롯한 공통의 비디오 코딩 프로토콜들 중 임의의 것에 따라 동작할 수 있다. 코딩 엔진(1125)은, 예를 들어, 코딩 모드 선택 및 양자화기 파라미터 선택을 비롯한 코딩 파라미터들을 비디오 시퀀스의 상이한 요소들에 적용할 수 있다. 코딩 모드 선택은 코딩되는 프레임에 적용되는 코딩 모드, 예를 들어, 입력 프레임을 I-프레임, P-프레임 또는 B-프레임으로서 코딩할지를 선택할 수 있다. 양자화기 파라미터 선택은 엔트로피 코딩 및 전송 이전에 이 데이터 요소들을 절단(truncate)하기 위해 변환 계수들(또는 다른 데이터)에 적용할 양자화 파라미터를 선택할 수 있다.
파라미터 선택기(1130)는 전처리기(1120) 및/또는 코딩 엔진(1125)의 동작을 제어하기 위해 이들에 대한 파라미터 데이터를 생성할 수 있다. 파라미터 선택기(1130)는, 예를 들어, 전처리기(1120)로 하여금 코딩 엔진(1125)으로 출력되는 데이터의 크기, 프레임 레이트 및/또는 타이밍을 변경하게 할 수 있다. 파라미터 선택기(1130)는 코딩 모드들 및/또는 양자화 파라미터들을 코딩 엔진(1125)에 부과(impose)할 수 있다. 파라미터 선택기(1130)는 목표 비트 레이트 추정기(1140)로부터 수신되는 비트 레이트 추정치들에 기초하여 및/또는 소스 비디오의 복잡도 추정치들에 기초하여 코딩 파라미터들을 선택할 수 있다.
화질 추정기(1135)는 코딩 엔진에 의해 출력되는 코딩된 비디오 데이터의 화질을 추정할 수 있다. 화질 추정기(1135)는 코딩된 비디오 데이터의 화질의 정량적 추정치를 나타내는 디지털 데이터를 출력할 수 있다.
목표 비트 레이트 추정기(1140)는, 배포 서버(1150)에 의해 지원될 데이터 레이트들에 기초하여, 비디오의 세그먼트들에 대한 비트 레이트 추정치들을 생성할 수 있다.
동작 동안, 목표 비트 레이트 추정기(1140)는 비디오 시퀀스에 비트 레이트를 배분하고, 배포 서버(1150)에 의해 제공되는 데이터 레이트 및 청크 크기 추정치들에 기초하여 리프레시 레이트(refresh rate)를 결정할 수 있다. 목표 비트 레이트 추정기(1140)에 의해 선택된 비트 레이트에 응답하여 그리고 비디오 시퀀스 자체의 분석에 기초하여, 파라미터 선택기(1130)는 전처리기(1120) 및/또는 코딩 엔진(1125)에 대한 동작 파라미터들을 선택할 수 있다. 예를 들어, 파라미터 선택기(1130)는 전처리기(1120)로 하여금 비디오 시퀀스의 프레임 크기(또는 해상도)를 조절하게 할 수 있다. 파라미터 선택기(1130)는 또한 비디오 시퀀스 내의 프레임들에 대한 코딩 모드들 및 양자화 파라미터들을 선택할 수 있다. 코딩 엔진(1125)은 움직임 보상 예측 기법들에 의해 입력 비디오를 처리하고 입력 비디오 시퀀스를 나타내는 코딩된 비디오 데이터를 출력할 수 있다.
화질 추정기(1135)는 코딩된 비디오 데이터를 평가하고 선택된 파라미터들에 따라 코딩되는 비디오 시퀀스의 화질을 추정할 수 있다. 화질 추정기(1135)는 코딩의 화질이 배포 서버(1150)에 의해 설정된 비트 레이트와 연관된 미리 결정된 정성적 임계치들을 충족시키는지를 판정할 수 있다. 화질 추정기(1135)가 코딩이 임계치들을 충족시키는 것으로 판정하는 경우, 화질 추정기(1135)는 코딩을 유효성 검사(validate)할 수 있다. 이와 달리, 화질 추정기(1135)가 코딩이 목표 비트 레이트와 연관된 충분한 화질 임계치들을 충족시키지 않는 것으로 판정하는 경우, 화질 추정기(1135)는 파라미터 선택기(1130)에 의해 적용되는 코딩 파라미터들을 수정할 수 있고, 전처리기(1120) 및 코딩 엔진(1125)으로 하여금 소스 비디오에 대한 동작을 반복하게 할 수 있다.
파라미터 선택기(1130)가 화질 추정기(1135)에 의해 설정된 화질 메트릭들을 충족시키는 일련의 처리 및 코딩 파라미터들을 선택하면, 코딩 서버(1110)는 배포 서버(1150)에 의해 지원되는 다음 비트 레이트로 나아갈 수 있다. 다시 말하자면, 파라미터 선택기(1130) 및 화질 추정기(1135)는 재귀적으로 동작하여, 파라미터들을 선택하고, 그 파라미터들을 전처리 동작들 및 코딩에서 적용하며, 그에 의해 획득되는 코딩된 비디오 데이터의 화질을 추정하고, 화질 요구사항들이 충족될 때까지 파라미터들을 수정할 수 있다.
어떤 응용들에서, 본 명세서에 앞서 기술된 모듈들이, 블록들이 컴퓨터 프로그램의 개별적인 요소들로서 제공될 수 있는 통합 소프트웨어 시스템(integrated software system)의 요소들로서 제공될 수 있다. 일부 실시예들은, 예를 들어, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 개시된 실시예들에 따른 방법을 수행하게 할 수 있는 명령어 또는 명령어 집합을 저장할 수 있는 비일시적 컴퓨터 판독가능 저장 매체 또는 물품을 사용하여 구현될 수 있다. 본 발명의 다른 응용들은 전용 하드웨어와 소프트웨어 컴포넌트들의 혼성 시스템으로서 구현될 수 있다.
예시적인 방법들 및 컴퓨터 프로그램 명령어들이 비일시적 기계 판독가능 저장 매체 상에 구현될 수 있다. 그에 부가하여, 서버 또는 데이터베이스 서버는 기계 실행가능 프로그램 명령어들을 저장하도록 구성된 기계 판독가능 매체를 포함할 수 있다. 본 발명의 실시예들의 특징들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현되고, 시스템들, 서브시스템들, 컴포넌트들 또는 그의 서브컴포넌트들에서 이용될 수 있다. "기계 판독가능 저장 매체"는 정보를 저장할 수 있는 임의의 매체를 포함할 수 있다. 기계 판독가능 저장 매체의 예들은 전자 회로, 반도체 메모리 디바이스, ROM, 플래시 메모리, EROM(erasable ROM), 플로피 디스켓, CD-ROM, 광 디스크, 하드 디스크, 광섬유 매체, 또는 임의의 전자기 또는 광 저장 디바이스를 포함한다.
(임의의 개발 프로젝트에서와 같이) 임의의 실제 구현의 개발에서, 개발자의 특정 목적들(예컨대, 시스템 및 사업 관련 제약 조건의 준수)을 성취하기 위해 많은 결정들이 행해져야 하고, 이 목적들이 구현마다 변할 것임을 잘 알 것이다. 또한, 이러한 개발 노력들이 복잡하고 시간이 걸릴 수 있으나, 그럼에도 불구하고 본 개시 내용의 혜택을 받는 디지털 비디오 포착, 처리 및 배포 분야의 통상의 기술자에게는 일상적인 일이라는 것을 잘 알 것이다.
본 명세서에 예시되고 기술된 프로세스들이 일련의 단계들을 포함하지만, 본 명세서에 도시되고 기술된 것 이외에, 어떤 단계들이 다른 순서로 행해지고, 어떤 단계들이 다른 단계들과 동시에 행해질 수 있기 때문에, 본 개시 내용의 다른 실시예들이 단계들의 예시된 순서에 의해 제한되지 않는다는 것을 잘 알 것이다. 그에 부가하여, 본 발명에 따른 방법을 구현하기 위해, 예시된 단계들 모두가 필요한 것은 아닐 수 있다. 더욱이, 프로세스들이 본 명세서에 예시되고 기술된 장치들 및 시스템들과 관련해서는 물론, 예시되지 않은 다른 시스템들과 관련해서도 구현될 수 있다는 것을 잘 알 것이다.
이상의 설명이 제한하는 것이 아니라 예시적으로 의도되어 있다는 것임을 잘 알 것이다. 예를 들어, 앞서 기술된 실시예들은 서로 결합하여 사용될 수 있다. 많은 다른 실시예들이 이상의 설명을 검토할 때 통상의 기술자에게 명백할 것이다. 그러므로, 본 발명의 범주는 첨부된 청구범위를 참조하여, 이러한 청구범위의 권리를 갖는 등가물들의 전체 범주에 따라 결정되어야 한다.

Claims (38)

  1. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스(first sequence of coded video data)로부터의 전송 단위(transmission unit)들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스(second sequence of coded video data)로 전환하라는 요청에 응답하여, 상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계; 및
    상기 제2 시퀀스로부터의 전송 단위들을 디코딩하는 단계를 포함하고, 상기 제2 시퀀스로부터의 전송 단위들을 디코딩하는 단계는
    상기 전환하라는 요청에 대응하는 프레임을 포함하는 상기 제2 시퀀스로부터의 선택된 전송 단위를 버퍼링하는 단계,
    상기 전환하라는 요청에 대응하는 프레임까지의 상기 선택된 전송 단위의 참조 프레임(reference frame)들을 디코딩하는 단계, 및
  2. 상기 전환하라는 요청에 대응하는 프레임 이후의 프레임들 전부를 디코딩하는 단계를 포함하는, 방법. 제1항에 있어서, 상기 전환하라는 요청에 대응하는 프레임까지의 상기 선택된 전송 단위의 참조 프레임들이 비참조 프레임(non-reference frame)들을 디코딩함이 없이 디코딩되는, 방법.
  3. 제1항에 있어서,
    상기 제1 코딩된 비디오 데이터 시퀀스의 품질이 상기 제2 코딩된 비디오 데이터 시퀀스의 품질보다 더 낮고;
    상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스의 콘텐츠는 동일한 콘텐츠를 포함하는, 방법.
  4. 제1항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스의 콘텐츠는 생방송(live broadcast)인, 방법.
  5. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여, 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이, 중간 코딩된 비디오 데이터 시퀀스(intermediate sequence of coded video data)를 통해 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 것에 의해, 감소될 수 있는지를 판정하는 단계;
    상기 시간이 감소될 수 있는 경우:
    상기 전환하라는 요청에 대응하는 중간 코딩된 비디오 데이터 시퀀스로부터의 적어도 하나의 전송 단위를 수신하는 단계,
    상기 중간 시퀀스로부터의 전송 단위를 디코딩하는 단계, 및
    상기 중간 시퀀스로부터의 디코딩된 전송 단위를 통해 상기 제1 시퀀스로부터 상기 제2 시퀀스로 전환하는 단계를 포함하는, 방법.
  6. 제5항에 있어서, 상기 중간 코딩된 비디오 데이터 시퀀스는 상기 제2 코딩된 비디오 데이터 시퀀스의 비트 레이트보다 더 낮은 비트 레이트로 코딩되는, 방법.
  7. 제5항에 있어서, 상기 중간 시퀀스에서의 전송 단위들의 지속기간은 상기 제2 시퀀스에서의 전송 단위들의 지속기간보다 더 작은, 방법.
  8. 제5항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스의 콘텐츠는 생방송인, 방법.
  9. 제5항에 있어서, 상기 제2 시퀀스에서 동기화 프레임(synchronization frame)을 만날 때, 상기 중간 시퀀스로부터 상기 제2 시퀀스로의 전환이 처리되는, 방법.
  10. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여, 상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계; 및
    상기 제2 코딩된 비디오 데이터 시퀀스의 동기화 프레임이 상기 전환하라는 요청과 정렬(align)되어 있지 않는 경우:
    상기 전환하라는 요청과 정렬되어 있는 상기 제2 시퀀스의 전송 단위에서의 프레임들에 대응하는 부가의 참조 프레임들을 수신하는 단계, 및
    상기 제2 시퀀스의 동기화 프레임을 사용하여 상기 부가의 참조 프레임들 중 적어도 하나를 디코딩하는 단계를 포함하는, 방법.
  11. 제10항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스의 콘텐츠는 생방송인, 방법.
  12. 제10항에 있어서, 상기 디코딩된 부가의 참조 프레임에 뒤따라 오는 프레임들을 디코딩하는 단계를 추가로 포함하는, 방법.
  13. 제10항에 있어서, 상기 전송 단위에서의 부가의 참조 프레임들의 타이밍이 매니페스트 파일(manifest file)에 제공되는, 방법.
  14. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    다른 코딩된 비디오 데이터로 전환하라는 요청에 응답하여, 상기 전환하라는 요청에 가장 가까운 동기화 프레임을 포함하는 복수의 오프셋된 코딩된 비디오 데이터 시퀀스들로부터 코딩된 비디오 데이터 시퀀스를 선택하는 단계;
    상기 선택된 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계; 및
    상기 선택된 시퀀스로부터의 전송 단위를 디코딩하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 선택된 코딩된 비디오 데이터 시퀀스의 콘텐츠는 생방송인, 방법.
  16. 제14항에 있어서, 상기 복수의 오프셋된 코딩된 비디오 데이터 시퀀스들로부터 상기 코딩된 비디오 데이터 시퀀스를 선택하는 단계는 상기 전환하라는 요청 이후의 가장 가까운 동기화 프레임을 포함하는 상기 코딩된 비디오 데이터 시퀀스를 선택하는 단계를 포함하는, 방법.
  17. 제14항에 있어서, 상기 복수의 오프셋된 코딩된 비디오 데이터 시퀀스들로부터 상기 코딩된 비디오 데이터 시퀀스를 선택하는 단계는 상기 전환하라는 요청 이전의 가장 가까운 동기화 프레임을 포함하는 상기 코딩된 비디오 데이터 시퀀스를 선택하는 단계를 포함하는, 방법.
  18. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여, 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이, 상이한 지속기간들을 가지는 시차 있는 시퀀스(staggered sequence)들 각각에서의 전송 단위들 - 이 전송 단위들은 복수의 시차 있는 시퀀스들의 동기화 프레임이 시차를 두고 있도록 시차를 두고 있음 - 을 포함하는 복수의 중간 코딩된 비디오 데이터 시퀀스들 중 하나를 통해 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 것에 의해, 감소될 수 있는지를 판정하는 단계;
    상기 시간이 감소될 수 있는 경우:
    상기 전환하라는 요청에 대응하는 동기화 프레임을 포함하는 중간 시퀀스로부터의 전송 단위를 수신하는 단계,
    상기 중간 시퀀스로부터의 전송 단위를 디코딩하는 단계, 및
    상기 중간 시퀀스의 디코딩된 전송 단위를 통해 상기 제1 시퀀스로부터 상기 제2 시퀀스로 전환하는 단계를 포함하는, 방법.
  19. 제18항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스의 콘텐츠는 생방송인, 방법.
  20. 제18항에 있어서, 상기 복수의 시차 있는 시퀀스들의 전송 단위들 각각에서의 동기화 프레임들은 상기 전송 단위들의 시작에 위치되어 있는, 방법.
  21. 제18항에 있어서, 상기 복수의 시차 있는 시퀀스들의 전송 단위들 각각의 마지막 프레임은 상기 제2 시퀀스의 동기화 프레임들 중 하나와 정렬되어 있는, 방법.
  22. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 단계; 및
    상기 제1 시퀀스의 콘텐츠를 빨리 감기(fast forward) 또는 되감기(rewind)하라는 요청에 응답하여:
    참조 프레임들을 포함하는 복수의 채널들 중 적어도 하나를 선택하는 단계 - 상기 채널들 각각은 다른 채널들에서의 참조 프레임들과 시차를 두고 있는 참조 프레임들을 포함하고, 상기 채널들 중 적어도 하나는 다른 채널들에서의 참조 프레임들의 빈도보다 더 높은 빈도로 참조 프레임들을 포함함 -, 및
    상기 선택된 채널들로부터의 참조 프레임들을 디스플레이하는 단계를 포함하는, 방법.
  23. 제22항에 있어서, 상기 채널들은 상기 빨리 감기 또는 되감기 요청의 속도에 기초하여 선택되는, 방법.
  24. 제23항에 있어서, 보다 느린 빨리 감기 또는 되감기 요청에 대해 부가의 참조 프레임들을 제공하기 위해 보다 많은 채널들이 선택되고, 보다 빠른 빨리 감기 또는 되감기 요청에 대해 보다 적은 참조 프레임들을 제공하기 위해 보다 적은 채널들이 선택되는, 방법.
  25. 복수의 종횡비들의 비디오 콘텐츠의 비디오 스트리밍 방법으로서,
    제1 종횡비를 갖는 제1 코딩된 비디오 데이터 시퀀스를 수신하는 단계;
    상기 제1 코딩된 비디오 데이터 시퀀스를 디코딩하여 상기 제1 종횡비를 갖는 비디오 콘텐츠를 제공하는 단계;
    제2 종횡비를 갖는 비디오 콘텐츠를 제공하라는 요청에 응답하여:
    상기 제2 종횡비의 제2 코딩된 비디오 데이터 시퀀스를 수신하는 단계, 및
    상기 제2 코딩된 비디오 데이터 시퀀스를 디코딩하여 상기 제2 종횡비를 갖는 비디오 콘텐츠를 제공하는 단계를 포함하는, 방법.
  26. 제25항에 있어서, 상기 제2 코딩된 비디오 시퀀스의 콘텐츠는 줌아웃되고 크로핑(crop)되어 있는 상기 제1 코딩된 비디오 시퀀스의 콘텐츠인, 방법.
  27. 제25항에 있어서, 상기 제2 종횡비의 콘텐츠를 제공하라는 요청은 디스플레이 디바이스의 교체(rotation)에 응답하여 생성되는, 방법.
  28. 복수의 종횡비들의 비디오 콘텐츠의 비디오 스트리밍 방법으로서,
    제1 종횡비를 갖는 제1 코딩된 비디오 데이터 시퀀스를 수신하는 단계;
    상기 제1 코딩된 비디오 데이터 시퀀스를 디코딩하여 상기 제1 종횡비를 갖는 비디오 콘텐츠를 제공하는 단계;
    제2 종횡비를 갖는 비디오 콘텐츠를 제공하라는 요청에 응답하여:
    상기 제1 시퀀스에서 제공되는 비디오 콘텐츠에 인접해 있는 비디오 콘텐츠를 포함하는 제2 코딩된 비디오 데이터 시퀀스를 수신하는 단계,
    상기 제2 코딩된 비디오 데이터 시퀀스를 디코딩하는 단계, 및
    상기 제1 시퀀스의 비디오 콘텐츠를 상기 제2 시퀀스의 비디오 콘텐츠와 결합하여 상기 제2 종횡비를 갖는 비디오 콘텐츠를 제공하는 단계를 포함하는, 방법.
  29. 제28항에 있어서, 상기 제2 시퀀스의 비디오 콘텐츠가 상기 제1 시퀀스의 비디오 콘텐츠와 중첩(overlap)되는, 방법.
  30. 제29항에 있어서, 상기 제1 및 제2 시퀀스들에서 중첩되는 비디오 콘텐츠를 블렌딩(blend)하는 단계를 추가로 포함하는, 방법.
  31. 제28항에 있어서, 상기 제2 종횡비의 콘텐츠를 제공하라는 요청은 디스플레이 디바이스의 교체에 응답하여 생성되는, 방법.
  32. 비디오를 스트리밍하는 장치로서,
    인코딩된 비디오 시퀀스들로부터의 전송 단위들을 저장하는 버퍼;
    상기 버퍼에 저장된 전송 단위들을 디코딩하는 디코더; 및
    제어기를 포함하고, 상기 제어기는
    상기 버퍼로 송신될 제1 비디오 콘텐츠를 포함하는 전송 단위들을 요청하고;
    제2 비디오 콘텐츠로 전환하라는 요청에 응답하여, 상기 제2 비디오 콘텐츠를 포함하는 복수의 인코딩된 비디오 시퀀스들에 관한 정보를 포함하는 매니페스트 파일을 요청하며;
    상기 매니페스트 파일에 있는 정보에 기초하여, 전환할 상기 복수의 인코딩된 비디오 시퀀스들 중 하나를 선택하고 상기 복수의 인코딩된 비디오 시퀀스들 중 하나 이상을 통해 상기 선택된 인코딩된 비디오 시퀀스로의 전환이 행해져야만 하는지를 결정하며;
    상기 복수의 인코딩된 비디오 시퀀스들 중 하나 이상을 통해 상기 선택된 인코딩된 비디오 시퀀스로 전환하는 것으로 결정되는 경우, 상기 복수의 인코딩된 비디오 시퀀스들로부터의 적어도 하나의 전송 단위를 상기 버퍼로 송신하라고 요청하고;
    상기 선택된 인코딩된 비디오 시퀀스로부터의 전송 단위들을 상기 버퍼로 송신하라고 요청하도록 구성되어 있는, 장치.
  33. 컴퓨터가 명령어들을 실행하도록 하기 위해 컴퓨터 실행가능 명령어들을 담고 있는 비일시적 컴퓨터 판독가능 매체로서, 상기 컴퓨터 명령어들은,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 명령어들;
    상기 제1 시퀀스로부터의 전송 단위들을 디코딩하는 명령어들;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여, 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이, 중간 코딩된 비디오 데이터 시퀀스를 통해 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 것에 의해, 감소될 수 있는지를 판정하는 명령어들;
    상기 시간이 감소될 수 있는 경우:
    상기 전환하라는 요청에 대응하는 중간 코딩된 비디오 데이터 시퀀스로부터의 적어도 하나의 전송 단위를 수신하는 명령어들,
    상기 중간 시퀀스로부터의 전송 단위를 디코딩하는 명령어들, 및
    상기 중간 시퀀스로부터의 디코딩된 전송 단위를 통해 상기 제1 시퀀스로부터 상기 제2 시퀀스로 전환하는 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  34. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여:
    상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이 미리 결정된 전환 시간을 초과하는지를 판정하는 단계; 및
    상기 전환하는 시간이 미리 결정된 전환 시간을 초과하는 경우, 상기 제1 코딩된 비디오 데이터 시퀀스 및 상기 제2 코딩된 비디오 데이터 시퀀스 중 적어도 하나의 시퀀스의 콘텐츠의 재생의 속도를 낮추는(slow down) 단계를 포함하는, 방법.
  35. 제34항에 있어서, 상기 미리 결정된 전환 시간은 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청 시에 상기 제2 코딩된 비디오 데이터 시퀀스를 버퍼링하고 디코딩하는 데 필요한 시간에 기초하여 결정되는, 방법.
  36. 비디오 스트리밍 방법으로서,
    제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제1 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청에 응답하여:
    상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 수신하는 단계;
    상기 제2 코딩된 비디오 데이터 시퀀스로부터의 전송 단위들을 디코딩하는 단계;
    애니메이션화된 전환(animated transition)을 통해 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하는 시간이 미리 결정된 전환 시간을 초과하는지를 판정하는 단계; 및
    상기 전환하는 시간이 미리 결정된 전환 시간을 초과하는 경우, 상기 제1 코딩된 비디오 데이터 시퀀스와 상기 제2 코딩된 비디오 데이터 시퀀스 간의 상기 애니메이션화된 전환의 속도를 조절하는 단계를 포함하는, 방법.
  37. 제36항에 있어서, 상기 미리 결정된 전환 시간은 상기 제2 코딩된 비디오 데이터 시퀀스로 전환하라는 요청 시에 상기 제2 코딩된 비디오 데이터 시퀀스를 버퍼링하고 디코딩하는 데 필요한 시간에 기초하여 결정되는, 방법.
  38. 제36항에 있어서, 상기 제1 코딩된 비디오 데이터 시퀀스는 제1 해상도를 가지는 비디오 콘텐츠를 포함하고, 상기 제2 코딩된 비디오 데이터 시퀀스는 제2 해상도를 가지는 비디오 콘텐츠를 포함하며, 상기 애니메이션화된 전환은 상기 제1 해상도로부터 상기 제2 해상도로의 애니메이션화된 전환의 속도를 낮추도록 조절되는, 방법.
KR1020157025084A 2013-03-13 2014-02-25 고속 전환을 위한 코덱 기법 Active KR102218385B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/800,905 2013-03-13
US13/800,905 US9900629B2 (en) 2013-03-13 2013-03-13 Codec techniques for fast switching with intermediate sequence
PCT/US2014/018285 WO2014163867A2 (en) 2013-03-13 2014-02-25 Codec techniques for fast switching

Publications (2)

Publication Number Publication Date
KR20150126860A true KR20150126860A (ko) 2015-11-13
KR102218385B1 KR102218385B1 (ko) 2021-02-22

Family

ID=50382546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157025084A Active KR102218385B1 (ko) 2013-03-13 2014-02-25 고속 전환을 위한 코덱 기법

Country Status (6)

Country Link
US (3) US9900629B2 (ko)
EP (1) EP2954681B1 (ko)
KR (1) KR102218385B1 (ko)
CN (2) CN110996126A (ko)
TW (1) TWI596933B (ko)
WO (1) WO2014163867A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050067A1 (ko) * 2017-09-08 2019-03-14 라인 가부시키가이샤 비디오 품질 제어
WO2023033587A1 (ko) * 2021-09-02 2023-03-09 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140111859A (ko) * 2013-03-12 2014-09-22 삼성전자주식회사 콘텐트 공유 방법 및 이를 위한 디바이스
JP6311021B2 (ja) 2013-07-25 2018-04-11 コンヴィーダ ワイヤレス, エルエルシー エンドツーエンドm2mサービス層セッション
US9900362B2 (en) * 2014-02-11 2018-02-20 Kiswe Mobile Inc. Methods and apparatus for reducing latency shift in switching between distinct content streams
US10114835B2 (en) 2015-04-29 2018-10-30 Box, Inc. Virtual file system for cloud-based shared content
KR102186742B1 (ko) * 2015-06-25 2020-12-04 인더스마트 주식회사 고속 단거리 인터페이스용 안드로이드 시스템을 위한 다중 영상 장치 및 이미지 처리 방법
WO2017140685A1 (en) * 2016-02-16 2017-08-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient adaptive streaming
US10524244B2 (en) 2016-05-11 2019-12-31 Convida Wireless, Llc Radio PDCCH to facilitate numerology operations
EP4492799A1 (en) 2016-05-13 2025-01-15 InterDigital Madison Patent Holdings, SAS Bit depth remapping based on viewing parameters
US10631319B2 (en) 2016-06-15 2020-04-21 Convida Wireless, Llc Grant-less uplink transmission for new radio
EP4336850A3 (en) 2016-07-08 2024-04-17 InterDigital Madison Patent Holdings, SAS Systems and methods for region-of-interest tone remapping
KR20240006080A (ko) 2016-08-11 2024-01-12 인터디지탈 패튼 홀딩스, 인크 뉴 라디오를 위한 유연한 프레임 구조에서의 빔포밍 스위핑 및 트레이닝
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
WO2018097947A2 (en) 2016-11-03 2018-05-31 Convida Wireless, Llc Reference signals and control channels in nr
CN106791870B (zh) * 2016-11-30 2019-11-05 华为技术有限公司 一种视频编码方法、视频解码方法以及相关设备
CN110301136B (zh) * 2017-02-17 2023-03-24 交互数字麦迪逊专利控股公司 在流传输视频中进行选择性感兴趣对象缩放的系统和方法
WO2018164911A1 (en) 2017-03-07 2018-09-13 Pcms Holdings, Inc. Tailored video streaming for multi-device presentations
CN106961625B (zh) * 2017-03-13 2020-02-21 华为技术有限公司 一种频道切换方法及其装置
CN106937141A (zh) * 2017-03-24 2017-07-07 北京奇艺世纪科技有限公司 一种码流切换方法及装置
EP3393129A1 (en) 2017-04-21 2018-10-24 Alcatel-Lucent España, S.A. Multimedia content delivery with reduced delay
US10523820B2 (en) * 2017-06-02 2019-12-31 Apple Inc. High-quality audio/visual conferencing
GB2563387B (en) * 2017-06-09 2020-04-15 Sony Interactive Entertainment Inc Image processing device and system
US10873775B2 (en) 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
US10791366B2 (en) * 2017-11-30 2020-09-29 Hulu, LLC Fast channel change in a video delivery network
CN108307248B (zh) * 2018-02-01 2019-10-29 腾讯科技(深圳)有限公司 视频播放方法、装置、计算设备及存储介质
EP3785446A4 (en) * 2018-04-26 2022-02-16 Phenix Real Time Solutions, Inc. ADAPTIVE BIT RATE PROCESSES FOR LIVE BROADCASTS
WO2020068251A1 (en) 2018-09-27 2020-04-02 Convida Wireless, Llc Sub-band operations in unlicensed spectrums of new radio
KR102654716B1 (ko) * 2019-02-11 2024-04-04 한화비전 주식회사 요청된 영상 재생시점에 따라 영상을 재생하는 방법 및 그 장치
US10735516B1 (en) 2019-02-15 2020-08-04 Signiant Inc. Cloud-based authority to enhance point-to-point data transfer with machine learning
CN110267096A (zh) * 2019-06-21 2019-09-20 北京达佳互联信息技术有限公司 视频播放方法、装置、电子设备及存储介质
US11323730B2 (en) 2019-09-05 2022-05-03 Apple Inc. Temporally-overlapped video encoding, video decoding and video rendering techniques therefor
GB202015670D0 (en) * 2020-10-02 2020-11-18 Communication Security Group Inc End-to-end encrypted group communications
CN115734026B (zh) 2021-08-31 2025-08-29 北京字跳网络技术有限公司 视频的处理方法、装置及系统
CN114071179B (zh) * 2021-11-22 2023-12-26 北京字跳网络技术有限公司 一种直播预览方法、装置、设备及介质
US11806078B1 (en) 2022-05-01 2023-11-07 Globe Biomedical, Inc. Tear meniscus detection and evaluation system
CN115802074B (zh) * 2022-11-10 2024-03-29 中国联合网络通信集团有限公司 一种多路视频传输方法、装置、设备及介质
US12186019B2 (en) 2023-04-07 2025-01-07 Globe Biomedical, Inc Mechanical integration of components of wearable devices and ocular health monitoring system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040077792A (ko) * 2002-01-23 2004-09-06 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
US20110161517A1 (en) * 2008-08-26 2011-06-30 Csir Method of Switching from a First Encoded Video Stream to a Second Encoded Video Stream
KR20130024571A (ko) * 2011-08-31 2013-03-08 삼성전자주식회사 방송 수신 장치 및 방법

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415326B1 (en) * 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US6909743B1 (en) * 1999-04-14 2005-06-21 Sarnoff Corporation Method for generating and processing transition streams
US20040160974A1 (en) 2003-02-13 2004-08-19 Read Christopher Jensen Method and system for rapid channel change within a transport stream
US7603689B2 (en) * 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
ZA200510085B (en) * 2003-06-16 2007-04-25 Thomson Licensing Encoding method and apparatus enabling fast channel change of compressed video
US8249113B2 (en) 2004-03-19 2012-08-21 Broadlogic Network Technologies, Inc. Method and system for providing faster channel switching in a digital broadcast system
US20070174880A1 (en) * 2005-07-05 2007-07-26 Optibase Ltd. Method, apparatus, and system of fast channel hopping between encoded video streams
US8340098B2 (en) * 2005-12-07 2012-12-25 General Instrument Corporation Method and apparatus for delivering compressed video to subscriber terminals
US8330866B2 (en) * 2006-02-21 2012-12-11 Qualcomm Incorporated Multi-program viewing in a wireless apparatus
US7965771B2 (en) 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
CN101422037B (zh) 2006-04-18 2014-04-09 汤姆逊许可公司 缩短数字视频设备频道变换时间的方法
US8335873B2 (en) 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
CN101523908A (zh) * 2006-10-02 2009-09-02 艾利森电话股份有限公司 多媒体管理
WO2009133427A1 (en) 2008-04-28 2009-11-05 Nds Limited Frame accurate switching
EP2297880B1 (en) * 2008-06-03 2016-08-10 Alcatel Lucent Method and apparatus for reducing channel change response times for internet protocol television
WO2010014211A1 (en) * 2008-07-28 2010-02-04 Thomson Licensing Method and apparatus fast channel change using a scalable videdo coding (svc) stream
US20100118938A1 (en) * 2008-11-12 2010-05-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Encoder and method for generating a stream of data
CN101753973B (zh) * 2008-12-12 2013-01-02 华为技术有限公司 一种频道切换方法、装置和系统
WO2010069427A1 (en) 2008-12-19 2010-06-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and encoder for providing a tune- in stream for an encoded video stream and method and decoder for tuning into an encoded video stream
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
WO2011102791A1 (en) 2010-02-19 2011-08-25 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for representation switching in http streaming
CN102792710B (zh) * 2010-03-08 2016-01-20 三星电子株式会社 用于播放媒体内容数据的设备和方法
US9137278B2 (en) * 2010-04-08 2015-09-15 Vasona Networks Inc. Managing streaming bandwidth for multiple clients
EP2395754A1 (en) 2010-06-14 2011-12-14 Thomson Licensing Receiver and method at the receiver for enabling channel change with a single decoder
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US20120076204A1 (en) * 2010-09-23 2012-03-29 Qualcomm Incorporated Method and apparatus for scalable multimedia broadcast using a multi-carrier communication system
EP2485472A1 (en) * 2011-02-04 2012-08-08 Thomson Licensing Fast channel change companion stream solution with bandwidth optimization
MX2013008310A (es) * 2011-02-10 2013-09-06 Panasonic Corp Dispositivo de creacion de datos y dispositivo de reproduccion para imagen de video en flujo de video.
WO2012111325A1 (ja) * 2011-02-17 2012-08-23 パナソニック株式会社 映像符号化装置、映像符号化方法、映像符号化プログラム、映像再生装置、映像再生方法及び映像再生プログラム
ES2586818T3 (es) * 2011-12-29 2016-10-19 Koninklijke Kpn N.V. Control de flujo de contenido tratado inicialmente en red

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040077792A (ko) * 2002-01-23 2004-09-06 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
US20110161517A1 (en) * 2008-08-26 2011-06-30 Csir Method of Switching from a First Encoded Video Stream to a Second Encoded Video Stream
KR20130024571A (ko) * 2011-08-31 2013-03-08 삼성전자주식회사 방송 수신 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050067A1 (ko) * 2017-09-08 2019-03-14 라인 가부시키가이샤 비디오 품질 제어
US11218746B2 (en) 2017-09-08 2022-01-04 Line Corporation Method, system, and non-transitory computer readable record medium for video quality control
WO2023033587A1 (ko) * 2021-09-02 2023-03-09 삼성전자 주식회사 디스플레이 장치 및 그의 동작 방법
US12458881B2 (en) 2021-09-02 2025-11-04 Samsung Electronics Co., Ltd. Display device and operating method thereof

Also Published As

Publication number Publication date
US20140269932A1 (en) 2014-09-18
US20180109824A1 (en) 2018-04-19
CN105144727B (zh) 2019-11-19
TWI596933B (zh) 2017-08-21
EP2954681B1 (en) 2019-11-13
EP2954681A2 (en) 2015-12-16
CN105144727A (zh) 2015-12-09
KR102218385B1 (ko) 2021-02-22
WO2014163867A3 (en) 2015-01-08
TW201448575A (zh) 2014-12-16
US20190075342A1 (en) 2019-03-07
CN110996126A (zh) 2020-04-10
US10638169B2 (en) 2020-04-28
WO2014163867A2 (en) 2014-10-09
US9900629B2 (en) 2018-02-20

Similar Documents

Publication Publication Date Title
KR102218385B1 (ko) 고속 전환을 위한 코덱 기법
KR101859155B1 (ko) 높은 프레임 레이트 및 가변 프레임 레이트 캡처를 위한 비디오 압축 튜닝
KR101737325B1 (ko) 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
CN106537923B (zh) 自适应视频流的技术
US8837586B2 (en) Bandwidth-friendly representation switching in adaptive streaming
US9756369B2 (en) Method and apparatus for streaming media data segments of different lengths wherein the segment of different length comprising data not belonging to the actual segment and beginning with key frames or containing key frames only
US20210211606A1 (en) Method and Arrangement for Supporting Playout of Content
US20120179833A1 (en) Method and apparatus for adapting media
US20100211690A1 (en) Block partitioning for a data stream
KR102706030B1 (ko) 비디오 스트리밍
JP2017522767A (ja) ビデオビットストリームにおけるランダムアクセス
CN105075273A (zh) 自适应流式传输技术
US20100118941A1 (en) Frame accurate switching
US12407846B2 (en) Seamless content encoding and transmission
CN105359544A (zh) 数字视频流传输中的特技播放
WO2004045216A1 (en) Video streaming device and method of control for switchable video streams
EP3386194A1 (en) Method of delivery audiovisual content and corresponding device
CN119135991A (zh) 视频清晰度切换方法、系统、设备及存储介质

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 6