KR20140007893A - 비디오 스트림을 최적화하기 위한 방법 - Google Patents

비디오 스트림을 최적화하기 위한 방법 Download PDF

Info

Publication number
KR20140007893A
KR20140007893A KR1020137023988A KR20137023988A KR20140007893A KR 20140007893 A KR20140007893 A KR 20140007893A KR 1020137023988 A KR1020137023988 A KR 1020137023988A KR 20137023988 A KR20137023988 A KR 20137023988A KR 20140007893 A KR20140007893 A KR 20140007893A
Authority
KR
South Korea
Prior art keywords
original
parameter set
optimized
stream
video
Prior art date
Application number
KR1020137023988A
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 KR20140007893A publication Critical patent/KR20140007893A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/237Communication with additional data server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비디오 스트림을 최적화하기 위한 방법은, 원서버로부터 수신된 비디오 컨테이너에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하는 단계; 및 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하는 단계를 포함하고, 스트림 특유의 메타데이터는 원래의 비트 스트림에 대한 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함한다.

Description

비디오 스트림을 최적화하기 위한 방법{A METHOD FOR OPTIMIZING A VIDEO STREAM}
본 발명은 비디오 스트림을 최적화하기 위한 방법 및 미디어 최적화 시스템에 관한 것이다.
비디오 컨텐츠가 원격 접속 - 네트워크 접속, 인터넷 접속 또는 그 외의 접속을 통할 것인지의 여부 - 을 통해 클라이언트 디바이스에 스트리밍될 때, 비디오 스트림은 대역폭, 하드웨어, 또는 다른 제한들로 인해 이러한 접속을 통한 연속 재생을 허용하기 위해 최적화를 요구할 수 있다. 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol; HTTP) 프로그레시브 다운로드(progressive download)의 경우와 같은, 연속 재생은 완전한 비디오가 다운로드되기 전에 비디오 스트림을 클라이언트가 보기 시작하도록 허용하고, 이는 큰 비디오 파일 또는 라이브 비디오 스트림에 특히 유용할 수 있다.
최적화된 비디오 스트림은 일반적으로 전송율 제어(rate control), 프로파일, 및/또는 원래의 비디오 스트림과는 상이한 레벨을 이용하여 인코딩된다. 비디오 스트림을 인코딩하는 것은 로우 비디오(raw video)로 디스플레이되는 디지털 이미지를 나타내는데 이용되는 데이터의 양을 줄이는 것을 포함하고, 공간 이미지를 압축하는 것 및 시간적 움직임 보상을 포함할 수 있다. 비디오를 인코딩하는 것은 비디오가 연속적으로 재생되도록 전송 대역폭을 줄인다.
본 발명의 목적은 비디오 스트림을 최적화하기 위한 방법 및 미디어 최적화 시스템을 제공하는 것이다.
시스템의 실시예들이 기술된다. 일 실시예에서, 시스템은 미디어 최적화 시스템이다. 시스템은, 원서버(origin server)로부터 수신된 비디오 컨테이너(video container)에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하도록 구성된 수신기(원래의 파라미터 세트는 메모리 디바이스에 저장된다); 및 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하도록 구성된 구성 엔진(스트림 특유의 메타데이터는 원래의 비트 스트림에 대한 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함한다)을 포함한다. 시스템의 다른 실시예들이 또한 기술된다.
컴퓨터 프로그램 제품의 실시예들이 또한 기술된다. 일 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독 가능한 프로그램을 저장하기 위해 컴퓨터 판독 가능한 저장 디바이스를 포함하고, 컴퓨터 판독 가능한 프로그램은, 컴퓨터 내의 프로세서에 의해 실행될 때, 컴퓨터로 하여금 비디오 스트림을 최적화하기 위한 동작을 수행하도록 야기한다. 동작들은, 원서버로부터 수신된 비디오 컨테이너에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하는 단계; 및 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하는 단계를 포함하고, 스트림 특유의 메타데이터는 원래의 비트 스트림에 대한 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함한다. 컴퓨터 프로그램 제품의 다른 실시예들이 또한 기술된다.
방법의 실시예들이 또한 기술된다. 일 실시예에서, 방법은 비디오 스트림을 최적화하기 위한 방법이다. 방법은, 원서버로부터 수신된 비디오 컨테이너에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하는 단계; 및 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하는 단계를 포함하고, 스트림 특유의 메타데이터는 원래의 비트 스트림에 대한 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함한다. 방법의 다른 실시예들이 또한 기술된다.
본 발명의 실시예들의 다른 양태들 및 장점들이 발명의 원리를 예로서 나타내는, 첨부 도면들과 함께 다음의 상세한 설명으로부터 명백하게 될 것이다.
본 발명에 따르면, 비디오 스트림을 최적화하기 위한 방법 및 미디어 최적화 시스템을 제공하는 것이 가능하다.
도 1은 미디어 최적화 시스템의 일 실시예의 개략도를 도시한다.
도 2는 도 1의 프록시의 일 실시예의 개략도를 도시한다.
도 3은 도 1의 미디어 최적화 시스템을 통한 데이터 흐름을 위한 방법의 일 실시예의 흐름도를 도시한다.
도 4는 도 1의 미디어 최적화 시스템을 통한 데이터 흐름을 위한 방법의 일 실시예의 흐름도를 도시한다.
도 5는 비디오 스트림 내에 데이터를 삽입하기 위한 방법의 일 실시예의 흐름도를 도시한다.
설명에 걸쳐서, 유사한 참조 번호들은 유사한 요소들을 식별하는데 이용될 수 있다.
본 명세서에서 일반적으로 기술되고 첨부 도면에 예시된 바와 같은 실시예들의 컴포넌트들은 매우 다양한 상이한 구성으로 정렬되고 설계될 수 있다는 것을 용이하게 이해할 것이다. 따라서, 도면에 나타난 바와 같이, 다양한 실시예들의 다음의 더욱 상세한 설명들은 본 발명개시의 범위를 제한하기 위한 것이 아니라, 단지 다양한 실시예들을 나타낸다. 실시예들의 다양한 양태들이 도면에 존재하지만, 도면은 구체적으로 명시되지 않는 한, 반드시 실척도로 도시되는 것은 아니다.
본 발명은 본 발명의 사상 또는 본질적인 특징으로부터 벗어남 없이 기타의 특정한 형태로 구현될 수 있다. 기술된 실시예들은 모든 측면들에서 본 발명에 대한 제한이 아닌 단지 설명용으로서 고려되어야 한다. 그러므로, 본 발명의 범위는 이러한 상세한 설명에 의한 것보다는 첨부된 특허청구범위에 의해 나타난다. 특허청구범위의 등가적인 범위 및 의미에 속하는 모든 변경들은 본 발명의 범위 내에 포함될 것이다.
본 명세서에 걸쳐, 특징, 장점, 또는 유사한 언어에 대한 참조는, 본 발명으로 실현될 수 있는 특징 및 장점 모두가 있어야 하거나, 본 발명의 임의의 단일 실시예에 있다는 것을 의미하지 않는다. 오히려, 특징 및 장점을 나타내는 언어는 실시예와 함께 기술된 특정한 특징, 장점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서에 걸쳐, 특징 및 장점 및 유사한 언어의 설명은, 동일한 실시예를 나타내지만, 반드시 동일한 실시예를 나타내는 것은 아니다.
더욱이, 본 발명의 기술된 특징, 장점, 및 특성은 하나 이상의 실시예들에서 임의의 적합한 방식으로 조합될 수 있다. 관련 기술 분야의 당업자는, 본 명세서의 설명에 비추어, 본 발명이 특정 실시예의 특정한 특징 또는 장점 중 하나 이상의 특징 또는 장점 없이 실행될 수 있다는 것을 인식할 것이다. 다른 경우에, 본 발명의 모든 실시예들에 존재하지 않을 수 있는 추가적인 특징 및 장점이 특정 실시예들에서 인식될 수 있다.
본 명세서 전반에 걸쳐 "일 실시예", "실시예", 또는 유사한 언어에 대한 참조는 표시된 실시예와 함께 기술된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서에 걸쳐, 구절 "일 실시예에서", "실시예에서" 및 유사한 언어는 동일한 실시예를 나타내지만, 반드시 동일한 실시예를 나타내는 것은 아니다.
많은 실시예들이 본 명세서에 기술되었고, 기술된 실시예들의 적어도 일부는 비디오 스트림을 최적화하기 위한 시스템 및 방법을 나타낸다. 보다 구체적으로, 시스템은 비디오 스트림이 클라이언트 디바이스에서 연속적으로 재생될 수 있도록 H.264 코덱을 이용하여 인코딩된 비디오 스트림을 최적화한다. 시스템은 AVC(advanced video coding) DCR(decoder configuration record) 내에 SPS(sequence parameter set) 및 PPS(picture parameter set)을 삽입하는 것을 포함한다. 알려진 바와 같이 SPS는 완전한 비디오 시퀀스에 적용될 파라미터를 포함한다. 그중에서도, 일반적인 SPS 파라미터는 프레임 숫자에 대한 한계, 픽처 순서 카운트, 및 디코딩된 픽처의 폭 및 높이를 포함한다. PPS는 시퀀스 내의 하나 이상의 디코딩된 픽처에 적용되는 파라미터를 포함한다. 그중에서도, 일반적인 PPS 파라미터는 사용중인 슬라이스 그룹들의 수 및 초기 양자화기 파라미터를 포함한다. 본 명세서에 기술된 시스템은 H.264 비디오 컨텐츠의 연속 재생을 허용하기 위한 방법을 제공한다.
DCR은 비디오 플레이어에 의해 이용되는 비디오 컨테이너에 있는 개별적인 H.264 비트 스트림을 판독하기 위해 클라이언트에서의 플레이어 및 디코더에서 이용되는 H.264 특유의 NAL(network abstract layer) 패킷이다. 시스템은 H.264 컨텐츠를 재인코딩하는데 이용되는 인코더가 각각의 비트 스트림에 대해 별도의 SPS 식별자 및 PPS 식별자를 명시한다고 가정하여, 어떤 SPS 및 PPS 엔트리가 정해진 비트 스트림에 대응하는지를 클라이언트가 식별할 수 있도록 한다. 본 명세서에 기술된 시스템은 H.264 컨텐츠에 대한 실시예들을 나타냈지만, 다른 실시예들은 다른 유형의 비디오 컨텐츠를 포함할 수 있고, 본 명세서에 기술된 시스템의 동작 및 용어는 비디오 컨텐츠의 특정 포맷에 따라 수정될 수 있다.
도 1은 미디어 최적화 시스템(100)의 일 실시예의 개략도를 도시한다. 일 실시예에서, 미디어 최적화 시스템(100)은 원서버(106)와 클라이언트(108) 사이에 있는 미디어 옵티마이저(102) 및 비디오 최적화 서버(video optimization server; VOS)(104)를 포함한다. 미디어 최적화 시스템(100)이 특정한 컴포넌트들 및 기능을 갖는 것으로 도시되고 기술되었지만, 미디어 최적화 시스템(100)의 다른 실시예들은 더 많거나 적은 기능을 구현하도록 더 많거나 적은 컴포넌트들을 포함할 수 있다.
일 실시예에서, 미디어 최적화 시스템(100)은 다수의 비트 스트림을 이용하여 네트워크 계층 - 예컨대, 하이퍼텍스트 전송 프로토콜(HTTP) - 을 통해 H.264 (또는 기타) 비디오 컨텐츠를 동적으로 최적화한다. 다른 실시예들은 H.264 컨텐츠와 호환 가능한 다른 프로토콜들을 이용할 수 있다. 일 실시예에서, 미디어 최적화 시스템(100)은 프록시(110)를 포함한다. 프록시는 클라이언트와 원서버(106) 사이에 위치한다. 프록시는 원서버(106)로부터의 비디오 스트림에 있는 비디오 컨테이너를 인터셉트(intercept)하도록 구성된다. 일 실시예에서, 프록시는 미디어 옵티마이저(102) 및 VOS(104)를 포함한다. 다른 실시예에서, 프록시는 본 명세서에 기술된 것보다 더 많거나 더 적은 컴포넌트들을 포함한다. 프록시는 비디오 스트림에 대한 HTTP 응답에 있는 원래의 비디오 비트 스트림을 인터셉트하고 그 비트 스트림 상에 동작을 수행한다. 미디어 옵티마이저(102)는 비트 스트림의 최적화를 비롯한, 추가적인 동작들을 수행하도록 VOS(104)에 원래의 비트 스트림을 보낼 수 있다. VOS(104)는 미디어 옵티마이저(102)에 최적화된 비트 스트림을 리턴할 수 있고, 그리고 나서 미디어 옵티마이저(102)는 클라이언트에 최적화된 신호를 포워드할 수 있다. 비디오의 최적화는 실시간으로 수행되어, 비디오 스트림은 클라이언트에서 연속적으로 재생된다.
각각의 비트 스트림은 이미지들의 동일한 시퀀스를 나타내지만, 각각의 비트 스트림은 상이한 전송률 제어 및 잠재적으로 상이한 프로파일(H.264 프로파일) 및 레벨(H.264)을 이용하여 인코딩될 수 있다. 재인코딩된 H.264 컨텐츠는 클라이언트에게 계속해서 보여질 수 있다(HTTP 프로그레시브 다운로드). 즉, 완전한 비디오가 다운로드되기 전에 클라이언트는 비디오를 보기 시작할 수 있다. 이것은 큰 비디오 크기, 고품질 비디오, 또는 라이브 비디오 스트림에 특히 유용할 수 있다.
일 실시예에서, 비디오 스트림을 최적화하는 것은 비디오 스트림에 의해 이용되는 비디오 크기 및 대역폭을 줄이기 위해서 비트 스트림을 재인코딩하고 압축하는 것을 포함한다. 미디어 옵티마이저(102)에서 멀티플렉서(도시되지 않음) - 플래시 비디오, MP4, 또는 H.264 인코딩을 지원하는 임의의 비디오 컨테이너와 같은 포맷 - 는 재인코딩되고 압축된 H.264 비디오 및 오디오 컨텐츠를 패키징하고, 클라이언트 플레이어가 정확한 시간 순서에서 이미지를 정확하게 이해하고 재생할 수 있는 방식으로 이 데이터를 인터리빙한다.
시스템(100)의 다양한 실시예들이 구현될 수 있다. 일 실시예에서, 클라이언트는 원서버(106)로부터 비디오 클립을 요구한다. 일 실시예에서, 프록시는 초기에 클라이언트에 변경되지 않은 (그 원래의 형태로) 비디오 및 오디오 컨텐츠를 보낸다. 시간이 경과한 후에, VOS(104)는 컨텐츠를 압축 또는 최적화하기 시작하도록 시그널링된다. 신호는 클라이언트와 원서버(106)/미디어 옵티마이저(102) 사이의 접속이 현재 시간에 변경되지 않은 비디오 스트림을 지원하기 위한 충분한 대역폭이 없다고 결정한 미디어 최적화 시스템(100)의 결과로 보내질 수 있다. VOS(104)는 신호를 수신하고 다음 키 비디오 프레임에서 이 컨텐츠를 압축하기 시작한다. 이 시점으로부터의 H.264 스트림은 사실상 원래의 스트림으로부터의 이미지들의 동일한 시퀀스의 상이한 비트 스트림이다.
일 실시예에서, 본 명세서에 기술된 시스템(100)은 H.264 비디오 컨텐츠가 클라이언트에서 계속해서 재생되도록 허용하는 멀티플렉서 레벨에서 요구되는 특정한 세부 사항들을 포괄한다. 이것은 AVC DCR 내에 SPS 및 PPS 엔트리를 동적으로 삽입하는 VOS(104)를 포함할 수 있다. SPS 및 PPS 엔트리는 특정한 비트 스트림에 대한 정보를 제공한다. 일부 실시예들에서, SPS 및 PPS 엔트리는 테이블 포맷일 수 있고, VOS(104)는 비트 레이트, 이미지 해상도, 및/또는 특정한 비트 스트림에 관련된 다른 재생 정보를 결정하기 위해서 테이블의 각각의 엔트리를 판독한다.
일 실시예에서, 컨텐츠가 VOS(104)에 전달되면, VOS(104)는 먼저 AVC DCR 내에 다수의 SPS 및 PPS 엔트리들을 동적으로 주입할 필요가 있는지를 결정한다. 일 실시예에서,
1. 이용되는 입력 컨테이너 비디오 코덱이 H.264 이거나,
2. 이용되는 출력 컨테이너 비디오 코덱이 H.264 이거나,
3. VOS(104) 구성이 다수의 비트 스트림을 보낼 필요가 있다고 나타내면,
VOS(104)가 AVC DCR 내에 다수의 SPS 및 PPS 엔트리들을 주입한다.
AVC DCR 또는 다른 구성 리코드는 이용되었던 코덱의 유형을 나타내는 파라미터를 포함할 수 있다. 일 실시예에서, VOS(104)는 비디오 스트림의 크기 및 접속의 대역폭에 기초하여 클라이언트에게 다수의 비트 스트림들을 보낼 필요가 있다고 결정한다. 각각의 비트 스트림은 특정한 양의 대역폭을 이용하도록 최적화 될 수 있어서, 비트 스트림은 그 대역폭의 범위를 커버한다. 다른 실시예에서, VOS(104)는 클라이언트, 미디어 최적화 시스템(100), 및/또는 원서버(106)의 하드웨어 제한과 같은, 다른 요소들에 기초하여 결정을 할 수 있다. 다른 실시예에서, 미디어 옵티마이저(102)는 다수의 비트 스트림이 요구되는지의 여부를 결정하기 위해서 접속에 관련된 파라미터들의 일부 또는 전체를 모니터링하여, 어떤 비트 스트림이 이용될 것인지를 VOS(104)에게 나타낸다. VOS(104)는 이용될 가능한 비트 스트림들로부터 선택된 오직 하나의 최적화된 비트 스트림만을 생성할 수 있다.
도 2는 도 1의 프록시(110)의 일 실시예의 개략도를 도시한다. 도시된 프록시(110)는 본 명세서에 기술된 기능들 및 동작들을 수행할 수 있는, 이하에 더욱 상세하게 기술되는, 다양한 컴포넌트들을 포함한다. 일 실시예에서, 프록시(110)의 컴포넌트들 중 적어도 일부가 컴퓨터 시스템에 구현된다. 예를 들어, 프록시(110)의 하나 이상의 컴포넌트들의 기능은 컴퓨터 메모리 디바이스(200) 상에 저장된 컴퓨터 프로그램 명령에 의해 구현될 수 있고, CPU와 같은 프로세싱 디바이스(202)에 의해 실행될 수 있다. 프록시(110)는 디스크 저장 드라이브(204), 입출력 디바이스(206), 수신기(208), 및 구성 엔진(210)과 같은, 다른 컴포넌트들을 포함할 수 있다. 프록시(110)의 컴포넌트들 중 일부 또는 전체가 단일 컴퓨팅 디바이스 상에 또는 컴퓨팅 디바이스들의 네트워크 상에 저장될 수 있다. 프록시(110)는 본 명세서에 도시된 것보다 더 많거나 더 적은 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 프록시(110)는 도 5에 도시된 바와 같이 본 명세서에 기술된 방법들을 구현하는데 이용될 수 있다.
일 실시예에서, 프록시(110)는 수신기(208)를 포함한다. 수신기(208)는 원래의 비트 스트림(214)에 대응하는 비디오 컨테이너(212)를 수신하도록 구성된다. 일 실시예에서, 수신기(208)는 VOS(104)에 있고, 미디어 옵티마이저(102)로부터 비디오 컨테이너(212)를 수신하도록 구성된다. 비디오 컨테이너(212)는 클라이언트(108)로부터의 HTTP 요청에 대응하는 원서버(106)로부터의 HTTP 응답으로 미디어 옵티마이저(102)에 의해 수신된다. 수신기(208)는 비디오 컨테이너(212)에서 원래의 비트 스트림(214)에 대응하는 원래의 파라미터 세트(216)를 검색한다. 프록시(110)는 본 명세서에 기술된 동작들을 수행하는 동안, 원래의 파라미터 세트(216)는 메모리 디바이스에 저장될 수 있다. 일 실시예에서, 원래의 파라미터 세트(216)는 원래의 비트 스트림(214)에 대한 원래의 SPS 및 PPS 엔트리를 포함한다.
프록시(110)는 또한 구성 엔진(210)을 포함한다. 일 실시예에서, 구성 엔진(210)은 비디오 컨테이너(212)에 대한 헤더(224)에 스트림 특유의 메타데이터(222)를 기록하도록 구성된다. 일 실시예에서, 헤더(224)는 H.264 비디오 컨테이너(212)에 대한 AVC DCR이다. 구성 엔진(210)은 클라이언트(108)로의 비디오 스트림으로 이용될 수 있는 다수의 가능한 최적화된 비트 스트림(218)을 결정한다. 다수의 가능한 최적화된 비트 스트림(218)은 클라이언트(108)에 연속 스트림을 허용하는데 필요한 만큼 많을 수 있고, 또한 최고의 이미지 품질을 제공할 수 있다.
스트림 특유의 메타데이터(222)는 원래의 비트 스트림(214)에 대응하는 원래의 파라미터 세트(216)를 포함한다. 스트림 특유의 메타데이터(222)는 또한 가능한 최적화된 비트 스트림(218) 각각에 대한 최적화된 파라미터 세트(220)를 포함한다. 일 실시예에서, 원래의 파라미터 세트(216)는 원래의 SPS 및 PPS 엔트리를 포함하고, 최적화된 파라미터 세트(220)는 이용될 수 있는 가능한 최적화된 비트 스트림(218) 각각에 대한 최적화된 SPS 및 PPS 엔트리를 포함한다. 구성 엔진(210)은 원래의 비트 스트림(214)으로부터 검색된 원래의 파라미터 세트(216)를 분석함으로써 다수의 가능한 최적화된 비트 스트림(218)을 결정할 수 있다. 프록시(110)는 헤더(224) 내에 최적화된 파라미터 세트(220)를 삽입한 이후에 재생되는 동안 필요한 만큼 최적화된 비트 스트림(218)을 생성할 수 있고, 그리고 나서 최적화된 비트 스트림(218)을 클라이언트(108)에 포워딩할 수 있다.
도 3은 도 1의 미디어 최적화 시스템(100)을 통한 데이터 흐름을 위한 방법의 일 실시예의 흐름도를 도시한다. 특히, 도 3의 방법은 어떠한 추가적인 SPS 또는 PPS 엔트리도 데이터 스트림 내에 주입되지 않은 경우 VOS(104)를 통한 비트 스트림을 도시한다. 방법은 도 1의 미디어 최적화 시스템(100)과 함께 이용될 수 있다. 다른 실시예들에서, 방법은 다른 미디어 최적화 시스템(100)과 함께 이용될 수 있다.
방법은 이하에 도시된 바와 같이, 도 1의 VOS(104)에서 적어도 부분적으로 또는 완전히 구현될 수 있다. 일 실시예에서, VOS(104)는 디멀티플렉서, 디코더, 인코더, 및 멀티플렉서를 포함하고, 각각은 방법의 동작들 중 적어도 일부를 수행한다.
1. VOS(104)는 컨테이너 헤더 데이터를 기록한다. 이것은 포맷을 따른다. VOS(104)는 통상적으로 컨테이너 포맷이 요구하는 임의의 특정한 헤더(224)에 기록한다. 그리고 나서, VOS(104)는 이 컨테이너(212)에 대한 모든 정의된 스트림들을 통해 반복하고, 요구된 스트림 특유의 메타데이터(222)를 기록한다. H.264 스트림의 경우, 이것은 AVC DCR에 기록하는 것을 의미하고, 이는 하나의 SPS 및 PPS 엔트리를 포함한다.
2. VOS(104)는 원서버(106)로부터 비디오 컨테이너(212)에 대응하는 비디오 컨텐츠를 판독한다.
3. 디멀티플렉서(300)는 비디오 컨텐츠로부터 비디오 또는 오디오 패킷을 추출하고, 압축된 비디오 컨텐츠의 프레임을 추출한다.
4. 디코더(302)는 압축된 입력 프레임을 수신하고, 완전히 압축되지 않은 버퍼를 출력하며, 이는 로우 비디오 컨텐츠를 포함할 수 있다.
5. 비디오 인코더(304)는 압축되지 않은 비디오 컨텐츠를 취하여 그 컨텐츠를 압축한다. 출력은 최적화 방식으로 원래의 프레임보다 더욱 압축된다.
6. 멀티플렉서(306)는 압축된 비디오 컨텐츠의 프레임을 취하여, 그것을 오디오 컨텐츠와 멀티플렉스하고, 멀티플렉스된 컨텐츠를 정확한 컨테이너 포맷(예컨대, 플래시 비디오 패킷 또는 MP4 패킷)으로 클라이언트(108)에 보낸다.
7. 동작 2 내지 동작 6이 입력 데이터의 끝까지 반복된다.
8. 그리고 나서, VOS(104)는 포맷에 따라 컨테이너 트레일러 데이터를 기록한다.
도 4는 도 1의 미디어 최적화 시스템(100)을 통한 데이터 흐름을 위한 방법의 일 실시예의 흐름도를 도시한다. 미디어 최적화 시스템(100)이 동적 SPS/PPS 주입을 수행해야할 필요가 있다고 결정한 실시예들에서, 미디어 최적화 시스템(100)은 얼마나 많은 SPS 및 PPS 엔트리들을 AVC DCR 내에 주입할 것인지를 결정할 수 있다. 일 실시예에서, 미디어 최적화 시스템(100)은 VOS(104)이다. 주입될 SPS 및 PPS 엔트리들의 수는 최소한 적어도 2개로서, 인코딩 또는 최적화를 요구하는 비트 스트림들의 수에 따라 달라진다. 도 4는 VOS(104)가 원래의 스트림으로부터의 추가적인 SPS 및 PPS 엔트리를 출력 발생 AVC DCR 내에 주입할 필요가 있다고 결정하는 일 실시예를 도시한다.
이 실시예에서, 2개의 별개의 단계들이 존재하는데, 원래의 입력 비디오 패킷이 보내지는 제 1 단계, 및 동적으로 최적화된 비디오 패킷이 보내지는 제 2 단계(압축 단계)가 있다. 일 실시예에서, 동적으로 최적화된 비디오 패킷은 이미지들의 동일한 시퀀스를 나타내는 2개의 별개의 비트 스트림을 포함한다.
1. VOS(104)는 컨테이너 특유의 헤더 데이터를 기록한다. 이것은 포맷을 따른다. VOS(104)는 통상적으로 컨테이너 포맷이 요구하는 임의의 특정한 헤더(224)에 기록한다. 그리고 나서, VOS(104)는 이 컨테이너(212)에 대한 모든 정의된 스트림을 통해 반복하고, 요구된 스트림 특유의 메타데이터(222)를 기록한다. H.264 스트림의 경우, 이것은 AVC DCR에 기록하는 것을 의미하고, 이는 하나의 SPS 및 PPS 엔트리를 포함한다. 추가적으로, VOS(104)는 이 발생된 AVC DCR 내에 원래의 SPS 및 PPS를 동적으로 주입한다.
2. VOS(104)는 원서버(106)로부터의 비디오 컨텐츠를 판독한다.
3. 디멀티플렉서(300)는 비디오 또는 오디오 패킷을 추출하고, 압축된 비디오 컨텐츠의 프레임을 추출한다.
4. 멀티플렉서(306)는 압축된 비디오 컨텐츠의 프레임을 취하여, 그것을 오디오 컨텐츠와 멀티플렉스하고, 멀티플렉스된 컨텐츠를 정확한 컨테이너 포맷으로 클라이언트(108)에 보낸다. 본 실시예에서, 포맷은 플래시 비디오를 위한 것이다.
5. 동작 2 내지 동작 4가 VOS(104)가 압축 단계를 시작하도록 시그널링 될 때까지, 즉, 비디오 컨텐츠를 재인코딩하기 시작하도록 시그널링 될 때까지 반복된다.
6. VOS(104)가 압축 단계를 시작하도록 시그널링될 때, VOS(104)는 다음 키 프레임에서 압축 단계에 진입한다. 디코더(302)는 압축된 입력 프레임을 수신하고, 완전히 압축되지 않은 버퍼를 출력하며, 이는 로우 비디오 컨텐츠를 포함할 수 있다.
7. 비디오 인코더(304)는 압축되지 않은 비디오 컨텐츠를 취하여 그 컨텐츠를 압축한다. 출력은 원래의 프레임보다 더욱 압축된다.
8. 멀티플렉서(306)는 압축된 비디오 컨텐츠의 프레임을 취하여, 그것을 오디오 컨텐츠와 멀티플렉스하고, 멀티플렉스된 컨텐츠를 정확한 컨테이너 포맷(예컨대, 플래시 비디오)으로 클라이언트(108)에 보낸다.
9. 동작 2, 동작 6, 동작 7 및 동작 8은 입력 데이터의 끝까지 반복된다.
10. 그리고 나서, VOS(104)는 포맷에 따라 컨테이너 트레일러 데이터를 기록한다.
이 실시예에서, VOS(104)가 VOS(104) 자신에 의해 발생된 새로운 헤더(224)의 AVC DCR 내로 원래의 입력 비디오 컨테이너(212)의 원래의 SPS 및 PPS 엔트리들을 동적으로 삽입하지 않으면, 비디오의 초기 부분 - 압축되지 않은 단계 - 은 클라이언트(108)에서 재생되지 않을 것이다. 컨텐츠가 재생되도록 하기 위해서, 원래의 SPS 및 PPS 엔트리들은 정확한 위치에 삽입된다.
도 5는 비디오 스트림에 데이터를 삽입하기 위한 방법의 일 실시예의 흐름도를 도시한다. 방법(500)이 도 1의 미디어 최적화 시스템(100)과 함께 기술되었지만, 방법(500)의 실시예들은 다른 유형의 미디어 최적화 시스템(100)으로 구현될 수 있다. 도 4의 방법은 미디어 최적화 시스템(100)이 출력 최적화 발생된 스트림 내에 원래의 SPS 및 PPS 엔트리들을 동적으로 삽입하는 때 및 방법을 더욱 상세하게 제공한다.
일 실시예에서, VOS(104)는 이하에 기술되는 바와 같은 방법(500)의 동작들 중 일부 또는 전체를 수행한다.
1. VOS(104)는 원래 스트림의 AVC DCR로부터 원래의 SPS 및 PPS를 캡처한다. 이것은 입력 스트림을 디멀티플렉싱하기 전에 행해진다. 원래의 SPS 및 PPS 엔트리들은 분석되어 다음의 이용 가능한 식별자를 발견하여 출력 H.264 스트림 부호기를 생성할 때 이용한다.
2. VOS(104)는 컨테이너 헤더 데이터를 기록한다. 이것은 포맷을 따른다. VOS(104)는 통상적으로 컨테이너 포맷에 의해 요구되는 임의의 특정한 헤더(224)에 기록한다. 그리고 나서, VOS(104)는 이 컨테이너(212)에 대한 모든 정의된 스트림을 통해 반복하고, 요구된 스트림 특유의 메타데이터(222)를 기록한다. H.264 스트림의 경우, 이것은 AVC DCR에 기록하는 것을 의미하고, 이는 하나의 SPS 및 PPS 엔트리를 포함한다. VOS(104)는 선택된 SPS 식별자 및 PPS 식별자가 원래의 SPS 식별자 및 PPS 식별자와 결합할 때 일반적으로 정확하다는 것을 보장할 수 있다.
3. AVC DCR을 포함하는 헤더 데이터는 버퍼링된 출력 스트림에 보내진다.
4. VOS(104)는 (버터링된 입출력 스트림(500)을 이용하여) 컨테이너 헤더 데이터가 클라이언트(108)에 보내지기 전에 컨테이너 헤더 데이터를 인터셉트하여, 새로운 스트림의 AVC DCR SPS 및 PPS 테이블 내에 원래의 SPS 및 PPS 엔트리들을 삽입한다. 원래의 SPS 및 PPS 엔트리 각각은 관련 있는 SPS 및 PPS 테이블에서 정확한 위치에 삽입된다. SPS 및 PPS 테이블은 SPS 식별자 및 PPS 식별자를 통해 조정(key)되므로, SPS 및 PPS 엔트리는 정확한 위치에 삽입된다. VOS(104)는 또한 하나보다 많은 SPS 및 PPS 엔트리를 갖는 입력 스트림을 허용할 수 있다.
미디어 최적화 시스템(100)은 HTTP 프록시 서버에 포함된 것에 의존할 수 있다. 미디어 최적화 시스템(100)의 일부 실시예들에서, 시스템(100)은 또한 비디오를 압축하기 시작하도록 VOS(104)를 시그널링하기 위한 다른 네트워크 요소를 포함할 수 있다. 이와 같은 동작 또는 추가적인 동작들은 미디어 옵티마이저(102) 상의 미디어 최적화 제품과 같은, 하나 이상의 별도의 소프트웨어 제품들에 의해 수행될 수 있다. 이것은 다음을 포함할 수 있다.
1. 프로세스 시작 시, VOS(104)는 미디어 옵티마이저(102)로부터 HTTP 포스트 요청을 듣는다.
2. 캐시되지 않은 비디오 컨텐츠를 클라이언트(108)에 다시 보내는 각각의 HTTP 응답은 미디어 옵티마이저(102)에 의해 VOS(104)에 다시 보내질 수 있다. 그리고 나서, VOS(104)는 미디어 옵티마이저(102)에 원래의 비디오 컨텐츠 또한 재인코딩된 비디오 컨텐츠를 다시 보낼 수 있고, 미디어 옵티마이저(102)는 이 컨텐츠를 클라이언트(108)에 포워딩할 수 있다. 미디어 옵티마이저 시스템(100)은 HTTP 프록시 서버가 활성인 동안 실행될 수 있다.
일 실시예에서, VOS(104)는 원래의 비트 스트림(214)에 대해 원래의 파라미터 세트를 삽입하여, 사전(pre) 압축 단계의 비디오가 클라이언트(108)에서 재생될 것이고, 최적화된 비트 스트림(218) 각각에 대해 최적화된 파라미터 세트(220)를 삽입하여, 각각의 후속하는 압축 단계의 비디오가 클라이언트(108)에서 재생될 것이다. 일부 실시예들에서, 방법은 원래의 비트 스트림(214)의 구성 기록으로부터 원래의 파라미터 세트(216)를 캡처하는 단계, 이용될 다수의 가능한 비트 스트림을 결정하는 단계, 및 가능한 최적화된 비트 스트림(218) 각각에 대해 최적화된 파라미터 세트(220)를 헤더(224) 내에 삽입하는 단계를 포함한다. 일부 실시예들에서, 다수의 가능한 최적화된 비트 스트림(218)은 가능한/있을 수 있는 최적화 파라미터의 범위를 식별하기 위해 원래의 파라미터 세트(216)를 이용하여 결정될 수 있다. 헤더(224)에 스트림 특유의 메타데이터(222)가 기록된 이후에, 미디어 최적화 시스템(100)은 원래의 비트 스트림(214)을 최적화하고, 최적화된 비트 스트림(218)을 클라이언트(108)에게 보낼 수 있다. 클라이언트(108)에 보내진 최적화된 비트 스트림(218)은 클라이언트(108)에 대한 접속의 현재 상태 또는 다른/추가적인 요소들에 의해 결정될 수 있다.
미디어 최적화 시스템(100)의 실시예는 데이터 버스, 어드레스 버스 및/또는 제어 버스와 같은 시스템 버스를 통해 메모리 요소에 직접적으로 또는 간접적으로 결합된 적어도 하나의 프로세서를 포함한다. 메모리 요소는 프로그램 코드의 실제 실행 동안에 이용되는 로컬 메모리, 벌크 저장, 및 캐시 메모리를 포함할 수 있고, 캐시 메모리는 다수의 코드들이 실행 동안에 벌크 저장으로부터 검색되어야 하는 것을 줄이기 위해 적어도 일부 프로그램 코드의 일시적 저장을 제공한다.
방법들의 동작들 중 적어도 일부는 컴퓨터에 의한 실행을 위해 컴퓨터 이용 가능한 저장 매체 상에 저장된 소프트웨어 명령을 이용하여 구현될 수 있다는 것을 또한 유념해야 한다. 예로서, 컴퓨터 프로그램 제품의 실시예는 컴퓨터 상에서 실행될 때 컴퓨터로 하여금 비디오 스트림을 최적화하기 위한 동작을 비롯한 동작들을 수행하도록 하는 컴퓨터 판독 가능한 프로그램을 저장하기 위한 컴퓨터 이용 가능한 저장 매체를 포함한다.
본 명세서의 방법(들)의 동작들이 특정한 순서로 도시되고 기술되었지만, 각각의 방법의 동작들의 순서는 변경될 수 있어서, 특정한 동작들이 반대 순서로 수행될 수 있거나, 특정한 동작들이 다른 동작들과 함께, 적어도 부분적으로, 수행될 수 있다. 다른 실시예들에서, 별개의 동작들의 서브 동작들 또는 명령들이 간헐적 방식 및/또는 교대 방식으로 구현될 수 있다.
본 발명의 실시예들은 완전히 하드웨어 실시예의 형태를 취할 수 있거나, 완전히 소프트웨어 실시예의 형태를 취할 수 있거나, 또는 하드웨어 요소와 소프트웨어 요소 모두를 포함하는 실시예의 형태를 취할 수 있다. 일 실시예에서, 본 발명은 펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함하지만 이에 한정되는 것은 아닌, 소프트웨어로 구현된다.
뿐만 아니라, 본 발명의 실시예들은 컴퓨터 또는 임의의 명령 실행 시스템에 의한 사용을 위하거나 또는 이와 결합된 사용을 위한 프로그램 코드를 제공하는 컴퓨터 사용 가능한 매체 또는 컴퓨터 판독 가능한 매체로부터 액세스 가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 이러한 설명을 목적으로, 컴퓨터 사용 가능한 매체 또는 컴퓨터 판독 가능한 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의한 사용을 위하거나 또는 이와 결합된 사용을 위한 프로그램을 포함하고, 저장하고, 전달하고, 전파시키거나 또는 전송시킬 수 있는 임의의 장치일 수 있다.
컴퓨터 사용 가능한 매체 또는 컴퓨터 판독 가능한 매체는 전자적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전파 매체일 수 있다. 컴퓨터 판독 가능한 매체의 예들에는 반도체 또는 고체상태 메모리, 자기 테이프, 착탈 가능형 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 강체 자기 디스크, 및 광학 디스크가 포함된다. 광학 디스크의 현재의 예들에는 콤팩트 디스크 판독 전용 메모리(CD-ROM), 콤팩트 디스크 읽기/쓰기(CD-R/W) 및 디지털 비디오 디스크(DVD)가 포함된다. 컴퓨터 판독 가능한 저장 매체를 포함하는 하드웨어 구현은 또한 일시적인 미디어를 포함하거나 포함하지 않을 수 있다. 광학 디스크의 현재의 예들에는 콤팩트 디스크 판독 전용 메모리(CD-ROM), 콤팩트 디스크 읽기/쓰기(CD-R/W) 및 디지털 비디오 디스크(DVD)가 포함된다.
입출력 디바이스들 또는 I/O 디바이스들(키보드, 디스플레이, 포인팅 디바이스 등을 포함하지만, 이에 한정되는 것은 아님)은 직접적으로 시스템에 결합될 수 있거나 또는 매개적 I/O 컨트롤러를 통하여 시스템에 결합될 수 있다. 추가적으로, 데이터 프로세싱 시스템이 매개적 사설 네트워크 또는 공중 네트워크를 통하여 다른 데이터 프로세싱 시스템 또는 원격 프린터 또는 저장 디바이스에 결합될 수 있도록 하기 위해 네트워크 어댑터가 또한 시스템에 결합될 수 있다. 현재 이용 가능한 유형의 몇몇 네트워크 어댑터들에는 모뎀, 케이블 모뎀 및 이더넷 카드가 있다.
위의 설명에서, 다양한 실시예들의 특정한 세부 사항들이 제공된다. 그러나, 일부 실시예들은 이러한 특정한 상세한 사항들의 전체보다 적은 사항들을 이용하여 실행될 수 있다. 다른 경우에, 특정한 방법, 절차, 컴포넌트, 구조물, 및/또는 기능들은 간결함과 명확함을 위해, 본 발명의 다양한 실시예들을 가능하게 하는 것보다 더 자세하게 설명되지 않는다.
본 발명의 특정한 실시예들이 도시되고 예시되었지만, 본 발명은 이렇게 도시되고 기술된 부분들의 특정한 형태 또는 장치로 제한되는 것이 아니다. 본 발명의 범위는 여기에 첨부된 특허청구 범위 및 그 등가물에 의해 정의될 것이다.

Claims (16)

  1. 비디오 스트림을 최적화하기 위한 방법에 있어서,
    원서버(origin server)로부터 수신된 비디오 컨테이너(video container)에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하는 단계; 및
    상기 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하는 단계를 포함하고,
    상기 스트림 특유의 메타데이터는 상기 원래의 비트 스트림에 대한 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  2. 제 1 항에 있어서, 상기 원래의 파라미터 세트는 원래의 시퀀스 파라미터 세트 및 원래의 픽처 파라미터 세트를 포함하고, 상기 최적화된 파라미터 세트는 최적화된 시퀀스 파라미터 세트 및 최적화된 픽처 파라미터 세트를 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하는 단계 전에, 프록시에서 상기 원서버로부터의 비디오 스트림에 있는 비디오 컨테이너를 인터셉트(intercept)하는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 원래의 비트 스트림의 구성 데이터로부터 상기 원래의 파라미터 세트를 캡처하는 단계;
    이용될 다수의 가능한 최적화된 비트 스트림들을 결정하는 단계; 및
    상기 가능한 최적화된 비트 스트림들 각각에 대한 최적화된 파라미터 세트를 상기 헤더 내에 삽입하는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 다수의 가능한 최적화된 비트 스트림들을 결정하기 위해서 상기 원래의 파라미터 세트를 분석하는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  6. 제 4 항에 있어서,
    클라이언트 디바이스에 대한 접속의 대역폭 및 상기 비디오 스트림의 크기 및/또는 클라이언트 디바이스의 하드웨어 또는 소프트웨어 제한 및/또는 상기 방법을 구현하는 미디어 최적화 시스템의 하드웨어 또는 소프트웨어 제한, 및/또는 상기 원서버의 하드웨어 또는 소프트웨어 제한에 기초하여, 이용될 다수의 가능한 최적화된 비트 스트림들을 결정하는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 헤더에 스트림 특유의 메타데이터를 기록하는 단계 이후에 상기 원래의 비트 스트림을 최적화하는 단계; 및
    상기 최적화된 비트 스트림을 클라이언트에 보내는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    H.264 코덱을 이용하여 상기 최적화된 비트 스트림 및 상기 원래의 비트 스트림을 인코딩하는 단계를 더 포함하는 것인 비디오 스트림을 최적화하기 위한 방법.
  9. 컴퓨터 프로그램 제품에 있어서,
    컴퓨터 판독 가능한 프로그램을 저장하기 위해 컴퓨터 판독 가능한 저장 디바이스를 포함하고,
    상기 컴퓨터 판독 가능한 프로그램은, 컴퓨터 내의 프로세서에 의해 실행될 때, 상기 컴퓨터로 하여금 청구항 제 1 항 내지 제 8 항 중 어느 한 항의 방법을 구현하도록 하는 것인 컴퓨터 프로그램 제품.
  10. 미디어 최적화 시스템에 있어서,
    원서버로부터 수신된 비디오 컨테이너에서 원래의 비트 스트림에 대한 원래의 파라미터 세트를 검색하도록 구성된 수신기 - 상기 원래의 파라미터 세트는 메모리 디바이스에 저장됨 - ; 및
    상기 비디오 컨테이너에 대한 헤더에 스트림 특유의 메타데이터를 기록하도록 구성된 구성 엔진 - 상기 스트림 특유의 메타데이터는 상기 원래의 비트 스트림에 대한 상기 원래의 파라미터 세트 및 최적화된 비트 스트림에 대한 최적화된 파라미터 세트를 포함함 - 을 포함하는 것인 미디어 최적화 시스템.
  11. 제 10 항에 있어서, 상기 비디오 컨테이너는 H.264 코덱을 이용하여 인코딩되고, 상기 원래의 파라미터 세트는 원래의 시퀀스 파라미터 세트 및 원래의 픽처 파라미터 세트를 포함하고, 상기 최적화된 파라미터 세트는 최적화된 시퀀스 파라미터 세트 및 최적화된 픽처 파라미터 세트를 포함하는 것인 미디어 최적화 시스템.
  12. 제 10 항 또는 제 11 항에 있어서, 상기 구성 엔진은 또한, 이용될 다수의 가능한 최적화된 비트 스트림들을 결정하고, 상기 가능한 최적화된 비트 스트림들 각각에 대한 최적화된 파라미터 세트를 상기 헤더 내에 삽입하도록 구성되는 것인 미디어 최적화 시스템.
  13. 제 12 항에 있어서, 상기 구성 엔진은 또한, 상기 다수의 가능한 최적화된 비트 스트림들을 결정하기 위해서 상기 원래의 파라미터 세트를 분석하도록 구성되는 것인 미디어 최적화 시스템.
  14. 제 12 항에 있어서, 상기 구성 엔진은 또한, 클라이언트 디바이스에 대한 접속의 대역폭 및 상기 비디오 스트림의 크기 및/또는 클라이언트 디바이스의 하드웨어 또는 소프트웨어 제한 및/또는 상기 시스템의 하드웨어 또는 소프트웨어 제한, 및/또는 상기 원서버의 하드웨어 또는 소프트웨어 제한에 기초하여, 이용될 다수의 가능한 최적화된 비트 스트림들을 결정하도록 구성되는 것인 미디어 최적화 시스템.
  15. 제 10 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 원서버로부터의 비디오 스트림에 있는 비디오 컨테이너를 인터셉트하도록 구성된 프록시를 더 포함하는 것인 미디어 최적화 시스템.
  16. 제 15 항에 있어서, 상기 프록시는 또한, 상기 헤더에 스트림 특유의 메타데이터를 기록한 이후에 상기 원래의 비트 스트림을 상기 최적화된 비트 스트림으로 최적화하고, 상기 최적화된 비트 스트림을 클라이언트에 보내도록 구성되는 것인 미디어 최적화 시스템.
KR1020137023988A 2011-02-12 2012-02-10 비디오 스트림을 최적화하기 위한 방법 KR20140007893A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161442226P 2011-02-12 2011-02-12
US61/442,226 2011-02-12
US201161478420P 2011-04-22 2011-04-22
US61/478,420 2011-04-22
PCT/EP2012/052333 WO2012107570A1 (en) 2011-02-12 2012-02-10 A method for optimizing a video stream

Publications (1)

Publication Number Publication Date
KR20140007893A true KR20140007893A (ko) 2014-01-20

Family

ID=45774160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137023988A KR20140007893A (ko) 2011-02-12 2012-02-10 비디오 스트림을 최적화하기 위한 방법

Country Status (5)

Country Link
US (1) US20140036990A1 (ko)
EP (1) EP2673958A1 (ko)
KR (1) KR20140007893A (ko)
CN (1) CN103430558A (ko)
WO (1) WO2012107570A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9774894B2 (en) * 2012-03-13 2017-09-26 Cisco Technology, Inc. Coordinating video delivery with radio frequency conditions
WO2015103140A1 (en) * 2014-01-03 2015-07-09 Thomson Licensing Method and apparatus for the generation of metadata for video optimization
CN106664443B (zh) * 2014-06-27 2020-03-24 皇家Kpn公司 根据hevc拼贴视频流确定感兴趣区域
US20170126846A1 (en) * 2015-10-29 2017-05-04 VTX Holdings (Singapore) Pte. Ltd. Network communication system
CN106281217B (zh) * 2016-07-26 2018-09-11 中国石油大学(北京) 一种仿生表面、其制备方法和用途

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412514B2 (en) * 2000-08-17 2008-08-12 Hoshiko Llc Method and apparatus for improving bandwidth efficiency in a computer network
US20050254526A1 (en) * 2004-05-12 2005-11-17 Nokia Corporation Parameter sets update in streaming applications
US8767840B2 (en) * 2009-02-11 2014-07-01 Taiwan Semiconductor Manufacturing Company, Ltd. Method for detecting errors and recovering video data

Also Published As

Publication number Publication date
CN103430558A (zh) 2013-12-04
US20140036990A1 (en) 2014-02-06
EP2673958A1 (en) 2013-12-18
WO2012107570A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
KR101868281B1 (ko) 정보 처리 장치, 정보 처리 방법 및 컴퓨터 판독 가능한 기록 매체
US8925021B2 (en) Method and system for trick play in over-the-top video delivery
JP2023138806A (ja) ハイパーテキスト転送プロトコルを使用してMatroskaコンテナファイル中に記憶されるメディアの適応型ビットレートストリーミング
US8543724B2 (en) Methods and apparatuses for a projected PVR experience
US20140086445A1 (en) Watermarking of digital video
US11700419B2 (en) Re-encoding predicted picture frames in live video stream applications
JP2007506305A (ja) ビデオストレージのリソース適応な管理
US9865304B2 (en) File generation device and method, and content playback device and method
KR20200109359A (ko) 비디오 스트리밍
WO2015183817A1 (en) Movie package file format
KR20140007893A (ko) 비디오 스트림을 최적화하기 위한 방법
US9060184B2 (en) Systems and methods for adaptive streaming with augmented video stream transitions using a media server
JP2016072858A (ja) メディアデータ生成方法、メディアデータ再生方法、メディアデータ生成装置、メディアデータ再生装置、コンピュータ読み取り可能な記録媒体、及びプログラム
KR101731829B1 (ko) 디지털 영상 수신기의 디지털 콘텐츠 처리 장치 및 방법
US20110276662A1 (en) Method of constructing multimedia streaming file format, and method and apparatus for servicing multimedia streaming using the multimedia streaming file format
KR20080064399A (ko) Mp4 역다중화 장치 및 그의 동작 방법
US20130287361A1 (en) Methods for storage and access of video data while recording
US20110271001A1 (en) Methods & apparatuses for a projected pvr experience
EP4358521A1 (en) Methods and systems for encoding of content segments
US20130287092A1 (en) Systems and Methods for Adaptive Streaming with Augmented Video Stream Transitions
KR20110123644A (ko) 멀티미디어 스트리밍 파일 포맷 구조 및 그를 이용한 멀티미디어 스트리밍 서비스 방법 및 장치

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid